From 860f8aae0bb1882c681e1f3e42e1514e7bec48ba Mon Sep 17 00:00:00 2001 From: Wouter Termont Date: Tue, 12 Mar 2024 13:26:45 +0100 Subject: [PATCH 01/83] feat: demo with file backend instead of templates Signed-off-by: Wouter Termont --- .gitignore | 4 + ...c5b28411-2340-4820-8f4f-62c209c20172$.json | 1 + ...d3156f11-ffb2-42f3-b928-b9752a9873ce$.json | 1 + ...f644f883-ef0f-4986-b5ff-df6866707cf6$.json | 1 + ...173cb7a2-2b22-4b25-b4fb-6f61e0adbd35$.json | 1 + ...63f475ea-e87c-472c-a224-1b918a9ae059$.json | 1 + ...6bf4fe03-20c1-419d-9934-2b7533296edf$.json | 1 + ...084fd63e-faf3-4169-a917-0cdeb768710d$.json | 1 + ...126fe0d0-8189-4a51-954a-79e09ff88e18$.json | 1 + ...934434d8-d44e-49c2-9618-694594059554$.json | 1 + .../password/email/catalog@example.org$.json | 1 + .../password/email/demo@example.org$.json | 1 + .../password/email/ruben@example.org$.json | 1 + ...b79c41e7-a00d-421d-9b57-009c99e7b0d5$.json | 1 + ...A%2F%2Flocalhost%3A3000%2Fcatalog%2F$.json | 1 + ...p%3A%2F%2Flocalhost%3A3000%2Fdemo%2F$.json | 1 + ...%3A%2F%2Flocalhost%3A3000%2Fruben%2F$.json | 1 + ...eb3898e1-d409-41d7-b928-f11a2116f218$.json | 1 + ...f1d42d48-8b96-4122-9e5d-f5803863a243$.json | 1 + ...0c9522ea-b362-4991-bc72-fd1516834770$.json | 1 + ...ccd6dcae-8e4c-4e43-9888-cc3bdf49acbd$.json | 1 + ...fd6d91cf-4b8c-4769-962f-d9f667ee6ee9$.json | 1 + ...3A3000%2Fcatalog%2Fprofile%2Fcard#me$.json | 1 + ...st%3A3000%2Fdemo%2Fprofile%2Fcard#me$.json | 1 + ...t%3A3000%2Fruben%2Fprofile%2Fcard#me$.json | 1 + demo/data/.internal/idp/keys/jwks$.json | 1 + .../.internal/setup/current-base-url$.json | 1 + .../setup/current-server-version$.json | 1 + .../.internal/setup/rootInitialized$.json | 1 + demo/data/.internal/setup/v6-migration$.json | 1 + demo/data/.meta | 1 + demo/data/catalog/.meta | 1 + .../data/catalog}/public/filters/age$.sparql | 0 .../data/catalog}/public/filters/bday$.sparql | 0 demo/data/demo/.meta | 1 + .../data/demo/README$.markdown | 6 +- demo/data/demo/public/.meta | 7 ++ demo/data/demo/public/bday-app/index.html | 0 demo/data/demo/public/vendor/index.html | 0 demo/data/index.html | 97 +++++++++++++++++++ demo/data/ruben/.meta | 1 + demo/data/ruben/private/.meta | 13 +++ demo/data/ruben/private/data$.ttl | 14 +++ demo/data/ruben/profile/card$.ttl | 13 +++ package.json | 7 +- packages/css/config/default.json | 2 +- packages/css/config/demo.json | 22 ----- packages/css/package.json | 5 +- packages/css/templates/pod/base/.meta | 3 - packages/css/templates/pod/base/private/.meta | 22 ----- .../css/templates/pod/base/private/data$.ttl | 20 ---- .../templates/pod/base/profile/card$.ttl.hbs | 13 --- packages/css/templates/pod/base/public/.meta | 25 ----- .../css/templates/pod/base/public/data$.ttl | 23 ----- packages/uma/package.json | 3 +- scripts/{test-derived.ts => test-demo.ts} | 21 +++- yarn.lock | 4 +- 57 files changed, 216 insertions(+), 141 deletions(-) create mode 100644 demo/data/.internal/accounts/data/c5b28411-2340-4820-8f4f-62c209c20172$.json create mode 100644 demo/data/.internal/accounts/data/d3156f11-ffb2-42f3-b928-b9752a9873ce$.json create mode 100644 demo/data/.internal/accounts/data/f644f883-ef0f-4986-b5ff-df6866707cf6$.json create mode 100644 demo/data/.internal/accounts/index/owner/173cb7a2-2b22-4b25-b4fb-6f61e0adbd35$.json create mode 100644 demo/data/.internal/accounts/index/owner/63f475ea-e87c-472c-a224-1b918a9ae059$.json create mode 100644 demo/data/.internal/accounts/index/owner/6bf4fe03-20c1-419d-9934-2b7533296edf$.json create mode 100644 demo/data/.internal/accounts/index/password/084fd63e-faf3-4169-a917-0cdeb768710d$.json create mode 100644 demo/data/.internal/accounts/index/password/126fe0d0-8189-4a51-954a-79e09ff88e18$.json create mode 100644 demo/data/.internal/accounts/index/password/934434d8-d44e-49c2-9618-694594059554$.json create mode 100644 demo/data/.internal/accounts/index/password/email/catalog@example.org$.json create mode 100644 demo/data/.internal/accounts/index/password/email/demo@example.org$.json create mode 100644 demo/data/.internal/accounts/index/password/email/ruben@example.org$.json create mode 100644 demo/data/.internal/accounts/index/pod/b79c41e7-a00d-421d-9b57-009c99e7b0d5$.json create mode 100644 demo/data/.internal/accounts/index/pod/baseUrl/http%3A%2F%2Flocalhost%3A3000%2Fcatalog%2F$.json create mode 100644 demo/data/.internal/accounts/index/pod/baseUrl/http%3A%2F%2Flocalhost%3A3000%2Fdemo%2F$.json create mode 100644 demo/data/.internal/accounts/index/pod/baseUrl/http%3A%2F%2Flocalhost%3A3000%2Fruben%2F$.json create mode 100644 demo/data/.internal/accounts/index/pod/eb3898e1-d409-41d7-b928-f11a2116f218$.json create mode 100644 demo/data/.internal/accounts/index/pod/f1d42d48-8b96-4122-9e5d-f5803863a243$.json create mode 100644 demo/data/.internal/accounts/index/webIdLink/0c9522ea-b362-4991-bc72-fd1516834770$.json create mode 100644 demo/data/.internal/accounts/index/webIdLink/ccd6dcae-8e4c-4e43-9888-cc3bdf49acbd$.json create mode 100644 demo/data/.internal/accounts/index/webIdLink/fd6d91cf-4b8c-4769-962f-d9f667ee6ee9$.json create mode 100644 demo/data/.internal/accounts/index/webIdLink/webId/http%3A%2F%2Flocalhost%3A3000%2Fcatalog%2Fprofile%2Fcard#me$.json create mode 100644 demo/data/.internal/accounts/index/webIdLink/webId/http%3A%2F%2Flocalhost%3A3000%2Fdemo%2Fprofile%2Fcard#me$.json create mode 100644 demo/data/.internal/accounts/index/webIdLink/webId/http%3A%2F%2Flocalhost%3A3000%2Fruben%2Fprofile%2Fcard#me$.json create mode 100644 demo/data/.internal/idp/keys/jwks$.json create mode 100644 demo/data/.internal/setup/current-base-url$.json create mode 100644 demo/data/.internal/setup/current-server-version$.json create mode 100644 demo/data/.internal/setup/rootInitialized$.json create mode 100644 demo/data/.internal/setup/v6-migration$.json create mode 100644 demo/data/.meta create mode 100644 demo/data/catalog/.meta rename {packages/css/templates/pod/base => demo/data/catalog}/public/filters/age$.sparql (100%) rename {packages/css/templates/pod/base => demo/data/catalog}/public/filters/bday$.sparql (100%) create mode 100644 demo/data/demo/.meta rename packages/css/templates/pod/base/README$.md.hbs => demo/data/demo/README$.markdown (75%) create mode 100644 demo/data/demo/public/.meta create mode 100644 demo/data/demo/public/bday-app/index.html create mode 100644 demo/data/demo/public/vendor/index.html create mode 100644 demo/data/index.html create mode 100644 demo/data/ruben/.meta create mode 100644 demo/data/ruben/private/.meta create mode 100644 demo/data/ruben/private/data$.ttl create mode 100644 demo/data/ruben/profile/card$.ttl delete mode 100644 packages/css/config/demo.json delete mode 100644 packages/css/templates/pod/base/.meta delete mode 100644 packages/css/templates/pod/base/private/.meta delete mode 100644 packages/css/templates/pod/base/private/data$.ttl delete mode 100644 packages/css/templates/pod/base/profile/card$.ttl.hbs delete mode 100644 packages/css/templates/pod/base/public/.meta delete mode 100644 packages/css/templates/pod/base/public/data$.ttl rename scripts/{test-derived.ts => test-demo.ts} (84%) diff --git a/.gitignore b/.gitignore index e541974f..3b47ed2c 100644 --- a/.gitignore +++ b/.gitignore @@ -56,3 +56,7 @@ pids .env .env.local .env.*.local + +# Temporary folders & files +tmp +*.tmp diff --git a/demo/data/.internal/accounts/data/c5b28411-2340-4820-8f4f-62c209c20172$.json b/demo/data/.internal/accounts/data/c5b28411-2340-4820-8f4f-62c209c20172$.json new file mode 100644 index 00000000..b57d48d4 --- /dev/null +++ b/demo/data/.internal/accounts/data/c5b28411-2340-4820-8f4f-62c209c20172$.json @@ -0,0 +1 @@ +{"key":"accounts/data/c5b28411-2340-4820-8f4f-62c209c20172","payload":{"linkedLoginsCount":1,"id":"c5b28411-2340-4820-8f4f-62c209c20172","authzServer":"http://localhost:4000/uma","**password**":{"934434d8-d44e-49c2-9618-694594059554":{"accountId":"c5b28411-2340-4820-8f4f-62c209c20172","email":"catalog@example.org","password":"$2a$10$8El17QwKSx3XaHjm.puBiOiNdNQv5t6JHPOVSvPnl8meQFE63CWo6","verified":true,"id":"934434d8-d44e-49c2-9618-694594059554"}},"**clientCredentials**":{},"**pod**":{"f1d42d48-8b96-4122-9e5d-f5803863a243":{"baseUrl":"http://localhost:3000/catalog/","accountId":"c5b28411-2340-4820-8f4f-62c209c20172","id":"f1d42d48-8b96-4122-9e5d-f5803863a243","**owner**":{"6bf4fe03-20c1-419d-9934-2b7533296edf":{"podId":"f1d42d48-8b96-4122-9e5d-f5803863a243","webId":"http://localhost:3000/catalog/profile/card#me","visible":false,"id":"6bf4fe03-20c1-419d-9934-2b7533296edf"}}}},"**webIdLink**":{"0c9522ea-b362-4991-bc72-fd1516834770":{"webId":"http://localhost:3000/catalog/profile/card#me","accountId":"c5b28411-2340-4820-8f4f-62c209c20172","id":"0c9522ea-b362-4991-bc72-fd1516834770"}}}} diff --git a/demo/data/.internal/accounts/data/d3156f11-ffb2-42f3-b928-b9752a9873ce$.json b/demo/data/.internal/accounts/data/d3156f11-ffb2-42f3-b928-b9752a9873ce$.json new file mode 100644 index 00000000..ca7bad89 --- /dev/null +++ b/demo/data/.internal/accounts/data/d3156f11-ffb2-42f3-b928-b9752a9873ce$.json @@ -0,0 +1 @@ +{"key":"accounts/data/d3156f11-ffb2-42f3-b928-b9752a9873ce","payload":{"linkedLoginsCount":1,"id":"d3156f11-ffb2-42f3-b928-b9752a9873ce","authzServer":"http://localhost:4000/uma","**password**":{"084fd63e-faf3-4169-a917-0cdeb768710d":{"accountId":"d3156f11-ffb2-42f3-b928-b9752a9873ce","email":"demo@example.org","password":"$2a$10$CRQGngKyURJztvqyDIdXfOuZMiE43z1kuV7BDwAJCmi/gL4TCcPJ2","verified":true,"id":"084fd63e-faf3-4169-a917-0cdeb768710d"}},"**clientCredentials**":{},"**pod**":{"eb3898e1-d409-41d7-b928-f11a2116f218":{"baseUrl":"http://localhost:3000/demo/","accountId":"d3156f11-ffb2-42f3-b928-b9752a9873ce","id":"eb3898e1-d409-41d7-b928-f11a2116f218","**owner**":{"63f475ea-e87c-472c-a224-1b918a9ae059":{"podId":"eb3898e1-d409-41d7-b928-f11a2116f218","webId":"http://localhost:3000/demo/profile/card#me","visible":false,"id":"63f475ea-e87c-472c-a224-1b918a9ae059"}}}},"**webIdLink**":{"ccd6dcae-8e4c-4e43-9888-cc3bdf49acbd":{"webId":"http://localhost:3000/demo/profile/card#me","accountId":"d3156f11-ffb2-42f3-b928-b9752a9873ce","id":"ccd6dcae-8e4c-4e43-9888-cc3bdf49acbd"}}}} \ No newline at end of file diff --git a/demo/data/.internal/accounts/data/f644f883-ef0f-4986-b5ff-df6866707cf6$.json b/demo/data/.internal/accounts/data/f644f883-ef0f-4986-b5ff-df6866707cf6$.json new file mode 100644 index 00000000..b79da7e9 --- /dev/null +++ b/demo/data/.internal/accounts/data/f644f883-ef0f-4986-b5ff-df6866707cf6$.json @@ -0,0 +1 @@ +{"key":"accounts/data/f644f883-ef0f-4986-b5ff-df6866707cf6","payload":{"linkedLoginsCount":1,"id":"f644f883-ef0f-4986-b5ff-df6866707cf6","authzServer":"http://localhost:4000/uma","**password**":{"126fe0d0-8189-4a51-954a-79e09ff88e18":{"accountId":"f644f883-ef0f-4986-b5ff-df6866707cf6","email":"ruben@example.org","password":"$2a$10$76sVaHi0nDwl46jKtXZR1uxwwIg8hp6gcfzgT7GCzEdKaOVZSnd1e","verified":true,"id":"126fe0d0-8189-4a51-954a-79e09ff88e18"}},"**clientCredentials**":{},"**pod**":{"b79c41e7-a00d-421d-9b57-009c99e7b0d5":{"baseUrl":"http://localhost:3000/ruben/","accountId":"f644f883-ef0f-4986-b5ff-df6866707cf6","id":"b79c41e7-a00d-421d-9b57-009c99e7b0d5","**owner**":{"173cb7a2-2b22-4b25-b4fb-6f61e0adbd35":{"podId":"b79c41e7-a00d-421d-9b57-009c99e7b0d5","webId":"http://localhost:3000/ruben/profile/card#me","visible":false,"id":"173cb7a2-2b22-4b25-b4fb-6f61e0adbd35"}}}},"**webIdLink**":{"fd6d91cf-4b8c-4769-962f-d9f667ee6ee9":{"webId":"http://localhost:3000/ruben/profile/card#me","accountId":"f644f883-ef0f-4986-b5ff-df6866707cf6","id":"fd6d91cf-4b8c-4769-962f-d9f667ee6ee9"}}}} diff --git a/demo/data/.internal/accounts/index/owner/173cb7a2-2b22-4b25-b4fb-6f61e0adbd35$.json b/demo/data/.internal/accounts/index/owner/173cb7a2-2b22-4b25-b4fb-6f61e0adbd35$.json new file mode 100644 index 00000000..5957f410 --- /dev/null +++ b/demo/data/.internal/accounts/index/owner/173cb7a2-2b22-4b25-b4fb-6f61e0adbd35$.json @@ -0,0 +1 @@ +{"key":"accounts/index/owner/173cb7a2-2b22-4b25-b4fb-6f61e0adbd35","payload":["f644f883-ef0f-4986-b5ff-df6866707cf6"]} \ No newline at end of file diff --git a/demo/data/.internal/accounts/index/owner/63f475ea-e87c-472c-a224-1b918a9ae059$.json b/demo/data/.internal/accounts/index/owner/63f475ea-e87c-472c-a224-1b918a9ae059$.json new file mode 100644 index 00000000..b1768574 --- /dev/null +++ b/demo/data/.internal/accounts/index/owner/63f475ea-e87c-472c-a224-1b918a9ae059$.json @@ -0,0 +1 @@ +{"key":"accounts/index/owner/63f475ea-e87c-472c-a224-1b918a9ae059","payload":["d3156f11-ffb2-42f3-b928-b9752a9873ce"]} \ No newline at end of file diff --git a/demo/data/.internal/accounts/index/owner/6bf4fe03-20c1-419d-9934-2b7533296edf$.json b/demo/data/.internal/accounts/index/owner/6bf4fe03-20c1-419d-9934-2b7533296edf$.json new file mode 100644 index 00000000..45d09cb0 --- /dev/null +++ b/demo/data/.internal/accounts/index/owner/6bf4fe03-20c1-419d-9934-2b7533296edf$.json @@ -0,0 +1 @@ +{"key":"accounts/index/owner/6bf4fe03-20c1-419d-9934-2b7533296edf","payload":["c5b28411-2340-4820-8f4f-62c209c20172"]} \ No newline at end of file diff --git a/demo/data/.internal/accounts/index/password/084fd63e-faf3-4169-a917-0cdeb768710d$.json b/demo/data/.internal/accounts/index/password/084fd63e-faf3-4169-a917-0cdeb768710d$.json new file mode 100644 index 00000000..4caef5d5 --- /dev/null +++ b/demo/data/.internal/accounts/index/password/084fd63e-faf3-4169-a917-0cdeb768710d$.json @@ -0,0 +1 @@ +{"key":"accounts/index/password/084fd63e-faf3-4169-a917-0cdeb768710d","payload":["d3156f11-ffb2-42f3-b928-b9752a9873ce"]} \ No newline at end of file diff --git a/demo/data/.internal/accounts/index/password/126fe0d0-8189-4a51-954a-79e09ff88e18$.json b/demo/data/.internal/accounts/index/password/126fe0d0-8189-4a51-954a-79e09ff88e18$.json new file mode 100644 index 00000000..8a46d2c9 --- /dev/null +++ b/demo/data/.internal/accounts/index/password/126fe0d0-8189-4a51-954a-79e09ff88e18$.json @@ -0,0 +1 @@ +{"key":"accounts/index/password/126fe0d0-8189-4a51-954a-79e09ff88e18","payload":["f644f883-ef0f-4986-b5ff-df6866707cf6"]} \ No newline at end of file diff --git a/demo/data/.internal/accounts/index/password/934434d8-d44e-49c2-9618-694594059554$.json b/demo/data/.internal/accounts/index/password/934434d8-d44e-49c2-9618-694594059554$.json new file mode 100644 index 00000000..9ecc6a52 --- /dev/null +++ b/demo/data/.internal/accounts/index/password/934434d8-d44e-49c2-9618-694594059554$.json @@ -0,0 +1 @@ +{"key":"accounts/index/password/934434d8-d44e-49c2-9618-694594059554","payload":["c5b28411-2340-4820-8f4f-62c209c20172"]} \ No newline at end of file diff --git a/demo/data/.internal/accounts/index/password/email/catalog@example.org$.json b/demo/data/.internal/accounts/index/password/email/catalog@example.org$.json new file mode 100644 index 00000000..286ddd5b --- /dev/null +++ b/demo/data/.internal/accounts/index/password/email/catalog@example.org$.json @@ -0,0 +1 @@ +{"key":"accounts/index/password/email/catalog%40example.org","payload":["c5b28411-2340-4820-8f4f-62c209c20172"]} diff --git a/demo/data/.internal/accounts/index/password/email/demo@example.org$.json b/demo/data/.internal/accounts/index/password/email/demo@example.org$.json new file mode 100644 index 00000000..5a421050 --- /dev/null +++ b/demo/data/.internal/accounts/index/password/email/demo@example.org$.json @@ -0,0 +1 @@ +{"key":"accounts/index/password/email/demo%40example.org","payload":["d3156f11-ffb2-42f3-b928-b9752a9873ce"]} \ No newline at end of file diff --git a/demo/data/.internal/accounts/index/password/email/ruben@example.org$.json b/demo/data/.internal/accounts/index/password/email/ruben@example.org$.json new file mode 100644 index 00000000..4a1aa393 --- /dev/null +++ b/demo/data/.internal/accounts/index/password/email/ruben@example.org$.json @@ -0,0 +1 @@ +{"key":"accounts/index/password/email/ruben%40example.org","payload":["f644f883-ef0f-4986-b5ff-df6866707cf6"]} diff --git a/demo/data/.internal/accounts/index/pod/b79c41e7-a00d-421d-9b57-009c99e7b0d5$.json b/demo/data/.internal/accounts/index/pod/b79c41e7-a00d-421d-9b57-009c99e7b0d5$.json new file mode 100644 index 00000000..e103f676 --- /dev/null +++ b/demo/data/.internal/accounts/index/pod/b79c41e7-a00d-421d-9b57-009c99e7b0d5$.json @@ -0,0 +1 @@ +{"key":"accounts/index/pod/b79c41e7-a00d-421d-9b57-009c99e7b0d5","payload":["f644f883-ef0f-4986-b5ff-df6866707cf6"]} \ No newline at end of file diff --git a/demo/data/.internal/accounts/index/pod/baseUrl/http%3A%2F%2Flocalhost%3A3000%2Fcatalog%2F$.json b/demo/data/.internal/accounts/index/pod/baseUrl/http%3A%2F%2Flocalhost%3A3000%2Fcatalog%2F$.json new file mode 100644 index 00000000..0d660bc7 --- /dev/null +++ b/demo/data/.internal/accounts/index/pod/baseUrl/http%3A%2F%2Flocalhost%3A3000%2Fcatalog%2F$.json @@ -0,0 +1 @@ +{"key":"accounts/index/pod/baseUrl/http%3A%2F%2Flocalhost%3A3000%2Fcatalog%2F","payload":["c5b28411-2340-4820-8f4f-62c209c20172"]} diff --git a/demo/data/.internal/accounts/index/pod/baseUrl/http%3A%2F%2Flocalhost%3A3000%2Fdemo%2F$.json b/demo/data/.internal/accounts/index/pod/baseUrl/http%3A%2F%2Flocalhost%3A3000%2Fdemo%2F$.json new file mode 100644 index 00000000..62c3a104 --- /dev/null +++ b/demo/data/.internal/accounts/index/pod/baseUrl/http%3A%2F%2Flocalhost%3A3000%2Fdemo%2F$.json @@ -0,0 +1 @@ +{"key":"accounts/index/pod/baseUrl/http%3A%2F%2Flocalhost%3A3000%2Fdemo%2F","payload":["d3156f11-ffb2-42f3-b928-b9752a9873ce"]} \ No newline at end of file diff --git a/demo/data/.internal/accounts/index/pod/baseUrl/http%3A%2F%2Flocalhost%3A3000%2Fruben%2F$.json b/demo/data/.internal/accounts/index/pod/baseUrl/http%3A%2F%2Flocalhost%3A3000%2Fruben%2F$.json new file mode 100644 index 00000000..ab4619d9 --- /dev/null +++ b/demo/data/.internal/accounts/index/pod/baseUrl/http%3A%2F%2Flocalhost%3A3000%2Fruben%2F$.json @@ -0,0 +1 @@ +{"key":"accounts/index/pod/baseUrl/http%3A%2F%2Flocalhost%3A3000%2Fruben%2F","payload":["f644f883-ef0f-4986-b5ff-df6866707cf6"]} diff --git a/demo/data/.internal/accounts/index/pod/eb3898e1-d409-41d7-b928-f11a2116f218$.json b/demo/data/.internal/accounts/index/pod/eb3898e1-d409-41d7-b928-f11a2116f218$.json new file mode 100644 index 00000000..7cab2026 --- /dev/null +++ b/demo/data/.internal/accounts/index/pod/eb3898e1-d409-41d7-b928-f11a2116f218$.json @@ -0,0 +1 @@ +{"key":"accounts/index/pod/eb3898e1-d409-41d7-b928-f11a2116f218","payload":["d3156f11-ffb2-42f3-b928-b9752a9873ce"]} \ No newline at end of file diff --git a/demo/data/.internal/accounts/index/pod/f1d42d48-8b96-4122-9e5d-f5803863a243$.json b/demo/data/.internal/accounts/index/pod/f1d42d48-8b96-4122-9e5d-f5803863a243$.json new file mode 100644 index 00000000..31a1b104 --- /dev/null +++ b/demo/data/.internal/accounts/index/pod/f1d42d48-8b96-4122-9e5d-f5803863a243$.json @@ -0,0 +1 @@ +{"key":"accounts/index/pod/f1d42d48-8b96-4122-9e5d-f5803863a243","payload":["c5b28411-2340-4820-8f4f-62c209c20172"]} \ No newline at end of file diff --git a/demo/data/.internal/accounts/index/webIdLink/0c9522ea-b362-4991-bc72-fd1516834770$.json b/demo/data/.internal/accounts/index/webIdLink/0c9522ea-b362-4991-bc72-fd1516834770$.json new file mode 100644 index 00000000..3492d1b3 --- /dev/null +++ b/demo/data/.internal/accounts/index/webIdLink/0c9522ea-b362-4991-bc72-fd1516834770$.json @@ -0,0 +1 @@ +{"key":"accounts/index/webIdLink/0c9522ea-b362-4991-bc72-fd1516834770","payload":["c5b28411-2340-4820-8f4f-62c209c20172"]} \ No newline at end of file diff --git a/demo/data/.internal/accounts/index/webIdLink/ccd6dcae-8e4c-4e43-9888-cc3bdf49acbd$.json b/demo/data/.internal/accounts/index/webIdLink/ccd6dcae-8e4c-4e43-9888-cc3bdf49acbd$.json new file mode 100644 index 00000000..0abedfbc --- /dev/null +++ b/demo/data/.internal/accounts/index/webIdLink/ccd6dcae-8e4c-4e43-9888-cc3bdf49acbd$.json @@ -0,0 +1 @@ +{"key":"accounts/index/webIdLink/ccd6dcae-8e4c-4e43-9888-cc3bdf49acbd","payload":["d3156f11-ffb2-42f3-b928-b9752a9873ce"]} \ No newline at end of file diff --git a/demo/data/.internal/accounts/index/webIdLink/fd6d91cf-4b8c-4769-962f-d9f667ee6ee9$.json b/demo/data/.internal/accounts/index/webIdLink/fd6d91cf-4b8c-4769-962f-d9f667ee6ee9$.json new file mode 100644 index 00000000..c3b3703c --- /dev/null +++ b/demo/data/.internal/accounts/index/webIdLink/fd6d91cf-4b8c-4769-962f-d9f667ee6ee9$.json @@ -0,0 +1 @@ +{"key":"accounts/index/webIdLink/fd6d91cf-4b8c-4769-962f-d9f667ee6ee9","payload":["f644f883-ef0f-4986-b5ff-df6866707cf6"]} \ No newline at end of file diff --git a/demo/data/.internal/accounts/index/webIdLink/webId/http%3A%2F%2Flocalhost%3A3000%2Fcatalog%2Fprofile%2Fcard#me$.json b/demo/data/.internal/accounts/index/webIdLink/webId/http%3A%2F%2Flocalhost%3A3000%2Fcatalog%2Fprofile%2Fcard#me$.json new file mode 100644 index 00000000..43f90ca5 --- /dev/null +++ b/demo/data/.internal/accounts/index/webIdLink/webId/http%3A%2F%2Flocalhost%3A3000%2Fcatalog%2Fprofile%2Fcard#me$.json @@ -0,0 +1 @@ +{"key":"accounts/index/webIdLink/webId/http%3A%2F%2Flocalhost%3A3000%2Fcatalog%2Fprofile%2Fcard%23me","payload":["c5b28411-2340-4820-8f4f-62c209c20172"]} diff --git a/demo/data/.internal/accounts/index/webIdLink/webId/http%3A%2F%2Flocalhost%3A3000%2Fdemo%2Fprofile%2Fcard#me$.json b/demo/data/.internal/accounts/index/webIdLink/webId/http%3A%2F%2Flocalhost%3A3000%2Fdemo%2Fprofile%2Fcard#me$.json new file mode 100644 index 00000000..46e79bfd --- /dev/null +++ b/demo/data/.internal/accounts/index/webIdLink/webId/http%3A%2F%2Flocalhost%3A3000%2Fdemo%2Fprofile%2Fcard#me$.json @@ -0,0 +1 @@ +{"key":"accounts/index/webIdLink/webId/http%3A%2F%2Flocalhost%3A3000%2Fdemo%2Fprofile%2Fcard%23me","payload":["d3156f11-ffb2-42f3-b928-b9752a9873ce"]} \ No newline at end of file diff --git a/demo/data/.internal/accounts/index/webIdLink/webId/http%3A%2F%2Flocalhost%3A3000%2Fruben%2Fprofile%2Fcard#me$.json b/demo/data/.internal/accounts/index/webIdLink/webId/http%3A%2F%2Flocalhost%3A3000%2Fruben%2Fprofile%2Fcard#me$.json new file mode 100644 index 00000000..f1c210d9 --- /dev/null +++ b/demo/data/.internal/accounts/index/webIdLink/webId/http%3A%2F%2Flocalhost%3A3000%2Fruben%2Fprofile%2Fcard#me$.json @@ -0,0 +1 @@ +{"key":"accounts/index/webIdLink/webId/http%3A%2F%2Flocalhost%3A3000%2Fruben%2Fprofile%2Fcard%23me","payload":["f644f883-ef0f-4986-b5ff-df6866707cf6"]} diff --git a/demo/data/.internal/idp/keys/jwks$.json b/demo/data/.internal/idp/keys/jwks$.json new file mode 100644 index 00000000..355c6ef7 --- /dev/null +++ b/demo/data/.internal/idp/keys/jwks$.json @@ -0,0 +1 @@ +{"key":"idp/keys/jwks","payload":{"keys":[{"kty":"EC","x":"jmoT4I178SCHrtwUu2bFWG0my0o5zQkPhZyDPEyLE6g","y":"nDlReyfF7eyba7XmHXWTs_4Tlzs4ZL94WPaJii7gE90","crv":"P-256","d":"EdprrF79V4LHd5XkO8MHeFyYcXFAgZ_aXmFcuR6lNeU","alg":"ES256"}]}} \ No newline at end of file diff --git a/demo/data/.internal/setup/current-base-url$.json b/demo/data/.internal/setup/current-base-url$.json new file mode 100644 index 00000000..bc4ad5af --- /dev/null +++ b/demo/data/.internal/setup/current-base-url$.json @@ -0,0 +1 @@ +{"key":"setup/current-base-url","payload":"http://localhost:3000/"} \ No newline at end of file diff --git a/demo/data/.internal/setup/current-server-version$.json b/demo/data/.internal/setup/current-server-version$.json new file mode 100644 index 00000000..13e62be5 --- /dev/null +++ b/demo/data/.internal/setup/current-server-version$.json @@ -0,0 +1 @@ +{"key":"setup/current-server-version","payload":"7.0.2"} \ No newline at end of file diff --git a/demo/data/.internal/setup/rootInitialized$.json b/demo/data/.internal/setup/rootInitialized$.json new file mode 100644 index 00000000..6658e134 --- /dev/null +++ b/demo/data/.internal/setup/rootInitialized$.json @@ -0,0 +1 @@ +{"key":"setup/rootInitialized","payload":true} \ No newline at end of file diff --git a/demo/data/.internal/setup/v6-migration$.json b/demo/data/.internal/setup/v6-migration$.json new file mode 100644 index 00000000..a7768a28 --- /dev/null +++ b/demo/data/.internal/setup/v6-migration$.json @@ -0,0 +1 @@ +{"key":"setup/v6-migration","payload":true} \ No newline at end of file diff --git a/demo/data/.meta b/demo/data/.meta new file mode 100644 index 00000000..d1372b07 --- /dev/null +++ b/demo/data/.meta @@ -0,0 +1 @@ + a . diff --git a/demo/data/catalog/.meta b/demo/data/catalog/.meta new file mode 100644 index 00000000..c65fdc62 --- /dev/null +++ b/demo/data/catalog/.meta @@ -0,0 +1 @@ + a . diff --git a/packages/css/templates/pod/base/public/filters/age$.sparql b/demo/data/catalog/public/filters/age$.sparql similarity index 100% rename from packages/css/templates/pod/base/public/filters/age$.sparql rename to demo/data/catalog/public/filters/age$.sparql diff --git a/packages/css/templates/pod/base/public/filters/bday$.sparql b/demo/data/catalog/public/filters/bday$.sparql similarity index 100% rename from packages/css/templates/pod/base/public/filters/bday$.sparql rename to demo/data/catalog/public/filters/bday$.sparql diff --git a/demo/data/demo/.meta b/demo/data/demo/.meta new file mode 100644 index 00000000..ff2a3aee --- /dev/null +++ b/demo/data/demo/.meta @@ -0,0 +1 @@ + a . diff --git a/packages/css/templates/pod/base/README$.md.hbs b/demo/data/demo/README$.markdown similarity index 75% rename from packages/css/templates/pod/base/README$.md.hbs rename to demo/data/demo/README$.markdown index 370a0967..c88e6f20 100644 --- a/packages/css/templates/pod/base/README$.md.hbs +++ b/demo/data/demo/README$.markdown @@ -6,7 +6,7 @@ Your pod is a **secure storage space** for your documents and data. You can choose to share those with other people and apps. As the owner of this pod, -identified by {{webId}}, +identified by http://localhost:3000/demo/profile/card#me, you have access to all of your documents. ## Working with your pod @@ -14,11 +14,11 @@ The easiest way to interact with pods is through Solid apps.
For example, -you can open your pod in [Databrowser](https://solidos.github.io/mashlib/dist/browse.html?uri={{base.path}}). +you can open your pod in [Databrowser](https://solidos.github.io/mashlib/dist/browse.html?uri=http://localhost:3000/demo/). ## Accessing your account To keep track of your pods, webIDs and any other resources, -you can [log in]({{oidcIssuer}}.account/) to your account. +you can [log in](http://localhost:3000/.account/) to your account. There you can, for example, update the owners of this pod. ## Learn more diff --git a/demo/data/demo/public/.meta b/demo/data/demo/public/.meta new file mode 100644 index 00000000..51645fcd --- /dev/null +++ b/demo/data/demo/public/.meta @@ -0,0 +1,7 @@ +_:b82_b79_n3-10 "derived/bday"; + ; + . + _:b82_b79_n3-10, _:b82_b79_n3-11. +_:b82_b79_n3-11 "derived/age"; + ; + . diff --git a/demo/data/demo/public/bday-app/index.html b/demo/data/demo/public/bday-app/index.html new file mode 100644 index 00000000..e69de29b diff --git a/demo/data/demo/public/vendor/index.html b/demo/data/demo/public/vendor/index.html new file mode 100644 index 00000000..e69de29b diff --git a/demo/data/index.html b/demo/data/index.html new file mode 100644 index 00000000..b74cf1c7 --- /dev/null +++ b/demo/data/index.html @@ -0,0 +1,97 @@ + + + + + + Community Solid Server + + + +
+ [Solid logo] +

Community Solid Server

+
+
+

Welcome to Solid

+

+ This server implements + the Solid protocol + so you can create your own Solid Pod + and identity. +

+ +

Getting started as a user

+

+ Sign up for an account + to get started with your own Pod and WebID. +

+

+ The default configuration stores data only in memory. + If you want to keep data permanently, + choose a configuration that saves data to disk instead. +

+

+ To learn more about how this server can be used, + have a look at the + getting started tutorial. +

+ +

Getting started as a developer

+

+ The default configuration includes + the ready-to-use root Pod you're currently looking at. +
+ You can use any of the configurations in the config folder of the server + to set up an instance of this server with different features. + Besides the provided configurations, + you can also fine-tune your own custom configuration using the + configuration generator. +

+

+ You can easily choose any folder on your disk + to expose as the root Pod with file-based configurations. +
+ Use the --help switch to learn more. +

+

+ Due to certain restrictions in the Solid specification it is usually not allowed + to both allow data to be written to the root of the server, + and to enable the creation of new pods. + This configuration does allow both these options to allow a quick exploration of Solid, + but other configurations provided will only allow one of those two to be enabled. +

+ +

Have a wonderful Solid experience

+

+ Learn more about Solid + at solidproject.org. +

+

+ You are warmly invited + to share your experiences + and to report any bugs you encounter. +

+
+ + + + + diff --git a/demo/data/ruben/.meta b/demo/data/ruben/.meta new file mode 100644 index 00000000..2ae477cb --- /dev/null +++ b/demo/data/ruben/.meta @@ -0,0 +1 @@ + a . diff --git a/demo/data/ruben/private/.meta b/demo/data/ruben/private/.meta new file mode 100644 index 00000000..536a6faf --- /dev/null +++ b/demo/data/ruben/private/.meta @@ -0,0 +1,13 @@ +@prefix derived: . + +<> derived:derivedResource [ + derived:template "derived/bday"; + derived:selector <./data>; + derived:filter + ]. + +<> derived:derivedResource [ + derived:template "derived/age"; + derived:selector <./data>; + derived:filter + ]. diff --git a/demo/data/ruben/private/data$.ttl b/demo/data/ruben/private/data$.ttl new file mode 100644 index 00000000..4eef87e2 --- /dev/null +++ b/demo/data/ruben/private/data$.ttl @@ -0,0 +1,14 @@ +@prefix ruben: . +@prefix con: . +@prefix dbo: . +@prefix dbp: . +@prefix foaf: . +@prefix xsd: . + +ruben: a foaf:Person; + con:preferredURI "https://ruben.verborgh.org/profile/#me"; + foaf:familyName "Verborgh"@en, "Verborgh"@nl ; + foaf:givenName "Ruben"@en, "Ruben"@nl ; + dbo:birthDate "1987-02-28"^^xsd:date ; + dbo:birthPlace dbp:Ostend ; + foaf:gender "male"@en . diff --git a/demo/data/ruben/profile/card$.ttl b/demo/data/ruben/profile/card$.ttl new file mode 100644 index 00000000..73d94cc2 --- /dev/null +++ b/demo/data/ruben/profile/card$.ttl @@ -0,0 +1,13 @@ +@prefix rdfs: . +@prefix foaf: . +@prefix solid: . + +<> a foaf:PersonalProfileDocument; + foaf:maker ; + foaf:primaryTopic . + + a foaf:Person ; + foaf:name "Ruben Verborgh"@en, "Ruben Verborgh"@nl; + rdfs:label "Ruben Verborgh"@en, "Ruben Verborgh"@nl; + solid:umaServer "http://localhost:4000/uma" ; + solid:oidcIssuer . diff --git a/package.json b/package.json index b2bf53a7..143bd76c 100644 --- a/package.json +++ b/package.json @@ -56,13 +56,14 @@ "build:all": "yarn workspaces foreach --exclude . -A -pi -t run build", "test:all": "yarn workspaces foreach --exclude . -A -pi run test", "start:all": "yarn workspaces foreach --exclude . -A -pi run start", + "start:demo": "yarn workspaces foreach --exclude . -A -pi run demo", + "script:demo": "yarn exec ts-node ./scripts/test-demo.ts", "script:public": "yarn exec ts-node ./scripts/test-public.ts", "script:private": "yarn exec ts-node ./scripts/test-private.ts", - "script:derived": "yarn exec ts-node ./scripts/test-derived.ts", "script:registration": "yarn exec ts-node ./scripts/test-registration.ts", "script:ucp-enforcement": "yarn exec ts-node ./scripts/test-ucp-enforcement.ts", "script:uma-ucp": "yarn exec ts-node ./scripts/test-uma-ucp.ts", - "script:flow": "yarn run script:public && yarn run script:private && yarn run script:derived && yarn run script:uma-ucp && yarn run script:registration && yarn run script:ucp-enforcement" + "script:flow": "yarn run script:public && yarn run script:private && yarn run script:uma-ucp && yarn run script:registration && yarn run script:ucp-enforcement" }, "devDependencies": { "@commitlint/cli": "^16.1.0", @@ -77,7 +78,7 @@ "eslint": "^8.10.0", "jest": "^29.7.0", "koreografeye": "^0.4.8", - "shx": "^0.3.3", + "shx": "^0.3.4", "ts-jest": "^29.1.1", "ts-node": "^10.9.2", "typescript": "^5.2.2" diff --git a/packages/css/config/default.json b/packages/css/config/default.json index 96ed5fe2..c7bb1f02 100644 --- a/packages/css/config/default.json +++ b/packages/css/config/default.json @@ -17,7 +17,6 @@ "css:config/identity/pod/static.json", "css:config/ldp/metadata-parser/default.json", "css:config/ldp/modes/default.json", - "css:config/storage/backend/memory.json", "css:config/storage/key-value/resource-store.json", "css:config/storage/middleware/default.json", "css:config/util/auxiliary/acl.json", @@ -35,6 +34,7 @@ "uma-css:config/ldp/metadata-writer/uma.json", "uma-css:config/identity/handler/default.json", "uma-css:config/app/init/initialize-intro.json", + "css:config/storage/backend/file.json", "css:config/storage/location/pod.json" ], "@graph": [ diff --git a/packages/css/config/demo.json b/packages/css/config/demo.json deleted file mode 100644 index 797817ee..00000000 --- a/packages/css/config/demo.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "@context": [ - "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^7.0.0/components/context.jsonld", - "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/derived-resources-component/^1.0.0/components/context.jsonld" - ], - "@graph": [ - { - "@id": "urn:solid-server:derived:PodResourcesOverride", - "@type": "Override", - "overrideInstance": { - "@id": "urn:solid-server:default:PodResourcesGenerator" - }, - "overrideParameters": { - "@type": "StaticFolderGenerator", - "templateFolder": "templates/pod", - "resourcesGenerator": { - "@id": "urn:solid-server:default:TemplatedResourcesGenerator" - } - } - } - ] -} diff --git a/packages/css/package.json b/packages/css/package.json index a54591c2..bd2a428c 100644 --- a/packages/css/package.json +++ b/packages/css/package.json @@ -60,7 +60,10 @@ "build:ts": "yarn run -T tsc", "build:components": "yarn run -T componentsjs-generator -r uma-css -s src/ -c dist/components -i .componentsignore --lenient", "test": "yarn run -T jest --coverage", - "start": "yarn run community-solid-server -m . -c ./config/default.json ./config/derived.json ./config/demo.json --seedConfig ./config/seed.json" + "start": "yarn run community-solid-server -m . -c ./config/default.json --seedConfig ./config/seed.json", + "demo": "yarn run demo:setup && yarn run demo:start", + "demo:setup": "yarn run -T shx rm -rf ./tmp && yarn run -T shx cp -R ../../demo/data ./tmp", + "demo:start": "yarn run community-solid-server -m . -c ./config/default.json ./config/derived.json -f ./tmp" }, "dependencies": { "@solid/community-server": "^7.0.2", diff --git a/packages/css/templates/pod/base/.meta b/packages/css/templates/pod/base/.meta deleted file mode 100644 index 5ecce5ef..00000000 --- a/packages/css/templates/pod/base/.meta +++ /dev/null @@ -1,3 +0,0 @@ -@prefix pim: . - -<> a pim:Storage. diff --git a/packages/css/templates/pod/base/private/.meta b/packages/css/templates/pod/base/private/.meta deleted file mode 100644 index 280e5e5b..00000000 --- a/packages/css/templates/pod/base/private/.meta +++ /dev/null @@ -1,22 +0,0 @@ -@prefix derived: . - -<> - derived:derivedResource [ - derived:template "derived/bday"; - derived:selector <./data>; - derived:filter <../public/filters/bday> - ]. - -<> - derived:derivedResource [ - derived:template "derived/age"; - derived:selector <./data>; - derived:filter <../public/filters/age> - ]. - -# <> -# derived:derivedResource [ -# derived:template "query{?var}"; -# derived:selector ; -# derived:filter -# ]. diff --git a/packages/css/templates/pod/base/private/data$.ttl b/packages/css/templates/pod/base/private/data$.ttl deleted file mode 100644 index e00651f1..00000000 --- a/packages/css/templates/pod/base/private/data$.ttl +++ /dev/null @@ -1,20 +0,0 @@ -@prefix ruben: . -@prefix con: . -@prefix dbo: . -@prefix dbp: . -@prefix foaf: . -@prefix rdfs: . -@prefix vcard: . -@prefix xsd: . - -ruben: a foaf:Person; - foaf:name "Ruben Verborgh"@en, "Ruben Verborgh"@nl; - rdfs:label "Ruben Verborgh"@en, "Ruben Verborgh"@nl; - vcard:fn "Ruben Verborgh"@en, "Ruben Verborgh"@nl; - con:preferredURI "https://ruben.verborgh.org/profile/#me"; - foaf:givenName "Ruben"@en, "Ruben"@nl; - foaf:familyName "Verborgh"@en, "Verborgh"@nl; - rdfs:label "Ruben Verborgh"@en, "Ruben Verborgh"@nl; - dbo:birthPlace dbp:Ostend; - dbo:birthDate "1987-02-28"^^xsd:date; - foaf:gender "male"@en. diff --git a/packages/css/templates/pod/base/profile/card$.ttl.hbs b/packages/css/templates/pod/base/profile/card$.ttl.hbs deleted file mode 100644 index 5fb3796e..00000000 --- a/packages/css/templates/pod/base/profile/card$.ttl.hbs +++ /dev/null @@ -1,13 +0,0 @@ -@prefix foaf: . -@prefix solid: . - -<> - a foaf:PersonalProfileDocument; - foaf:maker <{{webId}}>; - foaf:primaryTopic <{{webId}}>. - -<{{webId}}> - {{#if name}}foaf:name "{{name}}";{{/if}} - {{#if umaServer}}solid:umaServer "{{umaServer}}";{{/if}} - {{#if oidcIssuer}}solid:oidcIssuer <{{oidcIssuer}}>;{{/if}} - a foaf:Person. diff --git a/packages/css/templates/pod/base/public/.meta b/packages/css/templates/pod/base/public/.meta deleted file mode 100644 index e0140388..00000000 --- a/packages/css/templates/pod/base/public/.meta +++ /dev/null @@ -1,25 +0,0 @@ -# -# THIS IS A COPY OF ../private/.meta - -@prefix derived: . - -<> - derived:derivedResource [ - derived:template "derived/bday"; - derived:selector <./data>; - derived:filter - ]. - -<> - derived:derivedResource [ - derived:template "derived/age"; - derived:selector <./data>; - derived:filter - ]. - -# <> -# derived:derivedResource [ -# derived:template "query{?var}"; -# derived:selector ; -# derived:filter -# ]. diff --git a/packages/css/templates/pod/base/public/data$.ttl b/packages/css/templates/pod/base/public/data$.ttl deleted file mode 100644 index 1e85b5b2..00000000 --- a/packages/css/templates/pod/base/public/data$.ttl +++ /dev/null @@ -1,23 +0,0 @@ -# -# THIS IS A COPY OF ../private/data - -@prefix ruben: . -@prefix con: . -@prefix dbo: . -@prefix dbp: . -@prefix foaf: . -@prefix rdfs: . -@prefix vcard: . -@prefix xsd: . - -ruben: a foaf:Person; - foaf:name "Ruben Verborgh"@en, "Ruben Verborgh"@nl; - rdfs:label "Ruben Verborgh"@en, "Ruben Verborgh"@nl; - vcard:fn "Ruben Verborgh"@en, "Ruben Verborgh"@nl; - con:preferredURI "https://ruben.verborgh.org/profile/#me"; - foaf:givenName "Ruben"@en, "Ruben"@nl; - foaf:familyName "Verborgh"@en, "Verborgh"@nl; - rdfs:label "Ruben Verborgh"@en, "Ruben Verborgh"@nl; - dbo:birthPlace dbp:Ostend; - dbo:birthDate "1987-02-28"^^xsd:date; - foaf:gender "male"@en. diff --git a/packages/uma/package.json b/packages/uma/package.json index af4fc478..1684656a 100644 --- a/packages/uma/package.json +++ b/packages/uma/package.json @@ -56,7 +56,8 @@ "build:ts": "yarn run -T tsc", "build:components": "yarn run -T componentsjs-generator -r sai-uma -s src -c dist/components -i .componentsignore --lenient", "test": "yarn run -T jest --coverage", - "start": "node dist/main.js" + "start": "node dist/main.js", + "demo": "node dist/main.js" }, "dependencies": { "@httpland/authorization-parser": "^1.1.0", diff --git a/scripts/test-derived.ts b/scripts/test-demo.ts similarity index 84% rename from scripts/test-derived.ts rename to scripts/test-demo.ts index a51e438b..14254e33 100644 --- a/scripts/test-derived.ts +++ b/scripts/test-demo.ts @@ -1,6 +1,18 @@ import { fetch } from 'cross-fetch' -const privateResource = "http://localhost:3000/alice/private/derived/age" +// const log = (msg, obj?) => { +// console.log('\n'); +// console.log(msg); +// if (obj) { +// console.log('\n'); +// console.log(obj); +// } +// console.log('\n'); +// } + +// log(`Alright, so, for the demo ...`); + +const privateResource = "http://localhost:3000/ruben/private/derived/age" function parseJwt (token:string) { return JSON.parse(Buffer.from(token.split('.')[1], 'base64').toString()); @@ -26,13 +38,18 @@ async function main() { const tokenEndpoint = as_uri + "/token" // should normally be retrieved from .well-known/uma2-configuration + const claim_token = "https://woslabbi.pod.knows.idlab.ugent.be/profile/card#me" const content = { grant_type: 'urn:ietf:params:oauth:grant-type:uma-ticket', - ticket, claim_token: encodeURIComponent(claim_token), claim_token_format: 'urn:solidlab:uma:claims:formats:webid', + // ticket, + permissions: [{ + resource_id: 'http://localhost:3000/ruben/private/derived/age', + resource_scopes: [ 'urn:example:css:modes:read' ], + }] }; console.log(`=== Requesting token at ${tokenEndpoint} with ticket body:\n`); diff --git a/yarn.lock b/yarn.lock index 271b7b26..1a8f8dd8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4623,7 +4623,7 @@ __metadata: eslint: "npm:^8.10.0" jest: "npm:^29.7.0" koreografeye: "npm:^0.4.8" - shx: "npm:^0.3.3" + shx: "npm:^0.3.4" ts-jest: "npm:^29.1.1" ts-node: "npm:^10.9.2" typescript: "npm:^5.2.2" @@ -10641,7 +10641,7 @@ __metadata: languageName: node linkType: hard -"shx@npm:^0.3.3": +"shx@npm:^0.3.4": version: 0.3.4 resolution: "shx@npm:0.3.4" dependencies: From 3e913649cce9fdf5128e1869a580fc646d8fc3ca Mon Sep 17 00:00:00 2001 From: Wouter Termont Date: Tue, 12 Mar 2024 19:47:51 +0100 Subject: [PATCH 02/83] feat: clean up demo css config Signed-off-by: Wouter Termont --- packages/css/config/default.json | 2 +- packages/css/config/demo.json | 27 +++++++++++++++++++++++++++ packages/css/package.json | 4 ++-- yarn.lock | 10 +++++----- 4 files changed, 35 insertions(+), 8 deletions(-) create mode 100644 packages/css/config/demo.json diff --git a/packages/css/config/default.json b/packages/css/config/default.json index c7bb1f02..96ed5fe2 100644 --- a/packages/css/config/default.json +++ b/packages/css/config/default.json @@ -17,6 +17,7 @@ "css:config/identity/pod/static.json", "css:config/ldp/metadata-parser/default.json", "css:config/ldp/modes/default.json", + "css:config/storage/backend/memory.json", "css:config/storage/key-value/resource-store.json", "css:config/storage/middleware/default.json", "css:config/util/auxiliary/acl.json", @@ -34,7 +35,6 @@ "uma-css:config/ldp/metadata-writer/uma.json", "uma-css:config/identity/handler/default.json", "uma-css:config/app/init/initialize-intro.json", - "css:config/storage/backend/file.json", "css:config/storage/location/pod.json" ], "@graph": [ diff --git a/packages/css/config/demo.json b/packages/css/config/demo.json new file mode 100644 index 00000000..55a30e82 --- /dev/null +++ b/packages/css/config/demo.json @@ -0,0 +1,27 @@ +{ + "@context": [ + "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^7.0.0/components/context.jsonld", + "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/uma-css/^0.0.0/components/context.jsonld" + ], + "import": [ + "uma-css:config/default.json", + "uma-css:config/derived.json", + "css:config/storage/backend/data-accessors/file.json" + ], + "@graph": [ + { + "@id": "urn:solid-server:demo:ResourceStore_Backend", + "@type": "Override", + "overrideInstance": { + "@id": "urn:solid-server:default:ResourceStore_Backend" + }, + "overrideParameters": { + "@type": "DataAccessorBasedStore", + "identifierStrategy": { "@id": "urn:solid-server:default:IdentifierStrategy" }, + "auxiliaryStrategy": { "@id": "urn:solid-server:default:AuxiliaryStrategy" }, + "accessor": { "@id": "urn:solid-server:default:FileDataAccessor" }, + "metadataStrategy": { "@id": "urn:solid-server:default:MetadataStrategy" } + } + } + ] +} diff --git a/packages/css/package.json b/packages/css/package.json index bd2a428c..b02906d9 100644 --- a/packages/css/package.json +++ b/packages/css/package.json @@ -63,11 +63,11 @@ "start": "yarn run community-solid-server -m . -c ./config/default.json --seedConfig ./config/seed.json", "demo": "yarn run demo:setup && yarn run demo:start", "demo:setup": "yarn run -T shx rm -rf ./tmp && yarn run -T shx cp -R ../../demo/data ./tmp", - "demo:start": "yarn run community-solid-server -m . -c ./config/default.json ./config/derived.json -f ./tmp" + "demo:start": "yarn run community-solid-server -m . -c ./config/demo.json -f ./tmp" }, "dependencies": { "@solid/community-server": "^7.0.2", - "@solidlab/derived-resources-component": "^1.0.1", + "@solidlab/derived-resources-component": "^1.0.2", "@solidlab/uma": "workspace:^", "componentsjs": "^5.4.2", "cross-fetch": "^4.0.0", diff --git a/yarn.lock b/yarn.lock index 1a8f8dd8..74d435ad 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4532,9 +4532,9 @@ __metadata: languageName: node linkType: hard -"@solidlab/derived-resources-component@npm:^1.0.1": - version: 1.0.1 - resolution: "@solidlab/derived-resources-component@npm:1.0.1" +"@solidlab/derived-resources-component@npm:^1.0.2": + version: 1.0.2 + resolution: "@solidlab/derived-resources-component@npm:1.0.2" dependencies: "@comunica/query-sparql": "npm:^2.10.2" "@rdfjs/types": "npm:^1.1.0" @@ -4542,7 +4542,7 @@ __metadata: asynciterator: "npm:^3.8.1" n3: "npm:^1.17.2" uri-template-lite: "npm:^23.4.0" - checksum: 10c0/51651f136258eedc793545a61243c5bea5ea8eb8fd4e13b5a23fc6e854f47f724819b44f99420d8b092f730010a9057aa3cdee388a01c06bfccb86d327fc390a + checksum: 10c0/f57f57253cf9d8099ad3651eae09c7291b37911d08b28e76e8a011f0793619eaca46fa315ace36a0dc012da936ce528b130e7a55a6f31ddaa1d4e37c5cf4953f languageName: node linkType: hard @@ -4569,7 +4569,7 @@ __metadata: resolution: "@solidlab/uma-css@workspace:packages/css" dependencies: "@solid/community-server": "npm:^7.0.2" - "@solidlab/derived-resources-component": "npm:^1.0.1" + "@solidlab/derived-resources-component": "npm:^1.0.2" "@solidlab/uma": "workspace:^" "@types/n3": "npm:^1.16.4" "@types/node": "npm:^18.18.11" From 87c967e1f2e67df4470fd1569b28f67d6ee57970 Mon Sep 17 00:00:00 2001 From: Wouter Termont Date: Tue, 12 Mar 2024 19:48:42 +0100 Subject: [PATCH 03/83] feat: setup componentsjs build for UCP package Signed-off-by: Wouter Termont --- packages/ucp/.componentsignore | 2 ++ packages/ucp/config/default.json | 5 +++++ packages/ucp/package.json | 15 ++++++++++++++- 3 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 packages/ucp/.componentsignore create mode 100644 packages/ucp/config/default.json diff --git a/packages/ucp/.componentsignore b/packages/ucp/.componentsignore new file mode 100644 index 00000000..0d4f101c --- /dev/null +++ b/packages/ucp/.componentsignore @@ -0,0 +1,2 @@ +[ +] diff --git a/packages/ucp/config/default.json b/packages/ucp/config/default.json new file mode 100644 index 00000000..a074b112 --- /dev/null +++ b/packages/ucp/config/default.json @@ -0,0 +1,5 @@ +{ + "@context": [ + "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/ucp/^0.0.0/components/context.jsonld" + ] +} diff --git a/packages/ucp/package.json b/packages/ucp/package.json index e6605763..2f5f3f0f 100644 --- a/packages/ucp/package.json +++ b/packages/ucp/package.json @@ -36,6 +36,7 @@ "node": ">=18.18", "yarn": ">=4.0" }, + "type": "commonjs", "main": "./dist/index.js", "types": "./dist/index.d.ts", "exports": { @@ -45,12 +46,14 @@ } }, "files": [ + ".componentsignore", "dist", "config" ], "scripts": { - "build": "yarn build:ts", + "build": "yarn build:ts && yarn build:components", "build:ts": "yarn run -T tsc", + "build:components": "yarn run -T componentsjs-generator -r ucp -s src -c dist/components -i .componentsignore --lenient", "test": "yarn run test:unit && yarn run test:integration", "test:unit": "jest test/unit", "test:integration": "yarn run test:engines && yarn exec ts-node test/integration/ContainerRulesStorage.ts", @@ -73,5 +76,15 @@ "ts-jest": "^29.1.2", "ts-node": "^10.9.1", "typescript": "^5.3.3" + }, + "lsd:module": "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/ucp", + "lsd:components": "dist/components/components.jsonld", + "lsd:contexts": { + "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/ucp/^0.0.0/components/context.jsonld": "dist/components/context.jsonld" + }, + "lsd:importPaths": { + "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/ucp/^0.0.0/components/": "dist/components/", + "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/ucp/^0.0.0/config/": "config/", + "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/ucp/^0.0.0/dist/": "dist/" } } From 89a19c3c092b797760c807d9c944d58ef4bab7b0 Mon Sep 17 00:00:00 2001 From: Wouter Termont Date: Tue, 12 Mar 2024 19:57:36 +0100 Subject: [PATCH 04/83] feat: make rulestorage configurable Signed-off-by: Wouter Termont --- packages/uma/.componentsignore | 3 ++- .../config/policies/authorizers/default.json | 13 ++++++++--- packages/uma/config/variables/default.json | 7 +++++- packages/uma/src/main.ts | 22 +++---------------- .../authorizers/PolicyBasedAuthorizer.ts | 6 ++--- 5 files changed, 23 insertions(+), 28 deletions(-) diff --git a/packages/uma/.componentsignore b/packages/uma/.componentsignore index 39a9c52e..194ab69c 100644 --- a/packages/uma/.componentsignore +++ b/packages/uma/.componentsignore @@ -2,6 +2,7 @@ "AccessToken", "AccessToken", "Authorization", + "Authorizer", "Error", "EventEmitter", "Map", @@ -13,4 +14,4 @@ "ScopeDescription", "Ticket", "URL" -] \ No newline at end of file +] diff --git a/packages/uma/config/policies/authorizers/default.json b/packages/uma/config/policies/authorizers/default.json index 09a6093f..f49cb703 100644 --- a/packages/uma/config/policies/authorizers/default.json +++ b/packages/uma/config/policies/authorizers/default.json @@ -1,6 +1,7 @@ { "@context": [ - "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/uma/^0.0.0/components/context.jsonld" + "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/uma/^0.0.0/components/context.jsonld", + "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/ucp/^0.0.0/components/context.jsonld" ], "@graph": [ { @@ -34,8 +35,14 @@ "fallback": { "@id": "urn:uma:default:PolicyBasedAuthorizer", "@type": "PolicyBasedAuthorizer", - "policyDir": "config/rules/policy/", - "n3Rules": "config/rules/crud.n3" + "n3Rules": "config/rules/crud.n3", + "rules": { + "@id": "urn:uma:default:RulesStorage", + "@type": "DirectoryUCRulesStorage", + "directoryPath": { + "@id": "urn:uma:variables:policyDir" + } + } } } ] diff --git a/packages/uma/config/variables/default.json b/packages/uma/config/variables/default.json index 6a9a238d..7afa413c 100644 --- a/packages/uma/config/variables/default.json +++ b/packages/uma/config/variables/default.json @@ -16,6 +16,11 @@ "comment": "Hostname of the server.", "@id": "urn:uma:variables:host", "@type": "Variable" + }, + { + "comment": "Path to the directory containing the policy rules.", + "@id": "urn:uma:variables:policyDir", + "@type": "Variable" } ] - } \ No newline at end of file + } diff --git a/packages/uma/src/main.ts b/packages/uma/src/main.ts index d25d583c..c0b225bc 100644 --- a/packages/uma/src/main.ts +++ b/packages/uma/src/main.ts @@ -15,32 +15,16 @@ const port = 4000; const baseUrl = `${protocol}://${host}:${port}/uma`; const rootDir = path.join(__dirname, '../'); -// const config = { -// jwks_uri: `${baseUrl}/keys`, -// token_endpoint: `${baseUrl}/token`, -// grant_types_supported: ['urn:ietf:params:oauth:grant-type:uma-ticket'], -// issuer: `${baseUrl}`, -// permission_endpoint: `${baseUrl}/ticket`, -// introspection_endpoint: `${baseUrl}/introspect`, -// resource_registration_endpoint: `${baseUrl}/resources`, -// uma_profiles_supported: ['http://openid.net/specs/openid-connect-core-1_0.html#IDToken'], -// dpop_signing_alg_values_supported: [...ASYMMETRIC_CRYPTOGRAPHIC_ALGORITHM], -// response_types_supported: [ResponseType.Token], -// }; - export const launch: () => Promise = async () => { - - // fs.writeFileSync( - // path.join(rootDir, './config/default.json'), - // JSON.stringify(config), - // ); - + const variables: Record = {}; variables['urn:uma:variables:port'] = port; variables['urn:uma:variables:host'] = host; variables['urn:uma:variables:protocol'] = protocol; variables['urn:uma:variables:baseUrl'] = baseUrl; + + variables['urn:uma:variables:policyDir'] = path.join(rootDir, './config/rules/policy'); variables['urn:uma:variables:mainModulePath'] = rootDir; variables['urn:uma:variables:customConfigPath'] = path.join(rootDir, './config/default.json'); diff --git a/packages/uma/src/policies/authorizers/PolicyBasedAuthorizer.ts b/packages/uma/src/policies/authorizers/PolicyBasedAuthorizer.ts index 9cb4e96d..e3da3aa9 100644 --- a/packages/uma/src/policies/authorizers/PolicyBasedAuthorizer.ts +++ b/packages/uma/src/policies/authorizers/PolicyBasedAuthorizer.ts @@ -21,7 +21,6 @@ export class PolicyBasedAuthorizer implements Authorizer { private plugins = { "http://example.org/dataUsage": new UcpPlugin() }; private executor = new PolicyExecutor(this.plugins); private enforcer: UcpPatternEnforcement; - private rules: UCRulesStorage; private n3: string; /** @@ -33,12 +32,11 @@ export class PolicyBasedAuthorizer implements Authorizer { constructor( // protected rules: UCRulesStorage, // protected enforcer: UcpPatternEnforcement - policyDir: string, + rules: UCRulesStorage, n3Rules: string, ) { - this.rules = new DirectoryUCRulesStorage(path.join(__dirname, '../../../', policyDir)); this.n3 = readFileSync(path.join(__dirname, '../../../', n3Rules)).toString(); - this.enforcer = new UcpPatternEnforcement(this.rules, [this.n3], this.reasoner, this.executor) + this.enforcer = new UcpPatternEnforcement(rules, [this.n3], this.reasoner, this.executor) } From add12cd2b3db022dad5d7e3081f2dc56558f4e98 Mon Sep 17 00:00:00 2001 From: Wouter Termont Date: Wed, 13 Mar 2024 11:20:51 +0100 Subject: [PATCH 05/83] chore: restructure startup and demo scripts Signed-off-by: Wouter Termont --- demo/flow.ts | 159 ++++++++++++++++++++++++++++++ package.json | 2 +- packages/uma/bin/demo.ts | 46 +++++++++ packages/uma/{src => bin}/main.ts | 10 +- packages/uma/config/demo.json | 54 ++++++++++ packages/uma/package.json | 4 +- scripts/test-demo.ts | 96 ------------------ 7 files changed, 265 insertions(+), 106 deletions(-) create mode 100644 demo/flow.ts create mode 100644 packages/uma/bin/demo.ts rename packages/uma/{src => bin}/main.ts (77%) create mode 100644 packages/uma/config/demo.json delete mode 100644 scripts/test-demo.ts diff --git a/demo/flow.ts b/demo/flow.ts new file mode 100644 index 00000000..dd0cc5ba --- /dev/null +++ b/demo/flow.ts @@ -0,0 +1,159 @@ +/* eslint-disable max-len */ + +import { fetch } from 'cross-fetch'; +import { Parser, Store } from 'n3'; + +const terms = { + solid: { + umaServer: 'http://www.w3.org/ns/solid/terms#umaServer', + viewIndex: 'http://www.w3.org/ns/solid/terms#viewIndex', + entry: 'http://www.w3.org/ns/solid/terms#entry', + filter: 'http://www.w3.org/ns/solid/terms#filter', + location: 'http://www.w3.org/ns/solid/terms#location', + }, + filters: { + bday: 'http://localhost:3000/catalog/public/filters/bday', + age: 'http://localhost:3000/catalog/public/filters/age', + } +} + +const parser = new Parser(); + +const privateRequest = async (resource_id: string, tokenEndpoint: string) => { + const claim_token = "http://localhost:3000/demo/public/bday-app" + + const content = { + grant_type: 'urn:ietf:params:oauth:grant-type:uma-ticket', + claim_token: encodeURIComponent(claim_token), + claim_token_format: 'urn:solidlab:uma:claims:formats:webid', + // ticket, + permissions: [{ + resource_id, + resource_scopes: [ 'urn:example:css:modes:read', 'urn:example:css:modes:write' ], + }] + }; + + const asRequestResponse = await fetch(tokenEndpoint, { + method: "POST", + headers: { + "content-type":"application/json" + }, + body: JSON.stringify(content), + }); + + const asResponse = await asRequestResponse.json(); + const tokenResponse = await fetch(resource_id, { + headers: { 'Authorization': `${asResponse.token_type} ${asResponse.access_token}` } + }); +} + +const log = (msg: string, obj?: any) => { + console.log(''); + console.log(msg); + if (obj) { + console.log('\n'); + console.log(obj); + } +} + +function parseJwt (token:string) { + return JSON.parse(Buffer.from(token.split('.')[1], 'base64').toString()); +} + +async function main() { + + log(`Alright, so, for the demo ...`); + + const webId = 'http://localhost:3000/ruben/profile/card#me'; + + log(`Ruben V., a.k.a. <${webId}>, has some private data in .`); + + log(`Of course, he does not want everyone to be able to see all of his private data when they need just one aspect of it. Therefore, Ruben has installed two Views on his data, based on SPARQL filters from a public Catalog. (When and how this is done is out-of-scope for now.)`); + + const webIdData = new Store(parser.parse(await (await fetch(webId)).text())); + const viewIndex = webIdData.getObjects(webId, terms.solid.viewIndex, null)[0].value; + const views = Object.fromEntries(webIdData.getObjects(viewIndex, terms.solid.entry, null).map(entry => { + const filter = webIdData.getObjects(entry, terms.solid.filter, null)[0].value; + const location = webIdData.getObjects(entry, terms.solid.location, null)[0].value; + return [filter, location]; + })); + + log(`Discovery of views is currently a very crude mechanism based on a public index in the WebID document. (A cleaner mechanism using the UMA server as central hub is being devised.) Using the discovery mechanism, we find the following views on Ruben's private data.`) + + log(`(1) <${views[terms.filters.bday]}> filters out his birth date, according to the <${terms.filters.bday}> filter`); + log(`(2) <${views[terms.filters.age]}> derives his age, according to the <${terms.filters.bday}> filter`); + + const policyDir = 'http://localhost:3000/ruben/settings/policies/'; + + log(`Access to Ruben's data is based on policies he manages through his Authz Companion app, and which are stored in <${policyDir}>. (This is, of course, not publicly known.)`); + + const umaServer = webIdData.getObjects(webId, terms.solid.umaServer, null)[0].value; + const configUrl = new URL('.well-known/uma2-configuration', umaServer); + const umaConfig = await (await fetch(configUrl)).json(); + const tokenEndpoint = umaConfig.token_endpoint; + + log(`To request access to Ruben's data, an agent will need to negotiate with Ruben's Authorization Server, which his WebID document identifies as <${umaServer}>.`); + log(`Via the Well-Known endpoint <${configUrl.href}>, we can discover the Token Endpoint <${tokenEndpoint}>.`); + + log(`Now, having discovered both the location of the UMA server and of the desired data, an agent can request the former for access to the latter.`); + + log(`...`); + + log(`Having been notified in some way of the access request, Ruben could go to his Authz Companion app, and add a policy allowing the requested access.`); + + const privateResource = "http://localhost:3000/ruben/private/derived/age" + const claim_token = "http://localhost:3000/demo/public/bday-app" + + const content = { + grant_type: 'urn:ietf:params:oauth:grant-type:uma-ticket', + claim_token: encodeURIComponent(claim_token), + claim_token_format: 'urn:solidlab:uma:claims:formats:webid', + // ticket, + permissions: [{ + resource_id: privateResource, + resource_scopes: [ 'urn:example:css:modes:read' ], + }] + }; + + console.log(`=== Requesting token at ${tokenEndpoint} with ticket body:\n`); + console.log(content); + console.log(''); + + const asRequestResponse = await fetch(tokenEndpoint, { + method: "POST", + headers: { + "content-type":"application/json" + }, + body: JSON.stringify(content), + }) + + // For debugging: + // console.log("Authorization Server response:", await asRequestResponse.text()); + // throw 'stop' + + const asResponse = await asRequestResponse.json(); + + const decodedToken = parseJwt(asResponse.access_token); + + console.log(`= Status: ${asRequestResponse.status}\n`); + console.log(`= Body (decoded):\n`); + console.log({ ...asResponse, access_token: asResponse.access_token.slice(0,10).concat('...') }); + console.log('\n'); + + // for (const permission of decodedToken.permissions) { + // console.log(`Permissioned scopes for resource ${permission.resource_id}:`, permission.resource_scopes) + // } + + console.log(`=== Trying to create private resource <${privateResource}> WITH access token.\n`); + + const tokenResponse = await fetch(privateResource, { + headers: { 'Authorization': `${asResponse.token_type} ${asResponse.access_token}` } + }); + + console.log(`= Status: ${tokenResponse.status}\n`); + console.log(`= Body:\n`); + console.log(`= Body: ${await tokenResponse.text()}`); + console.log(`\n`); +} + +main(); diff --git a/package.json b/package.json index 143bd76c..3bca5810 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,7 @@ "test:all": "yarn workspaces foreach --exclude . -A -pi run test", "start:all": "yarn workspaces foreach --exclude . -A -pi run start", "start:demo": "yarn workspaces foreach --exclude . -A -pi run demo", - "script:demo": "yarn exec ts-node ./scripts/test-demo.ts", + "script:demo": "yarn exec ts-node ./demo/flow.ts", "script:public": "yarn exec ts-node ./scripts/test-public.ts", "script:private": "yarn exec ts-node ./scripts/test-private.ts", "script:registration": "yarn exec ts-node ./scripts/test-registration.ts", diff --git a/packages/uma/bin/demo.ts b/packages/uma/bin/demo.ts new file mode 100644 index 00000000..539b42e7 --- /dev/null +++ b/packages/uma/bin/demo.ts @@ -0,0 +1,46 @@ +import * as path from 'path'; +import { ComponentsManager } from 'componentsjs'; +import { NodeHttpServer } from '../src/util/http/server/NodeHttpServer'; +import { setLogger } from '../src/util/logging/LoggerUtils'; +import { WinstonLogger } from '../src/util/logging/WinstonLogger'; + +const protocol = 'http'; +const host = 'localhost'; +const port = 4000; + +const baseUrl = `${protocol}://${host}:${port}/uma`; +const rootDir = path.join(__dirname, '../'); + +export const launch: () => Promise = async () => { + + const variables: Record = {}; + + variables['urn:uma:variables:port'] = port; + variables['urn:uma:variables:host'] = host; + variables['urn:uma:variables:protocol'] = protocol; + variables['urn:uma:variables:baseUrl'] = baseUrl; + + // variables['urn:uma:variables:policyDir'] = path.join(rootDir, './config/rules/policy'); + + variables['urn:uma:variables:mainModulePath'] = rootDir; + variables['urn:uma:variables:customConfigPath'] = path.join(rootDir, './config/demo.json'); + + const mainModulePath = variables['urn:uma:variables:mainModulePath']; + const configPath = variables['urn:uma:variables:customConfigPath']; + + setLogger(new WinstonLogger('test-logger', 60, 30)); + + const manager = await ComponentsManager.build({ + mainModulePath, + logLevel: 'silly', + typeChecking: false, + }); + + await manager.configRegistry.register(configPath); + + const umaServer: NodeHttpServer = await manager.instantiate('urn:uma:default:NodeHttpServer',{variables}); + umaServer.start(); + +}; + +launch(); diff --git a/packages/uma/src/main.ts b/packages/uma/bin/main.ts similarity index 77% rename from packages/uma/src/main.ts rename to packages/uma/bin/main.ts index c0b225bc..813c2d39 100644 --- a/packages/uma/src/main.ts +++ b/packages/uma/bin/main.ts @@ -1,12 +1,8 @@ -import * as fs from 'fs'; import * as path from 'path'; import { ComponentsManager } from 'componentsjs'; -import { NodeHttpServer } from './util/http/server/NodeHttpServer'; -import { setLogger } from './util/logging/LoggerUtils'; -import { WinstonLogger } from './util/logging/WinstonLogger'; -import { ResponseType } from './routes/Config'; -import { ASYMMETRIC_CRYPTOGRAPHIC_ALGORITHM } - from '@solid/access-token-verifier/dist/constant/ASYMMETRIC_CRYPTOGRAPHIC_ALGORITHM'; +import { NodeHttpServer } from '../src/util/http/server/NodeHttpServer'; +import { setLogger } from '../src/util/logging/LoggerUtils'; +import { WinstonLogger } from '../src/util/logging/WinstonLogger'; const protocol = 'http'; const host = 'localhost'; diff --git a/packages/uma/config/demo.json b/packages/uma/config/demo.json new file mode 100644 index 00000000..878290dc --- /dev/null +++ b/packages/uma/config/demo.json @@ -0,0 +1,54 @@ +{ + "@context": [ + "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/uma/^0.0.0/components/context.jsonld", + "https://linkedsoftwaredependencies.org/bundles/npm/@solidlab/ucp/^0.0.0/components/context.jsonld" + ], + "import": [ + "sai-uma:config/default.json" + ], + "@graph": [ + { + "@id": "urn:uma:demo:Authorizer", + "@type": "Override", + "overrideInstance": { "@id": "urn:uma:default:Authorizer" }, + "overrideParameters": { + "@type": "NamespacedAuthorizer", + "authorizers": [ + { + "NamespacedAuthorizer:_authorizers_key": "profile", + "NamespacedAuthorizer:_authorizers_value": { + "@id": "urn:uma:default:AllAuthorizer", + "@type": "AllAuthorizer" + } + }, + { + "NamespacedAuthorizer:_authorizers_key": "public", + "NamespacedAuthorizer:_authorizers_value": { + "@id": "urn:uma:default:AllAuthorizer" + } + }, + { + "NamespacedAuthorizer:_authorizers_key": "settings", + "NamespacedAuthorizer:_authorizers_value": { + "@id": "urn:uma:default:AllAuthorizer" + } + } + ], + "fallback": { + "@id": "urn:uma:default:PolicyBasedAuthorizer" + } + } + }, + { + "@id": "urn:uma:demo:RulesStorage", + "@type": "Override", + "overrideInstance": { + "@id": "urn:uma:default:RulesStorage" + }, + "overrideParameters": { + "@type": "ContainerUCRulesStorage", + "containerURL": "http://localhost:3000/ruben/settings/policies/" + } + } + ] +} diff --git a/packages/uma/package.json b/packages/uma/package.json index 1684656a..7768569d 100644 --- a/packages/uma/package.json +++ b/packages/uma/package.json @@ -56,8 +56,8 @@ "build:ts": "yarn run -T tsc", "build:components": "yarn run -T componentsjs-generator -r sai-uma -s src -c dist/components -i .componentsignore --lenient", "test": "yarn run -T jest --coverage", - "start": "node dist/main.js", - "demo": "node dist/main.js" + "start": "ts-node bin/main.ts", + "demo": "ts-node bin/demo.ts" }, "dependencies": { "@httpland/authorization-parser": "^1.1.0", diff --git a/scripts/test-demo.ts b/scripts/test-demo.ts deleted file mode 100644 index 14254e33..00000000 --- a/scripts/test-demo.ts +++ /dev/null @@ -1,96 +0,0 @@ -import { fetch } from 'cross-fetch' - -// const log = (msg, obj?) => { -// console.log('\n'); -// console.log(msg); -// if (obj) { -// console.log('\n'); -// console.log(obj); -// } -// console.log('\n'); -// } - -// log(`Alright, so, for the demo ...`); - -const privateResource = "http://localhost:3000/ruben/private/derived/age" - -function parseJwt (token:string) { - return JSON.parse(Buffer.from(token.split('.')[1], 'base64').toString()); -} - -async function main() { - - console.log('\n\n'); - - console.log(`=== Trying to create private resource <${privateResource}> without access token.\n`); - - const noTokenResponse = await fetch(privateResource); - - const wwwAuthenticateHeader = noTokenResponse.headers.get("WWW-Authenticate")! - - console.log(`= Status: ${noTokenResponse.status}\n`); - console.log(`= Www-Authenticate header: ${wwwAuthenticateHeader}\n`); - console.log(''); - - const { as_uri, ticket } = Object.fromEntries(wwwAuthenticateHeader.replace(/^UMA /,'').split(', ').map( - param => param.split('=').map(s => s.replace(/"/g,'')) - )); - - const tokenEndpoint = as_uri + "/token" // should normally be retrieved from .well-known/uma2-configuration - - - const claim_token = "https://woslabbi.pod.knows.idlab.ugent.be/profile/card#me" - - const content = { - grant_type: 'urn:ietf:params:oauth:grant-type:uma-ticket', - claim_token: encodeURIComponent(claim_token), - claim_token_format: 'urn:solidlab:uma:claims:formats:webid', - // ticket, - permissions: [{ - resource_id: 'http://localhost:3000/ruben/private/derived/age', - resource_scopes: [ 'urn:example:css:modes:read' ], - }] - }; - - console.log(`=== Requesting token at ${tokenEndpoint} with ticket body:\n`); - console.log(content); - console.log(''); - - const asRequestResponse = await fetch(tokenEndpoint, { - method: "POST", - headers: { - "content-type":"application/json" - }, - body: JSON.stringify(content), - }) - - // For debugging: - // console.log("Authorization Server response:", await asRequestResponse.text()); - // throw 'stop' - - const asResponse = await asRequestResponse.json(); - - const decodedToken = parseJwt(asResponse.access_token); - - console.log(`= Status: ${asRequestResponse.status}\n`); - console.log(`= Body (decoded):\n`); - console.log({ ...asResponse, access_token: asResponse.access_token.slice(0,10).concat('...') }); - console.log('\n'); - - // for (const permission of decodedToken.permissions) { - // console.log(`Permissioned scopes for resource ${permission.resource_id}:`, permission.resource_scopes) - // } - - console.log(`=== Trying to create private resource <${privateResource}> WITH access token.\n`); - - const tokenResponse = await fetch(privateResource, { - headers: { 'Authorization': `${asResponse.token_type} ${asResponse.access_token}` } - }); - - console.log(`= Status: ${tokenResponse.status}\n`); - console.log(`= Body:\n`); - console.log(`= Body: ${await tokenResponse.text()}`); - console.log(`\n`); -} - -main(); From da9ad0d30a221497052a115231df924c729d41fb Mon Sep 17 00:00:00 2001 From: Wouter Termont Date: Wed, 13 Mar 2024 11:21:56 +0100 Subject: [PATCH 06/83] chore: some remaining demo setup Signed-off-by: Wouter Termont --- .../public/authz-companion-app/index.html | 0 demo/data/ruben/profile/card$.ttl | 24 +++++++++++++++---- demo/data/ruben/settings/policies/policy0.ttl | 10 ++++++++ 3 files changed, 29 insertions(+), 5 deletions(-) create mode 100644 demo/data/demo/public/authz-companion-app/index.html create mode 100644 demo/data/ruben/settings/policies/policy0.ttl diff --git a/demo/data/demo/public/authz-companion-app/index.html b/demo/data/demo/public/authz-companion-app/index.html new file mode 100644 index 00000000..e69de29b diff --git a/demo/data/ruben/profile/card$.ttl b/demo/data/ruben/profile/card$.ttl index 73d94cc2..54f84452 100644 --- a/demo/data/ruben/profile/card$.ttl +++ b/demo/data/ruben/profile/card$.ttl @@ -1,13 +1,27 @@ @prefix rdfs: . @prefix foaf: . @prefix solid: . +@prefix filters: . +@prefix views: . +@prefix ruben: . <> a foaf:PersonalProfileDocument; - foaf:maker ; - foaf:primaryTopic . + foaf:maker ruben:; + foaf:primaryTopic ruben:. - a foaf:Person ; +ruben: a foaf:Person ; foaf:name "Ruben Verborgh"@en, "Ruben Verborgh"@nl; rdfs:label "Ruben Verborgh"@en, "Ruben Verborgh"@nl; - solid:umaServer "http://localhost:4000/uma" ; - solid:oidcIssuer . + solid:umaServer "http://localhost:4000/uma/" ; + solid:oidcIssuer ; + solid:viewIndex <#index> . + +<#index> a solid:ViewIndex ; + solid:entry [ + solid:filter filters:bday ; + solid:location views:bday + ] ; + solid:entry [ + solid:filter filters:age ; + solid:location views:age + ] . diff --git a/demo/data/ruben/settings/policies/policy0.ttl b/demo/data/ruben/settings/policies/policy0.ttl new file mode 100644 index 00000000..54e5f51e --- /dev/null +++ b/demo/data/ruben/settings/policies/policy0.ttl @@ -0,0 +1,10 @@ +@prefix ex: . +@prefix odrl: . + +ex:usagePolicy a odrl:Agreement . +ex:usagePolicy odrl:permission ex:permission . +ex:permission a odrl:Permission . +ex:permission odrl:action odrl:read , odrl:modify . +ex:permission odrl:target , . +ex:permission odrl:assignee . +ex:permission odrl:assigner . From b444753e7b4ba1658cf502ab8361cfb805e15a90 Mon Sep 17 00:00:00 2001 From: "Wouter Termont (imec)" Date: Wed, 13 Mar 2024 11:46:30 +0100 Subject: [PATCH 07/83] feat: ucp changes for demo (#37) Co-authored-by: woutslabbinck --- demo/demoEngine.ts | 48 ++++++++++++++++++ demo/main.ts | 41 +++++++++++++++ demo/memory.json | 37 ++++++++++++++ demo/policyCreation.ts | 58 +++++++++++++++++++++ demo/purpose-time.n3 | 72 +++++++++++++++++++++++++++ packages/ucp/src/policy/ODRL.ts | 8 +++ packages/ucp/src/util/Vocabularies.ts | 1 + 7 files changed, 265 insertions(+) create mode 100644 demo/demoEngine.ts create mode 100644 demo/main.ts create mode 100644 demo/memory.json create mode 100644 demo/policyCreation.ts create mode 100644 demo/purpose-time.n3 diff --git a/demo/demoEngine.ts b/demo/demoEngine.ts new file mode 100644 index 00000000..600a683a --- /dev/null +++ b/demo/demoEngine.ts @@ -0,0 +1,48 @@ +import { ContainerUCRulesStorage, PolicyExecutor, UCRulesStorage, UconEnforcementDecision, UcpPatternEnforcement, UcpPlugin } from "@solidlab/ucp" +import { App, AppRunner, AppRunnerInput } from "@solid/community-server"; +import * as Path from 'path'; +import { EyeJsReasoner, readText } from "koreografeye"; + +type Demo = { + css: App, + ucpEngine: UconEnforcementDecision, + storage: UCRulesStorage +} + +export async function initEngine(portNumber = 3123): Promise { + const containerURL = `http://localhost:${portNumber}/` + // code to start css server somewhere + const css = await configSolidServer(portNumber) + + // initiating + // load plugin(s) + const plugins = { "http://example.org/dataUsage": new UcpPlugin() } + // Initialise koreografeye policy executor + const policyExecutor = new PolicyExecutor(plugins) + // load N3 Rules from a directory + const rulesDirectory = Path.join(__dirname) + const n3Rules: string[] = [readText(Path.join(rulesDirectory, 'purpose-time.n3'))!] + // Initialise Usage Control Rule Storage + const uconRulesStorage = new ContainerUCRulesStorage(containerURL); + const ucpEngine = new UcpPatternEnforcement(uconRulesStorage, n3Rules, new EyeJsReasoner([ + "--quiet", + "--nope", + "--pass"]), policyExecutor) + return {css, ucpEngine, storage: uconRulesStorage} +} + + +// utils +async function configSolidServer(port: number): Promise { + const input: AppRunnerInput = { + config: Path.join(__dirname, "memory.json"), + variableBindings: { + 'urn:solid-server:default:variable:port': port, + 'urn:solid-server:default:variable:baseUrl': `http://localhost:${port}/`, + 'urn:solid-server:default:variable:loggingLevel': 'warn', + } + } + const cssRunner = await new AppRunner().create(input) + return cssRunner +} + diff --git a/demo/main.ts b/demo/main.ts new file mode 100644 index 00000000..a1e0a769 --- /dev/null +++ b/demo/main.ts @@ -0,0 +1,41 @@ +import { createContext, storeToString } from "@solidlab/ucp"; +import { initEngine } from "./demoEngine"; +import { demoPolicy } from "./policyCreation"; + +async function main(){ + const {css, ucpEngine, storage} = await initEngine(); + + const target = "urn:wout:age" + const requestingParty = "https://pod.rubendedecker.be/profile/card#me" + + const request = { + subject: requestingParty, + action: ["http://www.w3.org/ns/auth/acl#Read"], + resource: target, + owner: "https://pod.woutslabbinck.com/profile/card#me" + } + const policy = demoPolicy(target, requestingParty) + // start server + await css.start(); + + + const noAccessModes = await ucpEngine.calculateAccessModes(request); + console.log("Access modes retrieved when no policy in storage", noAccessModes); + + // Add following Policy to storage: + // Wout gives access to Ruben regarding Wout his age + // constraints: two weeks from now on + purpose= "age-verification" + await storage.addRule(policy.representation) + + + const accessModes = await ucpEngine.calculateAccessModes(request); + console.log("Access modes retrieved when policy in storage", accessModes); + + // debug logs + // console.log(storeToString(createContext(request))); // Note: request -> which is also what is expected in the uma server at that stage + // console.log(storeToString(policy.representation)); // Note: log ODRL rule + console.log("Right now 'storage' is used to PUT the demo policy to 'http://localhost:3123/'. A normal HTTP request can also be used to do that."); + +} + +main() \ No newline at end of file diff --git a/demo/memory.json b/demo/memory.json new file mode 100644 index 00000000..5bf225ea --- /dev/null +++ b/demo/memory.json @@ -0,0 +1,37 @@ +{ + "@context": "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^7.0.0/components/context.jsonld", + "import": [ + "css:config/app/init/initialize-root.json", + "css:config/app/main/default.json", + "css:config/app/variables/default.json", + "css:config/http/handler/default.json", + "css:config/http/middleware/default.json", + "css:config/http/notifications/all.json", + "css:config/http/server-factory/http.json", + "css:config/http/static/default.json", + "css:config/identity/access/public.json", + "css:config/identity/email/default.json", + "css:config/identity/handler/disabled.json", + "css:config/identity/oidc/disabled.json", + "css:config/identity/ownership/token.json", + "css:config/identity/pod/static.json", + "css:config/ldp/authentication/dpop-bearer.json", + "css:config/ldp/authorization/webacl.json", + "css:config/ldp/handler/default.json", + "css:config/ldp/metadata-parser/default.json", + "css:config/ldp/metadata-writer/default.json", + "css:config/ldp/modes/default.json", + "css:config/storage/backend/memory.json", + "css:config/storage/key-value/resource-store.json", + "css:config/storage/location/root.json", + "css:config/storage/middleware/default.json", + "css:config/util/auxiliary/acl.json", + "css:config/util/identifiers/suffix.json", + "css:config/util/index/default.json", + "css:config/util/logging/winston.json", + "css:config/util/representation-conversion/default.json", + "css:config/util/resource-locker/memory.json", + "css:config/util/variables/default.json" + ], + "@graph": [] + } \ No newline at end of file diff --git a/demo/policyCreation.ts b/demo/policyCreation.ts new file mode 100644 index 00000000..48d48447 --- /dev/null +++ b/demo/policyCreation.ts @@ -0,0 +1,58 @@ +/** + * create ODRL policy with three constraints -> basically a function that prints that as output + - constraints + - start time + - end time + - purpose: string -> "age-verification" + - target: SHACL shape? + */ + +import { SimplePolicy, UCPPolicy, basicPolicy, storeToString } from '@solidlab/ucp' + +export const agePurpose = "age-verification" +/** + * Create demo ODRL policy: + * + * Read access for requestingparty to target under constraints (temporal + purpose) + * @param targetIRI - an IRI representing the target -> the resource + * @param requestingPartyIRI - an IRI representing the entity requesting access + * @param constraints + */ +export function demoPolicy(targetIRI, requestingPartyIRI, constraints?: { startDate?: Date, endDate?: Date, purpose?: string }): SimplePolicy { + const startDate = constraints?.startDate ?? new Date() + const endDate = constraints?.endDate ?? new Date(startDate.valueOf()+ 86_400 * 14 * 1000) + const purpose = constraints?.purpose ?? agePurpose + + const policy: UCPPolicy = { + rules: [{ + requestingParty: requestingPartyIRI, + action: "http://www.w3.org/ns/odrl/2/read", // msut be odrl + resource: targetIRI, + owner: "https://pod.woutslabbinck.com/profile/card#me", // can lead to bugs, depending on whether we use owner or not + constraints: [ + { + type: "temporal", + operator: "http://www.w3.org/ns/odrl/2/gt", + value: startDate + }, + { + type: "temporal", + operator: "http://www.w3.org/ns/odrl/2/lt", + value: endDate + }, + { + type: "purpose", + operator: "http://www.w3.org/ns/odrl/2/eq", + value: purpose + }, + ] + }] + } + + const policyObject = basicPolicy(policy); + // console.log(storeToString(policyObject.representation)); + return policyObject +} + +// example: Wout gives access to Ruben regarding Wout his age +// demoPolicy("urn:wout:age", "https://pod.rubendedecker.be/profile/card#me") \ No newline at end of file diff --git a/demo/purpose-time.n3 b/demo/purpose-time.n3 new file mode 100644 index 00000000..ab433ab8 --- /dev/null +++ b/demo/purpose-time.n3 @@ -0,0 +1,72 @@ +@prefix xsd: . +@prefix odrl: . +@prefix : . +@prefix acl: . +@prefix fno: . +@prefix log: . +@prefix string: . +@prefix list: . +@prefix time: . +@prefix math: . +# Create ODRL Rule: doesn't exist (`odrl:write` and `odrl:append` are deprecated) +{ :currentTime :is ?currentTime } <= { "" time:localTime ?currentTime }. + +# Read ODRL rule +{ + ?permission a odrl:Permission; + odrl:action ?action ; + odrl:target ?targetResource ; + odrl:assignee ?requestedParty; + odrl:assigner ?resourceOwner . + + ?action list:in (odrl:use odrl:read) . # multiple options + + # context of a request + ?context + :resourceOwner ?resourceOwner; + :requestingParty ?requestedParty; + :target ?targetResource; + :requestPermission acl:Read. + + :uuid5 log:uuid ?uuidStringdataUsagePolicyExecution. + ( "urn:uuid:" ?uuidStringdataUsagePolicyExecution) string:concatenation ?urnUuidStringdataUsagePolicyExecution. + ?dataUsagePolicyExecution log:uri ?urnUuidStringdataUsagePolicyExecution . + + # Constraint checking + # number of constraints must be two (temporal needs lower and upper bound) + (?template {?permission odrl:constraint _:s} ?L) log:collectAllIn ?SCOPE. + ?L list:length 3 . + + :currentTime :is ?currentTime . + + # lower bound + ?permission odrl:constraint ?lowerBoundIRI . + ?lowerBoundIRI odrl:leftOperand odrl:dateTime ; + odrl:operator odrl:gt ; + odrl:rightOperand ?lowerBound . + + # greater bound + ?permission odrl:constraint ?upperBoundIRI . + ?upperBoundIRI odrl:leftOperand odrl:dateTime ; + odrl:operator odrl:lt ; + odrl:rightOperand ?upperBound . + + # ?lowerBound < ?currentTime < ?upperBound + ?currentTime math:greaterThan ?lowerBound . + ?currentTime math:lessThan ?upperBound . + + # purpose constraint + ?permission odrl:constraint ?purposeConstraint . + ?purposeConstraint odrl:leftOperand odrl:purpose ; + odrl:operator odrl:eq ; + odrl:rightOperand ?purposeValue + # Note: nothing is done with the purpose right now TODO: needs checking +} => +{ + ?dataUsagePolicyExecution a fno:Execution; + fno:executes ; + :accessModesAllowed acl:Read. + ?dataUsagePolicyExecution ?currentTime . + +}. + diff --git a/packages/ucp/src/policy/ODRL.ts b/packages/ucp/src/policy/ODRL.ts index f56a3f5a..48282780 100644 --- a/packages/ucp/src/policy/ODRL.ts +++ b/packages/ucp/src/policy/ODRL.ts @@ -83,6 +83,14 @@ export function createConstraintQuads(constraint: UCPConstraint, ruleIRI?: strin quads.push(quad(namedNode(ruleIRI), ODRL.terms.constraint, namedNode(constraintIRI))) } break; + case "purpose": + quads.push(quad(namedNode(constraintIRI), ODRL.terms.leftOperand, ODRL.terms.purpose)); + quads.push(quad(namedNode(constraintIRI), ODRL.terms.operator, namedNode(constraint.operator))); + quads.push(quad(namedNode(constraintIRI), ODRL.terms.rightOperand, literal(constraint.value))); + if (ruleIRI) { + quads.push(quad(namedNode(ruleIRI), ODRL.terms.constraint, namedNode(constraintIRI))) + } + break; default: console.log("Can not create constraint as the type is not understood:", constraint.type); break; diff --git a/packages/ucp/src/util/Vocabularies.ts b/packages/ucp/src/util/Vocabularies.ts index d86b70fc..fb82fdd0 100644 --- a/packages/ucp/src/util/Vocabularies.ts +++ b/packages/ucp/src/util/Vocabularies.ts @@ -122,6 +122,7 @@ export const ODRL = createVocabulary( 'operator', 'permission', 'dateTime', + 'purpose', 'leftOperand', 'rightOperand' ) From ba3defab64b04c687af93143f613b0cfc180c0ea Mon Sep 17 00:00:00 2001 From: Wouter Termont Date: Wed, 13 Mar 2024 16:06:37 +0100 Subject: [PATCH 08/83] feat: made N3 ruleset configurable Signed-off-by: Wouter Termont --- packages/uma/bin/demo.ts | 1 + packages/uma/bin/main.ts | 1 + .../uma/config/policies/authorizers/default.json | 6 ++++-- packages/uma/config/rules/{ => n3}/crud.n3 | 0 .../uma/config/rules/n3}/purpose-time.n3 | 0 packages/uma/config/variables/default.json | 5 +++++ .../authorizers/PolicyBasedAuthorizer.ts | 16 ++++++++++------ 7 files changed, 21 insertions(+), 8 deletions(-) rename packages/uma/config/rules/{ => n3}/crud.n3 (100%) rename {demo => packages/uma/config/rules/n3}/purpose-time.n3 (100%) diff --git a/packages/uma/bin/demo.ts b/packages/uma/bin/demo.ts index 539b42e7..397c71ac 100644 --- a/packages/uma/bin/demo.ts +++ b/packages/uma/bin/demo.ts @@ -21,6 +21,7 @@ export const launch: () => Promise = async () => { variables['urn:uma:variables:baseUrl'] = baseUrl; // variables['urn:uma:variables:policyDir'] = path.join(rootDir, './config/rules/policy'); + variables['urn:uma:variables:rulesDir'] = path.join(rootDir, './config/rules/n3'); variables['urn:uma:variables:mainModulePath'] = rootDir; variables['urn:uma:variables:customConfigPath'] = path.join(rootDir, './config/demo.json'); diff --git a/packages/uma/bin/main.ts b/packages/uma/bin/main.ts index 813c2d39..073b0a1c 100644 --- a/packages/uma/bin/main.ts +++ b/packages/uma/bin/main.ts @@ -21,6 +21,7 @@ export const launch: () => Promise = async () => { variables['urn:uma:variables:baseUrl'] = baseUrl; variables['urn:uma:variables:policyDir'] = path.join(rootDir, './config/rules/policy'); + variables['urn:uma:variables:rulesDir'] = path.join(rootDir, './config/rules/n3'); variables['urn:uma:variables:mainModulePath'] = rootDir; variables['urn:uma:variables:customConfigPath'] = path.join(rootDir, './config/default.json'); diff --git a/packages/uma/config/policies/authorizers/default.json b/packages/uma/config/policies/authorizers/default.json index f49cb703..ff3e62ec 100644 --- a/packages/uma/config/policies/authorizers/default.json +++ b/packages/uma/config/policies/authorizers/default.json @@ -35,8 +35,10 @@ "fallback": { "@id": "urn:uma:default:PolicyBasedAuthorizer", "@type": "PolicyBasedAuthorizer", - "n3Rules": "config/rules/crud.n3", - "rules": { + "rulesDir": { + "@id": "urn:uma:variables:rulesDir" + }, + "policies": { "@id": "urn:uma:default:RulesStorage", "@type": "DirectoryUCRulesStorage", "directoryPath": { diff --git a/packages/uma/config/rules/crud.n3 b/packages/uma/config/rules/n3/crud.n3 similarity index 100% rename from packages/uma/config/rules/crud.n3 rename to packages/uma/config/rules/n3/crud.n3 diff --git a/demo/purpose-time.n3 b/packages/uma/config/rules/n3/purpose-time.n3 similarity index 100% rename from demo/purpose-time.n3 rename to packages/uma/config/rules/n3/purpose-time.n3 diff --git a/packages/uma/config/variables/default.json b/packages/uma/config/variables/default.json index 7afa413c..f71183b9 100644 --- a/packages/uma/config/variables/default.json +++ b/packages/uma/config/variables/default.json @@ -21,6 +21,11 @@ "comment": "Path to the directory containing the policy rules.", "@id": "urn:uma:variables:policyDir", "@type": "Variable" + }, + { + "comment": "Path to the directory containing the N3 rules.", + "@id": "urn:uma:variables:rulesDir", + "@type": "Variable" } ] } diff --git a/packages/uma/src/policies/authorizers/PolicyBasedAuthorizer.ts b/packages/uma/src/policies/authorizers/PolicyBasedAuthorizer.ts index e3da3aa9..8ae3f783 100644 --- a/packages/uma/src/policies/authorizers/PolicyBasedAuthorizer.ts +++ b/packages/uma/src/policies/authorizers/PolicyBasedAuthorizer.ts @@ -7,7 +7,7 @@ import { ClaimSet } from '../../credentials/ClaimSet'; import { DirectoryUCRulesStorage, PolicyExecutor, UconRequest, UcpPatternEnforcement, UcpPlugin, UCRulesStorage } from '@solidlab/ucp'; import { EyeJsReasoner } from "koreografeye"; -import { readFileSync } from 'fs'; +import { lstatSync, readFileSync, readdirSync } from 'fs'; import path from 'path'; import { UNSOLVABLE, WEBID } from '../../credentials/Claims'; @@ -21,7 +21,6 @@ export class PolicyBasedAuthorizer implements Authorizer { private plugins = { "http://example.org/dataUsage": new UcpPlugin() }; private executor = new PolicyExecutor(this.plugins); private enforcer: UcpPatternEnforcement; - private n3: string; /** * Creates a PublicNamespaceAuthorizer with the given public namespaces. @@ -32,11 +31,16 @@ export class PolicyBasedAuthorizer implements Authorizer { constructor( // protected rules: UCRulesStorage, // protected enforcer: UcpPatternEnforcement - rules: UCRulesStorage, - n3Rules: string, + policies: UCRulesStorage, + rulesDir: string, ) { - this.n3 = readFileSync(path.join(__dirname, '../../../', n3Rules)).toString(); - this.enforcer = new UcpPatternEnforcement(rules, [this.n3], this.reasoner, this.executor) + if (!lstatSync(rulesDir).isDirectory()) { + throw Error(`${rulesDir} does not resolve to a directory`) + } + const ruleSet = readdirSync(rulesDir).map(file => { + return readFileSync(path.join(rulesDir, file)).toString(); + }); + this.enforcer = new UcpPatternEnforcement(policies, ruleSet, this.reasoner, this.executor) } From 246cf53d51fb1756f0731d3fe03ceb97af7dd0f4 Mon Sep 17 00:00:00 2001 From: Wouter Termont Date: Wed, 13 Mar 2024 16:25:32 +0100 Subject: [PATCH 09/83] chore: cleanup & align n3 rules a bit Signed-off-by: Wouter Termont --- packages/uma/config/rules/n3/crud.n3 | 42 +++++++----- packages/uma/config/rules/n3/purpose-time.n3 | 72 +++++++++++--------- 2 files changed, 63 insertions(+), 51 deletions(-) diff --git a/packages/uma/config/rules/n3/crud.n3 b/packages/uma/config/rules/n3/crud.n3 index 44e26893..2c240210 100644 --- a/packages/uma/config/rules/n3/crud.n3 +++ b/packages/uma/config/rules/n3/crud.n3 @@ -6,7 +6,6 @@ @prefix string: . @prefix list: . - # Read ODRL rule { ?permission a odrl:Permission; @@ -15,9 +14,8 @@ # odrl:assigner ?resourceOwner ; odrl:assignee ?requestedParty. - ?action list:in (odrl:use odrl:read) . # multiple options + ?action list:in (odrl:use odrl:read) . # multiple options - ?SCOPE log:notIncludes { ?permission odrl:constraint ?anything }. # No odrl:constraints may be present # context of a request ?context @@ -29,6 +27,10 @@ :uuid5 log:uuid ?uuidStringdataUsagePolicyExecution. ( "urn:uuid:" ?uuidStringdataUsagePolicyExecution) string:concatenation ?urnUuidStringdataUsagePolicyExecution. ?dataUsagePolicyExecution log:uri ?urnUuidStringdataUsagePolicyExecution . + + # Constraint checking + # No odrl:constraints may be present + ?SCOPE log:notIncludes { ?permission odrl:constraint ?anything }. } => { ?dataUsagePolicyExecution a fno:Execution; @@ -46,8 +48,6 @@ ?action list:in (odrl:use odrl:modify). # multiple options - ?SCOPE log:notIncludes { ?permission odrl:constraint ?anything }. # No odrl:constraints may be present - # context of a request ?context # :resourceOwner ?resourceOwner; @@ -58,6 +58,10 @@ :uuid6 log:uuid ?uuidStringdataUsagePolicyExecution. ( "urn:uuid:" ?uuidStringdataUsagePolicyExecution) string:concatenation ?urnUuidStringdataUsagePolicyExecution. ?dataUsagePolicyExecution log:uri ?urnUuidStringdataUsagePolicyExecution . + + # Constraint checking + # No odrl:constraints may be present + ?SCOPE log:notIncludes { ?permission odrl:constraint ?anything }. } => { ?dataUsagePolicyExecution a fno:Execution; @@ -65,7 +69,6 @@ :accessModesAllowed . }. - # Write ODRL Rule { ?permission a odrl:Permission; @@ -74,9 +77,7 @@ # odrl:assigner ?resourceOwner ; odrl:assignee ?requestedParty. - ?action list:in (odrl:use odrl:modify). # multiple options - - ?SCOPE log:notIncludes { ?permission odrl:constraint ?anything }. # No odrl:constraints may be present + ?action list:in (odrl:use odrl:modify). # multiple options # context of a request ?context @@ -88,6 +89,10 @@ :uuid6 log:uuid ?uuidStringdataUsagePolicyExecution. ( "urn:uuid:" ?uuidStringdataUsagePolicyExecution) string:concatenation ?urnUuidStringdataUsagePolicyExecution. ?dataUsagePolicyExecution log:uri ?urnUuidStringdataUsagePolicyExecution . + + # Constraint checking + # No odrl:constraints may be present + ?SCOPE log:notIncludes { ?permission odrl:constraint ?anything }. } => { ?dataUsagePolicyExecution a fno:Execution; @@ -95,8 +100,6 @@ :accessModesAllowed . }. - - # Create ODRL Rule { ?permission a odrl:Permission; @@ -105,9 +108,7 @@ # odrl:assigner ?resourceOwner ; odrl:assignee ?requestedParty . - ?action list:in (odrl:use odrl:modify). # multiple options - - ?SCOPE log:notIncludes { ?permission odrl:constraint ?anything }. # No odrl:constraints may be present + ?action list:in (odrl:use odrl:modify). # multiple options # context of a request ?context @@ -119,6 +120,10 @@ :uuid6 log:uuid ?uuidStringdataUsagePolicyExecution. ( "urn:uuid:" ?uuidStringdataUsagePolicyExecution) string:concatenation ?urnUuidStringdataUsagePolicyExecution. ?dataUsagePolicyExecution log:uri ?urnUuidStringdataUsagePolicyExecution . + + # Constraint checking + # No odrl:constraints may be present + ?SCOPE log:notIncludes { ?permission odrl:constraint ?anything }. } => { ?dataUsagePolicyExecution a fno:Execution; @@ -126,7 +131,6 @@ :accessModesAllowed . }. - # Delete ODRL Rule { ?permission a odrl:Permission; @@ -135,9 +139,7 @@ # odrl:assigner ?resourceOwner ; odrl:assignee ?requestedParty. - ?action list:in (odrl:use odrl:delete). # multiple options - - ?SCOPE log:notIncludes { ?permission odrl:constraint ?anything }. # No odrl:constraints may be present + ?action list:in (odrl:use odrl:delete). # multiple options # context of a request ?context @@ -149,6 +151,10 @@ :uuid6 log:uuid ?uuidStringdataUsagePolicyExecution. ( "urn:uuid:" ?uuidStringdataUsagePolicyExecution) string:concatenation ?urnUuidStringdataUsagePolicyExecution. ?dataUsagePolicyExecution log:uri ?urnUuidStringdataUsagePolicyExecution . + + # Constraint checking + # No odrl:constraints may be present + ?SCOPE log:notIncludes { ?permission odrl:constraint ?anything }. } => { ?dataUsagePolicyExecution a fno:Execution; diff --git a/packages/uma/config/rules/n3/purpose-time.n3 b/packages/uma/config/rules/n3/purpose-time.n3 index ab433ab8..c15bc7d0 100644 --- a/packages/uma/config/rules/n3/purpose-time.n3 +++ b/packages/uma/config/rules/n3/purpose-time.n3 @@ -8,7 +8,8 @@ @prefix list: . @prefix time: . @prefix math: . -# Create ODRL Rule: doesn't exist (`odrl:write` and `odrl:append` are deprecated) + +# ... { :currentTime :is ?currentTime } <= { "" time:localTime ?currentTime }. # Read ODRL rule @@ -16,57 +17,62 @@ ?permission a odrl:Permission; odrl:action ?action ; odrl:target ?targetResource ; - odrl:assignee ?requestedParty; - odrl:assigner ?resourceOwner . + # odrl:assigner ?resourceOwner ; + odrl:assignee ?requestedParty. - ?action list:in (odrl:use odrl:read) . # multiple options + ?action list:in (odrl:use odrl:read) . # multiple options # context of a request ?context - :resourceOwner ?resourceOwner; + # :resourceOwner ?resourceOwner; :requestingParty ?requestedParty; :target ?targetResource; - :requestPermission acl:Read. + :requestPermission . :uuid5 log:uuid ?uuidStringdataUsagePolicyExecution. ( "urn:uuid:" ?uuidStringdataUsagePolicyExecution) string:concatenation ?urnUuidStringdataUsagePolicyExecution. ?dataUsagePolicyExecution log:uri ?urnUuidStringdataUsagePolicyExecution . - # Constraint checking - # number of constraints must be two (temporal needs lower and upper bound) - (?template {?permission odrl:constraint _:s} ?L) log:collectAllIn ?SCOPE. - ?L list:length 3 . - - :currentTime :is ?currentTime . + # Constraint checking + + # number of constraints must be two (temporal needs lower and upper bound) + (?template {?permission odrl:constraint _:s} ?L) log:collectAllIn ?SCOPE. + ?L list:length 3 . + + :currentTime :is ?currentTime . - # lower bound - ?permission odrl:constraint ?lowerBoundIRI . - ?lowerBoundIRI odrl:leftOperand odrl:dateTime ; - odrl:operator odrl:gt ; - odrl:rightOperand ?lowerBound . + # lower bound + ?permission odrl:constraint ?lowerBoundIRI . + ?lowerBoundIRI + odrl:leftOperand odrl:dateTime ; + odrl:operator odrl:gt ; + odrl:rightOperand ?lowerBound . - # greater bound - ?permission odrl:constraint ?upperBoundIRI . - ?upperBoundIRI odrl:leftOperand odrl:dateTime ; - odrl:operator odrl:lt ; - odrl:rightOperand ?upperBound . + # greater bound + ?permission odrl:constraint ?upperBoundIRI . + ?upperBoundIRI + odrl:leftOperand odrl:dateTime ; + odrl:operator odrl:lt ; + odrl:rightOperand ?upperBound . - # ?lowerBound < ?currentTime < ?upperBound - ?currentTime math:greaterThan ?lowerBound . - ?currentTime math:lessThan ?upperBound . + # ?lowerBound < ?currentTime < ?upperBound + ?currentTime math:greaterThan ?lowerBound . + ?currentTime math:lessThan ?upperBound . - # purpose constraint - ?permission odrl:constraint ?purposeConstraint . - ?purposeConstraint odrl:leftOperand odrl:purpose ; - odrl:operator odrl:eq ; - odrl:rightOperand ?purposeValue - # Note: nothing is done with the purpose right now TODO: needs checking + # purpose constraint + ?permission odrl:constraint ?purposeConstraint . + ?purposeConstraint + odrl:leftOperand odrl:purpose ; + odrl:operator odrl:eq ; + odrl:rightOperand ?purposeValue . + # Note: nothing is done with the purpose right now TODO: needs checking } => { ?dataUsagePolicyExecution a fno:Execution; fno:executes ; - :accessModesAllowed acl:Read. - ?dataUsagePolicyExecution ?currentTime . + :accessModesAllowed ; + ?currentTime . }. +# No ODRL rules for other access modes (`odrl:write` and `odrl:append` are deprecated) From bc4528dbf48a62a99f5af5466b7c09becbe14245 Mon Sep 17 00:00:00 2001 From: Wouter Termont Date: Thu, 14 Mar 2024 11:28:40 +0100 Subject: [PATCH 10/83] chore: debugging & cleaunup Signed-off-by: Wouter Termont --- demo/demoEngine.ts | 48 --------------- demo/flow.ts | 129 ++++++++++++++++++++--------------------- demo/main.ts | 41 ------------- demo/memory.json | 37 ------------ demo/policyCreation.ts | 75 +++++++++++------------- 5 files changed, 98 insertions(+), 232 deletions(-) delete mode 100644 demo/demoEngine.ts delete mode 100644 demo/main.ts delete mode 100644 demo/memory.json diff --git a/demo/demoEngine.ts b/demo/demoEngine.ts deleted file mode 100644 index 600a683a..00000000 --- a/demo/demoEngine.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { ContainerUCRulesStorage, PolicyExecutor, UCRulesStorage, UconEnforcementDecision, UcpPatternEnforcement, UcpPlugin } from "@solidlab/ucp" -import { App, AppRunner, AppRunnerInput } from "@solid/community-server"; -import * as Path from 'path'; -import { EyeJsReasoner, readText } from "koreografeye"; - -type Demo = { - css: App, - ucpEngine: UconEnforcementDecision, - storage: UCRulesStorage -} - -export async function initEngine(portNumber = 3123): Promise { - const containerURL = `http://localhost:${portNumber}/` - // code to start css server somewhere - const css = await configSolidServer(portNumber) - - // initiating - // load plugin(s) - const plugins = { "http://example.org/dataUsage": new UcpPlugin() } - // Initialise koreografeye policy executor - const policyExecutor = new PolicyExecutor(plugins) - // load N3 Rules from a directory - const rulesDirectory = Path.join(__dirname) - const n3Rules: string[] = [readText(Path.join(rulesDirectory, 'purpose-time.n3'))!] - // Initialise Usage Control Rule Storage - const uconRulesStorage = new ContainerUCRulesStorage(containerURL); - const ucpEngine = new UcpPatternEnforcement(uconRulesStorage, n3Rules, new EyeJsReasoner([ - "--quiet", - "--nope", - "--pass"]), policyExecutor) - return {css, ucpEngine, storage: uconRulesStorage} -} - - -// utils -async function configSolidServer(port: number): Promise { - const input: AppRunnerInput = { - config: Path.join(__dirname, "memory.json"), - variableBindings: { - 'urn:solid-server:default:variable:port': port, - 'urn:solid-server:default:variable:baseUrl': `http://localhost:${port}/`, - 'urn:solid-server:default:variable:loggingLevel': 'warn', - } - } - const cssRunner = await new AppRunner().create(input) - return cssRunner -} - diff --git a/demo/flow.ts b/demo/flow.ts index dd0cc5ba..e6d86594 100644 --- a/demo/flow.ts +++ b/demo/flow.ts @@ -1,7 +1,11 @@ /* eslint-disable max-len */ import { fetch } from 'cross-fetch'; -import { Parser, Store } from 'n3'; +import { Parser, Writer, Store } from 'n3'; +import { demoPolicy } from "./policyCreation"; + +const parser = new Parser(); +const writer = new Writer(); const terms = { solid: { @@ -14,64 +18,31 @@ const terms = { filters: { bday: 'http://localhost:3000/catalog/public/filters/bday', age: 'http://localhost:3000/catalog/public/filters/age', + }, + views: { + bday: 'http://localhost:3000/ruben/private/derived/bday', + age: 'http://localhost:3000/ruben/private/derived/age', + }, + agents: { + ruben: 'http://localhost:3000/ruben/profile/card#me', + vendor: 'http://localhost:3000/demo/public/vendor', + present: 'http://localhost:3000/demo/public/bday-app', + }, + scopes: { + read: 'urn:example:css:modes:read', } } -const parser = new Parser(); - -const privateRequest = async (resource_id: string, tokenEndpoint: string) => { - const claim_token = "http://localhost:3000/demo/public/bday-app" - - const content = { - grant_type: 'urn:ietf:params:oauth:grant-type:uma-ticket', - claim_token: encodeURIComponent(claim_token), - claim_token_format: 'urn:solidlab:uma:claims:formats:webid', - // ticket, - permissions: [{ - resource_id, - resource_scopes: [ 'urn:example:css:modes:read', 'urn:example:css:modes:write' ], - }] - }; - - const asRequestResponse = await fetch(tokenEndpoint, { - method: "POST", - headers: { - "content-type":"application/json" - }, - body: JSON.stringify(content), - }); - - const asResponse = await asRequestResponse.json(); - const tokenResponse = await fetch(resource_id, { - headers: { 'Authorization': `${asResponse.token_type} ${asResponse.access_token}` } - }); -} - -const log = (msg: string, obj?: any) => { - console.log(''); - console.log(msg); - if (obj) { - console.log('\n'); - console.log(obj); - } -} - -function parseJwt (token:string) { - return JSON.parse(Buffer.from(token.split('.')[1], 'base64').toString()); -} - async function main() { log(`Alright, so, for the demo ...`); - const webId = 'http://localhost:3000/ruben/profile/card#me'; - - log(`Ruben V., a.k.a. <${webId}>, has some private data in .`); + log(`Ruben V., a.k.a. <${terms.agents.ruben}>, has some private data in .`); log(`Of course, he does not want everyone to be able to see all of his private data when they need just one aspect of it. Therefore, Ruben has installed two Views on his data, based on SPARQL filters from a public Catalog. (When and how this is done is out-of-scope for now.)`); - const webIdData = new Store(parser.parse(await (await fetch(webId)).text())); - const viewIndex = webIdData.getObjects(webId, terms.solid.viewIndex, null)[0].value; + const webIdData = new Store(parser.parse(await (await fetch(terms.agents.ruben)).text())); + const viewIndex = webIdData.getObjects(terms.agents.ruben, terms.solid.viewIndex, null)[0].value; const views = Object.fromEntries(webIdData.getObjects(viewIndex, terms.solid.entry, null).map(entry => { const filter = webIdData.getObjects(entry, terms.solid.filter, null)[0].value; const location = webIdData.getObjects(entry, terms.solid.location, null)[0].value; @@ -83,11 +54,11 @@ async function main() { log(`(1) <${views[terms.filters.bday]}> filters out his birth date, according to the <${terms.filters.bday}> filter`); log(`(2) <${views[terms.filters.age]}> derives his age, according to the <${terms.filters.bday}> filter`); - const policyDir = 'http://localhost:3000/ruben/settings/policies/'; + const policyContainer = 'http://localhost:3000/ruben/settings/policies/'; - log(`Access to Ruben's data is based on policies he manages through his Authz Companion app, and which are stored in <${policyDir}>. (This is, of course, not publicly known.)`); + log(`Access to Ruben's data is based on policies he manages through his Authz Companion app, and which are stored in <${policyContainer}>. (This is, of course, not publicly known.)`); - const umaServer = webIdData.getObjects(webId, terms.solid.umaServer, null)[0].value; + const umaServer = webIdData.getObjects(terms.agents.ruben, terms.solid.umaServer, null)[0].value; const configUrl = new URL('.well-known/uma2-configuration', umaServer); const umaConfig = await (await fetch(configUrl)).json(); const tokenEndpoint = umaConfig.token_endpoint; @@ -101,17 +72,29 @@ async function main() { log(`Having been notified in some way of the access request, Ruben could go to his Authz Companion app, and add a policy allowing the requested access.`); - const privateResource = "http://localhost:3000/ruben/private/derived/age" - const claim_token = "http://localhost:3000/demo/public/bday-app" + const startDate = new Date(); + const endDate = new Date(startDate.valueOf() + 14 * 24 * 60 * 60 * 1000); + const purpose = 'age-verification' + const policy = demoPolicy(terms.views.age, terms.agents.vendor, { startDate, endDate, purpose }) + + const policyCreationResponse = await fetch(policyContainer, { + method: 'POST', + headers: { 'content-type': 'text/turtle' }, + body: writer.quadsToString(policy.representation.getQuads(null, null, null, null)) + }); + + if (policyCreationResponse.status !== 201) { log('Adding a policy did not succeed...'); throw 0; } + + log(`Now that the policy has been set, and the agent has possibly been notified in some way, the agent can try the access request again.`); const content = { - grant_type: 'urn:ietf:params:oauth:grant-type:uma-ticket', - claim_token: encodeURIComponent(claim_token), + // grant_type: 'urn:ietf:params:oauth:grant-type:uma-ticket', + claim_token: encodeURIComponent(terms.agents.vendor), claim_token_format: 'urn:solidlab:uma:claims:formats:webid', // ticket, permissions: [{ - resource_id: privateResource, - resource_scopes: [ 'urn:example:css:modes:read' ], + resource_id: terms.views.age, + resource_scopes: [ terms.scopes.read ], }] }; @@ -121,9 +104,7 @@ async function main() { const asRequestResponse = await fetch(tokenEndpoint, { method: "POST", - headers: { - "content-type":"application/json" - }, + headers: { "content-type":"application/json" }, body: JSON.stringify(content), }) @@ -140,13 +121,13 @@ async function main() { console.log({ ...asResponse, access_token: asResponse.access_token.slice(0,10).concat('...') }); console.log('\n'); - // for (const permission of decodedToken.permissions) { - // console.log(`Permissioned scopes for resource ${permission.resource_id}:`, permission.resource_scopes) - // } + for (const permission of decodedToken.permissions) { + console.log(`Permissioned scopes for resource ${permission.resource_id}:`, permission.resource_scopes) + } - console.log(`=== Trying to create private resource <${privateResource}> WITH access token.\n`); + console.log(`=== Trying to create private resource <${terms.views.age}> WITH access token.\n`); - const tokenResponse = await fetch(privateResource, { + const tokenResponse = await fetch(terms.views.age, { headers: { 'Authorization': `${asResponse.token_type} ${asResponse.access_token}` } }); @@ -157,3 +138,19 @@ async function main() { } main(); + + +/* Helper functions */ + +function parseJwt (token:string) { + return JSON.parse(Buffer.from(token.split('.')[1], 'base64').toString()); +} + +function log(msg: string, obj?: any) { + console.log(''); + console.log(msg); + if (obj) { + console.log('\n'); + console.log(obj); + } +} diff --git a/demo/main.ts b/demo/main.ts deleted file mode 100644 index a1e0a769..00000000 --- a/demo/main.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { createContext, storeToString } from "@solidlab/ucp"; -import { initEngine } from "./demoEngine"; -import { demoPolicy } from "./policyCreation"; - -async function main(){ - const {css, ucpEngine, storage} = await initEngine(); - - const target = "urn:wout:age" - const requestingParty = "https://pod.rubendedecker.be/profile/card#me" - - const request = { - subject: requestingParty, - action: ["http://www.w3.org/ns/auth/acl#Read"], - resource: target, - owner: "https://pod.woutslabbinck.com/profile/card#me" - } - const policy = demoPolicy(target, requestingParty) - // start server - await css.start(); - - - const noAccessModes = await ucpEngine.calculateAccessModes(request); - console.log("Access modes retrieved when no policy in storage", noAccessModes); - - // Add following Policy to storage: - // Wout gives access to Ruben regarding Wout his age - // constraints: two weeks from now on + purpose= "age-verification" - await storage.addRule(policy.representation) - - - const accessModes = await ucpEngine.calculateAccessModes(request); - console.log("Access modes retrieved when policy in storage", accessModes); - - // debug logs - // console.log(storeToString(createContext(request))); // Note: request -> which is also what is expected in the uma server at that stage - // console.log(storeToString(policy.representation)); // Note: log ODRL rule - console.log("Right now 'storage' is used to PUT the demo policy to 'http://localhost:3123/'. A normal HTTP request can also be used to do that."); - -} - -main() \ No newline at end of file diff --git a/demo/memory.json b/demo/memory.json deleted file mode 100644 index 5bf225ea..00000000 --- a/demo/memory.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "@context": "https://linkedsoftwaredependencies.org/bundles/npm/@solid/community-server/^7.0.0/components/context.jsonld", - "import": [ - "css:config/app/init/initialize-root.json", - "css:config/app/main/default.json", - "css:config/app/variables/default.json", - "css:config/http/handler/default.json", - "css:config/http/middleware/default.json", - "css:config/http/notifications/all.json", - "css:config/http/server-factory/http.json", - "css:config/http/static/default.json", - "css:config/identity/access/public.json", - "css:config/identity/email/default.json", - "css:config/identity/handler/disabled.json", - "css:config/identity/oidc/disabled.json", - "css:config/identity/ownership/token.json", - "css:config/identity/pod/static.json", - "css:config/ldp/authentication/dpop-bearer.json", - "css:config/ldp/authorization/webacl.json", - "css:config/ldp/handler/default.json", - "css:config/ldp/metadata-parser/default.json", - "css:config/ldp/metadata-writer/default.json", - "css:config/ldp/modes/default.json", - "css:config/storage/backend/memory.json", - "css:config/storage/key-value/resource-store.json", - "css:config/storage/location/root.json", - "css:config/storage/middleware/default.json", - "css:config/util/auxiliary/acl.json", - "css:config/util/identifiers/suffix.json", - "css:config/util/index/default.json", - "css:config/util/logging/winston.json", - "css:config/util/representation-conversion/default.json", - "css:config/util/resource-locker/memory.json", - "css:config/util/variables/default.json" - ], - "@graph": [] - } \ No newline at end of file diff --git a/demo/policyCreation.ts b/demo/policyCreation.ts index 48d48447..326e949d 100644 --- a/demo/policyCreation.ts +++ b/demo/policyCreation.ts @@ -1,58 +1,53 @@ -/** - * create ODRL policy with three constraints -> basically a function that prints that as output - - constraints - - start time - - end time - - purpose: string -> "age-verification" - - target: SHACL shape? - */ - -import { SimplePolicy, UCPPolicy, basicPolicy, storeToString } from '@solidlab/ucp' +import { SimplePolicy, UCPPolicy, basicPolicy } from '@solidlab/ucp' -export const agePurpose = "age-verification" /** * Create demo ODRL policy: * * Read access for requestingparty to target under constraints (temporal + purpose) * @param targetIRI - an IRI representing the target -> the resource * @param requestingPartyIRI - an IRI representing the entity requesting access - * @param constraints + * @param constraints - the temporal and purpuse constraints on the usage of the data */ -export function demoPolicy(targetIRI, requestingPartyIRI, constraints?: { startDate?: Date, endDate?: Date, purpose?: string }): SimplePolicy { - const startDate = constraints?.startDate ?? new Date() - const endDate = constraints?.endDate ?? new Date(startDate.valueOf()+ 86_400 * 14 * 1000) - const purpose = constraints?.purpose ?? agePurpose +export function demoPolicy( + targetIRI: string, + requestingPartyIRI: string, + constraints?: { + startDate?: Date, + endDate?: Date, + purpose?: string + } +): SimplePolicy { + const constraintList: any[] = []; + + if (constraints?.startDate) constraintList.push({ + type: 'temporal', + operator: 'http://www.w3.org/ns/odrl/2/gt', + value: constraints?.startDate, + }); + + if (constraints?.endDate) constraintList.push({ + type: 'temporal', + operator: 'http://www.w3.org/ns/odrl/2/lt', + value: constraints?.endDate, + }); + + if (constraints?.purpose) constraintList.push({ + type: 'purpose', + operator: 'http://www.w3.org/ns/odrl/2/eq', + value: constraints?.purpose, + }); const policy: UCPPolicy = { rules: [{ - requestingParty: requestingPartyIRI, - action: "http://www.w3.org/ns/odrl/2/read", // msut be odrl resource: targetIRI, - owner: "https://pod.woutslabbinck.com/profile/card#me", // can lead to bugs, depending on whether we use owner or not - constraints: [ - { - type: "temporal", - operator: "http://www.w3.org/ns/odrl/2/gt", - value: startDate - }, - { - type: "temporal", - operator: "http://www.w3.org/ns/odrl/2/lt", - value: endDate - }, - { - type: "purpose", - operator: "http://www.w3.org/ns/odrl/2/eq", - value: purpose - }, - ] + action: "http://www.w3.org/ns/odrl/2/read", // ODRL action + requestingParty: requestingPartyIRI, + // owner: "https://pod.woutslabbinck.com/profile/card#me", // might error + constraints: constraintList }] } const policyObject = basicPolicy(policy); - // console.log(storeToString(policyObject.representation)); + return policyObject } - -// example: Wout gives access to Ruben regarding Wout his age -// demoPolicy("urn:wout:age", "https://pod.rubendedecker.be/profile/card#me") \ No newline at end of file From 6e9fd94fec3704dc9930dfab349881e6c137ebae Mon Sep 17 00:00:00 2001 From: Wouter Termont Date: Fri, 15 Mar 2024 17:13:21 +0100 Subject: [PATCH 11/83] fix: last fixes to flow Signed-off-by: Wouter Termont --- demo/data/ruben/settings/policies/policy0.ttl | 10 --- demo/flow.ts | 84 +++++++++---------- packages/uma/package.json | 4 +- 3 files changed, 40 insertions(+), 58 deletions(-) delete mode 100644 demo/data/ruben/settings/policies/policy0.ttl diff --git a/demo/data/ruben/settings/policies/policy0.ttl b/demo/data/ruben/settings/policies/policy0.ttl deleted file mode 100644 index 54e5f51e..00000000 --- a/demo/data/ruben/settings/policies/policy0.ttl +++ /dev/null @@ -1,10 +0,0 @@ -@prefix ex: . -@prefix odrl: . - -ex:usagePolicy a odrl:Agreement . -ex:usagePolicy odrl:permission ex:permission . -ex:permission a odrl:Permission . -ex:permission odrl:action odrl:read , odrl:modify . -ex:permission odrl:target , . -ex:permission odrl:assignee . -ex:permission odrl:assigner . diff --git a/demo/flow.ts b/demo/flow.ts index e6d86594..2445f4f0 100644 --- a/demo/flow.ts +++ b/demo/flow.ts @@ -68,6 +68,28 @@ async function main() { log(`Now, having discovered both the location of the UMA server and of the desired data, an agent can request the former for access to the latter.`); + const accessRequest = { + // grant_type: 'urn:ietf:params:oauth:grant-type:uma-ticket', + // ticket, + claim_token: encodeURIComponent(terms.agents.vendor), + claim_token_format: 'urn:solidlab:uma:claims:formats:webid', + permissions: [{ + resource_id: terms.views.age, + resource_scopes: [ terms.scopes.read ], + }] + }; + + const accessDeniedResponse = await fetch(tokenEndpoint, { + method: "POST", + headers: { "content-type": "application/json" }, + body: JSON.stringify(accessRequest), + }); + + // if (accessDeniedResponse.status !== 403) { log('Access request succeeded without policy...'); throw 0; } + + log(`Without a policy allowing the access, the access is denied.`); + log(`However, the UMA server enables multiple flows in which such a policy can be added, for example by notifying the resource owner. (This is out-of-scope for this demo.)`); + log(`...`); log(`Having been notified in some way of the access request, Ruben could go to his Authz Companion app, and add a policy allowing the requested access.`); @@ -84,57 +106,27 @@ async function main() { }); if (policyCreationResponse.status !== 201) { log('Adding a policy did not succeed...'); throw 0; } - + log(`Now that the policy has been set, and the agent has possibly been notified in some way, the agent can try the access request again.`); - - const content = { - // grant_type: 'urn:ietf:params:oauth:grant-type:uma-ticket', - claim_token: encodeURIComponent(terms.agents.vendor), - claim_token_format: 'urn:solidlab:uma:claims:formats:webid', - // ticket, - permissions: [{ - resource_id: terms.views.age, - resource_scopes: [ terms.scopes.read ], - }] - }; - - console.log(`=== Requesting token at ${tokenEndpoint} with ticket body:\n`); - console.log(content); - console.log(''); - - const asRequestResponse = await fetch(tokenEndpoint, { - method: "POST", - headers: { "content-type":"application/json" }, - body: JSON.stringify(content), - }) - - // For debugging: - // console.log("Authorization Server response:", await asRequestResponse.text()); - // throw 'stop' - - const asResponse = await asRequestResponse.json(); - - const decodedToken = parseJwt(asResponse.access_token); - - console.log(`= Status: ${asRequestResponse.status}\n`); - console.log(`= Body (decoded):\n`); - console.log({ ...asResponse, access_token: asResponse.access_token.slice(0,10).concat('...') }); - console.log('\n'); - - for (const permission of decodedToken.permissions) { - console.log(`Permissioned scopes for resource ${permission.resource_id}:`, permission.resource_scopes) - } - console.log(`=== Trying to create private resource <${terms.views.age}> WITH access token.\n`); + const accessGrantedResponse = await fetch(tokenEndpoint, { + method: "POST", + headers: { "content-type": "application/json" }, + body: JSON.stringify(accessRequest), + }); - const tokenResponse = await fetch(terms.views.age, { - headers: { 'Authorization': `${asResponse.token_type} ${asResponse.access_token}` } + if (accessGrantedResponse.status !== 200) { log('Access request failed despite policy...'); throw 0; } + + log(`Based on the policy, the UMA server returns the agent an access token with the requested permissions.`); + + const tokenParams = await accessGrantedResponse.json(); + const accessWithTokenResponse = await fetch(terms.views.age, { + headers: { 'Authorization': `${tokenParams.token_type} ${tokenParams.access_token}` } }); - console.log(`= Status: ${tokenResponse.status}\n`); - console.log(`= Body:\n`); - console.log(`= Body: ${await tokenResponse.text()}`); - console.log(`\n`); + if (accessWithTokenResponse.status !== 200) { log('Access with token failed...'); throw 0; } + + log(`The agent can then use this access token at the Resource Server to perform the desired action.`); } main(); diff --git a/packages/uma/package.json b/packages/uma/package.json index 7768569d..3d3103df 100644 --- a/packages/uma/package.json +++ b/packages/uma/package.json @@ -56,8 +56,8 @@ "build:ts": "yarn run -T tsc", "build:components": "yarn run -T componentsjs-generator -r sai-uma -s src -c dist/components -i .componentsignore --lenient", "test": "yarn run -T jest --coverage", - "start": "ts-node bin/main.ts", - "demo": "ts-node bin/demo.ts" + "start": "yarn run -T ts-node bin/main.ts", + "demo": "yarn run -T ts-node bin/demo.ts" }, "dependencies": { "@httpland/authorization-parser": "^1.1.0", From 61d1ff7c24f1e198012e6a5db9cac7608a23c3b1 Mon Sep 17 00:00:00 2001 From: Wouter Termont Date: Fri, 15 Mar 2024 17:14:22 +0100 Subject: [PATCH 12/83] docs: reasoning problem Signed-off-by: Wouter Termont --- demo/problem/context.ttl | 4 + demo/problem/policy1.ttl | 19 ++++ demo/problem/policy2.ttl | 19 ++++ demo/problem/policy3.ttl | 19 ++++ demo/problem/rules_crud.n3 | 163 ++++++++++++++++++++++++++++++++++ demo/problem/rules_purpose.n3 | 79 ++++++++++++++++ demo/problem/test.ts | 28 ++++++ 7 files changed, 331 insertions(+) create mode 100644 demo/problem/context.ttl create mode 100644 demo/problem/policy1.ttl create mode 100644 demo/problem/policy2.ttl create mode 100644 demo/problem/policy3.ttl create mode 100644 demo/problem/rules_crud.n3 create mode 100644 demo/problem/rules_purpose.n3 create mode 100644 demo/problem/test.ts diff --git a/demo/problem/context.ttl b/demo/problem/context.ttl new file mode 100644 index 00000000..c7657d4d --- /dev/null +++ b/demo/problem/context.ttl @@ -0,0 +1,4 @@ + + ; + ; + . diff --git a/demo/problem/policy1.ttl b/demo/problem/policy1.ttl new file mode 100644 index 00000000..665fde13 --- /dev/null +++ b/demo/problem/policy1.ttl @@ -0,0 +1,19 @@ +@prefix odrl: . +@prefix xsd: . + + a odrl:Agreement; + odrl:permission . + a odrl:Permission; + odrl:action odrl:read; + odrl:target ; + odrl:assignee ; + odrl:constraint , , . + odrl:leftOperand odrl:dateTime; + odrl:operator odrl:gt; + odrl:rightOperand "2024-03-15T14:52:09.755Z"^^xsd:dateTime. + odrl:leftOperand odrl:dateTime; + odrl:operator odrl:lt; + odrl:rightOperand "2024-03-29T14:52:09.755Z"^^xsd:dateTime. + odrl:leftOperand odrl:purpose; + odrl:operator odrl:eq; + odrl:rightOperand "age-verification". diff --git a/demo/problem/policy2.ttl b/demo/problem/policy2.ttl new file mode 100644 index 00000000..19ff91ff --- /dev/null +++ b/demo/problem/policy2.ttl @@ -0,0 +1,19 @@ +@prefix odrl: . +@prefix xsd: . + + a odrl:Agreement; + odrl:permission . + a odrl:Permission; + odrl:action odrl:read; + odrl:target ; + odrl:assignee ; + odrl:constraint , , . + odrl:leftOperand odrl:dateTime; + odrl:operator odrl:gt; + odrl:rightOperand "2024-03-15T14:52:09.755Z"^^xsd:dateTime. + odrl:leftOperand odrl:dateTime; + odrl:operator odrl:lt; + odrl:rightOperand "2024-03-29T14:52:09.755Z"^^xsd:dateTime. + odrl:leftOperand odrl:purpose; + odrl:operator odrl:eq; + odrl:rightOperand "age-verification". diff --git a/demo/problem/policy3.ttl b/demo/problem/policy3.ttl new file mode 100644 index 00000000..9e03bab2 --- /dev/null +++ b/demo/problem/policy3.ttl @@ -0,0 +1,19 @@ +@prefix odrl: . +@prefix xsd: . + + a odrl:Agreement; + odrl:permission . + a odrl:Permission; + odrl:action odrl:read; + odrl:target ; + odrl:assignee ; + odrl:constraint , , . + odrl:leftOperand odrl:dateTime; + odrl:operator odrl:gt; + odrl:rightOperand "2024-03-15T14:52:09.755Z"^^xsd:dateTime. + odrl:leftOperand odrl:dateTime; + odrl:operator odrl:lt; + odrl:rightOperand "2024-03-29T14:52:09.755Z"^^xsd:dateTime. + odrl:leftOperand odrl:purpose; + odrl:operator odrl:eq; + odrl:rightOperand "age-verification". diff --git a/demo/problem/rules_crud.n3 b/demo/problem/rules_crud.n3 new file mode 100644 index 00000000..2c240210 --- /dev/null +++ b/demo/problem/rules_crud.n3 @@ -0,0 +1,163 @@ +@prefix odrl: . +@prefix : . +@prefix acl: . +@prefix fno: . +@prefix log: . +@prefix string: . +@prefix list: . + +# Read ODRL rule +{ + ?permission a odrl:Permission; + odrl:action ?action ; + odrl:target ?targetResource ; + # odrl:assigner ?resourceOwner ; + odrl:assignee ?requestedParty. + + ?action list:in (odrl:use odrl:read) . # multiple options + + + # context of a request + ?context + # :resourceOwner ?resourceOwner; + :requestingParty ?requestedParty; + :target ?targetResource; + :requestPermission . + + :uuid5 log:uuid ?uuidStringdataUsagePolicyExecution. + ( "urn:uuid:" ?uuidStringdataUsagePolicyExecution) string:concatenation ?urnUuidStringdataUsagePolicyExecution. + ?dataUsagePolicyExecution log:uri ?urnUuidStringdataUsagePolicyExecution . + + # Constraint checking + # No odrl:constraints may be present + ?SCOPE log:notIncludes { ?permission odrl:constraint ?anything }. +} => +{ + ?dataUsagePolicyExecution a fno:Execution; + fno:executes ; + :accessModesAllowed . +}. + +# Append ODRL Rule +{ + ?permission a odrl:Permission; + odrl:action ?action ; + odrl:target ?targetResource ; + # odrl:assigner ?resourceOwner ; + odrl:assignee ?requestedParty. + + ?action list:in (odrl:use odrl:modify). # multiple options + + # context of a request + ?context + # :resourceOwner ?resourceOwner; + :requestingParty ?requestedParty; + :target ?targetResource; + :requestPermission . + + :uuid6 log:uuid ?uuidStringdataUsagePolicyExecution. + ( "urn:uuid:" ?uuidStringdataUsagePolicyExecution) string:concatenation ?urnUuidStringdataUsagePolicyExecution. + ?dataUsagePolicyExecution log:uri ?urnUuidStringdataUsagePolicyExecution . + + # Constraint checking + # No odrl:constraints may be present + ?SCOPE log:notIncludes { ?permission odrl:constraint ?anything }. +} => +{ + ?dataUsagePolicyExecution a fno:Execution; + fno:executes ; + :accessModesAllowed . +}. + +# Write ODRL Rule +{ + ?permission a odrl:Permission; + odrl:action ?action ; + odrl:target ?targetResource ; + # odrl:assigner ?resourceOwner ; + odrl:assignee ?requestedParty. + + ?action list:in (odrl:use odrl:modify). # multiple options + + # context of a request + ?context + # :resourceOwner ?resourceOwner; + :requestingParty ?requestedParty; + :target ?targetResource; + :requestPermission . + + :uuid6 log:uuid ?uuidStringdataUsagePolicyExecution. + ( "urn:uuid:" ?uuidStringdataUsagePolicyExecution) string:concatenation ?urnUuidStringdataUsagePolicyExecution. + ?dataUsagePolicyExecution log:uri ?urnUuidStringdataUsagePolicyExecution . + + # Constraint checking + # No odrl:constraints may be present + ?SCOPE log:notIncludes { ?permission odrl:constraint ?anything }. +} => +{ + ?dataUsagePolicyExecution a fno:Execution; + fno:executes ; + :accessModesAllowed . +}. + +# Create ODRL Rule +{ + ?permission a odrl:Permission; + odrl:action ?action ; + odrl:target ?targetResource ; + # odrl:assigner ?resourceOwner ; + odrl:assignee ?requestedParty . + + ?action list:in (odrl:use odrl:modify). # multiple options + + # context of a request + ?context + # :resourceOwner ?resourceOwner; + :requestingParty ?requestedParty; + :target ?targetResource; + :requestPermission . + + :uuid6 log:uuid ?uuidStringdataUsagePolicyExecution. + ( "urn:uuid:" ?uuidStringdataUsagePolicyExecution) string:concatenation ?urnUuidStringdataUsagePolicyExecution. + ?dataUsagePolicyExecution log:uri ?urnUuidStringdataUsagePolicyExecution . + + # Constraint checking + # No odrl:constraints may be present + ?SCOPE log:notIncludes { ?permission odrl:constraint ?anything }. +} => +{ + ?dataUsagePolicyExecution a fno:Execution; + fno:executes ; + :accessModesAllowed . +}. + +# Delete ODRL Rule +{ + ?permission a odrl:Permission; + odrl:action ?action ; + odrl:target ?targetResource ; + # odrl:assigner ?resourceOwner ; + odrl:assignee ?requestedParty. + + ?action list:in (odrl:use odrl:delete). # multiple options + + # context of a request + ?context + # :resourceOwner ?resourceOwner; + :requestingParty ?requestedParty; + :target ?targetResource; + :requestPermission . + + :uuid6 log:uuid ?uuidStringdataUsagePolicyExecution. + ( "urn:uuid:" ?uuidStringdataUsagePolicyExecution) string:concatenation ?urnUuidStringdataUsagePolicyExecution. + ?dataUsagePolicyExecution log:uri ?urnUuidStringdataUsagePolicyExecution . + + # Constraint checking + # No odrl:constraints may be present + ?SCOPE log:notIncludes { ?permission odrl:constraint ?anything }. +} => +{ + ?dataUsagePolicyExecution a fno:Execution; + fno:executes ; + :accessModesAllowed . +}. diff --git a/demo/problem/rules_purpose.n3 b/demo/problem/rules_purpose.n3 new file mode 100644 index 00000000..d6e08fa2 --- /dev/null +++ b/demo/problem/rules_purpose.n3 @@ -0,0 +1,79 @@ + +@prefix xsd: . +@prefix odrl: . +@prefix : . +@prefix acl: . +@prefix fno: . +@prefix log: . +@prefix string: . +@prefix list: . +@prefix time: . +@prefix math: . + +# ... +{ :currentTime :is ?currentTime } <= { "" time:localTime ?currentTime }. + +# Read ODRL rule +{ + ?permission a odrl:Permission; + odrl:action ?action ; + odrl:target ?targetResource ; + # odrl:assigner ?resourceOwner ; + odrl:assignee ?requestedParty. + + ?action list:in (odrl:use odrl:read) . # multiple options + + # context of a request + ?context + # :resourceOwner ?resourceOwner; + :requestingParty ?requestedParty; + :target ?targetResource; + :requestPermission . + + :uuid5 log:uuid ?uuidStringdataUsagePolicyExecution. + ( "urn:uuid:" ?uuidStringdataUsagePolicyExecution) string:concatenation ?urnUuidStringdataUsagePolicyExecution. + ?dataUsagePolicyExecution log:uri ?urnUuidStringdataUsagePolicyExecution . + + # Constraint checking + + # number of constraints must be two (temporal needs lower and upper bound) + (?template {?permission odrl:constraint _:s} ?L) log:collectAllIn ?SCOPE. + ?L list:length 3 . + + :currentTime :is ?currentTime . + + # lower bound + ?permission odrl:constraint ?lowerBoundIRI . + ?lowerBoundIRI + odrl:leftOperand odrl:dateTime ; + odrl:operator odrl:gt ; + odrl:rightOperand ?lowerBound . + + # greater bound + ?permission odrl:constraint ?upperBoundIRI . + ?upperBoundIRI + odrl:leftOperand odrl:dateTime ; + odrl:operator odrl:lt ; + odrl:rightOperand ?upperBound . + + # ?lowerBound < ?currentTime < ?upperBound + ?currentTime math:greaterThan ?lowerBound . + ?currentTime math:lessThan ?upperBound . + + # purpose constraint + ?permission odrl:constraint ?purposeConstraint . + ?purposeConstraint + odrl:leftOperand odrl:purpose ; + odrl:operator odrl:eq ; + odrl:rightOperand ?purposeValue . + # Note: nothing is done with the purpose right now TODO: needs checking +} => +{ + ?dataUsagePolicyExecution a fno:Execution; + fno:executes ; + :accessModesAllowed ; + ?currentTime . + +}. + +# No ODRL rules for other access modes (`odrl:write` and `odrl:append` are deprecated) diff --git a/demo/problem/test.ts b/demo/problem/test.ts new file mode 100644 index 00000000..111a7280 --- /dev/null +++ b/demo/problem/test.ts @@ -0,0 +1,28 @@ +import { readFileSync } from "fs"; +import { EyeJsReasoner } from "koreografeye"; +import { Store, Parser, Writer } from "n3"; +import path from "path"; + +const parser = new Parser(); +const rules = new Array(); +const facts = new Store(); + +facts.addQuads(parser.parse(readFileSync(path.join(__dirname, 'context.ttl')).toString())) +facts.addQuads(parser.parse(readFileSync(path.join(__dirname, 'policy1.ttl')).toString())) +// facts.addQuads(parser.parse(readFileSync(path.join(__dirname, 'policy2.ttl')).toString())) +// facts.addQuads(parser.parse(readFileSync(path.join(__dirname, 'policy3.ttl')).toString())) + +rules.push(readFileSync(path.join(__dirname, 'rules_purpose.n3')).toString()); +rules.push(readFileSync(path.join(__dirname, 'rules_crud.n3')).toString()); + +(async () => { + + console.log('>>>>> BEFORE'); + const reasoner1 = new EyeJsReasoner(["--quiet", "--nope", "--pass"]); + await reasoner1.reason(facts, rules); + console.log('>>>>> BETWEEN'); + const reasoner2 = new EyeJsReasoner(["--quiet", "--nope", "--pass"]); + await reasoner2.reason(facts, rules); + console.log('>>>>> AFTER'); + +})(); From fdee9c40657f15e670ece8db668fec647bb6130f Mon Sep 17 00:00:00 2001 From: woutslabbinck Date: Fri, 15 Mar 2024 18:29:34 +0100 Subject: [PATCH 13/83] feat: maxe policies container if it does not exist yet --- demo/flow.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/demo/flow.ts b/demo/flow.ts index 2445f4f0..ecc149e3 100644 --- a/demo/flow.ts +++ b/demo/flow.ts @@ -99,6 +99,8 @@ async function main() { const purpose = 'age-verification' const policy = demoPolicy(terms.views.age, terms.agents.vendor, { startDate, endDate, purpose }) + // create container if it does not exist yet + await initContainer(policyContainer) const policyCreationResponse = await fetch(policyContainer, { method: 'POST', headers: { 'content-type': 'text/turtle' }, @@ -146,3 +148,17 @@ function log(msg: string, obj?: any) { console.log(obj); } } + +// creates the container if it does not exist yet (only when access is there) +async function initContainer(policyContainer: string): Promise { + const res = await fetch(policyContainer) + if (res.status === 404) { + const res = await fetch(policyContainer, { + method: 'PUT' + }) + if (res.status !== 201) { + log('Creating container at ' + policyContainer + ' not successful'); throw 0; + } + } +} + From 93412a37a275cdf656202c57f70945e7b6727b6c Mon Sep 17 00:00:00 2001 From: woutslabbinck Date: Fri, 15 Mar 2024 18:33:45 +0100 Subject: [PATCH 14/83] docs: add instructions to run demo --- demo/README.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 demo/README.md diff --git a/demo/README.md b/demo/README.md new file mode 100644 index 00000000..d4c33a20 --- /dev/null +++ b/demo/README.md @@ -0,0 +1,9 @@ +To run the demo, you need two terminals. +Start up the servers in terminal 1: +```sh +yarn start:demo +``` +Then run the test script in terminal 2: +```sh +yarn script:demo +``` \ No newline at end of file From cfc36df9c477976307fb620da382db657416d661 Mon Sep 17 00:00:00 2001 From: "Wouter Termont (imec)" Date: Mon, 25 Mar 2024 09:51:09 +0100 Subject: [PATCH 15/83] feat: check purpose constraints in negotiation (#38) Signed-off-by: Wouter Termont --- demo/data/demo/README$.markdown | 27 --- demo/data/demo/public/.meta | 7 - demo/flow.ts | 39 +++- demo/policyCreation.ts | 68 +++--- packages/ucp/src/Request.ts | 32 ++- packages/ucp/src/UcpPatternEnforcement.ts | 213 +++++++++--------- packages/ucp/src/index.ts | 2 + packages/ucp/src/policy/ODRL.ts | 142 ++++++------ packages/ucp/src/util/Vocabularies.ts | 7 +- .../config/credentials/verifiers/default.json | 15 +- packages/uma/config/rules/n3/purpose-time.n3 | 3 +- packages/uma/src/credentials/Claims.ts | 2 +- packages/uma/src/credentials/Formats.ts | 3 +- .../uma/src/credentials/verify/JwtVerifier.ts | 65 ++++++ packages/uma/src/dialog/BaseNegotiator.ts | 11 +- packages/uma/src/errors/NeedInfoError.ts | 2 +- packages/uma/src/index.ts | 1 + .../src/policies/authorizers/AllAuthorizer.ts | 4 +- .../src/policies/authorizers/Authorizer.ts | 2 +- .../authorizers/NamespacedAuthorizer.ts | 54 +++-- .../policies/authorizers/NoneAuthorizer.ts | 6 +- .../authorizers/PolicyBasedAuthorizer.ts | 90 +++++--- .../policies/authorizers/WebIdAuthorizer.ts | 10 +- packages/uma/src/ticketing/Ticket.ts | 2 +- .../strategy/ClaimEliminationStrategy.ts | 18 +- .../strategy/ImmediateAuthorizerStrategy.ts | 8 +- .../ticketing/strategy/TicketingStrategy.ts | 3 +- packages/uma/src/views/ResourceDescription.ts | 4 +- 28 files changed, 496 insertions(+), 344 deletions(-) delete mode 100644 demo/data/demo/README$.markdown delete mode 100644 demo/data/demo/public/.meta create mode 100644 packages/uma/src/credentials/verify/JwtVerifier.ts diff --git a/demo/data/demo/README$.markdown b/demo/data/demo/README$.markdown deleted file mode 100644 index c88e6f20..00000000 --- a/demo/data/demo/README$.markdown +++ /dev/null @@ -1,27 +0,0 @@ -# Welcome to your pod - -## A place to store your data -Your pod is a **secure storage space** for your documents and data. -
-You can choose to share those with other people and apps. - -As the owner of this pod, -identified by http://localhost:3000/demo/profile/card#me, -you have access to all of your documents. - -## Working with your pod -The easiest way to interact with pods -is through Solid apps. -
-For example, -you can open your pod in [Databrowser](https://solidos.github.io/mashlib/dist/browse.html?uri=http://localhost:3000/demo/). - -## Accessing your account -To keep track of your pods, webIDs and any other resources, -you can [log in](http://localhost:3000/.account/) to your account. -There you can, for example, update the owners of this pod. - -## Learn more -The [Solid website](https://solidproject.org/) -and the people on its [forum](https://forum.solidproject.org/) -will be glad to help you on your journey. diff --git a/demo/data/demo/public/.meta b/demo/data/demo/public/.meta deleted file mode 100644 index 51645fcd..00000000 --- a/demo/data/demo/public/.meta +++ /dev/null @@ -1,7 +0,0 @@ -_:b82_b79_n3-10 "derived/bday"; - ; - . - _:b82_b79_n3-10, _:b82_b79_n3-11. -_:b82_b79_n3-11 "derived/age"; - ; - . diff --git a/demo/flow.ts b/demo/flow.ts index ecc149e3..41d06353 100644 --- a/demo/flow.ts +++ b/demo/flow.ts @@ -69,10 +69,6 @@ async function main() { log(`Now, having discovered both the location of the UMA server and of the desired data, an agent can request the former for access to the latter.`); const accessRequest = { - // grant_type: 'urn:ietf:params:oauth:grant-type:uma-ticket', - // ticket, - claim_token: encodeURIComponent(terms.agents.vendor), - claim_token_format: 'urn:solidlab:uma:claims:formats:webid', permissions: [{ resource_id: terms.views.age, resource_scopes: [ terms.scopes.read ], @@ -85,7 +81,7 @@ async function main() { body: JSON.stringify(accessRequest), }); - // if (accessDeniedResponse.status !== 403) { log('Access request succeeded without policy...'); throw 0; } + if (accessDeniedResponse.status !== 403) { log('Access request succeeded without policy...'); throw 0; } log(`Without a policy allowing the access, the access is denied.`); log(`However, the UMA server enables multiple flows in which such a policy can be added, for example by notifying the resource owner. (This is out-of-scope for this demo.)`); @@ -96,7 +92,7 @@ async function main() { const startDate = new Date(); const endDate = new Date(startDate.valueOf() + 14 * 24 * 60 * 60 * 1000); - const purpose = 'age-verification' + const purpose = 'urn:solidlab:uma:claims:purpose:age-verification' const policy = demoPolicy(terms.views.age, terms.agents.vendor, { startDate, endDate, purpose }) // create container if it does not exist yet @@ -111,15 +107,42 @@ async function main() { log(`Now that the policy has been set, and the agent has possibly been notified in some way, the agent can try the access request again.`); - const accessGrantedResponse = await fetch(tokenEndpoint, { + const needInfoResponse = await fetch(tokenEndpoint, { method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify(accessRequest), }); + if (needInfoResponse.status !== 403) { log('Access request succeeded without claims...'); throw 0; } + + const { ticket, required_claims } = await needInfoResponse.json(); + + log(`Based on the policy, the UMA server requests the following claims from the agent:`); + required_claims.claim_token_format[0].forEach((format: string) => log(` - ${format}`)) + + // JWT (HS256; secret: "ceci n'est pas un secret") + // { + // "http://www.w3.org/ns/odrl/2/purpose": "urn:solidlab:uma:claims:purpose:age-verification", + // "urn:solidlab:uma:claims:types:webid": "http://localhost:3000/demo/public/vendor" + // } + const claim_token = "eyJhbGciOiJIUzI1NiJ9.eyJodHRwOi8vd3d3LnczLm9yZy9ucy9vZHJsLzIvcHVycG9zZSI6InVybjpzb2xpZGxhYjp1bWE6Y2xhaW1zOnB1cnBvc2U6YWdlLXZlcmlmaWNhdGlvbiIsInVybjpzb2xpZGxhYjp1bWE6Y2xhaW1zOnR5cGVzOndlYmlkIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2RlbW8vcHVibGljL3ZlbmRvciJ9.Px7G3zl1ZpTy1lk7ziRMvNv12Enb0uhup9kiVI6Ot3s" + + log(`The agent gathers the necessary claims (the manner in which is out-of-scope for this demo), and sends them to the UMA server as a JWT.`) + + const accessGrantedResponse = await fetch(tokenEndpoint, { + method: "POST", + headers: { "content-type": "application/json" }, + body: JSON.stringify({ + ...accessRequest, + ticket, + claim_token_format: 'urn:solidlab:uma:claims:formats:jwt', + claim_token, + }) + }); + if (accessGrantedResponse.status !== 200) { log('Access request failed despite policy...'); throw 0; } - log(`Based on the policy, the UMA server returns the agent an access token with the requested permissions.`); + log(`The UMA server checks the claims with the relevant policy, and returns the agent an access token with the requested permissions.`); const tokenParams = await accessGrantedResponse.json(); const accessWithTokenResponse = await fetch(terms.views.age, { diff --git a/demo/policyCreation.ts b/demo/policyCreation.ts index 326e949d..0bf8d21c 100644 --- a/demo/policyCreation.ts +++ b/demo/policyCreation.ts @@ -9,45 +9,45 @@ import { SimplePolicy, UCPPolicy, basicPolicy } from '@solidlab/ucp' * @param constraints - the temporal and purpuse constraints on the usage of the data */ export function demoPolicy( - targetIRI: string, - requestingPartyIRI: string, - constraints?: { - startDate?: Date, - endDate?: Date, - purpose?: string - } + targetIRI: string, + requestingPartyIRI: string, + constraints?: { + startDate?: Date, + endDate?: Date, + purpose?: string + } ): SimplePolicy { - const constraintList: any[] = []; + const constraintList: any[] = []; - if (constraints?.startDate) constraintList.push({ - type: 'temporal', - operator: 'http://www.w3.org/ns/odrl/2/gt', - value: constraints?.startDate, - }); + if (constraints?.startDate) constraintList.push({ + type: 'temporal', + operator: 'http://www.w3.org/ns/odrl/2/gt', + value: constraints?.startDate, + }); - if (constraints?.endDate) constraintList.push({ - type: 'temporal', - operator: 'http://www.w3.org/ns/odrl/2/lt', - value: constraints?.endDate, - }); + if (constraints?.endDate) constraintList.push({ + type: 'temporal', + operator: 'http://www.w3.org/ns/odrl/2/lt', + value: constraints?.endDate, + }); - if (constraints?.purpose) constraintList.push({ - type: 'purpose', - operator: 'http://www.w3.org/ns/odrl/2/eq', - value: constraints?.purpose, - }); + if (constraints?.purpose) constraintList.push({ + type: 'purpose', + operator: 'http://www.w3.org/ns/odrl/2/eq', + value: constraints?.purpose, + }); - const policy: UCPPolicy = { - rules: [{ - resource: targetIRI, - action: "http://www.w3.org/ns/odrl/2/read", // ODRL action - requestingParty: requestingPartyIRI, - // owner: "https://pod.woutslabbinck.com/profile/card#me", // might error - constraints: constraintList - }] - } + const policy: UCPPolicy = { + rules: [{ + resource: targetIRI, + action: "http://www.w3.org/ns/odrl/2/read", // ODRL action + requestingParty: requestingPartyIRI, + // owner: "https://pod.woutslabbinck.com/profile/card#me", // might error + constraints: constraintList + }] + } - const policyObject = basicPolicy(policy); + const policyObject = basicPolicy(policy); - return policyObject + return policyObject } diff --git a/packages/ucp/src/Request.ts b/packages/ucp/src/Request.ts index a3d58be9..292bbea0 100644 --- a/packages/ucp/src/Request.ts +++ b/packages/ucp/src/Request.ts @@ -1,30 +1,30 @@ import { Store, DataFactory } from "n3"; -const { quad, namedNode } = DataFactory +const { quad, namedNode, literal } = DataFactory /** * - * @property {string} subject - The identifier of the entity that wants to execute an action on a resource (e.g. a {@link https://solid.github.io/webid-profile/ WebID}) - * @property {string} action - The type of action(s) that the entity wants to perform on the resource (e.g. a CRUD action) - * @property {string} resource - The resource identifier that is governed by a usage control policy - * @property {string} context - Extra information supplied (can be the purpose of use, extra claims, ...) | Note: currently not implemented yet - * @property {string} owner - The owner/providerof the resource (e.g. a {@link https://solid.github.io/webid-profile/ WebID}) + * @property subject - The identifier of the entity that wants to execute an action on a resource (e.g. a {@link https://solid.github.io/webid-profile/ WebID}) + * @property action - The type of action(s) that the entity wants to perform on the resource (e.g. a CRUD action) + * @property resource - The resource identifier that is governed by a usage control policy + * @property claims - Extra information supplied (can be the purpose of use, extra claims, ...) + * @property owner - The owner/providerof the resource (e.g. a {@link https://solid.github.io/webid-profile/ WebID}) */ export interface UconRequest { subject: string; action: string[]; resource: string; - context?: string; - owner?: string + owner?: string; + claims?: NodeJS.Dict; } + /** * Creates an N3 Store based on the context of an UMA Access Request. * Currently, the access request also contain ACL access modes. * @param context */ - export function createContext(request: UconRequest): Store { const contextStore = new Store(); - const { owner, subject: requestingParty, action: requestedAccessModes, resource } = request; + const { owner, subject: requestingParty, action: requestedAccessModes, resource, claims } = request; const contextIRI = 'http://example.org/context'; contextStore.addQuads([ quad(namedNode(contextIRI), namedNode('http://example.org/requestingParty'), namedNode(requestingParty)), @@ -37,5 +37,17 @@ export function createContext(request: UconRequest): Store { for (const accessMode of requestedAccessModes) { contextStore.addQuad(namedNode(contextIRI), namedNode('http://example.org/requestPermission'), namedNode(accessMode)); } + + for (const [claim, value] of Object.entries(claims ?? {})) { + if (typeof value !== 'string') { + console.log(`[Request.createContext]: Skipping claim ${claim} because only string values are supported.`); + continue; // TODO: support full RDF + } + + let object; + try { object = namedNode(value) } catch { object = literal(value) } + contextStore.addQuad(namedNode(contextIRI), namedNode(claim), object); + } + return contextStore; } diff --git a/packages/ucp/src/UcpPatternEnforcement.ts b/packages/ucp/src/UcpPatternEnforcement.ts index 78b06311..b543bd6f 100644 --- a/packages/ucp/src/UcpPatternEnforcement.ts +++ b/packages/ucp/src/UcpPatternEnforcement.ts @@ -1,4 +1,4 @@ -import { Reasoner } from "koreografeye"; +import { Reasoner, rdfTransformStore } from "koreografeye"; import { Store } from "n3"; import { Conclusion, DecisionAlgorithm, Explanation } from "./Explanation"; import { PolicyExecutor as IPolicyExecutor } from "./PolicyExecutor"; @@ -12,120 +12,131 @@ import { createContext } from "./Request"; */ export class UcpPatternEnforcement implements UconEnforcementDecision { - - constructor(private uconRulesStorage: UCRulesStorage, private koreografeyeOdrlRules: string[], private reasoner: Reasoner, private executor: IPolicyExecutor) { - + constructor( + private uconRulesStorage: UCRulesStorage, + private koreografeyeOdrlRules: string[], + private reasoner: Reasoner, + private executor: IPolicyExecutor + ) {} + + /** + * Calculates the access modes allowed based using Koreografeye + * The instantiation of the Usage Control Policies are given to this class as an RDF Graph which contain {@link https://www.w3.org/TR/odrl-model/#rule | ODRL Rules}. + * On these, reasoning is applied with N3 Rules. Those N3 rules have as conclusion a koreografeye Policy. + * The conclusion of the reasoning results into a graph with 0..n policies, which are then executed by the plugins. + * This executioner and plugins are given by the {@link IPolicyExecutor}. + * If there are zero policies in the conclusion, a request will be sent to the Resource Owner. + * Furthermore, the user is notified that more information is needed. TODO: + * Otherwise, {@link string | Access modes} are obtained from all the Koreografeye Plugin executions. + * Finally, all the obtained {@link string | Access modes} are returned + * + * @param context Context about the client and the request, parsed by an UMA Server. + * @returns + */ + async calculateAccessModes(request: UconRequest): Promise { + // go from context to an RDF graph that contains all context + const contextStore = createContext(request) + + const reasoningInputStore = new Store() + + reasoningInputStore.addQuads((await this.uconRulesStorage.getStore()).getQuads(null, null, null, null)) + reasoningInputStore.addQuads(contextStore.getQuads(null, null, null, null)) + + // TODO: remove in production + console.log("rules:"); + console.log(this.koreografeyeOdrlRules[0]); + + console.log("input:"); + console.log(await rdfTransformStore(reasoningInputStore, 'text/turtle')); + + // Reason using ODRL Rules and N3 Rules + const reasoningResult = await this.reasoner.reason(reasoningInputStore, this.koreografeyeOdrlRules); + + // TODO: remove in production + // console.log("reasoning output:"); + // console.log(await rdfTransformStore(reasoningResult, 'text/turtle')); + + // Execute policies + const accessModes: string[] = [] + const executedPolicies = await this.executor.executePolicies(reasoningResult) + // if no policies -> ask owner for request -> plugin? + if (executedPolicies.length === 0) { + // no access + // TODO: ask owner access + // TODO: let user know that there is no access + console.log(`[${new Date().toISOString()}] - UcpPatternEnforcement: no policies`); } - - /** - * Calculates the access modes allowed based using Koreografeye - * The instantiation of the Usage Control Policies are given to this class as an RDF Graph which contain {@link https://www.w3.org/TR/odrl-model/#rule | ODRL Rules}. - * On these, reasoning is applied with N3 Rules. Those N3 rules have as conclusion a koreografeye Policy. - * The conclusion of the reasoning results into a graph with 0..n policies, which are then executed by the plugins. This executioner and plugins are given by the {@link IPolicyExecutor} - * If there are zero policies in the conclusion, a request will be sent to the Resource Owner. Furthermore, the user is notified that more information is needed. TODO: - * Otherwise, {@link string | Access modes} are obtained from all the Koreografeye Plugin executions. - * Finally, all the obtained {@link string | Access modes} are returned - * - * @param context Context about the client and the request, parsed by an UMA Server. - * @returns - */ - async calculateAccessModes(request: UconRequest): Promise { - // go from context to an RDF graph that contains all context - const contextStore = createContext(request) - - const reasoningInputStore = new Store() - - reasoningInputStore.addQuads((await this.uconRulesStorage.getStore()).getQuads(null, null, null, null)) - reasoningInputStore.addQuads(contextStore.getQuads(null, null, null, null)) - - // TODO: remove in production - // console.log("input:"); - // console.log(await rdfTransformStore(reasoningInputStore, 'text/turtle')); - - // Reason using ODRL Rules and N3 Rules - const reasoningResult = await this.reasoner.reason(reasoningInputStore, this.koreografeyeOdrlRules); - - // TODO: remove in production - // console.log("reasoning output:"); - // console.log(await rdfTransformStore(reasoningResult, 'text/turtle')); - - // Execute policies - const accessModes: string[] = [] - const executedPolicies = await this.executor.executePolicies(reasoningResult) - // if no policies -> ask owner for request -> plugin? - if (executedPolicies.length === 0) { - // no access - // TODO: ask owner access - // TODO: let user know that there is no access - console.log(`[${new Date().toISOString()}] - UcpPatternEnforcement: no policies`); - } - // if policies -> executePolicy: return value accessmodes in an object somehow? - for (const executedPolicy of executedPolicies) { - accessModes.push(...executedPolicy.result) - } - return accessModes + // if policies -> executePolicy: return value accessmodes in an object somehow? + for (const executedPolicy of executedPolicies) { + accessModes.push(...executedPolicy.result) } + return accessModes + } - async calculateAndExplainAccessModes(request: UconRequest): Promise { - const contextStore = createContext(request) + async calculateAndExplainAccessModes(request: UconRequest): Promise { + const contextStore = createContext(request) - const knowledgeBase = new Store() + const knowledgeBase = new Store() - knowledgeBase.addQuads((await this.uconRulesStorage.getStore()).getQuads(null, null, null, null)) - knowledgeBase.addQuads(contextStore.getQuads(null, null, null, null)) + knowledgeBase.addQuads((await this.uconRulesStorage.getStore()).getQuads(null, null, null, null)) + knowledgeBase.addQuads(contextStore.getQuads(null, null, null, null)) - const reasoningResult = await this.reasoner.reason(knowledgeBase, this.koreografeyeOdrlRules); + const reasoningResult = await this.reasoner.reason(knowledgeBase, this.koreografeyeOdrlRules); - const conclusions: Conclusion[] = [] - const executedPolicies = await this.executor.executePolicies(reasoningResult) + const conclusions: Conclusion[] = [] + const executedPolicies = await this.executor.executePolicies(reasoningResult) - if (executedPolicies.length === 0) { - // based on all the rules, no access - } + if (executedPolicies.length === 0) { + // based on all the rules, no access + } - for (const executedPolicy of executedPolicies) { - // expect that the result of the executedPolicy consists of: - // * usage control rule identifier - // * N3 interpretation rule identifier - // * time issued - // * access modes granted + for (const executedPolicy of executedPolicies) { + // expect that the result of the executedPolicy consists of: + // * usage control rule identifier + // * N3 interpretation rule identifier + // * time issued + // * access modes granted - // if not, throw Error -> the wrong plugin is used | Note: throwing error is not happening yet + // if not, throw Error -> the wrong plugin is used | Note: throwing error is not happening yet - conclusions.push(executedPolicy.result) - } + conclusions.push(executedPolicy.result) + } - // calculation of decision based on the algorithm and the conclusions - // Note: currently hardcoded to be the union. - const grants = conclusions.map(conclusion => conclusion.grants).flat() - // remove the duplicates - const decision = Array.from(new Set(grants)) - return { - decision: decision, - request: { - raw: request - }, - algorithm: DecisionAlgorithm.Union, - conclusions: conclusions, - } + // calculation of decision based on the algorithm and the conclusions + // Note: currently hardcoded to be the union. + const grants = conclusions.map(conclusion => conclusion.grants).flat() + // remove the duplicates + const decision = Array.from(new Set(grants)) + return { + decision: decision, + request: { + raw: request + }, + algorithm: DecisionAlgorithm.Union, + conclusions: conclusions, } + } } export interface UconEnforcementDecision { - /** - * Calculates the modes granted (i.e. the `actions`) based on the request and the configured Usage Control Rules and how they are interpreted. - * - * @param request A parsed Usage Request containing `who` wants to perform `which action` on a given `resource` with a given `context`. - * @returns A list of Access Modes - */ - calculateAccessModes: (request: UconRequest) => Promise; - - /** - * Calculates the modes granted (i.e. which `actions`) based on the request and the configured Usage Control Rules and how they are interpreted. - * Furthermore, it provides a proof + algorithm of how the decision for an access grant is calculated. - * - * @param request A parsed Usage Request containing `who` wants to perform `which action` on a given `resource` with a given `context`. - * @returns The explanation (which includes the Access Modes) - */ - calculateAndExplainAccessModes: (request: UconRequest) => Promise; + /** + * Calculates the modes granted (i.e. the `actions`) based on the request and the configured Usage Control Rules + * and how they are interpreted. + * + * @param request A parsed Usage Request containing `who` wants to perform `which action` on a given `resource` + * with a given `context`. + * @returns A list of Access Modes + */ + calculateAccessModes: (request: UconRequest) => Promise; + + /** + * Calculates the modes granted (i.e. which `actions`) based on the request and the configured Usage Control Rules + * and how they are interpreted. + * Furthermore, it provides a proof + algorithm of how the decision for an access grant is calculated. + * + * @param request A parsed Usage Request containing `who` wants to perform `which action` on a given `resource` + * with a given `context`. + * @returns The explanation (which includes the Access Modes) + */ + calculateAndExplainAccessModes: (request: UconRequest) => Promise; } diff --git a/packages/ucp/src/index.ts b/packages/ucp/src/index.ts index 91e7987e..5f9ae026 100644 --- a/packages/ucp/src/index.ts +++ b/packages/ucp/src/index.ts @@ -16,6 +16,8 @@ export * from './policy/UsageControlPolicy' export * from './util/Conversion' export * from './util/Constants' export * from './util/Util' +export * from './util/Vocabularies' + // explanation export * from './Explanation' diff --git a/packages/ucp/src/policy/ODRL.ts b/packages/ucp/src/policy/ODRL.ts index 48282780..21d15b70 100644 --- a/packages/ucp/src/policy/ODRL.ts +++ b/packages/ucp/src/policy/ODRL.ts @@ -11,24 +11,24 @@ const { quad, namedNode, literal } = DataFactory * @returns */ export function basicPolicy(policy: UCPPolicy, policyIRI?: string): SimplePolicy { - policyIRI = policyIRI ?? "urn:ucp:policy:" + uuidv4(); - const store = new Store(); - const ruleIRIs: string[] = [] - if (policy.type) { - store.addQuad(namedNode(policyIRI), RDF.terms.type, namedNode(policy.type)) - } else { - store.addQuad(namedNode(policyIRI), RDF.terms.type, ODRL.terms.Agreement) - } - for (const rule of policy.rules) { - const { - quads, - ruleIRI - } = createRuleQuads(rule, policyIRI) - store.addQuads(quads) - ruleIRIs.push(ruleIRI) - } + policyIRI = policyIRI ?? "urn:ucp:policy:" + uuidv4(); + const store = new Store(); + const ruleIRIs: string[] = [] + if (policy.type) { + store.addQuad(namedNode(policyIRI), RDF.terms.type, namedNode(policy.type)) + } else { + store.addQuad(namedNode(policyIRI), RDF.terms.type, ODRL.terms.Agreement) + } + for (const rule of policy.rules) { + const { + quads, + ruleIRI + } = createRuleQuads(rule, policyIRI) + store.addQuads(quads) + ruleIRIs.push(ruleIRI) + } - return { representation: store, policyIRI: policyIRI, ruleIRIs: ruleIRIs } + return { representation: store, policyIRI: policyIRI, ruleIRIs: ruleIRIs } } /** @@ -38,31 +38,31 @@ export function basicPolicy(policy: UCPPolicy, policyIRI?: string): SimplePolicy * @returns */ export function createRuleQuads(rule: UCPRule, policyIRI?: string): { quads: Quad[], ruleIRI: string } { - const quads: Quad[] = [] - const ruleIRI = "urn:ucp:rule:" + uuidv4(); - quads.push(quad(namedNode(ruleIRI), ODRL.terms.action, namedNode(rule.action))) - quads.push(quad(namedNode(ruleIRI), ODRL.terms.target, namedNode(rule.resource))) - quads.push(quad(namedNode(ruleIRI), ODRL.terms.assignee, namedNode(rule.requestingParty))) - if (rule.owner) { - quads.push(quad(namedNode(ruleIRI), ODRL.terms.assigner, namedNode(rule.owner))) - } - if (rule.type !== undefined) { - quads.push(quad(namedNode(ruleIRI), RDF.terms.type, namedNode(rule.type))) - } else { - quads.push(quad(namedNode(ruleIRI), RDF.terms.type, ODRL.terms.Permission)) - if (policyIRI) { - // note: currently, only this case is handled to add the policy - quads.push(quad(namedNode(policyIRI), ODRL.terms.permission, namedNode(ruleIRI))) - } - } - for (const constraint of rule.constraints ?? []) { - const { quads: constraintQuads } = createConstraintQuads(constraint, ruleIRI) - quads.push(...constraintQuads) - } - return { - quads, - ruleIRI + const quads: Quad[] = [] + const ruleIRI = "urn:ucp:rule:" + uuidv4(); + quads.push(quad(namedNode(ruleIRI), ODRL.terms.action, namedNode(rule.action))) + quads.push(quad(namedNode(ruleIRI), ODRL.terms.target, namedNode(rule.resource))) + quads.push(quad(namedNode(ruleIRI), ODRL.terms.assignee, namedNode(rule.requestingParty))) + if (rule.owner) { + quads.push(quad(namedNode(ruleIRI), ODRL.terms.assigner, namedNode(rule.owner))) + } + if (rule.type !== undefined) { + quads.push(quad(namedNode(ruleIRI), RDF.terms.type, namedNode(rule.type))) + } else { + quads.push(quad(namedNode(ruleIRI), RDF.terms.type, ODRL.terms.Permission)) + if (policyIRI) { + // note: currently, only this case is handled to add the policy + quads.push(quad(namedNode(policyIRI), ODRL.terms.permission, namedNode(ruleIRI))) } + } + for (const constraint of rule.constraints ?? []) { + const { quads: constraintQuads } = createConstraintQuads(constraint, ruleIRI) + quads.push(...constraintQuads) + } + return { + quads, + ruleIRI + } } /** @@ -71,34 +71,38 @@ export function createRuleQuads(rule: UCPRule, policyIRI?: string): { quads: Qua * @param policyIRI * @returns */ -export function createConstraintQuads(constraint: UCPConstraint, ruleIRI?: string): { quads: Quad[], constraintIRI: string } { - const quads: Quad[] = [] - const constraintIRI = "urn:ucp:constraint:" + uuidv4(); - switch (constraint.type) { - case "temporal": // maybe have as type something more semantically defined? - quads.push(quad(namedNode(constraintIRI), ODRL.terms.leftOperand, ODRL.terms.dateTime)); - quads.push(quad(namedNode(constraintIRI), ODRL.terms.operator, namedNode(constraint.operator))); - quads.push(quad(namedNode(constraintIRI), ODRL.terms.rightOperand, literal((constraint.value as Date).toISOString(), XSD.terms.dateTime))); - if (ruleIRI) { - quads.push(quad(namedNode(ruleIRI), ODRL.terms.constraint, namedNode(constraintIRI))) - } - break; - case "purpose": - quads.push(quad(namedNode(constraintIRI), ODRL.terms.leftOperand, ODRL.terms.purpose)); - quads.push(quad(namedNode(constraintIRI), ODRL.terms.operator, namedNode(constraint.operator))); - quads.push(quad(namedNode(constraintIRI), ODRL.terms.rightOperand, literal(constraint.value))); - if (ruleIRI) { - quads.push(quad(namedNode(ruleIRI), ODRL.terms.constraint, namedNode(constraintIRI))) - } - break; - default: - console.log("Can not create constraint as the type is not understood:", constraint.type); - break; - } - return { - quads, - constraintIRI - } +export function createConstraintQuads( + constraint: UCPConstraint, + ruleIRI?: string +): { quads: Quad[], constraintIRI: string } { + const quads: Quad[] = [] + const constraintIRI = "urn:ucp:constraint:" + uuidv4(); + switch (constraint.type) { + case "temporal": // maybe have as type something more semantically defined? + quads.push(quad(namedNode(constraintIRI), ODRL.terms.leftOperand, ODRL.terms.dateTime)); + quads.push(quad(namedNode(constraintIRI), ODRL.terms.operator, namedNode(constraint.operator))); + quads.push(quad(namedNode(constraintIRI), ODRL.terms.rightOperand, + literal((constraint.value as Date).toISOString(), XSD.terms.dateTime))); + if (ruleIRI) { + quads.push(quad(namedNode(ruleIRI), ODRL.terms.constraint, namedNode(constraintIRI))) + } + break; + case "purpose": + quads.push(quad(namedNode(constraintIRI), ODRL.terms.leftOperand, ODRL.terms.purpose)); + quads.push(quad(namedNode(constraintIRI), ODRL.terms.operator, namedNode(constraint.operator))); + quads.push(quad(namedNode(constraintIRI), ODRL.terms.rightOperand, literal(constraint.value))); + if (ruleIRI) { + quads.push(quad(namedNode(ruleIRI), ODRL.terms.constraint, namedNode(constraintIRI))) + } + break; + default: + console.log("Can not create constraint as the type is not understood:", constraint.type); + break; + } + return { + quads, + constraintIRI + } } diff --git a/packages/ucp/src/util/Vocabularies.ts b/packages/ucp/src/util/Vocabularies.ts index fb82fdd0..cf0d14a6 100644 --- a/packages/ucp/src/util/Vocabularies.ts +++ b/packages/ucp/src/util/Vocabularies.ts @@ -124,7 +124,10 @@ export const ODRL = createVocabulary( 'dateTime', 'purpose', 'leftOperand', - 'rightOperand' + 'rightOperand', + 'gt', + 'lt', + 'eq', ) export const XSD = createVocabulary( @@ -133,4 +136,4 @@ export const XSD = createVocabulary( 'duration', 'integer', 'string', - ); \ No newline at end of file + ); diff --git a/packages/uma/config/credentials/verifiers/default.json b/packages/uma/config/credentials/verifiers/default.json index 2ed61a6c..894bd1e1 100644 --- a/packages/uma/config/credentials/verifiers/default.json +++ b/packages/uma/config/credentials/verifiers/default.json @@ -20,8 +20,21 @@ "@id": "urn:uma:default:SolidOidcVerifier", "@type": "SolidOidcVerifier" } + }, + { + "TypedVerifier:_verifiers_key": "urn:solidlab:uma:claims:formats:jwt", + "TypedVerifier:_verifiers_value": { + "@id": "urn:uma:default:JwtVerifier", + "@type": "JwtVerifier", + "allowedClaims": [ + "urn:solidlab:uma:claims:types:webid", + "http://www.w3.org/ns/odrl/2/purpose" + ], + "errorOnExtraClaims": false, + "verifyJwt": false + } } ] } ] -} \ No newline at end of file +} diff --git a/packages/uma/config/rules/n3/purpose-time.n3 b/packages/uma/config/rules/n3/purpose-time.n3 index c15bc7d0..8ffea2cd 100644 --- a/packages/uma/config/rules/n3/purpose-time.n3 +++ b/packages/uma/config/rules/n3/purpose-time.n3 @@ -27,7 +27,8 @@ # :resourceOwner ?resourceOwner; :requestingParty ?requestedParty; :target ?targetResource; - :requestPermission . + :requestPermission ; + ?purposeValue. :uuid5 log:uuid ?uuidStringdataUsagePolicyExecution. ( "urn:uuid:" ?uuidStringdataUsagePolicyExecution) string:concatenation ?urnUuidStringdataUsagePolicyExecution. diff --git a/packages/uma/src/credentials/Claims.ts b/packages/uma/src/credentials/Claims.ts index 3d9a0b25..eaa895a3 100644 --- a/packages/uma/src/credentials/Claims.ts +++ b/packages/uma/src/credentials/Claims.ts @@ -1,4 +1,4 @@ export const WEBID = 'urn:solidlab:uma:claims:types:webid'; export const CLIENTID = 'urn:solidlab:uma:claims:types:clientid'; -export const UNSOLVABLE = 'urn:solidlab:uma:claims:types:unsolvable'; +export const PURPOSE = 'http://www.w3.org/ns/odrl/2/purpose'; diff --git a/packages/uma/src/credentials/Formats.ts b/packages/uma/src/credentials/Formats.ts index b5c8d8a9..6eb70d33 100644 --- a/packages/uma/src/credentials/Formats.ts +++ b/packages/uma/src/credentials/Formats.ts @@ -1,3 +1,4 @@ +export const JWT = 'urn:solidlab:uma:claims:formats:jwt'; export const UNSECURE = 'urn:solidlab:uma:claims:formats:webid'; -export const OIDC = 'http://openid.net/specs/openid-connect-core-1_0.html#IDToken'; \ No newline at end of file +export const OIDC = 'http://openid.net/specs/openid-connect-core-1_0.html#IDToken'; diff --git a/packages/uma/src/credentials/verify/JwtVerifier.ts b/packages/uma/src/credentials/verify/JwtVerifier.ts new file mode 100644 index 00000000..27c49df1 --- /dev/null +++ b/packages/uma/src/credentials/verify/JwtVerifier.ts @@ -0,0 +1,65 @@ +import { Logger } from '../../util/logging/Logger'; +import { getLoggerFor } from '../../util/logging/LoggerUtils'; +import { Verifier } from './Verifier'; +import { ClaimSet } from '../ClaimSet'; +import { Credential } from "../Credential"; +import { JWT } from '../Formats'; +import { decodeJwt, decodeProtectedHeader, jwtVerify } from 'jose'; +import buildGetJwks from 'get-jwks'; + +/** + * An UNSECURE Verifier that parses Tokens of the format `encode_uri(webId)[:encode_uri(clientId)]`, + * without performing any further verification. + */ +export class JwtVerifier implements Verifier { + protected readonly logger: Logger = getLoggerFor(this); + protected jwks = buildGetJwks(); + + constructor( + private readonly allowedClaims: string[], + private readonly errorOnExtraClaims: boolean, + private readonly verifyJwt: boolean, + ) {} + + /** @inheritdoc */ + public async verify(credential: Credential): Promise { + if (credential.format !== JWT) { + throw new Error(`Token format '${credential.format}' does not match this processor's format.`); + } + + const claims = decodeJwt(credential.token); + + if (this.verifyJwt) { + if (!claims.iss) { + throw new Error(`JWT should contain 'iss' claim.`); + } + + const params = decodeProtectedHeader(credential.token); + + if (!params.alg) { + throw new Error(`JWT should contain 'alg' header.`); + } + + if (!params.kid) { + throw new Error(`JWT should contain 'kid' header.`); + } + + const jwk = await this.jwks.getJwk({ + domain: claims.iss, + alg: params.alg, + kid: params.kid, + }); + + await jwtVerify(credential.token, Object.assign(jwk, { type: 'JWK' })); + } + + for (const claim of Object.keys(claims)) if (!this.allowedClaims.includes(claim)) { + if (this.errorOnExtraClaims) throw new Error(`Claim '${claim}' not allowed.`); + + delete claims[claim]; + } + + this.logger.warn(`Returning new claims: ${JSON.stringify(claims)}`) + return claims; + } +} diff --git a/packages/uma/src/dialog/BaseNegotiator.ts b/packages/uma/src/dialog/BaseNegotiator.ts index a5a2fdbe..89b86988 100644 --- a/packages/uma/src/dialog/BaseNegotiator.ts +++ b/packages/uma/src/dialog/BaseNegotiator.ts @@ -12,6 +12,7 @@ import { reType } from '../util/ReType'; import { KeyValueStore } from '../util/storage/models/KeyValueStore'; import { TicketingStrategy } from '../ticketing/strategy/TicketingStrategy'; import { v4 } from 'uuid'; +import { ForbiddenHttpError } from '@solid/community-server'; /** * A concrete Negotiator that verifies incoming Claims and processes Tickets @@ -56,7 +57,7 @@ export class BaseNegotiator implements Negotiator { // ... on success, create Access Token if (resolved.success) { - const { token, tokenType } = await this.tokenFactory.serialize({ permissions: resolved.value }); + const { token, tokenType } = await this.tokenFactory.serialize({ permissions: resolved.value }); this.logger.debug('Minted token', JSON.stringify(token)); @@ -66,12 +67,16 @@ export class BaseNegotiator implements Negotiator { }); } - // ... on failure, require more info + // ... on failure, deny if no solvable requirements + const requiredClaims = ticket.required.map(req => Object.keys(req)); + if (requiredClaims.length === 0) throw new ForbiddenHttpError(); + + // ... require more info otherwise const id = v4(); this.ticketStore.set(id, ticket); throw new NeedInfoError('Need more info to authorize request ...', id, { required_claims: { - claim_token_format: Object.keys(ticket.required), + claim_token_format: requiredClaims, }, }); } diff --git a/packages/uma/src/errors/NeedInfoError.ts b/packages/uma/src/errors/NeedInfoError.ts index e66d4de4..d5a3922d 100644 --- a/packages/uma/src/errors/NeedInfoError.ts +++ b/packages/uma/src/errors/NeedInfoError.ts @@ -4,7 +4,7 @@ export type RedirectUserInfo = { redirect_user: string } export type RequiredClaimsInfo = { - required_claims: { claim_token_format: string[] } + required_claims: { claim_token_format: string[][] } } /** diff --git a/packages/uma/src/index.ts b/packages/uma/src/index.ts index 2ab0fe5f..43fce3b6 100644 --- a/packages/uma/src/index.ts +++ b/packages/uma/src/index.ts @@ -9,6 +9,7 @@ export * from './credentials/verify/Verifier'; export * from './credentials/verify/TypedVerifier'; export * from './credentials/verify/UnsecureVerifier'; export * from './credentials/verify/SolidOidcVerifier'; +export * from './credentials/verify/JwtVerifier'; // Dialog export * from './dialog/Input'; diff --git a/packages/uma/src/policies/authorizers/AllAuthorizer.ts b/packages/uma/src/policies/authorizers/AllAuthorizer.ts index d17c6468..5345d86b 100644 --- a/packages/uma/src/policies/authorizers/AllAuthorizer.ts +++ b/packages/uma/src/policies/authorizers/AllAuthorizer.ts @@ -32,7 +32,7 @@ export class AllAuthorizer implements Authorizer { } /** @inheritdoc */ - public async credentials(permissions: Permission[]): Promise { - return ({}); + public async credentials(permissions: Permission[]): Promise { + return [{}]; } } diff --git a/packages/uma/src/policies/authorizers/Authorizer.ts b/packages/uma/src/policies/authorizers/Authorizer.ts index d9ce460c..06142314 100644 --- a/packages/uma/src/policies/authorizers/Authorizer.ts +++ b/packages/uma/src/policies/authorizers/Authorizer.ts @@ -27,7 +27,7 @@ export abstract class Authorizer { * * @return {Promise} An object containing ClaimDescriptions. */ - public abstract credentials(permissions: Permission[], query?: Requirements): Promise; + public abstract credentials(permissions: Permission[], query?: Requirements): Promise; // TODO: // * @throws {ForbiddenHttpError} When no Credentials can be found (within the query limits) // * that would grant the requested Permissions. diff --git a/packages/uma/src/policies/authorizers/NamespacedAuthorizer.ts b/packages/uma/src/policies/authorizers/NamespacedAuthorizer.ts index 7ffedc49..5adc809a 100644 --- a/packages/uma/src/policies/authorizers/NamespacedAuthorizer.ts +++ b/packages/uma/src/policies/authorizers/NamespacedAuthorizer.ts @@ -27,42 +27,48 @@ export class NamespacedAuthorizer implements Authorizer { public async permissions(claims: ClaimSet, query?: Partial[]): Promise { this.logger.info('Calculating permissions.', { claims, query }); - const permissions: Permission[] = []; - for (const permission of query ?? []) { - const resource = permission.resource_id; - const ns = resource ? namespace(resource) : undefined; - const authorizer = ns ? this.authorizers[ns] : undefined; + // No permissions if no query + if (!query || query.length === 0) return []; - permissions.push(... await (authorizer ?? this.fallback).permissions(claims, [ permission ])); + // Base namespace on first resource + const ns = query[0].resource_id ? namespace(query[0].resource_id) : undefined; + + // Check namespaces of other resources + for (const permission of query) { + if ((permission.resource_id ? namespace(permission.resource_id) : undefined) !== ns) { + this.logger.warn(`Cannot calculate permissions over multiple namespaces at once.`); + return []; + } } - return permissions; + // Find applicable authorizer + const authorizer = ns ? this.authorizers[ns] : this.fallback; + + // Delegate to authorizer + return authorizer.permissions(claims, query); } /** @inheritdoc */ - public async credentials(permissions: Permission[], query?: Requirements): Promise { + public async credentials(permissions: Permission[], query?: Requirements): Promise { this.logger.info('Calculating credentials.', { permissions, query }); - const verifiers: NodeJS.Dict = {}; - for (const permission of permissions) { - const resource = permission.resource_id; - const ns = resource ? namespace(resource) : undefined; - const authorizer = ns ? this.authorizers[ns] : undefined; + // No requirements if no requested permissions + if (!permissions || permissions.length === 0) return []; - const result = await (authorizer ?? this.fallback).credentials([ permission ], query); + // Base namespace on first resource + const ns = namespace(permissions[0].resource_id); - for (const key of Object.keys(result)) { - verifiers[key] = (verifiers[key] ?? []).concat(result[key]!); - }; + // Check namespaces of other resources + for (const permission of permissions) { + if (namespace(permission.resource_id) !== ns) { + this.logger.warn(`Cannot calculate credentials over multiple namespaces at once.`); + return []; + } } - const combined = Object.entries(verifiers).map( - ([claim, vs]) => [ - claim, - async (...args: unknown[]) => (await Promise.all((vs ?? []).map(v => v(...args)))).every(r => r) - ] - ); + // Find applicable authorizer + const authorizer = this.authorizers[ns] ?? this.fallback; - return Object.fromEntries(combined); + return authorizer.credentials(permissions, query); } } diff --git a/packages/uma/src/policies/authorizers/NoneAuthorizer.ts b/packages/uma/src/policies/authorizers/NoneAuthorizer.ts index f0cc8a44..0d7b26b4 100644 --- a/packages/uma/src/policies/authorizers/NoneAuthorizer.ts +++ b/packages/uma/src/policies/authorizers/NoneAuthorizer.ts @@ -4,8 +4,6 @@ import { Authorizer } from './Authorizer'; import { Permission } from '../../views/Permission'; import { Requirements } from '../../credentials/Requirements'; import { ClaimSet } from '../../credentials/ClaimSet'; -import { ForbiddenHttpError } from '../../util/http/errors/ForbiddenHttpError'; -import { UNSOLVABLE } from '../../credentials/Claims'; /** * Mock authorizer granting no access to any client. @@ -19,8 +17,8 @@ export class NoneAuthorizer implements Authorizer { } /** @inheritdoc */ - public async credentials(permissions: Permission[], query?: Requirements): Promise { + public async credentials(permissions: Permission[], query?: Requirements): Promise { // throw new ForbiddenHttpError(); // TODO: indicating impossibility to RS would save roundtrip - return ({ [UNSOLVABLE]: async () => false }); + return []; } } diff --git a/packages/uma/src/policies/authorizers/PolicyBasedAuthorizer.ts b/packages/uma/src/policies/authorizers/PolicyBasedAuthorizer.ts index 8ae3f783..d4300669 100644 --- a/packages/uma/src/policies/authorizers/PolicyBasedAuthorizer.ts +++ b/packages/uma/src/policies/authorizers/PolicyBasedAuthorizer.ts @@ -1,15 +1,16 @@ import { Logger } from '../../util/logging/Logger'; import { getLoggerFor } from '../../util/logging/LoggerUtils'; -import { ANY_RESOURCE, ANY_SCOPE, Authorizer } from './Authorizer'; +import { Authorizer } from './Authorizer'; import { Permission } from '../../views/Permission'; -import { Requirements } from '../../credentials/Requirements'; +import { Requirements, type ClaimVerifier } from '../../credentials/Requirements'; import { ClaimSet } from '../../credentials/ClaimSet'; -import { DirectoryUCRulesStorage, PolicyExecutor, UconRequest, +import { ODRL, PolicyExecutor, UconRequest, UcpPatternEnforcement, UcpPlugin, UCRulesStorage } from '@solidlab/ucp'; import { EyeJsReasoner } from "koreografeye"; import { lstatSync, readFileSync, readdirSync } from 'fs'; import path from 'path'; -import { UNSOLVABLE, WEBID } from '../../credentials/Claims'; +import { WEBID } from '../../credentials/Claims'; +import { RDF } from '@solid/community-server'; /** * An Authorizer granting access according to Usage Control Policies. @@ -29,18 +30,17 @@ export class PolicyBasedAuthorizer implements Authorizer { * @param enforcer - The UcpPatternEnforcement engine. */ constructor( - // protected rules: UCRulesStorage, // protected enforcer: UcpPatternEnforcement - policies: UCRulesStorage, - rulesDir: string, + private readonly policies: UCRulesStorage, + private readonly rulesDir: string, ) { - if (!lstatSync(rulesDir).isDirectory()) { - throw Error(`${rulesDir} does not resolve to a directory`) + if (!lstatSync(this.rulesDir).isDirectory()) { + throw Error(`${this.rulesDir} does not resolve to a directory`) } - const ruleSet = readdirSync(rulesDir).map(file => { - return readFileSync(path.join(rulesDir, file)).toString(); + const ruleSet = readdirSync(this.rulesDir).map(file => { + return readFileSync(path.join(this.rulesDir, file)).toString(); }); - this.enforcer = new UcpPatternEnforcement(policies, ruleSet, this.reasoner, this.executor) + this.enforcer = new UcpPatternEnforcement(this.policies, ruleSet, this.reasoner, this.executor) } @@ -65,6 +65,7 @@ export class PolicyBasedAuthorizer implements Authorizer { subject: typeof claims[WEBID] === 'string' ? claims[WEBID] : 'urn:solidlab:uma:id:anonymous', resource: resource_id, action: resource_scopes ?? [ "http://www.w3.org/ns/odrl/2/use" ], + claims }); } @@ -79,24 +80,59 @@ export class PolicyBasedAuthorizer implements Authorizer { } /** @inheritdoc */ - public async credentials(permissions: Permission[], query?: Requirements): Promise { + public async credentials(permissions: Permission[], query?: Requirements): Promise { this.logger.info('Calculating credentials.', { permissions, query }); + + // No permissions => empty requirements + if (permissions.length === 0) return [{}]; + + const policyStore = await this.policies.getStore(); + const requirements: Requirements[] = []; + + const policyPermissions = policyStore.getSubjects(RDF.terms.type, ODRL.terms.Permission, null); + + // No policies => no solvable requirements + if (policyPermissions.length === 0) return []; + + for (const policyPermission of policyPermissions) { + const verifiers: Record = {}; + + // TODO: remove this default and treat webid as any claim + const webids = policyStore.getObjects(policyPermission, ODRL.terms.assignee, null).map(webid => webid.value); + verifiers[WEBID] = async (webid: string) => webids.includes(webid); + + const constraints = policyStore.getObjects(policyPermission, ODRL.terms.constraint, null); + + for (const constraint of constraints) { + const leftOperand = policyStore.getObjects(constraint, ODRL.terms.leftOperand, null)[0]; + const operator = policyStore.getObjects(constraint, ODRL.terms.operator, null)[0]; + const rightOperand = policyStore.getObjects(constraint, ODRL.terms.rightOperand, null)[0]; + + if (operator.value !== ODRL.lt && operator.value !== ODRL.gt && operator.value !== ODRL.eq) { + this.logger.warn(`Cannot handle operator <${operator.value}>.`); + continue; + } + + // Skip dateTime constraints, since this is included in the rules. + if (leftOperand.value === ODRL.dateTime) continue; + + // TODO: Support any ODRL constraint + verifiers[leftOperand.value] = async (arg: any) => { + switch (operator.value) { + case ODRL.lt: return arg < rightOperand.value; + case ODRL.gt: return arg > rightOperand.value; + default: return arg === rightOperand.value; + } + }; + } - if (permissions.length === 0) return ({}); - if (query && !Object.keys(query).includes(WEBID)) return { [UNSOLVABLE]: async () => false }; - - return { - [WEBID]: async (webid: string) => { - const received = await this.permissions({ [WEBID]: webid }, permissions); + requirements.push(verifiers); + } - if (received.length !== permissions.length) return false; - - return permissions.every((permission, index) => { - if (permission.resource_id !== received[index].resource_id) return false; + if (query && !Object.keys(requirements).every(r => Object.keys(query).includes(r))) { + return []; + } - return permission.resource_scopes.every(scope => received[index].resource_scopes.includes(scope)); - }) - } - }; + return requirements; } } diff --git a/packages/uma/src/policies/authorizers/WebIdAuthorizer.ts b/packages/uma/src/policies/authorizers/WebIdAuthorizer.ts index 8ae58414..78e875a6 100644 --- a/packages/uma/src/policies/authorizers/WebIdAuthorizer.ts +++ b/packages/uma/src/policies/authorizers/WebIdAuthorizer.ts @@ -4,7 +4,7 @@ import { ANY_RESOURCE, ANY_SCOPE, Authorizer } from './Authorizer'; import { Permission } from '../../views/Permission'; import { Requirements } from '../../credentials/Requirements'; import { ClaimSet } from '../../credentials/ClaimSet'; -import { UNSOLVABLE, WEBID } from '../../credentials/Claims'; +import { WEBID } from '../../credentials/Claims'; /** * An Authorizer granting access for WebID's to resources in given namespaces. @@ -39,13 +39,13 @@ export class WebIdAuthorizer implements Authorizer { } /** @inheritdoc */ - public async credentials(permissions: Permission[], query?: Requirements): Promise { + public async credentials(permissions: Permission[], query?: Requirements): Promise { this.logger.info('Calculating credentials.', { permissions, query }); - if (query && !Object.keys(query).includes(WEBID)) return { [UNSOLVABLE]: async () => false }; + if (query && !Object.keys(query).includes(WEBID)) return []; - return { + return [{ [WEBID]: async (webid) => typeof webid === 'string' && this.webids.includes(webid), - }; + }]; } } diff --git a/packages/uma/src/ticketing/Ticket.ts b/packages/uma/src/ticketing/Ticket.ts index fa9a8e33..524a0fd2 100644 --- a/packages/uma/src/ticketing/Ticket.ts +++ b/packages/uma/src/ticketing/Ticket.ts @@ -4,6 +4,6 @@ import { Permission } from '../views/Permission'; export interface Ticket { permissions: Permission[], - required: Requirements, + required: Requirements[], provided: ClaimSet, }; diff --git a/packages/uma/src/ticketing/strategy/ClaimEliminationStrategy.ts b/packages/uma/src/ticketing/strategy/ClaimEliminationStrategy.ts index 50174144..2158ecc8 100644 --- a/packages/uma/src/ticketing/strategy/ClaimEliminationStrategy.ts +++ b/packages/uma/src/ticketing/strategy/ClaimEliminationStrategy.ts @@ -32,7 +32,7 @@ export class ClaimEliminationStrategy implements TicketingStrategy { }); } - private async calculateRequiredClaims(permissions: Permission[]): Promise { + private async calculateRequiredClaims(permissions: Permission[]): Promise { return this.authorizer.credentials(permissions); } @@ -43,10 +43,12 @@ export class ClaimEliminationStrategy implements TicketingStrategy { for (const key of Object.keys(claims)) { ticket.provided[key] = claims[key]; - const requirement = ticket.required[key]; + for (const requirements of ticket.required) { + const requirement = requirements[key]; - if (requirement && await requirement(claims[key])) { - delete ticket.required[key]; + if (requirement && await requirement(claims[key])) { + delete requirements[key]; + } } } @@ -54,9 +56,11 @@ export class ClaimEliminationStrategy implements TicketingStrategy { } /** @inheritdoc {@link TicketingStrategy.resolveTicket} */ - async resolveTicket(ticket: Ticket): Promise>> { + async resolveTicket(ticket: Ticket): Promise> { this.logger.info('Resolving ticket.', ticket); - - return Object.keys(ticket.required).length === 0 ? Success(ticket.permissions) : Failure(ticket.required); + + return ticket.required.some(req => Object.keys(req).length === 0) + ? Success(ticket.permissions) + : Failure(ticket.required); } } diff --git a/packages/uma/src/ticketing/strategy/ImmediateAuthorizerStrategy.ts b/packages/uma/src/ticketing/strategy/ImmediateAuthorizerStrategy.ts index 38b45708..dd4763b7 100644 --- a/packages/uma/src/ticketing/strategy/ImmediateAuthorizerStrategy.ts +++ b/packages/uma/src/ticketing/strategy/ImmediateAuthorizerStrategy.ts @@ -6,7 +6,7 @@ import { TicketingStrategy } from "./TicketingStrategy"; import { Authorizer } from "../../policies/authorizers/Authorizer"; import { getLoggerFor } from "../../util/logging/LoggerUtils"; import { Logger } from "../../util/logging/Logger"; -import { UNSOLVABLE } from "../../credentials/Claims"; +import type { Requirements } from "../../credentials/Requirements"; /** * A TicketingStrategy that simply stores provided Claims, and calculates all @@ -25,7 +25,7 @@ export class ImmediateAuthorizerStrategy implements TicketingStrategy { return ({ permissions, - required: {}, + required: [{}], provided: {} }); } @@ -42,12 +42,12 @@ export class ImmediateAuthorizerStrategy implements TicketingStrategy { } /** @inheritdoc */ - async resolveTicket(ticket: Ticket): Promise>> { + async resolveTicket(ticket: Ticket): Promise> { this.logger.info('Resolving ticket.', ticket); const permissions = await this.calculatePermissions(ticket); - if (permissions.length === 0) return Failure({ [UNSOLVABLE]: async () => false }); + if (permissions.length === 0) return Failure([]); return Success(await this.calculatePermissions(ticket)); } diff --git a/packages/uma/src/ticketing/strategy/TicketingStrategy.ts b/packages/uma/src/ticketing/strategy/TicketingStrategy.ts index 8741e735..0b936ae4 100644 --- a/packages/uma/src/ticketing/strategy/TicketingStrategy.ts +++ b/packages/uma/src/ticketing/strategy/TicketingStrategy.ts @@ -2,6 +2,7 @@ import { ClaimSet } from "../../credentials/ClaimSet"; import { Ticket } from "../Ticket"; import { Permission } from "../../views/Permission"; import { Result } from "../../util/Result"; +import type { Requirements } from "../../credentials/Requirements"; /** * A strategy interface for different actions on Tickets. @@ -45,5 +46,5 @@ export interface TicketingStrategy { * @returns A Result with an Array of Permissions as Success value, or an * Dict of Claim descriptions as Failure value. */ - resolveTicket(ticket: Ticket): Promise>>; + resolveTicket(ticket: Ticket): Promise>; } diff --git a/packages/uma/src/views/ResourceDescription.ts b/packages/uma/src/views/ResourceDescription.ts index a808e85a..6f526b64 100644 --- a/packages/uma/src/views/ResourceDescription.ts +++ b/packages/uma/src/views/ResourceDescription.ts @@ -1,12 +1,12 @@ import { Type, array, optional as $, string } from "../util/ReType"; -import { ScopeDescription } from "./ScopeDescription.js"; +import { ScopeDescription } from "./ScopeDescription"; export const ResourceDescription = { resource_scopes: array(string), type: $(string), name: $(string), icon_uri: $(string), - description: $(ScopeDescription), + description: $(string), }; export type ResourceDescription = Type; From e524c16539ab124cdb8562cf8bf7812a06373203 Mon Sep 17 00:00:00 2001 From: "Ruben D." Date: Tue, 26 Mar 2024 10:06:45 +0100 Subject: [PATCH 16/83] Added empty .meta file to make sure directory is picked up by github --- demo/data/ruben/settings/policies/.meta | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 demo/data/ruben/settings/policies/.meta diff --git a/demo/data/ruben/settings/policies/.meta b/demo/data/ruben/settings/policies/.meta new file mode 100644 index 00000000..e69de29b From 2acab7b3ce2b5c6f164556bcd0d7e8db34343fb1 Mon Sep 17 00:00:00 2001 From: Wouter Termont Date: Tue, 26 Mar 2024 17:15:52 +0100 Subject: [PATCH 17/83] fix: cors Signed-off-by: Wouter Termont --- packages/uma/config/default.json | 44 +++--- packages/uma/src/index.ts | 1 + .../util/http/server/CorsRequestHandler.ts | 137 ++++++++++++++++++ 3 files changed, 162 insertions(+), 20 deletions(-) create mode 100644 packages/uma/src/util/http/server/CorsRequestHandler.ts diff --git a/packages/uma/config/default.json b/packages/uma/config/default.json index c41474f3..07934b34 100644 --- a/packages/uma/config/default.json +++ b/packages/uma/config/default.json @@ -33,26 +33,30 @@ "@id": "urn:uma:default:NodeHttpRequestResponseHandler", "@type": "NodeHttpRequestResponseHandler", "httpHandler": { - "@id": "urn:uma:default:RoutedHttpRequestHandler", - "@type": "RoutedHttpRequestHandler", - "handlerControllerList": [ - { - "@id": "urn:uma:default:HttpHandlerController", - "@type": "HttpHandlerController", - "label": "ControllerList", - "routes": [ - { "@id": "urn:uma:default:UmaConfigRoute" }, - { "@id": "urn:uma:default:JwksRoute" }, - { "@id": "urn:uma:default:TokenRoute" }, - { "@id": "urn:uma:default:PermissionRegistrationRoute" }, - { "@id": "urn:uma:default:ResourceRegistrationRoute" }, - { "@id": "urn:uma:default:ResourceRegistrationOpsRoute" }, - { "@id": "urn:uma:default:IntrospectionRoute" } - ] + "@id": "urn:uma:default:CorsRequestHandler", + "@type": "CorsRequestHandler", + "handler": { + "@id": "urn:uma:default:RoutedHttpRequestHandler", + "@type": "RoutedHttpRequestHandler", + "handlerControllerList": [ + { + "@id": "urn:uma:default:HttpHandlerController", + "@type": "HttpHandlerController", + "label": "ControllerList", + "routes": [ + { "@id": "urn:uma:default:UmaConfigRoute" }, + { "@id": "urn:uma:default:JwksRoute" }, + { "@id": "urn:uma:default:TokenRoute" }, + { "@id": "urn:uma:default:PermissionRegistrationRoute" }, + { "@id": "urn:uma:default:ResourceRegistrationRoute" }, + { "@id": "urn:uma:default:ResourceRegistrationOpsRoute" }, + { "@id": "urn:uma:default:IntrospectionRoute" } + ] + } + ], + "defaultHandler": { + "@type": "DefaultRequestHandler" } - ], - "defaultHandler": { - "@type": "DefaultRequestHandler" } } } @@ -61,4 +65,4 @@ "comment": "Configuration for the UMA AS." } ] -} \ No newline at end of file +} diff --git a/packages/uma/src/index.ts b/packages/uma/src/index.ts index 43fce3b6..e9d376a7 100644 --- a/packages/uma/src/index.ts +++ b/packages/uma/src/index.ts @@ -83,6 +83,7 @@ export * from './util/http/models/HttpHandlerResponse'; export * from './util/http/models/HttpHandlerRoute'; export * from './util/http/models/HttpMethod'; export * from './util/http/server/ErrorHandler'; +export * from './util/http/server/CorsRequestHandler'; export * from './util/http/server/NodeHttpRequestResponseHandler'; export * from './util/http/server/NodeHttpServer'; export * from './util/http/server/NodeHttpStreamsHandler'; diff --git a/packages/uma/src/util/http/server/CorsRequestHandler.ts b/packages/uma/src/util/http/server/CorsRequestHandler.ts new file mode 100644 index 00000000..279bb69c --- /dev/null +++ b/packages/uma/src/util/http/server/CorsRequestHandler.ts @@ -0,0 +1,137 @@ +import { getLogger } from '../../logging/LoggerUtils'; +import { HttpHandler } from '../models/HttpHandler'; +import { HttpHandlerContext } from '../models/HttpHandlerContext'; +import { HttpHandlerResponse } from '../models/HttpHandlerResponse'; + +export const cleanHeaders = (headers: Record): Record => Object.entries(headers).reduce( + (acc: Record, [ key, value ]) => { + + const lKey = key.toLowerCase(); + + return { ... acc, [lKey]: acc[lKey] ? `${acc[lKey]},${value}` : value }; + + }, {}, +); + +export interface HttpCorsOptions { + origins?: string[]; + allowMethods?: string[]; + allowHeaders?: string[]; + exposeHeaders?: string[]; + credentials?: boolean; + maxAge?: number; +} +export class CorsRequestHandler implements HttpHandler { + + public logger = getLogger(); + + constructor( + private handler: HttpHandler, + private options?: HttpCorsOptions, + private passThroughOptions: boolean = false, + ) { } + + async handle(context: HttpHandlerContext): Promise { + + const { origins, allowMethods, allowHeaders, exposeHeaders, credentials, maxAge } = this.options || ({}); + + const requestHeaders = context.request.headers; + + const cleanRequestHeaders = cleanHeaders(requestHeaders); + + const { + /* eslint-disable-next-line @typescript-eslint/no-unused-vars -- destructuring for removal */ + ['access-control-request-method']: requestedMethod, + ['access-control-request-headers']: requestedHeaders, + ... noCorsHeaders + } = cleanRequestHeaders; + + const noCorsRequestContext = { + ... context, + request: { + ... context.request, + headers: { + ... noCorsHeaders, + }, + }, + }; + + const requestedOrigin = cleanRequestHeaders.origin ?? ''; + + const allowOrigin = origins + ? origins.includes(requestedOrigin) + ? requestedOrigin + : undefined + : credentials + ? requestedOrigin + : '*'; + + const allowHeadersOrRequested = allowHeaders?.join(',') ?? requestedHeaders; + + if (context.request.method === 'OPTIONS') { + + /* Preflight Request */ + + this.logger.debug('Processing preflight request'); + + const routeMethods = context.route?.operations.map((op) => op.method); + const allMethods = [ 'GET', 'HEAD', 'PUT', 'POST', 'DELETE', 'PATCH' ]; + + const initialOptions = this.passThroughOptions + ? this.handler.handle(noCorsRequestContext) + : Promise.resolve({ status: 204, headers: {} }); + + return initialOptions + .then((response) => ({ + ... response, + headers: response.headers ? cleanHeaders(response.headers) : {}, + })) + .then((response) => ({ + ... response, + headers: { + + ... response.headers, + ... allowOrigin && ({ + ... (allowOrigin !== '*') && { + 'vary': [ ... new Set([ + ... response.headers.vary?.split(',').map((v) => v.trim().toLowerCase()) ?? [], `origin` + ]) ].join(', ') + }, + 'access-control-allow-origin': allowOrigin, + 'access-control-allow-methods': (allowMethods ?? routeMethods ?? allMethods).join(', '), + ... (allowHeadersOrRequested) && { 'access-control-allow-headers': allowHeadersOrRequested }, + ... (credentials) && { 'access-control-allow-credentials': 'true' }, + 'access-control-max-age': (maxAge ?? -1).toString(), + }), + }, + })); + + } else { + + /* CORS Request */ + + this.logger.debug('Processing CORS request'); + + return this.handler.handle(noCorsRequestContext) + .then((response) => ({ + ... response, + headers: { + ... response.headers, + ... allowOrigin && ({ + 'access-control-allow-origin': allowOrigin, + ... (allowOrigin !== '*') && { + 'vary': [ ... new Set([ + ... response.headers?.vary?.split(',').map((v) => v.trim().toLowerCase()) ?? [], `origin` + ]) ].join(', ') + }, + ... (credentials) && { 'access-control-allow-credentials': 'true' }, + ... (exposeHeaders) && { 'access-control-expose-headers': exposeHeaders.join(',') }, + }), + }, + })); + + } + + } + +} From 1592ae0574621174c3c91e44a205c5fe57330c45 Mon Sep 17 00:00:00 2001 From: "Ruben D." Date: Tue, 26 Mar 2024 17:47:59 +0100 Subject: [PATCH 18/83] Feat: finished demo store page --- demo/data/demo/public/package.json | 11 + demo/data/demo/public/storesite/.gitignore | 23 + demo/data/demo/public/storesite/README.md | 46 + .../demo/public/storesite/data/convert.js | 12 + .../data/demo/public/storesite/data/zeus.json | 3737 ++++ .../demo/public/storesite/package-lock.json | 18580 ++++++++++++++++ demo/data/demo/public/storesite/package.json | 50 + .../public/storesite/public/buurtwinkel.png | Bin 0 -> 330420 bytes .../demo/public/storesite/public/favicon.ico | Bin 0 -> 3870 bytes .../demo/public/storesite/public/index.html | 43 + .../demo/public/storesite/public/logo192.png | Bin 0 -> 5347 bytes .../demo/public/storesite/public/logo512.png | Bin 0 -> 9664 bytes .../public/storesite/public/manifest.json | 25 + .../demo/public/storesite/public/robots.txt | 3 + .../demo/public/storesite/public/store.jpg | Bin 0 -> 34913 bytes .../storesite/public/zeusbeverages.json | 767 + demo/data/demo/public/storesite/src/App.css | 38 + .../demo/public/storesite/src/App.test.tsx | 9 + demo/data/demo/public/storesite/src/App.tsx | 118 + .../data/demo/public/storesite/src/Banner.css | 60 + .../data/demo/public/storesite/src/Banner.tsx | 27 + .../demo/public/storesite/src/ItemCard.tsx | 32 + demo/data/demo/public/storesite/src/Modal.tsx | 77 + demo/data/demo/public/storesite/src/flow.ts | 183 + demo/data/demo/public/storesite/src/index.css | 76 + demo/data/demo/public/storesite/src/index.tsx | 19 + demo/data/demo/public/storesite/src/logo.svg | 1 + .../public/storesite/src/react-app-env.d.ts | 1 + .../public/storesite/src/reportWebVitals.ts | 15 + .../demo/public/storesite/src/setupTests.ts | 5 + demo/data/demo/public/storesite/tsconfig.json | 26 + demo/setPolicies.ts | 93 + 32 files changed, 24077 insertions(+) create mode 100644 demo/data/demo/public/package.json create mode 100644 demo/data/demo/public/storesite/.gitignore create mode 100644 demo/data/demo/public/storesite/README.md create mode 100644 demo/data/demo/public/storesite/data/convert.js create mode 100644 demo/data/demo/public/storesite/data/zeus.json create mode 100644 demo/data/demo/public/storesite/package-lock.json create mode 100644 demo/data/demo/public/storesite/package.json create mode 100644 demo/data/demo/public/storesite/public/buurtwinkel.png create mode 100644 demo/data/demo/public/storesite/public/favicon.ico create mode 100644 demo/data/demo/public/storesite/public/index.html create mode 100644 demo/data/demo/public/storesite/public/logo192.png create mode 100644 demo/data/demo/public/storesite/public/logo512.png create mode 100644 demo/data/demo/public/storesite/public/manifest.json create mode 100644 demo/data/demo/public/storesite/public/robots.txt create mode 100644 demo/data/demo/public/storesite/public/store.jpg create mode 100644 demo/data/demo/public/storesite/public/zeusbeverages.json create mode 100644 demo/data/demo/public/storesite/src/App.css create mode 100644 demo/data/demo/public/storesite/src/App.test.tsx create mode 100644 demo/data/demo/public/storesite/src/App.tsx create mode 100644 demo/data/demo/public/storesite/src/Banner.css create mode 100644 demo/data/demo/public/storesite/src/Banner.tsx create mode 100644 demo/data/demo/public/storesite/src/ItemCard.tsx create mode 100644 demo/data/demo/public/storesite/src/Modal.tsx create mode 100644 demo/data/demo/public/storesite/src/flow.ts create mode 100644 demo/data/demo/public/storesite/src/index.css create mode 100644 demo/data/demo/public/storesite/src/index.tsx create mode 100644 demo/data/demo/public/storesite/src/logo.svg create mode 100644 demo/data/demo/public/storesite/src/react-app-env.d.ts create mode 100644 demo/data/demo/public/storesite/src/reportWebVitals.ts create mode 100644 demo/data/demo/public/storesite/src/setupTests.ts create mode 100644 demo/data/demo/public/storesite/tsconfig.json create mode 100644 demo/setPolicies.ts diff --git a/demo/data/demo/public/package.json b/demo/data/demo/public/package.json new file mode 100644 index 00000000..93c20cc5 --- /dev/null +++ b/demo/data/demo/public/package.json @@ -0,0 +1,11 @@ +{ + "name": "public", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "ISC" +} diff --git a/demo/data/demo/public/storesite/.gitignore b/demo/data/demo/public/storesite/.gitignore new file mode 100644 index 00000000..4d29575d --- /dev/null +++ b/demo/data/demo/public/storesite/.gitignore @@ -0,0 +1,23 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/demo/data/demo/public/storesite/README.md b/demo/data/demo/public/storesite/README.md new file mode 100644 index 00000000..b87cb004 --- /dev/null +++ b/demo/data/demo/public/storesite/README.md @@ -0,0 +1,46 @@ +# Getting Started with Create React App + +This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). + +## Available Scripts + +In the project directory, you can run: + +### `npm start` + +Runs the app in the development mode.\ +Open [http://localhost:3000](http://localhost:3000) to view it in the browser. + +The page will reload if you make edits.\ +You will also see any lint errors in the console. + +### `npm test` + +Launches the test runner in the interactive watch mode.\ +See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. + +### `npm run build` + +Builds the app for production to the `build` folder.\ +It correctly bundles React in production mode and optimizes the build for the best performance. + +The build is minified and the filenames include the hashes.\ +Your app is ready to be deployed! + +See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. + +### `npm run eject` + +**Note: this is a one-way operation. Once you `eject`, you can’t go back!** + +If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. + +Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own. + +You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it. + +## Learn More + +You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). + +To learn React, check out the [React documentation](https://reactjs.org/). diff --git a/demo/data/demo/public/storesite/data/convert.js b/demo/data/demo/public/storesite/data/convert.js new file mode 100644 index 00000000..78bcc0e9 --- /dev/null +++ b/demo/data/demo/public/storesite/data/convert.js @@ -0,0 +1,12 @@ +const { readFileSync, writeFile, writeFileSync } = require("fs"); + +let content = readFileSync('./zeus.json', {encoding: 'utf-8'}) +let jsoncontent = JSON.parse(content) + +let beveragesContent = [] + +for (let item of jsoncontent) { + if (item.category === "beverages") beveragesContent.push(item) +} + +writeFileSync('./zeusbeverages.json', JSON.stringify(beveragesContent, null, 2)) \ No newline at end of file diff --git a/demo/data/demo/public/storesite/data/zeus.json b/demo/data/demo/public/storesite/data/zeus.json new file mode 100644 index 00000000..9dfcfc6b --- /dev/null +++ b/demo/data/demo/public/storesite/data/zeus.json @@ -0,0 +1,3737 @@ +[ + { + "id": 209, + "name": "1784 Schelfaut export 33cl", + "price_cents": 250, + "created_at": "2022-07-16T12:12:19.000+02:00", + "updated_at": "2022-07-16T12:12:19.000+02:00", + "avatar_file_name": "Ontwerpzondertitel_39_590x.png", + "avatar_content_type": "image/png", + "avatar_file_size": 137135, + "avatar_updated_at": "2022-07-16T12:12:19.000+02:00", + "category": "beverages", + "stock": 1, + "calories": null, + "deleted": false + }, + { + "id": 213, + "name": "365 Roasted and salted peanuts 500g", + "price_cents": 120, + "created_at": "2022-10-04T18:35:04.000+02:00", + "updated_at": "2022-10-04T18:35:04.000+02:00", + "avatar_file_name": "10372979195934_1.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 117501, + "avatar_updated_at": "2022-10-04T18:35:03.000+02:00", + "category": "food", + "stock": 0, + "calories": 3075, + "deleted": false + }, + { + "id": 214, + "name": "365 studentenhaver met rozijnen 200g", + "price_cents": 164, + "created_at": "2022-10-04T18:37:12.000+02:00", + "updated_at": "2022-10-04T18:37:12.000+02:00", + "avatar_file_name": "front_fr.17.full.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 29971, + "avatar_updated_at": "2022-10-04T18:37:12.000+02:00", + "category": "food", + "stock": 0, + "calories": 902, + "deleted": false + }, + { + "id": 205, + "name": "7UP 33cl", + "price_cents": 56, + "created_at": "2022-06-02T17:35:44.000+02:00", + "updated_at": "2022-06-02T17:45:52.000+02:00", + "avatar_file_name": "7UP.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 30524, + "avatar_updated_at": "2022-06-02T17:35:44.000+02:00", + "category": "beverages", + "stock": -45, + "calories": null, + "deleted": false + }, + { + "id": 167, + "name": "AIKI Chicken", + "price_cents": 137, + "created_at": "2019-09-27T15:41:30.000+02:00", + "updated_at": "2023-11-13T14:23:56.000+01:00", + "avatar_file_name": "chicken_aiki_noodles.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 28952, + "avatar_updated_at": "2020-01-20T20:49:49.000+01:00", + "category": "food", + "stock": 5, + "calories": 326, + "deleted": false + }, + { + "id": 218, + "name": "Amandelen 200g", + "price_cents": 369, + "created_at": "2022-10-04T18:58:45.000+02:00", + "updated_at": "2022-10-04T18:58:45.000+02:00", + "avatar_file_name": "10936560812062.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 127116, + "avatar_updated_at": "2022-10-04T18:58:45.000+02:00", + "category": "food", + "stock": 0, + "calories": 1182, + "deleted": false + }, + { + "id": 34, + "name": "Arizona Iced tea", + "price_cents": 112, + "created_at": "2016-02-11T20:17:43.000+01:00", + "updated_at": "2020-01-20T20:49:03.000+01:00", + "avatar_file_name": "download.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 8113, + "avatar_updated_at": "2020-01-20T20:49:03.000+01:00", + "category": "beverages", + "stock": 0, + "calories": 150, + "deleted": false + }, + { + "id": 33, + "name": "Arizona Pomegranate", + "price_cents": 112, + "created_at": "2016-02-11T19:56:21.000+01:00", + "updated_at": "2020-01-20T20:49:03.000+01:00", + "avatar_file_name": "8828587343902.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 29454, + "avatar_updated_at": "2020-01-20T20:49:03.000+01:00", + "category": "beverages", + "stock": 0, + "calories": 115, + "deleted": false + }, + { + "id": 72, + "name": "Arizona White Tea", + "price_cents": 112, + "created_at": "2016-04-13T17:22:18.000+02:00", + "updated_at": "2020-01-20T20:49:17.000+01:00", + "avatar_file_name": "51We2EuTNsL._SY355_.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 17093, + "avatar_updated_at": "2020-01-20T20:49:17.000+01:00", + "category": "beverages", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 73, + "name": "Balisto Korn (oranje)", + "price_cents": 25, + "created_at": "2016-04-28T17:29:55.000+02:00", + "updated_at": "2020-01-20T20:49:17.000+01:00", + "avatar_file_name": "8916501266462.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 63834, + "avatar_updated_at": "2020-01-20T20:49:17.000+01:00", + "category": "food", + "stock": 0, + "calories": 93, + "deleted": false + }, + { + "id": 74, + "name": "Balisto Muesli (groen)", + "price_cents": 20, + "created_at": "2016-04-28T17:30:31.000+02:00", + "updated_at": "2020-01-20T20:49:17.000+01:00", + "avatar_file_name": "8916507820062.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 60963, + "avatar_updated_at": "2020-01-20T20:49:17.000+01:00", + "category": "food", + "stock": 0, + "calories": 93, + "deleted": false + }, + { + "id": 163, + "name": "BBQ ham flavour chips", + "price_cents": 180, + "created_at": "2019-09-02T20:17:14.000+02:00", + "updated_at": "2020-01-20T20:49:48.000+01:00", + "avatar_file_name": "bbqbacon.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 384311, + "avatar_updated_at": "2020-01-20T20:49:48.000+01:00", + "category": "food", + "stock": 0, + "calories": 420, + "deleted": false + }, + { + "id": 241, + "name": "Bon LAN", + "price_cents": 50, + "created_at": "2023-11-10T19:00:20.000+01:00", + "updated_at": "2023-11-10T19:00:20.000+01:00", + "avatar_file_name": "PXL_20231110_175958247.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 1905997, + "avatar_updated_at": "2023-11-10T19:00:15.000+01:00", + "category": "other", + "stock": -47, + "calories": null, + "deleted": false + }, + { + "id": 151, + "name": "Boni Plat Water 1L", + "price_cents": 55, + "created_at": "2018-12-19T23:58:08.000+01:00", + "updated_at": "2020-01-20T20:49:42.000+01:00", + "avatar_file_name": "BONIE_WATER.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 70757, + "avatar_updated_at": "2020-01-20T20:49:41.000+01:00", + "category": "beverages", + "stock": -1, + "calories": 0, + "deleted": false + }, + { + "id": 155, + "name": "Boni Selection Salt&Pepper 200g", + "price_cents": 90, + "created_at": "2019-02-07T17:33:48.000+01:00", + "updated_at": "2020-01-20T20:49:43.000+01:00", + "avatar_file_name": "asset-1381972.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 89807, + "avatar_updated_at": "2020-01-20T20:49:43.000+01:00", + "category": "food", + "stock": -3, + "calories": null, + "deleted": false + }, + { + "id": 147, + "name": "Boni Tortilla Sweet Chilli 200g", + "price_cents": 70, + "created_at": "2018-12-18T14:39:51.000+01:00", + "updated_at": "2020-01-20T20:49:40.000+01:00", + "avatar_file_name": "boni_tortilla.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 175335, + "avatar_updated_at": "2020-01-20T20:49:40.000+01:00", + "category": "food", + "stock": 0, + "calories": 472, + "deleted": false + }, + { + "id": 92, + "name": "Bounty", + "price_cents": 50, + "created_at": "2016-08-23T17:44:34.000+02:00", + "updated_at": "2020-08-20T21:17:21.000+02:00", + "avatar_file_name": "bounty.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 41556, + "avatar_updated_at": "2020-01-20T20:49:22.000+01:00", + "category": "food", + "stock": -2, + "calories": 270, + "deleted": false + }, + { + "id": 93, + "name": "Bounty klein", + "price_cents": 20, + "created_at": "2016-10-06T13:36:00.000+02:00", + "updated_at": "2020-03-10T13:18:03.000+01:00", + "avatar_file_name": "bounty.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 46372, + "avatar_updated_at": "2020-01-20T20:49:22.000+01:00", + "category": "food", + "stock": -1, + "calories": null, + "deleted": false + }, + { + "id": 162, + "name": "Canada Dry", + "price_cents": 100, + "created_at": "2019-08-27T21:04:43.000+02:00", + "updated_at": "2020-10-12T22:14:19.000+02:00", + "avatar_file_name": "canada-dry-blik-33cl_1.png", + "avatar_content_type": "image/png", + "avatar_file_size": 112372, + "avatar_updated_at": "2019-08-27T21:04:42.000+02:00", + "category": "beverages", + "stock": -75, + "calories": 79, + "deleted": false + }, + { + "id": 244, + "name": "Capri Sun", + "price_cents": 30, + "created_at": "2023-11-27T14:42:10.000+01:00", + "updated_at": "2024-03-07T14:01:18.000+01:00", + "avatar_file_name": "GD41812-1.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 30800, + "avatar_updated_at": "2023-11-27T14:42:10.000+01:00", + "category": "beverages", + "stock": -40, + "calories": 0, + "deleted": false + }, + { + "id": 25, + "name": "Cent Wafers", + "price_cents": 50, + "created_at": "2016-02-10T15:59:53.000+01:00", + "updated_at": "2020-01-20T20:49:02.000+01:00", + "avatar_file_name": "cent-wafers.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 32523, + "avatar_updated_at": "2020-01-20T20:49:02.000+01:00", + "category": "food", + "stock": 0, + "calories": 240, + "deleted": false + }, + { + "id": 56, + "name": "Cent Wafers groot", + "price_cents": 80, + "created_at": "2016-03-15T14:03:21.000+01:00", + "updated_at": "2020-01-20T20:49:12.000+01:00", + "avatar_file_name": "8961249509406.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 7503, + "avatar_updated_at": "2020-01-20T20:49:12.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 11, + "name": "Cha-Cha", + "price_cents": 45, + "created_at": "2016-02-10T15:15:19.000+01:00", + "updated_at": "2020-01-20T20:48:58.000+01:00", + "avatar_file_name": "Lu_cha_cha_50x27gr_3.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 26453, + "avatar_updated_at": "2020-01-20T20:48:58.000+01:00", + "category": "food", + "stock": 0, + "calories": 128, + "deleted": false + }, + { + "id": 119, + "name": "Cha-Cha groot", + "price_cents": 65, + "created_at": "2017-11-07T15:29:24.000+01:00", + "updated_at": "2020-01-20T20:49:28.000+01:00", + "avatar_file_name": "9366454599710.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 13295, + "avatar_updated_at": "2020-01-20T20:49:28.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 160, + "name": "Cheese flips", + "price_cents": 75, + "created_at": "2019-05-21T22:12:11.000+02:00", + "updated_at": "2020-02-24T22:33:51.000+01:00", + "avatar_file_name": "cheese_flips.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 84946, + "avatar_updated_at": "2019-05-21T22:12:09.000+02:00", + "category": "food", + "stock": -8, + "calories": 1337, + "deleted": false + }, + { + "id": 165, + "name": "Cheetos", + "price_cents": 80, + "created_at": "2019-09-04T16:01:28.000+02:00", + "updated_at": "2020-01-20T20:49:49.000+01:00", + "avatar_file_name": "paprika_klein.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 120667, + "avatar_updated_at": "2020-01-20T20:49:48.000+01:00", + "category": "food", + "stock": 0, + "calories": 2, + "deleted": false + }, + { + "id": 59, + "name": "Cheetos Chipito 115 g", + "price_cents": 112, + "created_at": "2016-03-15T14:06:19.000+01:00", + "updated_at": "2020-01-20T20:49:13.000+01:00", + "avatar_file_name": "phpThumb_generated_thumbnailjpg.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 115547, + "avatar_updated_at": "2020-01-20T20:49:12.000+01:00", + "category": "food", + "stock": 0, + "calories": 565, + "deleted": false + }, + { + "id": 27, + "name": "Chocoladekoeken", + "price_cents": 76, + "created_at": "2016-02-10T16:04:57.000+01:00", + "updated_at": "2022-08-24T21:23:44.000+02:00", + "avatar_file_name": "8823053844510.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 13842, + "avatar_updated_at": "2020-01-20T20:49:02.000+01:00", + "category": "food", + "stock": 2, + "calories": 1140, + "deleted": false + }, + { + "id": 12, + "name": "Chocoladereep H", + "price_cents": 90, + "created_at": "2016-02-10T15:18:08.000+01:00", + "updated_at": "2020-01-20T20:48:59.000+01:00", + "avatar_file_name": "18115.png", + "avatar_content_type": "image/png", + "avatar_file_size": 94446, + "avatar_updated_at": "2020-01-20T20:48:58.000+01:00", + "category": "food", + "stock": 0, + "calories": 260, + "deleted": true + }, + { + "id": 7, + "name": "Club-Mate 33cl", + "price_cents": 120, + "created_at": "2016-02-10T14:54:22.000+01:00", + "updated_at": "2023-05-25T16:34:28.000+02:00", + "avatar_file_name": "bottle-start.png", + "avatar_content_type": "image/png", + "avatar_file_size": 225237, + "avatar_updated_at": "2016-02-10T14:54:21.000+01:00", + "category": "beverages", + "stock": -5, + "calories": 66, + "deleted": true + }, + { + "id": 169, + "name": "Club-Mate 50cl", + "price_cents": 144, + "created_at": "2019-10-24T17:41:09.000+02:00", + "updated_at": "2023-03-21T17:48:10.000+01:00", + "avatar_file_name": "brauerei-loscher-club-mate-50cl.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 57789, + "avatar_updated_at": "2020-01-20T20:49:50.000+01:00", + "category": "beverages", + "stock": -387, + "calories": 100, + "deleted": false + }, + { + "id": 222, + "name": "Club-Mate Cola 33cl", + "price_cents": 125, + "created_at": "2022-11-15T19:33:11.000+01:00", + "updated_at": "2022-11-15T19:35:10.000+01:00", + "avatar_file_name": "cola_330ml-222823981", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 43016, + "avatar_updated_at": "2022-11-15T19:33:11.000+01:00", + "category": "beverages", + "stock": -1, + "calories": 133, + "deleted": false + }, + { + "id": 227, + "name": "Club-Mate Granat 50cl", + "price_cents": 155, + "created_at": "2023-03-21T17:50:54.000+01:00", + "updated_at": "2023-03-21T18:05:30.000+01:00", + "avatar_file_name": "th-1341747797", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 70400, + "avatar_updated_at": "2023-03-21T17:50:54.000+01:00", + "category": "beverages", + "stock": -6, + "calories": null, + "deleted": false + }, + { + "id": 223, + "name": "Club-Mate Zero 50cl", + "price_cents": 140, + "created_at": "2022-11-15T19:40:16.000+01:00", + "updated_at": "2023-03-21T18:07:08.000+01:00", + "avatar_file_name": "New_Project_81_-1575946225", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 42024, + "avatar_updated_at": "2022-11-15T19:40:15.000+01:00", + "category": "beverages", + "stock": -98, + "calories": 5, + "deleted": false + }, + { + "id": 4, + "name": "Coca Cola 33 cl", + "price_cents": 60, + "created_at": "2016-02-10T14:27:21.000+01:00", + "updated_at": "2024-03-07T13:50:32.000+01:00", + "avatar_file_name": "Coca-Cola-33cl-CAN1.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 759409, + "avatar_updated_at": "2016-02-10T14:27:21.000+01:00", + "category": "beverages", + "stock": -10, + "calories": 139, + "deleted": false + }, + { + "id": 170, + "name": "Coca-Cola 20cl", + "price_cents": 77, + "created_at": "2019-10-25T16:08:00.000+02:00", + "updated_at": "2022-10-17T22:21:34.000+02:00", + "avatar_file_name": "coca-cola-330ml-icon-bottle-2015_temp_1.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 72912, + "avatar_updated_at": "2019-10-25T16:07:58.000+02:00", + "category": "beverages", + "stock": 146, + "calories": 84, + "deleted": false + }, + { + "id": 156, + "name": "Coca-cola 250 ml", + "price_cents": 55, + "created_at": "2019-03-06T19:39:18.000+01:00", + "updated_at": "2021-07-12T13:50:28.000+02:00", + "avatar_file_name": "cocacola_250.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 25439, + "avatar_updated_at": "2020-01-20T20:49:43.000+01:00", + "category": "beverages", + "stock": -3, + "calories": 105, + "deleted": false + }, + { + "id": 47, + "name": "Coca-Cola Cherry Coke", + "price_cents": 75, + "created_at": "2016-02-25T16:17:25.000+01:00", + "updated_at": "2020-01-20T20:49:08.000+01:00", + "avatar_file_name": "8827692646430.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 24021, + "avatar_updated_at": "2020-01-20T20:49:07.000+01:00", + "category": "beverages", + "stock": 0, + "calories": 115, + "deleted": true + }, + { + "id": 171, + "name": "Coca-Cola Zero 20cl", + "price_cents": 77, + "created_at": "2019-10-25T16:10:29.000+02:00", + "updated_at": "2022-10-17T22:21:43.000+02:00", + "avatar_file_name": "coca-cola-zero-sugar-330ml-glass-bottle_temp.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 31208, + "avatar_updated_at": "2019-10-25T16:10:29.000+02:00", + "category": "beverages", + "stock": 181, + "calories": 0, + "deleted": false + }, + { + "id": 159, + "name": "Coca-Cola zero 33 cl", + "price_cents": 60, + "created_at": "2019-04-25T16:34:49.000+02:00", + "updated_at": "2024-03-07T13:50:19.000+01:00", + "avatar_file_name": "coca-cola-zero.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 49328, + "avatar_updated_at": "2019-04-25T16:34:47.000+02:00", + "category": "beverages", + "stock": -21, + "calories": 1, + "deleted": false + }, + { + "id": 229, + "name": "Cola light", + "price_cents": 60, + "created_at": "2023-05-10T12:46:38.000+02:00", + "updated_at": "2023-05-10T12:46:38.000+02:00", + "avatar_file_name": "16837155578398021597540506535436.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 7275213, + "avatar_updated_at": "2023-05-10T12:46:34.000+02:00", + "category": "beverages", + "stock": 3, + "calories": 1, + "deleted": false + }, + { + "id": 182, + "name": "Crocky hula hoops barbecue bbq", + "price_cents": 153, + "created_at": "2021-08-11T16:34:22.000+02:00", + "updated_at": "2021-08-11T17:17:11.000+02:00", + "avatar_file_name": "hulahoops.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 153093, + "avatar_updated_at": "2021-08-11T16:34:21.000+02:00", + "category": "food", + "stock": 0, + "calories": 69, + "deleted": false + }, + { + "id": 220, + "name": "Croque Monsieur", + "price_cents": 100, + "created_at": "2022-10-21T20:02:54.000+02:00", + "updated_at": "2022-10-21T20:02:54.000+02:00", + "avatar_file_name": "1920px-Croque_monsieur.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 370787, + "avatar_updated_at": "2022-10-21T20:02:53.000+02:00", + "category": "food", + "stock": 185, + "calories": 1, + "deleted": false + }, + { + "id": 134, + "name": "Delhaize 365 Chips Paprika 200 g", + "price_cents": 76, + "created_at": "2018-09-25T19:30:27.000+02:00", + "updated_at": "2022-10-04T18:28:24.000+02:00", + "avatar_file_name": "paprika_chips.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 60392, + "avatar_updated_at": "2020-01-20T20:49:33.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 133, + "name": "Delhaize 365 Chips Zout 200 g", + "price_cents": 76, + "created_at": "2018-09-24T17:42:48.000+02:00", + "updated_at": "2022-10-04T18:26:02.000+02:00", + "avatar_file_name": "9156599480350.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 46882, + "avatar_updated_at": "2020-01-20T20:49:32.000+01:00", + "category": "food", + "stock": -2, + "calories": null, + "deleted": false + }, + { + "id": 90, + "name": "Delhaize 365 chocoladesuikerwafel", + "price_cents": 40, + "created_at": "2016-08-12T14:21:17.000+02:00", + "updated_at": "2020-03-05T14:11:20.000+01:00", + "avatar_file_name": "8899059154974.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 12048, + "avatar_updated_at": "2016-08-12T14:21:17.000+02:00", + "category": "food", + "stock": -35, + "calories": null, + "deleted": false + }, + { + "id": 66, + "name": "Delhaize 365 Chocoladewafel", + "price_cents": 30, + "created_at": "2016-03-31T17:40:53.000+02:00", + "updated_at": "2020-01-28T16:39:55.000+01:00", + "avatar_file_name": "wafel.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 58047, + "avatar_updated_at": "2016-03-31T17:40:52.000+02:00", + "category": "food", + "stock": -3, + "calories": 416, + "deleted": false + }, + { + "id": 88, + "name": "Delhaize 365 Energy Drink", + "price_cents": 40, + "created_at": "2016-08-12T14:18:45.000+02:00", + "updated_at": "2020-01-20T20:49:21.000+01:00", + "avatar_file_name": "7194428.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 201089, + "avatar_updated_at": "2020-01-20T20:49:21.000+01:00", + "category": "beverages", + "stock": 20, + "calories": null, + "deleted": false + }, + { + "id": 87, + "name": "Delhaize 365 koekjes met chocoladevulling (Prince-achtig)", + "price_cents": 100, + "created_at": "2016-08-12T14:15:32.000+02:00", + "updated_at": "2020-01-20T20:49:21.000+01:00", + "avatar_file_name": "7194221.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 162246, + "avatar_updated_at": "2020-01-20T20:49:20.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 86, + "name": "Delhaize 365 koekjes met vanillesmaakvulling (Prince-achtig)", + "price_cents": 100, + "created_at": "2016-08-12T14:14:29.000+02:00", + "updated_at": "2020-01-20T20:49:20.000+01:00", + "avatar_file_name": "7194223.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 165922, + "avatar_updated_at": "2020-01-20T20:49:20.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 164, + "name": "Delhaize 365 Paprika Chips 50g", + "price_cents": 30, + "created_at": "2019-09-02T20:19:11.000+02:00", + "updated_at": "2020-03-04T16:47:31.000+01:00", + "avatar_file_name": "paprika_klein.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 120667, + "avatar_updated_at": "2019-09-02T20:19:11.000+02:00", + "category": "food", + "stock": -13, + "calories": 420, + "deleted": false + }, + { + "id": 105, + "name": "Delhaize 365 Petit-Beurre met chocolade", + "price_cents": 70, + "created_at": "2017-05-24T14:56:35.000+02:00", + "updated_at": "2020-03-02T17:16:57.000+01:00", + "avatar_file_name": "9158158188574.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 7095, + "avatar_updated_at": "2020-01-20T20:49:24.000+01:00", + "category": "food", + "stock": -1, + "calories": null, + "deleted": false + }, + { + "id": 89, + "name": "Delhaize 365 suikerwafel", + "price_cents": 15, + "created_at": "2016-08-12T14:20:09.000+02:00", + "updated_at": "2022-02-15T16:20:40.000+01:00", + "avatar_file_name": "8899015082014.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 12541, + "avatar_updated_at": "2020-01-20T20:49:21.000+01:00", + "category": "food", + "stock": -16, + "calories": null, + "deleted": false + }, + { + "id": 44, + "name": "Delhaize 365 Water 50 cl", + "price_cents": 20, + "created_at": "2016-02-25T16:11:28.000+01:00", + "updated_at": "2020-01-20T20:49:07.000+01:00", + "avatar_file_name": "8828153233438.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 11023, + "avatar_updated_at": "2020-01-20T20:49:07.000+01:00", + "category": "beverages", + "stock": 0, + "calories": 0, + "deleted": false + }, + { + "id": 161, + "name": "Delhaize 365 Zout Chips 50g", + "price_cents": 30, + "created_at": "2019-08-23T16:19:20.000+02:00", + "updated_at": "2020-03-02T18:21:59.000+01:00", + "avatar_file_name": "Screenshot_2019-08-23_Chips_Zout.png", + "avatar_content_type": "image/png", + "avatar_file_size": 46240, + "avatar_updated_at": "2019-08-23T16:19:19.000+02:00", + "category": "food", + "stock": -12, + "calories": 138, + "deleted": false + }, + { + "id": 211, + "name": "Delhaize appelsap 1L", + "price_cents": 72, + "created_at": "2022-08-24T21:19:15.000+02:00", + "updated_at": "2022-08-24T21:19:15.000+02:00", + "avatar_file_name": "Screenshot_2022-08-24-21-18-57-874_com.android.chrome.png", + "avatar_content_type": "image/png", + "avatar_file_size": 265757, + "avatar_updated_at": "2022-08-24T21:19:15.000+02:00", + "category": "beverages", + "stock": 4, + "calories": null, + "deleted": false + }, + { + "id": 135, + "name": "Delhaize Bio Maïswafels 120 g", + "price_cents": 110, + "created_at": "2018-09-26T17:23:12.000+02:00", + "updated_at": "2020-01-20T20:49:34.000+01:00", + "avatar_file_name": "9356454952990.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 68497, + "avatar_updated_at": "2020-01-20T20:49:33.000+01:00", + "category": "food", + "stock": 0, + "calories": 457, + "deleted": false + }, + { + "id": 136, + "name": "Delhaize Bio Rijstwafels 100 g", + "price_cents": 110, + "created_at": "2018-10-05T00:13:37.000+02:00", + "updated_at": "2020-01-20T20:49:35.000+01:00", + "avatar_file_name": "rijstwafels.png", + "avatar_content_type": "image/png", + "avatar_file_size": 677170, + "avatar_updated_at": "2020-01-20T20:49:34.000+01:00", + "category": "food", + "stock": 0, + "calories": 395, + "deleted": false + }, + { + "id": 207, + "name": "Delhaize Chevridou 150g geitenkaas", + "price_cents": 164, + "created_at": "2022-06-14T18:30:03.000+02:00", + "updated_at": "2022-06-14T18:30:03.000+02:00", + "avatar_file_name": "11012872405022.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 135646, + "avatar_updated_at": "2022-06-14T18:30:03.000+02:00", + "category": "food", + "stock": 0, + "calories": 152, + "deleted": false + }, + { + "id": 130, + "name": "Delhaize Chips Naturel 250 g", + "price_cents": 125, + "created_at": "2018-05-15T17:29:02.000+02:00", + "updated_at": "2020-03-05T13:45:41.000+01:00", + "avatar_file_name": "naturel.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 58924, + "avatar_updated_at": "2018-05-15T17:29:01.000+02:00", + "category": "food", + "stock": -7, + "calories": 0, + "deleted": false + }, + { + "id": 141, + "name": "Delhaize Chips paprika 250g", + "price_cents": 110, + "created_at": "2018-10-23T13:13:10.000+02:00", + "updated_at": "2020-10-01T19:32:05.000+02:00", + "avatar_file_name": "chipz.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 65708, + "avatar_updated_at": "2020-01-20T20:49:36.000+01:00", + "category": "food", + "stock": -8, + "calories": 1335, + "deleted": false + }, + { + "id": 132, + "name": "Delhaize Chips Paprika klein", + "price_cents": 35, + "created_at": "2018-08-20T21:20:01.000+02:00", + "updated_at": "2020-01-20T20:49:32.000+01:00", + "avatar_file_name": "9318885720094.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 67288, + "avatar_updated_at": "2020-01-20T20:49:32.000+01:00", + "category": "food", + "stock": -1, + "calories": null, + "deleted": false + }, + { + "id": 79, + "name": "Delhaize Double Chocolate Cookies", + "price_cents": 150, + "created_at": "2016-04-28T17:56:58.000+02:00", + "updated_at": "2020-01-20T20:49:18.000+01:00", + "avatar_file_name": "8847577907230.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 37839, + "avatar_updated_at": "2020-01-20T20:49:18.000+01:00", + "category": "food", + "stock": -2, + "calories": 1000, + "deleted": false + }, + { + "id": 172, + "name": "Delhaize frangipanes", + "price_cents": 37, + "created_at": "2019-12-09T16:32:27.000+01:00", + "updated_at": "2022-10-04T19:01:34.000+02:00", + "avatar_file_name": "frangipanes.jpeg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 366243, + "avatar_updated_at": "2020-01-20T20:49:51.000+01:00", + "category": "food", + "stock": -5, + "calories": 293, + "deleted": false + }, + { + "id": 187, + "name": "Delhaize frisco Giant vanilla/almond classic 120ml", + "price_cents": 77, + "created_at": "2021-09-07T21:20:47.000+02:00", + "updated_at": "2022-06-14T18:36:16.000+02:00", + "avatar_file_name": "giant.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 663248, + "avatar_updated_at": "2021-09-07T21:20:46.000+02:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 186, + "name": "Delhaize frisco Pralinella 70ml", + "price_cents": 32, + "created_at": "2021-09-07T21:18:06.000+02:00", + "updated_at": "2021-09-24T17:27:33.000+02:00", + "avatar_file_name": "pralinella.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 63790, + "avatar_updated_at": "2021-09-07T21:18:06.000+02:00", + "category": "food", + "stock": -30, + "calories": null, + "deleted": false + }, + { + "id": 212, + "name": "Delhaize fruitsap 1L", + "price_cents": 113, + "created_at": "2022-08-24T21:21:45.000+02:00", + "updated_at": "2022-08-24T21:21:45.000+02:00", + "avatar_file_name": "Screenshot_2022-08-24-21-21-08-109_com.android.chrome.png", + "avatar_content_type": "image/png", + "avatar_file_size": 264967, + "avatar_updated_at": "2022-08-24T21:21:44.000+02:00", + "category": "beverages", + "stock": 1, + "calories": null, + "deleted": false + }, + { + "id": 152, + "name": "Delhaize paprika 120g", + "price_cents": 85, + "created_at": "2019-02-07T15:25:39.000+01:00", + "updated_at": "2020-01-20T20:49:42.000+01:00", + "avatar_file_name": "chipz.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 842, + "avatar_updated_at": "2020-01-20T20:49:42.000+01:00", + "category": "food", + "stock": -1, + "calories": null, + "deleted": false + }, + { + "id": 189, + "name": "Delhaize paprika ribbel chips", + "price_cents": 99, + "created_at": "2021-09-22T16:41:06.000+02:00", + "updated_at": "2021-09-28T17:18:50.000+02:00", + "avatar_file_name": "10706039341086.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 153960, + "avatar_updated_at": "2021-09-22T16:41:03.000+02:00", + "category": "food", + "stock": -7, + "calories": 551, + "deleted": false + }, + { + "id": 95, + "name": "Delhaize Paprikasticks", + "price_cents": 112, + "created_at": "2016-10-12T12:34:02.000+02:00", + "updated_at": "2020-02-11T16:39:20.000+01:00", + "avatar_file_name": "8935714029598.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 39531, + "avatar_updated_at": "2020-01-20T20:49:22.000+01:00", + "category": "food", + "stock": -1, + "calories": null, + "deleted": false + }, + { + "id": 118, + "name": "Delhaize Pinda's", + "price_cents": 660, + "created_at": "2017-10-18T21:23:20.000+02:00", + "updated_at": "2020-01-20T20:49:28.000+01:00", + "avatar_file_name": "Screen_Shot_2017-10-18_at_21.22.49.png", + "avatar_content_type": "image/png", + "avatar_file_size": 184654, + "avatar_updated_at": "2020-01-20T20:49:28.000+01:00", + "category": "food", + "stock": 0, + "calories": 5535, + "deleted": false + }, + { + "id": 194, + "name": "Delhaize ribble chips zout 200g", + "price_cents": 99, + "created_at": "2022-02-25T15:15:35.000+01:00", + "updated_at": "2022-02-25T15:15:35.000+01:00", + "avatar_file_name": "chips.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 134782, + "avatar_updated_at": "2022-02-25T15:15:33.000+01:00", + "category": "food", + "stock": -2, + "calories": null, + "deleted": false + }, + { + "id": 116, + "name": "Delhaize Ribble Paprika 200 g", + "price_cents": 110, + "created_at": "2017-10-18T21:18:10.000+02:00", + "updated_at": "2020-02-27T14:34:50.000+01:00", + "avatar_file_name": "9168395599902.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 68887, + "avatar_updated_at": "2020-01-20T20:49:27.000+01:00", + "category": "food", + "stock": -4, + "calories": 1072, + "deleted": false + }, + { + "id": 115, + "name": "Delhaize Ribble Pepper & Salt 200 g", + "price_cents": 110, + "created_at": "2017-10-18T21:16:36.000+02:00", + "updated_at": "2021-08-25T19:49:44.000+02:00", + "avatar_file_name": "9167522889758.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 54836, + "avatar_updated_at": "2017-10-18T21:16:35.000+02:00", + "category": "food", + "stock": -28, + "calories": 1080, + "deleted": false + }, + { + "id": 111, + "name": "Delhaize Ribble Pickles 200 g", + "price_cents": 99, + "created_at": "2017-09-26T17:41:34.000+02:00", + "updated_at": "2022-03-14T16:05:58.000+01:00", + "avatar_file_name": "9167988916254.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 83763, + "avatar_updated_at": "2017-09-26T17:41:34.000+02:00", + "category": "food", + "stock": -5, + "calories": 1068, + "deleted": false + }, + { + "id": 129, + "name": "Delhaize Ribble Pickles 250 g", + "price_cents": 125, + "created_at": "2018-05-15T17:27:09.000+02:00", + "updated_at": "2020-01-20T20:49:31.000+01:00", + "avatar_file_name": "pickles.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 83763, + "avatar_updated_at": "2020-01-20T20:49:31.000+01:00", + "category": "food", + "stock": -2, + "calories": 0, + "deleted": false + }, + { + "id": 117, + "name": "Delhaize Ribble Zout", + "price_cents": 110, + "created_at": "2017-10-18T21:19:21.000+02:00", + "updated_at": "2020-03-04T15:04:05.000+01:00", + "avatar_file_name": "9167411609630.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 97250, + "avatar_updated_at": "2017-10-18T21:19:20.000+02:00", + "category": "food", + "stock": -8, + "calories": 1110, + "deleted": false + }, + { + "id": 76, + "name": "Delhaize spekken", + "price_cents": 135, + "created_at": "2016-04-28T17:40:17.000+02:00", + "updated_at": "2020-01-20T20:49:18.000+01:00", + "avatar_file_name": "8823125934110.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 56171, + "avatar_updated_at": "2020-01-20T20:49:18.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 106, + "name": "Delhaize VOLLEDIG PAK STROOPWAFELS", + "price_cents": 260, + "created_at": "2017-05-24T15:10:26.000+02:00", + "updated_at": "2020-01-20T20:49:25.000+01:00", + "avatar_file_name": "9167455518750.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 6805, + "avatar_updated_at": "2020-01-20T20:49:25.000+01:00", + "category": "food", + "stock": 0, + "calories": 99999, + "deleted": false + }, + { + "id": 22, + "name": "Dino", + "price_cents": 60, + "created_at": "2016-02-10T15:45:25.000+01:00", + "updated_at": "2020-01-20T20:49:01.000+01:00", + "avatar_file_name": "media_xll_5356951.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 32936, + "avatar_updated_at": "2020-01-20T20:49:01.000+01:00", + "category": "food", + "stock": -8, + "calories": 280, + "deleted": true + }, + { + "id": 102, + "name": "Doritos Nacho Cheese", + "price_cents": 215, + "created_at": "2017-05-24T14:49:35.000+02:00", + "updated_at": "2022-02-14T17:59:40.000+01:00", + "avatar_file_name": "9157350129694.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 76419, + "avatar_updated_at": "2020-01-20T20:49:23.000+01:00", + "category": "food", + "stock": -3, + "calories": null, + "deleted": false + }, + { + "id": 69, + "name": "Doritos Paprika", + "price_cents": 190, + "created_at": "2016-03-31T17:59:02.000+02:00", + "updated_at": "2020-01-20T20:49:17.000+01:00", + "avatar_file_name": "8959984173086.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 36788, + "avatar_updated_at": "2020-01-20T20:49:16.000+01:00", + "category": "food", + "stock": 0, + "calories": 850, + "deleted": false + }, + { + "id": 166, + "name": "Doritos Sweet chilli pepper", + "price_cents": 210, + "created_at": "2019-09-09T16:23:22.000+02:00", + "updated_at": "2022-06-14T18:42:31.000+02:00", + "avatar_file_name": "doritos_sweet_chilli.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 16146, + "avatar_updated_at": "2020-01-20T20:49:49.000+01:00", + "category": "food", + "stock": 0, + "calories": 42069, + "deleted": false + }, + { + "id": 245, + "name": "Duvel", + "price_cents": 160, + "created_at": "2023-12-07T16:28:24.000+01:00", + "updated_at": "2023-12-07T16:28:24.000+01:00", + "avatar_file_name": "duvel.jpeg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 4487, + "avatar_updated_at": "2023-12-07T16:28:24.000+01:00", + "category": "beverages", + "stock": 22, + "calories": null, + "deleted": false + }, + { + "id": 150, + "name": "Everyday Chips Paprika 200g", + "price_cents": 60, + "created_at": "2018-12-18T14:45:16.000+01:00", + "updated_at": "2020-01-20T20:49:41.000+01:00", + "avatar_file_name": "everyday_chips.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 103276, + "avatar_updated_at": "2020-01-20T20:49:41.000+01:00", + "category": "food", + "stock": 0, + "calories": 534, + "deleted": false + }, + { + "id": 149, + "name": "Everyday Chips Zout 200g", + "price_cents": 60, + "created_at": "2018-12-18T14:43:59.000+01:00", + "updated_at": "2020-01-20T20:49:41.000+01:00", + "avatar_file_name": "everyday_chips.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 112812, + "avatar_updated_at": "2020-01-20T20:49:41.000+01:00", + "category": "food", + "stock": 0, + "calories": 548, + "deleted": false + }, + { + "id": 5, + "name": "Fanta", + "price_cents": 60, + "created_at": "2016-02-10T14:30:36.000+01:00", + "updated_at": "2024-03-07T13:54:18.000+01:00", + "avatar_file_name": "fanta.png", + "avatar_content_type": "image/png", + "avatar_file_size": 201233, + "avatar_updated_at": "2021-10-06T19:11:06.000+02:00", + "category": "beverages", + "stock": 50, + "calories": 99, + "deleted": false + }, + { + "id": 177, + "name": "Fanta exotic", + "price_cents": 75, + "created_at": "2020-02-10T16:03:29.000+01:00", + "updated_at": "2023-02-16T21:00:11.000+01:00", + "avatar_file_name": "fanta_exotic.jpeg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 42622, + "avatar_updated_at": "2020-02-10T16:03:27.000+01:00", + "category": "beverages", + "stock": -17, + "calories": 86, + "deleted": false + }, + { + "id": 31, + "name": "Fanta Lemon 33cl", + "price_cents": 61, + "created_at": "2016-02-11T15:26:23.000+01:00", + "updated_at": "2023-09-11T17:50:57.000+02:00", + "avatar_file_name": "fanta.jpe", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 7007, + "avatar_updated_at": "2020-01-20T20:49:03.000+01:00", + "category": "beverages", + "stock": 1, + "calories": 106, + "deleted": false + }, + { + "id": 228, + "name": "Fanta strawberry & kiwi", + "price_cents": 60, + "created_at": "2023-05-10T12:44:19.000+02:00", + "updated_at": "2023-05-10T12:44:19.000+02:00", + "avatar_file_name": "16837154358014261858301532960121.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 7671172, + "avatar_updated_at": "2023-05-10T12:44:14.000+02:00", + "category": "beverages", + "stock": 4, + "calories": 139, + "deleted": false + }, + { + "id": 196, + "name": "Fourchette 33cl", + "price_cents": 350, + "created_at": "2022-03-19T13:34:41.000+01:00", + "updated_at": "2022-07-16T12:14:32.000+02:00", + "avatar_file_name": "fourchette_beer_75_cl_packshot.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 33451, + "avatar_updated_at": "2022-03-19T13:34:40.000+01:00", + "category": "beverages", + "stock": -2, + "calories": null, + "deleted": false + }, + { + "id": 120, + "name": "Frangipane", + "price_cents": 40, + "created_at": "2017-11-07T15:30:20.000+01:00", + "updated_at": "2024-02-01T16:14:44.000+01:00", + "avatar_file_name": "9286591938590.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 14107, + "avatar_updated_at": "2020-01-20T20:49:28.000+01:00", + "category": "food", + "stock": -35, + "calories": null, + "deleted": false + }, + { + "id": 183, + "name": "Frisco DDL mini giant", + "price_cents": 74, + "created_at": "2021-08-13T19:55:37.000+02:00", + "updated_at": "2021-08-27T20:54:55.000+02:00", + "avatar_file_name": "Screenshot_20210813-195449.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 151132, + "avatar_updated_at": "2021-08-13T19:55:37.000+02:00", + "category": "food", + "stock": 1, + "calories": 136, + "deleted": false + }, + { + "id": 138, + "name": "Fuze Tea Black Iced Tea 33 cl", + "price_cents": 55, + "created_at": "2018-10-05T01:27:52.000+02:00", + "updated_at": "2020-01-20T20:49:36.000+01:00", + "avatar_file_name": "fuzetea.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 141530, + "avatar_updated_at": "2020-01-20T20:49:35.000+01:00", + "category": "beverages", + "stock": -1, + "calories": 59, + "deleted": false + }, + { + "id": 185, + "name": "Fuze Tea groene thee en jasmijn 33cl", + "price_cents": 78, + "created_at": "2021-09-07T21:16:12.000+02:00", + "updated_at": "2021-10-01T16:10:20.000+02:00", + "avatar_file_name": "fuze.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 117229, + "avatar_updated_at": "2021-09-07T21:16:11.000+02:00", + "category": "beverages", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 142, + "name": "Gold Power GOLD", + "price_cents": 50, + "created_at": "2018-10-26T17:57:29.000+02:00", + "updated_at": "2021-09-06T17:32:39.000+02:00", + "avatar_file_name": "golden_power.png", + "avatar_content_type": "image/png", + "avatar_file_size": 67563, + "avatar_updated_at": "2021-09-06T17:32:39.000+02:00", + "category": "beverages", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 154, + "name": "Golden Power", + "price_cents": 50, + "created_at": "2019-02-07T15:47:34.000+01:00", + "updated_at": "2019-12-04T18:20:35.000+01:00", + "avatar_file_name": "energy_drink_normal_9354.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 16712, + "avatar_updated_at": "2019-02-07T15:47:32.000+01:00", + "category": "food", + "stock": -2, + "calories": null, + "deleted": false + }, + { + "id": 195, + "name": "Grany biscuit granen", + "price_cents": 30, + "created_at": "2022-03-14T16:04:39.000+01:00", + "updated_at": "2022-03-14T16:04:39.000+01:00", + "avatar_file_name": "grany.jpeg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 116489, + "avatar_updated_at": "2022-03-14T16:04:37.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 144, + "name": "Grills 40g", + "price_cents": 83, + "created_at": "2018-11-26T17:32:47.000+01:00", + "updated_at": "2024-02-01T16:09:09.000+01:00", + "avatar_file_name": "grills.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 236112, + "avatar_updated_at": "2018-11-26T17:32:45.000+01:00", + "category": "food", + "stock": -1, + "calories": null, + "deleted": false + }, + { + "id": 226, + "name": "Hannes", + "price_cents": 69, + "created_at": "2023-02-08T19:28:28.000+01:00", + "updated_at": "2023-04-17T02:18:15.000+02:00", + "avatar_file_name": "signal-2023-02-08-19-26-39-725.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 89476, + "avatar_updated_at": "2023-02-08T19:28:26.000+01:00", + "category": "other", + "stock": 1, + "calories": 150000, + "deleted": false + }, + { + "id": 42, + "name": "Harde snoepen", + "price_cents": 40, + "created_at": "2016-02-16T15:02:43.000+01:00", + "updated_at": "2020-01-20T20:49:06.000+01:00", + "avatar_file_name": "img_20160216_150129_1024.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 277920, + "avatar_updated_at": "2020-01-20T20:49:06.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": true + }, + { + "id": 188, + "name": "Hotcemel - instant chocomelk", + "price_cents": 66, + "created_at": "2021-09-22T16:35:27.000+02:00", + "updated_at": "2021-09-22T16:35:27.000+02:00", + "avatar_file_name": "9593894141982.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 150135, + "avatar_updated_at": "2021-09-22T16:35:25.000+02:00", + "category": "beverages", + "stock": 3, + "calories": 0, + "deleted": false + }, + { + "id": 204, + "name": "Ice Tea", + "price_cents": 75, + "created_at": "2022-06-02T17:28:49.000+02:00", + "updated_at": "2023-06-19T23:26:08.000+02:00", + "avatar_file_name": "ice_tea.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 214160, + "avatar_updated_at": "2022-06-02T17:28:48.000+02:00", + "category": "beverages", + "stock": 30, + "calories": null, + "deleted": true + }, + { + "id": 180, + "name": "Ice Tea 25 cl", + "price_cents": 60, + "created_at": "2020-10-12T19:09:42.000+02:00", + "updated_at": "2021-09-22T16:31:17.000+02:00", + "avatar_file_name": "IMG_20201012_185952.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 3596221, + "avatar_updated_at": "2020-10-12T19:09:38.000+02:00", + "category": "beverages", + "stock": 39, + "calories": 50, + "deleted": true + }, + { + "id": 199, + "name": "ice tea 25cl (geen barcode)", + "price_cents": 83, + "created_at": "2022-03-19T13:51:43.000+01:00", + "updated_at": "2022-10-17T22:22:06.000+02:00", + "avatar_file_name": "Lipton-Regular-25-cl-Fles.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 24204, + "avatar_updated_at": "2022-03-19T13:51:42.000+01:00", + "category": "beverages", + "stock": 162, + "calories": 51, + "deleted": false + }, + { + "id": 1, + "name": "Ice Tea 33 cl", + "price_cents": 66, + "created_at": "2016-02-04T18:00:49.000+01:00", + "updated_at": "2023-09-11T17:37:19.000+02:00", + "avatar_file_name": "icetea.jpeg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 8423, + "avatar_updated_at": "2016-02-04T18:00:49.000+01:00", + "category": "beverages", + "stock": -162, + "calories": 67, + "deleted": false + }, + { + "id": 110, + "name": "Ice Tea 37.5 cl", + "price_cents": 75, + "created_at": "2017-09-22T16:26:08.000+02:00", + "updated_at": "2021-09-22T16:31:36.000+02:00", + "avatar_file_name": "lipton-regular-500x500.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 51670, + "avatar_updated_at": "2017-09-22T16:26:07.000+02:00", + "category": "beverages", + "stock": 0, + "calories": 75, + "deleted": true + }, + { + "id": 206, + "name": "Ice Tea Green 33cl", + "price_cents": 64, + "created_at": "2022-06-02T17:37:14.000+02:00", + "updated_at": "2023-05-10T12:50:52.000+02:00", + "avatar_file_name": "Green.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 16057, + "avatar_updated_at": "2022-06-02T17:37:14.000+02:00", + "category": "beverages", + "stock": 3, + "calories": null, + "deleted": false + }, + { + "id": 249, + "name": "Ice Tea Sparkling ", + "price_cents": 66, + "created_at": "2024-02-15T12:02:04.000+01:00", + "updated_at": "2024-02-15T12:02:04.000+01:00", + "avatar_file_name": "ice.png", + "avatar_content_type": "image/png", + "avatar_file_size": 1394418, + "avatar_updated_at": "2024-02-15T12:02:00.000+01:00", + "category": "beverages", + "stock": 7, + "calories": 24, + "deleted": false + }, + { + "id": 221, + "name": "Ice Tea Zero 33cl", + "price_cents": 66, + "created_at": "2022-11-15T16:17:21.000+01:00", + "updated_at": "2023-09-11T17:44:25.000+02:00", + "avatar_file_name": "lipton_green_zero_ice_tea_33cl_blikjes_tray-800x800-385934426", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 107740, + "avatar_updated_at": "2022-11-15T16:17:21.000+01:00", + "category": "beverages", + "stock": -9, + "calories": 6, + "deleted": false + }, + { + "id": 8, + "name": "Jupiler 25 cl", + "price_cents": 56, + "created_at": "2016-02-10T15:01:15.000+01:00", + "updated_at": "2023-11-13T14:16:38.000+01:00", + "avatar_file_name": "beer_8042.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 11687, + "avatar_updated_at": "2016-02-10T15:01:15.000+01:00", + "category": "beverages", + "stock": 18, + "calories": 108, + "deleted": false + }, + { + "id": 127, + "name": "Jupiler 33 cl", + "price_cents": 90, + "created_at": "2018-05-03T16:05:44.000+02:00", + "updated_at": "2023-12-07T16:28:46.000+01:00", + "avatar_file_name": "jupiler-fles-33cl_1.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 18513, + "avatar_updated_at": "2020-01-20T20:49:30.000+01:00", + "category": "beverages", + "stock": 15, + "calories": 143, + "deleted": false + }, + { + "id": 124, + "name": "Jupiler blik", + "price_cents": 200, + "created_at": "2018-03-07T16:11:40.000+01:00", + "updated_at": "2023-06-29T21:36:20.000+02:00", + "avatar_file_name": "58e56cff99546e0626f397e33e6885db.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 34826, + "avatar_updated_at": "2020-01-20T20:49:29.000+01:00", + "category": "beverages", + "stock": 4, + "calories": 43, + "deleted": false + }, + { + "id": 202, + "name": "Karmeliet 33cl", + "price_cents": 180, + "created_at": "2022-05-28T15:22:38.000+02:00", + "updated_at": "2022-05-28T15:22:38.000+02:00", + "avatar_file_name": "karmeliet.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 20759, + "avatar_updated_at": "2022-05-28T15:22:38.000+02:00", + "category": "beverages", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 10, + "name": "Kinder Bueno", + "price_cents": 60, + "created_at": "2016-02-10T15:13:26.000+01:00", + "updated_at": "2020-02-10T14:05:24.000+01:00", + "avatar_file_name": "Kinder_Bueno.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 13351, + "avatar_updated_at": "2016-02-10T15:13:26.000+01:00", + "category": "food", + "stock": -24, + "calories": 244, + "deleted": false + }, + { + "id": 9, + "name": "Kinder Delice", + "price_cents": 40, + "created_at": "2016-02-10T15:06:23.000+01:00", + "updated_at": "2020-01-20T20:48:58.000+01:00", + "avatar_file_name": "8847259533342.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 68779, + "avatar_updated_at": "2020-01-20T20:48:58.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 75, + "name": "Kinder Maxi King", + "price_cents": 50, + "created_at": "2016-04-28T17:37:14.000+02:00", + "updated_at": "2020-01-20T20:49:18.000+01:00", + "avatar_file_name": "ferrero-kinder-maxi-king-35g-500x500.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 42193, + "avatar_updated_at": "2020-01-20T20:49:17.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 65, + "name": "Kinder Melkschijfje", + "price_cents": 45, + "created_at": "2016-03-31T17:39:35.000+02:00", + "updated_at": "2020-01-20T20:49:16.000+01:00", + "avatar_file_name": "melkschifj.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 40240, + "avatar_updated_at": "2020-01-20T20:49:16.000+01:00", + "category": "food", + "stock": 0, + "calories": 120, + "deleted": false + }, + { + "id": 26, + "name": "Knoppers", + "price_cents": 30, + "created_at": "2016-02-10T16:01:52.000+01:00", + "updated_at": "2020-01-20T20:49:02.000+01:00", + "avatar_file_name": "tumblr_lhi1be7q111qf9kqj.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 106314, + "avatar_updated_at": "2020-01-20T20:49:02.000+01:00", + "category": "food", + "stock": 0, + "calories": 140, + "deleted": false + }, + { + "id": 231, + "name": "Knorr Pasta Snack Arrabiata", + "price_cents": 236, + "created_at": "2023-09-11T17:57:44.000+02:00", + "updated_at": "2023-09-11T17:57:44.000+02:00", + "avatar_file_name": "download.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 10344, + "avatar_updated_at": "2023-09-11T17:57:44.000+02:00", + "category": "food", + "stock": 0, + "calories": 238, + "deleted": false + }, + { + "id": 236, + "name": "Knorr Pasta Snack Bolognese XXL", + "price_cents": 247, + "created_at": "2023-09-11T18:10:55.000+02:00", + "updated_at": "2023-09-11T18:10:55.000+02:00", + "avatar_file_name": "download.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 6889, + "avatar_updated_at": "2023-09-11T18:10:55.000+02:00", + "category": "food", + "stock": 1, + "calories": 340, + "deleted": false + }, + { + "id": 235, + "name": "Knorr Pasta Snack Carbonara XXL", + "price_cents": 296, + "created_at": "2023-09-11T18:09:28.000+02:00", + "updated_at": "2023-09-11T18:09:28.000+02:00", + "avatar_file_name": "download.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 8224, + "avatar_updated_at": "2023-09-11T18:09:28.000+02:00", + "category": "food", + "stock": 2, + "calories": 408, + "deleted": false + }, + { + "id": 234, + "name": "Knorr Pasta Snack Creamy Pesto", + "price_cents": 236, + "created_at": "2023-09-11T18:07:57.000+02:00", + "updated_at": "2023-09-11T18:07:57.000+02:00", + "avatar_file_name": "download.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 8965, + "avatar_updated_at": "2023-09-11T18:07:57.000+02:00", + "category": "food", + "stock": 1, + "calories": 263, + "deleted": false + }, + { + "id": 232, + "name": "Knorr Pasta Snack Mac & Cheese", + "price_cents": 231, + "created_at": "2023-09-11T18:03:19.000+02:00", + "updated_at": "2023-09-12T01:48:18.000+02:00", + "avatar_file_name": "download.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 6693, + "avatar_updated_at": "2023-09-11T18:03:19.000+02:00", + "category": "food", + "stock": 2, + "calories": 244, + "deleted": false + }, + { + "id": 233, + "name": "Knorr Pasta Snack Tomaat Mozarella", + "price_cents": 236, + "created_at": "2023-09-11T18:06:15.000+02:00", + "updated_at": "2023-09-11T18:06:15.000+02:00", + "avatar_file_name": "download.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 10507, + "avatar_updated_at": "2023-09-11T18:06:15.000+02:00", + "category": "food", + "stock": 1, + "calories": 260, + "deleted": false + }, + { + "id": 37, + "name": "Koek1", + "price_cents": 30, + "created_at": "2016-02-16T14:49:29.000+01:00", + "updated_at": "2020-01-20T20:49:04.000+01:00", + "avatar_file_name": "img_20160216_144434_1024.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 172542, + "avatar_updated_at": "2020-01-20T20:49:04.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": true + }, + { + "id": 38, + "name": "Koek2", + "price_cents": 30, + "created_at": "2016-02-16T14:50:28.000+01:00", + "updated_at": "2020-01-20T20:49:05.000+01:00", + "avatar_file_name": "img_20160216_144542_1024.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 185753, + "avatar_updated_at": "2020-01-20T20:49:04.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": true + }, + { + "id": 39, + "name": "Koek3", + "price_cents": 40, + "created_at": "2016-02-16T14:52:04.000+01:00", + "updated_at": "2020-01-20T20:49:05.000+01:00", + "avatar_file_name": "img_20160216_144520_1024.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 194037, + "avatar_updated_at": "2020-01-20T20:49:05.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": true + }, + { + "id": 109, + "name": "koffie", + "price_cents": 20, + "created_at": "2017-05-24T15:15:23.000+02:00", + "updated_at": "2020-01-20T20:49:25.000+01:00", + "avatar_file_name": "9156517232670.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 13016, + "avatar_updated_at": "2020-01-20T20:49:25.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 16, + "name": "Krakelingen", + "price_cents": 125, + "created_at": "2016-02-10T15:27:30.000+01:00", + "updated_at": "2020-01-20T20:49:00.000+01:00", + "avatar_file_name": "8942305181726.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 232748, + "avatar_updated_at": "2020-01-20T20:48:59.000+01:00", + "category": "food", + "stock": 0, + "calories": 1900, + "deleted": true + }, + { + "id": 17, + "name": "Kriek", + "price_cents": 125, + "created_at": "2016-02-10T15:29:32.000+01:00", + "updated_at": "2020-01-20T20:49:00.000+01:00", + "avatar_file_name": "lindemans-kriek-bier.png", + "avatar_content_type": "image/png", + "avatar_file_size": 264112, + "avatar_updated_at": "2020-01-20T20:49:00.000+01:00", + "category": "beverages", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 2, + "name": "Kroepoek", + "price_cents": 112, + "created_at": "2016-02-10T14:22:50.000+01:00", + "updated_at": "2020-01-20T20:48:56.000+01:00", + "avatar_file_name": "8868004757534.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 36345, + "avatar_updated_at": "2020-01-20T20:48:56.000+01:00", + "category": "food", + "stock": 0, + "calories": 406, + "deleted": false + }, + { + "id": 203, + "name": "La Chouffe Blond 33cl", + "price_cents": 187, + "created_at": "2022-05-28T15:24:26.000+02:00", + "updated_at": "2022-05-28T15:24:26.000+02:00", + "avatar_file_name": "chouffe.png", + "avatar_content_type": "image/png", + "avatar_file_size": 449743, + "avatar_updated_at": "2022-05-28T15:24:26.000+02:00", + "category": "beverages", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 96, + "name": "Lay's Bolognese XL", + "price_cents": 204, + "created_at": "2016-10-14T18:43:53.000+02:00", + "updated_at": "2020-01-20T20:49:22.000+01:00", + "avatar_file_name": "8823137075230.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 47447, + "avatar_updated_at": "2020-01-20T20:49:22.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 60, + "name": "Lay's Bugles Nacho Cheese 125 g", + "price_cents": 150, + "created_at": "2016-03-15T14:07:02.000+01:00", + "updated_at": "2020-02-24T16:03:46.000+01:00", + "avatar_file_name": "foto_1_smithsnachocheese_1.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 104685, + "avatar_updated_at": "2020-01-20T20:49:13.000+01:00", + "category": "food", + "stock": -6, + "calories": 673, + "deleted": false + }, + { + "id": 137, + "name": "Lay's Classic Burger 250/225 g", + "price_cents": 175, + "created_at": "2018-10-05T01:13:19.000+02:00", + "updated_at": "2021-08-17T18:29:56.000+02:00", + "avatar_file_name": "classicburger.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 48376, + "avatar_updated_at": "2020-01-20T20:49:35.000+01:00", + "category": "food", + "stock": -1, + "calories": 1325, + "deleted": false + }, + { + "id": 82, + "name": "Lay's Deep Ridged BBQ", + "price_cents": 165, + "created_at": "2016-05-11T20:26:55.000+02:00", + "updated_at": "2020-01-20T20:49:19.000+01:00", + "avatar_file_name": "8891598405662.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 45252, + "avatar_updated_at": "2020-01-20T20:49:19.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 57, + "name": "Lay's Deep Ridged Sweet Chilli", + "price_cents": 160, + "created_at": "2016-03-15T14:04:48.000+01:00", + "updated_at": "2020-01-20T20:49:12.000+01:00", + "avatar_file_name": "AHI_434d50313033343436_1_LowRes_JPG.JPG", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 151651, + "avatar_updated_at": "2020-01-20T20:49:12.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 78, + "name": "Lay's Grills 125 g", + "price_cents": 138, + "created_at": "2016-04-28T17:53:13.000+02:00", + "updated_at": "2021-10-06T18:35:17.000+02:00", + "avatar_file_name": "8969580675102.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 33686, + "avatar_updated_at": "2020-01-20T20:49:18.000+01:00", + "category": "food", + "stock": 0, + "calories": 620, + "deleted": false + }, + { + "id": 193, + "name": "Lay's hot chicken wings", + "price_cents": 193, + "created_at": "2022-02-15T16:18:37.000+01:00", + "updated_at": "2022-02-15T16:18:37.000+01:00", + "avatar_file_name": "lay_hot.JPG", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 151445, + "avatar_updated_at": "2022-02-15T16:18:36.000+01:00", + "category": "food", + "stock": 2, + "calories": null, + "deleted": false + }, + { + "id": 30, + "name": "Lay's Ketchup", + "price_cents": 82, + "created_at": "2016-02-11T15:19:26.000+01:00", + "updated_at": "2023-11-13T14:52:14.000+01:00", + "avatar_file_name": "Lays-Chips-Heinz-Tomaten-Ketchup-18-x-200g-Karton-Heinz-Tomato-Ketchup--532601188--large.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 9992, + "avatar_updated_at": "2020-01-20T20:49:02.000+01:00", + "category": "food", + "stock": 4, + "calories": 238, + "deleted": false + }, + { + "id": 77, + "name": "Lay's Ketchup 250 g", + "price_cents": 175, + "created_at": "2016-04-28T17:44:58.000+02:00", + "updated_at": "2020-02-19T17:17:55.000+01:00", + "avatar_file_name": "8822764503070.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 39443, + "avatar_updated_at": "2016-04-28T17:44:58.000+02:00", + "category": "food", + "stock": -6, + "calories": 1320, + "deleted": false + }, + { + "id": 215, + "name": "Lay's max salt & pepper 185g", + "price_cents": 208, + "created_at": "2022-10-04T18:40:04.000+02:00", + "updated_at": "2022-10-04T18:40:04.000+02:00", + "avatar_file_name": "Lays-Max-Salt-Black-Pepper_693x.png", + "avatar_content_type": "image/png", + "avatar_file_size": 76956, + "avatar_updated_at": "2022-10-04T18:40:04.000+02:00", + "category": "food", + "stock": 0, + "calories": 962, + "deleted": false + }, + { + "id": 29, + "name": "Lay's Natuur", + "price_cents": 74, + "created_at": "2016-02-11T15:14:58.000+01:00", + "updated_at": "2024-02-01T16:10:31.000+01:00", + "avatar_file_name": "154919_2.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 9734, + "avatar_updated_at": "2020-01-20T20:49:02.000+01:00", + "category": "food", + "stock": 2, + "calories": 244, + "deleted": false + }, + { + "id": 48, + "name": "Lay's Natuur groot", + "price_cents": 160, + "created_at": "2016-02-25T17:24:03.000+01:00", + "updated_at": "2020-01-20T20:49:08.000+01:00", + "avatar_file_name": "8915625541662.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 35267, + "avatar_updated_at": "2020-01-20T20:49:08.000+01:00", + "category": "food", + "stock": 0, + "calories": 1352, + "deleted": false + }, + { + "id": 81, + "name": "Lay's Oven Baked BBQ", + "price_cents": 210, + "created_at": "2016-05-11T20:24:45.000+02:00", + "updated_at": "2022-06-14T18:41:26.000+02:00", + "avatar_file_name": "8833894219806.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 49398, + "avatar_updated_at": "2020-01-20T20:49:18.000+01:00", + "category": "food", + "stock": -2, + "calories": null, + "deleted": false + }, + { + "id": 104, + "name": "Lay's Oven Baked Mediterrean Herbs", + "price_cents": 197, + "created_at": "2017-05-24T14:51:26.000+02:00", + "updated_at": "2023-11-13T14:24:35.000+01:00", + "avatar_file_name": "9199822635038.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 14602, + "avatar_updated_at": "2017-05-24T14:51:26.000+02:00", + "category": "food", + "stock": 8, + "calories": null, + "deleted": false + }, + { + "id": 61, + "name": "Lay's Oven Baked Naturel 150 g", + "price_cents": 197, + "created_at": "2016-03-15T14:07:50.000+01:00", + "updated_at": "2022-10-04T18:23:13.000+02:00", + "avatar_file_name": "AHI_43545239373230313238_1_LowRes_JPG.JPG", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 102801, + "avatar_updated_at": "2021-09-22T16:43:04.000+02:00", + "category": "food", + "stock": 0, + "calories": 439, + "deleted": false + }, + { + "id": 83, + "name": "Lay's Oven Baked Olive Oil & Herbs", + "price_cents": 160, + "created_at": "2016-05-11T20:27:20.000+02:00", + "updated_at": "2020-01-20T20:49:19.000+01:00", + "avatar_file_name": "8854918496286.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 48617, + "avatar_updated_at": "2020-01-20T20:49:19.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 49, + "name": "Lay's oven baked paprika", + "price_cents": 197, + "created_at": "2016-03-15T13:54:45.000+01:00", + "updated_at": "2023-11-13T14:25:01.000+01:00", + "avatar_file_name": "AHI_43545239373230313232_1_LowRes_JPG.JPG", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 116952, + "avatar_updated_at": "2021-09-22T16:44:16.000+02:00", + "category": "food", + "stock": 6, + "calories": null, + "deleted": false + }, + { + "id": 143, + "name": "Lay's Oven Fusions Spicy Tomato & Herbs", + "price_cents": 140, + "created_at": "2018-11-13T22:52:27.000+01:00", + "updated_at": "2020-01-20T20:49:38.000+01:00", + "avatar_file_name": "laysspicytomatoandherbs.png", + "avatar_content_type": "image/png", + "avatar_file_size": 175686, + "avatar_updated_at": "2020-01-20T20:49:38.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 6, + "name": "Lay's Paprika", + "price_cents": 76, + "created_at": "2016-02-10T14:35:24.000+01:00", + "updated_at": "2023-10-16T13:43:17.000+02:00", + "avatar_file_name": "asset-394829.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 226738, + "avatar_updated_at": "2020-01-20T20:48:57.000+01:00", + "category": "food", + "stock": -18, + "calories": 239, + "deleted": false + }, + { + "id": 51, + "name": "Lay's Paprika 120g", + "price_cents": 127, + "created_at": "2016-03-15T13:57:50.000+01:00", + "updated_at": "2021-10-06T18:38:03.000+02:00", + "avatar_file_name": "website_pictures_from_michelle_002.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 33281, + "avatar_updated_at": "2020-01-20T20:49:08.000+01:00", + "category": "food", + "stock": 2, + "calories": 538, + "deleted": false + }, + { + "id": 55, + "name": "Lay's Paprika XL", + "price_cents": 160, + "created_at": "2016-03-15T14:01:21.000+01:00", + "updated_at": "2020-01-20T20:49:12.000+01:00", + "avatar_file_name": "paprika_xl.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 45327, + "avatar_updated_at": "2020-01-20T20:49:11.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 28, + "name": "Lay's Pickles", + "price_cents": 83, + "created_at": "2016-02-11T15:09:14.000+01:00", + "updated_at": "2024-02-01T16:09:49.000+01:00", + "avatar_file_name": "8822911631390.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 40059, + "avatar_updated_at": "2020-01-20T20:49:02.000+01:00", + "category": "food", + "stock": -1, + "calories": 239, + "deleted": false + }, + { + "id": 70, + "name": "Lay's Pickles XL", + "price_cents": 175, + "created_at": "2016-03-31T18:02:48.000+02:00", + "updated_at": "2020-01-20T20:49:17.000+01:00", + "avatar_file_name": "8931354509342.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 36955, + "avatar_updated_at": "2020-01-20T20:49:17.000+01:00", + "category": "food", + "stock": 0, + "calories": 1330, + "deleted": false + }, + { + "id": 32, + "name": "Lay's Salt 'n Pepper", + "price_cents": 82, + "created_at": "2016-02-11T15:27:48.000+01:00", + "updated_at": "2023-10-16T13:43:50.000+02:00", + "avatar_file_name": "img_20160211_152546_1024.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 245106, + "avatar_updated_at": "2020-01-20T20:49:03.000+01:00", + "category": "food", + "stock": -83, + "calories": 234, + "deleted": false + }, + { + "id": 94, + "name": "Lay's Sensations Thai", + "price_cents": 160, + "created_at": "2016-10-12T11:35:49.000+02:00", + "updated_at": "2020-01-20T20:49:22.000+01:00", + "avatar_file_name": "8969616392222.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 34517, + "avatar_updated_at": "2020-01-20T20:49:22.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 53, + "name": "Lay's Super Naturel 200g", + "price_cents": 145, + "created_at": "2016-03-15T14:00:00.000+01:00", + "updated_at": "2022-03-28T18:01:42.000+02:00", + "avatar_file_name": "8710398169907_-_lay_s_superchips_naturel_(215g).jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 189124, + "avatar_updated_at": "2020-01-20T20:49:09.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 201, + "name": "Lay's super naturel 250g", + "price_cents": 190, + "created_at": "2022-03-28T18:00:41.000+02:00", + "updated_at": "2022-03-28T18:01:58.000+02:00", + "avatar_file_name": "asset-2473498.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 46276, + "avatar_updated_at": "2022-03-28T18:00:40.000+02:00", + "category": "food", + "stock": -1, + "calories": null, + "deleted": false + }, + { + "id": 71, + "name": "Lay's Super Paprika XL", + "price_cents": 165, + "created_at": "2016-03-31T18:06:02.000+02:00", + "updated_at": "2020-01-20T20:49:17.000+01:00", + "avatar_file_name": "8930095136798.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 43427, + "avatar_updated_at": "2020-01-20T20:49:17.000+01:00", + "category": "food", + "stock": -1, + "calories": 1060, + "deleted": false + }, + { + "id": 54, + "name": "Lay's Super Pickles", + "price_cents": 165, + "created_at": "2016-03-15T14:00:38.000+01:00", + "updated_at": "2020-01-20T20:49:11.000+01:00", + "avatar_file_name": "P1010296.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 2407801, + "avatar_updated_at": "2020-01-20T20:49:09.000+01:00", + "category": "food", + "stock": -1, + "calories": null, + "deleted": false + }, + { + "id": 52, + "name": "Lay's Super Salt 'n Pepper", + "price_cents": 165, + "created_at": "2016-03-15T13:59:19.000+01:00", + "updated_at": "2021-07-12T14:29:06.000+02:00", + "avatar_file_name": "buggles.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 55435, + "avatar_updated_at": "2020-01-20T20:49:08.000+01:00", + "category": "food", + "stock": -3, + "calories": null, + "deleted": false + }, + { + "id": 101, + "name": "Lay's Zout 45g", + "price_cents": 76, + "created_at": "2017-03-06T14:41:11.000+01:00", + "updated_at": "2023-10-16T13:37:55.000+02:00", + "avatar_file_name": "catalog-1.ashx.jpeg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 40597, + "avatar_updated_at": "2020-01-20T20:49:23.000+01:00", + "category": "food", + "stock": 19, + "calories": 530, + "deleted": false + }, + { + "id": 148, + "name": "Lays Bugles Nacho Cheese 160g", + "price_cents": 145, + "created_at": "2018-12-18T14:42:15.000+01:00", + "updated_at": "2020-01-20T20:49:41.000+01:00", + "avatar_file_name": "lays_bugles_nacho_cheese.jpeg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 20376, + "avatar_updated_at": "2020-01-20T20:49:40.000+01:00", + "category": "food", + "stock": 0, + "calories": 538, + "deleted": false + }, + { + "id": 208, + "name": "Lays bugles naturel 125g", + "price_cents": 186, + "created_at": "2022-06-14T18:39:12.000+02:00", + "updated_at": "2022-10-04T18:37:52.000+02:00", + "avatar_file_name": "22-06-14_18_38_52.png", + "avatar_content_type": "image/png", + "avatar_file_size": 280394, + "avatar_updated_at": "2022-06-14T18:39:12.000+02:00", + "category": "food", + "stock": 0, + "calories": 649, + "deleted": false + }, + { + "id": 181, + "name": "Lays bugles roasted paprika", + "price_cents": 206, + "created_at": "2021-08-11T16:31:42.000+02:00", + "updated_at": "2021-08-17T18:29:56.000+02:00", + "avatar_file_name": "lays_bugles.jpeg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 122888, + "avatar_updated_at": "2021-08-11T16:31:41.000+02:00", + "category": "food", + "stock": -2, + "calories": 69, + "deleted": false + }, + { + "id": 190, + "name": "Lays strong jalapeno and cheese", + "price_cents": 182, + "created_at": "2021-10-06T18:20:07.000+02:00", + "updated_at": "2021-10-06T18:20:07.000+02:00", + "avatar_file_name": "lays.JPG", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 153574, + "avatar_updated_at": "2021-10-06T18:20:06.000+02:00", + "category": "food", + "stock": 0, + "calories": 531, + "deleted": false + }, + { + "id": 97, + "name": "Leo", + "price_cents": 45, + "created_at": "2016-10-26T21:31:07.000+02:00", + "updated_at": "2020-03-01T17:08:26.000+01:00", + "avatar_file_name": "leo.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 61959, + "avatar_updated_at": "2020-01-20T20:49:22.000+01:00", + "category": "food", + "stock": -20, + "calories": null, + "deleted": false + }, + { + "id": 20, + "name": "Lion", + "price_cents": 45, + "created_at": "2016-02-10T15:42:04.000+01:00", + "updated_at": "2020-01-20T20:49:01.000+01:00", + "avatar_file_name": "Lion-Bar-Wrapper-Small.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 136904, + "avatar_updated_at": "2020-01-20T20:49:01.000+01:00", + "category": "food", + "stock": 0, + "calories": 200, + "deleted": false + }, + { + "id": 121, + "name": "Lion Groot", + "price_cents": 65, + "created_at": "2017-11-07T15:31:57.000+01:00", + "updated_at": "2020-01-20T20:49:29.000+01:00", + "avatar_file_name": "9157823987742.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 6204, + "avatar_updated_at": "2020-01-20T20:49:29.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 140, + "name": "Lipton groene thee 1 zakje", + "price_cents": 20, + "created_at": "2018-10-05T01:33:53.000+02:00", + "updated_at": "2020-01-20T20:49:36.000+01:00", + "avatar_file_name": "greentea.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 50634, + "avatar_updated_at": "2020-01-20T20:49:36.000+01:00", + "category": "food", + "stock": 0, + "calories": 1, + "deleted": true + }, + { + "id": 179, + "name": "Lipton Mango & Passionfruit", + "price_cents": 80, + "created_at": "2020-02-20T20:05:13.000+01:00", + "updated_at": "2020-02-20T20:45:22.000+01:00", + "avatar_file_name": "IMG_20200220_200129.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 1023407, + "avatar_updated_at": "2020-02-20T20:04:49.000+01:00", + "category": "beverages", + "stock": 1, + "calories": 63, + "deleted": false + }, + { + "id": 139, + "name": "Lipton Yellow Label zwarte thee 1 zakje", + "price_cents": 5, + "created_at": "2018-10-05T01:31:14.000+02:00", + "updated_at": "2020-01-20T20:49:36.000+01:00", + "avatar_file_name": "yellowlabel.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 127743, + "avatar_updated_at": "2020-01-20T20:49:36.000+01:00", + "category": "beverages", + "stock": 0, + "calories": 1, + "deleted": true + }, + { + "id": 113, + "name": "Lotus Dinosaurus *", + "price_cents": 50, + "created_at": "2017-10-18T21:05:50.000+02:00", + "updated_at": "2022-12-08T16:54:12.000+01:00", + "avatar_file_name": "763.jpeg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 51713, + "avatar_updated_at": "2020-01-20T20:49:26.000+01:00", + "category": "food", + "stock": -74, + "calories": 282, + "deleted": false + }, + { + "id": 112, + "name": "Lotus Dinosaurus zwart 43 g", + "price_cents": 45, + "created_at": "2017-10-18T21:03:54.000+02:00", + "updated_at": "2022-12-08T16:53:54.000+01:00", + "avatar_file_name": "view.jpeg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 49232, + "avatar_updated_at": "2017-10-18T21:03:54.000+02:00", + "category": "food", + "stock": -2, + "calories": 126, + "deleted": true + }, + { + "id": 247, + "name": "lotus donut cake", + "price_cents": 60, + "created_at": "2024-02-01T16:16:47.000+01:00", + "updated_at": "2024-02-01T16:16:47.000+01:00", + "avatar_file_name": "lotus_donut.jpeg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 7920, + "avatar_updated_at": "2024-02-01T16:16:47.000+01:00", + "category": "food", + "stock": -7, + "calories": null, + "deleted": false + }, + { + "id": 248, + "name": "lotus madeleine ", + "price_cents": 20, + "created_at": "2024-02-01T16:18:42.000+01:00", + "updated_at": "2024-02-01T16:18:42.000+01:00", + "avatar_file_name": "lotus_madeleine.jpeg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 7275, + "avatar_updated_at": "2024-02-01T16:18:42.000+01:00", + "category": "food", + "stock": -27, + "calories": null, + "deleted": false + }, + { + "id": 246, + "name": "lotus zebra", + "price_cents": 60, + "created_at": "2024-02-01T16:13:59.000+01:00", + "updated_at": "2024-02-01T16:13:59.000+01:00", + "avatar_file_name": "lotus_zebra.png", + "avatar_content_type": "image/png", + "avatar_file_size": 47671, + "avatar_updated_at": "2024-02-01T16:13:59.000+01:00", + "category": "food", + "stock": -4, + "calories": null, + "deleted": false + }, + { + "id": 18, + "name": "M&M's Chocolate 45 g", + "price_cents": 89, + "created_at": "2016-02-10T15:33:54.000+01:00", + "updated_at": "2022-03-14T16:02:35.000+01:00", + "avatar_file_name": "M_Ms-Wrapper-Small.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 59355, + "avatar_updated_at": "2016-02-10T15:33:54.000+01:00", + "category": "food", + "stock": 1, + "calories": 216, + "deleted": false + }, + { + "id": 19, + "name": "M&M's Peanuts 45 g", + "price_cents": 89, + "created_at": "2016-02-10T15:39:53.000+01:00", + "updated_at": "2022-03-14T16:02:45.000+01:00", + "avatar_file_name": "2.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 4245, + "avatar_updated_at": "2016-02-10T15:39:53.000+01:00", + "category": "food", + "stock": -8, + "calories": 230, + "deleted": false + }, + { + "id": 114, + "name": "Maes 25 cl", + "price_cents": 55, + "created_at": "2017-10-18T21:13:26.000+02:00", + "updated_at": "2020-01-20T20:49:27.000+01:00", + "avatar_file_name": "maes.png", + "avatar_content_type": "image/png", + "avatar_file_size": 76832, + "avatar_updated_at": "2020-01-20T20:49:26.000+01:00", + "category": "beverages", + "stock": 0, + "calories": 10, + "deleted": false + }, + { + "id": 63, + "name": "Mars", + "price_cents": 35, + "created_at": "2016-03-31T17:04:35.000+02:00", + "updated_at": "2021-07-27T02:02:22.000+02:00", + "avatar_file_name": "8897402208286.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 78292, + "avatar_updated_at": "2016-03-31T17:04:34.000+02:00", + "category": "food", + "stock": -19, + "calories": 200, + "deleted": false + }, + { + "id": 91, + "name": "Melk", + "price_cents": 45, + "created_at": "2016-08-16T21:51:59.000+02:00", + "updated_at": "2020-01-20T20:49:22.000+01:00", + "avatar_file_name": "8821646065694.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 22763, + "avatar_updated_at": "2020-01-20T20:49:21.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 153, + "name": "Melkchocolade colruyt", + "price_cents": 100, + "created_at": "2019-02-07T15:40:43.000+01:00", + "updated_at": "2020-01-20T20:49:42.000+01:00", + "avatar_file_name": "asset-1213059.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 109954, + "avatar_updated_at": "2020-01-20T20:49:42.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 84, + "name": "Mikado King Choco", + "price_cents": 200, + "created_at": "2016-08-12T14:06:45.000+02:00", + "updated_at": "2020-01-20T20:49:20.000+01:00", + "avatar_file_name": "7622300743017.png", + "avatar_content_type": "image/png", + "avatar_file_size": 41873, + "avatar_updated_at": "2020-01-20T20:49:19.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 45, + "name": "Mikado Melk", + "price_cents": 155, + "created_at": "2016-02-25T16:12:39.000+01:00", + "updated_at": "2020-01-20T20:49:07.000+01:00", + "avatar_file_name": "8909385236510.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 34347, + "avatar_updated_at": "2020-01-20T20:49:07.000+01:00", + "category": "food", + "stock": 0, + "calories": 360, + "deleted": false + }, + { + "id": 68, + "name": "Mikado puur", + "price_cents": 155, + "created_at": "2016-03-31T17:47:47.000+02:00", + "updated_at": "2020-01-20T20:49:16.000+01:00", + "avatar_file_name": "8823404265502.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 34133, + "avatar_updated_at": "2020-01-20T20:49:16.000+01:00", + "category": "food", + "stock": 0, + "calories": 348, + "deleted": false + }, + { + "id": 85, + "name": "Mikado witte chocolade", + "price_cents": 215, + "created_at": "2016-08-12T14:07:33.000+02:00", + "updated_at": "2020-01-20T20:49:20.000+01:00", + "avatar_file_name": "261546011_0_640x640.png", + "avatar_content_type": "image/png", + "avatar_file_size": 43222, + "avatar_updated_at": "2020-01-20T20:49:20.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 126, + "name": "Monster Energy", + "price_cents": 155, + "created_at": "2018-04-27T12:48:00.000+02:00", + "updated_at": "2022-02-14T17:57:49.000+01:00", + "avatar_file_name": "nietKut.png", + "avatar_content_type": "image/png", + "avatar_file_size": 121710, + "avatar_updated_at": "2020-01-20T20:49:30.000+01:00", + "category": "beverages", + "stock": 4, + "calories": 236, + "deleted": false + }, + { + "id": 125, + "name": "Monster Energy Roze punch", + "price_cents": 150, + "created_at": "2018-04-27T12:45:43.000+02:00", + "updated_at": "2020-02-24T15:26:12.000+01:00", + "avatar_file_name": "kut.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 4423, + "avatar_updated_at": "2020-01-20T20:49:30.000+01:00", + "category": "beverages", + "stock": -4, + "calories": 226, + "deleted": false + }, + { + "id": 128, + "name": "Monster Energy Zero 50 cl", + "price_cents": 140, + "created_at": "2018-05-08T11:38:35.000+02:00", + "updated_at": "2020-03-04T14:36:29.000+01:00", + "avatar_file_name": "d6cf807e9b9259b6d5841aae83a7104c.png", + "avatar_content_type": "image/png", + "avatar_file_size": 163558, + "avatar_updated_at": "2020-01-20T20:49:31.000+01:00", + "category": "beverages", + "stock": -4, + "calories": 9, + "deleted": false + }, + { + "id": 62, + "name": "Monster Munch Original 75 g", + "price_cents": 140, + "created_at": "2016-03-15T14:09:21.000+01:00", + "updated_at": "2020-02-27T14:16:01.000+01:00", + "avatar_file_name": "Monster_Munch_1.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 996350, + "avatar_updated_at": "2020-01-20T20:49:13.000+01:00", + "category": "food", + "stock": -2, + "calories": 402, + "deleted": false + }, + { + "id": 107, + "name": "Nalu", + "price_cents": 130, + "created_at": "2017-05-24T15:11:48.000+02:00", + "updated_at": "2020-01-20T20:49:25.000+01:00", + "avatar_file_name": "9149813587998.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 9517, + "avatar_updated_at": "2020-01-20T20:49:25.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 238, + "name": "NERF (Bruis-)water", + "price_cents": 50, + "created_at": "2023-10-07T15:07:20.000+02:00", + "updated_at": "2023-10-07T15:07:20.000+02:00", + "avatar_file_name": "1301da77d4ad10fae18588e22f0a350b.w6447.h4171.png", + "avatar_content_type": "image/png", + "avatar_file_size": 1482452, + "avatar_updated_at": "2023-10-07T15:07:05.000+02:00", + "category": "beverages", + "stock": 100, + "calories": 0, + "deleted": false + }, + { + "id": 237, + "name": "NERF Cola (- Zero)/Ice Tea/Jupiler", + "price_cents": 100, + "created_at": "2023-10-07T15:06:14.000+02:00", + "updated_at": "2023-10-07T15:06:14.000+02:00", + "avatar_file_name": "1301da77d4ad10fae18588e22f0a350b.w6447.h4171.png", + "avatar_content_type": "image/png", + "avatar_file_size": 1482452, + "avatar_updated_at": "2023-10-07T15:06:04.000+02:00", + "category": "beverages", + "stock": 99, + "calories": null, + "deleted": false + }, + { + "id": 98, + "name": "Oreo Double Cream", + "price_cents": 165, + "created_at": "2016-12-07T14:41:04.000+01:00", + "updated_at": "2020-01-20T20:49:23.000+01:00", + "avatar_file_name": "9044926234654.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 39466, + "avatar_updated_at": "2020-01-20T20:49:23.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 173, + "name": "Paprika-flavoured coated peanuts nootjes", + "price_cents": 90, + "created_at": "2019-12-09T16:41:37.000+01:00", + "updated_at": "2023-12-06T15:18:24.000+01:00", + "avatar_file_name": "peanuts.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 46505, + "avatar_updated_at": "2020-01-20T20:49:51.000+01:00", + "category": "food", + "stock": 0, + "calories": 162, + "deleted": false + }, + { + "id": 176, + "name": "PeligrinosanLimonata", + "price_cents": 90, + "created_at": "2020-02-04T19:46:46.000+01:00", + "updated_at": "2020-02-14T11:40:07.000+01:00", + "avatar_file_name": "limonata-can-front.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 98373, + "avatar_updated_at": "2020-02-04T19:46:46.000+01:00", + "category": "beverages", + "stock": 6666663, + "calories": 112, + "deleted": false + }, + { + "id": 230, + "name": "Pepsi Max", + "price_cents": 77, + "created_at": "2023-05-10T12:53:21.000+02:00", + "updated_at": "2024-03-07T13:53:17.000+01:00", + "avatar_file_name": "16837159310276180785185453837367.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 7684911, + "avatar_updated_at": "2023-05-10T12:53:16.000+02:00", + "category": "beverages", + "stock": 37, + "calories": 2, + "deleted": false + }, + { + "id": 240, + "name": "Pepsi MAX Lemon", + "price_cents": 66, + "created_at": "2023-10-16T17:32:22.000+02:00", + "updated_at": "2023-10-16T17:32:22.000+02:00", + "avatar_file_name": "GD5783-1.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 17546, + "avatar_updated_at": "2023-10-16T17:32:22.000+02:00", + "category": "beverages", + "stock": 2, + "calories": 2, + "deleted": false + }, + { + "id": 178, + "name": "Petit-beurre Delhaize", + "price_cents": 25, + "created_at": "2020-02-20T10:48:18.000+01:00", + "updated_at": "2020-03-04T22:33:00.000+01:00", + "avatar_file_name": "petit-beure.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 186591, + "avatar_updated_at": "2020-02-20T10:48:17.000+01:00", + "category": "food", + "stock": 9, + "calories": 123, + "deleted": false + }, + { + "id": 64, + "name": "Pick Up melkchocolade", + "price_cents": 45, + "created_at": "2016-03-31T17:32:45.000+02:00", + "updated_at": "2020-01-20T20:49:16.000+01:00", + "avatar_file_name": "pickup_melk.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 85204, + "avatar_updated_at": "2020-01-20T20:49:16.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 15, + "name": "Pims", + "price_cents": 160, + "created_at": "2016-02-10T15:24:33.000+01:00", + "updated_at": "2020-01-20T20:48:59.000+01:00", + "avatar_file_name": "Pims_orange.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 20950, + "avatar_updated_at": "2020-01-20T20:48:59.000+01:00", + "category": "food", + "stock": 0, + "calories": 600, + "deleted": true + }, + { + "id": 158, + "name": "Pin", + "price_cents": 300, + "created_at": "2019-04-22T23:16:40.000+02:00", + "updated_at": "2020-10-14T22:48:08.000+02:00", + "avatar_file_name": "IMG_20190422_231605.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 36515, + "avatar_updated_at": "2020-01-20T20:49:46.000+01:00", + "category": "other", + "stock": -11, + "calories": 0, + "deleted": false + }, + { + "id": 198, + "name": "Piraat", + "price_cents": 195, + "created_at": "2022-03-19T13:49:28.000+01:00", + "updated_at": "2022-03-19T13:49:28.000+01:00", + "avatar_file_name": "piraat-105.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 8935, + "avatar_updated_at": "2022-03-19T13:49:27.000+01:00", + "category": "beverages", + "stock": 1, + "calories": null, + "deleted": false + }, + { + "id": 243, + "name": "Postzegel", + "price_cents": 150, + "created_at": "2023-11-15T19:46:04.000+01:00", + "updated_at": "2023-11-15T19:46:04.000+01:00", + "avatar_file_name": "550x656.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 100999, + "avatar_updated_at": "2023-11-15T19:46:03.000+01:00", + "category": "other", + "stock": 0, + "calories": 1, + "deleted": false + }, + { + "id": 41, + "name": "Prince Mini Stars", + "price_cents": 30, + "created_at": "2016-02-16T14:58:52.000+01:00", + "updated_at": "2020-01-20T20:49:06.000+01:00", + "avatar_file_name": "71NSFDLQd7L._SL1073_.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 173329, + "avatar_updated_at": "2020-01-20T20:49:05.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": true + }, + { + "id": 14, + "name": "Prince-koeken 300 g", + "price_cents": 145, + "created_at": "2016-02-10T15:21:43.000+01:00", + "updated_at": "2020-01-20T20:48:59.000+01:00", + "avatar_file_name": "prince_lu_12592_chocolade.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 14612, + "avatar_updated_at": "2020-01-20T20:48:59.000+01:00", + "category": "food", + "stock": 0, + "calories": 1395, + "deleted": false + }, + { + "id": 80, + "name": "Pringles Paprika", + "price_cents": 204, + "created_at": "2016-04-28T18:12:50.000+02:00", + "updated_at": "2020-01-20T20:49:18.000+01:00", + "avatar_file_name": "8969827188766.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 27478, + "avatar_updated_at": "2020-01-20T20:49:18.000+01:00", + "category": "food", + "stock": 0, + "calories": 950, + "deleted": true + }, + { + "id": 103, + "name": "Red Bull flesje", + "price_cents": 180, + "created_at": "2017-05-24T14:50:36.000+02:00", + "updated_at": "2020-01-20T20:49:24.000+01:00", + "avatar_file_name": "9150757404702.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 5075, + "avatar_updated_at": "2020-01-20T20:49:24.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 200, + "name": "rodeo 25cl", + "price_cents": 38, + "created_at": "2022-03-19T13:53:39.000+01:00", + "updated_at": "2023-11-13T14:17:07.000+01:00", + "avatar_file_name": "rodeo.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 23862, + "avatar_updated_at": "2022-03-19T13:53:39.000+01:00", + "category": "beverages", + "stock": 46, + "calories": null, + "deleted": false + }, + { + "id": 192, + "name": "Rodeo energy drink 50cl", + "price_cents": 66, + "created_at": "2021-11-18T16:31:37.000+01:00", + "updated_at": "2021-11-18T16:31:37.000+01:00", + "avatar_file_name": "rodeo.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 24441, + "avatar_updated_at": "2021-11-18T16:31:36.000+01:00", + "category": "beverages", + "stock": 4, + "calories": null, + "deleted": false + }, + { + "id": 242, + "name": "Rodeo Zero", + "price_cents": 38, + "created_at": "2023-11-13T14:18:10.000+01:00", + "updated_at": "2023-11-13T14:18:10.000+01:00", + "avatar_file_name": "asset-928024.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 19701, + "avatar_updated_at": "2023-11-13T14:18:10.000+01:00", + "category": "beverages", + "stock": 6, + "calories": null, + "deleted": false + }, + { + "id": 13, + "name": "Rollo", + "price_cents": 45, + "created_at": "2016-02-10T15:19:56.000+01:00", + "updated_at": "2020-01-20T20:48:59.000+01:00", + "avatar_file_name": "21bwpI4jxDL.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 7571, + "avatar_updated_at": "2020-01-20T20:48:59.000+01:00", + "category": "food", + "stock": 0, + "calories": 250, + "deleted": false + }, + { + "id": 175, + "name": "San Peligrino Aranciata", + "price_cents": 90, + "created_at": "2020-02-04T19:38:53.000+01:00", + "updated_at": "2020-02-13T18:47:29.000+01:00", + "avatar_file_name": "aranciata-can-format.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 15608, + "avatar_updated_at": "2020-02-04T19:38:52.000+01:00", + "category": "beverages", + "stock": 3327, + "calories": 109, + "deleted": false + }, + { + "id": 184, + "name": "Schweppes Agrum [zero] 33cl", + "price_cents": 62, + "created_at": "2021-09-07T20:32:01.000+02:00", + "updated_at": "2022-11-08T18:50:50.000+01:00", + "avatar_file_name": "scheppes.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 52646, + "avatar_updated_at": "2021-09-07T20:32:01.000+02:00", + "category": "beverages", + "stock": -10, + "calories": null, + "deleted": false + }, + { + "id": 191, + "name": "Schweppes tonic", + "price_cents": 70, + "created_at": "2021-11-04T15:11:41.000+01:00", + "updated_at": "2021-11-04T15:11:41.000+01:00", + "avatar_file_name": "schweppes_indian_tonic_6x33cl_nl.png", + "avatar_content_type": "image/png", + "avatar_file_size": 462278, + "avatar_updated_at": "2021-11-04T15:11:40.000+01:00", + "category": "beverages", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 50, + "name": "Smiths Grills", + "price_cents": 145, + "created_at": "2016-03-15T13:55:41.000+01:00", + "updated_at": "2020-01-20T20:49:08.000+01:00", + "avatar_file_name": "images.jpeg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 3538, + "avatar_updated_at": "2020-01-20T20:49:08.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 58, + "name": "Smiths Ring lings", + "price_cents": 150, + "created_at": "2016-03-15T14:05:28.000+01:00", + "updated_at": "2020-01-20T20:49:12.000+01:00", + "avatar_file_name": "ringlings.png", + "avatar_content_type": "image/png", + "avatar_file_size": 27973, + "avatar_updated_at": "2020-01-20T20:49:12.000+01:00", + "category": "food", + "stock": 0, + "calories": 650, + "deleted": false + }, + { + "id": 21, + "name": "Snickers", + "price_cents": 35, + "created_at": "2016-02-10T15:43:26.000+01:00", + "updated_at": "2021-09-16T13:52:52.000+02:00", + "avatar_file_name": "Snickers_wrapped.png", + "avatar_content_type": "image/png", + "avatar_file_size": 36708, + "avatar_updated_at": "2020-01-20T20:49:01.000+01:00", + "category": "food", + "stock": -12, + "calories": 215, + "deleted": false + }, + { + "id": 122, + "name": "Snickers groot", + "price_cents": 85, + "created_at": "2017-11-07T15:33:21.000+01:00", + "updated_at": "2020-01-20T20:49:29.000+01:00", + "avatar_file_name": "snicker.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 11320, + "avatar_updated_at": "2020-01-20T20:49:29.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 131, + "name": "Somersby", + "price_cents": 170, + "created_at": "2018-06-07T19:03:28.000+02:00", + "updated_at": "2020-01-20T20:49:32.000+01:00", + "avatar_file_name": "ShotType1_328x328.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 10143, + "avatar_updated_at": "2020-01-20T20:49:32.000+01:00", + "category": "beverages", + "stock": 0, + "calories": 182, + "deleted": false + }, + { + "id": 40, + "name": "Speculoos", + "price_cents": 40, + "created_at": "2016-02-16T14:56:18.000+01:00", + "updated_at": "2020-01-20T20:49:05.000+01:00", + "avatar_file_name": "images.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 3619, + "avatar_updated_at": "2020-01-20T20:49:05.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": true + }, + { + "id": 210, + "name": "Sportzot - alcoholarm 33cl", + "price_cents": 350, + "created_at": "2022-07-16T12:14:23.000+02:00", + "updated_at": "2022-07-16T12:14:23.000+02:00", + "avatar_file_name": "01400850_los-1669886738", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 70139, + "avatar_updated_at": "2022-07-16T12:14:23.000+02:00", + "category": "beverages", + "stock": 1, + "calories": null, + "deleted": false + }, + { + "id": 3, + "name": "Sprite lemon lime", + "price_cents": 10, + "created_at": "2016-02-10T14:25:16.000+01:00", + "updated_at": "2023-09-11T17:49:09.000+02:00", + "avatar_file_name": "Sprite-Soda.png", + "avatar_content_type": "image/png", + "avatar_file_size": 610288, + "avatar_updated_at": "2020-01-20T20:48:56.000+01:00", + "category": "food", + "stock": 2, + "calories": 109, + "deleted": false + }, + { + "id": 100, + "name": "spuitwater klein", + "price_cents": 35, + "created_at": "2016-12-07T14:42:45.000+01:00", + "updated_at": "2020-01-20T20:49:23.000+01:00", + "avatar_file_name": "8990208426014.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 37288, + "avatar_updated_at": "2020-01-20T20:49:23.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 157, + "name": "Stella 25 cl", + "price_cents": 71, + "created_at": "2019-03-08T00:52:28.000+01:00", + "updated_at": "2023-11-14T20:03:25.000+01:00", + "avatar_file_name": "Stella-25-cl-Fles-2611528114.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 19361, + "avatar_updated_at": "2023-11-14T20:03:25.000+01:00", + "category": "beverages", + "stock": -12, + "calories": 110, + "deleted": false + }, + { + "id": 23, + "name": "Streepje", + "price_cents": 70, + "created_at": "2016-02-10T15:47:00.000+01:00", + "updated_at": "2023-10-18T14:15:16.000+02:00", + "avatar_file_name": "gmg-yepp-abc-streepje.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 4661, + "avatar_updated_at": "2020-01-20T20:49:01.000+01:00", + "category": "food", + "stock": 1000, + "calories": null, + "deleted": false + }, + { + "id": 123, + "name": "Strongbow", + "price_cents": 140, + "created_at": "2017-12-04T19:34:46.000+01:00", + "updated_at": "2020-01-20T20:49:29.000+01:00", + "avatar_file_name": "ci_70.png", + "avatar_content_type": "image/png", + "avatar_file_size": 133824, + "avatar_updated_at": "2020-01-20T20:49:29.000+01:00", + "category": "beverages", + "stock": 0, + "calories": 185, + "deleted": false + }, + { + "id": 43, + "name": "Super Choc", + "price_cents": 60, + "created_at": "2016-02-16T15:05:20.000+01:00", + "updated_at": "2020-01-20T20:49:07.000+01:00", + "avatar_file_name": "img_20160216_150421_1024.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 218851, + "avatar_updated_at": "2020-01-20T20:49:06.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": true + }, + { + "id": 146, + "name": "Sweet chili", + "price_cents": 90, + "created_at": "2018-12-05T16:09:26.000+01:00", + "updated_at": "2020-02-20T16:22:45.000+01:00", + "avatar_file_name": "sweet_tortilla.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 189696, + "avatar_updated_at": "2018-12-05T16:09:24.000+01:00", + "category": "food", + "stock": -4, + "calories": 873, + "deleted": false + }, + { + "id": 168, + "name": "Thai chicken AIKI noodles", + "price_cents": 140, + "created_at": "2019-09-27T15:44:41.000+02:00", + "updated_at": "2019-10-28T17:20:44.000+01:00", + "avatar_file_name": "thai_chicken_aiki_noodles.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 259978, + "avatar_updated_at": "2019-09-27T15:44:40.000+02:00", + "category": "food", + "stock": -1, + "calories": 236, + "deleted": false + }, + { + "id": 145, + "name": "Thee (1 zakje)", + "price_cents": 5, + "created_at": "2018-12-04T11:31:59.000+01:00", + "updated_at": "2021-10-01T17:07:34.000+02:00", + "avatar_file_name": "Thee.png", + "avatar_content_type": "image/png", + "avatar_file_size": 506885, + "avatar_updated_at": "2020-01-20T20:49:38.000+01:00", + "category": "beverages", + "stock": 9, + "calories": 1, + "deleted": false + }, + { + "id": 67, + "name": "Toblerone", + "price_cents": 160, + "created_at": "2016-03-31T17:45:48.000+02:00", + "updated_at": "2020-01-20T20:49:16.000+01:00", + "avatar_file_name": "tobler.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 7455, + "avatar_updated_at": "2020-01-20T20:49:16.000+01:00", + "category": "food", + "stock": 0, + "calories": 535, + "deleted": false + }, + { + "id": 108, + "name": "Tönnissteiner", + "price_cents": 165, + "created_at": "2017-05-24T15:13:43.000+02:00", + "updated_at": "2020-01-20T20:49:25.000+01:00", + "avatar_file_name": "9222615564318.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 8880, + "avatar_updated_at": "2020-01-20T20:49:25.000+01:00", + "category": "food", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 99, + "name": "Tönnissteiner Orange", + "price_cents": 120, + "created_at": "2016-12-07T14:41:48.000+01:00", + "updated_at": "2020-01-20T20:49:23.000+01:00", + "avatar_file_name": "8827733934110.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 51368, + "avatar_updated_at": "2020-01-20T20:49:23.000+01:00", + "category": "beverages", + "stock": 0, + "calories": null, + "deleted": false + }, + { + "id": 250, + "name": "Tropico", + "price_cents": 80, + "created_at": "2024-03-07T13:56:19.000+01:00", + "updated_at": "2024-03-07T13:56:19.000+01:00", + "avatar_file_name": "tropico.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 20448, + "avatar_updated_at": "2024-03-07T13:56:19.000+01:00", + "category": "beverages", + "stock": 2, + "calories": 99, + "deleted": false + }, + { + "id": 216, + "name": "Tuc original 100g", + "price_cents": 88, + "created_at": "2022-10-04T18:44:11.000+02:00", + "updated_at": "2022-10-04T18:44:11.000+02:00", + "avatar_file_name": "1483229256_cs_lu-tuc-crackers-original-sales-100gr-2371368408", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 57766, + "avatar_updated_at": "2022-10-04T18:44:11.000+02:00", + "category": "food", + "stock": 0, + "calories": 482, + "deleted": false + }, + { + "id": 46, + "name": "Twix 50 g", + "price_cents": 40, + "created_at": "2016-02-25T16:15:43.000+01:00", + "updated_at": "2020-01-20T20:49:07.000+01:00", + "avatar_file_name": "8902125289502.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 63201, + "avatar_updated_at": "2020-01-20T20:49:07.000+01:00", + "category": "food", + "stock": 0, + "calories": 246, + "deleted": false + }, + { + "id": 239, + "name": "Vanilla Coca Cola", + "price_cents": 69, + "created_at": "2023-10-16T13:08:09.000+02:00", + "updated_at": "2023-10-16T13:08:09.000+02:00", + "avatar_file_name": "GD37022.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 16144, + "avatar_updated_at": "2023-10-16T13:08:09.000+02:00", + "category": "beverages", + "stock": 5, + "calories": 142, + "deleted": false + }, + { + "id": 36, + "name": "Vreemde chocoladereep", + "price_cents": 60, + "created_at": "2016-02-16T14:35:03.000+01:00", + "updated_at": "2020-01-20T20:49:04.000+01:00", + "avatar_file_name": "jacques-mokarhum-z.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 51184, + "avatar_updated_at": "2020-01-20T20:49:03.000+01:00", + "category": "beverages", + "stock": 0, + "calories": null, + "deleted": true + }, + { + "id": 217, + "name": "Walnoten 150g", + "price_cents": 325, + "created_at": "2022-10-04T18:56:11.000+02:00", + "updated_at": "2022-10-04T18:56:11.000+02:00", + "avatar_file_name": "th-1657667531", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 9502, + "avatar_updated_at": "2022-10-04T18:56:11.000+02:00", + "category": "food", + "stock": 0, + "calories": 1047, + "deleted": false + }, + { + "id": 24, + "name": "Water", + "price_cents": 40, + "created_at": "2016-02-10T15:52:01.000+01:00", + "updated_at": "2020-01-20T20:49:02.000+01:00", + "avatar_file_name": "8828006301726.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 48143, + "avatar_updated_at": "2020-01-20T20:49:01.000+01:00", + "category": "food", + "stock": -2, + "calories": 0, + "deleted": false + }, + { + "id": 219, + "name": "Water (DSA) 0.2L", + "price_cents": 50, + "created_at": "2022-10-21T18:19:45.000+02:00", + "updated_at": "2023-10-08T12:50:25.000+02:00", + "avatar_file_name": "Wit-blad-page-001-2211043355", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 36501, + "avatar_updated_at": "2022-10-21T18:19:45.000+02:00", + "category": "beverages", + "stock": 197, + "calories": null, + "deleted": false + }, + { + "id": 197, + "name": "Water bruis - spuitwater", + "price_cents": 50, + "created_at": "2022-03-19T13:48:18.000+01:00", + "updated_at": "2023-10-08T12:50:37.000+02:00", + "avatar_file_name": "Ordal-water-Bruis-20-cl-Fles-265x265.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 5866, + "avatar_updated_at": "2022-03-19T13:48:18.000+01:00", + "category": "beverages", + "stock": 199, + "calories": null, + "deleted": false + }, + { + "id": 174, + "name": "Zakje Microgolf Pop Corn", + "price_cents": 60, + "created_at": "2019-12-13T13:24:08.000+01:00", + "updated_at": "2020-01-20T20:49:52.000+01:00", + "avatar_file_name": "bobcorn.jpg", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 55596, + "avatar_updated_at": "2020-01-20T20:49:51.000+01:00", + "category": "food", + "stock": 8, + "calories": 1368, + "deleted": false + }, + { + "id": 224, + "name": "Zweedse balletjes 5 stuks", + "price_cents": 69, + "created_at": "2022-11-22T22:24:37.000+01:00", + "updated_at": "2022-11-22T22:24:37.000+01:00", + "avatar_file_name": "image-3438997968", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 121701, + "avatar_updated_at": "2022-11-22T22:24:36.000+01:00", + "category": "food", + "stock": 2, + "calories": null, + "deleted": false + }, + { + "id": 225, + "name": "Zweedse balletjes veggie 5 stuks", + "price_cents": 65, + "created_at": "2022-11-22T22:31:08.000+01:00", + "updated_at": "2022-11-22T22:31:08.000+01:00", + "avatar_file_name": "image-3438997968", + "avatar_content_type": "image/jpeg", + "avatar_file_size": 121701, + "avatar_updated_at": "2022-11-22T22:31:08.000+01:00", + "category": "food", + "stock": 17, + "calories": null, + "deleted": false + } + ] \ No newline at end of file diff --git a/demo/data/demo/public/storesite/package-lock.json b/demo/data/demo/public/storesite/package-lock.json new file mode 100644 index 00000000..ee554447 --- /dev/null +++ b/demo/data/demo/public/storesite/package-lock.json @@ -0,0 +1,18580 @@ +{ + "name": "storesite", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "storesite", + "version": "0.1.0", + "dependencies": { + "@emotion/react": "^11.11.3", + "@emotion/styled": "^11.11.0", + "@mui/material": "^5.15.14", + "@testing-library/jest-dom": "^5.17.0", + "@testing-library/react": "^13.4.0", + "@testing-library/user-event": "^13.5.0", + "@types/jest": "^27.5.2", + "@types/node": "^16.18.69", + "@types/react": "^18.2.46", + "@types/react-dom": "^18.2.18", + "n3": "^1.17.3", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-scripts": "5.0.1", + "typescript": "^4.9.5", + "web-vitals": "^2.1.4" + }, + "devDependencies": { + "@babel/plugin-proposal-private-property-in-object": "^7.21.11" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@adobe/css-tools": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.3.2.tgz", + "integrity": "sha512-DA5a1C0gD/pLOvhv33YMrbf2FK3oUzwNl9oOJqE4XVjuEtt6XIakRcsd7eLiOSPkp1kTRQGICTA8cKra/vFbjw==" + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", + "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "dependencies": { + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", + "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.7.tgz", + "integrity": "sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.7", + "@babel/parser": "^7.23.6", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.7", + "@babel/types": "^7.23.6", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/eslint-parser": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.23.3.tgz", + "integrity": "sha512-9bTuNlyx7oSstodm1cR1bECj4fkiknsDa1YniISkJemMY3DGhJNYBECbe6QD/q54mp2J8VO66jW3/7uP//iFCw==", + "dependencies": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.11.0", + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/@babel/eslint-parser/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", + "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "dependencies": { + "@babel/types": "^7.23.6", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz", + "integrity": "sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz", + "integrity": "sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw==", + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", + "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.7.tgz", + "integrity": "sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz", + "integrity": "sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz", + "integrity": "sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz", + "integrity": "sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA==", + "dependencies": { + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz", + "integrity": "sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz", + "integrity": "sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-wrap-function": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz", + "integrity": "sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-optimise-call-expression": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz", + "integrity": "sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", + "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz", + "integrity": "sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==", + "dependencies": { + "@babel/helper-function-name": "^7.22.5", + "@babel/template": "^7.22.15", + "@babel/types": "^7.22.19" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.7.tgz", + "integrity": "sha512-6AMnjCoC8wjqBzDHkuqpa7jAKwvMo4dC+lr/TFBz+ucfulO1XMpDnwWPGBNwClOKZ8h6xn5N81W/R5OrcKtCbQ==", + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.7", + "@babel/types": "^7.23.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", + "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz", + "integrity": "sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz", + "integrity": "sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-transform-optional-chaining": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz", + "integrity": "sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.23.7.tgz", + "integrity": "sha512-b1s5JyeMvqj7d9m9KhJNHKc18gEJiSyVzVX3bwbiPalQBQpuvfPh6lA9F7Kk/dWH0TIiXRpB9yicwijY6buPng==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.23.7", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-decorators": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz", + "integrity": "sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead.", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.11", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.11.tgz", + "integrity": "sha512-0QZ8qP/3RLDVBwBFoWAwCtgcDZJVwA5LUJRZU8x2YFfKNuFq161wK3cuGrALu5yiPu+vzwTAg/sMWVNeWeNyaw==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-property-in-object instead.", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.23.3.tgz", + "integrity": "sha512-cf7Niq4/+/juY67E0PbgH0TDhLQ5J7zS8C/Q5FFx+DWyrRa9sUQdTXkjqKu8zGvuqr7vw1muKiukseihU+PJDA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.23.3.tgz", + "integrity": "sha512-YZiAIpkJAwQXBJLIQbRFayR5c+gJ35Vcz3bg954k7cd73zqjvhacJuL9RbrzPz8qPmZdgqP6EUKwy0PCNhaaPA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz", + "integrity": "sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz", + "integrity": "sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", + "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", + "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.7.tgz", + "integrity": "sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA==", + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz", + "integrity": "sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw==", + "dependencies": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-remap-async-to-generator": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz", + "integrity": "sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz", + "integrity": "sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz", + "integrity": "sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz", + "integrity": "sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.23.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.5.tgz", + "integrity": "sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-optimise-call-expression": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20", + "@babel/helper-split-export-declaration": "^7.22.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz", + "integrity": "sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/template": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz", + "integrity": "sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz", + "integrity": "sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz", + "integrity": "sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz", + "integrity": "sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz", + "integrity": "sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ==", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz", + "integrity": "sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.23.3.tgz", + "integrity": "sha512-26/pQTf9nQSNVJCrLB1IkHUKyPxR+lMrH2QDPG89+Znu9rAMbtrybdbWeE9bb7gzjmE5iXHEY+e0HUwM6Co93Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-flow": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz", + "integrity": "sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz", + "integrity": "sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz", + "integrity": "sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz", + "integrity": "sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz", + "integrity": "sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz", + "integrity": "sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz", + "integrity": "sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw==", + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz", + "integrity": "sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA==", + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-simple-access": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz", + "integrity": "sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ==", + "dependencies": { + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz", + "integrity": "sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg==", + "dependencies": { + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz", + "integrity": "sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz", + "integrity": "sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz", + "integrity": "sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz", + "integrity": "sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz", + "integrity": "sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g==", + "dependencies": { + "@babel/compat-data": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz", + "integrity": "sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-replace-supers": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz", + "integrity": "sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz", + "integrity": "sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz", + "integrity": "sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz", + "integrity": "sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz", + "integrity": "sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz", + "integrity": "sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.23.3.tgz", + "integrity": "sha512-zP0QKq/p6O42OL94udMgSfKXyse4RyJ0JqbQ34zDAONWjyrEsghYEyTSK5FIpmXmCpB55SHokL1cRRKHv8L2Qw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.23.3.tgz", + "integrity": "sha512-GnvhtVfA2OAtzdX58FJxU19rhoGeQzyVndw3GgtdECQvQFXPEZIOVULHVZGAYmOgmqjXpVpfocAbSjh99V/Fqw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.23.4.tgz", + "integrity": "sha512-5xOpoPguCZCRbo/JeHlloSkTA8Bld1J/E1/kLfD1nsuiW1m8tduTA1ERCgIZokDflX/IBzKcqR3l7VlRgiIfHA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/types": "^7.23.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.22.5.tgz", + "integrity": "sha512-bDhuzwWMuInwCYeDeMzyi7TaBgRQei6DqxhbyniL7/VG4RSS7HtSL2QbY4eESy1KJqlWt8g3xeEBGPuo+XqC8A==", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.23.3.tgz", + "integrity": "sha512-qMFdSS+TUhB7Q/3HVPnEdYJDQIk57jkntAwSuz9xfSE4n+3I+vHYCli3HoHawN1Z3RfCz/y1zXA/JXjG6cVImQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz", + "integrity": "sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz", + "integrity": "sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.7.tgz", + "integrity": "sha512-fa0hnfmiXc9fq/weK34MUV0drz2pOL/vfKWvN7Qw127hiUPabFCUMgAbYWcchRzMJit4o5ARsK/s+5h0249pLw==", + "dependencies": { + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5", + "babel-plugin-polyfill-corejs2": "^0.4.7", + "babel-plugin-polyfill-corejs3": "^0.8.7", + "babel-plugin-polyfill-regenerator": "^0.5.4", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz", + "integrity": "sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz", + "integrity": "sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz", + "integrity": "sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz", + "integrity": "sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz", + "integrity": "sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.23.6.tgz", + "integrity": "sha512-6cBG5mBvUu4VUD04OHKnYzbuHNP8huDsD3EDqqpIpsswTDoqHCjLoHb6+QgsV1WsT2nipRqCPgxD3LXnEO7XfA==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.23.6", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/plugin-syntax-typescript": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz", + "integrity": "sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz", + "integrity": "sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz", + "integrity": "sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz", + "integrity": "sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.22.15", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.23.7.tgz", + "integrity": "sha512-SY27X/GtTz/L4UryMNJ6p4fH4nsgWbz84y9FE0bQeWJP6O5BhgVCt53CotQKHCOeXJel8VyhlhujhlltKms/CA==", + "dependencies": { + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.7", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@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.23.3", + "@babel/plugin-syntax-import-attributes": "^7.23.3", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@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-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.23.3", + "@babel/plugin-transform-async-generator-functions": "^7.23.7", + "@babel/plugin-transform-async-to-generator": "^7.23.3", + "@babel/plugin-transform-block-scoped-functions": "^7.23.3", + "@babel/plugin-transform-block-scoping": "^7.23.4", + "@babel/plugin-transform-class-properties": "^7.23.3", + "@babel/plugin-transform-class-static-block": "^7.23.4", + "@babel/plugin-transform-classes": "^7.23.5", + "@babel/plugin-transform-computed-properties": "^7.23.3", + "@babel/plugin-transform-destructuring": "^7.23.3", + "@babel/plugin-transform-dotall-regex": "^7.23.3", + "@babel/plugin-transform-duplicate-keys": "^7.23.3", + "@babel/plugin-transform-dynamic-import": "^7.23.4", + "@babel/plugin-transform-exponentiation-operator": "^7.23.3", + "@babel/plugin-transform-export-namespace-from": "^7.23.4", + "@babel/plugin-transform-for-of": "^7.23.6", + "@babel/plugin-transform-function-name": "^7.23.3", + "@babel/plugin-transform-json-strings": "^7.23.4", + "@babel/plugin-transform-literals": "^7.23.3", + "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", + "@babel/plugin-transform-member-expression-literals": "^7.23.3", + "@babel/plugin-transform-modules-amd": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.3", + "@babel/plugin-transform-modules-umd": "^7.23.3", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.23.3", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", + "@babel/plugin-transform-numeric-separator": "^7.23.4", + "@babel/plugin-transform-object-rest-spread": "^7.23.4", + "@babel/plugin-transform-object-super": "^7.23.3", + "@babel/plugin-transform-optional-catch-binding": "^7.23.4", + "@babel/plugin-transform-optional-chaining": "^7.23.4", + "@babel/plugin-transform-parameters": "^7.23.3", + "@babel/plugin-transform-private-methods": "^7.23.3", + "@babel/plugin-transform-private-property-in-object": "^7.23.4", + "@babel/plugin-transform-property-literals": "^7.23.3", + "@babel/plugin-transform-regenerator": "^7.23.3", + "@babel/plugin-transform-reserved-words": "^7.23.3", + "@babel/plugin-transform-shorthand-properties": "^7.23.3", + "@babel/plugin-transform-spread": "^7.23.3", + "@babel/plugin-transform-sticky-regex": "^7.23.3", + "@babel/plugin-transform-template-literals": "^7.23.3", + "@babel/plugin-transform-typeof-symbol": "^7.23.3", + "@babel/plugin-transform-unicode-escapes": "^7.23.3", + "@babel/plugin-transform-unicode-property-regex": "^7.23.3", + "@babel/plugin-transform-unicode-regex": "^7.23.3", + "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.7", + "babel-plugin-polyfill-corejs3": "^0.8.7", + "babel-plugin-polyfill-regenerator": "^0.5.4", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.23.3.tgz", + "integrity": "sha512-tbkHOS9axH6Ysf2OUEqoSZ6T3Fa2SrNH6WTWSPBboxKzdxNc9qOICeLXkNG0ZEwbQ1HY8liwOce4aN/Ceyuq6w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", + "@babel/plugin-transform-react-display-name": "^7.23.3", + "@babel/plugin-transform-react-jsx": "^7.22.15", + "@babel/plugin-transform-react-jsx-development": "^7.22.5", + "@babel/plugin-transform-react-pure-annotations": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.23.3.tgz", + "integrity": "sha512-17oIGVlqz6CchO9RFYn5U6ZpWRZIngayYCtrPRSgANSwC2V1Jb+iP74nVxzzXJte8b8BYxrL1yY96xfhTBrNNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-validator-option": "^7.22.15", + "@babel/plugin-syntax-jsx": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-typescript": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==" + }, + "node_modules/@babel/runtime": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.1.tgz", + "integrity": "sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.23.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.7.tgz", + "integrity": "sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==", + "dependencies": { + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.6", + "@babel/types": "^7.23.6", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.23.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", + "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", + "dependencies": { + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" + }, + "node_modules/@csstools/normalize.css": { + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-12.1.1.tgz", + "integrity": "sha512-YAYeJ+Xqh7fUou1d1j9XHl44BmsuThiTr4iNrgCQ3J27IbhXsxXDGZ1cXv8Qvs99d4rBbLiSKy3+WZiet32PcQ==" + }, + "node_modules/@csstools/postcss-cascade-layers": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-1.1.1.tgz", + "integrity": "sha512-+KdYrpKC5TgomQr2DlZF4lDEpHcoxnj5IGddYYfBWJAKfj1JtuHUIqMa+E1pJJ+z3kvDViWMqyqPlG4Ja7amQA==", + "dependencies": { + "@csstools/selector-specificity": "^2.0.2", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-color-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz", + "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-font-format-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz", + "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-hwb-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz", + "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-ic-unit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz", + "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz", + "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==", + "dependencies": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-nested-calc": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-1.0.0.tgz", + "integrity": "sha512-JCsQsw1wjYwv1bJmgjKSoZNvf7R6+wuHDAbi5f/7MbFhl2d/+v+TvBTU4BJH3G1X1H87dHl0mh6TfYogbT/dJQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-normalize-display-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz", + "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-oklab-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz", + "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-progressive-custom-properties": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", + "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/@csstools/postcss-stepped-value-functions": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz", + "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-text-decoration-shorthand": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-1.0.0.tgz", + "integrity": "sha512-c1XwKJ2eMIWrzQenN0XbcfzckOLLJiczqy+YvfGmzoVXd7pT9FfObiSEfzs84bpE/VqfpEuAZ9tCRbZkZxxbdw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-trigonometric-functions": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-1.0.2.tgz", + "integrity": "sha512-woKaLO///4bb+zZC2s80l+7cm07M7268MsyG3M0ActXXEFi6SuhvriQYcb58iiKGbjwwIU7n45iRLEHypB47Og==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-unset-value": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz", + "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.2.0.tgz", + "integrity": "sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss-selector-parser": "^6.0.10" + } + }, + "node_modules/@emotion/babel-plugin": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", + "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/serialize": "^1.1.2", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/@emotion/babel-plugin/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@emotion/cache": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", + "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", + "dependencies": { + "@emotion/memoize": "^0.8.1", + "@emotion/sheet": "^1.2.2", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz", + "integrity": "sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==", + "dependencies": { + "@emotion/memoize": "^0.8.1" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" + }, + "node_modules/@emotion/react": { + "version": "11.11.3", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.3.tgz", + "integrity": "sha512-Cnn0kuq4DoONOMcnoVsTOR8E+AdnKFf//6kUWc4LCdnxj31pZWn7rIULd6Y7/Js1PiPHzn7SKCM9vB/jBni8eA==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/cache": "^11.11.0", + "@emotion/serialize": "^1.1.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.3.tgz", + "integrity": "sha512-iD4D6QVZFDhcbH0RAG1uVu1CwVLMWUkCvAqqlewO/rxf8+87yIBAlt4+AxMiiKPLs5hFc0owNk/sLLAOROw3cA==", + "dependencies": { + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/unitless": "^0.8.1", + "@emotion/utils": "^1.2.1", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/sheet": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", + "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==" + }, + "node_modules/@emotion/styled": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.0.tgz", + "integrity": "sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/is-prop-valid": "^1.2.1", + "@emotion/serialize": "^1.1.2", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0-rc.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", + "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", + "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", + "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==" + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz", + "integrity": "sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz", + "integrity": "sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==", + "dependencies": { + "@floating-ui/utils": "^0.2.1" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.3.tgz", + "integrity": "sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==", + "dependencies": { + "@floating-ui/core": "^1.0.0", + "@floating-ui/utils": "^0.2.0" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.8.tgz", + "integrity": "sha512-HOdqOt3R3OGeTKidaLvJKcgg75S6tibQ3Tif4eyd91QnIJWr0NLvoXFpJA/j8HqkFSL68GDca9AuyWEHlhyClw==", + "dependencies": { + "@floating-ui/dom": "^1.6.1" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.1.tgz", + "integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==" + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==" + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz", + "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/console/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/console/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@jest/console/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz", + "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/core/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@jest/core/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/environment": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", + "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==", + "dependencies": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz", + "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==", + "dependencies": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz", + "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz", + "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@jest/reporters/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/reporters/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/schemas": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-28.1.3.tgz", + "integrity": "sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==", + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz", + "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==", + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/source-map/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/test-result": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz", + "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz", + "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==", + "dependencies": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz", + "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==", + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/transform/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@jest/transform/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/@jest/transform/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/transform/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz", + "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==" + }, + "node_modules/@mui/base": { + "version": "5.0.0-beta.40", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.40.tgz", + "integrity": "sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@floating-ui/react-dom": "^2.0.8", + "@mui/types": "^7.2.14", + "@mui/utils": "^5.15.14", + "@popperjs/core": "^2.11.8", + "clsx": "^2.1.0", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/core-downloads-tracker": { + "version": "5.15.14", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.14.tgz", + "integrity": "sha512-on75VMd0XqZfaQW+9pGjSNiqW+ghc5E2ZSLRBXwcXl/C4YzjfyjrLPhrEpKnR9Uym9KXBvxrhoHfPcczYHweyA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + } + }, + "node_modules/@mui/material": { + "version": "5.15.14", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.15.14.tgz", + "integrity": "sha512-kEbRw6fASdQ1SQ7LVdWR5OlWV3y7Y54ZxkLzd6LV5tmz+NpO3MJKZXSfgR0LHMP7meKsPiMm4AuzV0pXDpk/BQ==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/base": "5.0.0-beta.40", + "@mui/core-downloads-tracker": "^5.15.14", + "@mui/system": "^5.15.14", + "@mui/types": "^7.2.14", + "@mui/utils": "^5.15.14", + "@types/react-transition-group": "^4.4.10", + "clsx": "^2.1.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1", + "react-is": "^18.2.0", + "react-transition-group": "^4.4.5" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/@mui/private-theming": { + "version": "5.15.14", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.15.14.tgz", + "integrity": "sha512-UH0EiZckOWcxiXLX3Jbb0K7rC8mxTr9L9l6QhOZxYc4r8FHUkefltV9VDGLrzCaWh30SQiJvAEd7djX3XXY6Xw==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/utils": "^5.15.14", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/styled-engine": { + "version": "5.15.14", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.15.14.tgz", + "integrity": "sha512-RILkuVD8gY6PvjZjqnWhz8fu68dVkqhM5+jYWfB5yhlSQKg+2rHkmEwm75XIeAqI3qwOndK6zELK5H6Zxn4NHw==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@emotion/cache": "^11.11.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.4.1", + "@emotion/styled": "^11.3.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + } + } + }, + "node_modules/@mui/system": { + "version": "5.15.14", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.15.14.tgz", + "integrity": "sha512-auXLXzUaCSSOLqJXmsAaq7P96VPRXg2Rrz6OHNV7lr+kB8lobUF+/N84Vd9C4G/wvCXYPs5TYuuGBRhcGbiBGg==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/private-theming": "^5.15.14", + "@mui/styled-engine": "^5.15.14", + "@mui/types": "^7.2.14", + "@mui/utils": "^5.15.14", + "clsx": "^2.1.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/types": { + "version": "7.2.14", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.14.tgz", + "integrity": "sha512-MZsBZ4q4HfzBsywtXgM1Ksj6HDThtiwmOKUXH1pKYISI9gAVXCNHNpo7TlGoGrBaYWZTdNoirIN7JsQcQUjmQQ==", + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils": { + "version": "5.15.14", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.15.14.tgz", + "integrity": "sha512-0lF/7Hh/ezDv5X7Pry6enMsbYyGKjADzvHyo3Qrc/SSlTsQ1VkbDMbH0m2t3OR5iIVLwMoxwM7yGd+6FCMtTFA==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@types/prop-types": "^15.7.11", + "prop-types": "^15.8.1", + "react-is": "^18.2.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz", + "integrity": "sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==", + "dependencies": { + "eslint-scope": "5.1.1" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.5.11", + "resolved": "https://registry.npmjs.org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.11.tgz", + "integrity": "sha512-7j/6vdTym0+qZ6u4XbSAxrWBGYSdCfTzySkj7WAFgDLmSyWlOrWvpyzxlFh5jtw9dn0oL/jtW+06XfFiisN3JQ==", + "dependencies": { + "ansi-html-community": "^0.0.8", + "common-path-prefix": "^3.0.0", + "core-js-pure": "^3.23.3", + "error-stack-parser": "^2.0.6", + "find-up": "^5.0.0", + "html-entities": "^2.1.0", + "loader-utils": "^2.0.4", + "schema-utils": "^3.0.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">= 10.13" + }, + "peerDependencies": { + "@types/webpack": "4.x || 5.x", + "react-refresh": ">=0.10.0 <1.0.0", + "sockjs-client": "^1.4.0", + "type-fest": ">=0.17.0 <5.0.0", + "webpack": ">=4.43.0 <6.0.0", + "webpack-dev-server": "3.x || 4.x", + "webpack-hot-middleware": "2.x", + "webpack-plugin-serve": "0.x || 1.x" + }, + "peerDependenciesMeta": { + "@types/webpack": { + "optional": true + }, + "sockjs-client": { + "optional": true + }, + "type-fest": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + }, + "webpack-hot-middleware": { + "optional": true + }, + "webpack-plugin-serve": { + "optional": true + } + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz", + "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==", + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "11.2.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz", + "integrity": "sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/plugin-replace": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz", + "integrity": "sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/pluginutils/node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==" + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.6.1.tgz", + "integrity": "sha512-UY+FGM/2jjMkzQLn8pxcHGMaVLh9aEitG3zY2CiY7XHdLiz3bZOwa6oDxNqEMv7zZkV+cj5DOdz0cQ1BP5Hjgw==" + }, + "node_modules/@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==" + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.6.tgz", + "integrity": "sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-8.1.0.tgz", + "integrity": "sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==", + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@surma/rollup-plugin-off-main-thread": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz", + "integrity": "sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==", + "dependencies": { + "ejs": "^3.1.6", + "json5": "^2.2.0", + "magic-string": "^0.25.0", + "string.prototype.matchall": "^4.0.6" + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-ZFf2gs/8/6B8PnSofI0inYXr2SDNTDScPXhN7k5EqD4aZ3gi6u+rbmZHVB8IM3wDyx8ntKACZbtXSm7oZGRqVg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-5.4.0.tgz", + "integrity": "sha512-yaS4o2PgUtwLFGTKbsiAy6D0o3ugcUhWK0Z45umJ66EPWunAz9fuFw2gJuje6wqQvQWOTJvIahUwndOXb7QCPg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-5.0.1.tgz", + "integrity": "sha512-LA72+88A11ND/yFIMzyuLRSMJ+tRKeYKeQ+mR3DcAZ5I4h5CPWN9AHyUzJbWSYp/u2u0xhmgOe0+E41+GjEueA==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-5.0.1.tgz", + "integrity": "sha512-PoiE6ZD2Eiy5mK+fjHqwGOS+IXX0wq/YDtNyIgOrc6ejFnxN4b13pRpiIPbtPwHEc+NT2KCjteAcq33/F1Y9KQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-5.4.0.tgz", + "integrity": "sha512-zSOZH8PdZOpuG1ZVx/cLVePB2ibo3WPpqo7gFIjLV9a0QsuQAzJiwwqmuEdTaW2pegyBE17Uu15mOgOcgabQZg==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-5.4.0.tgz", + "integrity": "sha512-cPzDbDA5oT/sPXDCUYoVXEmm3VIoAWAPT6mSPTJNbQaBNUuEKVKyGH93oDY4e42PYHRW67N5alJx/eEol20abw==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-5.4.0.tgz", + "integrity": "sha512-3eYP/SaopZ41GHwXma7Rmxcv9uRslRDTY1estspeB1w1ueZWd/tPlMfEOoccYpEMZU3jD4OU7YitnXcF5hLW2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-5.5.0.tgz", + "integrity": "sha512-q4jSH1UUvbrsOtlo/tKcgSeiCHRSBdXoIoqX1pgcKK/aU3JD27wmMKwGtpB8qRYUYoyXvfGxUVKchLuR5pB3rQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-5.5.0.tgz", + "integrity": "sha512-4FiXBjvQ+z2j7yASeGPEi8VD/5rrGQk4Xrq3EdJmoZgz/tpqChpo5hgXDvmEauwtvOc52q8ghhZK4Oy7qph4ig==", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", + "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", + "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", + "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", + "@svgr/babel-plugin-transform-svg-component": "^5.5.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/core": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-5.5.0.tgz", + "integrity": "sha512-q52VOcsJPvV3jO1wkPtzTuKlvX7Y3xIcWRpCMtBF3MrteZJtBfQw/+u0B1BHy5ColpQc1/YVTrPEtSYIMNZlrQ==", + "dependencies": { + "@svgr/plugin-jsx": "^5.5.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-5.5.0.tgz", + "integrity": "sha512-cAaR/CAiZRB8GP32N+1jocovUtvlj0+e65TB50/6Lcime+EA49m/8l+P2ko+XPJ4dw3xaPS3jOL4F2X4KWxoeQ==", + "dependencies": { + "@babel/types": "^7.12.6" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-5.5.0.tgz", + "integrity": "sha512-V/wVh33j12hGh05IDg8GpIUXbjAPnTdPTKuP4VNLggnwaHMPNQNae2pRnyTAILWCQdz5GyMqtO488g7CKM8CBA==", + "dependencies": { + "@babel/core": "^7.12.3", + "@svgr/babel-preset": "^5.5.0", + "@svgr/hast-util-to-babel-ast": "^5.5.0", + "svg-parser": "^2.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-5.5.0.tgz", + "integrity": "sha512-r5swKk46GuQl4RrVejVwpeeJaydoxkdwkM1mBKOgJLBUJPGaLci6ylg/IjhrRsREKDkr4kbMWdgOtbXEh0fyLQ==", + "dependencies": { + "cosmiconfig": "^7.0.0", + "deepmerge": "^4.2.2", + "svgo": "^1.2.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/webpack": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-5.5.0.tgz", + "integrity": "sha512-DOBOK255wfQxguUta2INKkzPj6AIS6iafZYiYmHn6W3pHlycSRRlvWKCfLDG10fXfLWqE3DJHgRUOyJYmARa7g==", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/plugin-transform-react-constant-elements": "^7.12.1", + "@babel/preset-env": "^7.12.1", + "@babel/preset-react": "^7.12.5", + "@svgr/core": "^5.5.0", + "@svgr/plugin-jsx": "^5.5.0", + "@svgr/plugin-svgo": "^5.5.0", + "loader-utils": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@testing-library/dom": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.3.tgz", + "integrity": "sha512-fB0R+fa3AUqbLHWyxXa2kGVtf1Fe1ZZFr0Zp6AIbIAzXb2mKbEXl+PCQNUOaq5lbTab5tfctfXRNsWXxa2f7Aw==", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.1.3", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@testing-library/dom/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/dom/node_modules/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "peer": true, + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/@testing-library/dom/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@testing-library/dom/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/dom/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "peer": true + }, + "node_modules/@testing-library/dom/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/dom/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz", + "integrity": "sha512-ynmNeT7asXyH3aSVv4vvX4Rb+0qjOhdNHnO/3vuZNqPmhDpV/+rCSGwQ7bLcmU2cJ4dvoheIO85LQj0IbJHEtg==", + "dependencies": { + "@adobe/css-tools": "^4.0.1", + "@babel/runtime": "^7.9.2", + "@types/testing-library__jest-dom": "^5.9.1", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.5.6", + "lodash": "^4.17.15", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=8", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@testing-library/jest-dom/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/react": { + "version": "13.4.0", + "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-13.4.0.tgz", + "integrity": "sha512-sXOGON+WNTh3MLE9rve97ftaZukN3oNf2KjDy7YTx6hcTO2uuLHuCGynMDhFwGw/jYf4OJ2Qk0i4i79qMNNkyw==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^8.5.0", + "@types/react-dom": "^18.0.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@testing-library/react/node_modules/@testing-library/dom": { + "version": "8.20.1", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-8.20.1.tgz", + "integrity": "sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.1.3", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@testing-library/react/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/react/node_modules/aria-query": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.1.3.tgz", + "integrity": "sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==", + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/@testing-library/react/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@testing-library/react/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/react/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@testing-library/react/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/react/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/user-event": { + "version": "13.5.0", + "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-13.5.0.tgz", + "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/aria-query": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", + "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==" + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.5.tgz", + "integrity": "sha512-WXCyOcRtH37HAUkpXhUduaxdm82b4GSlyTqajXviN4EfiuPgNYR109xMCKvpl6zPIpua0DGlMEDCq+g8EdoheQ==", + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.13", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.13.tgz", + "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.5.4.tgz", + "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.56.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.1.tgz", + "integrity": "sha512-18PLWRzhy9glDQp3+wOgfLYRWlhgX0azxgJ63rdpoUHyrC9z0f5CkFburjQx4uD7ZCruw85ZtMt6K+L+R8fLJQ==", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, + "node_modules/@types/express": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.41", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz", + "integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*", + "@types/send": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==" + }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" + }, + "node_modules/@types/http-proxy": { + "version": "1.17.14", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.14.tgz", + "integrity": "sha512-SSrD0c1OQzlFX7pGu1eXxSEjemej64aaNPRhhVYUGqXh0BtldAAx37MG8btcumvpgKyZp1F5Gn3JkktdxiFv6w==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "27.5.2", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.5.2.tgz", + "integrity": "sha512-mpT8LJJ4CMeeahobofYWIjFo0xonRS/HfxnVEPMPFSQdGUt1uHCnoPT7Zhb+sjDU2wz0oKV0OLUR0WzrHNgfeA==", + "dependencies": { + "jest-matcher-utils": "^27.0.0", + "pretty-format": "^27.0.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==" + }, + "node_modules/@types/mime": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" + }, + "node_modules/@types/node": { + "version": "16.18.69", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.69.tgz", + "integrity": "sha512-AfDKv5fWd9XStaEuqFa6PYcM8FgTqxVMsP4BPk60emeB9YX+pp2P0zZ8nU1BQg8hyPGFrMt7MGMRMis8IrcPyg==" + }, + "node_modules/@types/node-forge": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/@types/node-forge/-/node-forge-1.3.11.tgz", + "integrity": "sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/parse-json": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.2.tgz", + "integrity": "sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==" + }, + "node_modules/@types/prettier": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.3.tgz", + "integrity": "sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==" + }, + "node_modules/@types/prop-types": { + "version": "15.7.11", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", + "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" + }, + "node_modules/@types/q": { + "version": "1.5.8", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.8.tgz", + "integrity": "sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==" + }, + "node_modules/@types/qs": { + "version": "6.9.11", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz", + "integrity": "sha512-oGk0gmhnEJK4Yyk+oI7EfXsLayXatCWPHary1MtcmbAifkobT9cM9yutG/hZKIseOU0MqbIwQ/u2nn/Gb+ltuQ==" + }, + "node_modules/@types/range-parser": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" + }, + "node_modules/@types/react": { + "version": "18.2.46", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.46.tgz", + "integrity": "sha512-nNCvVBcZlvX4NU1nRRNV/mFl1nNRuTuslAJglQsq+8ldXe5Xv0Wd2f7WTE3jOxhLH2BFfiZGC6GCp+kHQbgG+w==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.2.18", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.18.tgz", + "integrity": "sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-transition-group": { + "version": "4.4.10", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz", + "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" + }, + "node_modules/@types/scheduler": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" + }, + "node_modules/@types/semver": { + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", + "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==" + }, + "node_modules/@types/send": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", + "dependencies": { + "@types/mime": "^1", + "@types/node": "*" + } + }, + "node_modules/@types/serve-index": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.4.tgz", + "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", + "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", + "dependencies": { + "@types/http-errors": "*", + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.36", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.36.tgz", + "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==" + }, + "node_modules/@types/testing-library__jest-dom": { + "version": "5.14.9", + "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.9.tgz", + "integrity": "sha512-FSYhIjFlfOpGSRyVoMBMuS3ws5ehFQODymf3vlI7U1K8c7PHwWwFY7VREfmsuzHSOnoKs/9/Y983ayOs7eRzqw==", + "dependencies": { + "@types/jest": "*" + } + }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==" + }, + "node_modules/@types/ws": { + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", + "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "16.0.9", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.9.tgz", + "integrity": "sha512-tHhzvkFXZQeTECenFoRljLBYPZJ7jAVxqqtEI0qTLOmuultnFp4I9yKE17vTuhf7BkhCu7I4XuemPgikDVuYqA==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.3", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", + "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", + "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/type-utils": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.62.0.tgz", + "integrity": "sha512-RTXpeB3eMkpoclG3ZHft6vG/Z30azNHuqY6wKPBHlVMZFuEvrtlEDe8gMqDb+SO+9hjC/pLekeSCryf9vMZlCw==", + "dependencies": { + "@typescript-eslint/utils": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", + "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "dependencies": { + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", + "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", + "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "dependencies": { + "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/utils": "5.62.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", + "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", + "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/visitor-keys": "5.62.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", + "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.62.0", + "@typescript-eslint/types": "5.62.0", + "@typescript-eslint/typescript-estree": "5.62.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.62.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", + "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "dependencies": { + "@typescript-eslint/types": "5.62.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", + "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", + "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", + "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", + "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-opt": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6", + "@webassemblyjs/wast-printer": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", + "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", + "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-buffer": "1.11.6", + "@webassemblyjs/wasm-gen": "1.11.6", + "@webassemblyjs/wasm-parser": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", + "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", + "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "dependencies": { + "@webassemblyjs/ast": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + }, + "node_modules/abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", + "deprecated": "Use your platform's native atob() and btoa() methods instead" + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", + "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/array-includes": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.reduce": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz", + "integrity": "sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz", + "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==" + }, + "node_modules/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==" + }, + "node_modules/asynciterator.prototype": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", + "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==", + "dependencies": { + "has-symbols": "^1.0.3" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.16", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", + "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001538", + "fraction.js": "^4.3.6", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", + "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", + "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/babel-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", + "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==", + "dependencies": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/babel-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/babel-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-loader": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", + "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz", + "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz", + "integrity": "sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/babel-plugin-named-asset-import": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.8.tgz", + "integrity": "sha512-WXiAc++qo7XcJ1ZnTYGtLxmBCVbddAml3CEXgWaBzNzLNoxtQ8AiGEFDMOhot9XjTCQbvP5E77Fj9Gk924f00Q==", + "peerDependencies": { + "@babel/core": "^7.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz", + "integrity": "sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ==", + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.4.4", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.8.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz", + "integrity": "sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.4", + "core-js-compat": "^3.33.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz", + "integrity": "sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.4.4" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-transform-react-remove-prop-types": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", + "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@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-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz", + "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==", + "dependencies": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-react-app": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-10.0.1.tgz", + "integrity": "sha512-b0D9IZ1WhhCWkrTXyFuIIgqGzSkRIH5D5AmB0bXbzYAB1OBAwHcUeyWW2LorutLWF5btNo/N7r/cIdmvvKJlYg==", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/plugin-proposal-decorators": "^7.16.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", + "@babel/plugin-proposal-numeric-separator": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-transform-flow-strip-types": "^7.16.0", + "@babel/plugin-transform-react-display-name": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.4", + "@babel/preset-env": "^7.16.4", + "@babel/preset-react": "^7.16.0", + "@babel/preset-typescript": "^7.16.0", + "@babel/runtime": "^7.16.3", + "babel-plugin-macros": "^3.1.0", + "babel-plugin-transform-react-remove-prop-types": "^0.4.24" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==" + }, + "node_modules/bfj": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-7.1.0.tgz", + "integrity": "sha512-I6MMLkn+anzNdCUp9hMRyui1HaNEUCco50lxbvNS4+EyXg8lN3nJ48PjPWtbH8UVS9CuMoaKE9U2V3l29DaRQw==", + "dependencies": { + "bluebird": "^3.7.2", + "check-types": "^11.2.3", + "hoopy": "^0.1.4", + "jsonpath": "^1.1.1", + "tryer": "^1.0.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/bonjour-service": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.2.0.tgz", + "integrity": "sha512-xdzMA6JGckxyJzZByjEWRcfKmDxXaGXZWVftah3FkCqdlePNS9DjHSUN5zkP4oEfz/t0EXXlro88EIhzwMB4zA==", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + }, + "node_modules/browserslist": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", + "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001565", + "electron-to-chromium": "^1.4.601", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "dependencies": { + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001572", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001572.tgz", + "integrity": "sha512-1Pbh5FLmn5y4+QhNyJE9j3/7dK44dGB83/ZMjv/qJk86TvDbjk0LosiZo0i0WB0Vx607qMX9jYrn1VLHCkN4rw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz", + "integrity": "sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/check-types": { + "version": "11.2.3", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.3.tgz", + "integrity": "sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg==" + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", + "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==" + }, + "node_modules/clean-css": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", + "integrity": "sha512-D5J+kHaVb/wKSFcyyV75uCn8fiY4sV38XJoe4CUyGQ+mOU/fMVYUdH1hJC+CJQ5uY3EnW27SbJYS4X8BiLrAFg==", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clean-css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clsx": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", + "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dependencies": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", + "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==" + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==" + }, + "node_modules/colorette": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "engines": { + "node": ">= 12" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==" + }, + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", + "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==" + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/core-js": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.35.0.tgz", + "integrity": "sha512-ntakECeqg81KqMueeGJ79Q5ZgQNR+6eaE8sxGCx62zMbAIj65q+uYvatToew3m6eAGdU4gNZwpZ34NMe4GYswg==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.35.0.tgz", + "integrity": "sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw==", + "dependencies": { + "browserslist": "^4.22.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-pure": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.35.0.tgz", + "integrity": "sha512-f+eRYmkou59uh7BPcyJ8MC76DiGhspj1KMxVIcF24tzP8NA9HVa1uC7BTW2tgx7E1QVCzDzsgp7kArrzhlz8Ew==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz", + "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/css-blank-pseudo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", + "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-blank-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-declaration-sorter": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", + "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-has-pseudo": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", + "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-has-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-loader": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.8.1.tgz", + "integrity": "sha512-xDAXtEVGlD0gJ07iclwWVkLoZOpEvAWaSyf6W18S2pOC//K8+qUDIx8IIT3D+HjnmkJPQeesOPv5aiUaJsCM2g==", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.21", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.3", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-minimizer-webpack-plugin": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", + "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", + "dependencies": { + "cssnano": "^5.0.6", + "jest-worker": "^27.0.2", + "postcss": "^8.3.5", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-prefers-color-scheme": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", + "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", + "bin": { + "css-prefers-color-scheme": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" + }, + "node_modules/css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dependencies": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-tree/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", + "integrity": "sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==" + }, + "node_modules/cssdb": { + "version": "7.10.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.10.0.tgz", + "integrity": "sha512-yGZ5tmA57gWh/uvdQBHs45wwFY0IBh3ypABk5sEubPBPSzXzkNgsWReqx7gdx6uhC+QoFBe+V8JwBB9/hQ6cIA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + } + ] + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "5.1.15", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", + "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", + "dependencies": { + "cssnano-preset-default": "^5.2.14", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.2.14", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", + "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", + "dependencies": { + "css-declaration-sorter": "^6.3.1", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.1", + "postcss-convert-values": "^5.1.3", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.4", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.4", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.2", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/csso/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==" + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==" + }, + "node_modules/deep-equal": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.3.tgz", + "integrity": "sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.5", + "es-get-iterator": "^1.1.3", + "get-intrinsic": "^1.2.2", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.2", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "node_modules/detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "dependencies": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "bin": { + "detect": "bin/detect-port", + "detect-port": "bin/detect-port" + }, + "engines": { + "node": ">= 4.2.1" + } + }, + "node_modules/detect-port-alt/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/detect-port-alt/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==" + }, + "node_modules/diff-sequences": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", + "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" + }, + "node_modules/dns-packet": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", + "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", + "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==" + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "deprecated": "Use your platform's native DOMException instead", + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz", + "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==", + "engines": { + "node": ">=10" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==" + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/ejs": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", + "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.617", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.617.tgz", + "integrity": "sha512-sYNE3QxcDS4ANW1k4S/wWYMXjCVcFSOX3Bg8jpuMFaXt/x8JCmp0R1Xe1ZXDX4WXnSRBf+GJ/3eGWicUuQq5cg==" + }, + "node_modules/emittery": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.8.1.tgz", + "integrity": "sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.1.4.tgz", + "integrity": "sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==", + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/es-abstract": { + "version": "1.22.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", + "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.5", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.2", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.12", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==" + }, + "node_modules/es-get-iterator": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz", + "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz", + "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==", + "dependencies": { + "asynciterator.prototype": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.1", + "es-set-tostringtag": "^2.0.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.0.1" + } + }, + "node_modules/es-module-lexer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", + "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==" + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", + "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "dependencies": { + "get-intrinsic": "^1.2.2", + "has-tostringtag": "^1.0.0", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint": { + "version": "8.56.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz", + "integrity": "sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.56.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-react-app": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", + "integrity": "sha512-K6rNzvkIeHaTd8m/QEh1Zko0KI7BACWkkneSs6s9cKZC/J27X3eZR6Upt1jkmZ/4FK+XUOPPxMEN7+lbUXfSlA==", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/eslint-parser": "^7.16.3", + "@rushstack/eslint-patch": "^1.1.0", + "@typescript-eslint/eslint-plugin": "^5.5.0", + "@typescript-eslint/parser": "^5.5.0", + "babel-preset-react-app": "^10.0.1", + "confusing-browser-globals": "^1.0.11", + "eslint-plugin-flowtype": "^8.0.3", + "eslint-plugin-import": "^2.25.3", + "eslint-plugin-jest": "^25.3.0", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-react": "^7.27.1", + "eslint-plugin-react-hooks": "^4.3.0", + "eslint-plugin-testing-library": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-flowtype": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", + "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", + "dependencies": { + "lodash": "^4.17.21", + "string-natural-compare": "^3.0.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@babel/plugin-syntax-flow": "^7.14.5", + "@babel/plugin-transform-react-jsx": "^7.14.9", + "eslint": "^8.1.0" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "25.7.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-25.7.0.tgz", + "integrity": "sha512-PWLUEXeeF7C9QGKqvdSbzLOiLTx+bno7/HC9eefePfEb257QFHg7ye3dh80AZVkaa/RQsBB1Q/ORQvg2X7F0NQ==", + "dependencies": { + "@typescript-eslint/experimental-utils": "^5.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz", + "integrity": "sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==", + "dependencies": { + "@babel/runtime": "^7.23.2", + "aria-query": "^5.3.0", + "array-includes": "^3.1.7", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "=4.7.0", + "axobject-query": "^3.2.1", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "es-iterator-helpers": "^1.0.15", + "hasown": "^2.0.0", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.entries": "^1.1.7", + "object.fromentries": "^2.0.7" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.33.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", + "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.12", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "object.hasown": "^1.1.2", + "object.values": "^1.1.6", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.4", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.8" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-testing-library": { + "version": "5.11.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-testing-library/-/eslint-plugin-testing-library-5.11.1.tgz", + "integrity": "sha512-5eX9e1Kc2PqVRed3taaLnAAqPZGEX75C+M/rXzUAI3wIg/ZxzUm1OVAwfe/O+vE+6YXOLetSe9g5GKD2ecXipw==", + "dependencies": { + "@typescript-eslint/utils": "^5.58.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0", + "npm": ">=6" + }, + "peerDependencies": { + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/eslint-webpack-plugin/-/eslint-webpack-plugin-3.2.0.tgz", + "integrity": "sha512-avrKcGncpPbPSUHX6B3stNGzkKFto3eL+DKM4+VyMrVnhPc3vRczVlCq3uhuFOdRvDHTVXuzwk1ZKUrqDQHQ9w==", + "dependencies": { + "@types/eslint": "^7.29.0 || ^8.4.1", + "jest-worker": "^28.0.2", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/jest-worker": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-28.1.3.tgz", + "integrity": "sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/eslint-webpack-plugin/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz", + "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==" + }, + "node_modules/fastq": { + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.16.0.tgz", + "integrity": "sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA==", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", + "integrity": "sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/filesize": { + "version": "8.0.7", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-8.0.7.tgz", + "integrity": "sha512-pjmC+bkIF8XI7fWaH8KxHcZL3DPybs1roSKP4rKDvy20tAWwIObE4+JIseG2byfGKhud5ZnM4YSGKBz7Sh0ndQ==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==" + }, + "node_modules/follow-redirects": { + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", + "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/fork-ts-checker-webpack-plugin": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", + "integrity": "sha512-SbH/l9ikmMWycd5puHJKTkZJKddF4iRLyW3DeZ08HTI7NGyLS38MXd/KGgeWumQO7YNQbW2u/NtPT2YowbPaGQ==", + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=10", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "eslint": ">= 6", + "typescript": ">= 2.7", + "vue-template-compiler": "*", + "webpack": ">= 4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", + "dependencies": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.5.tgz", + "integrity": "sha512-8uMbBjrhzW76TYgEV27Y5E//W2f/lTFmx78P2w19FZSxarhI/798APGQyuGCwmkNxgwGRhrLfvWyLBvNtuOmew==" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "dependencies": { + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==" + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz", + "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + }, + "node_modules/harmony-reflect": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.2.tgz", + "integrity": "sha512-HIp/n38R9kQjDEziXyDTuW3vvoxxyxjxFzXLrBr18uB47GnSt+G9D29fqrpM5ZkspMcPICud3XsBJQ4Y2URg8g==" + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "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" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-entities": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", + "integrity": "sha512-igBTJcNNNhvZFRtm8uA6xMY6xYleeDwn3PeBCkDz7tHttv4F2hsDI2aPgNERWzvRcNYHNT3ymRaQzllmXj4YsQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/mdevils" + }, + { + "type": "patreon", + "url": "https://patreon.com/mdevils" + } + ] + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz", + "integrity": "sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==", + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "@rspack/core": "0.x || 1.x", + "webpack": "^5.20.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/idb": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", + "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==" + }, + "node_modules/identity-obj-proxy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", + "integrity": "sha512-00n6YnVHKrinT9t0d9+5yZC6UBNJANpYEQvL2LlX6Ab9lnmxzIRcEmTPuyGScvl1+jKuCICX1Z0Ab1pPKKdikA==", + "dependencies": { + "harmony-reflect": "^1.4.6" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immer": { + "version": "9.0.21", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", + "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/internal-slot": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", + "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", + "dependencies": { + "get-intrinsic": "^1.2.2", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ipaddr.js": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", + "integrity": "sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==" + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" + }, + "node_modules/is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^4.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/make-dir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", + "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iterator.prototype": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", + "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + } + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jake": { + "version": "10.8.7", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", + "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jake/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jake/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jake/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jake/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jake/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jake/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz", + "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==", + "dependencies": { + "@jest/core": "^27.5.1", + "import-local": "^3.0.2", + "jest-cli": "^27.5.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz", + "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==", + "dependencies": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz", + "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-circus/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-circus/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz", + "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==", + "dependencies": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz", + "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==", + "dependencies": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-config/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-config/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", + "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-diff/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", + "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==", + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-each/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-each/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz", + "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", + "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz", + "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-jasmine2": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz", + "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-jasmine2/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-jasmine2/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-jasmine2/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-jasmine2/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "dependencies": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", + "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-matcher-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz", + "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-message-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-message-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-mock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz", + "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz", + "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz", + "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==", + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz", + "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-resolve/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-resolve/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runner/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-runner/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", + "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runtime/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-runtime/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-serializer": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz", + "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==", + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz", + "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==", + "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-snapshot/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz", + "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz", + "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==", + "dependencies": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-validate/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-validate/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-1.1.0.tgz", + "integrity": "sha512-Va5nLSJTN7YFtC2jd+7wsoe1pNe5K4ShLux/E5iHEwlB9AxaxmggY7to9KUqKojhaJw3aXqt5WAb4jGPOolpEw==", + "dependencies": { + "ansi-escapes": "^4.3.1", + "chalk": "^4.0.0", + "jest-regex-util": "^28.0.0", + "jest-watcher": "^28.0.0", + "slash": "^4.0.0", + "string-length": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "jest": "^27.0.0 || ^28.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/console": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-28.1.3.tgz", + "integrity": "sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/console/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/test-result": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-28.1.3.tgz", + "integrity": "sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==", + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/types": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-28.1.3.tgz", + "integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==", + "dependencies": { + "@jest/schemas": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@types/yargs": { + "version": "17.0.32", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", + "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-watch-typeahead/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-watch-typeahead/node_modules/emittery": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.2.tgz", + "integrity": "sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-message-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-28.1.3.tgz", + "integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-message-util/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-regex-util": { + "version": "28.0.2", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-28.0.2.tgz", + "integrity": "sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==", + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-util": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-28.1.3.tgz", + "integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-28.1.3.tgz", + "integrity": "sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==", + "dependencies": { + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.3", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/pretty-format": { + "version": "28.1.3", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-28.1.3.tgz", + "integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==", + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/jest-watch-typeahead/node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-5.0.1.tgz", + "integrity": "sha512-9Ep08KAMUn0OadnVaBuRdE2l615CQ508kr0XMadjClfYpdCyvrbFp6Taebo8yyxokQ4viUd/xPPUA4FGgUa0ow==", + "dependencies": { + "char-regex": "^2.0.0", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length/node_modules/char-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-2.0.1.tgz", + "integrity": "sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw==", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz", + "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==", + "dependencies": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-watcher/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watcher/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/jest-watcher/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonpath": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/jsonpath/-/jsonpath-1.1.1.tgz", + "integrity": "sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w==", + "dependencies": { + "esprima": "1.2.2", + "static-eval": "2.0.2", + "underscore": "1.12.1" + } + }, + "node_modules/jsonpath/node_modules/esprima": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-1.2.2.tgz", + "integrity": "sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-5.0.1.tgz", + "integrity": "sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", + "integrity": "sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", + "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==" + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/launch-editor": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/launch-editor/-/launch-editor-2.6.1.tgz", + "integrity": "sha512-eB/uXmFVpY4zezmGp5XtU21kwo7GBbKB+EQ+UZeWtGb9yAM5xt/Evk+lYH3eRNAtId+ej4u7TYPFZ07w4s7rRw==", + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.8.1" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz", + "integrity": "sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==", + "dependencies": { + "fs-monkey": "^1.0.4" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.7.6", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.6.tgz", + "integrity": "sha512-Qk7HcgaPkGG6eD77mLvZS1nmxlao3j+9PkrT9Uc7HAE1id3F41+DdBRYRYkbyfNRGzm8/YWtzhw7nVPmwhqTQw==", + "dependencies": { + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/n3": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/n3/-/n3-1.17.3.tgz", + "integrity": "sha512-ZHc24eZi2GIJcJQVxtL6NT3g+mTHRNeTVfXWELzeUOirqLrh2AAyg0nfYZ/kryJWKFSCgO37DGB6Ok3qmGgEcA==", + "dependencies": { + "queue-microtask": "^1.1.2", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">=12.0" + } + }, + "node_modules/n3/node_modules/readable-stream": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==" + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nwsapi": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", + "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", + "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz", + "integrity": "sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==", + "dependencies": { + "array.prototype.reduce": "^1.0.6", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "safe-array-concat": "^1.0.0" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, + "node_modules/object.hasown": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", + "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", + "dependencies": { + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz", + "integrity": "sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag==", + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-up/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss": { + "version": "8.4.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", + "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-attribute-case-insensitive": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz", + "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-browser-comments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-4.0.0.tgz", + "integrity": "sha512-X9X9/WN3KIvY9+hNERUqX9gncsgBA25XaeR+jshHz2j8+sYyHktHw1JdKuMjeLpGktXidqDhA7b/qm1mrBDmgg==", + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "browserslist": ">=4", + "postcss": ">=8" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", + "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=7.6.0" + }, + "peerDependencies": { + "postcss": "^8.4.6" + } + }, + "node_modules/postcss-color-functional-notation": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz", + "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-color-hex-alpha": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz", + "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-rebeccapurple": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz", + "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-colormin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", + "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-custom-media": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz", + "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-custom-properties": { + "version": "12.1.11", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.11.tgz", + "integrity": "sha512-0IDJYhgU8xDv1KY6+VgUwuQkVtmYzRwu+dMjnmdMafXYv86SWqfxkc7qdDvWS38vsjaEtv8e0vGOUQrAiMBLpQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz", + "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-dir-pseudo-class": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz", + "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-discard-comments": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-double-position-gradients": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz", + "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-env-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", + "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-flexbugs-fixes": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-5.0.2.tgz", + "integrity": "sha512-18f9voByak7bTktR2QgDveglpn9DTbBWPUzSOe9g0N4WR/2eSt6Vrcbf0hmspvMI6YWGywz6B9f7jzpFNJJgnQ==", + "peerDependencies": { + "postcss": "^8.1.4" + } + }, + "node_modules/postcss-focus-visible": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", + "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-within": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", + "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-gap-properties": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.5.tgz", + "integrity": "sha512-IuE6gKSdoUNcvkGIqdtjtcMtZIFyXZhmFd5RUlg97iVEvp1BZKV5ngsAjCjrVy+14uhGBQl9tzmi1Qwq4kqVOg==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-image-set-function": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz", + "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-initial": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", + "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-lab-function": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz", + "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz", + "integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==", + "engines": { + "node": ">=14" + } + }, + "node_modules/postcss-load-config/node_modules/yaml": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz", + "integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==", + "engines": { + "node": ">= 14" + } + }, + "node_modules/postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-logical": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", + "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-media-minmax": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", + "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", + "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", + "dependencies": { + "browserslist": "^4.21.4", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.3.tgz", + "integrity": "sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.1.0.tgz", + "integrity": "sha512-SaIbK8XW+MZbd0xHPf7kdfA/3eOt7vxJ72IRecn3EzuZVLr1r0orzf0MX/pN8m+NMDoo6X/SQd8oeKqGZd8PXg==", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-nesting": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.2.0.tgz", + "integrity": "sha512-EwMkYchxiDiKUhlJGzWsD9b2zvq/r2SSubcRrgP+jujMXFzqvANLt16lJANC+5uZ6hjI7lpRmI6O8JIl+8l1KA==", + "dependencies": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-normalize": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-10.0.1.tgz", + "integrity": "sha512-+5w18/rDev5mqERcG3W5GZNMJa1eoYYNGo8gB7tEwaos0ajk3ZXAI4mHGcNT47NE+ZnZD1pEpUOFLvltIwmeJA==", + "dependencies": { + "@csstools/normalize.css": "*", + "postcss-browser-comments": "^4", + "sanitize.css": "*" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "browserslist": ">= 4", + "postcss": ">= 8" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", + "dependencies": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-opacity-percentage": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.3.tgz", + "integrity": "sha512-An6Ba4pHBiDtyVpSLymUUERMo2cU7s+Obz6BTrS+gxkbnSBNKSuD0AVUc+CpBMrpVPKKfoVz0WQCX+Tnst0i4A==", + "funding": [ + { + "type": "kofi", + "url": "https://ko-fi.com/mrcgrtz" + }, + { + "type": "liberapay", + "url": "https://liberapay.com/mrcgrtz" + } + ], + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-ordered-values": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-overflow-shorthand": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz", + "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "peerDependencies": { + "postcss": "^8" + } + }, + "node_modules/postcss-place": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.5.tgz", + "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-preset-env": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.8.3.tgz", + "integrity": "sha512-T1LgRm5uEVFSEF83vHZJV2z19lHg4yJuZ6gXZZkqVsqv63nlr6zabMH3l4Pc01FQCyfWVrh2GaUeCVy9Po+Aag==", + "dependencies": { + "@csstools/postcss-cascade-layers": "^1.1.1", + "@csstools/postcss-color-function": "^1.1.1", + "@csstools/postcss-font-format-keywords": "^1.0.1", + "@csstools/postcss-hwb-function": "^1.0.2", + "@csstools/postcss-ic-unit": "^1.0.1", + "@csstools/postcss-is-pseudo-class": "^2.0.7", + "@csstools/postcss-nested-calc": "^1.0.0", + "@csstools/postcss-normalize-display-values": "^1.0.1", + "@csstools/postcss-oklab-function": "^1.1.1", + "@csstools/postcss-progressive-custom-properties": "^1.3.0", + "@csstools/postcss-stepped-value-functions": "^1.0.1", + "@csstools/postcss-text-decoration-shorthand": "^1.0.0", + "@csstools/postcss-trigonometric-functions": "^1.0.2", + "@csstools/postcss-unset-value": "^1.0.2", + "autoprefixer": "^10.4.13", + "browserslist": "^4.21.4", + "css-blank-pseudo": "^3.0.3", + "css-has-pseudo": "^3.0.4", + "css-prefers-color-scheme": "^6.0.3", + "cssdb": "^7.1.0", + "postcss-attribute-case-insensitive": "^5.0.2", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^4.2.4", + "postcss-color-hex-alpha": "^8.0.4", + "postcss-color-rebeccapurple": "^7.1.1", + "postcss-custom-media": "^8.0.2", + "postcss-custom-properties": "^12.1.10", + "postcss-custom-selectors": "^6.0.3", + "postcss-dir-pseudo-class": "^6.0.5", + "postcss-double-position-gradients": "^3.1.2", + "postcss-env-function": "^4.0.6", + "postcss-focus-visible": "^6.0.4", + "postcss-focus-within": "^5.0.4", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^3.0.5", + "postcss-image-set-function": "^4.0.7", + "postcss-initial": "^4.0.1", + "postcss-lab-function": "^4.2.1", + "postcss-logical": "^5.0.4", + "postcss-media-minmax": "^5.0.0", + "postcss-nesting": "^10.2.0", + "postcss-opacity-percentage": "^1.1.2", + "postcss-overflow-shorthand": "^3.0.4", + "postcss-page-break": "^3.0.4", + "postcss-place": "^7.0.5", + "postcss-pseudo-class-any-link": "^7.1.6", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-pseudo-class-any-link": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz", + "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", + "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "peerDependencies": { + "postcss": "^8.0.3" + } + }, + "node_modules/postcss-selector-not": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-6.0.1.tgz", + "integrity": "sha512-1i9affjAe9xu/y9uqWH+tD4r6/hDaXJruk8xn2x1vzxC2U3J3LKO3zJW4CyxlNhA56pADJ/djpEwpH1RClI2rQ==", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.15", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/postcss-svgo/node_modules/css-tree": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/postcss-svgo/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/postcss-svgo/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-svgo/node_modules/svgo": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", + "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "dependencies": { + "performance-now": "^2.1.0" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-app-polyfill": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-3.0.0.tgz", + "integrity": "sha512-sZ41cxiU5llIB003yxxQBYrARBqe0repqPTTYBTmMqTz9szeBbE37BehCE891NZsmdZqqP+xWKdT3eo3vOzN8w==", + "dependencies": { + "core-js": "^3.19.2", + "object-assign": "^4.1.1", + "promise": "^8.1.0", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.9", + "whatwg-fetch": "^3.6.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-app-polyfill/node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "node_modules/react-dev-utils": { + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", + "integrity": "sha512-84Ivxmr17KjUupyqzFode6xKhjwuEJDROWKJy/BthkL7Wn6NJ8h4WE6k/exAv6ImS+0oZLRRW5j/aINMHyeGeQ==", + "dependencies": { + "@babel/code-frame": "^7.16.0", + "address": "^1.1.2", + "browserslist": "^4.18.1", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "detect-port-alt": "^1.1.6", + "escape-string-regexp": "^4.0.0", + "filesize": "^8.0.6", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.5.0", + "global-modules": "^2.0.0", + "globby": "^11.0.4", + "gzip-size": "^6.0.0", + "immer": "^9.0.7", + "is-root": "^2.1.0", + "loader-utils": "^3.2.0", + "open": "^8.4.0", + "pkg-up": "^3.1.0", + "prompts": "^2.4.2", + "react-error-overlay": "^6.0.11", + "recursive-readdir": "^2.2.2", + "shell-quote": "^1.7.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-dev-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/react-dev-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/react-dev-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/react-dev-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/react-dev-utils/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/react-dev-utils/node_modules/loader-utils": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.1.tgz", + "integrity": "sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/react-dev-utils/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-error-overlay": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.11.tgz", + "integrity": "sha512-/6UZ2qgEyH2aqzYZgQPxEnz33NJ2gNsnHA2o5+o4wW9bLM/JYQitNP9xPhsXwC08hMMovfGe/8retsdDsczPRg==" + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "node_modules/react-refresh": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.11.0.tgz", + "integrity": "sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-scripts": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-5.0.1.tgz", + "integrity": "sha512-8VAmEm/ZAwQzJ+GOMLbBsTdDKOpuZh7RPs0UymvBR2vRk4iZWCskjbFnxqjrzoIvlNNRZ3QJFx6/qDSi6zSnaQ==", + "dependencies": { + "@babel/core": "^7.16.0", + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", + "@svgr/webpack": "^5.5.0", + "babel-jest": "^27.4.2", + "babel-loader": "^8.2.3", + "babel-plugin-named-asset-import": "^0.3.8", + "babel-preset-react-app": "^10.0.1", + "bfj": "^7.0.2", + "browserslist": "^4.18.1", + "camelcase": "^6.2.1", + "case-sensitive-paths-webpack-plugin": "^2.4.0", + "css-loader": "^6.5.1", + "css-minimizer-webpack-plugin": "^3.2.0", + "dotenv": "^10.0.0", + "dotenv-expand": "^5.1.0", + "eslint": "^8.3.0", + "eslint-config-react-app": "^7.0.1", + "eslint-webpack-plugin": "^3.1.1", + "file-loader": "^6.2.0", + "fs-extra": "^10.0.0", + "html-webpack-plugin": "^5.5.0", + "identity-obj-proxy": "^3.0.0", + "jest": "^27.4.3", + "jest-resolve": "^27.4.2", + "jest-watch-typeahead": "^1.0.0", + "mini-css-extract-plugin": "^2.4.5", + "postcss": "^8.4.4", + "postcss-flexbugs-fixes": "^5.0.2", + "postcss-loader": "^6.2.1", + "postcss-normalize": "^10.0.1", + "postcss-preset-env": "^7.0.1", + "prompts": "^2.4.2", + "react-app-polyfill": "^3.0.0", + "react-dev-utils": "^12.0.1", + "react-refresh": "^0.11.0", + "resolve": "^1.20.0", + "resolve-url-loader": "^4.0.0", + "sass-loader": "^12.3.0", + "semver": "^7.3.5", + "source-map-loader": "^3.0.0", + "style-loader": "^3.3.1", + "tailwindcss": "^3.0.2", + "terser-webpack-plugin": "^5.2.5", + "webpack": "^5.64.4", + "webpack-dev-server": "^4.6.0", + "webpack-manifest-plugin": "^4.0.2", + "workbox-webpack-plugin": "^6.4.1" + }, + "bin": { + "react-scripts": "bin/react-scripts.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + }, + "peerDependencies": { + "react": ">= 16", + "typescript": "^3.2.1 || ^4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recursive-readdir": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", + "integrity": "sha512-8HrF5ZsXk5FAH9dgsx3BlUer73nIhuj+9OrQwEbLTPOBzGkL1lsFCR01am+v+0m2Cmbs1nP12hLDl5FA7EszKA==", + "dependencies": { + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz", + "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-parser": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.3.0.tgz", + "integrity": "sha512-TVILVSz2jY5D47F4mA4MppkBrafEaiUWJO/TcZHEIuI13AqoZMkK1WMA4Om1YkYbTx+9Ki1/tSUXbceyr9saRg==" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/renderkid": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-url-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-4.0.0.tgz", + "integrity": "sha512-05VEMczVREcbtT7Bz+C+96eUO5HDNvdthIiMB34t7FcF8ehcu4wC0sSgPUubs3XW2Q3CNLJk/BJrCU9wVRymiA==", + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^7.0.35", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=8.9" + }, + "peerDependencies": { + "rework": "1.0.1", + "rework-visit": "1.0.0" + }, + "peerDependenciesMeta": { + "rework": { + "optional": true + }, + "rework-visit": { + "optional": true + } + } + }, + "node_modules/resolve-url-loader/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/resolve-url-loader/node_modules/picocolors": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-0.2.1.tgz", + "integrity": "sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==" + }, + "node_modules/resolve-url-loader/node_modules/postcss": { + "version": "7.0.39", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.39.tgz", + "integrity": "sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/resolve-url-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-1.1.1.tgz", + "integrity": "sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz", + "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==", + "deprecated": "This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/rollup-plugin-terser/node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sanitize.css": { + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/sanitize.css/-/sanitize.css-13.0.0.tgz", + "integrity": "sha512-ZRwKbh/eQ6w9vmTjkuG0Ioi3HBwPFce0O+v//ve+aOq1oeCy7jMV2qzzAlpsNuqpqCBjjriM1lbtZbF/Q8jVyA==" + }, + "node_modules/sass-loader": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", + "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "dependencies": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" + }, + "node_modules/selfsigned": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.4.1.tgz", + "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", + "dependencies": { + "@types/node-forge": "^1.3.0", + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serialize-javascript": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.1.tgz", + "integrity": "sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==" + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.2.tgz", + "integrity": "sha512-BokxPoLjyl3iOrgkWaakaxqnelAJSS+0V+De0kKIq6lyWrXuiPgYTGp6z3iHmqljKAaLXwZa+ctD8GccRJeVvg==", + "dependencies": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead" + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility" + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/stackframe": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz", + "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==" + }, + "node_modules/static-eval": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.2.tgz", + "integrity": "sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg==", + "dependencies": { + "escodegen": "^1.8.1" + } + }, + "node_modules/static-eval/node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/static-eval/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/static-eval/node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/static-eval/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-eval/node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz", + "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==", + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-natural-compare": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", + "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==" + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", + "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "regexp.prototype.flags": "^1.5.0", + "set-function-name": "^2.0.0", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-2.0.1.tgz", + "integrity": "sha512-ZprKx+bBLXv067WTCALv8SSz5l2+XhpYCsVtSqlMnkAXMWDq+/ekVbl1ghqP9rUHTzv6sm/DwCOiYutU/yp1fw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-loader": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.3.tgz", + "integrity": "sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw==", + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/stylehacks": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/sucrase/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sucrase/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==" + }, + "node_modules/svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", + "dependencies": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/svgo/node_modules/css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "node_modules/svgo/node_modules/css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/svgo/node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/svgo/node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/svgo/node_modules/domutils/node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "node_modules/svgo/node_modules/nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + "node_modules/tailwindcss": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.0.tgz", + "integrity": "sha512-VigzymniH77knD1dryXbyxR+ePHihHociZbXnLZHUyzf2MMs2ZVqlUrZ3FvpXP8pno9JzmILt1sZPD19M3IxtA==", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.19.1", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-2.0.0.tgz", + "integrity": "sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/tempy": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.6.0.tgz", + "integrity": "sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==", + "dependencies": { + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.16.0.tgz", + "integrity": "sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.26.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.26.0.tgz", + "integrity": "sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ==", + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/throat": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", + "integrity": "sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==" + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", + "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", + "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/tryer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", + "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==" + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/underscore": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.12.1.tgz", + "integrity": "sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw==" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha512-vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==" + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-to-istanbul": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz", + "integrity": "sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/web-vitals": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-2.1.4.tgz", + "integrity": "sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg==" + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "engines": { + "node": ">=10.4" + } + }, + "node_modules/webpack": { + "version": "5.89.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz", + "integrity": "sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==", + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.7", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/webpack-dev-middleware/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.15.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.15.1.tgz", + "integrity": "sha512-5hbAst3h3C3L8w6W4P96L5vaV0PxSmJhxZvWKYIdgxOQm8pNZ5dEOmmSLBVpP85ReeyRt6AS1QJNyo/oFFPeVA==", + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.5", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-server/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.2.0.tgz", + "integrity": "sha512-L0jRsrPpjdckP3oPug3/VxNKt2trR8TcabrM6FOAAlvC/9Phcmm+cuAgTlxBqdBR1WJx7Naj9WHw+aOmheSVbw==", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.9.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.1.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-manifest-plugin": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-4.1.1.tgz", + "integrity": "sha512-YXUAwxtfKIJIKkhg03MKuiFAD72PlrqCiwdwO4VEXdRO5V0ORCNwaOwAZawPZalCbmH9kBDmXnNeQOw+BIEiow==", + "dependencies": { + "tapable": "^2.0.0", + "webpack-sources": "^2.2.0" + }, + "engines": { + "node": ">=12.22.0" + }, + "peerDependencies": { + "webpack": "^4.44.2 || ^5.47.0" + } + }, + "node_modules/webpack-manifest-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-manifest-plugin/node_modules/webpack-sources": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", + "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", + "dependencies": { + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/whatwg-fetch": { + "version": "3.6.20", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz", + "integrity": "sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg==" + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + }, + "node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", + "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "dependencies": { + "function.prototype.name": "^1.1.5", + "has-tostringtag": "^1.0.0", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.4", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workbox-background-sync": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-6.6.0.tgz", + "integrity": "sha512-jkf4ZdgOJxC9u2vztxLuPT/UjlH7m/nWRQ/MgGL0v8BJHoZdVGJd18Kck+a0e55wGXdqyHO+4IQTk0685g4MUw==", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-broadcast-update": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-6.6.0.tgz", + "integrity": "sha512-nm+v6QmrIFaB/yokJmQ/93qIJ7n72NICxIwQwe5xsZiV2aI93MGGyEyzOzDPVz5THEr5rC3FJSsO3346cId64Q==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-build": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-6.6.0.tgz", + "integrity": "sha512-Tjf+gBwOTuGyZwMz2Nk/B13Fuyeo0Q84W++bebbVsfr9iLkDSo6j6PST8tET9HYA58mlRXwlMGpyWO8ETJiXdQ==", + "dependencies": { + "@apideck/better-ajv-errors": "^0.3.1", + "@babel/core": "^7.11.1", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.2", + "@rollup/plugin-babel": "^5.2.0", + "@rollup/plugin-node-resolve": "^11.2.1", + "@rollup/plugin-replace": "^2.4.1", + "@surma/rollup-plugin-off-main-thread": "^2.2.3", + "ajv": "^8.6.0", + "common-tags": "^1.8.0", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^9.0.1", + "glob": "^7.1.6", + "lodash": "^4.17.20", + "pretty-bytes": "^5.3.0", + "rollup": "^2.43.1", + "rollup-plugin-terser": "^7.0.0", + "source-map": "^0.8.0-beta.0", + "stringify-object": "^3.3.0", + "strip-comments": "^2.0.1", + "tempy": "^0.6.0", + "upath": "^1.2.0", + "workbox-background-sync": "6.6.0", + "workbox-broadcast-update": "6.6.0", + "workbox-cacheable-response": "6.6.0", + "workbox-core": "6.6.0", + "workbox-expiration": "6.6.0", + "workbox-google-analytics": "6.6.0", + "workbox-navigation-preload": "6.6.0", + "workbox-precaching": "6.6.0", + "workbox-range-requests": "6.6.0", + "workbox-recipes": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0", + "workbox-streams": "6.6.0", + "workbox-sw": "6.6.0", + "workbox-window": "6.6.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.6.tgz", + "integrity": "sha512-P+ZygBLZtkp0qqOAJJVX4oX/sFo5JR3eBWwwuqHHhK0GIgQOKWrAfiAaWX0aArHkRWHMuggFEgAZNxVPwPZYaA==", + "dependencies": { + "json-schema": "^0.4.0", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "ajv": ">=8" + } + }, + "node_modules/workbox-build/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/workbox-build/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/workbox-build/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "node_modules/workbox-build/node_modules/source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/workbox-build/node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/workbox-build/node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + }, + "node_modules/workbox-build/node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/workbox-cacheable-response": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.6.0.tgz", + "integrity": "sha512-JfhJUSQDwsF1Xv3EV1vWzSsCOZn4mQ38bWEBR3LdvOxSPgB65gAM6cS2CX8rkkKHRgiLrN7Wxoyu+TuH67kHrw==", + "deprecated": "workbox-background-sync@6.6.0", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-core": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.6.0.tgz", + "integrity": "sha512-GDtFRF7Yg3DD859PMbPAYPeJyg5gJYXuBQAC+wyrWuuXgpfoOrIQIvFRZnQ7+czTIQjIr1DhLEGFzZanAT/3bQ==" + }, + "node_modules/workbox-expiration": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-6.6.0.tgz", + "integrity": "sha512-baplYXcDHbe8vAo7GYvyAmlS4f6998Jff513L4XvlzAOxcl8F620O91guoJ5EOf5qeXG4cGdNZHkkVAPouFCpw==", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-google-analytics": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-6.6.0.tgz", + "integrity": "sha512-p4DJa6OldXWd6M9zRl0H6vB9lkrmqYFkRQ2xEiNdBFp9U0LhsGO7hsBscVEyH9H2/3eZZt8c97NB2FD9U2NJ+Q==", + "dependencies": { + "workbox-background-sync": "6.6.0", + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-navigation-preload": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-6.6.0.tgz", + "integrity": "sha512-utNEWG+uOfXdaZmvhshrh7KzhDu/1iMHyQOV6Aqup8Mm78D286ugu5k9MFD9SzBT5TcwgwSORVvInaXWbvKz9Q==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-precaching": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-6.6.0.tgz", + "integrity": "sha512-eYu/7MqtRZN1IDttl/UQcSZFkHP7dnvr/X3Vn6Iw6OsPMruQHiVjjomDFCNtd8k2RdjLs0xiz9nq+t3YVBcWPw==", + "dependencies": { + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-range-requests": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-6.6.0.tgz", + "integrity": "sha512-V3aICz5fLGq5DpSYEU8LxeXvsT//mRWzKrfBOIxzIdQnV/Wj7R+LyJVTczi4CQ4NwKhAaBVaSujI1cEjXW+hTw==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-recipes": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-recipes/-/workbox-recipes-6.6.0.tgz", + "integrity": "sha512-TFi3kTgYw73t5tg73yPVqQC8QQjxJSeqjXRO4ouE/CeypmP2O/xqmB/ZFBBQazLTPxILUQ0b8aeh0IuxVn9a6A==", + "dependencies": { + "workbox-cacheable-response": "6.6.0", + "workbox-core": "6.6.0", + "workbox-expiration": "6.6.0", + "workbox-precaching": "6.6.0", + "workbox-routing": "6.6.0", + "workbox-strategies": "6.6.0" + } + }, + "node_modules/workbox-routing": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.6.0.tgz", + "integrity": "sha512-x8gdN7VDBiLC03izAZRfU+WKUXJnbqt6PG9Uh0XuPRzJPpZGLKce/FkOX95dWHRpOHWLEq8RXzjW0O+POSkKvw==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-strategies": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.6.0.tgz", + "integrity": "sha512-eC07XGuINAKUWDnZeIPdRdVja4JQtTuc35TZ8SwMb1ztjp7Ddq2CJ4yqLvWzFWGlYI7CG/YGqaETntTxBGdKgQ==", + "dependencies": { + "workbox-core": "6.6.0" + } + }, + "node_modules/workbox-streams": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-6.6.0.tgz", + "integrity": "sha512-rfMJLVvwuED09CnH1RnIep7L9+mj4ufkTyDPVaXPKlhi9+0czCu+SJggWCIFbPpJaAZmp2iyVGLqS3RUmY3fxg==", + "dependencies": { + "workbox-core": "6.6.0", + "workbox-routing": "6.6.0" + } + }, + "node_modules/workbox-sw": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-6.6.0.tgz", + "integrity": "sha512-R2IkwDokbtHUE4Kus8pKO5+VkPHD2oqTgl+XJwh4zbF1HyjAbgNmK/FneZHVU7p03XUt9ICfuGDYISWG9qV/CQ==" + }, + "node_modules/workbox-webpack-plugin": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-6.6.0.tgz", + "integrity": "sha512-xNZIZHalboZU66Wa7x1YkjIqEy1gTR+zPM+kjrYJzqN7iurYZBctBLISyScjhkJKYuRrZUP0iqViZTh8rS0+3A==", + "dependencies": { + "fast-json-stable-stringify": "^2.1.0", + "pretty-bytes": "^5.4.1", + "upath": "^1.2.0", + "webpack-sources": "^1.4.3", + "workbox-build": "6.6.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "webpack": "^4.4.0 || ^5.9.0" + } + }, + "node_modules/workbox-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workbox-webpack-plugin/node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/workbox-window": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-6.6.0.tgz", + "integrity": "sha512-L4N9+vka17d16geaJXXRjENLFldvkWy7JyGxElRD0JvBxvFEd8LOhr+uXCcar/NzAmIBRv9EZ+M+Qr4mOoBITw==", + "dependencies": { + "@types/trusted-types": "^2.0.2", + "workbox-core": "6.6.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/demo/data/demo/public/storesite/package.json b/demo/data/demo/public/storesite/package.json new file mode 100644 index 00000000..f0b697d3 --- /dev/null +++ b/demo/data/demo/public/storesite/package.json @@ -0,0 +1,50 @@ +{ + "name": "storesite", + "version": "0.1.0", + "private": true, + "dependencies": { + "@emotion/react": "^11.11.3", + "@emotion/styled": "^11.11.0", + "@mui/material": "^5.15.14", + "@testing-library/jest-dom": "^5.17.0", + "@testing-library/react": "^13.4.0", + "@testing-library/user-event": "^13.5.0", + "@types/jest": "^27.5.2", + "@types/node": "^16.18.69", + "@types/react": "^18.2.46", + "@types/react-dom": "^18.2.18", + "n3": "^1.17.3", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-scripts": "5.0.1", + "typescript": "^4.9.5", + "web-vitals": "^2.1.4" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + }, + "devDependencies": { + "@babel/plugin-proposal-private-property-in-object": "^7.21.11" + } +} diff --git a/demo/data/demo/public/storesite/public/buurtwinkel.png b/demo/data/demo/public/storesite/public/buurtwinkel.png new file mode 100644 index 0000000000000000000000000000000000000000..efba8f0acdc9bd3dbefb42be318ef5943f9f8109 GIT binary patch literal 330420 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
}M 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
og#f~<>JO0EJIl?&=k4D(dH={IYmU4)B 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

wO)OX~SX90M+bs;YS8(;`OV*)0$jfYHvrOPc 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/demo/data/demo/public/storesite/public/index.html b/demo/data/demo/public/storesite/public/index.html new file mode 100644 index 00000000..aa069f27 --- /dev/null +++ b/demo/data/demo/public/storesite/public/index.html @@ -0,0 +1,43 @@ + + + + + + + + + + + + + React App + + + +

+ + + diff --git a/demo/data/demo/public/storesite/public/logo192.png b/demo/data/demo/public/storesite/public/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..fc44b0a3796c0e0a64c3d858ca038bd4570465d9 GIT binary patch literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN literal 0 HcmV?d00001 diff --git a/demo/data/demo/public/storesite/public/manifest.json b/demo/data/demo/public/storesite/public/manifest.json new file mode 100644 index 00000000..080d6c77 --- /dev/null +++ b/demo/data/demo/public/storesite/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/demo/data/demo/public/storesite/public/robots.txt b/demo/data/demo/public/storesite/public/robots.txt new file mode 100644 index 00000000..e9e57dc4 --- /dev/null +++ b/demo/data/demo/public/storesite/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/demo/data/demo/public/storesite/public/store.jpg b/demo/data/demo/public/storesite/public/store.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3471699be1b0ccd8a7d1f4d80595c941c2590829 GIT binary patch literal 34913 zcmeFZ1yo$k_Al62<1WG79U6CO+&u&d?(PsmaCd0j-Q5ET!QI{6A!rhaz0SS&yPwTp zX4acEZ)RRmea^0`y=(t=xvay_m7hBREJaxbSpWR7q1-M1n zK|I_r$jHcOsAz=f=!D!%ZV52zNa`^Ex6Qlt z^XH8|TDQeL&k&lQV#ya1@N-Y&qcGo0t=Wh0(P9cA`(hk{SXeDgEgRH2}~A$pxVv!dlk0IQ?Z`_I7Aa_38pLau^(41y9NkW zS$D$D1cU5s#k}C>0MM%%WI>;Ny1y5cs+$7w~~mB9Z(mH)KY3tIE)?QNQ$ zfDq~BaM9TY1A_Mo2Cgf+9}HL*jpBKnbJvMFJGvugQxv1iTC_DZj@B-5>vz3N`HED$ z{L9!AxO`4?^~!F|Y$Nk^&`R4LU)TKz$vqF5yn3{YD)>)flxOT^3mfu> zJ-WZ{wf_{8NkSj%+N0?G>YWy1&i(q1X35OI#6`Zb%Z8ENW5xvxb1Zqs+`l$%;Petp zb}$?*o_{Y7Yjf&j*aw-O_)nDKvDiBz?wnb+6lZ=6_v1D>Ap0ubvw!hXlwV{<`FA-4 zrW4y)4w-MfUqwbzY1qA6Z@g{FHV)hG;9F;IG(pp~(|o@(|Am4Lb2*`S+4vF9?fX+Z zh|f5nmGQg%{IzMypR1jz-a$L&u8pE}cgnkUZm7IC<&fPdrTv?K)!q54vA^W`dvIu@ z_luBMMhfI!SMQ^cgR7&vajrO$$fT&4O@8r_SVG2=nEA#NCoUekc1A5WS^c_c8N#y?>&}?aAlGnu|#jN}Jyxf8^)bk~sasnKiGu-pcw) z-F!UZ{wF|<_Q{t#Pp(YM>|I*&ny1Z}b^S3$$-0)2LgTsi>iwj(V~D(i(4qU&Yps;TJH1q53f}e+L9`nlwbYGQ@FpCofheBUY6^BA_?$Sj69=0BOF#*7|eeY zBE51?@FutXNBPv%&@k;SICT$`J~fCdWXAiKz1&otvB%U@$s2z{1b;kbMgn%!fbnw z1&_qrQ}@r{yJ2aw6Z>r=gVWcd$GKhnxvuv@)I&c3Fs;2`v<#Y-E^Np#-gLnS^Vyyu z6?wwi3Ym8i7hbc^{t>u*^?>e4_O||xvyJjM#D9FF*a)`^+kNIba?ZVK z8@1p6eEw~L+cpqRbKR5mm5ciRcL^N0%bWGf>T`=^>e`P~v}U%);><|XJD_j%h4*-5 z0v|RpNymYyw|GwXAAT)3R#ru(gw#9yVB`2>zg zRBNfE1%#eN(uvi&0@BUzJw*rsOfP92@f?Ic)11P@K%2#%9qKrDF8}BGcJk$M*cA!b z`D`IC)cO0hp8y4SM6i}v>-%AD^3N%s=>IGQH7v=a7+2FW-sgnfYVrOv855$ad&11d zoe7}-@Zszzkcn|V{Uh~#fwFNbym2bn@LwKELp`(1DEJ>2!!QHe#kMHA)QB6=>7>XZ{9fMamo)$4lDR8NUo$GqoxK9-Iu~2 zh{>l^Q}1)Pou`0KHUJoTF_)lL;V<~r`B&_1Dsqdg6XMPerCFcp0#Utw3w^(}4UQ$t~HaW7@_<7~3eOj~| zvrd{QsmunLR>!|^l~yuIwCOFr^w`tf&(FWTwX{b;sAw15`R?e{Zt0%iJrq&I;c>IZ zqZ>MNeR+N2j&UB`eejytH-i4TTJ>FJqvG0M4T2RMJNpW8j1RLS^v=HO!Zc~>IrVXA z;{?Da^4!7M`H>mA_sm-^wHcgFuCQLAw%+dOG}^z#Gstu8WOc?p`#?f6QHej6E1qu# zT!vAcSrsfUeJqwB=qIX3No>cAy`1CxK@KQ&=> z#Ljkw>xiJ*pa(E;RNr$Ha6H$ zE}FqP2wRN|PPh5gXHmK<$eE7>0DvMfKfzzUITOLZ&1YoqH(JQL(zXZFKlqfPXYUK)A;PV^o4{J#t$b;_B3NAZxGue9HWbmMFdIAAII!xv>Mv(-9GIX_ zqP*$u4!XSAdu>8(rTozP6JUKrIGdi=(cYsHi$804Ir$lnI3O!!0C(0P&zxOIj1}6X zIpPil+S9L|jN$WkoD#yb>aSO`wf{QxmD)&ZhQ6fL{8BNd7wsWhE~g7Q^$7$3fc&&E z62u?XzIl9S#pL-C>*h{J{6X`bljWqBIA3Y~ut5xqZy&+Bg}#fk-{%2_N9nEq}WE7v5?_IuC$3!>ZFraxTupG>`K3(XhC)CDA6q>g* zVviXNk#F+Ff3K*@;08yS?`${5~`TSvL!7 z{Wu^=Ae8=t(<>FMFXebC%_aejjIxhg_Yk!@95=#-aeOq+|C;%?-3Bq3W5#ef`uj^{ zB_UO@I&bGV+M29IA`hrEc1|YIlDTB~4wMGaGevsNp~~@hNw~i%LHzei2ra4)W#kvb z9~I-(C&OfzY{ktzU~f1#8eI5Ru2>fQV)~==e>AV^+)7JsPKsUY=Hhk#2HgiVpE$Zm z{I2;iX7kRg$7JD9L2`6Nvhp9kgFG>aML;l*Fmtv8Z4sK`9h@2`pWugB?_Zgt+?Vs- zm!6+kLVFk-YSxVFr7doabBEbhAT42X!06b<(2HMee{`^987(6j(&fHt1(lBE>H}t+ zpGtICTKk|pzm@TXK^>&)sE8Tj31`(AVijqG+KYtqDu~H}bQ(?h-U*IZ0ss){ou5FD zcQGgHg$lypGMXe6(HWjA76I2)%KokDtzPui0c3$!e zXU$c>P)gbq(zNb2))Hr>F95)TQfP!GY&f^fHa%*WdBp-+jR;5_4#yrs+m=yOl;+zg*#vNc^WCKzi*7^T)W|djqt76vrL{iskFpmrv8^16UHAvhIKm%SMX6ECawpj zWsSFZmgwem?#`hN5|a};6r1M|4!itPSg+{*QqlNb_=`XQs(mhOHsLArxKf>b)@L|Q z-b3tk!oPw7z>;UUa*2%cNj;)@pKO{tEf@&528cU!N&K~hU}t7Ohf)baW==ocshBzqTp>z#IYdOdQ-p2(NxA!#`EEKUG?u8CM6u9Tr-6 zDI2^Ga7Zz&T>R>Bpunq)aP~JufKo6W+5IxFS$8Gl?Y8_2uD4bg-_yRl1OR9Rxj{8U zA?QbJ%g{B6Ivapza}+7rpwuLYp#z64By%?^FIJVn#3Df~M&dt)VPI&_J9;;@DRmm~n$C)hJ+l=OR7Sg|b zfyyWTlKnCtGwbjj5Ok#qH-RqFyK)TV+W4h_WiDrVF1@}mtpF1NqPT7p$o+im#c^p1 zvg{)2!ru`90J8-F4I!tFs0F@PKibYPpZgCfn^OL11o>t2;s($z5CHHED$gJx-5C;w z(f|ZMt*j@_hkNb?1QzK5#0Hs_tCedbBDC$9aS3Sh-yA~e%8@_6y!$)WOylsw$xJeW zmbc>)P*tHdy|zh8(zc0_j@(F&+_>mvQdBJ?P_N7n@?Ej&q)LY71?{Fwwfdnc)G6p? zl7H}0rY$32;WNeVSL=+Y=Uta7BcIKc@bHE-_%5BhAY&{ie_DJ}mgX zOsJM@#Ft5f@((Of5;kM*2l?`Yh!@e?`tgiI-G7`P07Y&NpK2_hJuJBKVEAJeF`3-! z@p<%fN+yFp*CF1JbZhSIvj)vQ>2Lzy&aV~)e;Xx##{lGD6g<~DJLxAYLR{ZBa0DR= z(+l-Apq2Yw+Ud^x&R3|Deibu$RQ7NpMgxz%SSpF?Xs4Fo^F=YEOrp!K)+0*cQ2!5A{X5~& zj-&{yu5g}tJ;i>$Yk|_EHl(&icQ{5RWP74|lsvWK^{qlb-^CbB=yc0sgEKcl4L%|dd>L91k-SPTcD3hJrLixM z1XJUcPd?sQdV+x1w&iLZ>v2~m+(3ysV<8_$26nyY65Ok6h+~e_@sZ7)^u@P(bMYf+ zjbff15kxB0O~YmbcJEn^*h$blXE9k4L5WUm9K+(7hnm#NKISjii0dg z^5oDoLy#idX+;{OufXcLb&CP@A>W8M{x$Dp*Rx{%b|Sw1u2Qzjg;0;(Z3H&*2egNp zoN_5a4B0dC-ZCx>M5@s8hyjI;9=v6B3M#}%^?70@B1x-*ayX!A10vTqgR$mHCMyj# z<=wkr%G6JcRSlVhU|t!ooAG0y%Vl46?JV|KhJ?}>lB>WmGbHWVl)#7~<6@=$E(v!a z(MHkPyrE#*TAqGEtj! zRrjvuA&E`GXx9+uF&ah4fukX57LiZ0l1Z&bI4Tl3EU->yR;MYebxwokzThKMBsMJd zj-I2_9=!4l1Rq}iEu0m8{$6wqIE8Dvpn%NI3-N%-;BH9Jm`Z-d@t(>1FjiVuKSfu62L zNp0t*&#ZAdT#atMiGy_(7FtfY&8`%B`7KuUQ2I;_hKZP1FKVN3ZTh7GQDqhEJ^a2^ zz;RrLc1A!1EkXulo-vj*X%W7}yGD>jAqt-7(_Ww?k}N;tV0&(Tt2AZ^yy0vm}xt#CO^4n@ShD!WXK#Zix3~JRoUw zDmv>meGb6)EeH4|#8?xo$22)aBg44;_{cnSep|VYLT<01BG2nCYNjk1wFv9lRv>tN zQEhjf*tQ5uZ)%i^-cKPmLdvDBA|d#L@Zru19pCL#vnX!!jbJv{>Tss)%{QhpPYAOD z*0APA|1%CA(uoST+4v|+oEZ{syJV=M)%4GM_yrUu)iIbwM=i_XQmb39mDKh$oE|wI zAM=tea1TuzJ4W{J|EXZ@SDJ;}j21kxb4TTE$UqbgMmAr@L0+%C@kL*Wi8*ys`FRr7)_YXxKY z1r2F2V0)f+pm`+T%LSAoD0!z6j;3<(4 zY)va6u%fx_V96$xIcf!Z@cg|wfRGz&s!mu+XkWtfG}y@r)k=25he?Ezh#liSdsUwnOv_pp{1OG%0J{Mk<$X~3&1H#x#o`>iKFPa&cc3LX7hFBXhxDI-HvCU?+?==PNI|N=)%=|l z5bLhFj^CvU{1r*i;V`|oQ(Te&rQ_#i+-rx4Ajn&Xrgp+$bgfAVwC<++##LEmG+0=5 ztRBv5O$3WV>_@o@H?nTRH?LxH4S9;T>$G4(s;^0J%M-Ay7WGi8wCCPBglfTTNoAh+(Ujt_kY)aQNCAr+2s3D{Z}4F8#=6KleGU_4L*F zi~F9#T0i64rT+&RB)ZH5VS2&vh}Ou_K*qqu8xz-^7n)Q!keR^LJ}p2{MHvnung&i* zf47utJ&s=id>|pB^$w5|;JHM(*KXOV+#MAD@X0S4bTX+d@u3>OTRK;MKc%Is{@aPHI9u7i19r^T5&P?RYP&baaIl znnv92tY)o0YS?T5#@%h*(s$OoI?TI&~zv8G1_X(xfcSQx3sm@7_j+ z%AORxLdXIw5%pzPV3F8cw`uk zP2xhi*ekq|?~vcD7;quvbiCjc^J|;LwhOi?NYYf4!=qVIsG5n*VSipJ+srlc&cT&i zpcFmgBYx2{4?E%P!+G-U4svCmTu;#4h2F)$m%T*DPfD7Tn<3b)s&Wo7-WUWO3q5MWUly zUX!{bC7rtonZ0!nPjW1I&3ZJnc@zE^CGKVuk4~{s7<23PCGZ`&W@rt*Vlg?IPgl zb7}|=Eo-hpaLRxLJg{_}gzyp$2I=X$il{jVR{ZOw6e^QHWrAs zb7UwTn{}WYu&t(^SVrSj;q&x;ZywQElwcP*POh^=X;ytFPby*oMx?ZcsK(Z0rzSFl z1^6WOJwbv^EdxI}7MZI!<*f_KW6f9}86_D3#=Imj8ewW!pKM=47Xr0NWx_>L_0)xE zRW>N8&~RC}`pV)=4;PXe?J;1MqAc|M&A!hWd++I^_BR^a6Ub^O<3g%?WF~$_7kl)g zgKD+2YQcRGb&NHmU%k;=OPeUQ%BFf1KEd&@z8Cc;yAt%0vWvP~QS4SlUm zq1a<6ol-=aG@Xc#39YZxoE8$+*awIVw4^q>h;$*kCoScbzM`psBa&^Fg16 zS99V#W4*3k9Cby{OpVgb+dMSxjudx7tm+ED?pNSktgh85cTLcBTv9qVZEaGCGBOUGCjv{T_iBvgz9;ey<3gT zD6g{2j>Ashd88q?CjN)_TAW{>dY72gq8(?$z^lZO(u{72VYuXD?Wj(DNi?Yf+a~{N z2$({l1E&J_@*xLEk32VaoJvngQ)AXEZ5oUrNX52F6Yp|-*z;>^Gz)1v$sJ3=t6#vx zR0c^15`=A;+s3^D9F%A><_ z_}G3A6EV$QK8;JpOdsjTTl|>L0bDMDL~dMXXB}d687w;vY<;k{Hpr>8*zCDLc3h56 z=8M~IZJitZF7kK0M(m)UR;^#atX?CBU#A#CQYT5h80H>a&AXc>K7Cfki3h?4z|?4F6WlNk(wZ!3 z@!89Z%4EBpvLWKdvT9i|dJAKd7oL}25RLH&%T?lAh{3h-EAn3BH+E^(2iC^TLHrRM zoKmZISj;_2U&0uWlrn!oS=nUL>(w1PReT2vW!Cv$oOvCJ+1jR8_N~gg{Qaz9Fh#(~ zhfFXFp5u4vlCngOQFZR}&>Wj@nUVa4b=b_68EBH6fI#czGyB?F{}}c2;%qRS&|AwP zr$et3L>_xoN=cpNtmp5UUcr!8C8b*9Ele4As=$}t7={U^M48u=dmoNm_t8*WNG!vD z7zQbdVjr$L9^H0&8TfYB8KrGGv!q)>yXgO`A``pHvoUOyx>4c>9^1+og;fxvdbb;K zt*Bp2F`gib^^cYAYoy1x4fgsc5LJ^uSlOq`*!2r0CAM``g-_bTaFL*lrYd{rP>3f3?m&Wan1G|c9Ji7bfPCOtTxpf(XPUtvLF+rib(4sefBeNs$2h1+p;bV zuI_=*HVn4-hlu-jO zs+m3GqPl2Db~8eMtrV`}@jQxQT-2+e;(gif;+oBIXoR2t8lF4aQ-F@^K$;WsI<9xT zG`&04Ax8tEAriJl|?YTNfrc1&c}}nTM1SIQDO=Fw zbY9&lhEf|v7tF}IP}OqGVN6mA7v?-A08!7>MIntE;e1~s))K=!$DO}?SG%4d$CcRi z5#Wx|k4N2c*`-&4xlqHExYsV275S}#gU#V%1x^*U}y0o)7Y~6qN2mx1F1mjA&Ewp zET7%4wm~CzL(*x9LWIluRJHtSj9|gNkRlr|(u+1EN9kR3sXjHMm5L@7)c zkxwD;i0J-XHG%nk#_)Sa&n1Gl`ve(9G|N#c0*A5RxF;O=zZF}_*3eJ<$f5?2z2ZFh zR{Poz=jgngIT(pdW2LA}-x8nmNWf(}ZVQQ2nmff>*{`pz+Epn_AXf6EO)U$sZB=I@ zZOum9S%`k`cNEG$d!B{0EeDMg|6IJx1M_aua0d95*Ik0-VsR4S+^qL|loZLy!z7Y3 zl#A+Jg5gZ~lc>9t5j2lL{?+P#<_q^atFr+8lN~f_wi=r4FIBI}|EB3R@o!vz6AUf< z3E;E)BdmYPqfx>91Y`;P0nVQgN{3Ry$g4ENQ*9Z87>WV?v$VR2*JjkuV;)0mrr z7rH7Z)m=_85DA5&9BYV5ODZKtQU@AEy)D+e4>{oAKP`F~vpCcjJ-F@ERr3|8(@EJ< zWA0D%Z#^c>nl`LZ03j1arh*X->mSu#9KIRzTW0y8wbc3YHZKDy1}_v0c0v|}HPi&F zd@aI-SbRUn(PVYuID9${3Kyk*w@>eLVE^o6vXE#`j%9Ayux;gQV0ROh5b?he~^?p`20?^EiR@xWRM7B#Q2K{lO=lo zh0P-YM4hs-s;ek5Up*tVJB$?D;vhJ1)m zTV#ZV)5#Lmmp$pih#vxRl`mHkWW~St5O?@1G0pVV6HmZ=@Of>#Q{U9Pvs}3m;t(F zZ(PzP#j6xMzj3ihHW!9&5qoOB>EV}5_?T29dktE<+a>O=hnMs6=}xl&S3_hXL*G)N z7d~$=tOrGEGiR;nGC!GI)EM(Y))rdLBZ)^N#~MAv=gegbM{BZ8)F|&R;x>r~1)AIQ z73EQc@<`cYgsUUxs5KUPz`AyYO6{SgxP&O`69(l~PTGC-Uz&$DomA;Y*-7c6)zO~R z4@Z(CqhmuA$^041SZcImT9j@rTi68#&DfvSETDx%pi(bb1DY36C~Ymkn$&Oo&@}P$ z=wC8SD&AyW#x3YM5}4dr#iYv^lZwZP=u~V(r_1PjgyK;bHixreYi#8i>4}(@UZzhV zQB;`Vpnr5$DT|!QqXuoI;2?+d{jN?=85yINE)oI#@Hf3a=n;F(JwB3UU{;FQOC@ z#Bk9yoH!epaj?29G+i}lq=g<{g@$z$AE&rjDcR1S%oFZa!7Q0&gd~m8;m~^`(vFy; z`TG&6VZLuU21qtC1Xz`z~(r3o9K8F+_FN}TT2VQhB+If{AihLBI{~naAKd zz6^sSL{hefTwEK+YSnU~iSx@%bvXmOW=tX@z!T9rdN;Ri#;roic6t~mxDouM*SDLi zpNAfC|Di_zrqCX3acRXt=&nXbO>tg%(FsG3=lLUIz6~ABR2Z<=RWMmiQE@*!iZXNl zUeUhl$z4bbWTVAz`i%J#(IYvRo^A~}waiFj<$HC)P6e+kB%p%!BK6f8kFx5nM-uHP zS}v>1nMf?J-Th%4j0KNNE#}txNX4NNS&{-%iT0!}?!AGBdPqg*h4ZwlyU1B zbbHsaWp9{)6xZr0*0vE}{qO>8?2>#4P}#+Pj+WFf4_}5jkDU~Sy!lQN(Ah|MH7_i0 z#4|71H)%+}i=dpf^oh3Bh?_s_N3I81gMT8?+t6pqKE;|y@s&6e+t)W>F5((Y!wKb{ z+yHB5?K$4+S0e3A4i%{3*m}yWod5%IB{iPgxkuTOI>N}3fvN3+j7|Q#sL-h~5sb}L z|B#CI%5JNMk`@B$p%Hp;$pl(XSusQ9Db`6Hcvd-VlpC)U09ai!>-Y({Df^&X<+t8O z+j{sszOLMNS3qaS`*C^NkNDmGg zm}1rMutz{UW0CIV_fuvXQWT4!0uaBGV*1L5V(k(g|wQ zUB)Om?g!*F?cJmW!4OL50mlenR#!VHNk_dv)I8%M0jRA-7?KIE$e@1aJ!O8+joF~i z-tY{JuMRgYE{3OSF+~i-nR}z$Q^!WZ2&9{;q4oS+Gj$Pe@0kR!qNHd#MF*rKYkmHtwSg8IC%j;ZT)n2T1cRyhbR=gs!`_N9zogCL(UICY8Pb~~z2Hw;7 z$fZqS6&)xTVH-nY*29{63&kdEXlST>%S6^1>KHm@Nrt3d9B5B)*&DA7U`9gB=4oY} zRhxH(yvq?WkM4h#qx;29`4**01#Q>qVD{4YTN#nb;jOCKnmgU4t}T_Pw_z((!)PY zf8WrbHd1LzZ(foa5yksMNM|7HCxDE3PvuQK#FhU2uwqBb%l%SAh5DPhI@;wgr+PT{ z-#n`SzzL#XqxmkRJLX6$wWsPfFrCvVza{Bt2y2s+ z{!Pd{bb&?Lxc96jNP?Rld*sF-sUMEyKs!u5SS#Gp0?uK(GI2jip}7UxUJc zTf-zL@z;6KPr^oy1k8q`^wH6%l6r)RXa@Nklj%6LNs|hXpN|0h7&RD;vGfn& zbQ3!6;=KiV%hpp6j(s}#n3nQnx*GqXM#IlqkH(AX+oIDjJQ$acZawC}Sj5m*(>WER_E-OT-dJM5$AH`9QmG$jCox3x!!bnqDwk zGqu<42p0C)>zugWZR7B0O}=m6!t$Amy^)zJ5|SJlN8;C*b+Av2$vGiA{mw|GtJz(= zK3|6P+W*;O$H(eN#gtmfqEwPs^e_iapCzexF?7{tjWIjGwE9M)~{$4{Ba5l`S0ZmOB80jB%p9QDw~S(G~KP!z6`{?pCk`H?F3hqxaA5r%{sfZ!X+xE ze6fuZW;X@v$?wQ_>ZYK{UnWCAKl=@|)_EBL*Y28VKo(2bjbmgWe3f9TJAk}*bGCYT zh`Xm#_^{+hhL@Ug$zax$9v1U+uTgzlU)0>y0Bd#}yH%YfPHd)CPX?>aQI&Z5{bu>?R~dIm(BI$YQNn^alrV)cxI05+jHxQg4{abIX@**SJ(9ns#LV*8>su0(u z8&A}sZj;;h3HYZL)~Ihr8#PsMk~|Ckj6U>q=AyC4Ugemmp`#41c$_ObEOrE54R%U-*NlvEB#)SXV2LJUTH)6iv%u?OZgZ(Z#geb>;j8TtT2r9J2F7ayOg>|q zLXc3+j13OVIt zlam3Xj>b;6h$+j5@GWe`Ml@xE#o1_TAVQkUL4=VdK9_LV1$0~fhtV5)gH_M3B)r$Q zkBcN6pCH92O5iw#AcudYZcQ#PdrbD)ln0XpVr*$vdLW694D(x7TZQo;?@L_=?Ua7xCPppPaDCj0Kr-lF{g3k-xrk)8Opbs6eO%3; zwNgh%K9=H{u1brDdHPgbQEYd0RHq&edjzkBj2voNFfDGigA{{vFK;}(l(TlHsb&Xd z&M-3o@35`I=Y08@d6??DO$ zk~NxLzOoVxwRn@QrZQa|77N*inZ;?wRaCiVgH4QeIbSV$k#)%y?5&(1rbP0z@GZvZ zu((tuqf&*FJwc2|>R<00%^ma*6PE~mxHAVr0O`>44lNEPMV%@(qhK7jdyBb-TB3acM%36K;T^ixuMPt>G3 z+K+OE1<#55)&~fb+rB=C>sUl~(NjeNSvWP|Vl2_j5tV*T$!pKvl6Yb13pngb-&Nv& zV`!Z!(YwxD7D{^A_sZ~0<_+?t`+pg|a1rd*T>p|*8e8c9VCG2q70Nu*3mu3w!pAh zY^=M#imYGcB#;1rrrGmY9ixBrLn|!Z%IRcrf1k*B;~%SLAt|D8X*n(&^X(s^SF?RHAde{K_0q|v-l-fi7uy|T4W9>rQtH}GbzOS2*b6V>s;hC+Ka(vPkfo{Ie(;e&9P9i`$+%ypr zhO+PUQ(D64&L+D_*OF=Sk{fU4&@EP|FN+TKF+wk!`u6aAzOYhF=Dxr1He6l*G3@z2 ziBzANELee~H*o>;dC8*nO69L`&bguXxakR9Ib1@&dhI%z+WsV5_dkg)=vVSbz3lqtl^3>*z&KcHh*cv}fmq|}l;zK|SSq1~VmMHbSIiCb~D*>RaR#Y))3`lWTB%M%`*6Dv<&Kk&BOS%3-sTX3MFY?5c{x z;+uxKqZc7I9G(i{8H7ob#FV2|j@c#JNe}zLL<`=?G^|l<{fv?~b$3`~t+tyVYxVky zq-$-Fh5Gz>`D^qLaA9B`U^s!Z)#uowB(*VN+EpTgQ$^t#(uBv=y34*EVMv{K|$ zIjnZ9`ZQH?*DwH1XtvM&**)jgE8b`{fDs)fHgE_I0)-Rwz>Wq(VkfpGL9MD15?+38 z+z}4R0-NW{Qw|KXA40X5(u%gZYVjjB6DSMJHCVo^ujDXqVUVgjSn)hcEeDN z_I~~8$BFvoXtvE3s`27$PkC3bUZz3>*rDxM73j@C)DI-83`@N!ayr4<?&#%I52*7Q zP~R9;YV?&yCjvZLsE4u=qs@ILmjt%-wJBOZ^V^H?XHu{Q;f3EOXhY$HGUfTX6AO{<3S{f$b=$rfC!Di*Uv<%tOEED3OWu_fK+CH9U zyU0gjV5}OnZ}1KmC9{Nh`$lYtB66a)JbZnAROWU$CQsvLwgMpPhNX0UO?jmU z9QK8X+nxH7uVzNW^I`+!jK}mo16I%R>oR|l*_Hy z+J-Us8wor--})B_KMK6ehhWJP0?H3+Ft{{{cITX5BR+RVY%t4eq-r^FKCZFNb#Qs& zz|02Q*YVUW#O}xWr?iq%gfBOivbzVDP_~&my=e5Bmrw|nLIjL(e-n`Ato-_d{lJb% zo)XAA8Noe6>_n0}y%KmthNN`lhbY5$HE4C+(Mfm$BPct@r75P8lO=Sdn&^^e`uWE` z=eS5eQ_L+84;=GOMW@WwO<{&epe(A1X8GzM2Q{Kj$E6+3!r(DIa89%+o}jg%vKX7D zvl)LqG=&+=gapw1K~0r`ZrI_DEyUoGh|188kPdPpRX%N~S}$1byI4ZVW-VeK*o*r> zRwPHS@TAevgLY2+-eEVXxDF}PEU+QbuE$#cC%`o0^{M5&B$tK`QYLL9&U!31Q$D0G zxnrm)kTyDo*^|XnWfCdm6hA%#0GtZ3sw3}U@v30%TDrpNa4p#Lb#=N%^qkskf2+{B=)4Tj!b(&Mx^)Luxn>QzG+3KL6r>hHAE#%au`Xm2xtQmFazE0 z>e#N7v&^mm25g}ccWlZWTu$3gu;_C>C&v5C#}h=-^onny_=PWe>lGK`x4Q#eg@^4s z_+`a-FRBBbJ`_#q1ohD^;nWIz)Rd1zTH$-jSc-yP4Py?;S*kpr0d?libC-1wVavDT zlGE)uBh%p0;M7$~CSS(QW5KKu&4LH6G6qXZUees>zoo-D%2Vd1T?mA6CP^$@6!`HD z)aku{#=GiD;cyVfBFNqmP}6)jyTM-OH;hUiSlA)~?`HyQ4kH1tf@xw1B4(hW;giBd zDq6EBDTYum4vE&-0YdmrDHHamNN7)~6g)<%+%n9aMs3M>Fh=!RDUzM&dF=1W2xJ%X zqOkXqRHF@_2KX>PvFQu>m(>=uCOESD@i4eD$pz+S2rMiA$LI(A7$x1pOtHUy!k+@r0*7aeL=mr~*d9|_(^wPAh}ia1(@y~OTOS21 z04x9w1_c=f4iWwz|8xun8pfuA$KjIHFm+98oW;VWq~`PpD*S*)!!4z*Y3AnMWD?v5 zl91L)F4{#fpS$J(-!$y~>zf~Rap*TcwzNeYnTR|WtOIER0M@Tau9y1JNcY=6SMQG;3@rcZN>VRSd=s? z0LDCQ_bPd$I9Icd`OdTH?{dA84`rQ>@4I5L#KQz`qAGSSV%?q0HNG?Wze-TJGTQb^qW{ki4gr7H1{%)w@FZ(MXmWR-U$Xn8i@m`O?yOFlA5mN z^#T~?WGYRsTNkm`y&>R&>uN%({C%4E!!geIic9%?TSokZBji zC;I}wb;_qH7b`dbu^d_y{EXhly9(?zPILYjNDrl{Eys5~ z&fGJ%y{fybtNPZ|tv264CXd*Mc`d074%W=^R~)G4RhRwrw1+NSRX3%5-pTy!^m__E@Hbw@Rv$+cnFxBNIt zz``Skumr*UepOa5=HdmS8cEXE;)|n8j;K8R%IYyv+-8K1J;h^((_cOI24(V2TzbEI z+EM=Af9G2{`F!3=X}-))E&XgT=hDFLtOhW`apr8?$bS6sq79nJr6Mwn0KYD(Ea*2L z=B9G6cH%HwF)uNVENN_T=!Uy~79x#k#)L36muS8C*b_+C zHyj@7fzlnxe!+{T@VEemkqQiah5YmquWb=1jcYwTFK(Q5IHBE(#;dB45|m#=tpEuo z5x}rHrj^O&Qpc2TK_VvUQKm=<_iY@mQYWL)fuc;NFX0dgxgKt=BEB1+L4e$*g<-dc zt89hvmYiR0c{o@b#PCIs{bYpBG4zfOu>&%jxeWZJ#h%8ZDQL7yc5&WV2+&Ib>FfgM zt_t8#n5#pAFb0+Z+MHqJdvmGQ+{4KS6@`xpP71M%NA8idjZ2=-$iU=1s4B#g>gKbc zS~~XM&GaCFB6M6a&J{i=H@&i?6!y>H9abU)vgyX}9*yxG@4gd~m>$vLS@M;FA0LWO zpyo}1AJvIKwNJDeb3Ko>)^Jud81n-PJFiSRtD1kw5&8fo-GQn)j;Tl z3H>HTr2Z*r4}R)22o5hAkAbTFKw^zWPSll%`ZI6tbZbg@<{lHtu1!2oIsb6x94SQI z?mr*o*-h|RhVK&+{=8~NilczC2`mh?Y*5H(hgo#8vd%QP*=f4K-Z`6ifQ}z3(vI*+^27s)nh?YPyo2h+C!*poQOk?j0 zR}*mW;JvTv%a`50L@)RI%rW9xw)`0-867aOgM(ZC3#+G{B4C6)PNf)_^7Ciw#wF@N zS~Di?qHumIb6G4|n#@WLewNAsOMh1?6QxC52IsZfO$~k*a(pJ77>}3OmcCsOr||w; zG1t@+qFWcROB8A${QX+XRv zpGH|Q3^eKR))e&k^p<6r3iitbo0Gy|0 zEqD@|VHoIrND-?}_YJ<{tphb$R7kM&D4sQmGe2)#;q){po3(|2j#*@j5!L-O!6)6I z+|A`xc!#mt(IPN;1Zd_36AS%5;U-Ama=O$DU-zubtN zhex%E98o^HHYgWD>`51E8p4E!pJ`NT-bbZyt2E<3JvC@ce_0LNc^xte*r;hgG769M z`$93Ner5blMT_fLMt{rVhh4L5dMVkie?XKF!gG z?q24Rq`Pi$oXgNin>(d1-OoAcqJ5Tk_NANvZAfq#68G2<(U z?Um{46A6SWeSJanSP;5ga5=R^PMP{~)$ofcPxTiD&qdj?df{ty6xuIj zh;W1Y_BN4qNrRNcP+nJLpZ z3EU+Z7_@4yTICYs295iSM-L?|g?$xqi^+ldAQVBUqpHr?2o8LszlcX>7 zg-|X$L#4bHyB0TAMAP%dv}yFvYkaeJ^L|PW5L}*dRQG6|G-0^1VkRjP?n)Y&G5}$0 znR>LE34ILy65Bt!=3>&DB?GPCY$==))M4T{X88?hcOUXc;826R3XIa#G5FdztTIk) zL}FXGQte1%Qdt{qdJW^)zG?DnPXKErih8_JqpqMYGtvtl)IG zIt7mUsC!}$zt~RtDIfC$Jc6WGXD?t=M>v*7jc%>hub33(b-woN9y^ zzCi9fQ~{jgY=eLUUs=V-ct2j$!}V6W?|pIYr!Ef`vrMBKE52MHFHm;}lF`; zLnlon_W<7Cc(#tl*SFfU^H+b7&>$q8+Vlf`!;Ep|rXP=jP3@| zU^(hET&smxx-}$=t`>7<0eEC8qaQHtmY}QxYX3LQ_BE)%oX(;K#pf3 zAh8wa6-(=eEXzyfpelO?rbe>x>+hw~v!DpcC1xotR4U`+GW$VS0_&bHC5&sur#I#2 zhsGg4Z%3hF-vF$>=yHU32!yC#sqJJnP;?UnpyR(2cawe1N7Pih_?SbziaY}%1S){Kvkq$)1bmDayI{>&2_TaD zV{8q9D|#gGSJ+QBKfa81$XL=l{?Hb(n>F$NvLH9R?)CU7TiwEL$FonwO?OB|6aBcM zEgzf=p59a@a@PXZrsuhdy}XFE;FhT?ICLh3vnOYply`8U$6AsE=xhV#Pdo{i>=Ge2sxV=pN!_MHiFP0X%VNrFroJysvRx!Lvk!6oJY2_oj3Fh|{Au>gt8*X2 z#Qq9jt4E?Soe@kUDPwVqg*rZ>G48i8*P!JgM3pVgP4qM2qnJcKH*O4rPuB7hhH6TRuJJ$rFr z8dr7?Hv@rYR!505Tvj08t}%Gb>zdaJuVWQH-XlT)lDcyfKF|4tJp5@h&lGd;c0Yfs z;f@l$UR&mhOW1)Y&I)?H+A>)5JeRX~aTAP3?3OcyMj z#D3J$B}(#RL>=%@WA;O0eI`lZweqllK7||$sIS=rzpS}+T7gzK)jXF}KI`y6!SO7F zmG0@)c9+OLgWZQuE5ud{Bwu|C!^yyv@Ie@|oOS?RG18L?#IHLAYQ{}@7|HZ%qY4eT ziz_c_c*&$&e4%gUJZZlWj0b-l2}Jm;wW1JdX(D8XxG(sef9Hu&!7K>1`3+QM8)i*J0VMiXu8<$_TY-{TD`3%=ZY?~7K&hIrRZr-x1$&NJWGxE5v*b|GlWqZtq zc3sojX6`cl{0Ub$Kw;pVP%AW|PqtHoc`+Yx_kF<6)4WHtVdFoavE%3I`d_Q@pM)_O z9m|c)1m7&oea*XfQB$Vj^)hsFl4A2tel_31UKfuuXw%wr9s5J++8nuEH~)`_JWf*& z4)Bt3R9|E3Fgk>3mF=l+j!o{<~ydk|k3tz+_rHunD7@-R|zTo`azqkm&^ z&RNV=E&@@TNoQt9{09;}y#~F!ho6U(4=^l52Y&p|ra=;hOO4`Jao4)Ii8nFwZOn=; zc3b%M`lPlp8^8gK1i%+gD?$8|qs3$;d$d~we5Z~`Erfo`3xW2{0*Q?Vcf~2_EgHEBcB2He?q@`7oYqFk~~tmrHYVzn+^A4%Gczh!?-k(Mab?RCi&v2>}DgUvLydTP*3 z9(&l6ahsq)^}{K_Bh0^~U%U+XQQRBp8?B8w`fDm1efy_k;p}5;Zl^*|HW&IZQ&mwZ zp&KlPtEULAj1*tWmwad9P5WCzKvBA4>b53R|n6d&nT8j1J-jY|bqf z*KS=#4YBek$ne7xO2^iG85glXdL!n8h>DkB{AR=~Oz2zY zJ%$~K1(mzWM)nOh?Qxc0+AUG9uZFpUL|2e=LNI<=6Mm@ zd2M^+oUFDoGpMV}9qg%V)OskS_o>|jYHJ=2GNTg?^7*h^cV02bT@{zPneRCxq8eij zQi(SEFafbAcTiW!)D9*P$+Q-ZBQq3IbXA_9!=ZeCA6q%&#yn_D&G=c?NNCL+mjYjuMv>5K) z7bF(%zEUA14m;5D4eOfWxU?E1wwOmZg$sWkL2EV}j)htM?22Gu`#XqYApm=uzBY;$ z8)9d-8sn#Bz z-Q*izp;3lYTQHA+NLXj$ab>Wl+GD4AcudT3a4_Nf+(UTGIP40c{m*>%;UAFXFv1|X zaq5x|hmPkigl7FfA(xUK7BF{=s`_sLu~pW#d5xGkckxfAy82KW%7!0v$n)5WqVc#kOMqvh-LY;HOAu(T$=dwOFlDh7o0cL=6vKRf<9_> zgaKMEx%(vVC;EMcnikoa3pR2ZwVy!xsegK-`7NB|*$Hm^LozWY&crE#wdpYWt3SCZZ*gcA)IoGggX zB<_+FVa9ReCdNVd%@{sekMIl?_O({aMSU&~EfX?&ssnzPtKPsuWX?`hN>*DwS!ka- zv(4~SH;o)-Xp$@^+ceeb*_xviY^HxX6Z-j1g^Z4k^pba2b}#{~U_r;ye90Tfla!ec zmfls=jZ8|@pxdUubbFnx_)0;k*e-!(wq?H22shjOM7M7b+*x}b>^csE(ZNzRb(i76 z_8Xuxciq>K8(h4BVpzG7NtrYCTwwLpF~+0ZVfbsI_h3!lswpxQakbd~7=rGmN(EyP zqXGgr=DYO0`~u<@maTFtEO<)^(}9EHEsl_~t4|fno@5qztmByn&B0q}(aaR|DGl;f zoDZp)_G0QV6J%*@>+wz!sj9$di^B|Fl~Y2BonWWP?r9ChCHw4G4J=!;_ZxF3o$-y} z^cQ1=NA#Hm9*v{~a6OD_c#7%N4z=o?4CSqqQ%RyGQ;&1445qwGhjrL*k!BdEnqPqX z@J#m#zE_?}aOFKoj#sV{9BB_W-s@pr3?e&nOkG6ZYFv<{sjSGeKXX5884oNE?|G5F z%oUW0ZWHD6`&#q^$S`5Y?#^BL1DEs71Ogu#MINjnsdm>n4lBehXt|Km99hXx{LJ<6 z;RD3OpQlqY^Ba}A)884z1>=Y7;OBKpU>ZTc{QdPIIK_${noc8&5adG<} z0kQdeUZ)lWj*?SWtcnmzmCV^Md-UE4BNE94=Vd49a??jcTHbvjTMls2f+mx|y z-C{R=F8Yhw{11sWOo=q?{;ruOl3CR}K;w!;fk@cTU;Pz5jh>&Yq469PLxnN8sS4v> z>-gvRn$6ceZ?Dhq^}b+1p<>9$R6@>5$~(W1HMLt=W=;8eEBagW9~5Tz)pXC_-!ti{ zCJtc_I=s51BZ)1`_c`UK==GJfY)u>y&DmO0SI(_pUW6l!j(`gW^~F}39#h2!4hhJQ zqWfQ=V|z<5OGUQ2$VIasfssX!XcB4@IujH;(CouvB?TbO#~~M*-2Pp}9GrGOBCrhuKAyoh>>?y3e~BVd zV>R>482RXUj^Hs&+7q=S$kWhz%RC0N%rLEc%M@EsjZvhf<>9X%M_ZQ_=bIqIct8j{ z^+F?uPYR0+w{P91tHRUij9YiuA3P!n^^x0m#q-5a$jSY_byLtm&;KGdC2?20%lU>| zea^OGJPC!q+6DSC2H;CU<^_2k_Q4${)DZoHbi4bU>qo`2bjC%(yT&eT2a_v(iyLx^ zc3Qud%t#(wmawW?Ao`p5C5Ka7Q7v{}L3n}164+{v94i5&HxKVMr3I7&b#jw|K z(Hm42t9V+palJ~<@|#$RLAQA(9G0osxPbwP;=?KeWBwenp(bjwf3#qwgZE*Tx4Q5Ny@+fVA9@s;j~l!m zRV@fSh5HD2+$Wi_w4-ifWCc#&(!9@!Ofsgc=d%PSZp43iitE|c^if? z3$I`OSzEeyZUis(Vi7NX1K962TS!1;N0@QJ&2p8No&p$HJa~QEHoA|-%*$}F4rIkA z@Zh-Z@`xaCC}4#ag#JyE4z6xJOFghqX}5eTQZjmg`vYC?d*ul^G0K&vU~@^R_6I$%PU+l?Fx0$N zYL2`NyNWotcIr8wiZu{RHNh;F_7kPm>}LEaDvDcmWPc8o9&DFLBT9UX@CaPLgPTivbGXlfpTT2HiJ7FrIAEg@7hXWvCS`|E}z1K!6O^?dou!_Zx&Cj$lY1KZZm}7bOzV>a)sFc*>yH;1KJW3ywlDr}?l6cw;aTjLGUCk%#>cF4$}$ zjJPSGTR;;6no@~TBIq@r)U^)yCsN;I5QnLkm|dl*9~?8}bqoK6WEqOyx(5Mhe^d~1 zG>j%n5YD>f@z9{R`UTlAe$HR~I#_}i*K3FmqGj$^fqA^Cv*!MpyE5{+#hODq>iUls zM#U{55*HXj-|pkUgNyiTGUN4fd%w7%1?^6N;64)ql_8cj(VIx38gqRjLXp18L-D^E z*C94Gr56^Kq|%w zUu2(~u33g}dV}jVUYioR#2R?sw{F5SPyw?b8DL>l=Njs!Sq2}#AK2?Yz4te?s(cEn ze+w)_cwI#QD7uq+ySs%i|~a503C4i zIkxK8c4d>^K!YHKz-Fo=GD5w8NF1&&uc7#nbG+tLvm30BPXo}LwvvC6(_Vt(qJU;; zU^i1WcD<;R^95OV7Q%S+u9KYV{$NA}Fjgj}WI!w%RO}b! zqRuw6m8j_b$1kw%vfIXvp{|poDgHh~6Ws%kc=+f+vPXxH{c;B@#<(*wAnkal9D|BuGSjN z@iEF2pl<149PPSWahi$%h1Cq9Wju`^$ZgIkZLcfV#?5jrxQ22lGl5~ave<|vdYKVn zibz=@CO__Smv}92Y#T7x4`}18;r2i4+8?+>72yiPQFhKE$d@65yEy6Tk}0i%kho_c zQPZYz30Uz9l+qx5u|9!W?_i4nZN7F?j^}3tWXZhSN*GI)hkRsNc6`Xm^1}r#l)Fuy z49Nk7m$?@ija0pp<;agE^`Mvb6%t5g49x5Hj3T4*R<@pef+yhue%^s~hcy=xxd3`G ztO!C0vD24)V?Lo-Qg|Gsvy z0!xH*?G`XlE)7gaxc?2UwcG~Oyt#|;8vqqf@x5#%Tt>#66c2YEa}ly>n48Vw34-VL z(cAlQSuVk(CrOe*S|R)tzY=ea<3M=XP;GT}lI_z7xcuhYpp4CnEM;MGvSuN`62 z-PKEOZL{5%c^(tSSXPvcXAzWc?kiXPxmn=_VSr+=8U;TU1`fv#1D6EyU=QsidD1WR zlKk$>5%V~A;wd%JI?_1b*<7LD0I7FWeI37cZf5&dAb=dcDfKn6&4(+K#*@*{!ifeY zEW&^}_!*i&%WRmf2O2Yg01$vLm^G{Ss^cyLZk8EBI7d$eUb9~v1yLHOi4LN(NZ4NA zM@I4d(2diuSU;4kRwrJG|I`s|FNTEB-20PL%bLPs>TZblyYJ2uonIge=60a+#cp>j zr%^gngCZ4U@|%Nw2ZW{u2|W`g7GagSJA)V;MUddeXYyf@IbgN)v%~~?5MLZEGQAmX zKlQtW+vBPl5@+?+vk#p-S>SrHL$mDymJFCB<@U~33Ps+U(D5m=KwdW}2vpYSzD8}< zl}bRlK+D5_KlCvbv%%ju+u+reF3hfGIlT1}TEoJo!2~#sV?5}XyvpMU^3rFq)7E!n zca)0w{M3~IxtSeUp+m_Knw(e+x>b6tl!obDrhhReoqsXkp)hY7_Gy7ukyIp+oMmiK z5%l{(xTIa+!Uh6Kzwe`2gTR&jR_}8%zS%7zz^h7^d_2GJPbdmL;r91Ud#`kz9W|Ju zM6^x|B$oeVYHt8)eBMjeYl2w@Evf|tmg)_QxFHjDo{CWi;$6OfQrs9ES@5CG^EUep zV6-bQueC6|6xX|x?(-47F8B@)6nXi+p?BEn?Kdhs+`d0{9TRLMcxqHAW0q+Y*Kr>z zn3vQcc=P2{a0qxv>Ei0xuoD!h&YFNo3TVh?zh39+OR}i?(Me2wEU76!oTPcH)E^Xh zZxaYJMB{~d$wGhwBB1;^6cgrh8s>Bwb_ymgA`Tuk4G)2|Ha;ykFU;X|BOjftxodD@ z()nK&XYg=ve=N>2oqUZuz%7b`^JM1NC@Z@r>XGxVct1_lyR}-B!yDI&1eXTdiydmc zM%GjibPDVt9!^y^Sro_Wp?aXR*bjlS4PwPbBqV&xjq0t~>-eu0(Lzs~RY8I`GGLh$H)+gW=ixrXuT9Ep1~<0*Xy}&siudogH_w+T*k8Z1 z4<@9Xy(jH^$>N9=kb_sT=$DP7za*8a>@s%^%DA zxr$P$w;9~N$CV$an__N%BN;9;_cY7DWm z$FdSWgn+yxo19s1!D9W&tMiNP6ZA%8AGhsZKKYFvkvn6BCBU|@vq+CMT&tQ;w(kW_-le_ZE}WZGsO8Ir58SgCwm43Fa;r4)@qF3C=b-rcT5WQW`2G&_BKL@G9M zDqLc=;1$h}F67sG&6W5YU`V1a`;i6V=;4hI7Mesgn+kyy!K{~Kb=1wJ1)Y^Z>F^0P z=gG`M%xH-!cIv3AZC#L-CzuoC>@4<_Y>R|FKrVR>3qQ`G#0S!dID#yMb5N(V=?L8W zYv@4n?TRXXkq@7H$v4q>#z7QW)lAple-h`iz24DR3i?jdpm)((#Vps>aye6B8zW{c{X;`i%aileM|NwA=8T?wfUDu z)zvjriF^5+GtEDx)3YlJ;)B=rs_qQI)y(7Tq&NUHjIcSqM?HwfB0kl~kt@%yfQ2J4v#9>-H)P%w5ll0-Ya%pjAUqvF>%%_ncj-+6vMbz@+h>YT`vcq<}cbufJ zV*fiL9|TUVi7m6*Gi95ymAieQYju%b@E>9nfyRa6}@k3A3V{SZGl9?8G$$Dus~C zbdI6K=|7tB1CN;*Wz^PKQS{0)WSM(0Z~8WX#~|U+Nhw&3!KcK%)qVZohk;)c(zM~C z!>H3UO8B&^9*aL;fc*t^WJf)JYBce`*?EzWjhRSYyot-T*^aom3?$~nc>~**lWY-VU{HB>kh_$Vk@)EkBh|OuPxGY~QE3P@Ad!N$ASBh3MeC0O%k`5)bG=ZB zR14qy=&F56LLNS}Cdwnb>xrj&3`EX}zrRd^!F+ySR(qlR_5J-Xvf3f<^}gMQHd#2k zxry!vEDBj}`s14#?=JscNTBp95L?f;u26m7i`B)JQUXVSaO|nx>2qg9^yE*}`np+% ztR9=wO{J{vd$n$OuQGlucTSWy%tbYC29DAmO}-@o3e`NA+rBb(eyljj>f{nAe+es{ zu4L}0=h!=lq{*)!3k;W%rIfm}f&sUWszz*+4MKfnbgCARqq{k$8&ibsR1i*u%Q4v| z+uvlrVa}>}OLx=p@s)zE0un(Eqf-OMdst`a;(<{ZaB#X)xLP4=G`=?-^#FDm3v?WV z5FbQF=d4F>++7N70d-RMddf;tYUhA;1fhwiE|g2*2gaDIU2Xo^TeR??S|l?zI0Lj^ zefaEIEE}|w2Eun}< zHQ9H_+D2ECmbd1Q%Nx&bD$DdcNjkq0C9S1R-olLavVp|2e{ zkj#a?)+#^@76jrU1~FA#@LJC8xOxUec$My2wG2RNm;fz&4HLm~FcA!o0FQ!-jtGZ{ z@J|tph>OGn{3C^Bie~T$rL}ebScMb7q%psio?CF=IiIZV79EjX;)O*>@?SC;W<~x- zCdUc$UX+l^*-0rNBUf11xnQ2M5}`wHY2PAFkf%7;>Hb{HF;|8zH~%nEq4@=Ix^@sj zcwV3D7DF!0bD=x#mhbacy57cJVe3%r>nIP%!dfa(R_}dM#Qj0k+&)uWrfPOQ;VjCP zDR|3bkER1mUMpGb++AoXjwcv40VeB~7Yg1coOgA;yeC`7$;}WFe;c;gvR+kP&&m?Z zssmZH&UY=W>LQKW5H+3uE_C}FFdGlgj%=x5hy1OH2+=1-QYiadg-jBndhV{K5zYBI*f+0ixFaaZEmBGV z`)ic%S8|%X$YY$dnGWfGTks4?n3vtJm9m4qeJPdApY~@%q_4=mcI9npG|iR)J$g^r zOO=Tmm_twkx^KKqN#zAeC@*`xYD9-ZS(H9b1xg87vwT#2r4^X8;?q(!K?lX34B}Pt z(WaH8Ys!D~?unY7G@Qk0a{Q2q+4F~v{%-S^Y_M8K!ZljnhfS~$BlTS6G1_!fiHc~2 zn$PW(Z~kP{_S8qkh}fw;HWoB}P$Y_0z^f9aNVqIlO!#K*7<$zv<4N*|-+6Sv$q zJ{aL`JZy^XdqSB{scA*K?pKJ;fk< z7ZQ$|mgL72dbyq7SLvp#{Tg-ad=f?9v~xK|7Fx9SkZ__u z8Jl7l?Ybhlv*u-*eSg^8QG9iyRm6*rD2N8Avo~)F4UH^&rpg_oSCaSfom3h6_j{Uu z>~yfiXxBJOQBz8^A1My)(AJuS@vNz#LI(TCC$|{2ANDPxw0=mX>9{5CnWJd^bUfA{ zs%0SS8~8aj)jc}p9_=2lGDLIg@@&4{WIWMC_K&Ohi%OrDx>ArHYP2_OU^ad64|bQf z7bOZ4hK6~iKChn_4hNItqlAL3@B&oHnqFPJ0J5WOH$+Lq@J}=&DAxmi*27NKRJ;wx zoGun(3B&ywUqbgQeyM#}=?|gWE7uXp`J}@xydcI^Fm!FFks~gIVJD9iDx|GY)E}{3 z=gU8;P~)#;`f-hjB5$|BTL~($ip<->K{P5e);+vgtl;-Dqw8y~8|5PUKBY)XRsi@J zd!eW}#iJq0uNF_VV?KoiVQx?N>O&2$Ja}X?wyL=L9e!<< zBoM#)mGei%7Au4J+z^XFSA-YD_v{_B)Bd{aMEIm5=HDMH)Ra*r@xx$;igF$sa9dan zQnlvj5%qhx(2)w6;#)bq73P=s)O>jzR9G&~c+>jplY5rgN*D8`?Z^}{rE52MjMoXh zNb0=u{53pXk$jiiF`C>M6r^_ji6}>Yd3$%H$sEX>gkeajd+TKx+yVia44+9C&rNlUR0G+MQ zK1wD~s;W*6=8f9|>Du*vL3@2i@}Yo$}Kdx^H^{-ky=7^^0J%`lxXc z-?%@C*dk^lS*t{=SPv}voEj+DT74SL^gw^~>B(yPds?yy?6DNtnqqC=HM1D=>gz4w zdt4oBgO=jhJx65IoA#_;_scqB+sVVWpvGtl2W*UaVO7SGMlY{(#|WyC)9ita2p5eM&@7%3283sG&2sCek?Aic;miyODuYo zxsXAg9+SplHZ@rC^lJ5nlP>?+zvA7t$d4$Aga0450~pw>zWbd6tH}I0(~n4)CzWlC`Lsk(&O1>}vR90)7-BRDxeRXj{YV$M*4 z`gC4oS;?kYDc4LMyk*Qu2^GL-VtyZ`d#RZmXD)W=Gi;S3Xk~4T|6-(}s*=_kp(xK> zq^z`gT|`gVnr;B;K$anSnysp&Pci0jh5~mn#bkms4Lj=aY`)Oz+50j!Ku3EE?_a?n_yPP@`*A(SD|3qKrJx?Cu^VaK118wB%?I+2{g?cT4TH;89BwBZX*l)m* zIln_yL_ciRC;y_tSSOfinGNrznOk~ErR;G-F%B&i^~Ks7xulQ?cl{NqX>JnuU&@=M zkcf2KxyQ=yZ-17nXsDM;JUU_fN1K1=9sQs420Dy+%62AP8Zh7R-|QPUwv)6wA74y2 zgix9!i4Rh>eM9e%?l2o*;kg%>&|5Q~S%QN2I@!!xER4t_o!OT4olPCjm79GG{~iWySW%8MVoxJCW;*tH3xUHfa%-&Ef#f~Um7Bi zVw$zUQo)o{Y}OchZz^}Nl> z#jc|C?7HI^1QjChq|RuW?|V!45>I6|N}8F+LfShTWjbtv$=i_%tD@~e_rpcS>okHx zVoVvLLYy~=ZFFONp)O;#9bj_|?-TAVA;wR-H-@ZH0;-b=snPxYqAwqc?xiX!+LS`F zb7BSX!(u${Yz(H#(zgRI)jy>M%!i(hrNm5Gc*WgpjOG>4p2QNKefQd3*M8K;kSEcm z$upyx`bpS7{M#6rCt)aYNS>|ecPX*7D(ukQsP)d^~seDEDoZ8)D~%J1K41m>^Bg-2YVk?iT#cTU#@AStFp`IK$uJ4qY)!KcA!()5=Gx*BWWk@dvn&pCPTq4@=(qc=zZ8GH zJc3oy=Dj{nbc$PeK(-$1-P#ePED5x3s<0L>7xC`gTH=(Sb}K3@W-ZI>=b0UOm2?&O z_O11wx^K6wjuvUMVMs2B1!XYZN-04+ZwuhFS<1xHnhzCAl(nI#&)Pnp+8#fB;%VC! z+9w#FtA8=+TMy4?GpNgW#zILs>qm|9p>8lOP=*Fm6PMqqK(kB7C zVo)Jiyrn{iwj=)2^k2hh&999Qeub$`IE;xlhR)1h*c9^DEgD&v^j{*dG?eTe+XZd@ z7w@?`5cG^+=`9=!N55~EDF#-?RO_ZhTx~P<>;R)kt6vb!CBx|f&~`QaCn&x|1!*I? z0Z?Vyql@2n!qLEE(ZU%rXgzSxhDr} { + render(); + const linkElement = screen.getByText(/learn react/i); + expect(linkElement).toBeInTheDocument(); +}); diff --git a/demo/data/demo/public/storesite/src/App.tsx b/demo/data/demo/public/storesite/src/App.tsx new file mode 100644 index 00000000..776cc9c8 --- /dev/null +++ b/demo/data/demo/public/storesite/src/App.tsx @@ -0,0 +1,118 @@ +import { useEffect, useState } from 'react'; +import './App.css'; +import { Parser, Store } from 'n3'; +import { Grid, Modal } from '@mui/material'; +import { readFileSync } from 'fs'; +import Banner from './Banner'; +import AuthModal from './Modal' +import { processAgeResult, retrieveData } from './flow'; + +type Item = { + id: number, + name: string, + image: string, + price_cents: number, + avatar_file_name: string, + avatar_content_type: string, + alcoholic: boolean, +} + +function App() { + + const [items, setItems] = useState([] as Item[]) + const [verified, setVerified] = useState(false) + const [modalError, setModalError] = useState('') + + useEffect(() => { + + async function getData () { + fetch('zeusbeverages.json' + ,{ + headers : { + 'Content-Type': 'application/json', + 'Accept': 'application/json' + } + } + ) + .then(function(response){ + return response.json(); + }) + .then(function(items) { + for (let item of items) { + item.image = `https://tap.zeus.gent/system/products/avatars/000/000/${item.id.toString().padStart(3, '0')}/medium/${item.avatar_file_name}` + } + setItems(items) + }); + } + + getData() + + }, []) + + function clearErrors() { + setModalError('') + } + + + function displayItem(item: Item) { + return ( + + product +

{item.name}

+

{item.price_cents}

+
+ ) + } + + + const verify = async function (webId: string) { + console.log('running verification for', webId) + + try { + const ageData = await retrieveData(webId); + const result = await processAgeResult(ageData, webId) + if (result) setVerified(true) + + } catch (error: any) { + setModalError(error.message) + } + } + + return ( +
+
+
+

De Buurtwinkel

+
+
+ + + +
+ +

Dranken

+ + { + items.filter(item => { return verified ? true : !item.alcoholic}).map(item => displayItem(item)) + } + +
+ + { + !verified && + } + +
+ ); +} + +export default App; diff --git a/demo/data/demo/public/storesite/src/Banner.css b/demo/data/demo/public/storesite/src/Banner.css new file mode 100644 index 00000000..991d2a9e --- /dev/null +++ b/demo/data/demo/public/storesite/src/Banner.css @@ -0,0 +1,60 @@ +.banner-wrapper { + height: 80px; + padding: .25em; + background-color: lightblue; + color: black; + position: fixed; + width: 100%; + bottom: 0; + left: 0; + right: 0; +} + +.row { + display: flex; + flex-direction: row; + flex-wrap: wrap; + max-width: 65rem; + width: 100%; + margin: 0 auto; + padding: 0 .5em; + height: 30px; +} + +.column { + display: flex; + flex-direction: column; + flex-basis: 100%; + flex: 1; + padding: 0 .5em; +} + +.banner-header { margin: 0 auto; } + +.banner-image { + vertical-align: middle; + padding-right: .5em; +} + +.banner-headline { + display: inline-block; + padding-left: .5em; +} + +.banner-headline p { + font-weight: 700; + font-size: 1.2rem; + vertical-align: middle; +} + +.banner-text { + font-size: 1.15rem; +} + +#ageValidation { + position: fixed; + width: 150px; + height: 40px; + bottom: 20px; + right: 20px; +} \ No newline at end of file diff --git a/demo/data/demo/public/storesite/src/Banner.tsx b/demo/data/demo/public/storesite/src/Banner.tsx new file mode 100644 index 00000000..d12c862b --- /dev/null +++ b/demo/data/demo/public/storesite/src/Banner.tsx @@ -0,0 +1,27 @@ +import React from 'react'; +import './Banner.css'; +import AuthModal from './Modal'; + +const Banner = (props: any) => { + return ( +
+
+
+
+

Some results have been hidden

+
+
+
+
+
+

Please verify your age to display restricted items.

+
+
+ + + {/* */} +
+ ); +} + +export default Banner; \ No newline at end of file diff --git a/demo/data/demo/public/storesite/src/ItemCard.tsx b/demo/data/demo/public/storesite/src/ItemCard.tsx new file mode 100644 index 00000000..e90c836b --- /dev/null +++ b/demo/data/demo/public/storesite/src/ItemCard.tsx @@ -0,0 +1,32 @@ +import * as React from 'react'; +import Card from '@mui/material/Card'; +import CardActions from '@mui/material/CardActions'; +import CardContent from '@mui/material/CardContent'; +import CardMedia from '@mui/material/CardMedia'; +import Button from '@mui/material/Button'; +import Typography from '@mui/material/Typography'; + +export default function ItemCard() { + return ( + + + + + Lizard + + + Lizards are a widespread group of squamate reptiles, with over 6,000 + species, ranging across all continents except Antarctica + + + + + + + + ); +} \ No newline at end of file diff --git a/demo/data/demo/public/storesite/src/Modal.tsx b/demo/data/demo/public/storesite/src/Modal.tsx new file mode 100644 index 00000000..7f9ac9f2 --- /dev/null +++ b/demo/data/demo/public/storesite/src/Modal.tsx @@ -0,0 +1,77 @@ +import * as React from 'react'; +import Backdrop from '@mui/material/Backdrop'; +import Box from '@mui/material/Box'; +import Modal from '@mui/material/Modal'; +import Fade from '@mui/material/Fade'; +import Button from '@mui/material/Button'; +import Typography from '@mui/material/Typography'; + +const style = { + position: 'absolute' as 'absolute', + top: '50%', + left: '50%', + transform: 'translate(-50%, -50%)', + width: 400, + bgcolor: 'background.paper', + border: '2px solid #000', + boxShadow: 24, + p: 4, +}; + +const AuthModal = (props: any) => { + const [open, setOpen] = React.useState(false); + const [showInput, setShowInput] = React.useState(false); + const [inputValue, setInputValue] = React.useState(''); + const handleOpen = () => setOpen(true); + const handleClose = () => { + setOpen(false) + props.clearErrors(); + setShowInput(false) + }; + + return ( +
+ + {/* */} + + + + { props.error + ? + { `Could not verify age: ${props.error}` } + + : + showInput + + ?
+ setInputValue(evt.target.value)} style={{width: "70%", marginRight: "10px"}}> + +
+ + :
setShowInput(true)}>
+ + } +
+
+
+
+ ); +} + +export default AuthModal; \ No newline at end of file diff --git a/demo/data/demo/public/storesite/src/flow.ts b/demo/data/demo/public/storesite/src/flow.ts new file mode 100644 index 00000000..93f04565 --- /dev/null +++ b/demo/data/demo/public/storesite/src/flow.ts @@ -0,0 +1,183 @@ +/* eslint-disable max-len */ +import { Parser, Writer, Store } from 'n3' + +const parser = new Parser(); +const writer = new Writer(); + +export const terms = { + solid: { + umaServer: 'http://www.w3.org/ns/solid/terms#umaServer', + viewIndex: 'http://www.w3.org/ns/solid/terms#viewIndex', + entry: 'http://www.w3.org/ns/solid/terms#entry', + filter: 'http://www.w3.org/ns/solid/terms#filter', + location: 'http://www.w3.org/ns/solid/terms#location', + }, + filters: { + bday: 'http://localhost:3000/catalog/public/filters/bday', + age: 'http://localhost:3000/catalog/public/filters/age', + }, + views: { + bday: 'http://localhost:3000/ruben/private/derived/bday', + age: 'http://localhost:3000/ruben/private/derived/age', + }, + agents: { + ruben: 'http://localhost:3000/ruben/profile/card#me', + vendor: 'http://localhost:3000/demo/public/vendor', + present: 'http://localhost:3000/demo/public/bday-app', + }, + scopes: { + read: 'urn:example:css:modes:read', + } +} + +export async function retrieveData(webId: string): Promise { + + log(`Alright, so, for the demo ...`); + + log(`Ruben V., a.k.a. <${terms.agents.ruben}>, has some private data in .`); + + log(`Of course, he does not want everyone to be able to see all of his private data when they need just one aspect of it. Therefore, Ruben has installed two Views on his data, based on SPARQL filters from a public Catalog. (When and how this is done is out-of-scope for now.)`); + + const webIdData = new Store(parser.parse(await (await fetch(terms.agents.ruben)).text())); + const viewIndex = webIdData.getObjects(terms.agents.ruben, terms.solid.viewIndex, null)[0].value; + const views = Object.fromEntries(webIdData.getObjects(viewIndex, terms.solid.entry, null).map(entry => { + const filter = webIdData.getObjects(entry, terms.solid.filter, null)[0].value; + const location = webIdData.getObjects(entry, terms.solid.location, null)[0].value; + return [filter, location]; + })); + + log(`Discovery of views is currently a very crude mechanism based on a public index in the WebID document. (A cleaner mechanism using the UMA server as central hub is being devised.) Using the discovery mechanism, we find the following views on Ruben's private data.`) + + log(`(1) <${views[terms.filters.bday]}> filters out his birth date, according to the <${terms.filters.bday}> filter`); + log(`(2) <${views[terms.filters.age]}> derives his age, according to the <${terms.filters.bday}> filter`); + + const policyContainer = 'http://localhost:3000/ruben/settings/policies/'; + + log(`Access to Ruben's data is based on policies he manages through his Authz Companion app, and which are stored in <${policyContainer}>. (This is, of course, not publicly known.)`); + + const umaServer = webIdData.getObjects(terms.agents.ruben, terms.solid.umaServer, null)[0].value; + const configUrl = new URL('.well-known/uma2-configuration', umaServer); + const umaConfig = await (await fetch(configUrl)).json(); + const tokenEndpoint = umaConfig.token_endpoint; + + log(`To request access to Ruben's data, an agent will need to negotiate with Ruben's Authorization Server, which his WebID document identifies as <${umaServer}>.`); + log(`Via the Well-Known endpoint <${configUrl.href}>, we can discover the Token Endpoint <${tokenEndpoint}>.`); + + log(`Now, having discovered both the location of the UMA server and of the desired data, an agent can request the former for access to the latter.`); + + const accessRequest = { + permissions: [{ + resource_id: terms.views.age, + resource_scopes: [ terms.scopes.read ], + }] + }; + + log(JSON.stringify(accessRequest)) + + let tokenEndpointResponse = await fetch(tokenEndpoint, { + method: "POST", + headers: { "content-type": "application/json" }, + body: JSON.stringify(accessRequest), + }); + + // log(JSON.stringify(await tokenEndpointResponse.text())) + + + if (tokenEndpointResponse.status === 403) { + try { + const { ticket, required_claims } = await tokenEndpointResponse.json(); + if (!ticket || !required_claims) { // There is no negotiation + throw new Error('Could not negotiate data retrieval for verification.') + } + + log(`Based on the policy, the UMA server requests the following claims from the agent:`); + required_claims.claim_token_format[0].forEach((format: string) => log(` - ${format}`)) + + // JWT (HS256; secret: "ceci n'est pas un secret") + // { + // "http://www.w3.org/ns/odrl/2/purpose": "urn:solidlab:uma:claims:purpose:age-verification", + // "urn:solidlab:uma:claims:types:webid": "http://localhost:3000/demo/public/vendor" + // } + const claim_token = "eyJhbGciOiJIUzI1NiJ9.eyJodHRwOi8vd3d3LnczLm9yZy9ucy9vZHJsLzIvcHVycG9zZSI6InVybjpzb2xpZGxhYjp1bWE6Y2xhaW1zOnB1cnBvc2U6YWdlLXZlcmlmaWNhdGlvbiIsInVybjpzb2xpZGxhYjp1bWE6Y2xhaW1zOnR5cGVzOndlYmlkIjoiaHR0cDovL2xvY2FsaG9zdDozMDAwL2RlbW8vcHVibGljL3ZlbmRvciJ9.Px7G3zl1ZpTy1lk7ziRMvNv12Enb0uhup9kiVI6Ot3s" + + log(`The agent gathers the necessary claims (the manner in which is out-of-scope for this demo), and sends them to the UMA server as a JWT.`) + + tokenEndpointResponse = await fetch(tokenEndpoint, { + method: "POST", + headers: { "content-type": "application/json" }, + body: JSON.stringify({ + ...accessRequest, + ticket, + claim_token_format: 'urn:solidlab:uma:claims:formats:jwt', + claim_token, + }) + }); + + } catch(e) { + log(`Without a policy allowing the access, the access is denied.`); + log(`However, the UMA server enables multiple flows in which such a policy can be added, for example by notifying the resource owner. (This is out-of-scope for this demo.)`); + throw e + } + } + + if (tokenEndpointResponse.status !== 200) { log('Access request failed despite policy...'); throw new Error("Access request failed despite policy..."); } + + log(`The UMA server checks the claims with the relevant policy, and returns the agent an access token with the requested permissions.`); + + const tokenParams = await tokenEndpointResponse.json(); + const accessWithTokenResponse = await fetch(terms.views.age, { + headers: { 'Authorization': `${tokenParams.token_type} ${tokenParams.access_token}` } + }); + + if (accessWithTokenResponse.status !== 200) { log('Access with token failed...'); throw new Error("Access with token failed..."); } + + log(`The agent can then use this access token at the Resource Server to perform the desired action.`); + + let result = await accessWithTokenResponse.text() + + console.log(`retrieved data\n${result}`) + + return result +} + +export async function processAgeResult(data: string, webId: string): Promise { + const store = new Store( new Parser().parse(await (data)) ) + let age = store.getQuads(null, "http://xmlns.com/foaf/0.1/age", null, null)[0]?.object.value + if (age && parseInt(age) >= 18) { + console.log(`Discovered age value of ${parseInt(age)}, enabling all restricted content`) + return true + } else { + console.log('Could not discover an appropriate age value for user, keeping restricted content disabled') + return false + } +} + + +/* Helper functions */ + +function parseJwt (token:string) { + return JSON.parse(Buffer.from(token.split('.')[1], 'base64').toString()); +} + +function log(msg: string, obj?: any) { + console.log(''); + console.log(msg); + if (obj) { + console.log('\n'); + console.log(obj); + } +} + +// creates the container if it does not exist yet (only when access is there) +async function initContainer(policyContainer: string): Promise { + const res = await fetch(policyContainer) + if (res.status === 404) { + const res = await fetch(policyContainer, { + method: 'PUT' + }) + if (res.status !== 201) { + log('Creating container at ' + policyContainer + ' not successful'); throw 0; + } + } +} + diff --git a/demo/data/demo/public/storesite/src/index.css b/demo/data/demo/public/storesite/src/index.css new file mode 100644 index 00000000..bf457581 --- /dev/null +++ b/demo/data/demo/public/storesite/src/index.css @@ -0,0 +1,76 @@ +body { + margin: 0; + height: 100vh; + width: 100vw; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', + 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', + sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +code { + font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', + monospace; +} + +html, body { + overflow: auto; +} + +header { + height: 30px; + margin-top: 0px; + background-color: lightblue; +} + +#navBar { + height: 80px; + width: 100%; + margin-top: 20px; +} + +#navBarContainer { + /* height: 100%; */ + /* width: 100%; */ + margin-top: 2vh; + margin-bottom: 2vh; + margin-left: 10vw; + margin-right: 10vw; + + align-items: center; + display: flex; + flex-direction: row; + flex-wrap: wrap; + justify-content: space-between; +} + +#logoContainer { + height: 80px; + width: 80px; + overflow: hidden; + object-fit: cover; +} + +#logo { + height: 80px; + width: 80px; + object-fit: fill; + max-width: 80px; + max-height: 80px; +} + + +#searchBarContainer { + width:calc(80vw - 100px); + height: 60px; + margin-top: 5px; + margin-bottom: 10px; + background-color: lightblue; +} + +#searchBar { + height: 100%; + width: 100%; + font-size:24px; +} diff --git a/demo/data/demo/public/storesite/src/index.tsx b/demo/data/demo/public/storesite/src/index.tsx new file mode 100644 index 00000000..032464fb --- /dev/null +++ b/demo/data/demo/public/storesite/src/index.tsx @@ -0,0 +1,19 @@ +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import './index.css'; +import App from './App'; +import reportWebVitals from './reportWebVitals'; + +const root = ReactDOM.createRoot( + document.getElementById('root') as HTMLElement +); +root.render( + + + +); + +// If you want to start measuring performance in your app, pass a function +// to log results (for example: reportWebVitals(console.log)) +// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals +reportWebVitals(); diff --git a/demo/data/demo/public/storesite/src/logo.svg b/demo/data/demo/public/storesite/src/logo.svg new file mode 100644 index 00000000..9dfc1c05 --- /dev/null +++ b/demo/data/demo/public/storesite/src/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/demo/data/demo/public/storesite/src/react-app-env.d.ts b/demo/data/demo/public/storesite/src/react-app-env.d.ts new file mode 100644 index 00000000..6431bc5f --- /dev/null +++ b/demo/data/demo/public/storesite/src/react-app-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/demo/data/demo/public/storesite/src/reportWebVitals.ts b/demo/data/demo/public/storesite/src/reportWebVitals.ts new file mode 100644 index 00000000..49a2a16e --- /dev/null +++ b/demo/data/demo/public/storesite/src/reportWebVitals.ts @@ -0,0 +1,15 @@ +import { ReportHandler } from 'web-vitals'; + +const reportWebVitals = (onPerfEntry?: ReportHandler) => { + if (onPerfEntry && onPerfEntry instanceof Function) { + import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { + getCLS(onPerfEntry); + getFID(onPerfEntry); + getFCP(onPerfEntry); + getLCP(onPerfEntry); + getTTFB(onPerfEntry); + }); + } +}; + +export default reportWebVitals; diff --git a/demo/data/demo/public/storesite/src/setupTests.ts b/demo/data/demo/public/storesite/src/setupTests.ts new file mode 100644 index 00000000..8f2609b7 --- /dev/null +++ b/demo/data/demo/public/storesite/src/setupTests.ts @@ -0,0 +1,5 @@ +// jest-dom adds custom jest matchers for asserting on DOM nodes. +// allows you to do things like: +// expect(element).toHaveTextContent(/react/i) +// learn more: https://github.com/testing-library/jest-dom +import '@testing-library/jest-dom'; diff --git a/demo/data/demo/public/storesite/tsconfig.json b/demo/data/demo/public/storesite/tsconfig.json new file mode 100644 index 00000000..a273b0cf --- /dev/null +++ b/demo/data/demo/public/storesite/tsconfig.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": [ + "dom", + "dom.iterable", + "esnext" + ], + "allowJs": true, + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "noFallthroughCasesInSwitch": true, + "module": "esnext", + "moduleResolution": "node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx" + }, + "include": [ + "src" + ] +} diff --git a/demo/setPolicies.ts b/demo/setPolicies.ts new file mode 100644 index 00000000..ed2c6300 --- /dev/null +++ b/demo/setPolicies.ts @@ -0,0 +1,93 @@ +/* eslint-disable max-len */ + +import { fetch } from 'cross-fetch'; +import { Parser, Writer, Store } from 'n3'; +import { demoPolicy } from "./policyCreation"; +import { mkdirSync } from 'fs'; + +const parser = new Parser(); +const writer = new Writer(); + +const terms = { + solid: { + umaServer: 'http://www.w3.org/ns/solid/terms#umaServer', + viewIndex: 'http://www.w3.org/ns/solid/terms#viewIndex', + entry: 'http://www.w3.org/ns/solid/terms#entry', + filter: 'http://www.w3.org/ns/solid/terms#filter', + location: 'http://www.w3.org/ns/solid/terms#location', + }, + filters: { + bday: 'http://localhost:3000/catalog/public/filters/bday', + age: 'http://localhost:3000/catalog/public/filters/age', + }, + views: { + bday: 'http://localhost:3000/ruben/private/derived/bday', + age: 'http://localhost:3000/ruben/private/derived/age', + }, + agents: { + ruben: 'http://localhost:3000/ruben/profile/card#me', + vendor: 'http://localhost:3000/demo/public/vendor', + present: 'http://localhost:3000/demo/public/bday-app', + }, + scopes: { + read: 'urn:example:css:modes:read', + } +} + +async function main() { + + const policyContainer = 'http://localhost:3000/ruben/settings/policies/'; + + + log(`Having been notified in some way of the access request, Ruben could go to his Authz Companion app, and add a policy allowing the requested access.`); + + const startDate = new Date(); + const endDate = new Date(startDate.valueOf() + 14 * 24 * 60 * 60 * 1000); + const purpose = 'urn:solidlab:uma:claims:purpose:age-verification' + const policy = demoPolicy(terms.views.age, terms.agents.vendor, { startDate, endDate, purpose }) + + // create container if it does not exist yet + await initContainer(policyContainer) + const policyCreationResponse = await fetch(policyContainer, { + method: 'POST', + headers: { 'content-type': 'text/turtle' }, + body: writer.quadsToString(policy.representation.getQuads(null, null, null, null)) + }); + + if (policyCreationResponse.status !== 201) { log('Adding a policy did not succeed...'); throw 0; } + + log(`Now that the policy has been set, and the agent has possibly been notified in some way, the agent can try the access request again.`); + +} + +main(); + + +/* Helper functions */ + +function parseJwt (token:string) { + return JSON.parse(Buffer.from(token.split('.')[1], 'base64').toString()); +} + +function log(msg: string, obj?: any) { + console.log(''); + console.log(msg); + if (obj) { + console.log('\n'); + console.log(obj); + } +} + +// creates the container if it does not exist yet (only when access is there) +async function initContainer(policyContainer: string): Promise { + const res = await fetch(policyContainer) + if (res.status === 404) { + const res = await fetch(policyContainer, { + method: 'PUT' + }) + if (res.status !== 201) { + log('Creating container at ' + policyContainer + ' not successful'); throw 0; + } + } +} + From 9d541ae05118865c11e5684a19a4778707c7b54d Mon Sep 17 00:00:00 2001 From: "Ruben D." Date: Wed, 27 Mar 2024 16:43:11 +0100 Subject: [PATCH 19/83] Authorization companion app --- .../demo/public/authorizationsite/.gitignore | 24 + .../demo/public/authorizationsite/README.md | 25 + .../authorizationsite/package-lock.json | 19981 ++++++++++++++++ .../public/authorizationsite/package.json | 47 + .../public/example_policy.jsonld | 41 + .../public/example_policy.nq | 18 + .../public/example_policy.ttl | 29 + .../authorizationsite/public/favicon.ico | Bin 0 -> 3870 bytes .../authorizationsite/public/index.html | 43 + .../authorizationsite/public/logo192.png | Bin 0 -> 5347 bytes .../authorizationsite/public/logo512.png | Bin 0 -> 9664 bytes .../authorizationsite/public/manifest.json | 25 + .../authorizationsite/public/robots.txt | 3 + .../demo/public/authorizationsite/src/App.css | 39 + .../demo/public/authorizationsite/src/App.tsx | 86 + .../authorizationsite/src/components/Home.tsx | 50 + .../src/components/Modal.tsx | 71 + .../src/components/Navigate.tsx | 13 + .../src/components/Query.tsx | 95 + .../src/components/SolidAuth.tsx | 64 + .../public/authorizationsite/src/index.css | 96 + .../public/authorizationsite/src/index.tsx | 13 + .../authorizationsite/src/style/Query.css | 3 + .../src/util/PolicyManagement.ts | 148 + .../src/util/Vocabularies.ts | 139 + .../src/util/policyCreation.ts | 206 + .../public/authorizationsite/tsconfig.json | 26 + .../public/authz-companion-app/index.html | 0 demo/data/demo/public/bday-app/index.html | 0 demo/data/demo/public/package.json | 11 - .../demo/public/storesite/public/index.html | 2 +- demo/data/demo/public/storesite/src/Modal.tsx | 1 - demo/data/demo/public/vendor/index.html | 0 demo/setPolicies.ts | 4 - 34 files changed, 21286 insertions(+), 17 deletions(-) create mode 100644 demo/data/demo/public/authorizationsite/.gitignore create mode 100644 demo/data/demo/public/authorizationsite/README.md create mode 100644 demo/data/demo/public/authorizationsite/package-lock.json create mode 100644 demo/data/demo/public/authorizationsite/package.json create mode 100644 demo/data/demo/public/authorizationsite/public/example_policy.jsonld create mode 100644 demo/data/demo/public/authorizationsite/public/example_policy.nq create mode 100644 demo/data/demo/public/authorizationsite/public/example_policy.ttl create mode 100644 demo/data/demo/public/authorizationsite/public/favicon.ico create mode 100644 demo/data/demo/public/authorizationsite/public/index.html create mode 100644 demo/data/demo/public/authorizationsite/public/logo192.png create mode 100644 demo/data/demo/public/authorizationsite/public/logo512.png create mode 100644 demo/data/demo/public/authorizationsite/public/manifest.json create mode 100644 demo/data/demo/public/authorizationsite/public/robots.txt create mode 100644 demo/data/demo/public/authorizationsite/src/App.css create mode 100644 demo/data/demo/public/authorizationsite/src/App.tsx create mode 100644 demo/data/demo/public/authorizationsite/src/components/Home.tsx create mode 100644 demo/data/demo/public/authorizationsite/src/components/Modal.tsx create mode 100644 demo/data/demo/public/authorizationsite/src/components/Navigate.tsx create mode 100644 demo/data/demo/public/authorizationsite/src/components/Query.tsx create mode 100644 demo/data/demo/public/authorizationsite/src/components/SolidAuth.tsx create mode 100644 demo/data/demo/public/authorizationsite/src/index.css create mode 100644 demo/data/demo/public/authorizationsite/src/index.tsx create mode 100644 demo/data/demo/public/authorizationsite/src/style/Query.css create mode 100644 demo/data/demo/public/authorizationsite/src/util/PolicyManagement.ts create mode 100644 demo/data/demo/public/authorizationsite/src/util/Vocabularies.ts create mode 100644 demo/data/demo/public/authorizationsite/src/util/policyCreation.ts create mode 100644 demo/data/demo/public/authorizationsite/tsconfig.json delete mode 100644 demo/data/demo/public/authz-companion-app/index.html delete mode 100644 demo/data/demo/public/bday-app/index.html delete mode 100644 demo/data/demo/public/package.json delete mode 100644 demo/data/demo/public/vendor/index.html diff --git a/demo/data/demo/public/authorizationsite/.gitignore b/demo/data/demo/public/authorizationsite/.gitignore new file mode 100644 index 00000000..800f3a80 --- /dev/null +++ b/demo/data/demo/public/authorizationsite/.gitignore @@ -0,0 +1,24 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build +/dist + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/demo/data/demo/public/authorizationsite/README.md b/demo/data/demo/public/authorizationsite/README.md new file mode 100644 index 00000000..c1ad8ecb --- /dev/null +++ b/demo/data/demo/public/authorizationsite/README.md @@ -0,0 +1,25 @@ +# Solid multi-page react template + +This is a template for a multi-page app using Solid. +This project was built with [create-react-app](https://facebook.github.io/create-react-app/docs/getting-started). + +## install + +``` +npm install +``` + +## run project + +### `npm start` + +Runs the app in the development mode.\ +Open [http://localhost:3000](http://localhost:3000) to view it in your browser. + +The page will reload when you make changes.\ +You may also see any lint errors in the console. + +### `npm run build` + +Builds the app for production to the `build` folder.\ +It correctly bundles React in production mode and optimizes the build for the best performance. diff --git a/demo/data/demo/public/authorizationsite/package-lock.json b/demo/data/demo/public/authorizationsite/package-lock.json new file mode 100644 index 00000000..15ed839b --- /dev/null +++ b/demo/data/demo/public/authorizationsite/package-lock.json @@ -0,0 +1,19981 @@ +{ + "name": "react-template", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "react-template", + "version": "0.1.0", + "dependencies": { + "@comunica/query-sparql": "^2.6.9", + "@emotion/react": "^11.11.4", + "@emotion/styled": "^11.11.0", + "@inrupt/solid-client-authn-browser": "^1.14.0", + "@mui/material": "^5.15.14", + "@mui/styled-engine-sc": "^6.0.0-alpha.18", + "@rdfjs/types": "^1.1.0", + "@testing-library/jest-dom": "^5.16.5", + "@testing-library/react": "^13.4.0", + "@testing-library/user-event": "^13.5.0", + "n3": "^1.17.3", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-router-dom": "^6.10.0", + "react-scripts": "5.0.1", + "styled-components": "^6.1.8", + "uuid": "^9.0.1", + "web-vitals": "^2.1.4" + } + }, + "node_modules/@adobe/css-tools": { + "version": "4.2.0", + "license": "MIT" + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "license": "Apache-2.0", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.21.4", + "license": "MIT", + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.21.4", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.21.4", + "license": "MIT", + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", + "@babel/helper-compilation-targets": "^7.21.4", + "@babel/helper-module-transforms": "^7.21.2", + "@babel/helpers": "^7.21.0", + "@babel/parser": "^7.21.4", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.4", + "@babel/types": "^7.21.4", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/eslint-parser": { + "version": "7.21.3", + "license": "MIT", + "dependencies": { + "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", + "eslint-visitor-keys": "^2.1.0", + "semver": "^6.3.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || >=14.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.11.0", + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/@babel/eslint-parser/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "node_modules/@babel/eslint-parser/node_modules/semver": { + "version": "6.3.0", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.21.4", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.21.4", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.18.9", + "license": "MIT", + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.21.4", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.21.4", + "@babel/helper-validator-option": "^7.21.0", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.21.4", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-member-expression-to-functions": "^7.21.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/helper-split-export-declaration": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.21.4", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.3.3", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { + "version": "6.3.0", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.21.0", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.21.0", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.21.4", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.21.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.21.2", + "license": "MIT", + "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.20.7", + "@babel/traverse": "^7.21.2", + "@babel/types": "^7.21.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.20.2", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.18.9", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.20.7", + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.20.7", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.20.2", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.20.0", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.21.0", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.20.5", + "license": "MIT", + "dependencies": { + "@babel/helper-function-name": "^7.19.0", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.21.0", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.21.4", + "license": "MIT", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.20.7", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-proposal-optional-chaining": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.20.7", + "license": "MIT", + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-static-block": { + "version": "7.21.0", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.21.0", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/plugin-syntax-decorators": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.9", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.20.7", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.21.0", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.21.0", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.21.4", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.20.0", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.21.4", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.21.4", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.20.7", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.20.7", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-remap-async-to-generator": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.21.0", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.21.0", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.20.7", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.20.7", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/template": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.21.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.18.9", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.21.0", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-flow": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.21.0", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.18.9", + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.18.9", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.20.11", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.21.2", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.21.2", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-simple-access": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.20.11", + "license": "MIT", + "dependencies": { + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-identifier": "^7.19.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.20.5", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.21.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.21.3", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.21.0", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.20.5", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "regenerator-transform": "^0.15.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.21.4", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.21.4", + "@babel/helper-plugin-utils": "^7.20.2", + "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" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime/node_modules/semver": { + "version": "6.3.0", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.20.7", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-skip-transparent-expression-wrappers": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.18.9", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.18.9", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.21.3", + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.21.0", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-typescript": "^7.20.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.18.10", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.21.4", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.21.4", + "@babel/helper-compilation-targets": "^7.21.4", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.21.0", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.20.7", + "@babel/plugin-proposal-async-generator-functions": "^7.20.7", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.21.0", + "@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.20.7", + "@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.7", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.21.0", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.21.0", + "@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.20.7", + "@babel/plugin-transform-async-to-generator": "^7.20.7", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.21.0", + "@babel/plugin-transform-classes": "^7.21.0", + "@babel/plugin-transform-computed-properties": "^7.20.7", + "@babel/plugin-transform-destructuring": "^7.21.3", + "@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.21.0", + "@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.20.11", + "@babel/plugin-transform-modules-commonjs": "^7.21.2", + "@babel/plugin-transform-modules-systemjs": "^7.20.11", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.20.5", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.21.3", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.20.5", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.20.7", + "@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.21.4", + "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" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.0", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.5", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.18.6", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-react-display-name": "^7.18.6", + "@babel/plugin-transform-react-jsx": "^7.18.6", + "@babel/plugin-transform-react-jsx-development": "^7.18.6", + "@babel/plugin-transform-react-pure-annotations": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.21.4", + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-validator-option": "^7.21.0", + "@babel/plugin-syntax-jsx": "^7.21.4", + "@babel/plugin-transform-modules-commonjs": "^7.21.2", + "@babel/plugin-transform-typescript": "^7.21.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "license": "MIT" + }, + "node_modules/@babel/runtime": { + "version": "7.24.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.1.tgz", + "integrity": "sha512-+BIznRzyqBf+2wCTxcKE3wDjfGeCoVE61KSHGpkzqrLi8qxqFwBeUFyId2cxkTmm55fzDGnm0+yCxaxygrLUnQ==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/runtime/node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/@babel/template": { + "version": "7.20.7", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.21.4", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.21.4", + "@babel/generator": "^7.21.4", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.21.4", + "@babel/types": "^7.21.4", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.21.4", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "license": "MIT" + }, + "node_modules/@bergos/jsonparse": { + "version": "1.4.1", + "engines": [ + "node >= 0.2.0" + ], + "license": "MIT", + "dependencies": { + "buffer": "^6.0.3" + } + }, + "node_modules/@colors/colors": { + "version": "1.5.0", + "license": "MIT", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@comunica/actor-abstract-mediatyped": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8" + } + }, + "node_modules/@comunica/actor-abstract-parse": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.6.8", + "readable-stream": "^4.2.0" + } + }, + "node_modules/@comunica/actor-abstract-parse/node_modules/readable-stream": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@comunica/actor-abstract-path": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bindings-factory": "^2.5.1", + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/context-entries": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "asynciterator": "^3.8.0", + "rdf-data-factory": "^1.1.1", + "rdf-string": "^1.6.1", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-context-preprocess-source-to-destination": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-context-preprocess": "^2.6.8", + "@comunica/context-entries": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8" + } + }, + "node_modules/@comunica/actor-dereference-fallback": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-dereference": "^2.6.8", + "@comunica/core": "^2.6.8" + } + }, + "node_modules/@comunica/actor-dereference-http": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "@comunica/bus-dereference": "^2.6.8", + "@comunica/bus-http": "^2.6.9", + "@comunica/core": "^2.6.8", + "cross-fetch": "^3.1.5", + "relative-to-absolute-iri": "^1.0.7", + "stream-to-string": "^1.2.0" + } + }, + "node_modules/@comunica/actor-dereference-rdf-parse": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-dereference": "^2.6.8", + "@comunica/bus-dereference-rdf": "^2.6.8", + "@comunica/bus-rdf-parse": "^2.6.8" + } + }, + "node_modules/@comunica/actor-hash-bindings-sha1": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-hash-bindings": "^2.6.8", + "@comunica/core": "^2.6.8", + "canonicalize": "^1.0.8", + "hash.js": "^1.1.7", + "rdf-string": "^1.6.1" + } + }, + "node_modules/@comunica/actor-http-fetch": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "@comunica/bus-http": "^2.6.9", + "@comunica/context-entries": "^2.6.8", + "@comunica/mediatortype-time": "^2.6.8", + "abort-controller": "^3.0.0", + "cross-fetch": "^3.1.5" + } + }, + "node_modules/@comunica/actor-http-proxy": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "@comunica/bus-http": "^2.6.9", + "@comunica/context-entries": "^2.6.8", + "@comunica/mediatortype-time": "^2.6.8", + "@comunica/types": "^2.6.8" + } + }, + "node_modules/@comunica/actor-http-wayback": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "@comunica/bus-http": "^2.6.9", + "@comunica/context-entries": "^2.6.8", + "@comunica/core": "^2.6.8", + "cross-fetch": "^3.1.5", + "stream-to-string": "^1.2.0" + } + }, + "node_modules/@comunica/actor-init-query": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "@comunica/actor-http-proxy": "^2.6.9", + "@comunica/bus-context-preprocess": "^2.6.8", + "@comunica/bus-http-invalidate": "^2.6.8", + "@comunica/bus-init": "^2.6.8", + "@comunica/bus-optimize-query-operation": "^2.6.8", + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/bus-query-parse": "^2.6.8", + "@comunica/bus-query-result-serialize": "^2.6.8", + "@comunica/context-entries": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/logger-pretty": "^2.6.8", + "@comunica/runner": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "@types/yargs": "^17.0.13", + "asynciterator": "^3.8.0", + "negotiate": "^1.0.1", + "rdf-quad": "^1.5.0", + "rdf-string": "^1.6.1", + "sparqlalgebrajs": "^4.0.5", + "streamify-string": "^1.0.1", + "yargs": "^17.6.2" + }, + "optionalDependencies": { + "process": "^0.11.10" + } + }, + "node_modules/@comunica/actor-init-query/node_modules/@types/yargs": { + "version": "17.0.24", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@comunica/actor-init-query/node_modules/cliui": { + "version": "8.0.1", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@comunica/actor-init-query/node_modules/yargs": { + "version": "17.7.1", + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@comunica/actor-init-query/node_modules/yargs-parser": { + "version": "21.1.1", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/@comunica/actor-optimize-query-operation-bgp-to-join": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-optimize-query-operation": "^2.6.8", + "@comunica/core": "^2.6.8", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-optimize-query-operation-join-bgp": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-optimize-query-operation": "^2.6.8", + "@comunica/core": "^2.6.8", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-optimize-query-operation-join-connected": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-optimize-query-operation": "^2.6.8", + "@comunica/core": "^2.6.8", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-ask": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-bgp-join": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-construct": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/context-entries": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "asynciterator": "^3.8.0", + "rdf-data-factory": "^1.1.1", + "rdf-terms": "^1.9.1", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-describe-subject": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/actor-query-operation-union": "^2.6.8", + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/context-entries": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "asynciterator": "^3.8.0", + "rdf-data-factory": "^1.1.1", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-distinct-hash": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-hash-bindings": "^2.6.8", + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-extend": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bindings-factory": "^2.5.1", + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "sparqlalgebrajs": "^4.0.5", + "sparqlee": "^2.2.0" + } + }, + "node_modules/@comunica/actor-query-operation-filter-sparqlee": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bindings-factory": "^2.5.1", + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "sparqlalgebrajs": "^4.0.5", + "sparqlee": "^2.2.0" + } + }, + "node_modules/@comunica/actor-query-operation-from-quad": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-group": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bindings-factory": "^2.5.1", + "@comunica/bus-hash-bindings": "^2.6.8", + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "asynciterator": "^3.8.0", + "rdf-data-factory": "^1.1.1", + "sparqlalgebrajs": "^4.0.5", + "sparqlee": "^2.2.0" + } + }, + "node_modules/@comunica/actor-query-operation-join": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/bus-rdf-join": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-leftjoin": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/bus-rdf-join": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "sparqlalgebrajs": "^4.0.5", + "sparqlee": "^2.2.0" + } + }, + "node_modules/@comunica/actor-query-operation-minus": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/bus-rdf-join": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-nop": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bindings-factory": "^2.5.1", + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "asynciterator": "^3.8.0", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-orderby-sparqlee": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "asynciterator": "^3.8.0", + "sparqlalgebrajs": "^4.0.5", + "sparqlee": "^2.2.0" + } + }, + "node_modules/@comunica/actor-query-operation-path-alt": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/actor-abstract-path": "^2.6.8", + "@comunica/actor-query-operation-union": "^2.6.8", + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/types": "^2.6.8", + "asynciterator": "^3.8.0", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-path-inv": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/actor-abstract-path": "^2.6.8", + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/types": "^2.6.8", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-path-link": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/actor-abstract-path": "^2.6.8", + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/types": "^2.6.8", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-path-nps": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/actor-abstract-path": "^2.6.8", + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/types": "^2.6.8", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-path-one-or-more": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/actor-abstract-path": "^2.6.8", + "@comunica/bindings-factory": "^2.5.1", + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/types": "^2.6.8", + "asynciterator": "^3.8.0", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-path-seq": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/actor-abstract-path": "^2.6.8", + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/bus-rdf-join": "^2.6.8", + "@comunica/types": "^2.6.8", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-path-zero-or-more": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/actor-abstract-path": "^2.6.8", + "@comunica/bindings-factory": "^2.5.1", + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/types": "^2.6.8", + "asynciterator": "^3.8.0", + "rdf-string": "^1.6.1", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-path-zero-or-one": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/actor-abstract-path": "^2.6.8", + "@comunica/bindings-factory": "^2.5.1", + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/types": "^2.6.8", + "asynciterator": "^3.8.0", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-project": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/data-factory": "^2.5.1", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "rdf-data-factory": "^1.1.1", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-quadpattern": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bindings-factory": "^2.5.1", + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/bus-rdf-resolve-quad-pattern": "^2.6.8", + "@comunica/context-entries": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "asynciterator": "^3.8.0", + "rdf-data-factory": "^1.1.1", + "rdf-terms": "^1.9.1", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-reduced-hash": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-hash-bindings": "^2.6.8", + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "@types/lru-cache": "^7.0.0", + "lru-cache": "^7.0.0", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-reduced-hash/node_modules/lru-cache": { + "version": "7.18.3", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/@comunica/actor-query-operation-service": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bindings-factory": "^2.5.1", + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/context-entries": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "asynciterator": "^3.8.0", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-slice": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/context-entries": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-sparql-endpoint": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "@comunica/bindings-factory": "^2.5.1", + "@comunica/bus-http": "^2.6.9", + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/bus-rdf-resolve-quad-pattern": "^2.6.8", + "@comunica/bus-rdf-update-quads": "^2.6.9", + "@comunica/context-entries": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/mediatortype-httprequests": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "asynciterator": "^3.8.0", + "fetch-sparql-endpoint": "^3.1.1", + "rdf-data-factory": "^1.1.1", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-union": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "asynciterator": "^3.8.0", + "rdf-terms": "^1.9.1", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-update-add-rewrite": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "rdf-data-factory": "^1.1.1", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-update-clear": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/bus-rdf-update-quads": "^2.6.9", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "rdf-data-factory": "^1.1.1", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-update-compositeupdate": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-update-copy-rewrite": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-update-create": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/bus-rdf-update-quads": "^2.6.9", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-update-deleteinsert": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "@comunica/actor-query-operation-construct": "^2.6.8", + "@comunica/bindings-factory": "^2.5.1", + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/bus-rdf-update-quads": "^2.6.9", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "asynciterator": "^3.8.0", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-update-drop": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/bus-rdf-update-quads": "^2.6.9", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "rdf-data-factory": "^1.1.1", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-update-load": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/bus-rdf-update-quads": "^2.6.9", + "@comunica/context-entries": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "rdf-data-factory": "^1.1.1", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-update-move-rewrite": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-operation-values": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bindings-factory": "^2.5.1", + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "asynciterator": "^3.8.0", + "rdf-data-factory": "^1.1.1", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-query-parse-graphql": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-parse": "^2.6.8", + "@comunica/context-entries": "^2.6.8", + "@comunica/core": "^2.6.8", + "graphql-to-sparql": "^3.0.1" + } + }, + "node_modules/@comunica/actor-query-parse-sparql": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-parse": "^2.6.8", + "@comunica/core": "^2.6.8", + "@types/sparqljs": "^3.1.3", + "sparqlalgebrajs": "^4.0.5", + "sparqljs": "^3.6.1" + } + }, + "node_modules/@comunica/actor-query-result-serialize-json": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-result-serialize": "^2.6.8", + "@comunica/types": "^2.6.8", + "rdf-string": "^1.6.1", + "readable-stream": "^4.2.0" + } + }, + "node_modules/@comunica/actor-query-result-serialize-json/node_modules/readable-stream": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@comunica/actor-query-result-serialize-rdf": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-result-serialize": "^2.6.8", + "@comunica/bus-rdf-serialize": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8" + } + }, + "node_modules/@comunica/actor-query-result-serialize-simple": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-result-serialize": "^2.6.8", + "@comunica/types": "^2.6.8", + "readable-stream": "^4.2.0" + } + }, + "node_modules/@comunica/actor-query-result-serialize-simple/node_modules/readable-stream": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@comunica/actor-query-result-serialize-sparql-csv": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-result-serialize": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "readable-stream": "^4.2.0" + } + }, + "node_modules/@comunica/actor-query-result-serialize-sparql-csv/node_modules/readable-stream": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@comunica/actor-query-result-serialize-sparql-json": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "@comunica/bus-http": "^2.6.9", + "@comunica/bus-http-invalidate": "^2.6.8", + "@comunica/bus-query-result-serialize": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "readable-stream": "^4.2.0" + } + }, + "node_modules/@comunica/actor-query-result-serialize-sparql-json/node_modules/readable-stream": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@comunica/actor-query-result-serialize-sparql-tsv": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-result-serialize": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "rdf-string-ttl": "^1.3.2", + "readable-stream": "^4.2.0" + } + }, + "node_modules/@comunica/actor-query-result-serialize-sparql-tsv/node_modules/readable-stream": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@comunica/actor-query-result-serialize-sparql-xml": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-result-serialize": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "readable-stream": "^4.2.0" + } + }, + "node_modules/@comunica/actor-query-result-serialize-sparql-xml/node_modules/readable-stream": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@comunica/actor-query-result-serialize-stats": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "@comunica/bus-http": "^2.6.9", + "@comunica/bus-http-invalidate": "^2.6.8", + "@comunica/bus-query-result-serialize": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "readable-stream": "^4.2.0" + } + }, + "node_modules/@comunica/actor-query-result-serialize-stats/node_modules/readable-stream": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@comunica/actor-query-result-serialize-table": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-result-serialize": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "rdf-data-factory": "^1.1.1", + "rdf-terms": "^1.9.1", + "readable-stream": "^4.2.0" + } + }, + "node_modules/@comunica/actor-query-result-serialize-table/node_modules/readable-stream": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@comunica/actor-query-result-serialize-tree": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-result-serialize": "^2.6.8", + "@comunica/context-entries": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "readable-stream": "^4.2.0", + "sparqljson-to-tree": "^3.0.1" + } + }, + "node_modules/@comunica/actor-query-result-serialize-tree/node_modules/readable-stream": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@comunica/actor-rdf-join-entries-sort-cardinality": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-join-entries-sort": "^2.6.8", + "@comunica/core": "^2.6.8" + } + }, + "node_modules/@comunica/actor-rdf-join-inner-hash": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-join": "^2.6.8", + "@comunica/mediatortype-join-coefficients": "^2.6.8", + "@comunica/types": "^2.6.8", + "asyncjoin": "^1.1.1" + } + }, + "node_modules/@comunica/actor-rdf-join-inner-multi-bind": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/bus-rdf-join": "^2.6.8", + "@comunica/bus-rdf-join-entries-sort": "^2.6.8", + "@comunica/context-entries": "^2.6.8", + "@comunica/mediatortype-join-coefficients": "^2.6.8", + "@comunica/types": "^2.6.8", + "asynciterator": "^3.8.0", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-rdf-join-inner-multi-empty": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-join": "^2.6.8", + "@comunica/mediatortype-join-coefficients": "^2.6.8", + "@comunica/types": "^2.6.8", + "asynciterator": "^3.8.0" + } + }, + "node_modules/@comunica/actor-rdf-join-inner-multi-smallest": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/bus-rdf-join": "^2.6.8", + "@comunica/bus-rdf-join-entries-sort": "^2.6.8", + "@comunica/mediatortype-join-coefficients": "^2.6.8", + "@comunica/types": "^2.6.8", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-rdf-join-inner-nestedloop": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-join": "^2.6.8", + "@comunica/mediatortype-join-coefficients": "^2.6.8", + "@comunica/types": "^2.6.8", + "asyncjoin": "^1.1.1" + } + }, + "node_modules/@comunica/actor-rdf-join-inner-none": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bindings-factory": "^2.5.1", + "@comunica/bus-rdf-join": "^2.6.8", + "@comunica/mediatortype-join-coefficients": "^2.6.8", + "asynciterator": "^3.8.0" + } + }, + "node_modules/@comunica/actor-rdf-join-inner-single": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-join": "^2.6.8", + "@comunica/mediatortype-join-coefficients": "^2.6.8" + } + }, + "node_modules/@comunica/actor-rdf-join-inner-symmetrichash": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-join": "^2.6.8", + "@comunica/mediatortype-join-coefficients": "^2.6.8", + "@comunica/types": "^2.6.8", + "asyncjoin": "^1.1.1" + } + }, + "node_modules/@comunica/actor-rdf-join-minus-hash": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/bus-rdf-join": "^2.6.8", + "@comunica/mediatortype-join-coefficients": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*" + } + }, + "node_modules/@comunica/actor-rdf-join-minus-hash-undef": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/bus-rdf-join": "^2.6.8", + "@comunica/mediatortype-join-coefficients": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "rdf-string": "^1.6.1" + } + }, + "node_modules/@comunica/actor-rdf-join-optional-bind": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/actor-rdf-join-inner-multi-bind": "^2.6.8", + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/bus-rdf-join": "^2.6.8", + "@comunica/context-entries": "^2.6.8", + "@comunica/mediatortype-join-coefficients": "^2.6.8", + "@comunica/types": "^2.6.8", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-rdf-join-optional-nestedloop": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-join": "^2.6.8", + "@comunica/mediatortype-join-coefficients": "^2.6.8", + "@comunica/types": "^2.6.8", + "asyncjoin": "^1.1.1" + } + }, + "node_modules/@comunica/actor-rdf-join-selectivity-variable-counting": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-join-selectivity": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/mediatortype-accuracy": "^2.6.8", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-rdf-metadata-all": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-metadata": "^2.6.8", + "@comunica/core": "^2.6.8", + "readable-stream": "^4.2.0" + } + }, + "node_modules/@comunica/actor-rdf-metadata-all/node_modules/readable-stream": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@comunica/actor-rdf-metadata-extract-allow-http-methods": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-metadata-extract": "^2.6.8", + "@comunica/core": "^2.6.8" + } + }, + "node_modules/@comunica/actor-rdf-metadata-extract-hydra-controls": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-metadata-extract": "^2.6.8", + "@comunica/core": "^2.6.8", + "@rdfjs/types": "*", + "@types/uritemplate": "^0.3.4", + "uritemplate": "0.3.4" + } + }, + "node_modules/@comunica/actor-rdf-metadata-extract-hydra-count": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-metadata-extract": "^2.6.8", + "@comunica/core": "^2.6.8" + } + }, + "node_modules/@comunica/actor-rdf-metadata-extract-hydra-pagesize": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-metadata-extract": "^2.6.8", + "@comunica/core": "^2.6.8" + } + }, + "node_modules/@comunica/actor-rdf-metadata-extract-patch-sparql-update": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-metadata-extract": "^2.6.8", + "@comunica/core": "^2.6.8" + } + }, + "node_modules/@comunica/actor-rdf-metadata-extract-put-accepted": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-metadata-extract": "^2.6.8", + "@comunica/core": "^2.6.8" + } + }, + "node_modules/@comunica/actor-rdf-metadata-extract-request-time": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-metadata-extract": "^2.6.8", + "@comunica/core": "^2.6.8" + } + }, + "node_modules/@comunica/actor-rdf-metadata-extract-sparql-service": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-metadata-extract": "^2.6.8", + "@comunica/core": "^2.6.8", + "relative-to-absolute-iri": "^1.0.7" + } + }, + "node_modules/@comunica/actor-rdf-metadata-primary-topic": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-metadata": "^2.6.8", + "@comunica/core": "^2.6.8", + "@rdfjs/types": "*", + "readable-stream": "^4.2.0" + } + }, + "node_modules/@comunica/actor-rdf-metadata-primary-topic/node_modules/readable-stream": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@comunica/actor-rdf-parse-html": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-parse": "^2.6.8", + "@comunica/bus-rdf-parse-html": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "htmlparser2": "^8.0.1", + "readable-stream": "^4.2.0" + } + }, + "node_modules/@comunica/actor-rdf-parse-html-microdata": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-parse-html": "^2.6.8", + "@comunica/core": "^2.6.8", + "microdata-rdf-streaming-parser": "^2.0.1" + } + }, + "node_modules/@comunica/actor-rdf-parse-html-rdfa": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-parse-html": "^2.6.8", + "@comunica/core": "^2.6.8", + "rdfa-streaming-parser": "^2.0.1" + } + }, + "node_modules/@comunica/actor-rdf-parse-html-script": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-parse": "^2.6.8", + "@comunica/bus-rdf-parse-html": "^2.6.8", + "@comunica/context-entries": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "readable-stream": "^4.2.0", + "relative-to-absolute-iri": "^1.0.7" + } + }, + "node_modules/@comunica/actor-rdf-parse-html-script/node_modules/readable-stream": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@comunica/actor-rdf-parse-html/node_modules/dom-serializer": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/@comunica/actor-rdf-parse-html/node_modules/domhandler": { + "version": "5.0.3", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/@comunica/actor-rdf-parse-html/node_modules/domutils": { + "version": "3.0.1", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.1" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/@comunica/actor-rdf-parse-html/node_modules/entities": { + "version": "4.4.0", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/@comunica/actor-rdf-parse-html/node_modules/htmlparser2": { + "version": "8.0.2", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/@comunica/actor-rdf-parse-html/node_modules/readable-stream": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@comunica/actor-rdf-parse-jsonld": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "@comunica/bus-http": "^2.6.9", + "@comunica/bus-rdf-parse": "^2.6.8", + "@comunica/context-entries": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "jsonld-context-parser": "^2.2.2", + "jsonld-streaming-parser": "^3.0.1", + "stream-to-string": "^1.2.0" + } + }, + "node_modules/@comunica/actor-rdf-parse-n3": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-parse": "^2.6.8", + "@comunica/types": "^2.6.8", + "n3": "^1.16.3" + } + }, + "node_modules/@comunica/actor-rdf-parse-rdfxml": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-parse": "^2.6.8", + "@comunica/types": "^2.6.8", + "rdfxml-streaming-parser": "^2.2.1" + } + }, + "node_modules/@comunica/actor-rdf-parse-shaclc": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-parse": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "asynciterator": "^3.8.0", + "readable-stream": "^4.2.0", + "shaclc-parse": "^1.3.0", + "stream-to-string": "^1.2.0" + } + }, + "node_modules/@comunica/actor-rdf-parse-shaclc/node_modules/readable-stream": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@comunica/actor-rdf-parse-xml-rdfa": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-parse": "^2.6.8", + "@comunica/types": "^2.6.8", + "rdfa-streaming-parser": "^2.0.1" + } + }, + "node_modules/@comunica/actor-rdf-resolve-hypermedia-links-next": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-resolve-hypermedia-links": "^2.6.8", + "@comunica/core": "^2.6.8" + } + }, + "node_modules/@comunica/actor-rdf-resolve-hypermedia-links-queue-fifo": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-resolve-hypermedia-links": "^2.6.8", + "@comunica/bus-rdf-resolve-hypermedia-links-queue": "^2.6.8", + "@comunica/core": "^2.6.8" + } + }, + "node_modules/@comunica/actor-rdf-resolve-hypermedia-none": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/actor-rdf-resolve-quad-pattern-rdfjs-source": "^2.6.8", + "@comunica/bus-rdf-resolve-hypermedia": "^2.6.8", + "rdf-store-stream": "^1.3.1" + } + }, + "node_modules/@comunica/actor-rdf-resolve-hypermedia-qpf": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/actor-rdf-metadata-extract-hydra-controls": "^2.6.8", + "@comunica/bus-dereference-rdf": "^2.6.8", + "@comunica/bus-rdf-metadata": "^2.6.8", + "@comunica/bus-rdf-metadata-extract": "^2.6.8", + "@comunica/bus-rdf-resolve-hypermedia": "^2.6.8", + "@comunica/bus-rdf-resolve-quad-pattern": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "asynciterator": "^3.8.0", + "rdf-data-factory": "^1.1.1", + "rdf-string": "^1.6.1", + "rdf-terms": "^1.9.1" + } + }, + "node_modules/@comunica/actor-rdf-resolve-hypermedia-sparql": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "@comunica/bindings-factory": "^2.5.1", + "@comunica/bus-http": "^2.6.9", + "@comunica/bus-rdf-resolve-hypermedia": "^2.6.8", + "@comunica/bus-rdf-resolve-quad-pattern": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "asynciterator": "^3.8.0", + "fetch-sparql-endpoint": "^3.1.1", + "rdf-data-factory": "^1.1.1", + "rdf-terms": "^1.9.1", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-rdf-resolve-quad-pattern-federated": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/bus-rdf-resolve-quad-pattern": "^2.6.8", + "@comunica/context-entries": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/data-factory": "^2.5.1", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "asynciterator": "^3.8.0", + "rdf-data-factory": "^1.1.1", + "rdf-terms": "^1.9.1", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-rdf-resolve-quad-pattern-hypermedia": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "@comunica/bus-dereference-rdf": "^2.6.8", + "@comunica/bus-http-invalidate": "^2.6.8", + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/bus-rdf-metadata": "^2.6.8", + "@comunica/bus-rdf-metadata-extract": "^2.6.8", + "@comunica/bus-rdf-resolve-hypermedia": "^2.6.8", + "@comunica/bus-rdf-resolve-hypermedia-links": "^2.6.8", + "@comunica/bus-rdf-resolve-hypermedia-links-queue": "^2.6.8", + "@comunica/bus-rdf-resolve-quad-pattern": "^2.6.8", + "@comunica/context-entries": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "@types/lru-cache": "^7.0.0", + "asynciterator": "^3.8.0", + "lru-cache": "^7.0.0", + "rdf-streaming-store": "^1.0.2", + "readable-stream": "^4.2.0", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/actor-rdf-resolve-quad-pattern-hypermedia/node_modules/lru-cache": { + "version": "7.18.3", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/@comunica/actor-rdf-resolve-quad-pattern-hypermedia/node_modules/readable-stream": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@comunica/actor-rdf-resolve-quad-pattern-rdfjs-source": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-resolve-quad-pattern": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "asynciterator": "^3.8.0" + } + }, + "node_modules/@comunica/actor-rdf-resolve-quad-pattern-string-source": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-parse": "^2.6.8", + "@comunica/bus-rdf-resolve-quad-pattern": "^2.6.8", + "@comunica/context-entries": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "lru-cache": "^7.14.1", + "rdf-store-stream": "^1.3.1", + "readable-stream": "^4.2.0" + } + }, + "node_modules/@comunica/actor-rdf-resolve-quad-pattern-string-source/node_modules/lru-cache": { + "version": "7.18.3", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/@comunica/actor-rdf-resolve-quad-pattern-string-source/node_modules/readable-stream": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@comunica/actor-rdf-serialize-jsonld": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-serialize": "^2.6.8", + "@comunica/types": "^2.6.8", + "jsonld-streaming-serializer": "^2.0.1" + } + }, + "node_modules/@comunica/actor-rdf-serialize-n3": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-serialize": "^2.6.8", + "@comunica/types": "^2.6.8", + "n3": "^1.16.3" + } + }, + "node_modules/@comunica/actor-rdf-serialize-shaclc": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-serialize": "^2.6.8", + "@comunica/types": "^2.6.8", + "arrayify-stream": "^2.0.1", + "readable-stream": "^4.3.0", + "shaclc-write": "^1.4.2" + } + }, + "node_modules/@comunica/actor-rdf-serialize-shaclc/node_modules/readable-stream": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@comunica/actor-rdf-update-hypermedia-patch-sparql-update": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "@comunica/bus-http": "^2.6.9", + "@comunica/bus-rdf-update-hypermedia": "^2.6.9", + "@comunica/bus-rdf-update-quads": "^2.6.9", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "asynciterator": "^3.8.0", + "cross-fetch": "^3.1.5", + "rdf-string-ttl": "^1.3.2", + "readable-stream": "^4.2.0" + } + }, + "node_modules/@comunica/actor-rdf-update-hypermedia-patch-sparql-update/node_modules/readable-stream": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@comunica/actor-rdf-update-hypermedia-put-ldp": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "@comunica/bus-http": "^2.6.9", + "@comunica/bus-rdf-serialize": "^2.6.8", + "@comunica/bus-rdf-update-hypermedia": "^2.6.9", + "@comunica/bus-rdf-update-quads": "^2.6.9", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "asynciterator": "^3.8.0", + "cross-fetch": "^3.1.5" + } + }, + "node_modules/@comunica/actor-rdf-update-hypermedia-sparql": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "@comunica/bus-http": "^2.6.9", + "@comunica/bus-rdf-update-hypermedia": "^2.6.9", + "@comunica/bus-rdf-update-quads": "^2.6.9", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "asynciterator": "^3.8.0", + "fetch-sparql-endpoint": "^3.1.1", + "rdf-string-ttl": "^1.3.2", + "stream-to-string": "^1.2.0" + } + }, + "node_modules/@comunica/actor-rdf-update-quads-hypermedia": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "@comunica/bus-dereference-rdf": "^2.6.8", + "@comunica/bus-http-invalidate": "^2.6.8", + "@comunica/bus-rdf-metadata": "^2.6.8", + "@comunica/bus-rdf-metadata-extract": "^2.6.8", + "@comunica/bus-rdf-update-hypermedia": "^2.6.9", + "@comunica/bus-rdf-update-quads": "^2.6.9", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "@types/lru-cache": "^7.0.0", + "lru-cache": "^7.0.0" + } + }, + "node_modules/@comunica/actor-rdf-update-quads-hypermedia/node_modules/lru-cache": { + "version": "7.18.3", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/@comunica/actor-rdf-update-quads-rdfjs-store": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-update-quads": "^2.6.9", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "asynciterator": "^3.8.0", + "rdf-data-factory": "^1.1.1", + "rdf-string": "^1.6.1" + } + }, + "node_modules/@comunica/bindings-factory": { + "version": "2.5.1", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "immutable": "^4.1.0", + "rdf-data-factory": "^1.1.1", + "rdf-string": "^1.6.1" + } + }, + "node_modules/@comunica/bus-context-preprocess": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8" + } + }, + "node_modules/@comunica/bus-dereference": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/actor-abstract-mediatyped": "^2.6.8", + "@comunica/actor-abstract-parse": "^2.6.8", + "@comunica/context-entries": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "readable-stream": "^4.2.0" + } + }, + "node_modules/@comunica/bus-dereference-rdf": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-dereference": "^2.6.8", + "@comunica/bus-rdf-parse": "^2.6.8", + "@comunica/core": "^2.6.8", + "@rdfjs/types": "*" + } + }, + "node_modules/@comunica/bus-dereference/node_modules/readable-stream": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@comunica/bus-hash-bindings": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8" + } + }, + "node_modules/@comunica/bus-http": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.6.8", + "is-stream": "^2.0.1", + "readable-stream-node-to-web": "^1.0.1", + "readable-web-to-node-stream": "^3.0.2", + "web-streams-ponyfill": "^1.4.2" + } + }, + "node_modules/@comunica/bus-http-invalidate": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.6.8" + } + }, + "node_modules/@comunica/bus-init": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.6.8", + "readable-stream": "^4.2.0" + } + }, + "node_modules/@comunica/bus-init/node_modules/readable-stream": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@comunica/bus-optimize-query-operation": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/bus-query-operation": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bindings-factory": "^2.5.1", + "@comunica/context-entries": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/data-factory": "^2.5.1", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "asynciterator": "^3.8.0", + "rdf-string": "^1.6.1", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/bus-query-parse": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.6.8", + "@rdfjs/types": "*", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/bus-query-result-serialize": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/actor-abstract-mediatyped": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8" + } + }, + "node_modules/@comunica/bus-rdf-join": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/bus-rdf-join-selectivity": "^2.6.8", + "@comunica/context-entries": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/mediatortype-join-coefficients": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "rdf-data-factory": "^1.1.1", + "rdf-string": "^1.6.1" + } + }, + "node_modules/@comunica/bus-rdf-join-entries-sort": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8" + } + }, + "node_modules/@comunica/bus-rdf-join-selectivity": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.6.8", + "@comunica/mediatortype-accuracy": "^2.6.8", + "@comunica/types": "^2.6.8" + } + }, + "node_modules/@comunica/bus-rdf-metadata": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.6.8", + "@rdfjs/types": "*" + } + }, + "node_modules/@comunica/bus-rdf-metadata-extract": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.6.8", + "@rdfjs/types": "*" + } + }, + "node_modules/@comunica/bus-rdf-parse": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/actor-abstract-mediatyped": "^2.6.8", + "@comunica/actor-abstract-parse": "^2.6.8", + "@comunica/core": "^2.6.8", + "@rdfjs/types": "*" + } + }, + "node_modules/@comunica/bus-rdf-parse-html": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.6.8", + "@rdfjs/types": "*" + } + }, + "node_modules/@comunica/bus-rdf-resolve-hypermedia": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-resolve-quad-pattern": "^2.6.8", + "@comunica/core": "^2.6.8", + "@rdfjs/types": "*" + } + }, + "node_modules/@comunica/bus-rdf-resolve-hypermedia-links": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*" + } + }, + "node_modules/@comunica/bus-rdf-resolve-hypermedia-links-queue": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-resolve-hypermedia-links": "^2.6.8", + "@comunica/core": "^2.6.8" + } + }, + "node_modules/@comunica/bus-rdf-resolve-quad-pattern": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/context-entries": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "asynciterator": "^3.8.0", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/bus-rdf-serialize": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/actor-abstract-mediatyped": "^2.6.8", + "@comunica/core": "^2.6.8", + "@rdfjs/types": "*" + } + }, + "node_modules/@comunica/bus-rdf-update-hypermedia": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-update-quads": "^2.6.9", + "@comunica/core": "^2.6.8" + } + }, + "node_modules/@comunica/bus-rdf-update-quads": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "@comunica/actor-rdf-resolve-quad-pattern-federated": "^2.6.8", + "@comunica/bus-http": "^2.6.9", + "@comunica/context-entries": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "asynciterator": "^3.8.0", + "stream-to-string": "^1.2.0" + } + }, + "node_modules/@comunica/config-query-sparql": { + "version": "2.6.0", + "license": "MIT" + }, + "node_modules/@comunica/context-entries": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8", + "@rdfjs/types": "*", + "jsonld-context-parser": "^2.2.2", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/core": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/types": "^2.6.8", + "immutable": "^4.1.0" + }, + "engines": { + "node": ">=14.0" + } + }, + "node_modules/@comunica/data-factory": { + "version": "2.5.1", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*" + } + }, + "node_modules/@comunica/logger-pretty": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/types": "^2.6.8", + "object-inspect": "^1.12.2" + } + }, + "node_modules/@comunica/logger-void": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/types": "^2.6.8" + } + }, + "node_modules/@comunica/mediator-all": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.6.8" + } + }, + "node_modules/@comunica/mediator-combine-pipeline": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.6.8", + "@comunica/types": "^2.6.8" + } + }, + "node_modules/@comunica/mediator-combine-union": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.6.8" + } + }, + "node_modules/@comunica/mediator-join-coefficients-fixed": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-rdf-join": "^2.6.8", + "@comunica/context-entries": "^2.6.8", + "@comunica/core": "^2.6.8", + "@comunica/mediatortype-join-coefficients": "^2.6.8", + "@comunica/types": "^2.6.8" + } + }, + "node_modules/@comunica/mediator-number": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.6.8" + } + }, + "node_modules/@comunica/mediator-race": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.6.8" + } + }, + "node_modules/@comunica/mediatortype-accuracy": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.6.8" + } + }, + "node_modules/@comunica/mediatortype-httprequests": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.6.8" + } + }, + "node_modules/@comunica/mediatortype-join-coefficients": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.6.8", + "@rdfjs/types": "*" + } + }, + "node_modules/@comunica/mediatortype-time": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.6.8" + } + }, + "node_modules/@comunica/query-sparql": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "@comunica/actor-context-preprocess-source-to-destination": "^2.6.8", + "@comunica/actor-dereference-fallback": "^2.6.8", + "@comunica/actor-dereference-http": "^2.6.9", + "@comunica/actor-dereference-rdf-parse": "^2.6.8", + "@comunica/actor-hash-bindings-sha1": "^2.6.8", + "@comunica/actor-http-fetch": "^2.6.9", + "@comunica/actor-http-proxy": "^2.6.9", + "@comunica/actor-http-wayback": "^2.6.9", + "@comunica/actor-init-query": "^2.6.9", + "@comunica/actor-optimize-query-operation-bgp-to-join": "^2.6.8", + "@comunica/actor-optimize-query-operation-join-bgp": "^2.6.8", + "@comunica/actor-optimize-query-operation-join-connected": "^2.6.8", + "@comunica/actor-query-operation-ask": "^2.6.8", + "@comunica/actor-query-operation-bgp-join": "^2.6.8", + "@comunica/actor-query-operation-construct": "^2.6.8", + "@comunica/actor-query-operation-describe-subject": "^2.6.8", + "@comunica/actor-query-operation-distinct-hash": "^2.6.8", + "@comunica/actor-query-operation-extend": "^2.6.8", + "@comunica/actor-query-operation-filter-sparqlee": "^2.6.8", + "@comunica/actor-query-operation-from-quad": "^2.6.8", + "@comunica/actor-query-operation-group": "^2.6.8", + "@comunica/actor-query-operation-join": "^2.6.8", + "@comunica/actor-query-operation-leftjoin": "^2.6.9", + "@comunica/actor-query-operation-minus": "^2.6.8", + "@comunica/actor-query-operation-nop": "^2.6.8", + "@comunica/actor-query-operation-orderby-sparqlee": "^2.6.8", + "@comunica/actor-query-operation-path-alt": "^2.6.8", + "@comunica/actor-query-operation-path-inv": "^2.6.8", + "@comunica/actor-query-operation-path-link": "^2.6.8", + "@comunica/actor-query-operation-path-nps": "^2.6.8", + "@comunica/actor-query-operation-path-one-or-more": "^2.6.8", + "@comunica/actor-query-operation-path-seq": "^2.6.8", + "@comunica/actor-query-operation-path-zero-or-more": "^2.6.8", + "@comunica/actor-query-operation-path-zero-or-one": "^2.6.8", + "@comunica/actor-query-operation-project": "^2.6.8", + "@comunica/actor-query-operation-quadpattern": "^2.6.8", + "@comunica/actor-query-operation-reduced-hash": "^2.6.8", + "@comunica/actor-query-operation-service": "^2.6.8", + "@comunica/actor-query-operation-slice": "^2.6.8", + "@comunica/actor-query-operation-sparql-endpoint": "^2.6.9", + "@comunica/actor-query-operation-union": "^2.6.8", + "@comunica/actor-query-operation-update-add-rewrite": "^2.6.8", + "@comunica/actor-query-operation-update-clear": "^2.6.9", + "@comunica/actor-query-operation-update-compositeupdate": "^2.6.8", + "@comunica/actor-query-operation-update-copy-rewrite": "^2.6.8", + "@comunica/actor-query-operation-update-create": "^2.6.9", + "@comunica/actor-query-operation-update-deleteinsert": "^2.6.9", + "@comunica/actor-query-operation-update-drop": "^2.6.9", + "@comunica/actor-query-operation-update-load": "^2.6.9", + "@comunica/actor-query-operation-update-move-rewrite": "^2.6.8", + "@comunica/actor-query-operation-values": "^2.6.8", + "@comunica/actor-query-parse-graphql": "^2.6.8", + "@comunica/actor-query-parse-sparql": "^2.6.8", + "@comunica/actor-query-result-serialize-json": "^2.6.8", + "@comunica/actor-query-result-serialize-rdf": "^2.6.8", + "@comunica/actor-query-result-serialize-simple": "^2.6.8", + "@comunica/actor-query-result-serialize-sparql-csv": "^2.6.8", + "@comunica/actor-query-result-serialize-sparql-json": "^2.6.9", + "@comunica/actor-query-result-serialize-sparql-tsv": "^2.6.8", + "@comunica/actor-query-result-serialize-sparql-xml": "^2.6.8", + "@comunica/actor-query-result-serialize-stats": "^2.6.9", + "@comunica/actor-query-result-serialize-table": "^2.6.8", + "@comunica/actor-query-result-serialize-tree": "^2.6.8", + "@comunica/actor-rdf-join-entries-sort-cardinality": "^2.6.8", + "@comunica/actor-rdf-join-inner-hash": "^2.6.8", + "@comunica/actor-rdf-join-inner-multi-bind": "^2.6.8", + "@comunica/actor-rdf-join-inner-multi-empty": "^2.6.8", + "@comunica/actor-rdf-join-inner-multi-smallest": "^2.6.8", + "@comunica/actor-rdf-join-inner-nestedloop": "^2.6.8", + "@comunica/actor-rdf-join-inner-none": "^2.6.8", + "@comunica/actor-rdf-join-inner-single": "^2.6.8", + "@comunica/actor-rdf-join-inner-symmetrichash": "^2.6.8", + "@comunica/actor-rdf-join-minus-hash": "^2.6.8", + "@comunica/actor-rdf-join-minus-hash-undef": "^2.6.8", + "@comunica/actor-rdf-join-optional-bind": "^2.6.8", + "@comunica/actor-rdf-join-optional-nestedloop": "^2.6.8", + "@comunica/actor-rdf-join-selectivity-variable-counting": "^2.6.8", + "@comunica/actor-rdf-metadata-all": "^2.6.8", + "@comunica/actor-rdf-metadata-extract-allow-http-methods": "^2.6.8", + "@comunica/actor-rdf-metadata-extract-hydra-controls": "^2.6.8", + "@comunica/actor-rdf-metadata-extract-hydra-count": "^2.6.8", + "@comunica/actor-rdf-metadata-extract-hydra-pagesize": "^2.6.8", + "@comunica/actor-rdf-metadata-extract-patch-sparql-update": "^2.6.8", + "@comunica/actor-rdf-metadata-extract-put-accepted": "^2.6.8", + "@comunica/actor-rdf-metadata-extract-request-time": "^2.6.8", + "@comunica/actor-rdf-metadata-extract-sparql-service": "^2.6.8", + "@comunica/actor-rdf-metadata-primary-topic": "^2.6.8", + "@comunica/actor-rdf-parse-html": "^2.6.8", + "@comunica/actor-rdf-parse-html-microdata": "^2.6.8", + "@comunica/actor-rdf-parse-html-rdfa": "^2.6.8", + "@comunica/actor-rdf-parse-html-script": "^2.6.8", + "@comunica/actor-rdf-parse-jsonld": "^2.6.9", + "@comunica/actor-rdf-parse-n3": "^2.6.8", + "@comunica/actor-rdf-parse-rdfxml": "^2.6.8", + "@comunica/actor-rdf-parse-shaclc": "^2.6.8", + "@comunica/actor-rdf-parse-xml-rdfa": "^2.6.8", + "@comunica/actor-rdf-resolve-hypermedia-links-next": "^2.6.8", + "@comunica/actor-rdf-resolve-hypermedia-links-queue-fifo": "^2.6.8", + "@comunica/actor-rdf-resolve-hypermedia-none": "^2.6.8", + "@comunica/actor-rdf-resolve-hypermedia-qpf": "^2.6.8", + "@comunica/actor-rdf-resolve-hypermedia-sparql": "^2.6.9", + "@comunica/actor-rdf-resolve-quad-pattern-federated": "^2.6.8", + "@comunica/actor-rdf-resolve-quad-pattern-hypermedia": "^2.6.9", + "@comunica/actor-rdf-resolve-quad-pattern-rdfjs-source": "^2.6.8", + "@comunica/actor-rdf-resolve-quad-pattern-string-source": "^2.6.8", + "@comunica/actor-rdf-serialize-jsonld": "^2.6.8", + "@comunica/actor-rdf-serialize-n3": "^2.6.8", + "@comunica/actor-rdf-serialize-shaclc": "^2.6.8", + "@comunica/actor-rdf-update-hypermedia-patch-sparql-update": "^2.6.9", + "@comunica/actor-rdf-update-hypermedia-put-ldp": "^2.6.9", + "@comunica/actor-rdf-update-hypermedia-sparql": "^2.6.9", + "@comunica/actor-rdf-update-quads-hypermedia": "^2.6.9", + "@comunica/actor-rdf-update-quads-rdfjs-store": "^2.6.9", + "@comunica/bus-http-invalidate": "^2.6.8", + "@comunica/bus-query-operation": "^2.6.8", + "@comunica/config-query-sparql": "^2.6.0", + "@comunica/core": "^2.6.8", + "@comunica/logger-void": "^2.6.8", + "@comunica/mediator-all": "^2.6.8", + "@comunica/mediator-combine-pipeline": "^2.6.8", + "@comunica/mediator-combine-union": "^2.6.8", + "@comunica/mediator-join-coefficients-fixed": "^2.6.8", + "@comunica/mediator-number": "^2.6.8", + "@comunica/mediator-race": "^2.6.8", + "@comunica/runner": "^2.6.8", + "@comunica/runner-cli": "^2.6.8" + }, + "bin": { + "comunica-dynamic-sparql": "bin/query-dynamic.js", + "comunica-sparql": "bin/query.js", + "comunica-sparql-http": "bin/http.js" + } + }, + "node_modules/@comunica/runner": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/bus-init": "^2.6.8", + "@comunica/core": "^2.6.8", + "componentsjs": "^5.3.2" + }, + "bin": { + "comunica-compile-config": "bin/compile-config" + } + }, + "node_modules/@comunica/runner-cli": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@comunica/core": "^2.6.8", + "@comunica/runner": "^2.6.8", + "@comunica/types": "^2.6.8" + }, + "bin": { + "comunica-run": "bin/run.js" + } + }, + "node_modules/@comunica/types": { + "version": "2.6.8", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "@types/yargs": "^17.0.13", + "asynciterator": "^3.8.0", + "sparqlalgebrajs": "^4.0.5" + } + }, + "node_modules/@comunica/types/node_modules/@types/yargs": { + "version": "17.0.24", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@csstools/normalize.css": { + "version": "12.0.0", + "license": "CC0-1.0" + }, + "node_modules/@csstools/postcss-cascade-layers": { + "version": "1.1.1", + "license": "CC0-1.0", + "dependencies": { + "@csstools/selector-specificity": "^2.0.2", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-color-function": { + "version": "1.1.1", + "license": "CC0-1.0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-font-format-keywords": { + "version": "1.0.1", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-hwb-function": { + "version": "1.0.2", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-ic-unit": { + "version": "1.0.1", + "license": "CC0-1.0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-is-pseudo-class": { + "version": "2.0.7", + "license": "CC0-1.0", + "dependencies": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-nested-calc": { + "version": "1.0.0", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-normalize-display-values": { + "version": "1.0.1", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-oklab-function": { + "version": "1.1.1", + "license": "CC0-1.0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-progressive-custom-properties": { + "version": "1.3.0", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/@csstools/postcss-stepped-value-functions": { + "version": "1.0.1", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-text-decoration-shorthand": { + "version": "1.0.0", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-trigonometric-functions": { + "version": "1.0.2", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/postcss-unset-value": { + "version": "1.0.2", + "license": "CC0-1.0", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/@csstools/selector-specificity": { + "version": "2.2.0", + "license": "CC0-1.0", + "engines": { + "node": "^14 || ^16 || >=18" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss-selector-parser": "^6.0.10" + } + }, + "node_modules/@dabh/diagnostics": { + "version": "2.0.3", + "license": "MIT", + "dependencies": { + "colorspace": "1.1.x", + "enabled": "2.0.x", + "kuler": "^2.0.0" + } + }, + "node_modules/@emotion/babel-plugin": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", + "integrity": "sha512-m4HEDZleaaCH+XgDDsPF15Ht6wTLsgDTeR3WYj9Q/k76JtWhrJjcP4+/XlG8LGT/Rol9qUfOIztXeA84ATpqPQ==", + "dependencies": { + "@babel/helper-module-imports": "^7.16.7", + "@babel/runtime": "^7.18.3", + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/serialize": "^1.1.2", + "babel-plugin-macros": "^3.1.0", + "convert-source-map": "^1.5.0", + "escape-string-regexp": "^4.0.0", + "find-root": "^1.1.0", + "source-map": "^0.5.7", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@emotion/babel-plugin/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@emotion/cache": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.11.0.tgz", + "integrity": "sha512-P34z9ssTCBi3e9EI1ZsWpNHcfY1r09ZO0rZbRO2ob3ZQMnFI35jB536qoXbkdesr5EUhYi22anuEJuyxifaqAQ==", + "dependencies": { + "@emotion/memoize": "^0.8.1", + "@emotion/sheet": "^1.2.2", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "stylis": "4.2.0" + } + }, + "node_modules/@emotion/hash": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.1.tgz", + "integrity": "sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==" + }, + "node_modules/@emotion/is-prop-valid": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz", + "integrity": "sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==", + "dependencies": { + "@emotion/memoize": "^0.8.1" + } + }, + "node_modules/@emotion/memoize": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.8.1.tgz", + "integrity": "sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==" + }, + "node_modules/@emotion/react": { + "version": "11.11.4", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.11.4.tgz", + "integrity": "sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/cache": "^11.11.0", + "@emotion/serialize": "^1.1.3", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1", + "@emotion/weak-memoize": "^0.3.1", + "hoist-non-react-statics": "^3.3.1" + }, + "peerDependencies": { + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/serialize": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@emotion/serialize/-/serialize-1.1.3.tgz", + "integrity": "sha512-iD4D6QVZFDhcbH0RAG1uVu1CwVLMWUkCvAqqlewO/rxf8+87yIBAlt4+AxMiiKPLs5hFc0owNk/sLLAOROw3cA==", + "dependencies": { + "@emotion/hash": "^0.9.1", + "@emotion/memoize": "^0.8.1", + "@emotion/unitless": "^0.8.1", + "@emotion/utils": "^1.2.1", + "csstype": "^3.0.2" + } + }, + "node_modules/@emotion/serialize/node_modules/@emotion/unitless": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.1.tgz", + "integrity": "sha512-KOEGMu6dmJZtpadb476IsZBclKvILjopjUii3V+7MnXIQCYh8W3NgNcgwo21n9LXZX6EDIKvqfjYxXebDwxKmQ==" + }, + "node_modules/@emotion/sheet": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@emotion/sheet/-/sheet-1.2.2.tgz", + "integrity": "sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==" + }, + "node_modules/@emotion/styled": { + "version": "11.11.0", + "resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.11.0.tgz", + "integrity": "sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==", + "dependencies": { + "@babel/runtime": "^7.18.3", + "@emotion/babel-plugin": "^11.11.0", + "@emotion/is-prop-valid": "^1.2.1", + "@emotion/serialize": "^1.1.2", + "@emotion/use-insertion-effect-with-fallbacks": "^1.0.1", + "@emotion/utils": "^1.2.1" + }, + "peerDependencies": { + "@emotion/react": "^11.0.0-rc.0", + "react": ">=16.8.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@emotion/unitless": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.0.tgz", + "integrity": "sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw==" + }, + "node_modules/@emotion/use-insertion-effect-with-fallbacks": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz", + "integrity": "sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw==", + "peerDependencies": { + "react": ">=16.8.0" + } + }, + "node_modules/@emotion/utils": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.1.tgz", + "integrity": "sha512-Y2tGf3I+XVnajdItskUCn6LX+VUDmP6lTL4fcqsXAv43dnlbZiuW4MWQW38rW/BVWSE7Q/7+XQocmpnRYILUmg==" + }, + "node_modules/@emotion/weak-memoize": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz", + "integrity": "sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww==" + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.5.0", + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.0.2", + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.5.1", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "license": "Python-2.0" + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.20.0", + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.38.0", + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz", + "integrity": "sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==", + "dependencies": { + "@floating-ui/utils": "^0.2.1" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.3.tgz", + "integrity": "sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==", + "dependencies": { + "@floating-ui/core": "^1.0.0", + "@floating-ui/utils": "^0.2.0" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.8.tgz", + "integrity": "sha512-HOdqOt3R3OGeTKidaLvJKcgg75S6tibQ3Tif4eyd91QnIJWr0NLvoXFpJA/j8HqkFSL68GDca9AuyWEHlhyClw==", + "dependencies": { + "@floating-ui/dom": "^1.6.1" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.1.tgz", + "integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==" + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.8", + "license": "Apache-2.0", + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "license": "BSD-3-Clause" + }, + "node_modules/@inrupt/oidc-client": { + "version": "1.11.6", + "license": "Apache-2.0", + "dependencies": { + "acorn": "^7.4.1", + "base64-js": "^1.5.1", + "core-js": "^3.8.3", + "crypto-js": "^4.0.0", + "serialize-javascript": "^4.0.0" + } + }, + "node_modules/@inrupt/oidc-client-ext": { + "version": "1.14.0", + "license": "MIT", + "dependencies": { + "@inrupt/oidc-client": "^1.11.6", + "@inrupt/solid-client-authn-core": "^1.14.0", + "jose": "^4.10.0", + "uuid": "^9.0.0" + } + }, + "node_modules/@inrupt/oidc-client/node_modules/acorn": { + "version": "7.4.1", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/@inrupt/oidc-client/node_modules/serialize-javascript": { + "version": "4.0.0", + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/@inrupt/solid-client-authn-browser": { + "version": "1.14.0", + "license": "MIT", + "dependencies": { + "@inrupt/oidc-client-ext": "^1.14.0", + "@inrupt/solid-client-authn-core": "^1.14.0", + "@types/lodash.clonedeep": "^4.5.6", + "@types/node": "^18.0.3", + "@types/uuid": "^9.0.1", + "events": "^3.3.0", + "jose": "^4.3.7", + "lodash.clonedeep": "^4.5.0", + "uuid": "^9.0.0" + }, + "engines": { + "node": "^14.0.0 || ^16.0.0" + } + }, + "node_modules/@inrupt/solid-client-authn-core": { + "version": "1.14.0", + "license": "MIT", + "dependencies": { + "cross-fetch": "^3.1.5", + "events": "^3.3.0", + "jose": "^4.10.0", + "lodash.clonedeep": "^4.5.0", + "uuid": "^9.0.0" + }, + "engines": { + "node": "^14.0.0 || ^16.0.0" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "license": "ISC", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/camelcase": { + "version": "5.3.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { + "version": "2.3.0", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/console/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/console/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/console/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/@jest/console/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/reporters": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-changed-files": "^27.5.1", + "jest-config": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-resolve-dependencies": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "jest-watcher": "^27.5.1", + "micromatch": "^4.0.4", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/core/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/core/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/core/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/@jest/core/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/core/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/environment": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/expect-utils": { + "version": "29.5.0", + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.4.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/expect-utils/node_modules/jest-get-type": { + "version": "29.4.3", + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/fake-timers": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@sinonjs/fake-timers": "^8.0.1", + "@types/node": "*", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/globals": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/types": "^27.5.1", + "expect": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/reporters": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.9", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^5.1.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.1.3", + "jest-haste-map": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^8.1.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/reporters/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/reporters/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/@jest/reporters/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/reporters/node_modules/source-map": { + "version": "0.6.1", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/reporters/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/schemas": { + "version": "28.1.3", + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.9", + "source-map": "^0.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/source-map/node_modules/source-map": { + "version": "0.6.1", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/test-result": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@jest/test-result": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-runtime": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^27.5.1", + "babel-plugin-istanbul": "^6.1.1", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-util": "^27.5.1", + "micromatch": "^4.0.4", + "pirates": "^4.0.4", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/transform/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/transform/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/transform/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/@jest/transform/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/transform/node_modules/source-map": { + "version": "0.6.1", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@jest/transform/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^16.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jeswr/prefixcc": { + "version": "1.2.1", + "license": "MIT", + "dependencies": { + "cross-fetch": "^3.1.5" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.3", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.18", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@jridgewell/trace-mapping/node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "license": "MIT" + }, + "node_modules/@leichtgewicht/ip-codec": { + "version": "2.0.4", + "license": "MIT" + }, + "node_modules/@mui/base": { + "version": "5.0.0-beta.40", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.40.tgz", + "integrity": "sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@floating-ui/react-dom": "^2.0.8", + "@mui/types": "^7.2.14", + "@mui/utils": "^5.15.14", + "@popperjs/core": "^2.11.8", + "clsx": "^2.1.0", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/core-downloads-tracker": { + "version": "5.15.14", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.15.14.tgz", + "integrity": "sha512-on75VMd0XqZfaQW+9pGjSNiqW+ghc5E2ZSLRBXwcXl/C4YzjfyjrLPhrEpKnR9Uym9KXBvxrhoHfPcczYHweyA==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + } + }, + "node_modules/@mui/material": { + "version": "5.15.14", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.15.14.tgz", + "integrity": "sha512-kEbRw6fASdQ1SQ7LVdWR5OlWV3y7Y54ZxkLzd6LV5tmz+NpO3MJKZXSfgR0LHMP7meKsPiMm4AuzV0pXDpk/BQ==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/base": "5.0.0-beta.40", + "@mui/core-downloads-tracker": "^5.15.14", + "@mui/system": "^5.15.14", + "@mui/types": "^7.2.14", + "@mui/utils": "^5.15.14", + "@types/react-transition-group": "^4.4.10", + "clsx": "^2.1.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1", + "react-is": "^18.2.0", + "react-transition-group": "^4.4.5" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0", + "react-dom": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/material/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/@mui/private-theming": { + "version": "5.15.14", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.15.14.tgz", + "integrity": "sha512-UH0EiZckOWcxiXLX3Jbb0K7rC8mxTr9L9l6QhOZxYc4r8FHUkefltV9VDGLrzCaWh30SQiJvAEd7djX3XXY6Xw==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/utils": "^5.15.14", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/styled-engine": { + "version": "5.15.14", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.15.14.tgz", + "integrity": "sha512-RILkuVD8gY6PvjZjqnWhz8fu68dVkqhM5+jYWfB5yhlSQKg+2rHkmEwm75XIeAqI3qwOndK6zELK5H6Zxn4NHw==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@emotion/cache": "^11.11.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.4.1", + "@emotion/styled": "^11.3.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + } + } + }, + "node_modules/@mui/styled-engine-sc": { + "version": "6.0.0-alpha.18", + "resolved": "https://registry.npmjs.org/@mui/styled-engine-sc/-/styled-engine-sc-6.0.0-alpha.18.tgz", + "integrity": "sha512-W3mqR1K01rPL0BVNTgGpIYxdbQ/nTAlwYaohRdmX7FZvbm1yKw9F90OIGxM503dfRMVBi6a/neYPgIUebcGsHw==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "csstype": "^3.1.3", + "hoist-non-react-statics": "^3.3.2", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "styled-components": "^6.0.0" + } + }, + "node_modules/@mui/system": { + "version": "5.15.14", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.15.14.tgz", + "integrity": "sha512-auXLXzUaCSSOLqJXmsAaq7P96VPRXg2Rrz6OHNV7lr+kB8lobUF+/N84Vd9C4G/wvCXYPs5TYuuGBRhcGbiBGg==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@mui/private-theming": "^5.15.14", + "@mui/styled-engine": "^5.15.14", + "@mui/types": "^7.2.14", + "@mui/utils": "^5.15.14", + "clsx": "^2.1.0", + "csstype": "^3.1.3", + "prop-types": "^15.8.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0", + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@emotion/react": { + "optional": true + }, + "@emotion/styled": { + "optional": true + }, + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/types": { + "version": "7.2.14", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.14.tgz", + "integrity": "sha512-MZsBZ4q4HfzBsywtXgM1Ksj6HDThtiwmOKUXH1pKYISI9gAVXCNHNpo7TlGoGrBaYWZTdNoirIN7JsQcQUjmQQ==", + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils": { + "version": "5.15.14", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.15.14.tgz", + "integrity": "sha512-0lF/7Hh/ezDv5X7Pry6enMsbYyGKjADzvHyo3Qrc/SSlTsQ1VkbDMbH0m2t3OR5iIVLwMoxwM7yGd+6FCMtTFA==", + "dependencies": { + "@babel/runtime": "^7.23.9", + "@types/prop-types": "^15.7.11", + "prop-types": "^15.8.1", + "react-is": "^18.2.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mui-org" + }, + "peerDependencies": { + "@types/react": "^17.0.0 || ^18.0.0", + "react": "^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@mui/utils/node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals": { + "version": "5.1.1-v1", + "license": "MIT", + "dependencies": { + "eslint-scope": "5.1.1" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/eslint-scope": { + "version": "5.1.1", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@nicolo-ribaudo/eslint-scope-5-internals/node_modules/estraverse": { + "version": "4.3.0", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.5.10", + "license": "MIT", + "dependencies": { + "ansi-html-community": "^0.0.8", + "common-path-prefix": "^3.0.0", + "core-js-pure": "^3.23.3", + "error-stack-parser": "^2.0.6", + "find-up": "^5.0.0", + "html-entities": "^2.1.0", + "loader-utils": "^2.0.4", + "schema-utils": "^3.0.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">= 10.13" + }, + "peerDependencies": { + "@types/webpack": "4.x || 5.x", + "react-refresh": ">=0.10.0 <1.0.0", + "sockjs-client": "^1.4.0", + "type-fest": ">=0.17.0 <4.0.0", + "webpack": ">=4.43.0 <6.0.0", + "webpack-dev-server": "3.x || 4.x", + "webpack-hot-middleware": "2.x", + "webpack-plugin-serve": "0.x || 1.x" + }, + "peerDependenciesMeta": { + "@types/webpack": { + "optional": true + }, + "sockjs-client": { + "optional": true + }, + "type-fest": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + }, + "webpack-hot-middleware": { + "optional": true + }, + "webpack-plugin-serve": { + "optional": true + } + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@rdfjs/types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@rdfjs/types/-/types-1.1.0.tgz", + "integrity": "sha512-5zm8bN2/CC634dTcn/0AhTRLaQRjXDZs3QfcAsQKNturHT7XVWcKy/8p3P5gXl+YkZTAmy7T5M/LyiT/jbkENw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@remix-run/router": { + "version": "1.5.0", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/@rollup/plugin-babel": { + "version": "5.3.1", + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@rollup/pluginutils": "^3.1.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "@types/babel__core": "^7.1.9", + "rollup": "^1.20.0||^2.0.0" + }, + "peerDependenciesMeta": { + "@types/babel__core": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "11.2.1", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "builtin-modules": "^3.1.0", + "deepmerge": "^4.2.2", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/plugin-replace": { + "version": "2.4.2", + "license": "MIT", + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "magic-string": "^0.25.7" + }, + "peerDependencies": { + "rollup": "^1.20.0 || ^2.0.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/pluginutils/node_modules/@types/estree": { + "version": "0.0.39", + "license": "MIT" + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.2.0", + "license": "MIT" + }, + "node_modules/@sinclair/typebox": { + "version": "0.24.51", + "license": "MIT" + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.6", + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "8.1.0", + "license": "BSD-3-Clause", + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@surma/rollup-plugin-off-main-thread": { + "version": "2.2.3", + "license": "Apache-2.0", + "dependencies": { + "ejs": "^3.1.6", + "json5": "^2.2.0", + "magic-string": "^0.25.0", + "string.prototype.matchall": "^4.0.6" + } + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "5.4.0", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "5.4.0", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "5.0.1", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "5.0.1", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "5.4.0", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "5.4.0", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "5.4.0", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "5.5.0", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "5.5.0", + "license": "MIT", + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-attribute": "^5.4.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "^5.0.1", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^5.0.1", + "@svgr/babel-plugin-svg-dynamic-title": "^5.4.0", + "@svgr/babel-plugin-svg-em-dimensions": "^5.4.0", + "@svgr/babel-plugin-transform-react-native-svg": "^5.4.0", + "@svgr/babel-plugin-transform-svg-component": "^5.5.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/core": { + "version": "5.5.0", + "license": "MIT", + "dependencies": { + "@svgr/plugin-jsx": "^5.5.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^7.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "5.5.0", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.12.6" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "5.5.0", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.12.3", + "@svgr/babel-preset": "^5.5.0", + "@svgr/hast-util-to-babel-ast": "^5.5.0", + "svg-parser": "^2.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "5.5.0", + "license": "MIT", + "dependencies": { + "cosmiconfig": "^7.0.0", + "deepmerge": "^4.2.2", + "svgo": "^1.2.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/webpack": { + "version": "5.5.0", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/plugin-transform-react-constant-elements": "^7.12.1", + "@babel/preset-env": "^7.12.1", + "@babel/preset-react": "^7.12.5", + "@svgr/core": "^5.5.0", + "@svgr/plugin-jsx": "^5.5.0", + "@svgr/plugin-svgo": "^5.5.0", + "loader-utils": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@testing-library/dom": { + "version": "9.2.0", + "license": "MIT", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "^5.0.0", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@testing-library/dom/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "peer": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/dom/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "peer": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@testing-library/dom/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "peer": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/dom/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT", + "peer": true + }, + "node_modules/@testing-library/dom/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "peer": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/dom/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom": { + "version": "5.16.5", + "license": "MIT", + "dependencies": { + "@adobe/css-tools": "^4.0.1", + "@babel/runtime": "^7.9.2", + "@types/testing-library__jest-dom": "^5.9.1", + "aria-query": "^5.0.0", + "chalk": "^3.0.0", + "css.escape": "^1.5.1", + "dom-accessibility-api": "^0.5.6", + "lodash": "^4.17.15", + "redent": "^3.0.0" + }, + "engines": { + "node": ">=8", + "npm": ">=6", + "yarn": ">=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/chalk": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/@testing-library/jest-dom/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/jest-dom/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/react": { + "version": "13.4.0", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5", + "@testing-library/dom": "^8.5.0", + "@types/react-dom": "^18.0.0" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/@testing-library/react/node_modules/@testing-library/dom": { + "version": "8.20.0", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "^5.0.0", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.4.4", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@testing-library/react/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@testing-library/react/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@testing-library/react/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@testing-library/react/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/@testing-library/react/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/react/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@testing-library/user-event": { + "version": "13.5.0", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + }, + "peerDependencies": { + "@testing-library/dom": ">=7.21.4" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "license": "ISC", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@types/aria-query": { + "version": "5.0.1", + "license": "MIT" + }, + "node_modules/@types/babel__core": { + "version": "7.20.0", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.4", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.1", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.18.3", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.3.0" + } + }, + "node_modules/@types/body-parser": { + "version": "1.19.2", + "license": "MIT", + "dependencies": { + "@types/connect": "*", + "@types/node": "*" + } + }, + "node_modules/@types/bonjour": { + "version": "3.5.10", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/connect-history-api-fallback": { + "version": "1.3.5", + "license": "MIT", + "dependencies": { + "@types/express-serve-static-core": "*", + "@types/node": "*" + } + }, + "node_modules/@types/eslint": { + "version": "8.37.0", + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.4", + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/@types/express": { + "version": "4.17.17", + "license": "MIT", + "dependencies": { + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.33", + "@types/qs": "*", + "@types/serve-static": "*" + } + }, + "node_modules/@types/express-serve-static-core": { + "version": "4.17.33", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.6", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/html-minifier-terser": { + "version": "6.1.0", + "license": "MIT" + }, + "node_modules/@types/http-link-header": { + "version": "1.0.3", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/http-proxy": { + "version": "1.17.10", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "license": "MIT" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "license": "MIT", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/jest": { + "version": "29.5.0", + "license": "MIT", + "dependencies": { + "expect": "^29.0.0", + "pretty-format": "^29.0.0" + } + }, + "node_modules/@types/jest/node_modules/@jest/schemas": { + "version": "29.4.3", + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.25.16" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/@jest/types": { + "version": "29.5.0", + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.4.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/@sinclair/typebox": { + "version": "0.25.24", + "license": "MIT" + }, + "node_modules/@types/jest/node_modules/@types/yargs": { + "version": "17.0.24", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/jest/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@types/jest/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@types/jest/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@types/jest/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/@types/jest/node_modules/diff-sequences": { + "version": "29.4.3", + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/expect": { + "version": "29.5.0", + "license": "MIT", + "dependencies": { + "@jest/expect-utils": "^29.5.0", + "jest-get-type": "^29.4.3", + "jest-matcher-utils": "^29.5.0", + "jest-message-util": "^29.5.0", + "jest-util": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@types/jest/node_modules/jest-diff": { + "version": "29.5.0", + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.4.3", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/jest-get-type": { + "version": "29.4.3", + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/jest-matcher-utils": { + "version": "29.5.0", + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.5.0", + "jest-get-type": "^29.4.3", + "pretty-format": "^29.5.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/jest-message-util": { + "version": "29.5.0", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.5.0", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.5.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/jest-util": { + "version": "29.5.0", + "license": "MIT", + "dependencies": { + "@jest/types": "^29.5.0", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/pretty-format": { + "version": "29.5.0", + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.4.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@types/jest/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@types/jest/node_modules/react-is": { + "version": "18.2.0", + "license": "MIT" + }, + "node_modules/@types/jest/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "license": "MIT" + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "license": "MIT" + }, + "node_modules/@types/lodash": { + "version": "4.14.192", + "license": "MIT" + }, + "node_modules/@types/lodash.clonedeep": { + "version": "4.5.7", + "license": "MIT", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/lru-cache": { + "version": "7.10.10", + "license": "MIT", + "dependencies": { + "lru-cache": "*" + } + }, + "node_modules/@types/mime": { + "version": "3.0.1", + "license": "MIT" + }, + "node_modules/@types/minimist": { + "version": "1.2.2", + "license": "MIT" + }, + "node_modules/@types/n3": { + "version": "1.10.4", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "rdf-js": "^4.0.2" + } + }, + "node_modules/@types/node": { + "version": "18.15.11", + "license": "MIT" + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "license": "MIT" + }, + "node_modules/@types/prettier": { + "version": "2.7.2", + "license": "MIT" + }, + "node_modules/@types/prop-types": { + "version": "15.7.12", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.12.tgz", + "integrity": "sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==" + }, + "node_modules/@types/q": { + "version": "1.5.5", + "license": "MIT" + }, + "node_modules/@types/qs": { + "version": "6.9.7", + "license": "MIT" + }, + "node_modules/@types/range-parser": { + "version": "1.2.4", + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.0.35", + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.0.11", + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-transition-group": { + "version": "4.4.10", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz", + "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/readable-stream": { + "version": "2.3.15", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "safe-buffer": "~5.1.1" + } + }, + "node_modules/@types/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "license": "MIT" + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/retry": { + "version": "0.12.0", + "license": "MIT" + }, + "node_modules/@types/scheduler": { + "version": "0.16.3", + "license": "MIT" + }, + "node_modules/@types/semver": { + "version": "7.3.13", + "license": "MIT" + }, + "node_modules/@types/serve-index": { + "version": "1.9.1", + "license": "MIT", + "dependencies": { + "@types/express": "*" + } + }, + "node_modules/@types/serve-static": { + "version": "1.15.1", + "license": "MIT", + "dependencies": { + "@types/mime": "*", + "@types/node": "*" + } + }, + "node_modules/@types/sockjs": { + "version": "0.3.33", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/spark-md5": { + "version": "3.0.2", + "license": "MIT" + }, + "node_modules/@types/sparqljs": { + "version": "3.1.3", + "license": "MIT", + "dependencies": { + "rdf-js": "^4.0.2" + } + }, + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "license": "MIT" + }, + "node_modules/@types/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@types/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-n4sx2bqL0mW1tvDf/loQ+aMX7GQD3lc3fkCMC55VFNDu/vBOabO+LTIeXKM14xK0ppk5TUGcWRjiSpIlUpghKw==" + }, + "node_modules/@types/testing-library__jest-dom": { + "version": "5.14.5", + "license": "MIT", + "dependencies": { + "@types/jest": "*" + } + }, + "node_modules/@types/triple-beam": { + "version": "1.3.2", + "license": "MIT" + }, + "node_modules/@types/trusted-types": { + "version": "2.0.3", + "license": "MIT" + }, + "node_modules/@types/uritemplate": { + "version": "0.3.4", + "license": "MIT" + }, + "node_modules/@types/uuid": { + "version": "9.0.1", + "license": "MIT" + }, + "node_modules/@types/ws": { + "version": "8.5.4", + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yargs": { + "version": "16.0.5", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "license": "MIT" + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.58.0", + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.4.0", + "@typescript-eslint/scope-manager": "5.58.0", + "@typescript-eslint/type-utils": "5.58.0", + "@typescript-eslint/utils": "5.58.0", + "debug": "^4.3.4", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/experimental-utils": { + "version": "5.58.0", + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "5.58.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.58.0", + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "5.58.0", + "@typescript-eslint/types": "5.58.0", + "@typescript-eslint/typescript-estree": "5.58.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.58.0", + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.58.0", + "@typescript-eslint/visitor-keys": "5.58.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.58.0", + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "5.58.0", + "@typescript-eslint/utils": "5.58.0", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.58.0", + "license": "MIT", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.58.0", + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "5.58.0", + "@typescript-eslint/visitor-keys": "5.58.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.58.0", + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.58.0", + "@typescript-eslint/types": "5.58.0", + "@typescript-eslint/typescript-estree": "5.58.0", + "eslint-scope": "^5.1.1", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { + "version": "5.1.1", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.58.0", + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "5.58.0", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.11.1", + "license": "MIT", + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "license": "MIT", + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "license": "MIT" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "license": "MIT", + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "license": "BSD-3-Clause" + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "license": "Apache-2.0" + }, + "node_modules/abab": { + "version": "2.0.6", + "license": "BSD-3-Clause" + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.8.2", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "license": "MIT", + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "license": "MIT", + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.2.2", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/adjust-sourcemap-loader": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" + }, + "engines": { + "node": ">=8.9" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.12.0", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "license": "MIT", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-html-community": { + "version": "0.0.8", + "engines": [ + "node >= 0.8.0" + ], + "license": "Apache-2.0", + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "license": "MIT" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "license": "ISC", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "license": "MIT" + }, + "node_modules/argparse": { + "version": "1.0.10", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/aria-query": { + "version": "5.1.3", + "license": "Apache-2.0", + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "license": "MIT" + }, + "node_modules/array-includes": { + "version": "3.1.6", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.1", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.1", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.reduce": { + "version": "1.0.5", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.1", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.1.3" + } + }, + "node_modules/arrayify-stream": { + "version": "2.0.1", + "license": "MIT" + }, + "node_modules/asap": { + "version": "2.0.6", + "license": "MIT" + }, + "node_modules/ast-types-flow": { + "version": "0.0.7", + "license": "ISC" + }, + "node_modules/async": { + "version": "3.2.4", + "license": "MIT" + }, + "node_modules/asynciterator": { + "version": "3.8.0", + "license": "MIT" + }, + "node_modules/asyncjoin": { + "version": "1.1.2", + "license": "MIT", + "dependencies": { + "asynciterator": "^3.6.0" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "license": "MIT" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "license": "ISC", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.14", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.5", + "caniuse-lite": "^1.0.30001464", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.6.3", + "license": "MPL-2.0", + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "3.1.1", + "license": "Apache-2.0", + "dependencies": { + "deep-equal": "^2.0.5" + } + }, + "node_modules/babel-jest": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.8.0" + } + }, + "node_modules/babel-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/babel-jest/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/babel-jest/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/babel-jest/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-loader": { + "version": "8.3.0", + "license": "MIT", + "dependencies": { + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 8.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/schema-utils": { + "version": "2.7.1", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/babel-plugin-macros": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.12.5", + "cosmiconfig": "^7.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + } + }, + "node_modules/babel-plugin-named-asset-import": { + "version": "0.3.8", + "license": "MIT", + "peerDependencies": { + "@babel/core": "^7.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.3.3", + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.3", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.0", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.6.0", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.4.1", + "license": "MIT", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-transform-react-remove-prop-types": { + "version": "0.4.24", + "license": "MIT" + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@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-top-level-await": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-jest": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "babel-plugin-jest-hoist": "^27.5.1", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/babel-preset-react-app": { + "version": "10.0.1", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/plugin-proposal-class-properties": "^7.16.0", + "@babel/plugin-proposal-decorators": "^7.16.4", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.0", + "@babel/plugin-proposal-numeric-separator": "^7.16.0", + "@babel/plugin-proposal-optional-chaining": "^7.16.0", + "@babel/plugin-proposal-private-methods": "^7.16.0", + "@babel/plugin-transform-flow-strip-types": "^7.16.0", + "@babel/plugin-transform-react-display-name": "^7.16.0", + "@babel/plugin-transform-runtime": "^7.16.4", + "@babel/preset-env": "^7.16.4", + "@babel/preset-react": "^7.16.0", + "@babel/preset-typescript": "^7.16.0", + "@babel/runtime": "^7.16.3", + "babel-plugin-macros": "^3.1.0", + "babel-plugin-transform-react-remove-prop-types": "^0.4.24" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/batch": { + "version": "0.6.1", + "license": "MIT" + }, + "node_modules/bfj": { + "version": "7.0.2", + "license": "MIT", + "dependencies": { + "bluebird": "^3.5.5", + "check-types": "^11.1.1", + "hoopy": "^0.1.4", + "tryer": "^1.0.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/bignumber.js": { + "version": "9.1.1", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "license": "MIT" + }, + "node_modules/body-parser": { + "version": "1.20.1", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.2", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/bonjour-service": { + "version": "1.1.1", + "license": "MIT", + "dependencies": { + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "license": "ISC" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "license": "MIT", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "license": "BSD-2-Clause" + }, + "node_modules/browserslist": { + "version": "4.21.5", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "license": "Apache-2.0", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "license": "MIT" + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/camel-case": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/camelize": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/camelize/-/camelize-1.0.1.tgz", + "integrity": "sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001478", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/canonicalize": { + "version": "1.0.8", + "license": "Apache-2.0" + }, + "node_modules/case-sensitive-paths-webpack-plugin": { + "version": "2.4.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/check-types": { + "version": "11.2.2", + "license": "MIT" + }, + "node_modules/chokidar": { + "version": "3.5.3", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "license": "MIT", + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "license": "MIT", + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "3.8.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/cjs-module-lexer": { + "version": "1.2.2", + "license": "MIT" + }, + "node_modules/clean-css": { + "version": "5.3.2", + "license": "MIT", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/clean-css/node_modules/source-map": { + "version": "0.6.1", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/clsx": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", + "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/co": { + "version": "4.6.0", + "license": "MIT", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/coa": { + "version": "2.0.2", + "license": "MIT", + "dependencies": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/color": { + "version": "3.2.1", + "license": "MIT", + "dependencies": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "license": "MIT", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "license": "MIT" + }, + "node_modules/color-string": { + "version": "1.9.1", + "license": "MIT", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/colord": { + "version": "2.9.3", + "license": "MIT" + }, + "node_modules/colorette": { + "version": "2.0.19", + "license": "MIT" + }, + "node_modules/colorspace": { + "version": "1.1.4", + "license": "MIT", + "dependencies": { + "color": "^3.1.3", + "text-hex": "1.0.x" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "8.3.0", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/common-path-prefix": { + "version": "3.0.0", + "license": "ISC" + }, + "node_modules/common-tags": { + "version": "1.8.2", + "license": "MIT", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/componentsjs": { + "version": "5.3.2", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "@types/minimist": "^1.2.0", + "@types/node": "^14.14.7", + "@types/semver": "^7.3.4", + "jsonld-context-parser": "^2.1.1", + "minimist": "^1.2.0", + "rdf-data-factory": "^1.1.0", + "rdf-object": "^1.13.1", + "rdf-parse": "^2.0.0", + "rdf-quad": "^1.5.0", + "rdf-string": "^1.6.0", + "rdf-terms": "^1.7.0", + "semver": "^7.3.2", + "winston": "^3.3.3" + }, + "bin": { + "componentsjs-compile-config": "bin/compile-config.js" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/componentsjs/node_modules/@types/node": { + "version": "14.18.42", + "license": "MIT" + }, + "node_modules/compressible": { + "version": "2.0.18", + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "license": "MIT" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "license": "MIT" + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.11", + "license": "MIT" + }, + "node_modules/connect-history-api-fallback": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "license": "MIT" + }, + "node_modules/cookie": { + "version": "0.5.0", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "license": "MIT" + }, + "node_modules/core-js": { + "version": "3.30.0", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat": { + "version": "3.30.0", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-pure": { + "version": "3.30.0", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "license": "MIT" + }, + "node_modules/cosmiconfig": { + "version": "7.1.0", + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-fetch": { + "version": "3.1.5", + "license": "MIT", + "dependencies": { + "node-fetch": "2.6.7" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-js": { + "version": "4.1.1", + "license": "MIT" + }, + "node_modules/crypto-random-string": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/css-blank-pseudo": { + "version": "3.0.3", + "license": "CC0-1.0", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-blank-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-color-keywords": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz", + "integrity": "sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/css-declaration-sorter": { + "version": "6.4.0", + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/css-has-pseudo": { + "version": "3.0.4", + "license": "CC0-1.0", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "bin": { + "css-has-pseudo": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-loader": { + "version": "6.7.3", + "license": "MIT", + "dependencies": { + "icss-utils": "^5.1.0", + "postcss": "^8.4.19", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/css-minimizer-webpack-plugin": { + "version": "3.4.1", + "license": "MIT", + "dependencies": { + "cssnano": "^5.0.6", + "jest-worker": "^27.0.2", + "postcss": "^8.3.5", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "@parcel/css": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + } + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { + "version": "8.12.0", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-prefers-color-scheme": { + "version": "6.0.3", + "license": "CC0-1.0", + "bin": { + "css-prefers-color-scheme": "dist/cli.cjs" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/css-select": { + "version": "4.3.0", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-select-base-adapter": { + "version": "0.1.1", + "license": "MIT" + }, + "node_modules/css-to-react-native": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.2.0.tgz", + "integrity": "sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==", + "dependencies": { + "camelize": "^1.0.0", + "css-color-keywords": "^1.0.0", + "postcss-value-parser": "^4.0.2" + } + }, + "node_modules/css-tree": { + "version": "1.0.0-alpha.37", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-tree/node_modules/source-map": { + "version": "0.6.1", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css.escape": { + "version": "1.5.1", + "license": "MIT" + }, + "node_modules/cssdb": { + "version": "7.5.4", + "license": "CC0-1.0", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "5.1.15", + "license": "MIT", + "dependencies": { + "cssnano-preset-default": "^5.2.14", + "lilconfig": "^2.0.3", + "yaml": "^1.10.2" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/cssnano" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-preset-default": { + "version": "5.2.14", + "license": "MIT", + "dependencies": { + "css-declaration-sorter": "^6.3.1", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.1", + "postcss-convert-values": "^5.1.3", + "postcss-discard-comments": "^5.1.2", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.4", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.4", + "postcss-minify-selectors": "^5.2.1", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.3", + "postcss-reduce-initial": "^5.1.2", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/cssnano-utils": { + "version": "3.1.0", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "license": "MIT", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.3", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.14", + "license": "CC0-1.0" + }, + "node_modules/csso/node_modules/source-map": { + "version": "0.6.1", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssom": { + "version": "0.4.4", + "license": "MIT" + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "license": "MIT", + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "license": "BSD-2-Clause" + }, + "node_modules/data-urls": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "license": "MIT" + }, + "node_modules/dedent": { + "version": "0.7.0", + "license": "MIT" + }, + "node_modules/deep-equal": { + "version": "2.2.0", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "es-get-iterator": "^1.1.2", + "get-intrinsic": "^1.1.3", + "is-arguments": "^1.1.1", + "is-array-buffer": "^3.0.1", + "is-date-object": "^1.0.5", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "isarray": "^2.0.5", + "object-is": "^1.1.5", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "license": "MIT" + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "6.0.3", + "license": "BSD-2-Clause", + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.2.0", + "license": "MIT", + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "license": "MIT" + }, + "node_modules/detect-port-alt": { + "version": "1.1.6", + "license": "MIT", + "dependencies": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "bin": { + "detect": "bin/detect-port", + "detect-port": "bin/detect-port" + }, + "engines": { + "node": ">= 4.2.1" + } + }, + "node_modules/detect-port-alt/node_modules/debug": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/detect-port-alt/node_modules/ms": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "license": "Apache-2.0" + }, + "node_modules/diff-sequences": { + "version": "27.5.1", + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "license": "MIT", + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "license": "MIT" + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/dns-packet": { + "version": "5.5.0", + "license": "MIT", + "dependencies": { + "@leichtgewicht/ip-codec": "^2.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-accessibility-api": { + "version": "0.5.16", + "license": "MIT" + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "license": "MIT", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-helpers": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz", + "integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==", + "dependencies": { + "@babel/runtime": "^7.8.7", + "csstype": "^3.0.2" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "BSD-2-Clause" + }, + "node_modules/domexception": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "license": "BSD-2-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/domhandler": { + "version": "4.3.1", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "10.0.0", + "license": "BSD-2-Clause", + "engines": { + "node": ">=10" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "license": "BSD-2-Clause" + }, + "node_modules/duplexer": { + "version": "0.1.2", + "license": "MIT" + }, + "node_modules/ee-first": { + "version": "1.1.1", + "license": "MIT" + }, + "node_modules/ejs": { + "version": "3.1.9", + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.361", + "license": "ISC" + }, + "node_modules/emittery": { + "version": "0.8.1", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "license": "MIT" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/enabled": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.12.0", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "license": "BSD-2-Clause", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.1.4", + "license": "MIT", + "dependencies": { + "stackframe": "^1.3.4" + } + }, + "node_modules/es-abstract": { + "version": "1.21.2", + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.2.0", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.10", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.7", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/es-get-iterator": { + "version": "1.1.3", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "is-arguments": "^1.1.1", + "is-map": "^2.0.2", + "is-set": "^2.0.2", + "is-string": "^1.0.7", + "isarray": "^2.0.5", + "stop-iteration-iterator": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-module-lexer": { + "version": "1.2.1", + "license": "MIT" + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "2.0.0", + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/levn": { + "version": "0.3.0", + "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/optionator": { + "version": "0.8.3", + "license": "MIT", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/prelude-ls": { + "version": "1.1.2", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/escodegen/node_modules/type-check": { + "version": "0.3.2", + "license": "MIT", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint": { + "version": "8.38.0", + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.4.0", + "@eslint/eslintrc": "^2.0.2", + "@eslint/js": "8.38.0", + "@humanwhocodes/config-array": "^0.11.8", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.4.0", + "espree": "^9.5.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-react-app": { + "version": "7.0.1", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.16.0", + "@babel/eslint-parser": "^7.16.3", + "@rushstack/eslint-patch": "^1.1.0", + "@typescript-eslint/eslint-plugin": "^5.5.0", + "@typescript-eslint/parser": "^5.5.0", + "babel-preset-react-app": "^10.0.1", + "confusing-browser-globals": "^1.0.11", + "eslint-plugin-flowtype": "^8.0.3", + "eslint-plugin-import": "^2.25.3", + "eslint-plugin-jest": "^25.3.0", + "eslint-plugin-jsx-a11y": "^6.5.1", + "eslint-plugin-react": "^7.27.1", + "eslint-plugin-react-hooks": "^4.3.0", + "eslint-plugin-testing-library": "^5.0.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.7", + "license": "MIT", + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.11.0", + "resolve": "^1.22.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.7.4", + "license": "MIT", + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-flowtype": { + "version": "8.0.3", + "license": "BSD-3-Clause", + "dependencies": { + "lodash": "^4.17.21", + "string-natural-compare": "^3.0.1" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@babel/plugin-syntax-flow": "^7.14.5", + "@babel/plugin-transform-react-jsx": "^7.14.9", + "eslint": "^8.1.0" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.27.5", + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "array.prototype.flatmap": "^1.3.1", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.7", + "eslint-module-utils": "^2.7.4", + "has": "^1.0.3", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.6", + "resolve": "^1.22.1", + "semver": "^6.3.0", + "tsconfig-paths": "^3.14.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "license": "MIT", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.0", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jest": { + "version": "25.7.0", + "license": "MIT", + "dependencies": { + "@typescript-eslint/experimental-utils": "^5.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^4.0.0 || ^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.7.1", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.20.7", + "aria-query": "^5.1.3", + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.6.2", + "axobject-query": "^3.1.1", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "has": "^1.0.3", + "jsx-ast-utils": "^3.3.3", + "language-tags": "=1.0.5", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/semver": { + "version": "6.3.0", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.32.2", + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", + "doctrine": "^2.1.0", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "object.hasown": "^1.1.2", + "object.values": "^1.1.6", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.4", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.8" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.0", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "license": "Apache-2.0", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.4", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.0", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-testing-library": { + "version": "5.10.3", + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "^5.58.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0", + "npm": ">=6" + }, + "peerDependencies": { + "eslint": "^7.5.0 || ^8.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.1.1", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.0", + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-webpack-plugin": { + "version": "3.2.0", + "license": "MIT", + "dependencies": { + "@types/eslint": "^7.29.0 || ^8.4.1", + "jest-worker": "^28.0.2", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/ajv": { + "version": "8.12.0", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/jest-worker": { + "version": "28.1.3", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/eslint-webpack-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/eslint-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "license": "Python-2.0" + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.20.0", + "license": "MIT", + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.5.1", + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "license": "MIT" + }, + "node_modules/events": { + "version": "3.3.0", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "version": "5.1.1", + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expect": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/express": { + "version": "4.18.2", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "license": "MIT" + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.15.0", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "license": "Apache-2.0", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.2", + "license": "Apache-2.0", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fecha": { + "version": "4.2.3", + "license": "MIT" + }, + "node_modules/fetch-sparql-endpoint": { + "version": "3.2.1", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "@types/readable-stream": "^2.3.11", + "@types/sparqljs": "^3.1.3", + "abort-controller": "^3.0.0", + "cross-fetch": "^3.0.6", + "is-stream": "^2.0.0", + "minimist": "^1.2.0", + "n3": "^1.6.3", + "rdf-string": "^1.6.0", + "readable-web-to-node-stream": "^3.0.2", + "sparqljs": "^3.1.2", + "sparqljson-parse": "^2.1.0", + "sparqlxml-parse": "^2.0.0", + "stream-to-string": "^1.1.0" + }, + "bin": { + "fetch-sparql-endpoint": "bin/fetch-sparql-endpoint.js" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "license": "MIT", + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/file-loader": { + "version": "6.2.0", + "license": "MIT", + "dependencies": { + "loader-utils": "^2.0.0", + "schema-utils": "^3.0.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/filesize": { + "version": "8.0.7", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "license": "MIT", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==" + }, + "node_modules/find-up": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "license": "MIT", + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "license": "ISC" + }, + "node_modules/fn.name": { + "version": "1.1.0", + "license": "MIT" + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "license": "MIT", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/fork-ts-checker-webpack-plugin": { + "version": "6.5.3", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.8.3", + "@types/json-schema": "^7.0.5", + "chalk": "^4.1.0", + "chokidar": "^3.4.2", + "cosmiconfig": "^6.0.0", + "deepmerge": "^4.2.2", + "fs-extra": "^9.0.0", + "glob": "^7.1.6", + "memfs": "^3.1.2", + "minimatch": "^3.0.4", + "schema-utils": "2.7.0", + "semver": "^7.3.2", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=10", + "yarn": ">=1.0.0" + }, + "peerDependencies": { + "eslint": ">= 6", + "typescript": ">= 2.7", + "vue-template-compiler": "*", + "webpack": ">= 4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/cosmiconfig": { + "version": "6.0.0", + "license": "MIT", + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": { + "version": "9.1.0", + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/schema-utils": { + "version": "2.7.0", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fork-ts-checker-webpack-plugin/node_modules/tapable": { + "version": "1.1.3", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/form-data": { + "version": "3.0.1", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fraction.js": { + "version": "4.2.0", + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://www.patreon.com/infusion" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/fs-monkey": { + "version": "1.0.3", + "license": "Unlicense" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "license": "ISC" + }, + "node_modules/function-bind": { + "version": "1.1.1", + "license": "MIT" + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.0", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "license": "ISC" + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "license": "BSD-2-Clause" + }, + "node_modules/global-modules": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "license": "MIT", + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "license": "ISC" + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "license": "MIT" + }, + "node_modules/graphql": { + "version": "15.8.0", + "license": "MIT", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/graphql-to-sparql": { + "version": "3.0.1", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "graphql": "^15.5.2", + "jsonld-context-parser": "^2.0.2", + "minimist": "^1.2.0", + "rdf-data-factory": "^1.1.0", + "sparqlalgebrajs": "^4.0.0" + }, + "bin": { + "graphql-to-sparql": "bin/graphql-to-sparql.js" + } + }, + "node_modules/gzip-size": { + "version": "6.0.0", + "license": "MIT", + "dependencies": { + "duplexer": "^0.1.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "license": "MIT" + }, + "node_modules/harmony-reflect": { + "version": "1.6.2", + "license": "(Apache-2.0 OR MPL-1.1)" + }, + "node_modules/has": { + "version": "1.0.3", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/he": { + "version": "1.2.0", + "license": "MIT", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/hoist-non-react-statics/node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/hoopy": { + "version": "0.1.4", + "license": "MIT", + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "license": "MIT", + "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" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "license": "MIT" + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-entities": { + "version": "2.3.3", + "license": "MIT" + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "license": "MIT" + }, + "node_modules/html-minifier-terser": { + "version": "6.1.0", + "license": "MIT", + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/html-webpack-plugin": { + "version": "5.5.0", + "license": "MIT", + "dependencies": { + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", + "tapable": "^2.0.0" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/html-webpack-plugin" + }, + "peerDependencies": { + "webpack": "^5.20.0" + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "license": "MIT" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-link-header": { + "version": "1.1.0", + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "license": "MIT" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "license": "MIT", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-proxy-middleware": { + "version": "2.0.6", + "license": "MIT", + "dependencies": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "@types/express": "^4.17.13" + }, + "peerDependenciesMeta": { + "@types/express": { + "optional": true + } + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils": { + "version": "5.1.0", + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/idb": { + "version": "7.1.1", + "license": "ISC" + }, + "node_modules/identity-obj-proxy": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "harmony-reflect": "^1.4.6" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.2.4", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immer": { + "version": "9.0.21", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/immutable": { + "version": "4.3.0", + "license": "MIT" + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "license": "ISC" + }, + "node_modules/ini": { + "version": "1.3.8", + "license": "ISC" + }, + "node_modules/internal-slot": { + "version": "1.0.5", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ipaddr.js": { + "version": "2.0.1", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "license": "MIT" + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "license": "MIT", + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.12.0", + "license": "MIT", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-map": { + "version": "2.0.2", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-module": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/is-regex": { + "version": "1.1.4", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regexp": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-root": { + "version": "2.1.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-set": { + "version": "2.0.2", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "license": "MIT", + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.10", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/is-weakmap": { + "version": "2.0.1", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.2", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "license": "ISC" + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "license": "BSD-3-Clause", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/semver": { + "version": "6.3.0", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "license": "BSD-3-Clause", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "license": "BSD-3-Clause", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-reports": { + "version": "3.1.5", + "license": "BSD-3-Clause", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jake": { + "version": "10.8.5", + "license": "Apache-2.0", + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jake/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jake/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jake/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jake/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/jake/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jake/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@jest/core": "^27.5.1", + "import-local": "^3.0.2", + "jest-cli": "^27.5.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-changed-files": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "execa": "^5.0.0", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^0.7.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-circus/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-circus/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/jest-circus/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@jest/core": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "import-local": "^3.0.2", + "jest-config": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "prompts": "^2.0.1", + "yargs": "^16.2.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/jest-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-cli/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-cli/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/jest-cli/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-cli/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.8.0", + "@jest/test-sequencer": "^27.5.1", + "@jest/types": "^27.5.1", + "babel-jest": "^27.5.1", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.9", + "jest-circus": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-jasmine2": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runner": "^27.5.1", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "peerDependencies": { + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "ts-node": { + "optional": true + } + } + }, + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-config/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-config/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/jest-config/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-diff/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/jest-diff/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-docblock": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-each/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-each/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/jest-each/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1", + "jsdom": "^16.6.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-get-type": { + "version": "27.5.1", + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-haste-map": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^27.5.1", + "jest-serializer": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "micromatch": "^4.0.4", + "walker": "^1.0.7" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + } + }, + "node_modules/jest-jasmine2": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^27.5.1", + "is-generator-fn": "^2.0.0", + "jest-each": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "pretty-format": "^27.5.1", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-jasmine2/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-jasmine2/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-jasmine2/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/jest-jasmine2/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-jasmine2/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-leak-detector": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/jest-matcher-utils/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^27.5.1", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^27.5.1", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-message-util/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-message-util/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/jest-message-util/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-mock": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + }, + "peerDependenciesMeta": { + "jest-resolve": { + "optional": true + } + } + }, + "node_modules/jest-regex-util": { + "version": "27.5.1", + "license": "MIT", + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^27.5.1", + "jest-validate": "^27.5.1", + "resolve": "^1.20.0", + "resolve.exports": "^1.1.0", + "slash": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-snapshot": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-resolve/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-resolve/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-resolve/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/jest-resolve/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-resolve/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runner/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runner/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/jest-runner/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runner/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/globals": "^27.5.1", + "@jest/source-map": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "chalk": "^4.0.0", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", + "execa": "^5.0.0", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-mock": "^27.5.1", + "jest-regex-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-snapshot": "^27.5.1", + "jest-util": "^27.5.1", + "slash": "^3.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runtime/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-runtime/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-runtime/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/jest-runtime/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-runtime/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-serializer": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.9" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.7.2", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/traverse": "^7.7.2", + "@babel/types": "^7.0.0", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.1.5", + "babel-preset-current-node-syntax": "^1.0.0", + "chalk": "^4.0.0", + "expect": "^27.5.1", + "graceful-fs": "^4.2.9", + "jest-diff": "^27.5.1", + "jest-get-type": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-matcher-utils": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-util": "^27.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^27.5.1", + "semver": "^7.3.2" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-snapshot/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/jest-snapshot/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-snapshot/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@jest/types": "^27.5.1", + "camelcase": "^6.2.0", + "chalk": "^4.0.0", + "jest-get-type": "^27.5.1", + "leven": "^3.1.0", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-validate/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-validate/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/jest-validate/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-validate/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.3.1", + "chalk": "^4.0.0", + "jest-regex-util": "^28.0.0", + "jest-watcher": "^28.0.0", + "slash": "^4.0.0", + "string-length": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "jest": "^27.0.0 || ^28.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/console": { + "version": "28.1.3", + "license": "MIT", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^28.1.3", + "jest-util": "^28.1.3", + "slash": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/console/node_modules/slash": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/test-result": { + "version": "28.1.3", + "license": "MIT", + "dependencies": { + "@jest/console": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@jest/types": { + "version": "28.1.3", + "license": "MIT", + "dependencies": { + "@jest/schemas": "^28.1.3", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/@types/yargs": { + "version": "17.0.24", + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/jest-watch-typeahead/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/jest-watch-typeahead/node_modules/emittery": { + "version": "0.10.2", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-message-util": { + "version": "28.1.3", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@jest/types": "^28.1.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^28.1.3", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-message-util/node_modules/slash": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-regex-util": { + "version": "28.0.2", + "license": "MIT", + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-util": { + "version": "28.1.3", + "license": "MIT", + "dependencies": { + "@jest/types": "^28.1.3", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher": { + "version": "28.1.3", + "license": "MIT", + "dependencies": { + "@jest/test-result": "^28.1.3", + "@jest/types": "^28.1.3", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "emittery": "^0.10.2", + "jest-util": "^28.1.3", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/string-length": { + "version": "4.0.2", + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/strip-ansi": { + "version": "6.0.1", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watch-typeahead/node_modules/pretty-format": { + "version": "28.1.3", + "license": "MIT", + "dependencies": { + "@jest/schemas": "^28.1.3", + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" + } + }, + "node_modules/jest-watch-typeahead/node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/react-is": { + "version": "18.2.0", + "license": "MIT" + }, + "node_modules/jest-watch-typeahead/node_modules/slash": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length": { + "version": "5.0.1", + "license": "MIT", + "dependencies": { + "char-regex": "^2.0.0", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-watch-typeahead/node_modules/string-length/node_modules/char-regex": { + "version": "2.0.1", + "license": "MIT", + "engines": { + "node": ">=12.20" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi": { + "version": "7.0.1", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/jest-watch-typeahead/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@jest/test-result": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^27.5.1", + "string-length": "^4.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-watcher/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-watcher/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-watcher/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/jest-watcher/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-watcher/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "1.18.2", + "license": "MIT", + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/jose": { + "version": "4.13.2", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/js-sdsl": { + "version": "4.4.0", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "16.7.0", + "license": "MIT", + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "license": "MIT" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "license": "(AFL-2.1 OR BSD-3-Clause)" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/json5": { + "version": "2.2.3", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonld-context-parser": { + "version": "2.3.0", + "license": "MIT", + "dependencies": { + "@types/http-link-header": "^1.0.1", + "@types/node": "^18.0.0", + "canonicalize": "^1.0.1", + "cross-fetch": "^3.0.6", + "http-link-header": "^1.0.2", + "relative-to-absolute-iri": "^1.0.5" + }, + "bin": { + "jsonld-context-parse": "bin/jsonld-context-parse.js" + } + }, + "node_modules/jsonld-streaming-parser": { + "version": "3.2.0", + "license": "MIT", + "dependencies": { + "@bergos/jsonparse": "^1.4.0", + "@rdfjs/types": "*", + "@types/http-link-header": "^1.0.1", + "@types/readable-stream": "^2.3.13", + "buffer": "^6.0.3", + "canonicalize": "^1.0.1", + "http-link-header": "^1.0.2", + "jsonld-context-parser": "^2.3.0", + "rdf-data-factory": "^1.1.0", + "readable-stream": "^4.0.0" + } + }, + "node_modules/jsonld-streaming-parser/node_modules/readable-stream": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/jsonld-streaming-serializer": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "@types/readable-stream": "^2.3.13", + "buffer": "^6.0.3", + "jsonld-context-parser": "^2.0.0", + "readable-stream": "^4.0.0" + } + }, + "node_modules/jsonld-streaming-serializer/node_modules/readable-stream": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/jsonpointer": { + "version": "5.0.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.3", + "license": "MIT", + "dependencies": { + "array-includes": "^3.1.5", + "object.assign": "^4.1.3" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/klona": { + "version": "2.0.6", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/kuler": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/language-subtag-registry": { + "version": "0.3.22", + "license": "CC0-1.0" + }, + "node_modules/language-tags": { + "version": "1.0.5", + "license": "MIT", + "dependencies": { + "language-subtag-registry": "~0.3.2" + } + }, + "node_modules/launch-editor": { + "version": "2.6.0", + "license": "MIT", + "dependencies": { + "picocolors": "^1.0.0", + "shell-quote": "^1.7.3" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "license": "MIT" + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "license": "MIT", + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/loader-utils": { + "version": "2.0.4", + "license": "MIT", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "license": "MIT" + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "license": "MIT" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "license": "MIT" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "license": "MIT" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "license": "MIT" + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "license": "MIT" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "license": "MIT" + }, + "node_modules/logform": { + "version": "2.5.1", + "license": "MIT", + "dependencies": { + "@colors/colors": "1.5.0", + "@types/triple-beam": "^1.3.2", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", + "triple-beam": "^1.3.0" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lz-string": { + "version": "1.5.0", + "license": "MIT", + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "license": "MIT", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.0", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/makeerror": { + "version": "1.0.12", + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" + } + }, + "node_modules/mdn-data": { + "version": "2.0.4", + "license": "CC0-1.0" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/memfs": { + "version": "3.5.0", + "license": "Unlicense", + "dependencies": { + "fs-monkey": "^1.0.3" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/microdata-rdf-streaming-parser": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "htmlparser2": "^8.0.0", + "rdf-data-factory": "^1.1.0", + "readable-stream": "^4.1.0", + "relative-to-absolute-iri": "^1.0.2" + } + }, + "node_modules/microdata-rdf-streaming-parser/node_modules/dom-serializer": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/microdata-rdf-streaming-parser/node_modules/domhandler": { + "version": "5.0.3", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/microdata-rdf-streaming-parser/node_modules/domutils": { + "version": "3.0.1", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.1" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/microdata-rdf-streaming-parser/node_modules/entities": { + "version": "4.4.0", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/microdata-rdf-streaming-parser/node_modules/htmlparser2": { + "version": "8.0.2", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/microdata-rdf-streaming-parser/node_modules/readable-stream": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "license": "MIT", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "2.7.5", + "license": "MIT", + "dependencies": { + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv": { + "version": "8.12.0", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "license": "ISC" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "license": "MIT" + }, + "node_modules/multicast-dns": { + "version": "7.2.5", + "license": "MIT", + "dependencies": { + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/mz": { + "version": "2.7.0", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/n3": { + "version": "1.17.3", + "resolved": "https://registry.npmjs.org/n3/-/n3-1.17.3.tgz", + "integrity": "sha512-ZHc24eZi2GIJcJQVxtL6NT3g+mTHRNeTVfXWELzeUOirqLrh2AAyg0nfYZ/kryJWKFSCgO37DGB6Ok3qmGgEcA==", + "dependencies": { + "queue-microtask": "^1.1.2", + "readable-stream": "^4.0.0" + }, + "engines": { + "node": ">=12.0" + } + }, + "node_modules/n3/node_modules/readable-stream": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.6", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "license": "MIT" + }, + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "license": "MIT" + }, + "node_modules/negotiate": { + "version": "1.0.1" + }, + "node_modules/negotiator": { + "version": "0.6.3", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "license": "MIT" + }, + "node_modules/no-case": { + "version": "3.0.4", + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-fetch": { + "version": "2.6.7", + "license": "MIT", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "license": "MIT" + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "license": "BSD-2-Clause" + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/node-forge": { + "version": "1.3.1", + "license": "(BSD-3-Clause OR GPL-2.0)", + "engines": { + "node": ">= 6.13.0" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "license": "MIT" + }, + "node_modules/node-releases": { + "version": "2.0.10", + "license": "MIT" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/nwsapi": { + "version": "2.2.4", + "license": "MIT" + }, + "node_modules/object-assign": { + "version": "4.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.6", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.6", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.5", + "license": "MIT", + "dependencies": { + "array.prototype.reduce": "^1.0.5", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.hasown": { + "version": "1.1.2", + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.6", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "license": "MIT" + }, + "node_modules/on-finished": { + "version": "2.4.1", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/one-time": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "fn.name": "1.x.x" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "8.4.2", + "license": "MIT", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-retry": { + "version": "4.6.2", + "license": "MIT", + "dependencies": { + "@types/retry": "0.12.0", + "retry": "^0.13.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/param-case": { + "version": "3.0.4", + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "license": "MIT" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascal-case": { + "version": "3.1.2", + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "license": "MIT" + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "license": "MIT" + }, + "node_modules/path-type": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.5", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up": { + "version": "3.1.0", + "license": "MIT", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-up/node_modules/find-up": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/locate-path": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-up/node_modules/p-locate": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-attribute-case-insensitive": { + "version": "5.0.2", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-browser-comments": { + "version": "4.0.0", + "license": "CC0-1.0", + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "browserslist": ">=4", + "postcss": ">=8" + } + }, + "node_modules/postcss-calc": { + "version": "8.2.4", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.9", + "postcss-value-parser": "^4.2.0" + }, + "peerDependencies": { + "postcss": "^8.2.2" + } + }, + "node_modules/postcss-clamp": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": ">=7.6.0" + }, + "peerDependencies": { + "postcss": "^8.4.6" + } + }, + "node_modules/postcss-color-functional-notation": { + "version": "4.2.4", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-color-hex-alpha": { + "version": "8.0.4", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-color-rebeccapurple": { + "version": "7.1.1", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-colormin": { + "version": "5.3.1", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "colord": "^2.9.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-convert-values": { + "version": "5.1.3", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-custom-media": { + "version": "8.0.2", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-custom-properties": { + "version": "12.1.11", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "6.0.3", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.3" + } + }, + "node_modules/postcss-dir-pseudo-class": { + "version": "6.0.5", + "license": "CC0-1.0", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-discard-comments": { + "version": "5.1.2", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "5.1.0", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-empty": { + "version": "5.1.1", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "5.1.0", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-double-position-gradients": { + "version": "3.1.2", + "license": "CC0-1.0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-env-function": { + "version": "4.0.6", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-flexbugs-fixes": { + "version": "5.0.2", + "license": "MIT", + "peerDependencies": { + "postcss": "^8.1.4" + } + }, + "node_modules/postcss-focus-visible": { + "version": "6.0.4", + "license": "CC0-1.0", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-focus-within": { + "version": "5.0.4", + "license": "CC0-1.0", + "dependencies": { + "postcss-selector-parser": "^6.0.9" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-font-variant": { + "version": "5.0.0", + "license": "MIT", + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-gap-properties": { + "version": "3.0.5", + "license": "CC0-1.0", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-image-set-function": { + "version": "4.0.7", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-import": { + "version": "14.1.0", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-initial": { + "version": "4.0.1", + "license": "MIT", + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "license": "MIT", + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-lab-function": { + "version": "4.2.1", + "license": "CC0-1.0", + "dependencies": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-load-config": { + "version": "3.1.4", + "license": "MIT", + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-loader": { + "version": "6.2.1", + "license": "MIT", + "dependencies": { + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "postcss": "^7.0.0 || ^8.0.1", + "webpack": "^5.0.0" + } + }, + "node_modules/postcss-logical": { + "version": "5.0.4", + "license": "CC0-1.0", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-media-minmax": { + "version": "5.0.0", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "5.1.7", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "stylehacks": "^5.1.1" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-merge-rules": { + "version": "5.1.4", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0", + "cssnano-utils": "^3.1.0", + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "5.1.0", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "5.1.1", + "license": "MIT", + "dependencies": { + "colord": "^2.9.1", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-params": { + "version": "5.1.4", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "5.2.1", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "3.0.0", + "license": "ISC", + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-scope": { + "version": "3.0.0", + "license": "ISC", + "dependencies": { + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-modules-values": { + "version": "4.0.0", + "license": "ISC", + "dependencies": { + "icss-utils": "^5.0.0" + }, + "engines": { + "node": "^10 || ^12 || >= 14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/postcss-nested": { + "version": "6.0.0", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-nesting": { + "version": "10.2.0", + "license": "CC0-1.0", + "dependencies": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-normalize": { + "version": "10.0.1", + "license": "CC0-1.0", + "dependencies": { + "@csstools/normalize.css": "*", + "postcss-browser-comments": "^4", + "sanitize.css": "*" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "browserslist": ">= 4", + "postcss": ">= 8" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "5.1.0", + "license": "MIT", + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "5.1.0", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "5.1.1", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "5.1.1", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-string": { + "version": "5.1.0", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "5.1.0", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "5.1.1", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-url": { + "version": "5.1.0", + "license": "MIT", + "dependencies": { + "normalize-url": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "5.1.1", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-opacity-percentage": { + "version": "1.1.3", + "funding": [ + { + "type": "kofi", + "url": "https://ko-fi.com/mrcgrtz" + }, + { + "type": "liberapay", + "url": "https://liberapay.com/mrcgrtz" + } + ], + "license": "MIT", + "engines": { + "node": "^12 || ^14 || >=16" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-ordered-values": { + "version": "5.1.3", + "license": "MIT", + "dependencies": { + "cssnano-utils": "^3.1.0", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-overflow-shorthand": { + "version": "3.0.4", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-page-break": { + "version": "3.0.4", + "license": "MIT", + "peerDependencies": { + "postcss": "^8" + } + }, + "node_modules/postcss-place": { + "version": "7.0.5", + "license": "CC0-1.0", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-preset-env": { + "version": "7.8.3", + "license": "CC0-1.0", + "dependencies": { + "@csstools/postcss-cascade-layers": "^1.1.1", + "@csstools/postcss-color-function": "^1.1.1", + "@csstools/postcss-font-format-keywords": "^1.0.1", + "@csstools/postcss-hwb-function": "^1.0.2", + "@csstools/postcss-ic-unit": "^1.0.1", + "@csstools/postcss-is-pseudo-class": "^2.0.7", + "@csstools/postcss-nested-calc": "^1.0.0", + "@csstools/postcss-normalize-display-values": "^1.0.1", + "@csstools/postcss-oklab-function": "^1.1.1", + "@csstools/postcss-progressive-custom-properties": "^1.3.0", + "@csstools/postcss-stepped-value-functions": "^1.0.1", + "@csstools/postcss-text-decoration-shorthand": "^1.0.0", + "@csstools/postcss-trigonometric-functions": "^1.0.2", + "@csstools/postcss-unset-value": "^1.0.2", + "autoprefixer": "^10.4.13", + "browserslist": "^4.21.4", + "css-blank-pseudo": "^3.0.3", + "css-has-pseudo": "^3.0.4", + "css-prefers-color-scheme": "^6.0.3", + "cssdb": "^7.1.0", + "postcss-attribute-case-insensitive": "^5.0.2", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^4.2.4", + "postcss-color-hex-alpha": "^8.0.4", + "postcss-color-rebeccapurple": "^7.1.1", + "postcss-custom-media": "^8.0.2", + "postcss-custom-properties": "^12.1.10", + "postcss-custom-selectors": "^6.0.3", + "postcss-dir-pseudo-class": "^6.0.5", + "postcss-double-position-gradients": "^3.1.2", + "postcss-env-function": "^4.0.6", + "postcss-focus-visible": "^6.0.4", + "postcss-focus-within": "^5.0.4", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^3.0.5", + "postcss-image-set-function": "^4.0.7", + "postcss-initial": "^4.0.1", + "postcss-lab-function": "^4.2.1", + "postcss-logical": "^5.0.4", + "postcss-media-minmax": "^5.0.0", + "postcss-nesting": "^10.2.0", + "postcss-opacity-percentage": "^1.1.2", + "postcss-overflow-shorthand": "^3.0.4", + "postcss-page-break": "^3.0.4", + "postcss-place": "^7.0.5", + "postcss-pseudo-class-any-link": "^7.1.6", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^6.0.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-pseudo-class-any-link": { + "version": "7.1.6", + "license": "CC0-1.0", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "5.1.2", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "caniuse-api": "^3.0.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "5.1.0", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-replace-overflow-wrap": { + "version": "4.0.0", + "license": "MIT", + "peerDependencies": { + "postcss": "^8.0.3" + } + }, + "node_modules/postcss-selector-not": { + "version": "6.0.1", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.10" + }, + "engines": { + "node": "^12 || ^14 || >=16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + }, + "peerDependencies": { + "postcss": "^8.2" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.11", + "license": "MIT", + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "5.1.0", + "license": "MIT", + "dependencies": { + "postcss-value-parser": "^4.2.0", + "svgo": "^2.7.0" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-svgo/node_modules/commander": { + "version": "7.2.0", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/postcss-svgo/node_modules/css-tree": { + "version": "1.1.3", + "license": "MIT", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/postcss-svgo/node_modules/mdn-data": { + "version": "2.0.14", + "license": "CC0-1.0" + }, + "node_modules/postcss-svgo/node_modules/source-map": { + "version": "0.6.1", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-svgo/node_modules/svgo": { + "version": "2.8.0", + "license": "MIT", + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^4.1.3", + "css-tree": "^1.1.3", + "csso": "^4.2.0", + "picocolors": "^1.0.0", + "stable": "^0.1.8" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "5.1.1", + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.0.5" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "license": "MIT" + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-bytes": { + "version": "5.6.0", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pretty-error": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^3.0.0" + } + }, + "node_modules/pretty-format": { + "version": "27.5.1", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/process": { + "version": "0.11.10", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "license": "MIT" + }, + "node_modules/promise": { + "version": "8.3.0", + "license": "MIT", + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/promise-polyfill": { + "version": "1.1.6", + "license": "MIT" + }, + "node_modules/prompts": { + "version": "2.4.2", + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/prop-types/node_modules/react-is": { + "version": "16.13.1", + "license": "MIT" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/psl": { + "version": "1.9.0", + "license": "MIT" + }, + "node_modules/punycode": { + "version": "2.3.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "license": "MIT", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/raf": { + "version": "3.4.1", + "license": "MIT", + "dependencies": { + "performance-now": "^2.1.0" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.2", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rdf-data-factory": { + "version": "1.1.1", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*" + } + }, + "node_modules/rdf-isomorphic": { + "version": "1.3.1", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "hash.js": "^1.1.7", + "rdf-string": "^1.6.0", + "rdf-terms": "^1.7.0" + } + }, + "node_modules/rdf-js": { + "version": "4.0.2", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*" + } + }, + "node_modules/rdf-literal": { + "version": "1.3.1", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "rdf-data-factory": "^1.1.0" + } + }, + "node_modules/rdf-object": { + "version": "1.13.2", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "jsonld-context-parser": "^2.0.2", + "rdf-data-factory": "^1.1.0", + "rdf-string": "^1.6.0", + "streamify-array": "^1.0.1" + } + }, + "node_modules/rdf-parse": { + "version": "2.3.2", + "license": "MIT", + "dependencies": { + "@comunica/actor-http-fetch": "^2.0.1", + "@comunica/actor-http-proxy": "^2.0.1", + "@comunica/actor-rdf-parse-html": "^2.0.1", + "@comunica/actor-rdf-parse-html-microdata": "^2.0.1", + "@comunica/actor-rdf-parse-html-rdfa": "^2.0.1", + "@comunica/actor-rdf-parse-html-script": "^2.0.1", + "@comunica/actor-rdf-parse-jsonld": "^2.0.1", + "@comunica/actor-rdf-parse-n3": "^2.0.1", + "@comunica/actor-rdf-parse-rdfxml": "^2.0.1", + "@comunica/actor-rdf-parse-shaclc": "^2.6.2", + "@comunica/actor-rdf-parse-xml-rdfa": "^2.0.1", + "@comunica/bus-http": "^2.0.1", + "@comunica/bus-init": "^2.0.1", + "@comunica/bus-rdf-parse": "^2.0.1", + "@comunica/bus-rdf-parse-html": "^2.0.1", + "@comunica/config-query-sparql": "^2.0.1", + "@comunica/core": "^2.0.1", + "@comunica/mediator-combine-pipeline": "^2.0.1", + "@comunica/mediator-combine-union": "^2.0.1", + "@comunica/mediator-number": "^2.0.1", + "@comunica/mediator-race": "^2.0.1", + "@rdfjs/types": "*", + "readable-stream": "^4.3.0", + "stream-to-string": "^1.2.0" + } + }, + "node_modules/rdf-parse/node_modules/readable-stream": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/rdf-quad": { + "version": "1.5.0", + "license": "MIT", + "dependencies": { + "rdf-data-factory": "^1.0.1", + "rdf-literal": "^1.2.0", + "rdf-string": "^1.5.0" + } + }, + "node_modules/rdf-store-stream": { + "version": "1.3.1", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "n3": "^1.11.1" + } + }, + "node_modules/rdf-streaming-store": { + "version": "1.1.0", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "@types/n3": "^1.10.4", + "@types/readable-stream": "^2.3.15", + "n3": "^1.16.3", + "rdf-string": "^1.6.2", + "rdf-terms": "^1.9.1", + "readable-stream": "^4.3.0" + } + }, + "node_modules/rdf-streaming-store/node_modules/readable-stream": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/rdf-string": { + "version": "1.6.3", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "rdf-data-factory": "^1.1.0" + } + }, + "node_modules/rdf-string-ttl": { + "version": "1.3.2", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "rdf-data-factory": "^1.1.0" + } + }, + "node_modules/rdf-terms": { + "version": "1.9.1", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "rdf-data-factory": "^1.1.0", + "rdf-string": "^1.6.0" + } + }, + "node_modules/rdfa-streaming-parser": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "htmlparser2": "^8.0.0", + "rdf-data-factory": "^1.1.0", + "readable-stream": "^4.0.0", + "relative-to-absolute-iri": "^1.0.2" + } + }, + "node_modules/rdfa-streaming-parser/node_modules/dom-serializer": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/rdfa-streaming-parser/node_modules/domhandler": { + "version": "5.0.3", + "license": "BSD-2-Clause", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/rdfa-streaming-parser/node_modules/domutils": { + "version": "3.0.1", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.1" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/rdfa-streaming-parser/node_modules/entities": { + "version": "4.4.0", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/rdfa-streaming-parser/node_modules/htmlparser2": { + "version": "8.0.2", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.0.1", + "entities": "^4.4.0" + } + }, + "node_modules/rdfa-streaming-parser/node_modules/readable-stream": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/rdfxml-streaming-parser": { + "version": "2.2.2", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "@types/readable-stream": "^2.3.13", + "buffer": "^6.0.3", + "rdf-data-factory": "^1.1.0", + "readable-stream": "^4.0.0", + "relative-to-absolute-iri": "^1.0.0", + "saxes": "^6.0.0", + "validate-iri": "^1.0.0" + } + }, + "node_modules/rdfxml-streaming-parser/node_modules/readable-stream": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/rdfxml-streaming-parser/node_modules/saxes": { + "version": "6.0.0", + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/react": { + "version": "18.2.0", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-app-polyfill": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "core-js": "^3.19.2", + "object-assign": "^4.1.1", + "promise": "^8.1.0", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.9", + "whatwg-fetch": "^3.6.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-dev-utils": { + "version": "12.0.1", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.16.0", + "address": "^1.1.2", + "browserslist": "^4.18.1", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "detect-port-alt": "^1.1.6", + "escape-string-regexp": "^4.0.0", + "filesize": "^8.0.6", + "find-up": "^5.0.0", + "fork-ts-checker-webpack-plugin": "^6.5.0", + "global-modules": "^2.0.0", + "globby": "^11.0.4", + "gzip-size": "^6.0.0", + "immer": "^9.0.7", + "is-root": "^2.1.0", + "loader-utils": "^3.2.0", + "open": "^8.4.0", + "pkg-up": "^3.1.0", + "prompts": "^2.4.2", + "react-error-overlay": "^6.0.11", + "recursive-readdir": "^2.2.2", + "shell-quote": "^1.7.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/react-dev-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/react-dev-utils/node_modules/chalk": { + "version": "4.1.2", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/react-dev-utils/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/react-dev-utils/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/react-dev-utils/node_modules/escape-string-regexp": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/react-dev-utils/node_modules/loader-utils": { + "version": "3.2.1", + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/react-dev-utils/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-error-overlay": { + "version": "6.0.11", + "license": "MIT" + }, + "node_modules/react-is": { + "version": "17.0.2", + "license": "MIT" + }, + "node_modules/react-refresh": { + "version": "0.11.0", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-router": { + "version": "6.10.0", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.5.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.10.0", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.5.0", + "react-router": "6.10.0" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/react-scripts": { + "version": "5.0.1", + "license": "MIT", + "dependencies": { + "@babel/core": "^7.16.0", + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", + "@svgr/webpack": "^5.5.0", + "babel-jest": "^27.4.2", + "babel-loader": "^8.2.3", + "babel-plugin-named-asset-import": "^0.3.8", + "babel-preset-react-app": "^10.0.1", + "bfj": "^7.0.2", + "browserslist": "^4.18.1", + "camelcase": "^6.2.1", + "case-sensitive-paths-webpack-plugin": "^2.4.0", + "css-loader": "^6.5.1", + "css-minimizer-webpack-plugin": "^3.2.0", + "dotenv": "^10.0.0", + "dotenv-expand": "^5.1.0", + "eslint": "^8.3.0", + "eslint-config-react-app": "^7.0.1", + "eslint-webpack-plugin": "^3.1.1", + "file-loader": "^6.2.0", + "fs-extra": "^10.0.0", + "html-webpack-plugin": "^5.5.0", + "identity-obj-proxy": "^3.0.0", + "jest": "^27.4.3", + "jest-resolve": "^27.4.2", + "jest-watch-typeahead": "^1.0.0", + "mini-css-extract-plugin": "^2.4.5", + "postcss": "^8.4.4", + "postcss-flexbugs-fixes": "^5.0.2", + "postcss-loader": "^6.2.1", + "postcss-normalize": "^10.0.1", + "postcss-preset-env": "^7.0.1", + "prompts": "^2.4.2", + "react-app-polyfill": "^3.0.0", + "react-dev-utils": "^12.0.1", + "react-refresh": "^0.11.0", + "resolve": "^1.20.0", + "resolve-url-loader": "^4.0.0", + "sass-loader": "^12.3.0", + "semver": "^7.3.5", + "source-map-loader": "^3.0.0", + "style-loader": "^3.3.1", + "tailwindcss": "^3.0.2", + "terser-webpack-plugin": "^5.2.5", + "webpack": "^5.64.4", + "webpack-dev-server": "^4.6.0", + "webpack-manifest-plugin": "^4.0.2", + "workbox-webpack-plugin": "^6.4.1" + }, + "bin": { + "react-scripts": "bin/react-scripts.js" + }, + "engines": { + "node": ">=14.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" + }, + "peerDependencies": { + "react": ">= 16", + "typescript": "^3.2.1 || ^4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/react-transition-group": { + "version": "4.4.5", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", + "integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==", + "dependencies": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + }, + "peerDependencies": { + "react": ">=16.6.0", + "react-dom": ">=16.6.0" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readable-stream-node-to-web": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/readable-web-to-node-stream": { + "version": "3.0.2", + "license": "MIT", + "dependencies": { + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "license": "MIT", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/recursive-readdir": { + "version": "2.2.3", + "license": "MIT", + "dependencies": { + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "license": "MIT" + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.0", + "license": "MIT", + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "license": "MIT" + }, + "node_modules/regenerator-transform": { + "version": "0.15.1", + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-parser": { + "version": "2.2.11", + "license": "MIT" + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "license": "MIT", + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "license": "BSD-2-Clause", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/relative-to-absolute-iri": { + "version": "1.0.7", + "license": "MIT" + }, + "node_modules/renderkid": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "css-select": "^4.1.3", + "dom-converter": "^0.2.0", + "htmlparser2": "^6.1.0", + "lodash": "^4.17.21", + "strip-ansi": "^6.0.1" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/resolve": { + "version": "1.22.2", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-url-loader": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^7.0.35", + "source-map": "0.6.1" + }, + "engines": { + "node": ">=8.9" + }, + "peerDependencies": { + "rework": "1.0.1", + "rework-visit": "1.0.0" + }, + "peerDependenciesMeta": { + "rework": { + "optional": true + }, + "rework-visit": { + "optional": true + } + } + }, + "node_modules/resolve-url-loader/node_modules/picocolors": { + "version": "0.2.1", + "license": "ISC" + }, + "node_modules/resolve-url-loader/node_modules/postcss": { + "version": "7.0.39", + "license": "MIT", + "dependencies": { + "picocolors": "^0.2.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/resolve-url-loader/node_modules/source-map": { + "version": "0.6.1", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve.exports": { + "version": "1.1.1", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/retry": { + "version": "0.13.1", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "2.79.1", + "license": "MIT", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-terser": { + "version": "7.0.2", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.10.4", + "jest-worker": "^26.2.1", + "serialize-javascript": "^4.0.0", + "terser": "^5.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/rollup-plugin-terser/node_modules/jest-worker": { + "version": "26.6.2", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/serialize-javascript": { + "version": "4.0.0", + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/rollup-plugin-terser/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-stable-stringify": { + "version": "2.4.3", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "license": "MIT" + }, + "node_modules/sanitize.css": { + "version": "13.0.0", + "license": "CC0-1.0" + }, + "node_modules/sass-loader": { + "version": "12.6.0", + "license": "MIT", + "dependencies": { + "klona": "^2.0.4", + "neo-async": "^2.6.2" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "fibers": ">= 3.1.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "sass": "^1.3.0", + "sass-embedded": "*", + "webpack": "^5.0.0" + }, + "peerDependenciesMeta": { + "fibers": { + "optional": true + }, + "node-sass": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + } + } + }, + "node_modules/sax": { + "version": "1.2.4", + "license": "ISC" + }, + "node_modules/saxes": { + "version": "5.0.1", + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/scheduler": { + "version": "0.23.0", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/schema-utils": { + "version": "3.1.1", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/selfsigned": { + "version": "2.1.1", + "license": "MIT", + "dependencies": { + "node-forge": "^1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "7.4.0", + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "license": "ISC" + }, + "node_modules/send": { + "version": "0.18.0", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "license": "MIT" + }, + "node_modules/serialize-javascript": { + "version": "6.0.1", + "license": "BSD-3-Clause", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "license": "MIT", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "license": "ISC" + }, + "node_modules/serve-index/node_modules/ms": { + "version": "2.0.0", + "license": "MIT" + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "license": "ISC" + }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "license": "MIT", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "license": "ISC" + }, + "node_modules/shaclc-parse": { + "version": "1.3.0", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "^1.1.0", + "n3": "^1.16.3" + } + }, + "node_modules/shaclc-write": { + "version": "1.4.2", + "license": "MIT", + "dependencies": { + "@jeswr/prefixcc": "^1.2.1", + "n3": "^1.16.3", + "rdf-string-ttl": "^1.3.2" + } + }, + "node_modules/shallowequal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", + "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "license": "ISC" + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "license": "MIT" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "license": "MIT" + }, + "node_modules/slash": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/sockjs": { + "version": "0.3.24", + "license": "MIT", + "dependencies": { + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" + } + }, + "node_modules/sockjs/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "license": "MIT" + }, + "node_modules/source-map": { + "version": "0.7.4", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-loader": { + "version": "3.0.2", + "license": "MIT", + "dependencies": { + "abab": "^2.0.5", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "license": "MIT" + }, + "node_modules/spark-md5": { + "version": "3.0.2", + "license": "(WTFPL OR MIT)" + }, + "node_modules/sparqlalgebrajs": { + "version": "4.0.5", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "@types/sparqljs": "^3.1.3", + "fast-deep-equal": "^3.1.3", + "minimist": "^1.2.6", + "rdf-data-factory": "^1.1.0", + "rdf-isomorphic": "^1.3.0", + "rdf-string": "^1.6.0", + "sparqljs": "^3.6.1" + }, + "bin": { + "sparqlalgebrajs": "bin/sparqlalgebrajs.js" + } + }, + "node_modules/sparqlee": { + "version": "2.3.0", + "license": "MIT", + "dependencies": { + "@comunica/bindings-factory": "^2.0.1", + "@rdfjs/types": "*", + "@types/lru-cache": "^5.1.1", + "@types/spark-md5": "^3.0.2", + "@types/uuid": "^8.0.0", + "bignumber.js": "^9.0.1", + "hash.js": "^1.1.7", + "lru-cache": "^6.0.0", + "rdf-data-factory": "^1.1.0", + "rdf-string": "^1.6.0", + "relative-to-absolute-iri": "^1.0.6", + "spark-md5": "^3.0.1", + "sparqlalgebrajs": "^4.0.3", + "uuid": "^8.0.0" + }, + "bin": { + "sparqlee": "dist/bin/sparqlee.js" + } + }, + "node_modules/sparqlee/node_modules/@types/lru-cache": { + "version": "5.1.1", + "license": "MIT" + }, + "node_modules/sparqlee/node_modules/@types/uuid": { + "version": "8.3.4", + "license": "MIT" + }, + "node_modules/sparqlee/node_modules/lru-cache": { + "version": "6.0.0", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sparqlee/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/sparqlee/node_modules/yallist": { + "version": "4.0.0", + "license": "ISC" + }, + "node_modules/sparqljs": { + "version": "3.6.2", + "license": "MIT", + "dependencies": { + "rdf-data-factory": "^1.1.1" + }, + "bin": { + "sparqljs": "bin/sparql-to-json" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/sparqljson-parse": { + "version": "2.2.0", + "license": "MIT", + "dependencies": { + "@bergos/jsonparse": "^1.4.1", + "@rdfjs/types": "*", + "@types/readable-stream": "^2.3.13", + "rdf-data-factory": "^1.1.0", + "readable-stream": "^4.0.0" + } + }, + "node_modules/sparqljson-parse/node_modules/readable-stream": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/sparqljson-to-tree": { + "version": "3.0.1", + "license": "MIT", + "dependencies": { + "rdf-literal": "^1.2.0", + "sparqljson-parse": "^2.0.0" + } + }, + "node_modules/sparqlxml-parse": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "@rdfjs/types": "*", + "@types/readable-stream": "^2.3.13", + "buffer": "^6.0.3", + "rdf-data-factory": "^1.1.0", + "readable-stream": "^4.0.0", + "saxes": "^6.0.0" + } + }, + "node_modules/sparqlxml-parse/node_modules/readable-stream": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/sparqlxml-parse/node_modules/saxes": { + "version": "6.0.0", + "license": "ISC", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=v12.22.7" + } + }, + "node_modules/spdy": { + "version": "4.0.2", + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "license": "BSD-3-Clause" + }, + "node_modules/stable": { + "version": "0.1.8", + "license": "MIT" + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/stack-utils": { + "version": "2.0.6", + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/stackframe": { + "version": "1.3.4", + "license": "MIT" + }, + "node_modules/statuses": { + "version": "2.0.1", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stop-iteration-iterator": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "internal-slot": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/stream-to-string": { + "version": "1.2.1", + "license": "MIT", + "dependencies": { + "promise-polyfill": "^1.1.6" + } + }, + "node_modules/streamify-array": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/streamify-string": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "license": "MIT", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-natural-compare": { + "version": "3.0.1", + "license": "MIT" + }, + "node_modules/string-width": { + "version": "4.2.3", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "license": "MIT" + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.8", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "regexp.prototype.flags": "^1.4.3", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.7", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.6", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.6", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringify-object": { + "version": "3.3.0", + "license": "BSD-2-Clause", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-comments": { + "version": "2.0.1", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "license": "MIT", + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-loader": { + "version": "3.3.2", + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, + "node_modules/styled-components": { + "version": "6.1.8", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.8.tgz", + "integrity": "sha512-PQ6Dn+QxlWyEGCKDS71NGsXoVLKfE1c3vApkvDYS5KAK+V8fNWGhbSUEo9Gg2iaID2tjLXegEW3bZDUGpofRWw==", + "dependencies": { + "@emotion/is-prop-valid": "1.2.1", + "@emotion/unitless": "0.8.0", + "@types/stylis": "4.2.0", + "css-to-react-native": "3.2.0", + "csstype": "3.1.2", + "postcss": "8.4.31", + "shallowequal": "1.1.0", + "stylis": "4.3.1", + "tslib": "2.5.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/styled-components" + }, + "peerDependencies": { + "react": ">= 16.8.0", + "react-dom": ">= 16.8.0" + } + }, + "node_modules/styled-components/node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "node_modules/styled-components/node_modules/stylis": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.3.1.tgz", + "integrity": "sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ==" + }, + "node_modules/stylehacks": { + "version": "5.1.1", + "license": "MIT", + "dependencies": { + "browserslist": "^4.21.4", + "postcss-selector-parser": "^6.0.4" + }, + "engines": { + "node": "^10 || ^12 || >=14.0" + }, + "peerDependencies": { + "postcss": "^8.2.15" + } + }, + "node_modules/stylis": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz", + "integrity": "sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==" + }, + "node_modules/sucrase": { + "version": "3.32.0", + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sucrase/node_modules/commander": { + "version": "4.1.1", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "7.1.6", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "license": "MIT", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/has-flag": { + "version": "4.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks/node_modules/supports-color": { + "version": "7.2.0", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "license": "MIT" + }, + "node_modules/svgo": { + "version": "1.3.2", + "license": "MIT", + "dependencies": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/svgo/node_modules/css-select": { + "version": "2.1.0", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "node_modules/svgo/node_modules/css-what": { + "version": "3.4.2", + "license": "BSD-2-Clause", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/svgo/node_modules/dom-serializer": { + "version": "0.2.2", + "license": "MIT", + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/svgo/node_modules/domutils": { + "version": "1.7.0", + "license": "BSD-2-Clause", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/svgo/node_modules/domutils/node_modules/domelementtype": { + "version": "1.3.1", + "license": "BSD-2-Clause" + }, + "node_modules/svgo/node_modules/nth-check": { + "version": "1.0.2", + "license": "BSD-2-Clause", + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "license": "MIT" + }, + "node_modules/tailwindcss": { + "version": "3.3.1", + "license": "MIT", + "dependencies": { + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "color-name": "^1.1.4", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.2.12", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.17.2", + "lilconfig": "^2.0.6", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.0.9", + "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.11", + "postcss-value-parser": "^4.2.0", + "quick-lru": "^5.1.1", + "resolve": "^1.22.1", + "sucrase": "^3.29.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=12.13.0" + }, + "peerDependencies": { + "postcss": "^8.0.9" + } + }, + "node_modules/tailwindcss/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/tapable": { + "version": "2.2.1", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/temp-dir": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/tempy": { + "version": "0.6.0", + "license": "MIT", + "dependencies": { + "is-stream": "^2.0.0", + "temp-dir": "^2.0.0", + "type-fest": "^0.16.0", + "unique-string": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tempy/node_modules/type-fest": { + "version": "0.16.0", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.16.9", + "license": "BSD-2-Clause", + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.7", + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.17", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.16.5" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "license": "MIT" + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "license": "ISC", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/text-hex": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/text-table": { + "version": "0.2.0", + "license": "MIT" + }, + "node_modules/thenify": { + "version": "3.3.1", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/throat": { + "version": "6.0.2", + "license": "MIT" + }, + "node_modules/thunky": { + "version": "1.1.0", + "license": "MIT" + }, + "node_modules/tmpl": { + "version": "1.0.5", + "license": "BSD-3-Clause" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tough-cookie": { + "version": "4.1.2", + "license": "BSD-3-Clause", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.2.0", + "url-parse": "^1.5.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.2.0", + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "2.1.0", + "license": "MIT", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/triple-beam": { + "version": "1.3.0", + "license": "MIT" + }, + "node_modules/tryer": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "license": "Apache-2.0" + }, + "node_modules/tsconfig-paths": { + "version": "3.14.2", + "license": "MIT", + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tsconfig-paths/node_modules/strip-bom": { + "version": "3.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/tslib": { + "version": "2.5.0", + "license": "0BSD" + }, + "node_modules/tsutils": { + "version": "3.21.0", + "license": "MIT", + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/tsutils/node_modules/tslib": { + "version": "1.14.1", + "license": "0BSD" + }, + "node_modules/type-check": { + "version": "0.4.0", + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/typescript": { + "version": "4.9.5", + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/unique-string": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "crypto-random-string": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "license": "MIT" + }, + "node_modules/upath": { + "version": "1.2.0", + "license": "MIT", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/uritemplate": { + "version": "0.3.4" + }, + "node_modules/url-parse": { + "version": "1.5.10", + "license": "MIT", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "license": "MIT" + }, + "node_modules/util.promisify": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/utila": { + "version": "0.4.0", + "license": "MIT" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-to-istanbul": { + "version": "8.1.1", + "license": "ISC", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/validate-iri": { + "version": "1.0.1", + "license": "MIT" + }, + "node_modules/vary": { + "version": "1.1.2", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/walker": { + "version": "1.0.8", + "license": "Apache-2.0", + "dependencies": { + "makeerror": "1.0.12" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "license": "MIT", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/web-streams-ponyfill": { + "version": "1.4.2", + "license": "MIT" + }, + "node_modules/web-vitals": { + "version": "2.1.4", + "license": "Apache-2.0" + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "license": "BSD-2-Clause", + "engines": { + "node": ">=10.4" + } + }, + "node_modules/webpack": { + "version": "5.79.0", + "license": "MIT", + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.0", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.7", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-middleware": { + "version": "5.3.3", + "license": "MIT", + "dependencies": { + "colorette": "^2.0.10", + "memfs": "^3.4.3", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv": { + "version": "8.12.0", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { + "version": "5.1.0", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/webpack-dev-middleware/node_modules/schema-utils": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server": { + "version": "4.13.2", + "license": "MIT", + "dependencies": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.1", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^2.0.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "launch-editor": "^2.6.0", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.1.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.24", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.13.0" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.37.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack": { + "optional": true + }, + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ajv": { + "version": "8.12.0", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-server/node_modules/ajv-keywords": { + "version": "5.1.0", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "4.0.0", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-dev-server/node_modules/ws": { + "version": "8.13.0", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/webpack-manifest-plugin": { + "version": "4.1.1", + "license": "MIT", + "dependencies": { + "tapable": "^2.0.0", + "webpack-sources": "^2.2.0" + }, + "engines": { + "node": ">=12.22.0" + }, + "peerDependencies": { + "webpack": "^4.44.2 || ^5.47.0" + } + }, + "node_modules/webpack-manifest-plugin/node_modules/source-map": { + "version": "0.6.1", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-manifest-plugin/node_modules/webpack-sources": { + "version": "2.3.1", + "license": "MIT", + "dependencies": { + "source-list-map": "^2.0.1", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "license": "MIT", + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "license": "Apache-2.0", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "license": "Apache-2.0", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "license": "MIT", + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.4.24", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/whatwg-fetch": { + "version": "3.6.2", + "license": "MIT" + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "license": "MIT" + }, + "node_modules/whatwg-url": { + "version": "8.7.0", + "license": "MIT", + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/which": { + "version": "2.0.2", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "license": "MIT", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.9", + "license": "MIT", + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/winston": { + "version": "3.8.2", + "license": "MIT", + "dependencies": { + "@colors/colors": "1.5.0", + "@dabh/diagnostics": "^2.0.2", + "async": "^3.2.3", + "is-stream": "^2.0.0", + "logform": "^2.4.0", + "one-time": "^1.0.0", + "readable-stream": "^3.4.0", + "safe-stable-stringify": "^2.3.1", + "stack-trace": "0.0.x", + "triple-beam": "^1.3.0", + "winston-transport": "^4.5.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston-transport": { + "version": "4.5.0", + "license": "MIT", + "dependencies": { + "logform": "^2.3.2", + "readable-stream": "^3.6.0", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 6.4.0" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workbox-background-sync": { + "version": "6.5.4", + "license": "MIT", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-broadcast-update": { + "version": "6.5.4", + "license": "MIT", + "dependencies": { + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-build": { + "version": "6.5.4", + "license": "MIT", + "dependencies": { + "@apideck/better-ajv-errors": "^0.3.1", + "@babel/core": "^7.11.1", + "@babel/preset-env": "^7.11.0", + "@babel/runtime": "^7.11.2", + "@rollup/plugin-babel": "^5.2.0", + "@rollup/plugin-node-resolve": "^11.2.1", + "@rollup/plugin-replace": "^2.4.1", + "@surma/rollup-plugin-off-main-thread": "^2.2.3", + "ajv": "^8.6.0", + "common-tags": "^1.8.0", + "fast-json-stable-stringify": "^2.1.0", + "fs-extra": "^9.0.1", + "glob": "^7.1.6", + "lodash": "^4.17.20", + "pretty-bytes": "^5.3.0", + "rollup": "^2.43.1", + "rollup-plugin-terser": "^7.0.0", + "source-map": "^0.8.0-beta.0", + "stringify-object": "^3.3.0", + "strip-comments": "^2.0.1", + "tempy": "^0.6.0", + "upath": "^1.2.0", + "workbox-background-sync": "6.5.4", + "workbox-broadcast-update": "6.5.4", + "workbox-cacheable-response": "6.5.4", + "workbox-core": "6.5.4", + "workbox-expiration": "6.5.4", + "workbox-google-analytics": "6.5.4", + "workbox-navigation-preload": "6.5.4", + "workbox-precaching": "6.5.4", + "workbox-range-requests": "6.5.4", + "workbox-recipes": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4", + "workbox-streams": "6.5.4", + "workbox-sw": "6.5.4", + "workbox-window": "6.5.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/workbox-build/node_modules/@apideck/better-ajv-errors": { + "version": "0.3.6", + "license": "MIT", + "dependencies": { + "json-schema": "^0.4.0", + "jsonpointer": "^5.0.0", + "leven": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "ajv": ">=8" + } + }, + "node_modules/workbox-build/node_modules/ajv": { + "version": "8.12.0", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/workbox-build/node_modules/fs-extra": { + "version": "9.1.0", + "license": "MIT", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/workbox-build/node_modules/json-schema-traverse": { + "version": "1.0.0", + "license": "MIT" + }, + "node_modules/workbox-build/node_modules/source-map": { + "version": "0.8.0-beta.0", + "license": "BSD-3-Clause", + "dependencies": { + "whatwg-url": "^7.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/workbox-build/node_modules/tr46": { + "version": "1.0.1", + "license": "MIT", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/workbox-build/node_modules/webidl-conversions": { + "version": "4.0.2", + "license": "BSD-2-Clause" + }, + "node_modules/workbox-build/node_modules/whatwg-url": { + "version": "7.1.0", + "license": "MIT", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/workbox-cacheable-response": { + "version": "6.5.4", + "license": "MIT", + "dependencies": { + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-core": { + "version": "6.5.4", + "license": "MIT" + }, + "node_modules/workbox-expiration": { + "version": "6.5.4", + "license": "MIT", + "dependencies": { + "idb": "^7.0.1", + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-google-analytics": { + "version": "6.5.4", + "license": "MIT", + "dependencies": { + "workbox-background-sync": "6.5.4", + "workbox-core": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4" + } + }, + "node_modules/workbox-navigation-preload": { + "version": "6.5.4", + "license": "MIT", + "dependencies": { + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-precaching": { + "version": "6.5.4", + "license": "MIT", + "dependencies": { + "workbox-core": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4" + } + }, + "node_modules/workbox-range-requests": { + "version": "6.5.4", + "license": "MIT", + "dependencies": { + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-recipes": { + "version": "6.5.4", + "license": "MIT", + "dependencies": { + "workbox-cacheable-response": "6.5.4", + "workbox-core": "6.5.4", + "workbox-expiration": "6.5.4", + "workbox-precaching": "6.5.4", + "workbox-routing": "6.5.4", + "workbox-strategies": "6.5.4" + } + }, + "node_modules/workbox-routing": { + "version": "6.5.4", + "license": "MIT", + "dependencies": { + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-strategies": { + "version": "6.5.4", + "license": "MIT", + "dependencies": { + "workbox-core": "6.5.4" + } + }, + "node_modules/workbox-streams": { + "version": "6.5.4", + "license": "MIT", + "dependencies": { + "workbox-core": "6.5.4", + "workbox-routing": "6.5.4" + } + }, + "node_modules/workbox-sw": { + "version": "6.5.4", + "license": "MIT" + }, + "node_modules/workbox-webpack-plugin": { + "version": "6.5.4", + "license": "MIT", + "dependencies": { + "fast-json-stable-stringify": "^2.1.0", + "pretty-bytes": "^5.4.1", + "upath": "^1.2.0", + "webpack-sources": "^1.4.3", + "workbox-build": "6.5.4" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "webpack": "^4.4.0 || ^5.9.0" + } + }, + "node_modules/workbox-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/workbox-webpack-plugin/node_modules/webpack-sources": { + "version": "1.4.3", + "license": "MIT", + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/workbox-window": { + "version": "6.5.4", + "license": "MIT", + "dependencies": { + "@types/trusted-types": "^2.0.2", + "workbox-core": "6.5.4" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "license": "MIT" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.5.9", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "license": "Apache-2.0" + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "license": "MIT" + }, + "node_modules/y18n": { + "version": "5.0.8", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "license": "ISC" + }, + "node_modules/yaml": { + "version": "1.10.2", + "license": "ISC", + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "license": "MIT", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/demo/data/demo/public/authorizationsite/package.json b/demo/data/demo/public/authorizationsite/package.json new file mode 100644 index 00000000..03ca7c5f --- /dev/null +++ b/demo/data/demo/public/authorizationsite/package.json @@ -0,0 +1,47 @@ +{ + "name": "react-template", + "version": "0.1.0", + "private": true, + "dependencies": { + "@comunica/query-sparql": "^2.6.9", + "@emotion/react": "^11.11.4", + "@emotion/styled": "^11.11.0", + "@inrupt/solid-client-authn-browser": "^1.14.0", + "@mui/material": "^5.15.14", + "@mui/styled-engine-sc": "^6.0.0-alpha.18", + "@rdfjs/types": "^1.1.0", + "@testing-library/jest-dom": "^5.16.5", + "@testing-library/react": "^13.4.0", + "@testing-library/user-event": "^13.5.0", + "n3": "^1.17.3", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-router-dom": "^6.10.0", + "react-scripts": "5.0.1", + "styled-components": "^6.1.8", + "uuid": "^9.0.1", + "web-vitals": "^2.1.4" + }, + "scripts": { + "start": "react-scripts start", + "build": "BUILD_PATH='./dist' react-scripts build" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/demo/data/demo/public/authorizationsite/public/example_policy.jsonld b/demo/data/demo/public/authorizationsite/public/example_policy.jsonld new file mode 100644 index 00000000..cd35af9a --- /dev/null +++ b/demo/data/demo/public/authorizationsite/public/example_policy.jsonld @@ -0,0 +1,41 @@ +{ + "@context": "http://www.w3.org/ns/odrl/2/", + "@type": "Agreement", + "uid": "urn:ucp:policy:b96c8911-a307-47ee-a5bc-a167509050e6", + "permission": { + "@type": "Permission", + "uid": "urn:ucp:rule:40e8146e-25c7-4c9e-bac2-f6b45173cd08", + "action": "read", + "target": { "@id": "http://localhost:3000/ruben/private/derived/age" }, + "assignee": { "@id": "http://localhost:3000/demo/public/vendor" }, + "constraint": [ + { + "uid": "urn:ucp:constraint:fa26b956-42ce-4be0-aa83-91890e23cf53", + "leftOperand": "dateTime", + "operator": "gt", + "rightOperand": { + "@value": "2024-03-27T14:01:54.693Z", + "@type": "http://www.w3.org/2001/XMLSchema#dateTime" + } + }, + { + "uid": "urn:ucp:constraint:29477229-e3e6-44db-8739-9c4c9cad025d", + "leftOperand": "dateTime", + "operator": "lt", + "rightOperand": { + "@value": "2024-04-10T14:01:54.693Z", + "@type": "http://www.w3.org/2001/XMLSchema#dateTime" + } + }, + { + "uid": "urn:ucp:constraint:cc9eb2c7-c948-4bfa-82cf-ab5822b7e4f1", + "leftOperand": "purpose", + "operator": "eq", + "rightOperand": {"@id": "urn:solidlab:uma:claims:purpose:age-verification"} + } + + ] + } +} + + \ No newline at end of file diff --git a/demo/data/demo/public/authorizationsite/public/example_policy.nq b/demo/data/demo/public/authorizationsite/public/example_policy.nq new file mode 100644 index 00000000..ba2e80c4 --- /dev/null +++ b/demo/data/demo/public/authorizationsite/public/example_policy.nq @@ -0,0 +1,18 @@ + . + . + . + . + . + . + . + . + . + . + . + "2024-03-27T14:52:08.637Z"^^ . + . + . + "2024-04-10T14:52:08.637Z"^^ . + . + . + "urn:solidlab:uma:claims:purpose:age-verification" . diff --git a/demo/data/demo/public/authorizationsite/public/example_policy.ttl b/demo/data/demo/public/authorizationsite/public/example_policy.ttl new file mode 100644 index 00000000..e1d7aa50 --- /dev/null +++ b/demo/data/demo/public/authorizationsite/public/example_policy.ttl @@ -0,0 +1,29 @@ +@prefix odrl: . + + + a odrl:Agreement ; + odrl:permission . + + + a odrl:Permission; + odrl:action odrl:read; + odrl:target ; + odrl:assignee ; + odrl:constraint ; + odrl:constraint ; + odrl:constraint . + + + odrl:leftOperand odrl:dateTime ; + odrl:operator odrl:gt ; + odrl:rightOperand "2024-03-27T14:01:54.693Z"^^ . + + + odrl:leftOperand odrl:dateTime ; + odrl:operator odrl:lt ; +odrl:rightOperand "2024-04-10T14:01:54.693Z"^^ . + + + odrl:leftOperand odrl:purpose ; + odrl:operator odrl:eq ; + odrl:rightOperand "urn:solidlab:uma:claims:purpose:age-verification" . diff --git a/demo/data/demo/public/authorizationsite/public/favicon.ico b/demo/data/demo/public/authorizationsite/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 zcma);c{J4h9>;%nil|2-o+rCuEF-(I%-F}ijC~o(k~HKAkr0)!FCj~d>`RtpD?8b; zXOC1OD!V*IsqUwzbMF1)-gEDD=A573Z-&G7^LoAC9|WO7Xc0Cx1g^Zu0u_SjAPB
3vGa^W|sj)80f#V0@M_CAZTIO(t--xg= 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/demo/data/demo/public/authorizationsite/public/index.html b/demo/data/demo/public/authorizationsite/public/index.html new file mode 100644 index 00000000..e188a7ab --- /dev/null +++ b/demo/data/demo/public/authorizationsite/public/index.html @@ -0,0 +1,43 @@ + + + + + + + + + + + + + Authorization Companion + + + +
+ + + diff --git a/demo/data/demo/public/authorizationsite/public/logo192.png b/demo/data/demo/public/authorizationsite/public/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..fc44b0a3796c0e0a64c3d858ca038bd4570465d9 GIT binary patch literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN literal 0 HcmV?d00001 diff --git a/demo/data/demo/public/authorizationsite/public/manifest.json b/demo/data/demo/public/authorizationsite/public/manifest.json new file mode 100644 index 00000000..080d6c77 --- /dev/null +++ b/demo/data/demo/public/authorizationsite/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/demo/data/demo/public/authorizationsite/public/robots.txt b/demo/data/demo/public/authorizationsite/public/robots.txt new file mode 100644 index 00000000..e9e57dc4 --- /dev/null +++ b/demo/data/demo/public/authorizationsite/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/demo/data/demo/public/authorizationsite/src/App.css b/demo/data/demo/public/authorizationsite/src/App.css new file mode 100644 index 00000000..e247a5ff --- /dev/null +++ b/demo/data/demo/public/authorizationsite/src/App.css @@ -0,0 +1,39 @@ +.App { + text-align: center; +} + +.App-logo { + height: 40vmin; + pointer-events: none; +} + +@media (prefers-reduced-motion: no-preference) { + .App-logo { + animation: App-logo-spin infinite 20s linear; + } +} + +.App-header { + background-color: #282c34; + min-height: 100vh; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + font-size: calc(10px + 2vmin); + color: white; +} + +.App-link { + color: #61dafb; +} + +@keyframes App-logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + diff --git a/demo/data/demo/public/authorizationsite/src/App.tsx b/demo/data/demo/public/authorizationsite/src/App.tsx new file mode 100644 index 00000000..8fa271de --- /dev/null +++ b/demo/data/demo/public/authorizationsite/src/App.tsx @@ -0,0 +1,86 @@ +import React from "react"; +import { handleIncomingRedirect, getDefaultSession } from '@inrupt/solid-client-authn-browser'; +import { BrowserRouter, Routes, Route } from 'react-router-dom'; +import { useEffect, useState} from 'react'; + +import './App.css'; + +import Home from './components/Home'; +import Navigate from './components/Navigate'; +import SolidAuth from './components/SolidAuth' +import Query from './components/Query'; + +const rubenWebID = 'http://localhost:3000/ruben/profile/card#me' + +export default function App() { + + // Ophalen van het Solid session object. + const session = getDefaultSession() + + // De loggedIn variabele houdt de login status bij, + // en update de pagina wanneer de status verandert. + const [loggedIn, setLoggedIn] = useState(session.info.isLoggedIn) + + // De checkingLogin variabele houdt bij of onze initiële + // check voor login informatie is afgerond. + const [checkingLogin, setCheckingLogin] = useState(true) + + // Deze functie voert uit bij het updaten van de component. + useEffect(() => { + // Forceer hernieuwen van de pagina bij het veranderen van de login status. + session.onLogin(() => setLoggedIn(true)) + session.onLogout(() => setLoggedIn(false)) + + // Deze functie gaat na of we teruggestuurd zijn + // naar de huidige pagina door de Solid login pagina. + handleIncomingRedirect({ restorePreviousSession: true }) + .then((info) => { + // Update de status van de component voor + // de login status en de login check status + // op basis van het resultaat van de functie. + // Voor meer informatie kan je de documentatie bekijken op + // https://docs.inrupt.com/developer-tools/api/javascript/solid-client-authn-browser/functions.html#handleincomingredirect + let status = info?.isLoggedIn || false + if (status !== loggedIn) setLoggedIn(status) + if (info) setCheckingLogin(false) + }) + .catch(console.error) + }) + + // return ( + //
+ // { + // checkingLogin + // ? + //

Loading Session information ...

+ // : ( + //
+ // + // {loggedIn && + // + // + // + // } /> + // } /> + // + // + // } + //
+ // ) + // } + //
+ // ) + + return ( +
+ + + + + } /> + } /> + + +
+ ) +} \ No newline at end of file diff --git a/demo/data/demo/public/authorizationsite/src/components/Home.tsx b/demo/data/demo/public/authorizationsite/src/components/Home.tsx new file mode 100644 index 00000000..6a49292e --- /dev/null +++ b/demo/data/demo/public/authorizationsite/src/components/Home.tsx @@ -0,0 +1,50 @@ +import React, { useEffect, useState } from "react"; +import { createPolicy, doPolicyFlowFromString, readPolicyDirectory } from "../util/PolicyManagement"; +import PolicyModal from "./Modal"; +import { SimplePolicy } from "../util/policyCreation"; + +export default function Home() { + + const [policyList, setPolicyList] = useState([] as SimplePolicy[]) + + useEffect(() => { + async function getPolicies() { + let policies = await readPolicyDirectory(); + setPolicyList(policies) + } + getPolicies() + }, []) + + + async function addPolicy(policyText: string) { + console.log('Adding the following policy:') + console.log(policyText) + await doPolicyFlowFromString(policyText) + } + + function renderPolicy(policy: SimplePolicy) { + return ( +
+

{policy.policyIRI}

+
+ ) + } + + return ( +
+
+
+
+ { + policyList.map(renderPolicy) + } +
+ +
+
+