diff --git a/.all-contributorsrc b/.all-contributorsrc index 18de17e1c13..72de16a6f50 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -875,7 +875,8 @@ "profile": "https://github.com/BenJamesBen", "contributions": [ "code", - "doc" + "doc", + "bug" ] }, { diff --git a/.eslintrc.cjs b/.eslintrc.cjs index b5efa690bda..7bcd78572f7 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -91,6 +91,7 @@ module.exports = { ], env: { mocha: true, + node: true, }, }, diff --git a/.github/ISSUE_TEMPLATE/01_bug-report.yaml b/.github/ISSUE_TEMPLATE/01_bug-report.yaml index 7163615fb77..b4599736231 100644 --- a/.github/ISSUE_TEMPLATE/01_bug-report.yaml +++ b/.github/ISSUE_TEMPLATE/01_bug-report.yaml @@ -1,8 +1,8 @@ --- name: πŸ› Bug report description: Report a problem, or something that went wrong -title: "[bug]: " -labels: [ "\U0001F41B bug" ] +title: '[bug]: ' +labels: ["\U0001F41B bug"] body: - type: markdown attributes: @@ -10,7 +10,7 @@ body: - type: textarea id: desc attributes: - label: "What seems to be the problem? πŸ€”" + label: 'What seems to be the problem? πŸ€”' description: Please provide a clear and concise description of the problem you encountered placeholder: | When I generate a Simone with my dimensions, the corners of the yoke appear malformed. \ @@ -18,7 +18,7 @@ body: - type: dropdown id: pkg attributes: - label: "Design / Plugin / Package 🧐" + label: 'Design / Plugin / Package 🧐' description: Do you know what design/plugin/package the bug is in? multiple: true options: @@ -51,6 +51,7 @@ body: - designs/lucy - designs/lunetius - designs/noble + - designs/octoplushy - designs/paco - designs/penelope - designs/plugintest @@ -62,7 +63,6 @@ body: - designs/sven - designs/tamiko - designs/teagan - - designs/theo - designs/tiberius - designs/titan - designs/trayvon @@ -78,9 +78,9 @@ body: - plugins/plugin-bundle - plugins/plugin-bust - plugins/plugin-buttons + - plugins/plugin-cutlist - plugins/plugin-cutonfold - plugins/plugin-dimension - - plugins/plugin-export-dxf - plugins/plugin-flip - plugins/plugin-gore - plugins/plugin-grainline @@ -94,33 +94,27 @@ body: - plugins/plugin-sprinkle - plugins/plugin-svgattr - plugins/plugin-theme + - plugins/plugin-timing - plugins/plugin-title - - plugins/plugin-validate - plugins/plugin-versionfree-svg - - packages/components - - packages/config-helpers - packages/core - - packages/css-theme - - packages/gatsby-remark-jargon - packages/i18n - packages/models - - packages/mui-theme - packages/new-design - - packages/pattern-info - packages/prettier-config + - packages/rehype-highlight-lines - packages/rehype-jargon - - packages/remark-jargon - - packages/utils + - packages/snapseries - type: dropdown id: patron attributes: - label: Are you a FreeSewing patron? πŸ˜ƒ - description: "Patrons support us financially :pray: so they get priority" + label: Are you a FreeSewing patron? πŸ˜ƒ + description: 'Patrons support us financially :pray: so they get priority' options: - - "Yes, I am a tier-2 patron ❀️" - - "Yes, I am a tier-4 patron ❀️ πŸ’™" - - "Yes, I am a tier-8 patron ❀️ πŸ’™ πŸ’œ" - - "No, I am not 😞" + - 'Yes, I am a tier-2 patron ❀️' + - 'Yes, I am a tier-4 patron ❀️ πŸ’™' + - 'Yes, I am a tier-8 patron ❀️ πŸ’™ πŸ’œ' + - 'No, I am not 😞' validations: required: true - type: textarea @@ -133,3 +127,4 @@ body: value: | Please keep in mind that **FreeSewing is a community project** that depends on **[your support](https://freesewing.org/community/join/)**. --- + diff --git a/.github/boring-cyborg.yml b/.github/boring-cyborg.yml index 432bc10f234..dd71031b19d 100644 --- a/.github/boring-cyborg.yml +++ b/.github/boring-cyborg.yml @@ -1,29 +1,22 @@ ##### Labeler ##### labelPRBasedOnFilePath: # "label": [ folder or subfolders ] - ":package: components": [ packages/components/* ] - ":package: config-helpers": [ packages/config-helpers/* ] ":package: core": [ packages/core/* ] - ":package: create-freesewing-pattern": [ packages/create-freesewing-pattern/* ] - ":package: css-theme": [ packages/css-theme/* ] - ":package: gatsby-remark-jargon": [ packages/gatsby-remark-jargon/* ] ":package: i18n": [ packages/i18n/* ] ":package: models": [ packages/models/* ] - ":package: mui-theme": [ packages/mui-theme/* ] ":package: new-design": [ packages/new-design/* ] - ":package: pattern-info": [ packages/pattern-info/* ] ":package: prettier-config": [ packages/prettier-config/* ] + ":package: rehype-highlight-lines": [ packages/rehype-highlight-lines/* ] ":package: rehype-jargon": [ packages/rehype-jargon/* ] - ":package: remark-jargon": [ packages/remark-jargon/* ] - ":package: utils": [ packages/utils/* ] + ":package: snapseries": [ packages/snapseries/* ] ":electric_plug: plugin-banner": [ plugins/plugin-banner/* ] ":electric_plug: plugin-bartack": [ plugins/plugin-bartack/* ] ":electric_plug: plugin-bundle": [ plugins/plugin-bundle/* ] ":electric_plug: plugin-bust": [ plugins/plugin-bust/* ] ":electric_plug: plugin-buttons": [ plugins/plugin-buttons/* ] + ":electric_plug: plugin-cutlist": [ plugins/plugin-cutlist/* ] ":electric_plug: plugin-cutonfold": [ plugins/plugin-cutonfold/* ] ":electric_plug: plugin-dimension": [ plugins/plugin-dimension/* ] - ":electric_plug: plugin-export-dxf": [ plugins/plugin-export-dxf/* ] ":electric_plug: plugin-flip": [ plugins/plugin-flip/* ] ":electric_plug: plugin-gore": [ plugins/plugin-gore/* ] ":electric_plug: plugin-grainline": [ plugins/plugin-grainline/* ] @@ -37,18 +30,18 @@ labelPRBasedOnFilePath: ":electric_plug: plugin-sprinkle": [ plugins/plugin-sprinkle/* ] ":electric_plug: plugin-svgattr": [ plugins/plugin-svgattr/* ] ":electric_plug: plugin-theme": [ plugins/plugin-theme/* ] + ":electric_plug: plugin-timing": [ plugins/plugin-timing/* ] ":electric_plug: plugin-title": [ plugins/plugin-title/* ] - ":electric_plug: plugin-validate": [ plugins/plugin-validate/* ] ":electric_plug: plugin-versionfree-svg": [ plugins/plugin-versionfree-svg/* ] ":book: documentation": [ markdown/* ] ":scroll: scripts": [ scripts/* ] ":computer: backend": [ sites/backend/* ] ":computer: dev": [ sites/dev/* ] + ":computer: email": [ sites/email/* ] ":computer: lab": [ sites/lab/* ] ":computer: org": [ sites/org/* ] + ":computer: sanity": [ sites/sanity/* ] ":computer: shared": [ sites/shared/* ] - ":computer: strapi": [ sites/strapi/* ] - ":computer: svgtopdf": [ sites/svgtopdf/* ] ":test_tube: tests": [ tests/* ] ":gear: configuration": [ "config/*", ".github/*" ] ":shirt: aaron": [ designs/aaron/* ] @@ -93,7 +86,6 @@ labelPRBasedOnFilePath: ":shirt: sven": [ designs/sven/* ] ":shirt: tamiko": [ designs/tamiko/* ] ":shirt: teagan": [ designs/teagan/* ] - ":shirt: theo": [ designs/theo/* ] ":shirt: tiberius": [ designs/tiberius/* ] ":shirt: titan": [ designs/titan/* ] ":shirt: trayvon": [ designs/trayvon/* ] diff --git a/.github/workflows/checkdocs.yml b/.github/workflows/checkdocs.yml index 13d1b762355..f6262707624 100644 --- a/.github/workflows/checkdocs.yml +++ b/.github/workflows/checkdocs.yml @@ -23,9 +23,9 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Setup Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} - name: Install Remark diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 0dc55507bf3..d6c34edb7de 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -48,11 +48,11 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@v1 + uses: github/codeql-action/init@v2 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -63,7 +63,7 @@ jobs: # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - name: Autobuild - uses: github/codeql-action/autobuild@v1 + uses: github/codeql-action/autobuild@v2 # ℹ️ Command-line programs to run using the OS shell. # πŸ“š https://git.io/JvXDl @@ -77,4 +77,4 @@ jobs: # make release - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v1 + uses: github/codeql-action/analyze@v2 diff --git a/.github/workflows/lint.all.yml b/.github/workflows/lint.all.yml index b25ca480561..1dba95997d3 100644 --- a/.github/workflows/lint.all.yml +++ b/.github/workflows/lint.all.yml @@ -19,9 +19,9 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Setup Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} - name: Install dependencies diff --git a/.github/workflows/lint.diff.yml b/.github/workflows/lint.diff.yml index f8106fc0852..b1a1e381d85 100644 --- a/.github/workflows/lint.diff.yml +++ b/.github/workflows/lint.diff.yml @@ -19,15 +19,15 @@ jobs: steps: - name: Fetch PR base ref - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: ref: ${{ github.base_ref }} - name: Checkout PR merge ref - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: ref: ${{ github.ref }} - name: Setup Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} - name: Install dependencies diff --git a/.github/workflows/tests.all.yml b/.github/workflows/tests.all.yml index 8aeccb59416..303e999988c 100644 --- a/.github/workflows/tests.all.yml +++ b/.github/workflows/tests.all.yml @@ -27,11 +27,12 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Setup Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v1 + uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} + cache: 'yarn' - name: Install dependencies run: npx lerna bootstrap env: diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 3fd69657aa5..f0df243b2e1 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -9,136 +9,136 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - - - - + + + + + + + - - - - + + + +
Adam Tomkins
Adam Tomkins

πŸ“–
Alexandre Ignjatovic
Alexandre Ignjatovic

πŸ’»
AlfaLyr
AlfaLyr

πŸ’» πŸ”Œ 🎨
Andrew James
Andrew James

πŸ“–
Anneke
Anneke

πŸ“– 🌍
Annie Kao
Annie Kao

πŸ“–
Anternative
Anternative

πŸ“–
Adam Tomkins
Adam Tomkins

πŸ“–
Alexandre Ignjatovic
Alexandre Ignjatovic

πŸ’»
AlfaLyr
AlfaLyr

πŸ’» πŸ”Œ 🎨
Andrew James
Andrew James

πŸ“–
Anneke
Anneke

πŸ“– 🌍
Annie Kao
Annie Kao

πŸ“–
Anternative
Anternative

πŸ“–
Anthony
Anthony

πŸ’¬
Ari Grayzel-student
Ari Grayzel-student

πŸ’»
Bart
Bart

πŸ“–
BenJamesBen
BenJamesBen

πŸ’» πŸ“–
Cameron Dubas
Cameron Dubas

πŸ“–
Carsten Biebricher
Carsten Biebricher

πŸ“–
Cathy Zoller
Cathy Zoller

πŸ“–
Anthony
Anthony

πŸ’¬
Ari Grayzel-student
Ari Grayzel-student

πŸ’»
Bart
Bart

πŸ“–
BenJamesBen
BenJamesBen

πŸ’» πŸ“– πŸ›
Cameron Dubas
Cameron Dubas

πŸ“–
Carsten Biebricher
Carsten Biebricher

πŸ“–
Cathy Zoller
Cathy Zoller

πŸ“–
Chantal Lapointe
Chantal Lapointe

🌍
Damien PIQUET
Damien PIQUET

πŸ’»
Darigov Research
Darigov Research

πŸ“– πŸ€”
Elena FdR
Elena FdR

πŸ“– πŸ“
Emmanuel Nyachoke
Emmanuel Nyachoke

πŸ’» πŸ“–
Enoch Riese
Enoch Riese

πŸ’»
EvEkSwed
EvEkSwed

🌍
Chantal Lapointe
Chantal Lapointe

🌍
Damien PIQUET
Damien PIQUET

πŸ’»
Darigov Research
Darigov Research

πŸ“– πŸ€”
Elena FdR
Elena FdR

πŸ“– πŸ“
Emmanuel Nyachoke
Emmanuel Nyachoke

πŸ’» πŸ“–
Enoch Riese
Enoch Riese

πŸ’»
EvEkSwed
EvEkSwed

🌍
Fantastik-Maman
Fantastik-Maman

🌍
Forrest O.
Forrest O.

πŸ“–
FrΓ©dΓ©ric
FrΓ©dΓ©ric

🌍
Glenn Matthews
Glenn Matthews

πŸ“–
Greg Sadetsky
Greg Sadetsky

πŸ“–
Igor Couto
Igor Couto

πŸ›
Ikko Ashimine
Ikko Ashimine

πŸ“–
Fantastik-Maman
Fantastik-Maman

🌍
Forrest O.
Forrest O.

πŸ“–
FrΓ©dΓ©ric
FrΓ©dΓ©ric

🌍
Glenn Matthews
Glenn Matthews

πŸ“–
Greg Sadetsky
Greg Sadetsky

πŸ“–
Igor Couto
Igor Couto

πŸ›
Ikko Ashimine
Ikko Ashimine

πŸ“–
Irapeke
Irapeke

🌍
Jacek Sawoszczuk
Jacek Sawoszczuk

πŸ“–
Jason Williams
Jason Williams

πŸ“–
Jeremy Jackson
Jeremy Jackson

πŸ’»
Jeroen Hoek
Jeroen Hoek

πŸ“–
Joe Schofield
Joe Schofield

πŸ“–
Joebidido
Joebidido

🌍
Irapeke
Irapeke

🌍
Jacek Sawoszczuk
Jacek Sawoszczuk

πŸ“–
Jason Williams
Jason Williams

πŸ“–
Jeremy Jackson
Jeremy Jackson

πŸ’»
Jeroen Hoek
Jeroen Hoek

πŸ“–
Joe Schofield
Joe Schofield

πŸ“–
Joebidido
Joebidido

🌍
Joost De Cock
Joost De Cock

🚧
Josh Essman
Josh Essman

πŸ“–
Kake
Kake

πŸ“–
Kapunahele Wong
Kapunahele Wong

πŸ“–
Karen
Karen

πŸ“– πŸ“‹
Katie McGinley
Katie McGinley

πŸ“–
Kieran Klaassen
Kieran Klaassen

πŸ’»
Joost De Cock
Joost De Cock

🚧
Josh Essman
Josh Essman

πŸ“–
Kake
Kake

πŸ“–
Kapunahele Wong
Kapunahele Wong

πŸ“–
Karen
Karen

πŸ“– πŸ“‹
Katie McGinley
Katie McGinley

πŸ“–
Kieran Klaassen
Kieran Klaassen

πŸ’»
Kittycatou
Kittycatou

🌍
Kris
Kris

πŸ“–
Kristin Ruben
Kristin Ruben

πŸ’»
Loudepeuter
Loudepeuter

🌍
Lucian
Lucian

πŸ“‹
Marcus
Marcus

🌍
Martin Tribo
Martin Tribo

πŸ“–
Kittycatou
Kittycatou

🌍
Kris
Kris

πŸ“–
Kristin Ruben
Kristin Ruben

πŸ’»
Loudepeuter
Loudepeuter

🌍
Lucian
Lucian

πŸ“‹
Marcus
Marcus

🌍
Martin Tribo
Martin Tribo

πŸ“–
Nadege Michel
Nadege Michel

⚠️ πŸ“–
Natalia
Natalia

πŸ’» 🎨 πŸ“
Nathan Yergler
Nathan Yergler

πŸ“–
Nick Dower
Nick Dower

πŸ“– πŸ’» πŸ›
Nikhil Chelliah
Nikhil Chelliah

πŸ“–
OysteinHoiby
OysteinHoiby

πŸ’»
Patrick Forringer
Patrick Forringer

πŸ”Œ
Nadege Michel
Nadege Michel

⚠️ πŸ“–
Natalia
Natalia

πŸ’» 🎨 πŸ“
Nathan Yergler
Nathan Yergler

πŸ“–
Nick Dower
Nick Dower

πŸ“– πŸ’» πŸ›
Nikhil Chelliah
Nikhil Chelliah

πŸ“–
OysteinHoiby
OysteinHoiby

πŸ’»
Patrick Forringer
Patrick Forringer

πŸ”Œ
Paul
Paul

πŸ“– πŸ“ 🌍
Phillip Thelen
Phillip Thelen

πŸ’»
Pixieish
Pixieish

πŸ“–
Prof. dr. Sorcha NΓ­ Dhubhghaill
Prof. dr. Sorcha NΓ­ Dhubhghaill

πŸ“–
Quentin FELIX
Quentin FELIX

πŸ’» 🎨
Rik Hekker
Rik Hekker

πŸ›
Sam Livingston-Gray
Sam Livingston-Gray

πŸ“–
Paul
Paul

πŸ“– πŸ“ 🌍
Phillip Thelen
Phillip Thelen

πŸ’»
Pixieish
Pixieish

πŸ“–
Prof. dr. Sorcha NΓ­ Dhubhghaill
Prof. dr. Sorcha NΓ­ Dhubhghaill

πŸ“–
Quentin FELIX
Quentin FELIX

πŸ’» 🎨
Rik Hekker
Rik Hekker

πŸ›
Sam Livingston-Gray
Sam Livingston-Gray

πŸ“–
Sanne
Sanne

πŸ’» πŸ“–
Sara Latorre
Sara Latorre

🌍
SeaZeeZee
SeaZeeZee

πŸ“– πŸ’»
SimonbJohnson
SimonbJohnson

πŸ›
SirCharlotte
SirCharlotte

🌍
Slylele
Slylele

πŸ“– 🌍
Soazillon
Soazillon

🌍
Sanne
Sanne

πŸ’» πŸ“–
Sara Latorre
Sara Latorre

🌍
SeaZeeZee
SeaZeeZee

πŸ“– πŸ’»
SimonbJohnson
SimonbJohnson

πŸ›
SirCharlotte
SirCharlotte

🌍
Slylele
Slylele

πŸ“– 🌍
Soazillon
Soazillon

🌍
SoneaTheBest
SoneaTheBest

🌍
Stefan Sydow
Stefan Sydow

🌍 πŸ“– πŸ’»
TrΓ­ona
TrΓ­ona

πŸ“–
Unmutual
Unmutual

πŸ“–
Wouter van Wageningen
Wouter van Wageningen

πŸ’» 🎨 πŸ”§
amysews
amysews

πŸ“–
anna-puk
anna-puk

πŸ’»
SoneaTheBest
SoneaTheBest

🌍
Stefan Sydow
Stefan Sydow

🌍 πŸ“– πŸ’»
TrΓ­ona
TrΓ­ona

πŸ“–
Unmutual
Unmutual

πŸ“–
Wouter van Wageningen
Wouter van Wageningen

πŸ’» 🎨 πŸ”§
amysews
amysews

πŸ“–
anna-puk
anna-puk

πŸ’»
beautifulsummermoon
beautifulsummermoon

🌍
berce
berce

πŸ“–
biou
biou

πŸ’»
bobgeorgethe3rd
bobgeorgethe3rd

πŸ’» πŸ“– 🎨
brmlyklr
brmlyklr

πŸ“–
chri5b
chri5b

πŸ’» ⚠️
dingcycle
dingcycle

🌍
beautifulsummermoon
beautifulsummermoon

🌍
berce
berce

πŸ“–
biou
biou

πŸ’»
bobgeorgethe3rd
bobgeorgethe3rd

πŸ’» πŸ“– 🎨
brmlyklr
brmlyklr

πŸ“–
chri5b
chri5b

πŸ’» ⚠️
dingcycle
dingcycle

🌍
drowned-in-books
drowned-in-books

πŸ’¬
econo202
econo202

πŸ“–
ericamattos
ericamattos

🌍
fightingrabbit
fightingrabbit

πŸ’»
gaylyndie
gaylyndie

πŸ“–
grimlokason
grimlokason

πŸ’»
hellgy
hellgy

🎨
drowned-in-books
drowned-in-books

πŸ’¬
econo202
econo202

πŸ“–
ericamattos
ericamattos

🌍
fightingrabbit
fightingrabbit

πŸ’»
gaylyndie
gaylyndie

πŸ“–
grimlokason
grimlokason

πŸ’»
hellgy
hellgy

🎨
jackseye
jackseye

πŸ“–
marckiesel
marckiesel

🌍
mesil
mesil

πŸ›
starfetch
starfetch

πŸ’» πŸ“– 🌍 🎨
timorl
timorl

πŸ’»
ttimearl
ttimearl

πŸ–‹
tuesgloomsday
tuesgloomsday

πŸ“–
jackseye
jackseye

πŸ“–
marckiesel
marckiesel

🌍
mesil
mesil

πŸ›
starfetch
starfetch

πŸ’» πŸ“– 🌍 🎨
timorl
timorl

πŸ’»
ttimearl
ttimearl

πŸ–‹
tuesgloomsday
tuesgloomsday

πŸ“–
valadaptive
valadaptive

πŸ’»
viocky
viocky

🌍
woolishboy
woolishboy

πŸ’»
yc
yc

🌍
valadaptive
valadaptive

πŸ’»
viocky
viocky

🌍
woolishboy
woolishboy

πŸ’»
yc
yc

🌍
diff --git a/config/build-order.mjs b/config/build-order.mjs index 1732c8c8ebb..d25a8292e8e 100644 --- a/config/build-order.mjs +++ b/config/build-order.mjs @@ -6,7 +6,7 @@ import { designs, plugins, packages } from './software/index.mjs' * order. This file takes care of that */ -const first = ['core', 'config-helpers', 'remark-jargon', 'snapseries'] +const first = ['core', 'remark-jargon', 'snapseries'] const blocks = ['brian', 'titan', 'bella', 'breanna'] const extended = ['bent', 'simon', 'carlton', 'ursula'] const last = ['i18n'] diff --git a/config/dependencies.yaml b/config/dependencies.yaml index 28d578e56c4..5e90a06786a 100644 --- a/config/dependencies.yaml +++ b/config/dependencies.yaml @@ -3,7 +3,6 @@ _types: peer: '@freesewing/core': &freesewing '^{{version}}' '@freesewing/plugin-bundle': *freesewing - '@freesewing/config-helpers': *freesewing dev: 'mocha': &mocha '^10.0.0' 'chai': &chai '^4.2.0' @@ -50,6 +49,7 @@ charlie: '@freesewing/plugin-bartack': *freesewing '@freesewing/plugin-mirror': *freesewing '@freesewing/titan': *freesewing + '@freesewing/snapseries': *freesewing core: _: 'bezier-js': '^6.1.0' @@ -111,6 +111,7 @@ legend: paco: peer: '@freesewing/titan': *freesewing + '@freesewing/snapseries': *freesewing plugin-bundle: dev: '@freesewing/plugin-banner': *freesewing @@ -154,6 +155,10 @@ rehype-jargon: rehype-highlight-lines: _: 'unist-util-remove': '^3.1.0' +sandy: + '@freesewing/snapseries': *freesewing +shin: + '@freesewing/snapseries': *freesewing simon: peer: '@freesewing/brian': *freesewing @@ -176,6 +181,10 @@ teagan: peer: '@freesewing/brian': *freesewing '@freesewing/plugin-bust': *freesewing +titan: + '@freesewing/snapseries': *freesewing +trayvon: + '@freesewing/snapseries': *freesewing wahid: peer: '@freesewing/brian': *freesewing diff --git a/config/keywords.yaml b/config/keywords.yaml index b0b5ec7e0af..6da71f26e9d 100644 --- a/config/keywords.yaml +++ b/config/keywords.yaml @@ -8,13 +8,6 @@ core: - patterns - sewing - sewing patterns -components: - - react -css-theme: - - css - - scss - - sass - - theme design: - design - diy @@ -40,10 +33,6 @@ models: - fashion - measurements - sizes -mui-theme: - - material-ui - - react - - theme other: - design - diy diff --git a/config/software/packages.json b/config/software/packages.json index cea0733ddaf..165a748b285 100644 --- a/config/software/packages.json +++ b/config/software/packages.json @@ -1,5 +1,4 @@ { - "snapseries": "A FreeSewing package to facilitate snapped percentage options in designs", "core": "A library for creating made-to-measure sewing patterns", "i18n": "Translations for the FreeSewing project", "models": "Body measurements data for a range of default sizes", diff --git a/packages/core/src/pattern.mjs b/packages/core/src/pattern.mjs index 77b9f2d932a..e7cb12eb257 100644 --- a/packages/core/src/pattern.mjs +++ b/packages/core/src/pattern.mjs @@ -13,6 +13,8 @@ import { version } from '../data.mjs' import { __loadPatternDefaults } from './config.mjs' import cloneDeep from 'lodash.clonedeep' +const DISTANCE_DEBUG = false + ////////////////////////////////////////////// // CONSTRUCTOR // ////////////////////////////////////////////// @@ -474,11 +476,22 @@ Pattern.prototype.__addPartOptions = function (part) { // Keep design parts immutable in the pattern or risk subtle bugs this.config.options[optionName] = Object.freeze(part.options[optionName]) this.store.log.debug(`πŸ”΅ __${optionName}__ option loaded from part \`${part.name}\``) - } else if ( - this.__mutated.optionDistance[optionName] < this.__mutated.partDistance[part.name] - ) { - this.config.options[optionName] = part.options[optionName] - this.store.log.debug(`🟣 __${optionName}__ option overwritten by \`${part.name}\``) + } else { + if (DISTANCE_DEBUG) + this.store.log.debug( + 'optionDistance for ' + + optionName + + ' is ' + + this.__mutated.optionDistance[optionName] + + ', and partDistance for ' + + part.name + + ' is ' + + this.__mutated.partDistance[part.name] + ) + if (this.__mutated.optionDistance[optionName] > this.__mutated.partDistance[part.name]) { + this.config.options[optionName] = part.options[optionName] + this.store.log.debug(`🟣 __${optionName}__ option overwritten by \`${part.name}\``) + } } } } @@ -1256,41 +1269,104 @@ Pattern.prototype.__resolveParts = function (count = 0, distance = 0) { } } distance++ + if (DISTANCE_DEBUG) this.store.log.debug('Distance incremented to ' + distance) for (const part of this.designConfig.parts) { - if (typeof this.__mutated.partDistance[part.name] === 'undefined') + if (typeof this.__mutated.partDistance[part.name] === 'undefined') { this.__mutated.partDistance[part.name] = distance + if (DISTANCE_DEBUG) + this.store.log.debug( + 'Base partDistance for ' + part.name + ' is ' + this.__mutated.partDistance[part.name] + ) + } } for (const [name, part] of Object.entries(this.__designParts)) { + const current_part_distance = this.__mutated.partDistance[part.name] + const proposed_dependent_part_distance = current_part_distance + 1 // Hide when hideAll is set if (part.hideAll) this.__mutated.partHide[part.name] = true // Inject (from) if (part.from) { + if (DISTANCE_DEBUG) this.store.log.debug('Processing ' + part.name + ' "from:"') this.__setFromHide(part, name, part.from.name) this.__designParts[part.from.name] = part.from this.__inject[name] = part.from.name - this.__mutated.partDistance[part.from.name] = distance + if ( + typeof this.__mutated.partDistance[part.from.name] === 'undefined' || + this.__mutated.partDistance[part.from.name] < proposed_dependent_part_distance + ) { + this.__mutated.partDistance[part.from.name] = proposed_dependent_part_distance + if (DISTANCE_DEBUG) + this.store.log.debug( + '"from:" partDistance for ' + + part.from.name + + ' is ' + + this.__mutated.partDistance[part.from.name] + ) + } } // Simple dependency (after) if (part.after) { + if (DISTANCE_DEBUG) this.store.log.debug('Processing ' + part.name + ' "after:"') if (Array.isArray(part.after)) { for (const dep of part.after) { this.__setAfterHide(part, name, dep.name) - this.__mutated.partDistance[dep.name] = distance this.__designParts[dep.name] = dep this.__addDependency(name, part, dep) + if ( + typeof this.__mutated.partDistance[dep.name] === 'undefined' || + this.__mutated.partDistance[dep.name] < proposed_dependent_part_distance + ) { + this.__mutated.partDistance[dep.name] = proposed_dependent_part_distance + if (DISTANCE_DEBUG) + this.store.log.debug( + '"after:" partDistance for ' + + dep.name + + ' is ' + + this.__mutated.partDistance[dep.name] + ) + } } } else { this.__setAfterHide(part, name, part.after.name) - this.__mutated.partDistance[part.after.name] = distance this.__designParts[part.after.name] = part.after this.__addDependency(name, part, part.after) + if ( + typeof this.__mutated.partDistance[part.after.name] === 'undefined' || + this.__mutated.partDistance[part.after.name] < proposed_dependent_part_distance + ) { + this.__mutated.partDistance[part.after.name] = proposed_dependent_part_distance + if (DISTANCE_DEBUG) + this.store.log.debug( + '"after:" partDistance for ' + + part.after.name + + ' is ' + + this.__mutated.partDistance[part.after.name] + ) + } } } } // Did we discover any new dependencies? const len = Object.keys(this.__designParts).length // If so, resolve recursively - if (len > count) return this.__resolveParts(len, distance) + if (len > count) { + if (DISTANCE_DEBUG) this.store.log.debug('Recursing...') + return this.__resolveParts(len, distance) + } + // Print final part distances. + for (const part of this.designConfig.parts) { + let qualifier = '' + if (DISTANCE_DEBUG) qualifier = 'final ' + this.store.log.debug( + 'βšͺ️ `' + + part.name + + '` ' + + qualifier + + 'options priority is __' + + this.__mutated.partDistance[part.name] + + '__' + ) + } for (const part of Object.values(this.__designParts)) this.__addPartConfig(part) diff --git a/packages/core/src/utils.mjs b/packages/core/src/utils.mjs index e8d0bff460b..9fe67be026b 100644 --- a/packages/core/src/utils.mjs +++ b/packages/core/src/utils.mjs @@ -631,7 +631,7 @@ export function __asNumber(value, param, method, log) { value = Number(value) return value } catch { - this.log.error( + log.error( `Called \`${method}(${param})\` but \`${param}\` is not a number nor can it be cast to one` ) } diff --git a/packages/core/tests/part.test.mjs b/packages/core/tests/part.test.mjs index 56848de68b2..0cce3826c13 100644 --- a/packages/core/tests/part.test.mjs +++ b/packages/core/tests/part.test.mjs @@ -63,7 +63,6 @@ describe('Part', () => { const part = { name: 'test', draft: ({ getId, part }) => { - console.log(getId) id = getId() id = getId() id = getId() diff --git a/packages/core/tests/path.test.mjs b/packages/core/tests/path.test.mjs index 357ca172598..7468a8c736a 100644 --- a/packages/core/tests/path.test.mjs +++ b/packages/core/tests/path.test.mjs @@ -1,289 +1,171 @@ import chai from 'chai' -import { round, Path, Point, Design } from '../src/index.mjs' +import { round, Path, Point } from '../src/index.mjs' +import { pathsProxy } from '../src/path.mjs' const expect = chai.expect describe('Path', () => { - it('Should draw a smurve', () => { - const part = { - name: 'test', - draft: ({ Point, points, Path, paths, part }) => { - points.from = new Point(10, 20) - points.cp1 = new Point(40, 10) - points.cp2 = new Point(60, 30) - points.to = new Point(90, 20) - points.scp2 = new Point(140, 10) - points.sto = new Point(170, 20) + describe('smurve', () => { + it('Should draw a smurve', () => { + const points = {} + points.from = new Point(10, 20) + points.cp1 = new Point(40, 10) + points.cp2 = new Point(60, 30) + points.to = new Point(90, 20) + points.scp2 = new Point(140, 10) + points.sto = new Point(170, 20) - paths.test = new Path() - .move(points.from) - .curve(points.cp1, points.cp2, points.to) - .smurve(points.scp2, points.sto) + const test = new Path() + .move(points.from) + .curve(points.cp1, points.cp2, points.to) + .smurve(points.scp2, points.sto) - return part - }, - } - const design = new Design({ parts: [part] }) - const pattern = new design() - pattern.draft().render() + expect(round(test.ops[2].cp1.x)).to.equal(120) + expect(round(test.ops[2].cp1.y)).to.equal(10) + }) - expect(round(pattern.parts[0].test.paths.test.ops[2].cp1.x)).to.equal(120) - expect(round(pattern.parts[0].test.paths.test.ops[2].cp1.y)).to.equal(10) - }) + it('Should draw a smurve_', () => { + const points = {} + points.from = new Point(10, 20) + points.cp1 = new Point(40, 10) + points.cp2 = new Point(60, 30) + points.to = new Point(90, 20) + points.sto = new Point(170, 20) - it('Should draw a smurve_', () => { - const part = { - name: 'test', - draft: ({ Point, points, Path, paths, part }) => { - points.from = new Point(10, 20) - points.cp1 = new Point(40, 10) - points.cp2 = new Point(60, 30) - points.to = new Point(90, 20) - points.sto = new Point(170, 20) + const test = new Path() + .move(points.from) + .curve(points.cp1, points.cp2, points.to) + .smurve_(points.sto) - paths.test = new Path() - .move(points.from) - .curve(points.cp1, points.cp2, points.to) - .smurve_(points.sto) + expect(round(test.ops[2].cp1.x)).to.equal(120) + expect(round(test.ops[2].cp1.y)).to.equal(10) + }) - return part - }, - } - const design = new Design({ parts: [part] }) - const pattern = new design() - pattern.draft().render() + it('Should log a warning when passing a non-Point to smurve()', () => { + const points = {} + points.from = new Point(10, 20) + points.cp1 = new Point(40, 10) + points.cp2 = new Point(60, 30) + points.to = new Point(90, 20) - expect(round(pattern.parts[0].test.paths.test.ops[2].cp1.x)).to.equal(120) - expect(round(pattern.parts[0].test.paths.test.ops[2].cp1.y)).to.equal(10) - }) + const messages = [] + const log = { warning: (msg) => messages.push(msg) } + new Path() + .__withLog(log) + .move(points.from) + .curve(points.cp1, points.cp2, points.to) + .smurve('hi', 'there') - it('Should log a warning when passing a non-Point to smurve()', () => { - const part = { - name: 'test', - draft: ({ Point, points, Path, paths, part }) => { - points.from = new Point(10, 20) - points.cp1 = new Point(40, 10) - points.cp2 = new Point(60, 30) - points.to = new Point(90, 20) + expect(messages.length).to.equal(2) + expect(messages[0]).to.equal('Called `Path.smurve(cp2, to)` but `to` is not a `Point` object') + }) - paths.test = new Path() - .move(points.from) - .curve(points.cp1, points.cp2, points.to) - .smurve('hi', 'there') - - return part - }, - } - const design = new Design({ parts: [part] }) - const pattern = new design() - pattern.draft() - expect(pattern.setStores[0].logs.warning.length).to.equal(2) - expect(pattern.setStores[0].logs.warning[0]).to.equal( - 'Called `Path.smurve(cp2, to)` but `to` is not a `Point` object' - ) - }) - - it('Should log a warning when passing a non-Point to smurve_()', () => { - const part = { - name: 'test', - draft: ({ Path, paths, part }) => { - paths.test = new Path().smurve_('hi') - - return part - }, - } - const design = new Design({ parts: [part] }) - const pattern = new design() - pattern.draft() - expect(pattern.setStores[0].logs.warning.length).to.equal(1) - expect(pattern.setStores[0].logs.warning[0]).to.equal( - 'Called `Path.smurve_(to)` but `to` is not a `Point` object' - ) + it('Should log a warning when passing a non-Point to smurve_()', () => { + const messages = [] + const log = { warning: (msg) => messages.push(msg) } + try { + new Path().__withLog(log).smurve_('hi') + } catch (e) { + expect('' + e).to.contain("TypeError: Cannot read properties of undefined (reading 'cp2')") + } finally { + expect(messages.length).to.equal(1) + expect(messages[0]).to.equal('Called `Path.smurve_(to)` but `to` is not a `Point` object') + } + }) }) it('Should log a warning when passing a non-Path to the paths proxy', () => { - const part = { - name: 'test', - draft: ({ paths, part }) => { - paths.test = 'Wriing code can get very lonely sometimes' + const messages = [] + const log = { warning: (msg) => messages.push(msg) } + const pathsObj = {} + const paths = pathsProxy(pathsObj, log) + paths.set(pathsObj, 'test', 'Writing code can get very lonely sometimes') - return part - }, - } - const design = new Design({ parts: [part] }) - const pattern = new design() - pattern.draft() - expect(pattern.setStores[0].logs.warning.length).to.equal(2) - expect(pattern.setStores[0].logs.warning[0]).to.equal( - '`paths.test` was set with a value that is not a `Path` object' - ) - expect(pattern.setStores[0].logs.warning[1]).to.equal( - 'Could not set `name` property on `paths.test`' - ) + expect(messages.length).to.equal(2) + expect(messages[0]).to.equal('`paths.test` was set with a value that is not a `Path` object') + expect(messages[1]).to.equal('Could not set `name` property on `paths.test`') }) - it('Should offset a line', () => { - const part = { - name: 'test', - draft: ({ paths, Path, Point, part }) => { - paths.line = new Path().move(new Point(0, 0)).line(new Point(0, 40)) - paths.offset = paths.line.offset(10) - return part - }, - } - const design = new Design({ parts: [part] }) - const pattern = new design() - pattern.draft().render() - expect(pattern.parts[0].test.paths.offset.bottomRight.x).to.equal(-10) - expect(pattern.parts[0].test.paths.offset.bottomRight.y).to.equal(40) + describe('offset', () => { + it('Should offset a line', () => { + const line = new Path().move(new Point(0, 0)).line(new Point(0, 40)) + const offLine = line.offset(10) + const bbox = offLine.bbox() + expect(bbox.bottomRight.x).to.equal(-10) + expect(bbox.bottomRight.y).to.equal(40) + }) + + it('Should offset a curve', () => { + const curve = new Path() + .move(new Point(0, 0)) + .curve(new Point(0, 40), new Point(123, 34), new Point(23, 4)) + const offset = curve.offset(10) + const bbox = offset.bbox() + expect(round(bbox.bottomRight.x)).to.equal(72.18) + expect(round(bbox.bottomRight.y)).to.equal(38.26) + }) + + it('Should offset a curve where cp1 = start', () => { + const curve = new Path().move(new Point(0, 0))._curve(new Point(123, 34), new Point(23, 4)) + const offset = curve.offset(10) + const bbox = offset.bbox() + expect(round(bbox.bottomRight.x)).to.equal(72.63) + expect(round(bbox.bottomRight.y)).to.equal(26.47) + }) + + it('Should offset a curve where cp2 = end', () => { + const curve = new Path().move(new Point(0, 0)).curve_(new Point(40, 0), new Point(123, 34)) + const offset = curve.offset(10) + const bbox = offset.bbox() + expect(round(bbox.bottomRight.x)).to.equal(119.86) + expect(round(bbox.bottomRight.y)).to.equal(43.49) + }) }) - it('Should offset a curve', () => { - const part = { - name: 'test', - draft: ({ paths, Path, Point, part }) => { - paths.curve = new Path() - .move(new Point(0, 0)) - .curve(new Point(0, 40), new Point(123, 34), new Point(23, 4)) - paths.offset = paths.curve.offset(10) - return part - }, - } - const design = new Design({ parts: [part] }) - const pattern = new design() - pattern.draft().render() - expect(round(pattern.parts[0].test.paths.offset.bottomRight.x)).to.equal(72.18) - expect(round(pattern.parts[0].test.paths.offset.bottomRight.y)).to.equal(38.26) - }) + describe('length', () => { + it('Should return the length of a line', () => { + const line = new Path().move(new Point(0, 0)).line(new Point(40, 0)) + expect(line.length()).to.equal(40) + }) - it('Should offset a curve where cp1 = start', () => { - const part = { - name: 'test', - draft: ({ paths, Path, Point, part }) => { - paths.curve = new Path().move(new Point(0, 0))._curve(new Point(123, 34), new Point(23, 4)) - paths.offset = paths.curve.offset(10) - return part - }, - } - const design = new Design({ parts: [part] }) - const pattern = new design() - pattern.draft().render() - expect(round(pattern.parts[0].test.paths.offset.bottomRight.x)).to.equal(72.63) - expect(round(pattern.parts[0].test.paths.offset.bottomRight.y)).to.equal(26.47) - }) - - it('Should offset a curve where cp2 = end', () => { - const part = { - name: 'test', - draft: ({ paths, Path, Point, part }) => { - paths.curve = new Path().move(new Point(0, 0)).curve_(new Point(40, 0), new Point(123, 34)) - paths.offset = paths.curve.offset(10) - return part - }, - } - const design = new Design({ parts: [part] }) - const pattern = new design() - pattern.draft().render() - expect(round(pattern.parts[0].test.paths.offset.bottomRight.x)).to.equal(119.86) - expect(round(pattern.parts[0].test.paths.offset.bottomRight.y)).to.equal(43.49) - }) - - it('Should return the length of a line', () => { - const part = { - name: 'test', - draft: ({ paths, Path, Point, part }) => { - paths.line = new Path().move(new Point(0, 0)).line(new Point(40, 0)) - return part - }, - } - const design = new Design({ parts: [part] }) - const pattern = new design() - pattern.draft().render() - expect(pattern.parts[0].test.paths.line.length()).to.equal(40) - }) - - it('Should return the length of a curve', () => { - const part = { - name: 'test', - draft: ({ paths, Path, Point, part }) => { - paths.curve = new Path() - .move(new Point(0, 0)) - .curve(new Point(0, 40), new Point(123, 34), new Point(23, 4)) - .close() - return part - }, - } - const design = new Design({ parts: [part] }) - const pattern = new design() - pattern.draft().render() - expect(round(pattern.parts[0].test.paths.curve.length())).to.equal(145.11) + it('Should return the length of a curve', () => { + const curve = new Path() + .move(new Point(0, 0)) + .curve(new Point(0, 40), new Point(123, 34), new Point(23, 4)) + .close() + expect(round(curve.length())).to.equal(145.11) + }) }) it('Should return the rough length of a curve', () => { - const part = { - name: 'test', - draft: ({ paths, Path, Point, part }) => { - paths.curve = new Path() - .move(new Point(0, 0)) - .curve(new Point(0, 50), new Point(100, 50), new Point(100, 0)) - .close() - return part - }, - } - const design = new Design({ parts: [part] }) - const pattern = new design() - pattern.draft().render() - expect(round(pattern.parts[0].test.paths.curve.roughLength())).to.equal(300) + const curve = new Path() + .move(new Point(0, 0)) + .curve(new Point(0, 50), new Point(100, 50), new Point(100, 0)) + .close() + expect(round(curve.roughLength())).to.equal(300) }) it('Should return the rough length of a line', () => { - const part = { - name: 'test', - draft: ({ paths, Path, Point, part }) => { - paths.line = new Path().move(new Point(0, 0)).line(new Point(0, 50)) - return part - }, - } - const design = new Design({ parts: [part] }) - const pattern = new design() - pattern.draft().render() - expect(round(pattern.parts[0].test.paths.line.roughLength())).to.equal(50) + const line = new Path().move(new Point(0, 0)).line(new Point(0, 50)) + expect(round(line.roughLength())).to.equal(50) }) it('Should return the path start point', () => { - const part = { - name: 'test', - draft: ({ paths, Path, Point, part }) => { - paths.curve = new Path() - .move(new Point(123, 456)) - .curve(new Point(0, 40), new Point(123, 34), new Point(23, 4)) - .close() - return part - }, - } - const design = new Design({ parts: [part] }) - const pattern = new design() - pattern.draft().render() - expect(pattern.parts[0].test.paths.curve.start().x).to.equal(123) - expect(pattern.parts[0].test.paths.curve.start().y).to.equal(456) + const curve = new Path() + .move(new Point(123, 456)) + .curve(new Point(0, 40), new Point(123, 34), new Point(23, 4)) + .close() + expect(curve.start().x).to.equal(123) + expect(curve.start().y).to.equal(456) }) it('Should return the path end point', () => { - const part = { - name: 'test', - draft: ({ paths, Path, Point, part }) => { - paths.curve = new Path() - .move(new Point(123, 456)) - .curve(new Point(0, 40), new Point(123, 34), new Point(23, 4)) - .close() - return part - }, - } - const design = new Design({ parts: [part] }) - const pattern = new design() - pattern.draft().render() - expect(pattern.parts[0].test.paths.curve.end().x).to.equal(123) - expect(pattern.parts[0].test.paths.curve.end().y).to.equal(456) + const curve = new Path() + .move(new Point(123, 456)) + .curve(new Point(0, 40), new Point(123, 34), new Point(23, 4)) + .close() + expect(curve.end().x).to.equal(123) + expect(curve.end().y).to.equal(456) }) it('Should calculate that path boundary', () => { @@ -810,24 +692,17 @@ describe('Path', () => { }) it('Should overwrite a path attribute', () => { - const part = { - name: 'test', - draft: ({ paths, Path, Point, part }) => { - paths.line = new Path() - .move(new Point(0, 0)) - .line(new Point(0, 40)) - .attr('class', 'foo') - .attr('class', 'bar') - .attr('class', 'overwritten', true) - return part - }, - } - const design = new Design({ parts: [part] }) - const pattern = new design() - pattern.draft().render() + const line = new Path() + line.log = { debug: () => {} } + line + .move(new Point(0, 0)) + .line(new Point(0, 40)) + .attr('class', 'foo') + .attr('class', 'bar') + .attr('class', 'overwritten', true) // Paths from shorthand have the log method - expect(pattern.parts[0].test.paths.line.attributes.get('class')).to.equal('overwritten') + expect(line.attributes.get('class')).to.equal('overwritten') }) it('Should move along a path even if it lands just on a joint', () => { @@ -1054,7 +929,6 @@ describe('Path', () => { it('Should log a warning when setting an attribute without a name', () => { let invalid = false const log = { warning: () => (invalid = true) } - expect(invalid).to.equal(false) new Path().__withLog(log).attr() expect(invalid).to.equal(true) }) @@ -1062,52 +936,42 @@ describe('Path', () => { it('Should log a warning when setting an attribute without a value', () => { let invalid = false const log = { warning: () => (invalid = true) } - expect(invalid).to.equal(false) new Path().__withLog(log).attr('test') expect(invalid).to.equal(true) }) - it('Should log a warning when calling offset without a distance', () => { - const part = { - name: 'test', - draft: ({ paths, Path, Point, points }) => { - paths.line = new Path().move(new Point(0, 0)).line(new Point(0, 40)).attr('class', 'foo') - paths.a = new Path().move(points.a).line(points.b) - paths.b = paths.a.offset() - return part - }, - } - const design = new Design({ parts: [part] }) - const pattern = new design() - pattern.draft() - expect(pattern.setStores[0].logs.error.length).to.equal(2) - expect(pattern.setStores[0].logs.error[0]).to.equal( - 'Called `Path.offset(distance)` but `distance` is not a number' - ) + it('Should log an error when calling offset without a distance', () => { + let invalid = true + const log = { warning: () => {}, error: () => (invalid = true) } + const pointLog = { error: () => {} } + const pointA = new Point(0, 0).__withLog(pointLog) + const pointB = new Point(0, 40).__withLog(pointLog) + const a = new Path().__withLog(log).move(pointA).line(pointB) + a.offset() + expect(invalid).to.equal(true) }) - it('Should log a warning when calling join without a path', () => { - const part = { - name: 'test', - draft: ({ paths, Path, Point, points }) => { - paths.line = new Path().move(new Point(0, 0)).line(new Point(0, 40)).attr('class', 'foo') - paths.a = new Path().move(points.a).line(points.b).join() - return part - }, + it('Should log an error when calling join without a path', () => { + let invalid = false + const log = { error: () => (invalid = true) } + const line = new Path() + .move(new Point(0, 0)) + .line(new Point(0, 40)) + .attr('class', 'foo') + .__withLog(log) + + try { + line.join() + } catch (e) { + expect('' + e).to.contain("TypeError: Cannot read properties of undefined (reading 'ops')") + } finally { + expect(invalid).to.equal(true) } - const design = new Design({ parts: [part] }) - const pattern = new design() - pattern.draft() - expect(pattern.setStores[0].logs.error.length).to.equal(2) - expect(pattern.setStores[0].logs.error[0]).to.equal( - 'Called `Path.join(that)` but `that` is not a `Path` object' - ) }) it('Should log a warning when calling start on a path without drawing operations', () => { let invalid = false const log = { error: () => (invalid = true) } - expect(invalid).to.equal(false) try { new Path().__withLog(log).start() } catch (err) { @@ -1116,10 +980,9 @@ describe('Path', () => { expect(invalid).to.equal(true) }) - it('Should log a warning when calling end on a path without drawing operations', () => { + it('Should log an error when calling end on a path without drawing operations', () => { let invalid = false const log = { error: () => (invalid = true) } - expect(invalid).to.equal(false) try { new Path().__withLog(log).end() } catch (err) { @@ -1128,7 +991,7 @@ describe('Path', () => { expect(invalid).to.equal(true) }) - it('Should log a warning when calling shiftAlong but distance is not a number', () => { + it('Should log an error when calling shiftAlong but distance is not a number', () => { let invalid = false const log = { error: () => (invalid = true) } expect(invalid).to.equal(false) @@ -1136,53 +999,36 @@ describe('Path', () => { expect(invalid).to.equal(true) }) - it('Should log a warning when calling shiftFractionalong but fraction is not a number', () => { - const part = { - name: 'test', - draft: ({ Path, Point, points }) => { - points.a = new Path().move(new Point(0, 0)).line(new Point(0, 40)).shiftFractionAlong() - return part - }, - } - const design = new Design({ parts: [part] }) - const pattern = new design() - pattern.draft() - expect(pattern.setStores[0].logs.error[0]).to.equal( - 'Called `Path.shiftFractionAlong(fraction)` but `fraction` is not a number' - ) + it('Should log an error when calling shiftFractionalong but fraction is not a number', () => { + let invalid = false + const log = { error: () => (invalid = true) } + new Path().__withLog(log).move(new Point(0, 0)).line(new Point(0, 40)).shiftFractionAlong() + expect(invalid).to.equal(true) }) - it('Should log a warning when splitting a path on a non-point', () => { - const part = { - name: 'test', - draft: ({ Path, Point, points, part }) => { - points.a = new Path().move(new Point(0, 0)).line(new Point(0, 40)).split() - return part - }, + it('Should log an error when splitting a path on a non-point', () => { + let invalid = false + const log = { error: () => (invalid = true) } + const pointLog = { warning: () => {} } + try { + new Path() + .__withLog(log) + .move(new Point(0, 0).__withLog(pointLog)) + .line(new Point(0, 40).__withLog(pointLog)) + .split() + } catch (e) { + expect(e.toString()).to.include( + "TypeError: Cannot read properties of undefined (reading '__check')" + ) + } finally { + expect(invalid).to.equal(true) } - const design = new Design({ parts: [part] }) - const pattern = new design() - pattern.draft() - expect(pattern.setStores[0].logs.error[0]).to.equal( - 'Called `Path.split(point)` but `point` is not a `Point` object' - ) }) it('Should add a class', () => { - const part = { - name: 'test', - draft: ({ Path, paths, Point, part }) => { - paths.line = new Path() - .move(new Point(0, 0)) - .line(new Point(10, 10)) - .addClass('fabric banana') - return part - }, - } - const design = new Design({ parts: [part] }) - const pattern = new design() - pattern.draft() - expect(pattern.parts[0].test.paths.line.attributes.get('class')).to.equal('fabric banana') + const line = new Path().move(new Point(0, 0)).line(new Point(10, 10)).addClass('fabric banana') + + expect(line.attributes.get('class')).to.equal('fabric banana') }) it('Should (un)hide a path with hide()/unhide()', () => { diff --git a/packages/core/tests/point.test.mjs b/packages/core/tests/point.test.mjs index c8611393f1a..a204d564f2b 100644 --- a/packages/core/tests/point.test.mjs +++ b/packages/core/tests/point.test.mjs @@ -132,26 +132,30 @@ describe('Point', () => { expect(round(ss.shiftTowards(se, 200).y)).to.equal(-18.42) }) - it('Should shift a point a fraction towards another', () => { - let origin = new Point(0, 0) - let n = new Point(0, -10) - let e = new Point(10, 0) - let s = new Point(0, 10) - let w = new Point(-10, 0) - let sn = origin.shiftFractionTowards(n, 1.5) - let se = origin.shiftFractionTowards(e, 1.5) - let ss = origin.shiftFractionTowards(s, 0.5) - let sw = origin.shiftFractionTowards(w, 2.5) - expect(round(sn.x)).to.equal(0) - expect(round(sn.y)).to.equal(-15) - expect(round(se.x)).to.equal(15) - expect(round(se.y)).to.equal(0) - expect(round(ss.x)).to.equal(0) - expect(round(ss.y)).to.equal(5) - expect(round(sw.x)).to.equal(-25) - expect(round(sw.y)).to.equal(0) - expect(round(sw.shiftFractionTowards(sn, 100).x)).to.equal(2475) - expect(round(ss.shiftFractionTowards(se, 200).y)).to.equal(-995) + describe('shiftFractionTowards', () => { + it('Should shift a point a fraction towards another', () => { + let origin = new Point(0, 0) + let s = new Point(0, 10) + let ss = origin.shiftFractionTowards(s, 0.5) + expect(round(ss.x)).to.equal(0) + expect(round(ss.y)).to.equal(5) + }) + + it('Should shift a point a fraction beyond another if the fraction is > 1', () => { + let origin = new Point(0, 0) + let n = new Point(0, -10) + let sn = origin.shiftFractionTowards(n, 1.5) + expect(round(sn.x)).to.equal(0) + expect(round(sn.y)).to.equal(-15) + }) + + it('Should shift a point a fraction away from another if the fraction is < 0', () => { + let origin = new Point(0, 0) + let n = new Point(0, -10) + let sn = origin.shiftFractionTowards(n, -0.5) + expect(round(sn.x)).to.equal(0) + expect(round(sn.y)).to.equal(5) + }) }) it('Should shift a point beyond another', () => { diff --git a/packages/core/tests/utils.test.mjs b/packages/core/tests/utils.test.mjs index 8bd1a0dd53f..40ac8bf6467 100644 --- a/packages/core/tests/utils.test.mjs +++ b/packages/core/tests/utils.test.mjs @@ -154,47 +154,49 @@ describe('Utils', () => { expect(hits.length).to.equal(3) }) - it('Should find 9 intersections between two curves', () => { - let A = new Point(10, 10) - let Acp = new Point(310, 40) - let B = new Point(110, 70) - let Bcp = new Point(-210, 40) - let C = new Point(20, -5) - let Ccp = new Point(60, 300) - let D = new Point(100, 85) - let Dcp = new Point(70, -220) + describe('curvesIntersect', function () { + it('Should find 9 intersections between two curves', () => { + let A = new Point(10, 10) + let Acp = new Point(310, 40) + let B = new Point(110, 70) + let Bcp = new Point(-210, 40) + let C = new Point(20, -5) + let Ccp = new Point(60, 300) + let D = new Point(100, 85) + let Dcp = new Point(70, -220) - let hits = curvesIntersect(A, Acp, Bcp, B, C, Ccp, Dcp, D) - expect(hits.length).to.equal(9) - }) + let hits = curvesIntersect(A, Acp, Bcp, B, C, Ccp, Dcp, D) + expect(hits.length).to.equal(9) + }) - it('Should find 1 intersection between two curves', () => { - let A = new Point(10, 10) - let Acp = new Point(310, 40) - let B = new Point(110, 70) - let Bcp = new Point(-210, 40) - let C = new Point(20, -5) - let Ccp = new Point(-60, 300) - let D = new Point(-200, 85) - let Dcp = new Point(-270, -220) + it('Should find 1 intersection between two curves', () => { + let A = new Point(10, 10) + let Acp = new Point(310, 40) + let B = new Point(110, 70) + let Bcp = new Point(-210, 40) + let C = new Point(20, -5) + let Ccp = new Point(-60, 300) + let D = new Point(-200, 85) + let Dcp = new Point(-270, -220) - let hit = curvesIntersect(A, Acp, Bcp, B, C, Ccp, Dcp, D) - expect(round(hit.x)).to.equal(15.58) - expect(round(hit.y)).to.equal(10.56) - }) + let hit = curvesIntersect(A, Acp, Bcp, B, C, Ccp, Dcp, D) + expect(round(hit.x)).to.equal(15.58) + expect(round(hit.y)).to.equal(10.56) + }) - it('Should find no intersection between two curves', () => { - let A = new Point(10, 10) - let Acp = new Point(310, 40) - let B = new Point(110, 70) - let Bcp = new Point(-210, 40) - let C = new Point(20, -5) - let Ccp = new Point(-60, -300) - let D = new Point(-200, 85) - let Dcp = new Point(-270, -220) + it('Should find no intersection between two curves', () => { + let A = new Point(10, 10) + let Acp = new Point(310, 40) + let B = new Point(110, 70) + let Bcp = new Point(-210, 40) + let C = new Point(20, -5) + let Ccp = new Point(-60, -300) + let D = new Point(-200, 85) + let Dcp = new Point(-270, -220) - let hit = curvesIntersect(A, Acp, Bcp, B, C, Ccp, Dcp, D) - expect(hit).to.equal(false) + let hit = curvesIntersect(A, Acp, Bcp, B, C, Ccp, Dcp, D) + expect(hit).to.equal(false) + }) }) it('Should correctly format units', () => { diff --git a/scripts/testall.js b/scripts/testall.js index 4344ee97eff..2df61606b50 100644 --- a/scripts/testall.js +++ b/scripts/testall.js @@ -1,25 +1,37 @@ const fs = require('fs') -const path = require('path'); +const path = require('path') const spawn = require('child_process').spawn -const projectRoot = path.normalize(path.join(__dirname, '..')); -const outputLog = path.join(projectRoot, '.test-failures.log'); -const collectorScript = path.join(projectRoot, 'scripts', 'test-failure-collector.js'); +const projectRoot = path.normalize(path.join(__dirname, '..')) +const outputLog = path.join(projectRoot, '.test-failures.log') +const collectorScript = path.join(projectRoot, 'scripts', 'test-failure-collector.js') // Start with a fresh output log on each run. if (fs.existsSync(outputLog)) { - fs.unlinkSync(outputLog); + fs.unlinkSync(outputLog) } // Run all tests, specifying the collector script. -spawn('lerna', ['run', '--no-bail', 'testci', '--stream', '--parallel', '--loglevel', 'error', '--', '--file', `${collectorScript}`, '--no-warnings'], { stdio: 'inherit' }) - .on('exit', function(code) { - // If a failure occurred, the log file will have been created. Print it. - if (fs.existsSync(outputLog)) { - console.error(fs.readFileSync(outputLog, 'utf8').trim()); - } - - // Propagate the exit code. - process.exit(code); - }); +spawn( + 'lerna', + [ + 'run', + '--no-bail', + 'testci', + '--loglevel', + 'error', + '--', + '--file', + `${collectorScript}`, + '--no-warnings', + ], + { stdio: 'inherit' } +).on('exit', function (code) { + // If a failure occurred, the log file will have been created. Print it. + if (fs.existsSync(outputLog)) { + console.error(fs.readFileSync(outputLog, 'utf8').trim()) + } + // Propagate the exit code. + process.exit(code) +}) diff --git a/sites/backend/package.json b/sites/backend/package.json index 96a799069eb..d12c6ba8ab2 100644 --- a/sites/backend/package.json +++ b/sites/backend/package.json @@ -7,7 +7,6 @@ "author": "Joost De Cock (https://github.com/joostdecock)", "homepage": "https://freesewing.org/", "repository": "github:freesewing/freesewing", - "license": "MIT", "bugs": { "url": "https://github.com/freesewing/freesewing/issues" }, @@ -30,10 +29,13 @@ "crypto": "^1.0.1", "express": "4.18.2", "mustache": "^4.2.0", + "passport": "^0.6.0", "passport-http": "^0.3.0", + "passport-jwt": "^4.0.0", "pino": "^8.7.0" }, "devDependencies": { + "chai-http": "^4.3.0", "mocha": "^10.1.0", "mocha-steps": "^1.3.0", "prisma": "4.5.0" diff --git a/sites/backend/prisma/schema.prisma b/sites/backend/prisma/schema.prisma index 3dddd3e74c8..0f579ad0120 100644 --- a/sites/backend/prisma/schema.prisma +++ b/sites/backend/prisma/schema.prisma @@ -73,9 +73,12 @@ model Pattern { data String design String img String? + name String @default("") + notes String person Person? @relation(fields: [personId], references: [id]) personId Int? - notes String + public Boolean @default(false) + settings String user User @relation(fields: [userId], references: [id]) userId Int updatedAt DateTime @updatedAt diff --git a/sites/backend/prisma/schema.sqlite b/sites/backend/prisma/schema.sqlite index 939ff2b1eda..dc9ba949a70 100644 Binary files a/sites/backend/prisma/schema.sqlite and b/sites/backend/prisma/schema.sqlite differ diff --git a/sites/backend/src/controllers/apikey.mjs b/sites/backend/src/controllers/apikeys.mjs similarity index 85% rename from sites/backend/src/controllers/apikey.mjs rename to sites/backend/src/controllers/apikeys.mjs index 56f4915f8dd..f45ea186bc4 100644 --- a/sites/backend/src/controllers/apikey.mjs +++ b/sites/backend/src/controllers/apikeys.mjs @@ -4,7 +4,7 @@ import { log } from '../utils/log.mjs' import { ApikeyModel } from '../models/apikey.mjs' import { UserModel } from '../models/user.mjs' -export function ApikeyController() {} +export function ApikeysController() {} /* * Create API key @@ -12,7 +12,7 @@ export function ApikeyController() {} * This is the endpoint that handles creation of API keys/tokens * See: https://freesewing.dev/reference/backend/api/apikey */ -ApikeyController.prototype.create = async (req, res, tools) => { +ApikeysController.prototype.create = async (req, res, tools) => { const Apikey = new ApikeyModel(tools) await Apikey.create(req) @@ -25,7 +25,7 @@ ApikeyController.prototype.create = async (req, res, tools) => { * This is the endpoint that handles creation of API keys/tokens * See: https://freesewing.dev/reference/backend/api/apikey */ -ApikeyController.prototype.read = async (req, res, tools) => { +ApikeysController.prototype.read = async (req, res, tools) => { const Apikey = new ApikeyModel(tools) await Apikey.guardedRead(req) @@ -39,7 +39,7 @@ ApikeyController.prototype.read = async (req, res, tools) => { * request * See: https://freesewing.dev/reference/backend/api/apikey */ -ApikeyController.prototype.whoami = async (req, res, tools) => { +ApikeysController.prototype.whoami = async (req, res, tools) => { const User = new UserModel(tools) const Apikey = new ApikeyModel(tools) @@ -69,7 +69,7 @@ ApikeyController.prototype.whoami = async (req, res, tools) => { * This is the endpoint that handles removal of API keys/tokens * See: https://freesewing.dev/reference/backend/api/apikey */ -ApikeyController.prototype.delete = async (req, res, tools) => { +ApikeysController.prototype.delete = async (req, res, tools) => { const Apikey = new ApikeyModel(tools) await Apikey.guardedDelete(req) diff --git a/sites/backend/src/controllers/patterns.mjs b/sites/backend/src/controllers/patterns.mjs new file mode 100644 index 00000000000..525181fe03a --- /dev/null +++ b/sites/backend/src/controllers/patterns.mjs @@ -0,0 +1,58 @@ +import { PatternModel } from '../models/pattern.mjs' + +export function PatternsController() {} + +/* + * Create a pattern + * See: https://freesewing.dev/reference/backend/api + */ +PatternsController.prototype.create = async (req, res, tools) => { + const Pattern = new PatternModel(tools) + await Pattern.guardedCreate(req) + + return Pattern.sendResponse(res) +} + +/* + * Read a pattern + * See: https://freesewing.dev/reference/backend/api + */ +PatternsController.prototype.read = async (req, res, tools) => { + const Pattern = new PatternModel(tools) + await Pattern.guardedRead(req) + + return Pattern.sendResponse(res) +} + +/* + * Update a pattern + * See: https://freesewing.dev/reference/backend/api + */ +PatternsController.prototype.update = async (req, res, tools) => { + const Pattern = new PatternModel(tools) + await Pattern.guardedUpdate(req) + + return Pattern.sendResponse(res) +} + +/* + * Remove a pattern + * See: https://freesewing.dev/reference/backend/api + */ +PatternsController.prototype.delete = async (req, res, tools) => { + const Pattern = new PatternModel(tools) + await Pattern.guardedDelete(req) + + return Pattern.sendResponse(res) +} + +/* + * Clone a pattern + * See: https://freesewing.dev/reference/backend/api + */ +PatternsController.prototype.clone = async (req, res, tools) => { + const Pattern = new PatternModel(tools) + await Pattern.guardedClone(req) + + return Pattern.sendResponse(res) +} diff --git a/sites/backend/src/controllers/person.mjs b/sites/backend/src/controllers/people.mjs similarity index 74% rename from sites/backend/src/controllers/person.mjs rename to sites/backend/src/controllers/people.mjs index e6081b3a5c2..636524c6849 100644 --- a/sites/backend/src/controllers/person.mjs +++ b/sites/backend/src/controllers/people.mjs @@ -1,12 +1,12 @@ import { PersonModel } from '../models/person.mjs' -export function PersonController() {} +export function PeopleController() {} /* * Create a person for the authenticated user * See: https://freesewing.dev/reference/backend/api */ -PersonController.prototype.create = async (req, res, tools) => { +PeopleController.prototype.create = async (req, res, tools) => { const Person = new PersonModel(tools) await Person.guardedCreate(req) @@ -17,7 +17,7 @@ PersonController.prototype.create = async (req, res, tools) => { * Read a person * See: https://freesewing.dev/reference/backend/api */ -PersonController.prototype.read = async (req, res, tools) => { +PeopleController.prototype.read = async (req, res, tools) => { const Person = new PersonModel(tools) await Person.guardedRead(req) @@ -28,7 +28,7 @@ PersonController.prototype.read = async (req, res, tools) => { * Update a person * See: https://freesewing.dev/reference/backend/api */ -PersonController.prototype.update = async (req, res, tools) => { +PeopleController.prototype.update = async (req, res, tools) => { const Person = new PersonModel(tools) await Person.guardedUpdate(req) @@ -39,7 +39,7 @@ PersonController.prototype.update = async (req, res, tools) => { * Remove a person * See: https://freesewing.dev/reference/backend/api */ -PersonController.prototype.delete = async (req, res, tools) => { +PeopleController.prototype.delete = async (req, res, tools) => { const Person = new PersonModel(tools) await Person.guardedDelete(req) @@ -50,7 +50,7 @@ PersonController.prototype.delete = async (req, res, tools) => { * Clone a person * See: https://freesewing.dev/reference/backend/api */ -PersonController.prototype.clone = async (req, res, tools) => { +PeopleController.prototype.clone = async (req, res, tools) => { const Person = new PersonModel(tools) await Person.guardedClone(req) diff --git a/sites/backend/src/controllers/user.mjs b/sites/backend/src/controllers/users.mjs similarity index 78% rename from sites/backend/src/controllers/user.mjs rename to sites/backend/src/controllers/users.mjs index 648000db8eb..f649619bd5d 100644 --- a/sites/backend/src/controllers/user.mjs +++ b/sites/backend/src/controllers/users.mjs @@ -1,6 +1,6 @@ import { UserModel } from '../models/user.mjs' -export function UserController() {} +export function UsersController() {} /* * Signup @@ -8,7 +8,7 @@ export function UserController() {} * This is the endpoint that handles account signups * See: https://freesewing.dev/reference/backend/api */ -UserController.prototype.signup = async (req, res, tools) => { +UsersController.prototype.signup = async (req, res, tools) => { const User = new UserModel(tools) await User.guardedCreate(req) @@ -21,7 +21,7 @@ UserController.prototype.signup = async (req, res, tools) => { * This is the endpoint that fully unlocks the account if the user gives their consent * See: https://freesewing.dev/reference/backend/api */ -UserController.prototype.confirm = async (req, res, tools) => { +UsersController.prototype.confirm = async (req, res, tools) => { const User = new UserModel(tools) await User.confirm(req) @@ -34,7 +34,7 @@ UserController.prototype.confirm = async (req, res, tools) => { * This is the endpoint that provides traditional username/password login * See: https://freesewing.dev/reference/backend/api */ -UserController.prototype.login = async function (req, res, tools) { +UsersController.prototype.login = async function (req, res, tools) { const User = new UserModel(tools) await User.passwordLogin(req) @@ -46,7 +46,7 @@ UserController.prototype.login = async function (req, res, tools) { * * See: https://freesewing.dev/reference/backend/api */ -UserController.prototype.whoami = async (req, res, tools) => { +UsersController.prototype.whoami = async (req, res, tools) => { const User = new UserModel(tools) await User.guardedRead({ id: req.user.uid }, req) @@ -58,7 +58,7 @@ UserController.prototype.whoami = async (req, res, tools) => { * * See: https://freesewing.dev/reference/backend/api */ -UserController.prototype.update = async (req, res, tools) => { +UsersController.prototype.update = async (req, res, tools) => { const User = new UserModel(tools) await User.guardedRead({ id: req.user.uid }, req) await User.guardedUpdate(req) diff --git a/sites/backend/src/models/pattern.mjs b/sites/backend/src/models/pattern.mjs new file mode 100644 index 00000000000..66ea00a1abc --- /dev/null +++ b/sites/backend/src/models/pattern.mjs @@ -0,0 +1,317 @@ +import { log } from '../utils/log.mjs' +import { setPatternAvatar } from '../utils/sanity.mjs' + +export function PatternModel(tools) { + this.config = tools.config + this.prisma = tools.prisma + this.decrypt = tools.decrypt + this.encrypt = tools.encrypt + this.encryptedFields = ['data', 'img', 'name', 'notes', 'settings'] + this.clear = {} // For holding decrypted data + + return this +} +/* + id Int @id @default(autoincrement()) + createdAt DateTime @default(now()) + data String + design String + img String? + person Person? @relation(fields: [personId], references: [id]) + personId Int? + name String @default("") + notes String + public + settings String + user User @relation(fields: [userId], references: [id]) + userId Int + updatedAt DateTime @updatedAt + */ + +PatternModel.prototype.guardedCreate = async function ({ body, user }) { + if (user.level < 3) return this.setResponse(403, 'insufficientAccessLevel') + if (Object.keys(body) < 2) return this.setResponse(400, 'postBodyMissing') + if (!body.person) return this.setResponse(400, 'personMissing') + if (typeof body.person !== 'number') return this.setResponse(400, 'personNotNumeric') + if (typeof body.settings !== 'object') return this.setResponse(400, 'settingsNotAnObject') + if (body.data && typeof body.data !== 'object') return this.setResponse(400, 'dataNotAnObject') + if (!body.design && !body.data?.design) return this.setResponse(400, 'designMissing') + if (typeof body.design !== 'string') return this.setResponse(400, 'designNotStringy') + + // Prepare data + const data = { + design: body.design, + personId: body.person, + settings: body.settings, + } + // Data (will be encrypted, so always set _some_ value) + if (typeof body.data === 'object') data.data = body.data + else data.data = {} + // Name (will be encrypted, so always set _some_ value) + if (typeof body.name === 'string' && body.name.length > 0) data.name = body.name + else data.name = '--' + // Notes (will be encrypted, so always set _some_ value) + if (typeof body.notes === 'string' && body.notes.length > 0) data.notes = body.notes + else data.notes = '--' + // Public + if (body.public === true) data.public = true + data.userId = user.uid + // Set this one initially as we need the ID to create a custom img via Sanity + data.img = this.config.avatars.pattern + + // Create record + await this.unguardedCreate(data) + + // Update img? (now that we have the ID) + const img = + this.config.use.sanity && + typeof body.img === 'string' && + (!body.unittest || (body.unittest && this.config.use.tests?.sanity)) + ? await setPatternAvatar(this.record.id, body.img) + : false + + if (img) await this.unguardedUpdate(this.cloak({ img: img.url })) + else await this.read({ id: this.record.id }) + + return this.setResponse(201, 'created', { pattern: this.asPattern() }) +} + +PatternModel.prototype.unguardedCreate = async function (data) { + try { + this.record = await this.prisma.pattern.create({ data: this.cloak(data) }) + } catch (err) { + log.warn(err, 'Could not create pattern') + return this.setResponse(500, 'createPatternFailed') + } + + return this +} + +/* + * Loads a pattern from the database based on the where clause you pass it + * + * Stores result in this.record + */ +PatternModel.prototype.read = async function (where) { + try { + this.record = await this.prisma.pattern.findUnique({ where }) + } catch (err) { + log.warn({ err, where }, 'Could not read pattern') + } + + this.reveal() + + return this.setExists() +} + +/* + * Loads a pattern from the database based on the where clause you pass it + * In addition prepares it for returning the pattern data + * + * Stores result in this.record + */ +PatternModel.prototype.guardedRead = async function ({ params, user }) { + if (user.level < 1) return this.setResponse(403, 'insufficientAccessLevel') + if (user.iss && user.status < 1) return this.setResponse(403, 'accountStatusLacking') + + await this.read({ id: parseInt(params.id) }) + if (this.record.userId !== user.uid && user.level < 5) { + return this.setResponse(403, 'insufficientAccessLevel') + } + + return this.setResponse(200, false, { + result: 'success', + pattern: this.asPattern(), + }) +} + +/* + * Clones a pattern + * In addition prepares it for returning the pattern data + * + * Stores result in this.record + */ +PatternModel.prototype.guardedClone = async function ({ params, user }) { + if (user.level < 3) return this.setResponse(403, 'insufficientAccessLevel') + if (user.iss && user.status < 1) return this.setResponse(403, 'accountStatusLacking') + + await this.read({ id: parseInt(params.id) }) + if (this.record.userId !== user.uid && !this.record.public && user.level < 5) { + return this.setResponse(403, 'insufficientAccessLevel') + } + + // Clone pattern + const data = this.asPattern() + delete data.id + data.name += ` (cloned from #${this.record.id})` + data.notes += ` (Note: This pattern was cloned from pattern #${this.record.id})` + await this.unguardedCreate(data) + + // Update unencrypted data + this.reveal() + + return this.setResponse(200, false, { + result: 'success', + pattern: this.asPattern(), + }) +} + +/* + * Helper method to decrypt at-rest data + */ +PatternModel.prototype.reveal = async function () { + this.clear = {} + if (this.record) { + for (const field of this.encryptedFields) { + this.clear[field] = this.decrypt(this.record[field]) + } + } + + return this +} + +/* + * Helper method to encrypt at-rest data + */ +PatternModel.prototype.cloak = function (data) { + for (const field of this.encryptedFields) { + if (typeof data[field] !== 'undefined') { + data[field] = this.encrypt(data[field]) + } + } + + return data +} + +/* + * Checks this.record and sets a boolean to indicate whether + * the pattern exists or not + * + * Stores result in this.exists + */ +PatternModel.prototype.setExists = function () { + this.exists = this.record ? true : false + + return this +} + +/* + * Updates the pattern data - Used when we create the data ourselves + * so we know it's safe + */ +PatternModel.prototype.unguardedUpdate = async function (data) { + try { + this.record = await this.prisma.pattern.update({ + where: { id: this.record.id }, + data, + }) + } catch (err) { + log.warn(err, 'Could not update pattern record') + process.exit() + return this.setResponse(500, 'updatePatternFailed') + } + await this.reveal() + + return this.setResponse(200) +} + +/* + * Updates the pattern data - Used when we pass through user-provided data + * so we can't be certain it's safe + */ +PatternModel.prototype.guardedUpdate = async function ({ params, body, user }) { + if (user.level < 3) return this.setResponse(403, 'insufficientAccessLevel') + if (user.iss && user.status < 1) return this.setResponse(403, 'accountStatusLacking') + await this.read({ id: parseInt(params.id) }) + if (this.record.userId !== user.uid && user.level < 8) { + return this.setResponse(403, 'insufficientAccessLevel') + } + const data = {} + // Name + if (typeof body.name === 'string') data.name = body.name + // Notes + if (typeof body.notes === 'string') data.notes = body.notes + // Public + if (body.public === true || body.public === false) data.public = body.public + // Data + if (typeof body.data === 'object') data.data = body.data + // Settings + if (typeof body.settings === 'object') data.settings = body.settings + // Image (img) + if (typeof body.img === 'string') { + const img = await setPatternAvatar(params.id, body.img) + data.img = img.url + } + + // Now update the record + await this.unguardedUpdate(this.cloak(data)) + + return this.setResponse(200, false, { pattern: this.asPattern() }) +} + +/* + * Removes the pattern - No questions asked + */ +PatternModel.prototype.unguardedDelete = async function () { + await this.prisma.pattern.delete({ here: { id: this.record.id } }) + this.record = null + this.clear = null + + return this.setExists() +} + +/* + * Removes the pattern - Checks permissions + */ +PatternModel.prototype.guardedDelete = async function ({ params, body, user }) { + if (user.level < 3) return this.setResponse(403, 'insufficientAccessLevel') + if (user.iss && user.status < 1) return this.setResponse(403, 'accountStatusLacking') + + await this.read({ id: parseInt(params.id) }) + if (this.record.userId !== user.uid && user.level < 8) { + return this.setResponse(403, 'insufficientAccessLevel') + } + + await this.unguardedDelete() + + return this.setResponse(204, false) +} + +/* + * Returns record data + */ +PatternModel.prototype.asPattern = function () { + return { + ...this.record, + ...this.clear, + } +} + +/* + * Helper method to set the response code, result, and body + * + * Will be used by this.sendResponse() + */ +PatternModel.prototype.setResponse = function (status = 200, error = false, data = {}) { + this.response = { + status, + body: { + result: 'success', + ...data, + }, + } + if (status > 201) { + this.response.body.error = error + this.response.body.result = 'error' + this.error = true + } else this.error = false + + return this.setExists() +} + +/* + * Helper method to send response + */ +PatternModel.prototype.sendResponse = async function (res) { + return res.status(this.response.status).send(this.response.body) +} diff --git a/sites/backend/src/models/person.mjs b/sites/backend/src/models/person.mjs index c75d4de7047..4e1a3f2ea82 100644 --- a/sites/backend/src/models/person.mjs +++ b/sites/backend/src/models/person.mjs @@ -19,7 +19,12 @@ PersonModel.prototype.guardedCreate = async function ({ body, user }) { // Prepare data const data = { name: body.name } + // Name (will be encrypted, so always set _some_ value) + if (typeof body.name === 'string') data.name = body.name + else data.name = '--' + // Notes (will be encrypted, so always set _some_ value) if (body.notes || typeof body.notes === 'string') data.notes = body.notes + else data.notes = '--' if (body.public === true) data.public = true if (body.measies) data.measies = this.sanitizeMeasurements(body.measies) data.imperial = body.imperial === true ? true : false diff --git a/sites/backend/src/models/user.mjs b/sites/backend/src/models/user.mjs index 9deb4127f22..da3ab4e2aba 100644 --- a/sites/backend/src/models/user.mjs +++ b/sites/backend/src/models/user.mjs @@ -223,9 +223,9 @@ UserModel.prototype.guardedCreate = async function ({ body }) { * Login based on username + password */ UserModel.prototype.passwordLogin = async function (req) { - if (Object.keys(req.body) < 1) return this.setReponse(400, 'postBodyMissing') - if (!req.body.username) return this.setReponse(400, 'usernameMissing') - if (!req.body.password) return this.setReponse(400, 'passwordMissing') + if (Object.keys(req.body) < 1) return this.setResponse(400, 'postBodyMissing') + if (!req.body.username) return this.setResponse(400, 'usernameMissing') + if (!req.body.password) return this.setResponse(400, 'passwordMissing') await this.find(req.body) if (!this.exists) { @@ -255,7 +255,7 @@ UserModel.prototype.passwordLogin = async function (req) { * Confirms a user account */ UserModel.prototype.confirm = async function ({ body, params }) { - if (!params.id) return this.setReponse(404, 'missingConfirmationId') + if (!params.id) return this.setResponse(404, 'missingConfirmationId') if (Object.keys(body) < 1) return this.setResponse(400, 'postBodyMissing') if (!body.consent || typeof body.consent !== 'number' || body.consent < 1) return this.setResponse(400, 'consentRequired') diff --git a/sites/backend/src/routes/apikey.mjs b/sites/backend/src/routes/apikey.mjs deleted file mode 100644 index b22eeb02643..00000000000 --- a/sites/backend/src/routes/apikey.mjs +++ /dev/null @@ -1,38 +0,0 @@ -import { ApikeyController } from '../controllers/apikey.mjs' - -const Apikey = new ApikeyController() -const jwt = ['jwt', { session: false }] -const bsc = ['basic', { session: false }] - -export function apikeyRoutes(tools) { - const { app, passport } = tools - - // Create Apikey - app.post('/apikey/jwt', passport.authenticate(...jwt), (req, res) => - Apikey.create(req, res, tools) - ) - app.post('/apikey/key', passport.authenticate(...bsc), (req, res) => - Apikey.create(req, res, tools) - ) - - // Read Apikey - app.get('/apikey/:id/jwt', passport.authenticate(...jwt), (req, res) => - Apikey.read(req, res, tools) - ) - app.get('/apikey/:id/key', passport.authenticate(...bsc), (req, res) => - Apikey.read(req, res, tools) - ) - - // Read current Apikey - app.get('/whoami/key', passport.authenticate(...bsc), (req, res) => - Apikey.whoami(req, res, tools) - ) - - // Remove Apikey - app.delete('/apikey/:id/jwt', passport.authenticate(...jwt), (req, res) => - Apikey.delete(req, res, tools) - ) - app.delete('/apikey/:id/key', passport.authenticate(...bsc), (req, res) => - Apikey.delete(req, res, tools) - ) -} diff --git a/sites/backend/src/routes/apikeys.mjs b/sites/backend/src/routes/apikeys.mjs new file mode 100644 index 00000000000..5b70d1256bf --- /dev/null +++ b/sites/backend/src/routes/apikeys.mjs @@ -0,0 +1,38 @@ +import { ApikeysController } from '../controllers/apikeys.mjs' + +const Apikeys = new ApikeysController() +const jwt = ['jwt', { session: false }] +const bsc = ['basic', { session: false }] + +export function apikeysRoutes(tools) { + const { app, passport } = tools + + // Create Apikey + app.post('/apikeys/jwt', passport.authenticate(...jwt), (req, res) => + Apikeys.create(req, res, tools) + ) + app.post('/apikeys/key', passport.authenticate(...bsc), (req, res) => + Apikeys.create(req, res, tools) + ) + + // Read Apikey + app.get('/apikeys/:id/jwt', passport.authenticate(...jwt), (req, res) => + Apikeys.read(req, res, tools) + ) + app.get('/apikeys/:id/key', passport.authenticate(...bsc), (req, res) => + Apikeys.read(req, res, tools) + ) + + // Read current Apikey + app.get('/whoami/key', passport.authenticate(...bsc), (req, res) => + Apikeys.whoami(req, res, tools) + ) + + // Remove Apikey + app.delete('/apikeys/:id/jwt', passport.authenticate(...jwt), (req, res) => + Apikeys.delete(req, res, tools) + ) + app.delete('/apikeys/:id/key', passport.authenticate(...bsc), (req, res) => + Apikeys.delete(req, res, tools) + ) +} diff --git a/sites/backend/src/routes/index.mjs b/sites/backend/src/routes/index.mjs index 1c4a70abc9e..cf8b5035c85 100644 --- a/sites/backend/src/routes/index.mjs +++ b/sites/backend/src/routes/index.mjs @@ -1,9 +1,11 @@ -import { apikeyRoutes } from './apikey.mjs' -import { userRoutes } from './user.mjs' -import { personRoutes } from './person.mjs' +import { apikeysRoutes } from './apikeys.mjs' +import { usersRoutes } from './users.mjs' +import { peopleRoutes } from './people.mjs' +import { patternsRoutes } from './patterns.mjs' export const routes = { - apikeyRoutes, - userRoutes, - personRoutes, + apikeysRoutes, + usersRoutes, + peopleRoutes, + patternsRoutes, } diff --git a/sites/backend/src/routes/patterns.mjs b/sites/backend/src/routes/patterns.mjs new file mode 100644 index 00000000000..ffa2eed4d8f --- /dev/null +++ b/sites/backend/src/routes/patterns.mjs @@ -0,0 +1,49 @@ +import { PatternsController } from '../controllers/patterns.mjs' + +const Patterns = new PatternsController() +const jwt = ['jwt', { session: false }] +const bsc = ['basic', { session: false }] + +export function patternsRoutes(tools) { + const { app, passport } = tools + + // Create pattern + app.post('/patterns/jwt', passport.authenticate(...jwt), (req, res) => + Patterns.create(req, res, tools) + ) + app.post('/patterns/key', passport.authenticate(...bsc), (req, res) => + Patterns.create(req, res, tools) + ) + + // Clone pattern + app.post('/patterns/:id/clone/jwt', passport.authenticate(...jwt), (req, res) => + Patterns.clone(req, res, tools) + ) + app.post('/patterns/:id/clone/key', passport.authenticate(...bsc), (req, res) => + Patterns.clone(req, res, tools) + ) + + // Read pattern + app.get('/patterns/:id/jwt', passport.authenticate(...jwt), (req, res) => + Patterns.read(req, res, tools) + ) + app.get('/patterns/:id/key', passport.authenticate(...bsc), (req, res) => + Patterns.read(req, res, tools) + ) + + // Update pattern + app.put('/patterns/:id/jwt', passport.authenticate(...jwt), (req, res) => + Patterns.update(req, res, tools) + ) + app.put('/patterns/:id/key', passport.authenticate(...bsc), (req, res) => + Patterns.update(req, res, tools) + ) + + // Delete pattern + app.delete('/patterns/:id/jwt', passport.authenticate(...jwt), (req, res) => + Patterns.delete(req, res, tools) + ) + app.delete('/patterns/:id/key', passport.authenticate(...bsc), (req, res) => + Patterns.delete(req, res, tools) + ) +} diff --git a/sites/backend/src/routes/person.mjs b/sites/backend/src/routes/people.mjs similarity index 67% rename from sites/backend/src/routes/person.mjs rename to sites/backend/src/routes/people.mjs index 1ee0609dc55..d43550ef205 100644 --- a/sites/backend/src/routes/person.mjs +++ b/sites/backend/src/routes/people.mjs @@ -1,49 +1,49 @@ -import { PersonController } from '../controllers/person.mjs' +import { PeopleController } from '../controllers/people.mjs' -const Person = new PersonController() +const People = new PeopleController() const jwt = ['jwt', { session: false }] const bsc = ['basic', { session: false }] -export function personRoutes(tools) { +export function peopleRoutes(tools) { const { app, passport } = tools // Create person app.post('/people/jwt', passport.authenticate(...jwt), (req, res) => - Person.create(req, res, tools) + People.create(req, res, tools) ) app.post('/people/key', passport.authenticate(...bsc), (req, res) => - Person.create(req, res, tools) + People.create(req, res, tools) ) // Clone person app.post('/people/:id/clone/jwt', passport.authenticate(...jwt), (req, res) => - Person.clone(req, res, tools) + People.clone(req, res, tools) ) app.post('/people/:id/clone/key', passport.authenticate(...bsc), (req, res) => - Person.clone(req, res, tools) + People.clone(req, res, tools) ) // Read person app.get('/people/:id/jwt', passport.authenticate(...jwt), (req, res) => - Person.read(req, res, tools) + People.read(req, res, tools) ) app.get('/people/:id/key', passport.authenticate(...bsc), (req, res) => - Person.read(req, res, tools) + People.read(req, res, tools) ) // Update person app.put('/people/:id/jwt', passport.authenticate(...jwt), (req, res) => - Person.update(req, res, tools) + People.update(req, res, tools) ) app.put('/people/:id/key', passport.authenticate(...bsc), (req, res) => - Person.update(req, res, tools) + People.update(req, res, tools) ) // Delete person app.delete('/people/:id/jwt', passport.authenticate(...jwt), (req, res) => - Person.delete(req, res, tools) + People.delete(req, res, tools) ) app.delete('/people/:id/key', passport.authenticate(...bsc), (req, res) => - Person.delete(req, res, tools) + People.delete(req, res, tools) ) } diff --git a/sites/backend/src/routes/user.mjs b/sites/backend/src/routes/users.mjs similarity index 76% rename from sites/backend/src/routes/user.mjs rename to sites/backend/src/routes/users.mjs index 69d6c35f0f8..2e2998bdc28 100644 --- a/sites/backend/src/routes/user.mjs +++ b/sites/backend/src/routes/users.mjs @@ -1,30 +1,38 @@ -import { UserController } from '../controllers/user.mjs' +import { UsersController } from '../controllers/users.mjs' -const User = new UserController() +const Users = new UsersController() const jwt = ['jwt', { session: false }] const bsc = ['basic', { session: false }] -export function userRoutes(tools) { +export function usersRoutes(tools) { const { app, passport } = tools // Sign up - app.post('/signup', (req, res) => User.signup(req, res, tools)) + app.post('/signup', (req, res) => Users.signup(req, res, tools)) // Confirm account - app.post('/confirm/signup/:id', (req, res) => User.confirm(req, res, tools)) + app.post('/confirm/signup/:id', (req, res) => Users.confirm(req, res, tools)) // Login - app.post('/login', (req, res) => User.login(req, res, tools)) + app.post('/login', (req, res) => Users.login(req, res, tools)) // Read current jwt - app.get('/whoami/jwt', passport.authenticate(...jwt), (req, res) => User.whoami(req, res, tools)) - app.get('/account/jwt', passport.authenticate(...jwt), (req, res) => User.whoami(req, res, tools)) - app.get('/account/key', passport.authenticate(...bsc), (req, res) => User.whoami(req, res, tools)) + app.get('/whoami/jwt', passport.authenticate(...jwt), (req, res) => Users.whoami(req, res, tools)) + app.get('/account/jwt', passport.authenticate(...jwt), (req, res) => + Users.whoami(req, res, tools) + ) + app.get('/account/key', passport.authenticate(...bsc), (req, res) => + Users.whoami(req, res, tools) + ) // Update account - app.put('/account/jwt', passport.authenticate(...jwt), (req, res) => User.update(req, res, tools)) - app.put('/account/key', passport.authenticate(...bsc), (req, res) => User.update(req, res, tools)) + app.put('/account/jwt', passport.authenticate(...jwt), (req, res) => + Users.update(req, res, tools) + ) + app.put('/account/key', passport.authenticate(...bsc), (req, res) => + Users.update(req, res, tools) + ) /* diff --git a/sites/backend/src/utils/sanity.mjs b/sites/backend/src/utils/sanity.mjs index 5158c87666f..6b5fec36945 100644 --- a/sites/backend/src/utils/sanity.mjs +++ b/sites/backend/src/utils/sanity.mjs @@ -33,6 +33,7 @@ async function getAvatar(type, id) { */ export const setUserAvatar = async (id, data) => setAvatar('user', id, data) export const setPersonAvatar = async (id, data) => setAvatar('person', id, data) +export const setPatternAvatar = async (id, data) => setAvatar('pattern', id, data) export async function setAvatar(type, id, data) { // Step 1: Upload the image as asset const [contentType, binary] = b64ToBinaryWithType(data) diff --git a/sites/backend/tests/apikey.mjs b/sites/backend/tests/apikey.mjs index 0c63a3ca0fd..be3a6807ee9 100644 --- a/sites/backend/tests/apikey.mjs +++ b/sites/backend/tests/apikey.mjs @@ -3,7 +3,7 @@ export const apikeyTests = async (chai, config, expect, store) => { step(`${store.icon('key', 'jwt')} Create API Key (jwt)`, (done) => { chai .request(config.api) - .post('/apikey/jwt') + .post('/apikeys/jwt') .set('Authorization', 'Bearer ' + store.account.token) .send({ name: 'Test API key', @@ -27,7 +27,7 @@ export const apikeyTests = async (chai, config, expect, store) => { step(`${store.icon('key', 'key')} Create API Key (key)`, (done) => { chai .request(config.api) - .post('/apikey/key') + .post('/apikeys/key') .auth(store.apikey1.key, store.apikey1.secret) .send({ name: 'Test API key with key', @@ -67,7 +67,7 @@ export const apikeyTests = async (chai, config, expect, store) => { step(`${store.icon('key', 'key')} Read API key (key)`, (done) => { chai .request(config.api) - .get(`/apikey/${store.apikey1.key}/key`) + .get(`/apikeys/${store.apikey1.key}/key`) .auth(store.apikey2.key, store.apikey2.secret) .end((err, res) => { expect(res.status).to.equal(200) @@ -83,7 +83,7 @@ export const apikeyTests = async (chai, config, expect, store) => { step(`${store.icon('key', 'jwt')} Read API key (jwt)`, (done) => { chai .request(config.api) - .get(`/apikey/${store.apikey2.key}/jwt`) + .get(`/apikeys/${store.apikey2.key}/jwt`) .set('Authorization', 'Bearer ' + store.account.token) .end((err, res) => { expect(res.status).to.equal(200) @@ -99,7 +99,7 @@ export const apikeyTests = async (chai, config, expect, store) => { step(`${store.icon('key', 'key')} Remove API key (key)`, (done) => { chai .request(config.api) - .delete(`/apikey/${store.apikey2.key}/key`) + .delete(`/apikeys/${store.apikey2.key}/key`) .auth(store.apikey2.key, store.apikey2.secret) .end((err, res) => { expect(res.status).to.equal(204) @@ -110,7 +110,7 @@ export const apikeyTests = async (chai, config, expect, store) => { step(`${store.icon('key', 'jwt')} Remove API key (jwt)`, (done) => { chai .request(config.api) - .delete(`/apikey/${store.apikey1.key}/jwt`) + .delete(`/apikeys/${store.apikey1.key}/jwt`) .set('Authorization', 'Bearer ' + store.account.token) .end((err, res) => { expect(res.status).to.equal(204) diff --git a/sites/backend/tests/index.mjs b/sites/backend/tests/index.mjs index 44543d586bf..c57833285e8 100644 --- a/sites/backend/tests/index.mjs +++ b/sites/backend/tests/index.mjs @@ -2,6 +2,7 @@ import { userTests } from './user.mjs' import { accountTests } from './account.mjs' import { apikeyTests } from './apikey.mjs' import { personTests } from './person.mjs' +import { patternTests } from './pattern.mjs' import { setup } from './shared.mjs' const runTests = async (...params) => { @@ -9,6 +10,7 @@ const runTests = async (...params) => { await apikeyTests(...params) await accountTests(...params) await personTests(...params) + await patternTests(...params) } // Load initial data required for tests diff --git a/sites/backend/tests/pattern.mjs b/sites/backend/tests/pattern.mjs new file mode 100644 index 00000000000..835c3468a77 --- /dev/null +++ b/sites/backend/tests/pattern.mjs @@ -0,0 +1,326 @@ +import { cat } from './cat.mjs' + +export const patternTests = async (chai, config, expect, store) => { + store.account.patterns = {} + for (const auth of ['jwt', 'key']) { + describe(`${store.icon('pattern', auth)} Pattern tests (${auth})`, () => { + it(`${store.icon('pattern', auth)} Should create a new pattern (${auth})`, (done) => { + chai + .request(config.api) + .post(`/patterns/${auth}`) + .set( + 'Authorization', + auth === 'jwt' + ? 'Bearer ' + store.account.token + : 'Basic ' + + new Buffer(`${store.account.apikey.key}:${store.account.apikey.secret}`).toString( + 'base64' + ) + ) + .send({ + design: 'aaron', + settings: {}, + person: store.account.people.her.id, + }) + .end((err, res) => { + expect(err === null).to.equal(true) + expect(res.status).to.equal(201) + expect(res.body.result).to.equal(`success`) + expect(typeof res.body.pattern?.id).to.equal('number') + expect(res.body.pattern.userId).to.equal(store.account.id) + expect(res.body.pattern.personId).to.equal(store.account.people.her.id) + expect(res.body.pattern.design).to.equal('aaron') + expect(res.body.pattern.public).to.equal(false) + store.account.patterns[auth] = res.body.pattern + done() + }) + }).timeout(5000) + + for (const field of ['name', 'notes']) { + it(`${store.icon('pattern', auth)} Should update the ${field} field (${auth})`, (done) => { + const data = {} + const val = store.account.patterns[auth][field] + '_updated' + data[field] = val + chai + .request(config.api) + .put(`/patterns/${store.account.patterns[auth].id}/${auth}`) + .set( + 'Authorization', + auth === 'jwt' + ? 'Bearer ' + store.account.token + : 'Basic ' + + new Buffer( + `${store.account.apikey.key}:${store.account.apikey.secret}` + ).toString('base64') + ) + .send(data) + .end((err, res) => { + expect(err === null).to.equal(true) + expect(res.status).to.equal(200) + expect(res.body.result).to.equal(`success`) + expect(res.body.pattern[field]).to.equal('--_updated') + done() + }) + }) + } + + it(`${store.icon('person', auth)} Should update the public field (${auth})`, (done) => { + chai + .request(config.api) + .put(`/patterns/${store.account.patterns[auth].id}/${auth}`) + .set( + 'Authorization', + auth === 'jwt' + ? 'Bearer ' + store.account.token + : 'Basic ' + + new Buffer(`${store.account.apikey.key}:${store.account.apikey.secret}`).toString( + 'base64' + ) + ) + .send({ public: true }) + .end((err, res) => { + expect(err === null).to.equal(true) + expect(res.status).to.equal(200) + expect(res.body.result).to.equal(`success`) + expect(res.body.pattern.public).to.equal(true) + done() + }) + }) + + it(`${store.icon('person', auth)} Should not update the design field (${auth})`, (done) => { + chai + .request(config.api) + .put(`/patterns/${store.account.patterns[auth].id}/${auth}`) + .set( + 'Authorization', + auth === 'jwt' + ? 'Bearer ' + store.account.token + : 'Basic ' + + new Buffer(`${store.account.apikey.key}:${store.account.apikey.secret}`).toString( + 'base64' + ) + ) + .send({ design: 'updated' }) + .end((err, res) => { + expect(err === null).to.equal(true) + expect(res.status).to.equal(200) + expect(res.body.result).to.equal(`success`) + expect(res.body.pattern.design).to.equal('aaron') + done() + }) + }) + + it(`${store.icon('person', auth)} Should not update the person field (${auth})`, (done) => { + chai + .request(config.api) + .put(`/patterns/${store.account.patterns[auth].id}/${auth}`) + .set( + 'Authorization', + auth === 'jwt' + ? 'Bearer ' + store.account.token + : 'Basic ' + + new Buffer(`${store.account.apikey.key}:${store.account.apikey.secret}`).toString( + 'base64' + ) + ) + .send({ person: 1 }) + .end((err, res) => { + expect(err === null).to.equal(true) + expect(res.status).to.equal(200) + expect(res.body.result).to.equal(`success`) + expect(res.body.pattern.personId).to.equal(store.account.people.her.id) + done() + }) + }) + + for (const field of ['data', 'settings']) { + it(`${store.icon('person', auth)} Should update the ${field} field (${auth})`, (done) => { + const data = {} + data[field] = { test: { value: 'hello' } } + chai + .request(config.api) + .put(`/patterns/${store.account.patterns[auth].id}/${auth}`) + .set( + 'Authorization', + auth === 'jwt' + ? 'Bearer ' + store.account.token + : 'Basic ' + + new Buffer( + `${store.account.apikey.key}:${store.account.apikey.secret}` + ).toString('base64') + ) + .send(data) + .end((err, res) => { + expect(err === null).to.equal(true) + expect(res.status).to.equal(200) + expect(res.body.result).to.equal(`success`) + expect(res.body.pattern[field].test.value).to.equal('hello') + done() + }) + }) + } + + it(`${store.icon('pattern', auth)} Should read a pattern (${auth})`, (done) => { + chai + .request(config.api) + .get(`/patterns/${store.account.patterns[auth].id}/${auth}`) + .set( + 'Authorization', + auth === 'jwt' + ? 'Bearer ' + store.account.token + : 'Basic ' + + new Buffer(`${store.account.apikey.key}:${store.account.apikey.secret}`).toString( + 'base64' + ) + ) + .end((err, res) => { + expect(err === null).to.equal(true) + expect(res.status).to.equal(200) + expect(res.body.result).to.equal(`success`) + expect(res.body.pattern.data.test.value).to.equal('hello') + done() + }) + }) + + it(`${store.icon( + 'person', + auth + )} Should not allow reading another user's pattern (${auth})`, (done) => { + chai + .request(config.api) + .get(`/patterns/${store.account.patterns[auth].id}/${auth}`) + .set( + 'Authorization', + auth === 'jwt' + ? 'Bearer ' + store.altaccount.token + : 'Basic ' + + new Buffer( + `${store.altaccount.apikey.key}:${store.altaccount.apikey.secret}` + ).toString('base64') + ) + .end((err, res) => { + expect(err === null).to.equal(true) + expect(res.status).to.equal(403) + expect(res.body.result).to.equal(`error`) + expect(res.body.error).to.equal(`insufficientAccessLevel`) + done() + }) + }) + + it(`${store.icon( + 'person', + auth + )} Should not allow updating another user's pattern (${auth})`, (done) => { + chai + .request(config.api) + .put(`/patterns/${store.account.patterns[auth].id}/${auth}`) + .set( + 'Authorization', + auth === 'jwt' + ? 'Bearer ' + store.altaccount.token + : 'Basic ' + + new Buffer( + `${store.altaccount.apikey.key}:${store.altaccount.apikey.secret}` + ).toString('base64') + ) + .send({ + name: 'I have been taken over', + }) + .end((err, res) => { + expect(err === null).to.equal(true) + expect(res.status).to.equal(403) + expect(res.body.result).to.equal(`error`) + expect(res.body.error).to.equal(`insufficientAccessLevel`) + done() + }) + }) + + it(`${store.icon( + 'person', + auth + )} Should not allow removing another user's pattern (${auth})`, (done) => { + chai + .request(config.api) + .delete(`/patterns/${store.account.patterns[auth].id}/${auth}`) + .set( + 'Authorization', + auth === 'jwt' + ? 'Bearer ' + store.altaccount.token + : 'Basic ' + + new Buffer( + `${store.altaccount.apikey.key}:${store.altaccount.apikey.secret}` + ).toString('base64') + ) + .end((err, res) => { + expect(err === null).to.equal(true) + expect(res.status).to.equal(403) + expect(res.body.result).to.equal(`error`) + expect(res.body.error).to.equal(`insufficientAccessLevel`) + done() + }) + }) + + /* + it(`${store.icon('person', auth)} Should clone a person (${auth})`, (done) => { + chai + .request(config.api) + .post(`/people/${store.person[auth].id}/clone/${auth}`) + .set( + 'Authorization', + auth === 'jwt' + ? 'Bearer ' + store.account.token + : 'Basic ' + + new Buffer(`${store.account.apikey.key}:${store.account.apikey.secret}`).toString( + 'base64' + ) + ) + .end((err, res) => { + expect(err === null).to.equal(true) + expect(res.status).to.equal(200) + expect(res.body.result).to.equal(`success`) + expect(typeof res.body.error).to.equal(`undefined`) + expect(typeof res.body.person.id).to.equal(`number`) + done() + }) + }) + + it(`${store.icon( + 'person', + auth + )} Should (not) clone a public person across accounts (${auth})`, (done) => { + chai + .request(config.api) + .post(`/people/${store.person[auth].id}/clone/${auth}`) + .set( + 'Authorization', + auth === 'jwt' + ? 'Bearer ' + store.altaccount.token + : 'Basic ' + + new Buffer( + `${store.altaccount.apikey.key}:${store.altaccount.apikey.secret}` + ).toString('base64') + ) + .end((err, res) => { + if (store.person[auth].public) { + expect(err === null).to.equal(true) + expect(res.status).to.equal(200) + expect(res.body.result).to.equal(`success`) + expect(typeof res.body.error).to.equal(`undefined`) + expect(typeof res.body.person.id).to.equal(`number`) + } else { + expect(err === null).to.equal(true) + expect(res.status).to.equal(403) + expect(res.body.result).to.equal(`error`) + expect(res.body.error).to.equal(`insufficientAccessLevel`) + } + done() + }) + }) + + // TODO: + // - Clone person + // - Clone person accross accounts of they are public + */ + }) + } +} diff --git a/sites/backend/tests/shared.mjs b/sites/backend/tests/shared.mjs index 463469d381e..ae9cd0f093c 100644 --- a/sites/backend/tests/shared.mjs +++ b/sites/backend/tests/shared.mjs @@ -4,12 +4,17 @@ import chai from 'chai' import http from 'chai-http' import { verifyConfig } from '../src/config.mjs' import { randomString } from '../src/utils/crypto.mjs' +import { + cisFemaleAdult34 as her, + cisMaleAdult42 as him, +} from '../../../packages/models/src/index.mjs' dotenv.config() const config = verifyConfig(true) const expect = chai.expect chai.use(http) +const people = { her, him } export const setup = async () => { // Initial store contents @@ -21,17 +26,20 @@ export const setup = async () => { email: `test_${randomString()}@${config.tests.domain}`, language: 'en', password: randomString(), + people: {}, }, altaccount: { email: `test_${randomString()}@${config.tests.domain}`, language: 'en', password: randomString(), + people: {}, }, icons: { user: 'πŸ§‘ ', jwt: '🎫 ', key: '🎟️ ', person: 'πŸ§• ', + pattern: 'πŸ‘• ', }, randomString, } @@ -63,12 +71,12 @@ export const setup = async () => { } store[acc].token = result.data.token store[acc].username = result.data.account.username - store[acc].userid = result.data.account.id + store[acc].id = result.data.account.id // Create API key try { result = await axios.post( - `${store.config.api}/apikey/jwt`, + `${store.config.api}/apikeys/jwt`, { name: 'Test API key', level: 4, @@ -85,6 +93,29 @@ export const setup = async () => { process.exit() } store[acc].apikey = result.data.apikey + + // Create people key + for (const name in people) { + try { + result = await axios.post( + `${store.config.api}/people/jwt`, + { + name: `This is ${name} name`, + name: `These are ${name} notes`, + measies: people[name], + }, + { + headers: { + authorization: `Bearer ${store[acc].token}`, + }, + } + ) + } catch (err) { + console.log('Failed at API key creation request', err) + process.exit() + } + store[acc].people[name] = result.data.person + } } return { chai, config, expect, store } diff --git a/sites/backend/tests/user.mjs b/sites/backend/tests/user.mjs index 253d583d30d..e3a259a322e 100644 --- a/sites/backend/tests/user.mjs +++ b/sites/backend/tests/user.mjs @@ -184,12 +184,12 @@ export const userTests = async (chai, config, expect, store) => { }) }) - step(`${store.icon('user')} Should login with userid and password`, (done) => { + step(`${store.icon('user')} Should login with id and password`, (done) => { chai .request(config.api) .post('/login') .send({ - username: store.account.userid, + username: store.account.id, password: store.account.password, }) .end((err, res) => { diff --git a/sites/shared/config/next.mjs b/sites/shared/config/next.mjs index b618d91ec04..18f1793cad1 100644 --- a/sites/shared/config/next.mjs +++ b/sites/shared/config/next.mjs @@ -11,14 +11,13 @@ import { designs, plugins } from '../../../config/software/index.mjs' * srcPkgs: Array of folders in the monorepo/packages that should be aliased * so they are loaded from source, rather than from a compiled bundle */ -const config = (site, remarkPlugins=[]) => ({ +const config = (site, remarkPlugins = []) => ({ experimental: { externalDir: true, }, - pageExtensions: [ 'js', 'md', 'mjs' ], + pageExtensions: ['js', 'md', 'mjs'], webpack: (config, options) => { - - // Fixes npm packages that depend on node modules + // Fixes npm packages that depend on node modules if (!options.isServer) { config.resolve.fallback.fs = false config.resolve.fallback.path = false @@ -34,35 +33,30 @@ const config = (site, remarkPlugins=[]) => ({ loader: '@mdx-js/loader', //providerImportSource: '@mdx-js/react', options: { - remarkPlugins: [ - remarkGfm, - ...remarkPlugins, - ] - } - } - ] + remarkPlugins: [remarkGfm, ...remarkPlugins], + }, + }, + ], }) // YAML support config.module.rules.push({ test: /\.ya?ml$/, - use: 'yaml-loader' + use: 'yaml-loader', }) // Fix for nextjs bug #17806 config.module.rules.push({ test: /index.mjs$/, - type: "javascript/auto", + type: 'javascript/auto', resolve: { - fullySpecified: false - } + fullySpecified: false, + }, }) // Suppress warnings about importing version from package.json // We'll deal with it in v3 of FreeSewing - config.ignoreWarnings = [ - /only default export is available soon/ - ] + config.ignoreWarnings = [/only default export is available soon/] // Aliases config.resolve.alias.shared = path.resolve('../shared/') @@ -75,19 +69,25 @@ const config = (site, remarkPlugins=[]) => ({ // Load designs from source, rather than compiled package for (const design in designs) { - config.resolve.alias[`@freesewing/${design}$`] = path.resolve(`../../designs/${design}/src/index.mjs`) + config.resolve.alias[`@freesewing/${design}$`] = path.resolve( + `../../designs/${design}/src/index.mjs` + ) } // Load plugins from source, rather than compiled package for (const plugin in plugins) { - config.resolve.alias[`@freesewing/${plugin}$`] = path.resolve(`../../plugins/${plugin}/src/index.mjs`) + config.resolve.alias[`@freesewing/${plugin}$`] = path.resolve( + `../../plugins/${plugin}/src/index.mjs` + ) } // Load these from source, rather than compiled package - for (const pkg of ['core', 'config-helpers', 'i18n', 'models']) { - config.resolve.alias[`@freesewing/${pkg}$`] = path.resolve(`../../packages/${pkg}/src/index.mjs`) + for (const pkg of ['core', 'i18n', 'models', 'snapseries']) { + config.resolve.alias[`@freesewing/${pkg}$`] = path.resolve( + `../../packages/${pkg}/src/index.mjs` + ) } return config - } + }, }) export default config diff --git a/tests/designs/drafting.mjs b/tests/designs/drafting.mjs index 241c5382c40..a4fd713fd55 100644 --- a/tests/designs/drafting.mjs +++ b/tests/designs/drafting.mjs @@ -4,6 +4,7 @@ import chai from 'chai' import { timingPlugin } from '@freesewing/plugin-timing' const expect = chai.expect +const ciTimeout = 10000 /* * This runs unit tests for pattern drafting @@ -39,7 +40,7 @@ export const testPatternDrafting = (Pattern, log = false) => { */ if (family !== 'utilities') { describe('Draft for humans:', function () { - this.timeout(5000) + this.timeout(ciTimeout) for (const type of ['cisFemale', 'cisMale']) { describe(type, () => { for (const size in adult[type]) { @@ -62,7 +63,7 @@ export const testPatternDrafting = (Pattern, log = false) => { const fams = { doll, giant } for (const family of ['doll', 'giant']) { describe(`Draft for ${family}:`, function () { - this.timeout(5000) + this.timeout(ciTimeout) for (const type of ['cisFemale', 'cisMale']) { describe(type, () => { for (const size in fams[family][type]) { diff --git a/tests/reporters/terse.js b/tests/reporters/terse.js index ad7799e7289..17adff765db 100644 --- a/tests/reporters/terse.js +++ b/tests/reporters/terse.js @@ -6,6 +6,7 @@ class TerseReporter { constructor(runner) { runner.on(EVENT_TEST_FAIL, (test, err) => { console.log(` FAIL: ${test.fullTitle()}`) + console.log(err) }) } } diff --git a/yarn.lock b/yarn.lock index c15f95405a8..e1690b16084 100644 --- a/yarn.lock +++ b/yarn.lock @@ -182,55 +182,6 @@ "@aws-sdk/types" "3.200.0" tslib "^2.3.1" -"@aws-sdk/abort-controller@3.208.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/abort-controller/-/abort-controller-3.208.0.tgz#a8cd5c59d2b95c51f11e420858029bcc54af786f" - integrity sha512-mQkDR+8VLCafg9KI4TgftftBOL170ricyb+HgV8n5jLDrEG+TfOfud8e6us2lIFESEuMpohC+/8yIcf6JjKkMg== - dependencies: - "@aws-sdk/types" "3.208.0" - tslib "^2.3.1" - -"@aws-sdk/client-cognito-identity@3.209.0": - version "3.209.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-cognito-identity/-/client-cognito-identity-3.209.0.tgz#531b9cecea275f9a82671b78b4f1f660d743b1a7" - integrity sha512-u7lqFKi2PXC/LZzBEBCczlF78/bclv5Gndy4AWxNBdDBbJyuQrE+hk+IIwQQznCeFfgFOhpQMcWFPZH3tSH/qQ== - dependencies: - "@aws-crypto/sha256-browser" "2.0.0" - "@aws-crypto/sha256-js" "2.0.0" - "@aws-sdk/client-sts" "3.209.0" - "@aws-sdk/config-resolver" "3.209.0" - "@aws-sdk/credential-provider-node" "3.209.0" - "@aws-sdk/fetch-http-handler" "3.208.0" - "@aws-sdk/hash-node" "3.208.0" - "@aws-sdk/invalid-dependency" "3.208.0" - "@aws-sdk/middleware-content-length" "3.208.0" - "@aws-sdk/middleware-endpoint" "3.208.0" - "@aws-sdk/middleware-host-header" "3.208.0" - "@aws-sdk/middleware-logger" "3.208.0" - "@aws-sdk/middleware-recursion-detection" "3.208.0" - "@aws-sdk/middleware-retry" "3.209.0" - "@aws-sdk/middleware-serde" "3.208.0" - "@aws-sdk/middleware-signing" "3.208.0" - "@aws-sdk/middleware-stack" "3.208.0" - "@aws-sdk/middleware-user-agent" "3.208.0" - "@aws-sdk/node-config-provider" "3.209.0" - "@aws-sdk/node-http-handler" "3.208.0" - "@aws-sdk/protocol-http" "3.208.0" - "@aws-sdk/smithy-client" "3.209.0" - "@aws-sdk/types" "3.208.0" - "@aws-sdk/url-parser" "3.208.0" - "@aws-sdk/util-base64" "3.208.0" - "@aws-sdk/util-body-length-browser" "3.188.0" - "@aws-sdk/util-body-length-node" "3.208.0" - "@aws-sdk/util-defaults-mode-browser" "3.209.0" - "@aws-sdk/util-defaults-mode-node" "3.209.0" - "@aws-sdk/util-endpoints" "3.209.0" - "@aws-sdk/util-user-agent-browser" "3.208.0" - "@aws-sdk/util-user-agent-node" "3.209.0" - "@aws-sdk/util-utf8-browser" "3.188.0" - "@aws-sdk/util-utf8-node" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/client-sesv2@^3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/client-sesv2/-/client-sesv2-3.200.0.tgz#bb8ae5d750a9394232e41bd8c1097557828ea0eb" @@ -273,44 +224,6 @@ "@aws-sdk/util-utf8-node" "3.199.0" tslib "^2.3.1" -"@aws-sdk/client-sso-oidc@3.209.0": - version "3.209.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.209.0.tgz#45a353b99adf00f177b47cf5559b06769a2d2506" - integrity sha512-KSmT181IcE32lqoZsS0h400qiL/BSQ84DS1iPOqP0NkLcgnvmOkKygVpYjTql2xSUWLQBwPNFihYJ+jmAj3HtQ== - dependencies: - "@aws-crypto/sha256-browser" "2.0.0" - "@aws-crypto/sha256-js" "2.0.0" - "@aws-sdk/config-resolver" "3.209.0" - "@aws-sdk/fetch-http-handler" "3.208.0" - "@aws-sdk/hash-node" "3.208.0" - "@aws-sdk/invalid-dependency" "3.208.0" - "@aws-sdk/middleware-content-length" "3.208.0" - "@aws-sdk/middleware-endpoint" "3.208.0" - "@aws-sdk/middleware-host-header" "3.208.0" - "@aws-sdk/middleware-logger" "3.208.0" - "@aws-sdk/middleware-recursion-detection" "3.208.0" - "@aws-sdk/middleware-retry" "3.209.0" - "@aws-sdk/middleware-serde" "3.208.0" - "@aws-sdk/middleware-stack" "3.208.0" - "@aws-sdk/middleware-user-agent" "3.208.0" - "@aws-sdk/node-config-provider" "3.209.0" - "@aws-sdk/node-http-handler" "3.208.0" - "@aws-sdk/protocol-http" "3.208.0" - "@aws-sdk/smithy-client" "3.209.0" - "@aws-sdk/types" "3.208.0" - "@aws-sdk/url-parser" "3.208.0" - "@aws-sdk/util-base64" "3.208.0" - "@aws-sdk/util-body-length-browser" "3.188.0" - "@aws-sdk/util-body-length-node" "3.208.0" - "@aws-sdk/util-defaults-mode-browser" "3.209.0" - "@aws-sdk/util-defaults-mode-node" "3.209.0" - "@aws-sdk/util-endpoints" "3.209.0" - "@aws-sdk/util-user-agent-browser" "3.208.0" - "@aws-sdk/util-user-agent-node" "3.209.0" - "@aws-sdk/util-utf8-browser" "3.188.0" - "@aws-sdk/util-utf8-node" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/client-sso@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.200.0.tgz#e1f73587642747f7a847ba4fd4347e8f313ad5c5" @@ -350,44 +263,6 @@ "@aws-sdk/util-utf8-node" "3.199.0" tslib "^2.3.1" -"@aws-sdk/client-sso@3.209.0": - version "3.209.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.209.0.tgz#61c6067842cb0af863d5cae5ef8e1c85cd67d3fd" - integrity sha512-rh9QktLCOVTbvDzCb0ikSe4Q1I35Wxcx5XZ7k1J+2ze54FOBfCr3vOwcQpo5tpYWEe1Ysbt3gvA8RAqj9oDFdw== - dependencies: - "@aws-crypto/sha256-browser" "2.0.0" - "@aws-crypto/sha256-js" "2.0.0" - "@aws-sdk/config-resolver" "3.209.0" - "@aws-sdk/fetch-http-handler" "3.208.0" - "@aws-sdk/hash-node" "3.208.0" - "@aws-sdk/invalid-dependency" "3.208.0" - "@aws-sdk/middleware-content-length" "3.208.0" - "@aws-sdk/middleware-endpoint" "3.208.0" - "@aws-sdk/middleware-host-header" "3.208.0" - "@aws-sdk/middleware-logger" "3.208.0" - "@aws-sdk/middleware-recursion-detection" "3.208.0" - "@aws-sdk/middleware-retry" "3.209.0" - "@aws-sdk/middleware-serde" "3.208.0" - "@aws-sdk/middleware-stack" "3.208.0" - "@aws-sdk/middleware-user-agent" "3.208.0" - "@aws-sdk/node-config-provider" "3.209.0" - "@aws-sdk/node-http-handler" "3.208.0" - "@aws-sdk/protocol-http" "3.208.0" - "@aws-sdk/smithy-client" "3.209.0" - "@aws-sdk/types" "3.208.0" - "@aws-sdk/url-parser" "3.208.0" - "@aws-sdk/util-base64" "3.208.0" - "@aws-sdk/util-body-length-browser" "3.188.0" - "@aws-sdk/util-body-length-node" "3.208.0" - "@aws-sdk/util-defaults-mode-browser" "3.209.0" - "@aws-sdk/util-defaults-mode-node" "3.209.0" - "@aws-sdk/util-endpoints" "3.209.0" - "@aws-sdk/util-user-agent-browser" "3.208.0" - "@aws-sdk/util-user-agent-node" "3.209.0" - "@aws-sdk/util-utf8-browser" "3.188.0" - "@aws-sdk/util-utf8-node" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/client-sts@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.200.0.tgz#6f6bbf4dcdd6caac3312be48e336a4565f9cbce9" @@ -431,48 +306,6 @@ fast-xml-parser "4.0.11" tslib "^2.3.1" -"@aws-sdk/client-sts@3.209.0": - version "3.209.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.209.0.tgz#bda5bc27a1df1db9a2cfc056d9bb8bd2ff815a86" - integrity sha512-zWlM+9/JbshEgrG79KZlqYusUziKiKqe8vRlvQ9wcuEHNbQnAri4UvObEKik+7YpTBeP3mR+US1T71G0PqJByw== - dependencies: - "@aws-crypto/sha256-browser" "2.0.0" - "@aws-crypto/sha256-js" "2.0.0" - "@aws-sdk/config-resolver" "3.209.0" - "@aws-sdk/credential-provider-node" "3.209.0" - "@aws-sdk/fetch-http-handler" "3.208.0" - "@aws-sdk/hash-node" "3.208.0" - "@aws-sdk/invalid-dependency" "3.208.0" - "@aws-sdk/middleware-content-length" "3.208.0" - "@aws-sdk/middleware-endpoint" "3.208.0" - "@aws-sdk/middleware-host-header" "3.208.0" - "@aws-sdk/middleware-logger" "3.208.0" - "@aws-sdk/middleware-recursion-detection" "3.208.0" - "@aws-sdk/middleware-retry" "3.209.0" - "@aws-sdk/middleware-sdk-sts" "3.208.0" - "@aws-sdk/middleware-serde" "3.208.0" - "@aws-sdk/middleware-signing" "3.208.0" - "@aws-sdk/middleware-stack" "3.208.0" - "@aws-sdk/middleware-user-agent" "3.208.0" - "@aws-sdk/node-config-provider" "3.209.0" - "@aws-sdk/node-http-handler" "3.208.0" - "@aws-sdk/protocol-http" "3.208.0" - "@aws-sdk/smithy-client" "3.209.0" - "@aws-sdk/types" "3.208.0" - "@aws-sdk/url-parser" "3.208.0" - "@aws-sdk/util-base64" "3.208.0" - "@aws-sdk/util-body-length-browser" "3.188.0" - "@aws-sdk/util-body-length-node" "3.208.0" - "@aws-sdk/util-defaults-mode-browser" "3.209.0" - "@aws-sdk/util-defaults-mode-node" "3.209.0" - "@aws-sdk/util-endpoints" "3.209.0" - "@aws-sdk/util-user-agent-browser" "3.208.0" - "@aws-sdk/util-user-agent-node" "3.209.0" - "@aws-sdk/util-utf8-browser" "3.188.0" - "@aws-sdk/util-utf8-node" "3.208.0" - fast-xml-parser "4.0.11" - tslib "^2.3.1" - "@aws-sdk/config-resolver@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/config-resolver/-/config-resolver-3.200.0.tgz#a08330287d65a505cb748f6241f5fe8af1216bcf" @@ -484,27 +317,6 @@ "@aws-sdk/util-middleware" "3.200.0" tslib "^2.3.1" -"@aws-sdk/config-resolver@3.209.0": - version "3.209.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/config-resolver/-/config-resolver-3.209.0.tgz#88132abc79aa4763e042177595f1f5288b6f3abe" - integrity sha512-wLXI1Jg9xx9wE8vdIfOgSKnoBWbn9j3IvW4+7PnM/nf5xC30/Jp4j+JndEG/BKyDQF7HJQTIeRpSkwKaqJhCRA== - dependencies: - "@aws-sdk/signature-v4" "3.208.0" - "@aws-sdk/types" "3.208.0" - "@aws-sdk/util-config-provider" "3.208.0" - "@aws-sdk/util-middleware" "3.208.0" - tslib "^2.3.1" - -"@aws-sdk/credential-provider-cognito-identity@3.209.0": - version "3.209.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-cognito-identity/-/credential-provider-cognito-identity-3.209.0.tgz#faf92c820962e451f4f75d2abce063c3953a3b0d" - integrity sha512-31OAwgElZlJyPoV0WwerRSIrrlMlbXX6rpoBceHu9m+wACu18P+GwqKjMCjTL04Q+z7zr699pLCLp5lbLYJe3w== - dependencies: - "@aws-sdk/client-cognito-identity" "3.209.0" - "@aws-sdk/property-provider" "3.208.0" - "@aws-sdk/types" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/credential-provider-env@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.200.0.tgz#33cdad45d4f329af7cb2000bfa53fffaa4b4ac1a" @@ -514,15 +326,6 @@ "@aws-sdk/types" "3.200.0" tslib "^2.3.1" -"@aws-sdk/credential-provider-env@3.208.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.208.0.tgz#5bc653ea24acbd1e80ee9e218fde2ecf44af7043" - integrity sha512-FB+KUSpZc03wVTXxGnMmgtaP0sJOv0D7oyogHb7wcf5b7RjjwqoaeUcJHTdKRZaW6e1foLk3/L9uebxiWefDbQ== - dependencies: - "@aws-sdk/property-provider" "3.208.0" - "@aws-sdk/types" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/credential-provider-imds@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.200.0.tgz#20f4287825b03bba73cdbba1f74d7580bdd53178" @@ -534,17 +337,6 @@ "@aws-sdk/url-parser" "3.200.0" tslib "^2.3.1" -"@aws-sdk/credential-provider-imds@3.209.0": - version "3.209.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.209.0.tgz#9ad521de804abdbc8e6c9125b2c7b22d6d5aceb0" - integrity sha512-EjA1nWduIHjALjNF6O2lpKVOoTIlfGHgvqCxjFf7XNqBTTKWCxEflcmUgqXwo9A7TU0mTTyr7nLGMAsNE2CR3w== - dependencies: - "@aws-sdk/node-config-provider" "3.209.0" - "@aws-sdk/property-provider" "3.208.0" - "@aws-sdk/types" "3.208.0" - "@aws-sdk/url-parser" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/credential-provider-ini@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.200.0.tgz#9181521bc3bfb0df89f137502eca94324b82e8d6" @@ -559,20 +351,6 @@ "@aws-sdk/types" "3.200.0" tslib "^2.3.1" -"@aws-sdk/credential-provider-ini@3.209.0": - version "3.209.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.209.0.tgz#8ddb84d63f3db0027b52afe3a2deb2e037eee8ea" - integrity sha512-aszuzkKIg7V+tCcq8RNpr1dAyECXWvJRAvzlmE5ZBYtjHMIX/qVAqSP4sfLNeI/Qagyj7W0TeVA1XVRjkivjYA== - dependencies: - "@aws-sdk/credential-provider-env" "3.208.0" - "@aws-sdk/credential-provider-imds" "3.209.0" - "@aws-sdk/credential-provider-sso" "3.209.0" - "@aws-sdk/credential-provider-web-identity" "3.208.0" - "@aws-sdk/property-provider" "3.208.0" - "@aws-sdk/shared-ini-file-loader" "3.209.0" - "@aws-sdk/types" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/credential-provider-node@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.200.0.tgz#9ba9f133c3e389f34c90133c23cfbb6946e0ac2c" @@ -589,22 +367,6 @@ "@aws-sdk/types" "3.200.0" tslib "^2.3.1" -"@aws-sdk/credential-provider-node@3.209.0": - version "3.209.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.209.0.tgz#f3a9612f6b14f1f0a4ab6a92a11f7a74def2d407" - integrity sha512-R0kV6B+GxbfdSowf/6eeEAHZC6X7P/IxJ/o/gCuMmAOixge0e6AWVgCvrd0cg0togJHWbmoYSuUyqWPIMxM1Yg== - dependencies: - "@aws-sdk/credential-provider-env" "3.208.0" - "@aws-sdk/credential-provider-imds" "3.209.0" - "@aws-sdk/credential-provider-ini" "3.209.0" - "@aws-sdk/credential-provider-process" "3.209.0" - "@aws-sdk/credential-provider-sso" "3.209.0" - "@aws-sdk/credential-provider-web-identity" "3.208.0" - "@aws-sdk/property-provider" "3.208.0" - "@aws-sdk/shared-ini-file-loader" "3.209.0" - "@aws-sdk/types" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/credential-provider-process@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.200.0.tgz#39d6213cdeeb702652006d65129aeab055f2792a" @@ -615,16 +377,6 @@ "@aws-sdk/types" "3.200.0" tslib "^2.3.1" -"@aws-sdk/credential-provider-process@3.209.0": - version "3.209.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.209.0.tgz#6db05007ff8a49b88d602ba3ac329daa5b54d508" - integrity sha512-G0urC5p1kgUfgpK8lncdisSewa8onnoQAVdf2Uh51hOqc7UufGce+ouvLH8J2iMkMaL1MSyu8fqwfZNyDtH37g== - dependencies: - "@aws-sdk/property-provider" "3.208.0" - "@aws-sdk/shared-ini-file-loader" "3.209.0" - "@aws-sdk/types" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/credential-provider-sso@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.200.0.tgz#94f296d5f5851291978b008a30cf4e1c52eedbfb" @@ -636,18 +388,6 @@ "@aws-sdk/types" "3.200.0" tslib "^2.3.1" -"@aws-sdk/credential-provider-sso@3.209.0": - version "3.209.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.209.0.tgz#d8ec04bcd6d201e5913457da9a4e2ca8ad72263c" - integrity sha512-SKzUYOn2EFx58+iU1KihGLtBz9s1jolWUQ6HYxOy4AkWnZVGUt9Vb4mIo6wB07nSSUgYRxOSYn21SKvvBzpc2g== - dependencies: - "@aws-sdk/client-sso" "3.209.0" - "@aws-sdk/property-provider" "3.208.0" - "@aws-sdk/shared-ini-file-loader" "3.209.0" - "@aws-sdk/token-providers" "3.209.0" - "@aws-sdk/types" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/credential-provider-web-identity@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.200.0.tgz#0a42604bf768729dea621ef66c60fef1b4603130" @@ -657,36 +397,6 @@ "@aws-sdk/types" "3.200.0" tslib "^2.3.1" -"@aws-sdk/credential-provider-web-identity@3.208.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.208.0.tgz#f9461bfdb05cd0e8105a877e3420245ca0698430" - integrity sha512-7wtrdEr8uvDr5t0stimrXGsW4G+TQyluZ9OucCCY0HXgNihmnk1BIu+COuOSxRtFXHwCh4rIPaVE1ABG2Mq24g== - dependencies: - "@aws-sdk/property-provider" "3.208.0" - "@aws-sdk/types" "3.208.0" - tslib "^2.3.1" - -"@aws-sdk/credential-providers@^3.186.0": - version "3.209.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-providers/-/credential-providers-3.209.0.tgz#9762fcae45dfb266956750bec5145591979e1dce" - integrity sha512-/oQJwzTedZC5TbQJ2pwHcpbcZS7O1RzP/3+cICw73WrIjlrpS1JGmTCvTGrIfGE8RUk5GKdLN3fjgTpVCS82cA== - dependencies: - "@aws-sdk/client-cognito-identity" "3.209.0" - "@aws-sdk/client-sso" "3.209.0" - "@aws-sdk/client-sts" "3.209.0" - "@aws-sdk/credential-provider-cognito-identity" "3.209.0" - "@aws-sdk/credential-provider-env" "3.208.0" - "@aws-sdk/credential-provider-imds" "3.209.0" - "@aws-sdk/credential-provider-ini" "3.209.0" - "@aws-sdk/credential-provider-node" "3.209.0" - "@aws-sdk/credential-provider-process" "3.209.0" - "@aws-sdk/credential-provider-sso" "3.209.0" - "@aws-sdk/credential-provider-web-identity" "3.208.0" - "@aws-sdk/property-provider" "3.208.0" - "@aws-sdk/shared-ini-file-loader" "3.209.0" - "@aws-sdk/types" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/fetch-http-handler@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.200.0.tgz#2fb111259f24b0d2ff9c7154d0df19dda777cf71" @@ -698,17 +408,6 @@ "@aws-sdk/util-base64-browser" "3.188.0" tslib "^2.3.1" -"@aws-sdk/fetch-http-handler@3.208.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.208.0.tgz#b7d6e46cd6fdb635498a8de12bed6611b0eff6eb" - integrity sha512-GuwkwOeyLKCbSbnFlyHdlKd7u54cnQUI8NfVDAxpZvomY3PV476Tzg8XEyOYE67r5rR6XMqn6IK1PmFAACY+ew== - dependencies: - "@aws-sdk/protocol-http" "3.208.0" - "@aws-sdk/querystring-builder" "3.208.0" - "@aws-sdk/types" "3.208.0" - "@aws-sdk/util-base64" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/hash-node@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/hash-node/-/hash-node-3.200.0.tgz#5da28a727fab8485c7af03b8d8c36fbcd0177099" @@ -718,15 +417,6 @@ "@aws-sdk/util-buffer-from" "3.188.0" tslib "^2.3.1" -"@aws-sdk/hash-node@3.208.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/hash-node/-/hash-node-3.208.0.tgz#5dfeca399e1c6cfc73e1fa37479f4e32dfb42972" - integrity sha512-X5u6nD9+wzaA6qhqbobxsIgiyDJMW8NgqjZgHoc5x1wz4unHUCEuSBZy1kbIZ6+EPZ9bQHQZ21gKgf1j5vhsvQ== - dependencies: - "@aws-sdk/types" "3.208.0" - "@aws-sdk/util-buffer-from" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/invalid-dependency@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/invalid-dependency/-/invalid-dependency-3.200.0.tgz#83347c055c3c62efae7fd655a2c18e5359bec29e" @@ -735,14 +425,6 @@ "@aws-sdk/types" "3.200.0" tslib "^2.3.1" -"@aws-sdk/invalid-dependency@3.208.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/invalid-dependency/-/invalid-dependency-3.208.0.tgz#7efeec2b9cd89c66e2840add2dcd3aa46fd7a665" - integrity sha512-mUpbtijk14KntYy+w5FSvmsfj/Dqa8HylYeCKniKBKkQ1avjEz7CdizVoxyZrR3rldnLE3gItr0FEDRUhtfkAA== - dependencies: - "@aws-sdk/types" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/is-array-buffer@3.188.0": version "3.188.0" resolved "https://registry.yarnpkg.com/@aws-sdk/is-array-buffer/-/is-array-buffer-3.188.0.tgz#2e969b2e799490e3bbd5008554aa346c58e3a9b6" @@ -750,13 +432,6 @@ dependencies: tslib "^2.3.1" -"@aws-sdk/is-array-buffer@3.201.0": - version "3.201.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/is-array-buffer/-/is-array-buffer-3.201.0.tgz#06e557adc284fac2f26071c2944ae01f61b95854" - integrity sha512-UPez5qLh3dNgt0DYnPD/q0mVJY84rA17QE26hVNOW3fAji8W2wrwrxdacWOxyXvlxWsVRcKmr+lay1MDqpAMfg== - dependencies: - tslib "^2.3.1" - "@aws-sdk/middleware-content-length@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-content-length/-/middleware-content-length-3.200.0.tgz#d7e873896b65d2e624104690d9732780091f6654" @@ -766,15 +441,6 @@ "@aws-sdk/types" "3.200.0" tslib "^2.3.1" -"@aws-sdk/middleware-content-length@3.208.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-content-length/-/middleware-content-length-3.208.0.tgz#72a1d85fb8650c230d6a6d2599493fe8c65e2a8b" - integrity sha512-8bLh7lHtmKQQ2fk0fGiP7pcVJglB/dz7Q9OooxFYK+eybqxfIDDUgKphA8AFT5W34tJRh5nhT3QTJ6zrOTQM3w== - dependencies: - "@aws-sdk/protocol-http" "3.208.0" - "@aws-sdk/types" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/middleware-endpoint@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.200.0.tgz#21674c9793b10d22d9fed49ab92f0d7b1bedf4a4" @@ -789,20 +455,6 @@ "@aws-sdk/util-middleware" "3.200.0" tslib "^2.3.1" -"@aws-sdk/middleware-endpoint@3.208.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-endpoint/-/middleware-endpoint-3.208.0.tgz#b4bfeda86cd715d230dbcae81b874831cdab2cf4" - integrity sha512-pVa/cyB6ronfTVAoKUUTFbAPslDPU43DWOKXY/bACC3ys1lFo1CWjz4dLSQARxEEW3iZ1yZTy0zoHXnNrw5CFQ== - dependencies: - "@aws-sdk/middleware-serde" "3.208.0" - "@aws-sdk/protocol-http" "3.208.0" - "@aws-sdk/signature-v4" "3.208.0" - "@aws-sdk/types" "3.208.0" - "@aws-sdk/url-parser" "3.208.0" - "@aws-sdk/util-config-provider" "3.208.0" - "@aws-sdk/util-middleware" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/middleware-host-header@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.200.0.tgz#d83f41616789be1f5e9aaa9cc301ce659b5ccbe8" @@ -812,15 +464,6 @@ "@aws-sdk/types" "3.200.0" tslib "^2.3.1" -"@aws-sdk/middleware-host-header@3.208.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.208.0.tgz#48beb23baae85ecace2963f5eef1df02cee285ba" - integrity sha512-3oyXK81TLWOZ2T/9Ltpbj/Z7R4QWSf+FCQRpY48ND2im/ALkgFRk/tmDTOshv+TQzW1q2lOSEeq4vK6yOCar7g== - dependencies: - "@aws-sdk/protocol-http" "3.208.0" - "@aws-sdk/types" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/middleware-logger@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.200.0.tgz#b47fdfbd3a561b67bfa18da4df15f09be949b28d" @@ -829,14 +472,6 @@ "@aws-sdk/types" "3.200.0" tslib "^2.3.1" -"@aws-sdk/middleware-logger@3.208.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.208.0.tgz#f0c6dcf3d6c686fe0d1abf5fb4d02f4f0ee65373" - integrity sha512-mwSpuWruB8RrgUAAW7w/lvadnMDesl/bZ2IELBgJri+2rIqLGbAtygJBiG0Y3e8/IeOHuKuGkN1rFYZ4SKr7/A== - dependencies: - "@aws-sdk/types" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/middleware-recursion-detection@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.200.0.tgz#0d7ede8f165bfc0cd9ed517044b1653766b5b342" @@ -846,15 +481,6 @@ "@aws-sdk/types" "3.200.0" tslib "^2.3.1" -"@aws-sdk/middleware-recursion-detection@3.208.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.208.0.tgz#210200e409fedf7ae31dc591e2df1839c33d4af3" - integrity sha512-Dgpf5NEOYXvkQuGcbxvDovTh4HwO4ULJReGko67NJjgdZZyFS1fNykVPncxenRpsN9SJBigswYs3lwPVpqijzA== - dependencies: - "@aws-sdk/protocol-http" "3.208.0" - "@aws-sdk/types" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/middleware-retry@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-retry/-/middleware-retry-3.200.0.tgz#c68f4a2ceb4dd97ee99b588b3210317226a6955d" @@ -867,18 +493,6 @@ tslib "^2.3.1" uuid "^8.3.2" -"@aws-sdk/middleware-retry@3.209.0": - version "3.209.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-retry/-/middleware-retry-3.209.0.tgz#7508046a2bd0670b91cc000c84011b004457d9c7" - integrity sha512-PGHbpGw74HxmtqsMEH+xn2oC5/BPdHVyapB66x83n+sywt1ejTiarbQhNs70YzcSsTrJfbhbrFP1V9AzRmMaQA== - dependencies: - "@aws-sdk/protocol-http" "3.208.0" - "@aws-sdk/service-error-classification" "3.208.0" - "@aws-sdk/types" "3.208.0" - "@aws-sdk/util-middleware" "3.208.0" - tslib "^2.3.1" - uuid "^8.3.2" - "@aws-sdk/middleware-sdk-sts@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.200.0.tgz#1e3a4cb4180641fbf1bd981e6c33fcfb721bba0e" @@ -891,18 +505,6 @@ "@aws-sdk/types" "3.200.0" tslib "^2.3.1" -"@aws-sdk/middleware-sdk-sts@3.208.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.208.0.tgz#fd7ea287e944b9fc99a71ca143ea49bd36b6c49b" - integrity sha512-lFVodZHYLF7puXgNZ1m5ycKbyCPp79nqI+pkRXl066ZtZWzCW8+JKCaLjF3jfXlnvg6foPDJdxUvt0VU5EddGg== - dependencies: - "@aws-sdk/middleware-signing" "3.208.0" - "@aws-sdk/property-provider" "3.208.0" - "@aws-sdk/protocol-http" "3.208.0" - "@aws-sdk/signature-v4" "3.208.0" - "@aws-sdk/types" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/middleware-serde@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-serde/-/middleware-serde-3.200.0.tgz#af2745f9655f74b61c05a5abc9e4afe20600e45f" @@ -911,14 +513,6 @@ "@aws-sdk/types" "3.200.0" tslib "^2.3.1" -"@aws-sdk/middleware-serde@3.208.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-serde/-/middleware-serde-3.208.0.tgz#d16474ee3897b1c6cd52979d69cc8b36f490b771" - integrity sha512-3h2yP6qyf/IhfdvyFeNX7w4BF37vOZvfUDBq+wb1QEc7DCAskoUKWtCCKJ9HDq3IJQp8hzqY82eawUir6flqlQ== - dependencies: - "@aws-sdk/types" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/middleware-signing@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.200.0.tgz#4a3216ade75c5fa3188e77bbcfe4e66461205820" @@ -931,18 +525,6 @@ "@aws-sdk/util-middleware" "3.200.0" tslib "^2.3.1" -"@aws-sdk/middleware-signing@3.208.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.208.0.tgz#28e3c45f11d114704a7c78a3cfef8b6e51610126" - integrity sha512-cMSWhg8xOrxZw04EYKEQQQ7RT+03rigS4KS3Uy6x/M+jFyoM+sRiY/7376sJCwlpvKH2xJIVpwPbKk/uz4j4DA== - dependencies: - "@aws-sdk/property-provider" "3.208.0" - "@aws-sdk/protocol-http" "3.208.0" - "@aws-sdk/signature-v4" "3.208.0" - "@aws-sdk/types" "3.208.0" - "@aws-sdk/util-middleware" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/middleware-stack@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-stack/-/middleware-stack-3.200.0.tgz#f3a4a60141824c657e14e0fa04c4886b61b9dfaa" @@ -950,13 +532,6 @@ dependencies: tslib "^2.3.1" -"@aws-sdk/middleware-stack@3.208.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-stack/-/middleware-stack-3.208.0.tgz#8cd5da676db9f58fb5b3f8593aaab334485c413e" - integrity sha512-bvFPUa+RTB7PSRCUsO6bRlEtiEadrDES+dpNmInMNQ9kmbd4OhNOCb664hhtiglIIXX5cd8mSPEo+w/RV0kEEQ== - dependencies: - tslib "^2.3.1" - "@aws-sdk/middleware-user-agent@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.200.0.tgz#67f9e979304d7b1181d13898c5de3a7d6af0e0fa" @@ -966,15 +541,6 @@ "@aws-sdk/types" "3.200.0" tslib "^2.3.1" -"@aws-sdk/middleware-user-agent@3.208.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.208.0.tgz#4fe36f9ced65a487536d23b9679c549b830d7d0d" - integrity sha512-6RNf+TOZpiCy7xUcDSh8ji/x8ht1oAM+qIhm6hsEPLdI1cTvbPZrwowO9Y6L0J68V9OkEgLYiq77KKKYT7QQSw== - dependencies: - "@aws-sdk/protocol-http" "3.208.0" - "@aws-sdk/types" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/node-config-provider@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/node-config-provider/-/node-config-provider-3.200.0.tgz#62c67c67fec660f5860e3b954f00963a9026643b" @@ -985,16 +551,6 @@ "@aws-sdk/types" "3.200.0" tslib "^2.3.1" -"@aws-sdk/node-config-provider@3.209.0": - version "3.209.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/node-config-provider/-/node-config-provider-3.209.0.tgz#c621abfc1816533e5e2013b7943eb86cd1363c0c" - integrity sha512-jNrUn8qTN9BIxHCcLTv2s2h8Riaz4kjwDhubVQNyI0WGZ+PYKATnZjA+Guzbnq2WMzZmwrMIE5GoOiVsPD8xYQ== - dependencies: - "@aws-sdk/property-provider" "3.208.0" - "@aws-sdk/shared-ini-file-loader" "3.209.0" - "@aws-sdk/types" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/node-http-handler@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/node-http-handler/-/node-http-handler-3.200.0.tgz#505bdaa52756ec4e22b6dca8e977eb60fa20b964" @@ -1006,17 +562,6 @@ "@aws-sdk/types" "3.200.0" tslib "^2.3.1" -"@aws-sdk/node-http-handler@3.208.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/node-http-handler/-/node-http-handler-3.208.0.tgz#69fa111ff7064e6891ae78dfc22aef86a57d7d58" - integrity sha512-2t0b9Id7WekluqxQdPugAZhe/wdzW0L53rfMEfDS3R0INNSq1sEfddIfCzJrmfWDCrCOGIDNyxo/w7Ki3NclzQ== - dependencies: - "@aws-sdk/abort-controller" "3.208.0" - "@aws-sdk/protocol-http" "3.208.0" - "@aws-sdk/querystring-builder" "3.208.0" - "@aws-sdk/types" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/property-provider@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/property-provider/-/property-provider-3.200.0.tgz#58f9d21db086480d235d4edea89cd3a3ba37aa70" @@ -1025,14 +570,6 @@ "@aws-sdk/types" "3.200.0" tslib "^2.3.1" -"@aws-sdk/property-provider@3.208.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/property-provider/-/property-provider-3.208.0.tgz#d3b153ee36c92df9000f9c6f9132b70ad50596c2" - integrity sha512-aUhfuwXjZ5TGzLhBstuAMmbnxHXeSGhzoIS8yy465ifgc95p6cHFZf+ZibgwgCMaGrKlTDCia2zwwpKQHN+4cw== - dependencies: - "@aws-sdk/types" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/protocol-http@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/protocol-http/-/protocol-http-3.200.0.tgz#f359a5f8fc9ad4ed6b86022960c8325747027498" @@ -1041,14 +578,6 @@ "@aws-sdk/types" "3.200.0" tslib "^2.3.1" -"@aws-sdk/protocol-http@3.208.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/protocol-http/-/protocol-http-3.208.0.tgz#e58d0cd04978a3ed97b6c165c1fc19ff1437139e" - integrity sha512-Sr9dmaW0Z9X9s16NHZn94efLRpaqLyLqABFPgjqE8cYP6eLX/VrmZGNR62GFVxCiyEEpVxy4Ddk1YkbRwnuonA== - dependencies: - "@aws-sdk/types" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/querystring-builder@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-builder/-/querystring-builder-3.200.0.tgz#e3f03978568abae3a9832aae90b5c5fec2940be5" @@ -1058,15 +587,6 @@ "@aws-sdk/util-uri-escape" "3.188.0" tslib "^2.3.1" -"@aws-sdk/querystring-builder@3.208.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-builder/-/querystring-builder-3.208.0.tgz#fc2dcef63700a39739d540689c2a4b58995133ee" - integrity sha512-1Rpauh5hWlK++KjsHQjHcSN7yE05hj1FVb0HaeLrFIJB5rQYWXK7DpOUhmv5SOmU+q6cIM2kNCrSxH31+WglMw== - dependencies: - "@aws-sdk/types" "3.208.0" - "@aws-sdk/util-uri-escape" "3.201.0" - tslib "^2.3.1" - "@aws-sdk/querystring-parser@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-parser/-/querystring-parser-3.200.0.tgz#5cbe26f00f49a905fc20e25800e5237c305208bd" @@ -1075,24 +595,11 @@ "@aws-sdk/types" "3.200.0" tslib "^2.3.1" -"@aws-sdk/querystring-parser@3.208.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/querystring-parser/-/querystring-parser-3.208.0.tgz#0409561bb71a67b274277e7b57ecde1b07220f9a" - integrity sha512-dVVLdP3il9bJX74/BNBjFn59XrEVBUZ4xSKYH6t7dgSz9uSu8DcT4pPzwaq+/94dVewCW3zq2jVA1iw1rK7JVQ== - dependencies: - "@aws-sdk/types" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/service-error-classification@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/service-error-classification/-/service-error-classification-3.200.0.tgz#a405d41ab9baa003d30da14f716cddbb0cafc9d3" integrity sha512-MFaMIJ/3v3C0XDerJDEfNYEquQXysnKtvuJJJWqPOPXMxCls4u8utyeXv0E6wO8ast6UW5xJKtzqEFRQ3t/+7w== -"@aws-sdk/service-error-classification@3.208.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/service-error-classification/-/service-error-classification-3.208.0.tgz#fb14070c7863f7637fd7ef14afe0df2949e8ec83" - integrity sha512-ZZWV3AOTd8UDcfXCNoQ8v4sHaTgFxGaXWO0NHHgqFbVYr1d+8EXQiOy/v8JsY1jrfoXBWXptTOcioCTeM0xBpw== - "@aws-sdk/shared-ini-file-loader@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.200.0.tgz#4723608ae6175d0bad9f7f754ec5188336652b58" @@ -1101,14 +608,6 @@ "@aws-sdk/types" "3.200.0" tslib "^2.3.1" -"@aws-sdk/shared-ini-file-loader@3.209.0": - version "3.209.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.209.0.tgz#0f8d6ca76516a8fbe37aca4d1b446d914f5f5525" - integrity sha512-hji3B/q3zFuElaUQM/ZZUFbCFBsaVjpWATgiDTnSYP+MShWvvwm/WigeC2aCNos1bs/8HVizOy9cmvK63vLZbw== - dependencies: - "@aws-sdk/types" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/signature-v4@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4/-/signature-v4-3.200.0.tgz#c11f63128207a451a45f3a24652360d972c5239b" @@ -1121,18 +620,6 @@ "@aws-sdk/util-uri-escape" "3.188.0" tslib "^2.3.1" -"@aws-sdk/signature-v4@3.208.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4/-/signature-v4-3.208.0.tgz#61f248b60c5ab34722d17e50af34f0ce7e13c63c" - integrity sha512-+c5A8RsN4Lk3TXFiQ3ZsW7sJ4zYPPmYQ55ITSfjock5hzgM1vW43Mgvjjq6foW5L7SNfdhLH+NrhpgFwSF/GeA== - dependencies: - "@aws-sdk/is-array-buffer" "3.201.0" - "@aws-sdk/types" "3.208.0" - "@aws-sdk/util-hex-encoding" "3.201.0" - "@aws-sdk/util-middleware" "3.208.0" - "@aws-sdk/util-uri-escape" "3.201.0" - tslib "^2.3.1" - "@aws-sdk/smithy-client@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/smithy-client/-/smithy-client-3.200.0.tgz#0ce279a8205e6c08196a1d1801c07321289a0208" @@ -1142,36 +629,11 @@ "@aws-sdk/types" "3.200.0" tslib "^2.3.1" -"@aws-sdk/smithy-client@3.209.0": - version "3.209.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/smithy-client/-/smithy-client-3.209.0.tgz#61ab9ca8396b6ffb36eb4968f284cd214571491d" - integrity sha512-+d9lPAFOu3hZdLfyzMurRU6xZ+eqwKbF6HY7mDL4hGafRb/uw28HBncSwyUk5s7MIND9+RnvY4F/MwBq9wznXg== - dependencies: - "@aws-sdk/middleware-stack" "3.208.0" - "@aws-sdk/types" "3.208.0" - tslib "^2.3.1" - -"@aws-sdk/token-providers@3.209.0": - version "3.209.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.209.0.tgz#fedcc8c7d8587aadd46c922db8c047a1a9b4213a" - integrity sha512-MMtL/yD98SxjejcZYghLN4qhC1TDNeHjnzb+zBcXANxgh5m+QdhERsZkDGU8QiEo+DL6M2HKbwyXu82z89sqnQ== - dependencies: - "@aws-sdk/client-sso-oidc" "3.209.0" - "@aws-sdk/property-provider" "3.208.0" - "@aws-sdk/shared-ini-file-loader" "3.209.0" - "@aws-sdk/types" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/types@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.200.0.tgz#17e4abdc8086253adab0bc64d071f5c032f3624d" integrity sha512-4BfspYfvSwscstd5kUPAABu2rs6OfPZLKKq17frsNt6k3ax2WeHBsp3KIaOmqr0WDQnEBPjJginTB4uVsiSkdA== -"@aws-sdk/types@3.208.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.208.0.tgz#b674c31d6ebd34f970102b96bb128b7c2e28a670" - integrity sha512-5AuOPtY1Hdf4xoEo+voRijl3OnFm8IB+oITXl+SN2iASJv+XPnRNw/QVbIxfGeWgWhmK31F+XdjTYsjT2rx8Qw== - "@aws-sdk/types@^3.1.0", "@aws-sdk/types@^3.110.0": version "3.193.0" resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.193.0.tgz#a2079ccda7312c7ba535b4379c97980141948fd9" @@ -1186,15 +648,6 @@ "@aws-sdk/types" "3.200.0" tslib "^2.3.1" -"@aws-sdk/url-parser@3.208.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/url-parser/-/url-parser-3.208.0.tgz#2af6d80ed1eba61ce3fd73b48f78c1db168e25c3" - integrity sha512-zhU231xkZbUh68Z/TGNRW30MGTZQVigGuMiJU6eOtL2aOulnKqI1Yjs/QejrTtPWsqSihWvxOUZ2cVRPyeOvrA== - dependencies: - "@aws-sdk/querystring-parser" "3.208.0" - "@aws-sdk/types" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/util-base64-browser@3.188.0": version "3.188.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-base64-browser/-/util-base64-browser-3.188.0.tgz#581c85dc157aff88ca81e42d9c79d87c95db8d03" @@ -1210,14 +663,6 @@ "@aws-sdk/util-buffer-from" "3.188.0" tslib "^2.3.1" -"@aws-sdk/util-base64@3.208.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-base64/-/util-base64-3.208.0.tgz#36b430e5396251f761590f7c2f0c5c12193f353c" - integrity sha512-PQniZph5A6N7uuEOQi+1hnMz/FSOK/8kMFyFO+4DgA1dZ5pcKcn5wiFwHkcTb/BsgVqQa3Jx0VHNnvhlS8JyTg== - dependencies: - "@aws-sdk/util-buffer-from" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/util-body-length-browser@3.188.0": version "3.188.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-browser/-/util-body-length-browser-3.188.0.tgz#e1d949318c10a621b38575a9ef01e39f9857ddb0" @@ -1232,13 +677,6 @@ dependencies: tslib "^2.3.1" -"@aws-sdk/util-body-length-node@3.208.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-body-length-node/-/util-body-length-node-3.208.0.tgz#baabd1fa1206ff2bd4ce3785122d86eb3258dd20" - integrity sha512-3zj50e5g7t/MQf53SsuuSf0hEELzMtD8RX8C76f12OSRo2Bca4FLLYHe0TZbxcfQHom8/hOaeZEyTyMogMglqg== - dependencies: - tslib "^2.3.1" - "@aws-sdk/util-buffer-from@3.188.0": version "3.188.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-buffer-from/-/util-buffer-from-3.188.0.tgz#a062ccd990571df4353990e8b78aebec5a14547d" @@ -1247,14 +685,6 @@ "@aws-sdk/is-array-buffer" "3.188.0" tslib "^2.3.1" -"@aws-sdk/util-buffer-from@3.208.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-buffer-from/-/util-buffer-from-3.208.0.tgz#285e86f6dc9030148a4147d65239e75cb254a1b0" - integrity sha512-7L0XUixNEFcLUGPeBF35enCvB9Xl+K6SQsmbrPk1P3mlV9mguWSDQqbOBwY1Ir0OVbD6H/ZOQU7hI/9RtRI0Zw== - dependencies: - "@aws-sdk/is-array-buffer" "3.201.0" - tslib "^2.3.1" - "@aws-sdk/util-config-provider@3.188.0": version "3.188.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-config-provider/-/util-config-provider-3.188.0.tgz#f7a365e6cbfe728c1224f0b39926636619b669e0" @@ -1262,13 +692,6 @@ dependencies: tslib "^2.3.1" -"@aws-sdk/util-config-provider@3.208.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-config-provider/-/util-config-provider-3.208.0.tgz#c485fd83fbac051337e5f6be60ea3f9fa61c0139" - integrity sha512-DSRqwrERUsT34ug+anlMBIFooBEGwM8GejC7q00Y/9IPrQy50KnG5PW2NiTjuLKNi7pdEOlwTSEocJE15eDZIg== - dependencies: - tslib "^2.3.1" - "@aws-sdk/util-defaults-mode-browser@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.200.0.tgz#2ec373bd0f23fe76154ae93bc391d1e92029f9ac" @@ -1279,16 +702,6 @@ bowser "^2.11.0" tslib "^2.3.1" -"@aws-sdk/util-defaults-mode-browser@3.209.0": - version "3.209.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.209.0.tgz#a410b7d59d70cc6c2f8e1cba5f01239793e1cab1" - integrity sha512-c+AlHqsgeDr9+87fS1wfnyVzEH3myt56GvNt0puzIv0QQqfpobMnfN8/Fy0cqMpf1eQNYY4a6lFlkComsXi5dw== - dependencies: - "@aws-sdk/property-provider" "3.208.0" - "@aws-sdk/types" "3.208.0" - bowser "^2.11.0" - tslib "^2.3.1" - "@aws-sdk/util-defaults-mode-node@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.200.0.tgz#fbd15fbdbf3a9b42e894048f08df8220ed5f7dae" @@ -1301,18 +714,6 @@ "@aws-sdk/types" "3.200.0" tslib "^2.3.1" -"@aws-sdk/util-defaults-mode-node@3.209.0": - version "3.209.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.209.0.tgz#515e0b0a1f82d4efc5c462840db323c64458b925" - integrity sha512-RljPVLog6EX052DQjx4XQ95n7ZiAbmn7Vd6YSn1x93U797umaC5CnrT7a/WusTQACtxBDFWcosRgO1ZGDXuRKQ== - dependencies: - "@aws-sdk/config-resolver" "3.209.0" - "@aws-sdk/credential-provider-imds" "3.209.0" - "@aws-sdk/node-config-provider" "3.209.0" - "@aws-sdk/property-provider" "3.208.0" - "@aws-sdk/types" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/util-endpoints@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.200.0.tgz#1aeb36caa803560e4eb31bdacb53efa82a09875e" @@ -1321,14 +722,6 @@ "@aws-sdk/types" "3.200.0" tslib "^2.3.1" -"@aws-sdk/util-endpoints@3.209.0": - version "3.209.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.209.0.tgz#b0a571906767da3273ec022fb0250d7b02d8b40b" - integrity sha512-jwraCtWjQ0P4LyIg4qoQRF94mTUg0zFPmicy4v+Dq1V8BBRf6YWa9B10SoIdGIKQXmQvoyahK5OuH5SWKkY2pw== - dependencies: - "@aws-sdk/types" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/util-hex-encoding@3.188.0": version "3.188.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.188.0.tgz#c2d8b02b952db58acbd5f53718109657c69c460f" @@ -1336,13 +729,6 @@ dependencies: tslib "^2.3.1" -"@aws-sdk/util-hex-encoding@3.201.0": - version "3.201.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.201.0.tgz#21d7ec319240ee68c33d938e71cb79830bea315d" - integrity sha512-7t1vR1pVxKx0motd3X9rI3m/xNp78p3sHtP5yo4NP4ARpxyJ0fokBomY8ScaH2D/B+U5o9ARxldJUdMqyBlJcA== - dependencies: - tslib "^2.3.1" - "@aws-sdk/util-locate-window@^3.0.0": version "3.188.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.188.0.tgz#0bef2b4d932d1401bd78dc1ddd258b14a3652f96" @@ -1357,13 +743,6 @@ dependencies: tslib "^2.3.1" -"@aws-sdk/util-middleware@3.208.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-middleware/-/util-middleware-3.208.0.tgz#e3f13d19042b34c83bb95294d26f125675bf5647" - integrity sha512-oXilrYpXwaPyMw1uNjL1wmR54zeFzIWx2ve1MSMheIYr26deFP3RpMfKkGXwiOvXzZ9pzTcA8shNLhg1frO/zg== - dependencies: - tslib "^2.3.1" - "@aws-sdk/util-uri-escape@3.188.0": version "3.188.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-uri-escape/-/util-uri-escape-3.188.0.tgz#6dbd4322f6cdc3252a75c6f729e1082369c468c0" @@ -1371,13 +750,6 @@ dependencies: tslib "^2.3.1" -"@aws-sdk/util-uri-escape@3.201.0": - version "3.201.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-uri-escape/-/util-uri-escape-3.201.0.tgz#5e708d4cde001a4558ee616f889ceacfadd2ab03" - integrity sha512-TeTWbGx4LU2c5rx0obHeDFeO9HvwYwQtMh1yniBz00pQb6Qt6YVOETVQikRZ+XRQwEyCg/dA375UplIpiy54mA== - dependencies: - tslib "^2.3.1" - "@aws-sdk/util-user-agent-browser@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.200.0.tgz#44b16edfd7c6b340733be4e0167bcb7f531f1657" @@ -1387,15 +759,6 @@ bowser "^2.11.0" tslib "^2.3.1" -"@aws-sdk/util-user-agent-browser@3.208.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.208.0.tgz#cdc629bee35b24598017941e8d9324bd78dd5cb2" - integrity sha512-Z5n9Kg2pBstzzQgRymQRgb4pM0bNPLGQejB3ZmCAphaxvuTBfu2E6KO55h5WwkFHUuh0i5u2wn1BI9R66S8CgQ== - dependencies: - "@aws-sdk/types" "3.208.0" - bowser "^2.11.0" - tslib "^2.3.1" - "@aws-sdk/util-user-agent-node@3.200.0": version "3.200.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.200.0.tgz#2dde7928bdbc1d40a037ad88835854bab4f3dece" @@ -1405,15 +768,6 @@ "@aws-sdk/types" "3.200.0" tslib "^2.3.1" -"@aws-sdk/util-user-agent-node@3.209.0": - version "3.209.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.209.0.tgz#551b016611453139820224aee630e2b39de34f2a" - integrity sha512-lWfvnSX8rckMGaalrKZmBlPW7F0QOviG7XbLffwToN4HnYUyXcZXIE4EzOQzuOvDsOUlos/xLkUj6krdIAApcA== - dependencies: - "@aws-sdk/node-config-provider" "3.209.0" - "@aws-sdk/types" "3.208.0" - tslib "^2.3.1" - "@aws-sdk/util-utf8-browser@3.188.0", "@aws-sdk/util-utf8-browser@^3.0.0": version "3.188.0" resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.188.0.tgz#484762bd600401350e148277731d6744a4a92225" @@ -1429,14 +783,6 @@ "@aws-sdk/util-buffer-from" "3.188.0" tslib "^2.3.1" -"@aws-sdk/util-utf8-node@3.208.0": - version "3.208.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-node/-/util-utf8-node-3.208.0.tgz#eba17de0f92f87b98481c2e2d0ceaa05c7994d67" - integrity sha512-jKY87Acv0yWBdFxx6bveagy5FYjz+dtV8IPT7ay1E2WPWH1czoIdMAkc8tSInK31T6CRnHWkLZ1qYwCbgRfERQ== - dependencies: - "@aws-sdk/util-buffer-from" "3.208.0" - tslib "^2.3.1" - "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" @@ -1454,11 +800,6 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.18.8.tgz#2483f565faca607b8535590e84e7de323f27764d" integrity sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ== -"@babel/compat-data@^7.20.0", "@babel/compat-data@^7.20.1": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.1.tgz#f2e6ef7790d8c8dbf03d379502dcc246dcce0b30" - integrity sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ== - "@babel/core@^7.11.6", "@babel/core@^7.16.7": version "7.19.6" resolved "https://registry.npmjs.org/@babel/core/-/core-7.19.6.tgz#7122ae4f5c5a37c0946c066149abd8e75f81540f" @@ -1480,27 +821,6 @@ json5 "^2.2.1" semver "^6.3.0" -"@babel/core@^7.4.5": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.2.tgz#8dc9b1620a673f92d3624bd926dc49a52cf25b92" - integrity sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g== - dependencies: - "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.2" - "@babel/helper-compilation-targets" "^7.20.0" - "@babel/helper-module-transforms" "^7.20.2" - "@babel/helpers" "^7.20.1" - "@babel/parser" "^7.20.2" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.1" - "@babel/types" "^7.20.2" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.1" - semver "^6.3.0" - "@babel/core@^7.7.5": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.9.tgz#805461f967c77ff46c74ca0460ccf4fe933ddd59" @@ -1549,15 +869,6 @@ "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" -"@babel/generator@^7.20.1", "@babel/generator@^7.20.2": - version "7.20.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.4.tgz#4d9f8f0c30be75fd90a0562099a26e5839602ab8" - integrity sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA== - dependencies: - "@babel/types" "^7.20.2" - "@jridgewell/gen-mapping" "^0.3.2" - jsesc "^2.5.1" - "@babel/helper-annotate-as-pure@^7.16.0", "@babel/helper-annotate-as-pure@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" @@ -1593,16 +904,6 @@ browserslist "^4.20.2" semver "^6.3.0" -"@babel/helper-compilation-targets@^7.20.0": - version "7.20.0" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz#6bf5374d424e1b3922822f1d9bdaa43b1a139d0a" - integrity sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ== - dependencies: - "@babel/compat-data" "^7.20.0" - "@babel/helper-validator-option" "^7.18.6" - browserslist "^4.21.3" - semver "^6.3.0" - "@babel/helper-create-class-features-plugin@^7.18.6": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.9.tgz#d802ee16a64a9e824fcbf0a2ffc92f19d58550ce" @@ -1734,20 +1035,6 @@ "@babel/traverse" "^7.19.6" "@babel/types" "^7.19.4" -"@babel/helper-module-transforms@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz#ac53da669501edd37e658602a21ba14c08748712" - integrity sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-simple-access" "^7.20.2" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.19.1" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.1" - "@babel/types" "^7.20.2" - "@babel/helper-optimise-call-expression@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" @@ -1760,11 +1047,6 @@ resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz#4796bb14961521f0f8715990bee2fb6e51ce21bf" integrity sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw== -"@babel/helper-plugin-utils@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629" - integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== - "@babel/helper-remap-async-to-generator@^7.18.6", "@babel/helper-remap-async-to-generator@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" @@ -1786,17 +1068,6 @@ "@babel/traverse" "^7.18.9" "@babel/types" "^7.18.9" -"@babel/helper-replace-supers@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz#e1592a9b4b368aa6bdb8784a711e0bcbf0612b78" - integrity sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-member-expression-to-functions" "^7.18.9" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/traverse" "^7.19.1" - "@babel/types" "^7.19.0" - "@babel/helper-simple-access@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz#d6d8f51f4ac2978068df934b569f08f29788c7ea" @@ -1811,13 +1082,6 @@ dependencies: "@babel/types" "^7.19.4" -"@babel/helper-simple-access@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" - integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== - dependencies: - "@babel/types" "^7.20.2" - "@babel/helper-skip-transparent-expression-wrappers@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz#778d87b3a758d90b471e7b9918f34a9a02eb5818" @@ -1880,15 +1144,6 @@ "@babel/traverse" "^7.19.4" "@babel/types" "^7.19.4" -"@babel/helpers@^7.20.1": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.1.tgz#2ab7a0fcb0a03b5bf76629196ed63c2d7311f4c9" - integrity sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg== - dependencies: - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.1" - "@babel/types" "^7.20.0" - "@babel/highlight@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" @@ -1913,11 +1168,6 @@ resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.19.6.tgz#b923430cb94f58a7eae8facbffa9efd19130e7f8" integrity sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA== -"@babel/parser@^7.20.1", "@babel/parser@^7.20.2": - version "7.20.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.3.tgz#5358cf62e380cf69efcb87a7bb922ff88bfac6e2" - integrity sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg== - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" @@ -1944,17 +1194,7 @@ "@babel/helper-remap-async-to-generator" "^7.18.9" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-async-generator-functions@^7.20.1": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz#352f02baa5d69f4e7529bdac39aaa02d41146af9" - integrity sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g== - dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/helper-remap-async-to-generator" "^7.18.9" - "@babel/plugin-syntax-async-generators" "^7.8.4" - -"@babel/plugin-proposal-class-properties@^7.10.4", "@babel/plugin-proposal-class-properties@^7.18.6", "@babel/plugin-proposal-class-properties@^7.4.4": +"@babel/plugin-proposal-class-properties@^7.10.4", "@babel/plugin-proposal-class-properties@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== @@ -2030,17 +1270,6 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-transform-parameters" "^7.18.8" -"@babel/plugin-proposal-object-rest-spread@^7.20.2", "@babel/plugin-proposal-object-rest-spread@^7.4.4": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz#a556f59d555f06961df1e572bb5eca864c84022d" - integrity sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ== - dependencies: - "@babel/compat-data" "^7.20.1" - "@babel/helper-compilation-targets" "^7.20.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.20.1" - "@babel/plugin-proposal-optional-catch-binding@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb" @@ -2119,7 +1348,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-import-assertions@^7.18.6", "@babel/plugin-syntax-import-assertions@^7.20.0": +"@babel/plugin-syntax-import-assertions@^7.18.6": version "7.20.0" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz#bb50e0d4bea0957235390641209394e87bdb9cc4" integrity sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ== @@ -2233,13 +1462,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.19.0" -"@babel/plugin-transform-block-scoping@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.2.tgz#f59b1767e6385c663fd0bce655db6ca9c8b236ed" - integrity sha512-y5V15+04ry69OV2wULmwhEA6jwSWXO1TwAtIwiPXcvHcoOQUqpyMVd2bDsQJMW8AurjulIyUV8kDqtjSwHy1uQ== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-transform-classes@^7.19.0": version "7.19.0" resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.19.0.tgz#0e61ec257fba409c41372175e7c1e606dc79bb20" @@ -2255,21 +1477,6 @@ "@babel/helper-split-export-declaration" "^7.18.6" globals "^11.1.0" -"@babel/plugin-transform-classes@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz#c0033cf1916ccf78202d04be4281d161f6709bb2" - integrity sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g== - dependencies: - "@babel/helper-annotate-as-pure" "^7.18.6" - "@babel/helper-compilation-targets" "^7.20.0" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" - "@babel/helper-optimise-call-expression" "^7.18.6" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-replace-supers" "^7.19.1" - "@babel/helper-split-export-declaration" "^7.18.6" - globals "^11.1.0" - "@babel/plugin-transform-computed-properties@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz#2357a8224d402dad623caf6259b611e56aec746e" @@ -2284,13 +1491,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.19.0" -"@babel/plugin-transform-destructuring@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz#c23741cfa44ddd35f5e53896e88c75331b8b2792" - integrity sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8" @@ -2353,14 +1553,6 @@ "@babel/helper-plugin-utils" "^7.18.6" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-amd@^7.19.6": - version "7.19.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz#aca391801ae55d19c4d8d2ebfeaa33df5f2a2cbd" - integrity sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg== - dependencies: - "@babel/helper-module-transforms" "^7.19.6" - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/plugin-transform-modules-commonjs@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz#afd243afba166cca69892e24a8fd8c9f2ca87883" @@ -2371,16 +1563,7 @@ "@babel/helper-simple-access" "^7.18.6" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.19.6", "@babel/plugin-transform-modules-commonjs@^7.4.4": - version "7.19.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz#25b32feef24df8038fc1ec56038917eacb0b730c" - integrity sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ== - dependencies: - "@babel/helper-module-transforms" "^7.19.6" - "@babel/helper-plugin-utils" "^7.19.0" - "@babel/helper-simple-access" "^7.19.4" - -"@babel/plugin-transform-modules-systemjs@^7.19.0", "@babel/plugin-transform-modules-systemjs@^7.19.6": +"@babel/plugin-transform-modules-systemjs@^7.19.0": version "7.19.6" resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz#59e2a84064b5736a4471b1aa7b13d4431d327e0d" integrity sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ== @@ -2428,13 +1611,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-parameters@^7.20.1", "@babel/plugin-transform-parameters@^7.4.4": - version "7.20.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.3.tgz#7b3468d70c3c5b62e46be0a47b6045d8590fb748" - integrity sha512-oZg/Fpx0YDrj13KsLyO8I/CX3Zdw7z0O9qOd95SqcoIzuqy/WTGWvePeHAnZCN54SfdyjHcb1S30gc8zlzlHcA== - dependencies: - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/plugin-transform-property-literals@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3" @@ -2475,7 +1651,7 @@ "@babel/helper-annotate-as-pure" "^7.18.6" "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-regenerator@^7.18.6", "@babel/plugin-transform-regenerator@^7.4.5": +"@babel/plugin-transform-regenerator@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz#585c66cb84d4b4bf72519a34cfce761b8676ca73" integrity sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ== @@ -2490,18 +1666,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-runtime@^7.4.4": - version "7.19.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz#9d2a9dbf4e12644d6f46e5e75bfbf02b5d6e9194" - integrity sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw== - dependencies: - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-plugin-utils" "^7.19.0" - babel-plugin-polyfill-corejs2 "^0.3.3" - babel-plugin-polyfill-corejs3 "^0.6.0" - babel-plugin-polyfill-regenerator "^0.4.1" - semver "^6.3.0" - "@babel/plugin-transform-shorthand-properties@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9" @@ -2643,87 +1807,6 @@ core-js-compat "^3.25.1" semver "^6.3.0" -"@babel/preset-env@^7.4.5": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.20.2.tgz#9b1642aa47bb9f43a86f9630011780dab7f86506" - integrity sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg== - dependencies: - "@babel/compat-data" "^7.20.1" - "@babel/helper-compilation-targets" "^7.20.0" - "@babel/helper-plugin-utils" "^7.20.2" - "@babel/helper-validator-option" "^7.18.6" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9" - "@babel/plugin-proposal-async-generator-functions" "^7.20.1" - "@babel/plugin-proposal-class-properties" "^7.18.6" - "@babel/plugin-proposal-class-static-block" "^7.18.6" - "@babel/plugin-proposal-dynamic-import" "^7.18.6" - "@babel/plugin-proposal-export-namespace-from" "^7.18.9" - "@babel/plugin-proposal-json-strings" "^7.18.6" - "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6" - "@babel/plugin-proposal-numeric-separator" "^7.18.6" - "@babel/plugin-proposal-object-rest-spread" "^7.20.2" - "@babel/plugin-proposal-optional-catch-binding" "^7.18.6" - "@babel/plugin-proposal-optional-chaining" "^7.18.9" - "@babel/plugin-proposal-private-methods" "^7.18.6" - "@babel/plugin-proposal-private-property-in-object" "^7.18.6" - "@babel/plugin-proposal-unicode-property-regex" "^7.18.6" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-import-assertions" "^7.20.0" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" - "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.18.6" - "@babel/plugin-transform-async-to-generator" "^7.18.6" - "@babel/plugin-transform-block-scoped-functions" "^7.18.6" - "@babel/plugin-transform-block-scoping" "^7.20.2" - "@babel/plugin-transform-classes" "^7.20.2" - "@babel/plugin-transform-computed-properties" "^7.18.9" - "@babel/plugin-transform-destructuring" "^7.20.2" - "@babel/plugin-transform-dotall-regex" "^7.18.6" - "@babel/plugin-transform-duplicate-keys" "^7.18.9" - "@babel/plugin-transform-exponentiation-operator" "^7.18.6" - "@babel/plugin-transform-for-of" "^7.18.8" - "@babel/plugin-transform-function-name" "^7.18.9" - "@babel/plugin-transform-literals" "^7.18.9" - "@babel/plugin-transform-member-expression-literals" "^7.18.6" - "@babel/plugin-transform-modules-amd" "^7.19.6" - "@babel/plugin-transform-modules-commonjs" "^7.19.6" - "@babel/plugin-transform-modules-systemjs" "^7.19.6" - "@babel/plugin-transform-modules-umd" "^7.18.6" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.19.1" - "@babel/plugin-transform-new-target" "^7.18.6" - "@babel/plugin-transform-object-super" "^7.18.6" - "@babel/plugin-transform-parameters" "^7.20.1" - "@babel/plugin-transform-property-literals" "^7.18.6" - "@babel/plugin-transform-regenerator" "^7.18.6" - "@babel/plugin-transform-reserved-words" "^7.18.6" - "@babel/plugin-transform-shorthand-properties" "^7.18.6" - "@babel/plugin-transform-spread" "^7.19.0" - "@babel/plugin-transform-sticky-regex" "^7.18.6" - "@babel/plugin-transform-template-literals" "^7.18.9" - "@babel/plugin-transform-typeof-symbol" "^7.18.9" - "@babel/plugin-transform-unicode-escapes" "^7.18.10" - "@babel/plugin-transform-unicode-regex" "^7.18.6" - "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.20.2" - babel-plugin-polyfill-corejs2 "^0.3.3" - babel-plugin-polyfill-corejs3 "^0.6.0" - babel-plugin-polyfill-regenerator "^0.4.1" - core-js-compat "^3.25.1" - semver "^6.3.0" - "@babel/preset-modules@^0.1.5": version "0.1.5" resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.5.tgz#ef939d6e7f268827e1841638dc6ff95515e115d9" @@ -2782,7 +1865,7 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.14.0", "@babel/runtime@^7.4.5": +"@babel/runtime@^7.14.0": version "7.20.1" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.1.tgz#1148bb33ab252b165a06698fde7576092a78b4a9" integrity sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg== @@ -2823,22 +1906,6 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/traverse@^7.19.1", "@babel/traverse@^7.20.1": - version "7.20.1" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.1.tgz#9b15ccbf882f6d107eeeecf263fbcdd208777ec8" - integrity sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.1" - "@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.1" - "@babel/types" "^7.20.0" - debug "^4.1.0" - globals "^11.1.0" - "@babel/traverse@^7.19.4", "@babel/traverse@^7.19.6", "@babel/traverse@^7.4.5": version "7.19.6" resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.6.tgz#7b4c865611df6d99cb131eec2e8ac71656a490dc" @@ -2872,15 +1939,6 @@ "@babel/helper-validator-identifier" "^7.18.6" to-fast-properties "^2.0.0" -"@babel/types@^7.20.0", "@babel/types@^7.20.2": - version "7.20.2" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.2.tgz#67ac09266606190f496322dbaff360fdaa5e7842" - integrity sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog== - dependencies: - "@babel/helper-string-parser" "^7.19.4" - "@babel/helper-validator-identifier" "^7.19.1" - to-fast-properties "^2.0.0" - "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -6122,11 +5180,6 @@ "@types/node" "*" "@types/responselike" "*" -"@types/chai@4": - version "4.3.4" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.4.tgz#e913e8175db8307d78b4e8fa690408ba6b65dee4" - integrity sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw== - "@types/concat-stream@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@types/concat-stream/-/concat-stream-2.0.0.tgz#a716f0ba9015014e643addb351da05a73bef425c" @@ -6146,11 +5199,6 @@ resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d" integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== -"@types/cookiejar@*": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@types/cookiejar/-/cookiejar-2.1.2.tgz#66ad9331f63fe8a3d3d9d8c6e3906dd10f6446e8" - integrity sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog== - "@types/cors@^2.8.12": version "2.8.12" resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" @@ -6503,14 +5551,6 @@ "@types/mime" "^1" "@types/node" "*" -"@types/superagent@^3.8.3": - version "3.8.7" - resolved "https://registry.yarnpkg.com/@types/superagent/-/superagent-3.8.7.tgz#1f1ed44634d5459b3a672eb7235a8e7cfd97704c" - integrity sha512-9KhCkyXv268A2nZ1Wvu7rQWM+BmdYUVkycFeNnYrUL5Zwu7o8wPQ3wBfW59dDP+wuoxw0ww8YKgTNv8j/cgscA== - dependencies: - "@types/cookiejar" "*" - "@types/node" "*" - "@types/supports-color@^8.0.0": version "8.1.1" resolved "https://registry.yarnpkg.com/@types/supports-color/-/supports-color-8.1.1.tgz#1b44b1b096479273adf7f93c75fc4ecc40a61ee4" @@ -6521,11 +5561,6 @@ resolved "https://registry.yarnpkg.com/@types/text-table/-/text-table-0.2.2.tgz#774c90cfcfbc8b4b0ebb00fecbe861dc8b1e8e26" integrity sha512-dGoI5Af7To0R2XE8wJuc6vwlavWARsCh3UKJPjWs1YEqGUqfgBI/j/4GX0yf19/DsDPPf0YAXWAp8psNeIehLg== -"@types/tmp@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@types/tmp/-/tmp-0.2.3.tgz#908bfb113419fd6a42273674c00994d40902c165" - integrity sha512-dDZH/tXzwjutnuk4UacGgFRwV+JSLaXL1ikvidfJprkb7L9Nx1njcRHHmi3Dsvt7pgqqTEeucQuOrWHPFgzVHA== - "@types/unist@*", "@types/unist@^2.0.0", "@types/unist@^2.0.2", "@types/unist@^2.0.3": version "2.0.6" resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.6.tgz#250a7b16c3b91f672a24552ec64678eeb1d3a08d" @@ -6541,19 +5576,6 @@ resolved "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz#0d2501268ad8f9962b740d387c4654f5f8e23e52" integrity sha512-t/Tvs5qR47OLOr+4E9ckN8AmP2Tf16gWq+/qA4iUGS/OOyHVO8wv2vjJuX8SNOUTJyWb+2t7wJm6cXILFnOROA== -"@types/webidl-conversions@*": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@types/webidl-conversions/-/webidl-conversions-7.0.0.tgz#2b8e60e33906459219aa587e9d1a612ae994cfe7" - integrity sha512-xTE1E+YF4aWPJJeUzaZI5DRntlkY3+BCVJi0axFptnjGmAoWxkyREIh/XMrfxVLejwQxMCfDXdICo0VLxThrog== - -"@types/whatwg-url@^8.2.1": - version "8.2.2" - resolved "https://registry.yarnpkg.com/@types/whatwg-url/-/whatwg-url-8.2.2.tgz#749d5b3873e845897ada99be4448041d4cc39e63" - integrity sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA== - dependencies: - "@types/node" "*" - "@types/webidl-conversions" "*" - "@types/yargs-parser@*": version "21.0.0" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" @@ -6716,161 +5738,6 @@ resolve-from "^5.0.0" rollup-pluginutils "^2.8.2" -"@webassemblyjs/ast@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" - integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== - dependencies: - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - -"@webassemblyjs/floating-point-hex-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" - integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== - -"@webassemblyjs/helper-api-error@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" - integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== - -"@webassemblyjs/helper-buffer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" - integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== - -"@webassemblyjs/helper-code-frame@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" - integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== - dependencies: - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/helper-fsm@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" - integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== - -"@webassemblyjs/helper-module-context@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" - integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== - dependencies: - "@webassemblyjs/ast" "1.9.0" - -"@webassemblyjs/helper-wasm-bytecode@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" - integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== - -"@webassemblyjs/helper-wasm-section@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" - integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - -"@webassemblyjs/ieee754@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" - integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== - dependencies: - "@xtuc/ieee754" "^1.2.0" - -"@webassemblyjs/leb128@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" - integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== - dependencies: - "@xtuc/long" "4.2.2" - -"@webassemblyjs/utf8@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" - integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== - -"@webassemblyjs/wasm-edit@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" - integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/helper-wasm-section" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-opt" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - "@webassemblyjs/wast-printer" "1.9.0" - -"@webassemblyjs/wasm-gen@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" - integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wasm-opt@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" - integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-buffer" "1.9.0" - "@webassemblyjs/wasm-gen" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - -"@webassemblyjs/wasm-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" - integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-wasm-bytecode" "1.9.0" - "@webassemblyjs/ieee754" "1.9.0" - "@webassemblyjs/leb128" "1.9.0" - "@webassemblyjs/utf8" "1.9.0" - -"@webassemblyjs/wast-parser@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" - integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/floating-point-hex-parser" "1.9.0" - "@webassemblyjs/helper-api-error" "1.9.0" - "@webassemblyjs/helper-code-frame" "1.9.0" - "@webassemblyjs/helper-fsm" "1.9.0" - "@xtuc/long" "4.2.2" - -"@webassemblyjs/wast-printer@1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" - integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/wast-parser" "1.9.0" - "@xtuc/long" "4.2.2" - -"@xtuc/ieee754@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== - -"@xtuc/long@4.2.2": - version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== - "@yarnpkg/lockfile@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" @@ -6988,7 +5855,7 @@ acorn@^5.0.0: resolved "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== -acorn@^6.0.1, acorn@^6.0.2, acorn@^6.1.1, acorn@^6.4.1: +acorn@^6.0.1, acorn@^6.0.2, acorn@^6.1.1: version "6.4.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== @@ -7040,17 +5907,12 @@ aggregate-error@^4.0.0: clean-stack "^4.0.0" indent-string "^5.0.0" -ajv-errors@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== - ajv-errors@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-3.0.0.tgz#e54f299f3a3d30fe144161e5f0d8d51196c527bc" integrity sha512-V3wD15YHfHz6y0KdhYFjyy9vWtEVALT9UrxfN3zqlI6dMioHnJrqOYfyPKol3oqrnCM9uwkcdCwkJ0WUcbLMTQ== -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: +ajv-keywords@^3.1.0, ajv-keywords@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== @@ -7065,7 +5927,7 @@ ajv@^5.0.0: fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4: +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.12.3, ajv@^6.12.4: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -7156,13 +6018,6 @@ alphanum-sort@^1.0.0: resolved "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" integrity sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ== -ansi-align@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" - integrity sha512-TdlOggdA/zURfMYa7ABC66j+oqfMew58KpJMbUlH3bcZP1b+cBHIHDDn5uH9INsxrHBPjsqM0tDB4jPTF/vgJA== - dependencies: - string-width "^2.0.0" - ansi-align@^3.0.0, ansi-align@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" @@ -7370,11 +6225,6 @@ apr-reduce@^3.0.3: resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== -aproba@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== - archive-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/archive-type/-/archive-type-4.0.0.tgz#f92e72233056dfc6969472749c267bdb046b1d70" @@ -7482,11 +6332,6 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== -array-back@^3.0.1, array-back@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0" - integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== - array-differ@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" @@ -7706,19 +6551,12 @@ async-limiter@~1.0.0: resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== -async-mutex@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/async-mutex/-/async-mutex-0.3.2.tgz#1485eda5bda1b0ec7c8df1ac2e815757ad1831df" - integrity sha512-HuTK7E7MT7jZEh1P9GtRW9+aTWiDWWi9InbZ5hjxrnRa39KS4BW04+xLBhYNS2aXhHUIKZSw3gj4Pn1pj+qGAA== - dependencies: - tslib "^2.3.1" - async-sema@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/async-sema/-/async-sema-3.1.1.tgz#e527c08758a0f8f6f9f15f799a173ff3c40ea808" integrity sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg== -async@^2.1.2, async@^2.4.1, async@^2.6.0, async@^2.6.1: +async@^2.1.2, async@^2.4.1, async@^2.6.0: version "2.6.4" resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== @@ -7864,7 +6702,7 @@ axios@0.21.4: dependencies: follow-redirects "^1.14.0" -axios@1.1.3, axios@^1.0.0, axios@^1.1.2: +axios@^1.0.0, axios@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/axios/-/axios-1.1.3.tgz#8274250dada2edf53814ed7db644b9c2866c1e35" integrity sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA== @@ -7944,22 +6782,6 @@ babel-plugin-syntax-jsx@^6.18.0: resolved "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz#0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946" integrity sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw== -babel-preset-backpack@^0.8.4: - version "0.8.4" - resolved "https://registry.yarnpkg.com/babel-preset-backpack/-/babel-preset-backpack-0.8.4.tgz#52059fa2357a12568b0a6d86e106c4155dedb6c7" - integrity sha512-a5zPQu/AXZVYZryw2WIMY9FOk1lalS+zoKQ8U0eDHOtfKSA75O6el3rqZelsnbkCWMKg78ZK9MpL/xVAF3w1ww== - dependencies: - "@babel/core" "^7.4.5" - "@babel/plugin-proposal-class-properties" "^7.4.4" - "@babel/plugin-proposal-object-rest-spread" "^7.4.4" - "@babel/plugin-transform-modules-commonjs" "^7.4.4" - "@babel/plugin-transform-parameters" "^7.4.4" - "@babel/plugin-transform-regenerator" "^7.4.5" - "@babel/plugin-transform-runtime" "^7.4.4" - "@babel/preset-env" "^7.4.5" - "@babel/runtime" "^7.4.5" - babel-loader "^8.0.6" - babel-runtime@^6.23.0: version "6.26.0" resolved "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" @@ -7975,23 +6797,6 @@ backoff@^2.5.0: dependencies: precond "0.2" -backpack-core@0.8.4: - version "0.8.4" - resolved "https://registry.yarnpkg.com/backpack-core/-/backpack-core-0.8.4.tgz#dfb38d5a2efc27e133e72b9b60b8b41570cb9a6d" - integrity sha512-gHNQ2JXTCyeC4rcwWw1a/q75b+p83gR36R4bS4ZBNfh7WQOHyoEgeJvLYnCdc6qglUNwawbGfENCL1AAJdALJg== - dependencies: - "@babel/core" "^7.4.5" - babel-loader "^8.0.6" - babel-preset-backpack "^0.8.4" - cross-spawn "^6.0.5" - friendly-errors-webpack-plugin "^1.7.0" - json-loader "^0.5.7" - nodemon "^1.19.1" - ramda "^0.26.1" - source-map-support "^0.5.12" - webpack "^4.35.0" - webpack-node-externals "^1.7.2" - bail@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" @@ -8159,11 +6964,6 @@ bl@^5.0.0: inherits "^2.0.4" readable-stream "^3.4.0" -bluebird@^3.5.5: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - blueimp-md5@^2.10.0: version "2.19.0" resolved "https://registry.yarnpkg.com/blueimp-md5/-/blueimp-md5-2.19.0.tgz#b53feea5498dcb53dc6ec4b823adb84b729c4af0" @@ -8225,19 +7025,6 @@ bowser@^2.11.0: resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.11.0.tgz#5ca3c35757a7aa5771500c70a73a9f91ef420a8f" integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA== -boxen@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" - integrity sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw== - dependencies: - ansi-align "^2.0.0" - camelcase "^4.0.0" - chalk "^2.0.1" - cli-boxes "^1.0.0" - string-width "^2.0.0" - term-size "^1.2.0" - widest-line "^2.0.0" - boxen@^5.0.0: version "5.1.2" resolved "https://registry.yarnpkg.com/boxen/-/boxen-5.1.2.tgz#788cb686fc83c1f486dfa8a40c68fc2b831d2b50" @@ -8481,13 +7268,6 @@ bs-snippet-injector@^2.0.1: resolved "https://registry.yarnpkg.com/bs-snippet-injector/-/bs-snippet-injector-2.0.1.tgz#61b5393f11f52559ed120693100343b6edb04dd5" integrity sha512-4u8IgB+L9L+S5hknOj3ddNSb42436gsnGm1AuM15B7CdbkpQTyVWgIM5/JUBiKiRwGOR86uo0Lu/OsX+SAlJmw== -bson@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/bson/-/bson-4.7.0.tgz#7874a60091ffc7a45c5dd2973b5cad7cded9718a" - integrity sha512-VrlEE4vuiO1WTpfof4VmaVolCVYkYTgB9iWgYNOrVlnifpME/06fhFRmONgBhClD5pFC1t9ZWqFUQEQAzY43bA== - dependencies: - buffer "^5.6.0" - buble-jsx-only@^0.19.8: version "0.19.8" resolved "https://registry.yarnpkg.com/buble-jsx-only/-/buble-jsx-only-0.19.8.tgz#6e3524aa0f1c523de32496ac9aceb9cc2b493867" @@ -8519,7 +7299,7 @@ buffer-crc32@^0.2.1, buffer-crc32@^0.2.13, buffer-crc32@~0.2.3: resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== -buffer-equal-constant-time@1.0.1, buffer-equal-constant-time@^1.0.1: +buffer-equal-constant-time@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA== @@ -8548,7 +7328,7 @@ buffer@^4.3.0: ieee754 "^1.1.4" isarray "^1.0.0" -buffer@^5.2.1, buffer@^5.5.0, buffer@^5.6.0: +buffer@^5.2.1, buffer@^5.5.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -8626,27 +7406,6 @@ c8@^7.12.0: yargs "^16.2.0" yargs-parser "^20.2.9" -cacache@^12.0.2: - version "12.0.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" - integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== - dependencies: - bluebird "^3.5.5" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.4" - graceful-fs "^4.1.15" - infer-owner "^1.0.3" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.3" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" - cacache@^16.0.0, cacache@^16.0.6, cacache@^16.1.0: version "16.1.1" resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.1.tgz#4e79fb91d3efffe0630d5ad32db55cc1b870669c" @@ -8849,7 +7608,7 @@ camelcase@^1.0.2: resolved "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" integrity sha512-wzLkDa4K/mzI1OSITC+DUyjgIl/ETNHE9QvYgy6J6Jvqyyz4C0Xfd+lQhb19sX2jMpZV4IssUn0VDVmglV+s4g== -camelcase@^4.0.0, camelcase@^4.1.0: +camelcase@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" integrity sha512-FxAv7HpHrXbh3aPo4o2qxHay2lkLY3x5Mw3KeE4KQE8ysVfziWeRZDwcjauvwBSGEC/nXUPzZy8zeh4HokqOnw== @@ -8859,7 +7618,7 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.0.0, camelcase@^6.2.0, camelcase@^6.3.0: +camelcase@^6.0.0, camelcase@^6.2.0: version "6.3.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== @@ -8934,19 +7693,6 @@ center-align@^0.1.1: align-text "^0.1.3" lazy-cache "^1.0.3" -chai-http@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/chai-http/-/chai-http-4.3.0.tgz#3c37c675c1f4fe685185a307e345de7599337c1a" - integrity sha512-zFTxlN7HLMv+7+SPXZdkd5wUlK+KxH6Q7bIEMiEx0FK3zuuMqL7cwICAQ0V1+yYRozBburYuxN1qZstgHpFZQg== - dependencies: - "@types/chai" "4" - "@types/superagent" "^3.8.3" - cookiejar "^2.1.1" - is-ip "^2.0.0" - methods "^1.1.2" - qs "^6.5.1" - superagent "^3.7.0" - chai-string@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/chai-string/-/chai-string-1.5.0.tgz#0bdb2d8a5f1dbe90bc78ec493c1c1c180dd4d3d2" @@ -8965,28 +7711,6 @@ chai@^4.2.0: pathval "^1.1.1" type-detect "^4.0.5" -chai@^4.3.4: - version "4.3.7" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.7.tgz#ec63f6df01829088e8bf55fca839bcd464a8ec51" - integrity sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A== - dependencies: - assertion-error "^1.1.0" - check-error "^1.0.2" - deep-eql "^4.1.2" - get-func-name "^2.0.0" - loupe "^2.3.1" - pathval "^1.1.1" - type-detect "^4.0.5" - -chalk@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.1.tgz#18c49ab16a037b6eb0152cc83e3471338215b66e" - integrity sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - chalk@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" @@ -9190,21 +7914,11 @@ chownr@^2.0.0: resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== -chrome-trace-event@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" - integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== - chunkd@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/chunkd/-/chunkd-2.0.1.tgz#49cd1d7b06992dc4f7fccd962fe2a101ee7da920" integrity sha512-7d58XsFmOq0j6el67Ug9mHf9ELUXsQXYJBkyxhH/k+6Ke0qXRnv0kbemx+Twc6fRJ07C49lcbdgm9FL1Ei/6SQ== -ci-info@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" - integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== - ci-info@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" @@ -9274,11 +7988,6 @@ clean-yaml-object@^0.1.0: resolved "https://registry.yarnpkg.com/clean-yaml-object/-/clean-yaml-object-0.1.0.tgz#63fb110dc2ce1a84dc21f6d9334876d010ae8b68" integrity sha512-3yONmlN9CSAkzNwnRCiJQ7Q2xK5mWuEfL3PuTZcAUzhObbXsfsnMptJzXwz93nc5zn9V9TwCVMmV7w4xsm43dw== -cli-boxes@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" - integrity sha512-3Fo5wu8Ytle8q9iCzS4D2MWVL2X7JVWRiS1BnXbTFDhS9c/REkM9vd1AmabsoZoY5/dGi5TT9iKL8Kb6DeBRQg== - cli-boxes@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" @@ -9638,16 +8347,6 @@ comma-separated-tokens@^2.0.0: resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.2.tgz#d4c25abb679b7751c880be623c1179780fe1dd98" integrity sha512-G5yTt3KQN4Yn7Yk4ed73hlZ1evrFKXeUW3086p3PRFNp7m2vIjI6Pg+Kgb+oyzhd9F2qdcoj67+y3SdxL5XWsg== -command-line-args@^5.1.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.2.1.tgz#c44c32e437a57d7c51157696893c5909e9cec42e" - integrity sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg== - dependencies: - array-back "^3.1.0" - find-replace "^3.0.0" - lodash.camelcase "^4.3.0" - typical "^4.0.0" - commander@^2.19.0, commander@^2.2.0, commander@^2.20.0, commander@^2.3.0, commander@^2.8.1: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -9686,7 +8385,7 @@ compare-func@^2.0.0: array-ify "^1.0.0" dot-prop "^5.1.0" -component-emitter@^1.2.0, component-emitter@^1.2.1: +component-emitter@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== @@ -9719,16 +8418,6 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -concat-stream@^1.5.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - concat-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz#414cf5af790a48c60ab9be4527d56d5e41133cb1" @@ -9770,18 +8459,6 @@ config-chain@^1.1.11, config-chain@^1.1.12, config-chain@^1.1.13: ini "^1.3.4" proto-list "~1.2.1" -configstore@^3.0.0: - version "3.1.5" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.5.tgz#e9af331fadc14dabd544d3e7e76dc446a09a530f" - integrity sha512-nlOhI4+fdzoK5xmJ+NY+1gZK56bwEaWZr8fYuXohZ9Vkc1o3a4T/R3M+yE/w7x/ZVJ1zF8c+oaOvF0dztdUgmA== - dependencies: - dot-prop "^4.2.1" - graceful-fs "^4.1.2" - make-dir "^1.0.0" - unique-string "^1.0.0" - write-file-atomic "^2.0.0" - xdg-basedir "^3.0.0" - configstore@^5.0.0, configstore@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" @@ -9984,23 +8661,6 @@ cookie@~0.4.1: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== -cookiejar@^2.1.0, cookiejar@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.3.tgz#fc7a6216e408e74414b90230050842dacda75acc" - integrity sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ== - -copy-concurrently@^1.0.0: - version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== - dependencies: - aproba "^1.1.1" - fs-write-stream-atomic "^1.0.8" - iferr "^0.1.5" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.0" - copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" @@ -10060,7 +8720,7 @@ core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== -cors@2.8.5, cors@~2.8.5: +cors@~2.8.5: version "2.8.5" resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== @@ -10150,7 +8810,7 @@ create-ecdh@^4.0.0: bn.js "^4.1.0" elliptic "^6.5.3" -create-error-class@^3.0.0, create-error-class@^3.0.2: +create-error-class@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" integrity sha512-gYTKKexFO3kh200H1Nit76sRwRtOY32vQd3jpAQKpLtZqyNsSQNfI4N7o3eP2wUjV35pTWKRYqFUDBvUha/Pkw== @@ -10223,17 +8883,6 @@ cross-spawn@^5.0.1: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -10598,35 +9247,16 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -data-uri-regex@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/data-uri-regex/-/data-uri-regex-0.1.4.tgz#1e1db6c8397eca8a48ecdb55ad1b927ec0bbac2e" - integrity sha512-QnJ3LVGIitKfO1wZ08l+0cpQUNdEGRDKR0kH2prNvbfBUk0zVn7A6KSTvETGqD2BI1h1CgdqY4X8bEjKu4CdXA== - data-uri-to-buffer@1: version "1.2.0" resolved "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz#77163ea9c20d8641b4707e8f18abdf9a78f34835" integrity sha512-vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ== -data-uri-to-buffer@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636" - integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og== - data-uri-to-buffer@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz#b5db46aea50f6176428ac05b73be39a57701a64b" integrity sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA== -data-uri-to-file@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/data-uri-to-file/-/data-uri-to-file-0.1.8.tgz#1bee84e1f9392cc95cd23e4360382fb62b7f0608" - integrity sha512-yAD0Ym8+l7QNVjRkEjFn463kWUQjv7brA5VshALcy2aTaXEg+gqiZMd4DK2PH8aK9XaDrPaXgebPnQlgvD1Acw== - dependencies: - data-uri-regex "^0.1.4" - mime "^1.3.4" - through2 "^2.0.1" - data-urls@^1.0.1: version "1.1.0" resolved "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" @@ -10668,11 +9298,6 @@ date-time@^3.1.0: dependencies: time-zone "^1.0.0" -dateformat@4.6.3: - version "4.6.3" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5" - integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA== - dateformat@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" @@ -10697,7 +9322,7 @@ debug@2, debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8, debug@^2.6.9: dependencies: ms "2.0.0" -debug@4, debug@4.3.4, debug@4.x, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: +debug@4, debug@4.3.4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -10711,7 +9336,7 @@ debug@4.3.2: dependencies: ms "2.1.2" -debug@^3.1.0, debug@^3.2.6, debug@^3.2.7: +debug@^3.1.0, debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== @@ -10846,13 +9471,6 @@ deep-eql@^3.0.1: dependencies: type-detect "^4.0.0" -deep-eql@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.2.tgz#270ceb902f87724077e6f6449aed81463f42fc1c" - integrity sha512-gT18+YW4CcW/DBNTwAmqTtkJh7f9qqScu2qFVlx7kCoeY9tlBu9cUcr7+I+Z/noG8INehS3xQgLpTtd/QUTn4w== - dependencies: - type-detect "^4.0.0" - deep-equal@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.0.5.tgz#55cd2fe326d83f9cbf7261ef0e060b3f724c5cb9" @@ -10984,11 +9602,6 @@ delegates@^1.0.0: resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== -denque@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1" - integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== - depd@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" @@ -11142,14 +9755,6 @@ dev-ip@^1.0.1: resolved "https://registry.yarnpkg.com/dev-ip/-/dev-ip-1.0.1.tgz#a76a3ed1855be7a012bb8ac16cb80f3c00dc28f0" integrity sha512-LmVkry/oDShEgSZPNgqCIp2/TlqtExeGmymru3uCELnfyjY11IzpAproLYs+1X88fXO6DBoYP3ul2Xo2yz2j6A== -dezalgo@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" - integrity sha512-K7i4zNfT2kgQz3GylDw40ot9GAE47sFZ9EXHFSPP6zONLgH6kWXE0KWJchkbQJLBkRazq4APwZ4OwiFFlT95OQ== - dependencies: - asap "^2.0.0" - wrappy "1" - dezalgo@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.4.tgz#751235260469084c132157dfa857f386d4c33d81" @@ -11355,13 +9960,6 @@ domutils@^3.0.1: domelementtype "^2.3.0" domhandler "^5.0.1" -dot-prop@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.1.tgz#45884194a71fc2cda71cbb4bceb3a4dd2f433ba4" - integrity sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ== - dependencies: - is-obj "^1.0.0" - dot-prop@^5.1.0, dot-prop@^5.2.0: version "5.3.0" resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" @@ -11398,11 +9996,6 @@ dotenv@~10.0.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== -dotty@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/dotty/-/dotty-0.1.2.tgz#512d44cc4111a724931226259297f235e8484f6f" - integrity sha512-V0EWmKeH3DEhMwAZ+8ZB2Ao4OK6p++Z0hsDtZq3N0+0ZMVqkzrcEGROvOnZpLnvBg5PTNG23JEDLAm64gPaotQ== - download@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/download/-/download-8.0.0.tgz#afc0b309730811731aae9f5371c9f46be73e51b1" @@ -11430,7 +10023,7 @@ duplexer@^0.1.1, duplexer@^0.1.2: resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== -duplexify@^3.4.2, duplexify@^3.5.0, duplexify@^3.6.0: +duplexify@^3.5.0, duplexify@^3.6.0: version "3.7.1" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== @@ -11653,15 +10246,6 @@ enhanced-resolve@^3.4.0: object-assign "^4.0.1" tapable "^0.2.7" -enhanced-resolve@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" - integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.5.0" - tapable "^1.0.0" - enquirer@~2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" @@ -11714,7 +10298,7 @@ err-code@^2.0.2: resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== -errno@^0.1.3, errno@~0.1.7: +errno@^0.1.3: version "0.1.8" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== @@ -11728,7 +10312,7 @@ error-ex@^1.2.0, error-ex@^1.3.1, error-ex@^1.3.2: dependencies: is-arrayish "^0.2.1" -error-stack-parser@^2.0.0, error-stack-parser@^2.0.2, error-stack-parser@^2.0.3: +error-stack-parser@^2.0.2, error-stack-parser@^2.0.3: version "2.1.4" resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.1.4.tgz#229cb01cdbfa84440bfa91876285b94680188286" integrity sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ== @@ -12300,14 +10884,6 @@ eslint-scope@5.1.1, eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - eslint-scope@^7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642" @@ -12886,13 +11462,6 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" -fault@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/fault/-/fault-1.0.4.tgz#eafcfc0a6d214fc94601e170df29954a4f842f13" - integrity sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA== - dependencies: - format "^0.2.0" - fault@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/fault/-/fault-2.0.1.tgz#d47ca9f37ca26e4bd38374a7c500b5a384755b6c" @@ -12969,11 +11538,6 @@ fetch-node-website@^5.0.3: got "^10.7.0" jest-validate "^25.3.0" -figgy-pudding@^3.5.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" - integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== - figures@3.2.0, figures@^3.0.0, figures@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" @@ -13148,7 +11712,7 @@ finalhandler@1.2.0: statuses "2.0.1" unpipe "~1.0.0" -find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: +find-cache-dir@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== @@ -13157,7 +11721,7 @@ find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: make-dir "^2.0.0" pkg-dir "^3.0.0" -find-cache-dir@^3.2.0, find-cache-dir@^3.3.1, find-cache-dir@^3.3.2: +find-cache-dir@^3.2.0, find-cache-dir@^3.3.1: version "3.3.2" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== @@ -13173,13 +11737,6 @@ find-config@^1.0.0: dependencies: user-home "^2.0.0" -find-replace@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/find-replace/-/find-replace-3.0.0.tgz#3e7e23d3b05167a76f770c9fbd5258b0def68c38" - integrity sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ== - dependencies: - array-back "^3.0.1" - find-up@5.0.0, find-up@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" @@ -13241,14 +11798,6 @@ flatten@^1.0.2: resolved "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== -flush-write-stream@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" - integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== - dependencies: - inherits "^2.0.3" - readable-stream "^2.3.6" - flush-write-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-2.0.0.tgz#6f58e776154f5eefacff92a6e5a681c88ac50f7c" @@ -13334,15 +11883,6 @@ form-data-encoder@^2.1.2: resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.3.tgz#682cd821a8423605093992ff895e6b2ed5a9d429" integrity sha512-KqU0nnPMgIJcCOFTNJFEA8epcseEaoox4XZffTgy8jlI6pL/5EFyR54NRG7CnCJN0biY7q52DO3MH6/sJ/TKlQ== -form-data@^2.3.1: - version "2.5.1" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" - integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - form-data@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" @@ -13387,21 +11927,6 @@ formdata-polyfill@^4.0.10: dependencies: fetch-blob "^3.1.2" -formidable@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/formidable/-/formidable-2.0.1.tgz#4310bc7965d185536f9565184dee74fbb75557ff" - integrity sha512-rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ== - dependencies: - dezalgo "1.0.3" - hexoid "1.0.0" - once "1.4.0" - qs "6.9.3" - -formidable@^1.2.0: - version "1.2.6" - resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.6.tgz#d2a51d60162bbc9b4a055d8457a7c75315d1a168" - integrity sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ== - forwarded@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" @@ -13459,15 +11984,6 @@ fresh@0.5.2, fresh@^0.5.2: resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== -friendly-errors-webpack-plugin@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.0.tgz#efc86cbb816224565861a1be7a9d84d0aafea136" - integrity sha512-K27M3VK30wVoOarP651zDmb93R9zF28usW4ocaK3mfQeIEI5BPht/EzZs5E8QLLwbLRJQMwscAjDxYPb1FuNiw== - dependencies: - chalk "^1.1.3" - error-stack-parser "^2.0.0" - string-width "^2.0.0" - from2-array@^0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/from2-array/-/from2-array-0.0.4.tgz#eafc16b65f6e2719bcd57fdc1869005ac1332cd6" @@ -13544,16 +12060,6 @@ fs-minipass@^2.0.0, fs-minipass@^2.1.0: dependencies: minipass "^3.0.0" -fs-write-stream-atomic@^1.0.8: - version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" - integrity sha512-gehEzmPn2nAwr39eay+x3X34Ra+M2QlVUTLhkXPjWdeO8RF9kszk116avgBJM3ZyNHgHXBNx+VmPaFC36k0PzA== - dependencies: - graceful-fs "^4.1.2" - iferr "^0.1.5" - imurmurhash "^0.1.4" - readable-stream "1 || 2" - fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -14006,7 +12512,7 @@ glob@7.2.0: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.5, glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.0: +glob@^7.1.1, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.0: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -14037,7 +12543,7 @@ global-cache-dir@^2.0.0: cachedir "^2.3.0" path-exists "^4.0.0" -global-dirs@^0.1.0, global-dirs@^0.1.1: +global-dirs@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" integrity sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg== @@ -14191,23 +12697,6 @@ got@^12.1.0: p-cancelable "^3.0.0" responselike "^3.0.0" -got@^6.7.1: - version "6.7.1" - resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" - integrity sha512-Y/K3EDuiQN9rTZhBvPRWMLXIKdeD1Rj0nzunfoi0Yyn5WBEbzxXKU9Ub2X41oZBagVWOBU3MuDonFMgPWQFnwg== - dependencies: - create-error-class "^3.0.0" - duplexer3 "^0.1.4" - get-stream "^3.0.0" - is-redirect "^1.0.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - lowercase-keys "^1.0.0" - safe-buffer "^5.0.1" - timed-out "^4.0.0" - unzip-response "^2.0.1" - url-parse-lax "^1.0.0" - got@^8.3.1: version "8.3.2" resolved "https://registry.yarnpkg.com/got/-/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937" @@ -14694,11 +13183,6 @@ hex-color-regex@^1.1.0: resolved "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== -hexoid@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hexoid/-/hexoid-1.0.0.tgz#ad10c6573fb907de23d9ec63a711267d9dc9bc18" - integrity sha512-QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g== - hey-listen@^1.0.8: version "1.0.8" resolved "https://registry.npmjs.org/hey-listen/-/hey-listen-1.0.8.tgz#8e59561ff724908de1aa924ed6ecc84a56a9aa68" @@ -15005,7 +13489,7 @@ https-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg== -https-proxy-agent@^5.0.0, https-proxy-agent@^5.0.1: +https-proxy-agent@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== @@ -15088,16 +13572,6 @@ ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -iferr@^0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" - integrity sha512-DUNFN5j7Tln0D+TxzloUjKB+CtVu6myn0JEFak6dG18mNt9YkQ6lzGCdafwofISZ1lLF3xRHJ98VKy9ynkcFaA== - -ignore-by-default@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" - integrity sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA== - ignore-by-default@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-2.1.0.tgz#c0e0de1a99b6065bdc93315a6f728867981464db" @@ -15127,11 +13601,6 @@ ignore@^5.0.0, ignore@^5.0.4, ignore@^5.1.1, ignore@^5.1.4, ignore@^5.2.0: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== -immediate@~3.0.5: - version "3.0.6" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" - integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== - immer@^9.0.6: version "9.0.15" resolved "https://registry.npmjs.org/immer/-/immer-9.0.15.tgz#0b9169e5b1d22137aba7d43f8a81a495dd1b62dc" @@ -15234,7 +13703,7 @@ indexes-of@^1.0.1: resolved "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" integrity sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA== -infer-owner@^1.0.3, infer-owner@^1.0.4: +infer-owner@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== @@ -15439,11 +13908,6 @@ invert-kv@^1.0.0: resolved "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" integrity sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ== -ip-regex@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" - integrity sha512-58yWmlHpp7VYfcdTwMTvwMmqx/Elfxjd9RXTDyMsbL7lLWmhMylLEqiYVLKuLzOZqVgiWXD9MfR62Vv89VRxkw== - ip@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" @@ -15583,13 +14047,6 @@ is-callable@^1.2.7: resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-ci@^1.0.10: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" - integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== - dependencies: - ci-info "^1.5.0" - is-ci@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" @@ -15770,14 +14227,6 @@ is-hotkey@^0.1.6: resolved "https://registry.npmjs.org/is-hotkey/-/is-hotkey-0.1.8.tgz#6b1f4b2d0e5639934e20c05ed24d623a21d36d25" integrity sha512-qs3NZ1INIS+H+yeo7cD9pDfwYV/jqRh1JG9S9zYrNudkoUQg7OL7ziXqRKu+InFjUIDoP2o6HIkLYMh1pcWgyQ== -is-installed-globally@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" - integrity sha512-ERNhMg+i/XgDwPIPF3u24qpajVreaiSuvpb1Uu0jugw7KKcxGyCX8cgp8P5fwTmAuXku6beDHHECdKArjlg7tw== - dependencies: - global-dirs "^0.1.0" - is-path-inside "^1.0.0" - is-installed-globally@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" @@ -15804,13 +14253,6 @@ is-interactive@^2.0.0: resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-2.0.0.tgz#40c57614593826da1100ade6059778d597f16e90" integrity sha512-qP1vozQRI+BMOPcjFzrjXuQvdak2pHNUMZoeG2eRbiSqyvbEf/wQtEOTOX1guk6E3t36RkaqiSt8A/6YElNxLQ== -is-ip@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ip/-/is-ip-2.0.0.tgz#68eea07e8a0a0a94c2d080dd674c731ab2a461ab" - integrity sha512-9MTn0dteHETtyUx8pxqMwg5hMBi3pvlyglJ+b79KOCca0po23337LbVV2Hl4xmMvfw++ljnO0/+5G6G+0Szh6g== - dependencies: - ip-regex "^2.0.0" - is-json@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/is-json/-/is-json-2.0.1.tgz#6be166d144828a131d686891b983df62c39491ff" @@ -15836,11 +14278,6 @@ is-negative-zero@^2.0.2: resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== -is-npm@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" - integrity sha512-9r39FIr3d+KD9SbX0sfMsHzb5PP3uimOiwr3YupUaUFG4W0l1U57Rx3utpttV7qz5U3jmrO5auUa04LU9pyHsg== - is-npm@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" @@ -15877,11 +14314,6 @@ is-number@^7.0.0: resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== -is-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg== - is-obj@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" @@ -15904,13 +14336,6 @@ is-path-cwd@^2.2.0: resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== -is-path-inside@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" - integrity sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g== - dependencies: - path-is-inside "^1.0.1" - is-path-inside@^3.0.1, is-path-inside@^3.0.2, is-path-inside@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" @@ -15958,11 +14383,6 @@ is-promise@^4.0.0: resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-4.0.0.tgz#42ff9f84206c1991d26debf520dd5c01042dd2f3" integrity sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ== -is-redirect@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" - integrity sha512-cr/SlUEe5zOGmzvj9bUyC4LVvkNVAXu4GytXLNMr1pny+a65MpQ9IJzFHD5vi7FyJgb4qt27+eS3TuQnqB+RQw== - is-reference@^1.1.4: version "1.2.1" resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" @@ -15997,7 +14417,7 @@ is-resolvable@^1.0.0: resolved "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== -is-retry-allowed@^1.0.0, is-retry-allowed@^1.1.0: +is-retry-allowed@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== @@ -16028,7 +14448,7 @@ is-ssh@^1.4.0: dependencies: protocols "^2.0.1" -is-stream@^1.0.0, is-stream@^1.1.0: +is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ== @@ -16469,12 +14889,12 @@ json-lexer@^1.1.1: resolved "https://registry.npmjs.org/json-lexer/-/json-lexer-1.2.0.tgz#39107793644a0062b9f9f602e0aaee7e4c92f385" integrity sha512-7otpx5UPFeSELoF8nkZPHCfywg86wOsJV0WNOaysuO7mfWj1QFp2vlqESRRCeJKBXr+tqDgHh4HgqUFKTLcifQ== -json-loader@^0.5.4, json-loader@^0.5.7: +json-loader@^0.5.4: version "0.5.7" resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" integrity sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w== -json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: +json-parse-better-errors@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== @@ -16514,13 +14934,6 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== -json-stable-stringify@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz#e06f23128e0bbe342dc996ed5a19e28b57b580e0" - integrity sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g== - dependencies: - jsonify "^0.0.1" - json-stringify-nice@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz#2c937962b80181d3f317dd39aa323e14f5a60a67" @@ -16586,17 +14999,12 @@ jsonfile@^6.0.1, jsonfile@^6.1.0: optionalDependencies: graceful-fs "^4.1.6" -jsonify@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.1.tgz#2aa3111dae3d34a0f151c63f3a45d995d9420978" - integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== - jsonparse@^1.2.0, jsonparse@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== -jsonwebtoken@8.5.1, jsonwebtoken@^8.2.0, jsonwebtoken@^8.5.1: +jsonwebtoken@^8.5.1: version "8.5.1" resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d" integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== @@ -16630,16 +15038,6 @@ jsprim@^1.2.2: array-includes "^3.1.5" object.assign "^4.1.2" -jszip@3.10.1: - version "3.10.1" - resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.10.1.tgz#34aee70eb18ea1faec2f589208a157d1feb091c2" - integrity sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g== - dependencies: - lie "~3.3.0" - pako "~1.0.2" - readable-stream "~2.3.6" - setimmediate "^1.0.5" - juice@^8.0.0: version "8.1.0" resolved "https://registry.yarnpkg.com/juice/-/juice-8.1.0.tgz#4ea23362522fe06418229943237ee3751a4fca70" @@ -16693,11 +15091,6 @@ jwt-decode@^3.0.0: resolved "https://registry.yarnpkg.com/jwt-decode/-/jwt-decode-3.1.2.tgz#3fb319f3675a2df0c2895c8f5e9fa4b67b04ed59" integrity sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A== -kareem@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/kareem/-/kareem-2.4.1.tgz#7d81ec518204a48c1cb16554af126806c3cd82b0" - integrity sha512-aJ9opVoXroQUPfovYP5kaj2lM7Jn02Gw13bL0lg9v0V7SaUc0qavPs0Eue7d2DcC3NjqI6QAUElXNsuZSeM+EA== - keep-func-props@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/keep-func-props/-/keep-func-props-4.0.1.tgz#3a9ab077a1bcc7f98771fd534940826d44cd5df1" @@ -16794,13 +15187,6 @@ language-tags@^1.0.5: dependencies: language-subtag-registry "~0.3.2" -latest-version@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" - integrity sha512-Be1YRHWWlZaSsrz2U+VInk+tO0EwLIyV+23RhWLINJYwg/UIikxjlj3MhH37/6/EDCAusjajvMkMMUXRaMWl/w== - dependencies: - package-json "^4.0.0" - latest-version@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" @@ -16905,13 +15291,6 @@ libnpmpublish@^6.0.4: semver "^7.3.7" ssri "^9.0.0" -lie@~3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" - integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== - dependencies: - immediate "~3.0.5" - lilconfig@2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.5.tgz#19e57fd06ccc3848fd1891655b5a447092225b25" @@ -17093,7 +15472,7 @@ load-plugin@^5.0.0: "@npmcli/config" "^4.0.0" import-meta-resolve "^2.0.0" -loader-runner@^2.3.0, loader-runner@^2.4.0: +loader-runner@^2.3.0: version "2.4.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== @@ -17126,15 +15505,6 @@ loader-utils@^1.0.2, loader-utils@^1.1.0: emojis-list "^3.0.0" json5 "^1.0.1" -loader-utils@^1.2.3: - version "1.4.2" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.2.tgz#29a957f3a63973883eb684f10ffd3d151fec01a3" - integrity sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg== - dependencies: - big.js "^5.2.2" - emojis-list "^3.0.0" - json5 "^1.0.1" - loader-utils@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129" @@ -17648,13 +16018,6 @@ lru-cache@^4.0.1, lru-cache@^4.0.2, lru-cache@^4.1.5: pseudomap "^1.0.2" yallist "^2.1.2" -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== - dependencies: - yallist "^3.0.2" - lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -17829,11 +16192,6 @@ maxstache@^1.0.0: resolved "https://registry.yarnpkg.com/maxstache/-/maxstache-1.0.7.tgz#2231d5180ba783d5ecfc31c45fedac7ae4276984" integrity sha512-53ZBxHrZM+W//5AcRVewiLpDunHnucfdzZUGz54Fnvo4tE+J3p8EL66kBrs2UhBXvYKTWckWYYWBqJqoTcenqg== -md5-file@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/md5-file/-/md5-file-5.0.0.tgz#e519f631feca9c39e7f9ea1780b63c4745012e20" - integrity sha512-xbEFXCYVWrSx/gEKS1VPlg84h/4L20znVIulKw6kMfmBUAZNAnF00eczz9ICMl+/hjQGo5KSXRxbL/47X3rmMw== - md5-hex@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-3.0.1.tgz#be3741b510591434b2784d79e556eefc2c9a8e5c" @@ -17939,13 +16297,6 @@ mdast-util-from-markdown@^1.0.0: unist-util-stringify-position "^3.0.0" uvu "^0.5.0" -mdast-util-frontmatter@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/mdast-util-frontmatter/-/mdast-util-frontmatter-0.2.0.tgz#8bd5cd55e236c03e204a036f7372ebe9e6748240" - integrity sha512-FHKL4w4S5fdt1KjJCwB0178WJ0evnyyQr5kXTM3wrOVpytD0hrkvd+AOOjU9Td8onOejCkmZ+HQRT3CZ3coHHQ== - dependencies: - micromark-extension-frontmatter "^0.2.0" - mdast-util-frontmatter@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/mdast-util-frontmatter/-/mdast-util-frontmatter-1.0.0.tgz#ef12469379782e4a0fd995fed60cc3b871e6c819" @@ -18196,7 +16547,7 @@ mdast-util-to-markdown@^1.0.0, mdast-util-to-markdown@^1.3.0: unist-util-visit "^4.0.0" zwitch "^2.0.0" -mdast-util-to-string@2, mdast-util-to-string@^2.0.0: +mdast-util-to-string@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b" integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w== @@ -18270,7 +16621,7 @@ memoize-resolver@~1.0.0: resolved "https://registry.npmjs.org/memoize-resolver/-/memoize-resolver-1.0.0.tgz#93f01b61909008eb9d9b521fc1db152cc1b47f06" integrity sha512-mXfNXte0RSWl0rEIsQhXutfM2R2Oa7UyKDD7XoZMEbKeucTRms04y5y41U8gLqPzRx7ViN/QyYnTR2TX/5tawA== -memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1: +memory-fs@^0.4.0, memory-fs@~0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" integrity sha512-cda4JKCxReDXFXRqOHPQscuIYg1PvxbE2S2GP45rnwfEK+vZaXC8C1OFvdHIbgw0DLzowXGVoxLaAmlgRy14GQ== @@ -18278,19 +16629,6 @@ memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1: errno "^0.1.3" readable-stream "^2.0.1" -memory-fs@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" - integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== - dependencies: - errno "^0.1.3" - readable-stream "^2.0.1" - -memory-pager@^1.0.2: - version "1.5.0" - resolved "https://registry.yarnpkg.com/memory-pager/-/memory-pager-1.5.0.tgz#d8751655d22d384682741c972f2c3d6dfa3e66b5" - integrity sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg== - mendoza@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/mendoza/-/mendoza-2.1.1.tgz#19ad4efc3f424439d895e1f1841818a4e268af55" @@ -18340,7 +16678,7 @@ merge2@^1.2.3, merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -methods@^1.1.1, methods@^1.1.2, methods@~1.1.2: +methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== @@ -18382,13 +16720,6 @@ micromark-core-commonmark@^1.0.0, micromark-core-commonmark@^1.0.1: micromark-util-types "^1.0.1" uvu "^0.5.0" -micromark-extension-frontmatter@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/micromark-extension-frontmatter/-/micromark-extension-frontmatter-0.2.2.tgz#61b8e92e9213e1d3c13f5a59e7862f5ca98dfa53" - integrity sha512-q6nPLFCMTLtfsctAuS0Xh4vaolxSFUWUWR6PZSrXXiRy+SANGllpcqdXFv2z07l0Xz/6Hl40hK0ffNCJPH2n1A== - dependencies: - fault "^1.0.0" - micromark-extension-frontmatter@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/micromark-extension-frontmatter/-/micromark-extension-frontmatter-1.0.0.tgz#612498e6dad87c132c95e25f0918e7cc0cd535f6" @@ -18901,7 +17232,7 @@ mime@1.4.1: resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== -mime@1.6.0, mime@^1.2.11, mime@^1.3.4, mime@^1.4.1: +mime@1.6.0, mime@^1.2.11, mime@^1.4.1: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== @@ -19084,22 +17415,6 @@ minizlib@^2.1.1, minizlib@^2.1.2: minipass "^3.0.0" yallist "^4.0.0" -mississippi@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== - dependencies: - concat-stream "^1.5.0" - duplexify "^3.4.2" - end-of-stream "^1.1.0" - flush-write-stream "^1.0.0" - from2 "^2.1.0" - parallel-transform "^1.1.0" - pump "^3.0.0" - pumpify "^1.3.3" - stream-each "^1.1.0" - through2 "^2.0.0" - mississippi@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/mississippi/-/mississippi-4.0.0.tgz#4440722cc1f495843260e097967d1eeb87cf0122" @@ -19143,7 +17458,7 @@ mkdirp-infer-owner@^2.0.0: infer-owner "^1.0.4" mkdirp "^1.0.3" -mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@~0.5.0, mkdirp@~0.5.1: +mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: version "0.5.6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== @@ -19221,104 +17536,6 @@ moment@^2.29.4: resolved "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== -mongodb-connection-string-url@^2.5.4: - version "2.5.4" - resolved "https://registry.yarnpkg.com/mongodb-connection-string-url/-/mongodb-connection-string-url-2.5.4.tgz#1ee2496f4c4eae64f63c4b2d512aebc89996160a" - integrity sha512-SeAxuWs0ez3iI3vvmLk/j2y+zHwigTDKQhtdxTgt5ZCOQQS5+HW4g45/Xw5vzzbn7oQXCNQ24Z40AkJsizEy7w== - dependencies: - "@types/whatwg-url" "^8.2.1" - whatwg-url "^11.0.0" - -mongodb-memory-server-core@8.10.0: - version "8.10.0" - resolved "https://registry.yarnpkg.com/mongodb-memory-server-core/-/mongodb-memory-server-core-8.10.0.tgz#a8c54e19c70c935635ed7379a7c1339e73666a18" - integrity sha512-otLYpVARSBXh1zaMRHet2MiUi+rl7rUQe9eXxDAPunC70ZhoGjxIvbQOsVA+n6o09UlxbupWjE4pUu8Ezq7zYQ== - dependencies: - "@types/tmp" "^0.2.3" - async-mutex "^0.3.2" - camelcase "^6.3.0" - debug "^4.3.4" - find-cache-dir "^3.3.2" - get-port "^5.1.1" - https-proxy-agent "^5.0.1" - md5-file "^5.0.0" - mongodb "~4.11.0" - new-find-package-json "^2.0.0" - semver "^7.3.8" - tar-stream "^2.1.4" - tmp "^0.2.1" - tslib "^2.4.1" - uuid "^8.3.1" - yauzl "^2.10.0" - -mongodb-memory-server@^8.3.0: - version "8.10.0" - resolved "https://registry.yarnpkg.com/mongodb-memory-server/-/mongodb-memory-server-8.10.0.tgz#3d1281d9007053ab9eaa4b05cc647e345a610b33" - integrity sha512-LCYIrbzwRZlkDt2OM3gyS7458z68Zf3EdKrcnB0lknOypdWExfhBLUURjfhHCNs+FglDiqLn3uwEUi6Xmye6Fw== - dependencies: - mongodb-memory-server-core "8.10.0" - tslib "^2.4.1" - -mongodb@4.11.0, mongodb@~4.11.0: - version "4.11.0" - resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-4.11.0.tgz#d28fdc7509f24d0d274f456529441fa3e570415c" - integrity sha512-9l9n4Nk2BYZzljW3vHah3Z0rfS5npKw6ktnkmFgTcnzaXH1DRm3pDl6VMHu84EVb1lzmSaJC4OzWZqTkB5i2wg== - dependencies: - bson "^4.7.0" - denque "^2.1.0" - mongodb-connection-string-url "^2.5.4" - socks "^2.7.1" - optionalDependencies: - "@aws-sdk/credential-providers" "^3.186.0" - saslprep "^1.0.3" - -mongoose-bcrypt@^1.8.1: - version "1.10.0" - resolved "https://registry.yarnpkg.com/mongoose-bcrypt/-/mongoose-bcrypt-1.10.0.tgz#c6c75e3ef74b53d28e00ff4af9a2dc0ec5f1b3b3" - integrity sha512-6MQ7XIgsBAdw6oDsOGU6siDEz8tgzmKV9GA/lR0m/Z/+4/X+du0xK0IR7VhpyfWFA6nzJn4EPI/0Ccc4tENUBw== - dependencies: - bcryptjs "^2.4.3" - mongoose "^6.5.2" - semver "^7.3.7" - -mongoose-encryption@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/mongoose-encryption/-/mongoose-encryption-2.1.2.tgz#be3b0271f3e85e34165f751bc3592030395077b5" - integrity sha512-whc9ZhN8/UjED3qiQKJvQAx/H1Ml3FUpEiyoHLKl4gzhvWorndnRE0sKuQ3fKzuaZDi/rDBN5AI4L/J2Er8Q9Q== - dependencies: - async "^2.6.1" - buffer-equal-constant-time "^1.0.1" - dotty "^0.1.2" - json-stable-stringify "^1.0.0" - mpath "^0.8.4" - semver "^5.5.0" - underscore "^1.5.0" - -mongoose@^6.1.8, mongoose@^6.5.2: - version "6.7.2" - resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-6.7.2.tgz#457994b254a2afd1e03dd8f0b3046ff3d2ed276e" - integrity sha512-lrP2V5U1qhaf+z33fiIn7aYAZZ1fVDly+TkFRjTujNBF/FIHESATj2RbgAOSlWqv32fsZXkXejXzeVfjbv35Ow== - dependencies: - bson "^4.7.0" - kareem "2.4.1" - mongodb "4.11.0" - mpath "0.9.0" - mquery "4.0.3" - ms "2.1.3" - sift "16.0.1" - -move-concurrently@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" - integrity sha512-hdrFxZOycD/g6A6SoI2bB5NA/5NEqD0569+S47WZhPvm46sD50ZHdYaFmnua5lndde9rCHGjmfK7Z8BuCt/PcQ== - dependencies: - aproba "^1.1.1" - copy-concurrently "^1.0.0" - fs-write-stream-atomic "^1.0.8" - mkdirp "^0.5.1" - rimraf "^2.5.4" - run-queue "^1.0.3" - move-file@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/move-file/-/move-file-3.0.0.tgz#b2da5d7b4627e61ff5408841e81312143fa58a64" @@ -19326,23 +17543,6 @@ move-file@^3.0.0: dependencies: path-exists "^5.0.0" -mpath@0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/mpath/-/mpath-0.9.0.tgz#0c122fe107846e31fc58c75b09c35514b3871904" - integrity sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew== - -mpath@^0.8.4: - version "0.8.4" - resolved "https://registry.yarnpkg.com/mpath/-/mpath-0.8.4.tgz#6b566d9581621d9e931dd3b142ed3618e7599313" - integrity sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g== - -mquery@4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/mquery/-/mquery-4.0.3.tgz#4d15f938e6247d773a942c912d9748bd1965f89d" - integrity sha512-J5heI+P08I6VJ2Ky3+33IpCdAvlYGTSUjwTPxkAr8i8EoduPMBX2OY/wa3IKZIQl7MU4SbFk8ndgSKyB/cl1zA== - dependencies: - debug "4.x" - mri@^1.1.0, mri@^1.1.5: version "1.2.0" resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" @@ -19480,7 +17680,7 @@ negotiator@0.6.3, negotiator@^0.6.3: resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== -neo-async@^2.5.0, neo-async@^2.6.0, neo-async@^2.6.1: +neo-async@^2.5.0, neo-async@^2.6.0: version "2.6.2" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== @@ -19650,13 +17850,6 @@ netlify@^13.0.1: p-wait-for "^4.0.0" qs "^6.9.6" -new-find-package-json@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/new-find-package-json/-/new-find-package-json-2.0.0.tgz#96553638781db35061f351e8ccb4d07126b6407d" - integrity sha512-lDcBsjBSMlj3LXH2v/FW3txlh2pYTjmbOXPYJD93HI5EwuLzI11tdHSIpUMmfq/IOsldj4Ps8M8flhm+pCK4Ew== - dependencies: - debug "^4.3.4" - new-github-release-url@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/new-github-release-url/-/new-github-release-url-1.0.0.tgz#493847e6fecce39c247e9d89929be773d2e7f777" @@ -19708,11 +17901,6 @@ next@latest: "@next/swc-win32-ia32-msvc" "12.3.1" "@next/swc-win32-x64-msvc" "12.3.1" -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - nlcst-to-string@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/nlcst-to-string/-/nlcst-to-string-2.0.4.tgz#9315dfab80882bbfd86ddf1b706f53622dc400cc" @@ -19784,7 +17972,7 @@ node-gyp@^9.0.0: tar "^6.1.2" which "^2.0.2" -node-libs-browser@^2.0.0, node-libs-browser@^2.2.1: +node-libs-browser@^2.0.0: version "2.2.1" resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== @@ -19856,27 +18044,6 @@ node-version-alias@^1.0.1: path-exists "^4.0.0" semver "^7.3.2" -nodemailer@6.8.0: - version "6.8.0" - resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.8.0.tgz#804bcc5256ee5523bc914506ee59f8de8f0b1cd5" - integrity sha512-EjYvSmHzekz6VNkNd12aUqAco+bOkRe3Of5jVhltqKhEsjw/y0PYPJfp83+s9Wzh1dspYAkUW/YNQ350NATbSQ== - -nodemon@^1.19.1: - version "1.19.4" - resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.19.4.tgz#56db5c607408e0fdf8920d2b444819af1aae0971" - integrity sha512-VGPaqQBNk193lrJFotBU8nvWZPqEZY2eIzymy2jjY0fJ9qIsxA0sxQ8ATPl0gZC645gijYEc1jtZvpS8QWzJGQ== - dependencies: - chokidar "^2.1.8" - debug "^3.2.6" - ignore-by-default "^1.0.1" - minimatch "^3.0.4" - pstree.remy "^1.1.7" - semver "^5.7.1" - supports-color "^5.5.0" - touch "^3.1.0" - undefsafe "^2.0.2" - update-notifier "^2.5.0" - nofilter@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-3.1.0.tgz#c757ba68801d41ff930ba2ec55bab52ca184aa66" @@ -19901,13 +18068,6 @@ nopt@^6.0.0: dependencies: abbrev "^1.0.0" -nopt@~1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" - integrity sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg== - dependencies: - abbrev "1" - normalize-node-version@^10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/normalize-node-version/-/normalize-node-version-10.0.0.tgz#5ec513f3eb292a8c2f0d35ba519f97f077cb80bc" @@ -20447,7 +18607,7 @@ on-headers@^1.0.0: resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== -once@1.4.0, once@^1.3.0, once@^1.3.1, once@^1.4.0: +once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== @@ -20955,16 +19115,6 @@ package-hash@^4.0.0: lodash.flattendeep "^4.4.0" release-zalgo "^1.0.0" -package-json@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" - integrity sha512-q/R5GrMek0vzgoomq6rm9OX+3PQve8sLwTirmK30YB3Cu0Bbt9OX9M/SIUnroN5BGJkzwGsFwDaRGD9EwBOlCA== - dependencies: - got "^6.7.1" - registry-auth-token "^3.0.1" - registry-url "^3.0.3" - semver "^5.1.0" - package-json@^6.3.0: version "6.5.0" resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" @@ -21017,7 +19167,7 @@ pako@^0.2.5, pako@~0.2.0: resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" integrity sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA== -pako@~1.0.2, pako@~1.0.5: +pako@~1.0.5: version "1.0.11" resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== @@ -21211,28 +19361,11 @@ passport-http@^0.3.0: dependencies: passport-strategy "1.x.x" -passport-jwt@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/passport-jwt/-/passport-jwt-4.0.0.tgz#7f0be7ba942e28b9f5d22c2ebbb8ce96ef7cf065" - integrity sha512-BwC0n2GP/1hMVjR4QpnvqA61TxenUMlmfNjYNgK0ZAs0HK4SOQkHcSv4L328blNTLtHq7DbmvyNJiH+bn6C5Mg== - dependencies: - jsonwebtoken "^8.2.0" - passport-strategy "^1.0.0" - -passport-strategy@1.x.x, passport-strategy@^1.0.0: +passport-strategy@1.x.x: version "1.0.0" resolved "https://registry.yarnpkg.com/passport-strategy/-/passport-strategy-1.0.0.tgz#b5539aa8fc225a3d1ad179476ddf236b440f52e4" integrity sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA== -passport@0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/passport/-/passport-0.6.0.tgz#e869579fab465b5c0b291e841e6cc95c005fac9d" - integrity sha512-0fe+p3ZnrWRW74fe8+SvCyf4a3Pb2/h7gFkQ8yTJpAO50gDzlfjZUZTO1k5Eg9kUct22OxHLqDZoKUWRHOh9ug== - dependencies: - passport-strategy "1.x.x" - pause "0.0.1" - utils-merge "^1.0.1" - path-browserify@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" @@ -21263,12 +19396,7 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== -path-is-inside@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== - -path-key@^2.0.0, path-key@^2.0.1: +path-key@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== @@ -21322,11 +19450,6 @@ pathval@^1.1.1: resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== -pause@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d" - integrity sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg== - pbkdf2@^3.0.3: version "3.1.2" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" @@ -22338,7 +20461,7 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.2, postcss@^7.0.27: picocolors "^0.2.1" source-map "^0.6.1" -postcss@^8.1.10, postcss@^8.4.18, postcss@^8.4.6: +postcss@^8.1.10, postcss@^8.2.0, postcss@^8.4.12, postcss@^8.4.18, postcss@^8.4.4, postcss@^8.4.5, postcss@^8.4.6: version "8.4.19" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.19.tgz#61178e2add236b17351897c8bcc0b4c8ecab56fc" integrity sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA== @@ -22347,15 +20470,6 @@ postcss@^8.1.10, postcss@^8.4.18, postcss@^8.4.6: picocolors "^1.0.0" source-map-js "^1.0.2" -postcss@^8.2.0, postcss@^8.4.12, postcss@^8.4.17, postcss@^8.4.4, postcss@^8.4.5: - version "8.4.18" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.18.tgz#6d50046ea7d3d66a85e0e782074e7203bc7fbca2" - integrity sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA== - dependencies: - nanoid "^3.3.4" - picocolors "^1.0.0" - source-map-js "^1.0.2" - posthtml-attrs-parser@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/posthtml-attrs-parser/-/posthtml-attrs-parser-0.1.1.tgz#cc33e00155fb99ba96f67e25e330461f05742ac8" @@ -22590,17 +20704,12 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== -prepend-http@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - integrity sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg== - prepend-http@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" integrity sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA== -prettier@^2.3.1, prettier@^2.7.1: +prettier@^2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== @@ -22828,11 +20937,6 @@ psl@^1.1.28: resolved "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== -pstree.remy@^1.1.7: - version "1.1.8" - resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" - integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== - public-encrypt@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" @@ -22917,7 +21021,7 @@ q@^1.1.2, q@^1.5.1: resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== -qs@6.11.0, qs@^6.5.1, qs@^6.9.6: +qs@6.11.0, qs@^6.9.6: version "6.11.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== @@ -22929,26 +21033,11 @@ qs@6.2.3: resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.3.tgz#1cfcb25c10a9b2b483053ff39f5dfc9233908cfe" integrity sha512-AY4g8t3LMboim0t6XWFdz6J5OuJ1ZNYu54SXihS/OMpgyCqYmcAJnWqkNSOjSjWmq3xxy+GF9uWQI2lI/7tKIA== -qs@6.9.3: - version "6.9.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.3.tgz#bfadcd296c2d549f1dffa560619132c977f5008e" - integrity sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw== - qs@~6.5.2: version "6.5.3" resolved "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== -query-string@7.1.1, query-string@^7.1.0, query-string@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-7.1.1.tgz#754620669db978625a90f635f12617c271a088e1" - integrity sha512-MplouLRDHBZSG9z7fpuAAcI7aAYjDLhtsiVZsevsfaHWDS2IDdORKbSd1kWUA+V4zyva/HZoSfpwnYMMQDhb0w== - dependencies: - decode-uri-component "^0.2.0" - filter-obj "^1.1.0" - split-on-first "^1.0.0" - strict-uri-encode "^2.0.0" - query-string@^4.3.2: version "4.3.4" resolved "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" @@ -22966,6 +21055,16 @@ query-string@^5.0.1: object-assign "^4.1.0" strict-uri-encode "^1.0.0" +query-string@^7.1.0, query-string@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-7.1.1.tgz#754620669db978625a90f635f12617c271a088e1" + integrity sha512-MplouLRDHBZSG9z7fpuAAcI7aAYjDLhtsiVZsevsfaHWDS2IDdORKbSd1kWUA+V4zyva/HZoSfpwnYMMQDhb0w== + dependencies: + decode-uri-component "^0.2.0" + filter-obj "^1.1.0" + split-on-first "^1.0.0" + strict-uri-encode "^2.0.0" + querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" @@ -23018,11 +21117,6 @@ raf@^3.4.1: dependencies: performance-now "^2.1.0" -ramda@^0.26.1: - version "0.26.1" - resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.26.1.tgz#8d41351eb8111c55353617fc3bbffad8e4d35d06" - integrity sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ== - random-bytes@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/random-bytes/-/random-bytes-1.0.0.tgz#4f68a1dc0ae58bd3fb95848c30324db75d64360b" @@ -23092,7 +21186,7 @@ raw-body@2.5.1, raw-body@^2.3.2, raw-body@^2.4.1: iconv-lite "0.4.24" unpipe "1.0.0" -rc@1.2.8, rc@^1.0.1, rc@^1.1.6, rc@^1.2.7, rc@^1.2.8: +rc@1.2.8, rc@^1.2.7, rc@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -23534,19 +21628,6 @@ read@1, read@^1.0.7: dependencies: mute-stream "~0.0.4" -"readable-stream@1 || 2", readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - readable-stream@1.1: version "1.1.13" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e" @@ -23567,6 +21648,19 @@ readable-stream@1.1.x: isarray "0.0.1" string_decoder "~0.10.x" +readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.3.0, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + "readable-stream@2 || 3", readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.0.2, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" @@ -23766,14 +21860,6 @@ regexpu-core@^5.1.0: unicode-match-property-ecmascript "^2.0.0" unicode-match-property-value-ecmascript "^2.0.0" -registry-auth-token@^3.0.1: - version "3.4.0" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e" - integrity sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A== - dependencies: - rc "^1.1.6" - safe-buffer "^5.0.1" - registry-auth-token@^4.0.0: version "4.2.2" resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.2.tgz#f02d49c3668884612ca031419491a13539e21fac" @@ -23788,13 +21874,6 @@ registry-auth-token@^5.0.1: dependencies: "@pnpm/npm-conf" "^1.0.4" -registry-url@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" - integrity sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA== - dependencies: - rc "^1.0.1" - registry-url@^5.0.0, registry-url@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" @@ -23959,14 +22038,6 @@ remark-extract-frontmatter@^3.2.0: resolved "https://registry.yarnpkg.com/remark-extract-frontmatter/-/remark-extract-frontmatter-3.2.0.tgz#bab57f599114f233702dea819431eec28e708656" integrity sha512-PmYwNCo0cMAUV3oAGg5Hn6YSZgiSDwVdxLJmPIZ804aYuvE5mAzozo5AkO0C8ELroWrtN/f9zzb0jqFPBkMnwg== -remark-frontmatter@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/remark-frontmatter/-/remark-frontmatter-3.0.0.tgz#ca5d996361765c859bd944505f377d6b186a6ec6" - integrity sha512-mSuDd3svCHs+2PyO29h7iijIZx4plX0fheacJcAoYAASfgzgVIcXGYSq9GFyYocFLftQs8IOmmkgtOovs6d4oA== - dependencies: - mdast-util-frontmatter "^0.2.0" - micromark-extension-frontmatter "^0.2.0" - remark-frontmatter@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/remark-frontmatter/-/remark-frontmatter-4.0.1.tgz#84560f7ccef114ef076d3d3735be6d69f8922309" @@ -24356,13 +22427,6 @@ remark-parse@^9.0.0: dependencies: mdast-util-from-markdown "^0.8.0" -remark-plain-text@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/remark-plain-text/-/remark-plain-text-0.2.0.tgz#5ff7d8998b4ed36027648937813455add4d58fd8" - integrity sha512-yzDBYj3p1GUAL0n7DfWdrfNwk//Ju5pf9ZMocmKuLv3jvMqlOAG27VL7Iq3Y6g43yWQG8/50Bkz2Zzh0L6/JIA== - dependencies: - unist-util-visit "^1.4.1" - remark-preset-lint-consistent@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/remark-preset-lint-consistent/-/remark-preset-lint-consistent-5.1.1.tgz#c870a2379e109cb6d7a10cd2d3b91f34e3f89e71" @@ -24442,7 +22506,7 @@ remark-stringify@^10.0.0: mdast-util-to-markdown "^1.0.0" unified "^10.0.0" -remark@14, remark@^14.0.0, remark@^14.0.2: +remark@^14.0.0, remark@^14.0.2: version "14.0.2" resolved "https://registry.yarnpkg.com/remark/-/remark-14.0.2.tgz#4a1833f7441a5c29e44b37bb1843fb820797b40f" integrity sha512-A3ARm2V4BgiRXaUo5K0dRvJ1lbogrbXnhkJRmD0yw092/Yl0kOCZt1k9ZeElEwkZsWGsMumz6qL5MfNJH9nOBA== @@ -24773,14 +22837,7 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" - integrity sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w== - dependencies: - glob "^7.0.5" - -rimraf@^2.5.4, rimraf@^2.6.3, rimraf@^2.7.1: +rimraf@^2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== @@ -24821,13 +22878,6 @@ run-parallel@^1.1.4, run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -run-queue@^1.0.0, run-queue@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" - integrity sha512-ntymy489o0/QQplUDnpYAYUsO50K9SBrIVaKCWDOJzYJts0f9WH9RFJkyagebkw5+y1oi00R7ynNW/d12GBumg== - dependencies: - aproba "^1.1.1" - rusha@^0.8.14: version "0.8.14" resolved "https://registry.yarnpkg.com/rusha/-/rusha-0.8.14.tgz#a977d0de9428406138b7bb90d3de5dcd024e2f68" @@ -24941,13 +22991,6 @@ sanity-plugin-markdown@^2.1.1: react-mde "^11.5.0" remark-gfm "^1.0.0" -saslprep@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/saslprep/-/saslprep-1.0.3.tgz#4c02f946b56cf54297e347ba1093e7acac4cf226" - integrity sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag== - dependencies: - sparse-bitfield "^3.0.3" - sax@^1.2.4, sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" @@ -24991,15 +23034,6 @@ schema-utils@^0.4.0, schema-utils@^0.4.5: ajv "^6.1.0" ajv-keywords "^3.1.0" -schema-utils@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== - dependencies: - ajv "^6.1.0" - ajv-errors "^1.0.0" - ajv-keywords "^3.1.0" - schema-utils@^2.6.5: version "2.7.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" @@ -25038,13 +23072,6 @@ semver-compare@^1.0.0: resolved "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" integrity sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow== -semver-diff@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" - integrity sha512-gL8F8L4ORwsS0+iQ34yCYv///jsOq0ZL7WP55d1HnJ32o7tyFYEFQZQA22mrLIacZdU6xecaBBZ+uEiffGNyXw== - dependencies: - semver "^5.0.3" - semver-diff@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" @@ -25059,7 +23086,7 @@ semver-diff@^4.0.0: dependencies: semver "^7.3.5" -"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.5.0, semver@^5.6.0, semver@^5.7.1: +"semver@2 || 3 || 4 || 5", semver@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -25083,13 +23110,6 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.2.3, semve resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.3.8: - version "7.3.8" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== - dependencies: - lru-cache "^6.0.0" - send@0.16.2: version "0.16.2" resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" @@ -25142,13 +23162,6 @@ serialize-javascript@6.0.0: dependencies: randombytes "^2.1.0" -serialize-javascript@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" - integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== - dependencies: - randombytes "^2.1.0" - serve-index@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" @@ -25242,20 +23255,6 @@ shallowequal@^1.1.0: resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== -sharp@^0.31.0: - version "0.31.2" - resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.31.2.tgz#a8411c80512027f5a452b76d599268760c4e5dfa" - integrity sha512-DUdNVEXgS5A97cTagSLIIp8dUZ/lZtk78iNVZgHdHbx1qnQR7JAHY0BnXnwwH39Iw+VKhO08CTYhIg0p98vQ5Q== - dependencies: - color "^4.2.3" - detect-libc "^2.0.1" - node-addon-api "^5.0.0" - prebuild-install "^7.1.1" - semver "^7.3.8" - simple-get "^4.0.1" - tar-fs "^2.1.1" - tunnel-agent "^0.6.0" - sharp@^0.31.1: version "0.31.1" resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.31.1.tgz#b2f7076d381a120761aa93700cadefcf90a22458" @@ -25303,11 +23302,6 @@ side-channel@^1.0.3, side-channel@^1.0.4: get-intrinsic "^1.0.2" object-inspect "^1.9.0" -sift@16.0.1: - version "16.0.1" - resolved "https://registry.yarnpkg.com/sift/-/sift-16.0.1.tgz#e9c2ccc72191585008cf3e36fc447b2d2633a053" - integrity sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ== - sigmund@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" @@ -25505,14 +23499,6 @@ socks@^2.6.2: ip "^2.0.0" smart-buffer "^4.2.0" -socks@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" - integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== - dependencies: - ip "^2.0.0" - smart-buffer "^4.2.0" - sonic-boom@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-3.2.0.tgz#ce9f2de7557e68be2e52c8df6d9b052e7d348143" @@ -25569,7 +23555,7 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@^0.5.12, source-map-support@^0.5.16, source-map-support@^0.5.19, source-map-support@~0.5.12, source-map-support@~0.5.20: +source-map-support@^0.5.16, source-map-support@^0.5.19, source-map-support@~0.5.20: version "0.5.21" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== @@ -25612,13 +23598,6 @@ space-separated-tokens@^2.0.0: resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.1.tgz#43193cec4fb858a2ce934b7f98b7f2c18107098b" integrity sha512-ekwEbFp5aqSPKaqeY1PGrlGQxPNaq+Cnx4+bE2D8sciBQrHpbwoBbawqTN2+6jPs9IdWxxiUcN0K2pkczD3zmw== -sparse-bitfield@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz#ff4ae6e68656056ba4b3e792ab3334d38273ca11" - integrity sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ== - dependencies: - memory-pager "^1.0.2" - spawn-wrap@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-2.0.0.tgz#103685b8b8f9b79771318827aa78650a610d457e" @@ -25730,13 +23709,6 @@ sshpk@^1.7.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" -ssri@^6.0.1: - version "6.0.2" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" - integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== - dependencies: - figgy-pudding "^3.5.1" - ssri@^9.0.0, ssri@^9.0.1: version "9.0.1" resolved "https://registry.yarnpkg.com/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057" @@ -26291,22 +24263,6 @@ stylehacks@^5.1.1: browserslist "^4.21.4" postcss-selector-parser "^6.0.4" -superagent@^3.7.0: - version "3.8.3" - resolved "https://registry.yarnpkg.com/superagent/-/superagent-3.8.3.tgz#460ea0dbdb7d5b11bc4f78deba565f86a178e128" - integrity sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA== - dependencies: - component-emitter "^1.2.0" - cookiejar "^2.1.0" - debug "^3.1.0" - extend "^3.0.0" - form-data "^2.3.1" - formidable "^1.2.0" - methods "^1.1.1" - mime "^1.4.1" - qs "^6.5.1" - readable-stream "^2.3.5" - supertap@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/supertap/-/supertap-3.0.1.tgz#aa89e4522104402c6e8fe470a7d2db6dc4037c6a" @@ -26460,36 +24416,7 @@ tailwindcss-open-variant@^1.0.0: resolved "https://registry.yarnpkg.com/tailwindcss-open-variant/-/tailwindcss-open-variant-1.0.0.tgz#e4555c0a0ec2a82801e563ed36b1b23e4dd04a3b" integrity sha512-XKw7rXUWvMKDKC62+V1z/kS0hVtTzWk6ALrOoGXC8MGAyetXIiRu/npnLGGHT1kL59Y2RZHT7Dq1C3moeTeptQ== -tailwindcss@^3, tailwindcss@^3.0.1, tailwindcss@^3.0.7: - version "3.2.1" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.2.1.tgz#1bd828fff3172489962357f8d531c184080a6786" - integrity sha512-Uw+GVSxp5CM48krnjHObqoOwlCt5Qo6nw1jlCRwfGy68dSYb/LwS9ZFidYGRiM+w6rMawkZiu1mEMAsHYAfoLg== - dependencies: - arg "^5.0.2" - chokidar "^3.5.3" - color-name "^1.1.4" - detective "^5.2.1" - didyoumean "^1.2.2" - dlv "^1.1.3" - fast-glob "^3.2.12" - glob-parent "^6.0.2" - is-glob "^4.0.3" - lilconfig "^2.0.6" - micromatch "^4.0.5" - normalize-path "^3.0.0" - object-hash "^3.0.0" - picocolors "^1.0.0" - postcss "^8.4.17" - postcss-import "^14.1.0" - postcss-js "^4.0.0" - postcss-load-config "^3.1.4" - postcss-nested "6.0.0" - postcss-selector-parser "^6.0.10" - postcss-value-parser "^4.2.0" - quick-lru "^5.1.1" - resolve "^1.22.1" - -tailwindcss@^3.2.0: +tailwindcss@^3, tailwindcss@^3.0.1, tailwindcss@^3.0.7, tailwindcss@^3.2.0: version "3.2.4" resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.2.4.tgz#afe3477e7a19f3ceafb48e4b083e292ce0dc0250" integrity sha512-AhwtHCKMtR71JgeYDaswmZXhPcW9iuI9Sp2LvZPo9upDZ7231ZJ7eA9RaURbhpXGVlrjX4cFNlB4ieTetEb7hQ== @@ -26523,11 +24450,6 @@ tapable@^0.2.7: resolved "https://registry.npmjs.org/tapable/-/tapable-0.2.9.tgz#af2d8bbc9b04f74ee17af2b4d9048f807acd18a8" integrity sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A== -tapable@^1.0.0, tapable@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== - tar-fs@^1.16.0: version "1.16.3" resolved "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.3.tgz#966a628841da2c4010406a82167cbd5e0c72d509" @@ -26625,13 +24547,6 @@ tempy@^1.0.0: type-fest "^0.16.0" unique-string "^2.0.0" -term-size@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" - integrity sha512-7dPUZQGy/+m3/wjVz3ZW5dobSoD/02NxJpoXUX0WIyjfVS3l0c+b/+9phIDFA7FHzkYtwtMFgeGZ/Y8jVTeqQQ== - dependencies: - execa "^0.7.0" - terminal-link@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" @@ -26640,30 +24555,6 @@ terminal-link@^2.1.1: ansi-escapes "^4.2.1" supports-hyperlinks "^2.0.0" -terser-webpack-plugin@^1.4.3: - version "1.4.5" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" - integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== - dependencies: - cacache "^12.0.2" - find-cache-dir "^2.1.0" - is-wsl "^1.1.0" - schema-utils "^1.0.0" - serialize-javascript "^4.0.0" - source-map "^0.6.1" - terser "^4.1.2" - webpack-sources "^1.4.0" - worker-farm "^1.7.0" - -terser@^4.1.2: - version "4.8.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.1.tgz#a00e5634562de2239fd404c649051bf6fc21144f" - integrity sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - terser@^5.14.2: version "5.15.1" resolved "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz#8561af6e0fd6d839669c73b92bdd5777d870ed6c" @@ -26757,7 +24648,7 @@ through2-map@^3.0.0: through2 "~2.0.0" xtend "^4.0.0" -through2@^2.0.0, through2@^2.0.1, through2@^2.0.3, through2@~2.0.0, through2@~2.0.3: +through2@^2.0.0, through2@^2.0.3, through2@~2.0.0, through2@~2.0.3: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== @@ -26790,7 +24681,7 @@ time-zone@^1.0.0: resolved "https://registry.yarnpkg.com/time-zone/-/time-zone-1.0.0.tgz#99c5bf55958966af6d06d83bdf3800dc82faec5d" integrity sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA== -timed-out@^4.0.0, timed-out@^4.0.1: +timed-out@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" integrity sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA== @@ -26827,11 +24718,6 @@ tiny-warning@^1.0.0, tiny-warning@^1.0.3: resolved "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== -tlds@^1.221.1: - version "1.233.0" - resolved "https://registry.yarnpkg.com/tlds/-/tlds-1.233.0.tgz#decfed234c293a20548bdb5e468909766e5e1c15" - integrity sha512-K05dY1r4lkXk+eE/j2UqHhGWp1bFn+17eYcJP7OepkmI3obLOgan3ZIpmml++wZ4LTIx4r9var373ztO2xb27A== - tmp-promise@^3.0.2, tmp-promise@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/tmp-promise/-/tmp-promise-3.0.3.tgz#60a1a1cc98c988674fcbfd23b6e3367bdeac4ce7" @@ -26846,7 +24732,7 @@ tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" -tmp@^0.2.0, tmp@^0.2.1, tmp@~0.2.1: +tmp@^0.2.0, tmp@~0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== @@ -26943,13 +24829,6 @@ totalist@^1.0.0: resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df" integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g== -touch@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" - integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== - dependencies: - nopt "~1.0.10" - tough-cookie@^2.3.3, tough-cookie@^2.4.3, tough-cookie@~2.5.0: version "2.5.0" resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" @@ -26965,13 +24844,6 @@ tr46@^1.0.1: dependencies: punycode "^2.1.0" -tr46@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" - integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== - dependencies: - punycode "^2.1.1" - tr46@~0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" @@ -27053,7 +24925,7 @@ tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0, tslib@^2.3.1, tslib@^2.4 resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== -tslib@^2.2.0, tslib@^2.4.1: +tslib@^2.2.0: version "2.4.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== @@ -27211,11 +25083,6 @@ typescript@^4.6.2: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.4.tgz#c464abca159669597be5f96b8943500b238e60e6" integrity sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ== -typical@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/typical/-/typical-4.0.0.tgz#cbeaff3b9d7ae1e2bbfaf5a4e6f11eccfde94fc4" - integrity sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw== - ua-parser-js@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.2.tgz#e2976c34dbfb30b15d2c300b2a53eac87c57a775" @@ -27285,16 +25152,6 @@ unbzip2-stream@^1.0.9: buffer "^5.2.1" through "^2.3.8" -undefsafe@^2.0.2: - version "2.0.5" - resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c" - integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== - -underscore@^1.5.0: - version "1.13.6" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.6.tgz#04786a1f589dc6c09f761fc5f45b89e935136441" - integrity sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A== - unherit@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/unherit/-/unherit-3.0.0.tgz#83d69af9d8e3afd28fa51cff9ee84de7a1d82a6b" @@ -27528,11 +25385,6 @@ unist-util-inspect@^7.0.0: dependencies: "@types/unist" "^2.0.0" -unist-util-is@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-3.0.0.tgz#d9e84381c2468e82629e4a5be9d7d05a2dd324cd" - integrity sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A== - unist-util-is@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797" @@ -27624,13 +25476,6 @@ unist-util-visit-parents@1.1.2: resolved "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-1.1.2.tgz#f6e3afee8bdbf961c0e6f028ea3c0480028c3d06" integrity sha512-yvo+MMLjEwdc3RhhPYSximset7rwjMrdt9E41Smmvg25UQIenzrN83cRnF1JMzoMi9zZOQeYXHSDf7p+IQkW3Q== -unist-util-visit-parents@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-2.1.2.tgz#25e43e55312166f3348cae6743588781d112c1e9" - integrity sha512-DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g== - dependencies: - unist-util-is "^3.0.0" - unist-util-visit-parents@^3.0.0, unist-util-visit-parents@^3.0.2: version "3.1.1" resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz#65a6ce698f78a6b0f56aa0e88f13801886cdaef6" @@ -27655,13 +25500,6 @@ unist-util-visit-parents@^5.0.0, unist-util-visit-parents@^5.1.1: "@types/unist" "^2.0.0" unist-util-is "^5.0.0" -unist-util-visit@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-1.4.1.tgz#4724aaa8486e6ee6e26d7ff3c8685960d560b1e3" - integrity sha512-AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw== - dependencies: - unist-util-visit-parents "^2.0.0" - unist-util-visit@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c" @@ -27742,11 +25580,6 @@ untildify@^3.0.3: resolved "https://registry.yarnpkg.com/untildify/-/untildify-3.0.3.tgz#1e7b42b140bcfd922b22e70ca1265bfe3634c7c9" integrity sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA== -unzip-response@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" - integrity sha512-N0XH6lqDtFH84JxptQoZYmloF4nzrQqqrAymNj+/gW60AO2AZgOcf4O/nUXJcYfyQkqvMo9lSupBZmmgvuVXlw== - upath@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" @@ -27765,22 +25598,6 @@ update-browserslist-db@^1.0.9: escalade "^3.1.1" picocolors "^1.0.0" -update-notifier@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" - integrity sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw== - dependencies: - boxen "^1.2.1" - chalk "^2.0.1" - configstore "^3.0.0" - import-lazy "^2.1.0" - is-ci "^1.0.10" - is-installed-globally "^0.1.0" - is-npm "^1.0.0" - latest-version "^3.0.0" - semver-diff "^2.0.0" - xdg-basedir "^3.0.0" - update-notifier@^5.0.0, update-notifier@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" @@ -27838,13 +25655,6 @@ url-join@^2.0.2: resolved "https://registry.npmjs.org/url-join/-/url-join-2.0.5.tgz#5af22f18c052a000a48d7b82c5e9c2e2feeda728" integrity sha512-c2H1fIgpUdwFRIru9HFno5DT73Ok8hg5oOb5AT3ayIgvCRfxgs2jyt5Slw8kEB7j3QUr6yJmMPDT/odjk7jXow== -url-parse-lax@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" - integrity sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA== - dependencies: - prepend-http "^1.0.1" - url-parse-lax@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" @@ -27963,7 +25773,7 @@ util@^0.11.0: dependencies: inherits "2.0.3" -utils-merge@1.0.1, utils-merge@^1.0.1: +utils-merge@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== @@ -27973,7 +25783,7 @@ uuid@^3.1.0, uuid@^3.3.2: resolved "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== -uuid@^8.0.0, uuid@^8.3.1, uuid@^8.3.2: +uuid@^8.0.0, uuid@^8.3.2: version "8.3.2" resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== @@ -28188,7 +25998,7 @@ watchpack-chokidar2@^2.0.1: dependencies: chokidar "^2.1.8" -watchpack@^1.4.0, watchpack@^1.7.4: +watchpack@^1.4.0: version "1.7.5" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== @@ -28243,11 +26053,6 @@ webidl-conversions@^4.0.2: resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== -webidl-conversions@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" - integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== - webpack-bundle-analyzer@4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.3.0.tgz#2f3c0ca9041d5ee47fa418693cf56b4a518b578b" @@ -28283,12 +26088,7 @@ webpack-log@^1.0.1: loglevelnext "^1.0.1" uuid "^3.1.0" -webpack-node-externals@^1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/webpack-node-externals/-/webpack-node-externals-1.7.2.tgz#6e1ee79ac67c070402ba700ef033a9b8d52ac4e3" - integrity sha512-ajerHZ+BJKeCLviLUUmnyd5B4RavLF76uv3cs6KNuO8W+HuQaEs0y0L7o40NQxdPy5w0pcv8Ew7yPUAQG0UdCg== - -webpack-sources@^1.0.1, webpack-sources@^1.4.0, webpack-sources@^1.4.1: +webpack-sources@^1.0.1: version "1.4.3" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== @@ -28324,35 +26124,6 @@ webpack@^3.8.1: webpack-sources "^1.0.1" yargs "^8.0.2" -webpack@^4.35.0: - version "4.46.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542" - integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q== - dependencies: - "@webassemblyjs/ast" "1.9.0" - "@webassemblyjs/helper-module-context" "1.9.0" - "@webassemblyjs/wasm-edit" "1.9.0" - "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.4.1" - ajv "^6.10.2" - ajv-keywords "^3.4.1" - chrome-trace-event "^1.0.2" - enhanced-resolve "^4.5.0" - eslint-scope "^4.0.3" - json-parse-better-errors "^1.0.2" - loader-runner "^2.4.0" - loader-utils "^1.2.3" - memory-fs "^0.4.1" - micromatch "^3.1.10" - mkdirp "^0.5.3" - neo-async "^2.6.1" - node-libs-browser "^2.2.1" - schema-utils "^1.0.0" - tapable "^1.1.3" - terser-webpack-plugin "^1.4.3" - watchpack "^1.7.4" - webpack-sources "^1.4.1" - well-known-symbols@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/well-known-symbols/-/well-known-symbols-2.0.0.tgz#e9c7c07dbd132b7b84212c8174391ec1f9871ba5" @@ -28370,14 +26141,6 @@ whatwg-mimetype@^2.2.0: resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== -whatwg-url@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" - integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== - dependencies: - tr46 "^3.0.0" - webidl-conversions "^7.0.0" - whatwg-url@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" @@ -28459,13 +26222,6 @@ wide-align@^1.1.2, wide-align@^1.1.5: dependencies: string-width "^1.0.2 || 2 || 3 || 4" -widest-line@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" - integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== - dependencies: - string-width "^2.1.1" - widest-line@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" @@ -28532,13 +26288,6 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== -worker-farm@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== - dependencies: - errno "~0.1.7" - workerpool@6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" @@ -28592,7 +26341,7 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -write-file-atomic@^2.0.0, write-file-atomic@^2.4.2: +write-file-atomic@^2.4.2: version "2.4.3" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== @@ -28669,11 +26418,6 @@ ws@~8.2.3: resolved "https://registry.yarnpkg.com/ws/-/ws-8.2.3.tgz#63a56456db1b04367d0b721a0b80cae6d8becbba" integrity sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA== -xdg-basedir@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" - integrity sha512-1Dly4xqlulvPD3fZUQJLY+FUIeqN3N2MM3uqe4rCJftAvOjFa3jFGfctOgluGx4ahPbUCsZkmJILiP0Vi4T6lQ== - xdg-basedir@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" @@ -28743,11 +26487,6 @@ yallist@^2.1.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== -yallist@^3.0.2: - version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== - yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" @@ -28897,7 +26636,7 @@ yargs@~3.10.0: decamelize "^1.0.0" window-size "0.1.0" -yauzl@^2.10.0, yauzl@^2.4.2: +yauzl@^2.4.2: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==