├── .gitignore
├── images
├── icon128.png
├── icon16.png
└── icon48.png
├── app
├── src
│ ├── popup.js
│ ├── options.js
│ ├── common.js
│ ├── Popup.vue
│ └── Options.vue
├── .vscode
│ └── extensions.json
├── popup.html
├── options.html
├── .eslintrc.cjs
├── .gitignore
├── vite.config.js
├── package.json
├── content-script.js
├── override.js
├── background.js
└── yarn.lock
├── manifest.json
├── README.md
└── LICENSE
/.gitignore:
--------------------------------------------------------------------------------
1 | *.zip
2 | *.bk
3 | build
4 | *.crx
5 | *.pem
6 |
--------------------------------------------------------------------------------
/images/icon128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vpalmisano/webrtc-internals-exporter/HEAD/images/icon128.png
--------------------------------------------------------------------------------
/images/icon16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vpalmisano/webrtc-internals-exporter/HEAD/images/icon16.png
--------------------------------------------------------------------------------
/images/icon48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vpalmisano/webrtc-internals-exporter/HEAD/images/icon48.png
--------------------------------------------------------------------------------
/app/src/popup.js:
--------------------------------------------------------------------------------
1 | import { buildApp } from "./common";
2 | import App from "./Popup.vue";
3 | buildApp(App);
4 |
--------------------------------------------------------------------------------
/app/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": ["Vue.volar", "Vue.vscode-typescript-vue-plugin"]
3 | }
4 |
--------------------------------------------------------------------------------
/app/src/options.js:
--------------------------------------------------------------------------------
1 | import { buildApp } from "./common";
2 | import App from "./Options.vue";
3 | buildApp(App);
4 |
--------------------------------------------------------------------------------
/app/popup.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | WebRTC Internals Exporter
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/app/options.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | WebRTC Internals Exporter
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/app/.eslintrc.cjs:
--------------------------------------------------------------------------------
1 | /* eslint-env node */
2 | require("@rushstack/eslint-patch/modern-module-resolution");
3 |
4 | module.exports = {
5 | root: true,
6 | extends: [
7 | "plugin:vue/vue3-essential",
8 | "eslint:recommended",
9 | "@vue/eslint-config-prettier",
10 | ],
11 | parserOptions: {
12 | ecmaVersion: "latest",
13 | },
14 | };
15 |
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | .DS_Store
12 | dist
13 | dist-ssr
14 | coverage
15 | *.local
16 |
17 | /cypress/videos/
18 | /cypress/screenshots/
19 |
20 | # Editor directories and files
21 | .vscode/*
22 | !.vscode/extensions.json
23 | .idea
24 | *.suo
25 | *.ntvs*
26 | *.njsproj
27 | *.sln
28 | *.sw?
29 |
30 | yarn-error.log
31 | node_modules
32 |
--------------------------------------------------------------------------------
/app/vite.config.js:
--------------------------------------------------------------------------------
1 | import { fileURLToPath, URL } from "node:url";
2 |
3 | import { defineConfig } from "vite";
4 | import vue from "@vitejs/plugin-vue";
5 | import loadVersion from "vite-plugin-package-version";
6 |
7 | export default defineConfig({
8 | plugins: [loadVersion(), vue()],
9 | resolve: {
10 | alias: {
11 | "@": fileURLToPath(new URL("./src", import.meta.url)),
12 | },
13 | },
14 | build: {
15 | outDir: "../build",
16 | emptyOutDir: true,
17 | rollupOptions: {
18 | input: {
19 | options: "options.html",
20 | popup: "popup.html",
21 | },
22 | output: {
23 | assetFileNames: "assets/[name][extname]",
24 | },
25 | },
26 | },
27 | define: {},
28 | });
29 |
--------------------------------------------------------------------------------
/app/src/common.js:
--------------------------------------------------------------------------------
1 | import { createApp } from "vue";
2 |
3 | // Vuetify
4 | import "vuetify/styles";
5 | import "@mdi/font/css/materialdesignicons.css";
6 | import { createVuetify } from "vuetify";
7 | import * as components from "vuetify/components";
8 | import * as directives from "vuetify/directives";
9 | import { md3 } from "vuetify/blueprints";
10 | import { VDataTable } from "vuetify/labs/VDataTable";
11 | import colors from "vuetify/lib/util/colors.mjs";
12 |
13 | export function buildApp(App) {
14 | const vuetify = createVuetify({
15 | components: { ...components, VDataTable },
16 | directives,
17 | blueprint: md3,
18 | theme: {
19 | defaultTheme: "dark",
20 | themes: {
21 | dark: {
22 | dark: true,
23 | colors: {
24 | primary: colors.indigo.base,
25 | secondary: colors.indigo.lighten5,
26 | },
27 | },
28 | },
29 | },
30 | });
31 |
32 | createApp(App, {}).use(vuetify).mount(document.querySelector("#app"));
33 | }
34 |
--------------------------------------------------------------------------------
/app/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@vpalmisano/webrtc-internals-exporter",
3 | "author": {
4 | "name": "Vittorio Palmisano",
5 | "url": "https://github.com/vpalmisano"
6 | },
7 | "version": "0.1.14",
8 | "publishConfig": {
9 | "registry": "https://npm.pkg.github.com"
10 | },
11 | "scripts": {
12 | "dev": "vite",
13 | "build": "vite build",
14 | "preview": "vite preview --port 4173",
15 | "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore"
16 | },
17 | "dependencies": {
18 | "@popperjs/core": "^2.11.6",
19 | "bootstrap": "^5.3.2",
20 | "bootstrap-icons": "^1.11.1",
21 | "events": "^3.3.0",
22 | "pako": "^2.1.0",
23 | "util": "^0.12.4",
24 | "vue": "^3.3.8",
25 | "vuetify": "^3.3.23"
26 | },
27 | "devDependencies": {
28 | "@mdi/font": "^7.3.67",
29 | "@rushstack/eslint-patch": "^1.1.4",
30 | "@vitejs/plugin-vue": "^4.4.0",
31 | "@vue/eslint-config-prettier": "^8.0.0",
32 | "@vuelidate/core": "^2.0.3",
33 | "@vuelidate/validators": "^2.0.4",
34 | "eslint": "^8.52.0",
35 | "eslint-plugin-vue": "^9.18.1",
36 | "prettier": "^3.0.3",
37 | "vite": "^4.5.0",
38 | "vite-plugin-package-version": "^1.0.2"
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "WebRTC Internals Exporter",
3 | "description": "WebRTC Internals Exporter",
4 | "author": "Vittorio Palmisano",
5 | "version": "0.1.0",
6 | "manifest_version": 3,
7 | "icons": {
8 | "16": "images/icon16.png",
9 | "48": "images/icon48.png",
10 | "128": "images/icon128.png"
11 | },
12 | "permissions": [
13 | "storage",
14 | "activeTab",
15 | "tabs",
16 | "scripting",
17 | "alarms"
18 | ],
19 | "host_permissions": [
20 |
21 | ],
22 | "action": {
23 | "default_title": "WebRTC Internals Exporter",
24 | "default_popup": "popup.html"
25 | },
26 | "options_ui": {
27 | "page": "options.html",
28 | "open_in_tab": true
29 | },
30 | "content_scripts": [
31 | {
32 | "matches": [
33 | "https://*/*",
34 | "http://*/*"
35 | ],
36 | "js": ["content-script.js"],
37 | "run_at": "document_start",
38 | "all_frames": true,
39 | "match_about_blank": true
40 | }
41 | ],
42 | "background": {
43 | "service_worker": "background.js",
44 | "type": "module"
45 | },
46 | "web_accessible_resources": [
47 | {
48 | "resources": ["override.js"],
49 | "matches": ["http://*/*", "https://*/*"]
50 | }
51 | ]
52 | }
53 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # WebRTC Internals Exporter
2 | A Chromium browser extension that allows to collect WebRTC stats and export them to a Prometheus PushGateway service.
3 |
4 | ## Install
5 |
6 | ### Using the Chrome Web Store
7 | [Link](https://chromewebstore.google.com/detail/webrtc-internals-exporter/jbgkajlogkmfemdjhiiicelanbipacpa)
8 |
9 | ### Using the packed extension
10 | Download the `.crx` file from the [releases page](https://github.com/vpalmisano/webrtc-internals-exporter/releases) and drop it
11 | into the [chrome://extensions/](chrome://extensions/) page.
12 | Alternatively, you can download a `.zip` or `tar.gz` file from the releases page
13 | and load the decompressed folder as an unpacked extension.
14 |
15 | Ref. https://developer.chrome.com/docs/extensions/mv3/hosting/
16 |
17 | ### From sources
18 | Run the `./build.sh` script and load the `build` folder as an unpacked extension
19 | in your Chromium browser after enabling the developer mode.
20 |
21 | ## Usage
22 | 1. Visit the extension options page, set the PushGateway URL and, optionally, the username and password.
23 | 2. Load the page where you want to collect the stats and click on the extension icon to enable the stats collection on that URL (disabled by default).
24 | 3. The stats will be collected and sent to the PushGateway service. You can use the provided [Grafana dashboard](https://github.com/vpalmisano/webrtc-internals-exporter/tree/main/grafana) to visualize them.
25 |
26 | ## Debugging
27 | The extension logs are available in the browser console after setting:
28 | ```js
29 | localStorage.setItem("webrtc-internal-exporter:debug", "true")
30 | ```
31 |
32 | The running PeerConnections objects can be manually inspected using the following
33 | command in the browser console:
34 | ```js
35 | > webrtcInternalsExporter.peerConnections
36 | Map(1) {'b03c3616-3f91-42b5-85df-7dbebefae8bd' => RTCPeerConnection}
37 | ```
38 |
--------------------------------------------------------------------------------
/app/src/Popup.vue:
--------------------------------------------------------------------------------
1 |
61 |
62 |
63 |
64 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
80 |
81 |
88 |
89 |
90 |
91 |
92 |
93 | v{{ state.version }}
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
112 |
113 |
--------------------------------------------------------------------------------
/app/content-script.js:
--------------------------------------------------------------------------------
1 | /* global chrome */
2 |
3 | if (window.location.protocol.startsWith("http")) {
4 | const log = (...args) => {
5 | try {
6 | if (localStorage.getItem("webrtc-internal-exporter:debug") === "true") {
7 | console.log.apply(null, [
8 | "[webrtc-internal-exporter:content-script]",
9 | ...args,
10 | ]);
11 | }
12 | } catch (error) {
13 | // Ignore localStorage errors.
14 | }
15 | };
16 |
17 | const injectScript = (file_path) => {
18 | const head = document.querySelector("head");
19 | const script = document.createElement("script");
20 | script.setAttribute("type", "text/javascript");
21 | script.setAttribute("src", file_path);
22 | head.appendChild(script);
23 | };
24 |
25 | setTimeout(() => injectScript(chrome.runtime.getURL("override.js")));
26 |
27 | // Handle options.
28 | const options = {
29 | url: "",
30 | enabled: false,
31 | updateInterval: 2000,
32 | enabledStats: [],
33 | };
34 |
35 | const sendOptions = () => {
36 | window.postMessage({
37 | event: "webrtc-internal-exporter:options",
38 | options,
39 | });
40 | };
41 |
42 | try {
43 | chrome.storage.sync
44 | .get(["url", "enabledOrigins", "updateInterval", "enabledStats"])
45 | .then((ret) => {
46 | log(`options loaded:`, ret);
47 | options.url = ret.url || "";
48 | options.enabled =
49 | ret.enabledOrigins &&
50 | ret.enabledOrigins[window.location.origin] === true;
51 | options.updateInterval = (ret.updateInterval || 2) * 1000;
52 | options.enabledStats = Object.values(ret.enabledStats || {});
53 | sendOptions();
54 | });
55 |
56 | chrome.storage.onChanged.addListener((changes, area) => {
57 | if (area !== "sync") return;
58 |
59 | let changed = false;
60 | for (let [key, { newValue }] of Object.entries(changes)) {
61 | if (key === "url") {
62 | options.url = newValue;
63 | changed = true;
64 | } else if (key === "enabledOrigins") {
65 | options.enabled = newValue[window.location.origin] === true;
66 | changed = true;
67 | } else if (key === "updateInterval") {
68 | options.updateInterval = newValue * 1000;
69 | changed = true;
70 | } else if (key === "enabledStats") {
71 | options.enabledStats = Object.values(newValue);
72 | changed = true;
73 | }
74 | }
75 | if (changed) {
76 | log(`options changed:`, options);
77 | sendOptions();
78 | }
79 | });
80 |
81 | // Handle stats messages.
82 | window.addEventListener("message", async (message) => {
83 | if (!message?.data) return;
84 | const { event, url, id, state, values } = message.data;
85 | if (event === "webrtc-internal-exporter:ready") {
86 | sendOptions();
87 | } else if (event === "webrtc-internal-exporter:peer-connection-stats") {
88 | log("peer-connection-stats", { url, id, state, values });
89 | try {
90 | const response = await chrome.runtime.sendMessage({
91 | event: "peer-connection-stats",
92 | data: {
93 | url,
94 | id,
95 | state,
96 | values,
97 | },
98 | });
99 | if (response.error) {
100 | log(`error: ${response.error}`);
101 | }
102 | } catch (error) {
103 | log(`error: ${error.message}`);
104 | }
105 | }
106 | });
107 | } catch (error) {
108 | console.error(
109 | `[webrtc-internal-exporter:content-script] error: ${error.message}`,
110 | error,
111 | );
112 | }
113 | }
114 |
--------------------------------------------------------------------------------
/app/override.js:
--------------------------------------------------------------------------------
1 | class WebrtcInternalsExporter {
2 | peerConnections = new Map();
3 | getUserMediaStreams = new Set();
4 | getDisplayMediaStreams = new Set();
5 |
6 | url = "";
7 | enabled = false;
8 | updateInterval = 2000;
9 | enabledStats = [];
10 |
11 | constructor() {
12 | window.addEventListener("message", async (message) => {
13 | if (!message?.data) return;
14 | const { event, options } = message.data;
15 | if (event === "webrtc-internal-exporter:options") {
16 | Object.assign(this, options);
17 | }
18 | });
19 |
20 | window.postMessage({ event: "webrtc-internal-exporter:ready" });
21 | }
22 |
23 | static log(...args) {
24 | console.log.apply(null, ["[webrtc-internal-exporter:override]", ...args]);
25 | }
26 |
27 | static randomId() {
28 | if ("randomUUID" in window.crypto) {
29 | return window.crypto.randomUUID();
30 | } else {
31 | return (2 ** 64 * Math.random()).toString(16);
32 | }
33 | }
34 |
35 | add(pc) {
36 | const id = WebrtcInternalsExporter.randomId();
37 | this.peerConnections.set(id, pc);
38 | pc.addEventListener("connectionstatechange", () => {
39 | if (pc.connectionState === "closed") {
40 | this.peerConnections.delete(id);
41 | }
42 | });
43 | this.collectStats(id);
44 | }
45 |
46 | async collectStats(id) {
47 | const pc = this.peerConnections.get(id);
48 | if (!pc) return;
49 |
50 | if (this.url && this.enabled) {
51 | try {
52 | const stats = await pc.getStats();
53 | const values = [...stats.values()].filter(
54 | (v) =>
55 | ["peer-connection", ...this.enabledStats].indexOf(v.type) !== -1,
56 | );
57 | window.postMessage(
58 | {
59 | event: "webrtc-internal-exporter:peer-connection-stats",
60 | url: window.location.href,
61 | id,
62 | state: pc.connectionState,
63 | values,
64 | },
65 | [values],
66 | );
67 | } catch (error) {
68 | WebrtcInternalsExporter.log(`collectStats error: ${error.message}`);
69 | }
70 | }
71 |
72 | if (pc.connectionState === "closed") {
73 | this.peerConnections.delete(id);
74 | } else {
75 | setTimeout(this.collectStats.bind(this), this.updateInterval, id);
76 | }
77 | }
78 |
79 | addGetUserMedia(stream) {
80 | this.getUserMediaStreams.add(stream);
81 | }
82 |
83 | addGetDisplayMedia(stream) {
84 | this.getDisplayMediaStreams.add(stream);
85 | }
86 | }
87 |
88 | const webrtcInternalsExporter = new WebrtcInternalsExporter();
89 |
90 | window.RTCPeerConnection = new Proxy(window.RTCPeerConnection, {
91 | construct(target, argumentsList) {
92 | WebrtcInternalsExporter.log(`RTCPeerConnection`, argumentsList);
93 |
94 | const pc = new target(...argumentsList);
95 |
96 | webrtcInternalsExporter.add(pc);
97 |
98 | return pc;
99 | },
100 | });
101 |
102 | if (navigator.getUserMedia) {
103 | const nativeGetUserMedia = navigator.getUserMedia.bind(navigator);
104 | navigator.getUserMedia = async function (constraints, ...args) {
105 | WebrtcInternalsExporter.log(`getUserMedia`, constraints, args);
106 |
107 | const mediaStream = await nativeGetUserMedia(constraints, ...args);
108 | webrtcInternalsExporter.addGetUserMedia(mediaStream);
109 | return mediaStream;
110 | };
111 | }
112 |
113 | if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
114 | const nativeGetUserMedia = navigator.mediaDevices.getUserMedia.bind(
115 | navigator.mediaDevices,
116 | );
117 | navigator.mediaDevices.getUserMedia = async function (constraints, ...args) {
118 | WebrtcInternalsExporter.log(`getUserMedia`, constraints, args);
119 |
120 | const mediaStream = await nativeGetUserMedia(constraints, ...args);
121 | webrtcInternalsExporter.addGetUserMedia(mediaStream);
122 | return mediaStream;
123 | };
124 | }
125 |
126 | if (navigator.mediaDevices && navigator.mediaDevices.getDisplayMedia) {
127 | const nativeGetDisplayMedia = navigator.mediaDevices.getDisplayMedia.bind(
128 | navigator.mediaDevices,
129 | );
130 | navigator.mediaDevices.getDisplayMedia = async function (
131 | constraints,
132 | ...args
133 | ) {
134 | WebrtcInternalsExporter.log(`getDisplayMedia`, constraints, args);
135 |
136 | const mediaStream = await nativeGetDisplayMedia(constraints, ...args);
137 | webrtcInternalsExporter.addGetDisplayMedia(mediaStream);
138 | return mediaStream;
139 | };
140 | }
141 |
--------------------------------------------------------------------------------
/app/src/Options.vue:
--------------------------------------------------------------------------------
1 |
114 |
115 |
116 |
117 |
122 |
123 | v{{ state.version }}
124 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 | {{ state.info }}
137 |
138 |
143 | Close
144 |
145 |
146 |
147 |
148 |
149 |
150 | {{ state.error }}
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
165 |
166 |
167 |
168 |
174 |
175 |
176 |
177 |
189 |
190 |
191 |
192 |
199 |
200 |
201 |
206 |
207 |
208 |
214 |
215 |
216 |
217 |
225 |
226 |
227 |
228 |
229 |
230 |
234 |
235 |
236 | |
237 | removeOrigin(item)"
240 | >
241 | {{ item.origin }}
242 | |
243 |
244 |
245 |
246 |
247 |
248 |
249 |
250 | Save options
258 |
259 |
260 |
261 |
262 |
263 |
264 |
269 |
--------------------------------------------------------------------------------
/app/background.js:
--------------------------------------------------------------------------------
1 | /* global chrome, pako */
2 |
3 | function log(...args) {
4 | console.log.apply(null, ["[webrtc-internal-exporter:background]", ...args]);
5 | }
6 |
7 | log("loaded");
8 |
9 | import "/assets/pako.min.js";
10 |
11 | const DEFAULT_OPTIONS = {
12 | url: "http://localhost:9091",
13 | username: "",
14 | password: "",
15 | updateInterval: 2,
16 | gzip: false,
17 | job: "webrtc-internals-exporter",
18 | enabledOrigins: {},
19 | enabledStats: ["inbound-rtp", "remote-inbound-rtp", "outbound-rtp"],
20 | };
21 |
22 | const options = {};
23 |
24 | // Handle install/update.
25 | chrome.runtime.onInstalled.addListener(async ({ reason }) => {
26 | log("onInstalled", reason);
27 | if (reason === "install") {
28 | await chrome.storage.sync.set(DEFAULT_OPTIONS);
29 | } else if (reason === "update") {
30 | const options = await chrome.storage.sync.get();
31 | await chrome.storage.sync.set({
32 | ...DEFAULT_OPTIONS,
33 | ...options,
34 | });
35 | }
36 |
37 | await chrome.alarms.create("webrtc-internals-exporter-alarm", {
38 | delayInMinutes: 1,
39 | periodInMinutes: 1,
40 | });
41 | });
42 |
43 | async function updateTabInfo(tab) {
44 | const tabId = tab.id;
45 | const origin = new URL(tab.url || tab.pendingUrl).origin;
46 |
47 | if (options.enabledOrigins && options.enabledOrigins[origin] === true) {
48 | const { peerConnectionsPerOrigin } = await chrome.storage.local.get(
49 | "peerConnectionsPerOrigin",
50 | );
51 | const peerConnections =
52 | (peerConnectionsPerOrigin && peerConnectionsPerOrigin[origin]) || 0;
53 |
54 | chrome.action.setTitle({
55 | title: `WebRTC Internals Exporter\nActive Peer Connections: ${peerConnections}`,
56 | tabId,
57 | });
58 | chrome.action.setBadgeText({ text: `${peerConnections}`, tabId });
59 | chrome.action.setBadgeBackgroundColor({ color: "rgb(63, 81, 181)", tabId });
60 | } else {
61 | chrome.action.setTitle({
62 | title: `WebRTC Internals Exporter (disabled)`,
63 | tabId,
64 | });
65 | chrome.action.setBadgeText({ text: "", tabId });
66 | }
67 | }
68 |
69 | async function optionsUpdated() {
70 | const [tab] = await chrome.tabs.query({
71 | active: true,
72 | lastFocusedWindow: true,
73 | });
74 | await updateTabInfo(tab);
75 | }
76 |
77 | chrome.storage.sync.get().then((ret) => {
78 | Object.assign(options, ret);
79 | log("options loaded");
80 | optionsUpdated();
81 | });
82 |
83 | chrome.storage.onChanged.addListener((changes, areaName) => {
84 | if (areaName !== "sync") return;
85 |
86 | for (let [key, { newValue }] of Object.entries(changes)) {
87 | options[key] = newValue;
88 | }
89 | log("options changed");
90 | optionsUpdated();
91 | });
92 |
93 | chrome.tabs.onActivated.addListener(async ({ tabId }) => {
94 | try {
95 | const tab = await chrome.tabs.get(tabId);
96 | await updateTabInfo(tab);
97 | } catch (err) {
98 | log(`get tab error: ${err.message}`);
99 | }
100 | });
101 |
102 | chrome.tabs.onUpdated.addListener(async (tabId, changeInfo) => {
103 | if (!changeInfo.url) return;
104 | await updateTabInfo({ id: tabId, url: changeInfo.url });
105 | });
106 |
107 | chrome.alarms.onAlarm.addListener((alarm) => {
108 | if (alarm.name === "webrtc-internals-exporter-alarm") {
109 | cleanupPeerConnections().catch((err) => {
110 | log(`cleanup peer connections error: ${err.message}`);
111 | });
112 | }
113 | });
114 |
115 | async function setPeerConnectionLastUpdate({ id, origin }, lastUpdate = 0) {
116 | let { peerConnectionsLastUpdate } = await chrome.storage.local.get(
117 | "peerConnectionsLastUpdate",
118 | );
119 | if (!peerConnectionsLastUpdate) {
120 | peerConnectionsLastUpdate = {};
121 | }
122 | if (lastUpdate) {
123 | peerConnectionsLastUpdate[id] = { origin, lastUpdate };
124 | } else {
125 | delete peerConnectionsLastUpdate[id];
126 | }
127 | await chrome.storage.local.set({ peerConnectionsLastUpdate });
128 |
129 | const peerConnectionsPerOrigin = {};
130 | Object.values(peerConnectionsLastUpdate).forEach(({ origin: o }) => {
131 | if (!peerConnectionsPerOrigin[o]) {
132 | peerConnectionsPerOrigin[o] = 0;
133 | }
134 | peerConnectionsPerOrigin[o]++;
135 | });
136 | await chrome.storage.local.set({ peerConnectionsPerOrigin });
137 | await optionsUpdated();
138 | }
139 |
140 | async function cleanupPeerConnections() {
141 | let { peerConnectionsLastUpdate } = await chrome.storage.local.get(
142 | "peerConnectionsLastUpdate",
143 | );
144 | if (
145 | !peerConnectionsLastUpdate ||
146 | !Object.keys(peerConnectionsLastUpdate).length
147 | ) {
148 | return;
149 | }
150 |
151 | log(
152 | `checking stale peer connections (${
153 | Object.keys(peerConnectionsLastUpdate).length
154 | } total)`,
155 | );
156 | const now = Date.now();
157 | await Promise.allSettled(
158 | Object.entries(peerConnectionsLastUpdate)
159 | .map(([id, { origin, lastUpdate }]) => {
160 | if (
161 | now - lastUpdate >
162 | Math.max(2 * options.updateInterval, 30) * 1000
163 | ) {
164 | return { id, origin };
165 | }
166 | })
167 | .filter((ret) => !!ret?.id)
168 | .map(({ id, origin }) => {
169 | log(`removing stale peer connection metrics: ${id} ${origin}`);
170 | return sendData("DELETE", { id, origin });
171 | }),
172 | );
173 | }
174 |
175 | // Send data to pushgateway.
176 | async function sendData(method, { id, origin }, data) {
177 | const { url, username, password, gzip, job } = options;
178 | const headers = {
179 | "Content-Type": "application/x-www-form-urlencoded",
180 | };
181 | if (username && password) {
182 | headers.Authorization = "Basic " + btoa(`${username}:${password}`);
183 | }
184 | if (data && gzip) {
185 | headers["Content-Encoding"] = "gzip";
186 | data = await pako.gzip(data);
187 | }
188 | /* console.log(
189 | `[webrtc-internals-exporter] sendData: ${data.length} bytes (gzip: ${gzip}) url: ${url} job: ${job}`,
190 | ); */
191 | const start = Date.now();
192 | const response = await fetch(
193 | `${url}/metrics/job/${job}/peerConnectionId/${id}`,
194 | {
195 | method,
196 | headers,
197 | body: method === "POST" ? data : undefined,
198 | },
199 | );
200 |
201 | const stats = await chrome.storage.local.get([
202 | "messagesSent",
203 | "bytesSent",
204 | "totalTime",
205 | "errors",
206 | ]);
207 | if (data) {
208 | stats.messagesSent = (stats.messagesSent || 0) + 1;
209 | stats.bytesSent = (stats.bytesSent || 0) + data.length;
210 | stats.totalTime = (stats.totalTime || 0) + Date.now() - start;
211 | }
212 | if (!response.ok) {
213 | stats.errors = (stats.errors || 0) + 1;
214 | }
215 | await chrome.storage.local.set(stats);
216 |
217 | if (!response.ok) {
218 | const text = await response.text();
219 | throw new Error(`Response status: ${response.status} error: ${text}`);
220 | }
221 |
222 | await setPeerConnectionLastUpdate(
223 | { id, origin },
224 | method === "POST" ? start : undefined,
225 | );
226 |
227 | return response.text();
228 | }
229 |
230 | const QualityLimitationReasons = {
231 | none: 0,
232 | bandwidth: 1,
233 | cpu: 2,
234 | other: 3,
235 | };
236 |
237 | /**
238 | * sendPeerConnectionStats
239 | * @param {string} url
240 | * @param {string} id
241 | * @param {RTCPeerConnectionState} state
242 | * @param {any} values
243 | */
244 | async function sendPeerConnectionStats(url, id, state, values) {
245 | const origin = new URL(url).origin;
246 |
247 | if (state === "closed") {
248 | return sendData("DELETE", { id, origin });
249 | }
250 |
251 | let data = "";
252 | const sentTypes = new Set();
253 |
254 | values.forEach((value) => {
255 | const type = value.type.replace(/-/g, "_");
256 | const labels = [`pageUrl="${url}"`];
257 | const metrics = [];
258 |
259 | if (value.type === "peer-connection") {
260 | labels.push(`state="${state}"`);
261 | }
262 |
263 | Object.entries(value).forEach(([key, v]) => {
264 | if (typeof v === "number") {
265 | metrics.push([key, v]);
266 | } else if (typeof v === "object") {
267 | Object.entries(v).forEach(([subkey, subv]) => {
268 | if (typeof subv === "number") {
269 | metrics.push([`${key}_${subkey}`, subv]);
270 | }
271 | });
272 | } else if (
273 | key === "qualityLimitationReason" &&
274 | QualityLimitationReasons[v] !== undefined
275 | ) {
276 | metrics.push([key, QualityLimitationReasons[v]]);
277 | } else if (key === "googTimingFrameInfo") {
278 | // TODO
279 | } else {
280 | labels.push(`${key}="${v}"`);
281 | }
282 | });
283 |
284 | metrics.forEach(([key, v]) => {
285 | const name = `${type}_${key.replace(/-/g, "_")}`;
286 | let typeDesc = "";
287 |
288 | if (!sentTypes.has(name)) {
289 | typeDesc = `# TYPE ${name} gauge\n`;
290 | sentTypes.add(name);
291 | }
292 | data += `${typeDesc}${name}{${labels.join(",")}} ${v}\n`;
293 | });
294 | });
295 |
296 | if (data.length > 0) {
297 | return sendData("POST", { id, origin }, data + "\n");
298 | }
299 | }
300 |
301 | chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
302 | if (message.event === "peer-connection-stats") {
303 | const { url, id, state, values } = message.data;
304 |
305 | sendPeerConnectionStats(url, id, state, values)
306 | .then(() => {
307 | sendResponse({});
308 | })
309 | .catch((err) => {
310 | sendResponse({ error: err.message });
311 | });
312 | } else {
313 | sendResponse({ error: "unknown event" });
314 | }
315 |
316 | return true;
317 | });
318 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | GNU AFFERO GENERAL PUBLIC LICENSE
2 | Version 3, 19 November 2007
3 |
4 | Copyright (C) 2007 Free Software Foundation, Inc.
5 | Everyone is permitted to copy and distribute verbatim copies
6 | of this license document, but changing it is not allowed.
7 |
8 | Preamble
9 |
10 | The GNU Affero General Public License is a free, copyleft license for
11 | software and other kinds of works, specifically designed to ensure
12 | cooperation with the community in the case of network server software.
13 |
14 | The licenses for most software and other practical works are designed
15 | to take away your freedom to share and change the works. By contrast,
16 | our General Public Licenses are intended to guarantee your freedom to
17 | share and change all versions of a program--to make sure it remains free
18 | software for all its users.
19 |
20 | When we speak of free software, we are referring to freedom, not
21 | price. Our General Public Licenses are designed to make sure that you
22 | have the freedom to distribute copies of free software (and charge for
23 | them if you wish), that you receive source code or can get it if you
24 | want it, that you can change the software or use pieces of it in new
25 | free programs, and that you know you can do these things.
26 |
27 | Developers that use our General Public Licenses protect your rights
28 | with two steps: (1) assert copyright on the software, and (2) offer
29 | you this License which gives you legal permission to copy, distribute
30 | and/or modify the software.
31 |
32 | A secondary benefit of defending all users' freedom is that
33 | improvements made in alternate versions of the program, if they
34 | receive widespread use, become available for other developers to
35 | incorporate. Many developers of free software are heartened and
36 | encouraged by the resulting cooperation. However, in the case of
37 | software used on network servers, this result may fail to come about.
38 | The GNU General Public License permits making a modified version and
39 | letting the public access it on a server without ever releasing its
40 | source code to the public.
41 |
42 | The GNU Affero General Public License is designed specifically to
43 | ensure that, in such cases, the modified source code becomes available
44 | to the community. It requires the operator of a network server to
45 | provide the source code of the modified version running there to the
46 | users of that server. Therefore, public use of a modified version, on
47 | a publicly accessible server, gives the public access to the source
48 | code of the modified version.
49 |
50 | An older license, called the Affero General Public License and
51 | published by Affero, was designed to accomplish similar goals. This is
52 | a different license, not a version of the Affero GPL, but Affero has
53 | released a new version of the Affero GPL which permits relicensing under
54 | this license.
55 |
56 | The precise terms and conditions for copying, distribution and
57 | modification follow.
58 |
59 | TERMS AND CONDITIONS
60 |
61 | 0. Definitions.
62 |
63 | "This License" refers to version 3 of the GNU Affero General Public License.
64 |
65 | "Copyright" also means copyright-like laws that apply to other kinds of
66 | works, such as semiconductor masks.
67 |
68 | "The Program" refers to any copyrightable work licensed under this
69 | License. Each licensee is addressed as "you". "Licensees" and
70 | "recipients" may be individuals or organizations.
71 |
72 | To "modify" a work means to copy from or adapt all or part of the work
73 | in a fashion requiring copyright permission, other than the making of an
74 | exact copy. The resulting work is called a "modified version" of the
75 | earlier work or a work "based on" the earlier work.
76 |
77 | A "covered work" means either the unmodified Program or a work based
78 | on the Program.
79 |
80 | To "propagate" a work means to do anything with it that, without
81 | permission, would make you directly or secondarily liable for
82 | infringement under applicable copyright law, except executing it on a
83 | computer or modifying a private copy. Propagation includes copying,
84 | distribution (with or without modification), making available to the
85 | public, and in some countries other activities as well.
86 |
87 | To "convey" a work means any kind of propagation that enables other
88 | parties to make or receive copies. Mere interaction with a user through
89 | a computer network, with no transfer of a copy, is not conveying.
90 |
91 | An interactive user interface displays "Appropriate Legal Notices"
92 | to the extent that it includes a convenient and prominently visible
93 | feature that (1) displays an appropriate copyright notice, and (2)
94 | tells the user that there is no warranty for the work (except to the
95 | extent that warranties are provided), that licensees may convey the
96 | work under this License, and how to view a copy of this License. If
97 | the interface presents a list of user commands or options, such as a
98 | menu, a prominent item in the list meets this criterion.
99 |
100 | 1. Source Code.
101 |
102 | The "source code" for a work means the preferred form of the work
103 | for making modifications to it. "Object code" means any non-source
104 | form of a work.
105 |
106 | A "Standard Interface" means an interface that either is an official
107 | standard defined by a recognized standards body, or, in the case of
108 | interfaces specified for a particular programming language, one that
109 | is widely used among developers working in that language.
110 |
111 | The "System Libraries" of an executable work include anything, other
112 | than the work as a whole, that (a) is included in the normal form of
113 | packaging a Major Component, but which is not part of that Major
114 | Component, and (b) serves only to enable use of the work with that
115 | Major Component, or to implement a Standard Interface for which an
116 | implementation is available to the public in source code form. A
117 | "Major Component", in this context, means a major essential component
118 | (kernel, window system, and so on) of the specific operating system
119 | (if any) on which the executable work runs, or a compiler used to
120 | produce the work, or an object code interpreter used to run it.
121 |
122 | The "Corresponding Source" for a work in object code form means all
123 | the source code needed to generate, install, and (for an executable
124 | work) run the object code and to modify the work, including scripts to
125 | control those activities. However, it does not include the work's
126 | System Libraries, or general-purpose tools or generally available free
127 | programs which are used unmodified in performing those activities but
128 | which are not part of the work. For example, Corresponding Source
129 | includes interface definition files associated with source files for
130 | the work, and the source code for shared libraries and dynamically
131 | linked subprograms that the work is specifically designed to require,
132 | such as by intimate data communication or control flow between those
133 | subprograms and other parts of the work.
134 |
135 | The Corresponding Source need not include anything that users
136 | can regenerate automatically from other parts of the Corresponding
137 | Source.
138 |
139 | The Corresponding Source for a work in source code form is that
140 | same work.
141 |
142 | 2. Basic Permissions.
143 |
144 | All rights granted under this License are granted for the term of
145 | copyright on the Program, and are irrevocable provided the stated
146 | conditions are met. This License explicitly affirms your unlimited
147 | permission to run the unmodified Program. The output from running a
148 | covered work is covered by this License only if the output, given its
149 | content, constitutes a covered work. This License acknowledges your
150 | rights of fair use or other equivalent, as provided by copyright law.
151 |
152 | You may make, run and propagate covered works that you do not
153 | convey, without conditions so long as your license otherwise remains
154 | in force. You may convey covered works to others for the sole purpose
155 | of having them make modifications exclusively for you, or provide you
156 | with facilities for running those works, provided that you comply with
157 | the terms of this License in conveying all material for which you do
158 | not control copyright. Those thus making or running the covered works
159 | for you must do so exclusively on your behalf, under your direction
160 | and control, on terms that prohibit them from making any copies of
161 | your copyrighted material outside their relationship with you.
162 |
163 | Conveying under any other circumstances is permitted solely under
164 | the conditions stated below. Sublicensing is not allowed; section 10
165 | makes it unnecessary.
166 |
167 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
168 |
169 | No covered work shall be deemed part of an effective technological
170 | measure under any applicable law fulfilling obligations under article
171 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or
172 | similar laws prohibiting or restricting circumvention of such
173 | measures.
174 |
175 | When you convey a covered work, you waive any legal power to forbid
176 | circumvention of technological measures to the extent such circumvention
177 | is effected by exercising rights under this License with respect to
178 | the covered work, and you disclaim any intention to limit operation or
179 | modification of the work as a means of enforcing, against the work's
180 | users, your or third parties' legal rights to forbid circumvention of
181 | technological measures.
182 |
183 | 4. Conveying Verbatim Copies.
184 |
185 | You may convey verbatim copies of the Program's source code as you
186 | receive it, in any medium, provided that you conspicuously and
187 | appropriately publish on each copy an appropriate copyright notice;
188 | keep intact all notices stating that this License and any
189 | non-permissive terms added in accord with section 7 apply to the code;
190 | keep intact all notices of the absence of any warranty; and give all
191 | recipients a copy of this License along with the Program.
192 |
193 | You may charge any price or no price for each copy that you convey,
194 | and you may offer support or warranty protection for a fee.
195 |
196 | 5. Conveying Modified Source Versions.
197 |
198 | You may convey a work based on the Program, or the modifications to
199 | produce it from the Program, in the form of source code under the
200 | terms of section 4, provided that you also meet all of these conditions:
201 |
202 | a) The work must carry prominent notices stating that you modified
203 | it, and giving a relevant date.
204 |
205 | b) The work must carry prominent notices stating that it is
206 | released under this License and any conditions added under section
207 | 7. This requirement modifies the requirement in section 4 to
208 | "keep intact all notices".
209 |
210 | c) You must license the entire work, as a whole, under this
211 | License to anyone who comes into possession of a copy. This
212 | License will therefore apply, along with any applicable section 7
213 | additional terms, to the whole of the work, and all its parts,
214 | regardless of how they are packaged. This License gives no
215 | permission to license the work in any other way, but it does not
216 | invalidate such permission if you have separately received it.
217 |
218 | d) If the work has interactive user interfaces, each must display
219 | Appropriate Legal Notices; however, if the Program has interactive
220 | interfaces that do not display Appropriate Legal Notices, your
221 | work need not make them do so.
222 |
223 | A compilation of a covered work with other separate and independent
224 | works, which are not by their nature extensions of the covered work,
225 | and which are not combined with it such as to form a larger program,
226 | in or on a volume of a storage or distribution medium, is called an
227 | "aggregate" if the compilation and its resulting copyright are not
228 | used to limit the access or legal rights of the compilation's users
229 | beyond what the individual works permit. Inclusion of a covered work
230 | in an aggregate does not cause this License to apply to the other
231 | parts of the aggregate.
232 |
233 | 6. Conveying Non-Source Forms.
234 |
235 | You may convey a covered work in object code form under the terms
236 | of sections 4 and 5, provided that you also convey the
237 | machine-readable Corresponding Source under the terms of this License,
238 | in one of these ways:
239 |
240 | a) Convey the object code in, or embodied in, a physical product
241 | (including a physical distribution medium), accompanied by the
242 | Corresponding Source fixed on a durable physical medium
243 | customarily used for software interchange.
244 |
245 | b) Convey the object code in, or embodied in, a physical product
246 | (including a physical distribution medium), accompanied by a
247 | written offer, valid for at least three years and valid for as
248 | long as you offer spare parts or customer support for that product
249 | model, to give anyone who possesses the object code either (1) a
250 | copy of the Corresponding Source for all the software in the
251 | product that is covered by this License, on a durable physical
252 | medium customarily used for software interchange, for a price no
253 | more than your reasonable cost of physically performing this
254 | conveying of source, or (2) access to copy the
255 | Corresponding Source from a network server at no charge.
256 |
257 | c) Convey individual copies of the object code with a copy of the
258 | written offer to provide the Corresponding Source. This
259 | alternative is allowed only occasionally and noncommercially, and
260 | only if you received the object code with such an offer, in accord
261 | with subsection 6b.
262 |
263 | d) Convey the object code by offering access from a designated
264 | place (gratis or for a charge), and offer equivalent access to the
265 | Corresponding Source in the same way through the same place at no
266 | further charge. You need not require recipients to copy the
267 | Corresponding Source along with the object code. If the place to
268 | copy the object code is a network server, the Corresponding Source
269 | may be on a different server (operated by you or a third party)
270 | that supports equivalent copying facilities, provided you maintain
271 | clear directions next to the object code saying where to find the
272 | Corresponding Source. Regardless of what server hosts the
273 | Corresponding Source, you remain obligated to ensure that it is
274 | available for as long as needed to satisfy these requirements.
275 |
276 | e) Convey the object code using peer-to-peer transmission, provided
277 | you inform other peers where the object code and Corresponding
278 | Source of the work are being offered to the general public at no
279 | charge under subsection 6d.
280 |
281 | A separable portion of the object code, whose source code is excluded
282 | from the Corresponding Source as a System Library, need not be
283 | included in conveying the object code work.
284 |
285 | A "User Product" is either (1) a "consumer product", which means any
286 | tangible personal property which is normally used for personal, family,
287 | or household purposes, or (2) anything designed or sold for incorporation
288 | into a dwelling. In determining whether a product is a consumer product,
289 | doubtful cases shall be resolved in favor of coverage. For a particular
290 | product received by a particular user, "normally used" refers to a
291 | typical or common use of that class of product, regardless of the status
292 | of the particular user or of the way in which the particular user
293 | actually uses, or expects or is expected to use, the product. A product
294 | is a consumer product regardless of whether the product has substantial
295 | commercial, industrial or non-consumer uses, unless such uses represent
296 | the only significant mode of use of the product.
297 |
298 | "Installation Information" for a User Product means any methods,
299 | procedures, authorization keys, or other information required to install
300 | and execute modified versions of a covered work in that User Product from
301 | a modified version of its Corresponding Source. The information must
302 | suffice to ensure that the continued functioning of the modified object
303 | code is in no case prevented or interfered with solely because
304 | modification has been made.
305 |
306 | If you convey an object code work under this section in, or with, or
307 | specifically for use in, a User Product, and the conveying occurs as
308 | part of a transaction in which the right of possession and use of the
309 | User Product is transferred to the recipient in perpetuity or for a
310 | fixed term (regardless of how the transaction is characterized), the
311 | Corresponding Source conveyed under this section must be accompanied
312 | by the Installation Information. But this requirement does not apply
313 | if neither you nor any third party retains the ability to install
314 | modified object code on the User Product (for example, the work has
315 | been installed in ROM).
316 |
317 | The requirement to provide Installation Information does not include a
318 | requirement to continue to provide support service, warranty, or updates
319 | for a work that has been modified or installed by the recipient, or for
320 | the User Product in which it has been modified or installed. Access to a
321 | network may be denied when the modification itself materially and
322 | adversely affects the operation of the network or violates the rules and
323 | protocols for communication across the network.
324 |
325 | Corresponding Source conveyed, and Installation Information provided,
326 | in accord with this section must be in a format that is publicly
327 | documented (and with an implementation available to the public in
328 | source code form), and must require no special password or key for
329 | unpacking, reading or copying.
330 |
331 | 7. Additional Terms.
332 |
333 | "Additional permissions" are terms that supplement the terms of this
334 | License by making exceptions from one or more of its conditions.
335 | Additional permissions that are applicable to the entire Program shall
336 | be treated as though they were included in this License, to the extent
337 | that they are valid under applicable law. If additional permissions
338 | apply only to part of the Program, that part may be used separately
339 | under those permissions, but the entire Program remains governed by
340 | this License without regard to the additional permissions.
341 |
342 | When you convey a copy of a covered work, you may at your option
343 | remove any additional permissions from that copy, or from any part of
344 | it. (Additional permissions may be written to require their own
345 | removal in certain cases when you modify the work.) You may place
346 | additional permissions on material, added by you to a covered work,
347 | for which you have or can give appropriate copyright permission.
348 |
349 | Notwithstanding any other provision of this License, for material you
350 | add to a covered work, you may (if authorized by the copyright holders of
351 | that material) supplement the terms of this License with terms:
352 |
353 | a) Disclaiming warranty or limiting liability differently from the
354 | terms of sections 15 and 16 of this License; or
355 |
356 | b) Requiring preservation of specified reasonable legal notices or
357 | author attributions in that material or in the Appropriate Legal
358 | Notices displayed by works containing it; or
359 |
360 | c) Prohibiting misrepresentation of the origin of that material, or
361 | requiring that modified versions of such material be marked in
362 | reasonable ways as different from the original version; or
363 |
364 | d) Limiting the use for publicity purposes of names of licensors or
365 | authors of the material; or
366 |
367 | e) Declining to grant rights under trademark law for use of some
368 | trade names, trademarks, or service marks; or
369 |
370 | f) Requiring indemnification of licensors and authors of that
371 | material by anyone who conveys the material (or modified versions of
372 | it) with contractual assumptions of liability to the recipient, for
373 | any liability that these contractual assumptions directly impose on
374 | those licensors and authors.
375 |
376 | All other non-permissive additional terms are considered "further
377 | restrictions" within the meaning of section 10. If the Program as you
378 | received it, or any part of it, contains a notice stating that it is
379 | governed by this License along with a term that is a further
380 | restriction, you may remove that term. If a license document contains
381 | a further restriction but permits relicensing or conveying under this
382 | License, you may add to a covered work material governed by the terms
383 | of that license document, provided that the further restriction does
384 | not survive such relicensing or conveying.
385 |
386 | If you add terms to a covered work in accord with this section, you
387 | must place, in the relevant source files, a statement of the
388 | additional terms that apply to those files, or a notice indicating
389 | where to find the applicable terms.
390 |
391 | Additional terms, permissive or non-permissive, may be stated in the
392 | form of a separately written license, or stated as exceptions;
393 | the above requirements apply either way.
394 |
395 | 8. Termination.
396 |
397 | You may not propagate or modify a covered work except as expressly
398 | provided under this License. Any attempt otherwise to propagate or
399 | modify it is void, and will automatically terminate your rights under
400 | this License (including any patent licenses granted under the third
401 | paragraph of section 11).
402 |
403 | However, if you cease all violation of this License, then your
404 | license from a particular copyright holder is reinstated (a)
405 | provisionally, unless and until the copyright holder explicitly and
406 | finally terminates your license, and (b) permanently, if the copyright
407 | holder fails to notify you of the violation by some reasonable means
408 | prior to 60 days after the cessation.
409 |
410 | Moreover, your license from a particular copyright holder is
411 | reinstated permanently if the copyright holder notifies you of the
412 | violation by some reasonable means, this is the first time you have
413 | received notice of violation of this License (for any work) from that
414 | copyright holder, and you cure the violation prior to 30 days after
415 | your receipt of the notice.
416 |
417 | Termination of your rights under this section does not terminate the
418 | licenses of parties who have received copies or rights from you under
419 | this License. If your rights have been terminated and not permanently
420 | reinstated, you do not qualify to receive new licenses for the same
421 | material under section 10.
422 |
423 | 9. Acceptance Not Required for Having Copies.
424 |
425 | You are not required to accept this License in order to receive or
426 | run a copy of the Program. Ancillary propagation of a covered work
427 | occurring solely as a consequence of using peer-to-peer transmission
428 | to receive a copy likewise does not require acceptance. However,
429 | nothing other than this License grants you permission to propagate or
430 | modify any covered work. These actions infringe copyright if you do
431 | not accept this License. Therefore, by modifying or propagating a
432 | covered work, you indicate your acceptance of this License to do so.
433 |
434 | 10. Automatic Licensing of Downstream Recipients.
435 |
436 | Each time you convey a covered work, the recipient automatically
437 | receives a license from the original licensors, to run, modify and
438 | propagate that work, subject to this License. You are not responsible
439 | for enforcing compliance by third parties with this License.
440 |
441 | An "entity transaction" is a transaction transferring control of an
442 | organization, or substantially all assets of one, or subdividing an
443 | organization, or merging organizations. If propagation of a covered
444 | work results from an entity transaction, each party to that
445 | transaction who receives a copy of the work also receives whatever
446 | licenses to the work the party's predecessor in interest had or could
447 | give under the previous paragraph, plus a right to possession of the
448 | Corresponding Source of the work from the predecessor in interest, if
449 | the predecessor has it or can get it with reasonable efforts.
450 |
451 | You may not impose any further restrictions on the exercise of the
452 | rights granted or affirmed under this License. For example, you may
453 | not impose a license fee, royalty, or other charge for exercise of
454 | rights granted under this License, and you may not initiate litigation
455 | (including a cross-claim or counterclaim in a lawsuit) alleging that
456 | any patent claim is infringed by making, using, selling, offering for
457 | sale, or importing the Program or any portion of it.
458 |
459 | 11. Patents.
460 |
461 | A "contributor" is a copyright holder who authorizes use under this
462 | License of the Program or a work on which the Program is based. The
463 | work thus licensed is called the contributor's "contributor version".
464 |
465 | A contributor's "essential patent claims" are all patent claims
466 | owned or controlled by the contributor, whether already acquired or
467 | hereafter acquired, that would be infringed by some manner, permitted
468 | by this License, of making, using, or selling its contributor version,
469 | but do not include claims that would be infringed only as a
470 | consequence of further modification of the contributor version. For
471 | purposes of this definition, "control" includes the right to grant
472 | patent sublicenses in a manner consistent with the requirements of
473 | this License.
474 |
475 | Each contributor grants you a non-exclusive, worldwide, royalty-free
476 | patent license under the contributor's essential patent claims, to
477 | make, use, sell, offer for sale, import and otherwise run, modify and
478 | propagate the contents of its contributor version.
479 |
480 | In the following three paragraphs, a "patent license" is any express
481 | agreement or commitment, however denominated, not to enforce a patent
482 | (such as an express permission to practice a patent or covenant not to
483 | sue for patent infringement). To "grant" such a patent license to a
484 | party means to make such an agreement or commitment not to enforce a
485 | patent against the party.
486 |
487 | If you convey a covered work, knowingly relying on a patent license,
488 | and the Corresponding Source of the work is not available for anyone
489 | to copy, free of charge and under the terms of this License, through a
490 | publicly available network server or other readily accessible means,
491 | then you must either (1) cause the Corresponding Source to be so
492 | available, or (2) arrange to deprive yourself of the benefit of the
493 | patent license for this particular work, or (3) arrange, in a manner
494 | consistent with the requirements of this License, to extend the patent
495 | license to downstream recipients. "Knowingly relying" means you have
496 | actual knowledge that, but for the patent license, your conveying the
497 | covered work in a country, or your recipient's use of the covered work
498 | in a country, would infringe one or more identifiable patents in that
499 | country that you have reason to believe are valid.
500 |
501 | If, pursuant to or in connection with a single transaction or
502 | arrangement, you convey, or propagate by procuring conveyance of, a
503 | covered work, and grant a patent license to some of the parties
504 | receiving the covered work authorizing them to use, propagate, modify
505 | or convey a specific copy of the covered work, then the patent license
506 | you grant is automatically extended to all recipients of the covered
507 | work and works based on it.
508 |
509 | A patent license is "discriminatory" if it does not include within
510 | the scope of its coverage, prohibits the exercise of, or is
511 | conditioned on the non-exercise of one or more of the rights that are
512 | specifically granted under this License. You may not convey a covered
513 | work if you are a party to an arrangement with a third party that is
514 | in the business of distributing software, under which you make payment
515 | to the third party based on the extent of your activity of conveying
516 | the work, and under which the third party grants, to any of the
517 | parties who would receive the covered work from you, a discriminatory
518 | patent license (a) in connection with copies of the covered work
519 | conveyed by you (or copies made from those copies), or (b) primarily
520 | for and in connection with specific products or compilations that
521 | contain the covered work, unless you entered into that arrangement,
522 | or that patent license was granted, prior to 28 March 2007.
523 |
524 | Nothing in this License shall be construed as excluding or limiting
525 | any implied license or other defenses to infringement that may
526 | otherwise be available to you under applicable patent law.
527 |
528 | 12. No Surrender of Others' Freedom.
529 |
530 | If conditions are imposed on you (whether by court order, agreement or
531 | otherwise) that contradict the conditions of this License, they do not
532 | excuse you from the conditions of this License. If you cannot convey a
533 | covered work so as to satisfy simultaneously your obligations under this
534 | License and any other pertinent obligations, then as a consequence you may
535 | not convey it at all. For example, if you agree to terms that obligate you
536 | to collect a royalty for further conveying from those to whom you convey
537 | the Program, the only way you could satisfy both those terms and this
538 | License would be to refrain entirely from conveying the Program.
539 |
540 | 13. Remote Network Interaction; Use with the GNU General Public License.
541 |
542 | Notwithstanding any other provision of this License, if you modify the
543 | Program, your modified version must prominently offer all users
544 | interacting with it remotely through a computer network (if your version
545 | supports such interaction) an opportunity to receive the Corresponding
546 | Source of your version by providing access to the Corresponding Source
547 | from a network server at no charge, through some standard or customary
548 | means of facilitating copying of software. This Corresponding Source
549 | shall include the Corresponding Source for any work covered by version 3
550 | of the GNU General Public License that is incorporated pursuant to the
551 | following paragraph.
552 |
553 | Notwithstanding any other provision of this License, you have
554 | permission to link or combine any covered work with a work licensed
555 | under version 3 of the GNU General Public License into a single
556 | combined work, and to convey the resulting work. The terms of this
557 | License will continue to apply to the part which is the covered work,
558 | but the work with which it is combined will remain governed by version
559 | 3 of the GNU General Public License.
560 |
561 | 14. Revised Versions of this License.
562 |
563 | The Free Software Foundation may publish revised and/or new versions of
564 | the GNU Affero General Public License from time to time. Such new versions
565 | will be similar in spirit to the present version, but may differ in detail to
566 | address new problems or concerns.
567 |
568 | Each version is given a distinguishing version number. If the
569 | Program specifies that a certain numbered version of the GNU Affero General
570 | Public License "or any later version" applies to it, you have the
571 | option of following the terms and conditions either of that numbered
572 | version or of any later version published by the Free Software
573 | Foundation. If the Program does not specify a version number of the
574 | GNU Affero General Public License, you may choose any version ever published
575 | by the Free Software Foundation.
576 |
577 | If the Program specifies that a proxy can decide which future
578 | versions of the GNU Affero General Public License can be used, that proxy's
579 | public statement of acceptance of a version permanently authorizes you
580 | to choose that version for the Program.
581 |
582 | Later license versions may give you additional or different
583 | permissions. However, no additional obligations are imposed on any
584 | author or copyright holder as a result of your choosing to follow a
585 | later version.
586 |
587 | 15. Disclaimer of Warranty.
588 |
589 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
590 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
591 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
592 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
593 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
594 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
595 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
596 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
597 |
598 | 16. Limitation of Liability.
599 |
600 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
601 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
602 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
603 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
604 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
605 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
606 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
607 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
608 | SUCH DAMAGES.
609 |
610 | 17. Interpretation of Sections 15 and 16.
611 |
612 | If the disclaimer of warranty and limitation of liability provided
613 | above cannot be given local legal effect according to their terms,
614 | reviewing courts shall apply local law that most closely approximates
615 | an absolute waiver of all civil liability in connection with the
616 | Program, unless a warranty or assumption of liability accompanies a
617 | copy of the Program in return for a fee.
618 |
619 | END OF TERMS AND CONDITIONS
620 |
621 | How to Apply These Terms to Your New Programs
622 |
623 | If you develop a new program, and you want it to be of the greatest
624 | possible use to the public, the best way to achieve this is to make it
625 | free software which everyone can redistribute and change under these terms.
626 |
627 | To do so, attach the following notices to the program. It is safest
628 | to attach them to the start of each source file to most effectively
629 | state the exclusion of warranty; and each file should have at least
630 | the "copyright" line and a pointer to where the full notice is found.
631 |
632 |
633 | Copyright (C)
634 |
635 | This program is free software: you can redistribute it and/or modify
636 | it under the terms of the GNU Affero General Public License as published
637 | by the Free Software Foundation, either version 3 of the License, or
638 | (at your option) any later version.
639 |
640 | This program is distributed in the hope that it will be useful,
641 | but WITHOUT ANY WARRANTY; without even the implied warranty of
642 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
643 | GNU Affero General Public License for more details.
644 |
645 | You should have received a copy of the GNU Affero General Public License
646 | along with this program. If not, see .
647 |
648 | Also add information on how to contact you by electronic and paper mail.
649 |
650 | If your software can interact with users remotely through a computer
651 | network, you should also make sure that it provides a way for users to
652 | get its source. For example, if your program is a web application, its
653 | interface could display a "Source" link that leads users to an archive
654 | of the code. There are many ways you could offer source, and different
655 | solutions will be better for different programs; see section 13 for the
656 | specific requirements.
657 |
658 | You should also get your employer (if you work as a programmer) or school,
659 | if any, to sign a "copyright disclaimer" for the program, if necessary.
660 | For more information on this, and how to apply and follow the GNU AGPL, see
661 | .
662 |
--------------------------------------------------------------------------------
/app/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@aashutoshrathi/word-wrap@^1.2.3":
6 | version "1.2.6"
7 | resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf"
8 | integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==
9 |
10 | "@babel/parser@^7.23.0":
11 | version "7.23.0"
12 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719"
13 | integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==
14 |
15 | "@esbuild/android-arm64@0.18.20":
16 | version "0.18.20"
17 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622"
18 | integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==
19 |
20 | "@esbuild/android-arm@0.18.20":
21 | version "0.18.20"
22 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682"
23 | integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==
24 |
25 | "@esbuild/android-x64@0.18.20":
26 | version "0.18.20"
27 | resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2"
28 | integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==
29 |
30 | "@esbuild/darwin-arm64@0.18.20":
31 | version "0.18.20"
32 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1"
33 | integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==
34 |
35 | "@esbuild/darwin-x64@0.18.20":
36 | version "0.18.20"
37 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d"
38 | integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==
39 |
40 | "@esbuild/freebsd-arm64@0.18.20":
41 | version "0.18.20"
42 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54"
43 | integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==
44 |
45 | "@esbuild/freebsd-x64@0.18.20":
46 | version "0.18.20"
47 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e"
48 | integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==
49 |
50 | "@esbuild/linux-arm64@0.18.20":
51 | version "0.18.20"
52 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0"
53 | integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==
54 |
55 | "@esbuild/linux-arm@0.18.20":
56 | version "0.18.20"
57 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0"
58 | integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==
59 |
60 | "@esbuild/linux-ia32@0.18.20":
61 | version "0.18.20"
62 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7"
63 | integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==
64 |
65 | "@esbuild/linux-loong64@0.18.20":
66 | version "0.18.20"
67 | resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d"
68 | integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==
69 |
70 | "@esbuild/linux-mips64el@0.18.20":
71 | version "0.18.20"
72 | resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231"
73 | integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==
74 |
75 | "@esbuild/linux-ppc64@0.18.20":
76 | version "0.18.20"
77 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb"
78 | integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==
79 |
80 | "@esbuild/linux-riscv64@0.18.20":
81 | version "0.18.20"
82 | resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6"
83 | integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==
84 |
85 | "@esbuild/linux-s390x@0.18.20":
86 | version "0.18.20"
87 | resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071"
88 | integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==
89 |
90 | "@esbuild/linux-x64@0.18.20":
91 | version "0.18.20"
92 | resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338"
93 | integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==
94 |
95 | "@esbuild/netbsd-x64@0.18.20":
96 | version "0.18.20"
97 | resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1"
98 | integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==
99 |
100 | "@esbuild/openbsd-x64@0.18.20":
101 | version "0.18.20"
102 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae"
103 | integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==
104 |
105 | "@esbuild/sunos-x64@0.18.20":
106 | version "0.18.20"
107 | resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d"
108 | integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==
109 |
110 | "@esbuild/win32-arm64@0.18.20":
111 | version "0.18.20"
112 | resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9"
113 | integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==
114 |
115 | "@esbuild/win32-ia32@0.18.20":
116 | version "0.18.20"
117 | resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102"
118 | integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==
119 |
120 | "@esbuild/win32-x64@0.18.20":
121 | version "0.18.20"
122 | resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d"
123 | integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==
124 |
125 | "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0":
126 | version "4.4.0"
127 | resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59"
128 | integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==
129 | dependencies:
130 | eslint-visitor-keys "^3.3.0"
131 |
132 | "@eslint-community/regexpp@^4.6.1":
133 | version "4.10.0"
134 | resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63"
135 | integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==
136 |
137 | "@eslint/eslintrc@^2.1.2":
138 | version "2.1.2"
139 | resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.2.tgz#c6936b4b328c64496692f76944e755738be62396"
140 | integrity sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==
141 | dependencies:
142 | ajv "^6.12.4"
143 | debug "^4.3.2"
144 | espree "^9.6.0"
145 | globals "^13.19.0"
146 | ignore "^5.2.0"
147 | import-fresh "^3.2.1"
148 | js-yaml "^4.1.0"
149 | minimatch "^3.1.2"
150 | strip-json-comments "^3.1.1"
151 |
152 | "@eslint/js@8.52.0":
153 | version "8.52.0"
154 | resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.52.0.tgz#78fe5f117840f69dc4a353adf9b9cd926353378c"
155 | integrity sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==
156 |
157 | "@humanwhocodes/config-array@^0.11.13":
158 | version "0.11.13"
159 | resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297"
160 | integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==
161 | dependencies:
162 | "@humanwhocodes/object-schema" "^2.0.1"
163 | debug "^4.1.1"
164 | minimatch "^3.0.5"
165 |
166 | "@humanwhocodes/module-importer@^1.0.1":
167 | version "1.0.1"
168 | resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
169 | integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
170 |
171 | "@humanwhocodes/object-schema@^2.0.1":
172 | version "2.0.1"
173 | resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044"
174 | integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==
175 |
176 | "@jridgewell/sourcemap-codec@^1.4.15":
177 | version "1.4.15"
178 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
179 | integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
180 |
181 | "@mdi/font@^7.3.67":
182 | version "7.3.67"
183 | resolved "https://registry.yarnpkg.com/@mdi/font/-/font-7.3.67.tgz#faa344a04c9d02f608c891a01134084febeb42db"
184 | integrity sha512-SWxvzRbUQRfewlIV+OF4/YF4DkeTjMWoT8Hh9yeU/5UBVdJZj9Uf4a9+cXjknSIhIaMxZ/4N1O/s7ojApOOGjg==
185 |
186 | "@nodelib/fs.scandir@2.1.5":
187 | version "2.1.5"
188 | resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz"
189 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
190 | dependencies:
191 | "@nodelib/fs.stat" "2.0.5"
192 | run-parallel "^1.1.9"
193 |
194 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
195 | version "2.0.5"
196 | resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
197 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
198 |
199 | "@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8":
200 | version "1.2.8"
201 | resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz"
202 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
203 | dependencies:
204 | "@nodelib/fs.scandir" "2.1.5"
205 | fastq "^1.6.0"
206 |
207 | "@pkgr/utils@^2.3.1":
208 | version "2.4.2"
209 | resolved "https://registry.yarnpkg.com/@pkgr/utils/-/utils-2.4.2.tgz#9e638bbe9a6a6f165580dc943f138fd3309a2cbc"
210 | integrity sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==
211 | dependencies:
212 | cross-spawn "^7.0.3"
213 | fast-glob "^3.3.0"
214 | is-glob "^4.0.3"
215 | open "^9.1.0"
216 | picocolors "^1.0.0"
217 | tslib "^2.6.0"
218 |
219 | "@popperjs/core@^2.11.6":
220 | version "2.11.6"
221 | resolved "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz"
222 | integrity sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==
223 |
224 | "@rushstack/eslint-patch@^1.1.4":
225 | version "1.1.4"
226 | resolved "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.4.tgz"
227 | integrity sha512-LwzQKA4vzIct1zNZzBmRKI9QuNpLgTQMEjsQLf3BXuGYb3QPTP4Yjf6mkdX+X1mYttZ808QpOwAzZjv28kq7DA==
228 |
229 | "@ungap/structured-clone@^1.2.0":
230 | version "1.2.0"
231 | resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406"
232 | integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==
233 |
234 | "@vitejs/plugin-vue@^4.4.0":
235 | version "4.4.0"
236 | resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-4.4.0.tgz#8ae96573236cdb12de6850a6d929b5537ec85390"
237 | integrity sha512-xdguqb+VUwiRpSg+nsc2HtbAUSGak25DXYvpQQi4RVU1Xq1uworyoH/md9Rfd8zMmPR/pSghr309QNcftUVseg==
238 |
239 | "@vue/compiler-core@3.3.8":
240 | version "3.3.8"
241 | resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.3.8.tgz#301bb60d0245265a88ed5b30e200fbf223acb313"
242 | integrity sha512-hN/NNBUECw8SusQvDSqqcVv6gWq8L6iAktUR0UF3vGu2OhzRqcOiAno0FmBJWwxhYEXRlQJT5XnoKsVq1WZx4g==
243 | dependencies:
244 | "@babel/parser" "^7.23.0"
245 | "@vue/shared" "3.3.8"
246 | estree-walker "^2.0.2"
247 | source-map-js "^1.0.2"
248 |
249 | "@vue/compiler-dom@3.3.8":
250 | version "3.3.8"
251 | resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.3.8.tgz#09d832514b9b8d9415a3816b065d69dbefcc7e9b"
252 | integrity sha512-+PPtv+p/nWDd0AvJu3w8HS0RIm/C6VGBIRe24b9hSyNWOAPEUosFZ5diwawwP8ip5sJ8n0Pe87TNNNHnvjs0FQ==
253 | dependencies:
254 | "@vue/compiler-core" "3.3.8"
255 | "@vue/shared" "3.3.8"
256 |
257 | "@vue/compiler-sfc@3.3.8":
258 | version "3.3.8"
259 | resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.3.8.tgz#40b18e48aa00260950964d1d72157668521be0e1"
260 | integrity sha512-WMzbUrlTjfYF8joyT84HfwwXo+8WPALuPxhy+BZ6R4Aafls+jDBnSz8PDz60uFhuqFbl3HxRfxvDzrUf3THwpA==
261 | dependencies:
262 | "@babel/parser" "^7.23.0"
263 | "@vue/compiler-core" "3.3.8"
264 | "@vue/compiler-dom" "3.3.8"
265 | "@vue/compiler-ssr" "3.3.8"
266 | "@vue/reactivity-transform" "3.3.8"
267 | "@vue/shared" "3.3.8"
268 | estree-walker "^2.0.2"
269 | magic-string "^0.30.5"
270 | postcss "^8.4.31"
271 | source-map-js "^1.0.2"
272 |
273 | "@vue/compiler-ssr@3.3.8":
274 | version "3.3.8"
275 | resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.3.8.tgz#136eed54411e4694815d961048a237191063fbce"
276 | integrity sha512-hXCqQL/15kMVDBuoBYpUnSYT8doDNwsjvm3jTefnXr+ytn294ySnT8NlsFHmTgKNjwpuFy7XVV8yTeLtNl/P6w==
277 | dependencies:
278 | "@vue/compiler-dom" "3.3.8"
279 | "@vue/shared" "3.3.8"
280 |
281 | "@vue/eslint-config-prettier@^8.0.0":
282 | version "8.0.0"
283 | resolved "https://registry.yarnpkg.com/@vue/eslint-config-prettier/-/eslint-config-prettier-8.0.0.tgz#de5cb77ed483b43683d17a788808a0fa4e7bd07e"
284 | integrity sha512-55dPqtC4PM/yBjhAr+yEw6+7KzzdkBuLmnhBrDfp4I48+wy+Giqqj9yUr5T2uD/BkBROjjmqnLZmXRdOx/VtQg==
285 | dependencies:
286 | eslint-config-prettier "^8.8.0"
287 | eslint-plugin-prettier "^5.0.0"
288 |
289 | "@vue/reactivity-transform@3.3.8":
290 | version "3.3.8"
291 | resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.3.8.tgz#6d07649013b0be5c670f0ab6cc7ddd3150ad03f2"
292 | integrity sha512-49CvBzmZNtcHua0XJ7GdGifM8GOXoUMOX4dD40Y5DxI3R8OUhMlvf2nvgUAcPxaXiV5MQQ1Nwy09ADpnLQUqRw==
293 | dependencies:
294 | "@babel/parser" "^7.23.0"
295 | "@vue/compiler-core" "3.3.8"
296 | "@vue/shared" "3.3.8"
297 | estree-walker "^2.0.2"
298 | magic-string "^0.30.5"
299 |
300 | "@vue/reactivity@3.3.8":
301 | version "3.3.8"
302 | resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.3.8.tgz#cce8a03a3fd3539c3eeda53e277ba365d160dd4d"
303 | integrity sha512-ctLWitmFBu6mtddPyOKpHg8+5ahouoTCRtmAHZAXmolDtuZXfjL2T3OJ6DL6ezBPQB1SmMnpzjiWjCiMYmpIuw==
304 | dependencies:
305 | "@vue/shared" "3.3.8"
306 |
307 | "@vue/runtime-core@3.3.8":
308 | version "3.3.8"
309 | resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.3.8.tgz#fba5a632cbf2b5d29e171489570149cb6975dcdb"
310 | integrity sha512-qurzOlb6q26KWQ/8IShHkMDOuJkQnQcTIp1sdP4I9MbCf9FJeGVRXJFr2mF+6bXh/3Zjr9TDgURXrsCr9bfjUw==
311 | dependencies:
312 | "@vue/reactivity" "3.3.8"
313 | "@vue/shared" "3.3.8"
314 |
315 | "@vue/runtime-dom@3.3.8":
316 | version "3.3.8"
317 | resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.3.8.tgz#e2d7aa795cf50914dda9a951887765a594b38af4"
318 | integrity sha512-Noy5yM5UIf9UeFoowBVgghyGGPIDPy1Qlqt0yVsUdAVbqI8eeMSsTqBtauaEoT2UFXUk5S64aWVNJN4MJ2vRdA==
319 | dependencies:
320 | "@vue/runtime-core" "3.3.8"
321 | "@vue/shared" "3.3.8"
322 | csstype "^3.1.2"
323 |
324 | "@vue/server-renderer@3.3.8":
325 | version "3.3.8"
326 | resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.3.8.tgz#9b1779010e75783edeed8fcfb97d9c95fc3ac5d2"
327 | integrity sha512-zVCUw7RFskvPuNlPn/8xISbrf0zTWsTSdYTsUTN1ERGGZGVnRxM2QZ3x1OR32+vwkkCm0IW6HmJ49IsPm7ilLg==
328 | dependencies:
329 | "@vue/compiler-ssr" "3.3.8"
330 | "@vue/shared" "3.3.8"
331 |
332 | "@vue/shared@3.3.8":
333 | version "3.3.8"
334 | resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.3.8.tgz#f044942142e1d3a395f24132e6203a784838542d"
335 | integrity sha512-8PGwybFwM4x8pcfgqEQFy70NaQxASvOC5DJwLQfpArw1UDfUXrJkdxD3BhVTMS+0Lef/TU7YO0Jvr0jJY8T+mw==
336 |
337 | "@vuelidate/core@^2.0.3":
338 | version "2.0.3"
339 | resolved "https://registry.yarnpkg.com/@vuelidate/core/-/core-2.0.3.tgz#40468c5ed15b72bde880a026b0699c2f0f1ecede"
340 | integrity sha512-AN6l7KF7+mEfyWG0doT96z+47ljwPpZfi9/JrNMkOGLFv27XVZvKzRLXlmDPQjPl/wOB1GNnHuc54jlCLRNqGA==
341 | dependencies:
342 | vue-demi "^0.13.11"
343 |
344 | "@vuelidate/validators@^2.0.4":
345 | version "2.0.4"
346 | resolved "https://registry.yarnpkg.com/@vuelidate/validators/-/validators-2.0.4.tgz#0a88a7b2b18f15fd9c384095593f369a6f7384e9"
347 | integrity sha512-odTxtUZ2JpwwiQ10t0QWYJkkYrfd0SyFYhdHH44QQ1jDatlZgTh/KRzrWVmn/ib9Gq7H4hFD4e8ahoo5YlUlDw==
348 | dependencies:
349 | vue-demi "^0.13.11"
350 |
351 | acorn-jsx@^5.3.2:
352 | version "5.3.2"
353 | resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz"
354 | integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
355 |
356 | acorn@^8.8.0:
357 | version "8.8.0"
358 | resolved "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz"
359 | integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==
360 |
361 | acorn@^8.9.0:
362 | version "8.11.2"
363 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b"
364 | integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==
365 |
366 | ajv@^6.12.4:
367 | version "6.12.6"
368 | resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"
369 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
370 | dependencies:
371 | fast-deep-equal "^3.1.1"
372 | fast-json-stable-stringify "^2.0.0"
373 | json-schema-traverse "^0.4.1"
374 | uri-js "^4.2.2"
375 |
376 | ansi-regex@^5.0.1:
377 | version "5.0.1"
378 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz"
379 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
380 |
381 | ansi-styles@^4.1.0:
382 | version "4.3.0"
383 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"
384 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
385 | dependencies:
386 | color-convert "^2.0.1"
387 |
388 | argparse@^2.0.1:
389 | version "2.0.1"
390 | resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz"
391 | integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
392 |
393 | available-typed-arrays@^1.0.5:
394 | version "1.0.5"
395 | resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz"
396 | integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==
397 |
398 | balanced-match@^1.0.0:
399 | version "1.0.2"
400 | resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
401 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
402 |
403 | big-integer@^1.6.44:
404 | version "1.6.51"
405 | resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686"
406 | integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==
407 |
408 | boolbase@^1.0.0:
409 | version "1.0.0"
410 | resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz"
411 | integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==
412 |
413 | bootstrap-icons@^1.11.1:
414 | version "1.11.1"
415 | resolved "https://registry.yarnpkg.com/bootstrap-icons/-/bootstrap-icons-1.11.1.tgz#79e32494871d8c98e9d14f4bcdc278cee9b1dafd"
416 | integrity sha512-F0DDp7nKUX+x/QtpfRZ+XHFya60ng9nfdpdS59vDDfs4Uhuxp7zym/QavMsu/xx51txkoM9eVmpE7D08N35blw==
417 |
418 | bootstrap@^5.3.2:
419 | version "5.3.2"
420 | resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.3.2.tgz#97226583f27aae93b2b28ab23f4c114757ff16ae"
421 | integrity sha512-D32nmNWiQHo94BKHLmOrdjlL05q1c8oxbtBphQFb9Z5to6eGRDCm0QgeaZ4zFBHzfg2++rqa2JkqCcxDy0sH0g==
422 |
423 | bplist-parser@^0.2.0:
424 | version "0.2.0"
425 | resolved "https://registry.yarnpkg.com/bplist-parser/-/bplist-parser-0.2.0.tgz#43a9d183e5bf9d545200ceac3e712f79ebbe8d0e"
426 | integrity sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==
427 | dependencies:
428 | big-integer "^1.6.44"
429 |
430 | brace-expansion@^1.1.7:
431 | version "1.1.11"
432 | resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"
433 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
434 | dependencies:
435 | balanced-match "^1.0.0"
436 | concat-map "0.0.1"
437 |
438 | braces@^3.0.2:
439 | version "3.0.2"
440 | resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz"
441 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
442 | dependencies:
443 | fill-range "^7.0.1"
444 |
445 | bundle-name@^3.0.0:
446 | version "3.0.0"
447 | resolved "https://registry.yarnpkg.com/bundle-name/-/bundle-name-3.0.0.tgz#ba59bcc9ac785fb67ccdbf104a2bf60c099f0e1a"
448 | integrity sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==
449 | dependencies:
450 | run-applescript "^5.0.0"
451 |
452 | call-bind@^1.0.0, call-bind@^1.0.2:
453 | version "1.0.2"
454 | resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz"
455 | integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==
456 | dependencies:
457 | function-bind "^1.1.1"
458 | get-intrinsic "^1.0.2"
459 |
460 | callsites@^3.0.0:
461 | version "3.1.0"
462 | resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz"
463 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
464 |
465 | chalk@^4.0.0:
466 | version "4.1.2"
467 | resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz"
468 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
469 | dependencies:
470 | ansi-styles "^4.1.0"
471 | supports-color "^7.1.0"
472 |
473 | color-convert@^2.0.1:
474 | version "2.0.1"
475 | resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"
476 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
477 | dependencies:
478 | color-name "~1.1.4"
479 |
480 | color-name@~1.1.4:
481 | version "1.1.4"
482 | resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
483 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
484 |
485 | concat-map@0.0.1:
486 | version "0.0.1"
487 | resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
488 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
489 |
490 | cross-spawn@^7.0.2, cross-spawn@^7.0.3:
491 | version "7.0.3"
492 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
493 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
494 | dependencies:
495 | path-key "^3.1.0"
496 | shebang-command "^2.0.0"
497 | which "^2.0.1"
498 |
499 | cssesc@^3.0.0:
500 | version "3.0.0"
501 | resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz"
502 | integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
503 |
504 | csstype@^3.1.2:
505 | version "3.1.2"
506 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b"
507 | integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==
508 |
509 | debug@^4.1.1, debug@^4.3.2, debug@^4.3.4:
510 | version "4.3.4"
511 | resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
512 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
513 | dependencies:
514 | ms "2.1.2"
515 |
516 | deep-is@^0.1.3:
517 | version "0.1.4"
518 | resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz"
519 | integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
520 |
521 | default-browser-id@^3.0.0:
522 | version "3.0.0"
523 | resolved "https://registry.yarnpkg.com/default-browser-id/-/default-browser-id-3.0.0.tgz#bee7bbbef1f4e75d31f98f4d3f1556a14cea790c"
524 | integrity sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==
525 | dependencies:
526 | bplist-parser "^0.2.0"
527 | untildify "^4.0.0"
528 |
529 | default-browser@^4.0.0:
530 | version "4.0.0"
531 | resolved "https://registry.yarnpkg.com/default-browser/-/default-browser-4.0.0.tgz#53c9894f8810bf86696de117a6ce9085a3cbc7da"
532 | integrity sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==
533 | dependencies:
534 | bundle-name "^3.0.0"
535 | default-browser-id "^3.0.0"
536 | execa "^7.1.1"
537 | titleize "^3.0.0"
538 |
539 | define-lazy-prop@^3.0.0:
540 | version "3.0.0"
541 | resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz#dbb19adfb746d7fc6d734a06b72f4a00d021255f"
542 | integrity sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==
543 |
544 | define-properties@^1.1.3, define-properties@^1.1.4:
545 | version "1.1.4"
546 | resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz"
547 | integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==
548 | dependencies:
549 | has-property-descriptors "^1.0.0"
550 | object-keys "^1.1.1"
551 |
552 | doctrine@^3.0.0:
553 | version "3.0.0"
554 | resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz"
555 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
556 | dependencies:
557 | esutils "^2.0.2"
558 |
559 | es-abstract@^1.19.0, es-abstract@^1.19.5, es-abstract@^1.20.0:
560 | version "1.20.1"
561 | resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz"
562 | integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==
563 | dependencies:
564 | call-bind "^1.0.2"
565 | es-to-primitive "^1.2.1"
566 | function-bind "^1.1.1"
567 | function.prototype.name "^1.1.5"
568 | get-intrinsic "^1.1.1"
569 | get-symbol-description "^1.0.0"
570 | has "^1.0.3"
571 | has-property-descriptors "^1.0.0"
572 | has-symbols "^1.0.3"
573 | internal-slot "^1.0.3"
574 | is-callable "^1.2.4"
575 | is-negative-zero "^2.0.2"
576 | is-regex "^1.1.4"
577 | is-shared-array-buffer "^1.0.2"
578 | is-string "^1.0.7"
579 | is-weakref "^1.0.2"
580 | object-inspect "^1.12.0"
581 | object-keys "^1.1.1"
582 | object.assign "^4.1.2"
583 | regexp.prototype.flags "^1.4.3"
584 | string.prototype.trimend "^1.0.5"
585 | string.prototype.trimstart "^1.0.5"
586 | unbox-primitive "^1.0.2"
587 |
588 | es-to-primitive@^1.2.1:
589 | version "1.2.1"
590 | resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz"
591 | integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
592 | dependencies:
593 | is-callable "^1.1.4"
594 | is-date-object "^1.0.1"
595 | is-symbol "^1.0.2"
596 |
597 | esbuild@^0.18.10:
598 | version "0.18.20"
599 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6"
600 | integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==
601 | optionalDependencies:
602 | "@esbuild/android-arm" "0.18.20"
603 | "@esbuild/android-arm64" "0.18.20"
604 | "@esbuild/android-x64" "0.18.20"
605 | "@esbuild/darwin-arm64" "0.18.20"
606 | "@esbuild/darwin-x64" "0.18.20"
607 | "@esbuild/freebsd-arm64" "0.18.20"
608 | "@esbuild/freebsd-x64" "0.18.20"
609 | "@esbuild/linux-arm" "0.18.20"
610 | "@esbuild/linux-arm64" "0.18.20"
611 | "@esbuild/linux-ia32" "0.18.20"
612 | "@esbuild/linux-loong64" "0.18.20"
613 | "@esbuild/linux-mips64el" "0.18.20"
614 | "@esbuild/linux-ppc64" "0.18.20"
615 | "@esbuild/linux-riscv64" "0.18.20"
616 | "@esbuild/linux-s390x" "0.18.20"
617 | "@esbuild/linux-x64" "0.18.20"
618 | "@esbuild/netbsd-x64" "0.18.20"
619 | "@esbuild/openbsd-x64" "0.18.20"
620 | "@esbuild/sunos-x64" "0.18.20"
621 | "@esbuild/win32-arm64" "0.18.20"
622 | "@esbuild/win32-ia32" "0.18.20"
623 | "@esbuild/win32-x64" "0.18.20"
624 |
625 | escape-string-regexp@^4.0.0:
626 | version "4.0.0"
627 | resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz"
628 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
629 |
630 | eslint-config-prettier@^8.8.0:
631 | version "8.10.0"
632 | resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz#3a06a662130807e2502fc3ff8b4143d8a0658e11"
633 | integrity sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==
634 |
635 | eslint-plugin-prettier@^5.0.0:
636 | version "5.0.1"
637 | resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.1.tgz#a3b399f04378f79f066379f544e42d6b73f11515"
638 | integrity sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==
639 | dependencies:
640 | prettier-linter-helpers "^1.0.0"
641 | synckit "^0.8.5"
642 |
643 | eslint-plugin-vue@^9.18.1:
644 | version "9.18.1"
645 | resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-9.18.1.tgz#73cf29df7450ce5913296465f8d1dc545344920c"
646 | integrity sha512-7hZFlrEgg9NIzuVik2I9xSnJA5RsmOfueYgsUGUokEDLJ1LHtxO0Pl4duje1BriZ/jDWb+44tcIlC3yi0tdlZg==
647 | dependencies:
648 | "@eslint-community/eslint-utils" "^4.4.0"
649 | natural-compare "^1.4.0"
650 | nth-check "^2.1.1"
651 | postcss-selector-parser "^6.0.13"
652 | semver "^7.5.4"
653 | vue-eslint-parser "^9.3.1"
654 | xml-name-validator "^4.0.0"
655 |
656 | eslint-scope@^7.1.1:
657 | version "7.1.1"
658 | resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz"
659 | integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==
660 | dependencies:
661 | esrecurse "^4.3.0"
662 | estraverse "^5.2.0"
663 |
664 | eslint-scope@^7.2.2:
665 | version "7.2.2"
666 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f"
667 | integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==
668 | dependencies:
669 | esrecurse "^4.3.0"
670 | estraverse "^5.2.0"
671 |
672 | eslint-visitor-keys@^3.3.0:
673 | version "3.3.0"
674 | resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz"
675 | integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==
676 |
677 | eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3:
678 | version "3.4.3"
679 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
680 | integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
681 |
682 | eslint@^8.52.0:
683 | version "8.52.0"
684 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.52.0.tgz#d0cd4a1fac06427a61ef9242b9353f36ea7062fc"
685 | integrity sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==
686 | dependencies:
687 | "@eslint-community/eslint-utils" "^4.2.0"
688 | "@eslint-community/regexpp" "^4.6.1"
689 | "@eslint/eslintrc" "^2.1.2"
690 | "@eslint/js" "8.52.0"
691 | "@humanwhocodes/config-array" "^0.11.13"
692 | "@humanwhocodes/module-importer" "^1.0.1"
693 | "@nodelib/fs.walk" "^1.2.8"
694 | "@ungap/structured-clone" "^1.2.0"
695 | ajv "^6.12.4"
696 | chalk "^4.0.0"
697 | cross-spawn "^7.0.2"
698 | debug "^4.3.2"
699 | doctrine "^3.0.0"
700 | escape-string-regexp "^4.0.0"
701 | eslint-scope "^7.2.2"
702 | eslint-visitor-keys "^3.4.3"
703 | espree "^9.6.1"
704 | esquery "^1.4.2"
705 | esutils "^2.0.2"
706 | fast-deep-equal "^3.1.3"
707 | file-entry-cache "^6.0.1"
708 | find-up "^5.0.0"
709 | glob-parent "^6.0.2"
710 | globals "^13.19.0"
711 | graphemer "^1.4.0"
712 | ignore "^5.2.0"
713 | imurmurhash "^0.1.4"
714 | is-glob "^4.0.0"
715 | is-path-inside "^3.0.3"
716 | js-yaml "^4.1.0"
717 | json-stable-stringify-without-jsonify "^1.0.1"
718 | levn "^0.4.1"
719 | lodash.merge "^4.6.2"
720 | minimatch "^3.1.2"
721 | natural-compare "^1.4.0"
722 | optionator "^0.9.3"
723 | strip-ansi "^6.0.1"
724 | text-table "^0.2.0"
725 |
726 | espree@^9.3.1:
727 | version "9.3.3"
728 | resolved "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz"
729 | integrity sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==
730 | dependencies:
731 | acorn "^8.8.0"
732 | acorn-jsx "^5.3.2"
733 | eslint-visitor-keys "^3.3.0"
734 |
735 | espree@^9.6.0, espree@^9.6.1:
736 | version "9.6.1"
737 | resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f"
738 | integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==
739 | dependencies:
740 | acorn "^8.9.0"
741 | acorn-jsx "^5.3.2"
742 | eslint-visitor-keys "^3.4.1"
743 |
744 | esquery@^1.4.0:
745 | version "1.4.0"
746 | resolved "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz"
747 | integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==
748 | dependencies:
749 | estraverse "^5.1.0"
750 |
751 | esquery@^1.4.2:
752 | version "1.5.0"
753 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b"
754 | integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==
755 | dependencies:
756 | estraverse "^5.1.0"
757 |
758 | esrecurse@^4.3.0:
759 | version "4.3.0"
760 | resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz"
761 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
762 | dependencies:
763 | estraverse "^5.2.0"
764 |
765 | estraverse@^5.1.0, estraverse@^5.2.0:
766 | version "5.3.0"
767 | resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz"
768 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
769 |
770 | estree-walker@^2.0.2:
771 | version "2.0.2"
772 | resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz"
773 | integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
774 |
775 | esutils@^2.0.2:
776 | version "2.0.3"
777 | resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz"
778 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
779 |
780 | events@^3.3.0:
781 | version "3.3.0"
782 | resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz"
783 | integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
784 |
785 | execa@^5.0.0:
786 | version "5.1.1"
787 | resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
788 | integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
789 | dependencies:
790 | cross-spawn "^7.0.3"
791 | get-stream "^6.0.0"
792 | human-signals "^2.1.0"
793 | is-stream "^2.0.0"
794 | merge-stream "^2.0.0"
795 | npm-run-path "^4.0.1"
796 | onetime "^5.1.2"
797 | signal-exit "^3.0.3"
798 | strip-final-newline "^2.0.0"
799 |
800 | execa@^7.1.1:
801 | version "7.2.0"
802 | resolved "https://registry.yarnpkg.com/execa/-/execa-7.2.0.tgz#657e75ba984f42a70f38928cedc87d6f2d4fe4e9"
803 | integrity sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==
804 | dependencies:
805 | cross-spawn "^7.0.3"
806 | get-stream "^6.0.1"
807 | human-signals "^4.3.0"
808 | is-stream "^3.0.0"
809 | merge-stream "^2.0.0"
810 | npm-run-path "^5.1.0"
811 | onetime "^6.0.0"
812 | signal-exit "^3.0.7"
813 | strip-final-newline "^3.0.0"
814 |
815 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
816 | version "3.1.3"
817 | resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
818 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
819 |
820 | fast-diff@^1.1.2:
821 | version "1.2.0"
822 | resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz"
823 | integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==
824 |
825 | fast-glob@^3.3.0:
826 | version "3.3.1"
827 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4"
828 | integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==
829 | dependencies:
830 | "@nodelib/fs.stat" "^2.0.2"
831 | "@nodelib/fs.walk" "^1.2.3"
832 | glob-parent "^5.1.2"
833 | merge2 "^1.3.0"
834 | micromatch "^4.0.4"
835 |
836 | fast-json-stable-stringify@^2.0.0:
837 | version "2.1.0"
838 | resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"
839 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
840 |
841 | fast-levenshtein@^2.0.6:
842 | version "2.0.6"
843 | resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"
844 | integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
845 |
846 | fastq@^1.6.0:
847 | version "1.13.0"
848 | resolved "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz"
849 | integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==
850 | dependencies:
851 | reusify "^1.0.4"
852 |
853 | file-entry-cache@^6.0.1:
854 | version "6.0.1"
855 | resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz"
856 | integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
857 | dependencies:
858 | flat-cache "^3.0.4"
859 |
860 | fill-range@^7.0.1:
861 | version "7.0.1"
862 | resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz"
863 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
864 | dependencies:
865 | to-regex-range "^5.0.1"
866 |
867 | find-up@^5.0.0:
868 | version "5.0.0"
869 | resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz"
870 | integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
871 | dependencies:
872 | locate-path "^6.0.0"
873 | path-exists "^4.0.0"
874 |
875 | flat-cache@^3.0.4:
876 | version "3.0.4"
877 | resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz"
878 | integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==
879 | dependencies:
880 | flatted "^3.1.0"
881 | rimraf "^3.0.2"
882 |
883 | flatted@^3.1.0:
884 | version "3.2.7"
885 | resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz"
886 | integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==
887 |
888 | for-each@^0.3.3:
889 | version "0.3.3"
890 | resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz"
891 | integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==
892 | dependencies:
893 | is-callable "^1.1.3"
894 |
895 | fs.realpath@^1.0.0:
896 | version "1.0.0"
897 | resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
898 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
899 |
900 | fsevents@~2.3.2:
901 | version "2.3.3"
902 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
903 | integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==
904 |
905 | function-bind@^1.1.1:
906 | version "1.1.1"
907 | resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
908 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
909 |
910 | function.prototype.name@^1.1.5:
911 | version "1.1.5"
912 | resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz"
913 | integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==
914 | dependencies:
915 | call-bind "^1.0.2"
916 | define-properties "^1.1.3"
917 | es-abstract "^1.19.0"
918 | functions-have-names "^1.2.2"
919 |
920 | functions-have-names@^1.2.2:
921 | version "1.2.3"
922 | resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz"
923 | integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==
924 |
925 | get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1:
926 | version "1.1.2"
927 | resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz"
928 | integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==
929 | dependencies:
930 | function-bind "^1.1.1"
931 | has "^1.0.3"
932 | has-symbols "^1.0.3"
933 |
934 | get-stream@^6.0.0, get-stream@^6.0.1:
935 | version "6.0.1"
936 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
937 | integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
938 |
939 | get-symbol-description@^1.0.0:
940 | version "1.0.0"
941 | resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz"
942 | integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==
943 | dependencies:
944 | call-bind "^1.0.2"
945 | get-intrinsic "^1.1.1"
946 |
947 | glob-parent@^5.1.2:
948 | version "5.1.2"
949 | resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
950 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
951 | dependencies:
952 | is-glob "^4.0.1"
953 |
954 | glob-parent@^6.0.2:
955 | version "6.0.2"
956 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
957 | integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
958 | dependencies:
959 | is-glob "^4.0.3"
960 |
961 | glob@^7.1.3:
962 | version "7.2.3"
963 | resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz"
964 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
965 | dependencies:
966 | fs.realpath "^1.0.0"
967 | inflight "^1.0.4"
968 | inherits "2"
969 | minimatch "^3.1.1"
970 | once "^1.3.0"
971 | path-is-absolute "^1.0.0"
972 |
973 | globals@^13.19.0:
974 | version "13.23.0"
975 | resolved "https://registry.yarnpkg.com/globals/-/globals-13.23.0.tgz#ef31673c926a0976e1f61dab4dca57e0c0a8af02"
976 | integrity sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==
977 | dependencies:
978 | type-fest "^0.20.2"
979 |
980 | graphemer@^1.4.0:
981 | version "1.4.0"
982 | resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6"
983 | integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
984 |
985 | has-bigints@^1.0.1, has-bigints@^1.0.2:
986 | version "1.0.2"
987 | resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz"
988 | integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==
989 |
990 | has-flag@^4.0.0:
991 | version "4.0.0"
992 | resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"
993 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
994 |
995 | has-property-descriptors@^1.0.0:
996 | version "1.0.0"
997 | resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz"
998 | integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==
999 | dependencies:
1000 | get-intrinsic "^1.1.1"
1001 |
1002 | has-symbols@^1.0.2, has-symbols@^1.0.3:
1003 | version "1.0.3"
1004 | resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz"
1005 | integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
1006 |
1007 | has-tostringtag@^1.0.0:
1008 | version "1.0.0"
1009 | resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz"
1010 | integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==
1011 | dependencies:
1012 | has-symbols "^1.0.2"
1013 |
1014 | has@^1.0.3:
1015 | version "1.0.3"
1016 | resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz"
1017 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
1018 | dependencies:
1019 | function-bind "^1.1.1"
1020 |
1021 | human-signals@^2.1.0:
1022 | version "2.1.0"
1023 | resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
1024 | integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
1025 |
1026 | human-signals@^4.3.0:
1027 | version "4.3.1"
1028 | resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-4.3.1.tgz#ab7f811e851fca97ffbd2c1fe9a958964de321b2"
1029 | integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==
1030 |
1031 | ignore@^5.2.0:
1032 | version "5.2.0"
1033 | resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz"
1034 | integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==
1035 |
1036 | import-fresh@^3.2.1:
1037 | version "3.3.0"
1038 | resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz"
1039 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
1040 | dependencies:
1041 | parent-module "^1.0.0"
1042 | resolve-from "^4.0.0"
1043 |
1044 | imurmurhash@^0.1.4:
1045 | version "0.1.4"
1046 | resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz"
1047 | integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
1048 |
1049 | inflight@^1.0.4:
1050 | version "1.0.6"
1051 | resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
1052 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
1053 | dependencies:
1054 | once "^1.3.0"
1055 | wrappy "1"
1056 |
1057 | inherits@2, inherits@^2.0.3:
1058 | version "2.0.4"
1059 | resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
1060 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
1061 |
1062 | internal-slot@^1.0.3:
1063 | version "1.0.3"
1064 | resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz"
1065 | integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==
1066 | dependencies:
1067 | get-intrinsic "^1.1.0"
1068 | has "^1.0.3"
1069 | side-channel "^1.0.4"
1070 |
1071 | is-arguments@^1.0.4:
1072 | version "1.1.1"
1073 | resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz"
1074 | integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==
1075 | dependencies:
1076 | call-bind "^1.0.2"
1077 | has-tostringtag "^1.0.0"
1078 |
1079 | is-bigint@^1.0.1:
1080 | version "1.0.4"
1081 | resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz"
1082 | integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==
1083 | dependencies:
1084 | has-bigints "^1.0.1"
1085 |
1086 | is-boolean-object@^1.1.0:
1087 | version "1.1.2"
1088 | resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz"
1089 | integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==
1090 | dependencies:
1091 | call-bind "^1.0.2"
1092 | has-tostringtag "^1.0.0"
1093 |
1094 | is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.4:
1095 | version "1.2.4"
1096 | resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz"
1097 | integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==
1098 |
1099 | is-date-object@^1.0.1:
1100 | version "1.0.5"
1101 | resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz"
1102 | integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==
1103 | dependencies:
1104 | has-tostringtag "^1.0.0"
1105 |
1106 | is-docker@^2.0.0:
1107 | version "2.2.1"
1108 | resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa"
1109 | integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==
1110 |
1111 | is-docker@^3.0.0:
1112 | version "3.0.0"
1113 | resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-3.0.0.tgz#90093aa3106277d8a77a5910dbae71747e15a200"
1114 | integrity sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==
1115 |
1116 | is-extglob@^2.1.1:
1117 | version "2.1.1"
1118 | resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz"
1119 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
1120 |
1121 | is-generator-function@^1.0.7:
1122 | version "1.0.10"
1123 | resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz"
1124 | integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==
1125 | dependencies:
1126 | has-tostringtag "^1.0.0"
1127 |
1128 | is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3:
1129 | version "4.0.3"
1130 | resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz"
1131 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
1132 | dependencies:
1133 | is-extglob "^2.1.1"
1134 |
1135 | is-inside-container@^1.0.0:
1136 | version "1.0.0"
1137 | resolved "https://registry.yarnpkg.com/is-inside-container/-/is-inside-container-1.0.0.tgz#e81fba699662eb31dbdaf26766a61d4814717ea4"
1138 | integrity sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==
1139 | dependencies:
1140 | is-docker "^3.0.0"
1141 |
1142 | is-negative-zero@^2.0.2:
1143 | version "2.0.2"
1144 | resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz"
1145 | integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==
1146 |
1147 | is-number-object@^1.0.4:
1148 | version "1.0.7"
1149 | resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz"
1150 | integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==
1151 | dependencies:
1152 | has-tostringtag "^1.0.0"
1153 |
1154 | is-number@^7.0.0:
1155 | version "7.0.0"
1156 | resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
1157 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
1158 |
1159 | is-path-inside@^3.0.3:
1160 | version "3.0.3"
1161 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283"
1162 | integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
1163 |
1164 | is-regex@^1.1.4:
1165 | version "1.1.4"
1166 | resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz"
1167 | integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==
1168 | dependencies:
1169 | call-bind "^1.0.2"
1170 | has-tostringtag "^1.0.0"
1171 |
1172 | is-shared-array-buffer@^1.0.2:
1173 | version "1.0.2"
1174 | resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz"
1175 | integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==
1176 | dependencies:
1177 | call-bind "^1.0.2"
1178 |
1179 | is-stream@^2.0.0:
1180 | version "2.0.1"
1181 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
1182 | integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==
1183 |
1184 | is-stream@^3.0.0:
1185 | version "3.0.0"
1186 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac"
1187 | integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==
1188 |
1189 | is-string@^1.0.5, is-string@^1.0.7:
1190 | version "1.0.7"
1191 | resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz"
1192 | integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==
1193 | dependencies:
1194 | has-tostringtag "^1.0.0"
1195 |
1196 | is-symbol@^1.0.2, is-symbol@^1.0.3:
1197 | version "1.0.4"
1198 | resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz"
1199 | integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==
1200 | dependencies:
1201 | has-symbols "^1.0.2"
1202 |
1203 | is-typed-array@^1.1.3, is-typed-array@^1.1.9:
1204 | version "1.1.9"
1205 | resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz"
1206 | integrity sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==
1207 | dependencies:
1208 | available-typed-arrays "^1.0.5"
1209 | call-bind "^1.0.2"
1210 | es-abstract "^1.20.0"
1211 | for-each "^0.3.3"
1212 | has-tostringtag "^1.0.0"
1213 |
1214 | is-weakref@^1.0.2:
1215 | version "1.0.2"
1216 | resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz"
1217 | integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==
1218 | dependencies:
1219 | call-bind "^1.0.2"
1220 |
1221 | is-wsl@^2.2.0:
1222 | version "2.2.0"
1223 | resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271"
1224 | integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==
1225 | dependencies:
1226 | is-docker "^2.0.0"
1227 |
1228 | isexe@^2.0.0:
1229 | version "2.0.0"
1230 | resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
1231 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
1232 |
1233 | js-yaml@^4.1.0:
1234 | version "4.1.0"
1235 | resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz"
1236 | integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
1237 | dependencies:
1238 | argparse "^2.0.1"
1239 |
1240 | json-schema-traverse@^0.4.1:
1241 | version "0.4.1"
1242 | resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"
1243 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
1244 |
1245 | json-stable-stringify-without-jsonify@^1.0.1:
1246 | version "1.0.1"
1247 | resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz"
1248 | integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
1249 |
1250 | levn@^0.4.1:
1251 | version "0.4.1"
1252 | resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz"
1253 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
1254 | dependencies:
1255 | prelude-ls "^1.2.1"
1256 | type-check "~0.4.0"
1257 |
1258 | locate-path@^6.0.0:
1259 | version "6.0.0"
1260 | resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz"
1261 | integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
1262 | dependencies:
1263 | p-locate "^5.0.0"
1264 |
1265 | lodash.merge@^4.6.2:
1266 | version "4.6.2"
1267 | resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz"
1268 | integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
1269 |
1270 | lodash@^4.17.21:
1271 | version "4.17.21"
1272 | resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
1273 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
1274 |
1275 | lru-cache@^6.0.0:
1276 | version "6.0.0"
1277 | resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz"
1278 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
1279 | dependencies:
1280 | yallist "^4.0.0"
1281 |
1282 | magic-string@^0.30.5:
1283 | version "0.30.5"
1284 | resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9"
1285 | integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==
1286 | dependencies:
1287 | "@jridgewell/sourcemap-codec" "^1.4.15"
1288 |
1289 | merge-stream@^2.0.0:
1290 | version "2.0.0"
1291 | resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
1292 | integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
1293 |
1294 | merge2@^1.3.0:
1295 | version "1.4.1"
1296 | resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"
1297 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
1298 |
1299 | micromatch@^4.0.4:
1300 | version "4.0.5"
1301 | resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz"
1302 | integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
1303 | dependencies:
1304 | braces "^3.0.2"
1305 | picomatch "^2.3.1"
1306 |
1307 | mimic-fn@^2.1.0:
1308 | version "2.1.0"
1309 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
1310 | integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
1311 |
1312 | mimic-fn@^4.0.0:
1313 | version "4.0.0"
1314 | resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc"
1315 | integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==
1316 |
1317 | minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
1318 | version "3.1.2"
1319 | resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
1320 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
1321 | dependencies:
1322 | brace-expansion "^1.1.7"
1323 |
1324 | ms@2.1.2:
1325 | version "2.1.2"
1326 | resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
1327 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
1328 |
1329 | nanoid@^3.3.6:
1330 | version "3.3.6"
1331 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c"
1332 | integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==
1333 |
1334 | natural-compare@^1.4.0:
1335 | version "1.4.0"
1336 | resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz"
1337 | integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
1338 |
1339 | npm-run-path@^4.0.1:
1340 | version "4.0.1"
1341 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
1342 | integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
1343 | dependencies:
1344 | path-key "^3.0.0"
1345 |
1346 | npm-run-path@^5.1.0:
1347 | version "5.1.0"
1348 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00"
1349 | integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==
1350 | dependencies:
1351 | path-key "^4.0.0"
1352 |
1353 | nth-check@^2.1.1:
1354 | version "2.1.1"
1355 | resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d"
1356 | integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==
1357 | dependencies:
1358 | boolbase "^1.0.0"
1359 |
1360 | object-inspect@^1.12.0, object-inspect@^1.9.0:
1361 | version "1.12.2"
1362 | resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz"
1363 | integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==
1364 |
1365 | object-keys@^1.1.1:
1366 | version "1.1.1"
1367 | resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz"
1368 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
1369 |
1370 | object.assign@^4.1.2:
1371 | version "4.1.4"
1372 | resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz"
1373 | integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==
1374 | dependencies:
1375 | call-bind "^1.0.2"
1376 | define-properties "^1.1.4"
1377 | has-symbols "^1.0.3"
1378 | object-keys "^1.1.1"
1379 |
1380 | once@^1.3.0:
1381 | version "1.4.0"
1382 | resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
1383 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
1384 | dependencies:
1385 | wrappy "1"
1386 |
1387 | onetime@^5.1.2:
1388 | version "5.1.2"
1389 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e"
1390 | integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
1391 | dependencies:
1392 | mimic-fn "^2.1.0"
1393 |
1394 | onetime@^6.0.0:
1395 | version "6.0.0"
1396 | resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4"
1397 | integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==
1398 | dependencies:
1399 | mimic-fn "^4.0.0"
1400 |
1401 | open@^9.1.0:
1402 | version "9.1.0"
1403 | resolved "https://registry.yarnpkg.com/open/-/open-9.1.0.tgz#684934359c90ad25742f5a26151970ff8c6c80b6"
1404 | integrity sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==
1405 | dependencies:
1406 | default-browser "^4.0.0"
1407 | define-lazy-prop "^3.0.0"
1408 | is-inside-container "^1.0.0"
1409 | is-wsl "^2.2.0"
1410 |
1411 | optionator@^0.9.3:
1412 | version "0.9.3"
1413 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64"
1414 | integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==
1415 | dependencies:
1416 | "@aashutoshrathi/word-wrap" "^1.2.3"
1417 | deep-is "^0.1.3"
1418 | fast-levenshtein "^2.0.6"
1419 | levn "^0.4.1"
1420 | prelude-ls "^1.2.1"
1421 | type-check "^0.4.0"
1422 |
1423 | p-limit@^3.0.2:
1424 | version "3.1.0"
1425 | resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz"
1426 | integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
1427 | dependencies:
1428 | yocto-queue "^0.1.0"
1429 |
1430 | p-locate@^5.0.0:
1431 | version "5.0.0"
1432 | resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz"
1433 | integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
1434 | dependencies:
1435 | p-limit "^3.0.2"
1436 |
1437 | pako@^2.1.0:
1438 | version "2.1.0"
1439 | resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86"
1440 | integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==
1441 |
1442 | parent-module@^1.0.0:
1443 | version "1.0.1"
1444 | resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz"
1445 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
1446 | dependencies:
1447 | callsites "^3.0.0"
1448 |
1449 | path-exists@^4.0.0:
1450 | version "4.0.0"
1451 | resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz"
1452 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
1453 |
1454 | path-is-absolute@^1.0.0:
1455 | version "1.0.1"
1456 | resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
1457 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
1458 |
1459 | path-key@^3.0.0, path-key@^3.1.0:
1460 | version "3.1.1"
1461 | resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz"
1462 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
1463 |
1464 | path-key@^4.0.0:
1465 | version "4.0.0"
1466 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18"
1467 | integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==
1468 |
1469 | picocolors@^1.0.0:
1470 | version "1.0.0"
1471 | resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz"
1472 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
1473 |
1474 | picomatch@^2.3.1:
1475 | version "2.3.1"
1476 | resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"
1477 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
1478 |
1479 | postcss-selector-parser@^6.0.13:
1480 | version "6.0.13"
1481 | resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b"
1482 | integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==
1483 | dependencies:
1484 | cssesc "^3.0.0"
1485 | util-deprecate "^1.0.2"
1486 |
1487 | postcss@^8.4.27, postcss@^8.4.31:
1488 | version "8.4.31"
1489 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d"
1490 | integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==
1491 | dependencies:
1492 | nanoid "^3.3.6"
1493 | picocolors "^1.0.0"
1494 | source-map-js "^1.0.2"
1495 |
1496 | prelude-ls@^1.2.1:
1497 | version "1.2.1"
1498 | resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz"
1499 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
1500 |
1501 | prettier-linter-helpers@^1.0.0:
1502 | version "1.0.0"
1503 | resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz"
1504 | integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==
1505 | dependencies:
1506 | fast-diff "^1.1.2"
1507 |
1508 | prettier@^3.0.3:
1509 | version "3.0.3"
1510 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.0.3.tgz#432a51f7ba422d1469096c0fdc28e235db8f9643"
1511 | integrity sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==
1512 |
1513 | punycode@^2.1.0:
1514 | version "2.1.1"
1515 | resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz"
1516 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
1517 |
1518 | queue-microtask@^1.2.2:
1519 | version "1.2.3"
1520 | resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz"
1521 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
1522 |
1523 | regexp.prototype.flags@^1.4.3:
1524 | version "1.4.3"
1525 | resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz"
1526 | integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==
1527 | dependencies:
1528 | call-bind "^1.0.2"
1529 | define-properties "^1.1.3"
1530 | functions-have-names "^1.2.2"
1531 |
1532 | resolve-from@^4.0.0:
1533 | version "4.0.0"
1534 | resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz"
1535 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
1536 |
1537 | reusify@^1.0.4:
1538 | version "1.0.4"
1539 | resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz"
1540 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
1541 |
1542 | rimraf@^3.0.2:
1543 | version "3.0.2"
1544 | resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz"
1545 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
1546 | dependencies:
1547 | glob "^7.1.3"
1548 |
1549 | rollup@^3.27.1:
1550 | version "3.29.4"
1551 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981"
1552 | integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==
1553 | optionalDependencies:
1554 | fsevents "~2.3.2"
1555 |
1556 | run-applescript@^5.0.0:
1557 | version "5.0.0"
1558 | resolved "https://registry.yarnpkg.com/run-applescript/-/run-applescript-5.0.0.tgz#e11e1c932e055d5c6b40d98374e0268d9b11899c"
1559 | integrity sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==
1560 | dependencies:
1561 | execa "^5.0.0"
1562 |
1563 | run-parallel@^1.1.9:
1564 | version "1.2.0"
1565 | resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz"
1566 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
1567 | dependencies:
1568 | queue-microtask "^1.2.2"
1569 |
1570 | safe-buffer@^5.1.2:
1571 | version "5.2.1"
1572 | resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"
1573 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
1574 |
1575 | semver@^7.3.6:
1576 | version "7.3.7"
1577 | resolved "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz"
1578 | integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==
1579 | dependencies:
1580 | lru-cache "^6.0.0"
1581 |
1582 | semver@^7.5.4:
1583 | version "7.5.4"
1584 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
1585 | integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
1586 | dependencies:
1587 | lru-cache "^6.0.0"
1588 |
1589 | shebang-command@^2.0.0:
1590 | version "2.0.0"
1591 | resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz"
1592 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
1593 | dependencies:
1594 | shebang-regex "^3.0.0"
1595 |
1596 | shebang-regex@^3.0.0:
1597 | version "3.0.0"
1598 | resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz"
1599 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
1600 |
1601 | side-channel@^1.0.4:
1602 | version "1.0.4"
1603 | resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz"
1604 | integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==
1605 | dependencies:
1606 | call-bind "^1.0.0"
1607 | get-intrinsic "^1.0.2"
1608 | object-inspect "^1.9.0"
1609 |
1610 | signal-exit@^3.0.3, signal-exit@^3.0.7:
1611 | version "3.0.7"
1612 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
1613 | integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
1614 |
1615 | source-map-js@^1.0.2:
1616 | version "1.0.2"
1617 | resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz"
1618 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
1619 |
1620 | string.prototype.trimend@^1.0.5:
1621 | version "1.0.5"
1622 | resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz"
1623 | integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==
1624 | dependencies:
1625 | call-bind "^1.0.2"
1626 | define-properties "^1.1.4"
1627 | es-abstract "^1.19.5"
1628 |
1629 | string.prototype.trimstart@^1.0.5:
1630 | version "1.0.5"
1631 | resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz"
1632 | integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==
1633 | dependencies:
1634 | call-bind "^1.0.2"
1635 | define-properties "^1.1.4"
1636 | es-abstract "^1.19.5"
1637 |
1638 | strip-ansi@^6.0.1:
1639 | version "6.0.1"
1640 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
1641 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
1642 | dependencies:
1643 | ansi-regex "^5.0.1"
1644 |
1645 | strip-final-newline@^2.0.0:
1646 | version "2.0.0"
1647 | resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
1648 | integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
1649 |
1650 | strip-final-newline@^3.0.0:
1651 | version "3.0.0"
1652 | resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd"
1653 | integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==
1654 |
1655 | strip-json-comments@^3.1.1:
1656 | version "3.1.1"
1657 | resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz"
1658 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
1659 |
1660 | supports-color@^7.1.0:
1661 | version "7.2.0"
1662 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz"
1663 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
1664 | dependencies:
1665 | has-flag "^4.0.0"
1666 |
1667 | synckit@^0.8.5:
1668 | version "0.8.5"
1669 | resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.5.tgz#b7f4358f9bb559437f9f167eb6bc46b3c9818fa3"
1670 | integrity sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==
1671 | dependencies:
1672 | "@pkgr/utils" "^2.3.1"
1673 | tslib "^2.5.0"
1674 |
1675 | text-table@^0.2.0:
1676 | version "0.2.0"
1677 | resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz"
1678 | integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
1679 |
1680 | titleize@^3.0.0:
1681 | version "3.0.0"
1682 | resolved "https://registry.yarnpkg.com/titleize/-/titleize-3.0.0.tgz#71c12eb7fdd2558aa8a44b0be83b8a76694acd53"
1683 | integrity sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==
1684 |
1685 | to-regex-range@^5.0.1:
1686 | version "5.0.1"
1687 | resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"
1688 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
1689 | dependencies:
1690 | is-number "^7.0.0"
1691 |
1692 | tslib@^2.5.0, tslib@^2.6.0:
1693 | version "2.6.2"
1694 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
1695 | integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
1696 |
1697 | type-check@^0.4.0, type-check@~0.4.0:
1698 | version "0.4.0"
1699 | resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz"
1700 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
1701 | dependencies:
1702 | prelude-ls "^1.2.1"
1703 |
1704 | type-fest@^0.20.2:
1705 | version "0.20.2"
1706 | resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz"
1707 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
1708 |
1709 | unbox-primitive@^1.0.2:
1710 | version "1.0.2"
1711 | resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz"
1712 | integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==
1713 | dependencies:
1714 | call-bind "^1.0.2"
1715 | has-bigints "^1.0.2"
1716 | has-symbols "^1.0.3"
1717 | which-boxed-primitive "^1.0.2"
1718 |
1719 | untildify@^4.0.0:
1720 | version "4.0.0"
1721 | resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b"
1722 | integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==
1723 |
1724 | uri-js@^4.2.2:
1725 | version "4.4.1"
1726 | resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz"
1727 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
1728 | dependencies:
1729 | punycode "^2.1.0"
1730 |
1731 | util-deprecate@^1.0.2:
1732 | version "1.0.2"
1733 | resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
1734 | integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
1735 |
1736 | util@^0.12.4:
1737 | version "0.12.4"
1738 | resolved "https://registry.npmjs.org/util/-/util-0.12.4.tgz"
1739 | integrity sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==
1740 | dependencies:
1741 | inherits "^2.0.3"
1742 | is-arguments "^1.0.4"
1743 | is-generator-function "^1.0.7"
1744 | is-typed-array "^1.1.3"
1745 | safe-buffer "^5.1.2"
1746 | which-typed-array "^1.1.2"
1747 |
1748 | vite-plugin-package-version@^1.0.2:
1749 | version "1.0.2"
1750 | resolved "https://registry.npmjs.org/vite-plugin-package-version/-/vite-plugin-package-version-1.0.2.tgz"
1751 | integrity sha512-xCJMR0KD4rqSUwINyHJlLizio2VzYzaMrRkqC9xWaVGXgw1lIrzdD+wBUf1XDM8EhL1JoQ7aykLOfKrlZd1SoQ==
1752 |
1753 | vite@^4.5.0:
1754 | version "4.5.0"
1755 | resolved "https://registry.yarnpkg.com/vite/-/vite-4.5.0.tgz#ec406295b4167ac3bc23e26f9c8ff559287cff26"
1756 | integrity sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==
1757 | dependencies:
1758 | esbuild "^0.18.10"
1759 | postcss "^8.4.27"
1760 | rollup "^3.27.1"
1761 | optionalDependencies:
1762 | fsevents "~2.3.2"
1763 |
1764 | vue-demi@^0.13.11:
1765 | version "0.13.11"
1766 | resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.13.11.tgz#7d90369bdae8974d87b1973564ad390182410d99"
1767 | integrity sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==
1768 |
1769 | vue-eslint-parser@^9.3.1:
1770 | version "9.3.2"
1771 | resolved "https://registry.yarnpkg.com/vue-eslint-parser/-/vue-eslint-parser-9.3.2.tgz#6f9638e55703f1c77875a19026347548d93fd499"
1772 | integrity sha512-q7tWyCVaV9f8iQyIA5Mkj/S6AoJ9KBN8IeUSf3XEmBrOtxOZnfTg5s4KClbZBCK3GtnT/+RyCLZyDHuZwTuBjg==
1773 | dependencies:
1774 | debug "^4.3.4"
1775 | eslint-scope "^7.1.1"
1776 | eslint-visitor-keys "^3.3.0"
1777 | espree "^9.3.1"
1778 | esquery "^1.4.0"
1779 | lodash "^4.17.21"
1780 | semver "^7.3.6"
1781 |
1782 | vue@^3.3.8:
1783 | version "3.3.8"
1784 | resolved "https://registry.yarnpkg.com/vue/-/vue-3.3.8.tgz#532ff071af24f6a69e5ecc53a66858a9ee874ffc"
1785 | integrity sha512-5VSX/3DabBikOXMsxzlW8JyfeLKlG9mzqnWgLQLty88vdZL7ZJgrdgBOmrArwxiLtmS+lNNpPcBYqrhE6TQW5w==
1786 | dependencies:
1787 | "@vue/compiler-dom" "3.3.8"
1788 | "@vue/compiler-sfc" "3.3.8"
1789 | "@vue/runtime-dom" "3.3.8"
1790 | "@vue/server-renderer" "3.3.8"
1791 | "@vue/shared" "3.3.8"
1792 |
1793 | vuetify@^3.3.23:
1794 | version "3.3.23"
1795 | resolved "https://registry.yarnpkg.com/vuetify/-/vuetify-3.3.23.tgz#b456ac20ea945fa746f2a056f8157e38ee2756e6"
1796 | integrity sha512-EVEFvDyKr/HK2+hQJyhQSjIDULDaBi9vfgAAB0ekm+2Tvc8AkaDwb7VK44R2eilGFGpju6iN52FV7Uasj8SmIg==
1797 |
1798 | which-boxed-primitive@^1.0.2:
1799 | version "1.0.2"
1800 | resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz"
1801 | integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==
1802 | dependencies:
1803 | is-bigint "^1.0.1"
1804 | is-boolean-object "^1.1.0"
1805 | is-number-object "^1.0.4"
1806 | is-string "^1.0.5"
1807 | is-symbol "^1.0.3"
1808 |
1809 | which-typed-array@^1.1.2:
1810 | version "1.1.8"
1811 | resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz"
1812 | integrity sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==
1813 | dependencies:
1814 | available-typed-arrays "^1.0.5"
1815 | call-bind "^1.0.2"
1816 | es-abstract "^1.20.0"
1817 | for-each "^0.3.3"
1818 | has-tostringtag "^1.0.0"
1819 | is-typed-array "^1.1.9"
1820 |
1821 | which@^2.0.1:
1822 | version "2.0.2"
1823 | resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz"
1824 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
1825 | dependencies:
1826 | isexe "^2.0.0"
1827 |
1828 | wrappy@1:
1829 | version "1.0.2"
1830 | resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
1831 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
1832 |
1833 | xml-name-validator@^4.0.0:
1834 | version "4.0.0"
1835 | resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz"
1836 | integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==
1837 |
1838 | yallist@^4.0.0:
1839 | version "4.0.0"
1840 | resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"
1841 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
1842 |
1843 | yocto-queue@^0.1.0:
1844 | version "0.1.0"
1845 | resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz"
1846 | integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
1847 |
--------------------------------------------------------------------------------