diff --git a/.eslintignore b/.eslintignore
new file mode 100644
index 00000000..9661ca5e
--- /dev/null
+++ b/.eslintignore
@@ -0,0 +1,8 @@
+docs/**
+.svelte-kit/**
+static/**
+build/**
+node_modules/**
+coverage/**
+__snapshots__/**
+snapshots.js
\ No newline at end of file
diff --git a/.eslintrc.cjs b/.eslintrc.cjs
index 0a299c5c..162b32db 100644
--- a/.eslintrc.cjs
+++ b/.eslintrc.cjs
@@ -1,48 +1,64 @@
module.exports = {
- root: true,
- parser: '@typescript-eslint/parser',
- extends: [
- 'eslint:recommended',
- 'plugin:@typescript-eslint/recommended',
- // 'plugin:@typescript-eslint/recommended-requiring-type-checking',
- 'prettier'
- ],
- plugins: ['svelte3', 'tailwindcss', '@typescript-eslint', 'es'],
- ignorePatterns: [
- 'docs/*',
- '*.cjs',
- '*.md',
- 'snapshots.js',
- 'svelte.config.js',
- 'renovate.json',
- 'package.json',
- 'tsconfig.json'
- ],
- overrides: [{ files: ['*.svelte'], processor: 'svelte3/svelte3' }],
- settings: {
- 'svelte3/typescript': () => require('typescript')
- },
- parserOptions: {
- sourceType: 'module',
- ecmaVersion: 2019,
- tsconfigRootDir: __dirname,
- project: ['./tsconfig.json'],
- extraFileExtensions: ['.svelte']
- },
- env: {
- browser: true,
- es2017: true,
- node: true
- },
- rules: {
- '@typescript-eslint/ban-ts-comment': [
- 'error',
- {
- 'ts-ignore': 'allow-with-description'
- }
- ],
- '@typescript-eslint/no-unsafe-member-access': 'off',
- '@typescript-eslint/no-unsafe-assignment': 'off',
- 'es/no-regexp-lookbehind-assertions': 'error'
- }
+ root: true,
+ parser: '@typescript-eslint/parser',
+ extends: [
+ 'eslint:recommended',
+ 'plugin:@typescript-eslint/recommended',
+ // 'plugin:@typescript-eslint/recommended-requiring-type-checking',
+ 'plugin:@typescript-eslint/strict',
+ 'prettier'
+ ],
+ plugins: ['svelte3', 'tailwindcss', '@typescript-eslint', 'es', 'vitest', 'no-only-tests'],
+ ignorePatterns: [
+ 'docs/*',
+ '*.cjs',
+ '*.js',
+ '*.md',
+ 'snapshots.js',
+ 'svelte.config.js',
+ 'renovate.json',
+ 'package.json',
+ 'tsconfig.json'
+ ],
+ overrides: [
+ { files: ['*.svelte'], processor: 'svelte3/svelte3' },
+ {
+ files: ['*.ts'],
+ extends: [
+ 'eslint:recommended',
+ 'plugin:@typescript-eslint/recommended',
+ 'plugin:@typescript-eslint/recommended-requiring-type-checking',
+ 'plugin:@typescript-eslint/strict',
+ 'prettier'
+ ]
+ }
+ ],
+ settings: {
+ 'svelte3/typescript': () => require('typescript')
+ },
+ parserOptions: {
+ sourceType: 'module',
+ ecmaVersion: 2020,
+ tsconfigRootDir: __dirname,
+ project: ['./tsconfig.json'],
+ extraFileExtensions: ['.svelte'],
+ allowAutomaticSingleRunInference: true
+ },
+ env: {
+ browser: true,
+ es2020: true
+ },
+ rules: {
+ '@typescript-eslint/ban-ts-comment': [
+ 'error',
+ {
+ 'ts-ignore': 'allow-with-description'
+ }
+ ],
+ '@typescript-eslint/no-unsafe-member-access': 'off',
+ '@typescript-eslint/no-unsafe-assignment': 'off',
+ 'es/no-regexp-lookbehind-assertions': 'error',
+ curly: ['error', 'all'],
+ 'no-only-tests/no-only-tests': 'error'
+ }
};
diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs
new file mode 100644
index 00000000..00e0771a
--- /dev/null
+++ b/.git-blame-ignore-revs
@@ -0,0 +1,5 @@
+# .git-blame-ignore-revs
+# Prettier Pass
+6fde9e22a3ba0b80879a1909fb233367ef20b738
+# Tabs -> Spaces
+0ac606b8fbf6f94215cbda1d4511e2dcd30e4655
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 00000000..695b6d30
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1 @@
+github: [sidharthv96, knsv]
diff --git a/.github/dependabot.yml b/.github/dependabot.disabled.yml
similarity index 100%
rename from .github/dependabot.yml
rename to .github/dependabot.disabled.yml
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index 3e562342..f4609098 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -35,11 +35,11 @@ jobs:
steps:
- name: Checkout repository
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
- uses: github/codeql-action/init@v1
+ uses: github/codeql-action/init@v2
with:
config-file: ./.github/codeql/config.yml
languages: ${{ matrix.language }}
@@ -65,4 +65,4 @@ jobs:
# make release
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@v1
+ uses: github/codeql-action/analyze@v2
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index 40fe80f3..fcdc4c04 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -11,37 +11,22 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- - uses: actions/setup-node@v2
- with:
- node-version: '16'
-
- name: Checkout
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
- - name: Get yarn cache directory path
- id: yarn-cache-dir-path
- run: echo "::set-output name=dir::$(yarn cache dir)"
-
- - uses: actions/cache@v2
- id: yarn-cache
+ - uses: actions/setup-node@v3
with:
- path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
- key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
- restore-keys: |
- ${{ runner.os }}-yarn-
+ node-version: 18
+ cache: yarn
- name: Build & Deploy
run: |
- npm i -g yarn
export DEPLOY=true
- [ "$GITHUB_EVENT_NAME" == "pull_request" ] && export BETA=true && rm -rf docs/beta/
[ "$GITHUB_EVENT_NAME" != "pull_request" ] && rm -rf docs/_app/
yarn install
- yarn run lint
version=$(yarn version --patch --no-git-tag-version | grep "New version" | cut -d':' -f 2)
yarn build
- cd bin
- ./fix-path
+ yarn run lint
cd ..
- name: Deploy
diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml
index c4f7c606..d57fc48a 100644
--- a/.github/workflows/docker-publish.yml
+++ b/.github/workflows/docker-publish.yml
@@ -24,7 +24,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v3
- name: Run tests
run: |
@@ -38,7 +38,7 @@ jobs:
if: github.event_name == 'push'
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v3
- name: Build image
run: docker build . --file Dockerfile --tag $IMAGE_NAME
diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml
index 306cea95..a150127f 100644
--- a/.github/workflows/stale.yml
+++ b/.github/workflows/stale.yml
@@ -8,10 +8,13 @@ jobs:
stale:
runs-on: ubuntu-latest
steps:
- - uses: actions/stale@v4
+ - uses: actions/stale@v6
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
exempt-issue-labels: 'retained'
exempt-pr-labels: 'retained'
- stale-issue-message: 'This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 7 days'
- stale-pr-message: 'This pr is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 7 days'
+ stale-issue-message: 'This issue is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 30 days'
+ stale-pr-message: 'This pr is stale because it has been open 90 days with no activity. Remove stale label or comment or this will be closed in 30 days'
+ days-before-stale: 90
+ days-before-close: 30
+ days-before-pr-close: -1
diff --git a/.github/workflows/cypress.yml b/.github/workflows/tests.yml
similarity index 66%
rename from .github/workflows/cypress.yml
rename to .github/workflows/tests.yml
index b248ee75..c35dff12 100644
--- a/.github/workflows/cypress.yml
+++ b/.github/workflows/tests.yml
@@ -1,4 +1,4 @@
-name: Cypress Tests
+name: Tests
on:
pull_request:
@@ -9,14 +9,17 @@ on:
jobs:
cypress-run:
runs-on: ubuntu-latest
- # Update after https://github.com/cypress-io/cypress-docker-images/issues/487
- container: cypress/browsers:node14.16.0-chrome90-ff88
+ strategy:
+ fail-fast: false
+ matrix:
+ # run 3 copies of the current job in parallel
+ containers: [1, 2, 3]
steps:
- name: Checkout
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
- - uses: actions/cache@v2
+ - uses: actions/cache@v3
id: yarn-and-build-cache
with:
path: |
@@ -27,20 +30,22 @@ jobs:
restore-keys: |
${{ runner.os }}-node_modules-build-
- - name: Lint
- run: |
- yarn install
- yarn run lint
+ - uses: actions/setup-node@v3
+ with:
+ node-version: 18
+ cache: 'yarn'
# Install NPM dependencies, cache them correctly
# and run all Cypress tests
- name: Cypress run
- uses: cypress-io/github-action@v2
+ uses: cypress-io/github-action@v3
with:
build: yarn build
start: yarn preview
wait-on: 'http://localhost:3000'
record: true
headless: true
+ parallel: true
env:
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
+ CYPRESS_CI: true
diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml
new file mode 100644
index 00000000..f812d373
--- /dev/null
+++ b/.github/workflows/unit-tests.yml
@@ -0,0 +1,36 @@
+name: Unit Tests
+
+on:
+ pull_request:
+ branches:
+ - master
+ - develop
+
+jobs:
+ unit-tests:
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v3
+
+ - uses: actions/cache@v3
+ id: yarn-and-build-cache
+ with:
+ path: |
+ build
+ node_modules
+ key: ${{ runner.os }}-node_modules-build-${{ hashFiles('**/yarn.lock') }}
+ restore-keys: |
+ ${{ runner.os }}-node_modules-build-
+
+ - uses: actions/setup-node@v3
+ with:
+ node-version: 18
+ cache: 'yarn'
+
+ - name: Lint & Test
+ run: |
+ yarn install
+ yarn lint
+ yarn test:unit
diff --git a/.github/workflows/update-browserlist.yml b/.github/workflows/update-browserlist.yml
index be811d6d..efbedd1c 100644
--- a/.github/workflows/update-browserlist.yml
+++ b/.github/workflows/update-browserlist.yml
@@ -1,15 +1,18 @@
name: Update Browserslist
on:
- workflow_dispatch:
-
+ push:
+ branches-ignore:
+ - 'develop'
+ - 'master'
+ - 'renovate/*'
jobs:
build:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v3
- run: npx browserslist@latest --update-db
- name: Commit changes
- uses: EndBug/add-and-commit@v8
+ uses: EndBug/add-and-commit@v9
with:
author_name: ${{ github.actor }}
author_email: ${{ github.actor }}@users.noreply.github.com
diff --git a/.github/workflows/update-monaco-editor.yml b/.github/workflows/update-monaco-editor.yml
index 2083b218..31c2fd15 100644
--- a/.github/workflows/update-monaco-editor.yml
+++ b/.github/workflows/update-monaco-editor.yml
@@ -9,10 +9,16 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v2
- - run: ./bin/update-monaco
+ - uses: actions/checkout@v3
+ - uses: actions/setup-node@v3
+ with:
+ node-version: 18
+ - name: Update monaco version
+ run: |
+ yarn install
+ node ./bin/update-monaco.js
- name: Commit changes
- uses: EndBug/add-and-commit@v8
+ uses: EndBug/add-and-commit@v9
with:
author_name: ${{ github.actor }}
author_email: ${{ github.actor }}@users.noreply.github.com
diff --git a/.gitignore b/.gitignore
index edc0e07e..381928d7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,5 +9,6 @@ yarn-error.log
/build
/functions
/snapshots.js
+/cypress/downloads
/cypress/videos
/cypress/screenshots
diff --git a/.prettierignore b/.prettierignore
index 1a41f98d..9661ca5e 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -3,4 +3,6 @@ docs/**
static/**
build/**
node_modules/**
+coverage/**
+__snapshots__/**
snapshots.js
\ No newline at end of file
diff --git a/.prettierrc b/.prettierrc
index 53609cfb..ab65daf2 100644
--- a/.prettierrc
+++ b/.prettierrc
@@ -1,8 +1,7 @@
{
- "singleQuote": true,
- "svelteSortOrder": "options-scripts-markup-styles",
- "bracketSameLine": true,
- "useTabs": true,
- "trailingComma": "none",
- "printWidth": 100
+ "singleQuote": true,
+ "svelteSortOrder": "options-scripts-markup-styles",
+ "bracketSameLine": true,
+ "trailingComma": "none",
+ "printWidth": 100
}
diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 00000000..1689524c
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,15 @@
+{
+ // Use IntelliSense to learn about possible attributes.
+ // Hover to view descriptions of existing attributes.
+ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "type": "pwa-chrome",
+ "request": "launch",
+ "name": "Launch Chrome against localhost",
+ "url": "http://localhost:3000",
+ "webRoot": "${workspaceFolder}"
+ }
+ ]
+}
diff --git a/.vscode/settings.json b/.vscode/settings.json
index cd3023f6..925342c8 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,4 +1,9 @@
{
- "editor.formatOnSave": true,
- "cSpell.words": ["pako", "Serde", "serdes"]
+ "editor.formatOnSave": true,
+ "cSpell.words": ["asyncable", "KROKI", "mindmap", "pako", "Serde", "serdes", "tailwindcss"],
+ "vitest.commandLine": "yarn test:unit",
+ "vitest.enable": true,
+ "testing.autoRun.mode": "rerun",
+ "svelte.enable-ts-plugin": true,
+ "githubPullRequests.ignoredPullRequestBranches": ["develop"]
}
diff --git a/Dockerfile b/Dockerfile
index 72ed7930..fdd37513 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -6,11 +6,12 @@
# Stop : press ctrl + c
# or
# docker stop mermaid-live-editor
-FROM node:17.5.0 as mermaid-live-editor-builder
+FROM node:18.13.0 as mermaid-live-editor-builder
COPY --chown=node:node . /home
WORKDIR /home
RUN yarn install
RUN yarn build
FROM nginx:alpine as mermaid-live-editor-runner
+COPY ./nginx.conf /etc/nginx/conf.d/default.conf
COPY --from=mermaid-live-editor-builder --chown=nginx:nginx /home/docs /usr/share/nginx/html
diff --git a/Dockerfile.dev b/Dockerfile.dev
index 2a604b6e..91eda2d5 100644
--- a/Dockerfile.dev
+++ b/Dockerfile.dev
@@ -1,4 +1,4 @@
-FROM node:17
+FROM node:18
WORKDIR /app
COPY package.json .
COPY yarn.lock .
diff --git a/README.md b/README.md
index 11f95a6f..f4136f3a 100644
--- a/README.md
+++ b/README.md
@@ -47,17 +47,20 @@ Then open http://localhost:8000
## Setup
-[Volta](https://volta.sh) is used for managing node and yarn versions.
+Below link will help you making a copy of the repository in your local system.
-This project is set up using [Yarn](https://classic.yarnpkg.com/en/docs/getting-started):
+https://docs.github.com/en/get-started/quickstart/fork-a-repo
-```
-yarn install
-```
+## Requirements
+
+- [volta](https://volta.sh/) to manage node versions.
+- [Node.js](https://nodejs.org/en/). `volta install node`
+- [yarn](https://yarnpkg.com/) package manager. `volta install yarn`
## Development
-```
+```sh
+yarn install
yarn dev -- --open
```
diff --git a/SECURITY.md b/SECURITY.md
new file mode 100644
index 00000000..dc478729
--- /dev/null
+++ b/SECURITY.md
@@ -0,0 +1,13 @@
+# Security Policy
+
+## Supported Versions
+
+Live editor only has a single version, which will be maintained.
+
+| Version | Supported |
+| ------- | ------------------ |
+| latest | :white_check_mark: |
+
+## Reporting a Vulnerability
+
+To report a vulnerability, please e-mail security@mermaid.live with a description of the issue, the steps you took to create the issue, affected versions, and if known, mitigations for the issue.
diff --git a/bin/update-monaco b/bin/update-monaco
deleted file mode 100755
index dbddd571..00000000
--- a/bin/update-monaco
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/bash
-
-monacoVersion="$(jq -r '.dependencies."monaco-editor"' package.json)"
-monacoVersion="${monacoVersion:1}"
-
-if [[ $(uname) == "Darwin" ]];
-then
- sed -i '' -E "s/monaco-editor\/[^/]*/monaco-editor\/$monacoVersion/g" ./src/app.html
-else
- sed -i'' -E "s/monaco-editor\/[^/]*/monaco-editor\/$monacoVersion/g" ./src/app.html
-fi
-
diff --git a/bin/update-monaco.js b/bin/update-monaco.js
new file mode 100755
index 00000000..875639ba
--- /dev/null
+++ b/bin/update-monaco.js
@@ -0,0 +1,45 @@
+import fs from 'fs';
+import path from 'path';
+import { parse } from 'node-html-parser';
+import prettier from 'prettier';
+
+// parse monaco version out of package.json
+const packageJson = JSON.parse(fs.readFileSync('package.json'));
+const monacoVersion = packageJson.dependencies['monaco-editor'].replace('^', '');
+
+// fetch monaco sri info from cdnjs api
+const cdnjsAPIResp = await fetch(
+ `https://api.cdnjs.com/libraries/monaco-editor/${monacoVersion}?fields=sri`
+);
+if (cdnjsAPIResp.ok) {
+ const respJson = await cdnjsAPIResp.json();
+ const htmlPath = path.join('src', 'app.html');
+ const appHtml = fs
+ .readFileSync(htmlPath, 'utf8')
+ // update monaco version of every asset in app.html
+ .replaceAll(/[0-9.]+\/min\/vs/g, `${monacoVersion}/min/vs`);
+ const root = parse(appHtml);
+ const updateIntegrity = (tag, attr) => {
+ for (const node of root
+ .getElementsByTagName(tag)
+ .filter((node) => node.getAttribute(attr)?.includes('monaco-editor'))) {
+ const file = node.getAttribute(attr).split(`${monacoVersion}/`)[1];
+ node.setAttribute('integrity', respJson.sri[file]);
+ }
+ };
+
+ updateIntegrity('script', 'src');
+ updateIntegrity('link', 'href');
+
+ fs.writeFileSync(
+ htmlPath,
+ prettier.format(root.toString(), {
+ singleQuote: false,
+ parser: 'html',
+ bracketSameLine: true,
+ useTabs: true
+ })
+ );
+} else {
+ throw Error('Unable to fetch monaco sri data from cdnjs api.');
+}
diff --git a/cypress.config.js b/cypress.config.js
new file mode 100644
index 00000000..0e2c5933
--- /dev/null
+++ b/cypress.config.js
@@ -0,0 +1,35 @@
+import { defineConfig } from 'cypress';
+import fs from 'fs';
+import { isFileExist, findFiles } from 'cy-verify-downloads';
+export default defineConfig({
+ projectId: '2ckppp',
+ viewportWidth: 1440,
+ viewportHeight: 768,
+ snapshotFileName: './cypress/snapshots.js',
+ defaultCommandTimeout: 16000,
+ requestTimeout: 16000,
+ retries: {
+ runMode: 4,
+ openMode: 0
+ },
+ e2e: {
+ setupNodeEvents(on, config) {
+ on('task', {
+ isFileExist,
+ findFiles,
+ deleteFile(path) {
+ fs.rmSync(path);
+ return null;
+ },
+ readFileMaybe(filename) {
+ if (fs.existsSync(filename)) {
+ return fs.readFileSync(filename, 'utf8');
+ }
+ return null;
+ }
+ });
+ },
+ baseUrl: 'http://localhost:3000',
+ specPattern: 'cypress/e2e/**/*.spec.ts'
+ }
+});
diff --git a/cypress.json b/cypress.json
deleted file mode 100644
index 70b8e6bd..00000000
--- a/cypress.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "projectId": "2ckppp",
- "$schema": "https://on.cypress.io/cypress.schema.json",
- "baseUrl": "http://localhost:3000",
- "pluginsFile": "./cypress/plugins/index.cjs",
- "viewportWidth": 1440,
- "viewportHeight": 768,
- "snapshotFileName": "./cypress/snapshots.js",
- "defaultCommandTimeout": 16000,
- "requestTimeout": 16000
-}
diff --git a/cypress/.eslintrc b/cypress/.eslintrc
index 2fc83573..01edfeeb 100644
--- a/cypress/.eslintrc
+++ b/cypress/.eslintrc
@@ -1,12 +1,10 @@
{
- "plugins": ["cypress", "mocha"],
- "extends": ["plugin:cypress/recommended", "plugin:mocha/recommended"],
- "rules": {
- "jest/expect-expect": "off",
- "mocha/no-mocha-arrows": "off"
- },
- "env": {
- "cypress/globals": true,
- "mocha": true
- }
+ "plugins": ["cypress"],
+ "extends": ["plugin:cypress/recommended"],
+ "rules": {
+ "jest/expect-expect": "off"
+ },
+ "env": {
+ "cypress/globals": true
+ }
}
diff --git a/cypress/e2e/actions.spec.ts b/cypress/e2e/actions.spec.ts
new file mode 100644
index 00000000..1783c00e
--- /dev/null
+++ b/cypress/e2e/actions.spec.ts
@@ -0,0 +1,48 @@
+import { verifyFileSizeGreaterThan } from './util';
+describe('Check actions', () => {
+ beforeEach(() => {
+ cy.clearLocalStorage();
+ cy.visit('/edit');
+ });
+
+ it('should update markdown code', () => {
+ cy.get('#markdown')
+ .invoke('val')
+ .then((oldText) => {
+ cy.get('#editor').click('bottom').type('{enter}C --> HistoryTest');
+ cy.get('#markdown')
+ .invoke('val')
+ .then((newText) => {
+ expect(oldText).to.not.eq(newText);
+ });
+ });
+ });
+
+ it('should load gists from URL', () => {
+ cy.get('#gist').type('https://gist.github.com/sidharthv96/6268a23e673a533dcb198f241fd7012a');
+ cy.contains('Load Gist').click();
+ cy.contains('Go shopping!!');
+ });
+
+ it('should download png and svg', () => {
+ cy.clock(new Date(2022, 0, 1).getTime());
+
+ cy.get(`#downloadPNG`).click();
+ verifyFileSizeGreaterThan('diagram', 'png', 21_000);
+
+ cy.get(`#downloadSVG`).click();
+ verifyFileSizeGreaterThan('diagram', 'svg', 10_000);
+
+ // Verify downloaded file is different for different diagrams
+ cy.contains('Sample Diagrams').click();
+ cy.contains('ER').click();
+
+ cy.get(`#downloadPNG`).click();
+ verifyFileSizeGreaterThan('diagram', 'png', 46_000);
+
+ cy.get(`#downloadSVG`).click();
+ verifyFileSizeGreaterThan('diagram', 'svg', 11_000);
+
+ cy.clock().invoke('restore');
+ });
+});
diff --git a/cypress/e2e/diagramUpdate.spec.ts b/cypress/e2e/diagramUpdate.spec.ts
new file mode 100644
index 00000000..c209be3e
--- /dev/null
+++ b/cypress/e2e/diagramUpdate.spec.ts
@@ -0,0 +1,94 @@
+import { getEditor, cmd } from './util';
+
+describe('Auto sync tests', () => {
+ beforeEach(() => {
+ cy.clearLocalStorage();
+ cy.visit('/');
+ });
+
+ it('should dim diagram when code is edited', () => {
+ cy.contains('Auto sync').click();
+ cy.get('#view').should('not.have.class', 'outOfSync');
+ cy.get('#errorContainer').should('not.exist');
+ getEditor({ bottom: true, newline: true }).type(' C --> Test');
+ cy.get('#view').should('have.class', 'outOfSync');
+ cy.get('#errorContainer').should('contain.text', 'Diagram out of sync.');
+ cy.getLocalStorage('codeStore').snapshot();
+ });
+
+ it('should update diagram when shortcut is used', () => {
+ cy.contains('Auto sync').click();
+ cy.get('#view').should('not.have.class', 'outOfSync');
+ getEditor().type(' C --> Test');
+ cy.get('#view').should('have.class', 'outOfSync');
+ cy.get('#errorContainer').should('contain.text', 'Diagram out of sync.');
+ getEditor().type(`${cmd}{enter}`);
+ cy.get('#errorContainer').should('not.exist');
+ cy.get('#view').should('not.have.class', 'outOfSync');
+ });
+
+ it('should show/hide sync button with auto sync', () => {
+ cy.get('[data-cy=sync]').should('not.exist');
+ cy.contains('Auto sync').click();
+ cy.get('[data-cy=sync]').should('exist');
+ cy.get('#autoSync').check();
+ cy.get('[data-cy=sync]').should('not.exist');
+ });
+
+ it('should not dim diagram when code is in sync', () => {
+ cy.contains('Auto sync').click();
+ cy.get('#view').should('not.have.class', 'outOfSync');
+ getEditor().type(' C --> Test');
+ cy.get('#view').should('have.class', 'outOfSync');
+ cy.get('[data-cy=sync]').click();
+ cy.get('#view').should('not.have.class', 'outOfSync');
+ cy.get('#autoSync').check();
+ getEditor().type('ing');
+ cy.get('#view').should('not.have.class', 'outOfSync');
+ cy.getLocalStorage('codeStore').snapshot();
+ });
+
+ it('supports commenting code out/in', () => {
+ getEditor().type(`{uparrow}${cmd}/`);
+ cy.get('#view').contains('Car').should('not.exist');
+
+ getEditor().type(`{uparrow}${cmd}/`);
+ cy.get('#view').contains('Car').should('exist');
+ });
+
+ it('supports editing code when code is incorrect', () => {
+ cy.visit(
+ '/edit#pako:eNpljjEKwzAMRa8SNOcEnlt6gK5eVFvYJsgOqkwpIXevg9smEE1PnyfxF3DFExgISW-CczQ2D21cYU7a-SGYXRwyvTp9jUhuKlVP-eHy7zA-leQsMEmg_QOM0BLG5FujZVMsaCQmC6ahR5ks2Lw2r84ela4-aREwKpVGwKrl_s7ut3fnkjAIcg_XDzuaUhs'
+ );
+ cy.get('#errorContainer').should('not.exist');
+ getEditor({ newline: true }).type(`branch test`);
+ cy.get('#editor').contains('branch test').should('exist');
+ cy.get('#errorContainer')
+ .contains(
+ 'Error: Trying to checkout branch which is not yet created. (Help try using "branch master")'
+ )
+ .should('exist');
+ });
+
+ it('should update diagram after entire text is removed', () => {
+ // https://github.com/mermaid-js/mermaid-live-editor/issues/1102
+ getEditor().type(`${cmd} a {backspace}`);
+ getEditor().type('graph LR');
+ getEditor().type(' {enter} A-->Car');
+ cy.get('#view').contains('Car').should('exist');
+ });
+});
+
+describe('Pan and Zoom', () => {
+ beforeEach(() => {
+ cy.clearLocalStorage();
+ cy.visit('/');
+ });
+ it('should toggle pan and zoom', () => {
+ cy.get('#svg-pan-zoom-reset-pan-zoom').should('not.exist');
+ cy.contains('Pan & Zoom').click();
+ cy.get('#svg-pan-zoom-reset-pan-zoom').should('exist');
+ cy.contains('Pan & Zoom').click();
+ cy.get('#svg-pan-zoom-reset-pan-zoom').should('not.exist');
+ });
+});
diff --git a/cypress/e2e/docMap.spec.ts b/cypress/e2e/docMap.spec.ts
new file mode 100755
index 00000000..5c7e8201
--- /dev/null
+++ b/cypress/e2e/docMap.spec.ts
@@ -0,0 +1,36 @@
+describe('Editor docs tests', () => {
+ beforeEach(() => {
+ cy.on('uncaught:exception', () => {
+ return false;
+ });
+ cy.clearLocalStorage();
+ cy.visit('/edit');
+ cy.contains('Sample Diagrams').click();
+ });
+
+ it('Test default loading', () => {
+ cy.get(`[data-cy=docs][href^="https://mermaid-js.github.io/mermaid"]`).should('exist');
+ });
+
+ it('Test to see if the correct URL loads when changing from one diagram to other', () => {
+ cy.contains('Flow').click();
+ cy.get(`[data-cy=docs][href$="/#/flowchart"]`).should('exist');
+
+ cy.contains('Config').click();
+ cy.get(`[data-cy=docs][href$="/#/flowchart?id=configuration"]`).should('exist');
+
+ cy.contains('Sequence').click();
+ cy.get(`[data-cy=docs][href$="/#/sequenceDiagram?id=configuration"]`).should('exist');
+
+ cy.contains('Code').click();
+ cy.get(`[data-cy=docs][href$="/#/sequenceDiagram"]`).should('exist');
+ });
+
+ it("Test to check URLs for a case where config URL doesn't exist", () => {
+ cy.contains('State').click();
+ cy.get(`[data-cy=docs][href$="/#/stateDiagram"]`).should('exist');
+
+ cy.contains('Config').click();
+ cy.get(`[data-cy=docs][href$="/#/stateDiagram"]`).should('exist');
+ });
+});
diff --git a/cypress/e2e/history.spec.ts b/cypress/e2e/history.spec.ts
new file mode 100644
index 00000000..af5305c9
--- /dev/null
+++ b/cypress/e2e/history.spec.ts
@@ -0,0 +1,105 @@
+import { getEditor, verifyFileSnapshot } from './util';
+
+describe('Save History', () => {
+ beforeEach(() => {
+ cy.clock(new Date(2022, 0, 1).getTime());
+ cy.clearLocalStorage();
+ cy.visit('/edit');
+
+ cy.contains('Actions').click();
+ cy.contains('History').click();
+ });
+
+ afterEach(() => {
+ cy.clock().invoke('restore');
+ });
+
+ it('should load history from localstorage', () => {
+ cy.setLocalStorage(
+ 'manualHistoryStore',
+ '[{"state":{"code":"graph TD\\n A[Halloween] -->|Get money| B(Go shopping)","mermaid":"{\\n \\"theme\\": \\"dark\\"\\n}","autoSync":true,"updateDiagram":false},"time":0,"type":"manual","id":"d7ea820e-21dd-418a-b984-fd58acde09df","name":"hollow-art"},{"state":{"code":"graph TD\\n A[Christmas] -->|Get money| B(Go shopping)","mermaid":"{\\n \\"theme\\": \\"dark\\"\\n}","autoSync":true,"updateDiagram":true},"time":0,"type":"manual","id":"b749ffc6-522b-4a44-86cf-7c1ffc3146b3","name":"helpful-ocean"}]'
+ );
+ cy.setLocalStorage(
+ 'autoHistoryStore',
+ '[{"state":{"code":"graph TD\\n A[New Year] -->|Get money| B(Go shopping)","mermaid":"{\\n \\"theme\\": \\"dark\\"\\n}","autoSync":true,"updateDiagram":false},"time":0,"type":"auto","id":"69ea820e-522b-4a44-86cf-fd58acde09df","name":"barking-dog"},{"state":{"code":"graph TD\\n A[Christmas] -->|Get money| B(Go shopping)","mermaid":"{\\n \\"theme\\": \\"dark\\"\\n}","autoSync":true,"updateDiagram":true},"time":0,"type":"manual","id":"x749ffc6-21dd-418a-b984-7c1ffc3146b3","name":"needy-mosquito"}]'
+ );
+ cy.reload();
+ cy.contains('Actions').click();
+ cy.contains('History').click();
+ cy.get('#historyList').find('li').should('have.length', 2);
+ cy.get('#historyList').find('No items in History').should('not.exist');
+ cy.get('#historyList').contains('helpful-ocean');
+ cy.get('#historyList').contains('hollow-art');
+ cy.contains('Restore').click();
+ cy.contains('Halloween');
+ cy.contains('Timeline').click();
+
+ cy.get('#historyList').find('li').should('have.length', 2);
+ cy.get('#historyList').find('No items in History').should('not.exist');
+ cy.get('#historyList').contains('needy-mosquito');
+ cy.get('#historyList').contains('barking-dog');
+ cy.contains('Restore').click();
+ cy.contains('New Year');
+ });
+
+ it('should save when clicked', () => {
+ cy.get('#historyList').find('li').should('have.length', 0);
+ cy.get('#historyList').contains('No items in History');
+ cy.get('#saveHistory').click();
+ cy.get('#historyList').find('No items in History').should('not.exist');
+ cy.get('#historyList').find('li').should('have.length', 1);
+ cy.get('#saveHistory').click();
+ cy.on('window:alert', (str) => {
+ expect(str).to.equal('State already saved.');
+ });
+ cy.on('window:confirm', () => true);
+ getEditor().type(' C --> HistoryTest');
+ cy.get('#saveHistory').click();
+ cy.get('#historyList').find('li').should('have.length', 2);
+ });
+
+ it('should be able to restore and delete', () => {
+ cy.get('#saveHistory').click();
+ getEditor().type(' C --> HistoryTest');
+ cy.get('#historyList').find('No items in History').should('not.exist');
+ cy.get('#historyList').find('li').should('have.length', 1);
+ cy.contains('HistoryTest');
+ cy.contains('Restore').click();
+ cy.contains('HistoryTest').should('not.exist');
+ cy.contains('Delete').click();
+ cy.get('#historyList').find('li').should('have.length', 0);
+ cy.get('#historyList').contains('No items in History');
+ cy.get('#saveHistory').click();
+ getEditor().type(' C --> HistoryTest');
+ cy.get('#saveHistory').click();
+ cy.get('#editor').type('ing');
+ cy.get('#clearHistory').click();
+ cy.on('window:alert', (str) => {
+ expect(str).to.equal('Clear all saved items?');
+ });
+ cy.on('window:confirm', () => true);
+ cy.get('#historyList').contains('No items in History');
+ });
+
+ // TODO: Fix #639
+ xit('should auto save history', () => {
+ getEditor().type(' C --> HistoryTest');
+ cy.tick(70000);
+ cy.contains('Timeline').click();
+ cy.get('#historyList').find('li').should('have.length', 1);
+ cy.get('#editor').type('ing');
+ cy.tick(70000);
+ cy.get('#historyList').find('li').should('have.length', 2);
+ for (let i = 0; i < 31; i++) {
+ cy.get('#editor').type('.');
+ cy.tick(70000);
+ }
+ cy.get('#historyList').find('li').should('have.length', 30);
+ });
+
+ it('should download history', () => {
+ cy.get('#saveHistory').click();
+ cy.get(`#downloadHistory`).click();
+ verifyFileSnapshot('history', 'json', 'A[Christmas] -->|Get money| B(Go shopping)');
+ });
+});
diff --git a/cypress/e2e/loadSite.spec.ts b/cypress/e2e/loadSite.spec.ts
new file mode 100644
index 00000000..df6032ec
--- /dev/null
+++ b/cypress/e2e/loadSite.spec.ts
@@ -0,0 +1,123 @@
+import { toBase64 } from 'js-base64';
+
+describe('Site Loads', () => {
+ beforeEach(() => {
+ cy.clearLocalStorage();
+ cy.visit('/');
+ });
+
+ it('Check Home page load', () => {
+ cy.url().should('include', '/edit');
+ cy.contains('History').click();
+ cy.getLocalStorage('codeStore').snapshot();
+ });
+
+ it('Check Redirect from old URL', () => {
+ cy.visit(
+ '/#/edit/eyJjb2RlIjoiZ3JhcGggVERcbiAgICBBW0NocmlzdG1hc10gLS0-fEdldCBtb25leXwgQihHbyBzaG9wcGluZylcbiAgICBCIC0tPiBDe0xldCBtZSB0aGlua31cbiAgICBDIC0tPnxPbmV8IERbTGFwdG9wXVxuICAgIEMgLS0-fFR3b3wgRVtpUGhvbmVdXG4gICAgQyAtLT58VGhyZWV8IEZbZmE6ZmEtY2FyIENhcl0iLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9LCJ1cGRhdGVFZGl0b3IiOmZhbHNlfQ'
+ );
+ cy.url().should('include', '/edit#pako:eNp');
+ });
+
+ it('should load sample diagrams when clicked', () => {
+ cy.contains('Sample Diagrams').click();
+ cy.contains('Pie').click();
+ cy.contains('pie title Pets adopted by volunteers');
+ cy.contains('Class').click();
+ cy.contains('classDiagram');
+ });
+
+ (Cypress.env('CI') === 'true' ? describe : describe.skip)('github', () => {
+ it('should load diagram from gist', () => {
+ cy.visit(`/edit?gist=https://gist.github.com/sidharthv96/6268a23e673a533dcb198f241fd7012a`);
+ cy.contains('History').click();
+ cy.contains('Go shopping!!');
+ cy.contains('Revisions');
+ cy.contains('sidharthv96 v8f8f1e2');
+ cy.contains('sidharthv96 v7851e19');
+ cy.getLocalStorage('codeStore').snapshot();
+ });
+
+ it('should load diagram from gist revision', () => {
+ cy.visit(
+ '/edit?gist=https://gist.github.com/sidharthv96/6268a23e673a533dcb198f241fd7012a/ec9b4ab0e41e4ff6287326cd3cb47affd7851e19'
+ );
+ cy.contains('History').click();
+ cy.contains('Party');
+ cy.contains('Revisions');
+ cy.contains('sidharthv96 v7851e19');
+ cy.getLocalStorage('codeStore').snapshot();
+ });
+
+ it('should load diagram from raw files', () => {
+ cy.visit(
+ '/edit?code=https://gist.githubusercontent.com/sidharthv96/6268a23e673a533dcb198f241fd7012a/raw/4eb03887e6a41397e80bdcdbf94017c498f8f1e2/code.mmd&config=https://gist.githubusercontent.com/sidharthv96/6268a23e673a533dcb198f241fd7012a/raw/4eb03887e6a41397e80bdcdbf94017c498f8f1e2/config.json'
+ );
+ cy.contains('Party');
+ cy.getLocalStorage('codeStore').snapshot();
+ });
+ });
+
+ // Disabled temporarily. Should be enabled after the issue is fixed in Mermaid.
+ // it('should prevent setting the "securityLevel" option via URL', () => {
+ // const b64State = toBase64(
+ // `{"code":"graph TD\\nA[\\"
\\"]","mermaid":"{\\"securityLevel\\": \\"loose\\", \\"theme\\": \\"forest\\"}","autoSync":true,"updateDiagram":true}`,
+ // true
+ // );
+ // cy.on('window:confirm', () => true);
+ // cy.visit(`/edit#${b64State}`);
+ // cy.contains('Config').click();
+ // cy.contains('forest');
+ // cy.contains('securityLevel').should('not.exist');
+ // cy.get('#view').find('img').should('not.exist');
+ // cy.get('#view').contains('
{
+ const b64State = toBase64(
+ `{"code":"graph TD\\nA[\\"
\\"]","mermaid":"{\\"securityLevel\\": \\"loose\\", \\"theme\\": \\"forest\\"}","autoSync":true,"updateDiagram":true}`,
+ true
+ );
+ cy.on('window:confirm', () => false);
+ cy.visit(`/edit#${b64State}`);
+ cy.get('#editor').type(' ');
+ cy.contains('Config').click();
+ cy.contains('forest');
+ cy.contains('securityLevel');
+ cy.get('#view').find('img').should('be.visible');
+ });
+
+ it('should show troubleshooting steps if loading fails', () => {
+ cy.visit('/#/edit/eyJjb2RlIjoiZ3JhcGggVERcbiAg');
+ cy.reload(true);
+ cy.contains('Please Click here to Raise an issue in github.');
+ });
+
+ it('should load compressed URL', () => {
+ cy.visit(
+ '/edit#pako:eNpVkM2KwkAQhF-l6dMK5gVyEDRxvYi7sF6WjIcm0zqDzg_jBJEk725Hd2G3Tw31VVFUj23QjCWeEkUD-1p5kFs2O77BN1M6QFEshg1ncMHzfYDV2ybA1YQYrT_NXvhqgqDqtxPGkI315_ElVU__h-cB6mZLMYd4-Kvsb2GAdWM_jcT_V0xicb03RyqPVLSUoJI-OEfHyZHV0rqfDAqzYccKS3k1pbNC5Ufhuqgp81rbHBJKxuXKc6Quh6-7b7HMqeNfqLYkC7gfanwAlW1ZvQ'
+ );
+ cy.contains('New Year');
+ cy.visit(
+ '/edit#pako:eNptkU1PwzAMhv9K5BOI9Q9EXBDbJA477YYqITcxndV8QD40weh_Jy1rGR0-OY_tV2_sEyivCSQogzGuGduAtnaixINji0bcf1WVWGfVXdMtx8M1faYm4B8sxR27JLClJd6nwK4VLTlN4bI4jMQd2pLe3C4KFhNNcLQ92jv9ADGLNoTdozc-zIV4ZDsNlud7RtVN7_5Sb_jYrFcN3iN_0pPbEqUZK3QbTP_Ojyv4NdR4bwTHlyMbPcOQ3WJ2CliBpWCRdbnLqFJDOpClGmRJNYauhtr1pS-_6bKMjebkA8hXNJFWgDn5_YdTIFPINDWdb3vu6r8BaWOZRQ'
+ );
+ cy.contains('Animal');
+ });
+
+ // No idea why this is failing.
+ it.skip('should load uncompressed URL', () => {
+ cy.visit(
+ '/edit/#eyJjb2RlIjoiZ3JhcGggVERcbiAgICBBW05ldyBZZWFyXSAtLT58R2V0IG1vbmV5fCBCKEdvIHNob3BwaW5nKVxuICAgIEIgLS0-IEN7TGV0IG1lIHRoaW5rfVxuICAgIEMgLS0-fE9uZXwgRFtMYXB0b3BdXG4gICAgQyAtLT58VHdvfCBFW2lQaG9uZV1cbiAgICBDIC0tPnxUaHJlZXwgRltmYTpmYS1jYXIgQ2FyXSIsIm1lcm1haWQiOiJ7XG4gIFwidGhlbWVcIjogXCJkZWZhdWx0XCJcbn0iLCJ1cGRhdGVFZGl0b3IiOmZhbHNlLCJhdXRvU3luYyI6dHJ1ZSwidXBkYXRlRGlhZ3JhbSI6ZmFsc2V9'
+ );
+ cy.contains('New Year');
+ cy.visit(
+ '/edit#eyJjb2RlIjoiY2xhc3NEaWFncmFtXG4gICAgQW5pbWFsIDx8LS0gRHVja1xuICAgIEFuaW1hbCA8fC0tIEZpc2hcbiAgICBBbmltYWwgPHwtLSBaZWJyYVxuICAgIEFuaW1hbCA6ICtpbnQgYWdlXG4gICAgQW5pbWFsIDogK1N0cmluZyBnZW5kZXJcbiAgICBBbmltYWw6ICtpc01hbW1hbCgpXG4gICAgQW5pbWFsOiArbWF0ZSgpXG4gICAgY2xhc3MgRHVja3tcbiAgICAgICtTdHJpbmcgYmVha0NvbG9yXG4gICAgICArc3dpbSgpXG4gICAgICArcXVhY2soKVxuICAgIH1cbiAgICBjbGFzcyBGaXNoe1xuICAgICAgLWludCBzaXplSW5GZWV0XG4gICAgICAtY2FuRWF0KClcbiAgICB9XG4gICAgY2xhc3MgWmVicmF7XG4gICAgICArYm9vbCBpc193aWxkXG4gICAgICArcnVuKClcbiAgICB9XG4gICAgICAgICAgICAiLCJtZXJtYWlkIjoie1xuICBcInRoZW1lXCI6IFwiZGFya1wiXG59IiwidXBkYXRlRWRpdG9yIjpmYWxzZSwiYXV0b1N5bmMiOnRydWUsInVwZGF0ZURpYWdyYW0iOmZhbHNlfQ'
+ );
+ cy.contains('Animal');
+ cy.visit(
+ '/edit/#base64:eyJjb2RlIjoiZ3JhcGggVERcbiAgICBBW05ldyBZZWFyXSAtLT58R2V0IG1vbmV5fCBCKEdvIHNob3BwaW5nKVxuICAgIEIgLS0-IEN7TGV0IG1lIHRoaW5rfVxuICAgIEMgLS0-fE9uZXwgRFtMYXB0b3BdXG4gICAgQyAtLT58VHdvfCBFW2lQaG9uZV1cbiAgICBDIC0tPnxUaHJlZXwgRltmYTpmYS1jYXIgQ2FyXSIsIm1lcm1haWQiOiJ7XG4gIFwidGhlbWVcIjogXCJkZWZhdWx0XCJcbn0iLCJ1cGRhdGVFZGl0b3IiOmZhbHNlLCJhdXRvU3luYyI6dHJ1ZSwidXBkYXRlRGlhZ3JhbSI6ZmFsc2V9'
+ );
+ cy.contains('New Year');
+ });
+});
diff --git a/cypress/e2e/themes.spec.ts b/cypress/e2e/themes.spec.ts
new file mode 100644
index 00000000..c7d986ff
--- /dev/null
+++ b/cypress/e2e/themes.spec.ts
@@ -0,0 +1,56 @@
+describe('Test themes', () => {
+ describe('Test light themes', () => {
+ beforeEach(() => {
+ cy.clearLocalStorage();
+ cy.visit('/edit', {
+ onBeforeLoad(win) {
+ cy.stub(win, 'matchMedia')
+ .callThrough()
+ .withArgs('(prefers-color-scheme: dark)')
+ .returns({
+ matches: false
+ });
+ }
+ });
+ cy.contains('Change Theme').click();
+ });
+
+ it('should set light theme as default', () => {
+ cy.contains('light').parent().should('have.class', 'bordered');
+ cy.contains('dark').parent().should('not.have.class', 'bordered');
+ cy.getLocalStorage('themeStore').snapshot();
+ });
+
+ it('should change themes when clicked', () => {
+ cy.contains('light').parent().should('have.class', 'bordered');
+ cy.contains('cupcake').click();
+ cy.contains('cupcake').parent().should('have.class', 'bordered');
+ cy.contains('light').parent().should('not.have.class', 'bordered');
+ cy.contains('dark').parent().should('not.have.class', 'bordered');
+ cy.getLocalStorage('themeStore').snapshot();
+ });
+ });
+
+ describe('Test dark mode', () => {
+ beforeEach(() => {
+ cy.clearLocalStorage();
+ cy.visit('/edit', {
+ onBeforeLoad(win) {
+ cy.stub(win, 'matchMedia')
+ .callThrough()
+ .withArgs('(prefers-color-scheme: dark)')
+ .returns({
+ matches: true
+ });
+ }
+ });
+ cy.contains('Change Theme').click();
+ });
+
+ it('should set dark theme as default', () => {
+ cy.contains('light').parent().should('not.have.class', 'bordered');
+ cy.contains('dark').parent().should('have.class', 'bordered');
+ cy.getLocalStorage('themeStore').snapshot();
+ });
+ });
+});
diff --git a/cypress/e2e/util.ts b/cypress/e2e/util.ts
new file mode 100644
index 00000000..7d6130a0
--- /dev/null
+++ b/cypress/e2e/util.ts
@@ -0,0 +1,43 @@
+export const cmd = `{${Cypress.platform === 'darwin' ? 'meta' : 'ctrl'}}`;
+
+export const getEditor = ({ bottom = true, newline = false } = {}) =>
+ cy
+ .get('#editor textarea:first')
+ .click()
+ .focused()
+ .type(`${bottom ? '{pageDown}' : cmd}`)
+ .type(`${newline ? '{enter}' : cmd}`);
+
+const downloadsFolder = Cypress.config('downloadsFolder');
+
+export const verifyFileSizeGreaterThan = (
+ fileType: 'history' | 'diagram',
+ extension: string,
+ size: number
+) => {
+ const fileName = `mermaid-${fileType}-2022-01-01-000000.${extension}`;
+ const filePath = `${downloadsFolder}/${fileName}`;
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
+ cy.verifyDownload(fileName);
+ cy.readFile(filePath, null, {
+ log: false
+ }).then((buffer: ArrayBuffer) => expect(buffer.byteLength).to.be.gt(size));
+ cy.task('deleteFile', filePath);
+};
+
+export const verifyFileSnapshot = (
+ fileType: 'history' | 'diagram',
+ extension: string,
+ content: string
+) => {
+ const fileName = `mermaid-${fileType}-2022-01-01-000000.${extension}`;
+ const filePath = `${downloadsFolder}/${fileName}`;
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call
+ cy.verifyDownload(fileName);
+ cy.readFile(filePath, null, {
+ log: false
+ }).then((buffer: ArrayBuffer) =>
+ expect(new TextDecoder('utf-8').decode(buffer)).to.contain(content)
+ );
+ cy.task('deleteFile', filePath);
+};
diff --git a/cypress/fixtures/example.json b/cypress/fixtures/example.json
index 0ff2d645..02e42543 100644
--- a/cypress/fixtures/example.json
+++ b/cypress/fixtures/example.json
@@ -1,5 +1,5 @@
{
- "name": "Using fixtures to represent data",
- "email": "hello@cypress.io",
- "body": "Fixtures are a great way to mock data for responses to routes"
+ "name": "Using fixtures to represent data",
+ "email": "hello@cypress.io",
+ "body": "Fixtures are a great way to mock data for responses to routes"
}
diff --git a/cypress/integration/actions.spec.ts b/cypress/integration/actions.spec.ts
deleted file mode 100644
index fd5761fc..00000000
--- a/cypress/integration/actions.spec.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-describe('Check actions', () => {
- beforeEach(() => {
- cy.clearLocalStorage();
- cy.visit('/edit');
- });
- it('should update markdown code', () => {
- cy.get('#markdown')
- .invoke('val')
- .then((oldText) => {
- cy.get('#editor').click('bottom').type('{enter}C --> HistoryTest');
- cy.get('#markdown')
- .invoke('val')
- .then((newText) => {
- expect(oldText).to.not.eq(newText);
- });
- });
- });
-
- it('should load gists from URL', () => {
- cy.get('#gist').type('https://gist.github.com/sidharthv96/6268a23e673a533dcb198f241fd7012a');
- cy.contains('Load Gist').click();
- cy.contains('Go shopping!!');
- });
-});
diff --git a/cypress/integration/diagramUpdate.spec.ts b/cypress/integration/diagramUpdate.spec.ts
deleted file mode 100644
index b0075aa2..00000000
--- a/cypress/integration/diagramUpdate.spec.ts
+++ /dev/null
@@ -1,43 +0,0 @@
-describe('Auto sync tests', () => {
- beforeEach(() => {
- cy.clearLocalStorage();
- cy.visit('/');
- });
- it('should dim diagram when code is edited', () => {
- cy.contains('Auto sync').click();
- cy.get('#view').should('not.have.class', 'outOfSync');
- cy.get('#editor').type(' C --> Test');
- cy.get('#view').should('have.class', 'outOfSync');
- cy.getLocalStorage('codeStore').snapshot();
- });
-
- it('should show/hide sync button with auto sync', () => {
- cy.get('[data-cy=sync]').should('not.exist');
- cy.contains('Auto sync').click();
- cy.get('[data-cy=sync]').should('exist');
- cy.get('#autoSync').check();
- cy.get('[data-cy=sync]').should('not.exist');
- });
- it('should not dim diagram when code is in sync', () => {
- cy.contains('Auto sync').click();
- cy.get('#view').should('not.have.class', 'outOfSync');
- cy.get('#editor').type(' C --> Test');
- cy.get('#view').should('have.class', 'outOfSync');
- cy.get('[data-cy=sync]').click();
- cy.get('#view').should('not.have.class', 'outOfSync');
- cy.get('#autoSync').check();
- cy.get('#editor').type('ing');
- cy.get('#view').should('not.have.class', 'outOfSync');
- cy.getLocalStorage('codeStore').snapshot();
- });
-
- it('supports commenting code out/in', () => {
- const cmd = Cypress.platform === 'darwin' ? 'meta' : 'ctrl';
-
- cy.get('#editor').type(`{uparrow}{${cmd}}/`);
- cy.get('#view').contains('Car').should('not.exist');
-
- cy.get('#editor').type(`{uparrow}{${cmd}}/`);
- cy.get('#view').contains('Car').should('exist');
- });
-});
diff --git a/cypress/integration/history.spec.ts b/cypress/integration/history.spec.ts
deleted file mode 100644
index 93b5f951..00000000
--- a/cypress/integration/history.spec.ts
+++ /dev/null
@@ -1,65 +0,0 @@
-describe('Save History', () => {
- beforeEach(() => {
- cy.clock();
- cy.clearLocalStorage();
- cy.visit('/edit');
- cy.contains('Actions').click();
- cy.contains('History').click();
- });
-
- it('should save when clicked', () => {
- cy.get('#historyList').find('li').should('have.length', 0);
- cy.get('#historyList').contains('No items in History');
- cy.get('#saveHistory').click();
- cy.get('#historyList').find('No items in History').should('not.exist');
- cy.get('#historyList').find('li').should('have.length', 1);
- cy.get('#saveHistory').click();
- cy.on('window:alert', (str) => {
- expect(str).to.equal('State already saved.');
- });
- cy.on('window:confirm', () => true);
- cy.get('#editor').type(' C --> HistoryTest');
- cy.get('#saveHistory').click();
- cy.get('#historyList').find('li').should('have.length', 2);
- });
-
- it('should be able to restore and delete', () => {
- cy.get('#saveHistory').click();
- cy.get('#editor').type(' C --> HistoryTest');
- cy.get('#historyList').find('No items in History').should('not.exist');
- cy.get('#historyList').find('li').should('have.length', 1);
- cy.contains('HistoryTest');
- cy.contains('Restore').click();
- cy.contains('HistoryTest').should('not.exist');
- cy.contains('Delete').click();
- cy.get('#historyList').find('li').should('have.length', 0);
- cy.get('#historyList').contains('No items in History');
- cy.get('#saveHistory').click();
- cy.get('#editor').type(' C --> HistoryTest');
- cy.get('#saveHistory').click();
- cy.get('#editor').type('ing');
- cy.get('#clearHistory').click();
- cy.on('window:alert', (str) => {
- expect(str).to.equal('Clear all saved items?');
- });
- cy.on('window:confirm', () => true);
- cy.get('#historyList').contains('No items in History');
- });
-
- // TODO: Fix #639
- // eslint-disable-next-line mocha/no-skipped-tests
- xit('should auto save history', () => {
- cy.get('#editor').type(' C --> HistoryTest');
- cy.tick(70000);
- cy.contains('Timeline').click();
- cy.get('#historyList').find('li').should('have.length', 1);
- cy.get('#editor').type('ing');
- cy.tick(70000);
- cy.get('#historyList').find('li').should('have.length', 2);
- for (let i = 0; i < 31; i++) {
- cy.get('#editor').type('.');
- cy.tick(70000);
- }
- cy.get('#historyList').find('li').should('have.length', 30);
- });
-});
diff --git a/cypress/integration/loadSite.spec.ts b/cypress/integration/loadSite.spec.ts
deleted file mode 100644
index 8eff5f1c..00000000
--- a/cypress/integration/loadSite.spec.ts
+++ /dev/null
@@ -1,123 +0,0 @@
-import { toBase64 } from 'js-base64';
-
-describe('Site Loads', () => {
- beforeEach(() => {
- cy.clearLocalStorage();
- });
- it('Check Home page load', () => {
- cy.visit('/');
- cy.url().should('include', '/edit');
- cy.contains('History').click();
- cy.getLocalStorage('codeStore').snapshot();
- });
-
- it('Check Redirect from old URL', () => {
- cy.visit(
- '/#/edit/eyJjb2RlIjoiZ3JhcGggVERcbiAgICBBW0NocmlzdG1hc10gLS0-fEdldCBtb25leXwgQihHbyBzaG9wcGluZylcbiAgICBCIC0tPiBDe0xldCBtZSB0aGlua31cbiAgICBDIC0tPnxPbmV8IERbTGFwdG9wXVxuICAgIEMgLS0-fFR3b3wgRVtpUGhvbmVdXG4gICAgQyAtLT58VGhyZWV8IEZbZmE6ZmEtY2FyIENhcl0iLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9LCJ1cGRhdGVFZGl0b3IiOmZhbHNlfQ'
- );
- cy.url().should(
- 'include',
- '/edit#eyJjb2RlIjoiZ3JhcGggVERcbiAgICBBW0NocmlzdG1hc10gLS0-fEdldCBtb25leXwgQihHbyBzaG9wcGluZylcbiAgICBCIC0tPiBDe0xldCBtZSB0aGlua31cbiAgICBDIC0tPnxPbmV8IERbTGFwdG9wXVxuICAgIEMgLS0-fFR3b3wgRVtpUGhvbmVdXG4gICAgQyAtLT58VGhyZWV8IEZbZmE6ZmEtY2FyIENhcl0iLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9LCJ1cGRhdGVFZGl0b3IiOmZhbHNlfQ'
- );
- cy.contains('History').click();
- cy.getLocalStorage('codeStore').snapshot();
- });
-
- it('should load sample diagrams when clicked', () => {
- cy.contains('Sample Diagrams').click();
- cy.contains('Pie Chart').click();
- cy.contains('pie title Pets adopted by volunteers');
- cy.contains('Class Diagram').click();
- cy.contains('classDiagram');
- });
-
- it('should load diagram from gist', () => {
- cy.visit(`/edit?gist=https://gist.github.com/sidharthv96/6268a23e673a533dcb198f241fd7012a`);
- cy.contains('History').click();
- cy.contains('Go shopping!!');
- cy.contains('Revisions');
- cy.contains('sidharthv96 v8f8f1e2');
- cy.contains('sidharthv96 v7851e19');
- cy.getLocalStorage('codeStore').snapshot();
- });
-
- it('should load diagram from gist revision', () => {
- cy.visit(
- '/edit?gist=https://gist.github.com/sidharthv96/6268a23e673a533dcb198f241fd7012a/ec9b4ab0e41e4ff6287326cd3cb47affd7851e19'
- );
- cy.contains('History').click();
- cy.contains('Party');
- cy.contains('Revisions');
- cy.contains('sidharthv96 v7851e19');
- cy.getLocalStorage('codeStore').snapshot();
- });
-
- it('should load diagram from raw files', () => {
- cy.visit(
- '/edit?code=https://gist.githubusercontent.com/sidharthv96/6268a23e673a533dcb198f241fd7012a/raw/4eb03887e6a41397e80bdcdbf94017c498f8f1e2/code.mmd&config=https://gist.githubusercontent.com/sidharthv96/6268a23e673a533dcb198f241fd7012a/raw/4eb03887e6a41397e80bdcdbf94017c498f8f1e2/config.json'
- );
- cy.contains('Party');
- cy.getLocalStorage('codeStore').snapshot();
- });
-
- // Disabled temporarily. Should be enabled after the issue is fixed in Mermaid.
- // it('should prevent setting the "securityLevel" option via URL', () => {
- // const b64State = toBase64(
- // `{"code":"flowchart TD\\nA[\\"
\\"]","mermaid":"{\\"securityLevel\\": \\"loose\\", \\"theme\\": \\"forest\\"}","updateEditor":true,"autoSync":true,"updateDiagram":true}`,
- // true
- // );
- // cy.on('window:confirm', () => true);
- // cy.visit(`/edit#${b64State}`);
- // cy.contains('Config').click();
- // cy.contains('forest');
- // cy.contains('securityLevel').should('not.exist');
- // cy.get('#view').find('img').should('not.exist');
- // cy.get('#view').contains('
{
- const b64State = toBase64(
- `{"code":"graph TD\\nA[\\"
\\"]","mermaid":"{\\"securityLevel\\": \\"loose\\", \\"theme\\": \\"forest\\"}","updateEditor":true,"autoSync":true,"updateDiagram":true}`,
- true
- );
- cy.on('window:confirm', () => false);
- cy.visit(`/edit#${b64State}`);
- cy.contains('Config').click();
- cy.contains('forest');
- cy.contains('securityLevel');
- cy.get('#view').find('img').should('be.visible');
- });
-
- it('should show troubleshooting steps if loading fails', () => {
- cy.visit('/#/edit/eyJjb2RlIjoiZ3JhcGggVERcbiAg');
- cy.contains('Please Click here to Raise an issue in github.');
- });
-
- it('should load uncompressed URL', () => {
- cy.visit(
- '/edit/#eyJjb2RlIjoiZ3JhcGggVERcbiAgICBBW05ldyBZZWFyXSAtLT58R2V0IG1vbmV5fCBCKEdvIHNob3BwaW5nKVxuICAgIEIgLS0-IEN7TGV0IG1lIHRoaW5rfVxuICAgIEMgLS0-fE9uZXwgRFtMYXB0b3BdXG4gICAgQyAtLT58VHdvfCBFW2lQaG9uZV1cbiAgICBDIC0tPnxUaHJlZXwgRltmYTpmYS1jYXIgQ2FyXSIsIm1lcm1haWQiOiJ7XG4gIFwidGhlbWVcIjogXCJkZWZhdWx0XCJcbn0iLCJ1cGRhdGVFZGl0b3IiOmZhbHNlLCJhdXRvU3luYyI6dHJ1ZSwidXBkYXRlRGlhZ3JhbSI6ZmFsc2V9'
- );
- cy.contains('New Year');
- cy.visit(
- '/edit#eyJjb2RlIjoiY2xhc3NEaWFncmFtXG4gICAgQW5pbWFsIDx8LS0gRHVja1xuICAgIEFuaW1hbCA8fC0tIEZpc2hcbiAgICBBbmltYWwgPHwtLSBaZWJyYVxuICAgIEFuaW1hbCA6ICtpbnQgYWdlXG4gICAgQW5pbWFsIDogK1N0cmluZyBnZW5kZXJcbiAgICBBbmltYWw6ICtpc01hbW1hbCgpXG4gICAgQW5pbWFsOiArbWF0ZSgpXG4gICAgY2xhc3MgRHVja3tcbiAgICAgICtTdHJpbmcgYmVha0NvbG9yXG4gICAgICArc3dpbSgpXG4gICAgICArcXVhY2soKVxuICAgIH1cbiAgICBjbGFzcyBGaXNoe1xuICAgICAgLWludCBzaXplSW5GZWV0XG4gICAgICAtY2FuRWF0KClcbiAgICB9XG4gICAgY2xhc3MgWmVicmF7XG4gICAgICArYm9vbCBpc193aWxkXG4gICAgICArcnVuKClcbiAgICB9XG4gICAgICAgICAgICAiLCJtZXJtYWlkIjoie1xuICBcInRoZW1lXCI6IFwiZGFya1wiXG59IiwidXBkYXRlRWRpdG9yIjpmYWxzZSwiYXV0b1N5bmMiOnRydWUsInVwZGF0ZURpYWdyYW0iOmZhbHNlfQ'
- );
- cy.contains('Animal');
- cy.visit(
- '/edit/#base64:eyJjb2RlIjoiZ3JhcGggVERcbiAgICBBW05ldyBZZWFyXSAtLT58R2V0IG1vbmV5fCBCKEdvIHNob3BwaW5nKVxuICAgIEIgLS0-IEN7TGV0IG1lIHRoaW5rfVxuICAgIEMgLS0-fE9uZXwgRFtMYXB0b3BdXG4gICAgQyAtLT58VHdvfCBFW2lQaG9uZV1cbiAgICBDIC0tPnxUaHJlZXwgRltmYTpmYS1jYXIgQ2FyXSIsIm1lcm1haWQiOiJ7XG4gIFwidGhlbWVcIjogXCJkZWZhdWx0XCJcbn0iLCJ1cGRhdGVFZGl0b3IiOmZhbHNlLCJhdXRvU3luYyI6dHJ1ZSwidXBkYXRlRGlhZ3JhbSI6ZmFsc2V9'
- );
- cy.contains('New Year');
- });
-
- it('should load compressed URL', () => {
- cy.visit(
- '/edit#pako:eNpVkM2KwkAQhF-l6dMK5gVyEDRxvYi7sF6WjIcm0zqDzg_jBJEk725Hd2G3Tw31VVFUj23QjCWeEkUD-1p5kFs2O77BN1M6QFEshg1ncMHzfYDV2ybA1YQYrT_NXvhqgqDqtxPGkI315_ElVU__h-cB6mZLMYd4-Kvsb2GAdWM_jcT_V0xicb03RyqPVLSUoJI-OEfHyZHV0rqfDAqzYccKS3k1pbNC5Ufhuqgp81rbHBJKxuXKc6Quh6-7b7HMqeNfqLYkC7gfanwAlW1ZvQ'
- );
- cy.contains('New Year');
- cy.visit(
- '/edit#pako:eNptkU1PwzAMhv9K5BOI9Q9EXBDbJA477YYqITcxndV8QD40weh_Jy1rGR0-OY_tV2_sEyivCSQogzGuGduAtnaixINji0bcf1WVWGfVXdMtx8M1faYm4B8sxR27JLClJd6nwK4VLTlN4bI4jMQd2pLe3C4KFhNNcLQ92jv9ADGLNoTdozc-zIV4ZDsNlud7RtVN7_5Sb_jYrFcN3iN_0pPbEqUZK3QbTP_Ojyv4NdR4bwTHlyMbPcOQ3WJ2CliBpWCRdbnLqFJDOpClGmRJNYauhtr1pS-_6bKMjebkA8hXNJFWgDn5_YdTIFPINDWdb3vu6r8BaWOZRQ'
- );
- cy.reload();
- cy.contains('Animal');
- });
-});
diff --git a/cypress/integration/themes.spec.ts b/cypress/integration/themes.spec.ts
deleted file mode 100644
index fb4e6c52..00000000
--- a/cypress/integration/themes.spec.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-describe('Test themes', () => {
- describe('Test light themes', () => {
- beforeEach(() => {
- cy.clearLocalStorage();
- cy.visit('/edit', {
- onBeforeLoad(win) {
- cy.stub(win, 'matchMedia')
- .callThrough()
- .withArgs('(prefers-color-scheme: dark)')
- .returns({
- matches: false
- });
- }
- });
- cy.contains('Change Theme').click();
- });
-
- it('should set light theme as default', () => {
- cy.contains('light').parent().should('have.class', 'bordered');
- cy.contains('dark').parent().should('not.have.class', 'bordered');
- cy.getLocalStorage('themeStore').snapshot();
- });
-
- it('should change themes when clicked', () => {
- cy.contains('light').parent().should('have.class', 'bordered');
- cy.contains('cupcake').click();
- cy.contains('cupcake').parent().should('have.class', 'bordered');
- cy.contains('light').parent().should('not.have.class', 'bordered');
- cy.contains('dark').parent().should('not.have.class', 'bordered');
- cy.getLocalStorage('themeStore').snapshot();
- });
- });
-
- describe('Test dark mode', () => {
- // eslint-disable-next-line mocha/no-hooks-for-single-case
- beforeEach(() => {
- cy.clearLocalStorage();
- cy.visit('/edit', {
- onBeforeLoad(win) {
- cy.stub(win, 'matchMedia')
- .callThrough()
- .withArgs('(prefers-color-scheme: dark)')
- .returns({
- matches: true
- });
- }
- });
- cy.contains('Change Theme').click();
- });
-
- it('should set dark theme as default', () => {
- cy.contains('light').parent().should('not.have.class', 'bordered');
- cy.contains('dark').parent().should('have.class', 'bordered');
- cy.getLocalStorage('themeStore').snapshot();
- });
- });
-});
diff --git a/cypress/plugins/index.cjs b/cypress/plugins/index.cjs
deleted file mode 100644
index f7ffbe14..00000000
--- a/cypress/plugins/index.cjs
+++ /dev/null
@@ -1,31 +0,0 @@
-///
-// ***********************************************************
-// This example plugins/index.js can be used to load plugins
-//
-// You can change the location of this file or turn off loading
-// the plugins file with the 'pluginsFile' configuration option.
-//
-// You can read more here:
-// https://on.cypress.io/plugins-guide
-// ***********************************************************
-
-// This function is called when a project is opened or re-opened (e.g. due to
-// the project's config changing)
-
-/**
- * @type {Cypress.PluginConfig}
- */
-// eslint-disable-next-line no-unused-vars
-import * as fs from 'fs';
-
-module.exports = (on, config) => {
- on('task', {
- readFileMaybe(filename) {
- if (fs.existsSync(filename)) {
- return fs.readFileSync(filename, 'utf8');
- }
-
- return null;
- }
- });
-};
diff --git a/cypress/snapshots.js b/cypress/snapshots.js
index 0cfb6673..acb48a8f 100644
--- a/cypress/snapshots.js
+++ b/cypress/snapshots.js
@@ -1,28 +1,28 @@
module.exports = {
"Site Loads": {
"Check Home page load": {
- "1": "{\"code\":\"flowchart TD\\n A[Christmas] -->|Get money| B(Go shopping)\\n B --> C{Let me think}\\n C -->|One| D[Laptop]\\n C -->|Two| E[iPhone]\\n C -->|Three| F[fa:fa-car Car]\\n \",\"mermaid\":\"{\\n \\\"theme\\\": \\\"default\\\"\\n}\",\"updateEditor\":true,\"autoSync\":true,\"updateDiagram\":true}"
+ "1": "{\"code\":\"flowchart TD\\n A[Christmas] -->|Get money| B(Go shopping)\\n B --> C{Let me think}\\n C -->|One| D[Laptop]\\n C -->|Two| E[iPhone]\\n C -->|Three| F[fa:fa-car Car]\\n \",\"mermaid\":\"{\\n \\\"theme\\\": \\\"default\\\"\\n}\",\"autoSync\":true,\"updateDiagram\":true}"
},
"Check Redirect from old URL": {
- "1": "{\"code\":\"graph TD\\n A[Christmas] -->|Get money| B(Go shopping)\\n B --> C{Let me think}\\n C -->|One| D[Laptop]\\n C -->|Two| E[iPhone]\\n C -->|Three| F[fa:fa-car Car]\",\"mermaid\":\"{\\n \\\"theme\\\": \\\"default\\\"\\n}\",\"updateEditor\":false,\"autoSync\":true,\"updateDiagram\":true}"
+ "1": "{\"code\":\"graph TD\\n A[Christmas] -->|Get money| B(Go shopping)\\n B --> C{Let me think}\\n C -->|One| D[Laptop]\\n C -->|Two| E[iPhone]\\n C -->|Three| F[fa:fa-car Car]\",\"mermaid\":\"{\\n \\\"theme\\\": \\\"default\\\"\\n}\",\"autoSync\":true,\"updateDiagram\":true}"
},
"should load diagram from gist": {
- "1": "{\"code\":\"graph TD\\n A[Party] -->|Get money| B(Go shopping!!)\\n \",\"mermaid\":\"{\\n \\\"theme\\\": \\\"forest\\\",\\n \\\"test\\\": \\\"hello world\\\"\\n}\",\"updateEditor\":false,\"autoSync\":true,\"updateDiagram\":true,\"loader\":{\"type\":\"gist\",\"config\":{\"url\":\"https://gist.github.com/sidharthv96/6268a23e673a533dcb198f241fd7012a\"}}}"
+ "1": "{\"code\":\"graph TD\\n A[Party] -->|Get money| B(Go shopping!!)\\n \",\"mermaid\":\"{\\n \\\"theme\\\": \\\"forest\\\",\\n \\\"test\\\": \\\"hello world\\\"\\n}\",\"autoSync\":true,\"updateDiagram\":true,\"loader\":{\"type\":\"gist\",\"config\":{\"url\":\"https://gist.github.com/sidharthv96/6268a23e673a533dcb198f241fd7012a\"}}}"
},
"should load diagram from gist revision": {
- "1": "{\"code\":\"graph TD\\n A[Party] -->|Get money| B(Go shopping)\\n \",\"mermaid\":\"{\\n \\\"theme\\\": \\\"forest\\\",\\n \\\"test\\\": \\\"hello\\\"\\n}\",\"updateEditor\":false,\"autoSync\":true,\"updateDiagram\":true,\"loader\":{\"type\":\"gist\",\"config\":{\"url\":\"https://gist.github.com/sidharthv96/6268a23e673a533dcb198f241fd7012a/ec9b4ab0e41e4ff6287326cd3cb47affd7851e19\"}}}"
+ "1": "{\"code\":\"graph TD\\n A[Party] -->|Get money| B(Go shopping)\\n \",\"mermaid\":\"{\\n \\\"theme\\\": \\\"forest\\\",\\n \\\"test\\\": \\\"hello\\\"\\n}\",\"autoSync\":true,\"updateDiagram\":true,\"loader\":{\"type\":\"gist\",\"config\":{\"url\":\"https://gist.github.com/sidharthv96/6268a23e673a533dcb198f241fd7012a/ec9b4ab0e41e4ff6287326cd3cb47affd7851e19\"}}}"
},
"should load diagram from raw files": {
- "1": "{\"code\":\"graph TD\\n A[Party] -->|Get money| B(Go shopping!!)\\n \",\"mermaid\":\"{\\n \\\"theme\\\": \\\"forest\\\",\\n \\\"test\\\": \\\"hello world\\\"\\n}\",\"updateEditor\":false,\"autoSync\":true,\"updateDiagram\":true,\"loader\":{\"type\":\"files\",\"config\":{\"codeURL\":\"https://gist.githubusercontent.com/sidharthv96/6268a23e673a533dcb198f241fd7012a/raw/4eb03887e6a41397e80bdcdbf94017c498f8f1e2/code.mmd\",\"configURL\":\"https://gist.githubusercontent.com/sidharthv96/6268a23e673a533dcb198f241fd7012a/raw/4eb03887e6a41397e80bdcdbf94017c498f8f1e2/config.json\"}}}"
+ "1": "{\"code\":\"graph TD\\n A[Party] -->|Get money| B(Go shopping!!)\\n \",\"mermaid\":\"{\\n \\\"theme\\\": \\\"forest\\\",\\n \\\"test\\\": \\\"hello world\\\"\\n}\",\"autoSync\":true,\"updateDiagram\":true,\"loader\":{\"type\":\"files\",\"config\":{\"codeURL\":\"https://gist.githubusercontent.com/sidharthv96/6268a23e673a533dcb198f241fd7012a/raw/4eb03887e6a41397e80bdcdbf94017c498f8f1e2/code.mmd\",\"configURL\":\"https://gist.githubusercontent.com/sidharthv96/6268a23e673a533dcb198f241fd7012a/raw/4eb03887e6a41397e80bdcdbf94017c498f8f1e2/config.json\"}}}"
}
},
- "__version": "9.3.1",
+ "__version": "11.2.0",
"Auto sync tests": {
"should dim diagram when code is edited": {
- "1": "{\"code\":\"flowchart TD\\n A[Christmas] -->|Get money| B(Go shopping)\\n B --> C{Let me think}\\n C -->|One| D[Laptop]\\n C -->|Two| E[iPhone]\\n C -->|Three| F[fa:fa-car Car]\\n C --> Test\",\"mermaid\":\"{\\n \\\"theme\\\": \\\"default\\\"\\n}\",\"updateEditor\":false,\"autoSync\":false,\"updateDiagram\":false}"
+ "1": "{\"code\":\"flowchart TD\\n A[Christmas] -->|Get money| B(Go shopping)\\n B --> C{Let me think}\\n C -->|One| D[Laptop]\\n C -->|Two| E[iPhone]\\n C -->|Three| F[fa:fa-car Car]\\n C --> Test\",\"mermaid\":\"{\\n \\\"theme\\\": \\\"default\\\"\\n}\",\"autoSync\":false,\"updateDiagram\":false}"
},
"should not dim diagram when code is in sync": {
- "1": "{\"code\":\"flowchart TD\\n A[Christmas] -->|Get money| B(Go shopping)\\n B --> C{Let me think}\\n C -->|One| D[Laptop]\\n C -->|Two| E[iPhone]\\n C -->|Three| F[fa:fa-car Car]\\n C --> Testing\",\"mermaid\":\"{\\n \\\"theme\\\": \\\"default\\\"\\n}\",\"updateEditor\":false,\"autoSync\":true,\"updateDiagram\":false}"
+ "1": "{\"code\":\"flowchart TD\\n A[Christmas] -->|Get money| B(Go shopping)\\n B --> C{Let me think}\\n C -->|One| D[Laptop]\\n C -->|Two| E[iPhone]\\n C -->|Three| F[fa:fa-car Car]\\n C --> Testing\",\"mermaid\":\"{\\n \\\"theme\\\": \\\"default\\\"\\n}\",\"autoSync\":true,\"updateDiagram\":false}"
}
},
"Test themes": {
diff --git a/cypress/support/commands.ts b/cypress/support/commands.ts
index fe4e2603..0f4147cd 100644
--- a/cypress/support/commands.ts
+++ b/cypress/support/commands.ts
@@ -27,12 +27,12 @@ import { register } from '@cypress/snapshot';
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
register();
declare global {
- // eslint-disable-next-line @typescript-eslint/no-namespace
- namespace Cypress {
- interface Chainable {
- snapshot(): void;
- }
- }
+ // eslint-disable-next-line @typescript-eslint/no-namespace
+ namespace Cypress {
+ interface Chainable {
+ snapshot(): void;
+ }
+ }
}
import 'cypress-localstorage-commands';
diff --git a/cypress/support/index.js b/cypress/support/e2e.js
similarity index 77%
rename from cypress/support/index.js
rename to cypress/support/e2e.js
index 6e3de8ab..d9401131 100644
--- a/cypress/support/index.js
+++ b/cypress/support/e2e.js
@@ -15,13 +15,14 @@
// Import commands.js using ES2015 syntax:
import './commands';
+require('cy-verify-downloads').addCustomCommand();
// Alternatively you can use CommonJS syntax:
// require('./commands')
Cypress.on('uncaught:exception', (err) => {
- /* returning false here prevents Cypress from failing the test */
- if (err.message.includes('ResizeObserver loop limit exceeded')) {
- return false;
- }
+ /* returning false here prevents Cypress from failing the test */
+ if (err.message.includes('ResizeObserver loop limit exceeded')) {
+ return false;
+ }
});
diff --git a/cypress/tsconfig.json b/cypress/tsconfig.json
index 77501744..edd14f8b 100644
--- a/cypress/tsconfig.json
+++ b/cypress/tsconfig.json
@@ -1,7 +1,7 @@
{
- "compilerOptions": {
- "allowJs": true,
- "types": ["cypress", "cypress-localstorage-commands"]
- },
- "include": ["**/*.ts"]
+ "compilerOptions": {
+ "allowJs": true,
+ "types": ["cypress", "cypress-localstorage-commands", "cy-verify-downloads", "node"]
+ },
+ "include": ["**/*.ts"]
}
diff --git a/nginx.conf b/nginx.conf
new file mode 100644
index 00000000..dd830603
--- /dev/null
+++ b/nginx.conf
@@ -0,0 +1,9 @@
+server {
+ listen 80;
+ server_name mermaid;
+ location / {
+ root /usr/share/nginx/html;
+ # Fallback to index.html for other paths
+ try_files $uri /index.html;
+ }
+}
\ No newline at end of file
diff --git a/package.json b/package.json
index 10465487..fd3f4800 100644
--- a/package.json
+++ b/package.json
@@ -1,76 +1,97 @@
{
- "name": "mermaid-live-editor",
- "version": "2.0.67",
- "scripts": {
- "dev": "svelte-kit dev --host 0.0.0.0",
- "build": "svelte-kit build",
- "preview": "svelte-kit preview",
- "lint": "prettier --check --plugin-search-dir=. . && eslint --ignore-path .gitignore .",
- "lint:fix": "prettier --write --plugin-search-dir=. . && eslint --fix --ignore-path .gitignore .",
- "format": "prettier --write --plugin-search-dir=. .",
- "pre-commit": "lint-staged",
- "postinstall": "husky install",
- "test": "cypress run",
- "cy": "cypress open"
- },
- "devDependencies": {
- "@cypress/snapshot": "^2.1.7",
- "@sveltejs/adapter-static": "1.0.0-next.28",
- "@sveltejs/kit": "1.0.0-next.260",
- "@types/mermaid": "^8.2.7",
- "@types/pako": "^1.0.3",
- "@typescript-eslint/eslint-plugin": "^4.33.0",
- "@typescript-eslint/parser": "^4.33.0",
- "autoprefixer": "^10.4.2",
- "chai": "^4.3.6",
- "cssnano": "^5.0.17",
- "cypress": "9.4.1",
- "cypress-localstorage-commands": "^1.6.1",
- "eslint": "^7.32.0",
- "eslint-config-prettier": "^8.1.0",
- "eslint-plugin-cypress": "^2.12.1",
- "eslint-plugin-es": "^4.1.0",
- "eslint-plugin-mocha": "^10.0.3",
- "eslint-plugin-postcss-modules": "^2.0.0",
- "eslint-plugin-svelte3": "^3.4.0",
- "eslint-plugin-tailwindcss": "^3.4.3",
- "husky": "^7.0.4",
- "lint-staged": "^12.3.3",
- "mocha": "^9.2.0",
- "node-html-parser": "^5.2.0",
- "postcss": "^8.4.6",
- "postcss-load-config": "^3.1.3",
- "prettier": "~2.5.1",
- "prettier-plugin-svelte": "^2.6.0",
- "svelte": "^3.46.4",
- "svelte-preprocess": "^4.10.3",
- "tailwindcss": "^3.0.21",
- "tslib": "^2.3.1",
- "typescript": "^4.5.5"
- },
- "type": "module",
- "dependencies": {
- "@analytics/google-analytics": "^0.5.3",
- "@macfja/svelte-persistent-store": "^1.2.0",
- "analytics": "^0.8.0",
- "daisyui": "1.25.4",
- "js-base64": "^3.7.2",
- "mermaid": "8.14.0",
- "moment": "^2.29.1",
- "monaco-editor": "^0.32.1",
- "monaco-mermaid": "^1.0.3",
- "pako": "2.0.4",
- "random-word-slugs": "^0.1.6"
- },
- "lint-staged": {
- "*.{ts,svelte,js,css,md,json}": [
- "prettier --plugin-search-dir=. --write",
- "eslint --ignore-path .gitignore "
- ]
- },
- "volta": {
- "node": "14.16.1",
- "yarn": "1.22.10",
- "npm": "7.11.2"
- }
+ "name": "mermaid-live-editor",
+ "version": "2.0.67",
+ "type": "module",
+ "license": "MIT",
+ "scripts": {
+ "dev": "vite dev",
+ "dev:force": "MERMAID_LOCAL=true yarn dev --force",
+ "dev:test": "yarn dev",
+ "build": "vite build",
+ "preview": "vite preview",
+ "lint": "prettier --check --cache --plugin-search-dir=. .;eslint --ignore-path .gitignore .",
+ "lint:fix": "prettier --write --cache --plugin-search-dir=. .;eslint --fix --ignore-path .gitignore .",
+ "format": "prettier --write --cache --plugin-search-dir=. .",
+ "pre-commit": "lint-staged",
+ "postinstall": "husky install && svelte-kit sync && (git config blame.ignoreRevsFile .git-blame-ignore-revs || true)",
+ "test:unit": "vitest",
+ "test:ui": "vitest --ui",
+ "test:coverage": "vitest run --coverage",
+ "test:browser": "cypress run",
+ "test": "test:unit && test:browser",
+ "cy": "cypress open"
+ },
+ "devDependencies": {
+ "@cypress/snapshot": "2.1.7",
+ "@sveltejs/adapter-static": "1.0.6",
+ "@sveltejs/kit": "1.3.10",
+ "@testing-library/jest-dom": "5.16.5",
+ "@testing-library/svelte": "3.2.2",
+ "@types/pako": "2.0.0",
+ "@types/uuid": "8.3.4",
+ "@typescript-eslint/eslint-plugin": "5.49.0",
+ "@typescript-eslint/parser": "5.49.0",
+ "@vitest/ui": "^0.28.0",
+ "autoprefixer": "^10.4.13",
+ "c8": "7.12.0",
+ "chai": "^4.3.7",
+ "cssnano": "^5.1.14",
+ "cy-verify-downloads": "0.1.11",
+ "cypress": "11.2.0",
+ "cypress-localstorage-commands": "2.2.2",
+ "eslint": "8.33.0",
+ "eslint-config-prettier": "8.6.0",
+ "eslint-plugin-cypress": "2.12.1",
+ "eslint-plugin-es": "4.1.0",
+ "eslint-plugin-no-only-tests": "^3.1.0",
+ "eslint-plugin-postcss-modules": "2.0.0",
+ "eslint-plugin-svelte3": "4.0.0",
+ "eslint-plugin-tailwindcss": "3.8.3",
+ "eslint-plugin-vitest": "^0.0.32",
+ "esserializer": "1.3.10",
+ "font-awesome": "^4.7.0",
+ "husky": "^8.0.2",
+ "jsdom": "20.0.3",
+ "lint-staged": "13.1.1",
+ "node-html-parser": "^6.1.4",
+ "postcss": "^8.4.19",
+ "postcss-load-config": "4.0.1",
+ "prettier": "2.8.3",
+ "prettier-plugin-svelte": "^2.8.1",
+ "svelte": "3.55.1",
+ "svelte-preprocess": "4.10.7",
+ "tailwindcss": "^3.2.4",
+ "tslib": "^2.4.1",
+ "typescript": "4.9.5",
+ "vite": "^4.0.1",
+ "vitest": "^0.28.0"
+ },
+ "dependencies": {
+ "@mermaid-js/mermaid-mindmap": "9.3.0",
+ "analytics": "0.8.1",
+ "analytics-plugin-plausible": "0.0.6",
+ "daisyui": "2.49.0",
+ "js-base64": "3.7.4",
+ "mermaid": "9.3.0",
+ "moment": "2.29.4",
+ "monaco-editor": "0.34.1",
+ "monaco-mermaid": "1.0.8",
+ "pako": "2.1.0",
+ "random-word-slugs": "0.1.6",
+ "svg-pan-zoom": "3.6.1",
+ "uuid": "9.0.0"
+ },
+ "lint-staged": {
+ "*.{ts,svelte,js,css,md,json}": [
+ "prettier --plugin-search-dir=. --write",
+ "eslint --ignore-path .gitignore "
+ ]
+ },
+ "volta": {
+ "node": "18.13.0",
+ "yarn": "1.22.19"
+ },
+ "engines": {
+ "node": ">=16.7"
+ }
}
diff --git a/postcss.config.cjs b/postcss.config.cjs
index 483734f1..efb41d9e 100644
--- a/postcss.config.cjs
+++ b/postcss.config.cjs
@@ -6,18 +6,18 @@ const mode = process.env.NODE_ENV;
const dev = mode === 'development';
module.exports = {
- plugins: [
- // Some plugins, like postcss-nested, need to run before Tailwind
+ plugins: [
+ // Some plugins, like postcss-nested, need to run before Tailwind
- tailwindcss,
+ tailwindcss,
- // But others, like autoprefixer, need to run after
+ // But others, like autoprefixer, need to run after
- autoprefixer,
+ autoprefixer,
- !dev &&
- cssnano({
- preset: 'default'
- })
- ]
+ !dev &&
+ cssnano({
+ preset: 'default'
+ })
+ ]
};
diff --git a/renovate.json b/renovate.json
index 86d2a300..1413a3ce 100644
--- a/renovate.json
+++ b/renovate.json
@@ -1,28 +1,24 @@
{
- "extends": [
- "config:base",
- ":rebaseStalePrs",
- "group:allNonMajor",
- "schedule:earlyMondays",
- ":automergeMinor",
- ":automergeTesters",
- ":automergeLinters",
- ":automergeTypes",
- ":automergePatch"
- ],
- "packageRules": [
- {
- "matchUpdateTypes": ["minor", "patch", "pin", "digest"],
- "automerge": true
- },
- {
- "matchDatasources": ["npm"],
- "stabilityDays": 3
- }
- ],
- "dependencyDashboard": true,
- "major": {
- "dependencyDashboardApproval": true
- },
- "dependencyDashboardAutoclose": true
+ "extends": [
+ "config:base",
+ ":rebaseStalePrs",
+ "group:allNonMajor",
+ "schedule:earlyMondays",
+ ":automergeMinor",
+ ":automergeTesters",
+ ":automergeLinters",
+ ":automergeTypes",
+ ":automergePatch"
+ ],
+ "packageRules": [
+ {
+ "matchUpdateTypes": ["minor", "patch", "pin", "digest"],
+ "automerge": true
+ }
+ ],
+ "dependencyDashboard": true,
+ "major": {
+ "dependencyDashboardApproval": true
+ },
+ "dependencyDashboardAutoclose": true
}
diff --git a/snapshots.js b/snapshots.js
deleted file mode 100644
index e69de29b..00000000
diff --git a/src/app.html b/src/app.html
index a958d36c..3dcfd710 100644
--- a/src/app.html
+++ b/src/app.html
@@ -1,47 +1,57 @@
-
-
-
- Online FlowChart & Diagrams Editor - Mermaid Live Editor
-
-
-
-
-
-
-
-
-
-
-
-
- %svelte.head%
-
-
- %svelte.body%
-
+
+
+
+ Online FlowChart & Diagrams Editor - Mermaid Live Editor
+
+
+
+
+
+
+
+
+
+
+
+
+
+ %sveltekit.head%
+
+
+ %sveltekit.body%
+
diff --git a/src/app.postcss b/src/app.postcss
index 1b5c3824..888c737e 100644
--- a/src/app.postcss
+++ b/src/app.postcss
@@ -3,8 +3,8 @@
@tailwind utilities;
.input {
- @apply flex-1 border-primary border-solid border-2 rounded;
+ @apply flex-1 border-primary border-solid border-2 rounded;
}
.action-btn {
- @apply btn btn-primary;
+ @apply btn btn-primary;
}
diff --git a/src/env.d.ts b/src/env.d.ts
new file mode 100644
index 00000000..8188f7aa
--- /dev/null
+++ b/src/env.d.ts
@@ -0,0 +1,14 @@
+///
+
+interface ImportMetaEnv {
+ readonly MERMAID_RENDERER_URL?: string;
+ readonly MERMAID_KROKI_RENDERER_URL?: string;
+ readonly MERMAID_CDN_URL?: string;
+ readonly MERMAID_BASE_URL?: string;
+ readonly MERMAID_LOCAL?: boolean;
+ // more env variables...
+}
+
+interface ImportMeta {
+ readonly env: ImportMetaEnv;
+}
diff --git a/src/global.d.ts b/src/global.d.ts
index 63908c66..95ecd6a0 100644
--- a/src/global.d.ts
+++ b/src/global.d.ts
@@ -1 +1,16 @@
+/* eslint-disable @typescript-eslint/no-empty-interface */
+/* eslint-disable @typescript-eslint/ban-types */
+/* eslint-disable @typescript-eslint/no-unused-vars */
+
///
+import type { TestingLibraryMatchers } from '@testing-library/jest-dom/matchers';
+
+declare global {
+ namespace jest {
+ interface Matchers
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
+ // @ts-expect-error
+ // eslint-disable-next-line no-undef
+ extends TestingLibraryMatchers {}
+ }
+}
diff --git a/src/hooks.server.ts b/src/hooks.server.ts
new file mode 100644
index 00000000..49af22b0
--- /dev/null
+++ b/src/hooks.server.ts
@@ -0,0 +1,6 @@
+import type { Handle } from '@sveltejs/kit';
+
+export const handle: Handle = async ({ event, resolve }) => {
+ const response = await resolve(event, {});
+ return response;
+};
diff --git a/src/hooks.ts b/src/hooks.ts
deleted file mode 100644
index 6eba0dda..00000000
--- a/src/hooks.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import type { Handle } from '@sveltejs/kit/types/hooks';
-
-export const handle: Handle = async ({ event, resolve }) => {
- const response = await resolve(event, {
- ssr: false
- });
-
- return response;
-};
diff --git a/src/lib/components/Actions.svelte b/src/lib/components/Actions.svelte
new file mode 100644
index 00000000..166a58cd
--- /dev/null
+++ b/src/lib/components/Actions.svelte
@@ -0,0 +1,265 @@
+
+
+
+
+
diff --git a/src/lib/components/Card/Card.svelte b/src/lib/components/Card/Card.svelte
new file mode 100644
index 00000000..38098eb6
--- /dev/null
+++ b/src/lib/components/Card/Card.svelte
@@ -0,0 +1,31 @@
+
+
+
+
(isOpen = !isOpen)}
+ on:keypress={() => (isOpen = !isOpen)}>
+
+
+ {#if isOpen}
+
+
+
+ {/if}
+
diff --git a/src/lib/components/Card/Tabs.svelte b/src/lib/components/Card/Tabs.svelte
new file mode 100644
index 00000000..3c7c8f9d
--- /dev/null
+++ b/src/lib/components/Card/Tabs.svelte
@@ -0,0 +1,52 @@
+
+
+
+
(isOpen = !isOpen)}
+ on:keypress|stopPropagation={() => (isOpen = !isOpen)}>
+ {#if isCloseable}
+
+ {/if}
+ {title}
+ {#if isOpen && tabs}
+
+ {/if}
+
+
+
diff --git a/src/lib/components/Card/card.test.ts b/src/lib/components/Card/card.test.ts
new file mode 100644
index 00000000..8fd16961
--- /dev/null
+++ b/src/lib/components/Card/card.test.ts
@@ -0,0 +1,23 @@
+import { cleanup, render } from '@testing-library/svelte';
+import { describe, expect, it, afterEach } from 'vitest';
+import Card from './Card.svelte';
+
+describe('card.svelte', () => {
+ // TODO: @testing-library/svelte claims to add this automatically but it doesn't work without explicit afterEach
+ afterEach(() => cleanup());
+
+ it('mounts', () => {
+ const { container } = render(Card, {
+ title: 'TabTest',
+ tabs: [
+ { id: 't1', title: 'title1', icon: 'fab fa-git-alt' },
+ { id: 't2', title: 'title2', icon: 'far fa-bookmark' }
+ ]
+ });
+ expect(container).toBeTruthy();
+ expect(container).toHaveTextContent('TabTest');
+ expect(container).toHaveTextContent('title1');
+ expect(container).toHaveTextContent('title2');
+ expect(container).not.toHaveTextContent('title3');
+ });
+});
diff --git a/src/lib/components/Editor.svelte b/src/lib/components/Editor.svelte
new file mode 100644
index 00000000..5525afe9
--- /dev/null
+++ b/src/lib/components/Editor.svelte
@@ -0,0 +1,131 @@
+
+
+
diff --git a/src/lib/components/History/History.svelte b/src/lib/components/History/History.svelte
new file mode 100644
index 00000000..3663b71d
--- /dev/null
+++ b/src/lib/components/History/History.svelte
@@ -0,0 +1,192 @@
+
+
+
+
+
+ {#if $historyStore.length > 0}
+
+ {/if}
+ |
+
+ {#if $historyModeStore !== 'loader'}
+
+ {/if}
+
+
+ {#if $historyStore.length > 0}
+ {#each $historyStore as { id, state, time, name, url, type }}
+ -
+
+
+
+ {#if url}
+
{name}
+ {:else}
+
{name}
+ {/if}
+
{relativeTime(time)}
+
+
+
+
+ {#if type !== 'loader'}
+
+ {/if}
+
+
+
+ {/each}
+ {:else}
+
+ No items in History
+ Click the Save button to save current state and restore it later.
+ Timeline will automatically be saved every minute.
+
+ {/if}
+
+
diff --git a/src/lib/components/History/history.test.ts b/src/lib/components/History/history.test.ts
new file mode 100644
index 00000000..482de012
--- /dev/null
+++ b/src/lib/components/History/history.test.ts
@@ -0,0 +1,126 @@
+import type { HistoryEntry } from '$lib/types';
+import { describe, it, expect } from 'vitest';
+import {
+ addHistoryEntry,
+ injectHistoryIDs,
+ clearHistoryData,
+ historyModeStore,
+ historyStore
+} from './history';
+import { defaultState } from '$lib/util/state';
+import { get } from 'svelte/store';
+
+describe('history', () => {
+ it('should handle saving individual history entry', () => {
+ expect(window.localStorage.getItem('manualHistoryStore')).toBe('[]');
+ expect(window.localStorage.getItem('autoHistoryStore')).toBe('[]');
+
+ addHistoryEntry({
+ state: defaultState,
+ time: 12345,
+ type: 'manual'
+ });
+
+ const [manualEntry] = JSON.parse(
+ window.localStorage.getItem('manualHistoryStore') ?? '[]'
+ ) as HistoryEntry[];
+
+ expect(manualEntry.time).toBe(12345);
+ expect(manualEntry.type).toBe('manual');
+ expect(manualEntry.name).not.toBeNull();
+ expect(manualEntry.state).not.toBeNull();
+
+ addHistoryEntry({
+ state: defaultState,
+ time: 54321,
+ type: 'auto'
+ });
+
+ const [autoEntry] = JSON.parse(
+ window.localStorage.getItem('autoHistoryStore') ?? '[]'
+ ) as HistoryEntry[];
+
+ expect(autoEntry.time).toBe(54321);
+ expect(autoEntry.type).toBe('auto');
+ expect(autoEntry.name).not.toBeNull();
+ expect(autoEntry.state).not.toBeNull();
+
+ historyModeStore.set('manual');
+ clearHistoryData();
+ historyModeStore.set('auto');
+ clearHistoryData();
+ expect(window.localStorage.getItem('manualHistoryStore')).toBe('[]');
+ expect(window.localStorage.getItem('autoHistoryStore')).toBe('[]');
+ });
+
+ it('should clear history entries', () => {
+ addHistoryEntry({
+ state: defaultState,
+ time: 12345,
+ type: 'manual'
+ });
+ addHistoryEntry({
+ state: { ...defaultState, code: 'graph TD\\n A[Christmas] -->|Get money| B(Go shopping)' },
+ time: 123456,
+ type: 'manual'
+ });
+
+ historyModeStore.set('manual');
+ const store: HistoryEntry[] = get(historyStore);
+ expect(store.length).toBe(2);
+ clearHistoryData(store[1].id);
+ expect(get(historyStore).length).toBe(1);
+ clearHistoryData();
+ expect(get(historyStore).length).toBe(0);
+
+ historyModeStore.set('auto');
+ addHistoryEntry({
+ state: defaultState,
+ time: 54321,
+ type: 'auto'
+ });
+ addHistoryEntry({
+ state: { ...defaultState, code: 'graph TD\\n A[Christmas] -->|Get money| B(Go shopping)' },
+ time: 654321,
+ type: 'auto'
+ });
+ expect(get(historyStore).length).toBe(2);
+ clearHistoryData();
+ expect(get(historyStore).length).toBe(0);
+ // Test calling when history is empty
+ clearHistoryData();
+ expect(get(historyStore).length).toBe(0);
+ });
+});
+
+describe('history migration', () => {
+ it('should inject history IDs as migration', () => {
+ window.localStorage.setItem(
+ 'manualHistoryStore',
+ '[{"state":{"code":"graph TD\\n A[Halloween] -->|Get money| B(Go shopping)","mermaid":"{\\n \\"theme\\": \\"dark\\"\\n}","autoSync":true,"updateDiagram":false},"time":0,"type":"manual","name":"hollow-art"},{"state":{"code":"graph TD\\n A[Christmas] -->|Get money| B(Go shopping)","mermaid":"{\\n \\"theme\\": \\"dark\\"\\n}","autoSync":true,"updateDiagram":true},"time":0,"type":"manual","name":"helpful-ocean"}]'
+ );
+ window.localStorage.setItem(
+ 'autoHistoryStore',
+ '[{"state":{"code":"graph TD\\n A[New Year] -->|Get money| B(Go shopping)","mermaid":"{\\n \\"theme\\": \\"dark\\"\\n}","autoSync":true,"updateDiagram":false},"time":0,"type":"auto","name":"barking-dog"},{"state":{"code":"graph TD\\n A[Christmas] -->|Get money| B(Go shopping)","mermaid":"{\\n \\"theme\\": \\"dark\\"\\n}","autoSync":true,"updateDiagram":true},"time":0,"type":"manual","name":"needy-mosquito"}]'
+ );
+ let manualHistoryStore = JSON.parse(
+ window.localStorage.getItem('manualHistoryStore') ?? '[]'
+ ) as HistoryEntry[];
+ let autoHistoryStore = JSON.parse(
+ window.localStorage.getItem('autoHistoryStore') ?? '[]'
+ ) as HistoryEntry[];
+ expect(manualHistoryStore.every(({ id }) => id !== undefined)).toBe(false);
+ expect(autoHistoryStore.every(({ id }) => id !== undefined)).toBe(false);
+
+ injectHistoryIDs();
+
+ manualHistoryStore = JSON.parse(
+ window.localStorage.getItem('manualHistoryStore') ?? '[]'
+ ) as HistoryEntry[];
+ autoHistoryStore = JSON.parse(
+ window.localStorage.getItem('autoHistoryStore') ?? '[]'
+ ) as HistoryEntry[];
+ expect(manualHistoryStore.every(({ id }) => id !== undefined)).toBe(true);
+ expect(autoHistoryStore.every(({ id }) => id !== undefined)).toBe(true);
+ });
+});
diff --git a/src/lib/components/History/history.ts b/src/lib/components/History/history.ts
new file mode 100644
index 00000000..20f19ba3
--- /dev/null
+++ b/src/lib/components/History/history.ts
@@ -0,0 +1,141 @@
+import { derived, writable, get } from 'svelte/store';
+import type { Readable, Writable } from 'svelte/store';
+import { persist, localStorage } from '$lib/util/persist';
+import { generateSlug } from 'random-word-slugs';
+import type { HistoryEntry, HistoryType, Optional } from '$lib/types';
+import { v4 as uuidV4 } from 'uuid';
+import { logEvent } from '$lib/util/stats';
+
+const MAX_AUTO_HISTORY_LENGTH = 30;
+
+export const historyModeStore: Writable = persist(
+ writable('manual'),
+ localStorage(),
+ 'autoHistoryMode'
+);
+
+const autoHistoryStore: Writable = persist(
+ writable([]),
+ localStorage(),
+ 'autoHistoryStore'
+);
+
+const manualHistoryStore: Writable = persist(
+ writable([]),
+ localStorage(),
+ 'manualHistoryStore'
+);
+
+export const loaderHistoryStore: Writable = writable([] as HistoryEntry[]);
+
+export const historyStore: Readable = derived(
+ [historyModeStore, autoHistoryStore, manualHistoryStore, loaderHistoryStore],
+ ([historyMode, autoHistories, manualHistories, loadedHistories], set) => {
+ if (historyMode === 'auto') {
+ set(autoHistories);
+ } else if (historyMode === 'manual') {
+ set(manualHistories);
+ } else if (historyMode === 'loader') {
+ set(loadedHistories);
+ } else {
+ set(autoHistories);
+ }
+ }
+);
+
+export const addHistoryEntry = (entryToAdd: Optional): void => {
+ const entry: HistoryEntry = {
+ ...entryToAdd,
+ id: uuidV4()
+ };
+
+ if (entry.type === 'loader') {
+ loaderHistoryStore.update((entries) => [entry, ...entries]);
+ return;
+ }
+
+ if (!entry.name) {
+ entry.name = generateSlug(2);
+ }
+
+ if (entry.type === 'auto') {
+ autoHistoryStore.update((entries) => {
+ if (entries.length >= MAX_AUTO_HISTORY_LENGTH) {
+ entries = entries.slice(0, MAX_AUTO_HISTORY_LENGTH - 1);
+ }
+ return [entry, ...entries];
+ });
+ } else if (entry.type === 'manual') {
+ manualHistoryStore.update((entries) => [entry, ...entries]);
+ logEvent('history', { action: 'save' });
+ }
+};
+
+export const clearHistoryData = (idToClear?: string): void => {
+ (get(historyModeStore) === 'auto' ? autoHistoryStore : manualHistoryStore).update((entries) => {
+ if (get(historyModeStore) !== 'loader') {
+ entries = entries.filter(({ id }) => idToClear && id != idToClear);
+ logEvent('history', { action: 'clear', type: idToClear ? 'single' : 'all' });
+ }
+ return entries;
+ });
+};
+
+export const getPreviousState = (auto: boolean): string => {
+ const entries = get(auto ? autoHistoryStore : manualHistoryStore);
+ if (entries.length > 0) {
+ return JSON.stringify(entries[0].state);
+ }
+ return '';
+};
+
+export const restoreHistory = (data: HistoryEntry[]) => {
+ const entries = data.filter(validateEntry);
+ const invalidEntryCount = data.length - entries.length;
+ if (invalidEntryCount > 0) {
+ console.error(`${invalidEntryCount} invalid history entries were removed.`);
+ console.error(data);
+ }
+ if (entries.length > 0) {
+ let entryCount = 0;
+ (entries[0].type === 'auto' ? autoHistoryStore : manualHistoryStore).update((existing) => {
+ const existingIDs = new Set(existing.map(({ id }) => id));
+ const newEntries = entries.filter(({ id }) => !existingIDs.has(id));
+ entryCount = newEntries.length;
+ const combined = [...existing, ...newEntries];
+ combined.sort((a, b) => b.time - a.time);
+ return combined;
+ });
+
+ alert(
+ `${entryCount} entries restored. ${invalidEntryCount} invalid, ${
+ entries.length - entryCount
+ } duplicates.`
+ );
+ logEvent('history', {
+ action: 'restore',
+ success: entryCount,
+ invalid: invalidEntryCount,
+ duplicates: entries.length - entryCount
+ });
+ } else {
+ alert('No valid entries found.');
+ }
+};
+
+export const injectHistoryIDs = (): void => {
+ const setIDs = (entries: HistoryEntry[]) => {
+ for (const entry of entries) {
+ if (!entry.id) {
+ entry.id = uuidV4();
+ }
+ }
+ return entries;
+ };
+ autoHistoryStore.update(setIDs);
+ manualHistoryStore.update(setIDs);
+};
+
+const validateEntry = (entry: HistoryEntry): boolean => {
+ return entry.type && entry.state && entry.time && true;
+};
diff --git a/src/lib/components/Navbar.svelte b/src/lib/components/Navbar.svelte
new file mode 100644
index 00000000..0a7717ff
--- /dev/null
+++ b/src/lib/components/Navbar.svelte
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
diff --git a/src/lib/components/preset.svelte b/src/lib/components/Preset.svelte
similarity index 70%
rename from src/lib/components/preset.svelte
rename to src/lib/components/Preset.svelte
index 6218742b..74067d4c 100644
--- a/src/lib/components/preset.svelte
+++ b/src/lib/components/Preset.svelte
@@ -1,21 +1,21 @@
-
- {#each Object.keys(samples) as sample}
-
- {/each}
-
+
+ {#each Object.keys(samples) as sample}
+
+ {/each}
+
diff --git a/src/lib/components/Theme.svelte b/src/lib/components/Theme.svelte
new file mode 100644
index 00000000..ba35753e
--- /dev/null
+++ b/src/lib/components/Theme.svelte
@@ -0,0 +1,64 @@
+
+
+
diff --git a/src/lib/components/View.svelte b/src/lib/components/View.svelte
new file mode 100644
index 00000000..8e0b6854
--- /dev/null
+++ b/src/lib/components/View.svelte
@@ -0,0 +1,165 @@
+
+
+{#if (error && $stateStore.error instanceof Error) || outOfSync}
+
+ {#if error}
+ {@html $stateStore.error.toString().replace(/\n/g, '
')}
+ {:else}
+ Diagram out of sync.
+ Press (Sync button) or {cmdKey} + Enter to sync.
+ {/if}
+
+{/if}
+
+
+
+
diff --git a/src/lib/components/actions.svelte b/src/lib/components/actions.svelte
deleted file mode 100644
index b3c411fa..00000000
--- a/src/lib/components/actions.svelte
+++ /dev/null
@@ -1,226 +0,0 @@
-
-
-
-
-
diff --git a/src/lib/components/card/card.svelte b/src/lib/components/card/card.svelte
deleted file mode 100644
index 90b93e8a..00000000
--- a/src/lib/components/card/card.svelte
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
- {#if isOpen}
-
-
-
- {/if}
-
diff --git a/src/lib/components/card/tabs.svelte b/src/lib/components/card/tabs.svelte
deleted file mode 100644
index 18382abd..00000000
--- a/src/lib/components/card/tabs.svelte
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
-
-
(isOpen = !isOpen)}>
- {#if isCloseable}
-
- {/if}
- {title}
- {#if isOpen && tabs}
-
- {/if}
-
-
-
diff --git a/src/lib/components/editor.svelte b/src/lib/components/editor.svelte
deleted file mode 100644
index 536bb427..00000000
--- a/src/lib/components/editor.svelte
+++ /dev/null
@@ -1,85 +0,0 @@
-
-
-
diff --git a/src/lib/components/history/history.svelte b/src/lib/components/history/history.svelte
deleted file mode 100644
index c31e72f3..00000000
--- a/src/lib/components/history/history.svelte
+++ /dev/null
@@ -1,142 +0,0 @@
-
-
-
-
-
- {#if $historyModeStore !== 'loader'}
-
- {/if}
-
-
- {#if $historyStore.length > 0}
- {#each $historyStore as { state, time, name, url, type }}
- -
-
-
-
- {#if url}
-
{name}
- {:else}
-
{name}
- {/if}
-
{relativeTime(time)}
-
-
-
-
- {#if type !== 'loader'}
-
- {/if}
-
-
-
- {/each}
- {:else}
-
- No items in History
- Click the Save button to save current state and restore it later.
- Timeline will automatically be saved every minute.
-
- {/if}
-
-
diff --git a/src/lib/components/history/history.ts b/src/lib/components/history/history.ts
deleted file mode 100644
index 94586223..00000000
--- a/src/lib/components/history/history.ts
+++ /dev/null
@@ -1,77 +0,0 @@
-import { derived, writable, get } from 'svelte/store';
-import type { Readable, Writable } from 'svelte/store';
-import { persist, localStorage } from '@macfja/svelte-persistent-store';
-import { generateSlug } from 'random-word-slugs';
-import type { HistoryEntry, HistoryType } from '$lib/types';
-
-const MAX_AUTO_HISTORY_LENGTH = 30;
-
-export const historyModeStore: Writable = persist(
- writable('manual'),
- localStorage(),
- 'autoHistoryMode'
-);
-
-const autoHistoryStore: Writable = persist(
- writable([]),
- localStorage(),
- 'autoHistoryStore'
-);
-
-const manualHistoryStore: Writable = persist(
- writable([]),
- localStorage(),
- 'manualHistoryStore'
-);
-
-export const loaderHistoryStore: Writable = writable([] as HistoryEntry[]);
-
-export const historyStore: Readable = derived(
- [historyModeStore, autoHistoryStore, manualHistoryStore, loaderHistoryStore],
- ([historyMode, autoHistories, manualHistories, loadedHistories], set) => {
- if (historyMode === 'auto') {
- set(autoHistories);
- } else if (historyMode === 'manual') {
- set(manualHistories);
- } else if (historyMode === 'loader') {
- set(loadedHistories);
- } else {
- set(autoHistories);
- }
- }
-);
-
-export const addHistoryEntry = (entry: HistoryEntry): void => {
- if (entry.type === 'loader') {
- loaderHistoryStore.update((entries) => [entry, ...entries]);
- return;
- }
- entry.name = generateSlug(2);
- if (entry.type !== 'auto') {
- manualHistoryStore.update((entries) => [entry, ...entries]);
- return;
- }
- autoHistoryStore.update((entries) => {
- if (entries.length === MAX_AUTO_HISTORY_LENGTH) {
- entries.pop();
- }
- return [entry, ...entries];
- });
-};
-
-export const clearHistoryData = (time?: number): void => {
- (get(historyModeStore) === 'auto' ? autoHistoryStore : manualHistoryStore).update((entries) => {
- if (get(historyModeStore) !== 'loader') {
- entries = entries.filter((entry) => time && entry.time != time);
- }
- return entries;
- });
-};
-
-export const getPreviousState = (auto: boolean): string => {
- const entries = get(auto ? autoHistoryStore : manualHistoryStore);
- if (entries.length > 0) {
- return JSON.stringify(entries[0].state);
- }
- return '';
-};
diff --git a/src/lib/components/navbar.svelte b/src/lib/components/navbar.svelte
deleted file mode 100644
index bdaf56b0..00000000
--- a/src/lib/components/navbar.svelte
+++ /dev/null
@@ -1,82 +0,0 @@
-
-
-
-
-
-
-
diff --git a/src/lib/components/theme.svelte b/src/lib/components/theme.svelte
deleted file mode 100644
index f7d0a88c..00000000
--- a/src/lib/components/theme.svelte
+++ /dev/null
@@ -1,59 +0,0 @@
-
-
-
diff --git a/src/lib/components/view.svelte b/src/lib/components/view.svelte
deleted file mode 100644
index 6bb96687..00000000
--- a/src/lib/components/view.svelte
+++ /dev/null
@@ -1,72 +0,0 @@
-
-
-
-
-
diff --git a/src/lib/types.d.ts b/src/lib/types.d.ts
index e0a139b3..cb70ca3e 100644
--- a/src/lib/types.d.ts
+++ b/src/lib/types.d.ts
@@ -1,60 +1,88 @@
-/**
- * Can be made globally available by placing this
- * inside `global.d.ts` and removing `export` keyword
- */
-export interface Locals {
- userid: string;
-}
-
-export interface EditorUpdateEvent {
- text: string;
-}
-export interface EditorEvents {
- update: EditorUpdateEvent;
+export interface MarkerData {
+ severity: number;
+ message: string;
+ source?: string;
+ startLineNumber: number;
+ startColumn: number;
+ endLineNumber: number;
+ endColumn: number;
}
export interface TabEvents {
- select: Tab;
+ select: Tab;
}
export interface Tab {
- id: string;
- title: string;
- icon: string;
+ id: string;
+ title: string;
+ icon: string;
}
export interface State {
- code: string;
- mermaid: string;
- updateEditor: boolean;
- updateDiagram: boolean;
- autoSync: boolean;
- loader?: LoaderConfig;
+ code: string;
+ mermaid: string;
+ updateDiagram: boolean;
+ autoSync: boolean;
+ editorMode?: EditorMode;
+ panZoom?: boolean;
+ pan?: { x: number; y: number };
+ zoom?: number;
+ loader?: LoaderConfig;
+}
+
+export interface ValidatedState extends State {
+ editorMode: EditorMode;
+ error?: Error;
+ errorMarkers: MarkerData[];
+ serialized: string;
}
export interface GistLoaderConfig {
- url: string;
+ url: string;
}
export interface LoadingState {
- loading: boolean;
- message?: string;
+ loading: boolean;
+ message?: string;
}
export interface FileLoaderConfig {
- codeURL: string;
- configURL?: string;
+ codeURL: string;
+ configURL?: string;
}
export interface LoaderConfig {
- type: 'gist' | 'files';
- config: GistLoaderConfig | FileLoaderConfig;
+ type: 'gist' | 'files';
+ config: GistLoaderConfig | FileLoaderConfig;
}
export type HistoryType = 'auto' | 'manual' | 'loader';
-export interface HistoryEntry {
- state: State;
- time: number;
- name?: string;
- type: HistoryType;
- url?: string;
-}
+export type HistoryEntry = { id: string; state: State; time: number; url?: string } & (
+ | {
+ type: 'loader';
+ name: string;
+ }
+ | {
+ type: HistoryType;
+ name?: string;
+ }
+);
-type Loader = (url: string) => Promise;
+export type DocConfig = Record<
+ string,
+ {
+ code: string;
+ config?: string;
+ }
+>;
+
+export type EditorMode = 'code' | 'config';
+
+export type Loader = (url: string) => Promise;
+export type Optional = Pick, K> & Omit;
+
+export interface ErrorHash {
+ loc: {
+ first_line: number;
+ last_line: number;
+ first_column: number;
+ last_column: number;
+ };
+}
diff --git a/src/lib/util/env.ts b/src/lib/util/env.ts
index 128761f2..2c14a52e 100644
--- a/src/lib/util/env.ts
+++ b/src/lib/util/env.ts
@@ -1,4 +1,9 @@
-export const rendererUrl: string =
- (import.meta.env.MERMAID_RENDERER_URL as string) ?? 'https://mermaid.ink';
-export const krokiRendererUrl: string =
- (import.meta.env.MERMAID_KROKI_RENDERER_URL as string) ?? 'https://kroki.io';
+export const env = {
+ rendererUrl: import.meta.env.MERMAID_RENDERER_URL ?? 'https://mermaid.ink',
+ krokiRendererUrl: import.meta.env.MERMAID_KROKI_RENDERER_URL ?? 'https://kroki.io',
+ mermaidCDNUrl: import.meta.env.MERMAID_CDN_URL ?? 'https://unpkg.com/@mermaid-js',
+ mermaidBaseURL: import.meta.env.MERMAID_BASE_URL ?? 'http://localhost:9000',
+ useLocalMermaid: import.meta.env.MERMAID_LOCAL ?? false,
+ isDev: import.meta.env.DEV,
+ baseURL: import.meta.env.BASE_URL
+};
diff --git a/src/lib/util/error.ts b/src/lib/util/error.ts
deleted file mode 100644
index 43829bf6..00000000
--- a/src/lib/util/error.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { writable } from 'svelte/store';
-
-export const errorStore = writable(undefined);
diff --git a/src/lib/util/fileLoaders/gist.ts b/src/lib/util/fileLoaders/gist.ts
index cd9a2a75..58ff85ea 100644
--- a/src/lib/util/fileLoaders/gist.ts
+++ b/src/lib/util/fileLoaders/gist.ts
@@ -1,105 +1,126 @@
+/* eslint-disable @typescript-eslint/no-unsafe-return */
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable @typescript-eslint/no-explicit-any */
import type { State } from '$lib/types';
-import { defaultState } from '../state';
-import { addHistoryEntry } from '../../components/history/history';
+import { defaultState } from '$lib/util/state';
+import { addHistoryEntry } from '$lib/components/History/history';
const codeFileName = 'code.mmd';
const configFileName = 'config.json';
+interface GithubFile {
+ truncated: boolean;
+ raw_url: string;
+ content: string;
+}
+
const isValidGist = (files: any): boolean => {
- return codeFileName in files;
+ return codeFileName in files;
};
-const getFileContent = async (file: any): Promise => {
- if (file.truncated) {
- return await (await fetch(file.raw_url)).text();
- }
- return file.content;
+const getFileContent = async (file: GithubFile): Promise => {
+ if (file.truncated) {
+ return await (await fetch(file.raw_url)).text();
+ }
+ return file.content;
};
interface GistData {
- code: string;
- config?: string;
- author: string;
- time: number;
- version: string;
- url: string;
+ code: string;
+ config?: string;
+ author: string;
+ time: number;
+ version: string;
+ url: string;
+}
+
+interface GistResponse {
+ files: Record;
+ html_url: string;
+ history: { url: string; committed_at: string; version: string; user: { login: string } }[];
}
const getGistData = async (gistURL: string): Promise => {
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
- const [_, __, gistID, revisionID] = gistURL.split('github.com').pop().split('/');
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
- const { html_url, files, history } = await (
- await fetch(`https://api.github.com/gists/${gistID}${revisionID ? '/' + revisionID : ''}`)
- ).json();
- if (isValidGist(files)) {
- const code = await getFileContent(files[codeFileName]);
- let config: string;
- if (configFileName in files) {
- config = await getFileContent(files[configFileName]);
- }
- const currentItem = history[0];
- return {
- url: `${html_url}/${currentItem.version}`,
- code,
- config,
- author: currentItem.user.login,
- time: new Date(currentItem.committed_at).getTime(),
- version: (currentItem.version as string).slice(-7)
- };
- } else {
- throw 'Invalid gist provided';
- }
+ const path = gistURL.split('github.com').pop();
+ if (!path) {
+ throw new Error('Invalid GitHub URL' + gistURL);
+ }
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ const [_, __, gistID, revisionID] = path.split('/');
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
+ const { html_url, files, history }: GistResponse = await (
+ await fetch(`https://api.github.com/gists/${gistID}${revisionID ? '/' + revisionID : ''}`)
+ ).json();
+ if (isValidGist(files)) {
+ const code = await getFileContent(files[codeFileName]);
+ let config = '{}';
+ if (configFileName in files) {
+ config = await getFileContent(files[configFileName]);
+ }
+ const currentItem = history[0];
+ return {
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
+ url: `${html_url}/${currentItem.version}`,
+ code,
+ config,
+ author: currentItem.user.login,
+ time: new Date(currentItem.committed_at).getTime(),
+ version: currentItem.version.slice(-7)
+ };
+ } else {
+ throw new Error('Invalid gist provided');
+ }
};
const getStateFromGist = (gist: GistData, gistURL: string = gist.url): State => {
- const state: State = {
- ...defaultState,
- code: gist.code,
- loader: {
- type: 'gist',
- config: {
- url: gistURL
- }
- }
- };
- gist.config && (state.mermaid = gist.config);
- return state;
+ const state: State = {
+ ...defaultState,
+ code: gist.code,
+ loader: {
+ type: 'gist',
+ config: {
+ url: gistURL
+ }
+ }
+ };
+ gist.config && (state.mermaid = gist.config);
+ return state;
};
export const loadGistData = async (gistURL: string): Promise => {
- try {
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
- const [_, __, gistID, revisionID] = gistURL.split('github.com').pop().split('/');
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
- const { history } = await (
- await fetch(`https://api.github.com/gists/${gistID}${revisionID ? '/' + revisionID : ''}`)
- ).json();
- const gistHistory: GistData[] = [];
- for (const entry of history) {
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
- const data: GistData = await getGistData(entry.url).catch(() => undefined);
- data && gistHistory.push(data);
- }
- if (gistHistory.length === 0) {
- throw 'Invalid gist provided';
- }
- gistHistory.reverse();
- const state = getStateFromGist(gistHistory.slice(-1).pop(), gistURL);
- for (const gist of gistHistory) {
- addHistoryEntry({
- state: getStateFromGist(gist),
- time: gist.time,
- type: 'loader',
- url: gist.url,
- name: `${gist.author} v${gist.version}`
- });
- }
- return state;
- } catch (err) {
- console.error(err);
- }
+ const path = gistURL.split('github.com').pop();
+ if (!path) {
+ throw new Error('Invalid GitHub URL' + gistURL);
+ }
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
+ const [_, __, gistID, revisionID] = path.split('/');
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
+ const { history }: GistResponse = await (
+ await fetch(`https://api.github.com/gists/${gistID}${revisionID ? '/' + revisionID : ''}`)
+ ).json();
+ const gistHistory: GistData[] = [];
+ for (const entry of history) {
+ const data: GistData | undefined = await getGistData(entry.url).catch(() => undefined);
+ data && gistHistory.push(data);
+ }
+ if (gistHistory.length === 0) {
+ throw new Error('Invalid gist provided');
+ }
+ gistHistory.reverse();
+ const entry = gistHistory.slice(-1).pop();
+ if (!entry) {
+ throw new Error('Invalid gist provided');
+ }
+ const state = getStateFromGist(entry, gistURL);
+ for (const gist of gistHistory) {
+ addHistoryEntry({
+ state: getStateFromGist(gist),
+ time: gist.time,
+ type: 'loader',
+ url: gist.url,
+ name: `${gist.author} v${gist.version}`
+ });
+ }
+ return state;
};
diff --git a/src/lib/util/fileLoaders/loader.ts b/src/lib/util/fileLoaders/loader.ts
index 02b73aa2..596d02a2 100644
--- a/src/lib/util/fileLoaders/loader.ts
+++ b/src/lib/util/fileLoaders/loader.ts
@@ -2,57 +2,59 @@ import { loadGistData } from './gist';
import { updateCodeStore, defaultState } from '../state';
import type { Loader, State } from '$lib/types';
const loaders: Record = {
- gist: loadGistData
+ gist: loadGistData
};
export const loadDataFromUrl = async (): Promise => {
- const searchParams = new URLSearchParams(window.location.search);
- let state: State = defaultState;
- let code: string, config: string;
- let loaded = false;
- const codeURL: string = searchParams.get('code');
- const configURL: string = searchParams.get('config');
+ const searchParams = new URLSearchParams(window.location.search);
+ let state: Partial = defaultState;
+ let code: string | undefined = undefined;
+ let config: string | undefined = undefined;
+ let loaded = false;
+ const codeURL: string | undefined = searchParams.get('code') ?? undefined;
+ const configURL: string | undefined = searchParams.get('config') ?? undefined;
- if (codeURL) {
- code = await (await fetch(codeURL)).text();
- loaded = true;
- }
- if (configURL) {
- config = await (await fetch(configURL)).text();
- } else {
- config = defaultState.mermaid;
- }
- if (!code) {
- for (const [key, value] of searchParams.entries()) {
- if (key in loaders) {
- try {
- state = await loaders[key](value);
- loaded = true;
- break;
- } catch (err) {
- console.error(err);
- }
- }
- }
- } else {
- state = {
- code,
- mermaid: config,
- loader: {
- type: 'files',
- config: {
- codeURL,
- configURL
- }
- }
- } as State;
- }
- loaded &&
- updateCodeStore({
- ...state,
- autoSync: true,
- updateDiagram: true,
- updateEditor: true
- });
- // window.location.search = '';
+ if (codeURL) {
+ code = await (await fetch(codeURL)).text();
+ loaded = true;
+ }
+ if (configURL) {
+ config = await (await fetch(configURL)).text();
+ } else {
+ config = defaultState.mermaid;
+ }
+ if (!code) {
+ for (const [key, value] of searchParams.entries()) {
+ if (key in loaders) {
+ try {
+ state = await loaders[key](value);
+ loaded = true;
+ break;
+ } catch (err) {
+ console.error(err);
+ }
+ }
+ }
+ } else {
+ if (!codeURL) {
+ throw new Error('Code URL is not defined');
+ }
+ state = {
+ code,
+ mermaid: config,
+ loader: {
+ type: 'files',
+ config: {
+ codeURL,
+ configURL
+ }
+ }
+ };
+ }
+ loaded &&
+ updateCodeStore({
+ ...state,
+ autoSync: true,
+ updateDiagram: true
+ });
};
diff --git a/src/lib/util/loading.ts b/src/lib/util/loading.ts
index 0d483c91..cebe1947 100644
--- a/src/lib/util/loading.ts
+++ b/src/lib/util/loading.ts
@@ -3,18 +3,18 @@ import type { Writable } from 'svelte/store';
import type { LoadingState } from '$lib/types';
const defaultLoading: LoadingState = {
- loading: false
+ loading: false
};
export const loadingStateStore: Writable = writable(defaultLoading);
export const initLoading = async (message: string, task: Promise): Promise => {
- loadingStateStore.set({
- loading: true,
- message
- });
- const result: T = await task;
- loadingStateStore.set({
- loading: false
- });
- return result;
+ loadingStateStore.set({
+ loading: true,
+ message
+ });
+ const result: T = await task;
+ loadingStateStore.set({
+ loading: false
+ });
+ return result;
};
diff --git a/src/lib/util/mermaid.ts b/src/lib/util/mermaid.ts
new file mode 100644
index 00000000..f4d09e72
--- /dev/null
+++ b/src/lib/util/mermaid.ts
@@ -0,0 +1,27 @@
+import mermaid, { type MermaidConfig } from 'mermaid';
+import mindmap from '@mermaid-js/mermaid-mindmap';
+
+const initialize = mermaid.registerExternalDiagrams([mindmap]);
+
+export const init = async () => {
+ await initialize;
+};
+
+export const render = async (
+ config: MermaidConfig,
+ code: string,
+ id: string,
+ callback: Parameters[2]
+): Promise => {
+ // Should be able to call this multiple times without any issues.
+ mermaid.initialize(config);
+ // console.log('Rendering', code);
+ // mermaid.mermaidAPI.render(id, code, callback);
+ await init();
+ await mermaid.mermaidAPI.renderAsync(id, code, callback);
+};
+
+export const parse = async (code: string): Promise => {
+ await init();
+ return await mermaid.parseAsync(code);
+};
diff --git a/src/lib/util/migrations.test.ts b/src/lib/util/migrations.test.ts
new file mode 100644
index 00000000..8c7a3a28
--- /dev/null
+++ b/src/lib/util/migrations.test.ts
@@ -0,0 +1,38 @@
+import type { HistoryEntry } from '$lib/types';
+import { describe, it, expect, beforeEach } from 'vitest';
+
+describe('migrations', () => {
+ beforeEach(() => {
+ window.localStorage.setItem(
+ 'manualHistoryStore',
+ '[{"state":{"code":"graph TD\\n A[Halloween] -->|Get money| B(Go shopping)","mermaid":"{\\n \\"theme\\": \\"dark\\"\\n}","autoSync":true,"updateDiagram":false},"time":0,"type":"manual","name":"hollow-art"},{"state":{"code":"graph TD\\n A[Christmas] -->|Get money| B(Go shopping)","mermaid":"{\\n \\"theme\\": \\"dark\\"\\n}","autoSync":true,"updateDiagram":true},"time":0,"type":"manual","name":"helpful-ocean"}]'
+ );
+ window.localStorage.setItem(
+ 'autoHistoryStore',
+ '[{"state":{"code":"graph TD\\n A[New Year] -->|Get money| B(Go shopping)","mermaid":"{\\n \\"theme\\": \\"dark\\"\\n}","autoSync":true,"updateDiagram":false},"time":0,"type":"auto","name":"barking-dog"},{"state":{"code":"graph TD\\n A[Christmas] -->|Get money| B(Go shopping)","mermaid":"{\\n \\"theme\\": \\"dark\\"\\n}","autoSync":true,"updateDiagram":true},"time":0,"type":"manual","name":"needy-mosquito"}]'
+ );
+ });
+
+ it('should migrate from v0 to v1', async () => {
+ const { applyMigrations } = await import('./migrations');
+ let manualHistoryStore: HistoryEntry[] = JSON.parse(
+ window.localStorage.getItem('manualHistoryStore') ?? '[]'
+ ) as HistoryEntry[];
+ let autoHistoryStore: HistoryEntry[] = JSON.parse(
+ window.localStorage.getItem('autoHistoryStore') ?? '[]'
+ ) as HistoryEntry[];
+ expect(manualHistoryStore.every(({ id }) => id !== undefined)).toBe(false);
+ expect(autoHistoryStore.every(({ id }) => id !== undefined)).toBe(false);
+
+ applyMigrations();
+
+ manualHistoryStore = JSON.parse(
+ window.localStorage.getItem('manualHistoryStore') ?? '[]'
+ ) as HistoryEntry[];
+ autoHistoryStore = JSON.parse(
+ window.localStorage.getItem('autoHistoryStore') ?? '[]'
+ ) as HistoryEntry[];
+ expect(manualHistoryStore.every(({ id }) => id !== undefined)).toBe(true);
+ expect(autoHistoryStore.every(({ id }) => id !== undefined)).toBe(true);
+ });
+});
diff --git a/src/lib/util/migrations.ts b/src/lib/util/migrations.ts
new file mode 100644
index 00000000..7851270b
--- /dev/null
+++ b/src/lib/util/migrations.ts
@@ -0,0 +1,35 @@
+import { writable, get, type Writable } from 'svelte/store';
+import { persist, localStorage } from '$lib/util/persist';
+import { injectHistoryIDs } from '$lib/components/History/history';
+import { logEvent } from './stats';
+
+interface MigrationState {
+ version: number;
+}
+
+const migrations: Record void> = {
+ injectHistoryIDs
+};
+
+const migrationStore: Writable = persist(
+ writable({ version: -1 }),
+ localStorage(),
+ 'migrations'
+);
+
+export const applyMigrations = (): void => {
+ const { version }: MigrationState = get(migrationStore);
+ const allMigrations = Object.entries(migrations);
+ if (version === allMigrations.length - 1) {
+ return;
+ }
+ console.log(`Current migration version: v${version}. Migrating to v${allMigrations.length - 1}.`);
+ for (let i = version + 1; i < allMigrations.length; i++) {
+ const [key, fn] = allMigrations[i];
+ console.log(`Applying migration ${i}: ${key}.`);
+ fn();
+ logEvent('migration', { key });
+ migrationStore.set({ version: i });
+ }
+ logEvent('migration', { status: 'complete', from: version, to: allMigrations.length - 1 });
+};
diff --git a/src/lib/util/notify.ts b/src/lib/util/notify.ts
index b9c54a27..3c9e6ded 100644
--- a/src/lib/util/notify.ts
+++ b/src/lib/util/notify.ts
@@ -1,7 +1,7 @@
export const notify = (message: string): void => {
- alert(message);
+ alert(message);
};
export const prompt = (message: string): boolean => {
- return confirm(message);
+ return confirm(message);
};
diff --git a/src/lib/util/persist.ts b/src/lib/util/persist.ts
new file mode 100644
index 00000000..31aeba3f
--- /dev/null
+++ b/src/lib/util/persist.ts
@@ -0,0 +1,259 @@
+/* eslint-disable @typescript-eslint/no-explicit-any */
+// Copied from https://github.com/MacFJA/svelte-persistent-store
+// # The MIT License (MIT)
+
+// Copyright (c) 2021 [MacFJA](https://github.com/MacFJA)
+
+// > Permission is hereby granted, free of charge, to any person obtaining a copy
+// > of this software and associated documentation files (the "Software"), to deal
+// > in the Software without restriction, including without limitation the rights
+// > to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// > copies of the Software, and to permit persons to whom the Software is
+// > furnished to do so, subject to the following conditions:
+// >
+// > The above copyright notice and this permission notice shall be included in
+// > all copies or substantial portions of the Software.
+// >
+// > THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// > IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// > FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// > AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// > LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// > OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// > THE SOFTWARE.
+
+import ESSerializer from 'esserializer';
+import type { Writable } from 'svelte/store';
+
+/**
+ * Disabled warnings about missing/unavailable storages
+ */
+export function disableWarnings(): void {
+ noWarnings = true;
+}
+/**
+ * If set to true, no warning will be emitted if the requested Storage is not found.
+ * This option can be useful when the lib is used on a server.
+ */
+let noWarnings = false;
+/**
+ * List of storages where the warning have already been displayed.
+ */
+const alreadyWarnFor: string[] = [];
+
+/**
+ * Add a log to indicate that the requested Storage have not been found.
+ * @param {string} storageName
+ */
+const warnStorageNotFound = (storageName: string) => {
+ const isProduction = typeof process !== 'undefined' && process.env.NODE_ENV === 'production';
+
+ if (!noWarnings && !alreadyWarnFor.includes(storageName) && !isProduction) {
+ let message = `Unable to find the ${storageName}. No data will be persisted.`;
+ if (typeof window === 'undefined') {
+ message +=
+ '\n' +
+ 'Are you running on a server? Most of storages are not available while running on a server.';
+ }
+ console.warn(message);
+ alreadyWarnFor.push(storageName);
+ }
+};
+
+const serialize = (value: unknown): string => ESSerializer.serialize(value);
+const deserialize = (value?: string | null): unknown => {
+ // @TODO: to remove in the next major
+ if (value === 'undefined') {
+ return undefined;
+ }
+
+ if (value !== null && value !== undefined) {
+ try {
+ return ESSerializer.deserialize(value);
+ } catch (e) {
+ // Do nothing
+ // use the value "as is"
+ }
+ try {
+ return JSON.parse(value);
+ } catch (e) {
+ // Do nothing
+ // use the value "as is"
+ }
+ }
+ return value;
+};
+
+/**
+ * A store that keep it's value in time.
+ */
+export interface PersistentStore extends Writable {
+ /**
+ * Delete the store value from the persistent storage
+ */
+ delete(): void;
+}
+
+/**
+ * Storage interface
+ */
+export interface StorageInterface {
+ /**
+ * Get a value from the storage.
+ *
+ * If the value doesn't exists in the storage, `null` should be returned.
+ * This method MUST be synchronous.
+ * @param key The key/name of the value to retrieve
+ */
+ getValue(key: string): T | null;
+
+ /**
+ * Save a value in the storage.
+ * @param key The key/name of the value to save
+ * @param value The value to save
+ */
+ setValue(key: string, value: T): void;
+
+ /**
+ * Remove a value from the storage
+ * @param key The key/name of the value to remove
+ */
+ deleteValue(key: string): void;
+}
+
+export interface SelfUpdateStorageInterface extends StorageInterface {
+ /**
+ * Add a listener to the storage values changes
+ * @param {string} key The key to listen
+ * @param {(newValue: T) => void} listener The listener callback function
+ */
+ addListener(key: string, listener: (newValue: T) => void): void;
+ /**
+ * Remove a listener from the storage values changes
+ * @param {string} key The key that was listened
+ * @param {(newValue: T) => void} listener The listener callback function to remove
+ */
+ removeListener(key: string, listener: (newValue: T) => void): void;
+}
+
+/**
+ * Make a store persistent
+ * @param {Writable<*>} store The store to enhance
+ * @param {StorageInterface} storage The storage to use
+ * @param {string} key The name of the data key
+ */
+export function persist(
+ store: Writable,
+ storage: StorageInterface,
+ key: string
+): PersistentStore {
+ const initialValue = storage.getValue(key);
+
+ if (null !== initialValue) {
+ store.set(initialValue);
+ }
+
+ if ('addListener' in storage) {
+ (storage as SelfUpdateStorageInterface).addListener(key, (newValue) => {
+ store.set(newValue);
+ });
+ }
+
+ store.subscribe((value) => {
+ storage.setValue(key, value);
+ });
+
+ return {
+ ...store,
+ delete() {
+ storage.deleteValue(key);
+ }
+ };
+}
+
+function getBrowserStorage(
+ browserStorage: Storage,
+ listenExternalChanges = false
+): SelfUpdateStorageInterface {
+ const listeners: { key: string; listener: (newValue: any) => void }[] = [];
+ const listenerFunction = (event: StorageEvent) => {
+ const eventKey = event.key;
+ if (event.storageArea === browserStorage) {
+ listeners
+ .filter(({ key }) => key === eventKey)
+ .forEach(({ listener }) => {
+ listener(deserialize(event.newValue));
+ });
+ }
+ };
+ const connect = () => {
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
+ if (listenExternalChanges && typeof window !== 'undefined' && window.addEventListener) {
+ window.addEventListener('storage', listenerFunction);
+ }
+ };
+ const disconnect = () => {
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
+ if (listenExternalChanges && typeof window !== 'undefined' && window.removeEventListener) {
+ window.removeEventListener('storage', listenerFunction);
+ }
+ };
+
+ return {
+ addListener(key: string, listener: (newValue: any) => void) {
+ listeners.push({ key, listener });
+ if (listeners.length === 1) {
+ connect();
+ }
+ },
+ removeListener(key: string, listener: (newValue: any) => void) {
+ const index = listeners.indexOf({ key, listener });
+ if (index !== -1) {
+ listeners.splice(index, 1);
+ }
+ if (listeners.length === 0) {
+ disconnect();
+ }
+ },
+ getValue(key: string): any | null {
+ const value = browserStorage.getItem(key);
+ return deserialize(value);
+ },
+ deleteValue(key: string) {
+ browserStorage.removeItem(key);
+ },
+ setValue(key: string, value: any) {
+ browserStorage.setItem(key, serialize(value));
+ }
+ };
+}
+
+/**
+ * Storage implementation that use the browser local storage
+ * @param listenExternalChanges - Update the store if the localStorage is updated from another page
+ */
+export function localStorage(listenExternalChanges = false): StorageInterface {
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
+ if (typeof window !== 'undefined' && window.localStorage) {
+ return getBrowserStorage(window.localStorage, listenExternalChanges);
+ }
+ warnStorageNotFound('window.localStorage');
+ return noopStorage();
+}
+
+/**
+ * Storage implementation that do nothing
+ */
+export function noopStorage(): StorageInterface {
+ return {
+ getValue(): null {
+ return null;
+ },
+ deleteValue() {
+ // Do nothing
+ },
+ setValue() {
+ // Do nothing
+ }
+ };
+}
diff --git a/src/lib/util/serde.test.ts b/src/lib/util/serde.test.ts
new file mode 100644
index 00000000..c66f7f0f
--- /dev/null
+++ b/src/lib/util/serde.test.ts
@@ -0,0 +1,40 @@
+import { describe, expect, it } from 'vitest';
+import { serializeState, deserializeState, type SerdeType } from './serde';
+import { defaultState } from './state';
+import type { State } from '$lib/types';
+
+describe('Serde tests', () => {
+ const verifySerde = (state: State, serde?: SerdeType): string => {
+ const serialized = serializeState(state, serde);
+ const deserialized = deserializeState(serialized);
+ expect(deserialized).to.deep.equal(state);
+ return serialized;
+ };
+
+ it('should serialize and deserialize with default serde', () => {
+ expect(verifySerde(defaultState)).toMatchInlineSnapshot(
+ '"pako:eNpVj81qw0AMhF9F6NRC_AI-BGK7zSXQQHLz5iBsObuk-8Naphjb7551fEl1EjPfiNGEjW8Zc7xHChqulXKQ5lCXOppeLPU3yLL9fGQB6x2PMxQfRw-99iEYd__c-GKFoJxOK8Yg2rjHslnlK__jeIaqPlEQH27vzvXPz_BVm7NO5_87OnJKfdcd5R1lDUUoKb4Q3KHlaMm0qfq0KgpFs2WFeVpb7mj4FYXKLQmlQfxldA3mEgfe4RBaEq4MpaftJi5PNtJU8w"'
+ );
+ });
+
+ it('should serialize and deserialize with base64 serde', () => {
+ expect(verifySerde(defaultState, 'base64')).toMatchInlineSnapshot(
+ '"base64:eyJjb2RlIjoiZ3JhcGggVERcbiAgICBBW0NocmlzdG1hc10gLS0-fEdldCBtb25leXwgQihHbyBzaG9wcGluZylcbiAgICBCIC0tPiBDe0xldCBtZSB0aGlua31cbiAgICBDIC0tPnxPbmV8IERbTGFwdG9wXVxuICAgIEMgLS0-fFR3b3wgRVtpUGhvbmVdXG4gICAgQyAtLT58VGhyZWV8IEZbZmE6ZmEtY2FyIENhcl1cbiAgIiwibWVybWFpZCI6IntcbiAgXCJ0aGVtZVwiOiBcImRlZmF1bHRcIlxufSIsImF1dG9TeW5jIjp0cnVlLCJ1cGRhdGVEaWFncmFtIjp0cnVlfQ"'
+ );
+ });
+
+ it('should serialize and deserialize with pako serde', () => {
+ expect(verifySerde(defaultState, 'pako')).toMatchInlineSnapshot(
+ '"pako:eNpVj81qw0AMhF9F6NRC_AI-BGK7zSXQQHLz5iBsObuk-8Naphjb7551fEl1EjPfiNGEjW8Zc7xHChqulXKQ5lCXOppeLPU3yLL9fGQB6x2PMxQfRw-99iEYd__c-GKFoJxOK8Yg2rjHslnlK__jeIaqPlEQH27vzvXPz_BVm7NO5_87OnJKfdcd5R1lDUUoKb4Q3KHlaMm0qfq0KgpFs2WFeVpb7mj4FYXKLQmlQfxldA3mEgfe4RBaEq4MpaftJi5PNtJU8w"'
+ );
+ });
+
+ it('should throw error for unrecognized serde', () => {
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
+ // @ts-expect-error
+ expect(() => serializeState(defaultState, 'unknown')).toThrowError(
+ 'Unknown serde type: unknown'
+ );
+ expect(() => deserializeState('unknown:hello')).toThrowError('Unknown serde type: unknown');
+ });
+});
diff --git a/src/lib/util/serde.ts b/src/lib/util/serde.ts
index 1f7540fc..5dbffa1b 100644
--- a/src/lib/util/serde.ts
+++ b/src/lib/util/serde.ts
@@ -3,59 +3,61 @@ import { toUint8Array, fromUint8Array, toBase64, fromBase64 } from 'js-base64';
import type { State } from '$lib/types';
interface Serde {
- serialize: (state: string) => string;
- deserialize: (state: string) => string;
+ serialize: (state: string) => string;
+ deserialize: (state: string) => string;
}
const base64Serde: Serde = {
- serialize: (state: string): string => {
- return toBase64(state, true);
- },
- deserialize: (state: string): string => {
- return fromBase64(state);
- }
+ serialize: (state: string): string => {
+ return toBase64(state, true);
+ },
+ deserialize: (state: string): string => {
+ return fromBase64(state);
+ }
};
export const pakoSerde: Serde = {
- serialize: (state: string): string => {
- const data = new TextEncoder().encode(state);
- const compressed = deflate(data, { level: 9 });
- return fromUint8Array(compressed, true);
- },
- deserialize: (state: string): string => {
- const data = toUint8Array(state);
- return inflate(data, { to: 'string' });
- }
+ serialize: (state: string): string => {
+ const data = new TextEncoder().encode(state);
+ const compressed = deflate(data, { level: 9 });
+ return fromUint8Array(compressed, true);
+ },
+ deserialize: (state: string): string => {
+ const data = toUint8Array(state);
+ return inflate(data, { to: 'string' });
+ }
};
-const serdes: { [key: string]: Serde } = {
- base64: base64Serde,
- pako: pakoSerde
+export type SerdeType = 'base64' | 'pako';
+
+const serdes: { [key in SerdeType]: Serde } = {
+ base64: base64Serde,
+ pako: pakoSerde
};
-type SerdeType = keyof typeof serdes;
-
-export const serializeState = (state: State): string => {
- const json = JSON.stringify(state);
- const defaultSerde: SerdeType = 'pako';
- const serialized = serdes[defaultSerde].serialize(json);
- return `${defaultSerde}:${serialized}`;
+export const serializeState = (state: State, serde: SerdeType = 'pako'): string => {
+ if (!(serde in serdes)) {
+ throw new Error(`Unknown serde type: ${serde}`);
+ }
+ const json = JSON.stringify(state);
+ const serialized = serdes[serde].serialize(json);
+ return `${serde}:${serialized}`;
};
export const deserializeState = (state: string): State => {
- let type: SerdeType, serialized: string;
- if (state.includes(':')) {
- let tempType: string;
- [tempType, serialized] = state.split(':');
- if (tempType in serdes) {
- type = tempType;
- } else {
- throw new Error(`Unknown serde type: ${tempType}`);
- }
- } else {
- type = 'base64';
- serialized = state;
- }
- const json = serdes[type].deserialize(serialized);
- return JSON.parse(json) as State;
+ let type: SerdeType, serialized: string;
+ if (state.includes(':')) {
+ let tempType: string;
+ [tempType, serialized] = state.split(':');
+ if (tempType in serdes) {
+ type = tempType as SerdeType;
+ } else {
+ throw new Error(`Unknown serde type: ${tempType}`);
+ }
+ } else {
+ type = 'base64';
+ serialized = state;
+ }
+ const json = serdes[type].deserialize(serialized);
+ return JSON.parse(json) as State;
};
diff --git a/src/lib/util/state.ts b/src/lib/util/state.ts
index 52e4f616..03e63b21 100644
--- a/src/lib/util/state.ts
+++ b/src/lib/util/state.ts
@@ -1,28 +1,30 @@
-import { writable, get, derived } from 'svelte/store';
-import type { Readable } from 'svelte/store';
-import { persist, localStorage } from '@macfja/svelte-persistent-store';
-import type { State } from '$lib/types';
-import { saveStatistics } from './stats';
+import { writable, get, type Readable, derived } from 'svelte/store';
+import { persist, localStorage } from './persist';
+import { saveStatistics, countLines } from './stats';
import { serializeState, deserializeState } from './serde';
+import { cmdKey, errorDebug } from './util';
+import { parse } from './mermaid';
+
+import type { ErrorHash, MarkerData, State, ValidatedState } from '$lib/types';
+import type { MermaidConfig } from 'mermaid';
export const defaultState: State = {
- code: `flowchart TD
+ code: `flowchart TD
A[Christmas] -->|Get money| B(Go shopping)
B --> C{Let me think}
C -->|One| D[Laptop]
C -->|Two| E[iPhone]
C -->|Three| F[fa:fa-car Car]
`,
- mermaid: JSON.stringify(
- {
- theme: 'default'
- },
- null,
- 2
- ),
- updateEditor: false,
- autoSync: true,
- updateDiagram: true
+ mermaid: JSON.stringify(
+ {
+ theme: 'default'
+ },
+ null,
+ 2
+ ),
+ autoSync: true,
+ updateDiagram: true
};
const urlParseFailedState = `flowchart TD
@@ -36,90 +38,167 @@ const urlParseFailedState = `flowchart TD
G --> |"No :("| H(Try using the Timeline tab in History
from same browser you used to create the diagram.)
click D href "https://github.com/mermaid-js/mermaid-live-editor/issues/new?assignees=&labels=bug&template=bug_report.md&title=Broken%20link" "Raise issue"`;
-export const codeStore = persist(writable(defaultState), localStorage(), 'codeStore');
-export const serializedState: Readable = derived([codeStore], ([code], set) => {
- set(serializeState(code));
-});
+// inputStateStore handles all updates and is shared externally when exporting via URL, History, etc.
+export const inputStateStore = persist(writable(defaultState), localStorage(), 'codeStore');
-export const loadState = (data: string): void => {
- let state: State;
- console.log('Loading', data);
- try {
- state = deserializeState(data);
- const mermaidConfig: { [key: string]: string } =
- typeof state.mermaid === 'string' ? JSON.parse(state.mermaid) : state.mermaid;
- if (
- mermaidConfig.securityLevel &&
- mermaidConfig.securityLevel !== 'strict' &&
- confirm(
- `Removing "securityLevel":"${mermaidConfig.securityLevel}" from the config for safety.\nClick Cancel if you trust the source of this Diagram.`
- )
- ) {
- delete mermaidConfig.securityLevel; // Prevent setting overriding securityLevel when loading state to mitigate possible XSS attack
- }
+export const currentState: ValidatedState = (() => {
+ const state = get(inputStateStore);
+ return {
+ ...state,
+ serialized: serializeState(state),
+ errorMarkers: [],
+ error: undefined,
+ editorMode: state.editorMode ?? 'code'
+ };
+})();
- state.mermaid = JSON.stringify(mermaidConfig, null, 2);
- } catch (e) {
- state = get(codeStore);
- if (data) {
- console.error('Init error', e);
- state.code = urlParseFailedState;
- }
- }
- updateCodeStore({ ...state, updateEditor: true });
+const processState = async (state: State) => {
+ const processed: ValidatedState = {
+ ...state,
+ serialized: '',
+ errorMarkers: [],
+ error: undefined,
+ editorMode: state.editorMode ?? 'code'
+ };
+ // No changes should be done to fields part of `state`.
+ try {
+ processed.serialized = serializeState(state);
+ await parse(state.code);
+ JSON.parse(state.mermaid);
+ } catch (e) {
+ processed.error = e as Error;
+ errorDebug();
+ console.error(e);
+ if ('hash' in e) {
+ try {
+ const {
+ loc: { first_line, last_line, first_column, last_column }
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
+ } = e.hash as ErrorHash;
+ const marker: MarkerData = {
+ severity: 8, // Error
+ startLineNumber: first_line,
+ startColumn: first_column,
+ endLineNumber: last_line,
+ endColumn: last_column + 1,
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment
+ message: e.str
+ };
+ processed.errorMarkers = [marker];
+ } catch (err) {
+ console.error('Error without line helper', err);
+ }
+ }
+ }
+ return processed;
};
-export const updateCodeStore = (newState: State): void => {
- codeStore.update((state) => {
- return { ...state, ...newState };
- });
+// All internal reads should be done via stateStore, but it should not be persisted/shared externally.
+export const stateStore: Readable = derived(
+ [inputStateStore],
+ ([state], set) => {
+ void processState(state).then(set);
+ },
+ currentState
+);
+
+export const loadState = (data: string): void => {
+ let state: State;
+ console.log(`Loading '${data}'`);
+ try {
+ state = deserializeState(data);
+ const mermaidConfig: MermaidConfig =
+ typeof state.mermaid === 'string'
+ ? (JSON.parse(state.mermaid) as MermaidConfig)
+ : state.mermaid;
+ if (
+ mermaidConfig.securityLevel &&
+ mermaidConfig.securityLevel !== 'strict' &&
+ confirm(
+ `Removing "securityLevel":"${mermaidConfig.securityLevel}" from the config for safety.\nClick Cancel if you trust the source of this Diagram.`
+ )
+ ) {
+ delete mermaidConfig.securityLevel; // Prevent setting overriding securityLevel when loading state to mitigate possible XSS attack
+ }
+ state.mermaid = JSON.stringify(mermaidConfig, null, 2);
+ } catch (e) {
+ state = get(inputStateStore);
+ if (data) {
+ console.error('Init error', e);
+ state.code = urlParseFailedState;
+ state.mermaid = defaultState.mermaid;
+ }
+ }
+ updateCodeStore(state);
+};
+
+export const updateCodeStore = (newState: Partial): void => {
+ inputStateStore.update((state) => {
+ return { ...state, ...newState };
+ });
};
let prompted = false;
-export const updateCode = (code: string, updateEditor: boolean, updateDiagram = false): void => {
- saveStatistics(code);
- const lines = (code.match(/\n/g) || '').length + 1;
+export const updateCode = (
+ code: string,
+ {
+ updateDiagram = false,
+ resetPanZoom = false
+ }: { updateDiagram?: boolean; resetPanZoom?: boolean } = {}
+): void => {
+ console.log('updateCode', code);
+ const lines = countLines(code);
+ saveStatistics(code);
+ errorDebug();
+ if (lines > 50 && !prompted && get(stateStore).autoSync) {
+ const turnOff = confirm(
+ `Long diagram detected. Turn off Auto Sync? Use ${cmdKey} + Enter or click the sync logo to manually sync.`
+ );
+ prompted = true;
+ if (turnOff) {
+ updateCodeStore({
+ autoSync: false
+ });
+ }
+ }
- if (lines > 50 && !prompted && get(codeStore).autoSync) {
- const turnOff = confirm(
- 'Long diagram detected. Turn off Auto Sync? Click the sync logo to manually sync.'
- );
- prompted = true;
- if (turnOff) {
- updateCodeStore({
- autoSync: false
- } as State);
- }
- }
-
- codeStore.update((state) => {
- return { ...state, code, updateEditor, updateDiagram };
- });
+ inputStateStore.update((state) => {
+ if (resetPanZoom) {
+ state.pan = undefined;
+ state.zoom = undefined;
+ }
+ return { ...state, code, updateDiagram };
+ });
};
-export const updateConfig = (config: string, updateEditor: boolean): void => {
- codeStore.update((state) => {
- return { ...state, mermaid: config, updateEditor };
- });
+export const updateConfig = (config: string): void => {
+ console.log('updateConfig', config);
+ inputStateStore.update((state) => {
+ return { ...state, mermaid: config };
+ });
};
export const toggleDarkTheme = (dark: boolean): void => {
- codeStore.update((state) => {
- const config = JSON.parse(state.mermaid);
- if (!config.theme || ['dark', 'default'].includes(config.theme)) {
- config.theme = dark ? 'dark' : 'default';
- }
+ inputStateStore.update((state) => {
+ const config = JSON.parse(state.mermaid) as MermaidConfig;
+ if (!config.theme || ['dark', 'default'].includes(config.theme)) {
+ config.theme = dark ? 'dark' : 'default';
+ }
- return { ...state, mermaid: JSON.stringify(config, null, 2), updateEditor: true };
- });
+ return { ...state, mermaid: JSON.stringify(config, null, 2) };
+ });
};
+let urlDebounce: number;
export const initURLSubscription = (): void => {
- serializedState.subscribe((state: string) => {
- history.replaceState(undefined, undefined, `#${state}`);
- });
+ stateStore.subscribe(({ serialized }) => {
+ clearTimeout(urlDebounce);
+ urlDebounce = window.setTimeout(() => {
+ history.replaceState(undefined, '', `#${serialized}`);
+ }, 250);
+ });
};
export const getStateString = (): string => {
- return JSON.stringify(get(codeStore));
+ return JSON.stringify(get(inputStateStore));
};
diff --git a/src/lib/util/stats.test.ts b/src/lib/util/stats.test.ts
new file mode 100644
index 00000000..518a55b1
--- /dev/null
+++ b/src/lib/util/stats.test.ts
@@ -0,0 +1,19 @@
+import { describe, it, expect } from 'vitest';
+import { detectType } from './stats';
+describe('diagram detection', () => {
+ it('should detect diagrams correctly', () => {
+ expect(
+ detectType(`%%{{
+ graph`)
+ ).toBe('graph');
+ expect(detectType(`gitGraph`)).toBe('gitGraph');
+ expect(
+ detectType(`%%{{
+
+
+ flowChart
+ graph`)
+ ).toBe('flowChart');
+ expect(detectType(`loki -> thor`)).toBe(undefined);
+ });
+});
diff --git a/src/lib/util/stats.ts b/src/lib/util/stats.ts
index 34915f58..c349088d 100644
--- a/src/lib/util/stats.ts
+++ b/src/lib/util/stats.ts
@@ -1,49 +1,99 @@
-import { browser } from '$app/env';
+import { browser } from '$app/environment';
import type { AnalyticsInstance } from 'analytics';
-
-export let analytics: AnalyticsInstance;
+export let analytics: AnalyticsInstance | undefined;
export const initAnalytics = async (): Promise => {
- if (browser && !analytics) {
- try {
- const { Analytics } = await import('analytics');
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
- const googleAnalytics = await import('@analytics/google-analytics');
- analytics = Analytics({
- app: 'mermaid-live-editor',
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
- plugins: [
- // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
- googleAnalytics.init({
- trackingId: 'UA-153180559-1'
- })
- ]
- });
- } catch {
- console.info('Analytics blocked ;)');
- }
- }
+ if (browser && !analytics) {
+ try {
+ const [{ Analytics }, { default: plausible }] = await Promise.all([
+ import('analytics'),
+ import('analytics-plugin-plausible')
+ ]);
+ analytics = Analytics({
+ app: 'mermaid-live-editor',
+ plugins: [
+ plausible({
+ domain: 'mermaid.live',
+ hashMode: false,
+ trackLocalhost: false, // By default 'false'
+ apiHost: 'https://plausible.io'
+ })
+ ]
+ });
+ } catch (e) {
+ console.log(e);
+ console.info('Analytics blocked ;)');
+ }
+ }
};
-const detectType = (text: string): string => {
- return text
- .replace(/^\s*%%.*\n/g, '\n')
- .trimStart()
- .split(' ')[0];
+export const detectType = (text: string): string | undefined => {
+ const possibleDiagramTypes = [
+ 'classDiagram',
+ 'erDiagram',
+ 'flowChart',
+ 'gantt',
+ 'gitGraph',
+ 'graph',
+ 'journey',
+ 'pie',
+ 'stateDiagram'
+ ];
+ const firstLine = text
+ .replace(/^\s*%%.*\n/g, '\n')
+ .trimStart()
+ .split(' ')[0]
+ .toLowerCase();
+ const detectedDiagram = possibleDiagramTypes.find((d) => firstLine.includes(d.toLowerCase()));
+ return detectedDiagram;
+};
+
+export const countLines = (code: string): number => {
+ return (code.match(/\n/g)?.length ?? 0) + 1;
};
-// manual debounce
-let timeout;
export const saveStatistics = (graph: string): void => {
- if (analytics) {
- clearTimeout(timeout);
- // Only save statistics after a 5 sec delay
- timeout = setTimeout(function () {
- const graphType = detectType(graph);
- console.debug('ga:', 'send', 'event', 'render', graphType);
- void analytics.track('render', {
- graphType
- });
- }, 5000);
- }
+ const graphType = detectType(graph);
+ if (!graphType) {
+ return;
+ }
+ const length = countLines(graph);
+ logEvent('render', { graphType, length });
+};
+
+const minutesToMilliSeconds = (minutes: number): number => {
+ return minutes * 60_000;
+};
+
+const defaultDelay = minutesToMilliSeconds(1);
+const delaysPerEvent = {
+ render: minutesToMilliSeconds(5),
+ panZoom: minutesToMilliSeconds(10),
+ copyClipboard: defaultDelay,
+ download: defaultDelay,
+ copyMarkdown: defaultDelay,
+ loadGist: defaultDelay,
+ loadSampleDiagram: defaultDelay,
+ renderDiagram: defaultDelay,
+ history: defaultDelay,
+ migration: defaultDelay,
+ themeChange: defaultDelay
+};
+export type AnalyticsEvent = keyof typeof delaysPerEvent;
+const timeouts: Map = new Map();
+// manual debounce to reduce the number of events sent to analytics
+export const logEvent = (name: AnalyticsEvent, data?: unknown): void => {
+ if (!analytics) {
+ return;
+ }
+ const key = data ? JSON.stringify({ name, data }) : name;
+ if (!timeouts.has(key)) {
+ void analytics.track(name, data);
+ } else {
+ clearTimeout(timeouts.get(key));
+ }
+ timeouts.set(
+ key,
+ window.setTimeout(() => timeouts.delete(key), delaysPerEvent[name])
+ );
};
diff --git a/src/lib/util/theme.ts b/src/lib/util/theme.ts
index 033bbe39..0da7f3ad 100644
--- a/src/lib/util/theme.ts
+++ b/src/lib/util/theme.ts
@@ -1,36 +1,38 @@
import { writable } from 'svelte/store';
import type { Writable } from 'svelte/store';
-import { persist, localStorage } from '@macfja/svelte-persistent-store';
+import { persist, localStorage } from '$lib/util/persist';
+import { logEvent } from './stats';
export interface ThemeConfig {
- isDark: boolean;
- theme?: string;
+ isDark: boolean;
+ theme?: string;
}
export const themeStore: Writable = persist(
- writable({
- isDark: false
- }),
- localStorage(),
- 'themeStore'
+ writable({
+ isDark: false
+ }),
+ localStorage(),
+ 'themeStore'
);
const darkThemes = [
- 'dark',
- 'synthwave',
- 'halloween',
- 'aqua',
- 'forest',
- 'luxury',
- 'black',
- 'dracula'
+ 'dark',
+ 'synthwave',
+ 'halloween',
+ 'aqua',
+ 'forest',
+ 'luxury',
+ 'black',
+ 'dracula'
];
export const setTheme = (theme: string): void => {
- if (theme.includes(' ')) {
- theme = theme.split(' ')[1].trim();
- }
- const isDark = darkThemes.includes(theme);
- console.log('Setting theme', theme);
- themeStore.set({ theme, isDark });
+ if (theme.includes(' ')) {
+ theme = theme.split(' ')[1].trim();
+ }
+ const isDark = darkThemes.includes(theme);
+ console.log('Setting theme', theme);
+ themeStore.set({ theme, isDark });
+ logEvent('themeChange', { theme, isDark });
};
diff --git a/src/lib/util/util.ts b/src/lib/util/util.ts
index 84e02992..bf2c7606 100644
--- a/src/lib/util/util.ts
+++ b/src/lib/util/util.ts
@@ -1,24 +1,40 @@
-import type { State } from '$lib/types';
import { initURLSubscription, loadState, updateCodeStore } from './state';
import { analytics, initAnalytics } from './stats';
import { loadDataFromUrl } from './fileLoaders/loader';
import { initLoading } from './loading';
+import { applyMigrations } from './migrations';
+import { init } from './mermaid';
export const loadStateFromURL = (): void => {
- loadState(window.location.hash.slice(1));
+ loadState(window.location.hash.slice(1));
};
export const syncDiagram = (): void => {
- updateCodeStore({
- updateDiagram: true
- } as State);
+ updateCodeStore({
+ updateDiagram: true
+ });
};
export const initHandler = async (): Promise => {
- loadStateFromURL();
- await initLoading('Loading Gist...', loadDataFromUrl().catch(console.error));
- syncDiagram();
- initURLSubscription();
- await initAnalytics();
- analytics?.page();
+ applyMigrations();
+ await initLoading('Loading Mermaid...', init());
+ loadStateFromURL();
+ await initLoading('Loading Gist...', loadDataFromUrl().catch(console.error));
+ syncDiagram();
+ initURLSubscription();
+ await initAnalytics();
+ await analytics?.page();
+};
+
+export const isMac = navigator.platform.toUpperCase().includes('MAC');
+export const cmdKey = isMac ? 'Cmd' : 'Ctrl';
+
+let count = 0;
+export const errorDebug = (limit = 100) => {
+ count += 1;
+ if (count > limit) {
+ console.log(count, limit);
+ // eslint-disable-next-line no-debugger
+ debugger;
+ }
};
diff --git a/src/routes/+layout.js b/src/routes/+layout.js
new file mode 100644
index 00000000..96544443
--- /dev/null
+++ b/src/routes/+layout.js
@@ -0,0 +1,4 @@
+export const prerender = true;
+export const csr = true;
+export const ssr = false;
+export const trailingSlash = 'ignore';
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte
new file mode 100644
index 00000000..099537f6
--- /dev/null
+++ b/src/routes/+layout.svelte
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+{#if $loadingStateStore.loading}
+
+
+
+
{$loadingStateStore.message}
+
+
+{/if}
+
+
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte
new file mode 100644
index 00000000..4a12a8b8
--- /dev/null
+++ b/src/routes/+page.svelte
@@ -0,0 +1,17 @@
+
diff --git a/src/routes/[fallback]/manifest.json.ts b/src/routes/[fallback]/manifest.json.ts
deleted file mode 100644
index e778d4b0..00000000
--- a/src/routes/[fallback]/manifest.json.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-import { get as manifestGet } from '../manifest.json';
-export const get = manifestGet;
diff --git a/src/routes/__layout.svelte b/src/routes/__layout.svelte
deleted file mode 100644
index 8b6dd0cb..00000000
--- a/src/routes/__layout.svelte
+++ /dev/null
@@ -1,83 +0,0 @@
-
-
-
-
-
-
-{#if $loadingStateStore.loading}
-
-
-
-
{$loadingStateStore.message}
-
-
-{/if}
-
-
diff --git a/src/routes/edit.svelte b/src/routes/edit.svelte
deleted file mode 100644
index f097364f..00000000
--- a/src/routes/edit.svelte
+++ /dev/null
@@ -1,203 +0,0 @@
-
-
-
-
-
-
-
-
-
- {#if !$codeStore.autoSync}
-
- {/if}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Code editing not supported on mobile. Please use a desktop browser.
-
-
-
-
-
-
diff --git a/src/routes/edit/+page.svelte b/src/routes/edit/+page.svelte
new file mode 100644
index 00000000..c96c305b
--- /dev/null
+++ b/src/routes/edit/+page.svelte
@@ -0,0 +1,209 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {#if !$stateStore.autoSync}
+
+ {/if}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Code editing not supported on mobile. Please use a desktop browser.
+
+
+
+
+
+
diff --git a/src/routes/index.svelte b/src/routes/index.svelte
deleted file mode 100644
index ca9daa13..00000000
--- a/src/routes/index.svelte
+++ /dev/null
@@ -1,17 +0,0 @@
-
diff --git a/src/routes/manifest.json.ts b/src/routes/manifest.json.ts
deleted file mode 100644
index f8e5f95e..00000000
--- a/src/routes/manifest.json.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import { base } from '$app/paths';
-export const get = (): { body: unknown } => {
- return {
- body: {
- short_name: 'Mermaid',
- name: 'Mermaid Live Editor',
- icons: [
- {
- src: `${base}/icon-192.png`,
- type: 'image/png',
- sizes: '192x192'
- },
- {
- src: `${base}/icon-512.png`,
- type: 'image/png',
- sizes: '512x512'
- }
- ],
- start_url: `${base}/edit/`,
- background_color: '#6366F1',
- display: 'standalone',
- scope: `${base}/edit/`,
- theme_color: '#6366F1',
- description: 'FlowChart & Diagrams Editor.',
- orientation: 'landscape'
- }
- };
-};
diff --git a/src/routes/view.svelte b/src/routes/view.svelte
deleted file mode 100644
index 216251f0..00000000
--- a/src/routes/view.svelte
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
diff --git a/src/routes/view/+page.svelte b/src/routes/view/+page.svelte
new file mode 100644
index 00000000..936fc0d1
--- /dev/null
+++ b/src/routes/view/+page.svelte
@@ -0,0 +1,8 @@
+
+
+
diff --git a/src/tests/setup.ts b/src/tests/setup.ts
new file mode 100644
index 00000000..51d4037f
--- /dev/null
+++ b/src/tests/setup.ts
@@ -0,0 +1,11 @@
+import matchers from '@testing-library/jest-dom/matchers';
+import { expect, beforeAll, vi } from 'vitest';
+
+expect.extend(matchers);
+
+// TODO: Remove once https://github.com/sveltejs/kit/issues/6259 is closed.
+beforeAll(() => {
+ vi.mock('$app/environment', () => ({
+ browser: 'window' in globalThis
+ }));
+});
diff --git a/static/favicon.ico b/static/favicon.ico
new file mode 100644
index 00000000..7873127f
Binary files /dev/null and b/static/favicon.ico differ
diff --git a/static/favicon.png b/static/favicon.png
index 1c2e38b9..05d8a737 100644
Binary files a/static/favicon.png and b/static/favicon.png differ
diff --git a/static/favicon.svg b/static/favicon.svg
new file mode 100644
index 00000000..993c56b9
--- /dev/null
+++ b/static/favicon.svg
@@ -0,0 +1,6 @@
+
+
+
diff --git a/static/icon-192.png b/static/icon-192.png
deleted file mode 100644
index 0bfa1a5c..00000000
Binary files a/static/icon-192.png and /dev/null differ
diff --git a/static/icon-512.png b/static/icon-512.png
deleted file mode 100644
index 8e89b9f9..00000000
Binary files a/static/icon-512.png and /dev/null differ
diff --git a/static/manifest.json b/static/manifest.json
new file mode 100644
index 00000000..d57636a2
--- /dev/null
+++ b/static/manifest.json
@@ -0,0 +1,18 @@
+{
+ "short_name": "Mermaid",
+ "name": "Mermaid Live Editor",
+ "icons": [
+ {
+ "src": "/favicon.png",
+ "type": "image/png",
+ "sizes": "512x512"
+ }
+ ],
+ "start_url": "/edit/",
+ "background_color": "#6366F1",
+ "display": "standalone",
+ "scope": "/edit/",
+ "theme_color": "#6366F1",
+ "description": "FlowChart & Diagrams Editor.",
+ "orientation": "landscape"
+}
\ No newline at end of file
diff --git a/svelte.config.js b/svelte.config.js
index 46916306..7b34bfa1 100644
--- a/svelte.config.js
+++ b/svelte.config.js
@@ -3,28 +3,23 @@ import adapter from '@sveltejs/adapter-static';
/** @type {import('@sveltejs/kit').Config} */
const config = {
- // Consult https://github.com/sveltejs/svelte-preprocess
- // for more information about preprocessors
- preprocess: [
- preprocess({
- postcss: true
- })
- ],
- kit: {
- adapter: adapter({
- pages: `docs${process.env['BETA'] ? '/beta' : ''}`
- }),
- paths: process.env['DEPLOY']
- ? {
- base: `/mermaid-live-editor${process.env['BETA'] ? '/beta' : ''}`
- }
- : {},
- trailingSlash: 'ignore',
- vite: {
- envPrefix: 'MERMAID_',
- optimizeDeps: { include: ['mermaid'] }
- }
- }
+ // Consult https://github.com/sveltejs/svelte-preprocess
+ // for more information about preprocessors
+ preprocess: [
+ preprocess({
+ postcss: true
+ })
+ ],
+ kit: {
+ adapter: adapter({
+ pages: `docs`
+ }),
+ paths: process.env['DEPLOY']
+ ? {
+ base: `/mermaid-live-editor`
+ }
+ : {}
+ }
};
export default config;
diff --git a/tailwind.config.cjs b/tailwind.config.cjs
index dc72ba6e..18cb32c1 100644
--- a/tailwind.config.cjs
+++ b/tailwind.config.cjs
@@ -1,10 +1,10 @@
module.exports = {
- plugins: [require('daisyui')],
- content: ['./src/**/*.{html,js,svelte,ts}'],
- theme: {
- extend: {}
- },
- variants: {
- extend: {}
- }
+ plugins: [require('daisyui')],
+ content: ['./src/**/*.{html,js,svelte,ts}'],
+ theme: {
+ extend: {}
+ },
+ variants: {
+ extend: {}
+ }
};
diff --git a/tsconfig.json b/tsconfig.json
index 0f97b2a3..91263b2e 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,39 +1,19 @@
{
- "compilerOptions": {
- "moduleResolution": "node",
- "module": "es2020",
- "lib": ["es2020", "ESNext", "DOM.Iterable", "DOM"],
- "target": "es2019",
- /**
- svelte-preprocess cannot figure out whether you have a value or a type, so tell TypeScript
- to enforce using \`import type\` instead of \`import\` for Types.
- */
- "importsNotUsedAsValues": "error",
- "isolatedModules": true,
- "resolveJsonModule": true,
- /**
- To have warnings/errors of the Svelte compiler at the correct position,
- enable source maps by default.
- */
- "sourceMap": true,
- "esModuleInterop": true,
- "skipLibCheck": true,
- "forceConsistentCasingInFileNames": true,
- "baseUrl": ".",
- "allowJs": true,
- "checkJs": true,
- "paths": {
- "$lib/*": ["src/lib/*"]
- }
- },
- "include": [
- "src/**/*.d.ts",
- "src/**/*.js",
- "src/**/*.ts",
- "src/**/*.svelte",
- "cypress/**/*.ts",
- "cypress/**/*.js",
- "static/**/*.js",
- "src/pako.mts"
- ]
+ "include": [
+ "src/**/*.d.ts",
+ "src/**/*.ts",
+ "src/**/*.svelte",
+ "cypress/**/*.ts",
+ "cypress/**/*.js",
+ "cypress/**/*.json",
+ "static/**/*.js",
+ "static/**/*.json"
+ ],
+ "compilerOptions": {
+ "resolveJsonModule": true,
+ "allowSyntheticDefaultImports": true,
+ "strictNullChecks": true,
+ "types": ["vitest/importMeta"]
+ },
+ "extends": "./.svelte-kit/tsconfig.json"
}
diff --git a/vite.config.js b/vite.config.js
new file mode 100644
index 00000000..677561c4
--- /dev/null
+++ b/vite.config.js
@@ -0,0 +1,26 @@
+import { sveltekit } from '@sveltejs/kit/vite';
+import { defineConfig } from 'vitest/config';
+
+export default defineConfig({
+ plugins: [sveltekit()],
+ envPrefix: 'MERMAID_',
+ optimizeDeps: { include: ['mermaid'] },
+ server: {
+ port: 3000,
+ host: true
+ },
+ preview: {
+ port: 3000,
+ host: true
+ },
+ test: {
+ environment: 'jsdom',
+ // in-source testing
+ includeSource: ['src/**/*.{js,ts,svelte}'],
+ setupFiles: ['./src/tests/setup.ts'],
+ coverage: {
+ exclude: ['src/mocks', '.svelte-kit', 'src/**/*.test.ts'],
+ reporter: ['text', 'json', 'html', 'lcov']
+ }
+ }
+});
diff --git a/yarn.lock b/yarn.lock
index df4b2344..8bd006c3 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,42 +2,49 @@
# yarn lockfile v1
-"@analytics/cookie-utils@^0.2.9":
- version "0.2.9"
- resolved "https://registry.yarnpkg.com/@analytics/cookie-utils/-/cookie-utils-0.2.9.tgz#ec506dbd9dd79c17a56c6b7903206b90b2384fca"
- integrity sha512-n864WRTvO/vFXbKkPaHgCh3LXL0Xbesc6bnhbgcE4LDLJIvDX/wIblzHvLr47ePaaFJvOljqQyeY4TZBWWdaWA==
- dependencies:
- "@analytics/global-storage-utils" "^0.1.4"
+"@adobe/css-tools@^4.0.1":
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.0.1.tgz#b38b444ad3aa5fedbb15f2f746dcd934226a12dd"
+ integrity sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g==
-"@analytics/core@^0.11.0":
- version "0.11.0"
- resolved "https://registry.yarnpkg.com/@analytics/core/-/core-0.11.0.tgz#a564a29976db56b64188e00cf236d9a64c59fea5"
- integrity sha512-5Waj+Ca8bvCwqI/4/BKi/9hwV8FuQAW9PGgFUQcDbdWcEzmXp0SzzhTuP2mpO9oR4RquxqqGkU3d9zgulZa4Hg==
+"@analytics/cookie-utils@^0.2.10", "@analytics/cookie-utils@^0.2.9":
+ version "0.2.10"
+ resolved "https://registry.yarnpkg.com/@analytics/cookie-utils/-/cookie-utils-0.2.10.tgz#94d1ad0766c58c4a294e5ca54f59b0a69bd574b4"
+ integrity sha512-k7oyW1PkMCnEdCYmHCLLXAsKavQh5ZRh5EeugBEUTlPJs8x8ajF+W1T0PYVDS26Impkea1sJR2etv/6l2pKtlg==
+ dependencies:
+ "@analytics/global-storage-utils" "^0.1.5"
+
+"@analytics/core@^0.10.23":
+ version "0.10.23"
+ resolved "https://registry.yarnpkg.com/@analytics/core/-/core-0.10.23.tgz#869218c28bae4948bdecfd76415064e83bb8ca8d"
+ integrity sha512-crOJ7tNA5xak5YGiiX8IvPyqf4Hy3tMmTH4dTvQiOapO6BiBJcxBUkjtJNPwZlhS4nmsWh0skeTBr4Kv92RzeA==
dependencies:
"@analytics/global-storage-utils" "^0.1.4"
"@analytics/type-utils" "^0.5.4"
analytics-utils "^1.0.9"
-"@analytics/global-storage-utils@^0.1.4":
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/@analytics/global-storage-utils/-/global-storage-utils-0.1.4.tgz#69ca586fcea4b717063e865d126d6561cc3adc05"
- integrity sha512-9qd2OOvhL8kN5oUpVZ6tdCveYT9s+iXwkkQFOHjO+5ezFeVtrsfbaBHQe4sPquEroH0KmfY8PBMWIDCcc8FVvg==
+"@analytics/core@^0.11.1":
+ version "0.11.1"
+ resolved "https://registry.yarnpkg.com/@analytics/core/-/core-0.11.1.tgz#3d26858aeaf77b80810e269a4ecfd70173032501"
+ integrity sha512-vHuiMpeGV6jGRRoOuScUJ4CHpVd1Zu9M+fjEWgN+boMAxIwFCtRTkSbhhIP337JuEBLpMT8w37OxA4Yh3NZFZw==
dependencies:
- "@analytics/type-utils" "^0.5.4"
+ "@analytics/global-storage-utils" "^0.1.5"
+ "@analytics/type-utils" "^0.6.0"
+ analytics-utils "^1.0.10"
-"@analytics/google-analytics@^0.5.3":
- version "0.5.3"
- resolved "https://registry.npmjs.org/@analytics/google-analytics/-/google-analytics-0.5.3.tgz"
- integrity sha512-5ZH3hpM8W/rhBrF+3TNjD2ZjabW4A8k/maqF4IGmWWNq31Bd8xh3KAhifDs76xn8hTWKGapTORZLfo87mB+9Dw==
+"@analytics/global-storage-utils@^0.1.4", "@analytics/global-storage-utils@^0.1.5":
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/@analytics/global-storage-utils/-/global-storage-utils-0.1.5.tgz#54cc14f8d678610b5fca1e98215fe29fff662f31"
+ integrity sha512-DzOCd0qK7PGnz/dgBYNzLmaFBkxcEHM6/CpWMY7hel1IBUldMsyet4sdRgI2Nk+Wc6B/YvqVqos68p5ntB59zA==
dependencies:
- universal-analytics "^0.4.20"
+ "@analytics/type-utils" "^0.6.0"
-"@analytics/localstorage-utils@^0.1.7":
- version "0.1.7"
- resolved "https://registry.yarnpkg.com/@analytics/localstorage-utils/-/localstorage-utils-0.1.7.tgz#1723e43cd8286007bc47940f8a7c79a241a3f54c"
- integrity sha512-1nji7Bxb0nA9T5S+fCPigsBzFKkCnJAMN08APKtcdzgn+QaDFpmZg2dA15LERc7dhK3qTI7HXj4s1VhJeBGikQ==
+"@analytics/localstorage-utils@^0.1.7", "@analytics/localstorage-utils@^0.1.8":
+ version "0.1.8"
+ resolved "https://registry.yarnpkg.com/@analytics/localstorage-utils/-/localstorage-utils-0.1.8.tgz#eab6a9690ccd3c05d131e3a9788b4443affdb800"
+ integrity sha512-tU5rLEHdYRc4EmRXkWacMJSmu4SeJfQuxvthSHHRVx3hGBQ00MJRDGyDHMXcrLKQXrBpsJo6t/8YRavHLOxDPQ==
dependencies:
- "@analytics/global-storage-utils" "^0.1.4"
+ "@analytics/global-storage-utils" "^0.1.5"
"@analytics/session-storage-utils@^0.0.4":
version "0.0.4"
@@ -46,6 +53,13 @@
dependencies:
"@analytics/global-storage-utils" "^0.1.4"
+"@analytics/session-storage-utils@^0.0.5":
+ version "0.0.5"
+ resolved "https://registry.yarnpkg.com/@analytics/session-storage-utils/-/session-storage-utils-0.0.5.tgz#f0501ef73d1b94a34e94057056cadaeee4f65fdf"
+ integrity sha512-BXRNQ73GSkkkny//a/SNCYRyrIhEJBwOTcdNkr2gq6ghXgekQGrTfVzwybZ/tAEHA0XYkkaOszelRsDPxa+UOQ==
+ dependencies:
+ "@analytics/global-storage-utils" "^0.1.5"
+
"@analytics/storage-utils@^0.3.0":
version "0.3.0"
resolved "https://registry.yarnpkg.com/@analytics/storage-utils/-/storage-utils-0.3.0.tgz#7a9795af6b73e13194edb03eb27402c4877d9d96"
@@ -57,43 +71,64 @@
"@analytics/session-storage-utils" "^0.0.4"
"@analytics/type-utils" "^0.5.4"
+"@analytics/storage-utils@^0.4.0":
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/@analytics/storage-utils/-/storage-utils-0.4.0.tgz#12e5c0683f0124e189650a4989a627f3318d7995"
+ integrity sha512-RY9nhoSQcuQxkmVUZBG3ULOwiFxi+H5N0WHn+FPUScnoM4b+tC48dWzyFxD9qKyWPah8/ndjCj6r+6wTGSl1zw==
+ dependencies:
+ "@analytics/cookie-utils" "^0.2.10"
+ "@analytics/global-storage-utils" "^0.1.5"
+ "@analytics/localstorage-utils" "^0.1.8"
+ "@analytics/session-storage-utils" "^0.0.5"
+ "@analytics/type-utils" "^0.6.0"
+
"@analytics/type-utils@^0.5.4":
version "0.5.4"
resolved "https://registry.yarnpkg.com/@analytics/type-utils/-/type-utils-0.5.4.tgz#1fcaa6d1d557c0377d1fbd8615624ac918d1727d"
integrity sha512-2CT5YTsvif3gYPYp5hPIhh66mUo/Cu+k5OiHbX3k5p+YsZ5Bggcp/wLEFnrdKG4tKgGn5SOKkEtL63VYhGXX7g==
-"@babel/code-frame@7.12.11":
- version "7.12.11"
- resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz"
- integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==
- dependencies:
- "@babel/highlight" "^7.10.4"
+"@analytics/type-utils@^0.6.0":
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/@analytics/type-utils/-/type-utils-0.6.0.tgz#1b8745516da5a654d292ed3f2db893c61cd3d9c5"
+ integrity sha512-1Yw7u/COtxx06BfwlI+kVhsa/upKYzmCNrT4c8QDeCY2KMYlnijkUjtHiPU08HxyTIVB5j6d75O0YWVIHwQS8g==
-"@babel/code-frame@^7.0.0":
- version "7.14.5"
- resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz"
- integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==
+"@babel/code-frame@^7.10.4":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a"
+ integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==
dependencies:
- "@babel/highlight" "^7.14.5"
+ "@babel/highlight" "^7.18.6"
-"@babel/helper-validator-identifier@^7.14.5":
- version "7.14.9"
- resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz"
- integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==
+"@babel/helper-validator-identifier@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076"
+ integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==
-"@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5":
- version "7.14.5"
- resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.5.tgz"
- integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==
+"@babel/highlight@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf"
+ integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==
dependencies:
- "@babel/helper-validator-identifier" "^7.14.5"
+ "@babel/helper-validator-identifier" "^7.18.6"
chalk "^2.0.0"
js-tokens "^4.0.0"
-"@braintree/sanitize-url@^3.1.0":
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-3.1.0.tgz#8ff71d51053cd5ee4981e5a501d80a536244f7fd"
- integrity sha512-GcIY79elgB+azP74j8vqkiXz8xLFfIzbQJdlwOPisgbKT00tviJQuEghOXSMVxJ00HoYJbGswr4kcllUc4xCcg==
+"@babel/runtime@^7.12.5", "@babel/runtime@^7.9.2":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.6.tgz#6a1ef59f838debd670421f8c7f2cbb8da9751580"
+ integrity sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==
+ dependencies:
+ regenerator-runtime "^0.13.4"
+
+"@bcoe/v8-coverage@^0.2.3":
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
+ integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
+
+"@braintree/sanitize-url@^6.0.0":
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-6.0.0.tgz#fe364f025ba74f6de6c837a84ef44bdb1d61e68f"
+ integrity sha512-mgmE7XBYY/21erpzhexk4Cj1cyTQ9LzvnTxtzM17BJ7ERMNE6W72mQRo0I1Ud8eFJ+RVVIcBNhLFZ3GX4XFz5w==
"@cypress/request@^2.88.10":
version "2.88.10"
@@ -119,9 +154,9 @@
tunnel-agent "^0.6.0"
uuid "^8.3.2"
-"@cypress/snapshot@^2.1.7":
+"@cypress/snapshot@2.1.7":
version "2.1.7"
- resolved "https://registry.npmjs.org/@cypress/snapshot/-/snapshot-2.1.7.tgz"
+ resolved "https://registry.yarnpkg.com/@cypress/snapshot/-/snapshot-2.1.7.tgz#e7360eb628b062f28f03036382619ec72cfb1831"
integrity sha512-f8AcfIg7wOOHSdBODlIwCJE/rG5Yb+kUY+WVTKynB2pLLoDy9nc8CtcazqX19q2Lh++nTJLNRihpbbWvk33mbg==
dependencies:
"@wildpeaks/snapshot-dom" "1.6.0"
@@ -141,42 +176,192 @@
debug "^3.1.0"
lodash.once "^4.1.1"
-"@eslint/eslintrc@^0.4.3":
- version "0.4.3"
- resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz"
- integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==
+"@esbuild/android-arm64@0.16.7":
+ version "0.16.7"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.7.tgz#2df472016c77dba3e79596a84da74c541698910f"
+ integrity sha512-tYFw0lBJSEvLoGzzYh1kXuzoX1iPkbOk3O29VqzQb0HbOy7t/yw1hGkvwoJhXHwzQUPsShyYcTgRf6bDBcfnTw==
+
+"@esbuild/android-arm@0.16.7":
+ version "0.16.7"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.7.tgz#15f1a9b27b1637c38377b3e1f2d90b9782cdc141"
+ integrity sha512-yhzDbiVcmq6T1/XEvdcJIVcXHdLjDJ5cQ0Dp9R9p9ERMBTeO1dR5tc8YYv8zwDeBw1xZm+Eo3MRo8cwclhBS0g==
+
+"@esbuild/android-x64@0.16.7":
+ version "0.16.7"
+ resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.7.tgz#cb34b7d666bf52266061cfb1a19c1d788b6c5ac1"
+ integrity sha512-3P2OuTxwAtM3k/yEWTNUJRjMPG1ce8rXs51GTtvEC5z1j8fC1plHeVVczdeHECU7aM2/Buc0MwZ6ciM/zysnWg==
+
+"@esbuild/darwin-arm64@0.16.7":
+ version "0.16.7"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.7.tgz#be1fabd0c2f6af111c16e9e9b18bf336c1e11634"
+ integrity sha512-VUb9GK23z8jkosHU9yJNUgQpsfJn+7ZyBm6adi2Ec5/U241eR1tAn82QicnUzaFDaffeixiHwikjmnec/YXEZg==
+
+"@esbuild/darwin-x64@0.16.7":
+ version "0.16.7"
+ resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.16.7.tgz#2206042ac4396bb18dd53b379df83bec47eeb5fb"
+ integrity sha512-duterlv3tit3HI9vhzMWnSVaB1B6YsXpFq1Ntd6Fou82BB1l4tucYy3FI9dHv3tvtDuS0NiGf/k6XsdBqPZ01w==
+
+"@esbuild/freebsd-arm64@0.16.7":
+ version "0.16.7"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.7.tgz#ca52bd64b0bba69ae4063245366f25838357c332"
+ integrity sha512-9kkycpBFes/vhi7B7o0cf+q2WdJi+EpVzpVTqtWFNiutARWDFFLcB93J8PR1cG228sucsl3B+7Ts27izE6qiaQ==
+
+"@esbuild/freebsd-x64@0.16.7":
+ version "0.16.7"
+ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.7.tgz#bc01c146e6af5430c5eb325844de43f01e0264c4"
+ integrity sha512-5Ahf6jzWXJ4J2uh9dpy5DKOO+PeRUE/9DMys6VuYfwgQzd6n5+pVFm58L2Z2gRe611RX6SdydnNaiIKM3svY7g==
+
+"@esbuild/linux-arm64@0.16.7":
+ version "0.16.7"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.7.tgz#23267ff1cdd2a8f150d5aca1d6d2a4dfd4be7909"
+ integrity sha512-2wv0xYDskk2+MzIm/AEprDip39a23Chptc4mL7hsHg26P0gD8RUhzmDu0KCH2vMThUI1sChXXoK9uH0KYQKaDg==
+
+"@esbuild/linux-arm@0.16.7":
+ version "0.16.7"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.7.tgz#2c7cf7244e4b8a6f757a87a113d83d8a0c1f5297"
+ integrity sha512-QqJnyCfu5OF78Olt7JJSZ7OSv/B4Hf+ZJWp4kkq9xwMsgu7yWq3crIic8gGOpDYTqVKKMDAVDgRXy5Wd/nWZyQ==
+
+"@esbuild/linux-ia32@0.16.7":
+ version "0.16.7"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.7.tgz#a15dc3edf6953c5414add4264fd8335f48775490"
+ integrity sha512-APVYbEilKbD5ptmKdnIcXej2/+GdV65TfTjxR2Uk8t1EsOk49t6HapZW6DS/Bwlvh5hDwtLapdSumIVNGxgqLg==
+
+"@esbuild/linux-loong64@0.16.7":
+ version "0.16.7"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.7.tgz#b3ce8539cf307b543796530839cf62507d9c7e84"
+ integrity sha512-5wPUAGclplQrAW7EFr3F84Y/d++7G0KykohaF4p54+iNWhUnMVU8Bh2sxiEOXUy4zKIdpHByMgJ5/Ko6QhtTUw==
+
+"@esbuild/linux-mips64el@0.16.7":
+ version "0.16.7"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.7.tgz#7c1c8f3de254b4e975ac2580bba187b87b959256"
+ integrity sha512-hxzlXtWF6yWfkE/SMTscNiVqLOAn7fOuIF3q/kiZaXxftz1DhZW/HpnTmTTWrzrS7zJWQxHHT4QSxyAj33COmA==
+
+"@esbuild/linux-ppc64@0.16.7":
+ version "0.16.7"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.7.tgz#72a00c9788f3ca5df56ecec060d5b92f945c9a2d"
+ integrity sha512-WM83Dac0LdXty5xPhlOuCD5Egfk1xLND/oRLYeB7Jb/tY4kzFSDgLlq91wYbHua/s03tQGA9iXvyjgymMw62Vw==
+
+"@esbuild/linux-riscv64@0.16.7":
+ version "0.16.7"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.7.tgz#545fd57e44dc3331a86956889f2a5b42bd116c9b"
+ integrity sha512-3nkNnNg4Ax6MS/l8O8Ynq2lGEVJYyJ2EoY3PHjNJ4PuZ80EYLMrFTFZ4L/Hc16AxgtXKwmNP9TM0YKNiBzBiJQ==
+
+"@esbuild/linux-s390x@0.16.7":
+ version "0.16.7"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.7.tgz#a36fd4605904c49310616dd648c0c25a267a19c0"
+ integrity sha512-3SA/2VJuv0o1uD7zuqxEP+RrAyRxnkGddq0bwHQ98v1KNlzXD/JvxwTO3T6GM5RH6JUd29RTVQTOJfyzMkkppA==
+
+"@esbuild/linux-x64@0.16.7":
+ version "0.16.7"
+ resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.7.tgz#104f3f8f3f25f1f26b70cee05470974861ca5a5e"
+ integrity sha512-xi/tbqCqvPIzU+zJVyrpz12xqciTAPMi2fXEWGnapZymoGhuL2GIWIRXg4O2v5BXaYA5TSaiKYE14L0QhUTuQg==
+
+"@esbuild/netbsd-x64@0.16.7":
+ version "0.16.7"
+ resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.7.tgz#0fd59fea5e6b94ee82e81b3b389e561efe77b347"
+ integrity sha512-NUsYbq3B+JdNKn8SXkItFvdes9qTwEoS3aLALtiWciW/ystiCKM20Fgv9XQBOXfhUHyh5CLEeZDXzLOrwBXuCQ==
+
+"@esbuild/openbsd-x64@0.16.7":
+ version "0.16.7"
+ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.7.tgz#c04072a70f31be1bd47204955d2c71ca393c9eb4"
+ integrity sha512-qjwzsgeve9I8Tbsko2FEkdSk2iiezuNGFgipQxY/736NePXDaDZRodIejYGWOlbYXugdxb0nif5yvypH6lKBmA==
+
+"@esbuild/sunos-x64@0.16.7":
+ version "0.16.7"
+ resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.7.tgz#11c4cd341be1de93cb5e3bf096f3b63ae1497626"
+ integrity sha512-mFWDz4RoBTzPphTCkM7Kc7Qpa0o/Z01acajR+Ai7LdfKgcP/C6jYOaKwv7nKzD0+MjOT20j7You9g4ozYy1dKQ==
+
+"@esbuild/win32-arm64@0.16.7":
+ version "0.16.7"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.7.tgz#95091269394f16352e318124790a3906bf370141"
+ integrity sha512-m39UmX19RvEIuC8sYZ0M+eQtdXw4IePDSZ78ZQmYyFaXY9krq4YzQCK2XWIJomNLtg4q+W5aXr8bW3AbqWNoVg==
+
+"@esbuild/win32-ia32@0.16.7":
+ version "0.16.7"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.7.tgz#2bda285a0b7084a93417472c460b0209bef0c39d"
+ integrity sha512-1cbzSEZA1fANwmT6rjJ4G1qQXHxCxGIcNYFYR9ctI82/prT38lnwSRZ0i5p/MVXksw9eMlHlet6pGu2/qkXFCg==
+
+"@esbuild/win32-x64@0.16.7":
+ version "0.16.7"
+ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.16.7.tgz#966ac3fc41758e6843cbd5844b2466bbdc34dada"
+ integrity sha512-QaQ8IH0JLacfGf5cf0HCCPnQuCTd/dAI257vXBgb/cccKGbH/6pVtI1gwhdAQ0Y48QSpTIFrh9etVyNdZY+zzw==
+
+"@eslint/eslintrc@^1.4.1":
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e"
+ integrity sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==
dependencies:
ajv "^6.12.4"
- debug "^4.1.1"
- espree "^7.3.0"
- globals "^13.9.0"
- ignore "^4.0.6"
+ debug "^4.3.2"
+ espree "^9.4.0"
+ globals "^13.19.0"
+ ignore "^5.2.0"
import-fresh "^3.2.1"
- js-yaml "^3.13.1"
- minimatch "^3.0.4"
+ js-yaml "^4.1.0"
+ minimatch "^3.1.2"
strip-json-comments "^3.1.1"
-"@humanwhocodes/config-array@^0.5.0":
- version "0.5.0"
- resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz"
- integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==
+"@humanwhocodes/config-array@^0.11.8":
+ version "0.11.8"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9"
+ integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==
dependencies:
- "@humanwhocodes/object-schema" "^1.2.0"
+ "@humanwhocodes/object-schema" "^1.2.1"
debug "^4.1.1"
- minimatch "^3.0.4"
+ minimatch "^3.0.5"
-"@humanwhocodes/object-schema@^1.2.0":
- version "1.2.0"
- resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz"
- integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w==
+"@humanwhocodes/module-importer@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
+ integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
-"@macfja/svelte-persistent-store@^1.2.0":
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/@macfja/svelte-persistent-store/-/svelte-persistent-store-1.2.0.tgz#ccdb9f823717aa87fa520df6906a4a976007584d"
- integrity sha512-vftMaR7vwNwJx7atDjzFagBEZpOXgnrKqeutHfTtEreprP/izjb0LfvwLKQK29cO7gT9iifHQdOoD9kGynasOw==
+"@humanwhocodes/object-schema@^1.2.1":
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
+ integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
+
+"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3":
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98"
+ integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==
+
+"@jest/schemas@^28.0.2":
+ version "28.0.2"
+ resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-28.0.2.tgz#08c30df6a8d07eafea0aef9fb222c5e26d72e613"
+ integrity sha512-YVDJZjd4izeTDkij00vHHAymNXQ6WWsdChFRK86qck6Jpr3DCL5W3Is3vslviRlP+bLuMYRLbdp98amMvqudhA==
dependencies:
- browser-cookies "^1.2.0"
- idb-keyval "^5.1.3"
+ "@sinclair/typebox" "^0.23.3"
+
+"@jridgewell/resolve-uri@^3.0.3":
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78"
+ integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==
+
+"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13":
+ version "1.4.14"
+ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
+ integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
+
+"@jridgewell/trace-mapping@^0.3.12":
+ version "0.3.14"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz#b231a081d8f66796e475ad588a1ef473112701ed"
+ integrity sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==
+ dependencies:
+ "@jridgewell/resolve-uri" "^3.0.3"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
+
+"@mermaid-js/mermaid-mindmap@9.3.0":
+ version "9.3.0"
+ resolved "https://registry.yarnpkg.com/@mermaid-js/mermaid-mindmap/-/mermaid-mindmap-9.3.0.tgz#cfe10329198a0f37e27eef1dcc4a1cf21f187e2b"
+ integrity sha512-IhtYSVBBRYviH1Ehu8gk69pMDF8DSRqXBRDMWrEfHoaMruHeaP2DXA3PBnuwsMaCdPQhlUUcy/7DBLAEIXvCAw==
+ dependencies:
+ "@braintree/sanitize-url" "^6.0.0"
+ cytoscape "^3.23.0"
+ cytoscape-cose-bilkent "^4.1.0"
+ cytoscape-fcose "^2.1.0"
+ d3 "^7.0.0"
+ khroma "^2.0.0"
+ non-layered-tidy-tree-layout "^2.0.2"
"@nodelib/fs.scandir@2.1.5":
version "2.1.5"
@@ -191,7 +376,7 @@
resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
-"@nodelib/fs.walk@^1.2.3":
+"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8":
version "1.2.8"
resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz"
integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
@@ -199,56 +384,142 @@
"@nodelib/fs.scandir" "2.1.5"
fastq "^1.6.0"
-"@rollup/pluginutils@^4.1.2":
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.1.2.tgz#ed5821c15e5e05e32816f5fb9ec607cdf5a75751"
- integrity sha512-ROn4qvkxP9SyPeHaf7uQC/GPFY6L/OWy9+bd9AwcjOAWQwxRscoEyAUD8qCY5o5iL4jqQwoLk2kaTKJPb/HwzQ==
- dependencies:
- estree-walker "^2.0.1"
- picomatch "^2.2.2"
+"@polka/url@^1.0.0-next.20":
+ version "1.0.0-next.21"
+ resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1"
+ integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==
-"@sveltejs/adapter-static@1.0.0-next.28":
- version "1.0.0-next.28"
- resolved "https://registry.yarnpkg.com/@sveltejs/adapter-static/-/adapter-static-1.0.0-next.28.tgz#45b6da68bf1b0fb9abc7c8746e36a9057933e5ac"
- integrity sha512-c4xLyeSwnbGQxe4f1SLpHTbxZDm3TEr43scR3tOlVgQN+mnAL9aDdl3nTtdzWmrUDmDEmY4GriAwLyFLZuINLw==
+"@sinclair/typebox@^0.23.3":
+ version "0.23.5"
+ resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.23.5.tgz#93f7b9f4e3285a7a9ade7557d9a8d36809cbc47d"
+ integrity sha512-AFBVi/iT4g20DHoujvMH1aEDn8fGJh4xsRGCP6d8RpLPMqsNPvW01Jcn0QysXTsg++/xj25NmJsGyH9xug/wKg==
+
+"@sveltejs/adapter-static@1.0.6":
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/@sveltejs/adapter-static/-/adapter-static-1.0.6.tgz#897c0a1e7b929be8dc1871d28cab7746afa7bf72"
+ integrity sha512-gTus2jW6bEQAZoT1MdmPHWZZmcb6dfLWc0r6dFHnbzSDZ68kifqQ1E+dZDOMF7aXeRV91sgnPuAn2MtpinVdlA==
+
+"@sveltejs/kit@1.3.10":
+ version "1.3.10"
+ resolved "https://registry.yarnpkg.com/@sveltejs/kit/-/kit-1.3.10.tgz#42cbffad4262ae116d946e7c7e3a0ec2092e4a65"
+ integrity sha512-I3DgWCwTYbTz4ZPCJIRkSDrKkMu0bsdk6ghqsOBVNqesf1wBdTdfkXhag3ESWgIEjUV3VUIWPQF7fnt7328mhQ==
dependencies:
+ "@sveltejs/vite-plugin-svelte" "^2.0.0"
+ "@types/cookie" "^0.5.1"
+ cookie "^0.5.0"
+ devalue "^4.2.3"
+ esm-env "^1.0.0"
+ kleur "^4.1.5"
+ magic-string "^0.27.0"
+ mime "^3.0.0"
+ sade "^1.8.1"
+ set-cookie-parser "^2.5.1"
+ sirv "^2.0.2"
tiny-glob "^0.2.9"
+ undici "5.16.0"
-"@sveltejs/kit@1.0.0-next.260":
- version "1.0.0-next.260"
- resolved "https://registry.yarnpkg.com/@sveltejs/kit/-/kit-1.0.0-next.260.tgz#3e3c26f59c439744db54a48742ee07ac071114db"
- integrity sha512-0EEkGD0BpZdgRm9UoOnldS8iDFFhT2ixN3oQ/9DblGKNo7cz/FEQmKoYYIOOVYI3XyurwccWORPEpTTA4l9Oew==
+"@sveltejs/vite-plugin-svelte@^2.0.0":
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.0.2.tgz#943090239a31b2e0546837ff7649b73aeb46614c"
+ integrity sha512-xCEan0/NNpQuL0l5aS42FjwQ6wwskdxC3pW1OeFtEKNZwRg7Evro9lac9HesGP6TdFsTv2xMes5ASQVKbCacxg==
dependencies:
- "@sveltejs/vite-plugin-svelte" "^1.0.0-next.32"
- sade "^1.7.4"
- vite "^2.7.2"
+ debug "^4.3.4"
+ deepmerge "^4.2.2"
+ kleur "^4.1.5"
+ magic-string "^0.27.0"
+ svelte-hmr "^0.15.1"
+ vitefu "^0.2.3"
-"@sveltejs/vite-plugin-svelte@^1.0.0-next.32":
- version "1.0.0-next.34"
- resolved "https://registry.yarnpkg.com/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-1.0.0-next.34.tgz#24150ba572652cb3abdfc1205d6aae2326cc93b4"
- integrity sha512-qZH2jndijrdkvevgbO7OH3iQsviM5Kz7h5APiNP4yEMZTrwq9bifzYvco6BprwtPvLb5wYlRVFZUOdusY6AovQ==
+"@testing-library/dom@^8.1.0":
+ version "8.14.0"
+ resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.14.0.tgz#c9830a21006d87b9ef6e1aae306cf49b0283e28e"
+ integrity sha512-m8FOdUo77iMTwVRCyzWcqxlEIk+GnopbrRI15a0EaLbpZSCinIVI4kSQzWhkShK83GogvEFJSsHF3Ws0z1vrqA==
dependencies:
- "@rollup/pluginutils" "^4.1.2"
- debug "^4.3.3"
- kleur "^4.1.4"
- magic-string "^0.25.7"
- require-relative "^0.8.7"
- svelte-hmr "^0.14.9"
+ "@babel/code-frame" "^7.10.4"
+ "@babel/runtime" "^7.12.5"
+ "@types/aria-query" "^4.2.0"
+ aria-query "^5.0.0"
+ chalk "^4.1.0"
+ dom-accessibility-api "^0.5.9"
+ lz-string "^1.4.4"
+ pretty-format "^27.0.2"
+
+"@testing-library/jest-dom@5.16.5":
+ version "5.16.5"
+ resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.16.5.tgz#3912846af19a29b2dbf32a6ae9c31ef52580074e"
+ integrity sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA==
+ dependencies:
+ "@adobe/css-tools" "^4.0.1"
+ "@babel/runtime" "^7.9.2"
+ "@types/testing-library__jest-dom" "^5.9.1"
+ aria-query "^5.0.0"
+ chalk "^3.0.0"
+ css.escape "^1.5.1"
+ dom-accessibility-api "^0.5.6"
+ lodash "^4.17.15"
+ redent "^3.0.0"
+
+"@testing-library/svelte@3.2.2":
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/@testing-library/svelte/-/svelte-3.2.2.tgz#aa8ca6bde3136593c5f8b4554e3634d7adc9bdc5"
+ integrity sha512-IKwZgqbekC3LpoRhSwhd0JswRGxKdAGkf39UiDXTywK61YyLXbCYoR831e/UUC6EeNW4hiHPY+2WuovxOgI5sw==
+ dependencies:
+ "@testing-library/dom" "^8.1.0"
+
+"@tootallnate/once@2":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf"
+ integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==
"@trysound/sax@0.2.0":
version "0.2.0"
resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad"
integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==
-"@types/json-schema@^7.0.7":
- version "7.0.8"
- resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.8.tgz"
- integrity sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg==
+"@types/aria-query@^4.2.0":
+ version "4.2.2"
+ resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.2.tgz#ed4e0ad92306a704f9fb132a0cfcf77486dbe2bc"
+ integrity sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig==
-"@types/mermaid@^8.2.7":
- version "8.2.7"
- resolved "https://registry.npmjs.org/@types/mermaid/-/mermaid-8.2.7.tgz"
- integrity sha512-fHgKYloGociOIEftp1IXWEktRZOw4qhEWWZe4a8RKd0AIuhj70its8VV3+sM1DmaWRLPW9rbVD83JR0XJzEh8g==
+"@types/chai-subset@^1.3.3":
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/@types/chai-subset/-/chai-subset-1.3.3.tgz#97893814e92abd2c534de422cb377e0e0bdaac94"
+ integrity sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==
+ dependencies:
+ "@types/chai" "*"
+
+"@types/chai@*":
+ version "4.3.3"
+ resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.3.tgz#3c90752792660c4b562ad73b3fbd68bf3bc7ae07"
+ integrity sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g==
+
+"@types/chai@^4.3.4":
+ version "4.3.4"
+ resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.4.tgz#e913e8175db8307d78b4e8fa690408ba6b65dee4"
+ integrity sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==
+
+"@types/cookie@^0.5.1":
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.5.1.tgz#b29aa1f91a59f35e29ff8f7cb24faf1a3a750554"
+ integrity sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==
+
+"@types/istanbul-lib-coverage@^2.0.1":
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44"
+ integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==
+
+"@types/jest@*":
+ version "28.1.4"
+ resolved "https://registry.yarnpkg.com/@types/jest/-/jest-28.1.4.tgz#a11ee6c8fd0b52c19c9c18138b78bbcc201dad5a"
+ integrity sha512-telv6G5N7zRJiLcI3Rs3o+ipZ28EnE+7EvF0pSrt2pZOMnAVI/f+6/LucDxOvcBcTeTL3JMF744BbVQAVBUQRA==
+ dependencies:
+ jest-matcher-utils "^28.0.0"
+ pretty-format "^28.0.0"
+
+"@types/json-schema@^7.0.9":
+ version "7.0.11"
+ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3"
+ integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==
"@types/node@*":
version "15.0.2"
@@ -260,15 +531,10 @@
resolved "https://registry.npmjs.org/@types/node/-/node-14.17.0.tgz"
integrity sha512-w8VZUN/f7SSbvVReb9SWp6cJFevxb4/nkG65yLAya//98WgocKm5PLDAtSs5CtJJJM+kHmJjO/6mmYW4MHShZA==
-"@types/pako@^1.0.3":
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/@types/pako/-/pako-1.0.3.tgz#2e61c2b02020b5f44e2e5e946dfac74f4ec33c58"
- integrity sha512-EDxOsHAD5dqjbjEUM1xwa7rpKPFb8ECBE5irONTQU7/OsO3thI5YrNEWSPNMvYmvFM0l/OLQJ6Mgw7PEdXSjhg==
-
-"@types/parse-json@^4.0.0":
- version "4.0.0"
- resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz"
- integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
+"@types/pako@2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@types/pako/-/pako-2.0.0.tgz#12ab4c19107528452e73ac99132c875ccd43bdfb"
+ integrity sha512-10+iaz93qR5WYxTo+PMifD5TSxiOtdRaxBf7INGGXMQgTCu8Z/7GYWYFUOS3q/G0nE5boj1r4FEB+WSy7s5gbA==
"@types/pug@^2.0.4":
version "2.0.4"
@@ -282,6 +548,11 @@
dependencies:
"@types/node" "*"
+"@types/semver@^7.3.12":
+ version "7.3.12"
+ resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.12.tgz#920447fdd78d76b19de0438b7f60df3c4a80bf1c"
+ integrity sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A==
+
"@types/sinonjs__fake-timers@8.1.1":
version "8.1.1"
resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz#b49c2c70150141a15e0fa7e79cf1f92a72934ce3"
@@ -292,6 +563,18 @@
resolved "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.3.tgz"
integrity sha512-JYM8x9EGF163bEyhdJBpR2QX1R5naCJHC8ucJylJ3w9/CVBaskdQ8WqBf8MmQrd1kRvp/a4TS8HJ+bxzR7ZJYQ==
+"@types/testing-library__jest-dom@^5.9.1":
+ version "5.14.5"
+ resolved "https://registry.yarnpkg.com/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.5.tgz#d113709c90b3c75fdb127ec338dad7d5f86c974f"
+ integrity sha512-SBwbxYoyPIvxHbeHxTZX2Pe/74F/tX2/D3mMvzabdeJ25bBojfW0TyB8BHrbq/9zaaKICJZjLP+8r6AeZMFCuQ==
+ dependencies:
+ "@types/jest" "*"
+
+"@types/uuid@8.3.4":
+ version "8.3.4"
+ resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc"
+ integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==
+
"@types/yauzl@^2.9.1":
version "2.9.1"
resolved "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.1.tgz"
@@ -299,97 +582,213 @@
dependencies:
"@types/node" "*"
-"@typescript-eslint/eslint-plugin@^4.33.0":
- version "4.33.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz#c24dc7c8069c7706bc40d99f6fa87edcb2005276"
- integrity sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==
+"@typescript-eslint/eslint-plugin@5.49.0":
+ version "5.49.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.49.0.tgz#d0b4556f0792194bf0c2fb297897efa321492389"
+ integrity sha512-IhxabIpcf++TBaBa1h7jtOWyon80SXPRLDq0dVz5SLFC/eW6tofkw/O7Ar3lkx5z5U6wzbKDrl2larprp5kk5Q==
dependencies:
- "@typescript-eslint/experimental-utils" "4.33.0"
- "@typescript-eslint/scope-manager" "4.33.0"
- debug "^4.3.1"
- functional-red-black-tree "^1.0.1"
- ignore "^5.1.8"
- regexpp "^3.1.0"
- semver "^7.3.5"
+ "@typescript-eslint/scope-manager" "5.49.0"
+ "@typescript-eslint/type-utils" "5.49.0"
+ "@typescript-eslint/utils" "5.49.0"
+ debug "^4.3.4"
+ ignore "^5.2.0"
+ natural-compare-lite "^1.4.0"
+ regexpp "^3.2.0"
+ semver "^7.3.7"
tsutils "^3.21.0"
-"@typescript-eslint/experimental-utils@4.33.0":
- version "4.33.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz#6f2a786a4209fa2222989e9380b5331b2810f7fd"
- integrity sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==
+"@typescript-eslint/parser@5.49.0":
+ version "5.49.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.49.0.tgz#d699734b2f20e16351e117417d34a2bc9d7c4b90"
+ integrity sha512-veDlZN9mUhGqU31Qiv2qEp+XrJj5fgZpJ8PW30sHU+j/8/e5ruAhLaVDAeznS7A7i4ucb/s8IozpDtt9NqCkZg==
dependencies:
- "@types/json-schema" "^7.0.7"
- "@typescript-eslint/scope-manager" "4.33.0"
- "@typescript-eslint/types" "4.33.0"
- "@typescript-eslint/typescript-estree" "4.33.0"
+ "@typescript-eslint/scope-manager" "5.49.0"
+ "@typescript-eslint/types" "5.49.0"
+ "@typescript-eslint/typescript-estree" "5.49.0"
+ debug "^4.3.4"
+
+"@typescript-eslint/scope-manager@5.48.2":
+ version "5.48.2"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.48.2.tgz#bb7676cb78f1e94921eaab637a4b5d596f838abc"
+ integrity sha512-zEUFfonQid5KRDKoI3O+uP1GnrFd4tIHlvs+sTJXiWuypUWMuDaottkJuR612wQfOkjYbsaskSIURV9xo4f+Fw==
+ dependencies:
+ "@typescript-eslint/types" "5.48.2"
+ "@typescript-eslint/visitor-keys" "5.48.2"
+
+"@typescript-eslint/scope-manager@5.49.0":
+ version "5.49.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.49.0.tgz#81b5d899cdae446c26ddf18bd47a2f5484a8af3e"
+ integrity sha512-clpROBOiMIzpbWNxCe1xDK14uPZh35u4QaZO1GddilEzoCLAEz4szb51rBpdgurs5k2YzPtJeTEN3qVbG+LRUQ==
+ dependencies:
+ "@typescript-eslint/types" "5.49.0"
+ "@typescript-eslint/visitor-keys" "5.49.0"
+
+"@typescript-eslint/type-utils@5.49.0":
+ version "5.49.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.49.0.tgz#8d5dcc8d422881e2ccf4ebdc6b1d4cc61aa64125"
+ integrity sha512-eUgLTYq0tR0FGU5g1YHm4rt5H/+V2IPVkP0cBmbhRyEmyGe4XvJ2YJ6sYTmONfjmdMqyMLad7SB8GvblbeESZA==
+ dependencies:
+ "@typescript-eslint/typescript-estree" "5.49.0"
+ "@typescript-eslint/utils" "5.49.0"
+ debug "^4.3.4"
+ tsutils "^3.21.0"
+
+"@typescript-eslint/types@5.48.2":
+ version "5.48.2"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.48.2.tgz#635706abb1ec164137f92148f06f794438c97b8e"
+ integrity sha512-hE7dA77xxu7ByBc6KCzikgfRyBCTst6dZQpwaTy25iMYOnbNljDT4hjhrGEJJ0QoMjrfqrx+j1l1B9/LtKeuqA==
+
+"@typescript-eslint/types@5.49.0":
+ version "5.49.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.49.0.tgz#ad66766cb36ca1c89fcb6ac8b87ec2e6dac435c3"
+ integrity sha512-7If46kusG+sSnEpu0yOz2xFv5nRz158nzEXnJFCGVEHWnuzolXKwrH5Bsf9zsNlOQkyZuk0BZKKoJQI+1JPBBg==
+
+"@typescript-eslint/typescript-estree@5.48.2":
+ version "5.48.2"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.48.2.tgz#6e206b462942b32383582a6c9251c05021cc21b0"
+ integrity sha512-bibvD3z6ilnoVxUBFEgkO0k0aFvUc4Cttt0dAreEr+nrAHhWzkO83PEVVuieK3DqcgL6VAK5dkzK8XUVja5Zcg==
+ dependencies:
+ "@typescript-eslint/types" "5.48.2"
+ "@typescript-eslint/visitor-keys" "5.48.2"
+ debug "^4.3.4"
+ globby "^11.1.0"
+ is-glob "^4.0.3"
+ semver "^7.3.7"
+ tsutils "^3.21.0"
+
+"@typescript-eslint/typescript-estree@5.49.0":
+ version "5.49.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.49.0.tgz#ebd6294c0ea97891fce6af536048181e23d729c8"
+ integrity sha512-PBdx+V7deZT/3GjNYPVQv1Nc0U46dAHbIuOG8AZ3on3vuEKiPDwFE/lG1snN2eUB9IhF7EyF7K1hmTcLztNIsA==
+ dependencies:
+ "@typescript-eslint/types" "5.49.0"
+ "@typescript-eslint/visitor-keys" "5.49.0"
+ debug "^4.3.4"
+ globby "^11.1.0"
+ is-glob "^4.0.3"
+ semver "^7.3.7"
+ tsutils "^3.21.0"
+
+"@typescript-eslint/utils@5.49.0":
+ version "5.49.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.49.0.tgz#1c07923bc55ff7834dfcde487fff8d8624a87b32"
+ integrity sha512-cPJue/4Si25FViIb74sHCLtM4nTSBXtLx1d3/QT6mirQ/c65bV8arBEebBJJizfq8W2YyMoPI/WWPFWitmNqnQ==
+ dependencies:
+ "@types/json-schema" "^7.0.9"
+ "@types/semver" "^7.3.12"
+ "@typescript-eslint/scope-manager" "5.49.0"
+ "@typescript-eslint/types" "5.49.0"
+ "@typescript-eslint/typescript-estree" "5.49.0"
eslint-scope "^5.1.1"
eslint-utils "^3.0.0"
+ semver "^7.3.7"
-"@typescript-eslint/parser@^4.33.0":
- version "4.33.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.33.0.tgz#dfe797570d9694e560528d18eecad86c8c744899"
- integrity sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==
+"@typescript-eslint/utils@^5.48.1":
+ version "5.48.2"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.48.2.tgz#3777a91dcb22b8499a25519e06eef2e9569295a3"
+ integrity sha512-2h18c0d7jgkw6tdKTlNaM7wyopbLRBiit8oAxoP89YnuBOzCZ8g8aBCaCqq7h208qUTroL7Whgzam7UY3HVLow==
dependencies:
- "@typescript-eslint/scope-manager" "4.33.0"
- "@typescript-eslint/types" "4.33.0"
- "@typescript-eslint/typescript-estree" "4.33.0"
- debug "^4.3.1"
+ "@types/json-schema" "^7.0.9"
+ "@types/semver" "^7.3.12"
+ "@typescript-eslint/scope-manager" "5.48.2"
+ "@typescript-eslint/types" "5.48.2"
+ "@typescript-eslint/typescript-estree" "5.48.2"
+ eslint-scope "^5.1.1"
+ eslint-utils "^3.0.0"
+ semver "^7.3.7"
-"@typescript-eslint/scope-manager@4.33.0":
- version "4.33.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3"
- integrity sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==
+"@typescript-eslint/visitor-keys@5.48.2":
+ version "5.48.2"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.48.2.tgz#c247582a0bcce467461d7b696513bf9455000060"
+ integrity sha512-z9njZLSkwmjFWUelGEwEbdf4NwKvfHxvGC0OcGN1Hp/XNDIcJ7D5DpPNPv6x6/mFvc1tQHsaWmpD/a4gOvvCJQ==
dependencies:
- "@typescript-eslint/types" "4.33.0"
- "@typescript-eslint/visitor-keys" "4.33.0"
+ "@typescript-eslint/types" "5.48.2"
+ eslint-visitor-keys "^3.3.0"
-"@typescript-eslint/types@4.33.0":
- version "4.33.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72"
- integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==
-
-"@typescript-eslint/typescript-estree@4.33.0":
- version "4.33.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609"
- integrity sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==
+"@typescript-eslint/visitor-keys@5.49.0":
+ version "5.49.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.49.0.tgz#2561c4da3f235f5c852759bf6c5faec7524f90fe"
+ integrity sha512-v9jBMjpNWyn8B6k/Mjt6VbUS4J1GvUlR4x3Y+ibnP1z7y7V4n0WRz+50DY6+Myj0UaXVSuUlHohO+eZ8IJEnkg==
dependencies:
- "@typescript-eslint/types" "4.33.0"
- "@typescript-eslint/visitor-keys" "4.33.0"
- debug "^4.3.1"
- globby "^11.0.3"
- is-glob "^4.0.1"
- semver "^7.3.5"
- tsutils "^3.21.0"
+ "@typescript-eslint/types" "5.49.0"
+ eslint-visitor-keys "^3.3.0"
-"@typescript-eslint/visitor-keys@4.33.0":
- version "4.33.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd"
- integrity sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==
+"@vitest/expect@0.28.3":
+ version "0.28.3"
+ resolved "https://registry.yarnpkg.com/@vitest/expect/-/expect-0.28.3.tgz#8cd570b662e709f56ba29835879890c87429a194"
+ integrity sha512-dnxllhfln88DOvpAK1fuI7/xHwRgTgR4wdxHldPaoTaBu6Rh9zK5b//v/cjTkhOfNP/AJ8evbNO8H7c3biwd1g==
dependencies:
- "@typescript-eslint/types" "4.33.0"
- eslint-visitor-keys "^2.0.0"
+ "@vitest/spy" "0.28.3"
+ "@vitest/utils" "0.28.3"
+ chai "^4.3.7"
-"@ungap/promise-all-settled@1.1.2":
- version "1.1.2"
- resolved "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz"
- integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==
+"@vitest/runner@0.28.3":
+ version "0.28.3"
+ resolved "https://registry.yarnpkg.com/@vitest/runner/-/runner-0.28.3.tgz#a59bc7a1457957291b6bf1964831284768168314"
+ integrity sha512-P0qYbATaemy1midOLkw7qf8jraJszCoEvjQOSlseiXZyEDaZTZ50J+lolz2hWiWv6RwDu1iNseL9XLsG0Jm2KQ==
+ dependencies:
+ "@vitest/utils" "0.28.3"
+ p-limit "^4.0.0"
+ pathe "^1.1.0"
+
+"@vitest/spy@0.28.3":
+ version "0.28.3"
+ resolved "https://registry.yarnpkg.com/@vitest/spy/-/spy-0.28.3.tgz#6f6f7ecdeefecb023a96e69b6083e0314ea6f04c"
+ integrity sha512-jULA6suS6CCr9VZfr7/9x97pZ0hC55prnUNHNrg5/q16ARBY38RsjsfhuUXt6QOwvIN3BhSS0QqPzyh5Di8g6w==
+ dependencies:
+ tinyspy "^1.0.2"
+
+"@vitest/ui@^0.28.0":
+ version "0.28.3"
+ resolved "https://registry.yarnpkg.com/@vitest/ui/-/ui-0.28.3.tgz#3098f3cd3aed83fa36d0547e244b4702ddb385a1"
+ integrity sha512-pbr9VySq2PJhaQP06Fq9c6Ra1wSUY1gnNEVhuwVU1yhqz78WdsO3rqREu7GSqEpAr6oZfwpBOUVzW87C2lNGYw==
+ dependencies:
+ fast-glob "^3.2.12"
+ flatted "^3.2.7"
+ pathe "^1.1.0"
+ picocolors "^1.0.0"
+ sirv "^2.0.2"
+
+"@vitest/utils@0.28.3":
+ version "0.28.3"
+ resolved "https://registry.yarnpkg.com/@vitest/utils/-/utils-0.28.3.tgz#75c076d4fdde5c48ee5de2808c83d615fc74d4ef"
+ integrity sha512-YHiQEHQqXyIbhDqETOJUKx9/psybF7SFFVCNfOvap0FvyUqbzTSDCa3S5lL4C0CLXkwVZttz9xknDoyHMguFRQ==
+ dependencies:
+ cli-truncate "^3.1.0"
+ diff "^5.1.0"
+ loupe "^2.3.6"
+ picocolors "^1.0.0"
+ pretty-format "^27.5.1"
"@wildpeaks/snapshot-dom@1.6.0":
version "1.6.0"
resolved "https://registry.npmjs.org/@wildpeaks/snapshot-dom/-/snapshot-dom-1.6.0.tgz"
integrity sha512-fCM5tYK6VZ1nhbk3Q11lkf6UOJlOCRU0oScQ8NV8OYBPC58wQmQaOF9g+rk+yhNYf3beybOBr+ZuiNen3B0Bxw==
+abab@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291"
+ integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==
+
abbrev@1:
version "1.1.1"
resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz"
integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
-acorn-jsx@^5.3.1:
+acorn-globals@^7.0.0:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-7.0.1.tgz#0dbf05c44fa7c94332914c02066d5beff62c40c3"
+ integrity sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==
+ dependencies:
+ acorn "^8.1.0"
+ acorn-walk "^8.0.2"
+
+acorn-jsx@^5.3.2:
version "5.3.2"
- resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz"
+ resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
-acorn-node@^1.6.1:
+acorn-node@^1.8.2:
version "1.8.2"
resolved "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz"
integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==
@@ -403,11 +802,33 @@ acorn-walk@^7.0.0:
resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz"
integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
-acorn@^7.0.0, acorn@^7.4.0:
+acorn-walk@^8.0.2, acorn-walk@^8.2.0:
+ version "8.2.0"
+ resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1"
+ integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==
+
+acorn@^7.0.0:
version "7.4.1"
resolved "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz"
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
+acorn@^8.1.0, acorn@^8.8.0:
+ version "8.8.0"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8"
+ integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==
+
+acorn@^8.8.1:
+ version "8.8.1"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73"
+ integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==
+
+agent-base@6:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
+ integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==
+ dependencies:
+ debug "4"
+
aggregate-error@^3.0.0:
version "3.1.0"
resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz"
@@ -416,7 +837,7 @@ aggregate-error@^3.0.0:
clean-stack "^2.0.0"
indent-string "^4.0.0"
-ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4:
+ajv@^6.10.0, ajv@^6.12.4:
version "6.12.6"
resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
@@ -426,45 +847,51 @@ ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4:
json-schema-traverse "^0.4.1"
uri-js "^4.2.2"
-ajv@^8.0.1:
- version "8.3.0"
- resolved "https://registry.npmjs.org/ajv/-/ajv-8.3.0.tgz"
- integrity sha512-RYE7B5An83d7eWnDR8kbdaIFqmKCNsP16ay1hDbJEU+sa0e3H9SebskCt0Uufem6cfAVu7Col6ubcn/W+Sm8/Q==
- dependencies:
- fast-deep-equal "^3.1.1"
- json-schema-traverse "^1.0.0"
- require-from-string "^2.0.2"
- uri-js "^4.2.2"
-
am-i-a-dependency@1.1.2:
version "1.1.2"
resolved "https://registry.npmjs.org/am-i-a-dependency/-/am-i-a-dependency-1.1.2.tgz"
integrity sha1-+dNCIwTW9kL4IeTEB1ZQNfYWfx8=
-analytics-utils@^1.0.9:
- version "1.0.9"
- resolved "https://registry.yarnpkg.com/analytics-utils/-/analytics-utils-1.0.9.tgz#e37667321f53ac0d346777d3c31a4df1124ef2d4"
- integrity sha512-X1Vy4/iWer8ebdJ4p6rAAyFxa2NOgRI7wvge2x3K2gj++Ubb1YucfYC4pWVlPWLA2KZD8KVTHqPvoHOi2QjhWg==
+analytics-plugin-plausible@0.0.6:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/analytics-plugin-plausible/-/analytics-plugin-plausible-0.0.6.tgz#22595821f1d201cb2e58dde2bb688d78fae78725"
+ integrity sha512-gXeoJo85JLO91DckbPq23jn/QJW4vg1hA/bRcAbcAo5D6u6JUIg/rG6Ecwkk75sPefnGFIZ6qGHIoz1b2wFK9w==
dependencies:
- "@analytics/type-utils" "^0.5.4"
+ analytics "^0.7.5"
+ plausible-tracker "^0.3.1"
+
+analytics-utils@^1.0.10, analytics-utils@^1.0.9:
+ version "1.0.10"
+ resolved "https://registry.yarnpkg.com/analytics-utils/-/analytics-utils-1.0.10.tgz#e44078176c67005e5b11aae1dc538202744a5ca5"
+ integrity sha512-ZKYKhip7Sf09qE85l4vZMBPR3fz6ISUTlwzkWSwJHbzLLzP5qrWQtcQlBcP9Pah7BMNSq8pqho+PX4ZKB014Yg==
+ dependencies:
+ "@analytics/type-utils" "^0.6.0"
dlv "^1.1.3"
-analytics@^0.8.0:
- version "0.8.0"
- resolved "https://registry.yarnpkg.com/analytics/-/analytics-0.8.0.tgz#b47c5e5b6a11652cb865232bbee77e19b3d2f472"
- integrity sha512-ycDNi0xrlFOxi9mtFIsP3QAOfWZ6hzuetL82Dhfq4MGOqJMPkoWG0mDEEHYbbFlLsu3WQRlcLF2VU3K/qZP3Zw==
+analytics@0.8.1:
+ version "0.8.1"
+ resolved "https://registry.yarnpkg.com/analytics/-/analytics-0.8.1.tgz#e8ed0d5e729e666c1ab64dc5bdaa5f8231f05a1b"
+ integrity sha512-mXOe8zTGDfiYqw9MZsgul8HrOBmHsIwk/0xbrkGZr75yvWqAcyKfZA0WjOalwI9tzIKv8WNfHV5yhnrtQcXJpw==
dependencies:
- "@analytics/core" "^0.11.0"
+ "@analytics/core" "^0.11.1"
+ "@analytics/storage-utils" "^0.4.0"
+
+analytics@^0.7.5:
+ version "0.7.23"
+ resolved "https://registry.yarnpkg.com/analytics/-/analytics-0.7.23.tgz#cff8d43c67fa851229232bc251e58a27e2f863eb"
+ integrity sha512-9zujZOUmDnRGRNoKIXwongMlOV1Odi+5ftRpfTPlYYQfX7Kl6ttSaP2caFQhKr5SenSCW2RMIxiLzX+LynE7sw==
+ dependencies:
+ "@analytics/core" "^0.10.23"
"@analytics/storage-utils" "^0.3.0"
-ansi-colors@4.1.1, ansi-colors@^4.1.1:
+ansi-colors@^4.1.1:
version "4.1.1"
resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz"
integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
ansi-escapes@^4.3.0:
version "4.3.2"
- resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz"
+ resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e"
integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==
dependencies:
type-fest "^0.21.3"
@@ -479,10 +906,10 @@ ansi-regex@^4.1.0:
resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz"
integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
-ansi-regex@^5.0.0:
- version "5.0.0"
- resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz"
- integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
+ansi-regex@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
+ integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
ansi-regex@^6.0.1:
version "6.0.1"
@@ -508,6 +935,11 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0:
dependencies:
color-convert "^2.0.1"
+ansi-styles@^5.0.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b"
+ integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==
+
ansi-styles@^6.0.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.1.0.tgz#87313c102b8118abd57371afab34618bf7350ed3"
@@ -526,23 +958,21 @@ arch@^2.2.0:
resolved "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz"
integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==
-arg@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.1.tgz#eb0c9a8f77786cad2af8ff2b862899842d7b6adb"
- integrity sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==
-
-argparse@^1.0.7:
- version "1.0.10"
- resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz"
- integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
- dependencies:
- sprintf-js "~1.0.2"
+arg@^5.0.2:
+ version "5.0.2"
+ resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c"
+ integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==
argparse@^2.0.1:
version "2.0.1"
- resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
+aria-query@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.0.0.tgz#210c21aaf469613ee8c9a62c7f86525e058db52c"
+ integrity sha512-V+SM7AbUwJ+EBnB8+DXs0hPZHO0W6pqBcc0dW90OwtVG02PswOu/teuARoLQjdDOH+t9pJgGnW5/Qmouf3gPJg==
+
array-union@^2.1.0:
version "2.1.0"
resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz"
@@ -571,9 +1001,9 @@ astral-regex@^2.0.0:
integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
async@^3.2.0:
- version "3.2.0"
- resolved "https://registry.npmjs.org/async/-/async-3.2.0.tgz"
- integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==
+ version "3.2.3"
+ resolved "https://registry.yarnpkg.com/async/-/async-3.2.3.tgz#ac53dafd3f4720ee9e8a160628f18ea91df196c9"
+ integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==
asynckit@^0.4.0:
version "0.4.0"
@@ -585,14 +1015,14 @@ at-least-node@^1.0.0:
resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz"
integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
-autoprefixer@^10.4.2:
- version "10.4.2"
- resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.2.tgz#25e1df09a31a9fba5c40b578936b90d35c9d4d3b"
- integrity sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ==
+autoprefixer@^10.4.13:
+ version "10.4.13"
+ resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.13.tgz#b5136b59930209a321e9fa3dca2e7c4d223e83a8"
+ integrity sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==
dependencies:
- browserslist "^4.19.1"
- caniuse-lite "^1.0.30001297"
- fraction.js "^4.1.2"
+ browserslist "^4.21.4"
+ caniuse-lite "^1.0.30001426"
+ fraction.js "^4.2.0"
normalize-range "^0.1.2"
picocolors "^1.0.0"
postcss-value-parser "^4.2.0"
@@ -659,39 +1089,43 @@ brace-expansion@^1.1.7:
balanced-match "^1.0.0"
concat-map "0.0.1"
-braces@^3.0.1, braces@~3.0.2:
+braces@^3.0.2, braces@~3.0.2:
version "3.0.2"
resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz"
integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
dependencies:
fill-range "^7.0.1"
-browser-cookies@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/browser-cookies/-/browser-cookies-1.2.0.tgz#fca3ffb9b6a63aadc4d8c0999c6b57d0fa7d29b5"
- integrity sha1-/KP/ubamOq3E2MCZnGtX0Pp9KbU=
-
-browser-stdout@1.3.1:
- version "1.3.1"
- resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz"
- integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==
-
-browserslist@^4.0.0, browserslist@^4.16.6, browserslist@^4.19.1:
- version "4.19.1"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3"
- integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==
+browserslist@^4.0.0, browserslist@^4.16.6:
+ version "4.21.3"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.3.tgz#5df277694eb3c48bc5c4b05af3e8b7e09c5a6d1a"
+ integrity sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==
dependencies:
- caniuse-lite "^1.0.30001286"
- electron-to-chromium "^1.4.17"
- escalade "^3.1.1"
- node-releases "^2.0.1"
- picocolors "^1.0.0"
+ caniuse-lite "^1.0.30001370"
+ electron-to-chromium "^1.4.202"
+ node-releases "^2.0.6"
+ update-browserslist-db "^1.0.5"
+
+browserslist@^4.21.4:
+ version "4.21.4"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987"
+ integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==
+ dependencies:
+ caniuse-lite "^1.0.30001400"
+ electron-to-chromium "^1.4.251"
+ node-releases "^2.0.6"
+ update-browserslist-db "^1.0.9"
buffer-crc32@^0.2.5, buffer-crc32@~0.2.3:
version "0.2.13"
resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz"
integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=
+buffer-from@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
+ integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
+
buffer@^5.6.0:
version "5.7.1"
resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
@@ -700,6 +1134,36 @@ buffer@^5.6.0:
base64-js "^1.3.1"
ieee754 "^1.1.13"
+busboy@^1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893"
+ integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==
+ dependencies:
+ streamsearch "^1.1.0"
+
+c8@7.12.0:
+ version "7.12.0"
+ resolved "https://registry.yarnpkg.com/c8/-/c8-7.12.0.tgz#402db1c1af4af5249153535d1c84ad70c5c96b14"
+ integrity sha512-CtgQrHOkyxr5koX1wEUmN/5cfDa2ckbHRA4Gy5LAL0zaCFtVWJS5++n+w4/sr2GWGerBxgTjpKeDclk/Qk6W/A==
+ dependencies:
+ "@bcoe/v8-coverage" "^0.2.3"
+ "@istanbuljs/schema" "^0.1.3"
+ find-up "^5.0.0"
+ foreground-child "^2.0.0"
+ istanbul-lib-coverage "^3.2.0"
+ istanbul-lib-report "^3.0.0"
+ istanbul-reports "^3.1.4"
+ rimraf "^3.0.2"
+ test-exclude "^6.0.0"
+ v8-to-istanbul "^9.0.0"
+ yargs "^16.2.0"
+ yargs-parser "^20.2.9"
+
+cac@^6.7.14:
+ version "6.7.14"
+ resolved "https://registry.yarnpkg.com/cac/-/cac-6.7.14.tgz#804e1e6f506ee363cb0e3ccbb09cad5dd9870959"
+ integrity sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==
+
cachedir@^2.3.0:
version "2.3.0"
resolved "https://registry.npmjs.org/cachedir/-/cachedir-2.3.0.tgz"
@@ -730,24 +1194,24 @@ caniuse-api@^3.0.0:
lodash.memoize "^4.1.2"
lodash.uniq "^4.5.0"
-caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001286, caniuse-lite@^1.0.30001297:
- version "1.0.30001300"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001300.tgz#11ab6c57d3eb6f964cba950401fd00a146786468"
- integrity sha512-cVjiJHWGcNlJi8TZVKNMnvMid3Z3TTdDHmLDzlOdIiZq138Exvo0G+G0wTdVYolxKb4AYwC+38pxodiInVtJSA==
+caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001370, caniuse-lite@^1.0.30001400, caniuse-lite@^1.0.30001426:
+ version "1.0.30001439"
+ resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001439.tgz"
+ integrity sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A==
caseless@~0.12.0:
version "0.12.0"
resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"
integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
-chai@^4.3.6:
- version "4.3.6"
- resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.6.tgz#ffe4ba2d9fa9d6680cc0b370adae709ec9011e9c"
- integrity sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==
+chai@^4.3.7:
+ version "4.3.7"
+ resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.7.tgz#ec63f6df01829088e8bf55fca839bcd464a8ec51"
+ integrity sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==
dependencies:
assertion-error "^1.1.0"
check-error "^1.0.2"
- deep-eql "^3.0.1"
+ deep-eql "^4.1.2"
get-func-name "^2.0.0"
loupe "^2.3.1"
pathval "^1.1.1"
@@ -755,8 +1219,8 @@ chai@^4.3.6:
chalk@^1.1.1:
version "1.1.3"
- resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz"
- integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
+ integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==
dependencies:
ansi-styles "^2.2.1"
escape-string-regexp "^1.0.2"
@@ -766,14 +1230,22 @@ chalk@^1.1.1:
chalk@^2.0.0:
version "2.4.2"
- resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
dependencies:
ansi-styles "^3.2.1"
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
-chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2:
+chalk@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4"
+ integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==
+ dependencies:
+ ansi-styles "^4.1.0"
+ supports-color "^7.1.0"
+
+chalk@^4.0.0, chalk@^4.1.0:
version "4.1.2"
resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz"
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
@@ -791,7 +1263,7 @@ check-more-types@2.24.0, check-more-types@^2.24.0:
resolved "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz"
integrity sha1-FCD/sQ/URNz8ebQ4kbv//TKoRgA=
-chokidar@3.5.3, chokidar@^3.5.3:
+chokidar@^3.5.3:
version "3.5.3"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
@@ -876,52 +1348,73 @@ color-name@1.1.3:
resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
-color-name@^1.1.4, color-name@~1.1.4:
+color-name@^1.0.0, color-name@^1.1.4, color-name@~1.1.4:
version "1.1.4"
resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+color-string@^1.9.0:
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.0.tgz#63b6ebd1bec11999d1df3a79a7569451ac2be8aa"
+ integrity sha512-9Mrz2AQLefkH1UvASKj6v6hj/7eWgjnT/cVsR8CumieLoT+g900exWeNogqtweI8dxloXN9BDQTYro1oWu/5CQ==
+ dependencies:
+ color-name "^1.0.0"
+ simple-swizzle "^0.2.2"
+
+color@^4.2:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/color/-/color-4.2.1.tgz#498aee5fce7fc982606c8875cab080ac0547c884"
+ integrity sha512-MFJr0uY4RvTQUKvPq7dh9grVOTYSFeXja2mBXioCGjnjJoXrAp9jJ1NQTDR73c9nwBSAQiNKloKl5zq9WB9UPw==
+ dependencies:
+ color-convert "^2.0.1"
+ color-string "^1.9.0"
+
colord@^2.9.1:
version "2.9.1"
resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.1.tgz#c961ea0efeb57c9f0f4834458f26cb9cc4a3f90e"
integrity sha512-4LBMSt09vR0uLnPVkOUBnmxgoaeN4ewRbx801wY/bXcltXfpR/G46OdWn96XpYmCWuYvO46aBZP4NgX8HpNAcw==
colorette@^2.0.16:
- version "2.0.16"
- resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.16.tgz#713b9af84fdb000139f04546bd4a93f62a5085da"
- integrity sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==
+ version "2.0.17"
+ resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.17.tgz#5dd4c0d15e2984b7433cb4a9f2ead45063b80c47"
+ integrity sha512-hJo+3Bkn0NCHybn9Tu35fIeoOKGOk5OCC32y4Hz2It+qlCO2Q3DeQ1hRn/tDDMQKRYUEzqsl7jbF6dYKjlE60g==
+
+colorette@^2.0.19:
+ version "2.0.19"
+ resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798"
+ integrity sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==
colors@1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78"
integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==
-combined-stream@^1.0.6, combined-stream@~1.0.6:
+combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6:
version "1.0.8"
resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"
integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
dependencies:
delayed-stream "~1.0.0"
-commander@2, commander@^2.19.0:
- version "2.20.3"
- resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz"
- integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
-
commander@7, commander@^7.2.0:
version "7.2.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
+commander@^2.19.0:
+ version "2.20.3"
+ resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz"
+ integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
+
commander@^5.1.0:
version "5.1.0"
resolved "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz"
integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==
-commander@^8.3.0:
- version "8.3.0"
- resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66"
- integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==
+commander@^9.4.1:
+ version "9.4.1"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-9.4.1.tgz#d1dd8f2ce6faf93147295c0df13c7c21141cfbdd"
+ integrity sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==
common-tags@^1.8.0:
version "1.8.0"
@@ -941,21 +1434,36 @@ config-chain@^1.1.12:
ini "^1.3.4"
proto-list "~1.2.1"
+convert-source-map@^1.6.0:
+ version "1.8.0"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369"
+ integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
+ dependencies:
+ safe-buffer "~5.1.1"
+
+cookie@^0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b"
+ integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==
+
core-util-is@1.0.2:
version "1.0.2"
resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
-cosmiconfig@^7.0.1:
- version "7.0.1"
- resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.1.tgz#714d756522cace867867ccb4474c5d01bbae5d6d"
- integrity sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==
+cose-base@^1.0.0:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/cose-base/-/cose-base-1.0.3.tgz#650334b41b869578a543358b80cda7e0abe0a60a"
+ integrity sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==
dependencies:
- "@types/parse-json" "^4.0.0"
- import-fresh "^3.2.1"
- parse-json "^5.0.0"
- path-type "^4.0.0"
- yaml "^1.10.0"
+ layout-base "^1.0.0"
+
+cose-base@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/cose-base/-/cose-base-2.1.0.tgz#89b2d4a59d7bd0cde3138a4689825f3e8a5abd6a"
+ integrity sha512-HTMm07dhxq1dIPGWwpiVrIk9n+DH7KYmqWA786mLe8jDS+1ZjGtJGIIsJVKoseZXS6/FxiUWCJ2B7XzqUCuhPw==
+ dependencies:
+ layout-base "^2.0.0"
cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3:
version "7.0.3"
@@ -966,23 +1474,40 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3:
shebang-command "^2.0.0"
which "^2.0.1"
-css-declaration-sorter@^6.0.3:
- version "6.0.3"
- resolved "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.0.3.tgz"
- integrity sha512-52P95mvW1SMzuRZegvpluT6yEv0FqQusydKQPZsNN5Q7hh8EwQvN8E2nwuJ16BBvNN6LcoIZXu/Bk58DAhrrxw==
- dependencies:
- timsort "^0.3.0"
+css-declaration-sorter@^6.3.1:
+ version "6.3.1"
+ resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz#be5e1d71b7a992433fb1c542c7a1b835e45682ec"
+ integrity sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==
css-select@^4.1.3:
- version "4.1.3"
- resolved "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz"
- integrity sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.2.1.tgz#9e665d6ae4c7f9d65dbe69d0316e3221fb274cdd"
+ integrity sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==
dependencies:
boolbase "^1.0.0"
- css-what "^5.0.0"
- domhandler "^4.2.0"
- domutils "^2.6.0"
- nth-check "^2.0.0"
+ css-what "^5.1.0"
+ domhandler "^4.3.0"
+ domutils "^2.8.0"
+ nth-check "^2.0.1"
+
+css-select@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6"
+ integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==
+ dependencies:
+ boolbase "^1.0.0"
+ css-what "^6.1.0"
+ domhandler "^5.0.2"
+ domutils "^3.0.1"
+ nth-check "^2.0.1"
+
+css-selector-tokenizer@^0.8.0:
+ version "0.8.0"
+ resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.8.0.tgz#88267ef6238e64f2215ea2764b3e2cf498b845dd"
+ integrity sha512-Jd6Ig3/pe62/qe5SBPTN8h8LeUg/pT4lLgtavPf7updwwHpvFzxvOQBHYj2LZDMjUnBzgvIUSjRcf6oT5HzHFg==
+ dependencies:
+ cssesc "^3.0.0"
+ fastparse "^1.1.2"
css-tree@^1.1.2, css-tree@^1.1.3:
version "1.1.3"
@@ -992,62 +1517,72 @@ css-tree@^1.1.2, css-tree@^1.1.3:
mdn-data "2.0.14"
source-map "^0.6.1"
-css-what@^5.0.0:
- version "5.0.1"
- resolved "https://registry.npmjs.org/css-what/-/css-what-5.0.1.tgz"
- integrity sha512-FYDTSHb/7KXsWICVsxdmiExPjCfRC4qRFBdVwv7Ax9hMnvMmEjP9RfxTEZ3qPZGmADDn2vAKSo9UcN1jKVYscg==
+css-what@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe"
+ integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==
+
+css-what@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4"
+ integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==
+
+css.escape@^1.5.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb"
+ integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==
cssesc@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz"
integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
-cssnano-preset-default@^5.1.12:
- version "5.1.12"
- resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.1.12.tgz#64e2ad8e27a279e1413d2d2383ef89a41c909be9"
- integrity sha512-rO/JZYyjW1QNkWBxMGV28DW7d98UDLaF759frhli58QFehZ+D/LSmwQ2z/ylBAe2hUlsIWTq6NYGfQPq65EF9w==
+cssnano-preset-default@^5.2.13:
+ version "5.2.13"
+ resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.13.tgz#e7353b0c57975d1bdd97ac96e68e5c1b8c68e990"
+ integrity sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==
dependencies:
- css-declaration-sorter "^6.0.3"
- cssnano-utils "^3.0.2"
- postcss-calc "^8.2.0"
- postcss-colormin "^5.2.5"
- postcss-convert-values "^5.0.4"
- postcss-discard-comments "^5.0.3"
- postcss-discard-duplicates "^5.0.3"
- postcss-discard-empty "^5.0.3"
- postcss-discard-overridden "^5.0.4"
- postcss-merge-longhand "^5.0.6"
- postcss-merge-rules "^5.0.6"
- postcss-minify-font-values "^5.0.4"
- postcss-minify-gradients "^5.0.6"
- postcss-minify-params "^5.0.5"
- postcss-minify-selectors "^5.1.3"
- postcss-normalize-charset "^5.0.3"
- postcss-normalize-display-values "^5.0.3"
- postcss-normalize-positions "^5.0.4"
- postcss-normalize-repeat-style "^5.0.4"
- postcss-normalize-string "^5.0.4"
- postcss-normalize-timing-functions "^5.0.3"
- postcss-normalize-unicode "^5.0.4"
- postcss-normalize-url "^5.0.5"
- postcss-normalize-whitespace "^5.0.4"
- postcss-ordered-values "^5.0.5"
- postcss-reduce-initial "^5.0.3"
- postcss-reduce-transforms "^5.0.4"
- postcss-svgo "^5.0.4"
- postcss-unique-selectors "^5.0.4"
+ css-declaration-sorter "^6.3.1"
+ cssnano-utils "^3.1.0"
+ postcss-calc "^8.2.3"
+ postcss-colormin "^5.3.0"
+ postcss-convert-values "^5.1.3"
+ postcss-discard-comments "^5.1.2"
+ postcss-discard-duplicates "^5.1.0"
+ postcss-discard-empty "^5.1.1"
+ postcss-discard-overridden "^5.1.0"
+ postcss-merge-longhand "^5.1.7"
+ postcss-merge-rules "^5.1.3"
+ postcss-minify-font-values "^5.1.0"
+ postcss-minify-gradients "^5.1.1"
+ postcss-minify-params "^5.1.4"
+ postcss-minify-selectors "^5.2.1"
+ postcss-normalize-charset "^5.1.0"
+ postcss-normalize-display-values "^5.1.0"
+ postcss-normalize-positions "^5.1.1"
+ postcss-normalize-repeat-style "^5.1.1"
+ postcss-normalize-string "^5.1.0"
+ postcss-normalize-timing-functions "^5.1.0"
+ postcss-normalize-unicode "^5.1.1"
+ postcss-normalize-url "^5.1.0"
+ postcss-normalize-whitespace "^5.1.1"
+ postcss-ordered-values "^5.1.3"
+ postcss-reduce-initial "^5.1.1"
+ postcss-reduce-transforms "^5.1.0"
+ postcss-svgo "^5.1.0"
+ postcss-unique-selectors "^5.1.1"
-cssnano-utils@^3.0.2:
- version "3.0.2"
- resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.0.2.tgz#d82b4991a27ba6fec644b39bab35fe027137f516"
- integrity sha512-KhprijuQv2sP4kT92sSQwhlK3SJTbDIsxcfIEySB0O+3m9esFOai7dP9bMx5enHAh2MwarVIcnwiWoOm01RIbQ==
+cssnano-utils@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz#95684d08c91511edfc70d2636338ca37ef3a6861"
+ integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==
-cssnano@^5.0.17:
- version "5.0.17"
- resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.0.17.tgz#ff45713c05cfc780a1aeb3e663b6f224d091cabf"
- integrity sha512-fmjLP7k8kL18xSspeXTzRhaFtRI7DL9b8IcXR80JgtnWBpvAzHT7sCR/6qdn0tnxIaINUN6OEQu83wF57Gs3Xw==
+cssnano@^5.1.14:
+ version "5.1.14"
+ resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.14.tgz#07b0af6da73641276fe5a6d45757702ebae2eb05"
+ integrity sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw==
dependencies:
- cssnano-preset-default "^5.1.12"
+ cssnano-preset-default "^5.2.13"
lilconfig "^2.0.3"
yaml "^1.10.2"
@@ -1058,15 +1593,37 @@ csso@^4.2.0:
dependencies:
css-tree "^1.1.2"
-cypress-localstorage-commands@^1.6.1:
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/cypress-localstorage-commands/-/cypress-localstorage-commands-1.6.1.tgz#22299ee8a5555037f4e42111ffb280f2e0fe7d7b"
- integrity sha512-rvXCB0iLzC3i9y91XH4N2I55NicH62gQk5z/APblCjnNR3wWTbDs8svC7GvE1fjt9AMIHSQm1RfWx037y+TciQ==
+cssom@^0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.5.0.tgz#d254fa92cd8b6fbd83811b9fbaed34663cc17c36"
+ integrity sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==
-cypress@9.4.1:
- version "9.4.1"
- resolved "https://registry.yarnpkg.com/cypress/-/cypress-9.4.1.tgz#1a4ba706435829c24b7edf350c2b059e05da9084"
- integrity sha512-+JgMG9uT+QFx97JU9kOHE3jO3+0UdkQ9H1oCBiC7A74qme7Jkdy2sYDBCPjjGczutnWnGUTMRlwiNMP/Uq6LrQ==
+cssom@~0.3.6:
+ version "0.3.8"
+ resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a"
+ integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==
+
+cssstyle@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852"
+ integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==
+ dependencies:
+ cssom "~0.3.6"
+
+cy-verify-downloads@0.1.11:
+ version "0.1.11"
+ resolved "https://registry.yarnpkg.com/cy-verify-downloads/-/cy-verify-downloads-0.1.11.tgz#9d9852066e6e6097d252872d9fbe0eacd1c1dea2"
+ integrity sha512-jR+0GKw9pGWy0lVQJDXhyZLyH2B6EOnqysKFIomf4eW2BVuzqAnuIIoC0gsY1Y7k8AUB8yPSJehUtAr2CKAF/Q==
+
+cypress-localstorage-commands@2.2.2:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/cypress-localstorage-commands/-/cypress-localstorage-commands-2.2.2.tgz#bbecb1d5b7dd3863a5ced4131acc6b878136311c"
+ integrity sha512-mONoaxoMAFOSsF+SIDx30hysD3XOY8kPLxjtORdZWDj3sJs+u03XOddTDETPIbLch0DWy5Dtyw1ou3EsFGYZAQ==
+
+cypress@11.2.0:
+ version "11.2.0"
+ resolved "https://registry.yarnpkg.com/cypress/-/cypress-11.2.0.tgz#63edef8c387b687066c5493f6f0ad7b9ced4b2b7"
+ integrity sha512-u61UGwtu7lpsNWLUma/FKNOsrjcI6wleNmda/TyKHe0dOBcVjbCPlp1N6uwFZ0doXev7f/91YDpU9bqDCFeBLA==
dependencies:
"@cypress/request" "^2.88.10"
"@cypress/xvfb" "^1.2.4"
@@ -1087,7 +1644,7 @@ cypress@9.4.1:
dayjs "^1.10.4"
debug "^4.3.2"
enquirer "^2.3.6"
- eventemitter2 "^6.4.3"
+ eventemitter2 "6.4.7"
execa "4.1.0"
executable "^4.1.1"
extract-zip "2.0.1"
@@ -1100,7 +1657,7 @@ cypress@9.4.1:
listr2 "^3.8.3"
lodash "^4.17.21"
log-symbols "^4.0.0"
- minimist "^1.2.5"
+ minimist "^1.2.6"
ospath "^1.2.2"
pretty-bytes "^5.6.0"
proxy-from-env "1.0.0"
@@ -1111,10 +1668,27 @@ cypress@9.4.1:
untildify "^4.0.0"
yauzl "^2.10.0"
-d3-array@1, d3-array@^1.1.1, d3-array@^1.2.0:
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.4.tgz#635ce4d5eea759f6f605863dbcfc30edc737f71f"
- integrity sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==
+cytoscape-cose-bilkent@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz#762fa121df9930ffeb51a495d87917c570ac209b"
+ integrity sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==
+ dependencies:
+ cose-base "^1.0.0"
+
+cytoscape-fcose@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/cytoscape-fcose/-/cytoscape-fcose-2.1.0.tgz#04c3093776ea6b71787009de641607db7d4edf55"
+ integrity sha512-Q3apPl66jf8/2sMsrCjNP247nbDkyIPjA9g5iPMMWNLZgP3/mn9aryF7EFY/oRPEpv7bKJ4jYmCoU5r5/qAc1Q==
+ dependencies:
+ cose-base "^2.0.0"
+
+cytoscape@^3.23.0:
+ version "3.23.0"
+ resolved "https://registry.yarnpkg.com/cytoscape/-/cytoscape-3.23.0.tgz#054ee05a6d0aa3b4f139382bbf2f4e5226df3c6d"
+ integrity sha512-gRZqJj/1kiAVPkrVFvz/GccxsXhF3Qwpptl32gKKypO4IlqnKBjTOu+HbXtEggSGzC5KCaHp3/F7GgENrtsFkA==
+ dependencies:
+ heap "^0.2.6"
+ lodash "^4.17.21"
"d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3:
version "3.1.1"
@@ -1123,27 +1697,18 @@ d3-array@1, d3-array@^1.1.1, d3-array@^1.2.0:
dependencies:
internmap "1 - 2"
-d3-axis@1:
- version "1.0.12"
- resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-1.0.12.tgz#cdf20ba210cfbb43795af33756886fb3638daac9"
- integrity sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ==
+d3-array@^3.2.0:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.1.tgz#39331ea706f5709417d31bbb6ec152e0328b39b3"
+ integrity sha512-gUY/qeHq/yNqqoCKNq4vtpFLdoCdvyNpWoC/KNjhGbhDuQpAM9sIQQKkXSNpXa9h5KySs/gzm7R88WkUutgwWQ==
+ dependencies:
+ internmap "1 - 2"
d3-axis@3:
version "3.0.0"
resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-3.0.0.tgz#c42a4a13e8131d637b745fc2973824cfeaf93322"
integrity sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==
-d3-brush@1:
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-1.1.6.tgz#b0a22c7372cabec128bdddf9bddc058592f89e9b"
- integrity sha512-7RW+w7HfMCPyZLifTz/UnJmI5kdkXtpCbombUSs8xniAyo0vIbrDzDwUJB6eJOgl9u5DQOt2TQlYumxzD1SvYA==
- dependencies:
- d3-dispatch "1"
- d3-drag "1"
- d3-interpolate "1"
- d3-selection "1"
- d3-transition "1"
-
d3-brush@3:
version "3.0.0"
resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-3.0.0.tgz#6f767c4ed8dcb79de7ede3e1c0f89e63ef64d31c"
@@ -1155,14 +1720,6 @@ d3-brush@3:
d3-selection "3"
d3-transition "3"
-d3-chord@1:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-1.0.6.tgz#309157e3f2db2c752f0280fedd35f2067ccbb15f"
- integrity sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA==
- dependencies:
- d3-array "1"
- d3-path "1"
-
d3-chord@3:
version "3.0.1"
resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-3.0.1.tgz#d156d61f485fce8327e6abf339cb41d8cbba6966"
@@ -1170,28 +1727,11 @@ d3-chord@3:
dependencies:
d3-path "1 - 3"
-d3-collection@1:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.7.tgz#349bd2aa9977db071091c13144d5e4f16b5b310e"
- integrity sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==
-
-d3-color@1:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.4.1.tgz#c52002bf8846ada4424d55d97982fef26eb3bc8a"
- integrity sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==
-
"d3-color@1 - 3", d3-color@3:
version "3.0.1"
resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.0.1.tgz#03316e595955d1fcd39d9f3610ad41bb90194d0a"
integrity sha512-6/SlHkDOBLyQSJ1j1Ghs82OIUXpKWlR0hCsw0XrLSQhuUPuCSmLQ1QPH98vpnQxMUQM2/gfAkUEWsupVpd9JGw==
-d3-contour@1:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-1.3.2.tgz#652aacd500d2264cb3423cee10db69f6f59bead3"
- integrity sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg==
- dependencies:
- d3-array "^1.1.1"
-
d3-contour@3:
version "3.0.1"
resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-3.0.1.tgz#2c64255d43059599cd0dba8fe4cc3d51ccdd9bbd"
@@ -1199,6 +1739,13 @@ d3-contour@3:
dependencies:
d3-array "2 - 3"
+d3-contour@4:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-4.0.0.tgz#5a1337c6da0d528479acdb5db54bc81a0ff2ec6b"
+ integrity sha512-7aQo0QHUTu/Ko3cP9YK9yUTxtoDEiDGwnBHyLxG5M4vqlBkO/uixMRele3nfsfj6UXOcuReVpVXzAboGraYIJw==
+ dependencies:
+ d3-array "^3.2.0"
+
d3-delaunay@6:
version "6.0.2"
resolved "https://registry.yarnpkg.com/d3-delaunay/-/d3-delaunay-6.0.2.tgz#7fd3717ad0eade2fc9939f4260acfb503f984e92"
@@ -1206,24 +1753,11 @@ d3-delaunay@6:
dependencies:
delaunator "5"
-d3-dispatch@1:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.6.tgz#00d37bcee4dd8cd97729dd893a0ac29caaba5d58"
- integrity sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==
-
"d3-dispatch@1 - 3", d3-dispatch@3:
version "3.0.1"
resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e"
integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==
-d3-drag@1:
- version "1.2.5"
- resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.2.5.tgz#2537f451acd39d31406677b7dc77c82f7d988f70"
- integrity sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w==
- dependencies:
- d3-dispatch "1"
- d3-selection "1"
-
"d3-drag@2 - 3", d3-drag@3:
version "3.0.0"
resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-3.0.0.tgz#994aae9cd23c719f53b5e10e3a0a6108c69607ba"
@@ -1232,15 +1766,6 @@ d3-drag@1:
d3-dispatch "1 - 3"
d3-selection "3"
-d3-dsv@1:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-1.2.0.tgz#9d5f75c3a5f8abd611f74d3f5847b0d4338b885c"
- integrity sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g==
- dependencies:
- commander "2"
- iconv-lite "0.4"
- rw "1"
-
"d3-dsv@1 - 3", d3-dsv@3:
version "3.0.1"
resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-3.0.1.tgz#c63af978f4d6a0d084a52a673922be2160789b73"
@@ -1250,23 +1775,11 @@ d3-dsv@1:
iconv-lite "0.6"
rw "1"
-d3-ease@1:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.7.tgz#9a834890ef8b8ae8c558b2fe55bd57f5993b85e2"
- integrity sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==
-
"d3-ease@1 - 3", d3-ease@3:
version "3.0.1"
resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-3.0.1.tgz#9658ac38a2140d59d346160f1f6c30fda0bd12f4"
integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==
-d3-fetch@1:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-1.2.0.tgz#15ce2ecfc41b092b1db50abd2c552c2316cf7fc7"
- integrity sha512-yC78NBVcd2zFAyR/HnUiBS7Lf6inSCoWcSxFfw8FYL7ydiqe80SazNwoffcqOfs95XaLo7yebsmQqDKSsXUtvA==
- dependencies:
- d3-dsv "1"
-
d3-fetch@3:
version "3.0.1"
resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-3.0.1.tgz#83141bff9856a0edb5e38de89cdcfe63d0a60a22"
@@ -1274,16 +1787,6 @@ d3-fetch@3:
dependencies:
d3-dsv "1 - 3"
-d3-force@1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-1.2.1.tgz#fd29a5d1ff181c9e7f0669e4bd72bdb0e914ec0b"
- integrity sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==
- dependencies:
- d3-collection "1"
- d3-dispatch "1"
- d3-quadtree "1"
- d3-timer "1"
-
d3-force@3:
version "3.0.0"
resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-3.0.0.tgz#3e2ba1a61e70888fe3d9194e30d6d14eece155c4"
@@ -1293,23 +1796,11 @@ d3-force@3:
d3-quadtree "1 - 3"
d3-timer "1 - 3"
-d3-format@1:
- version "1.4.5"
- resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.4.5.tgz#374f2ba1320e3717eb74a9356c67daee17a7edb4"
- integrity sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==
-
"d3-format@1 - 3", d3-format@3:
version "3.0.1"
resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.0.1.tgz#e41b81b2ab79277141ec1404aa5d05001da64084"
integrity sha512-hdL7+HBIohpgfolhBxr1KX47VMD6+vVD/oEFrxk5yhmzV2prk99EkFKYpXuhVkFpTgHdJ6/4bYcjdLPPXV4tIA==
-d3-geo@1:
- version "1.12.1"
- resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.12.1.tgz#7fc2ab7414b72e59fbcbd603e80d9adc029b035f"
- integrity sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==
- dependencies:
- d3-array "1"
-
d3-geo@3:
version "3.0.1"
resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-3.0.1.tgz#4f92362fd8685d93e3b1fae0fd97dc8980b1ed7e"
@@ -1317,23 +1808,11 @@ d3-geo@3:
dependencies:
d3-array "2.5.0 - 3"
-d3-hierarchy@1:
- version "1.1.9"
- resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz#2f6bee24caaea43f8dc37545fa01628559647a83"
- integrity sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==
-
d3-hierarchy@3:
version "3.0.1"
resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.0.1.tgz#0365342d54972e38ca05e9143e0ab1c60846b3b5"
integrity sha512-RlLTaofEoOrMK1JoXYIGhKTkJFI/6rFrYPgxy6QlZo2BcVc4HGTqEU0rPpzuMq5T/5XcMtAzv1XiLA3zRTfygw==
-d3-interpolate@1:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.4.0.tgz#526e79e2d80daa383f9e0c1c1c7dcc0f0583e987"
- integrity sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==
- dependencies:
- d3-color "1"
-
"d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3:
version "3.0.1"
resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d"
@@ -1341,54 +1820,26 @@ d3-interpolate@1:
dependencies:
d3-color "1 - 3"
-d3-path@1:
- version "1.0.9"
- resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf"
- integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==
-
"d3-path@1 - 3", d3-path@3:
version "3.0.1"
resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-3.0.1.tgz#f09dec0aaffd770b7995f1a399152bf93052321e"
integrity sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w==
-d3-polygon@1:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-1.0.6.tgz#0bf8cb8180a6dc107f518ddf7975e12abbfbd38e"
- integrity sha512-k+RF7WvI08PC8reEoXa/w2nSg5AUMTi+peBD9cmFc+0ixHfbs4QmxxkarVal1IkVkgxVuk9JSHhJURHiyHKAuQ==
-
d3-polygon@3:
version "3.0.1"
resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-3.0.1.tgz#0b45d3dd1c48a29c8e057e6135693ec80bf16398"
integrity sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==
-d3-quadtree@1:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-1.0.7.tgz#ca8b84df7bb53763fe3c2f24bd435137f4e53135"
- integrity sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==
-
"d3-quadtree@1 - 3", d3-quadtree@3:
version "3.0.1"
resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz#6dca3e8be2b393c9a9d514dabbd80a92deef1a4f"
integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==
-d3-random@1:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-1.1.2.tgz#2833be7c124360bf9e2d3fd4f33847cfe6cab291"
- integrity sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ==
-
d3-random@3:
version "3.0.1"
resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-3.0.1.tgz#d4926378d333d9c0bfd1e6fa0194d30aebaa20f4"
integrity sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==
-d3-scale-chromatic@1:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz#54e333fc78212f439b14641fb55801dd81135a98"
- integrity sha512-ACcL46DYImpRFMBcpk9HhtIyC7bTBR4fNOPxwVSl0LfulDAwyiHyPOTqcDG1+t5d4P9W7t/2NAuWu59aKko/cg==
- dependencies:
- d3-color "1"
- d3-interpolate "1"
-
d3-scale-chromatic@3:
version "3.0.0"
resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz#15b4ceb8ca2bb0dcb6d1a641ee03d59c3b62376a"
@@ -1397,18 +1848,6 @@ d3-scale-chromatic@3:
d3-color "1 - 3"
d3-interpolate "1 - 3"
-d3-scale@2:
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-2.2.2.tgz#4e880e0b2745acaaddd3ede26a9e908a9e17b81f"
- integrity sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==
- dependencies:
- d3-array "^1.2.0"
- d3-collection "1"
- d3-format "1"
- d3-interpolate "1"
- d3-time "1"
- d3-time-format "2"
-
d3-scale@4:
version "4.0.2"
resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396"
@@ -1420,23 +1859,11 @@ d3-scale@4:
d3-time "2.1.1 - 3"
d3-time-format "2 - 4"
-d3-selection@1, d3-selection@^1.1.0:
- version "1.4.2"
- resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.2.tgz#dcaa49522c0dbf32d6c1858afc26b6094555bc5c"
- integrity sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg==
-
"d3-selection@2 - 3", d3-selection@3:
version "3.0.0"
resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-3.0.0.tgz#c25338207efa72cc5b9bd1458a1a41901f1e1b31"
integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==
-d3-shape@1:
- version "1.3.7"
- resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7"
- integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==
- dependencies:
- d3-path "1"
-
d3-shape@3:
version "3.0.1"
resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-3.0.1.tgz#9ccdfb28fd9b0d12f2d8aec234cd5c4a9ea27931"
@@ -1444,13 +1871,6 @@ d3-shape@3:
dependencies:
d3-path "1 - 3"
-d3-time-format@2:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.3.0.tgz#107bdc028667788a8924ba040faf1fbccd5a7850"
- integrity sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==
- dependencies:
- d3-time "1"
-
"d3-time-format@2 - 4", d3-time-format@4:
version "4.0.0"
resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.0.0.tgz#930ded86a9de761702344760d8a25753467f28b7"
@@ -1458,11 +1878,6 @@ d3-time-format@2:
dependencies:
d3-time "1 - 3"
-d3-time@1:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.1.0.tgz#b1e19d307dae9c900b7e5b25ffc5dcc249a8a0f1"
- integrity sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==
-
"d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@3:
version "3.0.0"
resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-3.0.0.tgz#65972cb98ae2d4954ef5c932e8704061335d4975"
@@ -1470,28 +1885,11 @@ d3-time@1:
dependencies:
d3-array "2 - 3"
-d3-timer@1:
- version "1.0.10"
- resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.10.tgz#dfe76b8a91748831b13b6d9c793ffbd508dd9de5"
- integrity sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==
-
"d3-timer@1 - 3", d3-timer@3:
version "3.0.1"
resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0"
integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==
-d3-transition@1:
- version "1.3.2"
- resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.3.2.tgz#a98ef2151be8d8600543434c1ca80140ae23b398"
- integrity sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA==
- dependencies:
- d3-color "1"
- d3-dispatch "1"
- d3-ease "1"
- d3-interpolate "1"
- d3-selection "^1.1.0"
- d3-timer "1"
-
"d3-transition@2 - 3", d3-transition@3:
version "3.0.1"
resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-3.0.1.tgz#6869fdde1448868077fdd5989200cb61b2a1645f"
@@ -1503,22 +1901,6 @@ d3-transition@1:
d3-interpolate "1 - 3"
d3-timer "1 - 3"
-d3-voronoi@1:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/d3-voronoi/-/d3-voronoi-1.1.4.tgz#dd3c78d7653d2bb359284ae478645d95944c8297"
- integrity sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==
-
-d3-zoom@1:
- version "1.8.3"
- resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-1.8.3.tgz#b6a3dbe738c7763121cd05b8a7795ffe17f4fc0a"
- integrity sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ==
- dependencies:
- d3-dispatch "1"
- d3-drag "1"
- d3-interpolate "1"
- d3-selection "1"
- d3-transition "1"
-
d3-zoom@3:
version "3.0.0"
resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-3.0.0.tgz#d13f4165c73217ffeaa54295cd6969b3e7aee8f3"
@@ -1530,43 +1912,6 @@ d3-zoom@3:
d3-selection "2 - 3"
d3-transition "2 - 3"
-d3@^5.14:
- version "5.16.0"
- resolved "https://registry.yarnpkg.com/d3/-/d3-5.16.0.tgz#9c5e8d3b56403c79d4ed42fbd62f6113f199c877"
- integrity sha512-4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw==
- dependencies:
- d3-array "1"
- d3-axis "1"
- d3-brush "1"
- d3-chord "1"
- d3-collection "1"
- d3-color "1"
- d3-contour "1"
- d3-dispatch "1"
- d3-drag "1"
- d3-dsv "1"
- d3-ease "1"
- d3-fetch "1"
- d3-force "1"
- d3-format "1"
- d3-geo "1"
- d3-hierarchy "1"
- d3-interpolate "1"
- d3-path "1"
- d3-polygon "1"
- d3-quadtree "1"
- d3-random "1"
- d3-scale "2"
- d3-scale-chromatic "1"
- d3-selection "1"
- d3-shape "1"
- d3-time "1"
- d3-time-format "2"
- d3-timer "1"
- d3-transition "1"
- d3-voronoi "1"
- d3-zoom "1"
-
d3@^7.0.0:
version "7.1.1"
resolved "https://registry.yarnpkg.com/d3/-/d3-7.1.1.tgz#77b9a0c9893b13643b8e52316ec65dca3a6a115e"
@@ -1603,28 +1948,59 @@ d3@^7.0.0:
d3-transition "3"
d3-zoom "3"
-dagre-d3@^0.6.4:
- version "0.6.4"
- resolved "https://registry.yarnpkg.com/dagre-d3/-/dagre-d3-0.6.4.tgz#0728d5ce7f177ca2337df141ceb60fbe6eeb7b29"
- integrity sha512-e/6jXeCP7/ptlAM48clmX4xTZc5Ek6T6kagS7Oz2HrYSdqcLZFLqpAfh7ldbZRFfxCZVyh61NEPR08UQRVxJzQ==
+d3@^7.7.0:
+ version "7.7.0"
+ resolved "https://registry.yarnpkg.com/d3/-/d3-7.7.0.tgz#e7779a74ea7c807b432fdfd8128de062b19c62eb"
+ integrity sha512-VEwHCMgMjD2WBsxeRGUE18RmzxT9Bn7ghDpzvTEvkLSBAKgTMydJjouZTjspgQfRHpPt/PB3EHWBa6SSyFQq4g==
dependencies:
- d3 "^5.14"
- dagre "^0.8.5"
- graphlib "^2.1.8"
- lodash "^4.17.15"
+ d3-array "3"
+ d3-axis "3"
+ d3-brush "3"
+ d3-chord "3"
+ d3-color "3"
+ d3-contour "4"
+ d3-delaunay "6"
+ d3-dispatch "3"
+ d3-drag "3"
+ d3-dsv "3"
+ d3-ease "3"
+ d3-fetch "3"
+ d3-force "3"
+ d3-format "3"
+ d3-geo "3"
+ d3-hierarchy "3"
+ d3-interpolate "3"
+ d3-path "3"
+ d3-polygon "3"
+ d3-quadtree "3"
+ d3-random "3"
+ d3-scale "4"
+ d3-scale-chromatic "3"
+ d3-selection "3"
+ d3-shape "3"
+ d3-time "3"
+ d3-time-format "4"
+ d3-timer "3"
+ d3-transition "3"
+ d3-zoom "3"
-dagre@^0.8.5:
- version "0.8.5"
- resolved "https://registry.yarnpkg.com/dagre/-/dagre-0.8.5.tgz#ba30b0055dac12b6c1fcc247817442777d06afee"
- integrity sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==
+dagre-d3-es@7.0.6:
+ version "7.0.6"
+ resolved "https://registry.yarnpkg.com/dagre-d3-es/-/dagre-d3-es-7.0.6.tgz#8cab465ff95aca8a1ca2292d07e1fb31b5db83f2"
+ integrity sha512-CaaE/nZh205ix+Up4xsnlGmpog5GGm81Upi2+/SBHxwNwrccBb3K51LzjZ1U6hgvOlAEUsVWf1xSTzCyKpJ6+Q==
dependencies:
- graphlib "^2.1.8"
- lodash "^4.17.15"
+ d3 "^7.7.0"
+ lodash-es "^4.17.21"
-daisyui@1.25.4:
- version "1.25.4"
- resolved "https://registry.yarnpkg.com/daisyui/-/daisyui-1.25.4.tgz#d143f5eca073336b20e21a7d9ba12dbe0b30e3c6"
- integrity sha512-Y9DrFYjjfwK09Fc8/05DhpWgwqhqRuhuH4gMdQxCeZ9dLJ82y5xb6kvwLuK1cWLfCckDOWk3reEKXsciaMHyAw==
+daisyui@2.49.0:
+ version "2.49.0"
+ resolved "https://registry.yarnpkg.com/daisyui/-/daisyui-2.49.0.tgz#3cfc33fa5df3b444bf806471a62c77eba0192a62"
+ integrity sha512-+hEFMupi/7rqkAH4d3iBWj1TXRq73V3PrkJ3HiDqFuQgMoE1/UQOgMoeqaHa3r4IRo4fjMNauwHBA17qT0YSIA==
+ dependencies:
+ color "^4.2"
+ css-selector-tokenizer "^0.8.0"
+ postcss-js "^4.0.0"
+ tailwindcss "^3"
dashdash@^1.12.0:
version "1.14.1"
@@ -1633,6 +2009,15 @@ dashdash@^1.12.0:
dependencies:
assert-plus "^1.0.0"
+data-urls@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.2.tgz#9cf24a477ae22bcef5cd5f6f0bfbc1d2d3be9143"
+ integrity sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==
+ dependencies:
+ abab "^2.0.6"
+ whatwg-mimetype "^3.0.0"
+ whatwg-url "^11.0.0"
+
dayjs@^1.10.4:
version "1.10.4"
resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.10.4.tgz"
@@ -1653,6 +2038,13 @@ debug@3.1.0:
dependencies:
ms "2.0.0"
+debug@4, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4:
+ version "4.3.4"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
+ integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
+ dependencies:
+ ms "2.1.2"
+
debug@4.1.1:
version "4.1.1"
resolved "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz"
@@ -1660,13 +2052,6 @@ debug@4.1.1:
dependencies:
ms "^2.1.1"
-debug@4.3.3, debug@^4.0.1, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3:
- version "4.3.3"
- resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664"
- integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==
- dependencies:
- ms "2.1.2"
-
debug@^3.1.0:
version "3.2.7"
resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz"
@@ -1674,15 +2059,15 @@ debug@^3.1.0:
dependencies:
ms "^2.1.1"
-decamelize@^4.0.0:
- version "4.0.0"
- resolved "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz"
- integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==
+decimal.js@^10.4.2:
+ version "10.4.2"
+ resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.2.tgz#0341651d1d997d86065a2ce3a441fbd0d8e8b98e"
+ integrity sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==
-deep-eql@^3.0.1:
- version "3.0.1"
- resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz"
- integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==
+deep-eql@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.2.tgz#270ceb902f87724077e6f6449aed81463f42fc1c"
+ integrity sha512-gT18+YW4CcW/DBNTwAmqTtkJh7f9qqScu2qFVlx7kCoeY9tlBu9cUcr7+I+Z/noG8INehS3xQgLpTtd/QUTn4w==
dependencies:
type-detect "^4.0.0"
@@ -1691,6 +2076,16 @@ deep-is@^0.1.3:
resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz"
integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
+deep-is@~0.1.3:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
+ integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
+
+deepmerge@^4.2.2:
+ version "4.2.2"
+ resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
+ integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
+
defined@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz"
@@ -1713,30 +2108,40 @@ detect-indent@^6.0.0:
resolved "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz"
integrity sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==
-detective@^5.2.0:
- version "5.2.0"
- resolved "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz"
- integrity sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==
+detective@^5.2.1:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.1.tgz#6af01eeda11015acb0e73f933242b70f24f91034"
+ integrity sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==
dependencies:
- acorn-node "^1.6.1"
+ acorn-node "^1.8.2"
defined "^1.0.0"
- minimist "^1.1.1"
+ minimist "^1.2.6"
+
+devalue@^4.2.3:
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/devalue/-/devalue-4.2.3.tgz#313bb7e7cf74100bfddab9182b2d1b48ba14701a"
+ integrity sha512-JG6Q248aN0pgFL57e3zqTVeFraBe+5W2ugvv1mLXsJP6YYIYJhRZhAl7QP8haJrqob6X10F9NEkuCvNILZTPeQ==
didyoumean@^1.2.2:
version "1.2.2"
resolved "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz"
integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==
-diff@5.0.0:
- version "5.0.0"
- resolved "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz"
- integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==
+diff-sequences@^28.1.1:
+ version "28.1.1"
+ resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.1.1.tgz#9989dc731266dc2903457a70e996f3a041913ac6"
+ integrity sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==
diff@^1.3.2:
version "1.4.0"
resolved "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz"
integrity sha1-fyjS657nsVqX79ic5j3P2qPMur8=
+diff@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40"
+ integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==
+
dir-glob@^3.0.1:
version "3.0.1"
resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz"
@@ -1764,6 +2169,11 @@ doctrine@^3.0.0:
dependencies:
esutils "^2.0.2"
+dom-accessibility-api@^0.5.6, dom-accessibility-api@^0.5.9:
+ version "0.5.14"
+ resolved "https://registry.yarnpkg.com/dom-accessibility-api/-/dom-accessibility-api-0.5.14.tgz#56082f71b1dc7aac69d83c4285eef39c15d93f56"
+ integrity sha512-NMt+m9zFMPZe0JcY9gN224Qvk6qLIdqex29clBvc/y75ZBX9YA9wNK3frsYvu2DI1xcCIwxwnX+TlsJ2DSOADg==
+
dom-serializer@^1.0.1:
version "1.3.2"
resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz"
@@ -1773,11 +2183,32 @@ dom-serializer@^1.0.1:
domhandler "^4.2.0"
entities "^2.0.0"
+dom-serializer@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53"
+ integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==
+ dependencies:
+ domelementtype "^2.3.0"
+ domhandler "^5.0.2"
+ entities "^4.2.0"
+
domelementtype@^2.0.1, domelementtype@^2.2.0:
version "2.2.0"
resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz"
integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==
+domelementtype@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d"
+ integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==
+
+domexception@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/domexception/-/domexception-4.0.0.tgz#4ad1be56ccadc86fc76d033353999a8037d03673"
+ integrity sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==
+ dependencies:
+ webidl-conversions "^7.0.0"
+
domhandler@^4.2.0:
version "4.2.0"
resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.2.0.tgz"
@@ -1785,20 +2216,43 @@ domhandler@^4.2.0:
dependencies:
domelementtype "^2.2.0"
-dompurify@2.3.5:
- version "2.3.5"
- resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.3.5.tgz#c83ed5a3ae5ce23e52efe654ea052ffb358dd7e3"
- integrity sha512-kD+f8qEaa42+mjdOpKeztu9Mfx5bv9gVLO6K9jRx4uGvh6Wv06Srn4jr1wPNY2OOUGGSKHNFN+A8MA3v0E0QAQ==
+domhandler@^4.3.0:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c"
+ integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==
+ dependencies:
+ domelementtype "^2.2.0"
-domutils@^2.6.0:
- version "2.7.0"
- resolved "https://registry.npmjs.org/domutils/-/domutils-2.7.0.tgz"
- integrity sha512-8eaHa17IwJUPAiB+SoTYBo5mCdeMgdcAoXJ59m6DT1vw+5iLS3gNoqYaRowaBKtGVrOF1Jz4yDTgYKLK2kvfJg==
+domhandler@^5.0.1, domhandler@^5.0.2:
+ version "5.0.3"
+ resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31"
+ integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==
+ dependencies:
+ domelementtype "^2.3.0"
+
+dompurify@2.4.1:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.4.1.tgz#f9cb1a275fde9af6f2d0a2644ef648dd6847b631"
+ integrity sha512-ewwFzHzrrneRjxzmK6oVz/rZn9VWspGFRDb4/rRtIsM1n36t9AKma/ye8syCpcw+XJ25kOK/hOG7t1j2I2yBqA==
+
+domutils@^2.8.0:
+ version "2.8.0"
+ resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135"
+ integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==
dependencies:
dom-serializer "^1.0.1"
domelementtype "^2.2.0"
domhandler "^4.2.0"
+domutils@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.0.1.tgz#696b3875238338cb186b6c0612bd4901c89a4f1c"
+ integrity sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==
+ dependencies:
+ dom-serializer "^2.0.0"
+ domelementtype "^2.3.0"
+ domhandler "^5.0.1"
+
ecc-jsbn@~0.1.1:
version "0.1.2"
resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz"
@@ -1817,10 +2271,15 @@ editorconfig@^0.15.3:
semver "^5.6.0"
sigmund "^1.0.1"
-electron-to-chromium@^1.4.17:
- version "1.4.48"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.48.tgz#1948b5227aa0ca1ed690945eae1adbe9e7904575"
- integrity sha512-RT3SEmpv7XUA+tKXrZGudAWLDpa7f8qmhjcLaM6OD/ERxjQ/zAojT8/Vvo0BSzbArkElFZ1WyZ9FuwAYbkdBNA==
+electron-to-chromium@^1.4.202:
+ version "1.4.211"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.211.tgz#afaa8b58313807501312d598d99b953568d60f91"
+ integrity sha512-BZSbMpyFQU0KBJ1JG26XGeFI3i4op+qOYGxftmZXFZoHkhLgsSv4DHDJfl8ogII3hIuzGt51PaZ195OVu0yJ9A==
+
+electron-to-chromium@^1.4.251:
+ version "1.4.261"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.261.tgz#31f14ad60c6f95bec404a77a2fd5e1962248e112"
+ integrity sha512-fVXliNUGJ7XUVJSAasPseBbVgJIeyw5M1xIkgXdTSRjlmCqBbiSTsEdLOCJS31Fc8B7CaloQ/BFAg8By3ODLdg==
emoji-regex@^8.0.0:
version "8.0.0"
@@ -1839,7 +2298,7 @@ end-of-stream@^1.1.0:
dependencies:
once "^1.4.0"
-enquirer@^2.3.5, enquirer@^2.3.6:
+enquirer@^2.3.6:
version "2.3.6"
resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz"
integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==
@@ -1851,154 +2310,84 @@ entities@^2.0.0:
resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz"
integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==
-error-ex@^1.3.1:
- version "1.3.2"
- resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz"
- integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
- dependencies:
- is-arrayish "^0.2.1"
+entities@^4.2.0, entities@^4.4.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174"
+ integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==
es6-promise@^3.1.2:
version "3.3.1"
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613"
integrity sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=
-esbuild-android-arm64@0.13.15:
- version "0.13.15"
- resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.13.15.tgz#3fc3ff0bab76fe35dd237476b5d2b32bb20a3d44"
- integrity sha512-m602nft/XXeO8YQPUDVoHfjyRVPdPgjyyXOxZ44MK/agewFFkPa8tUo6lAzSWh5Ui5PB4KR9UIFTSBKh/RrCmg==
-
-esbuild-darwin-64@0.13.15:
- version "0.13.15"
- resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.13.15.tgz#8e9169c16baf444eacec60d09b24d11b255a8e72"
- integrity sha512-ihOQRGs2yyp7t5bArCwnvn2Atr6X4axqPpEdCFPVp7iUj4cVSdisgvEKdNR7yH3JDjW6aQDw40iQFoTqejqxvQ==
-
-esbuild-darwin-arm64@0.13.15:
- version "0.13.15"
- resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.15.tgz#1b07f893b632114f805e188ddfca41b2b778229a"
- integrity sha512-i1FZssTVxUqNlJ6cBTj5YQj4imWy3m49RZRnHhLpefFIh0To05ow9DTrXROTE1urGTQCloFUXTX8QfGJy1P8dQ==
-
-esbuild-freebsd-64@0.13.15:
- version "0.13.15"
- resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.15.tgz#0b8b7eca1690c8ec94c75680c38c07269c1f4a85"
- integrity sha512-G3dLBXUI6lC6Z09/x+WtXBXbOYQZ0E8TDBqvn7aMaOCzryJs8LyVXKY4CPnHFXZAbSwkCbqiPuSQ1+HhrNk7EA==
-
-esbuild-freebsd-arm64@0.13.15:
- version "0.13.15"
- resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.15.tgz#2e1a6c696bfdcd20a99578b76350b41db1934e52"
- integrity sha512-KJx0fzEDf1uhNOZQStV4ujg30WlnwqUASaGSFPhznLM/bbheu9HhqZ6mJJZM32lkyfGJikw0jg7v3S0oAvtvQQ==
-
-esbuild-linux-32@0.13.15:
- version "0.13.15"
- resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.13.15.tgz#6fd39f36fc66dd45b6b5f515728c7bbebc342a69"
- integrity sha512-ZvTBPk0YWCLMCXiFmD5EUtB30zIPvC5Itxz0mdTu/xZBbbHJftQgLWY49wEPSn2T/TxahYCRDWun5smRa0Tu+g==
-
-esbuild-linux-64@0.13.15:
- version "0.13.15"
- resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.13.15.tgz#9cb8e4bcd7574e67946e4ee5f1f1e12386bb6dd3"
- integrity sha512-eCKzkNSLywNeQTRBxJRQ0jxRCl2YWdMB3+PkWFo2BBQYC5mISLIVIjThNtn6HUNqua1pnvgP5xX0nHbZbPj5oA==
-
-esbuild-linux-arm64@0.13.15:
- version "0.13.15"
- resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.15.tgz#3891aa3704ec579a1b92d2a586122e5b6a2bfba1"
- integrity sha512-bYpuUlN6qYU9slzr/ltyLTR9YTBS7qUDymO8SV7kjeNext61OdmqFAzuVZom+OLW1HPHseBfJ/JfdSlx8oTUoA==
-
-esbuild-linux-arm@0.13.15:
- version "0.13.15"
- resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.13.15.tgz#8a00e99e6a0c6c9a6b7f334841364d8a2b4aecfe"
- integrity sha512-wUHttDi/ol0tD8ZgUMDH8Ef7IbDX+/UsWJOXaAyTdkT7Yy9ZBqPg8bgB/Dn3CZ9SBpNieozrPRHm0BGww7W/jA==
-
-esbuild-linux-mips64le@0.13.15:
- version "0.13.15"
- resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.15.tgz#36b07cc47c3d21e48db3bb1f4d9ef8f46aead4f7"
- integrity sha512-KlVjIG828uFPyJkO/8gKwy9RbXhCEUeFsCGOJBepUlpa7G8/SeZgncUEz/tOOUJTcWMTmFMtdd3GElGyAtbSWg==
-
-esbuild-linux-ppc64le@0.13.15:
- version "0.13.15"
- resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.15.tgz#f7e6bba40b9a11eb9dcae5b01550ea04670edad2"
- integrity sha512-h6gYF+OsaqEuBjeesTBtUPw0bmiDu7eAeuc2OEH9S6mV9/jPhPdhOWzdeshb0BskRZxPhxPOjqZ+/OqLcxQwEQ==
-
-esbuild-netbsd-64@0.13.15:
- version "0.13.15"
- resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.13.15.tgz#a2fedc549c2b629d580a732d840712b08d440038"
- integrity sha512-3+yE9emwoevLMyvu+iR3rsa+Xwhie7ZEHMGDQ6dkqP/ndFzRHkobHUKTe+NCApSqG5ce2z4rFu+NX/UHnxlh3w==
-
-esbuild-openbsd-64@0.13.15:
- version "0.13.15"
- resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.15.tgz#b22c0e5806d3a1fbf0325872037f885306b05cd7"
- integrity sha512-wTfvtwYJYAFL1fSs8yHIdf5GEE4NkbtbXtjLWjM3Cw8mmQKqsg8kTiqJ9NJQe5NX/5Qlo7Xd9r1yKMMkHllp5g==
-
-esbuild-sunos-64@0.13.15:
- version "0.13.15"
- resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.13.15.tgz#d0b6454a88375ee8d3964daeff55c85c91c7cef4"
- integrity sha512-lbivT9Bx3t1iWWrSnGyBP9ODriEvWDRiweAs69vI+miJoeKwHWOComSRukttbuzjZ8r1q0mQJ8Z7yUsDJ3hKdw==
-
-esbuild-windows-32@0.13.15:
- version "0.13.15"
- resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.13.15.tgz#c96d0b9bbb52f3303322582ef8e4847c5ad375a7"
- integrity sha512-fDMEf2g3SsJ599MBr50cY5ve5lP1wyVwTe6aLJsM01KtxyKkB4UT+fc5MXQFn3RLrAIAZOG+tHC+yXObpSn7Nw==
-
-esbuild-windows-64@0.13.15:
- version "0.13.15"
- resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.13.15.tgz#1f79cb9b1e1bb02fb25cd414cb90d4ea2892c294"
- integrity sha512-9aMsPRGDWCd3bGjUIKG/ZOJPKsiztlxl/Q3C1XDswO6eNX/Jtwu4M+jb6YDH9hRSUflQWX0XKAfWzgy5Wk54JQ==
-
-esbuild-windows-arm64@0.13.15:
- version "0.13.15"
- resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.15.tgz#482173070810df22a752c686509c370c3be3b3c3"
- integrity sha512-zzvyCVVpbwQQATaf3IG8mu1IwGEiDxKkYUdA4FpoCHi1KtPa13jeScYDjlW0Qh+ebWzpKfR2ZwvqAQkSWNcKjA==
-
-esbuild@^0.13.12:
- version "0.13.15"
- resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.13.15.tgz#db56a88166ee373f87dbb2d8798ff449e0450cdf"
- integrity sha512-raCxt02HBKv8RJxE8vkTSCXGIyKHdEdGfUmiYb8wnabnaEmHzyW7DCHb5tEN0xU8ryqg5xw54mcwnYkC4x3AIw==
+esbuild@^0.16.3:
+ version "0.16.7"
+ resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.16.7.tgz#3288f685a83c6097dea8ddf1759ca30d6e06535b"
+ integrity sha512-P6OBFYFSQOGzfApqCeYKqfKRRbCIRsdppTXFo4aAvtiW3o8TTyiIplBvHJI171saPAiy3WlawJHCveJVIOIx1A==
optionalDependencies:
- esbuild-android-arm64 "0.13.15"
- esbuild-darwin-64 "0.13.15"
- esbuild-darwin-arm64 "0.13.15"
- esbuild-freebsd-64 "0.13.15"
- esbuild-freebsd-arm64 "0.13.15"
- esbuild-linux-32 "0.13.15"
- esbuild-linux-64 "0.13.15"
- esbuild-linux-arm "0.13.15"
- esbuild-linux-arm64 "0.13.15"
- esbuild-linux-mips64le "0.13.15"
- esbuild-linux-ppc64le "0.13.15"
- esbuild-netbsd-64 "0.13.15"
- esbuild-openbsd-64 "0.13.15"
- esbuild-sunos-64 "0.13.15"
- esbuild-windows-32 "0.13.15"
- esbuild-windows-64 "0.13.15"
- esbuild-windows-arm64 "0.13.15"
+ "@esbuild/android-arm" "0.16.7"
+ "@esbuild/android-arm64" "0.16.7"
+ "@esbuild/android-x64" "0.16.7"
+ "@esbuild/darwin-arm64" "0.16.7"
+ "@esbuild/darwin-x64" "0.16.7"
+ "@esbuild/freebsd-arm64" "0.16.7"
+ "@esbuild/freebsd-x64" "0.16.7"
+ "@esbuild/linux-arm" "0.16.7"
+ "@esbuild/linux-arm64" "0.16.7"
+ "@esbuild/linux-ia32" "0.16.7"
+ "@esbuild/linux-loong64" "0.16.7"
+ "@esbuild/linux-mips64el" "0.16.7"
+ "@esbuild/linux-ppc64" "0.16.7"
+ "@esbuild/linux-riscv64" "0.16.7"
+ "@esbuild/linux-s390x" "0.16.7"
+ "@esbuild/linux-x64" "0.16.7"
+ "@esbuild/netbsd-x64" "0.16.7"
+ "@esbuild/openbsd-x64" "0.16.7"
+ "@esbuild/sunos-x64" "0.16.7"
+ "@esbuild/win32-arm64" "0.16.7"
+ "@esbuild/win32-ia32" "0.16.7"
+ "@esbuild/win32-x64" "0.16.7"
escalade@^3.1.1:
version "3.1.1"
resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz"
integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
-escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0:
- version "4.0.0"
- resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz"
- integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
-
escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
version "1.0.5"
resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
-eslint-config-prettier@^8.1.0:
- version "8.3.0"
- resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz"
- integrity sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==
+escape-string-regexp@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz"
+ integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
-eslint-plugin-cypress@^2.12.1:
+escodegen@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd"
+ integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==
+ dependencies:
+ esprima "^4.0.1"
+ estraverse "^5.2.0"
+ esutils "^2.0.2"
+ optionator "^0.8.1"
+ optionalDependencies:
+ source-map "~0.6.1"
+
+eslint-config-prettier@8.6.0:
+ version "8.6.0"
+ resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.6.0.tgz#dec1d29ab728f4fa63061774e1672ac4e363d207"
+ integrity sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==
+
+eslint-plugin-cypress@2.12.1:
version "2.12.1"
resolved "https://registry.yarnpkg.com/eslint-plugin-cypress/-/eslint-plugin-cypress-2.12.1.tgz#9aeee700708ca8c058e00cdafe215199918c2632"
integrity sha512-c2W/uPADl5kospNDihgiLc7n87t5XhUbFDoTl6CfVkmG+kDAb5Ux10V9PoLPu9N+r7znpc+iQlcmAqT1A/89HA==
dependencies:
globals "^11.12.0"
-eslint-plugin-es@^4.1.0:
+eslint-plugin-es@4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz#f0822f0c18a535a97c3e714e89f88586a7641ec9"
integrity sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==
@@ -2006,15 +2395,12 @@ eslint-plugin-es@^4.1.0:
eslint-utils "^2.0.0"
regexpp "^3.0.0"
-eslint-plugin-mocha@^10.0.3:
- version "10.0.3"
- resolved "https://registry.yarnpkg.com/eslint-plugin-mocha/-/eslint-plugin-mocha-10.0.3.tgz#a4ecf2351828e852156316b7e936e7336fc0ff5e"
- integrity sha512-9mM7PZGxfejpjey+MrG0Cu3Lc8MyA5E2s7eUCdHXgS4SY/H9zLuwa7wVAjnEaoDjbBilA+0bPEB+iMO7lBUPcg==
- dependencies:
- eslint-utils "^3.0.0"
- ramda "^0.27.1"
+eslint-plugin-no-only-tests@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-no-only-tests/-/eslint-plugin-no-only-tests-3.1.0.tgz#f38e4935c6c6c4842bf158b64aaa20c366fe171b"
+ integrity sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw==
-eslint-plugin-postcss-modules@^2.0.0:
+eslint-plugin-postcss-modules@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-postcss-modules/-/eslint-plugin-postcss-modules-2.0.0.tgz#d136d6fb5bd9afa6ac73c22aea85212aa2531806"
integrity sha512-82usNIaeAEHKbQOnbSs+H3d9nP6TKD2zBZC/wuedbGMTbF8XGkdxI83kptTE6BcvIWgnLPciVa8voe6zIw4ddw==
@@ -2030,19 +2416,25 @@ eslint-plugin-postcss-modules@^2.0.0:
postcss-modules-scope "^3.0.0"
postcss-modules-values "^4.0.0"
-eslint-plugin-svelte3@^3.4.0:
- version "3.4.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-svelte3/-/eslint-plugin-svelte3-3.4.0.tgz#0fe6cfcd42a53ff346082d47e7386be66bd8d90e"
- integrity sha512-MIQUTuRv3o7LyQ+360qOc9mLT35j1I5YzHr04g/UDcvJTpg0X/kHWELY99ve869Rp/9wjqD7I26Aq5H8OH5RIg==
+eslint-plugin-svelte3@4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-svelte3/-/eslint-plugin-svelte3-4.0.0.tgz#3d4f3dcaec5761dac8bc697f81de3613b485b4e3"
+ integrity sha512-OIx9lgaNzD02+MDFNLw0GEUbuovNcglg+wnd/UY0fbZmlQSz7GlQiQ1f+yX0XvC07XPcDOnFcichqI3xCwp71g==
-eslint-plugin-tailwindcss@^3.4.3:
- version "3.4.3"
- resolved "https://registry.yarnpkg.com/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-3.4.3.tgz#a409d47b92a6f0e721091eeb543be927f1490bc3"
- integrity sha512-HagKvnHDBlVk3ErlPiiamVnNY3510DTXQTNc9h2KDVOuIdvgQc7X+08gLWvNAVQYPoKhbw/CzSHe/SSpMN8dig==
+eslint-plugin-tailwindcss@3.8.3:
+ version "3.8.3"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-tailwindcss/-/eslint-plugin-tailwindcss-3.8.3.tgz#26dfa15fec45a94ddec99e44b1f25161a3477cbd"
+ integrity sha512-wfzfCmc9yONNW+TqfR+QWZ+syFPQ8zMOrIGx500lS4XITEm0HJYGyKh1sC1tQ9+Wmt58bnHzW3Yc31vy5RlJww==
dependencies:
fast-glob "^3.2.5"
postcss "^8.4.4"
- tailwindcss "^3.0.7"
+
+eslint-plugin-vitest@^0.0.32:
+ version "0.0.32"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-vitest/-/eslint-plugin-vitest-0.0.32.tgz#3a4846ab3ee89ae63ebf6ae874f62e4755287f59"
+ integrity sha512-mRr3HLEvOCAlAaxXybp2Sg/2xdV6/yfsC0QEjpdFS1AOHy5I7eHkD+ES9V7OQBnTAM9O+UInDLHn5aUV3ZjAeQ==
+ dependencies:
+ "@typescript-eslint/utils" "^5.48.1"
eslint-scope@^5.1.1:
version "5.1.1"
@@ -2052,7 +2444,15 @@ eslint-scope@^5.1.1:
esrecurse "^4.3.0"
estraverse "^4.1.1"
-eslint-utils@^2.0.0, eslint-utils@^2.1.0:
+eslint-scope@^7.1.1:
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642"
+ integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==
+ dependencies:
+ esrecurse "^4.3.0"
+ estraverse "^5.2.0"
+
+eslint-utils@^2.0.0:
version "2.1.0"
resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz"
integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==
@@ -2066,7 +2466,7 @@ eslint-utils@^3.0.0:
dependencies:
eslint-visitor-keys "^2.0.0"
-eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0:
+eslint-visitor-keys@^1.1.0:
version "1.3.0"
resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz"
integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
@@ -2076,62 +2476,71 @@ eslint-visitor-keys@^2.0.0:
resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz"
integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
-eslint@^7.32.0:
- version "7.32.0"
- resolved "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz"
- integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==
+eslint-visitor-keys@^3.3.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826"
+ integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==
+
+eslint@8.33.0:
+ version "8.33.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.33.0.tgz#02f110f32998cb598c6461f24f4d306e41ca33d7"
+ integrity sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==
dependencies:
- "@babel/code-frame" "7.12.11"
- "@eslint/eslintrc" "^0.4.3"
- "@humanwhocodes/config-array" "^0.5.0"
+ "@eslint/eslintrc" "^1.4.1"
+ "@humanwhocodes/config-array" "^0.11.8"
+ "@humanwhocodes/module-importer" "^1.0.1"
+ "@nodelib/fs.walk" "^1.2.8"
ajv "^6.10.0"
chalk "^4.0.0"
cross-spawn "^7.0.2"
- debug "^4.0.1"
+ debug "^4.3.2"
doctrine "^3.0.0"
- enquirer "^2.3.5"
escape-string-regexp "^4.0.0"
- eslint-scope "^5.1.1"
- eslint-utils "^2.1.0"
- eslint-visitor-keys "^2.0.0"
- espree "^7.3.1"
+ eslint-scope "^7.1.1"
+ eslint-utils "^3.0.0"
+ eslint-visitor-keys "^3.3.0"
+ espree "^9.4.0"
esquery "^1.4.0"
esutils "^2.0.2"
fast-deep-equal "^3.1.3"
file-entry-cache "^6.0.1"
- functional-red-black-tree "^1.0.1"
- glob-parent "^5.1.2"
- globals "^13.6.0"
- ignore "^4.0.6"
+ find-up "^5.0.0"
+ glob-parent "^6.0.2"
+ globals "^13.19.0"
+ grapheme-splitter "^1.0.4"
+ ignore "^5.2.0"
import-fresh "^3.0.0"
imurmurhash "^0.1.4"
is-glob "^4.0.0"
- js-yaml "^3.13.1"
+ is-path-inside "^3.0.3"
+ js-sdsl "^4.1.4"
+ js-yaml "^4.1.0"
json-stable-stringify-without-jsonify "^1.0.1"
levn "^0.4.1"
lodash.merge "^4.6.2"
- minimatch "^3.0.4"
+ minimatch "^3.1.2"
natural-compare "^1.4.0"
optionator "^0.9.1"
- progress "^2.0.0"
- regexpp "^3.1.0"
- semver "^7.2.1"
- strip-ansi "^6.0.0"
+ regexpp "^3.2.0"
+ strip-ansi "^6.0.1"
strip-json-comments "^3.1.0"
- table "^6.0.9"
text-table "^0.2.0"
- v8-compile-cache "^2.0.3"
-espree@^7.3.0, espree@^7.3.1:
- version "7.3.1"
- resolved "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz"
- integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==
+esm-env@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/esm-env/-/esm-env-1.0.0.tgz#b124b40b180711690a4cb9b00d16573391950413"
+ integrity sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==
+
+espree@^9.4.0:
+ version "9.4.0"
+ resolved "https://registry.yarnpkg.com/espree/-/espree-9.4.0.tgz#cd4bc3d6e9336c433265fc0aa016fc1aaf182f8a"
+ integrity sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==
dependencies:
- acorn "^7.4.0"
- acorn-jsx "^5.3.1"
- eslint-visitor-keys "^1.3.0"
+ acorn "^8.8.0"
+ acorn-jsx "^5.3.2"
+ eslint-visitor-keys "^3.3.0"
-esprima@^4.0.0:
+esprima@^4.0.1:
version "4.0.1"
resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz"
integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
@@ -2150,6 +2559,11 @@ esrecurse@^4.3.0:
dependencies:
estraverse "^5.2.0"
+esserializer@1.3.10:
+ version "1.3.10"
+ resolved "https://registry.yarnpkg.com/esserializer/-/esserializer-1.3.10.tgz#dc6ba0a7fc9085511bcb89e077f5a320facec126"
+ integrity sha512-2pqR7yuvmHiCGGfD8FBYAL9t/FQ+LnLMsIcWAE6hoJIg4Ii/O+THZSgqwElQYIpEjxUQyyjc/SavbW3E1dBjSQ==
+
estraverse@^4.1.1:
version "4.3.0"
resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz"
@@ -2160,20 +2574,15 @@ estraverse@^5.1.0, estraverse@^5.2.0:
resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz"
integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==
-estree-walker@^2.0.1:
- version "2.0.2"
- resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz"
- integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
-
esutils@^2.0.2:
version "2.0.3"
resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz"
integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
-eventemitter2@^6.4.3:
- version "6.4.4"
- resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.4.tgz"
- integrity sha512-HLU3NDY6wARrLCEwyGKRBvuWYyvW6mHYv72SJJAH3iJN3a6eVUvkjFkcxah1bcTgGVBBrFdIopBJPhCQFMLyXw==
+eventemitter2@6.4.7:
+ version "6.4.7"
+ resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.7.tgz#a7f6c4d7abf28a14c1ef3442f21cb306a054271d"
+ integrity sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg==
execa@4.1.0:
version "4.1.0"
@@ -2190,20 +2599,20 @@ execa@4.1.0:
signal-exit "^3.0.2"
strip-final-newline "^2.0.0"
-execa@^5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
- integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==
+execa@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-6.1.0.tgz#cea16dee211ff011246556388effa0818394fb20"
+ integrity sha512-QVWlX2e50heYJcCPG0iWtf8r0xjEYfz/OYLGDYH+IyjWezzPNxz63qNFOu0l4YftGWuizFVZHHs8PrLU5p2IDA==
dependencies:
cross-spawn "^7.0.3"
- get-stream "^6.0.0"
- human-signals "^2.1.0"
- is-stream "^2.0.0"
+ get-stream "^6.0.1"
+ human-signals "^3.0.1"
+ is-stream "^3.0.0"
merge-stream "^2.0.0"
- npm-run-path "^4.0.1"
- onetime "^5.1.2"
- signal-exit "^3.0.3"
- strip-final-newline "^2.0.0"
+ npm-run-path "^5.1.0"
+ onetime "^6.0.0"
+ signal-exit "^3.0.7"
+ strip-final-newline "^3.0.0"
executable@^4.1.1:
version "4.1.1"
@@ -2243,7 +2652,7 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
-fast-glob@^3.1.1, fast-glob@^3.2.11, fast-glob@^3.2.5:
+fast-glob@^3.2.11, fast-glob@^3.2.5, fast-glob@^3.2.9:
version "3.2.11"
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9"
integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==
@@ -2254,16 +2663,32 @@ fast-glob@^3.1.1, fast-glob@^3.2.11, fast-glob@^3.2.5:
merge2 "^1.3.0"
micromatch "^4.0.4"
+fast-glob@^3.2.12:
+ version "3.2.12"
+ resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80"
+ integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==
+ dependencies:
+ "@nodelib/fs.stat" "^2.0.2"
+ "@nodelib/fs.walk" "^1.2.3"
+ glob-parent "^5.1.2"
+ merge2 "^1.3.0"
+ micromatch "^4.0.4"
+
fast-json-stable-stringify@^2.0.0:
version "2.1.0"
resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz"
integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
-fast-levenshtein@^2.0.6:
+fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6:
version "2.0.6"
resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"
integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
+fastparse@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9"
+ integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==
+
fastq@^1.6.0:
version "1.11.1"
resolved "https://registry.npmjs.org/fastq/-/fastq-1.11.1.tgz"
@@ -2304,7 +2729,7 @@ fill-range@^7.0.1:
dependencies:
to-regex-range "^5.0.1"
-find-up@5.0.0:
+find-up@^5.0.0:
version "5.0.0"
resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz"
integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
@@ -2320,16 +2745,16 @@ flat-cache@^3.0.4:
flatted "^3.1.0"
rimraf "^3.0.2"
-flat@^5.0.2:
- version "5.0.2"
- resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz"
- integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==
-
flatted@^3.1.0:
version "3.1.1"
resolved "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz"
integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==
+flatted@^3.2.7:
+ version "3.2.7"
+ resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787"
+ integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==
+
folktale@2.0.1:
version "2.0.1"
resolved "https://registry.npmjs.org/folktale/-/folktale-2.0.1.tgz"
@@ -2340,11 +2765,33 @@ folktale@2.3.2:
resolved "https://registry.npmjs.org/folktale/-/folktale-2.3.2.tgz"
integrity sha512-+8GbtQBwEqutP0v3uajDDoN64K2ehmHd0cjlghhxh0WpcfPzAIjPA03e1VvHlxL02FVGR0A6lwXsNQKn3H1RNQ==
+font-awesome@^4.7.0:
+ version "4.7.0"
+ resolved "https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz#8fa8cf0411a1a31afd07b06d2902bb9fc815a133"
+ integrity sha512-U6kGnykA/6bFmg1M/oT9EkFeIYv7JlX3bozwQJWiiLz6L0w3F5vBVPxHlwyX/vtNq1ckcpRKOB9f2Qal/VtFpg==
+
+foreground-child@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-2.0.0.tgz#71b32800c9f15aa8f2f83f4a6bd9bff35d861a53"
+ integrity sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==
+ dependencies:
+ cross-spawn "^7.0.0"
+ signal-exit "^3.0.2"
+
forever-agent@~0.6.1:
version "0.6.1"
resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"
integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
+form-data@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
+ integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.8"
+ mime-types "^2.1.12"
+
form-data@~2.3.2:
version "2.3.3"
resolved "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz"
@@ -2354,10 +2801,10 @@ form-data@~2.3.2:
combined-stream "^1.0.6"
mime-types "^2.1.12"
-fraction.js@^4.1.2:
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.1.2.tgz#13e420a92422b6cf244dff8690ed89401029fbe8"
- integrity sha512-o2RiJQ6DZaR/5+Si0qJUIy637QMRudSi9kU/FFzx9EZazrIdnBgpU+3sEWCxAVhH2RtxW2Oz+T4p2o8uOPVcgA==
+fraction.js@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950"
+ integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==
fs-extra@^9.1.0:
version "9.1.0"
@@ -2384,11 +2831,6 @@ function-bind@^1.1.1:
resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
-functional-red-black-tree@^1.0.1:
- version "1.0.1"
- resolved "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz"
- integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
-
get-caller-file@^2.0.5:
version "2.0.5"
resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz"
@@ -2406,9 +2848,9 @@ get-stream@^5.0.0, get-stream@^5.1.0:
dependencies:
pump "^3.0.0"
-get-stream@^6.0.0:
+get-stream@^6.0.1:
version "6.0.1"
- resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==
getos@^3.2.1:
@@ -2439,7 +2881,7 @@ glob-parent@^6.0.2:
dependencies:
is-glob "^4.0.3"
-glob@7.2.0, glob@^7.1.3:
+glob@^7.1.3:
version "7.2.0"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
@@ -2451,6 +2893,18 @@ glob@7.2.0, glob@^7.1.3:
once "^1.3.0"
path-is-absolute "^1.0.0"
+glob@^7.1.4:
+ version "7.2.3"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
+ integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.1.1"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
global-dirs@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz"
@@ -2463,10 +2917,10 @@ globals@^11.12.0:
resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz"
integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
-globals@^13.6.0, globals@^13.9.0:
- version "13.10.0"
- resolved "https://registry.npmjs.org/globals/-/globals-13.10.0.tgz"
- integrity sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g==
+globals@^13.19.0:
+ version "13.19.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-13.19.0.tgz#7a42de8e6ad4f7242fbcca27ea5b23aca367b5c8"
+ integrity sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==
dependencies:
type-fest "^0.20.2"
@@ -2475,16 +2929,16 @@ globalyzer@0.1.0:
resolved "https://registry.yarnpkg.com/globalyzer/-/globalyzer-0.1.0.tgz#cb76da79555669a1519d5a8edf093afaa0bf1465"
integrity sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==
-globby@^11.0.3:
- version "11.0.4"
- resolved "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz"
- integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==
+globby@^11.1.0:
+ version "11.1.0"
+ resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
+ integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
dependencies:
array-union "^2.1.0"
dir-glob "^3.0.1"
- fast-glob "^3.1.1"
- ignore "^5.1.4"
- merge2 "^1.3.0"
+ fast-glob "^3.2.9"
+ ignore "^5.2.0"
+ merge2 "^1.4.1"
slash "^3.0.0"
globrex@^0.1.2:
@@ -2502,30 +2956,10 @@ graceful-fs@^4.1.6, graceful-fs@^4.2.0:
resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz"
integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==
-graphlib@^2.1.8:
- version "2.1.8"
- resolved "https://registry.yarnpkg.com/graphlib/-/graphlib-2.1.8.tgz#5761d414737870084c92ec7b5dbcb0592c9d35da"
- integrity sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==
- dependencies:
- lodash "^4.17.15"
-
-growl@1.10.5:
- version "1.10.5"
- resolved "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz"
- integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==
-
-har-schema@^2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz"
- integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
-
-har-validator@~5.1.3:
- version "5.1.5"
- resolved "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz"
- integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==
- dependencies:
- ajv "^6.12.3"
- har-schema "^2.0.0"
+grapheme-splitter@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e"
+ integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==
has-ansi@^2.0.0:
version "2.0.0"
@@ -2556,14 +2990,31 @@ he@1.2.0:
resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz"
integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
-http-signature@~1.2.0:
- version "1.2.0"
- resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz"
- integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=
+heap@^0.2.6:
+ version "0.2.7"
+ resolved "https://registry.yarnpkg.com/heap/-/heap-0.2.7.tgz#1e6adf711d3f27ce35a81fe3b7bd576c2260a8fc"
+ integrity sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg==
+
+html-encoding-sniffer@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz#2cb1a8cf0db52414776e5b2a7a04d5dd98158de9"
+ integrity sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==
dependencies:
- assert-plus "^1.0.0"
- jsprim "^1.2.2"
- sshpk "^1.7.0"
+ whatwg-encoding "^2.0.0"
+
+html-escaper@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453"
+ integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==
+
+http-proxy-agent@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43"
+ integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==
+ dependencies:
+ "@tootallnate/once" "2"
+ agent-base "6"
+ debug "4"
http-signature@~1.3.6:
version "1.3.6"
@@ -2574,29 +3025,30 @@ http-signature@~1.3.6:
jsprim "^2.0.2"
sshpk "^1.14.1"
+https-proxy-agent@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6"
+ integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==
+ dependencies:
+ agent-base "6"
+ debug "4"
+
human-signals@^1.1.1:
version "1.1.1"
resolved "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz"
integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==
-human-signals@^2.1.0:
- version "2.1.0"
- resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz"
- integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==
+human-signals@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5"
+ integrity sha512-rQLskxnM/5OCldHo+wNXbpVgDn5A17CUoKX+7Sokwaknlq7CdSnphy0W39GU8dw59XiCXmFXDg4fRuckQRKewQ==
-husky@^7.0.4:
- version "7.0.4"
- resolved "https://registry.yarnpkg.com/husky/-/husky-7.0.4.tgz#242048245dc49c8fb1bf0cc7cfb98dd722531535"
- integrity sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==
+husky@^8.0.2:
+ version "8.0.2"
+ resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.2.tgz#5816a60db02650f1f22c8b69b928fd6bcd77a236"
+ integrity sha512-Tkv80jtvbnkK3mYWxPZePGFpQ/tT3HNSs/sasF9P2YfkMezDl3ON37YN6jUUI4eTg5LcyVynlb6r4eyvOmspvg==
-iconv-lite@0.4:
- version "0.4.24"
- resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
- integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
- dependencies:
- safer-buffer ">= 2.1.2 < 3"
-
-iconv-lite@0.6:
+iconv-lite@0.6, iconv-lite@0.6.3:
version "0.6.3"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==
@@ -2608,27 +3060,15 @@ icss-utils@^5.0.0, icss-utils@^5.1.0:
resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae"
integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==
-idb-keyval@^5.1.3:
- version "5.1.3"
- resolved "https://registry.yarnpkg.com/idb-keyval/-/idb-keyval-5.1.3.tgz#6ef5dff371897c23f144322dc6374eadd6a345d9"
- integrity sha512-N9HbCK/FaXSRVI+k6Xq4QgWxbcZRUv+SfG1y7HJ28JdV8yEJu6k+C/YLea7npGckX2DQJeEVuMc4bKOBeU/2LQ==
- dependencies:
- safari-14-idb-fix "^1.0.4"
-
ieee754@^1.1.13:
version "1.2.1"
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
-ignore@^4.0.6:
- version "4.0.6"
- resolved "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz"
- integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
-
-ignore@^5.1.4, ignore@^5.1.8:
- version "5.1.8"
- resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57"
- integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==
+ignore@^5.2.0:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a"
+ integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==
import-fresh@^3.0.0, import-fresh@^3.2.1:
version "3.3.0"
@@ -2676,10 +3116,10 @@ ini@^1.3.4:
resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009"
integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==
-is-arrayish@^0.2.1:
- version "0.2.1"
- resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz"
- integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
+is-arrayish@^0.3.1:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
+ integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
is-binary-path@~2.1.0:
version "2.1.0"
@@ -2695,10 +3135,10 @@ is-ci@^3.0.0:
dependencies:
ci-info "^3.1.1"
-is-core-module@^2.8.1:
- version "2.8.1"
- resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211"
- integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==
+is-core-module@^2.9.0:
+ version "2.9.0"
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69"
+ integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==
dependencies:
has "^1.0.3"
@@ -2737,21 +3177,26 @@ is-number@^7.0.0:
resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz"
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
-is-path-inside@^3.0.2:
+is-path-inside@^3.0.2, is-path-inside@^3.0.3:
version "3.0.3"
resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz"
integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==
-is-plain-obj@^2.1.0:
- version "2.1.0"
- resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz"
- integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==
+is-potential-custom-element-name@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5"
+ integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==
is-stream@^2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz"
integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==
+is-stream@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac"
+ integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==
+
is-typedarray@~1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"
@@ -2772,15 +3217,62 @@ isstream@~0.1.2:
resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz"
integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
+istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3"
+ integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==
+
+istanbul-lib-report@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#7518fe52ea44de372f460a76b5ecda9ffb73d8a6"
+ integrity sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==
+ dependencies:
+ istanbul-lib-coverage "^3.0.0"
+ make-dir "^3.0.0"
+ supports-color "^7.1.0"
+
+istanbul-reports@^3.1.4:
+ version "3.1.4"
+ resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.4.tgz#1b6f068ecbc6c331040aab5741991273e609e40c"
+ integrity sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==
+ dependencies:
+ html-escaper "^2.0.0"
+ istanbul-lib-report "^3.0.0"
+
its-name@1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/its-name/-/its-name-1.0.0.tgz"
integrity sha1-IGXxiD7LVoxl9xEt2/EjQB+uSvA=
-js-base64@^3.7.2:
- version "3.7.2"
- resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.2.tgz#816d11d81a8aff241603d19ce5761e13e41d7745"
- integrity sha512-NnRs6dsyqUXejqk/yv2aiXlAvOs56sLkX6nUdeaNezI5LFFLlsZjOThmwnrcwh5ZZRwZlCMnVAY3CvhIhoVEKQ==
+jest-diff@^28.1.1:
+ version "28.1.1"
+ resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.1.1.tgz#1a3eedfd81ae79810931c63a1d0f201b9120106c"
+ integrity sha512-/MUUxeR2fHbqHoMMiffe/Afm+U8U4olFRJ0hiVG2lZatPJcnGxx292ustVu7bULhjV65IYMxRdploAKLbcrsyg==
+ dependencies:
+ chalk "^4.0.0"
+ diff-sequences "^28.1.1"
+ jest-get-type "^28.0.2"
+ pretty-format "^28.1.1"
+
+jest-get-type@^28.0.2:
+ version "28.0.2"
+ resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-28.0.2.tgz#34622e628e4fdcd793d46db8a242227901fcf203"
+ integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==
+
+jest-matcher-utils@^28.0.0:
+ version "28.1.1"
+ resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.1.1.tgz#a7c4653c2b782ec96796eb3088060720f1e29304"
+ integrity sha512-NPJPRWrbmR2nAJ+1nmnfcKKzSwgfaciCCrYZzVnNoxVoyusYWIjkBMNvu0RHJe7dNj4hH3uZOPZsQA+xAYWqsw==
+ dependencies:
+ chalk "^4.0.0"
+ jest-diff "^28.1.1"
+ jest-get-type "^28.0.2"
+ pretty-format "^28.1.1"
+
+js-base64@3.7.4:
+ version "3.7.4"
+ resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.4.tgz#af95b20f23efc8034afd2d1cc5b9d0adf7419037"
+ integrity sha512-wpM/wi20Tl+3ifTyi0RdDckS4YTD4Lf953mBRrpG8547T7hInHNPEj8+ck4gB8VDcGyeAWFK++Wb/fU1BeavKQ==
js-beautify@1.10.3:
version "1.10.3"
@@ -2793,51 +3285,65 @@ js-beautify@1.10.3:
mkdirp "~0.5.1"
nopt "~4.0.1"
+js-sdsl@^4.1.4:
+ version "4.1.4"
+ resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.1.4.tgz#78793c90f80e8430b7d8dc94515b6c77d98a26a6"
+ integrity sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw==
+
js-tokens@^4.0.0:
version "4.0.0"
resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
-js-yaml@4.1.0:
+js-yaml@^4.1.0:
version "4.1.0"
- resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
dependencies:
argparse "^2.0.1"
-js-yaml@^3.13.1:
- version "3.14.1"
- resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz"
- integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
- dependencies:
- argparse "^1.0.7"
- esprima "^4.0.0"
-
jsbn@~0.1.0:
version "0.1.1"
resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz"
integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
-json-parse-even-better-errors@^2.3.0:
- version "2.3.1"
- resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz"
- integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==
+jsdom@20.0.3:
+ version "20.0.3"
+ resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.3.tgz#886a41ba1d4726f67a8858028c99489fed6ad4db"
+ integrity sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==
+ dependencies:
+ abab "^2.0.6"
+ acorn "^8.8.1"
+ acorn-globals "^7.0.0"
+ cssom "^0.5.0"
+ cssstyle "^2.3.0"
+ data-urls "^3.0.2"
+ decimal.js "^10.4.2"
+ domexception "^4.0.0"
+ escodegen "^2.0.0"
+ form-data "^4.0.0"
+ html-encoding-sniffer "^3.0.0"
+ http-proxy-agent "^5.0.0"
+ https-proxy-agent "^5.0.1"
+ is-potential-custom-element-name "^1.0.1"
+ nwsapi "^2.2.2"
+ parse5 "^7.1.1"
+ saxes "^6.0.0"
+ symbol-tree "^3.2.4"
+ tough-cookie "^4.1.2"
+ w3c-xmlserializer "^4.0.0"
+ webidl-conversions "^7.0.0"
+ whatwg-encoding "^2.0.0"
+ whatwg-mimetype "^3.0.0"
+ whatwg-url "^11.0.0"
+ ws "^8.11.0"
+ xml-name-validator "^4.0.0"
json-schema-traverse@^0.4.1:
version "0.4.1"
resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"
integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
-json-schema-traverse@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz"
- integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
-
-json-schema@0.2.3:
- version "0.2.3"
- resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz"
- integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
-
json-schema@0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5"
@@ -2853,6 +3359,11 @@ json-stringify-safe@~5.0.1:
resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"
integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
+jsonc-parser@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76"
+ integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==
+
jsonfile@^6.0.1:
version "6.1.0"
resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz"
@@ -2862,16 +3373,6 @@ jsonfile@^6.0.1:
optionalDependencies:
graceful-fs "^4.1.6"
-jsprim@^1.2.2:
- version "1.4.1"
- resolved "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz"
- integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=
- dependencies:
- assert-plus "1.0.0"
- extsprintf "1.3.0"
- json-schema "0.2.3"
- verror "1.10.0"
-
jsprim@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-2.0.2.tgz#77ca23dbcd4135cd364800d22ff82c2185803d4d"
@@ -2882,15 +3383,25 @@ jsprim@^2.0.2:
json-schema "0.4.0"
verror "1.10.0"
-khroma@^1.4.1:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/khroma/-/khroma-1.4.1.tgz#ad6a5b6a972befc5112ce5129887a1a83af2c003"
- integrity sha512-+GmxKvmiRuCcUYDgR7g5Ngo0JEDeOsGdNONdU2zsiBQaK4z19Y2NvXqfEDE0ZiIrg45GTZyAnPLVsLZZACYm3Q==
+khroma@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/khroma/-/khroma-2.0.0.tgz#7577de98aed9f36c7a474c4d453d94c0d6c6588b"
+ integrity sha512-2J8rDNlQWbtiNYThZRvmMv5yt44ZakX+Tz5ZIp/mN1pt4snn+m030Va5Z4v8xA0cQFDXBwO/8i42xL4QPsVk3g==
-kleur@^4.1.4:
- version "4.1.4"
- resolved "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz"
- integrity sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==
+kleur@^4.1.5:
+ version "4.1.5"
+ resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780"
+ integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==
+
+layout-base@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/layout-base/-/layout-base-1.0.2.tgz#1291e296883c322a9dd4c5dd82063721b53e26e2"
+ integrity sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==
+
+layout-base@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/layout-base/-/layout-base-2.0.1.tgz#d0337913586c90f9c2c075292069f5c2da5dd285"
+ integrity sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==
lazy-ass@1.6.0, lazy-ass@^1.6.0:
version "1.6.0"
@@ -2905,34 +3416,37 @@ levn@^0.4.1:
prelude-ls "^1.2.1"
type-check "~0.4.0"
-lilconfig@2.0.4, lilconfig@^2.0.3, lilconfig@^2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.4.tgz#f4507d043d7058b380b6a8f5cb7bcd4b34cee082"
- integrity sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==
+levn@~0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
+ integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==
+ dependencies:
+ prelude-ls "~1.1.2"
+ type-check "~0.3.2"
-lines-and-columns@^1.1.6:
- version "1.1.6"
- resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz"
- integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
+lilconfig@2.0.6, lilconfig@^2.0.3, lilconfig@^2.0.5, lilconfig@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4"
+ integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==
-lint-staged@^12.3.3:
- version "12.3.3"
- resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-12.3.3.tgz#0a465962fe53baa2b4b9da50801ead49a910e03b"
- integrity sha512-OqcLsqcPOqzvsfkxjeBpZylgJ3SRG1RYqc9LxC6tkt6tNsq1bNVkAixBwX09f6CobcHswzqVOCBpFR1Fck0+ag==
+lint-staged@13.1.1:
+ version "13.1.1"
+ resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-13.1.1.tgz#db61636850660e291a6885da65d8e79850bd8307"
+ integrity sha512-LLJLO0Kdbcv2a+CvSF4p1M7jBZOajKSMpBUvyR8+bXccsqPER0/NxTFQSpNHjqwV9kM3tkHczYerTB5wI+bksQ==
dependencies:
cli-truncate "^3.1.0"
- colorette "^2.0.16"
- commander "^8.3.0"
- debug "^4.3.3"
- execa "^5.1.1"
- lilconfig "2.0.4"
- listr2 "^4.0.1"
- micromatch "^4.0.4"
+ colorette "^2.0.19"
+ commander "^9.4.1"
+ debug "^4.3.4"
+ execa "^6.1.0"
+ lilconfig "2.0.6"
+ listr2 "^5.0.5"
+ micromatch "^4.0.5"
normalize-path "^3.0.0"
- object-inspect "^1.12.0"
+ object-inspect "^1.12.2"
+ pidtree "^0.6.0"
string-argv "^0.3.1"
- supports-color "^9.2.1"
- yaml "^1.10.2"
+ yaml "^2.1.3"
listr2@^3.8.3:
version "3.13.5"
@@ -2948,20 +3462,25 @@ listr2@^3.8.3:
through "^2.3.8"
wrap-ansi "^7.0.0"
-listr2@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/listr2/-/listr2-4.0.1.tgz#e050c1fd390276e191f582603d6e3531cd6fd2b3"
- integrity sha512-D65Nl+zyYHL2jQBGmxtH/pU8koPZo5C8iCNE8EoB04RwPgQG1wuaKwVbeZv9LJpiH4Nxs0FCp+nNcG8OqpniiA==
+listr2@^5.0.5:
+ version "5.0.5"
+ resolved "https://registry.yarnpkg.com/listr2/-/listr2-5.0.5.tgz#4651a940d12b984abecfae4450e40edd5695f808"
+ integrity sha512-DpBel6fczu7oQKTXMekeprc0o3XDgGMkD7JNYyX+X0xbwK+xgrx9dcyKoXKqpLSUvAWfmoePS7kavniOcq3r4w==
dependencies:
cli-truncate "^2.1.0"
- colorette "^2.0.16"
+ colorette "^2.0.19"
log-update "^4.0.0"
p-map "^4.0.0"
rfdc "^1.3.0"
- rxjs "^7.5.2"
+ rxjs "^7.5.6"
through "^2.3.8"
wrap-ansi "^7.0.0"
+local-pkg@^0.4.2:
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.2.tgz#13107310b77e74a0e513147a131a2ba288176c2f"
+ integrity sha512-mlERgSPrbxU3BP4qBqAvvwlgW4MTg78iwJdGGnv7kibKjWcJksrG3t6LB5lXI93wXRDvG4NpUgJFmTG4T6rdrg==
+
locate-path@^6.0.0:
version "6.0.0"
resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz"
@@ -2969,10 +3488,10 @@ locate-path@^6.0.0:
dependencies:
p-locate "^5.0.0"
-lodash.clonedeep@^4.5.0:
- version "4.5.0"
- resolved "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz"
- integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
+lodash-es@^4.17.21:
+ version "4.17.21"
+ resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
+ integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
lodash.memoize@^4.1.2:
version "4.1.2"
@@ -2989,11 +3508,6 @@ lodash.once@^4.1.1:
resolved "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz"
integrity sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=
-lodash.truncate@^4.4.2:
- version "4.4.2"
- resolved "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz"
- integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=
-
lodash.uniq@^4.5.0:
version "4.5.0"
resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz"
@@ -3004,7 +3518,7 @@ lodash@^4.17.15, lodash@^4.17.21:
resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
-log-symbols@4.1.0, log-symbols@^4.0.0:
+log-symbols@^4.0.0:
version "4.1.0"
resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz"
integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==
@@ -3029,6 +3543,13 @@ loupe@^2.3.1:
dependencies:
get-func-name "^2.0.0"
+loupe@^2.3.6:
+ version "2.3.6"
+ resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.6.tgz#76e4af498103c532d1ecc9be102036a21f787b53"
+ integrity sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==
+ dependencies:
+ get-func-name "^2.0.0"
+
lru-cache@^4.1.5:
version "4.1.5"
resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz"
@@ -3044,6 +3565,11 @@ lru-cache@^6.0.0:
dependencies:
yallist "^4.0.0"
+lz-string@^1.4.4:
+ version "1.4.4"
+ resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26"
+ integrity sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==
+
magic-string@^0.25.7:
version "0.25.7"
resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz"
@@ -3051,6 +3577,20 @@ magic-string@^0.25.7:
dependencies:
sourcemap-codec "^1.4.4"
+magic-string@^0.27.0:
+ version "0.27.0"
+ resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.27.0.tgz#e4a3413b4bab6d98d2becffd48b4a257effdbbf3"
+ integrity sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==
+ dependencies:
+ "@jridgewell/sourcemap-codec" "^1.4.13"
+
+make-dir@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
+ integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
+ dependencies:
+ semver "^6.0.0"
+
mdn-data@2.0.14:
version "2.0.14"
resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz"
@@ -3061,33 +3601,34 @@ merge-stream@^2.0.0:
resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz"
integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
-merge2@^1.3.0:
+merge2@^1.3.0, merge2@^1.4.1:
version "1.4.1"
resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
-mermaid@8.14.0:
- version "8.14.0"
- resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-8.14.0.tgz#ef589b0537f56d6340069070edb51719a4faba00"
- integrity sha512-ITSHjwVaby1Li738sxhF48sLTxcNyUAoWfoqyztL1f7J6JOLpHOuQPNLBb6lxGPUA0u7xP9IRULgvod0dKu35A==
+mermaid@9.3.0:
+ version "9.3.0"
+ resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-9.3.0.tgz#8bd7c4a44b53e4e85c53a0a474442e9c273494ae"
+ integrity sha512-mGl0BM19TD/HbU/LmlaZbjBi//tojelg8P/mxD6pPZTAYaI+VawcyBdqRsoUHSc7j71PrMdJ3HBadoQNdvP5cg==
dependencies:
- "@braintree/sanitize-url" "^3.1.0"
+ "@braintree/sanitize-url" "^6.0.0"
d3 "^7.0.0"
- dagre "^0.8.5"
- dagre-d3 "^0.6.4"
- dompurify "2.3.5"
- graphlib "^2.1.8"
- khroma "^1.4.1"
+ dagre-d3-es "7.0.6"
+ dompurify "2.4.1"
+ khroma "^2.0.0"
+ lodash-es "^4.17.21"
moment-mini "^2.24.0"
- stylis "^4.0.10"
+ non-layered-tidy-tree-layout "^2.0.2"
+ stylis "^4.1.2"
+ uuid "^9.0.0"
-micromatch@^4.0.4:
- version "4.0.4"
- resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz"
- integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==
+micromatch@^4.0.4, micromatch@^4.0.5:
+ version "4.0.5"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
+ integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
dependencies:
- braces "^3.0.1"
- picomatch "^2.2.3"
+ braces "^3.0.2"
+ picomatch "^2.3.1"
mime-db@1.47.0:
version "1.47.0"
@@ -3101,27 +3642,37 @@ mime-types@^2.1.12, mime-types@~2.1.19:
dependencies:
mime-db "1.47.0"
+mime@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7"
+ integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==
+
mimic-fn@^2.1.0:
version "2.1.0"
resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz"
integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
+mimic-fn@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc"
+ integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==
+
min-indent@^1.0.0:
version "1.0.1"
resolved "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz"
integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==
-minimatch@3.0.4, minimatch@^3.0.4:
- version "3.0.4"
- resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"
- integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
+minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
+ integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
dependencies:
brace-expansion "^1.1.7"
-minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5:
- version "1.2.5"
- resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz"
- integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
+minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6:
+ version "1.2.6"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
+ integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
mkdirp@^0.5.1, mkdirp@~0.5.1:
version "0.5.5"
@@ -3130,61 +3681,56 @@ mkdirp@^0.5.1, mkdirp@~0.5.1:
dependencies:
minimist "^1.2.5"
-mocha@^9.2.0:
- version "9.2.0"
- resolved "https://registry.yarnpkg.com/mocha/-/mocha-9.2.0.tgz#2bfba73d46e392901f877ab9a47b7c9c5d0275cc"
- integrity sha512-kNn7E8g2SzVcq0a77dkphPsDSN7P+iYkqE0ZsGCYWRsoiKjOt+NvXfaagik8vuDa6W5Zw3qxe8Jfpt5qKf+6/Q==
+mlly@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.0.0.tgz#d38ca6e33ab89b60654f71ef08931d51e83d3569"
+ integrity sha512-QL108Hwt+u9bXdWgOI0dhzZfACovn5Aen4Xvc8Jasd9ouRH4NjnrXEiyP3nVvJo91zPlYjVRckta0Nt2zfoR6g==
dependencies:
- "@ungap/promise-all-settled" "1.1.2"
- ansi-colors "4.1.1"
- browser-stdout "1.3.1"
- chokidar "3.5.3"
- debug "4.3.3"
- diff "5.0.0"
- escape-string-regexp "4.0.0"
- find-up "5.0.0"
- glob "7.2.0"
- growl "1.10.5"
- he "1.2.0"
- js-yaml "4.1.0"
- log-symbols "4.1.0"
- minimatch "3.0.4"
- ms "2.1.3"
- nanoid "3.2.0"
- serialize-javascript "6.0.0"
- strip-json-comments "3.1.1"
- supports-color "8.1.1"
- which "2.0.2"
- workerpool "6.2.0"
- yargs "16.2.0"
- yargs-parser "20.2.4"
- yargs-unparser "2.0.0"
+ acorn "^8.8.1"
+ pathe "^1.0.0"
+ pkg-types "^1.0.0"
+ ufo "^1.0.0"
+
+mlly@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.1.0.tgz#9e23c5e675ef7b10cc47ee6281795cb1a7aa3aa2"
+ integrity sha512-cwzBrBfwGC1gYJyfcy8TcZU1f+dbH/T+TuOhtYP2wLv/Fb51/uV7HJQfBPtEupZ2ORLRU1EKFS/QfS3eo9+kBQ==
+ dependencies:
+ acorn "^8.8.1"
+ pathe "^1.0.0"
+ pkg-types "^1.0.1"
+ ufo "^1.0.1"
moment-mini@^2.24.0:
- version "2.24.0"
- resolved "https://registry.yarnpkg.com/moment-mini/-/moment-mini-2.24.0.tgz#fa68d98f7fe93ae65bf1262f6abb5fb6983d8d18"
- integrity sha512-9ARkWHBs+6YJIvrIp0Ik5tyTTtP9PoV0Ssu2Ocq5y9v8+NOOpWiRshAp8c4rZVWTOe+157on/5G+zj5pwIQFEQ==
+ version "2.29.4"
+ resolved "https://registry.yarnpkg.com/moment-mini/-/moment-mini-2.29.4.tgz#cbbcdc58ce1b267506f28ea6668dbe060a32758f"
+ integrity sha512-uhXpYwHFeiTbY9KSgPPRoo1nt8OxNVdMVoTBYHfSEKeRkIkwGpO+gERmhuhBtzfaeOyTkykSrm2+noJBgqt3Hg==
-moment@^2.29.1:
- version "2.29.1"
- resolved "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz"
- integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==
+moment@2.29.4:
+ version "2.29.4"
+ resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108"
+ integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==
-monaco-editor@^0.32.1:
- version "0.32.1"
- resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.32.1.tgz#75a9bba379a923fd8e9ce99cddcab3a4e7657615"
- integrity sha512-LUt2wsUvQmEi2tfTOK+tjAPvt7eQ+K5C4rZPr6SeuyzjAuAHrIvlUloTcOiGjZW3fn3a/jFQCONrEJbNOaCqbA==
+monaco-editor@0.34.1:
+ version "0.34.1"
+ resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.34.1.tgz#1b75c4ad6bc4c1f9da656d740d98e0b850a22f87"
+ integrity sha512-FKc80TyiMaruhJKKPz5SpJPIjL+dflGvz4CpuThaPMc94AyN7SeC9HQ8hrvaxX7EyHdJcUY5i4D0gNyJj1vSZQ==
-monaco-mermaid@^1.0.3:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/monaco-mermaid/-/monaco-mermaid-1.0.3.tgz#807bf5a0635723684029646b716a2ba97dd6a175"
- integrity sha512-SOtoCXxfUXCh8j09OhgambkQ8eqbifaK2YYt2lAo5YXIk/iRXdprvBVhLOJNx1gTMtRNINixALGaTy5StYfiqw==
+monaco-mermaid@1.0.8:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/monaco-mermaid/-/monaco-mermaid-1.0.8.tgz#6bc461c0529f5a8d707d03ad88c90425107fc127"
+ integrity sha512-D6v777Vkt62+ODZkoX9guv5Jlqe50tu+dZnnDQ86lAba4fIaFTjG3o8tbToniE1WCfIPGW6t+X/uXQuSPdkfMA==
mri@^1.1.0:
version "1.1.6"
resolved "https://registry.npmjs.org/mri/-/mri-1.1.6.tgz"
integrity sha512-oi1b3MfbyGa7FJMP9GmLTttni5JoICpYBRlq+x5V16fZbLsnL9N3wFqqIm/nIG43FjUFkFh9Epzp/kzUGUnJxQ==
+mrmime@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27"
+ integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==
+
ms@2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"
@@ -3195,15 +3741,20 @@ ms@2.1.2:
resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
-ms@2.1.3, ms@^2.1.1:
+ms@^2.1.1:
version "2.1.3"
resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
-nanoid@3.2.0, nanoid@^3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.2.0.tgz#62667522da6673971cca916a6d3eff3f415ff80c"
- integrity sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==
+nanoid@^3.3.4:
+ version "3.3.4"
+ resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab"
+ integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==
+
+natural-compare-lite@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4"
+ integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==
natural-compare@^1.4.0:
version "1.4.0"
@@ -3215,18 +3766,23 @@ node-addon-api@^1.7.1:
resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz"
integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==
-node-html-parser@^5.2.0:
- version "5.2.0"
- resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-5.2.0.tgz#6f29fd00d79f65334e7e20200964644207925607"
- integrity sha512-fmiwLfQu+J2A0zjwSEkztSHexAf5qq/WoiL/Hgo1K7JpfEP+OGWY5maG0kGaM+IFVdixF/1QbyXaQ3h4cGfeLw==
+node-html-parser@^6.1.4:
+ version "6.1.4"
+ resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-6.1.4.tgz#763cd362497e427d51fc73dda3dcd8ac52ba85a3"
+ integrity sha512-3muP9Uy/Pz7bQa9TNYVQzWJhNZMqyCx7xJle8kz2/y1UgzAUyXXShc1IcPaJy6u07CE3K5rQcRwlvHzmlySRjg==
dependencies:
- css-select "^4.1.3"
+ css-select "^5.1.0"
he "1.2.0"
-node-releases@^2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5"
- integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==
+node-releases@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503"
+ integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==
+
+non-layered-tidy-tree-layout@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/non-layered-tidy-tree-layout/-/non-layered-tidy-tree-layout-2.0.2.tgz#57d35d13c356643fc296a55fb11ac15e74da7804"
+ integrity sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw==
nopt@~4.0.1:
version "4.0.3"
@@ -3251,39 +3807,46 @@ normalize-url@^6.0.1:
resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-6.0.1.tgz"
integrity sha512-VU4pzAuh7Kip71XEmO9aNREYAdMHFGTVj/i+CaTImS8x0i1d3jUZkXhqluy/PRgjPLMgsLQulYY3PJ/aSbSjpQ==
-npm-run-path@^4.0.0, npm-run-path@^4.0.1:
+npm-run-path@^4.0.0:
version "4.0.1"
resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz"
integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==
dependencies:
path-key "^3.0.0"
-nth-check@^2.0.0:
+npm-run-path@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00"
+ integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==
+ dependencies:
+ path-key "^4.0.0"
+
+nth-check@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2"
integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==
dependencies:
boolbase "^1.0.0"
-oauth-sign@~0.9.0:
- version "0.9.0"
- resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz"
- integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
+nwsapi@^2.2.2:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.2.tgz#e5418863e7905df67d51ec95938d67bf801f0bb0"
+ integrity sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==
object-assign@^4.0.1:
version "4.1.1"
resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
-object-hash@^2.2.0:
- version "2.2.0"
- resolved "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz"
- integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==
+object-hash@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9"
+ integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==
-object-inspect@^1.12.0:
- version "1.12.0"
- resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0"
- integrity sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==
+object-inspect@^1.12.2:
+ version "1.12.2"
+ resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea"
+ integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==
once@^1.3.0, once@^1.3.1, once@^1.4.0:
version "1.4.0"
@@ -3292,13 +3855,32 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0:
dependencies:
wrappy "1"
-onetime@^5.1.0, onetime@^5.1.2:
+onetime@^5.1.0:
version "5.1.2"
resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz"
integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==
dependencies:
mimic-fn "^2.1.0"
+onetime@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4"
+ integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==
+ dependencies:
+ mimic-fn "^4.0.0"
+
+optionator@^0.8.1:
+ version "0.8.3"
+ resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495"
+ integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==
+ dependencies:
+ deep-is "~0.1.3"
+ fast-levenshtein "~2.0.6"
+ levn "~0.3.0"
+ prelude-ls "~1.1.2"
+ type-check "~0.3.2"
+ word-wrap "~1.2.3"
+
optionator@^0.9.1:
version "0.9.1"
resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz"
@@ -3341,6 +3923,13 @@ p-limit@^3.0.2:
dependencies:
yocto-queue "^0.1.0"
+p-limit@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644"
+ integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==
+ dependencies:
+ yocto-queue "^1.0.0"
+
p-locate@^5.0.0:
version "5.0.0"
resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz"
@@ -3355,10 +3944,10 @@ p-map@^4.0.0:
dependencies:
aggregate-error "^3.0.0"
-pako@2.0.4:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/pako/-/pako-2.0.4.tgz#6cebc4bbb0b6c73b0d5b8d7e8476e2b2fbea576d"
- integrity sha512-v8tweI900AUkZN6heMU/4Uy4cXRc2AYNRggVmTR+dEncawDJgCdLMximOVA2p4qO57WMynangsfGRb5WD6L1Bg==
+pako@2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86"
+ integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==
parent-module@^1.0.0:
version "1.0.1"
@@ -3367,15 +3956,12 @@ parent-module@^1.0.0:
dependencies:
callsites "^3.0.0"
-parse-json@^5.0.0:
- version "5.2.0"
- resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz"
- integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==
+parse5@^7.1.1:
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.1.tgz#4649f940ccfb95d8754f37f73078ea20afe0c746"
+ integrity sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==
dependencies:
- "@babel/code-frame" "^7.0.0"
- error-ex "^1.3.1"
- json-parse-even-better-errors "^2.3.0"
- lines-and-columns "^1.1.6"
+ entities "^4.4.0"
path-exists@^4.0.0:
version "4.0.0"
@@ -3392,6 +3978,11 @@ path-key@^3.0.0, path-key@^3.1.0:
resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz"
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
+path-key@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18"
+ integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==
+
path-parse@^1.0.7:
version "1.0.7"
resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz"
@@ -3402,6 +3993,16 @@ path-type@^4.0.0:
resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz"
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
+pathe@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.0.0.tgz#135fc11464fc57c84ef93d5c5ed21247e24571df"
+ integrity sha512-nPdMG0Pd09HuSsr7QOKUXO2Jr9eqaDiZvDwdyIhNG5SHYujkQHYKDfGQkulBxvbDHz8oHLsTgKN86LSwYzSHAg==
+
+pathe@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.0.tgz#e2e13f6c62b31a3289af4ba19886c230f295ec03"
+ integrity sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==
+
pathval@^1.1.1:
version "1.1.1"
resolved "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz"
@@ -3422,60 +4023,94 @@ picocolors@^1.0.0:
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
-picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3:
+picomatch@^2.0.4, picomatch@^2.2.1:
version "2.3.0"
resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz"
integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==
-pify@^2.2.0:
+picomatch@^2.3.1:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
+ integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
+
+pidtree@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c"
+ integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==
+
+pify@^2.2.0, pify@^2.3.0:
version "2.3.0"
resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw=
-postcss-calc@^8.2.0:
- version "8.2.2"
- resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.2.2.tgz#9706e7399e8ec8b61a47830dcf1f21391af23373"
- integrity sha512-B5R0UeB4zLJvxNt1FVCaDZULdzsKLPc6FhjFJ+xwFiq7VG4i9cuaJLxVjNtExNK8ocm3n2o4unXXLiVX1SCqxA==
+pkg-types@^1.0.0, pkg-types@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.0.1.tgz#25234407f9dc63409af45ced9407625ff446a761"
+ integrity sha512-jHv9HB+Ho7dj6ItwppRDDl0iZRYBD0jsakHXtFgoLr+cHSF6xC+QL54sJmWxyGxOLYSHm0afhXhXcQDQqH9z8g==
dependencies:
- postcss-selector-parser "^6.0.2"
- postcss-value-parser "^4.0.2"
+ jsonc-parser "^3.2.0"
+ mlly "^1.0.0"
+ pathe "^1.0.0"
-postcss-colormin@^5.2.5:
- version "5.2.5"
- resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.2.5.tgz#d1fc269ac2ad03fe641d462b5d1dada35c69968a"
- integrity sha512-+X30aDaGYq81mFqwyPpnYInsZQnNpdxMX0ajlY7AExCexEFkPVV+KrO7kXwayqEWL2xwEbNQ4nUO0ZsRWGnevg==
+plausible-tracker@^0.3.1:
+ version "0.3.8"
+ resolved "https://registry.yarnpkg.com/plausible-tracker/-/plausible-tracker-0.3.8.tgz#9b8b322cc41e0e1d6473869ef234deea365a5a40"
+ integrity sha512-lmOWYQ7s9KOUJ1R+YTOR3HrjdbxIS2Z4de0P/Jx2dQPteznJl2eX3tXxKClpvbfyGP59B5bbhW8ftN59HbbFSg==
+
+postcss-calc@^8.2.3:
+ version "8.2.4"
+ resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.2.4.tgz#77b9c29bfcbe8a07ff6693dc87050828889739a5"
+ integrity sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==
+ dependencies:
+ postcss-selector-parser "^6.0.9"
+ postcss-value-parser "^4.2.0"
+
+postcss-colormin@^5.3.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.3.0.tgz#3cee9e5ca62b2c27e84fce63affc0cfb5901956a"
+ integrity sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==
dependencies:
browserslist "^4.16.6"
caniuse-api "^3.0.0"
colord "^2.9.1"
postcss-value-parser "^4.2.0"
-postcss-convert-values@^5.0.4:
- version "5.0.4"
- resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.0.4.tgz#3e74dd97c581f475ae7b4500bc0a7c4fb3a6b1b6"
- integrity sha512-bugzSAyjIexdObovsPZu/sBCTHccImJxLyFgeV0MmNBm/Lw5h5XnjfML6gzEmJ3A6nyfCW7hb1JXzcsA4Zfbdw==
+postcss-convert-values@^5.1.3:
+ version "5.1.3"
+ resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz#04998bb9ba6b65aa31035d669a6af342c5f9d393"
+ integrity sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==
dependencies:
+ browserslist "^4.21.4"
postcss-value-parser "^4.2.0"
-postcss-discard-comments@^5.0.3:
- version "5.0.3"
- resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.0.3.tgz#011acb63418d600fdbe18804e1bbecb543ad2f87"
- integrity sha512-6W5BemziRoqIdAKT+1QjM4bNcJAQ7z7zk073730NHg4cUXh3/rQHHj7pmYxUB9aGhuRhBiUf0pXvIHkRwhQP0Q==
+postcss-discard-comments@^5.1.2:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz#8df5e81d2925af2780075840c1526f0660e53696"
+ integrity sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==
-postcss-discard-duplicates@^5.0.3:
- version "5.0.3"
- resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.3.tgz#10f202a4cfe9d407b73dfea7a477054d21ea0c1f"
- integrity sha512-vPtm1Mf+kp7iAENTG7jI1MN1lk+fBqL5y+qxyi4v3H+lzsXEdfS3dwUZD45KVhgzDEgduur8ycB4hMegyMTeRw==
+postcss-discard-duplicates@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz#9eb4fe8456706a4eebd6d3b7b777d07bad03e848"
+ integrity sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==
-postcss-discard-empty@^5.0.3:
- version "5.0.3"
- resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.0.3.tgz#ec185af4a3710b88933b0ff751aa157b6041dd6a"
- integrity sha512-xGJugpaXKakwKI7sSdZjUuN4V3zSzb2Y0LOlmTajFbNinEjTfVs9PFW2lmKBaC/E64WwYppfqLD03P8l9BuueA==
+postcss-discard-empty@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz#e57762343ff7f503fe53fca553d18d7f0c369c6c"
+ integrity sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==
-postcss-discard-overridden@^5.0.4:
- version "5.0.4"
- resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.0.4.tgz#cc999d6caf18ea16eff8b2b58f48ec3ddee35c9c"
- integrity sha512-3j9QH0Qh1KkdxwiZOW82cId7zdwXVQv/gRXYDnwx5pBtR1sTkU4cXRK9lp5dSdiM0r0OICO/L8J6sV1/7m0kHg==
+postcss-discard-overridden@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz#7e8c5b53325747e9d90131bb88635282fb4a276e"
+ integrity sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==
+
+postcss-import@^14.1.0:
+ version "14.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-14.1.0.tgz#a7333ffe32f0b8795303ee9e40215dac922781f0"
+ integrity sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==
+ dependencies:
+ postcss-value-parser "^4.0.0"
+ read-cache "^1.0.0"
+ resolve "^1.1.7"
postcss-js@^4.0.0:
version "4.0.0"
@@ -3484,61 +4119,69 @@ postcss-js@^4.0.0:
dependencies:
camelcase-css "^2.0.1"
-postcss-load-config@^3.1.0, postcss-load-config@^3.1.3:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.3.tgz#21935b2c43b9a86e6581a576ca7ee1bde2bd1d23"
- integrity sha512-5EYgaM9auHGtO//ljHH+v/aC/TQ5LHXtL7bQajNAUBKUVKiYE8rYpFms7+V26D9FncaGe2zwCoPQsFKb5zF/Hw==
+postcss-load-config@4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.1.tgz#152383f481c2758274404e4962743191d73875bd"
+ integrity sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==
dependencies:
- lilconfig "^2.0.4"
+ lilconfig "^2.0.5"
+ yaml "^2.1.1"
+
+postcss-load-config@^3.1.0, postcss-load-config@^3.1.4:
+ version "3.1.4"
+ resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz#1ab2571faf84bb078877e1d07905eabe9ebda855"
+ integrity sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==
+ dependencies:
+ lilconfig "^2.0.5"
yaml "^1.10.2"
-postcss-merge-longhand@^5.0.6:
- version "5.0.6"
- resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.0.6.tgz#090e60d5d3b3caad899f8774f8dccb33217d2166"
- integrity sha512-rkmoPwQO6ymJSmWsX6l2hHeEBQa7C4kJb9jyi5fZB1sE8nSCv7sqchoYPixRwX/yvLoZP2y6FA5kcjiByeJqDg==
+postcss-merge-longhand@^5.1.7:
+ version "5.1.7"
+ resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz#24a1bdf402d9ef0e70f568f39bdc0344d568fb16"
+ integrity sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==
dependencies:
postcss-value-parser "^4.2.0"
- stylehacks "^5.0.3"
+ stylehacks "^5.1.1"
-postcss-merge-rules@^5.0.6:
- version "5.0.6"
- resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.0.6.tgz#26b37411fe1e80202fcef61cab027265b8925f2b"
- integrity sha512-nzJWJ9yXWp8AOEpn/HFAW72WKVGD2bsLiAmgw4hDchSij27bt6TF+sIK0cJUBAYT3SGcjtGGsOR89bwkkMuMgQ==
+postcss-merge-rules@^5.1.3:
+ version "5.1.3"
+ resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.1.3.tgz#8f97679e67cc8d08677a6519afca41edf2220894"
+ integrity sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==
dependencies:
- browserslist "^4.16.6"
+ browserslist "^4.21.4"
caniuse-api "^3.0.0"
- cssnano-utils "^3.0.2"
+ cssnano-utils "^3.1.0"
postcss-selector-parser "^6.0.5"
-postcss-minify-font-values@^5.0.4:
- version "5.0.4"
- resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.0.4.tgz#627d824406b0712243221891f40a44fffe1467fd"
- integrity sha512-RN6q3tyuEesvyCYYFCRGJ41J1XFvgV+dvYGHr0CeHv8F00yILlN8Slf4t8XW4IghlfZYCeyRrANO6HpJ948ieA==
+postcss-minify-font-values@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz#f1df0014a726083d260d3bd85d7385fb89d1f01b"
+ integrity sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==
dependencies:
postcss-value-parser "^4.2.0"
-postcss-minify-gradients@^5.0.6:
- version "5.0.6"
- resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.0.6.tgz#b07cef51a93f075e94053fd972ff1cba2eaf6503"
- integrity sha512-E/dT6oVxB9nLGUTiY/rG5dX9taugv9cbLNTFad3dKxOO+BQg25Q/xo2z2ddG+ZB1CbkZYaVwx5blY8VC7R/43A==
+postcss-minify-gradients@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz#f1fe1b4f498134a5068240c2f25d46fcd236ba2c"
+ integrity sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==
dependencies:
colord "^2.9.1"
- cssnano-utils "^3.0.2"
+ cssnano-utils "^3.1.0"
postcss-value-parser "^4.2.0"
-postcss-minify-params@^5.0.5:
- version "5.0.5"
- resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.0.5.tgz#86cb624358cd45c21946f8c317893f0449396646"
- integrity sha512-YBNuq3Rz5LfLFNHb9wrvm6t859b8qIqfXsWeK7wROm3jSKNpO1Y5e8cOyBv6Acji15TgSrAwb3JkVNCqNyLvBg==
+postcss-minify-params@^5.1.4:
+ version "5.1.4"
+ resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz#c06a6c787128b3208b38c9364cfc40c8aa5d7352"
+ integrity sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==
dependencies:
- browserslist "^4.16.6"
- cssnano-utils "^3.0.2"
+ browserslist "^4.21.4"
+ cssnano-utils "^3.1.0"
postcss-value-parser "^4.2.0"
-postcss-minify-selectors@^5.1.3:
- version "5.1.3"
- resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.1.3.tgz#6ac12d52aa661fd509469d87ab2cebb0a1e3a1b5"
- integrity sha512-9RJfTiQEKA/kZhMaEXND893nBqmYQ8qYa/G+uPdVnXF6D/FzpfI6kwBtWEcHx5FqDbA79O9n6fQJfrIj6M8jvQ==
+postcss-minify-selectors@^5.2.1:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz#d4e7e6b46147b8117ea9325a915a801d5fe656c6"
+ integrity sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==
dependencies:
postcss-selector-parser "^6.0.5"
@@ -3577,126 +4220,160 @@ postcss-nested@5.0.6:
dependencies:
postcss-selector-parser "^6.0.6"
-postcss-normalize-charset@^5.0.3:
- version "5.0.3"
- resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.0.3.tgz#719fb9f9ca9835fcbd4fed8d6e0d72a79e7b5472"
- integrity sha512-iKEplDBco9EfH7sx4ut7R2r/dwTnUqyfACf62Unc9UiyFuI7uUqZZtY+u+qp7g8Qszl/U28HIfcsI3pEABWFfA==
+postcss-nested@6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.0.0.tgz#1572f1984736578f360cffc7eb7dca69e30d1735"
+ integrity sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==
+ dependencies:
+ postcss-selector-parser "^6.0.10"
-postcss-normalize-display-values@^5.0.3:
- version "5.0.3"
- resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.3.tgz#94cc82e20c51cc4ffba6b36e9618adc1e50db8c1"
- integrity sha512-FIV5FY/qs4Ja32jiDb5mVj5iWBlS3N8tFcw2yg98+8MkRgyhtnBgSC0lxU+16AMHbjX5fbSJgw5AXLMolonuRQ==
+postcss-normalize-charset@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz#9302de0b29094b52c259e9b2cf8dc0879879f0ed"
+ integrity sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==
+
+postcss-normalize-display-values@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz#72abbae58081960e9edd7200fcf21ab8325c3da8"
+ integrity sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==
dependencies:
postcss-value-parser "^4.2.0"
-postcss-normalize-positions@^5.0.4:
- version "5.0.4"
- resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.0.4.tgz#4001f38c99675437b83277836fb4291887fcc6cc"
- integrity sha512-qynirjBX0Lc73ROomZE3lzzmXXTu48/QiEzKgMeqh28+MfuHLsuqC9po4kj84igZqqFGovz8F8hf44hA3dPYmQ==
+postcss-normalize-positions@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz#ef97279d894087b59325b45c47f1e863daefbb92"
+ integrity sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==
dependencies:
postcss-value-parser "^4.2.0"
-postcss-normalize-repeat-style@^5.0.4:
- version "5.0.4"
- resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.4.tgz#d005adf9ee45fae78b673031a376c0c871315145"
- integrity sha512-Innt+wctD7YpfeDR7r5Ik6krdyppyAg2HBRpX88fo5AYzC1Ut/l3xaxACG0KsbX49cO2n5EB13clPwuYVt8cMA==
+postcss-normalize-repeat-style@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz#e9eb96805204f4766df66fd09ed2e13545420fb2"
+ integrity sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==
dependencies:
postcss-value-parser "^4.2.0"
-postcss-normalize-string@^5.0.4:
- version "5.0.4"
- resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.0.4.tgz#b5e00a07597e7aa8a871817bfeac2bfaa59c3333"
- integrity sha512-Dfk42l0+A1CDnVpgE606ENvdmksttLynEqTQf5FL3XGQOyqxjbo25+pglCUvziicTxjtI2NLUR6KkxyUWEVubQ==
+postcss-normalize-string@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz#411961169e07308c82c1f8c55f3e8a337757e228"
+ integrity sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==
dependencies:
postcss-value-parser "^4.2.0"
-postcss-normalize-timing-functions@^5.0.3:
- version "5.0.3"
- resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.3.tgz#47210227bfcba5e52650d7a18654337090de7072"
- integrity sha512-QRfjvFh11moN4PYnJ7hia4uJXeFotyK3t2jjg8lM9mswleGsNw2Lm3I5wO+l4k1FzK96EFwEVn8X8Ojrp2gP4g==
+postcss-normalize-timing-functions@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz#d5614410f8f0b2388e9f240aa6011ba6f52dafbb"
+ integrity sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==
dependencies:
postcss-value-parser "^4.2.0"
-postcss-normalize-unicode@^5.0.4:
- version "5.0.4"
- resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.4.tgz#02866096937005cdb2c17116c690f29505a1623d"
- integrity sha512-W79Regn+a+eXTzB+oV/8XJ33s3pDyFTND2yDuUCo0Xa3QSy1HtNIfRVPXNubHxjhlqmMFADr3FSCHT84ITW3ig==
+postcss-normalize-unicode@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz#f67297fca3fea7f17e0d2caa40769afc487aa030"
+ integrity sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==
dependencies:
- browserslist "^4.16.6"
+ browserslist "^4.21.4"
postcss-value-parser "^4.2.0"
-postcss-normalize-url@^5.0.5:
- version "5.0.5"
- resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.0.5.tgz#c39efc12ff119f6f45f0b4f516902b12c8080e3a"
- integrity sha512-Ws3tX+PcekYlXh+ycAt0wyzqGthkvVtZ9SZLutMVvHARxcpu4o7vvXcNoiNKyjKuWecnjS6HDI3fjBuDr5MQxQ==
+postcss-normalize-url@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz#ed9d88ca82e21abef99f743457d3729a042adcdc"
+ integrity sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==
dependencies:
normalize-url "^6.0.1"
postcss-value-parser "^4.2.0"
-postcss-normalize-whitespace@^5.0.4:
- version "5.0.4"
- resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.4.tgz#1d477e7da23fecef91fc4e37d462272c7b55c5ca"
- integrity sha512-wsnuHolYZjMwWZJoTC9jeI2AcjA67v4UuidDrPN9RnX8KIZfE+r2Nd6XZRwHVwUiHmRvKQtxiqo64K+h8/imaw==
+postcss-normalize-whitespace@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz#08a1a0d1ffa17a7cc6efe1e6c9da969cc4493cfa"
+ integrity sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==
dependencies:
postcss-value-parser "^4.2.0"
-postcss-ordered-values@^5.0.5:
- version "5.0.5"
- resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.0.5.tgz#e878af822a130c3f3709737e24cb815ca7c6d040"
- integrity sha512-mfY7lXpq+8bDEHfP+muqibDPhZ5eP9zgBEF9XRvoQgXcQe2Db3G1wcvjbnfjXG6wYsl+0UIjikqq4ym1V2jGMQ==
+postcss-ordered-values@^5.1.3:
+ version "5.1.3"
+ resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz#b6fd2bd10f937b23d86bc829c69e7732ce76ea38"
+ integrity sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==
dependencies:
- cssnano-utils "^3.0.2"
+ cssnano-utils "^3.1.0"
postcss-value-parser "^4.2.0"
-postcss-reduce-initial@^5.0.3:
- version "5.0.3"
- resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.0.3.tgz#68891594defd648253703bbd8f1093162f19568d"
- integrity sha512-c88TkSnQ/Dnwgb4OZbKPOBbCaauwEjbECP5uAuFPOzQ+XdjNjRH7SG0dteXrpp1LlIFEKK76iUGgmw2V0xeieA==
+postcss-reduce-initial@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.1.tgz#c18b7dfb88aee24b1f8e4936541c29adbd35224e"
+ integrity sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==
dependencies:
- browserslist "^4.16.6"
+ browserslist "^4.21.4"
caniuse-api "^3.0.0"
-postcss-reduce-transforms@^5.0.4:
- version "5.0.4"
- resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.4.tgz#717e72d30befe857f7d2784dba10eb1157863712"
- integrity sha512-VIJB9SFSaL8B/B7AXb7KHL6/GNNbbCHslgdzS9UDfBZYIA2nx8NLY7iD/BXFSO/1sRUILzBTfHCoW5inP37C5g==
+postcss-reduce-transforms@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz#333b70e7758b802f3dd0ddfe98bb1ccfef96b6e9"
+ integrity sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==
dependencies:
postcss-value-parser "^4.2.0"
-postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.6, postcss-selector-parser@^6.0.9:
- version "6.0.9"
- resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz#ee71c3b9ff63d9cd130838876c13a2ec1a992b2f"
- integrity sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==
+postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.6, postcss-selector-parser@^6.0.9:
+ version "6.0.10"
+ resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d"
+ integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==
dependencies:
cssesc "^3.0.0"
util-deprecate "^1.0.2"
-postcss-svgo@^5.0.4:
- version "5.0.4"
- resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.0.4.tgz#cfa8682f47b88f7cd75108ec499e133b43102abf"
- integrity sha512-yDKHvULbnZtIrRqhZoA+rxreWpee28JSRH/gy9727u0UCgtpv1M/9WEWY3xySlFa0zQJcqf6oCBJPR5NwkmYpg==
+postcss-svgo@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz#0a317400ced789f233a28826e77523f15857d80d"
+ integrity sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==
dependencies:
postcss-value-parser "^4.2.0"
svgo "^2.7.0"
-postcss-unique-selectors@^5.0.4:
- version "5.0.4"
- resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.0.4.tgz#08e188126b634ddfa615fb1d6c262bafdd64826e"
- integrity sha512-5ampwoSDJCxDPoANBIlMgoBcYUHnhaiuLYJR5pj1DLnYQvMRVyFuTA5C3Bvt+aHtiqWpJkD/lXT50Vo1D0ZsAQ==
+postcss-unique-selectors@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz#a9f273d1eacd09e9aa6088f4b0507b18b1b541b6"
+ integrity sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==
dependencies:
postcss-selector-parser "^6.0.5"
-postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0:
+postcss-value-parser@^4.0.0, postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
-postcss@^8.3.0, postcss@^8.3.11, postcss@^8.4.4, postcss@^8.4.6:
- version "8.4.6"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.6.tgz#c5ff3c3c457a23864f32cb45ac9b741498a09ae1"
- integrity sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA==
+postcss@^8.3.0, postcss@^8.4.14, postcss@^8.4.4:
+ version "8.4.16"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.16.tgz#33a1d675fac39941f5f445db0de4db2b6e01d43c"
+ integrity sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==
dependencies:
- nanoid "^3.2.0"
+ nanoid "^3.3.4"
+ picocolors "^1.0.0"
+ source-map-js "^1.0.2"
+
+postcss@^8.4.18:
+ version "8.4.18"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.18.tgz#6d50046ea7d3d66a85e0e782074e7203bc7fbca2"
+ integrity sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==
+ dependencies:
+ nanoid "^3.3.4"
+ picocolors "^1.0.0"
+ source-map-js "^1.0.2"
+
+postcss@^8.4.19:
+ version "8.4.19"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.19.tgz#61178e2add236b17351897c8bcc0b4c8ecab56fc"
+ integrity sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==
+ dependencies:
+ nanoid "^3.3.4"
+ picocolors "^1.0.0"
+ source-map-js "^1.0.2"
+
+postcss@^8.4.20:
+ version "8.4.20"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.20.tgz#64c52f509644cecad8567e949f4081d98349dc56"
+ integrity sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==
+ dependencies:
+ nanoid "^3.3.4"
picocolors "^1.0.0"
source-map-js "^1.0.2"
@@ -3705,25 +4382,44 @@ prelude-ls@^1.2.1:
resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz"
integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
-prettier-plugin-svelte@^2.6.0:
- version "2.6.0"
- resolved "https://registry.yarnpkg.com/prettier-plugin-svelte/-/prettier-plugin-svelte-2.6.0.tgz#0e845b560b55cd1d951d6c50431b4949f8591746"
- integrity sha512-NPSRf6Y5rufRlBleok/pqg4+1FyGsL0zYhkYP6hnueeL1J/uCm3OfOZPsLX4zqD9VAdcXfyEL2PYqGv8ZoOSfA==
+prelude-ls@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
+ integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==
-prettier@~2.5.1:
- version "2.5.1"
- resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a"
- integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==
+prettier-plugin-svelte@^2.8.1:
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/prettier-plugin-svelte/-/prettier-plugin-svelte-2.8.1.tgz#5b7df5bd0d953b133281607295a3e5131052bb8b"
+ integrity sha512-KA3K1J3/wKDnCxW7ZDRA/QL2Q67N7Xs3gOERqJ5X1qFjq1DdnN3K1R29scSKwh+kA8FF67pXbYytUpvN/i3iQw==
+
+prettier@2.8.3:
+ version "2.8.3"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.3.tgz#ab697b1d3dd46fb4626fbe2f543afe0cc98d8632"
+ integrity sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw==
pretty-bytes@^5.6.0:
version "5.6.0"
resolved "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz"
integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==
-progress@^2.0.0:
- version "2.0.3"
- resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz"
- integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
+pretty-format@^27.0.2, pretty-format@^27.5.1:
+ version "27.5.1"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e"
+ integrity sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==
+ dependencies:
+ ansi-regex "^5.0.1"
+ ansi-styles "^5.0.0"
+ react-is "^17.0.1"
+
+pretty-format@^28.0.0, pretty-format@^28.1.1:
+ version "28.1.1"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.1.1.tgz#f731530394e0f7fcd95aba6b43c50e02d86b95cb"
+ integrity sha512-wwJbVTGFHeucr5Jw2bQ9P+VYHyLdAqedFLEkdQUVaBF/eiidDwH5OpilINq4mEfhbCjLnirt6HTTDhv1HaTIQw==
+ dependencies:
+ "@jest/schemas" "^28.0.2"
+ ansi-regex "^5.0.1"
+ ansi-styles "^5.0.0"
+ react-is "^18.0.0"
proto-list@~1.2.1:
version "1.2.4"
@@ -3745,6 +4441,11 @@ psl@^1.1.28:
resolved "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz"
integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==
+psl@^1.1.33:
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7"
+ integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==
+
pump@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz"
@@ -3763,6 +4464,11 @@ qs@~6.5.2:
resolved "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz"
integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
+querystringify@^2.1.1:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6"
+ integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==
+
queue-microtask@^1.2.2:
version "1.2.3"
resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz"
@@ -3778,22 +4484,27 @@ ramda@0.25.0:
resolved "https://registry.npmjs.org/ramda/-/ramda-0.25.0.tgz"
integrity sha512-GXpfrYVPwx3K7RQ6aYT8KPS8XViSXUVJT1ONhoKPE9VAleW42YE+U+8VEyGWt41EnEQW7gwecYJriTI0pKoecQ==
-ramda@^0.27.1:
- version "0.27.1"
- resolved "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz"
- integrity sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==
-
-random-word-slugs@^0.1.6:
+random-word-slugs@0.1.6:
version "0.1.6"
resolved "https://registry.yarnpkg.com/random-word-slugs/-/random-word-slugs-0.1.6.tgz#1822f059e0e9a91e967a3eaed1e33580df0598cf"
integrity sha512-EVPGKyhXTdnBlMCrqBvby3nf9Jz+W/rVuP2nOi68aDZa6VJ2OXvz+VDCwl8jULBLZ1Ht8wscRA+/SogeI9NYGw==
-randombytes@^2.1.0:
- version "2.1.0"
- resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz"
- integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
+react-is@^17.0.1:
+ version "17.0.2"
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0"
+ integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==
+
+react-is@^18.0.0:
+ version "18.2.0"
+ resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b"
+ integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==
+
+read-cache@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774"
+ integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==
dependencies:
- safe-buffer "^5.1.0"
+ pify "^2.3.0"
readdirp@~3.6.0:
version "3.6.0"
@@ -3802,7 +4513,20 @@ readdirp@~3.6.0:
dependencies:
picomatch "^2.2.1"
-regexpp@^3.0.0, regexpp@^3.1.0:
+redent@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f"
+ integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==
+ dependencies:
+ indent-string "^4.0.0"
+ strip-indent "^3.0.0"
+
+regenerator-runtime@^0.13.4:
+ version "0.13.9"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52"
+ integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==
+
+regexpp@^3.0.0, regexpp@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
@@ -3814,58 +4538,27 @@ request-progress@^3.0.0:
dependencies:
throttleit "^1.0.0"
-request@^2.88.2:
- version "2.88.2"
- resolved "https://registry.npmjs.org/request/-/request-2.88.2.tgz"
- integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==
- dependencies:
- aws-sign2 "~0.7.0"
- aws4 "^1.8.0"
- caseless "~0.12.0"
- combined-stream "~1.0.6"
- extend "~3.0.2"
- forever-agent "~0.6.1"
- form-data "~2.3.2"
- har-validator "~5.1.3"
- http-signature "~1.2.0"
- is-typedarray "~1.0.0"
- isstream "~0.1.2"
- json-stringify-safe "~5.0.1"
- mime-types "~2.1.19"
- oauth-sign "~0.9.0"
- performance-now "^2.1.0"
- qs "~6.5.2"
- safe-buffer "^5.1.2"
- tough-cookie "~2.5.0"
- tunnel-agent "^0.6.0"
- uuid "^3.3.2"
-
require-directory@^2.1.1:
version "2.1.1"
resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz"
integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
-require-from-string@^2.0.2:
- version "2.0.2"
- resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz"
- integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
-
-require-relative@^0.8.7:
- version "0.8.7"
- resolved "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz"
- integrity sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=
+requires-port@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
+ integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==
resolve-from@^4.0.0:
version "4.0.0"
resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz"
integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
-resolve@^1.20.0, resolve@^1.22.0:
- version "1.22.0"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198"
- integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==
+resolve@^1.1.7, resolve@^1.22.1:
+ version "1.22.1"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177"
+ integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==
dependencies:
- is-core-module "^2.8.1"
+ is-core-module "^2.9.0"
path-parse "^1.0.7"
supports-preserve-symlinks-flag "^1.0.0"
@@ -3906,10 +4599,10 @@ robust-predicates@^3.0.0:
resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.1.tgz#ecde075044f7f30118682bd9fb3f123109577f9a"
integrity sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==
-rollup@^2.59.0:
- version "2.61.1"
- resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.61.1.tgz#1a5491f84543cf9e4caf6c61222d9a3f8f2ba454"
- integrity sha512-BbTXlEvB8d+XFbK/7E5doIcRtxWPRiqr0eb5vQ0+2paMM04Ye4PZY5nHOQef2ix24l/L0SpLd5hwcH15QHPdvA==
+rollup@^3.7.0:
+ version "3.7.4"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.7.4.tgz#993c3b30eff1df96f5eafb7c2ef7648960f2fa34"
+ integrity sha512-jN9rx3k5pfg9H9al0r0y1EYKSeiRANZRYX32SuNXAnKzh6cVyf4LZVto1KAuDnbHT03E1CpsgqDKaqQ8FZtgxw==
optionalDependencies:
fsevents "~2.3.2"
@@ -3932,31 +4625,31 @@ rxjs@^7.4.0:
dependencies:
tslib "~2.1.0"
-rxjs@^7.5.2:
- version "7.5.2"
- resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.2.tgz#11e4a3a1dfad85dbf7fb6e33cbba17668497490b"
- integrity sha512-PwDt186XaL3QN5qXj/H9DGyHhP3/RYYgZZwqBv9Tv8rsAaiwFH1IsJJlcgD37J7UW5a6O67qX0KWKS3/pu0m4w==
+rxjs@^7.5.6:
+ version "7.5.7"
+ resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.7.tgz#2ec0d57fdc89ece220d2e702730ae8f1e49def39"
+ integrity sha512-z9MzKh/UcOqB3i20H6rtrlaE/CgjLOvheWK/9ILrbhROGTweAi1BaFsTT9FbwZi5Trr1qNRs+MXkhmR06awzQA==
dependencies:
tslib "^2.1.0"
-sade@^1.7.4:
- version "1.7.4"
- resolved "https://registry.npmjs.org/sade/-/sade-1.7.4.tgz"
- integrity sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA==
+sade@^1.8.1:
+ version "1.8.1"
+ resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701"
+ integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==
dependencies:
mri "^1.1.0"
-safari-14-idb-fix@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/safari-14-idb-fix/-/safari-14-idb-fix-1.0.4.tgz#5c68ba63e2a8ae0d89a0aa1e13fe89e3aef7da19"
- integrity sha512-4+Y2baQdgJpzu84d0QjySl70Kyygzf0pepVg8NVg4NnQEPpfC91fAn0baNvtStlCjUUxxiu0BOMiafa98fRRuA==
-
-safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2:
+safe-buffer@^5.0.1, safe-buffer@^5.1.2:
version "5.2.1"
resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
-"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
+safe-buffer@~5.1.1:
+ version "5.1.2"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
+ integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+
+"safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
version "2.1.2"
resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
@@ -3971,24 +4664,34 @@ sander@^0.5.0:
mkdirp "^0.5.1"
rimraf "^2.5.2"
+saxes@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5"
+ integrity sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==
+ dependencies:
+ xmlchars "^2.2.0"
+
semver@^5.6.0:
version "5.7.1"
- resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
-semver@^7.2.1, semver@^7.3.2, semver@^7.3.5:
- version "7.3.5"
- resolved "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz"
- integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
+semver@^6.0.0:
+ version "6.3.0"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
+ integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
+
+semver@^7.3.2, semver@^7.3.7:
+ version "7.3.7"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f"
+ integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==
dependencies:
lru-cache "^6.0.0"
-serialize-javascript@6.0.0:
- version "6.0.0"
- resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz"
- integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==
- dependencies:
- randombytes "^2.1.0"
+set-cookie-parser@^2.5.1:
+ version "2.5.1"
+ resolved "https://registry.yarnpkg.com/set-cookie-parser/-/set-cookie-parser-2.5.1.tgz#ddd3e9a566b0e8e0862aca974a6ac0e01349430b"
+ integrity sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==
shebang-command@^2.0.0:
version "2.0.0"
@@ -4002,16 +4705,42 @@ shebang-regex@^3.0.0:
resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz"
integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
+siginfo@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/siginfo/-/siginfo-2.0.0.tgz#32e76c70b79724e3bb567cb9d543eb858ccfaf30"
+ integrity sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==
+
sigmund@^1.0.1:
version "1.0.1"
resolved "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz"
integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=
-signal-exit@^3.0.2, signal-exit@^3.0.3:
+signal-exit@^3.0.2:
version "3.0.3"
resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz"
integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
+signal-exit@^3.0.7:
+ version "3.0.7"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
+ integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
+
+simple-swizzle@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
+ integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=
+ dependencies:
+ is-arrayish "^0.3.1"
+
+sirv@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/sirv/-/sirv-2.0.2.tgz#128b9a628d77568139cff85703ad5497c46a4760"
+ integrity sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==
+ dependencies:
+ "@polka/url" "^1.0.0-next.20"
+ mrmime "^1.0.0"
+ totalist "^3.0.0"
+
slash@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz"
@@ -4082,22 +4811,25 @@ source-map-js@^1.0.2:
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
-source-map@^0.6.1:
+source-map-support@^0.5.21:
+ version "0.5.21"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
+ integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
+ dependencies:
+ buffer-from "^1.0.0"
+ source-map "^0.6.0"
+
+source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
version "0.6.1"
resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
sourcemap-codec@^1.3.0, sourcemap-codec@^1.4.4:
version "1.4.8"
- resolved "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz"
+ resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
-sprintf-js@~1.0.2:
- version "1.0.3"
- resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz"
- integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
-
-sshpk@^1.14.1, sshpk@^1.7.0:
+sshpk@^1.14.1:
version "1.16.1"
resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz"
integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==
@@ -4117,6 +4849,21 @@ stable@^0.1.8:
resolved "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz"
integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
+stackback@0.0.2:
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/stackback/-/stackback-0.0.2.tgz#1ac8a0d9483848d1695e418b6d031a3c3ce68e3b"
+ integrity sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==
+
+std-env@^3.3.1:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/std-env/-/std-env-3.3.1.tgz#93a81835815e618c8aa75e7c8a4dc04f7c314e29"
+ integrity sha512-3H20QlwQsSm2OvAxWIYhs+j01MzzqwMwGiiO1NQaJYZgJZFPuAbf95/DiKRBSTYIJ2FeGUc+B/6mPGcWP9dO3Q==
+
+streamsearch@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764"
+ integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==
+
string-argv@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da"
@@ -4154,12 +4901,12 @@ strip-ansi@^3.0.0:
dependencies:
ansi-regex "^2.0.0"
-strip-ansi@^6.0.0:
- version "6.0.0"
- resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz"
- integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==
+strip-ansi@^6.0.0, strip-ansi@^6.0.1:
+ version "6.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+ integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
dependencies:
- ansi-regex "^5.0.0"
+ ansi-regex "^5.0.1"
strip-ansi@^7.0.1:
version "7.0.1"
@@ -4173,6 +4920,11 @@ strip-final-newline@^2.0.0:
resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz"
integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
+strip-final-newline@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd"
+ integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==
+
strip-indent@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz"
@@ -4180,30 +4932,30 @@ strip-indent@^3.0.0:
dependencies:
min-indent "^1.0.0"
-strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
+strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
version "3.1.1"
resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz"
integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
-stylehacks@^5.0.3:
- version "5.0.3"
- resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.0.3.tgz#2ef3de567bfa2be716d29a93bf3d208c133e8d04"
- integrity sha512-ENcUdpf4yO0E1rubu8rkxI+JGQk4CgjchynZ4bDBJDfqdy+uhTRSWb8/F3Jtu+Bw5MW45Po3/aQGeIyyxgQtxg==
+strip-literal@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/strip-literal/-/strip-literal-1.0.0.tgz#0a484ed5a978cd9d2becf3cf8f4f2cb5ab0e1e74"
+ integrity sha512-5o4LsH1lzBzO9UFH63AJ2ad2/S2AVx6NtjOcaz+VTT2h1RiRvbipW72z8M/lxEhcPHDBQwpDrnTF7sXy/7OwCQ==
dependencies:
- browserslist "^4.16.6"
+ acorn "^8.8.1"
+
+stylehacks@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.1.1.tgz#7934a34eb59d7152149fa69d6e9e56f2fc34bcc9"
+ integrity sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==
+ dependencies:
+ browserslist "^4.21.4"
postcss-selector-parser "^6.0.4"
-stylis@^4.0.10:
- version "4.0.10"
- resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.0.10.tgz#446512d1097197ab3f02fb3c258358c3f7a14240"
- integrity sha512-m3k+dk7QeJw660eIKRRn3xPF6uuvHs/FFzjX3HQ5ove0qYsiygoAhwn5a3IYKaZPo5LrYD0rfVmtv1gNY1uYwg==
-
-supports-color@8.1.1, supports-color@^8.1.1:
- version "8.1.1"
- resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz"
- integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
- dependencies:
- has-flag "^4.0.0"
+stylis@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.1.2.tgz#870b3c1c2275f51b702bb3da9e94eedad87bba41"
+ integrity sha512-Nn2CCrG2ZaFziDxaZPN43CXqn+j7tcdjPFCkRBkFue8QYXC2HdEwnw5TCBo4yQZ2WxKYeSi0fdoOrtEqgDrXbA==
supports-color@^2.0.0:
version "2.0.0"
@@ -4224,25 +4976,27 @@ supports-color@^7.1.0:
dependencies:
has-flag "^4.0.0"
-supports-color@^9.2.1:
- version "9.2.1"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.2.1.tgz#599dc9d45acf74c6176e0d880bab1d7d718fe891"
- integrity sha512-Obv7ycoCTG51N7y175StI9BlAXrmgZrFhZOb0/PyjHBher/NmsdBgbbQ1Inhq+gIhz6+7Gb+jWF2Vqi7Mf1xnQ==
+supports-color@^8.1.1:
+ version "8.1.1"
+ resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz"
+ integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==
+ dependencies:
+ has-flag "^4.0.0"
supports-preserve-symlinks-flag@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
-svelte-hmr@^0.14.9:
- version "0.14.9"
- resolved "https://registry.yarnpkg.com/svelte-hmr/-/svelte-hmr-0.14.9.tgz#35f277efc789e1a6230185717347cddb2f8e9833"
- integrity sha512-bKE9+4qb4sAnA+TKHiYurUl970rjA0XmlP9TEP7K/ncyWz3m81kA4HOgmlZK/7irGK7gzZlaPDI3cmf8fp/+tg==
+svelte-hmr@^0.15.1:
+ version "0.15.1"
+ resolved "https://registry.yarnpkg.com/svelte-hmr/-/svelte-hmr-0.15.1.tgz#d11d878a0bbb12ec1cba030f580cd2049f4ec86b"
+ integrity sha512-BiKB4RZ8YSwRKCNVdNxK/GfY+r4Kjgp9jCLEy0DuqAKfmQtpL38cQK3afdpjw4sqSs4PLi3jIPJIFp259NkZtA==
-svelte-preprocess@^4.10.3:
- version "4.10.3"
- resolved "https://registry.yarnpkg.com/svelte-preprocess/-/svelte-preprocess-4.10.3.tgz#9aac89a8abc3889fa5740fb34f7dd74f3c578e13"
- integrity sha512-ttw17lJfb/dx2ZJT9sesaXT5l7mPQ9Apx1H496Kli3Hkk7orIRGpOw6rCPkRNzr6ueVPqb4vzodS5x7sBFhKHw==
+svelte-preprocess@4.10.7:
+ version "4.10.7"
+ resolved "https://registry.yarnpkg.com/svelte-preprocess/-/svelte-preprocess-4.10.7.tgz#3626de472f51ffe20c9bc71eff5a3da66797c362"
+ integrity sha512-sNPBnqYD6FnmdBrUmBCaqS00RyCsCpj2BG58A1JBswNF7b0OKviwxqVrOL/CKyJrLSClrSeqQv5BXNg2RUbPOw==
dependencies:
"@types/pug" "^2.0.4"
"@types/sass" "^1.16.0"
@@ -4251,10 +5005,15 @@ svelte-preprocess@^4.10.3:
sorcery "^0.10.0"
strip-indent "^3.0.0"
-svelte@^3.46.4:
- version "3.46.4"
- resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.46.4.tgz#0c46bc4a3e20a2617a1b7dc43a722f9d6c084a38"
- integrity sha512-qKJzw6DpA33CIa+C/rGp4AUdSfii0DOTCzj/2YpSKKayw5WGSS624Et9L1nU1k2OVRS9vaENQXp2CVZNU+xvIg==
+svelte@3.55.1:
+ version "3.55.1"
+ resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.55.1.tgz#6f93b153e5248039906ce5fe196efdb9e05dfce8"
+ integrity sha512-S+87/P0Ve67HxKkEV23iCdAh/SX1xiSfjF1HOglno/YTbSTW7RniICMCofWGdJJbdjw3S+0PfFb1JtGfTXE0oQ==
+
+svg-pan-zoom@3.6.1:
+ version "3.6.1"
+ resolved "https://registry.yarnpkg.com/svg-pan-zoom/-/svg-pan-zoom-3.6.1.tgz#f880a1bb32d18e9c625d7715350bebc269b450cf"
+ integrity sha512-JaKkGHHfGvRrcMPdJWkssLBeWqM+Isg/a09H7kgNNajT1cX5AztDTNs+C8UzpCxjCTRrG34WbquwaovZbmSk9g==
svgo@^2.7.0:
version "2.8.0"
@@ -4269,43 +5028,76 @@ svgo@^2.7.0:
picocolors "^1.0.0"
stable "^0.1.8"
-table@^6.0.9:
- version "6.7.1"
- resolved "https://registry.npmjs.org/table/-/table-6.7.1.tgz"
- integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==
- dependencies:
- ajv "^8.0.1"
- lodash.clonedeep "^4.5.0"
- lodash.truncate "^4.4.2"
- slice-ansi "^4.0.0"
- string-width "^4.2.0"
- strip-ansi "^6.0.0"
+symbol-tree@^3.2.4:
+ version "3.2.4"
+ resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
+ integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
-tailwindcss@^3.0.21, tailwindcss@^3.0.7:
- version "3.0.21"
- resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.0.21.tgz#2b3f2aa579bc8bb91165af9d23f69c5e7bdfab03"
- integrity sha512-PGTiaBu/K4QlzjKlLgtz6nVYlrmhy6INPMKYb6RHX18/VXwygFbRdAlJGl2NfXabTQOP62ttKwjQviWLKQuWrA==
+tailwindcss@^3:
+ version "3.1.8"
+ resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.1.8.tgz#4f8520550d67a835d32f2f4021580f9fddb7b741"
+ integrity sha512-YSneUCZSFDYMwk+TGq8qYFdCA3yfBRdBlS7txSq0LUmzyeqRe3a8fBQzbz9M3WS/iFT4BNf/nmw9mEzrnSaC0g==
dependencies:
- arg "^5.0.1"
- chalk "^4.1.2"
+ arg "^5.0.2"
chokidar "^3.5.3"
color-name "^1.1.4"
- cosmiconfig "^7.0.1"
- detective "^5.2.0"
+ detective "^5.2.1"
didyoumean "^1.2.2"
dlv "^1.1.3"
fast-glob "^3.2.11"
glob-parent "^6.0.2"
is-glob "^4.0.3"
+ lilconfig "^2.0.6"
normalize-path "^3.0.0"
- object-hash "^2.2.0"
+ object-hash "^3.0.0"
+ picocolors "^1.0.0"
+ postcss "^8.4.14"
+ postcss-import "^14.1.0"
postcss-js "^4.0.0"
- postcss-load-config "^3.1.0"
+ postcss-load-config "^3.1.4"
postcss-nested "5.0.6"
- postcss-selector-parser "^6.0.9"
+ postcss-selector-parser "^6.0.10"
postcss-value-parser "^4.2.0"
quick-lru "^5.1.1"
- resolve "^1.22.0"
+ resolve "^1.22.1"
+
+tailwindcss@^3.2.4:
+ version "3.2.4"
+ resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.2.4.tgz#afe3477e7a19f3ceafb48e4b083e292ce0dc0250"
+ integrity sha512-AhwtHCKMtR71JgeYDaswmZXhPcW9iuI9Sp2LvZPo9upDZ7231ZJ7eA9RaURbhpXGVlrjX4cFNlB4ieTetEb7hQ==
+ dependencies:
+ arg "^5.0.2"
+ chokidar "^3.5.3"
+ color-name "^1.1.4"
+ detective "^5.2.1"
+ didyoumean "^1.2.2"
+ dlv "^1.1.3"
+ fast-glob "^3.2.12"
+ glob-parent "^6.0.2"
+ is-glob "^4.0.3"
+ lilconfig "^2.0.6"
+ micromatch "^4.0.5"
+ normalize-path "^3.0.0"
+ object-hash "^3.0.0"
+ picocolors "^1.0.0"
+ postcss "^8.4.18"
+ postcss-import "^14.1.0"
+ postcss-js "^4.0.0"
+ postcss-load-config "^3.1.4"
+ postcss-nested "6.0.0"
+ postcss-selector-parser "^6.0.10"
+ postcss-value-parser "^4.2.0"
+ quick-lru "^5.1.1"
+ resolve "^1.22.1"
+
+test-exclude@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e"
+ integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==
+ dependencies:
+ "@istanbuljs/schema" "^0.1.2"
+ glob "^7.1.4"
+ minimatch "^3.0.4"
text-table@^0.2.0:
version "0.2.0"
@@ -4322,11 +5114,6 @@ through@^2.3.8:
resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz"
integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
-timsort@^0.3.0:
- version "0.3.0"
- resolved "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz"
- integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=
-
tiny-glob@^0.2.9:
version "0.2.9"
resolved "https://registry.yarnpkg.com/tiny-glob/-/tiny-glob-0.2.9.tgz#2212d441ac17928033b110f8b3640683129d31e2"
@@ -4335,6 +5122,21 @@ tiny-glob@^0.2.9:
globalyzer "0.1.0"
globrex "^0.1.2"
+tinybench@^2.3.1:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/tinybench/-/tinybench-2.3.1.tgz#14f64e6b77d7ef0b1f6ab850c7a808c6760b414d"
+ integrity sha512-hGYWYBMPr7p4g5IarQE7XhlyWveh1EKhy4wUBS1LrHXCKYgvz+4/jCqgmJqZxxldesn05vccrtME2RLLZNW7iA==
+
+tinypool@^0.3.1:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/tinypool/-/tinypool-0.3.1.tgz#a99c2e446aba9be05d3e1cb756d6aed7af4723b6"
+ integrity sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ==
+
+tinyspy@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/tinyspy/-/tinyspy-1.0.2.tgz#6da0b3918bfd56170fb3cd3a2b5ef832ee1dff0d"
+ integrity sha512-bSGlgwLBYf7PnUsQ6WOc6SJ3pGOcd+d8AA6EUnLDDM0kWEstC1JIlSZA3UNliDXhd9ABoS7hiRBDCu+XP/sf1Q==
+
tmp@~0.2.1:
version "0.2.1"
resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz"
@@ -4349,6 +5151,21 @@ to-regex-range@^5.0.1:
dependencies:
is-number "^7.0.0"
+totalist@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/totalist/-/totalist-3.0.0.tgz#4ef9c58c5f095255cdc3ff2a0a55091c57a3a1bd"
+ integrity sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==
+
+tough-cookie@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.2.tgz#e53e84b85f24e0b65dd526f46628db6c85f6b874"
+ integrity sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==
+ dependencies:
+ psl "^1.1.33"
+ punycode "^2.1.1"
+ universalify "^0.2.0"
+ url-parse "^1.5.3"
+
tough-cookie@~2.5.0:
version "2.5.0"
resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz"
@@ -4357,15 +5174,27 @@ tough-cookie@~2.5.0:
psl "^1.1.28"
punycode "^2.1.1"
+tr46@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9"
+ integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==
+ dependencies:
+ punycode "^2.1.1"
+
tslib@^1.8.1:
version "1.14.1"
resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz"
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
-tslib@^2.1.0, tslib@^2.3.1:
- version "2.3.1"
- resolved "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz"
- integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==
+tslib@^2.1.0:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3"
+ integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==
+
+tslib@^2.4.1:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e"
+ integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==
tslib@~2.1.0:
version "2.1.0"
@@ -4398,6 +5227,13 @@ type-check@^0.4.0, type-check@~0.4.0:
dependencies:
prelude-ls "^1.2.1"
+type-check@~0.3.2:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
+ integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==
+ dependencies:
+ prelude-ls "~1.1.2"
+
type-detect@^4.0.0, type-detect@^4.0.5:
version "4.0.8"
resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz"
@@ -4413,19 +5249,27 @@ type-fest@^0.21.3:
resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz"
integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==
-typescript@^4.5.5:
- version "4.5.5"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.5.tgz#d8c953832d28924a9e3d37c73d729c846c5896f3"
- integrity sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==
+typescript@4.9.5:
+ version "4.9.5"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a"
+ integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==
-universal-analytics@^0.4.20:
- version "0.4.23"
- resolved "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.23.tgz"
- integrity sha512-lgMIH7XBI6OgYn1woDEmxhGdj8yDefMKg7GkWdeATAlQZFrMrNyxSkpDzY57iY0/6fdlzTbBV03OawvvzG+q7A==
+ufo@^1.0.0, ufo@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.0.1.tgz#64ed43b530706bda2e4892f911f568cf4cf67d29"
+ integrity sha512-boAm74ubXHY7KJQZLlXrtMz52qFvpsbOxDcZOnw/Wf+LS4Mmyu7JxmzD4tDLtUQtmZECypJ0FrCz4QIe6dvKRA==
+
+undici@5.16.0:
+ version "5.16.0"
+ resolved "https://registry.yarnpkg.com/undici/-/undici-5.16.0.tgz#6b64f9b890de85489ac6332bd45ca67e4f7d9943"
+ integrity sha512-KWBOXNv6VX+oJQhchXieUznEmnJMqgXMbs0xxH2t8q/FUAWSJvOSr/rMaZKnX5RIVq7JDn0JbP4BOnKG2SGXLQ==
dependencies:
- debug "^4.1.1"
- request "^2.88.2"
- uuid "^3.0.0"
+ busboy "^1.6.0"
+
+universalify@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0"
+ integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==
universalify@^2.0.0:
version "2.0.0"
@@ -4437,6 +5281,22 @@ untildify@^4.0.0:
resolved "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz"
integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==
+update-browserslist-db@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz#be06a5eedd62f107b7c19eb5bcefb194411abf38"
+ integrity sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==
+ dependencies:
+ escalade "^3.1.1"
+ picocolors "^1.0.0"
+
+update-browserslist-db@^1.0.9:
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz#2924d3927367a38d5c555413a7ce138fc95fcb18"
+ integrity sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==
+ dependencies:
+ escalade "^3.1.1"
+ picocolors "^1.0.0"
+
uri-js@^4.2.2:
version "4.4.1"
resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz"
@@ -4444,25 +5304,37 @@ uri-js@^4.2.2:
dependencies:
punycode "^2.1.0"
+url-parse@^1.5.3:
+ version "1.5.10"
+ resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1"
+ integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==
+ dependencies:
+ querystringify "^2.1.1"
+ requires-port "^1.0.0"
+
util-deprecate@^1.0.2:
version "1.0.2"
resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
-uuid@^3.0.0, uuid@^3.3.2:
- version "3.4.0"
- resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz"
- integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==
+uuid@9.0.0, uuid@^9.0.0:
+ version "9.0.0"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5"
+ integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==
uuid@^8.3.2:
version "8.3.2"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
-v8-compile-cache@^2.0.3:
- version "2.3.0"
- resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz"
- integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
+v8-to-istanbul@^9.0.0:
+ version "9.0.1"
+ resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz#b6f994b0b5d4ef255e17a0d17dc444a9f5132fa4"
+ integrity sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==
+ dependencies:
+ "@jridgewell/trace-mapping" "^0.3.12"
+ "@types/istanbul-lib-coverage" "^2.0.1"
+ convert-source-map "^1.6.0"
variable-diff@1.1.0:
version "1.1.0"
@@ -4481,35 +5353,119 @@ verror@1.10.0:
core-util-is "1.0.2"
extsprintf "^1.2.0"
-vite@^2.7.2:
- version "2.7.2"
- resolved "https://registry.yarnpkg.com/vite/-/vite-2.7.2.tgz#f9937114cf2e730a7e2e4c4f8c26ed0ed1c3bb6b"
- integrity sha512-wMffVVdKZRZP/HwW3yttKL8X+IJePz7bUcnGm0vqljffpVwHpjWC3duZtJQHAGvy+wrTjmwU7vkULpZ1dVXY6w==
+vite-node@0.28.3:
+ version "0.28.3"
+ resolved "https://registry.yarnpkg.com/vite-node/-/vite-node-0.28.3.tgz#5d693c237d5467f167f81d158a56d3408fea899c"
+ integrity sha512-uJJAOkgVwdfCX8PUQhqLyDOpkBS5+j+FdbsXoPVPDlvVjRkb/W/mLYQPSL6J+t8R0UV8tJSe8c9VyxVQNsDSyg==
dependencies:
- esbuild "^0.13.12"
- postcss "^8.3.11"
- resolve "^1.20.0"
- rollup "^2.59.0"
+ cac "^6.7.14"
+ debug "^4.3.4"
+ mlly "^1.1.0"
+ pathe "^1.1.0"
+ picocolors "^1.0.0"
+ source-map "^0.6.1"
+ source-map-support "^0.5.21"
+ vite "^3.0.0 || ^4.0.0"
+
+"vite@^3.0.0 || ^4.0.0", vite@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/vite/-/vite-4.0.1.tgz#e0a54d818c28ae47fd27bcac6a4a952c6a658502"
+ integrity sha512-kZQPzbDau35iWOhy3CpkrRC7It+HIHtulAzBhMqzGHKRf/4+vmh8rPDDdv98SWQrFWo6//3ozwsRmwQIPZsK9g==
+ dependencies:
+ esbuild "^0.16.3"
+ postcss "^8.4.20"
+ resolve "^1.22.1"
+ rollup "^3.7.0"
optionalDependencies:
fsevents "~2.3.2"
-which@2.0.2, which@^2.0.1:
+vitefu@^0.2.3:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/vitefu/-/vitefu-0.2.3.tgz#512107a04d43e967e8b8de093121616f9518b2ee"
+ integrity sha512-75l7TTuU8isAhz1QFtNKjDkqjxvndfMC1AfIMjJ0ZQ59ZD0Ow9QOIsJJX16Wv9PS8f+zMzp6fHy5cCbKG/yVUQ==
+
+vitest@^0.28.0:
+ version "0.28.3"
+ resolved "https://registry.yarnpkg.com/vitest/-/vitest-0.28.3.tgz#58322a5ae64854d4cdb75451817b9fb795f9102e"
+ integrity sha512-N41VPNf3VGJlWQizGvl1P5MGyv3ZZA2Zvh+2V8L6tYBAAuqqDK4zExunT1Cdb6dGfZ4gr+IMrnG8d4Z6j9ctPw==
+ dependencies:
+ "@types/chai" "^4.3.4"
+ "@types/chai-subset" "^1.3.3"
+ "@types/node" "*"
+ "@vitest/expect" "0.28.3"
+ "@vitest/runner" "0.28.3"
+ "@vitest/spy" "0.28.3"
+ "@vitest/utils" "0.28.3"
+ acorn "^8.8.1"
+ acorn-walk "^8.2.0"
+ cac "^6.7.14"
+ chai "^4.3.7"
+ debug "^4.3.4"
+ local-pkg "^0.4.2"
+ pathe "^1.1.0"
+ picocolors "^1.0.0"
+ source-map "^0.6.1"
+ std-env "^3.3.1"
+ strip-literal "^1.0.0"
+ tinybench "^2.3.1"
+ tinypool "^0.3.1"
+ tinyspy "^1.0.2"
+ vite "^3.0.0 || ^4.0.0"
+ vite-node "0.28.3"
+ why-is-node-running "^2.2.2"
+
+w3c-xmlserializer@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz#aebdc84920d806222936e3cdce408e32488a3073"
+ integrity sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==
+ dependencies:
+ xml-name-validator "^4.0.0"
+
+webidl-conversions@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a"
+ integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==
+
+whatwg-encoding@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz#e7635f597fd87020858626805a2729fa7698ac53"
+ integrity sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==
+ dependencies:
+ iconv-lite "0.6.3"
+
+whatwg-mimetype@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7"
+ integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==
+
+whatwg-url@^11.0.0:
+ version "11.0.0"
+ resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018"
+ integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==
+ dependencies:
+ tr46 "^3.0.0"
+ webidl-conversions "^7.0.0"
+
+which@^2.0.1:
version "2.0.2"
resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz"
integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
dependencies:
isexe "^2.0.0"
-word-wrap@^1.2.3:
+why-is-node-running@^2.2.2:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/why-is-node-running/-/why-is-node-running-2.2.2.tgz#4185b2b4699117819e7154594271e7e344c9973e"
+ integrity sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==
+ dependencies:
+ siginfo "^2.0.0"
+ stackback "0.0.2"
+
+word-wrap@^1.2.3, word-wrap@~1.2.3:
version "1.2.3"
resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz"
integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
-workerpool@6.2.0:
- version "6.2.0"
- resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.0.tgz#827d93c9ba23ee2019c3ffaff5c27fccea289e8b"
- integrity sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==
-
wrap-ansi@^6.2.0:
version "6.2.0"
resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz"
@@ -4533,6 +5489,21 @@ wrappy@1:
resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
+ws@^8.11.0:
+ version "8.11.0"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143"
+ integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==
+
+xml-name-validator@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835"
+ integrity sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==
+
+xmlchars@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb"
+ integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==
+
xtend@^4.0.2:
version "4.0.2"
resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz"
@@ -4553,32 +5524,27 @@ yallist@^4.0.0:
resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
-yaml@^1.10.0, yaml@^1.10.2:
+yaml@^1.10.2:
version "1.10.2"
resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz"
integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==
-yargs-parser@20.2.4:
- version "20.2.4"
- resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz"
- integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==
+yaml@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.1.1.tgz#1e06fb4ca46e60d9da07e4f786ea370ed3c3cfec"
+ integrity sha512-o96x3OPo8GjWeSLF+wOAbrPfhFOGY0W00GNaxCDv+9hkcDJEnev1yh8S7pgHF0ik6zc8sQLuL8hjHjJULZp8bw==
-yargs-parser@^20.2.2:
- version "20.2.7"
- resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz"
- integrity sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==
+yaml@^2.1.3:
+ version "2.1.3"
+ resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.1.3.tgz#9b3a4c8aff9821b696275c79a8bee8399d945207"
+ integrity sha512-AacA8nRULjKMX2DvWvOAdBZMOfQlypSFkjcOcu9FalllIDJ1kvlREzcdIZmidQUqqeMv7jorHjq2HlLv/+c2lg==
-yargs-unparser@2.0.0:
- version "2.0.0"
- resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz"
- integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==
- dependencies:
- camelcase "^6.0.0"
- decamelize "^4.0.0"
- flat "^5.0.2"
- is-plain-obj "^2.1.0"
+yargs-parser@^20.2.2, yargs-parser@^20.2.9:
+ version "20.2.9"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"
+ integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
-yargs@16.2.0:
+yargs@^16.2.0:
version "16.2.0"
resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz"
integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
@@ -4603,3 +5569,8 @@ yocto-queue@^0.1.0:
version "0.1.0"
resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz"
integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
+
+yocto-queue@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251"
+ integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==