diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..be3a7a0
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,8 @@
+.yarn/cache
+*.log
+build
+cache
+cypress
+Dockerfile
+node_modules
+omelette
\ No newline at end of file
diff --git a/README.md b/README.md
index ecab9d9..66bd6e3 100644
--- a/README.md
+++ b/README.md
@@ -2,9 +2,13 @@
@@ -28,7 +32,9 @@ It requires [pas.plugins.authomatic](https://github.com/collective/pas.plugins.a
volto-authomatic can be seen in action at the following sites:
+- [Plone](https://plone.org)
- [Plone Brasil](https://plone.org.br)
+- [2023 Plone Conference](https://2023.ploneconf.org)
- [2022 Plone Conference](https://2022.ploneconf.org)
- [2021 Plone Conference](https://2021.ploneconf.org)
diff --git a/acceptance/yarn.lock b/acceptance/yarn.lock
index e69de29..7d2dd4a 100644
--- a/acceptance/yarn.lock
+++ b/acceptance/yarn.lock
@@ -0,0 +1,2715 @@
+# This file is generated by running "yarn install" inside your project.
+# Manual changes might be lost - proceed with caution!
+
+__metadata:
+ version: 6
+ cacheKey: 8
+
+"@babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13":
+ version: 7.22.13
+ resolution: "@babel/code-frame@npm:7.22.13"
+ dependencies:
+ "@babel/highlight": ^7.22.13
+ chalk: ^2.4.2
+ checksum: 22e342c8077c8b77eeb11f554ecca2ba14153f707b85294fcf6070b6f6150aae88a7b7436dd88d8c9289970585f3fe5b9b941c5aa3aa26a6d5a8ef3f292da058
+ languageName: node
+ linkType: hard
+
+"@babel/helper-validator-identifier@npm:^7.22.20":
+ version: 7.22.20
+ resolution: "@babel/helper-validator-identifier@npm:7.22.20"
+ checksum: 136412784d9428266bcdd4d91c32bcf9ff0e8d25534a9d94b044f77fe76bc50f941a90319b05aafd1ec04f7d127cd57a179a3716009ff7f3412ef835ada95bdc
+ languageName: node
+ linkType: hard
+
+"@babel/highlight@npm:^7.22.13":
+ version: 7.22.20
+ resolution: "@babel/highlight@npm:7.22.20"
+ dependencies:
+ "@babel/helper-validator-identifier": ^7.22.20
+ chalk: ^2.4.2
+ js-tokens: ^4.0.0
+ checksum: 84bd034dca309a5e680083cd827a766780ca63cef37308404f17653d32366ea76262bd2364b2d38776232f2d01b649f26721417d507e8b4b6da3e4e739f6d134
+ languageName: node
+ linkType: hard
+
+"@babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.14.6, @babel/runtime@npm:^7.9.2":
+ version: 7.23.2
+ resolution: "@babel/runtime@npm:7.23.2"
+ dependencies:
+ regenerator-runtime: ^0.14.0
+ checksum: 6c4df4839ec75ca10175f636d6362f91df8a3137f86b38f6cd3a4c90668a0fe8e9281d320958f4fbd43b394988958585a17c3aab2a4ea6bf7316b22916a371fb
+ languageName: node
+ linkType: hard
+
+"@colors/colors@npm:1.5.0":
+ version: 1.5.0
+ resolution: "@colors/colors@npm:1.5.0"
+ checksum: d64d5260bed1d5012ae3fc617d38d1afc0329fec05342f4e6b838f46998855ba56e0a73833f4a80fa8378c84810da254f76a8a19c39d038260dc06dc4e007425
+ languageName: node
+ linkType: hard
+
+"@cypress/request@npm:^3.0.0":
+ version: 3.0.1
+ resolution: "@cypress/request@npm:3.0.1"
+ dependencies:
+ aws-sign2: ~0.7.0
+ aws4: ^1.8.0
+ caseless: ~0.12.0
+ combined-stream: ~1.0.6
+ extend: ~3.0.2
+ forever-agent: ~0.6.1
+ form-data: ~2.3.2
+ http-signature: ~1.3.6
+ is-typedarray: ~1.0.0
+ isstream: ~0.1.2
+ json-stringify-safe: ~5.0.1
+ mime-types: ~2.1.19
+ performance-now: ^2.1.0
+ qs: 6.10.4
+ safe-buffer: ^5.1.2
+ tough-cookie: ^4.1.3
+ tunnel-agent: ^0.6.0
+ uuid: ^8.3.2
+ checksum: 7175522ebdbe30e3c37973e204c437c23ce659e58d5939466615bddcd58d778f3a8ea40f087b965ae8b8138ea8d102b729c6eb18c6324f121f3778f4a2e8e727
+ languageName: node
+ linkType: hard
+
+"@cypress/xvfb@npm:^1.2.4":
+ version: 1.2.4
+ resolution: "@cypress/xvfb@npm:1.2.4"
+ dependencies:
+ debug: ^3.1.0
+ lodash.once: ^4.1.1
+ checksum: 7bdcdaeb1bb692ec9d9bf8ec52538aa0bead6764753f4a067a171a511807a43fab016f7285a56bef6a606c2467ff3f1365e1ad2d2d583b81beed849ee1573fd1
+ languageName: node
+ linkType: hard
+
+"@jest/expect-utils@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "@jest/expect-utils@npm:29.7.0"
+ dependencies:
+ jest-get-type: ^29.6.3
+ checksum: 75eb177f3d00b6331bcaa057e07c0ccb0733a1d0a1943e1d8db346779039cb7f103789f16e502f888a3096fb58c2300c38d1f3748b36a7fa762eb6f6d1b160ed
+ languageName: node
+ linkType: hard
+
+"@jest/schemas@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "@jest/schemas@npm:29.6.3"
+ dependencies:
+ "@sinclair/typebox": ^0.27.8
+ checksum: 910040425f0fc93cd13e68c750b7885590b8839066dfa0cd78e7def07bbb708ad869381f725945d66f2284de5663bbecf63e8fdd856e2ae6e261ba30b1687e93
+ languageName: node
+ linkType: hard
+
+"@jest/types@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "@jest/types@npm:29.6.3"
+ dependencies:
+ "@jest/schemas": ^29.6.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
+ checksum: a0bcf15dbb0eca6bdd8ce61a3fb055349d40268622a7670a3b2eb3c3dbafe9eb26af59938366d520b86907b9505b0f9b29b85cec11579a9e580694b87cd90fcc
+ languageName: node
+ linkType: hard
+
+"@plone/volto-testing@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "@plone/volto-testing@npm:4.0.0"
+ dependencies:
+ "@testing-library/cypress": 9.0.0
+ "@testing-library/jest-dom": 5.16.4
+ "@testing-library/react": 12.1.5
+ axe-core: 4.6.3
+ cypress: 13.1.0
+ cypress-axe: 1.5.0
+ cypress-file-upload: 5.0.8
+ checksum: ce4f3149177e3314cc6cff7cfad03637dde512cc5f4a689fb43e88f56b2aadc93c9b8283092a9b40139d4846e0f741f20a080405bfde7706873067219fec1a4d
+ languageName: node
+ linkType: hard
+
+"@sinclair/typebox@npm:^0.27.8":
+ version: 0.27.8
+ resolution: "@sinclair/typebox@npm:0.27.8"
+ checksum: 00bd7362a3439021aa1ea51b0e0d0a0e8ca1351a3d54c606b115fdcc49b51b16db6e5f43b4fe7a28c38688523e22a94d49dd31168868b655f0d4d50f032d07a1
+ languageName: node
+ linkType: hard
+
+"@testing-library/cypress@npm:9.0.0":
+ version: 9.0.0
+ resolution: "@testing-library/cypress@npm:9.0.0"
+ dependencies:
+ "@babel/runtime": ^7.14.6
+ "@testing-library/dom": ^8.1.0
+ peerDependencies:
+ cypress: ^12.0.0
+ checksum: fbd24e8f0b8a60279b336de5f6bc0e7ad6fb31316eacab5128dacc7fccde1eb40935b90f2c3bddc7d814115fe3965c6dbf011785448cd15b5a5b0bc40ef5bb4c
+ languageName: node
+ linkType: hard
+
+"@testing-library/dom@npm:^8.0.0, @testing-library/dom@npm:^8.1.0":
+ version: 8.20.1
+ resolution: "@testing-library/dom@npm:8.20.1"
+ 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
+ checksum: 06fc8dc67849aadb726cbbad0e7546afdf8923bd39acb64c576d706249bd7d0d05f08e08a31913fb621162e3b9c2bd0dce15964437f030f9fa4476326fdd3007
+ languageName: node
+ linkType: hard
+
+"@testing-library/jest-dom@npm:5.16.4":
+ version: 5.16.4
+ resolution: "@testing-library/jest-dom@npm:5.16.4"
+ dependencies:
+ "@babel/runtime": ^7.9.2
+ "@types/testing-library__jest-dom": ^5.9.1
+ aria-query: ^5.0.0
+ chalk: ^3.0.0
+ css: ^3.0.0
+ css.escape: ^1.5.1
+ dom-accessibility-api: ^0.5.6
+ lodash: ^4.17.15
+ redent: ^3.0.0
+ checksum: 4240501223b72b97a44d4e3c669f39b208c49fb645d11d08d5f178d607265c5dfad07efbe027f41a0e2458178ff1fd5bf437fc05661b9109dcd013b95a37079e
+ languageName: node
+ linkType: hard
+
+"@testing-library/react@npm:12.1.5":
+ version: 12.1.5
+ resolution: "@testing-library/react@npm:12.1.5"
+ dependencies:
+ "@babel/runtime": ^7.12.5
+ "@testing-library/dom": ^8.0.0
+ "@types/react-dom": <18.0.0
+ peerDependencies:
+ react: <18.0.0
+ react-dom: <18.0.0
+ checksum: 4abd0490405e709a7df584a0db604e508a4612398bb1326e8fa32dd9393b15badc826dcf6d2f7525437886d507871f719f127b9860ed69ddd204d1fa834f576a
+ languageName: node
+ linkType: hard
+
+"@types/aria-query@npm:^5.0.1":
+ version: 5.0.4
+ resolution: "@types/aria-query@npm:5.0.4"
+ checksum: ad8b87e4ad64255db5f0a73bc2b4da9b146c38a3a8ab4d9306154334e0fc67ae64e76bfa298eebd1e71830591fb15987e5de7111bdb36a2221bdc379e3415fb0
+ languageName: node
+ linkType: hard
+
+"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0":
+ version: 2.0.6
+ resolution: "@types/istanbul-lib-coverage@npm:2.0.6"
+ checksum: 3feac423fd3e5449485afac999dcfcb3d44a37c830af898b689fadc65d26526460bedb889db278e0d4d815a670331796494d073a10ee6e3a6526301fe7415778
+ languageName: node
+ linkType: hard
+
+"@types/istanbul-lib-report@npm:*":
+ version: 3.0.3
+ resolution: "@types/istanbul-lib-report@npm:3.0.3"
+ dependencies:
+ "@types/istanbul-lib-coverage": "*"
+ checksum: b91e9b60f865ff08cb35667a427b70f6c2c63e88105eadd29a112582942af47ed99c60610180aa8dcc22382fa405033f141c119c69b95db78c4c709fbadfeeb4
+ languageName: node
+ linkType: hard
+
+"@types/istanbul-reports@npm:^3.0.0":
+ version: 3.0.4
+ resolution: "@types/istanbul-reports@npm:3.0.4"
+ dependencies:
+ "@types/istanbul-lib-report": "*"
+ checksum: 93eb18835770b3431f68ae9ac1ca91741ab85f7606f310a34b3586b5a34450ec038c3eed7ab19266635499594de52ff73723a54a72a75b9f7d6a956f01edee95
+ languageName: node
+ linkType: hard
+
+"@types/jest@npm:*":
+ version: 29.5.8
+ resolution: "@types/jest@npm:29.5.8"
+ dependencies:
+ expect: ^29.0.0
+ pretty-format: ^29.0.0
+ checksum: ca8438a5b4c098c8c023e9d5b279ea306494a1d0b5291cfb498100fa780377145f068b2a021d545b0398bbe0328dcc37044dd3aaf3c6c0fe9b0bef7b46a63453
+ languageName: node
+ linkType: hard
+
+"@types/node@npm:*":
+ version: 20.9.1
+ resolution: "@types/node@npm:20.9.1"
+ dependencies:
+ undici-types: ~5.26.4
+ checksum: bb893c6790733dac32818c1ca170fa466622dec39a0ade4639463e1358cb811771e242accbd065e7a1bfe59adc989c0ee59be65e462d3a0ab49043426f0b7637
+ languageName: node
+ linkType: hard
+
+"@types/node@npm:^16.18.39":
+ version: 16.18.61
+ resolution: "@types/node@npm:16.18.61"
+ checksum: fdd162829eddc9b0b82a1ec485ba3876428ff3bd94c5869b13f4a36eb2aa9bddd22ea7e8ee3b2faa91a0f70ff08d8fd8d4be7dd0d143f8ee776907d6a1d2ed25
+ languageName: node
+ linkType: hard
+
+"@types/prop-types@npm:*":
+ version: 15.7.10
+ resolution: "@types/prop-types@npm:15.7.10"
+ checksum: 39ecc2d9e439ed16b32937a08d98b84ed4a70f53bcd52c8564c0cd7a36fe1004ca83a1fb94b13c1b7a5c048760f06445c3c6a91a6972c8eff652c0b50c9424b1
+ languageName: node
+ linkType: hard
+
+"@types/react-dom@npm:<18.0.0":
+ version: 17.0.23
+ resolution: "@types/react-dom@npm:17.0.23"
+ dependencies:
+ "@types/react": ^17
+ checksum: 20c3caadc653c47806d8eb9bfe1bc5c259bd8d05158bd9cc71f42277a0425f0bf461d45c08648bac6d9fb468536d0b0b28fe548541c95c157de72a4487f7af97
+ languageName: node
+ linkType: hard
+
+"@types/react@npm:^17":
+ version: 17.0.70
+ resolution: "@types/react@npm:17.0.70"
+ dependencies:
+ "@types/prop-types": "*"
+ "@types/scheduler": "*"
+ csstype: ^3.0.2
+ checksum: 24e6051f1beaa96ee40e918d72b44df55224cde4489606266e8bc8f72f5fda561161b453b89348db8b13c54562e81127448f58b1e949904687084beeeeda5a36
+ languageName: node
+ linkType: hard
+
+"@types/scheduler@npm:*":
+ version: 0.16.6
+ resolution: "@types/scheduler@npm:0.16.6"
+ checksum: 4cec89727584a50c66a07c322469a4d9e64f5b0117691f36afd4ceae75741c0038a6e107c05e515511d5358b5897becbe065b6e4560664cb1b16f6754915043d
+ languageName: node
+ linkType: hard
+
+"@types/sinonjs__fake-timers@npm:8.1.1":
+ version: 8.1.1
+ resolution: "@types/sinonjs__fake-timers@npm:8.1.1"
+ checksum: ca09d54d47091d87020824a73f026300fa06b17cd9f2f9b9387f28b549364b141ef194ee28db762f6588de71d8febcd17f753163cb7ea116b8387c18e80ebd5c
+ languageName: node
+ linkType: hard
+
+"@types/sizzle@npm:^2.3.2":
+ version: 2.3.6
+ resolution: "@types/sizzle@npm:2.3.6"
+ checksum: 1573d6c86fdf0d7d3d2759b0db65e374b99d773b57781443a6400ce3d0a3bf6a3be393fb9aee5076eff8399c14b7b4d3f51391d1d5cb6a3dcbdccee06a5f6e3e
+ languageName: node
+ linkType: hard
+
+"@types/stack-utils@npm:^2.0.0":
+ version: 2.0.3
+ resolution: "@types/stack-utils@npm:2.0.3"
+ checksum: 72576cc1522090fe497337c2b99d9838e320659ac57fa5560fcbdcbafcf5d0216c6b3a0a8a4ee4fdb3b1f5e3420aa4f6223ab57b82fef3578bec3206425c6cf5
+ languageName: node
+ linkType: hard
+
+"@types/testing-library__jest-dom@npm:^5.9.1":
+ version: 5.14.9
+ resolution: "@types/testing-library__jest-dom@npm:5.14.9"
+ dependencies:
+ "@types/jest": "*"
+ checksum: d364494fc2545316292e88861146146af1e3818792ca63b62a63758b2f737669b687f4aaddfcfbcb7d0e1ed7890a9bd05de23ff97f277d5e68de574497a9ee72
+ languageName: node
+ linkType: hard
+
+"@types/yargs-parser@npm:*":
+ version: 21.0.3
+ resolution: "@types/yargs-parser@npm:21.0.3"
+ checksum: ef236c27f9432983e91432d974243e6c4cdae227cb673740320eff32d04d853eed59c92ca6f1142a335cfdc0e17cccafa62e95886a8154ca8891cc2dec4ee6fc
+ languageName: node
+ linkType: hard
+
+"@types/yargs@npm:^17.0.8":
+ version: 17.0.31
+ resolution: "@types/yargs@npm:17.0.31"
+ dependencies:
+ "@types/yargs-parser": "*"
+ checksum: a7f4fe5b05162790cbcbccceb22821e2cb3e49d95a4d8403352f258744cd504124f3ab502eddb2262f5d2d9cc6a0547851ae44621b14fe4c505d8f1434c2a19e
+ languageName: node
+ linkType: hard
+
+"@types/yauzl@npm:^2.9.1":
+ version: 2.10.3
+ resolution: "@types/yauzl@npm:2.10.3"
+ dependencies:
+ "@types/node": "*"
+ checksum: 5ee966ea7bd6b2802f31ad4281c92c4c0b6dfa593c378a2582c58541fa113bec3d70eb0696b34ad95e8e6861a884cba6c3e351285816693ed176222f840a8c08
+ languageName: node
+ linkType: hard
+
+"aggregate-error@npm:^3.0.0":
+ version: 3.1.0
+ resolution: "aggregate-error@npm:3.1.0"
+ dependencies:
+ clean-stack: ^2.0.0
+ indent-string: ^4.0.0
+ checksum: 1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79
+ languageName: node
+ linkType: hard
+
+"ansi-colors@npm:^4.1.1":
+ version: 4.1.3
+ resolution: "ansi-colors@npm:4.1.3"
+ checksum: a9c2ec842038a1fabc7db9ece7d3177e2fe1c5dc6f0c51ecfbf5f39911427b89c00b5dc6b8bd95f82a26e9b16aaae2e83d45f060e98070ce4d1333038edceb0e
+ languageName: node
+ linkType: hard
+
+"ansi-escapes@npm:^4.3.0":
+ version: 4.3.2
+ resolution: "ansi-escapes@npm:4.3.2"
+ dependencies:
+ type-fest: ^0.21.3
+ checksum: 93111c42189c0a6bed9cdb4d7f2829548e943827ee8479c74d6e0b22ee127b2a21d3f8b5ca57723b8ef78ce011fbfc2784350eb2bde3ccfccf2f575fa8489815
+ languageName: node
+ linkType: hard
+
+"ansi-regex@npm:^5.0.1":
+ version: 5.0.1
+ resolution: "ansi-regex@npm:5.0.1"
+ checksum: 2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b
+ languageName: node
+ linkType: hard
+
+"ansi-styles@npm:^3.2.1":
+ version: 3.2.1
+ resolution: "ansi-styles@npm:3.2.1"
+ dependencies:
+ color-convert: ^1.9.0
+ checksum: d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665
+ languageName: node
+ linkType: hard
+
+"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0":
+ version: 4.3.0
+ resolution: "ansi-styles@npm:4.3.0"
+ dependencies:
+ color-convert: ^2.0.1
+ checksum: 513b44c3b2105dd14cc42a19271e80f386466c4be574bccf60b627432f9198571ebf4ab1e4c3ba17347658f4ee1711c163d574248c0c1cdc2d5917a0ad582ec4
+ languageName: node
+ linkType: hard
+
+"ansi-styles@npm:^5.0.0":
+ version: 5.2.0
+ resolution: "ansi-styles@npm:5.2.0"
+ checksum: d7f4e97ce0623aea6bc0d90dcd28881ee04cba06c570b97fd3391bd7a268eedfd9d5e2dd4fdcbdd82b8105df5faf6f24aaedc08eaf3da898e702db5948f63469
+ languageName: node
+ linkType: hard
+
+"arch@npm:^2.2.0":
+ version: 2.2.0
+ resolution: "arch@npm:2.2.0"
+ checksum: e21b7635029fe8e9cdd5a026f9a6c659103e63fff423834323cdf836a1bb240a72d0c39ca8c470f84643385cf581bd8eda2cad8bf493e27e54bd9783abe9101f
+ languageName: node
+ linkType: hard
+
+"aria-query@npm:5.1.3":
+ version: 5.1.3
+ resolution: "aria-query@npm:5.1.3"
+ dependencies:
+ deep-equal: ^2.0.5
+ checksum: 929ff95f02857b650fb4cbcd2f41072eee2f46159a6605ea03bf63aa572e35ffdff43d69e815ddc462e16e07de8faba3978afc2813650b4448ee18c9895d982b
+ languageName: node
+ linkType: hard
+
+"aria-query@npm:^5.0.0":
+ version: 5.3.0
+ resolution: "aria-query@npm:5.3.0"
+ dependencies:
+ dequal: ^2.0.3
+ checksum: 305bd73c76756117b59aba121d08f413c7ff5e80fa1b98e217a3443fcddb9a232ee790e24e432b59ae7625aebcf4c47cb01c2cac872994f0b426f5bdfcd96ba9
+ languageName: node
+ linkType: hard
+
+"array-buffer-byte-length@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "array-buffer-byte-length@npm:1.0.0"
+ dependencies:
+ call-bind: ^1.0.2
+ is-array-buffer: ^3.0.1
+ checksum: 044e101ce150f4804ad19c51d6c4d4cfa505c5b2577bd179256e4aa3f3f6a0a5e9874c78cd428ee566ac574c8a04d7ce21af9fe52e844abfdccb82b33035a7c3
+ languageName: node
+ linkType: hard
+
+"asn1@npm:~0.2.3":
+ version: 0.2.6
+ resolution: "asn1@npm:0.2.6"
+ dependencies:
+ safer-buffer: ~2.1.0
+ checksum: 39f2ae343b03c15ad4f238ba561e626602a3de8d94ae536c46a4a93e69578826305366dc09fbb9b56aec39b4982a463682f259c38e59f6fa380cd72cd61e493d
+ languageName: node
+ linkType: hard
+
+"assert-plus@npm:1.0.0, assert-plus@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "assert-plus@npm:1.0.0"
+ checksum: 19b4340cb8f0e6a981c07225eacac0e9d52c2644c080198765d63398f0075f83bbc0c8e95474d54224e297555ad0d631c1dcd058adb1ddc2437b41a6b424ac64
+ languageName: node
+ linkType: hard
+
+"astral-regex@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "astral-regex@npm:2.0.0"
+ checksum: 876231688c66400473ba505731df37ea436e574dd524520294cc3bbc54ea40334865e01fa0d074d74d036ee874ee7e62f486ea38bc421ee8e6a871c06f011766
+ languageName: node
+ linkType: hard
+
+"async@npm:^3.2.0":
+ version: 3.2.5
+ resolution: "async@npm:3.2.5"
+ checksum: 5ec77f1312301dee02d62140a6b1f7ee0edd2a0f983b6fd2b0849b969f245225b990b47b8243e7b9ad16451a53e7f68e753700385b706198ced888beedba3af4
+ languageName: node
+ linkType: hard
+
+"asynckit@npm:^0.4.0":
+ version: 0.4.0
+ resolution: "asynckit@npm:0.4.0"
+ checksum: 7b78c451df768adba04e2d02e63e2d0bf3b07adcd6e42b4cf665cb7ce899bedd344c69a1dcbce355b5f972d597b25aaa1c1742b52cffd9caccb22f348114f6be
+ languageName: node
+ linkType: hard
+
+"at-least-node@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "at-least-node@npm:1.0.0"
+ checksum: 463e2f8e43384f1afb54bc68485c436d7622acec08b6fad269b421cb1d29cebb5af751426793d0961ed243146fe4dc983402f6d5a51b720b277818dbf6f2e49e
+ languageName: node
+ linkType: hard
+
+"atob@npm:^2.1.2":
+ version: 2.1.2
+ resolution: "atob@npm:2.1.2"
+ bin:
+ atob: bin/atob.js
+ checksum: dfeeeb70090c5ebea7be4b9f787f866686c645d9f39a0d184c817252d0cf08455ed25267d79c03254d3be1f03ac399992a792edcd5ffb9c91e097ab5ef42833a
+ languageName: node
+ linkType: hard
+
+"available-typed-arrays@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "available-typed-arrays@npm:1.0.5"
+ checksum: 20eb47b3cefd7db027b9bbb993c658abd36d4edd3fe1060e83699a03ee275b0c9b216cc076ff3f2db29073225fb70e7613987af14269ac1fe2a19803ccc97f1a
+ languageName: node
+ linkType: hard
+
+"aws-sign2@npm:~0.7.0":
+ version: 0.7.0
+ resolution: "aws-sign2@npm:0.7.0"
+ checksum: b148b0bb0778098ad8cf7e5fc619768bcb51236707ca1d3e5b49e41b171166d8be9fdc2ea2ae43d7decf02989d0aaa3a9c4caa6f320af95d684de9b548a71525
+ languageName: node
+ linkType: hard
+
+"aws4@npm:^1.8.0":
+ version: 1.12.0
+ resolution: "aws4@npm:1.12.0"
+ checksum: 68f79708ac7c335992730bf638286a3ee0a645cf12575d557860100767c500c08b30e24726b9f03265d74116417f628af78509e1333575e9f8d52a80edfe8cbc
+ languageName: node
+ linkType: hard
+
+"axe-core@npm:4.6.3":
+ version: 4.6.3
+ resolution: "axe-core@npm:4.6.3"
+ checksum: d0c46be92b9707c48b88a53cd5f471b155a2bfc8bf6beffb514ecd14e30b4863e340b5fc4f496d82a3c562048088c1f3ff5b93b9b3b026cb9c3bfacfd535da10
+ languageName: node
+ linkType: hard
+
+"balanced-match@npm:^1.0.0":
+ version: 1.0.2
+ resolution: "balanced-match@npm:1.0.2"
+ checksum: 9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65
+ languageName: node
+ linkType: hard
+
+"base64-js@npm:^1.3.1":
+ version: 1.5.1
+ resolution: "base64-js@npm:1.5.1"
+ checksum: 669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005
+ languageName: node
+ linkType: hard
+
+"bcrypt-pbkdf@npm:^1.0.0":
+ version: 1.0.2
+ resolution: "bcrypt-pbkdf@npm:1.0.2"
+ dependencies:
+ tweetnacl: ^0.14.3
+ checksum: 4edfc9fe7d07019609ccf797a2af28351736e9d012c8402a07120c4453a3b789a15f2ee1530dc49eee8f7eb9379331a8dd4b3766042b9e502f74a68e7f662291
+ languageName: node
+ linkType: hard
+
+"blob-util@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "blob-util@npm:2.0.2"
+ checksum: d543e6b92e4ca715ca33c78e89a07a2290d43e5b2bc897d7ec588c5c7bbf59df93e45225ac0c9258aa6ce4320358990f99c9288f1c48280f8ec5d7a2e088d19b
+ languageName: node
+ linkType: hard
+
+"bluebird@npm:^3.7.2":
+ version: 3.7.2
+ resolution: "bluebird@npm:3.7.2"
+ checksum: 869417503c722e7dc54ca46715f70e15f4d9c602a423a02c825570862d12935be59ed9c7ba34a9b31f186c017c23cac6b54e35446f8353059c101da73eac22ef
+ languageName: node
+ linkType: hard
+
+"brace-expansion@npm:^1.1.7":
+ version: 1.1.11
+ resolution: "brace-expansion@npm:1.1.11"
+ dependencies:
+ balanced-match: ^1.0.0
+ concat-map: 0.0.1
+ checksum: faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07
+ languageName: node
+ linkType: hard
+
+"braces@npm:^3.0.2":
+ version: 3.0.2
+ resolution: "braces@npm:3.0.2"
+ dependencies:
+ fill-range: ^7.0.1
+ checksum: e2a8e769a863f3d4ee887b5fe21f63193a891c68b612ddb4b68d82d1b5f3ff9073af066c343e9867a393fe4c2555dcb33e89b937195feb9c1613d259edfcd459
+ languageName: node
+ linkType: hard
+
+"buffer-crc32@npm:~0.2.3":
+ version: 0.2.13
+ resolution: "buffer-crc32@npm:0.2.13"
+ checksum: 06252347ae6daca3453b94e4b2f1d3754a3b146a111d81c68924c22d91889a40623264e95e67955b1cb4a68cbedf317abeabb5140a9766ed248973096db5ce1c
+ languageName: node
+ linkType: hard
+
+"buffer@npm:^5.6.0":
+ version: 5.7.1
+ resolution: "buffer@npm:5.7.1"
+ dependencies:
+ base64-js: ^1.3.1
+ ieee754: ^1.1.13
+ checksum: e2cf8429e1c4c7b8cbd30834ac09bd61da46ce35f5c22a78e6c2f04497d6d25541b16881e30a019c6fd3154150650ccee27a308eff3e26229d788bbdeb08ab84
+ languageName: node
+ linkType: hard
+
+"cachedir@npm:^2.3.0":
+ version: 2.4.0
+ resolution: "cachedir@npm:2.4.0"
+ checksum: 43198514eaa61f65b5535ed29ad651f22836fba3868ed58a6a87731f05462f317d39098fa3ac778801c25455483c9b7f32a2fcad1f690a978947431f12a0f4d0
+ languageName: node
+ linkType: hard
+
+"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2, call-bind@npm:^1.0.4, call-bind@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "call-bind@npm:1.0.5"
+ dependencies:
+ function-bind: ^1.1.2
+ get-intrinsic: ^1.2.1
+ set-function-length: ^1.1.1
+ checksum: 449e83ecbd4ba48e7eaac5af26fea3b50f8f6072202c2dd7c5a6e7a6308f2421abe5e13a3bbd55221087f76320c5e09f25a8fdad1bab2b77c68ae74d92234ea5
+ languageName: node
+ linkType: hard
+
+"caseless@npm:~0.12.0":
+ version: 0.12.0
+ resolution: "caseless@npm:0.12.0"
+ checksum: b43bd4c440aa1e8ee6baefee8063b4850fd0d7b378f6aabc796c9ec8cb26d27fb30b46885350777d9bd079c5256c0e1329ad0dc7c2817e0bb466810ebb353751
+ languageName: node
+ linkType: hard
+
+"chalk@npm:^2.4.2":
+ version: 2.4.2
+ resolution: "chalk@npm:2.4.2"
+ dependencies:
+ ansi-styles: ^3.2.1
+ escape-string-regexp: ^1.0.5
+ supports-color: ^5.3.0
+ checksum: ec3661d38fe77f681200f878edbd9448821924e0f93a9cefc0e26a33b145f1027a2084bf19967160d11e1f03bfe4eaffcabf5493b89098b2782c3fe0b03d80c2
+ languageName: node
+ linkType: hard
+
+"chalk@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "chalk@npm:3.0.0"
+ dependencies:
+ ansi-styles: ^4.1.0
+ supports-color: ^7.1.0
+ checksum: 8e3ddf3981c4da405ddbd7d9c8d91944ddf6e33d6837756979f7840a29272a69a5189ecae0ff84006750d6d1e92368d413335eab4db5476db6e6703a1d1e0505
+ languageName: node
+ linkType: hard
+
+"chalk@npm:^4.0.0, chalk@npm:^4.1.0":
+ version: 4.1.2
+ resolution: "chalk@npm:4.1.2"
+ dependencies:
+ ansi-styles: ^4.1.0
+ supports-color: ^7.1.0
+ checksum: fe75c9d5c76a7a98d45495b91b2172fa3b7a09e0cc9370e5c8feb1c567b85c4288e2b3fded7cfdd7359ac28d6b3844feb8b82b8686842e93d23c827c417e83fc
+ languageName: node
+ linkType: hard
+
+"check-more-types@npm:^2.24.0":
+ version: 2.24.0
+ resolution: "check-more-types@npm:2.24.0"
+ checksum: b09080ec3404d20a4b0ead828994b2e5913236ef44ed3033a27062af0004cf7d2091fbde4b396bf13b7ce02fb018bc9960b48305e6ab2304cd82d73ed7a51ef4
+ languageName: node
+ linkType: hard
+
+"ci-info@npm:^3.2.0":
+ version: 3.9.0
+ resolution: "ci-info@npm:3.9.0"
+ checksum: 6b19dc9b2966d1f8c2041a838217299718f15d6c4b63ae36e4674edd2bee48f780e94761286a56aa59eb305a85fbea4ddffb7630ec063e7ec7e7e5ad42549a87
+ languageName: node
+ linkType: hard
+
+"clean-stack@npm:^2.0.0":
+ version: 2.2.0
+ resolution: "clean-stack@npm:2.2.0"
+ checksum: 2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68
+ languageName: node
+ linkType: hard
+
+"cli-cursor@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "cli-cursor@npm:3.1.0"
+ dependencies:
+ restore-cursor: ^3.1.0
+ checksum: 2692784c6cd2fd85cfdbd11f53aea73a463a6d64a77c3e098b2b4697a20443f430c220629e1ca3b195ea5ac4a97a74c2ee411f3807abf6df2b66211fec0c0a29
+ languageName: node
+ linkType: hard
+
+"cli-table3@npm:~0.6.1":
+ version: 0.6.3
+ resolution: "cli-table3@npm:0.6.3"
+ dependencies:
+ "@colors/colors": 1.5.0
+ string-width: ^4.2.0
+ dependenciesMeta:
+ "@colors/colors":
+ optional: true
+ checksum: 09897f68467973f827c04e7eaadf13b55f8aec49ecd6647cc276386ea660059322e2dd8020a8b6b84d422dbdd619597046fa89cbbbdc95b2cea149a2df7c096c
+ languageName: node
+ linkType: hard
+
+"cli-truncate@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "cli-truncate@npm:2.1.0"
+ dependencies:
+ slice-ansi: ^3.0.0
+ string-width: ^4.2.0
+ checksum: bf1e4e6195392dc718bf9cd71f317b6300dc4a9191d052f31046b8773230ece4fa09458813bf0e3455a5e68c0690d2ea2c197d14a8b85a7b5e01c97f4b5feb5d
+ languageName: node
+ linkType: hard
+
+"color-convert@npm:^1.9.0":
+ version: 1.9.3
+ resolution: "color-convert@npm:1.9.3"
+ dependencies:
+ color-name: 1.1.3
+ checksum: fd7a64a17cde98fb923b1dd05c5f2e6f7aefda1b60d67e8d449f9328b4e53b228a428fd38bfeaeb2db2ff6b6503a776a996150b80cdf224062af08a5c8a3a203
+ languageName: node
+ linkType: hard
+
+"color-convert@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "color-convert@npm:2.0.1"
+ dependencies:
+ color-name: ~1.1.4
+ checksum: 79e6bdb9fd479a205c71d89574fccfb22bd9053bd98c6c4d870d65c132e5e904e6034978e55b43d69fcaa7433af2016ee203ce76eeba9cfa554b373e7f7db336
+ languageName: node
+ linkType: hard
+
+"color-name@npm:1.1.3":
+ version: 1.1.3
+ resolution: "color-name@npm:1.1.3"
+ checksum: 09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d
+ languageName: node
+ linkType: hard
+
+"color-name@npm:~1.1.4":
+ version: 1.1.4
+ resolution: "color-name@npm:1.1.4"
+ checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610
+ languageName: node
+ linkType: hard
+
+"colorette@npm:^2.0.16":
+ version: 2.0.20
+ resolution: "colorette@npm:2.0.20"
+ checksum: 0c016fea2b91b733eb9f4bcdb580018f52c0bc0979443dad930e5037a968237ac53d9beb98e218d2e9235834f8eebce7f8e080422d6194e957454255bde71d3d
+ languageName: node
+ linkType: hard
+
+"combined-stream@npm:^1.0.6, combined-stream@npm:~1.0.6":
+ version: 1.0.8
+ resolution: "combined-stream@npm:1.0.8"
+ dependencies:
+ delayed-stream: ~1.0.0
+ checksum: 49fa4aeb4916567e33ea81d088f6584749fc90c7abec76fd516bf1c5aa5c79f3584b5ba3de6b86d26ddd64bae5329c4c7479343250cfe71c75bb366eae53bb7c
+ languageName: node
+ linkType: hard
+
+"commander@npm:^6.2.1":
+ version: 6.2.1
+ resolution: "commander@npm:6.2.1"
+ checksum: d7090410c0de6bc5c67d3ca41c41760d6d268f3c799e530aafb73b7437d1826bbf0d2a3edac33f8b57cc9887b4a986dce307fa5557e109be40eadb7c43b21742
+ languageName: node
+ linkType: hard
+
+"common-tags@npm:^1.8.0":
+ version: 1.8.2
+ resolution: "common-tags@npm:1.8.2"
+ checksum: 767a6255a84bbc47df49a60ab583053bb29a7d9687066a18500a516188a062c4e4cd52de341f22de0b07062e699b1b8fe3cfa1cb55b241cb9301aeb4f45b4dff
+ languageName: node
+ linkType: hard
+
+"concat-map@npm:0.0.1":
+ version: 0.0.1
+ resolution: "concat-map@npm:0.0.1"
+ checksum: 902a9f5d8967a3e2faf138d5cb784b9979bad2e6db5357c5b21c568df4ebe62bcb15108af1b2253744844eb964fc023fbd9afbbbb6ddd0bcc204c6fb5b7bf3af
+ languageName: node
+ linkType: hard
+
+"core-util-is@npm:1.0.2":
+ version: 1.0.2
+ resolution: "core-util-is@npm:1.0.2"
+ checksum: 7a4c925b497a2c91421e25bf76d6d8190f0b2359a9200dbeed136e63b2931d6294d3b1893eda378883ed363cd950f44a12a401384c609839ea616befb7927dab
+ languageName: node
+ linkType: hard
+
+"cross-spawn@npm:^7.0.0":
+ version: 7.0.3
+ resolution: "cross-spawn@npm:7.0.3"
+ dependencies:
+ path-key: ^3.1.0
+ shebang-command: ^2.0.0
+ which: ^2.0.1
+ checksum: 671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52
+ languageName: node
+ linkType: hard
+
+"css.escape@npm:^1.5.1":
+ version: 1.5.1
+ resolution: "css.escape@npm:1.5.1"
+ checksum: f6d38088d870a961794a2580b2b2af1027731bb43261cfdce14f19238a88664b351cc8978abc20f06cc6bbde725699dec8deb6fe9816b139fc3f2af28719e774
+ languageName: node
+ linkType: hard
+
+"css@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "css@npm:3.0.0"
+ dependencies:
+ inherits: ^2.0.4
+ source-map: ^0.6.1
+ source-map-resolve: ^0.6.0
+ checksum: 4273ac816ddf99b99acb9c1d1a27d86d266a533cc01118369d941d8e8a78277a83cad3315e267a398c509d930fbb86504e193ea1ebc620a4a4212e06fe76e8be
+ languageName: node
+ linkType: hard
+
+"csstype@npm:^3.0.2":
+ version: 3.1.2
+ resolution: "csstype@npm:3.1.2"
+ checksum: e1a52e6c25c1314d6beef5168da704ab29c5186b877c07d822bd0806717d9a265e8493a2e35ca7e68d0f5d472d43fac1cdce70fd79fd0853dff81f3028d857b5
+ languageName: node
+ linkType: hard
+
+"cypress-axe@npm:1.5.0":
+ version: 1.5.0
+ resolution: "cypress-axe@npm:1.5.0"
+ peerDependencies:
+ axe-core: ^3 || ^4
+ cypress: ^10 || ^11 || ^12 || ^13
+ checksum: 7b5574da4ea2c1a1141f79cb4465a4f30879e30b9ac08da4aca935dfc7662d3fa170254be8c4eff26841bc065e6115bf6e6b8a8eee5ff7cb9812bbcbeb863ff2
+ languageName: node
+ linkType: hard
+
+"cypress-file-upload@npm:5.0.8":
+ version: 5.0.8
+ resolution: "cypress-file-upload@npm:5.0.8"
+ peerDependencies:
+ cypress: ">3.0.0"
+ checksum: 9c70ca7e0bb137d0ec0b8d38987219ce15b26ac3a40e3ed4e78e6ad4690392eab905586848eec6ad8edd42ee480e68ccc63007b2ebd0a02f4b3eca116ff017e3
+ languageName: node
+ linkType: hard
+
+"cypress@npm:13.1.0":
+ version: 13.1.0
+ resolution: "cypress@npm:13.1.0"
+ dependencies:
+ "@cypress/request": ^3.0.0
+ "@cypress/xvfb": ^1.2.4
+ "@types/node": ^16.18.39
+ "@types/sinonjs__fake-timers": 8.1.1
+ "@types/sizzle": ^2.3.2
+ arch: ^2.2.0
+ blob-util: ^2.0.2
+ bluebird: ^3.7.2
+ buffer: ^5.6.0
+ cachedir: ^2.3.0
+ chalk: ^4.1.0
+ check-more-types: ^2.24.0
+ cli-cursor: ^3.1.0
+ cli-table3: ~0.6.1
+ commander: ^6.2.1
+ common-tags: ^1.8.0
+ dayjs: ^1.10.4
+ debug: ^4.3.4
+ enquirer: ^2.3.6
+ eventemitter2: 6.4.7
+ execa: 4.1.0
+ executable: ^4.1.1
+ extract-zip: 2.0.1
+ figures: ^3.2.0
+ fs-extra: ^9.1.0
+ getos: ^3.2.1
+ is-ci: ^3.0.0
+ is-installed-globally: ~0.4.0
+ lazy-ass: ^1.6.0
+ listr2: ^3.8.3
+ lodash: ^4.17.21
+ log-symbols: ^4.0.0
+ minimist: ^1.2.8
+ ospath: ^1.2.2
+ pretty-bytes: ^5.6.0
+ process: ^0.11.10
+ proxy-from-env: 1.0.0
+ request-progress: ^3.0.0
+ semver: ^7.5.3
+ supports-color: ^8.1.1
+ tmp: ~0.2.1
+ untildify: ^4.0.0
+ yauzl: ^2.10.0
+ bin:
+ cypress: bin/cypress
+ checksum: 238057b288f54401ad3fa8693c31ec08eef2d98a7fc93ce7f60bc009fcae18539e84be4c1cd41526816603f642f63444a7adce9d914b1338a53c0bf756bdb762
+ languageName: node
+ linkType: hard
+
+"dashdash@npm:^1.12.0":
+ version: 1.14.1
+ resolution: "dashdash@npm:1.14.1"
+ dependencies:
+ assert-plus: ^1.0.0
+ checksum: 3634c249570f7f34e3d34f866c93f866c5b417f0dd616275decae08147dcdf8fccfaa5947380ccfb0473998ea3a8057c0b4cd90c875740ee685d0624b2983598
+ languageName: node
+ linkType: hard
+
+"dayjs@npm:^1.10.4":
+ version: 1.11.10
+ resolution: "dayjs@npm:1.11.10"
+ checksum: a6b5a3813b8884f5cd557e2e6b7fa569f4c5d0c97aca9558e38534af4f2d60daafd3ff8c2000fed3435cfcec9e805bcebd99f90130c6d1c5ef524084ced588c4
+ languageName: node
+ linkType: hard
+
+"debug@npm:^3.1.0":
+ version: 3.2.7
+ resolution: "debug@npm:3.2.7"
+ dependencies:
+ ms: ^2.1.1
+ checksum: b3d8c5940799914d30314b7c3304a43305fd0715581a919dacb8b3176d024a782062368405b47491516d2091d6462d4d11f2f4974a405048094f8bfebfa3071c
+ languageName: node
+ linkType: hard
+
+"debug@npm:^4.1.1, debug@npm:^4.3.4":
+ version: 4.3.4
+ resolution: "debug@npm:4.3.4"
+ dependencies:
+ ms: 2.1.2
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708
+ languageName: node
+ linkType: hard
+
+"decode-uri-component@npm:^0.2.0":
+ version: 0.2.2
+ resolution: "decode-uri-component@npm:0.2.2"
+ checksum: 95476a7d28f267292ce745eac3524a9079058bbb35767b76e3ee87d42e34cd0275d2eb19d9d08c3e167f97556e8a2872747f5e65cbebcac8b0c98d83e285f139
+ languageName: node
+ linkType: hard
+
+"deep-equal@npm:^2.0.5":
+ version: 2.2.3
+ resolution: "deep-equal@npm:2.2.3"
+ 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
+ checksum: ee8852f23e4d20a5626c13b02f415ba443a1b30b4b3d39eaf366d59c4a85e6545d7ec917db44d476a85ae5a86064f7e5f7af7479f38f113995ba869f3a1ddc53
+ languageName: node
+ linkType: hard
+
+"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "define-data-property@npm:1.1.1"
+ dependencies:
+ get-intrinsic: ^1.2.1
+ gopd: ^1.0.1
+ has-property-descriptors: ^1.0.0
+ checksum: a29855ad3f0630ea82e3c5012c812efa6ca3078d5c2aa8df06b5f597c1cde6f7254692df41945851d903e05a1668607b6d34e778f402b9ff9ffb38111f1a3f0d
+ languageName: node
+ linkType: hard
+
+"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4, define-properties@npm:^1.2.0":
+ version: 1.2.1
+ resolution: "define-properties@npm:1.2.1"
+ dependencies:
+ define-data-property: ^1.0.1
+ has-property-descriptors: ^1.0.0
+ object-keys: ^1.1.1
+ checksum: b4ccd00597dd46cb2d4a379398f5b19fca84a16f3374e2249201992f36b30f6835949a9429669ee6b41b6e837205a163eadd745e472069e70dfc10f03e5fcc12
+ languageName: node
+ linkType: hard
+
+"delayed-stream@npm:~1.0.0":
+ version: 1.0.0
+ resolution: "delayed-stream@npm:1.0.0"
+ checksum: 46fe6e83e2cb1d85ba50bd52803c68be9bd953282fa7096f51fc29edd5d67ff84ff753c51966061e5ba7cb5e47ef6d36a91924eddb7f3f3483b1c560f77a0020
+ languageName: node
+ linkType: hard
+
+"dequal@npm:^2.0.3":
+ version: 2.0.3
+ resolution: "dequal@npm:2.0.3"
+ checksum: 8679b850e1a3d0ebbc46ee780d5df7b478c23f335887464023a631d1b9af051ad4a6595a44220f9ff8ff95a8ddccf019b5ad778a976fd7bbf77383d36f412f90
+ languageName: node
+ linkType: hard
+
+"diff-sequences@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "diff-sequences@npm:29.6.3"
+ checksum: f4914158e1f2276343d98ff5b31fc004e7304f5470bf0f1adb2ac6955d85a531a6458d33e87667f98f6ae52ebd3891bb47d420bb48a5bd8b7a27ee25b20e33aa
+ languageName: node
+ linkType: hard
+
+"dom-accessibility-api@npm:^0.5.6, dom-accessibility-api@npm:^0.5.9":
+ version: 0.5.16
+ resolution: "dom-accessibility-api@npm:0.5.16"
+ checksum: 005eb283caef57fc1adec4d5df4dd49189b628f2f575af45decb210e04d634459e3f1ee64f18b41e2dcf200c844bc1d9279d80807e686a30d69a4756151ad248
+ languageName: node
+ linkType: hard
+
+"ecc-jsbn@npm:~0.1.1":
+ version: 0.1.2
+ resolution: "ecc-jsbn@npm:0.1.2"
+ dependencies:
+ jsbn: ~0.1.0
+ safer-buffer: ^2.1.0
+ checksum: 22fef4b6203e5f31d425f5b711eb389e4c6c2723402e389af394f8411b76a488fa414d309d866e2b577ce3e8462d344205545c88a8143cc21752a5172818888a
+ languageName: node
+ linkType: hard
+
+"emoji-regex@npm:^8.0.0":
+ version: 8.0.0
+ resolution: "emoji-regex@npm:8.0.0"
+ checksum: d4c5c39d5a9868b5fa152f00cada8a936868fd3367f33f71be515ecee4c803132d11b31a6222b2571b1e5f7e13890156a94880345594d0ce7e3c9895f560f192
+ languageName: node
+ linkType: hard
+
+"end-of-stream@npm:^1.1.0":
+ version: 1.4.4
+ resolution: "end-of-stream@npm:1.4.4"
+ dependencies:
+ once: ^1.4.0
+ checksum: 530a5a5a1e517e962854a31693dbb5c0b2fc40b46dad2a56a2deec656ca040631124f4795823acc68238147805f8b021abbe221f4afed5ef3c8e8efc2024908b
+ languageName: node
+ linkType: hard
+
+"enquirer@npm:^2.3.6":
+ version: 2.4.1
+ resolution: "enquirer@npm:2.4.1"
+ dependencies:
+ ansi-colors: ^4.1.1
+ strip-ansi: ^6.0.1
+ checksum: f080f11a74209647dbf347a7c6a83c8a47ae1ebf1e75073a808bc1088eb780aa54075bfecd1bcdb3e3c724520edb8e6ee05da031529436b421b71066fcc48cb5
+ languageName: node
+ linkType: hard
+
+"es-get-iterator@npm:^1.1.3":
+ version: 1.1.3
+ resolution: "es-get-iterator@npm:1.1.3"
+ 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
+ checksum: 8fa118da42667a01a7c7529f8a8cca514feeff243feec1ce0bb73baaa3514560bd09d2b3438873cf8a5aaec5d52da248131de153b28e2638a061b6e4df13267d
+ languageName: node
+ linkType: hard
+
+"escape-string-regexp@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "escape-string-regexp@npm:1.0.5"
+ checksum: 6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410
+ languageName: node
+ linkType: hard
+
+"escape-string-regexp@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "escape-string-regexp@npm:2.0.0"
+ checksum: 9f8a2d5743677c16e85c810e3024d54f0c8dea6424fad3c79ef6666e81dd0846f7437f5e729dfcdac8981bc9e5294c39b4580814d114076b8d36318f46ae4395
+ languageName: node
+ linkType: hard
+
+"eventemitter2@npm:6.4.7":
+ version: 6.4.7
+ resolution: "eventemitter2@npm:6.4.7"
+ checksum: 1b36a77e139d6965ebf3a36c01fa00c089ae6b80faa1911e52888f40b3a7057b36a2cc45dcd1ad87cda3798fe7b97a0aabcbb8175a8b96092a23bb7d0f039e66
+ languageName: node
+ linkType: hard
+
+"execa@npm:4.1.0":
+ version: 4.1.0
+ resolution: "execa@npm:4.1.0"
+ dependencies:
+ cross-spawn: ^7.0.0
+ get-stream: ^5.0.0
+ human-signals: ^1.1.1
+ is-stream: ^2.0.0
+ merge-stream: ^2.0.0
+ npm-run-path: ^4.0.0
+ onetime: ^5.1.0
+ signal-exit: ^3.0.2
+ strip-final-newline: ^2.0.0
+ checksum: e30d298934d9c52f90f3847704fd8224e849a081ab2b517bbc02f5f7732c24e56a21f14cb96a08256deffeb2d12b2b7cb7e2b014a12fb36f8d3357e06417ed55
+ languageName: node
+ linkType: hard
+
+"executable@npm:^4.1.1":
+ version: 4.1.1
+ resolution: "executable@npm:4.1.1"
+ dependencies:
+ pify: ^2.2.0
+ checksum: f01927ce59bccec804e171bf859a26e362c1f50aa9ebc69f7cafdcce3859d29d4b6267fd47237c18b0a1830614bd3f0ee14b7380d9bad18a4e7af9b5f0b6984f
+ languageName: node
+ linkType: hard
+
+"expect@npm:^29.0.0":
+ version: 29.7.0
+ resolution: "expect@npm:29.7.0"
+ dependencies:
+ "@jest/expect-utils": ^29.7.0
+ jest-get-type: ^29.6.3
+ jest-matcher-utils: ^29.7.0
+ jest-message-util: ^29.7.0
+ jest-util: ^29.7.0
+ checksum: 9257f10288e149b81254a0fda8ffe8d54a7061cd61d7515779998b012579d2b8c22354b0eb901daf0145f347403da582f75f359f4810c007182ad3fb318b5c0c
+ languageName: node
+ linkType: hard
+
+"extend@npm:~3.0.2":
+ version: 3.0.2
+ resolution: "extend@npm:3.0.2"
+ checksum: a50a8309ca65ea5d426382ff09f33586527882cf532931cb08ca786ea3146c0553310bda688710ff61d7668eba9f96b923fe1420cdf56a2c3eaf30fcab87b515
+ languageName: node
+ linkType: hard
+
+"extract-zip@npm:2.0.1":
+ version: 2.0.1
+ resolution: "extract-zip@npm:2.0.1"
+ dependencies:
+ "@types/yauzl": ^2.9.1
+ debug: ^4.1.1
+ get-stream: ^5.1.0
+ yauzl: ^2.10.0
+ dependenciesMeta:
+ "@types/yauzl":
+ optional: true
+ bin:
+ extract-zip: cli.js
+ checksum: 8cbda9debdd6d6980819cc69734d874ddd71051c9fe5bde1ef307ebcedfe949ba57b004894b585f758b7c9eeeea0e3d87f2dda89b7d25320459c2c9643ebb635
+ languageName: node
+ linkType: hard
+
+"extsprintf@npm:1.3.0":
+ version: 1.3.0
+ resolution: "extsprintf@npm:1.3.0"
+ checksum: cee7a4a1e34cffeeec18559109de92c27517e5641991ec6bab849aa64e3081022903dd53084f2080d0d2530803aa5ee84f1e9de642c365452f9e67be8f958ce2
+ languageName: node
+ linkType: hard
+
+"extsprintf@npm:^1.2.0":
+ version: 1.4.1
+ resolution: "extsprintf@npm:1.4.1"
+ checksum: a2f29b241914a8d2bad64363de684821b6b1609d06ae68d5b539e4de6b28659715b5bea94a7265201603713b7027d35399d10b0548f09071c5513e65e8323d33
+ languageName: node
+ linkType: hard
+
+"fd-slicer@npm:~1.1.0":
+ version: 1.1.0
+ resolution: "fd-slicer@npm:1.1.0"
+ dependencies:
+ pend: ~1.2.0
+ checksum: c8585fd5713f4476eb8261150900d2cb7f6ff2d87f8feb306ccc8a1122efd152f1783bdb2b8dc891395744583436bfd8081d8e63ece0ec8687eeefea394d4ff2
+ languageName: node
+ linkType: hard
+
+"figures@npm:^3.2.0":
+ version: 3.2.0
+ resolution: "figures@npm:3.2.0"
+ dependencies:
+ escape-string-regexp: ^1.0.5
+ checksum: 85a6ad29e9aca80b49b817e7c89ecc4716ff14e3779d9835af554db91bac41c0f289c418923519392a1e582b4d10482ad282021330cd045bb7b80c84152f2a2b
+ languageName: node
+ linkType: hard
+
+"fill-range@npm:^7.0.1":
+ version: 7.0.1
+ resolution: "fill-range@npm:7.0.1"
+ dependencies:
+ to-regex-range: ^5.0.1
+ checksum: cc283f4e65b504259e64fd969bcf4def4eb08d85565e906b7d36516e87819db52029a76b6363d0f02d0d532f0033c9603b9e2d943d56ee3b0d4f7ad3328ff917
+ languageName: node
+ linkType: hard
+
+"for-each@npm:^0.3.3":
+ version: 0.3.3
+ resolution: "for-each@npm:0.3.3"
+ dependencies:
+ is-callable: ^1.1.3
+ checksum: 6c48ff2bc63362319c65e2edca4a8e1e3483a2fabc72fbe7feaf8c73db94fc7861bd53bc02c8a66a0c1dd709da6b04eec42e0abdd6b40ce47305ae92a25e5d28
+ languageName: node
+ linkType: hard
+
+"forever-agent@npm:~0.6.1":
+ version: 0.6.1
+ resolution: "forever-agent@npm:0.6.1"
+ checksum: 766ae6e220f5fe23676bb4c6a99387cec5b7b62ceb99e10923376e27bfea72f3c3aeec2ba5f45f3f7ba65d6616965aa7c20b15002b6860833bb6e394dea546a8
+ languageName: node
+ linkType: hard
+
+"form-data@npm:~2.3.2":
+ version: 2.3.3
+ resolution: "form-data@npm:2.3.3"
+ dependencies:
+ asynckit: ^0.4.0
+ combined-stream: ^1.0.6
+ mime-types: ^2.1.12
+ checksum: 10c1780fa13dbe1ff3100114c2ce1f9307f8be10b14bf16e103815356ff567b6be39d70fc4a40f8990b9660012dc24b0f5e1dde1b6426166eb23a445ba068ca3
+ languageName: node
+ linkType: hard
+
+"fs-extra@npm:^9.1.0":
+ version: 9.1.0
+ resolution: "fs-extra@npm:9.1.0"
+ dependencies:
+ at-least-node: ^1.0.0
+ graceful-fs: ^4.2.0
+ jsonfile: ^6.0.1
+ universalify: ^2.0.0
+ checksum: ba71ba32e0faa74ab931b7a0031d1523c66a73e225de7426e275e238e312d07313d2da2d33e34a52aa406c8763ade5712eb3ec9ba4d9edce652bcacdc29e6b20
+ languageName: node
+ linkType: hard
+
+"fs.realpath@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "fs.realpath@npm:1.0.0"
+ checksum: 99ddea01a7e75aa276c250a04eedeffe5662bce66c65c07164ad6264f9de18fb21be9433ead460e54cff20e31721c811f4fb5d70591799df5f85dce6d6746fd0
+ languageName: node
+ linkType: hard
+
+"function-bind@npm:^1.1.2":
+ version: 1.1.2
+ resolution: "function-bind@npm:1.1.2"
+ checksum: 2b0ff4ce708d99715ad14a6d1f894e2a83242e4a52ccfcefaee5e40050562e5f6dafc1adbb4ce2d4ab47279a45dc736ab91ea5042d843c3c092820dfe032efb1
+ languageName: node
+ linkType: hard
+
+"functions-have-names@npm:^1.2.3":
+ version: 1.2.3
+ resolution: "functions-have-names@npm:1.2.3"
+ checksum: c3f1f5ba20f4e962efb71344ce0a40722163e85bee2101ce25f88214e78182d2d2476aa85ef37950c579eb6cf6ee811c17b3101bb84004bb75655f3e33f3fdb5
+ languageName: node
+ linkType: hard
+
+"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.0, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.2":
+ version: 1.2.2
+ resolution: "get-intrinsic@npm:1.2.2"
+ dependencies:
+ function-bind: ^1.1.2
+ has-proto: ^1.0.1
+ has-symbols: ^1.0.3
+ hasown: ^2.0.0
+ checksum: 447ff0724df26829908dc033b62732359596fcf66027bc131ab37984afb33842d9cd458fd6cecadfe7eac22fd8a54b349799ed334cf2726025c921c7250e7417
+ languageName: node
+ linkType: hard
+
+"get-stream@npm:^5.0.0, get-stream@npm:^5.1.0":
+ version: 5.2.0
+ resolution: "get-stream@npm:5.2.0"
+ dependencies:
+ pump: ^3.0.0
+ checksum: 8bc1a23174a06b2b4ce600df38d6c98d2ef6d84e020c1ddad632ad75bac4e092eeb40e4c09e0761c35fc2dbc5e7fff5dab5e763a383582c4a167dd69a905bd12
+ languageName: node
+ linkType: hard
+
+"getos@npm:^3.2.1":
+ version: 3.2.1
+ resolution: "getos@npm:3.2.1"
+ dependencies:
+ async: ^3.2.0
+ checksum: 42fd78a66d47cebd3e09de5566cc0044e034b08f4a000a310dbd89a77b02c65d8f4002554bfa495ea5bdc4fa9d515f5ac785a7cc474ba45383cc697f865eeaf1
+ languageName: node
+ linkType: hard
+
+"getpass@npm:^0.1.1":
+ version: 0.1.7
+ resolution: "getpass@npm:0.1.7"
+ dependencies:
+ assert-plus: ^1.0.0
+ checksum: ab18d55661db264e3eac6012c2d3daeafaab7a501c035ae0ccb193c3c23e9849c6e29b6ac762b9c2adae460266f925d55a3a2a3a3c8b94be2f222df94d70c046
+ languageName: node
+ linkType: hard
+
+"glob@npm:^7.1.3":
+ version: 7.2.3
+ resolution: "glob@npm:7.2.3"
+ 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
+ checksum: 29452e97b38fa704dabb1d1045350fb2467cf0277e155aa9ff7077e90ad81d1ea9d53d3ee63bd37c05b09a065e90f16aec4a65f5b8de401d1dac40bc5605d133
+ languageName: node
+ linkType: hard
+
+"global-dirs@npm:^3.0.0":
+ version: 3.0.1
+ resolution: "global-dirs@npm:3.0.1"
+ dependencies:
+ ini: 2.0.0
+ checksum: 70147b80261601fd40ac02a104581432325c1c47329706acd773f3a6ce99bb36d1d996038c85ccacd482ad22258ec233c586b6a91535b1a116b89663d49d6438
+ languageName: node
+ linkType: hard
+
+"gopd@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "gopd@npm:1.0.1"
+ dependencies:
+ get-intrinsic: ^1.1.3
+ checksum: a5ccfb8806e0917a94e0b3de2af2ea4979c1da920bc381667c260e00e7cafdbe844e2cb9c5bcfef4e5412e8bf73bab837285bc35c7ba73aaaf0134d4583393a6
+ languageName: node
+ linkType: hard
+
+"graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.9":
+ version: 4.2.11
+ resolution: "graceful-fs@npm:4.2.11"
+ checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7
+ languageName: node
+ linkType: hard
+
+"has-bigints@npm:^1.0.1":
+ version: 1.0.2
+ resolution: "has-bigints@npm:1.0.2"
+ checksum: 390e31e7be7e5c6fe68b81babb73dfc35d413604d7ee5f56da101417027a4b4ce6a27e46eff97ad040c835b5d228676eae99a9b5c3bc0e23c8e81a49241ff45b
+ languageName: node
+ linkType: hard
+
+"has-flag@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "has-flag@npm:3.0.0"
+ checksum: 4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b
+ languageName: node
+ linkType: hard
+
+"has-flag@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "has-flag@npm:4.0.0"
+ checksum: 261a1357037ead75e338156b1f9452c016a37dcd3283a972a30d9e4a87441ba372c8b81f818cd0fbcd9c0354b4ae7e18b9e1afa1971164aef6d18c2b6095a8ad
+ languageName: node
+ linkType: hard
+
+"has-property-descriptors@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "has-property-descriptors@npm:1.0.1"
+ dependencies:
+ get-intrinsic: ^1.2.2
+ checksum: 2bcc6bf6ec6af375add4e4b4ef586e43674850a91ad4d46666d0b28ba8e1fd69e424c7677d24d60f69470ad0afaa2f3197f508b20b0bb7dd99a8ab77ffc4b7c4
+ languageName: node
+ linkType: hard
+
+"has-proto@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "has-proto@npm:1.0.1"
+ checksum: febc5b5b531de8022806ad7407935e2135f1cc9e64636c3916c6842bd7995994ca3b29871ecd7954bd35f9e2986c17b3b227880484d22259e2f8e6ce63fd383e
+ languageName: node
+ linkType: hard
+
+"has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3":
+ version: 1.0.3
+ resolution: "has-symbols@npm:1.0.3"
+ checksum: a054c40c631c0d5741a8285010a0777ea0c068f99ed43e5d6eb12972da223f8af553a455132fdb0801bdcfa0e0f443c0c03a68d8555aa529b3144b446c3f2410
+ languageName: node
+ linkType: hard
+
+"has-tostringtag@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "has-tostringtag@npm:1.0.0"
+ dependencies:
+ has-symbols: ^1.0.2
+ checksum: cc12eb28cb6ae22369ebaad3a8ab0799ed61270991be88f208d508076a1e99abe4198c965935ce85ea90b60c94ddda73693b0920b58e7ead048b4a391b502c1c
+ languageName: node
+ linkType: hard
+
+"hasown@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "hasown@npm:2.0.0"
+ dependencies:
+ function-bind: ^1.1.2
+ checksum: 6151c75ca12554565098641c98a40f4cc86b85b0fd5b6fe92360967e4605a4f9610f7757260b4e8098dd1c2ce7f4b095f2006fe72a570e3b6d2d28de0298c176
+ languageName: node
+ linkType: hard
+
+"http-signature@npm:~1.3.6":
+ version: 1.3.6
+ resolution: "http-signature@npm:1.3.6"
+ dependencies:
+ assert-plus: ^1.0.0
+ jsprim: ^2.0.2
+ sshpk: ^1.14.1
+ checksum: 10be2af4764e71fee0281392937050201ee576ac755c543f570d6d87134ce5e858663fe999a7adb3e4e368e1e356d0d7fec6b9542295b875726ff615188e7a0c
+ languageName: node
+ linkType: hard
+
+"human-signals@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "human-signals@npm:1.1.1"
+ checksum: d587647c9e8ec24e02821b6be7de5a0fc37f591f6c4e319b3054b43fd4c35a70a94c46fc74d8c1a43c47fde157d23acd7421f375e1c1365b09a16835b8300205
+ languageName: node
+ linkType: hard
+
+"ieee754@npm:^1.1.13":
+ version: 1.2.1
+ resolution: "ieee754@npm:1.2.1"
+ checksum: 5144c0c9815e54ada181d80a0b810221a253562422e7c6c3a60b1901154184f49326ec239d618c416c1c5945a2e197107aee8d986a3dd836b53dffefd99b5e7e
+ languageName: node
+ linkType: hard
+
+"indent-string@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "indent-string@npm:4.0.0"
+ checksum: 824cfb9929d031dabf059bebfe08cf3137365e112019086ed3dcff6a0a7b698cb80cf67ccccde0e25b9e2d7527aa6cc1fed1ac490c752162496caba3e6699612
+ languageName: node
+ linkType: hard
+
+"inflight@npm:^1.0.4":
+ version: 1.0.6
+ resolution: "inflight@npm:1.0.6"
+ dependencies:
+ once: ^1.3.0
+ wrappy: 1
+ checksum: f4f76aa072ce19fae87ce1ef7d221e709afb59d445e05d47fba710e85470923a75de35bfae47da6de1b18afc3ce83d70facf44cfb0aff89f0a3f45c0a0244dfd
+ languageName: node
+ linkType: hard
+
+"inherits@npm:2, inherits@npm:^2.0.4":
+ version: 2.0.4
+ resolution: "inherits@npm:2.0.4"
+ checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1
+ languageName: node
+ linkType: hard
+
+"ini@npm:2.0.0":
+ version: 2.0.0
+ resolution: "ini@npm:2.0.0"
+ checksum: e7aadc5fb2e4aefc666d74ee2160c073995a4061556b1b5b4241ecb19ad609243b9cceafe91bae49c219519394bbd31512516cb22a3b1ca6e66d869e0447e84e
+ languageName: node
+ linkType: hard
+
+"internal-slot@npm:^1.0.4":
+ version: 1.0.6
+ resolution: "internal-slot@npm:1.0.6"
+ dependencies:
+ get-intrinsic: ^1.2.2
+ hasown: ^2.0.0
+ side-channel: ^1.0.4
+ checksum: 7872454888047553ce97a3fa1da7cc054a28ec5400a9c2e9f4dbe4fe7c1d041cb8e8301467614b80d4246d50377aad2fb58860b294ed74d6700cc346b6f89549
+ languageName: node
+ linkType: hard
+
+"is-arguments@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "is-arguments@npm:1.1.1"
+ dependencies:
+ call-bind: ^1.0.2
+ has-tostringtag: ^1.0.0
+ checksum: 7f02700ec2171b691ef3e4d0e3e6c0ba408e8434368504bb593d0d7c891c0dbfda6d19d30808b904a6cb1929bca648c061ba438c39f296c2a8ca083229c49f27
+ languageName: node
+ linkType: hard
+
+"is-array-buffer@npm:^3.0.1, is-array-buffer@npm:^3.0.2":
+ version: 3.0.2
+ resolution: "is-array-buffer@npm:3.0.2"
+ dependencies:
+ call-bind: ^1.0.2
+ get-intrinsic: ^1.2.0
+ is-typed-array: ^1.1.10
+ checksum: dcac9dda66ff17df9cabdc58214172bf41082f956eab30bb0d86bc0fab1e44b690fc8e1f855cf2481245caf4e8a5a006a982a71ddccec84032ed41f9d8da8c14
+ languageName: node
+ linkType: hard
+
+"is-bigint@npm:^1.0.1":
+ version: 1.0.4
+ resolution: "is-bigint@npm:1.0.4"
+ dependencies:
+ has-bigints: ^1.0.1
+ checksum: c56edfe09b1154f8668e53ebe8252b6f185ee852a50f9b41e8d921cb2bed425652049fbe438723f6cb48a63ca1aa051e948e7e401e093477c99c84eba244f666
+ languageName: node
+ linkType: hard
+
+"is-boolean-object@npm:^1.1.0":
+ version: 1.1.2
+ resolution: "is-boolean-object@npm:1.1.2"
+ dependencies:
+ call-bind: ^1.0.2
+ has-tostringtag: ^1.0.0
+ checksum: c03b23dbaacadc18940defb12c1c0e3aaece7553ef58b162a0f6bba0c2a7e1551b59f365b91e00d2dbac0522392d576ef322628cb1d036a0fe51eb466db67222
+ languageName: node
+ linkType: hard
+
+"is-callable@npm:^1.1.3":
+ version: 1.2.7
+ resolution: "is-callable@npm:1.2.7"
+ checksum: 61fd57d03b0d984e2ed3720fb1c7a897827ea174bd44402878e059542ea8c4aeedee0ea0985998aa5cc2736b2fa6e271c08587addb5b3959ac52cf665173d1ac
+ languageName: node
+ linkType: hard
+
+"is-ci@npm:^3.0.0":
+ version: 3.0.1
+ resolution: "is-ci@npm:3.0.1"
+ dependencies:
+ ci-info: ^3.2.0
+ bin:
+ is-ci: bin.js
+ checksum: 192c66dc7826d58f803ecae624860dccf1899fc1f3ac5505284c0a5cf5f889046ffeb958fa651e5725d5705c5bcb14f055b79150ea5fcad7456a9569de60260e
+ languageName: node
+ linkType: hard
+
+"is-date-object@npm:^1.0.5":
+ version: 1.0.5
+ resolution: "is-date-object@npm:1.0.5"
+ dependencies:
+ has-tostringtag: ^1.0.0
+ checksum: baa9077cdf15eb7b58c79398604ca57379b2fc4cf9aa7a9b9e295278648f628c9b201400c01c5e0f7afae56507d741185730307cbe7cad3b9f90a77e5ee342fc
+ languageName: node
+ linkType: hard
+
+"is-fullwidth-code-point@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "is-fullwidth-code-point@npm:3.0.0"
+ checksum: 44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348
+ languageName: node
+ linkType: hard
+
+"is-installed-globally@npm:~0.4.0":
+ version: 0.4.0
+ resolution: "is-installed-globally@npm:0.4.0"
+ dependencies:
+ global-dirs: ^3.0.0
+ is-path-inside: ^3.0.2
+ checksum: 3359840d5982d22e9b350034237b2cda2a12bac1b48a721912e1ab8e0631dd07d45a2797a120b7b87552759a65ba03e819f1bd63f2d7ab8657ec0b44ee0bf399
+ languageName: node
+ linkType: hard
+
+"is-map@npm:^2.0.1, is-map@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "is-map@npm:2.0.2"
+ checksum: ace3d0ecd667bbdefdb1852de601268f67f2db725624b1958f279316e13fecb8fa7df91fd60f690d7417b4ec180712f5a7ee967008e27c65cfd475cc84337728
+ languageName: node
+ linkType: hard
+
+"is-number-object@npm:^1.0.4":
+ version: 1.0.7
+ resolution: "is-number-object@npm:1.0.7"
+ dependencies:
+ has-tostringtag: ^1.0.0
+ checksum: d1e8d01bb0a7134c74649c4e62da0c6118a0bfc6771ea3c560914d52a627873e6920dd0fd0ebc0e12ad2ff4687eac4c308f7e80320b973b2c8a2c8f97a7524f7
+ languageName: node
+ linkType: hard
+
+"is-number@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "is-number@npm:7.0.0"
+ checksum: 456ac6f8e0f3111ed34668a624e45315201dff921e5ac181f8ec24923b99e9f32ca1a194912dc79d539c97d33dba17dc635202ff0b2cf98326f608323276d27a
+ languageName: node
+ linkType: hard
+
+"is-path-inside@npm:^3.0.2":
+ version: 3.0.3
+ resolution: "is-path-inside@npm:3.0.3"
+ checksum: abd50f06186a052b349c15e55b182326f1936c89a78bf6c8f2b707412517c097ce04bc49a0ca221787bc44e1049f51f09a2ffb63d22899051988d3a618ba13e9
+ languageName: node
+ linkType: hard
+
+"is-regex@npm:^1.1.4":
+ version: 1.1.4
+ resolution: "is-regex@npm:1.1.4"
+ dependencies:
+ call-bind: ^1.0.2
+ has-tostringtag: ^1.0.0
+ checksum: 362399b33535bc8f386d96c45c9feb04cf7f8b41c182f54174c1a45c9abbbe5e31290bbad09a458583ff6bf3b2048672cdb1881b13289569a7c548370856a652
+ languageName: node
+ linkType: hard
+
+"is-set@npm:^2.0.1, is-set@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "is-set@npm:2.0.2"
+ checksum: b64343faf45e9387b97a6fd32be632ee7b269bd8183701f3b3f5b71a7cf00d04450ed8669d0bd08753e08b968beda96fca73a10fd0ff56a32603f64deba55a57
+ languageName: node
+ linkType: hard
+
+"is-shared-array-buffer@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "is-shared-array-buffer@npm:1.0.2"
+ dependencies:
+ call-bind: ^1.0.2
+ checksum: 9508929cf14fdc1afc9d61d723c6e8d34f5e117f0bffda4d97e7a5d88c3a8681f633a74f8e3ad1fe92d5113f9b921dc5ca44356492079612f9a247efbce7032a
+ languageName: node
+ linkType: hard
+
+"is-stream@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "is-stream@npm:2.0.1"
+ checksum: b8e05ccdf96ac330ea83c12450304d4a591f9958c11fd17bed240af8d5ffe08aedafa4c0f4cfccd4d28dc9d4d129daca1023633d5c11601a6cbc77521f6fae66
+ languageName: node
+ linkType: hard
+
+"is-string@npm:^1.0.5, is-string@npm:^1.0.7":
+ version: 1.0.7
+ resolution: "is-string@npm:1.0.7"
+ dependencies:
+ has-tostringtag: ^1.0.0
+ checksum: 323b3d04622f78d45077cf89aab783b2f49d24dc641aa89b5ad1a72114cfeff2585efc8c12ef42466dff32bde93d839ad321b26884cf75e5a7892a938b089989
+ languageName: node
+ linkType: hard
+
+"is-symbol@npm:^1.0.3":
+ version: 1.0.4
+ resolution: "is-symbol@npm:1.0.4"
+ dependencies:
+ has-symbols: ^1.0.2
+ checksum: 92805812ef590738d9de49d677cd17dfd486794773fb6fa0032d16452af46e9b91bb43ffe82c983570f015b37136f4b53b28b8523bfb10b0ece7a66c31a54510
+ languageName: node
+ linkType: hard
+
+"is-typed-array@npm:^1.1.10":
+ version: 1.1.12
+ resolution: "is-typed-array@npm:1.1.12"
+ dependencies:
+ which-typed-array: ^1.1.11
+ checksum: 4c89c4a3be07186caddadf92197b17fda663a9d259ea0d44a85f171558270d36059d1c386d34a12cba22dfade5aba497ce22778e866adc9406098c8fc4771796
+ languageName: node
+ linkType: hard
+
+"is-typedarray@npm:~1.0.0":
+ version: 1.0.0
+ resolution: "is-typedarray@npm:1.0.0"
+ checksum: 3508c6cd0a9ee2e0df2fa2e9baabcdc89e911c7bd5cf64604586697212feec525aa21050e48affb5ffc3df20f0f5d2e2cf79b08caa64e1ccc9578e251763aef7
+ languageName: node
+ linkType: hard
+
+"is-unicode-supported@npm:^0.1.0":
+ version: 0.1.0
+ resolution: "is-unicode-supported@npm:0.1.0"
+ checksum: a2aab86ee7712f5c2f999180daaba5f361bdad1efadc9610ff5b8ab5495b86e4f627839d085c6530363c6d6d4ecbde340fb8e54bdb83da4ba8e0865ed5513c52
+ languageName: node
+ linkType: hard
+
+"is-weakmap@npm:^2.0.1":
+ version: 2.0.1
+ resolution: "is-weakmap@npm:2.0.1"
+ checksum: 1222bb7e90c32bdb949226e66d26cb7bce12e1e28e3e1b40bfa6b390ba3e08192a8664a703dff2a00a84825f4e022f9cd58c4599ff9981ab72b1d69479f4f7f6
+ languageName: node
+ linkType: hard
+
+"is-weakset@npm:^2.0.1":
+ version: 2.0.2
+ resolution: "is-weakset@npm:2.0.2"
+ dependencies:
+ call-bind: ^1.0.2
+ get-intrinsic: ^1.1.1
+ checksum: 5d8698d1fa599a0635d7ca85be9c26d547b317ed8fd83fc75f03efbe75d50001b5eececb1e9971de85fcde84f69ae6f8346bc92d20d55d46201d328e4c74a367
+ languageName: node
+ linkType: hard
+
+"isarray@npm:^2.0.5":
+ version: 2.0.5
+ resolution: "isarray@npm:2.0.5"
+ checksum: bd5bbe4104438c4196ba58a54650116007fa0262eccef13a4c55b2e09a5b36b59f1e75b9fcc49883dd9d4953892e6fc007eef9e9155648ceea036e184b0f930a
+ languageName: node
+ linkType: hard
+
+"isexe@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "isexe@npm:2.0.0"
+ checksum: 26bf6c5480dda5161c820c5b5c751ae1e766c587b1f951ea3fcfc973bafb7831ae5b54a31a69bd670220e42e99ec154475025a468eae58ea262f813fdc8d1c62
+ languageName: node
+ linkType: hard
+
+"isstream@npm:~0.1.2":
+ version: 0.1.2
+ resolution: "isstream@npm:0.1.2"
+ checksum: 1eb2fe63a729f7bdd8a559ab552c69055f4f48eb5c2f03724430587c6f450783c8f1cd936c1c952d0a927925180fcc892ebd5b174236cf1065d4bd5bdb37e963
+ languageName: node
+ linkType: hard
+
+"jest-diff@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-diff@npm:29.7.0"
+ dependencies:
+ chalk: ^4.0.0
+ diff-sequences: ^29.6.3
+ jest-get-type: ^29.6.3
+ pretty-format: ^29.7.0
+ checksum: 08e24a9dd43bfba1ef07a6374e5af138f53137b79ec3d5cc71a2303515335898888fa5409959172e1e05de966c9e714368d15e8994b0af7441f0721ee8e1bb77
+ languageName: node
+ linkType: hard
+
+"jest-get-type@npm:^29.6.3":
+ version: 29.6.3
+ resolution: "jest-get-type@npm:29.6.3"
+ checksum: 88ac9102d4679d768accae29f1e75f592b760b44277df288ad76ce5bf038c3f5ce3719dea8aa0f035dac30e9eb034b848ce716b9183ad7cc222d029f03e92205
+ languageName: node
+ linkType: hard
+
+"jest-matcher-utils@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-matcher-utils@npm:29.7.0"
+ dependencies:
+ chalk: ^4.0.0
+ jest-diff: ^29.7.0
+ jest-get-type: ^29.6.3
+ pretty-format: ^29.7.0
+ checksum: d7259e5f995d915e8a37a8fd494cb7d6af24cd2a287b200f831717ba0d015190375f9f5dc35393b8ba2aae9b2ebd60984635269c7f8cff7d85b077543b7744cd
+ languageName: node
+ linkType: hard
+
+"jest-message-util@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-message-util@npm:29.7.0"
+ dependencies:
+ "@babel/code-frame": ^7.12.13
+ "@jest/types": ^29.6.3
+ "@types/stack-utils": ^2.0.0
+ chalk: ^4.0.0
+ graceful-fs: ^4.2.9
+ micromatch: ^4.0.4
+ pretty-format: ^29.7.0
+ slash: ^3.0.0
+ stack-utils: ^2.0.3
+ checksum: a9d025b1c6726a2ff17d54cc694de088b0489456c69106be6b615db7a51b7beb66788bea7a59991a019d924fbf20f67d085a445aedb9a4d6760363f4d7d09930
+ languageName: node
+ linkType: hard
+
+"jest-util@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "jest-util@npm:29.7.0"
+ dependencies:
+ "@jest/types": ^29.6.3
+ "@types/node": "*"
+ chalk: ^4.0.0
+ ci-info: ^3.2.0
+ graceful-fs: ^4.2.9
+ picomatch: ^2.2.3
+ checksum: 042ab4980f4ccd4d50226e01e5c7376a8556b472442ca6091a8f102488c0f22e6e8b89ea874111d2328a2080083bf3225c86f3788c52af0bd0345a00eb57a3ca
+ languageName: node
+ linkType: hard
+
+"js-tokens@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "js-tokens@npm:4.0.0"
+ checksum: 8a95213a5a77deb6cbe94d86340e8d9ace2b93bc367790b260101d2f36a2eaf4e4e22d9fa9cf459b38af3a32fb4190e638024cf82ec95ef708680e405ea7cc78
+ languageName: node
+ linkType: hard
+
+"jsbn@npm:~0.1.0":
+ version: 0.1.1
+ resolution: "jsbn@npm:0.1.1"
+ checksum: e5ff29c1b8d965017ef3f9c219dacd6e40ad355c664e277d31246c90545a02e6047018c16c60a00f36d561b3647215c41894f5d869ada6908a2e0ce4200c88f2
+ languageName: node
+ linkType: hard
+
+"json-schema@npm:0.4.0":
+ version: 0.4.0
+ resolution: "json-schema@npm:0.4.0"
+ checksum: 66389434c3469e698da0df2e7ac5a3281bcff75e797a5c127db7c5b56270e01ae13d9afa3c03344f76e32e81678337a8c912bdbb75101c62e487dc3778461d72
+ languageName: node
+ linkType: hard
+
+"json-stringify-safe@npm:~5.0.1":
+ version: 5.0.1
+ resolution: "json-stringify-safe@npm:5.0.1"
+ checksum: 48ec0adad5280b8a96bb93f4563aa1667fd7a36334f79149abd42446d0989f2ddc58274b479f4819f1f00617957e6344c886c55d05a4e15ebb4ab931e4a6a8ee
+ languageName: node
+ linkType: hard
+
+"jsonfile@npm:^6.0.1":
+ version: 6.1.0
+ resolution: "jsonfile@npm:6.1.0"
+ dependencies:
+ graceful-fs: ^4.1.6
+ universalify: ^2.0.0
+ dependenciesMeta:
+ graceful-fs:
+ optional: true
+ checksum: 7af3b8e1ac8fe7f1eccc6263c6ca14e1966fcbc74b618d3c78a0a2075579487547b94f72b7a1114e844a1e15bb00d440e5d1720bfc4612d790a6f285d5ea8354
+ languageName: node
+ linkType: hard
+
+"jsprim@npm:^2.0.2":
+ version: 2.0.2
+ resolution: "jsprim@npm:2.0.2"
+ dependencies:
+ assert-plus: 1.0.0
+ extsprintf: 1.3.0
+ json-schema: 0.4.0
+ verror: 1.10.0
+ checksum: d175f6b1991e160cb0aa39bc857da780e035611986b5492f32395411879fdaf4e513d98677f08f7352dac93a16b66b8361c674b86a3fa406e2e7af6b26321838
+ languageName: node
+ linkType: hard
+
+"lazy-ass@npm:^1.6.0":
+ version: 1.6.0
+ resolution: "lazy-ass@npm:1.6.0"
+ checksum: 5a3ebb17915b03452320804466345382a6c25ac782ec4874fecdb2385793896cd459be2f187dc7def8899180c32ee0ab9a1aa7fe52193ac3ff3fe29bb0591729
+ languageName: node
+ linkType: hard
+
+"listr2@npm:^3.8.3":
+ version: 3.14.0
+ resolution: "listr2@npm:3.14.0"
+ dependencies:
+ cli-truncate: ^2.1.0
+ colorette: ^2.0.16
+ log-update: ^4.0.0
+ p-map: ^4.0.0
+ rfdc: ^1.3.0
+ rxjs: ^7.5.1
+ through: ^2.3.8
+ wrap-ansi: ^7.0.0
+ peerDependencies:
+ enquirer: ">= 2.3.0 < 3"
+ peerDependenciesMeta:
+ enquirer:
+ optional: true
+ checksum: fdb8b2d6bdf5df9371ebd5082bee46c6d0ca3d1e5f2b11fbb5a127839855d5f3da9d4968fce94f0a5ec67cac2459766abbb1faeef621065ebb1829b11ef9476d
+ languageName: node
+ linkType: hard
+
+"lodash.once@npm:^4.1.1":
+ version: 4.1.1
+ resolution: "lodash.once@npm:4.1.1"
+ checksum: d768fa9f9b4e1dc6453be99b753906f58990e0c45e7b2ca5a3b40a33111e5d17f6edf2f768786e2716af90a8e78f8f91431ab8435f761fef00f9b0c256f6d245
+ languageName: node
+ linkType: hard
+
+"lodash@npm:^4.17.15, lodash@npm:^4.17.21":
+ version: 4.17.21
+ resolution: "lodash@npm:4.17.21"
+ checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7
+ languageName: node
+ linkType: hard
+
+"log-symbols@npm:^4.0.0":
+ version: 4.1.0
+ resolution: "log-symbols@npm:4.1.0"
+ dependencies:
+ chalk: ^4.1.0
+ is-unicode-supported: ^0.1.0
+ checksum: fce1497b3135a0198803f9f07464165e9eb83ed02ceb2273930a6f8a508951178d8cf4f0378e9d28300a2ed2bc49050995d2bd5f53ab716bb15ac84d58c6ef74
+ languageName: node
+ linkType: hard
+
+"log-update@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "log-update@npm:4.0.0"
+ dependencies:
+ ansi-escapes: ^4.3.0
+ cli-cursor: ^3.1.0
+ slice-ansi: ^4.0.0
+ wrap-ansi: ^6.2.0
+ checksum: ae2f85bbabc1906034154fb7d4c4477c79b3e703d22d78adee8b3862fa913942772e7fa11713e3d96fb46de4e3cabefbf5d0a544344f03b58d3c4bff52aa9eb2
+ languageName: node
+ linkType: hard
+
+"lru-cache@npm:^6.0.0":
+ version: 6.0.0
+ resolution: "lru-cache@npm:6.0.0"
+ dependencies:
+ yallist: ^4.0.0
+ checksum: f97f499f898f23e4585742138a22f22526254fdba6d75d41a1c2526b3b6cc5747ef59c5612ba7375f42aca4f8461950e925ba08c991ead0651b4918b7c978297
+ languageName: node
+ linkType: hard
+
+"lz-string@npm:^1.5.0":
+ version: 1.5.0
+ resolution: "lz-string@npm:1.5.0"
+ bin:
+ lz-string: bin/bin.js
+ checksum: 1ee98b4580246fd90dd54da6e346fb1caefcf05f677c686d9af237a157fdea3fd7c83a4bc58f858cd5b10a34d27afe0fdcbd0505a47e0590726a873dc8b8f65d
+ languageName: node
+ linkType: hard
+
+"merge-stream@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "merge-stream@npm:2.0.0"
+ checksum: 6fa4dcc8d86629705cea944a4b88ef4cb0e07656ebf223fa287443256414283dd25d91c1cd84c77987f2aec5927af1a9db6085757cb43d90eb170ebf4b47f4f4
+ languageName: node
+ linkType: hard
+
+"micromatch@npm:^4.0.4":
+ version: 4.0.5
+ resolution: "micromatch@npm:4.0.5"
+ dependencies:
+ braces: ^3.0.2
+ picomatch: ^2.3.1
+ checksum: 02a17b671c06e8fefeeb6ef996119c1e597c942e632a21ef589154f23898c9c6a9858526246abb14f8bca6e77734aa9dcf65476fca47cedfb80d9577d52843fc
+ languageName: node
+ linkType: hard
+
+"mime-db@npm:1.52.0":
+ version: 1.52.0
+ resolution: "mime-db@npm:1.52.0"
+ checksum: 0d99a03585f8b39d68182803b12ac601d9c01abfa28ec56204fa330bc9f3d1c5e14beb049bafadb3dbdf646dfb94b87e24d4ec7b31b7279ef906a8ea9b6a513f
+ languageName: node
+ linkType: hard
+
+"mime-types@npm:^2.1.12, mime-types@npm:~2.1.19":
+ version: 2.1.35
+ resolution: "mime-types@npm:2.1.35"
+ dependencies:
+ mime-db: 1.52.0
+ checksum: 89a5b7f1def9f3af5dad6496c5ed50191ae4331cc5389d7c521c8ad28d5fdad2d06fd81baf38fed813dc4e46bb55c8145bb0ff406330818c9cf712fb2e9b3836
+ languageName: node
+ linkType: hard
+
+"mimic-fn@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "mimic-fn@npm:2.1.0"
+ checksum: d2421a3444848ce7f84bd49115ddacff29c15745db73f54041edc906c14b131a38d05298dae3081667627a59b2eb1ca4b436ff2e1b80f69679522410418b478a
+ languageName: node
+ linkType: hard
+
+"min-indent@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "min-indent@npm:1.0.1"
+ checksum: bfc6dd03c5eaf623a4963ebd94d087f6f4bbbfd8c41329a7f09706b0cb66969c4ddd336abeb587bc44bc6f08e13bf90f0b374f9d71f9f01e04adc2cd6f083ef1
+ languageName: node
+ linkType: hard
+
+"minimatch@npm:^3.1.1":
+ version: 3.1.2
+ resolution: "minimatch@npm:3.1.2"
+ dependencies:
+ brace-expansion: ^1.1.7
+ checksum: c154e566406683e7bcb746e000b84d74465b3a832c45d59912b9b55cd50dee66e5c4b1e5566dba26154040e51672f9aa450a9aef0c97cfc7336b78b7afb9540a
+ languageName: node
+ linkType: hard
+
+"minimist@npm:^1.2.8":
+ version: 1.2.8
+ resolution: "minimist@npm:1.2.8"
+ checksum: 75a6d645fb122dad29c06a7597bddea977258957ed88d7a6df59b5cd3fe4a527e253e9bbf2e783e4b73657f9098b96a5fe96ab8a113655d4109108577ecf85b0
+ languageName: node
+ linkType: hard
+
+"ms@npm:2.1.2":
+ version: 2.1.2
+ resolution: "ms@npm:2.1.2"
+ checksum: 673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f
+ languageName: node
+ linkType: hard
+
+"ms@npm:^2.1.1":
+ version: 2.1.3
+ resolution: "ms@npm:2.1.3"
+ checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d
+ languageName: node
+ linkType: hard
+
+"npm-run-path@npm:^4.0.0":
+ version: 4.0.1
+ resolution: "npm-run-path@npm:4.0.1"
+ dependencies:
+ path-key: ^3.0.0
+ checksum: 5374c0cea4b0bbfdfae62da7bbdf1e1558d338335f4cacf2515c282ff358ff27b2ecb91ffa5330a8b14390ac66a1e146e10700440c1ab868208430f56b5f4d23
+ languageName: node
+ linkType: hard
+
+"object-inspect@npm:^1.9.0":
+ version: 1.13.1
+ resolution: "object-inspect@npm:1.13.1"
+ checksum: 7d9fa9221de3311dcb5c7c307ee5dc011cdd31dc43624b7c184b3840514e118e05ef0002be5388304c416c0eb592feb46e983db12577fc47e47d5752fbbfb61f
+ languageName: node
+ linkType: hard
+
+"object-is@npm:^1.1.5":
+ version: 1.1.5
+ resolution: "object-is@npm:1.1.5"
+ dependencies:
+ call-bind: ^1.0.2
+ define-properties: ^1.1.3
+ checksum: 989b18c4cba258a6b74dc1d74a41805c1a1425bce29f6cabb50dcb1a6a651ea9104a1b07046739a49a5bb1bc49727bcb00efd5c55f932f6ea04ec8927a7901fe
+ languageName: node
+ linkType: hard
+
+"object-keys@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "object-keys@npm:1.1.1"
+ checksum: b363c5e7644b1e1b04aa507e88dcb8e3a2f52b6ffd0ea801e4c7a62d5aa559affe21c55a07fd4b1fd55fc03a33c610d73426664b20032405d7b92a1414c34d6a
+ languageName: node
+ linkType: hard
+
+"object.assign@npm:^4.1.4":
+ version: 4.1.4
+ resolution: "object.assign@npm:4.1.4"
+ dependencies:
+ call-bind: ^1.0.2
+ define-properties: ^1.1.4
+ has-symbols: ^1.0.3
+ object-keys: ^1.1.1
+ checksum: 76cab513a5999acbfe0ff355f15a6a125e71805fcf53de4e9d4e082e1989bdb81d1e329291e1e4e0ae7719f0e4ef80e88fb2d367ae60500d79d25a6224ac8864
+ languageName: node
+ linkType: hard
+
+"once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0":
+ version: 1.4.0
+ resolution: "once@npm:1.4.0"
+ dependencies:
+ wrappy: 1
+ checksum: cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68
+ languageName: node
+ linkType: hard
+
+"onetime@npm:^5.1.0":
+ version: 5.1.2
+ resolution: "onetime@npm:5.1.2"
+ dependencies:
+ mimic-fn: ^2.1.0
+ checksum: 2478859ef817fc5d4e9c2f9e5728512ddd1dbc9fb7829ad263765bb6d3b91ce699d6e2332eef6b7dff183c2f490bd3349f1666427eaba4469fba0ac38dfd0d34
+ languageName: node
+ linkType: hard
+
+"ospath@npm:^1.2.2":
+ version: 1.2.2
+ resolution: "ospath@npm:1.2.2"
+ checksum: 505f48a4f4f1c557d6c656ec985707726e3714721680139be037613e903aa8c8fa4ddd8d1342006f9b2dc0065e6e20f8b7bea2ee05354f31257044790367b347
+ languageName: node
+ linkType: hard
+
+"p-map@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "p-map@npm:4.0.0"
+ dependencies:
+ aggregate-error: ^3.0.0
+ checksum: cb0ab21ec0f32ddffd31dfc250e3afa61e103ef43d957cc45497afe37513634589316de4eb88abdfd969fe6410c22c0b93ab24328833b8eb1ccc087fc0442a1c
+ languageName: node
+ linkType: hard
+
+"path-is-absolute@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "path-is-absolute@npm:1.0.1"
+ checksum: 060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8
+ languageName: node
+ linkType: hard
+
+"path-key@npm:^3.0.0, path-key@npm:^3.1.0":
+ version: 3.1.1
+ resolution: "path-key@npm:3.1.1"
+ checksum: 55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020
+ languageName: node
+ linkType: hard
+
+"pend@npm:~1.2.0":
+ version: 1.2.0
+ resolution: "pend@npm:1.2.0"
+ checksum: 6c72f5243303d9c60bd98e6446ba7d30ae29e3d56fdb6fae8767e8ba6386f33ee284c97efe3230a0d0217e2b1723b8ab490b1bbf34fcbb2180dbc8a9de47850d
+ languageName: node
+ linkType: hard
+
+"performance-now@npm:^2.1.0":
+ version: 2.1.0
+ resolution: "performance-now@npm:2.1.0"
+ checksum: 534e641aa8f7cba160f0afec0599b6cecefbb516a2e837b512be0adbe6c1da5550e89c78059c7fabc5c9ffdf6627edabe23eb7c518c4500067a898fa65c2b550
+ languageName: node
+ linkType: hard
+
+"picomatch@npm:^2.2.3, picomatch@npm:^2.3.1":
+ version: 2.3.1
+ resolution: "picomatch@npm:2.3.1"
+ checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf
+ languageName: node
+ linkType: hard
+
+"pify@npm:^2.2.0":
+ version: 2.3.0
+ resolution: "pify@npm:2.3.0"
+ checksum: 9503aaeaf4577acc58642ad1d25c45c6d90288596238fb68f82811c08104c800e5a7870398e9f015d82b44ecbcbef3dc3d4251a1cbb582f6e5959fe09884b2ba
+ languageName: node
+ linkType: hard
+
+"pretty-bytes@npm:^5.6.0":
+ version: 5.6.0
+ resolution: "pretty-bytes@npm:5.6.0"
+ checksum: 9c082500d1e93434b5b291bd651662936b8bd6204ec9fa17d563116a192d6d86b98f6d328526b4e8d783c07d5499e2614a807520249692da9ec81564b2f439cd
+ languageName: node
+ linkType: hard
+
+"pretty-format@npm:^27.0.2":
+ version: 27.5.1
+ resolution: "pretty-format@npm:27.5.1"
+ dependencies:
+ ansi-regex: ^5.0.1
+ ansi-styles: ^5.0.0
+ react-is: ^17.0.1
+ checksum: cf610cffcb793885d16f184a62162f2dd0df31642d9a18edf4ca298e909a8fe80bdbf556d5c9573992c102ce8bf948691da91bf9739bee0ffb6e79c8a8a6e088
+ languageName: node
+ linkType: hard
+
+"pretty-format@npm:^29.0.0, pretty-format@npm:^29.7.0":
+ version: 29.7.0
+ resolution: "pretty-format@npm:29.7.0"
+ dependencies:
+ "@jest/schemas": ^29.6.3
+ ansi-styles: ^5.0.0
+ react-is: ^18.0.0
+ checksum: 032c1602383e71e9c0c02a01bbd25d6759d60e9c7cf21937dde8357aa753da348fcec5def5d1002c9678a8524d5fe099ad98861286550ef44de8808cc61e43b6
+ languageName: node
+ linkType: hard
+
+"process@npm:^0.11.10":
+ version: 0.11.10
+ resolution: "process@npm:0.11.10"
+ checksum: bfcce49814f7d172a6e6a14d5fa3ac92cc3d0c3b9feb1279774708a719e19acd673995226351a082a9ae99978254e320ccda4240ddc474ba31a76c79491ca7c3
+ languageName: node
+ linkType: hard
+
+"proxy-from-env@npm:1.0.0":
+ version: 1.0.0
+ resolution: "proxy-from-env@npm:1.0.0"
+ checksum: 292e28d1de0c315958d71d8315eb546dd3cd8c8cbc2dab7c54eeb9f5c17f421771964ad0b5e1f77011bab2305bdae42e1757ce33bdb1ccc3e87732322a8efcf1
+ languageName: node
+ linkType: hard
+
+"psl@npm:^1.1.33":
+ version: 1.9.0
+ resolution: "psl@npm:1.9.0"
+ checksum: 20c4277f640c93d393130673f392618e9a8044c6c7bf61c53917a0fddb4952790f5f362c6c730a9c32b124813e173733f9895add8d26f566ed0ea0654b2e711d
+ languageName: node
+ linkType: hard
+
+"pump@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "pump@npm:3.0.0"
+ dependencies:
+ end-of-stream: ^1.1.0
+ once: ^1.3.1
+ checksum: e42e9229fba14732593a718b04cb5e1cfef8254544870997e0ecd9732b189a48e1256e4e5478148ecb47c8511dca2b09eae56b4d0aad8009e6fac8072923cfc9
+ languageName: node
+ linkType: hard
+
+"punycode@npm:^2.1.1":
+ version: 2.3.1
+ resolution: "punycode@npm:2.3.1"
+ checksum: bb0a0ceedca4c3c57a9b981b90601579058903c62be23c5e8e843d2c2d4148a3ecf029d5133486fb0e1822b098ba8bba09e89d6b21742d02fa26bda6441a6fb2
+ languageName: node
+ linkType: hard
+
+"qs@npm:6.10.4":
+ version: 6.10.4
+ resolution: "qs@npm:6.10.4"
+ dependencies:
+ side-channel: ^1.0.4
+ checksum: 31e4fedd759d01eae52dde6692abab175f9af3e639993c5caaa513a2a3607b34d8058d3ae52ceeccf37c3025f22ed5e90e9ddd6c2537e19c0562ddd10dc5b1eb
+ languageName: node
+ linkType: hard
+
+"querystringify@npm:^2.1.1":
+ version: 2.2.0
+ resolution: "querystringify@npm:2.2.0"
+ checksum: 5641ea231bad7ef6d64d9998faca95611ed4b11c2591a8cae741e178a974f6a8e0ebde008475259abe1621cb15e692404e6b6626e927f7b849d5c09392604b15
+ languageName: node
+ linkType: hard
+
+"react-is@npm:^17.0.1":
+ version: 17.0.2
+ resolution: "react-is@npm:17.0.2"
+ checksum: 9d6d111d8990dc98bc5402c1266a808b0459b5d54830bbea24c12d908b536df7883f268a7868cfaedde3dd9d4e0d574db456f84d2e6df9c4526f99bb4b5344d8
+ languageName: node
+ linkType: hard
+
+"react-is@npm:^18.0.0":
+ version: 18.2.0
+ resolution: "react-is@npm:18.2.0"
+ checksum: e72d0ba81b5922759e4aff17e0252bd29988f9642ed817f56b25a3e217e13eea8a7f2322af99a06edb779da12d5d636e9fda473d620df9a3da0df2a74141d53e
+ languageName: node
+ linkType: hard
+
+"redent@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "redent@npm:3.0.0"
+ dependencies:
+ indent-string: ^4.0.0
+ strip-indent: ^3.0.0
+ checksum: fa1ef20404a2d399235e83cc80bd55a956642e37dd197b4b612ba7327bf87fa32745aeb4a1634b2bab25467164ab4ed9c15be2c307923dd08b0fe7c52431ae6b
+ languageName: node
+ linkType: hard
+
+"regenerator-runtime@npm:^0.14.0":
+ version: 0.14.0
+ resolution: "regenerator-runtime@npm:0.14.0"
+ checksum: 1c977ad82a82a4412e4f639d65d22be376d3ebdd30da2c003eeafdaaacd03fc00c2320f18120007ee700900979284fc78a9f00da7fb593f6e6eeebc673fba9a3
+ languageName: node
+ linkType: hard
+
+"regexp.prototype.flags@npm:^1.5.1":
+ version: 1.5.1
+ resolution: "regexp.prototype.flags@npm:1.5.1"
+ dependencies:
+ call-bind: ^1.0.2
+ define-properties: ^1.2.0
+ set-function-name: ^2.0.0
+ checksum: 869edff00288442f8d7fa4c9327f91d85f3b3acf8cbbef9ea7a220345cf23e9241b6def9263d2c1ebcf3a316b0aa52ad26a43a84aa02baca3381717b3e307f47
+ languageName: node
+ linkType: hard
+
+"request-progress@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "request-progress@npm:3.0.0"
+ dependencies:
+ throttleit: ^1.0.0
+ checksum: 6ea1761dcc8a8b7b5894afd478c0286aa31bd69438d7050294bd4fd0d0b3e09b5cde417d38deef9c49809039c337d8744e4bb49d8632b0c3e4ffa5e8a687e0fd
+ languageName: node
+ linkType: hard
+
+"requires-port@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "requires-port@npm:1.0.0"
+ checksum: eee0e303adffb69be55d1a214e415cf42b7441ae858c76dfc5353148644f6fd6e698926fc4643f510d5c126d12a705e7c8ed7e38061113bdf37547ab356797ff
+ languageName: node
+ linkType: hard
+
+"restore-cursor@npm:^3.1.0":
+ version: 3.1.0
+ resolution: "restore-cursor@npm:3.1.0"
+ dependencies:
+ onetime: ^5.1.0
+ signal-exit: ^3.0.2
+ checksum: f877dd8741796b909f2a82454ec111afb84eb45890eb49ac947d87991379406b3b83ff9673a46012fca0d7844bb989f45cc5b788254cf1a39b6b5a9659de0630
+ languageName: node
+ linkType: hard
+
+"rfdc@npm:^1.3.0":
+ version: 1.3.0
+ resolution: "rfdc@npm:1.3.0"
+ checksum: fb2ba8512e43519983b4c61bd3fa77c0f410eff6bae68b08614437bc3f35f91362215f7b4a73cbda6f67330b5746ce07db5dd9850ad3edc91271ad6deea0df32
+ languageName: node
+ linkType: hard
+
+"rimraf@npm:^3.0.0":
+ version: 3.0.2
+ resolution: "rimraf@npm:3.0.2"
+ dependencies:
+ glob: ^7.1.3
+ bin:
+ rimraf: bin.js
+ checksum: 87f4164e396f0171b0a3386cc1877a817f572148ee13a7e113b238e48e8a9f2f31d009a92ec38a591ff1567d9662c6b67fd8818a2dbbaed74bc26a87a2a4a9a0
+ languageName: node
+ linkType: hard
+
+"root-workspace-0b6124@workspace:.":
+ version: 0.0.0-use.local
+ resolution: "root-workspace-0b6124@workspace:."
+ dependencies:
+ "@plone/volto-testing": ^4.0.0
+ languageName: unknown
+ linkType: soft
+
+"rxjs@npm:^7.5.1":
+ version: 7.8.1
+ resolution: "rxjs@npm:7.8.1"
+ dependencies:
+ tslib: ^2.1.0
+ checksum: de4b53db1063e618ec2eca0f7965d9137cabe98cf6be9272efe6c86b47c17b987383df8574861bcced18ebd590764125a901d5506082be84a8b8e364bf05f119
+ languageName: node
+ linkType: hard
+
+"safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.2":
+ version: 5.2.1
+ resolution: "safe-buffer@npm:5.2.1"
+ checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491
+ languageName: node
+ linkType: hard
+
+"safer-buffer@npm:^2.0.2, safer-buffer@npm:^2.1.0, safer-buffer@npm:~2.1.0":
+ version: 2.1.2
+ resolution: "safer-buffer@npm:2.1.2"
+ checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0
+ languageName: node
+ linkType: hard
+
+"semver@npm:^7.5.3":
+ version: 7.5.4
+ resolution: "semver@npm:7.5.4"
+ dependencies:
+ lru-cache: ^6.0.0
+ bin:
+ semver: bin/semver.js
+ checksum: 12d8ad952fa353b0995bf180cdac205a4068b759a140e5d3c608317098b3575ac2f1e09182206bf2eb26120e1c0ed8fb92c48c592f6099680de56bb071423ca3
+ languageName: node
+ linkType: hard
+
+"set-function-length@npm:^1.1.1":
+ version: 1.1.1
+ resolution: "set-function-length@npm:1.1.1"
+ dependencies:
+ define-data-property: ^1.1.1
+ get-intrinsic: ^1.2.1
+ gopd: ^1.0.1
+ has-property-descriptors: ^1.0.0
+ checksum: c131d7569cd7e110cafdfbfbb0557249b538477624dfac4fc18c376d879672fa52563b74029ca01f8f4583a8acb35bb1e873d573a24edb80d978a7ee607c6e06
+ languageName: node
+ linkType: hard
+
+"set-function-name@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "set-function-name@npm:2.0.1"
+ dependencies:
+ define-data-property: ^1.0.1
+ functions-have-names: ^1.2.3
+ has-property-descriptors: ^1.0.0
+ checksum: 4975d17d90c40168eee2c7c9c59d023429f0a1690a89d75656306481ece0c3c1fb1ebcc0150ea546d1913e35fbd037bace91372c69e543e51fc5d1f31a9fa126
+ languageName: node
+ linkType: hard
+
+"shebang-command@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "shebang-command@npm:2.0.0"
+ dependencies:
+ shebang-regex: ^3.0.0
+ checksum: 6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa
+ languageName: node
+ linkType: hard
+
+"shebang-regex@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "shebang-regex@npm:3.0.0"
+ checksum: 1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222
+ languageName: node
+ linkType: hard
+
+"side-channel@npm:^1.0.4":
+ version: 1.0.4
+ resolution: "side-channel@npm:1.0.4"
+ dependencies:
+ call-bind: ^1.0.0
+ get-intrinsic: ^1.0.2
+ object-inspect: ^1.9.0
+ checksum: 351e41b947079c10bd0858364f32bb3a7379514c399edb64ab3dce683933483fc63fb5e4efe0a15a2e8a7e3c436b6a91736ddb8d8c6591b0460a24bb4a1ee245
+ languageName: node
+ linkType: hard
+
+"signal-exit@npm:^3.0.2":
+ version: 3.0.7
+ resolution: "signal-exit@npm:3.0.7"
+ checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318
+ languageName: node
+ linkType: hard
+
+"slash@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "slash@npm:3.0.0"
+ checksum: 94a93fff615f25a999ad4b83c9d5e257a7280c90a32a7cb8b4a87996e4babf322e469c42b7f649fd5796edd8687652f3fb452a86dc97a816f01113183393f11c
+ languageName: node
+ linkType: hard
+
+"slice-ansi@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "slice-ansi@npm:3.0.0"
+ dependencies:
+ ansi-styles: ^4.0.0
+ astral-regex: ^2.0.0
+ is-fullwidth-code-point: ^3.0.0
+ checksum: 5ec6d022d12e016347e9e3e98a7eb2a592213a43a65f1b61b74d2c78288da0aded781f665807a9f3876b9daa9ad94f64f77d7633a0458876c3a4fdc4eb223f24
+ languageName: node
+ linkType: hard
+
+"slice-ansi@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "slice-ansi@npm:4.0.0"
+ dependencies:
+ ansi-styles: ^4.0.0
+ astral-regex: ^2.0.0
+ is-fullwidth-code-point: ^3.0.0
+ checksum: 4a82d7f085b0e1b070e004941ada3c40d3818563ac44766cca4ceadd2080427d337554f9f99a13aaeb3b4a94d9964d9466c807b3d7b7541d1ec37ee32d308756
+ languageName: node
+ linkType: hard
+
+"source-map-resolve@npm:^0.6.0":
+ version: 0.6.0
+ resolution: "source-map-resolve@npm:0.6.0"
+ dependencies:
+ atob: ^2.1.2
+ decode-uri-component: ^0.2.0
+ checksum: fe503b9e5dac1c54be835282fcfec10879434e7b3ee08a9774f230299c724a8d403484d9531276d1670c87390e0e4d1d3f92b14cca6e4a2445ea3016b786ecd4
+ languageName: node
+ linkType: hard
+
+"source-map@npm:^0.6.1":
+ version: 0.6.1
+ resolution: "source-map@npm:0.6.1"
+ checksum: 59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2
+ languageName: node
+ linkType: hard
+
+"sshpk@npm:^1.14.1":
+ version: 1.18.0
+ resolution: "sshpk@npm:1.18.0"
+ dependencies:
+ asn1: ~0.2.3
+ assert-plus: ^1.0.0
+ bcrypt-pbkdf: ^1.0.0
+ dashdash: ^1.12.0
+ ecc-jsbn: ~0.1.1
+ getpass: ^0.1.1
+ jsbn: ~0.1.0
+ safer-buffer: ^2.0.2
+ tweetnacl: ~0.14.0
+ bin:
+ sshpk-conv: bin/sshpk-conv
+ sshpk-sign: bin/sshpk-sign
+ sshpk-verify: bin/sshpk-verify
+ checksum: 01d43374eee3a7e37b3b82fdbecd5518cbb2e47ccbed27d2ae30f9753f22bd6ffad31225cb8ef013bc3fb7785e686cea619203ee1439a228f965558c367c3cfa
+ languageName: node
+ linkType: hard
+
+"stack-utils@npm:^2.0.3":
+ version: 2.0.6
+ resolution: "stack-utils@npm:2.0.6"
+ dependencies:
+ escape-string-regexp: ^2.0.0
+ checksum: 052bf4d25bbf5f78e06c1d5e67de2e088b06871fa04107ca8d3f0e9d9263326e2942c8bedee3545795fc77d787d443a538345eef74db2f8e35db3558c6f91ff7
+ languageName: node
+ linkType: hard
+
+"stop-iteration-iterator@npm:^1.0.0":
+ version: 1.0.0
+ resolution: "stop-iteration-iterator@npm:1.0.0"
+ dependencies:
+ internal-slot: ^1.0.4
+ checksum: d04173690b2efa40e24ab70e5e51a3ff31d56d699550cfad084104ab3381390daccb36652b25755e420245f3b0737de66c1879eaa2a8d4fc0a78f9bf892fcb42
+ languageName: node
+ linkType: hard
+
+"string-width@npm:^4.1.0, string-width@npm:^4.2.0":
+ version: 4.2.3
+ resolution: "string-width@npm:4.2.3"
+ dependencies:
+ emoji-regex: ^8.0.0
+ is-fullwidth-code-point: ^3.0.0
+ strip-ansi: ^6.0.1
+ checksum: e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb
+ languageName: node
+ linkType: hard
+
+"strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1":
+ version: 6.0.1
+ resolution: "strip-ansi@npm:6.0.1"
+ dependencies:
+ ansi-regex: ^5.0.1
+ checksum: f3cd25890aef3ba6e1a74e20896c21a46f482e93df4a06567cebf2b57edabb15133f1f94e57434e0a958d61186087b1008e89c94875d019910a213181a14fc8c
+ languageName: node
+ linkType: hard
+
+"strip-final-newline@npm:^2.0.0":
+ version: 2.0.0
+ resolution: "strip-final-newline@npm:2.0.0"
+ checksum: 69412b5e25731e1938184b5d489c32e340605bb611d6140344abc3421b7f3c6f9984b21dff296dfcf056681b82caa3bb4cc996a965ce37bcfad663e92eae9c64
+ languageName: node
+ linkType: hard
+
+"strip-indent@npm:^3.0.0":
+ version: 3.0.0
+ resolution: "strip-indent@npm:3.0.0"
+ dependencies:
+ min-indent: ^1.0.0
+ checksum: 18f045d57d9d0d90cd16f72b2313d6364fd2cb4bf85b9f593523ad431c8720011a4d5f08b6591c9d580f446e78855c5334a30fb91aa1560f5d9f95ed1b4a0530
+ languageName: node
+ linkType: hard
+
+"supports-color@npm:^5.3.0":
+ version: 5.5.0
+ resolution: "supports-color@npm:5.5.0"
+ dependencies:
+ has-flag: ^3.0.0
+ checksum: 95f6f4ba5afdf92f495b5a912d4abee8dcba766ae719b975c56c084f5004845f6f5a5f7769f52d53f40e21952a6d87411bafe34af4a01e65f9926002e38e1dac
+ languageName: node
+ linkType: hard
+
+"supports-color@npm:^7.1.0":
+ version: 7.2.0
+ resolution: "supports-color@npm:7.2.0"
+ dependencies:
+ has-flag: ^4.0.0
+ checksum: 3dda818de06ebbe5b9653e07842d9479f3555ebc77e9a0280caf5a14fb877ffee9ed57007c3b78f5a6324b8dbeec648d9e97a24e2ed9fdb81ddc69ea07100f4a
+ languageName: node
+ linkType: hard
+
+"supports-color@npm:^8.1.1":
+ version: 8.1.1
+ resolution: "supports-color@npm:8.1.1"
+ dependencies:
+ has-flag: ^4.0.0
+ checksum: c052193a7e43c6cdc741eb7f378df605636e01ad434badf7324f17fb60c69a880d8d8fcdcb562cf94c2350e57b937d7425ab5b8326c67c2adc48f7c87c1db406
+ languageName: node
+ linkType: hard
+
+"throttleit@npm:^1.0.0":
+ version: 1.0.1
+ resolution: "throttleit@npm:1.0.1"
+ checksum: 32e0b12ca5810cd34dfce0408c7cb658dfd039848a073466eaac667ce6e846cafa53ac518e4b01dc6f34e6652b66fd29a5c6b666718ec5086ef328a9d029dc75
+ languageName: node
+ linkType: hard
+
+"through@npm:^2.3.8":
+ version: 2.3.8
+ resolution: "through@npm:2.3.8"
+ checksum: a38c3e059853c494af95d50c072b83f8b676a9ba2818dcc5b108ef252230735c54e0185437618596c790bbba8fcdaef5b290405981ffa09dce67b1f1bf190cbd
+ languageName: node
+ linkType: hard
+
+"tmp@npm:~0.2.1":
+ version: 0.2.1
+ resolution: "tmp@npm:0.2.1"
+ dependencies:
+ rimraf: ^3.0.0
+ checksum: 8b1214654182575124498c87ca986ac53dc76ff36e8f0e0b67139a8d221eaecfdec108c0e6ec54d76f49f1f72ab9325500b246f562b926f85bcdfca8bf35df9e
+ languageName: node
+ linkType: hard
+
+"to-regex-range@npm:^5.0.1":
+ version: 5.0.1
+ resolution: "to-regex-range@npm:5.0.1"
+ dependencies:
+ is-number: ^7.0.0
+ checksum: f76fa01b3d5be85db6a2a143e24df9f60dd047d151062d0ba3df62953f2f697b16fe5dad9b0ac6191c7efc7b1d9dcaa4b768174b7b29da89d4428e64bc0a20ed
+ languageName: node
+ linkType: hard
+
+"tough-cookie@npm:^4.1.3":
+ version: 4.1.3
+ resolution: "tough-cookie@npm:4.1.3"
+ dependencies:
+ psl: ^1.1.33
+ punycode: ^2.1.1
+ universalify: ^0.2.0
+ url-parse: ^1.5.3
+ checksum: c9226afff36492a52118432611af083d1d8493a53ff41ec4ea48e5b583aec744b989e4280bcf476c910ec1525a89a4a0f1cae81c08b18fb2ec3a9b3a72b91dcc
+ languageName: node
+ linkType: hard
+
+"tslib@npm:^2.1.0":
+ version: 2.6.2
+ resolution: "tslib@npm:2.6.2"
+ checksum: 329ea56123005922f39642318e3d1f0f8265d1e7fcb92c633e0809521da75eeaca28d2cf96d7248229deb40e5c19adf408259f4b9640afd20d13aecc1430f3ad
+ languageName: node
+ linkType: hard
+
+"tunnel-agent@npm:^0.6.0":
+ version: 0.6.0
+ resolution: "tunnel-agent@npm:0.6.0"
+ dependencies:
+ safe-buffer: ^5.0.1
+ checksum: 05f6510358f8afc62a057b8b692f05d70c1782b70db86d6a1e0d5e28a32389e52fa6e7707b6c5ecccacc031462e4bc35af85ecfe4bbc341767917b7cf6965711
+ languageName: node
+ linkType: hard
+
+"tweetnacl@npm:^0.14.3, tweetnacl@npm:~0.14.0":
+ version: 0.14.5
+ resolution: "tweetnacl@npm:0.14.5"
+ checksum: 6061daba1724f59473d99a7bb82e13f211cdf6e31315510ae9656fefd4779851cb927adad90f3b488c8ed77c106adc0421ea8055f6f976ff21b27c5c4e918487
+ languageName: node
+ linkType: hard
+
+"type-fest@npm:^0.21.3":
+ version: 0.21.3
+ resolution: "type-fest@npm:0.21.3"
+ checksum: e6b32a3b3877f04339bae01c193b273c62ba7bfc9e325b8703c4ee1b32dc8fe4ef5dfa54bf78265e069f7667d058e360ae0f37be5af9f153b22382cd55a9afe0
+ languageName: node
+ linkType: hard
+
+"undici-types@npm:~5.26.4":
+ version: 5.26.5
+ resolution: "undici-types@npm:5.26.5"
+ checksum: 3192ef6f3fd5df652f2dc1cd782b49d6ff14dc98e5dced492aa8a8c65425227da5da6aafe22523c67f035a272c599bb89cfe803c1db6311e44bed3042fc25487
+ languageName: node
+ linkType: hard
+
+"universalify@npm:^0.2.0":
+ version: 0.2.0
+ resolution: "universalify@npm:0.2.0"
+ checksum: e86134cb12919d177c2353196a4cc09981524ee87abf621f7bc8d249dbbbebaec5e7d1314b96061497981350df786e4c5128dbf442eba104d6e765bc260678b5
+ languageName: node
+ linkType: hard
+
+"universalify@npm:^2.0.0":
+ version: 2.0.1
+ resolution: "universalify@npm:2.0.1"
+ checksum: ecd8469fe0db28e7de9e5289d32bd1b6ba8f7183db34f3bfc4ca53c49891c2d6aa05f3fb3936a81285a905cc509fb641a0c3fc131ec786167eff41236ae32e60
+ languageName: node
+ linkType: hard
+
+"untildify@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "untildify@npm:4.0.0"
+ checksum: 39ced9c418a74f73f0a56e1ba4634b4d959422dff61f4c72a8e39f60b99380c1b45ed776fbaa0a4101b157e4310d873ad7d114e8534ca02609b4916bb4187fb9
+ languageName: node
+ linkType: hard
+
+"url-parse@npm:^1.5.3":
+ version: 1.5.10
+ resolution: "url-parse@npm:1.5.10"
+ dependencies:
+ querystringify: ^2.1.1
+ requires-port: ^1.0.0
+ checksum: fbdba6b1d83336aca2216bbdc38ba658d9cfb8fc7f665eb8b17852de638ff7d1a162c198a8e4ed66001ddbf6c9888d41e4798912c62b4fd777a31657989f7bdf
+ languageName: node
+ linkType: hard
+
+"uuid@npm:^8.3.2":
+ version: 8.3.2
+ resolution: "uuid@npm:8.3.2"
+ bin:
+ uuid: dist/bin/uuid
+ checksum: 5575a8a75c13120e2f10e6ddc801b2c7ed7d8f3c8ac22c7ed0c7b2ba6383ec0abda88c905085d630e251719e0777045ae3236f04c812184b7c765f63a70e58df
+ languageName: node
+ linkType: hard
+
+"verror@npm:1.10.0":
+ version: 1.10.0
+ resolution: "verror@npm:1.10.0"
+ dependencies:
+ assert-plus: ^1.0.0
+ core-util-is: 1.0.2
+ extsprintf: ^1.2.0
+ checksum: c431df0bedf2088b227a4e051e0ff4ca54df2c114096b0c01e1cbaadb021c30a04d7dd5b41ab277bcd51246ca135bf931d4c4c796ecae7a4fef6d744ecef36ea
+ languageName: node
+ linkType: hard
+
+"which-boxed-primitive@npm:^1.0.2":
+ version: 1.0.2
+ resolution: "which-boxed-primitive@npm:1.0.2"
+ 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
+ checksum: 53ce774c7379071729533922adcca47220228405e1895f26673bbd71bdf7fb09bee38c1d6399395927c6289476b5ae0629863427fd151491b71c4b6cb04f3a5e
+ languageName: node
+ linkType: hard
+
+"which-collection@npm:^1.0.1":
+ version: 1.0.1
+ resolution: "which-collection@npm:1.0.1"
+ dependencies:
+ is-map: ^2.0.1
+ is-set: ^2.0.1
+ is-weakmap: ^2.0.1
+ is-weakset: ^2.0.1
+ checksum: c815bbd163107ef9cb84f135e6f34453eaf4cca994e7ba85ddb0d27cea724c623fae2a473ceccfd5549c53cc65a5d82692de418166df3f858e1e5dc60818581c
+ languageName: node
+ linkType: hard
+
+"which-typed-array@npm:^1.1.11, which-typed-array@npm:^1.1.13":
+ version: 1.1.13
+ resolution: "which-typed-array@npm:1.1.13"
+ 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
+ checksum: 3828a0d5d72c800e369d447e54c7620742a4cc0c9baf1b5e8c17e9b6ff90d8d861a3a6dd4800f1953dbf80e5e5cec954a289e5b4a223e3bee4aeb1f8c5f33309
+ languageName: node
+ linkType: hard
+
+"which@npm:^2.0.1":
+ version: 2.0.2
+ resolution: "which@npm:2.0.2"
+ dependencies:
+ isexe: ^2.0.0
+ bin:
+ node-which: ./bin/node-which
+ checksum: 1a5c563d3c1b52d5f893c8b61afe11abc3bab4afac492e8da5bde69d550de701cf9806235f20a47b5c8fa8a1d6a9135841de2596535e998027a54589000e66d1
+ languageName: node
+ linkType: hard
+
+"wrap-ansi@npm:^6.2.0":
+ version: 6.2.0
+ resolution: "wrap-ansi@npm:6.2.0"
+ dependencies:
+ ansi-styles: ^4.0.0
+ string-width: ^4.1.0
+ strip-ansi: ^6.0.0
+ checksum: 6cd96a410161ff617b63581a08376f0cb9162375adeb7956e10c8cd397821f7eb2a6de24eb22a0b28401300bf228c86e50617cd568209b5f6775b93c97d2fe3a
+ languageName: node
+ linkType: hard
+
+"wrap-ansi@npm:^7.0.0":
+ version: 7.0.0
+ resolution: "wrap-ansi@npm:7.0.0"
+ dependencies:
+ ansi-styles: ^4.0.0
+ string-width: ^4.1.0
+ strip-ansi: ^6.0.0
+ checksum: a790b846fd4505de962ba728a21aaeda189b8ee1c7568ca5e817d85930e06ef8d1689d49dbf0e881e8ef84436af3a88bc49115c2e2788d841ff1b8b5b51a608b
+ languageName: node
+ linkType: hard
+
+"wrappy@npm:1":
+ version: 1.0.2
+ resolution: "wrappy@npm:1.0.2"
+ checksum: 159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5
+ languageName: node
+ linkType: hard
+
+"yallist@npm:^4.0.0":
+ version: 4.0.0
+ resolution: "yallist@npm:4.0.0"
+ checksum: 343617202af32df2a15a3be36a5a8c0c8545208f3d3dfbc6bb7c3e3b7e8c6f8e7485432e4f3b88da3031a6e20afa7c711eded32ddfb122896ac5d914e75848d5
+ languageName: node
+ linkType: hard
+
+"yauzl@npm:^2.10.0":
+ version: 2.10.0
+ resolution: "yauzl@npm:2.10.0"
+ dependencies:
+ buffer-crc32: ~0.2.3
+ fd-slicer: ~1.1.0
+ checksum: 7f21fe0bbad6e2cb130044a5d1d0d5a0e5bf3d8d4f8c4e6ee12163ce798fee3de7388d22a7a0907f563ac5f9d40f8699a223d3d5c1718da90b0156da6904022b
+ languageName: node
+ linkType: hard
diff --git a/package.json b/package.json
index c0c4c22..98021fa 100644
--- a/package.json
+++ b/package.json
@@ -12,6 +12,7 @@
"plone",
"social-login",
"oauth2",
+ "openid",
"react"
],
"publishConfig": {
diff --git a/src/actions/auth/oidc.js b/src/actions/auth/oidc.js
new file mode 100644
index 0000000..58c0d3a
--- /dev/null
+++ b/src/actions/auth/oidc.js
@@ -0,0 +1,58 @@
+/**
+ * OIDC Login
+ * @module actions/auth/oidc
+ */
+import { LOGIN, LOGOUT_OIDC, OIDC_REDIRECT } from '../../constants/ActionTypes';
+
+/**
+ * Get information to redirect user to provider authentication page
+ * @function oidcRedirect
+ * @param {string} providerId OAuth provider id.
+ * @returns {Object} OIDC redirect action.
+ */
+export function oidcRedirect(providerId) {
+ return {
+ type: OIDC_REDIRECT,
+ request: {
+ op: 'get',
+ path: `@login-oidc/${providerId}`,
+ },
+ };
+}
+
+/**
+ * Logout from OIDC provider
+ * @function oidcLogout
+ * @returns {Object} OIDC redirect action.
+ */
+export function oidcLogout() {
+ return {
+ type: LOGOUT_OIDC,
+ request: {
+ op: 'get',
+ path: `@logout-oidc`,
+ },
+ };
+}
+
+/**
+ * OIDC Login function.
+ * @function oidcLogin
+ * @param {string} providerId OAuth provider id.
+ * @param {string} query URL parameters passed by OAuth provider.
+ * @param {string} session OIDC session id.
+ * @returns {Object} OIDC login action.
+ */
+export function oidcLogin(providerId, query, session) {
+ return {
+ type: LOGIN,
+ request: {
+ op: 'post',
+ path: `@login-oidc/${providerId}`,
+ data: {
+ qs: query,
+ session: session,
+ },
+ },
+ };
+}
diff --git a/src/actions/index.js b/src/actions/index.js
index 5c2ee3b..b266b1e 100644
--- a/src/actions/index.js
+++ b/src/actions/index.js
@@ -14,3 +14,6 @@
export { authomaticLogin } from './auth/authomatic';
export { authomaticRedirect } from './auth/authomatic';
export { listAuthOptions } from './auth/authOptions';
+export { oidcLogin } from './auth/oidc';
+export { oidcLogout } from './auth/oidc';
+export { oidcRedirect } from './auth/oidc';
diff --git a/src/components/AuthProviders/AuthProviders.jsx b/src/components/AuthProviders/AuthProviders.jsx
index 75d94a3..2995e8d 100644
--- a/src/components/AuthProviders/AuthProviders.jsx
+++ b/src/components/AuthProviders/AuthProviders.jsx
@@ -4,7 +4,7 @@
*/
import React from 'react';
import PropTypes from 'prop-types';
-import { Container } from 'semantic-ui-react';
+import { Container, Dimmer, Loader } from 'semantic-ui-react';
import AuthProvider from '../AuthProvider/AuthProvider';
import './AuthProviders.css';
@@ -16,20 +16,31 @@ import './AuthProviders.css';
*/
function AuthProviders({ providers, action, onSelectProvider }) {
return (
-
- {providers.map(function (provider, i) {
- return (
- provider && (
-
- )
- );
- })}
-
+ <>
+ {providers && providers.length > 1 ? (
+
+ {providers.map(function (provider, i) {
+ return (
+ provider &&
+ provider.id !== 'oidc' && (
+
+ )
+ );
+ })}
+
+ ) : (
+
+
+
+
+
+ )}
+ >
);
}
diff --git a/src/components/Login/Login.jsx b/src/components/Login/Login.jsx
index 33e06bb..3eeca71 100644
--- a/src/components/Login/Login.jsx
+++ b/src/components/Login/Login.jsx
@@ -3,7 +3,11 @@
* @module components/Login/Login
*/
import React, { useEffect, useState } from 'react';
-import { authomaticRedirect, listAuthOptions } from '../../actions';
+import {
+ authomaticRedirect,
+ listAuthOptions,
+ oidcRedirect,
+} from '../../actions';
import { injectIntl } from 'react-intl';
import { useSelector, useDispatch } from 'react-redux';
import LoginForm from './LoginForm';
@@ -16,17 +20,19 @@ import LoginForm from './LoginForm';
function Login({ intl }) {
const dispatch = useDispatch();
const [startedOAuth, setStartedOAuth] = useState(false);
+ const [startedOIDC, setStartedOIDC] = useState(false);
const loading = useSelector((state) => state.authOptions.loading);
const options = useSelector((state) => state.authOptions.options);
- const loginValues = useSelector((state) => state.authomaticRedirect);
+ const loginOAuthValues = useSelector((state) => state.authomaticRedirect);
+ const loginOIDCValues = useSelector((state) => state.oidcRedirect);
useEffect(() => {
dispatch(listAuthOptions());
}, [dispatch]);
useEffect(() => {
- const next_url = loginValues.next_url;
- const session = loginValues.session;
+ const next_url = loginOAuthValues.next_url;
+ const session = loginOAuthValues.session;
if (next_url && session && startedOAuth) {
setStartedOAuth(false);
// Give time to save state to localstorage
@@ -34,13 +40,35 @@ function Login({ intl }) {
window.location.href = next_url;
}, 500);
}
- }, [startedOAuth, loginValues]);
+ }, [startedOAuth, loginOAuthValues]);
const onSelectProvider = (provider) => {
setStartedOAuth(true);
dispatch(authomaticRedirect(provider.id));
};
+ useEffect(() => {
+ const next_url = loginOIDCValues.next_url;
+ if (next_url && startedOIDC) {
+ setStartedOIDC(false);
+ // Give time to save state to localstorage
+ setTimeout(function () {
+ window.location.href = next_url;
+ }, 500);
+ }
+ }, [startedOIDC, loginOIDCValues]);
+
+ useEffect(() => {
+ if (
+ options !== undefined &&
+ options.length === 1 &&
+ options[0].id === 'oidc'
+ ) {
+ setStartedOIDC(true);
+ dispatch(oidcRedirect('oidc'));
+ }
+ }, [options, dispatch]);
+
return (
state.oidcRedirect.session);
+ const userSession = useSelector((state) => state.userSession);
+ const isLoading = userSession.login.loading;
+ const error = userSession.login.error;
+ const token = userSession.token;
+
+ useEffect(() => {
+ dispatch(oidcLogin(provider, query, session));
+ }, [dispatch, provider, query, session]);
+
+ useEffect(() => {
+ if (token) {
+ history.push('/');
+ if (toast.isActive('loginFailed')) {
+ toast.dismiss('loginFailed');
+ }
+ }
+ }, [token, history]);
+
+ useEffect(() => {
+ if (error) {
+ history.push('/login');
+ if (!toast.isActive('loginFailed')) {
+ toast.error(
+ ,
+ { autoClose: false, toastId: 'loginFailed' },
+ );
+ }
+ }
+ }, [error, history, intl]);
+
+ return (
+
+
+
+
+ {intl.formatMessage(messages.authenticating)}
+
+
+
+
+ );
+}
+
+export default injectIntl(LoginOIDC);
diff --git a/src/components/Logout/Logout.jsx b/src/components/Logout/Logout.jsx
index f3e22bd..8f88871 100644
--- a/src/components/Logout/Logout.jsx
+++ b/src/components/Logout/Logout.jsx
@@ -3,13 +3,19 @@
* @module components/theme/Logout/Logout
*/
-import React, { useEffect } from 'react';
-
-import Login from '../Login/Login';
-import { injectIntl } from 'react-intl';
+import React, { useEffect, useState } from 'react';
+import { Container } from 'semantic-ui-react';
+import { oidcLogout } from '../../actions';
+import { defineMessages, injectIntl } from 'react-intl';
import { logout, purgeMessages } from '@plone/volto/actions';
-import { useLocation } from 'react-router-dom';
-import { useDispatch } from 'react-redux';
+import { useSelector, useDispatch } from 'react-redux';
+
+const messages = defineMessages({
+ loggedOut: {
+ id: 'You have been logged out',
+ defaultMessage: 'You have been logged out',
+ },
+});
/**
* Logout function.
@@ -17,15 +23,39 @@ import { useDispatch } from 'react-redux';
* @returns {JSX.Element} Markup of the Logout page.
*/
function Logout({ intl }) {
- const location = useLocation();
const dispatch = useDispatch();
+ const [displayLogout, setDisplayLogout] = useState(false);
+ const loginOIDCValues = useSelector((state) => state.oidcRedirect);
+ const logoutOIDCValues = useSelector((state) => state.oidcLogout);
useEffect(() => {
+ const isOIDC = loginOIDCValues.next_url;
+ if (isOIDC) {
+ dispatch(oidcLogout());
+ } else {
+ setDisplayLogout(true);
+ }
dispatch(logout());
dispatch(purgeMessages());
- }, [dispatch]);
+ }, [dispatch, displayLogout, loginOIDCValues]);
+
+ useEffect(() => {
+ const next_url = logoutOIDCValues.next_url;
+ if (next_url) {
+ // Give time to save state to localstorage
+ setTimeout(function () {
+ window.location.href = next_url;
+ }, 500);
+ }
+ }, [logoutOIDCValues]);
- return ;
+ return (
+ displayLogout && (
+
+ {intl.formatMessage(messages.loggedOut)}
+
+ )
+ );
}
export default injectIntl(Logout);
diff --git a/src/constants/ActionTypes.js b/src/constants/ActionTypes.js
index ab2d1ed..d0f5d27 100644
--- a/src/constants/ActionTypes.js
+++ b/src/constants/ActionTypes.js
@@ -2,9 +2,10 @@
* Add your action types here.
* @module constants/ActionTypes
* @example
- * export const UPDATE_CONTENT = 'UPDATE_CONTENT';
*/
export const LIST_AUTH_OPTIONS = 'LIST_AUTH_OPTIONS';
export const AUTHOMATIC_REDIRECT = 'AUTHOMATIC_LOGIN_START';
+export const OIDC_REDIRECT = 'OIDC_LOGIN_START';
export const LOGIN = 'LOGIN';
+export const LOGOUT_OIDC = 'LOGOUT_OIDC';
diff --git a/src/index.js b/src/index.js
index 812adbd..b455afa 100644
--- a/src/index.js
+++ b/src/index.js
@@ -1,5 +1,13 @@
-import { Login, LoginAuthomatic, Logout } from './components';
-import { authomaticRedirect, authOptions } from './reducers';
+import Login from './components/Login/Login';
+import LoginAuthomatic from './components/LoginAuthomatic/LoginAuthomatic';
+import LoginOIDC from './components/LoginOIDC/LoginOIDC';
+import Logout from './components/Logout/Logout';
+import {
+ authomaticRedirect,
+ authOptions,
+ oidcLogout,
+ oidcRedirect,
+} from './reducers';
import { Login as VoltoLogin } from '@plone/volto/components';
const applyConfig = (config) => {
@@ -7,14 +15,19 @@ const applyConfig = (config) => {
...config.addonReducers,
authomaticRedirect,
authOptions,
+ oidcLogout,
+ oidcRedirect,
};
config.settings.persistentReducers = [
...config.settings.persistentReducers,
'authomaticRedirect',
+ 'oidcLogout',
+ 'oidcRedirect',
];
config.settings.nonContentRoutes = [
...config.settings.nonContentRoutes,
/^\/login-authomatic\/.*$/,
+ /^\/login-oidc\/.*$/,
];
config.addonRoutes.push(
{ path: '/fallback_login', component: VoltoLogin },
@@ -28,6 +41,7 @@ const applyConfig = (config) => {
component: Login,
},
{ path: '/login-authomatic/:provider', component: LoginAuthomatic },
+ { path: '/login-oidc/:provider', component: LoginOIDC },
);
return config;
};
diff --git a/src/reducers/auth/oidcLogout.js b/src/reducers/auth/oidcLogout.js
new file mode 100644
index 0000000..de0f15c
--- /dev/null
+++ b/src/reducers/auth/oidcLogout.js
@@ -0,0 +1,51 @@
+/**
+ * OIDC redirect reducer.
+ * @module reducers/auth/oidcRedirect
+ */
+
+import { LOGOUT_OIDC } from '../../constants/ActionTypes';
+
+const initialState = {
+ next_url: null,
+ session: null,
+ loading: false,
+ error: null,
+};
+
+/**
+ * OIDC Logout reducer.
+ * @function oidcLogout
+ * @param {Object} state Current state.
+ * @param {Object} action Action to be handled.
+ * @returns {Object} New state.
+ */
+export default function oidcLogout(state = initialState, action = {}) {
+ switch (action.type) {
+ case `${LOGOUT_OIDC}_PENDING`:
+ return {
+ ...state,
+ loading: true,
+ next_url: null,
+ came_from: null,
+ error: null,
+ };
+ case `${LOGOUT_OIDC}_SUCCESS`:
+ return {
+ ...state,
+ loading: false,
+ next_url: action.result.next_url,
+ came_from: action.result.came_from,
+ error: null,
+ };
+ case `${LOGOUT_OIDC}_FAIL`:
+ return {
+ ...state,
+ loading: false,
+ next_url: null,
+ came_from: null,
+ error: action.error.response.error,
+ };
+ default:
+ return state;
+ }
+}
diff --git a/src/reducers/auth/oidcRedirect.js b/src/reducers/auth/oidcRedirect.js
new file mode 100644
index 0000000..f27cc65
--- /dev/null
+++ b/src/reducers/auth/oidcRedirect.js
@@ -0,0 +1,55 @@
+/**
+ * OIDC redirect reducer.
+ * @module reducers/auth/oidcRedirect
+ */
+
+import { OIDC_REDIRECT } from '../../constants/ActionTypes';
+
+const initialState = {
+ next_url: null,
+ session: null,
+ oidcAuth: false,
+ loading: false,
+ error: null,
+};
+
+/**
+ * OIDC redirect reducer.
+ * @function oidcRedirect
+ * @param {Object} state Current state.
+ * @param {Object} action Action to be handled.
+ * @returns {Object} New state.
+ */
+export default function oidcRedirect(state = initialState, action = {}) {
+ switch (action.type) {
+ case `${OIDC_REDIRECT}_PENDING`:
+ return {
+ ...state,
+ loading: true,
+ oidcAuth: false,
+ next_url: null,
+ session: null,
+ error: null,
+ };
+ case `${OIDC_REDIRECT}_SUCCESS`:
+ return {
+ ...state,
+ loading: false,
+ oidcAuth: true,
+ next_url: action.result.next_url,
+ session: action.result.session,
+ error: null,
+ };
+ case `${OIDC_REDIRECT}_FAIL`:
+ return {
+ ...state,
+ loading: false,
+ oidcAuth: false,
+ next_url: null,
+ session: null,
+ error: action.error.response.error,
+ };
+ default:
+ return state;
+ }
+}
diff --git a/src/reducers/index.js b/src/reducers/index.js
index 2487078..abc67b3 100644
--- a/src/reducers/index.js
+++ b/src/reducers/index.js
@@ -1,4 +1,6 @@
import authomaticRedirect from './auth/authomaticRedirect';
import authOptions from './auth/authOptions';
+import oidcLogout from './auth/oidcLogout';
+import oidcRedirect from './auth/oidcRedirect';
-export { authomaticRedirect, authOptions };
+export { authomaticRedirect, authOptions, oidcLogout, oidcRedirect };