diff --git a/.dockerignore b/.dockerignore
index 8e61eb35c..a1b521ac0 100644
--- a/.dockerignore
+++ b/.dockerignore
@@ -2,5 +2,4 @@
node_modules
.tsbuildinfo
**/node_modules
-**/.tsbuildinfo
-database-seeds
\ No newline at end of file
+**/.tsbuildinfo
\ No newline at end of file
diff --git a/.eslintignore b/.eslintignore
index 1642c05af..808f9cc07 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -1,2 +1,3 @@
node_modules
-js
\ No newline at end of file
+js
+package.json
\ No newline at end of file
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 000000000..855758dfb
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,6 @@
+# if you don't do this
+# a windows clone will fail
+# because the .sh scripts will have their \n's turned into
+# \r\n, and then bash will fail to run \r as a command.
+# the future is now.
+*.sh text eol=lf
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 0a290ff55..d8654947f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,6 +7,7 @@ node_modules
# PNPM noise
.pnpm-debug.log
+.pnpm-store
# Compiled output
js
@@ -36,4 +37,7 @@ coverage
out.*
failed-tests.log
-.tsbuildinfo
\ No newline at end of file
+.tsbuildinfo
+
+# bootstrap flag
+I_HAVE_BOOTSTRAPPED_OK
\ No newline at end of file
diff --git a/Dockerfile.bootstrap b/Dockerfile.bootstrap
new file mode 100644
index 000000000..fef9016dc
--- /dev/null
+++ b/Dockerfile.bootstrap
@@ -0,0 +1,15 @@
+# Yes, I've made an entire docker container just to run a bash script
+# instead of rewriting the script in a ~~real~~ cross-platform scripting language.
+# This docker container **depends** on an external volume being mounted
+# (see how it's used in docker-compose-dev.yml)
+# and *intentionally* mutates state outside of its container.
+
+# I really do not care.
+# Want it better? Do it yourself.
+FROM node:16 as base
+
+RUN npm install --silent -g pnpm
+
+WORKDIR /app
+
+CMD ["bash", "_scripts/bootstrap.sh"]
\ No newline at end of file
diff --git a/Dockerfile.client b/Dockerfile.client
new file mode 100644
index 000000000..fd1344019
--- /dev/null
+++ b/Dockerfile.client
@@ -0,0 +1,21 @@
+FROM node:16-alpine as base
+
+RUN npm install --silent -g pnpm
+
+FROM base AS build
+WORKDIR /app
+
+COPY pnpm-lock.yaml .
+COPY patches ./patches
+
+RUN pnpm fetch
+
+COPY client ./client
+COPY common ./common
+COPY *.json *.yaml ./
+
+RUN pnpm --filter tachi-client... --filter . install --offline --frozen-lockfile
+
+WORKDIR /app/client
+
+CMD ["pnpm", "start"]
\ No newline at end of file
diff --git a/Dockerfile.seeds b/Dockerfile.seeds
new file mode 100644
index 000000000..b6335fb4c
--- /dev/null
+++ b/Dockerfile.seeds
@@ -0,0 +1,25 @@
+# no alpine here as we want bash + general nice-to-haves
+FROM node:16 as base
+
+RUN npm install --silent -g pnpm
+
+FROM base AS build
+WORKDIR /app
+
+COPY pnpm-lock.yaml .
+COPY patches ./patches
+
+RUN pnpm fetch
+
+COPY database-seeds ./database-seeds
+COPY common ./common
+COPY *.json *.yaml ./
+
+RUN pnpm --filter tachi-database-seeds... --filter . install --offline --frozen-lockfile
+
+WORKDIR /app/database-seeds
+
+# keep container alive indefinitely
+# we just have this container so db-seeds maintainers have a nice "context"
+# to work with
+CMD ["tail", "-f", "/dev/null"]
\ No newline at end of file
diff --git a/Dockerfile.server b/Dockerfile.server
index 4833fefc3..1af63fc10 100644
--- a/Dockerfile.server
+++ b/Dockerfile.server
@@ -2,6 +2,7 @@
# It does not spin up mongodb instances or redis instances, which the server
# does need to boot. You should consider using docker-compose for this.
+# base image
FROM node:16-alpine as base
ARG COMMIT_HASH
ENV COMMIT_HASH=${COMMIT_HASH}
@@ -9,7 +10,8 @@ ENV COMMIT_HASH=${COMMIT_HASH}
RUN npm install --silent -g pnpm
RUN apk add --no-cache git curl
-FROM base AS build
+# install dependencies
+FROM base AS install
WORKDIR /app
COPY pnpm-lock.yaml .
@@ -20,15 +22,30 @@ RUN pnpm fetch
COPY server ./server
COPY common ./common
COPY *.json *.yaml ./
-
RUN pnpm --filter tachi-server... --filter . install --offline --frozen-lockfile
+
+# development image, keeps installed dependencies
+FROM install AS dev
+
+RUN git config --global --add safe.directory /app
+
+HEALTHCHECK --interval=15s --timeout=5s CMD curl -f http://localhost:8080/api/v1/status || exit 1
+WORKDIR /app/server
+
+ENV NODE_PATH=js/
+CMD ["pnpm", "dev"]
+
+# build source and dependencies
+FROM install AS build
+
RUN pnpm --filter tachi-server... -r build
-FROM base AS app
+# built source only for production
+FROM base AS prod
COPY --from=build /app /app
HEALTHCHECK --interval=15s --timeout=5s CMD curl -f http://localhost:8080/api/v1/status || exit 1
WORKDIR /app/server
ENV NODE_PATH=js/
-CMD ["node", "js/main.js"]
+CMD ["node", "js/main.js"]
\ No newline at end of file
diff --git a/_scripts/add-repo-to-monorepo.sh b/_scripts/add-repo-to-monorepo.sh
deleted file mode 100755
index 86807280e..000000000
--- a/_scripts/add-repo-to-monorepo.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#! /bin/bash
-
-set -eo pipefail
-
-BRANCH="${2:-develop}"
-PROJECT="$1"
-
-if [ -z "$PROJECT" ]; then
- echo "Please pass a tachi-X repo to meld with this repository."
- exit 1
-fi
-
-git remote add "$PROJECT" gh:/tng-dev/tachi-"$PROJECT" || echo "remote already mounted. continuing anyway."
-
-git fetch "$PROJECT" --no-tags
-
-git branch "$PROJECT-$BRANCH" "$PROJECT/$BRANCH" || echo "branch already exists. continuing anyway."
-
-git remote remove "$PROJECT"
-
-git switch "$PROJECT-$BRANCH"
-
-mkdir -p "$PROJECT"
-
-git filter-repo --to-subdirectory-filter "$PROJECT/" --refs "$PROJECT-$BRANCH" --force
-
-git switch master
-
-git merge --allow-unrelated-histories "$PROJECT-$BRANCH"
\ No newline at end of file
diff --git a/_scripts/bootstrap.sh b/_scripts/bootstrap.sh
index 88ff7d2d7..5587527a9 100755
--- a/_scripts/bootstrap.sh
+++ b/_scripts/bootstrap.sh
@@ -2,6 +2,7 @@
set -eo pipefail
+
# https://stackoverflow.com/questions/59895/how-can-i-get-the-directory-where-a-bash-script-is-located-from-within-the-scrip
# if you actually think bash is a good programming language you are
# *straight up delusional*
@@ -10,6 +11,11 @@ SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
cd "$SCRIPT_DIR";
cd ..;
+if [ -e I_HAVE_BOOTSTRAPPED_OK ]; then
+ echo "Already bootstrapped."
+ exit 0
+fi
+
function mvExampleFiles {
echo "Moving example config files into usable places..."
@@ -54,12 +60,26 @@ function pnpmInstall {
echo "Installed dependencies."
}
+function setIndexes {
+ echo "Setting indexes..."
+
+ (
+ cd server
+ pnpm run set-indexes
+ )
+
+ echo "Set."
+
+}
+
function syncDatabaseWithSeeds {
echo "Syncing database with seeds..."
- cd server
+ (
+ cd server
- pnpm run sync-database-local
+ pnpm run sync-database-local
+ )
echo "Synced."
}
@@ -67,23 +87,18 @@ function syncDatabaseWithSeeds {
mvExampleFiles
selfSignHTTPS
pnpmInstall
+setIndexes
syncDatabaseWithSeeds
-tput setaf 1
+echo "Bootstrap Complete."
-cat << EOF
-=== READ THIS YOU MUPPET ===
+cat << EOF > I_HAVE_BOOTSTRAPPED_OK
+Tachi was bootstrapped here on $(date).
-YOU ARE USING SELF-SIGNED HTTPS CERTIFICATES.
-YOU WILL LIKELY HAVE TO GO TO HTTPS://127.0.0.1:8080 AFTER STARTING TACHI-SERVER.
-TELL YOUR BROWSER THESE CERTIFICATES ARE TRUSTED!
-OTHERWISE, THE CLIENT WILL FAIL TO LAUNCH, AND WILL JUST BE A WHITE PAGE!
-EOF
+The existence of this file stops Tachi from bootstrapping again.
+There's nothing harmful about this -- you can bootstrap as much as you want!
+We just don't want to necessarily bootstrap *each* time we boot Tachi.
-tput sgr0
-
-cat << EOF
-Bootstrapped.
-Launch the server with pnpm start-server.
-Launch the client with pnpm start-client.
+To bootstrap again (incase you think something has gone wrong)
+Delete this file and re-run npm start.
EOF
diff --git a/client/package.json b/client/package.json
index bb6d8080e..99f584f8b 100644
--- a/client/package.json
+++ b/client/package.json
@@ -35,6 +35,7 @@
"@fullcalendar/react": "^6.0.0",
"@mui/material": "^5.11.1",
"@nivo/bar": "0.79.1",
+ "@nivo/colors": "0.79.1",
"@nivo/core": "0.79.0",
"@nivo/line": "0.79.1",
"@nivo/tooltip": "0.79.0",
@@ -42,6 +43,7 @@
"@types/natural-compare": "^1.4.1",
"@types/react-google-recaptcha": "2.1.2",
"csstype": "3.1.1",
+ "d3-scale": "3.3.0",
"deepmerge": "4.2.2",
"dotenv": "6.2.0",
"fast-json-stable-hash": "^1.0.3",
diff --git a/client/src/app/pages/dashboard/import/SilentHookPage.tsx b/client/src/app/pages/dashboard/import/SilentHookPage.tsx
index bf38ba053..9ce73d4b1 100644
--- a/client/src/app/pages/dashboard/import/SilentHookPage.tsx
+++ b/client/src/app/pages/dashboard/import/SilentHookPage.tsx
@@ -23,7 +23,7 @@ export default function SilentHookPage() {
Download silent from{" "}
Here
-
+ {" "}
and place all the .dll files in the same folder as{" "}
popn22.dll.
diff --git a/client/src/lib/config.ts b/client/src/lib/config.ts
index 1e1beefda..da98489be 100644
--- a/client/src/lib/config.ts
+++ b/client/src/lib/config.ts
@@ -55,11 +55,10 @@ try {
? `
You're in local development mode.
-
+
- Have you accepted the HTTPS certificates for the server?. If not, the site won't load.
- - Failing that, have you made sure to start the server with
pnpm start-server?
`
: ""
diff --git a/client/vite.config.js b/client/vite.config.js
index f34148116..2c3810e63 100644
--- a/client/vite.config.js
+++ b/client/vite.config.js
@@ -81,6 +81,7 @@ export default defineConfig(() => {
],
server: {
port: 3000,
+ host: true,
},
preview: {
port: 3000,
diff --git a/docker-compose-dev.yml b/docker-compose-dev.yml
new file mode 100644
index 000000000..fe34014a6
--- /dev/null
+++ b/docker-compose-dev.yml
@@ -0,0 +1,80 @@
+version: "3.9"
+services:
+ mongo:
+ container_name: mongo
+ image: mongo:5
+ restart: always
+ ports:
+ - '27017:27017'
+ volumes:
+ - tachi-volume:/data/db
+ redis:
+ container_name: redis
+ command: redis-server --save 60 1 --loglevel warning
+ image: redis:6
+ restart: always
+ ports:
+ - '6379:6379'
+ volumes:
+ - tachi-redis:/data
+ tachi-server:
+ container_name: tachi-server
+ build:
+ dockerfile: Dockerfile.server
+ target: dev
+ depends_on:
+ bootstrap:
+ condition: service_completed_successfully
+ redis:
+ condition: service_started
+ mongo:
+ condition: service_started
+ links:
+ - redis
+ - mongo
+ volumes:
+ - ./:/app
+ ports:
+ - '8080:8080'
+ environment:
+ REDIS_URL: redis
+ MONGO_URL: mongo
+ PORT: 8080
+ NODE_ENV: "dev"
+ tachi-client:
+ container_name: tachi-client
+
+ depends_on:
+ bootstrap:
+ condition: service_completed_successfully
+
+ build:
+ dockerfile: Dockerfile.client
+ volumes:
+ - ./:/app
+ ports:
+ - '3000:3000'
+ tachi-seeds:
+ container_name: tachi-seeds
+ build:
+ dockerfile: Dockerfile.seeds
+ volumes:
+ - ./:/app
+ bootstrap:
+ container_name: tachi-bootstrap
+ build:
+ dockerfile: Dockerfile.bootstrap
+ volumes:
+ - ./:/app
+ links:
+ - redis
+ - mongo
+ environment:
+ REDIS_URL: redis
+ MONGO_URL: mongo
+ PORT: 8080
+ NODE_ENV: "dev"
+volumes:
+ tachi-volume:
+ tachi-redis:
+ tachi-logs:
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
deleted file mode 100644
index 8e77d8938..000000000
--- a/docker-compose.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-version: "3.9"
-services:
- mongo:
- container_name: mongo
- image: mongo:5
- restart: always
- ports:
- - '27017:27017'
- volumes:
- - tachi:/data/mongo
- redis:
- container_name: redis
- command: redis-server --save 60 1 --loglevel warning
- image: redis:6
- restart: always
- ports:
- - '6379:6379'
- volumes:
- - tachi:/data/redis
-volumes:
- tachi:
- driver: local
\ No newline at end of file
diff --git a/docs/docs/contributing/setup.md b/docs/docs/contributing/setup.md
index b7317d21c..c01d31ba9 100644
--- a/docs/docs/contributing/setup.md
+++ b/docs/docs/contributing/setup.md
@@ -6,42 +6,7 @@ You don't *necessarily* need to have a working install to contribute - you could
make documentation contributions without having anything running on your machine - but
it's extremely helpful to be able to run Tachi's things while working on them.
-## 0. Unix Necessary!
-
-You *must* be on some Unix-Like operating system. That ideally means means Linux, MacOS or WSL.
-
-!!! info
- This is because of Redis, mainly. We also depend on the `sendmail` binary to send emails around, which might be even less portable.
-
- Also - we use Linux in production, and your local
- environment should be as close to production as reasonably possible.
-
-### I'm on Windows, help!
-
-Don't worry. You can run Linux as a subsystem inside Windows, without any virtual machine
-nonsense. It's a bit of a headache to get sorted, but Microsoft provide a decent [setup guide](https://docs.microsoft.com/en-us/windows/wsl/install-win10).
-
-!!! danger
- You can pick your own Linux distro to use when setting up WSL2.
-
- **YOU MUST PICK UBUNTU LATEST (22.04) UNLESS YOU KNOW EXACTLY WHAT YOU ARE DOING**. Anything else will likely have *ancient*
- versions of software installed, and will cause some obscene headaches.
-
- **UBUNTU 20.04 LTS HAS A SIGNIFICANTLY-TOO-OLD VERSION OF GIT. DO NOT USE IT.**
-
-### I'm on Mac.
-
-Everything should work out of the box.
-
-### I'm on Linux.
-
-Tachi has been tested on Ubuntu, Debian, Arch and Manjaro. There's no reason it won't run on any Linux variant, but
-if you're running something willfully obtuse like Artix or Slackware, you'll probably hit problems. Figure it out yourself.
-
-The happiest path for the below guide is for Arch/Manjaro users. For other distros, you
-might find getting some of the services running a bit cumbersome. Ah well.
-
-## 0.5. Get some developer tools.
+## 0. Get some developer tools.
If you're an experienced programmer, you won't need this bit.
@@ -65,41 +30,22 @@ with everything we use.
You'll need a terminal to run commands in. For Linux and Mac users, you can just open
a Terminal app.
-However, for Windows users we recommend installing the [Windows Terminal](https://apps.microsoft.com/store/detail/windows-terminal/9N0DX20HK701?hl=en-gb&gl=GB). It integrates well with WSL2, which is what you'll have to use.
+However, for Windows users we recommend installing the [Windows Terminal](https://apps.microsoft.com/store/detail/windows-terminal/9N0DX20HK701?hl=en-gb&gl=GB).
-Anyway, with a terminal open you can proceed to the next steps!
+With a terminal open you can proceed to the next steps!
-### Understanding the Terminal
+## 1. Getting Node and Docker.
-If you're completely unfamiliar with the terminal, check out our [Terminal Guide](./tools/terminal.md). We'll be assuming you know terminal basics in the below instructions.
+You'll need `node` and `npm` in order to run Tachi. Install this from [the official NodeJS website](https://nodejs.org).
-## 1. Getting Node, PNPM and Docker.
+!!! info
+ If you are on linux, NodeJS will be provided by your package manager instead.
+
+ You may wish to use that instead. It honestly doesn't matter all too much.
-You'll need `node` to run JavaScript code on your machine. Our codebase is wrote in JS, so this is pretty important.
+Check that the install has worked by running `npm -v`. If you get an error message saying that `npm` was not found, try restarting the terminal.
-Because system package managers may have outdated versions of `node` available (we want Node 16), we're going to use a separate tool called `nvm` to manage our node installs.
-
-Follow [these instructions](https://github.com/nvm-sh/nvm#install--update-script).
-
-Then close and re-open your shell to apply the changes. We can now install node16.
-```sh
-# install node 16
-nvm install 16
-
-# Check it worked
-node --version
-```
-
-We use `pnpm` instead of `npm`. To get `pnpm`, you'll need to run:
-
-```sh
-# You might need `sudo` to run this command.
-npm install -g pnpm
-```
-
-We use MongoDB and Redis as databases, these external databases require radically different instructions for setup depending on what OS/Linux variant you're on.
-
-As such, we're going to take the lazy route and use something called [Docker](https://docker.com).
+To set everything else up for local development, we'll use [Docker](https://docker.com).
=== "Windows, WSL Ubuntu"
You should install [Docker Desktop](https://docs.docker.com/desktop/) instead.
@@ -170,63 +116,22 @@ There's a remarkably easy way to do this, using GitHub's `gh` tool.
Once you've installed it, type `gh auth` and follow the instructions.
You should now be properly authenticated!
-## 4. Start the databases.
+## 4. Start Tachi!
-Before we bootstrap, lets get the databases started.
+With a terminal open inside the `Tachi` folder you just cloned, run `npm start`.
-!!! important
- **You should be inside the Tachi folder you just cloned.**
-
-```sh
-# you can write either docker compose or docker-compose. However, the former might
-# require you to restart your shell if you've just installed docker compose.
-docker-compose up --detach
-```
-
-## 5. Bootstrap!
-
-!!! warning
- The bootstrap script is a fairly recent addition.
-
- If you have any issues with it, please report them!
-
-Using a terminal, run `_scripts/bootstrap.sh`. This will "bootstrap" your install of Tachi, and load
-everything you need.
+The frontend will be running on `http://127.0.0.1:3000`.
+The backend will be running on `https://127.0.0.1:8080`.
!!! danger
- The bootstrap script you just ran created some local self-signed HTTPS certificates.
+ The backend **always runs on HTTPS** in local development. This is because browsers
+ tend to *really* hate HTTP mode nowadays, and it causes so many problems.
- Browsers (rightfully) tell you that these are not actually secure HTTPS certs.
- We need them for local development, though.
-
- You **need** to navigate to your running instance of the server in a browser, and tell
+ You **need** to navigate to your running instance of the backend in a browser, and tell
the browser that you trust these certificates. Otherwise, all client requests to
the server will silently be chomped by the browser.
-## 6. That's it!
-
-You now have a fully working instance of Tachi on your PC. You can now start to tinker
-with all of its various components.
-
-To check everything's gone soundly, run `pnpm start-server` and `pnpm start-client`.
-
-!!! tip
- You can use the `+` inside the VSCode terminal to spawn multiple terminals.
-
- Remember that `Ctrl-C` will kill the currently active process. You should use that
- to stop the server or client.
-
-You should then be able to navigate to https://127.0.0.1:8080, accept the certificates,
-and view the client on http://127.0.0.1:3000.
-
-!!! warning
- You **MUST** accept the certificates on https://127.0.0.1:8080. The client **will not** start otherwise.
-
-!!! help
- If you're getting an `SSL_RX_RECORD_TOO_LONG` error, you're trying to access the client
- via https. The client is served over HTTP - use http://127.0.0.1:3000.
-
-## 7. Editor Plugins
+## 5. Editor Plugins
If you're using VSCode as your editor (I *really* recommend it!) You'll want a couple
plugins.
@@ -243,4 +148,4 @@ Namely, Install the ESLint plugin, and enable "Format On Save" in your settings.
Now that you've got a working version of Tachi running on your local PC, you should go check out the [component-specific contribution guides](./components.md)!
-[^1]: Docker is not actually a VM, it's significantly smarter and does some Linux jail cgroup nonsense. All you need to care about is that it works like having a separate Linux system on your host system.
+[^1]: Docker is not actually a VM, it's significantly smarter and does some Linux jail cgroup nonsense. All you need to care about is that we're using it to spawn Linux VMs on your host system.
diff --git a/package.json b/package.json
index bf92f4cfd..a74145a59 100644
--- a/package.json
+++ b/package.json
@@ -4,17 +4,31 @@
"private": true,
"description": "The root of the Tachi monorepo. Contains common utils like linters.",
"scripts": {
- "build": "pnpm -r build",
- "start-client": "pnpm --filter ./client start",
- "start-server": "pnpm --filter ./server start",
- "test-server": "pnpm --filter ./server test",
- "test-dbseeds": "pnpm --filter ./database-seeds/scripts test",
- "sync-database": "pnpm --filter ./server sync-database",
- "sync-database-local": "pnpm --filter ./server sync-database-local",
- "validate-database": "pnpm --filter ./server validate-database",
- "start-score-import-worker": "pnpm --filter ./server runscoreworker",
+ "start": "docker compose -f docker-compose-dev.yml up --build -d",
+ "stop": "docker compose -f docker-compose-dev.yml down",
+
+ "logs-server": "docker logs tachi-server -f",
+ "logs-client": "docker logs tachi-client -f",
+ "logs-seeds": "docker logs tachi-seeds -f",
+
+ "test-server": "docker compose -f docker-compose-dev.yml exec tachi-server pnpm test",
+ "test-seeds": "docker compose -f docker-compose-dev.yml exec tachi-seeds pnpm --filter ./scripts test",
+
+ "enter-seeds": "docker compose -f docker-compose-dev.yml exec tachi-seeds bash",
+ "sort-seeds": "docker compose -f docker-compose-dev.yml exec tachi-seeds node scripts/deterministic-collection-sort.js",
+ "view-seeds": "xdg-open http://127.0.0.1:3000/utils/seeds",
+ "load-seeds": "docker compose -f docker-compose-dev.yml exec tachi-server pnpm sync-database-local",
+
+ "validate-db": "docker compose -f docker-compose-dev.yml exec tachi-server pnpm validate-database",
+
"start-docs": "cd docs/ && mkdocs serve",
- "make-user-admin": "pnpm --filter ./server make-user-admin $@"
+
+ "^^ DEV STUFF IS HERE ^^": "comment",
+ "vv PROD STUFF YOU WON'T TOUCH vv": "comment",
+
+ "build": "pnpm -r build",
+ "sync-database": "pnpm --filter ./server sync-database",
+ "start-score-import-worker": "pnpm --filter ./server runscoreworker"
},
"repository": {
"type": "git",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 20fb6c7be..e0fafd287 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -120,6 +120,7 @@ importers:
'@fullcalendar/react': ^6.0.0
'@mui/material': ^5.11.1
'@nivo/bar': 0.79.1
+ '@nivo/colors': 0.79.1
'@nivo/core': 0.79.0
'@nivo/line': 0.79.1
'@nivo/tooltip': 0.79.0
@@ -135,6 +136,7 @@ importers:
'@vitejs/plugin-react': ^2.0.1
bootstrap-scss: ^4.6.2
csstype: 3.1.1
+ d3-scale: 3.3.0
deepmerge: 4.2.2
dotenv: 6.2.0
fast-json-stable-hash: ^1.0.3
@@ -177,6 +179,7 @@ importers:
'@fullcalendar/react': 6.0.0_wleuoewscvnen6zuztbbtuu6cm
'@mui/material': 5.11.1_2bfynjf4hrwm4vyropl2pxidz4
'@nivo/bar': 0.79.1_zdmu7r6rnwr53twfq5tjwaw3ie
+ '@nivo/colors': 0.79.1_oxs2fz2yo66kcgptpt3mfzzlt4
'@nivo/core': 0.79.0_4je5zjym5qd6ibnduxozf6nkpi
'@nivo/line': 0.79.1_zdmu7r6rnwr53twfq5tjwaw3ie
'@nivo/tooltip': 0.79.0_tr7qpesmx3wckmenoaha4pdkta
@@ -184,6 +187,7 @@ importers:
'@types/natural-compare': 1.4.1
'@types/react-google-recaptcha': 2.1.2
csstype: 3.1.1
+ d3-scale: 3.3.0
deepmerge: 4.2.2
dotenv: 6.2.0
fast-json-stable-hash: 1.0.3
@@ -380,6 +384,7 @@ importers:
node-html-parser: ^5.3.3
node-mocks-http: 1.11.0
nodemailer: 6.7.2
+ nodemon: ^2.0.20
prudence: 0.10.0
rate-limit-redis: 2.1.0
redis: 3.1.2
@@ -466,6 +471,7 @@ importers:
'@types/tap': 15.0.5
glob: 7.2.3
node-mocks-http: 1.11.0
+ nodemon: 2.0.20
supertest: 6.2.2
tap: 15.1.6_z6wznmtyb6ovnulj6iujpct7um
tsconfig-paths: 3.12.0
@@ -497,7 +503,7 @@ packages:
engines: {node: '>=6.0.0'}
dependencies:
'@jridgewell/gen-mapping': 0.1.1
- '@jridgewell/trace-mapping': 0.3.14
+ '@jridgewell/trace-mapping': 0.3.17
dev: true
/@aws-crypto/crc32/2.0.0:
@@ -1327,8 +1333,8 @@ packages:
dependencies:
'@babel/highlight': 7.18.6
- /@babel/compat-data/7.18.6:
- resolution: {integrity: sha512-tzulrgDT0QD6U7BJ4TKVk2SDDg7wlP39P9yAx1RfLy7vP/7rsDRlWVfbWxElslu56+r7QOhB2NSDsabYYruoZQ==}
+ /@babel/compat-data/7.20.14:
+ resolution: {integrity: sha512-0YpKHD6ImkWMEINCyDAD0HLLUH/lPCefG8ld9it8DJB2wnApraKuhgYTvTY1z7UFIfBTGy5LwncZ+5HWWGbhFw==}
engines: {node: '>=6.9.0'}
dev: true
@@ -1359,24 +1365,24 @@ packages:
- supports-color
dev: false
- /@babel/core/7.18.6:
- resolution: {integrity: sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==}
+ /@babel/core/7.20.12:
+ resolution: {integrity: sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==}
engines: {node: '>=6.9.0'}
dependencies:
'@ampproject/remapping': 2.2.0
'@babel/code-frame': 7.18.6
- '@babel/generator': 7.18.7
- '@babel/helper-compilation-targets': 7.18.6_@babel+core@7.18.6
- '@babel/helper-module-transforms': 7.18.6
- '@babel/helpers': 7.18.6
- '@babel/parser': 7.18.6
- '@babel/template': 7.18.6
- '@babel/traverse': 7.18.6
- '@babel/types': 7.18.7
- convert-source-map: 1.8.0
+ '@babel/generator': 7.20.14
+ '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12
+ '@babel/helper-module-transforms': 7.20.11
+ '@babel/helpers': 7.20.13
+ '@babel/parser': 7.20.15
+ '@babel/template': 7.20.7
+ '@babel/traverse': 7.20.13
+ '@babel/types': 7.20.7
+ convert-source-map: 1.9.0
debug: 4.3.4
gensync: 1.0.0-beta.2
- json5: 2.2.1
+ json5: 2.2.3
semver: 6.3.0
transitivePeerDependencies:
- supports-color
@@ -1412,6 +1418,16 @@ packages:
'@babel/types': 7.18.7
'@jridgewell/gen-mapping': 0.3.2
jsesc: 2.5.2
+ dev: false
+
+ /@babel/generator/7.20.14:
+ resolution: {integrity: sha512-AEmuXHdcD3A52HHXxaTmYlb8q/xMEhoRP67B3T4Oq7lbmSoqroMZzjnGj3+i1io3pdnF8iBYVu4Ilj+c4hBxYg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.20.7
+ '@jridgewell/gen-mapping': 0.3.2
+ jsesc: 2.5.2
+ dev: true
/@babel/generator/7.20.7:
resolution: {integrity: sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==}
@@ -1426,19 +1442,20 @@ packages:
resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.18.7
+ '@babel/types': 7.20.7
dev: true
- /@babel/helper-compilation-targets/7.18.6_@babel+core@7.18.6:
- resolution: {integrity: sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==}
+ /@babel/helper-compilation-targets/7.20.7_@babel+core@7.20.12:
+ resolution: {integrity: sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/compat-data': 7.18.6
- '@babel/core': 7.18.6
+ '@babel/compat-data': 7.20.14
+ '@babel/core': 7.20.12
'@babel/helper-validator-option': 7.18.6
- browserslist: 4.21.1
+ browserslist: 4.21.5
+ lru-cache: 5.1.1
semver: 6.3.0
dev: true
@@ -1459,6 +1476,7 @@ packages:
/@babel/helper-environment-visitor/7.18.6:
resolution: {integrity: sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==}
engines: {node: '>=6.9.0'}
+ dev: false
/@babel/helper-environment-visitor/7.18.9:
resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==}
@@ -1471,6 +1489,7 @@ packages:
dependencies:
'@babel/template': 7.18.6
'@babel/types': 7.18.7
+ dev: false
/@babel/helper-function-name/7.19.0:
resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==}
@@ -1484,26 +1503,26 @@ packages:
resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.18.7
+ '@babel/types': 7.20.7
/@babel/helper-module-imports/7.18.6:
resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.18.7
+ '@babel/types': 7.20.7
- /@babel/helper-module-transforms/7.18.6:
- resolution: {integrity: sha512-L//phhB4al5uucwzlimruukHB3jRd5JGClwRMD/ROrVjXfLqovYnvQrK/JK36WYyVwGGO7OD3kMyVTjx+WVPhw==}
+ /@babel/helper-module-transforms/7.20.11:
+ resolution: {integrity: sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/helper-environment-visitor': 7.18.6
+ '@babel/helper-environment-visitor': 7.18.9
'@babel/helper-module-imports': 7.18.6
- '@babel/helper-simple-access': 7.18.6
+ '@babel/helper-simple-access': 7.20.2
'@babel/helper-split-export-declaration': 7.18.6
- '@babel/helper-validator-identifier': 7.18.6
- '@babel/template': 7.18.6
- '@babel/traverse': 7.18.6
- '@babel/types': 7.18.7
+ '@babel/helper-validator-identifier': 7.19.1
+ '@babel/template': 7.20.7
+ '@babel/traverse': 7.20.13
+ '@babel/types': 7.20.7
transitivePeerDependencies:
- supports-color
dev: true
@@ -1533,13 +1552,6 @@ packages:
engines: {node: '>=6.9.0'}
dev: true
- /@babel/helper-simple-access/7.18.6:
- resolution: {integrity: sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/types': 7.18.7
- dev: true
-
/@babel/helper-simple-access/7.20.2:
resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==}
engines: {node: '>=6.9.0'}
@@ -1551,21 +1563,20 @@ packages:
resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.18.7
+ '@babel/types': 7.20.7
/@babel/helper-string-parser/7.19.4:
resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==}
engines: {node: '>=6.9.0'}
- dev: true
/@babel/helper-validator-identifier/7.18.6:
resolution: {integrity: sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==}
engines: {node: '>=6.9.0'}
+ dev: false
/@babel/helper-validator-identifier/7.19.1:
resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==}
engines: {node: '>=6.9.0'}
- dev: true
/@babel/helper-validator-option/7.18.6:
resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==}
@@ -1581,6 +1592,18 @@ packages:
'@babel/types': 7.18.7
transitivePeerDependencies:
- supports-color
+ dev: false
+
+ /@babel/helpers/7.20.13:
+ resolution: {integrity: sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/template': 7.20.7
+ '@babel/traverse': 7.20.13
+ '@babel/types': 7.20.7
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
/@babel/helpers/7.20.7:
resolution: {integrity: sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA==}
@@ -1597,7 +1620,7 @@ packages:
resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/helper-validator-identifier': 7.18.6
+ '@babel/helper-validator-identifier': 7.19.1
chalk: 2.4.2
js-tokens: 4.0.0
@@ -1607,6 +1630,15 @@ packages:
hasBin: true
dependencies:
'@babel/types': 7.18.7
+ dev: false
+
+ /@babel/parser/7.20.15:
+ resolution: {integrity: sha512-DI4a1oZuf8wC+oAJA9RW6ga3Zbe8RZFt7kD9i4qAspz3I/yHet1VvC3DiSy/fsUvv5pvJuNPh0LPOdCcqinDPg==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+ dependencies:
+ '@babel/types': 7.20.7
+ dev: true
/@babel/parser/7.20.7:
resolution: {integrity: sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==}
@@ -1616,18 +1648,18 @@ packages:
'@babel/types': 7.20.7
dev: true
- /@babel/plugin-proposal-object-rest-spread/7.18.6_@babel+core@7.18.6:
- resolution: {integrity: sha512-9yuM6wr4rIsKa1wlUAbZEazkCrgw2sMPEXCr4Rnwetu7cEW1NydkCWytLuYletbf8vFxdJxFhwEZqMpOx2eZyw==}
+ /@babel/plugin-proposal-object-rest-spread/7.20.7_@babel+core@7.20.12:
+ resolution: {integrity: sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/compat-data': 7.18.6
- '@babel/core': 7.18.6
- '@babel/helper-compilation-targets': 7.18.6_@babel+core@7.18.6
- '@babel/helper-plugin-utils': 7.18.6
- '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.18.6
- '@babel/plugin-transform-parameters': 7.18.6_@babel+core@7.18.6
+ '@babel/compat-data': 7.20.14
+ '@babel/core': 7.20.12
+ '@babel/helper-compilation-targets': 7.20.7_@babel+core@7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3_@babel+core@7.20.12
+ '@babel/plugin-transform-parameters': 7.20.7_@babel+core@7.20.12
dev: true
/@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.1.0:
@@ -1640,14 +1672,14 @@ packages:
'@babel/helper-plugin-utils': 7.18.6
dev: false
- /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.18.6:
+ /@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.20.12:
resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.18.6
- '@babel/helper-plugin-utils': 7.18.6
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
dev: true
/@babel/plugin-syntax-jsx/7.18.6_@babel+core@7.20.7:
@@ -1660,33 +1692,33 @@ packages:
'@babel/helper-plugin-utils': 7.18.6
dev: true
- /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.18.6:
+ /@babel/plugin-syntax-object-rest-spread/7.8.3_@babel+core@7.20.12:
resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.18.6
- '@babel/helper-plugin-utils': 7.18.6
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-transform-destructuring/7.18.6_@babel+core@7.18.6:
- resolution: {integrity: sha512-tgy3u6lRp17ilY8r1kP4i2+HDUwxlVqq3RTc943eAWSzGgpU1qhiKpqZ5CMyHReIYPHdo3Kg8v8edKtDqSVEyQ==}
+ /@babel/plugin-transform-destructuring/7.20.7_@babel+core@7.20.12:
+ resolution: {integrity: sha512-Xwg403sRrZb81IVB79ZPqNQME23yhugYVqgTxAhT99h485F4f+GMELFhhOsscDUB7HCswepKeCKLn/GZvUKoBA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.18.6
- '@babel/helper-plugin-utils': 7.18.6
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-transform-parameters/7.18.6_@babel+core@7.18.6:
- resolution: {integrity: sha512-FjdqgMv37yVl/gwvzkcB+wfjRI8HQmc5EgOG9iGNvUY1ok+TjsoaMP7IqCDZBhkFcM5f3OPVMs6Dmp03C5k4/A==}
+ /@babel/plugin-transform-parameters/7.20.7_@babel+core@7.20.12:
+ resolution: {integrity: sha512-WiWBIkeHKVOSYPO0pWkxGPfKeWrCJyD3NJ53+Lrp/QMSZbsVPovrVl2aWZ19D/LTVnaDv5Ap7GJ/B2CTOZdrfA==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.18.6
- '@babel/helper-plugin-utils': 7.18.6
+ '@babel/core': 7.20.12
+ '@babel/helper-plugin-utils': 7.20.2
dev: true
/@babel/plugin-transform-react-jsx-development/7.18.6_@babel+core@7.20.7:
@@ -1719,18 +1751,18 @@ packages:
'@babel/helper-plugin-utils': 7.20.2
dev: true
- /@babel/plugin-transform-react-jsx/7.18.6_@babel+core@7.18.6:
- resolution: {integrity: sha512-Mz7xMPxoy9kPS/JScj6fJs03TZ/fZ1dJPlMjRAgTaxaS0fUBk8FV/A2rRgfPsVCZqALNwMexD+0Uaf5zlcKPpw==}
+ /@babel/plugin-transform-react-jsx/7.20.13_@babel+core@7.20.12:
+ resolution: {integrity: sha512-MmTZx/bkUrfJhhYAYt3Urjm+h8DQGrPrnKQ94jLo7NLuOU+T89a7IByhKmrb8SKhrIYIQ0FN0CHMbnFRen4qNw==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0-0
dependencies:
- '@babel/core': 7.18.6
+ '@babel/core': 7.20.12
'@babel/helper-annotate-as-pure': 7.18.6
'@babel/helper-module-imports': 7.18.6
- '@babel/helper-plugin-utils': 7.18.6
- '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.18.6
- '@babel/types': 7.18.7
+ '@babel/helper-plugin-utils': 7.20.2
+ '@babel/plugin-syntax-jsx': 7.18.6_@babel+core@7.20.12
+ '@babel/types': 7.20.7
dev: true
/@babel/plugin-transform-react-jsx/7.20.7_@babel+core@7.20.7:
@@ -1767,13 +1799,14 @@ packages:
'@babel/code-frame': 7.18.6
'@babel/parser': 7.18.6
'@babel/types': 7.18.7
+ dev: false
/@babel/template/7.20.7:
resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/code-frame': 7.18.6
- '@babel/parser': 7.20.7
+ '@babel/parser': 7.20.15
'@babel/types': 7.20.7
dev: true
@@ -1793,6 +1826,25 @@ packages:
globals: 11.12.0
transitivePeerDependencies:
- supports-color
+ dev: false
+
+ /@babel/traverse/7.20.13:
+ resolution: {integrity: sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/code-frame': 7.18.6
+ '@babel/generator': 7.20.14
+ '@babel/helper-environment-visitor': 7.18.9
+ '@babel/helper-function-name': 7.19.0
+ '@babel/helper-hoist-variables': 7.18.6
+ '@babel/helper-split-export-declaration': 7.18.6
+ '@babel/parser': 7.20.15
+ '@babel/types': 7.20.7
+ debug: 4.3.4
+ globals: 11.12.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
/@babel/traverse/7.20.8:
resolution: {integrity: sha512-/RNkaYDeCy4MjyV70+QkSHhxbvj2JO/5Ft2Pa880qJOG8tWrqcT/wXUuCCv43yogfqPzHL77Xu101KQPf4clnQ==}
@@ -1818,6 +1870,7 @@ packages:
dependencies:
'@babel/helper-validator-identifier': 7.18.6
to-fast-properties: 2.0.0
+ dev: false
/@babel/types/7.20.7:
resolution: {integrity: sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==}
@@ -1826,7 +1879,6 @@ packages:
'@babel/helper-string-parser': 7.19.4
'@babel/helper-validator-identifier': 7.19.1
to-fast-properties: 2.0.0
- dev: true
/@colors/colors/1.5.0:
resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
@@ -2038,15 +2090,15 @@ packages:
requiresBuild: true
optional: true
- /@eslint/eslintrc/1.3.0:
- resolution: {integrity: sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==}
+ /@eslint/eslintrc/1.4.1:
+ resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
ajv: 6.12.6
debug: 4.3.4
- espree: 9.3.2
- globals: 13.15.0
- ignore: 5.2.0
+ espree: 9.4.1
+ globals: 13.20.0
+ ignore: 5.2.4
import-fresh: 3.3.0
js-yaml: 4.1.0
minimatch: 3.1.2
@@ -2157,11 +2209,16 @@ packages:
dependencies:
'@jridgewell/set-array': 1.1.2
'@jridgewell/sourcemap-codec': 1.4.14
- '@jridgewell/trace-mapping': 0.3.14
+ '@jridgewell/trace-mapping': 0.3.17
/@jridgewell/resolve-uri/3.0.8:
resolution: {integrity: sha512-YK5G9LaddzGbcucK4c8h5tWFmMPBvRZ/uyWmN1/SbBdIvqGUdWGkJ5BAaccgs6XbzVLsqbPJrBSFwKv3kT9i7w==}
engines: {node: '>=6.0.0'}
+ dev: false
+
+ /@jridgewell/resolve-uri/3.1.0:
+ resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==}
+ engines: {node: '>=6.0.0'}
/@jridgewell/set-array/1.1.2:
resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
@@ -2182,11 +2239,18 @@ packages:
dependencies:
'@jridgewell/resolve-uri': 3.0.8
'@jridgewell/sourcemap-codec': 1.4.14
+ dev: false
+
+ /@jridgewell/trace-mapping/0.3.17:
+ resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==}
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.0
+ '@jridgewell/sourcemap-codec': 1.4.14
/@jridgewell/trace-mapping/0.3.9:
resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
dependencies:
- '@jridgewell/resolve-uri': 3.0.8
+ '@jridgewell/resolve-uri': 3.1.0
'@jridgewell/sourcemap-codec': 1.4.14
/@msgpackr-extract/msgpackr-extract-darwin-arm64/2.0.2:
@@ -2585,7 +2649,7 @@ packages:
engines: {node: '>= 8'}
dependencies:
'@nodelib/fs.scandir': 2.1.5
- fastq: 1.13.0
+ fastq: 1.15.0
/@octokit/app/13.1.0:
resolution: {integrity: sha512-w0DCS/+bvrIL0iva89VSSa9YhIy1YHATSXMYrHQtgsBHpbuAnMn7QEknYhuMn/4h2dGg9cNjU+3XeAF5eyNmEA==}
@@ -3348,10 +3412,10 @@ packages:
'@typescript-eslint/utils': 5.47.1_4njjt2tu6ubn7rwbgcnueihm54
debug: 4.3.4
eslint: 8.18.0
- ignore: 5.2.0
+ ignore: 5.2.4
natural-compare-lite: 1.4.0
regexpp: 3.2.0
- semver: 7.3.7
+ semver: 7.3.8
tsutils: 3.21.0_typescript@4.9.4
typescript: 4.9.4
transitivePeerDependencies:
@@ -3425,7 +3489,7 @@ packages:
debug: 4.3.4
globby: 11.1.0
is-glob: 4.0.3
- semver: 7.3.7
+ semver: 7.3.8
tsutils: 3.21.0_typescript@4.9.4
typescript: 4.9.4
transitivePeerDependencies:
@@ -3446,7 +3510,7 @@ packages:
eslint: 8.18.0
eslint-scope: 5.1.1
eslint-utils: 3.0.0_eslint@8.18.0
- semver: 7.3.7
+ semver: 7.3.8
transitivePeerDependencies:
- supports-color
- typescript
@@ -3485,6 +3549,10 @@ packages:
- supports-color
dev: true
+ /abbrev/1.1.1:
+ resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
+ dev: true
+
/abort-controller/3.0.0:
resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
engines: {node: '>=6.5'}
@@ -3499,12 +3567,12 @@ packages:
mime-types: 2.1.35
negotiator: 0.6.3
- /acorn-jsx/5.3.2_acorn@8.7.1:
+ /acorn-jsx/5.3.2_acorn@8.8.2:
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
peerDependencies:
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
dependencies:
- acorn: 8.7.1
+ acorn: 8.8.2
dev: true
/acorn-walk/8.2.0:
@@ -3515,6 +3583,12 @@ packages:
resolution: {integrity: sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==}
engines: {node: '>=0.4.0'}
hasBin: true
+ dev: false
+
+ /acorn/8.8.2:
+ resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
/aggregate-error/3.1.0:
resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
@@ -3535,6 +3609,7 @@ packages:
/ansi-regex/2.1.1:
resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==}
engines: {node: '>=0.10.0'}
+ dev: false
/ansi-regex/5.0.1:
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
@@ -3557,8 +3632,8 @@ packages:
resolution: {integrity: sha512-iFY7JCgHbepc0b82yLaw4IMortylNb6wG4kL+4R0C3iv6i+RHGHux/yUX5BTiRvSX/shMnngjR1YyNMnXEFh5A==}
dev: false
- /anymatch/3.1.2:
- resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==}
+ /anymatch/3.1.3:
+ resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
engines: {node: '>= 8'}
dependencies:
normalize-path: 3.0.0
@@ -3572,7 +3647,7 @@ packages:
resolution: {integrity: sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==}
engines: {node: '>=8'}
dependencies:
- default-require-extensions: 3.0.0
+ default-require-extensions: 3.0.1
dev: true
/archy/1.0.0:
@@ -3603,14 +3678,14 @@ packages:
resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
dev: false
- /array-includes/3.1.5:
- resolution: {integrity: sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==}
+ /array-includes/3.1.6:
+ resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==}
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
define-properties: 1.1.4
- es-abstract: 1.20.1
- get-intrinsic: 1.1.2
+ es-abstract: 1.21.1
+ get-intrinsic: 1.2.0
is-string: 1.0.7
dev: true
@@ -3619,13 +3694,13 @@ packages:
engines: {node: '>=8'}
dev: true
- /array.prototype.flat/1.3.0:
- resolution: {integrity: sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==}
+ /array.prototype.flat/1.3.1:
+ resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==}
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
define-properties: 1.1.4
- es-abstract: 1.20.1
+ es-abstract: 1.21.1
es-shim-unscopables: 1.0.0
dev: true
@@ -3655,6 +3730,11 @@ packages:
/asynckit/0.4.0:
resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
+ /available-typed-arrays/1.0.5:
+ resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
/aws-crt/1.12.5:
resolution: {integrity: sha512-fIMKy7BKHEWC4gzqewYJTlmp+m9ioZuBSfcKf2zYFSIZxtmweHji6n+sicHDcynxNA5zUsFPcVbKhOryfyAKfw==}
requiresBuild: true
@@ -3678,8 +3758,8 @@ packages:
resolution: {integrity: sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==}
dev: true
- /aws4/1.11.0:
- resolution: {integrity: sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==}
+ /aws4/1.12.0:
+ resolution: {integrity: sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==}
dev: true
/axios/0.21.4_debug@4.3.4:
@@ -3893,17 +3973,6 @@ packages:
unload: 2.2.0
dev: false
- /browserslist/4.21.1:
- resolution: {integrity: sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ==}
- engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
- hasBin: true
- dependencies:
- caniuse-lite: 1.0.30001367
- electron-to-chromium: 1.4.177
- node-releases: 2.0.5
- update-browserslist-db: 1.0.4_browserslist@4.21.1
- dev: true
-
/browserslist/4.21.4_3sk7x5xyu7mtmw3sdh5izkeejy:
resolution: {integrity: sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==}
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
@@ -3916,6 +3985,17 @@ packages:
dev: true
patched: true
+ /browserslist/4.21.5:
+ resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+ dependencies:
+ caniuse-lite: 1.0.30001451
+ electron-to-chromium: 1.4.289
+ node-releases: 2.0.10
+ update-browserslist-db: 1.0.10_browserslist@4.21.5
+ dev: true
+
/bson/1.1.6:
resolution: {integrity: sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==}
engines: {node: '>=0.6.19'}
@@ -4022,7 +4102,7 @@ packages:
resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}
dependencies:
function-bind: 1.1.1
- get-intrinsic: 1.1.2
+ get-intrinsic: 1.2.0
/caller-callsite/4.1.0:
resolution: {integrity: sha512-99nnnGlJexTc41xwQTr+mWl15OI5PPczUJzM4YRE7QjkefMKCXGa5gfQjCOuVrD+1TjI/fevIDHg2nz3iYN5Ig==}
@@ -4059,14 +4139,14 @@ packages:
engines: {node: '>=6'}
dev: true
- /caniuse-lite/1.0.30001367:
- resolution: {integrity: sha512-XDgbeOHfifWV3GEES2B8rtsrADx4Jf+juKX2SICJcaUhjYBO3bR96kvEIHa15VU6ohtOhBZuPGGYGbXMRn0NCw==}
- dev: true
-
/caniuse-lite/1.0.30001441:
resolution: {integrity: sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg==}
dev: true
+ /caniuse-lite/1.0.30001451:
+ resolution: {integrity: sha512-XY7UbUpGRatZzoRft//5xOa69/1iGJRBlrieH6QYrkKLIFn3m7OVEJ81dSrKoy2BnKsdbX5cLrOispZNYo9v2w==}
+ dev: true
+
/caseless/0.12.0:
resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==}
dev: true
@@ -4101,7 +4181,7 @@ packages:
engines: {node: '>= 8.10.0'}
requiresBuild: true
dependencies:
- anymatch: 3.1.2
+ anymatch: 3.1.3
braces: 3.0.2
glob-parent: 5.1.2
is-binary-path: 2.1.0
@@ -4120,8 +4200,8 @@ packages:
engines: {node: '>=10'}
dev: false
- /ci-info/3.7.0:
- resolution: {integrity: sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==}
+ /ci-info/3.7.1:
+ resolution: {integrity: sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w==}
engines: {node: '>=8'}
dev: true
@@ -4294,6 +4374,12 @@ packages:
/commander/9.0.0:
resolution: {integrity: sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw==}
engines: {node: ^12.20.0 || >=14}
+ dev: false
+
+ /commander/9.5.0:
+ resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==}
+ engines: {node: ^12.20.0 || >=14}
+ dev: true
/commist/1.1.0:
resolution: {integrity: sha512-rraC8NXWOEjhADbZe9QBNzLAN5Q3fsTPQtBV+fEVj6xKIgDgNiEVE6ZNfHpZOqfQ21YUzfVNUXLOEZquYvQPPg==}
@@ -4370,6 +4456,10 @@ packages:
dependencies:
safe-buffer: 5.1.2
+ /convert-source-map/1.9.0:
+ resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
+ dev: true
+
/cookie-signature/1.0.6:
resolution: {integrity: sha1-4wOogrNCzD7oylE6eZmXNNqzriw=}
dev: false
@@ -4425,7 +4515,7 @@ packages:
js-yaml: 3.14.1
lcov-parse: 1.0.0
log-driver: 1.2.7
- minimist: 1.2.6
+ minimist: 1.2.7
request: 2.88.2
dev: true
@@ -4575,6 +4665,18 @@ packages:
dependencies:
ms: 2.1.3
+ /debug/3.2.7_supports-color@5.5.0:
+ resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ dependencies:
+ ms: 2.1.3
+ supports-color: 5.5.0
+ dev: true
+
/debug/4.3.4:
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
engines: {node: '>=6.0'}
@@ -4627,8 +4729,8 @@ packages:
engines: {node: '>=0.10.0'}
dev: false
- /default-require-extensions/3.0.0:
- resolution: {integrity: sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==}
+ /default-require-extensions/3.0.1:
+ resolution: {integrity: sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw==}
engines: {node: '>=8'}
dependencies:
strip-bom: 4.0.0
@@ -4912,14 +5014,14 @@ packages:
jake: 10.8.5
dev: false
- /electron-to-chromium/1.4.177:
- resolution: {integrity: sha512-FYPir3NSBEGexSZUEeht81oVhHfLFl6mhUKSkjHN/iB/TwEIt/WHQrqVGfTLN5gQxwJCQkIJBe05eOXjI7omgg==}
- dev: true
-
/electron-to-chromium/1.4.284:
resolution: {integrity: sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==}
dev: true
+ /electron-to-chromium/1.4.289:
+ resolution: {integrity: sha512-relLdMfPBxqGCxy7Gyfm1HcbRPcFUJdlgnCPVgQ23sr1TvUrRJz0/QPoGP0+x41wOVSTN/Wi3w6YDgHiHJGOzg==}
+ dev: true
+
/emoji-regex/8.0.0:
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
dev: true
@@ -4958,33 +5060,52 @@ packages:
dependencies:
is-arrayish: 0.2.1
- /es-abstract/1.20.1:
- resolution: {integrity: sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==}
+ /es-abstract/1.21.1:
+ resolution: {integrity: sha512-QudMsPOz86xYz/1dG1OuGBKOELjCh99IIWHLzy5znUB6j8xG2yMA7bfTV86VSqKF+Y/H08vQPR+9jyXpuC6hfg==}
engines: {node: '>= 0.4'}
dependencies:
+ available-typed-arrays: 1.0.5
call-bind: 1.0.2
+ es-set-tostringtag: 2.0.1
es-to-primitive: 1.2.1
function-bind: 1.1.1
function.prototype.name: 1.1.5
- get-intrinsic: 1.1.2
+ get-intrinsic: 1.2.0
get-symbol-description: 1.0.0
+ globalthis: 1.0.3
+ gopd: 1.0.1
has: 1.0.3
has-property-descriptors: 1.0.0
+ has-proto: 1.0.1
has-symbols: 1.0.3
- internal-slot: 1.0.3
- is-callable: 1.2.4
+ internal-slot: 1.0.4
+ is-array-buffer: 3.0.1
+ is-callable: 1.2.7
is-negative-zero: 2.0.2
is-regex: 1.1.4
is-shared-array-buffer: 1.0.2
is-string: 1.0.7
+ is-typed-array: 1.1.10
is-weakref: 1.0.2
- object-inspect: 1.12.2
+ object-inspect: 1.12.3
object-keys: 1.1.1
- object.assign: 4.1.2
+ object.assign: 4.1.4
regexp.prototype.flags: 1.4.3
- string.prototype.trimend: 1.0.5
- string.prototype.trimstart: 1.0.5
+ safe-regex-test: 1.0.0
+ string.prototype.trimend: 1.0.6
+ string.prototype.trimstart: 1.0.6
+ typed-array-length: 1.0.4
unbox-primitive: 1.0.2
+ which-typed-array: 1.1.9
+ dev: true
+
+ /es-set-tostringtag/2.0.1:
+ resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ get-intrinsic: 1.2.0
+ has: 1.0.3
+ has-tostringtag: 1.0.0
dev: true
/es-shim-unscopables/1.0.0:
@@ -4997,7 +5118,7 @@ packages:
resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
engines: {node: '>= 0.4'}
dependencies:
- is-callable: 1.2.4
+ is-callable: 1.2.7
is-date-object: 1.0.5
is-symbol: 1.0.4
dev: true
@@ -5226,26 +5347,30 @@ packages:
eslint: 8.18.0
dev: true
- /eslint-import-resolver-node/0.3.6:
- resolution: {integrity: sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==}
+ /eslint-import-resolver-node/0.3.7:
+ resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==}
dependencies:
debug: 3.2.7
+ is-core-module: 2.11.0
resolve: 1.22.1
transitivePeerDependencies:
- supports-color
dev: true
- /eslint-module-utils/2.7.3_6dsjnk3zbg5zvrpqdo7s6ttela:
- resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==}
+ /eslint-module-utils/2.7.4_pdg6fr6jabdazi2rbb36wwvgxa:
+ resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==}
engines: {node: '>=4'}
peerDependencies:
'@typescript-eslint/parser': '*'
+ eslint: '*'
eslint-import-resolver-node: '*'
eslint-import-resolver-typescript: '*'
eslint-import-resolver-webpack: '*'
peerDependenciesMeta:
'@typescript-eslint/parser':
optional: true
+ eslint:
+ optional: true
eslint-import-resolver-node:
optional: true
eslint-import-resolver-typescript:
@@ -5255,8 +5380,8 @@ packages:
dependencies:
'@typescript-eslint/parser': 5.47.1_4njjt2tu6ubn7rwbgcnueihm54
debug: 3.2.7
- eslint-import-resolver-node: 0.3.6
- find-up: 2.1.0
+ eslint: 8.18.0
+ eslint-import-resolver-node: 0.3.7
transitivePeerDependencies:
- supports-color
dev: true
@@ -5318,18 +5443,18 @@ packages:
optional: true
dependencies:
'@typescript-eslint/parser': 5.47.1_4njjt2tu6ubn7rwbgcnueihm54
- array-includes: 3.1.5
- array.prototype.flat: 1.3.0
+ array-includes: 3.1.6
+ array.prototype.flat: 1.3.1
debug: 2.6.9
doctrine: 2.1.0
eslint: 8.18.0
- eslint-import-resolver-node: 0.3.6
- eslint-module-utils: 2.7.3_6dsjnk3zbg5zvrpqdo7s6ttela
+ eslint-import-resolver-node: 0.3.7
+ eslint-module-utils: 2.7.4_pdg6fr6jabdazi2rbb36wwvgxa
has: 1.0.3
- is-core-module: 2.9.0
+ is-core-module: 2.11.0
is-glob: 4.0.3
minimatch: 3.1.2
- object.values: 1.1.5
+ object.values: 1.1.6
resolve: 1.22.1
tsconfig-paths: 3.14.1
transitivePeerDependencies:
@@ -5347,7 +5472,7 @@ packages:
eslint: 8.18.0
eslint-plugin-es: 3.0.1_eslint@8.18.0
eslint-utils: 2.1.0
- ignore: 5.2.0
+ ignore: 5.2.4
minimatch: 3.1.2
resolve: 1.22.1
semver: 6.3.0
@@ -5377,19 +5502,19 @@ packages:
eslint: '>=8.18.0'
dependencies:
'@babel/helper-validator-identifier': 7.19.1
- ci-info: 3.7.0
+ ci-info: 3.7.1
clean-regexp: 1.0.0
eslint: 8.18.0
eslint-utils: 3.0.0_eslint@8.18.0
esquery: 1.4.0
indent-string: 4.0.0
- is-builtin-module: 3.2.0
+ is-builtin-module: 3.2.1
lodash: 4.17.21
pluralize: 8.0.0
read-pkg-up: 7.0.1
regexp-tree: 0.1.24
safe-regex: 2.1.1
- semver: 7.3.7
+ semver: 7.3.8
strip-indent: 3.0.0
dev: true
@@ -5446,7 +5571,7 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
hasBin: true
dependencies:
- '@eslint/eslintrc': 1.3.0
+ '@eslint/eslintrc': 1.4.1
'@humanwhocodes/config-array': 0.9.5
ajv: 6.12.6
chalk: 4.1.2
@@ -5457,15 +5582,15 @@ packages:
eslint-scope: 7.1.1
eslint-utils: 3.0.0_eslint@8.18.0
eslint-visitor-keys: 3.3.0
- espree: 9.3.2
+ espree: 9.4.1
esquery: 1.4.0
esutils: 2.0.3
fast-deep-equal: 3.1.3
file-entry-cache: 6.0.1
functional-red-black-tree: 1.0.1
glob-parent: 6.0.2
- globals: 13.15.0
- ignore: 5.2.0
+ globals: 13.20.0
+ ignore: 5.2.4
import-fresh: 3.3.0
imurmurhash: 0.1.4
is-glob: 4.0.3
@@ -5485,12 +5610,12 @@ packages:
- supports-color
dev: true
- /espree/9.3.2:
- resolution: {integrity: sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==}
+ /espree/9.4.1:
+ resolution: {integrity: sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
- acorn: 8.7.1
- acorn-jsx: 5.3.2_acorn@8.7.1
+ acorn: 8.8.2
+ acorn-jsx: 5.3.2_acorn@8.8.2
eslint-visitor-keys: 3.3.0
dev: true
@@ -5720,6 +5845,18 @@ packages:
glob-parent: 5.1.2
merge2: 1.4.1
micromatch: 4.0.5
+ dev: false
+
+ /fast-glob/3.2.12:
+ resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
+ engines: {node: '>=8.6.0'}
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ '@nodelib/fs.walk': 1.2.8
+ glob-parent: 5.1.2
+ merge2: 1.4.1
+ micromatch: 4.0.5
+ dev: true
/fast-json-stable-hash/1.0.3:
resolution: {integrity: sha512-iLK3Tq2J/KbiUn/5OHyhxikHqzwFXSM2e803Dp2JtBdQjsCVuZwWvL+WqWXPPRUEuDX4c0kqID1SU84RCfxs3A==}
@@ -5753,8 +5890,8 @@ packages:
resolution: {integrity: sha512-Pb8d48e+oIuY4MaM64Cd7OW1gt4nxCHs7/ddPPZ/Ic3sg8yVGM7O9wDvZ7us6ScaUupzM+pfBolwtYhN1IxBIw==}
dev: false
- /fastq/1.13.0:
- resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==}
+ /fastq/1.15.0:
+ resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
dependencies:
reusify: 1.0.4
@@ -5847,13 +5984,6 @@ packages:
resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==}
dev: false
- /find-up/2.1.0:
- resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==}
- engines: {node: '>=4'}
- dependencies:
- locate-path: 2.0.0
- dev: true
-
/find-up/4.1.0:
resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
engines: {node: '>=8'}
@@ -5870,12 +6000,12 @@ packages:
resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==}
engines: {node: ^10.12.0 || >=12.0.0}
dependencies:
- flatted: 3.2.6
+ flatted: 3.2.7
rimraf: 3.0.2
dev: true
- /flatted/3.2.6:
- resolution: {integrity: sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==}
+ /flatted/3.2.7:
+ resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==}
dev: true
/fn.name/1.1.0:
@@ -5894,6 +6024,12 @@ packages:
debug: 4.3.4
dev: false
+ /for-each/0.3.3:
+ resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
+ dependencies:
+ is-callable: 1.2.7
+ dev: true
+
/foreground-child/2.0.0:
resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==}
engines: {node: '>=8.0.0'}
@@ -6047,7 +6183,7 @@ packages:
dependencies:
call-bind: 1.0.2
define-properties: 1.1.4
- es-abstract: 1.20.1
+ es-abstract: 1.21.1
functions-have-names: 1.2.3
dev: true
@@ -6079,8 +6215,8 @@ packages:
engines: {node: 6.* || 8.* || >= 10.*}
dev: true
- /get-intrinsic/1.1.2:
- resolution: {integrity: sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==}
+ /get-intrinsic/1.2.0:
+ resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==}
dependencies:
function-bind: 1.1.1
has: 1.0.3
@@ -6101,7 +6237,7 @@ packages:
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
- get-intrinsic: 1.1.2
+ get-intrinsic: 1.2.0
dev: true
/getpass/0.1.7:
@@ -6152,21 +6288,28 @@ packages:
resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
engines: {node: '>=4'}
- /globals/13.15.0:
- resolution: {integrity: sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==}
+ /globals/13.20.0:
+ resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==}
engines: {node: '>=8'}
dependencies:
type-fest: 0.20.2
dev: true
+ /globalthis/1.0.3:
+ resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ define-properties: 1.1.4
+ dev: true
+
/globby/11.1.0:
resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
engines: {node: '>=10'}
dependencies:
array-union: 2.1.0
dir-glob: 3.0.1
- fast-glob: 3.2.11
- ignore: 5.2.0
+ fast-glob: 3.2.12
+ ignore: 5.2.4
merge2: 1.4.1
slash: 3.0.0
dev: true
@@ -6179,6 +6322,12 @@ packages:
csstype: 3.1.1
dev: false
+ /gopd/1.0.1:
+ resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
+ dependencies:
+ get-intrinsic: 1.2.0
+ dev: true
+
/graceful-fs/4.2.10:
resolution: {integrity: sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==}
@@ -6211,7 +6360,12 @@ packages:
/has-property-descriptors/1.0.0:
resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==}
dependencies:
- get-intrinsic: 1.1.2
+ get-intrinsic: 1.2.0
+
+ /has-proto/1.0.1:
+ resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==}
+ engines: {node: '>= 0.4'}
+ dev: true
/has-symbols/1.0.3:
resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
@@ -6388,8 +6542,12 @@ packages:
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
dev: false
- /ignore/5.2.0:
- resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==}
+ /ignore-by-default/1.0.1:
+ resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==}
+ dev: true
+
+ /ignore/5.2.4:
+ resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
engines: {node: '>= 4'}
dev: true
@@ -6404,10 +6562,10 @@ packages:
resolution: {integrity: sha512-2Cj4nWRuAmvokFRU6UNo3xgzXKh+4nq/LBtD6mTp3V9c9nYV7O+dRvPChPOM34Qcj1+Ijz3oK6HqkixG0GP9Rg==}
engines: {node: '>=10'}
dependencies:
- '@babel/core': 7.18.6
- '@babel/plugin-proposal-object-rest-spread': 7.18.6_@babel+core@7.18.6
- '@babel/plugin-transform-destructuring': 7.18.6_@babel+core@7.18.6
- '@babel/plugin-transform-react-jsx': 7.18.6_@babel+core@7.18.6
+ '@babel/core': 7.20.12
+ '@babel/plugin-proposal-object-rest-spread': 7.20.7_@babel+core@7.20.12
+ '@babel/plugin-transform-destructuring': 7.20.7_@babel+core@7.20.12
+ '@babel/plugin-transform-react-jsx': 7.20.13_@babel+core@7.20.12
caller-path: 3.0.1
find-cache-dir: 3.3.2
make-dir: 3.1.0
@@ -6447,11 +6605,11 @@ packages:
resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==}
dev: false
- /internal-slot/1.0.3:
- resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==}
+ /internal-slot/1.0.4:
+ resolution: {integrity: sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==}
engines: {node: '>= 0.4'}
dependencies:
- get-intrinsic: 1.1.2
+ get-intrinsic: 1.2.0
has: 1.0.3
side-channel: 1.0.4
dev: true
@@ -6495,6 +6653,14 @@ packages:
engines: {node: '>= 0.10'}
dev: false
+ /is-array-buffer/3.0.1:
+ resolution: {integrity: sha512-ASfLknmY8Xa2XtB4wmbz13Wu202baeA18cJBCeCy0wXUHZF0IPyVEXqKEcd+t2fNSLLL1vC6k7lxZEojNbISXQ==}
+ dependencies:
+ call-bind: 1.0.2
+ get-intrinsic: 1.2.0
+ is-typed-array: 1.1.10
+ dev: true
+
/is-arrayish/0.2.1:
resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
@@ -6527,20 +6693,20 @@ packages:
engines: {node: '>=4'}
dev: false
- /is-builtin-module/3.2.0:
- resolution: {integrity: sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==}
+ /is-builtin-module/3.2.1:
+ resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
engines: {node: '>=6'}
dependencies:
builtin-modules: 3.3.0
dev: true
- /is-callable/1.2.4:
- resolution: {integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==}
+ /is-callable/1.2.7:
+ resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
engines: {node: '>= 0.4'}
dev: true
- /is-core-module/2.9.0:
- resolution: {integrity: sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==}
+ /is-core-module/2.11.0:
+ resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==}
dependencies:
has: 1.0.3
@@ -6653,6 +6819,17 @@ packages:
has-symbols: 1.0.3
dev: true
+ /is-typed-array/1.1.10:
+ resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ available-typed-arrays: 1.0.5
+ call-bind: 1.0.2
+ for-each: 0.3.3
+ gopd: 1.0.1
+ has-tostringtag: 1.0.0
+ dev: true
+
/is-typedarray/1.0.0:
resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==}
dev: true
@@ -6714,7 +6891,7 @@ packages:
resolution: {integrity: sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==}
engines: {node: '>=8'}
dependencies:
- '@babel/core': 7.18.6
+ '@babel/core': 7.20.12
'@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.0
semver: 6.3.0
@@ -6754,8 +6931,8 @@ packages:
- supports-color
dev: true
- /istanbul-reports/3.1.4:
- resolution: {integrity: sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==}
+ /istanbul-reports/3.1.5:
+ resolution: {integrity: sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==}
engines: {node: '>=8'}
dependencies:
html-escaper: 2.0.2
@@ -6769,6 +6946,13 @@ packages:
cliui: 7.0.4
dev: true
+ /jackspeak/1.4.2:
+ resolution: {integrity: sha512-GHeGTmnuaHnvS+ZctRB01bfxARuu9wW83ENbuiweu07SFcVlZrJpcshSre/keGT7YGBhLHg/+rXCNSrsEHKU4Q==}
+ engines: {node: '>=8'}
+ dependencies:
+ cliui: 7.0.4
+ dev: true
+
/jake/10.8.5:
resolution: {integrity: sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==}
engines: {node: '>=10'}
@@ -6853,6 +7037,13 @@ packages:
dependencies:
minimist: 1.2.6
+ /json5/1.0.2:
+ resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
+ hasBin: true
+ dependencies:
+ minimist: 1.2.7
+ dev: true
+
/json5/2.2.0:
resolution: {integrity: sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==}
engines: {node: '>=6'}
@@ -6867,6 +7058,12 @@ packages:
hasBin: true
dev: true
+ /json5/2.2.3:
+ resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
+ engines: {node: '>=6'}
+ hasBin: true
+ dev: true
+
/jsonfile/4.0.0:
resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==}
optionalDependencies:
@@ -6964,13 +7161,13 @@ packages:
bind-obj-methods: 3.0.0
diff: 4.0.2
function-loop: 2.0.1
- minipass: 3.3.4
+ minipass: 3.3.6
own-or: 1.0.0
own-or-env: 1.0.2
signal-exit: 3.0.7
- stack-utils: 2.0.5
- tap-parser: 11.0.1
- tap-yaml: 1.0.0
+ stack-utils: 2.0.6
+ tap-parser: 11.0.2
+ tap-yaml: 1.0.2
tcompare: 5.0.7
trivial-deferred: 1.0.1
dev: true
@@ -6982,14 +7179,6 @@ packages:
resolution: {integrity: sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==}
dev: false
- /locate-path/2.0.0:
- resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==}
- engines: {node: '>=4'}
- dependencies:
- p-locate: 2.0.0
- path-exists: 3.0.0
- dev: true
-
/locate-path/5.0.0:
resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
engines: {node: '>=8'}
@@ -7478,6 +7667,10 @@ packages:
/minimist/1.2.6:
resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==}
+ /minimist/1.2.7:
+ resolution: {integrity: sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==}
+ dev: true
+
/minipass/2.9.0:
resolution: {integrity: sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==}
dependencies:
@@ -7491,6 +7684,13 @@ packages:
dependencies:
yallist: 4.0.0
+ /minipass/3.3.6:
+ resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
+ engines: {node: '>=8'}
+ dependencies:
+ yallist: 4.0.0
+ dev: true
+
/minizlib/1.3.3:
resolution: {integrity: sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==}
dependencies:
@@ -7877,8 +8077,8 @@ packages:
process-on-spawn: 1.0.0
dev: true
- /node-releases/2.0.5:
- resolution: {integrity: sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q==}
+ /node-releases/2.0.10:
+ resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==}
dev: true
/node-releases/2.0.8:
@@ -7890,6 +8090,30 @@ packages:
engines: {node: '>=6.0.0'}
dev: false
+ /nodemon/2.0.20:
+ resolution: {integrity: sha512-Km2mWHKKY5GzRg6i1j5OxOHQtuvVsgskLfigG25yTtbyfRGn/GNvIbRyOf1PSCKJ2aT/58TiuUsuOU5UToVViw==}
+ engines: {node: '>=8.10.0'}
+ hasBin: true
+ dependencies:
+ chokidar: 3.5.3
+ debug: 3.2.7_supports-color@5.5.0
+ ignore-by-default: 1.0.1
+ minimatch: 3.1.2
+ pstree.remy: 1.1.8
+ semver: 5.7.1
+ simple-update-notifier: 1.1.0
+ supports-color: 5.5.0
+ touch: 3.1.0
+ undefsafe: 2.0.5
+ dev: true
+
+ /nopt/1.0.10:
+ resolution: {integrity: sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==}
+ hasBin: true
+ dependencies:
+ abbrev: 1.1.1
+ dev: true
+
/normalize-package-data/2.5.0:
resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
dependencies:
@@ -7939,7 +8163,7 @@ packages:
'@istanbuljs/load-nyc-config': 1.1.0
'@istanbuljs/schema': 0.1.3
caching-transform: 4.0.0
- convert-source-map: 1.8.0
+ convert-source-map: 1.9.0
decamelize: 1.2.0
find-cache-dir: 3.3.2
find-up: 4.1.0
@@ -7952,7 +8176,7 @@ packages:
istanbul-lib-processinfo: 2.0.3
istanbul-lib-report: 3.0.0
istanbul-lib-source-maps: 4.0.1
- istanbul-reports: 3.1.4
+ istanbul-reports: 3.1.5
make-dir: 3.1.0
node-preload: 0.2.1
p-map: 3.0.0
@@ -7980,15 +8204,15 @@ packages:
engines: {node: '>= 6'}
dev: false
- /object-inspect/1.12.2:
- resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==}
+ /object-inspect/1.12.3:
+ resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==}
/object-keys/1.1.1:
resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
engines: {node: '>= 0.4'}
- /object.assign/4.1.2:
- resolution: {integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==}
+ /object.assign/4.1.4:
+ resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==}
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
@@ -7997,13 +8221,13 @@ packages:
object-keys: 1.1.1
dev: true
- /object.values/1.1.5:
- resolution: {integrity: sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==}
+ /object.values/1.1.6:
+ resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==}
engines: {node: '>= 0.4'}
dependencies:
call-bind: 1.0.2
define-properties: 1.1.4
- es-abstract: 1.20.1
+ es-abstract: 1.21.1
dev: true
/oblivious-set/1.0.0:
@@ -8093,13 +8317,6 @@ packages:
resolution: {integrity: sha512-NfZr5+Tdf6MB8UI9GLvKRs4cXY8/yB0w3xtt84xFdWy8hkGjn+JFc60VhzS/hFRfbyxFcGYMTjnF4Me+RbbqrA==}
dev: true
- /p-limit/1.3.0:
- resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==}
- engines: {node: '>=4'}
- dependencies:
- p-try: 1.0.0
- dev: true
-
/p-limit/2.3.0:
resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
engines: {node: '>=6'}
@@ -8107,13 +8324,6 @@ packages:
p-try: 2.2.0
dev: true
- /p-locate/2.0.0:
- resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==}
- engines: {node: '>=4'}
- dependencies:
- p-limit: 1.3.0
- dev: true
-
/p-locate/4.1.0:
resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
engines: {node: '>=8'}
@@ -8133,11 +8343,6 @@ packages:
aggregate-error: 3.1.0
dev: true
- /p-try/1.0.0:
- resolution: {integrity: sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==}
- engines: {node: '>=4'}
- dev: true
-
/p-try/2.2.0:
resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
engines: {node: '>=6'}
@@ -8186,11 +8391,6 @@ packages:
tslib: 2.4.0
dev: false
- /path-exists/3.0.0:
- resolution: {integrity: sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==}
- engines: {node: '>=4'}
- dev: true
-
/path-exists/4.0.0:
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
engines: {node: '>=8'}
@@ -8371,8 +8571,12 @@ packages:
resolution: {integrity: sha512-QPyNYQR4tx+9xp+GuceW55MWeZIC/nNT3qWUmU8eij0FmO90x3L08oY9bJiIW1weB7mvH63JBra1cY+GH70YKw==}
dev: false
- /psl/1.8.0:
- resolution: {integrity: sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==}
+ /psl/1.9.0:
+ resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
+ dev: true
+
+ /pstree.remy/1.1.8:
+ resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==}
dev: true
/pump/3.0.0:
@@ -8382,8 +8586,8 @@ packages:
once: 1.4.0
dev: false
- /punycode/2.1.1:
- resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}
+ /punycode/2.3.0:
+ resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
engines: {node: '>=6'}
dev: true
@@ -8914,7 +9118,7 @@ packages:
deprecated: request has been deprecated, see https://github.com/request/request/issues/3142
dependencies:
aws-sign2: 0.7.0
- aws4: 1.11.0
+ aws4: 1.12.0
caseless: 0.12.0
combined-stream: 1.0.8
extend: 3.0.2
@@ -8983,7 +9187,7 @@ packages:
resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==}
hasBin: true
dependencies:
- is-core-module: 2.9.0
+ is-core-module: 2.11.0
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
@@ -9053,6 +9257,14 @@ packages:
resolution: {integrity: sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==}
dev: false
+ /safe-regex-test/1.0.0:
+ resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==}
+ dependencies:
+ call-bind: 1.0.2
+ get-intrinsic: 1.2.0
+ is-regex: 1.1.4
+ dev: true
+
/safe-regex/2.1.1:
resolution: {integrity: sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==}
dependencies:
@@ -9102,6 +9314,11 @@ packages:
resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
hasBin: true
+ /semver/7.0.0:
+ resolution: {integrity: sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==}
+ hasBin: true
+ dev: true
+
/semver/7.3.7:
resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==}
engines: {node: '>=10'}
@@ -9109,6 +9326,14 @@ packages:
dependencies:
lru-cache: 6.0.0
+ /semver/7.3.8:
+ resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==}
+ engines: {node: '>=10'}
+ hasBin: true
+ dependencies:
+ lru-cache: 6.0.0
+ dev: true
+
/send/0.17.1:
resolution: {integrity: sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==}
engines: {node: '>= 0.8.0'}
@@ -9244,8 +9469,8 @@ packages:
resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==}
dependencies:
call-bind: 1.0.2
- get-intrinsic: 1.1.2
- object-inspect: 1.12.2
+ get-intrinsic: 1.2.0
+ object-inspect: 1.12.3
/signal-exit/3.0.7:
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
@@ -9269,6 +9494,13 @@ packages:
is-arrayish: 0.3.2
dev: false
+ /simple-update-notifier/1.1.0:
+ resolution: {integrity: sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==}
+ engines: {node: '>=8.10.0'}
+ dependencies:
+ semver: 7.0.0
+ dev: true
+
/slash/3.0.0:
resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
engines: {node: '>=8'}
@@ -9377,8 +9609,8 @@ packages:
resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==}
dev: false
- /stack-utils/2.0.5:
- resolution: {integrity: sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==}
+ /stack-utils/2.0.6:
+ resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==}
engines: {node: '>=10'}
dependencies:
escape-string-regexp: 2.0.0
@@ -9425,20 +9657,20 @@ packages:
strip-ansi: 6.0.1
dev: true
- /string.prototype.trimend/1.0.5:
- resolution: {integrity: sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==}
+ /string.prototype.trimend/1.0.6:
+ resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==}
dependencies:
call-bind: 1.0.2
define-properties: 1.1.4
- es-abstract: 1.20.1
+ es-abstract: 1.21.1
dev: true
- /string.prototype.trimstart/1.0.5:
- resolution: {integrity: sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==}
+ /string.prototype.trimstart/1.0.6:
+ resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==}
dependencies:
call-bind: 1.0.2
define-properties: 1.1.4
- es-abstract: 1.20.1
+ es-abstract: 1.21.1
dev: true
/string_decoder/0.10.31:
@@ -9461,6 +9693,7 @@ packages:
engines: {node: '>=0.10.0'}
dependencies:
ansi-regex: 2.1.1
+ dev: false
/strip-ansi/6.0.1:
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
@@ -9574,9 +9807,9 @@ packages:
diff: 4.0.2
escape-string-regexp: 2.0.0
glob: 7.2.3
- tap-parser: 11.0.1
- tap-yaml: 1.0.0
- unicode-length: 2.0.2
+ tap-parser: 11.0.2
+ tap-yaml: 1.0.2
+ unicode-length: 2.1.0
transitivePeerDependencies:
- supports-color
dev: true
@@ -9587,18 +9820,18 @@ packages:
hasBin: true
dependencies:
events-to-array: 1.1.2
- minipass: 3.3.4
- tap-yaml: 1.0.0
+ minipass: 3.3.6
+ tap-yaml: 1.0.2
dev: true
- /tap-parser/11.0.1:
- resolution: {integrity: sha512-5ow0oyFOnXVSALYdidMX94u0GEjIlgc/BPFYLx0yRh9hb8+cFGNJqJzDJlUqbLOwx8+NBrIbxCWkIQi7555c0w==}
+ /tap-parser/11.0.2:
+ resolution: {integrity: sha512-6qGlC956rcORw+fg7Fv1iCRAY8/bU9UabUAhs3mXRH6eRmVZcNPLheSXCYaVaYeSwx5xa/1HXZb1537YSvwDZg==}
engines: {node: '>= 8'}
hasBin: true
dependencies:
events-to-array: 1.1.2
- minipass: 3.3.4
- tap-yaml: 1.0.0
+ minipass: 3.3.6
+ tap-yaml: 1.0.2
dev: true
/tap-yaml/1.0.0:
@@ -9607,6 +9840,12 @@ packages:
yaml: 1.10.2
dev: true
+ /tap-yaml/1.0.2:
+ resolution: {integrity: sha512-GegASpuqBnRNdT1U+yuUPZ8rEU64pL35WPBpCISWwff4dErS2/438barz7WFJl4Nzh3Y05tfPidZnH+GaV1wMg==}
+ dependencies:
+ yaml: 1.10.2
+ dev: true
+
/tap/15.0.9_z6wznmtyb6ovnulj6iujpct7um:
resolution: {integrity: sha512-bqY5SxEqYKRd37PIUfKBf9HMs/hklyl/fGXkuStr9rYTIGa0/icpSLsm6IVOmx2qT0/TliPNJ6OvS5kddJYHdg==}
engines: {node: '>=10'}
@@ -9632,9 +9871,9 @@ packages:
import-jsx: 4.0.1
isexe: 2.0.0
istanbul-lib-processinfo: 2.0.3
- jackspeak: 1.4.1
+ jackspeak: 1.4.2
libtap: 1.4.0
- minipass: 3.3.4
+ minipass: 3.3.6
mkdirp: 1.0.4
nyc: 15.1.0
opener: 1.5.2
@@ -9644,7 +9883,7 @@ packages:
source-map-support: 0.5.21
tap-mocha-reporter: 5.0.3
tap-parser: 10.1.0
- tap-yaml: 1.0.0
+ tap-yaml: 1.0.2
tcompare: 5.0.7
ts-node: 10.9.1_awa2wsr5thmg3i7jqycphctjfq
typescript: 4.9.4
@@ -9863,12 +10102,19 @@ packages:
engines: {node: '>=0.6'}
dev: false
+ /touch/3.1.0:
+ resolution: {integrity: sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==}
+ hasBin: true
+ dependencies:
+ nopt: 1.0.10
+ dev: true
+
/tough-cookie/2.5.0:
resolution: {integrity: sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==}
engines: {node: '>=0.8'}
dependencies:
- psl: 1.8.0
- punycode: 2.1.1
+ psl: 1.9.0
+ punycode: 2.3.0
dev: true
/tr46/0.0.3:
@@ -9915,7 +10161,7 @@ packages:
'@tsconfig/node14': 1.0.3
'@tsconfig/node16': 1.0.3
'@types/node': 18.11.18
- acorn: 8.7.1
+ acorn: 8.8.2
acorn-walk: 8.2.0
arg: 4.1.3
create-require: 1.1.1
@@ -9930,7 +10176,7 @@ packages:
hasBin: true
dependencies:
chokidar: 3.5.3
- commander: 9.0.0
+ commander: 9.5.0
globby: 11.1.0
mylas: 2.1.13
normalize-path: 3.0.0
@@ -9949,8 +10195,8 @@ packages:
resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==}
dependencies:
'@types/json5': 0.0.29
- json5: 1.0.1
- minimist: 1.2.6
+ json5: 1.0.2
+ minimist: 1.2.7
strip-bom: 3.0.0
dev: true
@@ -10014,6 +10260,14 @@ packages:
media-typer: 0.3.0
mime-types: 2.1.35
+ /typed-array-length/1.0.4:
+ resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==}
+ dependencies:
+ call-bind: 1.0.2
+ for-each: 0.3.3
+ is-typed-array: 1.1.10
+ dev: true
+
/typedarray-to-buffer/3.1.5:
resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==}
dependencies:
@@ -10061,11 +10315,14 @@ packages:
react-lifecycles-compat: 3.0.4
dev: false
- /unicode-length/2.0.2:
- resolution: {integrity: sha512-Ph/j1VbS3/r77nhoY2WU0GWGjVYOHL3xpKp0y/Eq2e5r0mT/6b649vm7KFO6RdAdrZkYLdxphYVgvODxPB+Ebg==}
+ /undefsafe/2.0.5:
+ resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==}
+ dev: true
+
+ /unicode-length/2.1.0:
+ resolution: {integrity: sha512-4bV582zTV9Q02RXBxSUMiuN/KHo5w4aTojuKTNT96DIKps/SIawFp7cS5Mu25VuY1AioGXrmYyzKZUzh8OqoUw==}
dependencies:
- punycode: 2.1.1
- strip-ansi: 3.0.1
+ punycode: 2.3.0
dev: true
/unified/10.1.2:
@@ -10179,13 +10436,13 @@ packages:
picocolors: 1.0.0
dev: true
- /update-browserslist-db/1.0.4_browserslist@4.21.1:
- resolution: {integrity: sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==}
+ /update-browserslist-db/1.0.10_browserslist@4.21.5:
+ resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==}
hasBin: true
peerDependencies:
browserslist: '>= 4.21.0'
dependencies:
- browserslist: 4.21.1
+ browserslist: 4.21.5
escalade: 3.1.1
picocolors: 1.0.0
dev: true
@@ -10193,7 +10450,7 @@ packages:
/uri-js/4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
dependencies:
- punycode: 2.1.1
+ punycode: 2.3.0
dev: true
/url-join/0.0.1:
@@ -10383,6 +10640,18 @@ packages:
resolution: {integrity: sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==}
dev: true
+ /which-typed-array/1.1.9:
+ resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ available-typed-arrays: 1.0.5
+ call-bind: 1.0.2
+ for-each: 0.3.3
+ gopd: 1.0.1
+ has-tostringtag: 1.0.0
+ is-typed-array: 1.1.10
+ dev: true
+
/which/1.3.1:
resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
hasBin: true
diff --git a/server/nodemon.json b/server/nodemon.json
new file mode 100644
index 000000000..ad03254e8
--- /dev/null
+++ b/server/nodemon.json
@@ -0,0 +1,10 @@
+{
+ "watch": [
+ "src"
+ ],
+ "ext": "ts,json",
+ "ignore": [
+ "src/**/*.spec.ts"
+ ],
+ "exec": "ts-node ./src/main.ts"
+}
\ No newline at end of file
diff --git a/server/package.json b/server/package.json
index 7019c12e3..0d4da3be1 100644
--- a/server/package.json
+++ b/server/package.json
@@ -21,7 +21,9 @@
"sync-database-local": "ts-node src/scripts/sync-database --localPath '../database-seeds/collections'",
"recalc-everything": "ts-node src/scripts/state-sync/sync-state.ts",
"make-user-admin": "ts-node src/scripts/make-user-admin.ts $@",
- "validate-database": "ts-node src/scripts/validate-database"
+ "validate-database": "ts-node src/scripts/validate-database",
+ "dev": "NODE_PATH=js/ nodemon",
+ "set-indexes": "ts-node src/scripts/set-indexes.ts"
},
"author": "zkldi",
"license": "AGPL3",
@@ -30,6 +32,7 @@
"@types/tap": "15.0.5",
"glob": "^7.2.0",
"node-mocks-http": "1.11.0",
+ "nodemon": "^2.0.20",
"supertest": "6.2.2",
"tap": "15.1.6",
"tsconfig-paths": "3.12.0"
diff --git a/server/src/scripts/set-indexes.ts b/server/src/scripts/set-indexes.ts
index c8a5d0d10..ab2676e77 100644
--- a/server/src/scripts/set-indexes.ts
+++ b/server/src/scripts/set-indexes.ts
@@ -2,13 +2,14 @@
import { SetIndexes } from "../external/mongo/indexes";
import { Command } from "commander";
import CreateLogCtx from "lib/logger/logger";
+import { Environment, ServerConfig } from "lib/setup/config";
import { WrapScriptPromise } from "utils/misc";
const program = new Command();
const logger = CreateLogCtx(__filename);
-program.requiredOption("-d, --db ", "The database to index.");
+program.option("-d, --db ", "The database to index.");
program.option(
"-r, --reset",
"Whether to reset all indexes on this database before indexing or not."
@@ -17,6 +18,10 @@ program.option(
program.parse(process.argv);
const options: { db: string; reset?: boolean } = program.opts();
+if (!options.db) {
+ options.db = `${Environment.mongoUrl}/${ServerConfig.MONGO_DATABASE_NAME}`;
+}
+
if (require.main === module) {
WrapScriptPromise(SetIndexes(options.db, options.reset === true), logger);
}
diff --git a/server/src/server/router/api/v1/auth/auth.ts b/server/src/server/router/api/v1/auth/auth.ts
index 960a3e796..8cb9157d2 100644
--- a/server/src/server/router/api/v1/auth/auth.ts
+++ b/server/src/server/router/api/v1/auth/auth.ts
@@ -1,7 +1,7 @@
import bcrypt from "bcryptjs";
import db from "external/mongo/db";
import CreateLogCtx from "lib/logger/logger";
-import { ServerConfig } from "lib/setup/config";
+import { Environment, ServerConfig } from "lib/setup/config";
import { p } from "prudence";
import { UserAuthLevels } from "tachi-common";
import nodeFetch from "utils/fetch";
@@ -97,6 +97,11 @@ export async function AddNewUser(
badges: [],
};
+ // all created users on a dev instance should be admins, for convenience.
+ if (Environment.nodeEnv === "dev") {
+ userDoc.authLevel = UserAuthLevels.ADMIN;
+ }
+
const res = await db.users.insert(userDoc);
const settingsRes = await InsertDefaultUserSettings(userID);