From 76f1b10be52c44d77b4d736e8bc039f1e67c7c20 Mon Sep 17 00:00:00 2001
From: zkldi <20380519+zkldi@users.noreply.github.com>
Date: Wed, 8 Feb 2023 03:36:09 +0000
Subject: [PATCH 01/14] feat: dockerise everything
---
Dockerfile.client | 21 ++++++++++++
Dockerfile.server | 2 ++
client/package.json | 2 ++
client/vite.config.js | 1 +
docker-compose-dev.yml | 50 +++++++++++++++++++++++++++
docker-compose.yml | 22 ------------
package.json | 8 +++--
pnpm-lock.yaml | 77 ++++++++++++++++++++++++++++++++++++++++++
server/nodemon.json | 10 ++++++
server/package.json | 4 ++-
10 files changed, 171 insertions(+), 26 deletions(-)
create mode 100644 Dockerfile.client
create mode 100644 docker-compose-dev.yml
delete mode 100644 docker-compose.yml
create mode 100644 server/nodemon.json
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.server b/Dockerfile.server
index 4833fefc3..e4bfbed5c 100644
--- a/Dockerfile.server
+++ b/Dockerfile.server
@@ -27,6 +27,8 @@ RUN pnpm --filter tachi-server... -r build
FROM base AS app
COPY --from=build /app /app
+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
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/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..12ec4d4c7
--- /dev/null
+++ b/docker-compose-dev.yml
@@ -0,0 +1,50 @@
+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
+ tachi-server:
+ container_name: tachi-server
+ build:
+ dockerfile: Dockerfile.server
+ depends_on:
+ - redis
+ - mongo
+ links:
+ - redis
+ - mongo
+ volumes:
+ - ./:/app
+ ports:
+ - '8080:8080'
+ environment:
+ REDIS_URL: redis
+ MONGO_URL: mongo
+ PORT: 8080
+ NODE_ENV: "dev"
+ command: pnpm dev
+ tachi-client:
+ container_name: tachi-client
+ build:
+ dockerfile: Dockerfile.client
+ volumes:
+ - ./:/app
+ ports:
+ - '3000:3000'
+volumes:
+ tachi:
+ driver: local
\ 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/package.json b/package.json
index bf92f4cfd..29c9245fb 100644
--- a/package.json
+++ b/package.json
@@ -4,10 +4,12 @@
"private": true,
"description": "The root of the Tachi monorepo. Contains common utils like linters.",
"scripts": {
+ "up:dev": "docker compose -f docker-compose-dev.yml up --build -d",
+ "down:dev": "docker compose -f docker-compose-dev.yml down",
+ "logs:server": "docker logs tachi-server -f",
+ "logs:client": "docker logs tachi-client -f",
+ "test:server": "docker exec -it tachi-server pnpm test",
"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",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 20fb6c7be..6f9cda7f6 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
@@ -3485,6 +3491,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'}
@@ -4575,6 +4585,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'}
@@ -6388,6 +6410,10 @@ packages:
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
dev: false
+ /ignore-by-default/1.0.1:
+ resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==}
+ dev: true
+
/ignore/5.2.0:
resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==}
engines: {node: '>= 4'}
@@ -7890,6 +7916,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:
@@ -8375,6 +8425,10 @@ packages:
resolution: {integrity: sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==}
dev: true
+ /pstree.remy/1.1.8:
+ resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==}
+ dev: true
+
/pump/3.0.0:
resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==}
dependencies:
@@ -9102,6 +9156,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'}
@@ -9269,6 +9328,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'}
@@ -9863,6 +9929,13 @@ 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'}
@@ -10061,6 +10134,10 @@ packages:
react-lifecycles-compat: 3.0.4
dev: false
+ /undefsafe/2.0.5:
+ resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==}
+ dev: true
+
/unicode-length/2.0.2:
resolution: {integrity: sha512-Ph/j1VbS3/r77nhoY2WU0GWGjVYOHL3xpKp0y/Eq2e5r0mT/6b649vm7KFO6RdAdrZkYLdxphYVgvODxPB+Ebg==}
dependencies:
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..c3ebd8b2c 100644
--- a/server/package.json
+++ b/server/package.json
@@ -21,7 +21,8 @@
"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"
},
"author": "zkldi",
"license": "AGPL3",
@@ -30,6 +31,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"
From 3e8fabc814396db1ea835e9401c00c64484664ae Mon Sep 17 00:00:00 2001
From: zkldi <20380519+zkldi@users.noreply.github.com>
Date: Wed, 8 Feb 2023 04:18:59 +0000
Subject: [PATCH 02/14] feat: seeds dockerisation
---
.dockerignore | 3 +-
Dockerfile.seeds | 25 ++
docker-compose-dev.yml | 6 +
package.json | 16 +-
pnpm-lock.yaml | 764 ++++++++++++++++++++++++++---------------
5 files changed, 520 insertions(+), 294 deletions(-)
create mode 100644 Dockerfile.seeds
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/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/docker-compose-dev.yml b/docker-compose-dev.yml
index 12ec4d4c7..eb3fa54f1 100644
--- a/docker-compose-dev.yml
+++ b/docker-compose-dev.yml
@@ -45,6 +45,12 @@ services:
- ./:/app
ports:
- '3000:3000'
+ tachi-seeds:
+ container_name: tachi-seeds
+ build:
+ dockerfile: Dockerfile.seeds
+ volumes:
+ - ./:/app
volumes:
tachi:
driver: local
\ No newline at end of file
diff --git a/package.json b/package.json
index 29c9245fb..15b22bc4a 100644
--- a/package.json
+++ b/package.json
@@ -4,13 +4,17 @@
"private": true,
"description": "The root of the Tachi monorepo. Contains common utils like linters.",
"scripts": {
- "up:dev": "docker compose -f docker-compose-dev.yml up --build -d",
- "down:dev": "docker compose -f docker-compose-dev.yml down",
- "logs:server": "docker logs tachi-server -f",
- "logs:client": "docker logs tachi-client -f",
- "test:server": "docker exec -it tachi-server pnpm test",
+ "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 exec -it tachi-server pnpm test",
+ "test-seeds": "docker exec -it tachi-seeds pnpm --filter ./scripts test",
+ "enter-seeds": "docker exec -it tachi-seeds bash",
+ "sort-seeds": "docker exec -it tachi-seeds node scripts/deterministic-collection-sort.js",
+ "view-seeds": "xdg-open http://127.0.0.1:3000/utils/seeds",
"build": "pnpm -r build",
- "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",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 6f9cda7f6..e0fafd287 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -503,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:
@@ -1333,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
@@ -1365,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
@@ -1418,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==}
@@ -1432,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
@@ -1465,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==}
@@ -1477,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==}
@@ -1490,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
@@ -1539,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'}
@@ -1557,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==}
@@ -1587,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==}
@@ -1603,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
@@ -1613,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==}
@@ -1622,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:
@@ -1646,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:
@@ -1666,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:
@@ -1725,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:
@@ -1773,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
@@ -1799,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==}
@@ -1824,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==}
@@ -1832,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==}
@@ -2044,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
@@ -2163,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==}
@@ -2188,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:
@@ -2591,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==}
@@ -3354,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:
@@ -3431,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:
@@ -3452,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
@@ -3509,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:
@@ -3525,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==}
@@ -3545,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==}
@@ -3567,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
@@ -3582,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:
@@ -3613,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
@@ -3629,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
@@ -3665,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
@@ -3688,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:
@@ -3903,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}
@@ -3926,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'}
@@ -4032,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==}
@@ -4069,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
@@ -4111,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
@@ -4130,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
@@ -4304,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==}
@@ -4380,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
@@ -4435,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
@@ -4649,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
@@ -4934,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
@@ -4980,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:
@@ -5019,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
@@ -5248,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:
@@ -5277,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
@@ -5340,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:
@@ -5369,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
@@ -5399,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
@@ -5468,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
@@ -5479,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
@@ -5507,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
@@ -5742,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==}
@@ -5775,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
@@ -5869,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'}
@@ -5892,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:
@@ -5916,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'}
@@ -6069,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
@@ -6101,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
@@ -6123,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:
@@ -6174,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
@@ -6201,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==}
@@ -6233,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==}
@@ -6414,8 +6546,8 @@ packages:
resolution: {integrity: sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==}
dev: true
- /ignore/5.2.0:
- resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==}
+ /ignore/5.2.4:
+ resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
engines: {node: '>= 4'}
dev: true
@@ -6430,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
@@ -6473,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
@@ -6521,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==}
@@ -6553,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
@@ -6679,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
@@ -6740,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
@@ -6780,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
@@ -6795,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'}
@@ -6879,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'}
@@ -6893,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:
@@ -6990,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
@@ -7008,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'}
@@ -7504,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:
@@ -7517,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:
@@ -7903,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:
@@ -7989,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
@@ -8002,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
@@ -8030,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
@@ -8047,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:
@@ -8143,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'}
@@ -8157,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'}
@@ -8183,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'}
@@ -8236,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'}
@@ -8421,8 +8571,8 @@ 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:
@@ -8436,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
@@ -8968,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
@@ -9037,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
@@ -9107,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:
@@ -9168,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'}
@@ -9303,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==}
@@ -9443,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
@@ -9491,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:
@@ -9527,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==}
@@ -9640,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
@@ -9653,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:
@@ -9673,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'}
@@ -9698,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
@@ -9710,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
@@ -9940,8 +10113,8 @@ packages:
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:
@@ -9988,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
@@ -10003,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
@@ -10022,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
@@ -10087,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:
@@ -10138,11 +10319,10 @@ packages:
resolution: {integrity: sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==}
dev: true
- /unicode-length/2.0.2:
- resolution: {integrity: sha512-Ph/j1VbS3/r77nhoY2WU0GWGjVYOHL3xpKp0y/Eq2e5r0mT/6b649vm7KFO6RdAdrZkYLdxphYVgvODxPB+Ebg==}
+ /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:
@@ -10256,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
@@ -10270,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:
@@ -10460,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
From d97205e16772bed6fcbd766b6f74950a7f14f4d9 Mon Sep 17 00:00:00 2001
From: zkldi <20380519+zkldi@users.noreply.github.com>
Date: Wed, 8 Feb 2023 13:55:35 +0000
Subject: [PATCH 03/14] fix: silly missing space
---
client/src/app/pages/dashboard/import/SilentHookPage.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
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.
From d73fb3aebe59eae081996430e9b1edb63556ec3b Mon Sep 17 00:00:00 2001
From: zkldi <20380519+zkldi@users.noreply.github.com>
Date: Wed, 8 Feb 2023 21:50:40 +0000
Subject: [PATCH 04/14] fix: all users made on dev instance should be admin
---
server/src/server/router/api/v1/auth/auth.ts | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
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);
From ba6e3f9009715c904381b266acb12d83080fe921 Mon Sep 17 00:00:00 2001
From: zkldi <20380519+zkldi@users.noreply.github.com>
Date: Wed, 8 Feb 2023 21:50:47 +0000
Subject: [PATCH 05/14] fix: more bootstrap alterations
---
.eslintignore | 3 ++-
.gitignore | 5 ++++-
_scripts/add-repo-to-monorepo.sh | 29 -----------------------------
_scripts/bootstrap.sh | 19 +------------------
package.json | 18 +++++++++++++-----
5 files changed, 20 insertions(+), 54 deletions(-)
delete mode 100755 _scripts/add-repo-to-monorepo.sh
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/.gitignore b/.gitignore
index 0a290ff55..4029f14a7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -36,4 +36,7 @@ coverage
out.*
failed-tests.log
-.tsbuildinfo
\ No newline at end of file
+.tsbuildinfo
+
+# bootstrap flag
+_scripts/I_HAVE_BOOTSTRAPPED_OK
\ 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..a705d1373 100755
--- a/_scripts/bootstrap.sh
+++ b/_scripts/bootstrap.sh
@@ -68,22 +68,5 @@ mvExampleFiles
selfSignHTTPS
pnpmInstall
syncDatabaseWithSeeds
+touch I_HAVE_BOOTSTRAPPED_OK
-tput setaf 1
-
-cat << EOF
-=== READ THIS YOU MUPPET ===
-
-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
-
-tput sgr0
-
-cat << EOF
-Bootstrapped.
-Launch the server with pnpm start-server.
-Launch the client with pnpm start-client.
-EOF
diff --git a/package.json b/package.json
index 15b22bc4a..e28f1824e 100644
--- a/package.json
+++ b/package.json
@@ -6,21 +6,29 @@
"scripts": {
"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 exec -it tachi-server pnpm test",
"test-seeds": "docker exec -it tachi-seeds pnpm --filter ./scripts test",
+
"enter-seeds": "docker exec -it tachi-seeds bash",
"sort-seeds": "docker exec -it tachi-seeds node scripts/deterministic-collection-sort.js",
"view-seeds": "xdg-open http://127.0.0.1:3000/utils/seeds",
+ "load-seeds": "docker exec -it tachi-server pnpm sync-database-local",
+
+ "validate-db": "docker exec -it tachi-server pnpm validate-database",
+
+ "start-docs": "cd docs/ && mkdocs serve",
+
+ "^^ 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",
- "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-docs": "cd docs/ && mkdocs serve",
- "make-user-admin": "pnpm --filter ./server make-user-admin $@"
+ "start-score-import-worker": "pnpm --filter ./server runscoreworker"
},
"repository": {
"type": "git",
From dd259fa6a44ec92405887d035bd5a61db15b2e48 Mon Sep 17 00:00:00 2001
From: zkldi <20380519+zkldi@users.noreply.github.com>
Date: Wed, 8 Feb 2023 23:43:02 +0000
Subject: [PATCH 06/14] feat: bootstrap containerisation
insane laughter ensues
---
.gitignore | 3 ++-
Dockerfile.bootstrap | 15 +++++++++++++
_scripts/bootstrap.sh | 36 ++++++++++++++++++++++++++++---
docker-compose-dev.yml | 17 +++++++++++++++
server/package.json | 3 ++-
server/src/scripts/set-indexes.ts | 7 +++++-
6 files changed, 75 insertions(+), 6 deletions(-)
create mode 100644 Dockerfile.bootstrap
diff --git a/.gitignore b/.gitignore
index 4029f14a7..d8654947f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,6 +7,7 @@ node_modules
# PNPM noise
.pnpm-debug.log
+.pnpm-store
# Compiled output
js
@@ -39,4 +40,4 @@ failed-tests.log
.tsbuildinfo
# bootstrap flag
-_scripts/I_HAVE_BOOTSTRAPPED_OK
\ No newline at end of file
+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/_scripts/bootstrap.sh b/_scripts/bootstrap.sh
index a705d1373..1f1408863 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,6 +87,16 @@ function syncDatabaseWithSeeds {
mvExampleFiles
selfSignHTTPS
pnpmInstall
+setIndexes
syncDatabaseWithSeeds
-touch I_HAVE_BOOTSTRAPPED_OK
+cat << EOF > I_HAVE_BOOTSTRAPPED_OK
+Tachi was bootstrapped here on $(date).
+
+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.
+
+To bootstrap again (incase you think something has gone wrong)
+Delete this file and re-run npm start.
+EOF
diff --git a/docker-compose-dev.yml b/docker-compose-dev.yml
index eb3fa54f1..7dbe60c44 100644
--- a/docker-compose-dev.yml
+++ b/docker-compose-dev.yml
@@ -51,6 +51,23 @@ services:
dockerfile: Dockerfile.seeds
volumes:
- ./:/app
+ bootstrap:
+ container_name: tachi-bootstrap
+ build:
+ dockerfile: Dockerfile.bootstrap
+ volumes:
+ - ./:/app
+ depends_on:
+ - redis
+ - mongo
+ links:
+ - redis
+ - mongo
+ environment:
+ REDIS_URL: redis
+ MONGO_URL: mongo
+ PORT: 8080
+ NODE_ENV: "dev"
volumes:
tachi:
driver: local
\ No newline at end of file
diff --git a/server/package.json b/server/package.json
index c3ebd8b2c..862a887a9 100644
--- a/server/package.json
+++ b/server/package.json
@@ -22,7 +22,8 @@
"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",
- "dev": "NODE_PATH=js/ nodemon"
+ "dev": "NODE_PATH=js/ nodemon",
+ "set-indexes": "ts-node src/scripts/set-indexes"
},
"author": "zkldi",
"license": "AGPL3",
diff --git a/server/src/scripts/set-indexes.ts b/server/src/scripts/set-indexes.ts
index c8a5d0d10..fec182bd7 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 { 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 = ServerConfig.MONGO_DATABASE_NAME;
+}
+
if (require.main === module) {
WrapScriptPromise(SetIndexes(options.db, options.reset === true), logger);
}
From ef107418412b68afede45bb0edb61b1f39e26061 Mon Sep 17 00:00:00 2001
From: zkldi <20380519+zkldi@users.noreply.github.com>
Date: Thu, 9 Feb 2023 00:01:15 +0000
Subject: [PATCH 07/14] fix: new dockerfile.server
---
Dockerfile.server | 27 +++++++++++++++++++++------
docker-compose-dev.yml | 2 +-
2 files changed, 22 insertions(+), 7 deletions(-)
diff --git a/Dockerfile.server b/Dockerfile.server
index e4bfbed5c..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,12 +22,10 @@ RUN pnpm fetch
COPY server ./server
COPY common ./common
COPY *.json *.yaml ./
-
RUN pnpm --filter tachi-server... --filter . install --offline --frozen-lockfile
-RUN pnpm --filter tachi-server... -r build
-FROM base AS app
-COPY --from=build /app /app
+# development image, keeps installed dependencies
+FROM install AS dev
RUN git config --global --add safe.directory /app
@@ -33,4 +33,19 @@ HEALTHCHECK --interval=15s --timeout=5s CMD curl -f http://localhost:8080/api/v1
WORKDIR /app/server
ENV NODE_PATH=js/
-CMD ["node", "js/main.js"]
+CMD ["pnpm", "dev"]
+
+# build source and dependencies
+FROM install AS build
+
+RUN pnpm --filter tachi-server... -r build
+
+# 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"]
\ No newline at end of file
diff --git a/docker-compose-dev.yml b/docker-compose-dev.yml
index 7dbe60c44..457eaa4a2 100644
--- a/docker-compose-dev.yml
+++ b/docker-compose-dev.yml
@@ -21,6 +21,7 @@ services:
container_name: tachi-server
build:
dockerfile: Dockerfile.server
+ target: dev
depends_on:
- redis
- mongo
@@ -36,7 +37,6 @@ services:
MONGO_URL: mongo
PORT: 8080
NODE_ENV: "dev"
- command: pnpm dev
tachi-client:
container_name: tachi-client
build:
From 0fec08f2289d5a8fed9d48fcb25c0ebb12cf1989 Mon Sep 17 00:00:00 2001
From: zkldi <20380519+zkldi@users.noreply.github.com>
Date: Thu, 9 Feb 2023 00:04:01 +0000
Subject: [PATCH 08/14] fix: remove false instructions and make https more
obvious
---
client/src/lib/config.ts | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
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?
`
: ""
From ce9a0c1e1e40ae8748d279e14778d5ac3ee92141 Mon Sep 17 00:00:00 2001
From: zkldi <20380519+zkldi@users.noreply.github.com>
Date: Thu, 9 Feb 2023 00:15:35 +0000
Subject: [PATCH 09/14] docs: new setup docs
---
docs/docs/contributing/setup.md | 135 +++++---------------------------
1 file changed, 20 insertions(+), 115 deletions(-)
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.
From dc0ee4b24f09168532395b5226613dcbecb4cff0 Mon Sep 17 00:00:00 2001
From: zkldi <20380519+zkldi@users.noreply.github.com>
Date: Thu, 9 Feb 2023 00:23:44 +0000
Subject: [PATCH 10/14] fix: better scripts
---
package.json | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/package.json b/package.json
index e28f1824e..a74145a59 100644
--- a/package.json
+++ b/package.json
@@ -11,15 +11,15 @@
"logs-client": "docker logs tachi-client -f",
"logs-seeds": "docker logs tachi-seeds -f",
- "test-server": "docker exec -it tachi-server pnpm test",
- "test-seeds": "docker exec -it tachi-seeds pnpm --filter ./scripts test",
+ "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 exec -it tachi-seeds bash",
- "sort-seeds": "docker exec -it tachi-seeds node scripts/deterministic-collection-sort.js",
+ "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 exec -it tachi-server pnpm sync-database-local",
+ "load-seeds": "docker compose -f docker-compose-dev.yml exec tachi-server pnpm sync-database-local",
- "validate-db": "docker exec -it tachi-server pnpm validate-database",
+ "validate-db": "docker compose -f docker-compose-dev.yml exec tachi-server pnpm validate-database",
"start-docs": "cd docs/ && mkdocs serve",
From 89ba719f07445cfedefacd80dba1c2a9523611db Mon Sep 17 00:00:00 2001
From: zkldi <20380519+zkldi@users.noreply.github.com>
Date: Thu, 9 Feb 2023 00:35:25 +0000
Subject: [PATCH 11/14] fix: \r\n on windows
---
.gitattributes | 6 ++++++
1 file changed, 6 insertions(+)
create mode 100644 .gitattributes
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
From b4df950c850883740763644ce439bd1aa972cb78 Mon Sep 17 00:00:00 2001
From: zkldi <20380519+zkldi@users.noreply.github.com>
Date: Thu, 9 Feb 2023 01:00:04 +0000
Subject: [PATCH 12/14] fix: bad volumes
---
docker-compose-dev.yml | 25 ++++++++++++++++---------
1 file changed, 16 insertions(+), 9 deletions(-)
diff --git a/docker-compose-dev.yml b/docker-compose-dev.yml
index 457eaa4a2..fe34014a6 100644
--- a/docker-compose-dev.yml
+++ b/docker-compose-dev.yml
@@ -7,7 +7,7 @@ services:
ports:
- '27017:27017'
volumes:
- - tachi:/data/mongo
+ - tachi-volume:/data/db
redis:
container_name: redis
command: redis-server --save 60 1 --loglevel warning
@@ -16,15 +16,19 @@ services:
ports:
- '6379:6379'
volumes:
- - tachi:/data/redis
+ - tachi-redis:/data
tachi-server:
container_name: tachi-server
build:
dockerfile: Dockerfile.server
target: dev
depends_on:
- - redis
- - mongo
+ bootstrap:
+ condition: service_completed_successfully
+ redis:
+ condition: service_started
+ mongo:
+ condition: service_started
links:
- redis
- mongo
@@ -39,6 +43,11 @@ services:
NODE_ENV: "dev"
tachi-client:
container_name: tachi-client
+
+ depends_on:
+ bootstrap:
+ condition: service_completed_successfully
+
build:
dockerfile: Dockerfile.client
volumes:
@@ -57,9 +66,6 @@ services:
dockerfile: Dockerfile.bootstrap
volumes:
- ./:/app
- depends_on:
- - redis
- - mongo
links:
- redis
- mongo
@@ -69,5 +75,6 @@ services:
PORT: 8080
NODE_ENV: "dev"
volumes:
- tachi:
- driver: local
\ No newline at end of file
+ tachi-volume:
+ tachi-redis:
+ tachi-logs:
\ No newline at end of file
From 088197ce392510b6a77880d9b7124c68fb06cf32 Mon Sep 17 00:00:00 2001
From: zkldi <20380519+zkldi@users.noreply.github.com>
Date: Thu, 9 Feb 2023 01:15:52 +0000
Subject: [PATCH 13/14] fix: indicate when bootstrap.sh is done
---
_scripts/bootstrap.sh | 2 ++
1 file changed, 2 insertions(+)
diff --git a/_scripts/bootstrap.sh b/_scripts/bootstrap.sh
index 1f1408863..5587527a9 100755
--- a/_scripts/bootstrap.sh
+++ b/_scripts/bootstrap.sh
@@ -90,6 +90,8 @@ pnpmInstall
setIndexes
syncDatabaseWithSeeds
+echo "Bootstrap Complete."
+
cat << EOF > I_HAVE_BOOTSTRAPPED_OK
Tachi was bootstrapped here on $(date).
From 03a0932c84fbec46eb37020b386e7df016691413 Mon Sep 17 00:00:00 2001
From: zkldi <20380519+zkldi@users.noreply.github.com>
Date: Thu, 9 Feb 2023 01:41:58 +0000
Subject: [PATCH 14/14] fix: faulty set-indexes script
---
server/package.json | 2 +-
server/src/scripts/set-indexes.ts | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/server/package.json b/server/package.json
index 862a887a9..0d4da3be1 100644
--- a/server/package.json
+++ b/server/package.json
@@ -23,7 +23,7 @@
"make-user-admin": "ts-node src/scripts/make-user-admin.ts $@",
"validate-database": "ts-node src/scripts/validate-database",
"dev": "NODE_PATH=js/ nodemon",
- "set-indexes": "ts-node src/scripts/set-indexes"
+ "set-indexes": "ts-node src/scripts/set-indexes.ts"
},
"author": "zkldi",
"license": "AGPL3",
diff --git a/server/src/scripts/set-indexes.ts b/server/src/scripts/set-indexes.ts
index fec182bd7..ab2676e77 100644
--- a/server/src/scripts/set-indexes.ts
+++ b/server/src/scripts/set-indexes.ts
@@ -2,7 +2,7 @@
import { SetIndexes } from "../external/mongo/indexes";
import { Command } from "commander";
import CreateLogCtx from "lib/logger/logger";
-import { ServerConfig } from "lib/setup/config";
+import { Environment, ServerConfig } from "lib/setup/config";
import { WrapScriptPromise } from "utils/misc";
const program = new Command();
@@ -19,7 +19,7 @@ program.parse(process.argv);
const options: { db: string; reset?: boolean } = program.opts();
if (!options.db) {
- options.db = ServerConfig.MONGO_DATABASE_NAME;
+ options.db = `${Environment.mongoUrl}/${ServerConfig.MONGO_DATABASE_NAME}`;
}
if (require.main === module) {