From 76b7e4a8a26d29a3c462a2c663e9d79db6bf16f9 Mon Sep 17 00:00:00 2001 From: DrMint <29893320+DrMint@users.noreply.github.com> Date: Sat, 14 Oct 2023 11:27:32 +0200 Subject: [PATCH] Moved to 2.0 --- bun.lockb | Bin 473907 -> 522496 bytes docker-compose.yml | 2 +- package-lock.json | 2174 +++++++++++------ package.json | 12 +- .../collections/mustHaveAtLeastOneRole.ts | 8 - src/accesses/endpoints/mustBeApi.ts | 9 - .../endpoints/mustHaveAtLeastOneRole.ts | 8 - .../ChronologyEras/ChronologyEras.ts | 4 +- .../endpoints/importFromStrapi.ts | 3 +- .../ChronologyItems/ChronologyItems.ts | 18 +- .../endpoints/importFromStrapi.ts | 3 +- src/collections/Contents/Blocks/blocks.ts | 81 - src/collections/Contents/Blocks/lineBlock.ts | 5 - src/collections/Contents/Blocks/quoteBlock.ts | 24 - src/collections/Contents/Blocks/textBlock.ts | 19 - src/collections/Contents/Contents.ts | 32 +- .../ContentsFolders/ContentsFolders.ts | 4 +- .../Currencies/endpoints/importFromStrapi.ts | 3 +- src/collections/Keys/Keys.ts | 4 +- .../Keys/endpoints/importFromStrapi.ts | 472 ++-- .../Languages/endpoints/importFromStrapi.ts | 3 +- src/collections/LibraryItems/LibraryItems.ts | 110 +- .../LibraryItems/components/RowLabel.tsx | 2 +- src/collections/Posts/Posts.ts | 14 +- src/collections/Recorders/Recorders.ts | 4 +- .../Recorders/endpoints/importFromStrapi.ts | 55 +- src/collections/Videos/Videos.ts | 10 +- .../Videos/endpoints/importFromStrapi.ts | 41 +- src/collections/Weapons/Weapons.ts | 27 +- .../Weapons/components/AppearanceRowLabel.tsx | 2 +- .../Weapons/endpoints/importFromStrapi.ts | 90 +- src/components/Icon.tsx | 6 +- src/components/Logo.tsx | 2 +- src/components/QuickFilters.tsx | 8 +- src/endpoints/createGetByEndpoint.ts | 11 +- src/endpoints/createGetSlugsEndpoint.ts | 39 - .../createImageRegenerationEndpoint.ts | 10 +- src/endpoints/createStrapiImportEndpoint.ts | 29 +- .../backPropagationField.ts | 3 +- src/fields/imageField/Cell.tsx | 2 +- src/fields/translatedFields/RowLabel.tsx | 4 +- .../translatedFields/translatedFields.ts | 10 +- src/payload.config.ts | 16 +- .../components/Grid/index.scss | 69 - .../components/Grid/index.tsx | 100 - .../components/List/index.tsx | 202 -- .../components/ListControls.tsx | 228 -- src/plugins/payload-grid-view/index.ts | 53 - src/sdk.ts | 2 - src/server.ts | 18 +- src/styles.scss | 10 + src/types/collections.ts | 332 +-- src/types/payload.ts | 10 +- src/utils/asserts.ts | 6 +- src/utils/collectionConfig.ts | 3 +- src/utils/localApi.ts | 4 +- src/utils/recursiveBlocks.ts | 91 - src/utils/string.ts | 5 +- src/utils/versionedCollectionConfig.ts | 2 +- 59 files changed, 2113 insertions(+), 2405 deletions(-) delete mode 100644 src/accesses/collections/mustHaveAtLeastOneRole.ts delete mode 100644 src/accesses/endpoints/mustBeApi.ts delete mode 100644 src/accesses/endpoints/mustHaveAtLeastOneRole.ts delete mode 100644 src/collections/Contents/Blocks/blocks.ts delete mode 100644 src/collections/Contents/Blocks/quoteBlock.ts delete mode 100644 src/collections/Contents/Blocks/textBlock.ts delete mode 100644 src/endpoints/createGetSlugsEndpoint.ts delete mode 100644 src/plugins/payload-grid-view/components/Grid/index.scss delete mode 100644 src/plugins/payload-grid-view/components/Grid/index.tsx delete mode 100644 src/plugins/payload-grid-view/components/List/index.tsx delete mode 100644 src/plugins/payload-grid-view/components/ListControls.tsx delete mode 100644 src/plugins/payload-grid-view/index.ts delete mode 100644 src/utils/recursiveBlocks.ts diff --git a/bun.lockb b/bun.lockb index d2ae2c50f7caee3decfdfde74842a572a3012e34..16c3cc0a5ef9eb09294a39e2ce6c67cc6d00469a 100755 GIT binary patch delta 147197 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 YqHv6KEX`6Fr#h@aY`$HB>Nn^A0S@U=od5s; delta 112815 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" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.3.1", - "@csstools/css-tokenizer": "^2.2.0" + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1" } }, "node_modules/@csstools/color-helpers": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-3.0.0.tgz", - "integrity": "sha512-rBODd1rY01QcenD34QxbQxLc1g+Uh7z1X/uzTHNQzJUnFCT9/EZYI7KWq+j0YfWMXJsRJ8lVkqBcB0R/qLr+yg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-3.0.2.tgz", + "integrity": "sha512-NMVs/l7Y9eIKL5XjbCHEgGcG8LOUT2qVcRjX6EzkCdlvftHVKr2tHIPzHavfrULRZ5Q2gxrJ9f44dAlj6fX97Q==", "funding": [ { "type": "github", @@ -2682,9 +2687,9 @@ } }, "node_modules/@csstools/css-calc": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-1.1.3.tgz", - "integrity": "sha512-7mJZ8gGRtSQfQKBQFi5N0Z+jzNC0q8bIkwojP1W0w+APzEqHu5wJoGVsvKxVnVklu9F8tW1PikbBRseYnAdv+g==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-1.1.4.tgz", + "integrity": "sha512-ZV1TSmToiNcQL1P3hfzlzZzA02mmVkVmXGaUDUqpYUG84PmLhVSZpKX+KfxAuOcK7de04UXSQPBrAvaya6iiGg==", "funding": [ { "type": "github", @@ -2699,14 +2704,14 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.3.1", - "@csstools/css-tokenizer": "^2.2.0" + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1" } }, "node_modules/@csstools/css-color-parser": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-1.2.3.tgz", - "integrity": "sha512-YaEnCoPTdhE4lPQFH3dU4IEk8S+yCnxS88wMv45JzlnMfZp57hpqA6qf2gX8uv7IJTJ/43u6pTQmhy7hCjlz7g==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-1.3.3.tgz", + "integrity": "sha512-8GHvh0jopx++NLfYg6e7Bb1snI+CrGdHxUdzjX6zERyjCRsL53dX0ZqE5i4z7thAHCaLRlQrAMIWgNI0EQkx7w==", "funding": [ { "type": "github", @@ -2718,21 +2723,21 @@ } ], "dependencies": { - "@csstools/color-helpers": "^3.0.0", - "@csstools/css-calc": "^1.1.3" + "@csstools/color-helpers": "^3.0.2", + "@csstools/css-calc": "^1.1.4" }, "engines": { "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.3.1", - "@csstools/css-tokenizer": "^2.2.0" + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1" } }, "node_modules/@csstools/css-parser-algorithms": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.1.tgz", - "integrity": "sha512-xrvsmVUtefWMWQsGgFffqWSK03pZ1vfDki4IVIIUxxDKnGBzqNgv0A7SB1oXtVNEkcVO8xi1ZrTL29HhSu5kGA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.3.2.tgz", + "integrity": "sha512-sLYGdAdEY2x7TSw9FtmdaTrh2wFtRJO5VMbBrA8tEqEod7GEggFmxTSK9XqExib3yMuYNcvcTdCZIP6ukdjAIA==", "funding": [ { "type": "github", @@ -2747,13 +2752,13 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-tokenizer": "^2.2.0" + "@csstools/css-tokenizer": "^2.2.1" } }, "node_modules/@csstools/css-tokenizer": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.0.tgz", - "integrity": "sha512-wErmsWCbsmig8sQKkM6pFhr/oPha1bHfvxsUY5CYSQxwyhA9Ulrs8EqCgClhg4Tgg2XapVstGqSVcz0xOYizZA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.1.tgz", + "integrity": "sha512-Zmsf2f/CaEPWEVgw29odOj+WEVoiJy9s9NOv5GgNY9mZ1CZ7394By6wONrONrTsnNDv6F9hR02nvFihrGVGHBg==", "funding": [ { "type": "github", @@ -2769,9 +2774,9 @@ } }, "node_modules/@csstools/media-query-list-parser": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.3.tgz", - "integrity": "sha512-ATul1u+pic4aVpstgueqxEv4MsObEbszAxfTXpx9LHaeD3LAh+wFqdCteyegWmjk0k5rkSCAvIOaJe9U3DD09w==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.5.tgz", + "integrity": "sha512-IxVBdYzR8pYe89JiyXQuYk4aVVoCPhMJkz6ElRwlVysjwURTsTk/bmY/z4FfeRE+CRBMlykPwXEVUg8lThv7AQ==", "funding": [ { "type": "github", @@ -2786,8 +2791,8 @@ "node": "^14 || ^16 || >=18" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^2.3.1", - "@csstools/css-tokenizer": "^2.2.0" + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1" } }, "node_modules/@csstools/postcss-cascade-layers": { @@ -2816,9 +2821,9 @@ } }, "node_modules/@csstools/postcss-color-function": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-3.0.1.tgz", - "integrity": "sha512-+vrvCQeUifpMeyd42VQ3JPWGQ8cO19+TnGbtfq1SDSgZzRapCQO4aK9h/jhMOKPnxGzbA57oS0aHgP/12N9gSQ==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-2.2.3.tgz", + "integrity": "sha512-b1ptNkr1UWP96EEHqKBWWaV5m/0hgYGctgA/RVZhONeP1L3T/8hwoqDm9bB23yVCfOgE9U93KI9j06+pEkJTvw==", "funding": [ { "type": "github", @@ -2830,10 +2835,34 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^1.2.2", - "@csstools/css-parser-algorithms": "^2.3.1", - "@csstools/css-tokenizer": "^2.2.0", - "@csstools/postcss-progressive-custom-properties": "^3.0.0" + "@csstools/css-color-parser": "^1.2.0", + "@csstools/css-parser-algorithms": "^2.1.1", + "@csstools/css-tokenizer": "^2.1.1", + "@csstools/postcss-progressive-custom-properties": "^2.3.0" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/@csstools/postcss-color-function/node_modules/@csstools/postcss-progressive-custom-properties": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-2.3.0.tgz", + "integrity": "sha512-Zd8ojyMlsL919TBExQ1I0CTpBDdyCpH/yOdqatZpuC3sd22K4SwC7+Yez3Q/vmXMWSAl+shjNeFZ7JMyxMjK+Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^14 || ^16 || >=18" @@ -2843,9 +2872,9 @@ } }, "node_modules/@csstools/postcss-color-mix-function": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-2.0.1.tgz", - "integrity": "sha512-Z5cXkLiccKIVcUTe+fAfjUD7ZUv0j8rq3dSoBpM6I49dcw+50318eYrwUZa3nyb4xNx7ntNNUPmesAc87kPE2Q==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-1.0.3.tgz", + "integrity": "sha512-QGXjGugTluqFZWzVf+S3wCiRiI0ukXlYqCi7OnpDotP/zaVTyl/aqZujLFzTOXy24BoWnu89frGMc79ohY5eog==", "funding": [ { "type": "github", @@ -2857,10 +2886,10 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^1.2.2", - "@csstools/css-parser-algorithms": "^2.3.1", - "@csstools/css-tokenizer": "^2.2.0", - "@csstools/postcss-progressive-custom-properties": "^3.0.0" + "@csstools/css-color-parser": "^1.2.0", + "@csstools/css-parser-algorithms": "^2.1.1", + "@csstools/css-tokenizer": "^2.1.1", + "@csstools/postcss-progressive-custom-properties": "^2.3.0" }, "engines": { "node": "^14 || ^16 || >=18" @@ -2869,10 +2898,10 @@ "postcss": "^8.4" } }, - "node_modules/@csstools/postcss-exponential-functions": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-1.0.0.tgz", - "integrity": "sha512-FPndJ/7oGlML7/4EhLi902wGOukO0Nn37PjwOQGc0BhhjQPy3np3By4d3M8s9Cfmp9EHEKgUHRN2DQ5HLT/hTw==", + "node_modules/@csstools/postcss-color-mix-function/node_modules/@csstools/postcss-progressive-custom-properties": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-2.3.0.tgz", + "integrity": "sha512-Zd8ojyMlsL919TBExQ1I0CTpBDdyCpH/yOdqatZpuC3sd22K4SwC7+Yez3Q/vmXMWSAl+shjNeFZ7JMyxMjK+Q==", "funding": [ { "type": "github", @@ -2884,9 +2913,7 @@ } ], "dependencies": { - "@csstools/css-calc": "^1.1.3", - "@csstools/css-parser-algorithms": "^2.3.1", - "@csstools/css-tokenizer": "^2.2.0" + "postcss-value-parser": "^4.2.0" }, "engines": { "node": "^14 || ^16 || >=18" @@ -2920,9 +2947,9 @@ } }, "node_modules/@csstools/postcss-gradients-interpolation-method": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-4.0.1.tgz", - "integrity": "sha512-IHeFIcksjI8xKX7PWLzAyigM3UvJdZ4btejeNa7y/wXxqD5dyPPZuY55y8HGTrS6ETVTRqfIznoCPtTzIX7ygQ==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-4.0.6.tgz", + "integrity": "sha512-3YoaQtoz5uomMylT1eoSLLmsVwo1f7uP24Pd39mV5Zo9Bj04m1Mk+Xxe2sdvsgvGF4RX05SyRX5rKNcd7p+K8Q==", "funding": [ { "type": "github", @@ -2934,10 +2961,10 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^1.2.2", - "@csstools/css-parser-algorithms": "^2.3.1", - "@csstools/css-tokenizer": "^2.2.0", - "@csstools/postcss-progressive-custom-properties": "^3.0.0" + "@csstools/css-color-parser": "^1.3.3", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1", + "@csstools/postcss-progressive-custom-properties": "^3.0.1" }, "engines": { "node": "^14 || ^16 || >=18" @@ -2947,9 +2974,9 @@ } }, "node_modules/@csstools/postcss-hwb-function": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-3.0.1.tgz", - "integrity": "sha512-FYe2K8EOYlL1BUm2HTXVBo6bWAj0xl4khOk6EFhQHy/C5p3rlr8OcetzQuwMeNQ3v25nB06QTgqUHoOUwoEqhA==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-3.0.5.tgz", + "integrity": "sha512-ISRDhzB/dxsOnR+Z5GQmdOSIi4Q2lEf+7qdCsYMZJus971boaBzGL3A3W0U5m769qwDMRyy4CvHsRZP/8Vc2IQ==", "funding": [ { "type": "github", @@ -2961,9 +2988,9 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^1.2.2", - "@csstools/css-parser-algorithms": "^2.3.1", - "@csstools/css-tokenizer": "^2.2.0" + "@csstools/css-color-parser": "^1.3.3", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1" }, "engines": { "node": "^14 || ^16 || >=18" @@ -2973,9 +3000,9 @@ } }, "node_modules/@csstools/postcss-ic-unit": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-3.0.0.tgz", - "integrity": "sha512-FH3+zfOfsgtX332IIkRDxiYLmgwyNk49tfltpC6dsZaO4RV2zWY6x9VMIC5cjvmjlDO7DIThpzqaqw2icT8RbQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-3.0.1.tgz", + "integrity": "sha512-OkKZV0XZQixChA6r68O9UfGNFv06cPVcuT+MjpzfEuoCfbNWCj+b0dhsmdz776giQ+DymPmFDlTD+QJEFPI7rw==", "funding": [ { "type": "github", @@ -2987,7 +3014,7 @@ } ], "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^3.0.0", + "@csstools/postcss-progressive-custom-properties": "^3.0.1", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -2998,9 +3025,9 @@ } }, "node_modules/@csstools/postcss-is-pseudo-class": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-4.0.0.tgz", - "integrity": "sha512-0I6siRcDymG3RrkNTSvHDMxTQ6mDyYE8awkcaHNgtYacd43msl+4ZWDfQ1yZQ/viczVWjqJkLmPiRHSgxn5nZA==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-4.0.3.tgz", + "integrity": "sha512-/dt5M9Ty/x3Yiq0Nm/5PJJzwkVFchJgdjKVnryBPtoMCb9ohb/nDIJOwr/Wr3hK3FDs1EA1GE6PyRYsUmQPS8Q==", "funding": [ { "type": "github", @@ -3068,9 +3095,9 @@ } }, "node_modules/@csstools/postcss-logical-viewport-units": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-2.0.1.tgz", - "integrity": "sha512-R5s19SscS7CHoxvdYNMu2Y3WDwG4JjdhsejqjunDB1GqfzhtHSvL7b5XxCkUWqm2KRl35hI6kJ4HEaCDd/3BXg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-2.0.3.tgz", + "integrity": "sha512-xeVxqND5rlQyqLGdH7rX34sIm/JbbQKxpKQP8oD1YQqUHHCLQR9NUS57WqJKajxKN6AcNAMWJhb5LUH5RfPcyA==", "funding": [ { "type": "github", @@ -3082,7 +3109,7 @@ } ], "dependencies": { - "@csstools/css-tokenizer": "^2.2.0" + "@csstools/css-tokenizer": "^2.2.1" }, "engines": { "node": "^14 || ^16 || >=18" @@ -3092,9 +3119,9 @@ } }, "node_modules/@csstools/postcss-media-minmax": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-1.0.6.tgz", - "integrity": "sha512-BmwKkqEzzQz6D+5ctoacsiGrq4kVgd1PMEPwkwdR0qFaL2C2nguGsWG87xEw+HIts/2yxhIPTm7Jp3DQq+wn3Q==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-1.1.0.tgz", + "integrity": "sha512-t5Li/DPC5QmW/6VFLfUvsw/4dNYYseWR0tOXDeJg/9EKUodBgNawz5tuk5vYKtNvoj+Q08odMuXcpS5YJj0AFA==", "funding": [ { "type": "github", @@ -3106,10 +3133,10 @@ } ], "dependencies": { - "@csstools/css-calc": "^1.1.3", - "@csstools/css-parser-algorithms": "^2.3.1", - "@csstools/css-tokenizer": "^2.2.0", - "@csstools/media-query-list-parser": "^2.1.3" + "@csstools/css-calc": "^1.1.4", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1", + "@csstools/media-query-list-parser": "^2.1.5" }, "engines": { "node": "^14 || ^16 || >=18" @@ -3119,9 +3146,9 @@ } }, "node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-2.0.1.tgz", - "integrity": "sha512-UvMYxXT3R011whbxzRwLx7d7eNGyVsnZo7waAmf10ZGnT34XidY+rsdFnk6OdFwuG6FYqw3/tptQEAZOmUgvLw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-2.0.3.tgz", + "integrity": "sha512-IPL8AvnwMYW+cWtp+j8cW3MFN0RyXNT4hLOvs6Rf2N+NcbvXhSyKxZuE3W9Cv4KjaNoNoGx1d0UhT6tktq6tUw==", "funding": [ { "type": "github", @@ -3133,9 +3160,9 @@ } ], "dependencies": { - "@csstools/css-parser-algorithms": "^2.3.1", - "@csstools/css-tokenizer": "^2.2.0", - "@csstools/media-query-list-parser": "^2.1.3" + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1", + "@csstools/media-query-list-parser": "^2.1.5" }, "engines": { "node": "^14 || ^16 || >=18" @@ -3169,9 +3196,9 @@ } }, "node_modules/@csstools/postcss-normalize-display-values": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-3.0.0.tgz", - "integrity": "sha512-6Nw55PRXEKEVqn3bzA8gRRPYxr5tf5PssvcE5DRA/nAxKgKtgNZMCHCSd1uxTCWeyLnkf6h5tYRSB0P1Vh/K/A==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-3.0.1.tgz", + "integrity": "sha512-nUvRxI+ALJwkxZdPU4EDyuM380vP91sAGvI3jAOHs/sr3jfcCOzLkY6xKI1Mr526kZ3RivmMoYM/xq+XFyE/bw==", "funding": [ { "type": "github", @@ -3193,9 +3220,9 @@ } }, "node_modules/@csstools/postcss-oklab-function": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-3.0.1.tgz", - "integrity": "sha512-3TIz+dCPlQPzz4yAEYXchUpfuU2gRYK4u1J+1xatNX85Isg4V+IbLyppblWLV4Vb6npFF8qsHN17rNuxOIy/6w==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-3.0.6.tgz", + "integrity": "sha512-p//JBeyk57OsNT1y9snWqunJ5g39JXjJUVlOcUUNavKxwQiRcXx2otONy7fRj6y3XKHLvp8wcV7kn93rooNaYA==", "funding": [ { "type": "github", @@ -3207,10 +3234,10 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^1.2.2", - "@csstools/css-parser-algorithms": "^2.3.1", - "@csstools/css-tokenizer": "^2.2.0", - "@csstools/postcss-progressive-custom-properties": "^3.0.0" + "@csstools/css-color-parser": "^1.3.3", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1", + "@csstools/postcss-progressive-custom-properties": "^3.0.1" }, "engines": { "node": "^14 || ^16 || >=18" @@ -3220,9 +3247,9 @@ } }, "node_modules/@csstools/postcss-progressive-custom-properties": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-3.0.0.tgz", - "integrity": "sha512-2/D3CCL9DN2xhuUTP8OKvKnaqJ1j4yZUxuGLsCUOQ16wnDAuMLKLkflOmZF5tsPh/02VPeXRmqIN+U595WAulw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-3.0.1.tgz", + "integrity": "sha512-yfdEk8o3CWPTusoInmGpOVCcMg1FikcKZyYB5ApULg9mES4FTGNuHK3MESscmm64yladcLNkPlz26O7tk3LMbA==", "funding": [ { "type": "github", @@ -3244,9 +3271,9 @@ } }, "node_modules/@csstools/postcss-relative-color-syntax": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-2.0.1.tgz", - "integrity": "sha512-9B8br/7q0bjD1fV3yE22izjc7Oy5hDbDgwdFEz207cdJHYC9yQneJzP3H+/w3RgC7uyfEVhyyhkGRx5YAfJtmg==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-2.0.6.tgz", + "integrity": "sha512-GAtXFxhKRWtPOV0wJ7ENCPZUSxJtVzsDvSCzTs8aaU1g1634SlpJWVNEDuVHllzJAWk/CB97p2qkDU3jITPL3A==", "funding": [ { "type": "github", @@ -3258,10 +3285,10 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^1.2.2", - "@csstools/css-parser-algorithms": "^2.3.1", - "@csstools/css-tokenizer": "^2.2.0", - "@csstools/postcss-progressive-custom-properties": "^3.0.0" + "@csstools/css-color-parser": "^1.3.3", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1", + "@csstools/postcss-progressive-custom-properties": "^3.0.1" }, "engines": { "node": "^14 || ^16 || >=18" @@ -3295,9 +3322,9 @@ } }, "node_modules/@csstools/postcss-stepped-value-functions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-3.0.1.tgz", - "integrity": "sha512-y1sykToXorFE+5cjtp//xAMWEAEple0kcZn2QhzEFIZDDNvGOCp5JvvmmPGsC3eDlj6yQp70l9uXZNLnimEYfA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-3.0.2.tgz", + "integrity": "sha512-I3wX44MZVv+tDuWfrd3BTvRB/YRIM2F5v1MBtTI89sxpFn47mNpTwpPYUOGPVCgKlRDfZSlxIUYhUQmqRQZZFQ==", "funding": [ { "type": "github", @@ -3309,9 +3336,9 @@ } ], "dependencies": { - "@csstools/css-calc": "^1.1.3", - "@csstools/css-parser-algorithms": "^2.3.1", - "@csstools/css-tokenizer": "^2.2.0" + "@csstools/css-calc": "^1.1.4", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1" }, "engines": { "node": "^14 || ^16 || >=18" @@ -3321,9 +3348,9 @@ } }, "node_modules/@csstools/postcss-text-decoration-shorthand": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-3.0.0.tgz", - "integrity": "sha512-BAa1MIMJmEZlJ+UkPrkyoz3DC7kLlIl2oDya5yXgvUrelpwxddgz8iMp69qBStdXwuMyfPx46oZcSNx8Z0T2eA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-3.0.3.tgz", + "integrity": "sha512-d5J9m49HhqXRcw1S6vTZuviHi/iknUKGjBpChiNK1ARg9sSa3b8m5lsWz5Izs8ISORZdv2bZRwbw5Z2R6gQ9kQ==", "funding": [ { "type": "github", @@ -3335,7 +3362,7 @@ } ], "dependencies": { - "@csstools/color-helpers": "^3.0.0", + "@csstools/color-helpers": "^3.0.2", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -3346,9 +3373,9 @@ } }, "node_modules/@csstools/postcss-trigonometric-functions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-3.0.1.tgz", - "integrity": "sha512-hW+JPv0MPQfWC1KARgvJI6bisEUFAZWSvUNq/khGCupYV/h6Z9R2ZFz0Xc633LXBst0ezbXpy7NpnPurSx5Klw==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-3.0.2.tgz", + "integrity": "sha512-AwzNhF4QOKaLOKvMljwwFkeYXwufhRO15G+kKohHkyoNOL75xWkN+W2Y9ik9tSeAyDv+cYNlYaF+o/a79WjVjg==", "funding": [ { "type": "github", @@ -3360,9 +3387,9 @@ } ], "dependencies": { - "@csstools/css-calc": "^1.1.3", - "@csstools/css-parser-algorithms": "^2.3.1", - "@csstools/css-tokenizer": "^2.2.0" + "@csstools/css-calc": "^1.1.4", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1" }, "engines": { "node": "^14 || ^16 || >=18" @@ -3674,18 +3701,27 @@ } }, "node_modules/@floating-ui/core": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.3.1.tgz", - "integrity": "sha512-Bu+AMaXNjrpjh41znzHqaz3r2Nr8hHuHZT6V2LBKMhyMl0FgKA62PNYbqnfgmzOhoWZj70Zecisbo4H1rotP5g==" + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.5.0.tgz", + "integrity": "sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==", + "dependencies": { + "@floating-ui/utils": "^0.1.3" + } }, "node_modules/@floating-ui/dom": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.4.4.tgz", - "integrity": "sha512-21hhDEPOiWkGp0Ys4Wi6Neriah7HweToKra626CIK712B5m9qkdz54OP9gVldUg+URnBTpv/j/bi/skmGdstXQ==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.5.3.tgz", + "integrity": "sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==", "dependencies": { - "@floating-ui/core": "^1.3.1" + "@floating-ui/core": "^1.4.2", + "@floating-ui/utils": "^0.1.3" } }, + "node_modules/@floating-ui/utils": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.1.6.tgz", + "integrity": "sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==" + }, "node_modules/@fontsource/vollkorn": { "version": "5.0.14", "resolved": "https://registry.npmjs.org/@fontsource/vollkorn/-/vollkorn-5.0.14.tgz", @@ -3788,10 +3824,272 @@ "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==" }, - "node_modules/@juggle/resize-observer": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", - "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==" + "node_modules/@lexical/clipboard": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@lexical/clipboard/-/clipboard-0.12.2.tgz", + "integrity": "sha512-RldmfZquuJJJCJ5WquCyoJ1/eZ+AnNgdksqvd+G+Yn/GyJl/+O3dnHM0QVaDSPvh/PynLFcCtz/57ySLo2kQxQ==", + "dependencies": { + "@lexical/html": "0.12.2", + "@lexical/list": "0.12.2", + "@lexical/selection": "0.12.2", + "@lexical/utils": "0.12.2" + }, + "peerDependencies": { + "lexical": "0.12.2" + } + }, + "node_modules/@lexical/code": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@lexical/code/-/code-0.12.2.tgz", + "integrity": "sha512-w2JeJdnMUtYnC/Fx78sL3iJBt9Ug8pFSDOcI9ay/BkMQFQV8oqq1iyuLLBBJSG4FAM8b2DXrVdGklRQ+jTfTVw==", + "dependencies": { + "@lexical/utils": "0.12.2", + "prismjs": "^1.27.0" + }, + "peerDependencies": { + "lexical": "0.12.2" + } + }, + "node_modules/@lexical/dragon": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@lexical/dragon/-/dragon-0.12.2.tgz", + "integrity": "sha512-Mt8NLzTOt+VgQtc2DKDbHBwKeRlvKqbLqRIMYUVk60gol+YV7NpVBsP1PAMuYYjrTQLhlckBSC32H1SUHZRavA==", + "peerDependencies": { + "lexical": "0.12.2" + } + }, + "node_modules/@lexical/file": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@lexical/file/-/file-0.12.2.tgz", + "integrity": "sha512-jkhaGhj+lj/Edc1YGxdw1RzOIt04yy7KRsgSDHSPo38nqyhOh2oKqUQhnBcFIHCrB0TPCmIT0IbviYY/8TBvJw==", + "peerDependencies": { + "lexical": "0.12.2" + } + }, + "node_modules/@lexical/hashtag": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@lexical/hashtag/-/hashtag-0.12.2.tgz", + "integrity": "sha512-2vYzIu5Ldf+eYdUrNA2m80c3N3MF3vJ0fIJzpl5QyX8OdViggEWl1bh+lKtw1Ju0H0CUyDIXdDLZ2apW3WDkTA==", + "dependencies": { + "@lexical/utils": "0.12.2" + }, + "peerDependencies": { + "lexical": "0.12.2" + } + }, + "node_modules/@lexical/headless": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@lexical/headless/-/headless-0.12.2.tgz", + "integrity": "sha512-fgAPcNG8z/uL++eplR5u5RZQU62n/aOf/znEnMn0toM73yzZQm3+V9Jx/Q5U/QfFuWVwQddVLZ32DGqMCW1/8w==", + "peerDependencies": { + "lexical": "0.12.2" + } + }, + "node_modules/@lexical/history": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@lexical/history/-/history-0.12.2.tgz", + "integrity": "sha512-PM/EDjnUyBPMWh1UiYb7T+FLbvTk14HwUWLXvZxn72S6Kj8ExH/PfLbWZWLCFL8RfzvbP407VwfSN8S0bF5H6g==", + "dependencies": { + "@lexical/utils": "0.12.2" + }, + "peerDependencies": { + "lexical": "0.12.2" + } + }, + "node_modules/@lexical/html": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@lexical/html/-/html-0.12.2.tgz", + "integrity": "sha512-LWUO6OKhDtDZa9X1spHAqzsp+4EF01exis4cz5H9y2sHi7EofogXnRCadZ+fa07NVwPVTZWsStkk5qdSe/NEzg==", + "dependencies": { + "@lexical/selection": "0.12.2" + }, + "peerDependencies": { + "lexical": "0.12.2" + } + }, + "node_modules/@lexical/link": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@lexical/link/-/link-0.12.2.tgz", + "integrity": "sha512-etOIONa7uyRDmwg8GN52kDlf8thD2Zk1LOFLeocHWz1V8fe3i2unGUek5s/rNPkc6ynpPpNsHdN1VEghOLCCmw==", + "dependencies": { + "@lexical/utils": "0.12.2" + }, + "peerDependencies": { + "lexical": "0.12.2" + } + }, + "node_modules/@lexical/list": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@lexical/list/-/list-0.12.2.tgz", + "integrity": "sha512-3CyWtYQC+IlK4cK/oiD8Uz1gSXD8UcKGOF2vVsDXkMU06O6zvHNmHZOnVJqA0JVNgZAoR9dMR1fi2xd4iuCAiw==", + "dependencies": { + "@lexical/utils": "0.12.2" + }, + "peerDependencies": { + "lexical": "0.12.2" + } + }, + "node_modules/@lexical/mark": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@lexical/mark/-/mark-0.12.2.tgz", + "integrity": "sha512-ub+37PDfmThsqAWipRTrwqpgE+83ckqJ5C3mKQUBZvhZfVZW1rEUXZnKjFh2Q3eZK6iT7zVgoVJWJS9ZgEEyag==", + "dependencies": { + "@lexical/utils": "0.12.2" + }, + "peerDependencies": { + "lexical": "0.12.2" + } + }, + "node_modules/@lexical/markdown": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@lexical/markdown/-/markdown-0.12.2.tgz", + "integrity": "sha512-F2jTFtBp7Q+yoA11BeUOEcxhROzW+HUhUGdsn20pSLhuxsWRj3oUuryWFeNKFofpzTCVoqU6dwpaMNMI2mL/sQ==", + "dependencies": { + "@lexical/code": "0.12.2", + "@lexical/link": "0.12.2", + "@lexical/list": "0.12.2", + "@lexical/rich-text": "0.12.2", + "@lexical/text": "0.12.2", + "@lexical/utils": "0.12.2" + }, + "peerDependencies": { + "lexical": "0.12.2" + } + }, + "node_modules/@lexical/offset": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@lexical/offset/-/offset-0.12.2.tgz", + "integrity": "sha512-rZLZXfOBmpmM8A2UZsX3cr/CQYw5F/ou67AbaKI0WImb5sjnIgICZqzu9VFUnkKlVNUurEpplV3UG3D1YYh1OQ==", + "peerDependencies": { + "lexical": "0.12.2" + } + }, + "node_modules/@lexical/overflow": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@lexical/overflow/-/overflow-0.12.2.tgz", + "integrity": "sha512-UgE5j3ukO6qRFRpH4T7m/DvnodE9nCtImD7QinyGdsTa0hi5xlRnl0FUo605vH+vz7xEsUNAGwQXYPX9Sc/vig==", + "peerDependencies": { + "lexical": "0.12.2" + } + }, + "node_modules/@lexical/plain-text": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@lexical/plain-text/-/plain-text-0.12.2.tgz", + "integrity": "sha512-Lcg6+ngRnX70//kz34azYhID3bvW66HSHCfu5UPhCXT+vQ/Jkd/InhRKajBwWXpaJxMM1huoi3sjzVDb3luNtw==", + "peerDependencies": { + "@lexical/clipboard": "0.12.2", + "@lexical/selection": "0.12.2", + "@lexical/utils": "0.12.2", + "lexical": "0.12.2" + } + }, + "node_modules/@lexical/react": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@lexical/react/-/react-0.12.2.tgz", + "integrity": "sha512-ZBUvf5xmhiYWBw8pPrhYmLAEwFWrbF/cd15y76TUKD9l/2zDwwPs6nJQxBzfz3ei65r2/nnavLDV8W3QfvxfUA==", + "dependencies": { + "@lexical/clipboard": "0.12.2", + "@lexical/code": "0.12.2", + "@lexical/dragon": "0.12.2", + "@lexical/hashtag": "0.12.2", + "@lexical/history": "0.12.2", + "@lexical/link": "0.12.2", + "@lexical/list": "0.12.2", + "@lexical/mark": "0.12.2", + "@lexical/markdown": "0.12.2", + "@lexical/overflow": "0.12.2", + "@lexical/plain-text": "0.12.2", + "@lexical/rich-text": "0.12.2", + "@lexical/selection": "0.12.2", + "@lexical/table": "0.12.2", + "@lexical/text": "0.12.2", + "@lexical/utils": "0.12.2", + "@lexical/yjs": "0.12.2", + "react-error-boundary": "^3.1.4" + }, + "peerDependencies": { + "lexical": "0.12.2", + "react": ">=17.x", + "react-dom": ">=17.x" + } + }, + "node_modules/@lexical/react/node_modules/react-error-boundary": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-3.1.4.tgz", + "integrity": "sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "engines": { + "node": ">=10", + "npm": ">=6" + }, + "peerDependencies": { + "react": ">=16.13.1" + } + }, + "node_modules/@lexical/rich-text": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@lexical/rich-text/-/rich-text-0.12.2.tgz", + "integrity": "sha512-igsEuv7CwBOAj5c8jeE41cnx6zkhI/Bkbu4W7shT6S6lNA/3cnyZpAMlgixwyK5RoqjGRCT+IJK5l6yBxQfNkw==", + "peerDependencies": { + "@lexical/clipboard": "0.12.2", + "@lexical/selection": "0.12.2", + "@lexical/utils": "0.12.2", + "lexical": "0.12.2" + } + }, + "node_modules/@lexical/selection": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@lexical/selection/-/selection-0.12.2.tgz", + "integrity": "sha512-h+g3oOnihHKIyLTyG6uLCEVR/DmUEVdCcZO1iAoGsuW7nwWiWNPWj6oZ3Cw5J1Mk5u62DHnkkVDQsVSZbAwmtg==", + "peerDependencies": { + "lexical": "0.12.2" + } + }, + "node_modules/@lexical/table": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@lexical/table/-/table-0.12.2.tgz", + "integrity": "sha512-tiAmTq6RKHDVER9v589Ajm9/RL+WTF1WschrH6HHVCtil6cfJfTJeJ+MF45+XEzB9fkqy2LfrScAfWxqLjVePA==", + "dependencies": { + "@lexical/utils": "0.12.2" + }, + "peerDependencies": { + "lexical": "0.12.2" + } + }, + "node_modules/@lexical/text": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@lexical/text/-/text-0.12.2.tgz", + "integrity": "sha512-HyuIGuQvVi5djJKKBf+jYEBjK+0Eo9cKHf6WS7dlFozuCZvcCQEJkFy2yceWOwIVk+f2kptVQ5uO7aiZHExH2A==", + "peerDependencies": { + "lexical": "0.12.2" + } + }, + "node_modules/@lexical/utils": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@lexical/utils/-/utils-0.12.2.tgz", + "integrity": "sha512-xW4y4l2Yd37+qLwkBvBGyzsKCA9wnh1ljphBJeR2vreT193i2gaIwuku2ZKlER14VHw4192qNJF7vUoAEmwurQ==", + "dependencies": { + "@lexical/list": "0.12.2", + "@lexical/selection": "0.12.2", + "@lexical/table": "0.12.2" + }, + "peerDependencies": { + "lexical": "0.12.2" + } + }, + "node_modules/@lexical/yjs": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/@lexical/yjs/-/yjs-0.12.2.tgz", + "integrity": "sha512-OPJhkJD1Mp9W80mfLzASTB3OFWFMzJteUYA+eSyDgiX9zNi1VGxAqmIITTkDvnCMa+qvw4EfhGeGezpjx6Og4A==", + "dependencies": { + "@lexical/offset": "0.12.2" + }, + "peerDependencies": { + "lexical": "0.12.2", + "yjs": ">=13.5.22" + } }, "node_modules/@monaco-editor/loader": { "version": "1.3.3", @@ -3823,6 +4121,98 @@ "integrity": "sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==", "optional": true }, + "node_modules/@payloadcms/bundler-webpack": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@payloadcms/bundler-webpack/-/bundler-webpack-1.0.3.tgz", + "integrity": "sha512-zgcaEiDHxoJ4IxX/73rXY6nTiLy4/KjPt2ghjAGOh+Rht6Q6/CSJCcBcVvQGHaV8ynImPax7CHuYQKLNX5mWtQ==", + "dependencies": { + "compression": "1.7.4", + "connect-history-api-fallback": "1.6.0", + "css-loader": "5.2.7", + "css-minimizer-webpack-plugin": "^5.0.0", + "file-loader": "6.2.0", + "find-node-modules": "^2.1.3", + "html-webpack-plugin": "^5.5.0", + "md5": "2.3.0", + "mini-css-extract-plugin": "1.6.2", + "path-browserify": "1.0.1", + "postcss": "8.4.31", + "postcss-loader": "6.2.1", + "postcss-preset-env": "9.0.0", + "process": "0.11.10", + "sass-loader": "12.6.0", + "style-loader": "^2.0.0", + "swc-loader": "^0.2.3", + "swc-minify-webpack-plugin": "^2.1.0", + "terser-webpack-plugin": "^5.3.6", + "url-loader": "4.1.1", + "webpack": "^5.78.0", + "webpack-bundle-analyzer": "^4.8.0", + "webpack-cli": "^4.10.0", + "webpack-dev-middleware": "6.0.1", + "webpack-hot-middleware": "^2.25.3" + } + }, + "node_modules/@payloadcms/db-mongodb": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@payloadcms/db-mongodb/-/db-mongodb-1.0.3.tgz", + "integrity": "sha512-9Zvyexg61Scdps5KIKVAM6ydRKL3moe0g2yiMBzdyDG0WuzAlI2xxz0P41hM6k402cSK42XOKj4Sqe6bghvr2g==", + "dependencies": { + "bson-objectid": "2.0.4", + "deepmerge": "4.3.1", + "get-port": "5.1.1", + "mongoose": "6.11.4", + "mongoose-aggregate-paginate-v2": "1.0.6", + "mongoose-paginate-v2": "1.7.22", + "prompts": "2.4.2", + "uuid": "9.0.0" + } + }, + "node_modules/@payloadcms/db-mongodb/node_modules/uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@payloadcms/richtext-lexical": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@payloadcms/richtext-lexical/-/richtext-lexical-0.1.8.tgz", + "integrity": "sha512-sl+qILRGdB/2WHXfd7OJOy0SCDeRU6BaFj4f4yqM7rHr5F9Qf9lQ6w89tZBkNYC25sdY0Td5g804vsAapPXm6g==", + "dependencies": { + "@faceless-ui/modal": "2.0.1", + "@lexical/clipboard": "0.12.2", + "@lexical/code": "0.12.2", + "@lexical/file": "0.12.2", + "@lexical/hashtag": "0.12.2", + "@lexical/headless": "0.12.2", + "@lexical/html": "0.12.2", + "@lexical/link": "0.12.2", + "@lexical/list": "0.12.2", + "@lexical/mark": "0.12.2", + "@lexical/markdown": "0.12.2", + "@lexical/overflow": "0.12.2", + "@lexical/plain-text": "0.12.2", + "@lexical/react": "0.12.2", + "@lexical/rich-text": "0.12.2", + "@lexical/selection": "0.12.2", + "@lexical/table": "0.12.2", + "@lexical/utils": "0.12.2", + "bson-objectid": "2.0.4", + "classnames": "^2.3.2", + "i18next": "22.5.1", + "katex": "0.16.8", + "lexical": "0.12.2", + "lodash": "4.17.21", + "openai": "4.7.1", + "react": "18.2.0", + "react-dom": "18.2.0", + "react-error-boundary": "^4.0.11", + "react-i18next": "11.18.6", + "ts-essentials": "7.0.3" + } + }, "node_modules/@polka/url": { "version": "1.0.0-next.21", "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", @@ -4379,6 +4769,7 @@ "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.78.tgz", "integrity": "sha512-y6DQP571v7fbUUY7nz5G4lNIRGofuO48K5pGhD9VnuOCTuptfooCdi8wnigIrIhM/M4zQ53m/YCMDCbOtDgEww==", "hasInstallScript": true, + "peer": true, "engines": { "node": ">=10" }, @@ -4407,81 +4798,6 @@ } } }, - "node_modules/@swc/core-darwin-arm64": { - "version": "1.3.78", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.78.tgz", - "integrity": "sha512-596KRua/d5Gx1buHKKchSyHuwoIL4S1BRD/wCvYNLNZ3xOzcuBBmXOjrDVigKi1ztNDeS07p30RO5UyYur0XAA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-darwin-x64": { - "version": "1.3.78", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.3.78.tgz", - "integrity": "sha512-w0RsD1onQAj0vuLAoOVi48HgnW6D6oBEIZP17l0HYejCDBZ+FRZLjml7wgNAWMqHcd2qNRqgtZ+v7aLza2JtBQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.3.78", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.78.tgz", - "integrity": "sha512-v1CpRn+H6fha1WIqmdRvJM40pFdjUHrGfhf4Ygci72nlAU41l5XimN8Iwkm8FgIwf2wnv0lLzedSM4IHvpq/yA==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.3.78", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.78.tgz", - "integrity": "sha512-Sis17dz9joJRFVvR/gteOZSUNrrrioo81RQzani0Zr5ZZOfWLMTB9DA+0MVlfnVa2taYcsJHJZFoAv9JkLwbzg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.3.78", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.78.tgz", - "integrity": "sha512-E5F8/qp+QupnfBnsP4vN1PKyCmAHYHDG1GMyPE/zLFOUYLgw+jK4C9rfyLBR0o2bWo1ay2WCIjusBZD9XHGOSA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, "node_modules/@swc/core-linux-x64-gnu": { "version": "1.3.78", "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.78.tgz", @@ -4493,6 +4809,7 @@ "os": [ "linux" ], + "peer": true, "engines": { "node": ">=10" } @@ -4508,51 +4825,7 @@ "os": [ "linux" ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.3.78", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.78.tgz", - "integrity": "sha512-CXFaGEc2M9Su3UoUMC8AnzKb9g+GwPxXfakLWZsjwS448h6jcreExq3nwtBNdVGzQ26xqeVLMFfb1l/oK99Hwg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.3.78", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.78.tgz", - "integrity": "sha512-FaH1jwWnJpWkdImpMoiZpMg9oy9UUyZwltzN7hFwjR48e3Li82cRFb+9PifIBHCUSBM+CrrsJXbHP213IMVAyw==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.3.78", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.78.tgz", - "integrity": "sha512-oYxa+tPdhlx1aH14AIoF6kvVjo49tEOW0drNqoEaVHufvgH0y43QU2Jum3b2+xXztmMRtzK2CSN3GPOAXDKKKg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], + "peer": true, "engines": { "node": ">=10" } @@ -4701,6 +4974,16 @@ "integrity": "sha512-qjDJRrmvBMiTx+jyLxvLfJU7UznFuokDv4f3WRuriHKERccVpFU+8XMQUAbDzoiJCsmexxRExQeMwwCdamSKDA==", "dev": true }, + "node_modules/@types/hoist-non-react-statics": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.3.tgz", + "integrity": "sha512-Wny3a2UXn5FEA1l7gc6BbpoV5mD1XijZqgkp4TRgDCDL5r3B5ieOFGUX5h3n78Tr1MEG7BfvoM8qeztdvNU0fw==", + "dev": true, + "dependencies": { + "@types/react": "*", + "hoist-non-react-statics": "^3.3.0" + } + }, "node_modules/@types/html-minifier-terser": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", @@ -4712,11 +4995,6 @@ "integrity": "sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ==", "dev": true }, - "node_modules/@types/is-hotkey": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/@types/is-hotkey/-/is-hotkey-0.1.7.tgz", - "integrity": "sha512-yB5C7zcOM7idwYZZ1wKQ3pTfjA9BbvFqRWvKB46GFddxnJtHwi/b9y84ykQtxQPg5qhdpg4Q/kWU3EGoCTmLzQ==" - }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", @@ -4743,6 +5021,12 @@ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.12.tgz", "integrity": "sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==" }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, "node_modules/@types/language-tags": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@types/language-tags/-/language-tags-1.0.2.tgz", @@ -4776,6 +5060,15 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-20.4.1.tgz", "integrity": "sha512-JIzsAvJeA/5iY6Y/OxZbv1lUcc8dNSE77lb2gnBH+/PJ3lFR1Ccvgwl5JWnHAkNHcRsT0TbpVOsiMKZ1F/yyJg==" }, + "node_modules/@types/node-fetch": { + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.6.tgz", + "integrity": "sha512-95X8guJYhfqiuVVhRFxVQcf4hW/2bCuoPwDasMf/531STFoNoWTT7YDnWdXHEZKqAGUigmpG31r2FE70LwnzJw==", + "dependencies": { + "@types/node": "*", + "form-data": "^4.0.0" + } + }, "node_modules/@types/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", @@ -4835,9 +5128,9 @@ } }, "node_modules/@types/react-transition-group": { - "version": "4.4.6", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.6.tgz", - "integrity": "sha512-VnCdSxfcm08KjsJVQcfBmhEQAPnLB8G08hAxn39azX1qYBQ/5RVQuoHuKIcfKOdncuaUvEpFKFzEvbtIMsfVew==", + "version": "4.4.7", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.7.tgz", + "integrity": "sha512-ICCyBl5mvyqYp8Qeq9B5G/fyBSRC0zx3XM3sCC6KkcMsNeAHqXBKkmat4GqdJET5jtYUpZXrxI5flve5qhi2Eg==", "dependencies": { "@types/react": "*" } @@ -4868,12 +5161,15 @@ "@types/node": "*" } }, - "node_modules/@types/sharp": { - "version": "0.31.1", - "resolved": "https://registry.npmjs.org/@types/sharp/-/sharp-0.31.1.tgz", - "integrity": "sha512-5nWwamN9ZFHXaYEincMSuza8nNfOof8nmO+mcI+Agx1uMUk4/pQnNIcix+9rLPXzKrm1pS34+6WRDbDV0Jn7ag==", + "node_modules/@types/styled-components": { + "version": "5.1.28", + "resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.28.tgz", + "integrity": "sha512-nu0VKNybkjvUqJAXWtRqKd7j3iRUl8GbYSTvZNuIBJcw/HUp1Y4QUXNLlj7gcnRV/t784JnHAlvRnSnE3nPbJA==", + "dev": true, "dependencies": { - "@types/node": "*" + "@types/hoist-non-react-statics": "*", + "@types/react": "*", + "csstype": "^3.0.2" } }, "node_modules/@types/stylis": { @@ -5138,6 +5434,17 @@ "node": ">=0.4.0" } }, + "node_modules/agentkeepalive": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", + "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", + "dependencies": { + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -5275,6 +5582,11 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, "node_modules/atomic-sleep": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", @@ -5292,9 +5604,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.14", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", - "integrity": "sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==", + "version": "10.4.16", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", + "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", "funding": [ { "type": "opencollective", @@ -5303,12 +5615,16 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "browserslist": "^4.21.5", - "caniuse-lite": "^1.0.30001464", - "fraction.js": "^4.2.0", + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001538", + "fraction.js": "^4.3.6", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" @@ -5397,6 +5713,11 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, + "node_modules/base-64": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/base-64/-/base-64-0.1.0.tgz", + "integrity": "sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA==" + }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -5537,9 +5858,9 @@ } }, "node_modules/browserslist": { - "version": "4.21.9", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz", - "integrity": "sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", "funding": [ { "type": "opencollective", @@ -5555,10 +5876,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001503", - "electron-to-chromium": "^1.4.431", - "node-releases": "^2.0.12", - "update-browserslist-db": "^1.0.11" + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" @@ -5689,9 +6010,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001515", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001515.tgz", - "integrity": "sha512-eEFDwUOZbE24sb+Ecsx3+OvNETqjWIdabMy52oOkIgcUtAsQifjUG9q4U9dgTHJM2mfk4uEPxc0+xuFdJ629QA==", + "version": "1.0.30001546", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001546.tgz", + "integrity": "sha512-zvtSJwuQFpewSyRrI3AsftF6rM0X80mZkChIt1spBGEvRglCrjTniXvinc8JKRoqTwXAgvqTImaN9igfSMtUBw==", "funding": [ { "type": "opencollective", @@ -5936,6 +6257,17 @@ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==" }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/commander": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", @@ -5985,11 +6317,6 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, - "node_modules/compute-scroll-into-view": { - "version": "1.0.20", - "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz", - "integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==" - }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -6473,9 +6800,9 @@ } }, "node_modules/cssdb": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.7.0.tgz", - "integrity": "sha512-1hN+I3r4VqSNQ+OmMXxYexnumbOONkSil0TWMebVXHtzYW4tRRPovUNHPHj2d4nrgOuYJ8Vs3XwvywsuwwXNNA==", + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-7.8.0.tgz", + "integrity": "sha512-SkeezZOQr5AHt9MgJgSFNyiuJwg1p8AwoVln6JwaQJsyxduRW9QJ+HP/gAQzbsz8SIqINtYvpJKjxTRI67zxLg==", "funding": [ { "type": "opencollective", @@ -6742,6 +7069,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -6759,10 +7094,18 @@ "npm": "1.2.8000 || >= 1.4.16" } }, + "node_modules/detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/detect-libc": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz", - "integrity": "sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", "engines": { "node": ">=8" } @@ -6775,16 +7118,13 @@ "node": ">=0.3.1" } }, - "node_modules/direction": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/direction/-/direction-1.0.4.tgz", - "integrity": "sha512-GYqKi1aH7PJXxdhTeZBFrg8vUBeKXi+cNprXsC1kpJcbcVnV9wBsrOu1cQEdG0WeQwlfHiy3XvnKfIrJ2R0NzQ==", - "bin": { - "direction": "cli.js" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "node_modules/digest-fetch": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/digest-fetch/-/digest-fetch-1.3.0.tgz", + "integrity": "sha512-CGJuv6iKNM7QyZlM2T3sPAdZWd/p9zQiRNS9G+9COUCwzWFTs0Xp8NF5iePx7wtvhDykReiRRrSeNb4oMmB8lA==", + "dependencies": { + "base-64": "^0.1.0", + "md5": "^2.3.0" } }, "node_modules/dom-converter": { @@ -6909,9 +7249,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { - "version": "1.4.457", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.457.tgz", - "integrity": "sha512-/g3UyNDmDd6ebeWapmAoiyy+Sy2HyJ+/X8KyvNeHfKRFfHaA2W8oF5fxD5F3tjBDcjpwo0iek6YNgxNXDBoEtA==" + "version": "1.4.544", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.544.tgz", + "integrity": "sha512-54z7squS1FyFRSUqq/knOFSptjjogLZXbKcYk3B0qkE1KZzvqASwRZnY2KzZQJqIYLVD38XZeoiMRflYSwyO4w==" }, "node_modules/emoji-regex": { "version": "8.0.0", @@ -7170,6 +7510,17 @@ "node": ">=6" } }, + "node_modules/expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==", + "dependencies": { + "homedir-polyfill": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/express": { "version": "4.18.2", "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", @@ -7270,9 +7621,9 @@ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "node_modules/fast-redact": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.2.0.tgz", - "integrity": "sha512-zaTadChr+NekyzallAMXATXLOR8MNx3zqpZ0MUF2aGf4EathnG0f32VLODNlY8IuGY3HoRO2L6/6fSzNsLaHIw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.3.0.tgz", + "integrity": "sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ==", "engines": { "node": ">=6" } @@ -7375,6 +7726,15 @@ "node": ">= 0.8" } }, + "node_modules/find-node-modules": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/find-node-modules/-/find-node-modules-2.1.3.tgz", + "integrity": "sha512-UC2I2+nx1ZuOBclWVNdcnbDR5dlrOdVb7xNjmT/lHE+LsgztWks3dG7boJ37yTS/venXw84B/mAW9uHVoC5QRg==", + "dependencies": { + "findup-sync": "^4.0.0", + "merge": "^2.1.1" + } + }, "node_modules/find-root": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", @@ -7392,6 +7752,20 @@ "node": ">=8" } }, + "node_modules/findup-sync": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz", + "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==", + "dependencies": { + "detect-file": "^1.0.0", + "is-glob": "^4.0.0", + "micromatch": "^4.0.2", + "resolve-dir": "^1.0.1" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/flatley": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/flatley/-/flatley-5.2.0.tgz", @@ -7400,11 +7774,6 @@ "is-buffer": "^1.1.6" } }, - "node_modules/flatstr": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz", - "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==" - }, "node_modules/focus-trap": { "version": "6.9.4", "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-6.9.4.tgz", @@ -7421,6 +7790,36 @@ "is-callable": "^1.1.3" } }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/form-data-encoder": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.2.tgz", + "integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==" + }, + "node_modules/formdata-node": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-4.4.1.tgz", + "integrity": "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==", + "dependencies": { + "node-domexception": "1.0.0", + "web-streams-polyfill": "4.0.0-beta.3" + }, + "engines": { + "node": ">= 12.20" + } + }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -7430,15 +7829,15 @@ } }, "node_modules/fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.6.tgz", + "integrity": "sha512-n2aZ9tNfYDwaHhvFTkhFErqOMIb8uyzSQ+vGJBjZyanAKZVbGUQ1sngfk9FdkBw7G26O7AgNjLcecLffD1c7eg==", "engines": { "node": "*" }, "funding": { "type": "patreon", - "url": "https://www.patreon.com/infusion" + "url": "https://github.com/sponsors/rawify" } }, "node_modules/fresh": { @@ -7482,19 +7881,6 @@ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -7539,6 +7925,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-port": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz", + "integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-stdin": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", @@ -7619,6 +8016,45 @@ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" }, + "node_modules/global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dependencies": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==", + "dependencies": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -7644,17 +8080,17 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, "node_modules/graphql": { - "version": "16.7.1", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.7.1.tgz", - "integrity": "sha512-DRYR9tf+UGU0KOsMcKAlXeFfX89UiiIZ0dRU3mR0yJfu6OjZqUcp68NnFLnqQU5RexygFoDy1EW+ccOYcPfmHg==", + "version": "16.8.1", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", + "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", "engines": { "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" } }, "node_modules/graphql-http": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/graphql-http/-/graphql-http-1.20.0.tgz", - "integrity": "sha512-XMTieJkI8NRugwuTjWlT8OQAYH7+DCIuworslawJwRwraq4laJwvWkngYDVBIrDHPhR2sgdL/Bh8Kw5IwDDeRg==", + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/graphql-http/-/graphql-http-1.21.0.tgz", + "integrity": "sha512-yrItPfHj5WeT4n7iusbVin+vGSQjXFAX6U/GnYytdCJRXVad1TWGtYFDZ2ROjCKpXQzIwvfbiWCEwfuXgR3B6A==", "engines": { "node": ">=12" }, @@ -7898,6 +8334,17 @@ "react-is": "^16.7.0" } }, + "node_modules/homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dependencies": { + "parse-passwd": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/html-entities": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.4.0.tgz", @@ -8004,6 +8451,14 @@ "node": ">= 0.4.0" } }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dependencies": { + "ms": "^2.0.0" + } + }, "node_modules/i18next": { "version": "22.5.1", "resolved": "https://registry.npmjs.org/i18next/-/i18next-22.5.1.tgz", @@ -8086,15 +8541,6 @@ "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", "dev": true }, - "node_modules/immer": { - "version": "9.0.21", - "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz", - "integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/immer" - } - }, "node_modules/immutable": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.1.tgz", @@ -8481,6 +8927,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/isarray": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", @@ -8508,6 +8962,16 @@ "whatwg-fetch": "^3.4.1" } }, + "node_modules/isomorphic.js": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/isomorphic.js/-/isomorphic.js-0.2.5.tgz", + "integrity": "sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw==", + "peer": true, + "funding": { + "type": "GitHub Sponsors ❤", + "url": "https://github.com/sponsors/dmonad" + } + }, "node_modules/jest-util": { "version": "29.6.1", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.6.1.tgz", @@ -8751,6 +9215,21 @@ "node": ">=12.0.0" } }, + "node_modules/katex": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.8.tgz", + "integrity": "sha512-ftuDnJbcbOckGY11OO+zg3OofESlbR5DRl2cmN8HeWeeFIV7wTXvAOx8kEjZjobhA+9wh2fbKeO6cdcA9Mnovg==", + "funding": [ + "https://opencollective.com/katex", + "https://github.com/sponsors/katex" + ], + "dependencies": { + "commander": "^8.3.0" + }, + "bin": { + "katex": "cli.js" + } + }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -8759,6 +9238,14 @@ "node": ">=0.10.0" } }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "engines": { + "node": ">=6" + } + }, "node_modules/klona": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz", @@ -8783,6 +9270,31 @@ "node": ">=0.10" } }, + "node_modules/lexical": { + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/lexical/-/lexical-0.12.2.tgz", + "integrity": "sha512-Kxavd+ETjxtVwG/hvPd6WZfXD44sLOKe9Vlkwxy7lBQ1qZArS+rZfs+u5iXwXe6tX9f2PIM0u3RHsrCEDDE0fw==" + }, + "node_modules/lib0": { + "version": "0.2.86", + "resolved": "https://registry.npmjs.org/lib0/-/lib0-0.2.86.tgz", + "integrity": "sha512-kxigQTM4Q7NwJkEgdqQvU21qiR37twcqqLmh+/SbiGbRLfPlLVbHyY9sWp7PwXh0Xus9ELDSjsUOwcrdt5yZ4w==", + "peer": true, + "dependencies": { + "isomorphic.js": "^0.2.4" + }, + "bin": { + "0gentesthtml": "bin/gentesthtml.js", + "0serve": "bin/0serve.js" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "type": "GitHub Sponsors ❤", + "url": "https://github.com/sponsors/dmonad" + } + }, "node_modules/lilconfig": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", @@ -8997,6 +9509,11 @@ "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", "optional": true }, + "node_modules/merge": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/merge/-/merge-2.1.1.tgz", + "integrity": "sha512-jz+Cfrg9GWOZbQAnDQ4hlVnQky+341Yk5ru8bZSe6sIDTCIg8n9i/u7hSQGSVOF3C7lH6mGtqjkiT9G4wFLL0w==" + }, "node_modules/merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", @@ -9042,6 +9559,18 @@ "resolved": "https://registry.npmjs.org/micro-memoize/-/micro-memoize-4.1.2.tgz", "integrity": "sha512-+HzcV2H+rbSJzApgkj0NdTakkC+bnyeiUxgT6/m7mjcz1CmM22KYFKp+EVj1sWe4UYcnriJr5uqHQD/gMHLD+g==" }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, "node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -9368,10 +9897,23 @@ "node": ">=10" } }, - "node_modules/node-addon-api": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", - "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "engines": { + "node": ">=10.5.0" + } }, "node_modules/node-fetch": { "version": "2.6.12", @@ -9417,9 +9959,9 @@ "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" }, "node_modules/nodemailer": { - "version": "6.9.3", - "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.3.tgz", - "integrity": "sha512-fy9v3NgTzBngrMFkDsKEj0r02U7jm6XfC3b52eoNV+GCrGj+s8pt5OqhiJdWKuw51zCTdiNR/IUD1z33LIIGpg==", + "version": "6.9.4", + "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.4.tgz", + "integrity": "sha512-CXjQvrQZV4+6X5wP6ZIgdehJamI63MFoYFGGPtHudWym9qaEHDNdPzaj5bfMCvxG1vhAileSWW90q7nL0N36mA==", "engines": { "node": ">=6.0.0" } @@ -9596,9 +10138,12 @@ } }, "node_modules/on-exit-leak-free": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.0.tgz", - "integrity": "sha512-VuCaZZAjReZ3vUwgOB8LxAosIurDiAW0s13rI1YwmaP++jvcxP77AWoQvenZebpCA2m8WC1/EosPYPMjnRAp/w==" + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", + "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==", + "engines": { + "node": ">=14.0.0" + } }, "node_modules/on-finished": { "version": "2.4.1", @@ -9649,6 +10194,29 @@ "node": ">=6" } }, + "node_modules/openai": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/openai/-/openai-4.7.1.tgz", + "integrity": "sha512-4Um9A4aLGzZxyENyway0zVgi69BOxaqXmjOCKp3PUteOvSn9TeVf6IjkaNY8k/LXYG5l2e7PpacOl2sxsrTc/w==", + "dependencies": { + "@types/node": "^18.11.18", + "@types/node-fetch": "^2.6.4", + "abort-controller": "^3.0.0", + "agentkeepalive": "^4.2.1", + "digest-fetch": "^1.3.0", + "form-data-encoder": "1.7.2", + "formdata-node": "^4.3.2", + "node-fetch": "^2.6.7" + }, + "bin": { + "openai": "bin/cli" + } + }, + "node_modules/openai/node_modules/@types/node": { + "version": "18.18.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.4.tgz", + "integrity": "sha512-t3rNFBgJRugIhackit2mVcLfF6IRc0JE4oeizPQL8Zrm8n2WY/0wOdpOPhdtG0V9Q2TlW/axbF1MJ6z+Yj/kKQ==" + }, "node_modules/opener": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", @@ -9727,6 +10295,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -9862,131 +10438,213 @@ "integrity": "sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==" }, "node_modules/payload": { - "version": "1.15.7", - "resolved": "https://registry.npmjs.org/payload/-/payload-1.15.7.tgz", - "integrity": "sha512-Lco+L0lacWEC+zS2qQ2XJexZH9PWMDlwZIiyzi3NRq9DWs8nAY9ZuA4g4DAayiBww6yvPR6M+mpi3N6/wmJfgQ==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/payload/-/payload-2.0.5.tgz", + "integrity": "sha512-hVPbeYbjM7D8p2gkSdZmeZfheFvBEYObiz9iOWAHLv+N/BAToEONZkFgQoFdsmd87tEbBrJDblB8wKHt/PirOQ==", "dependencies": { - "@date-io/date-fns": "^2.16.0", - "@dnd-kit/core": "^6.0.7", - "@dnd-kit/sortable": "^7.0.2", - "@faceless-ui/modal": "^2.0.1", - "@faceless-ui/scroll-info": "^1.3.0", - "@faceless-ui/window-info": "^2.1.1", - "@monaco-editor/react": "^4.5.1", - "@swc/core": "1.3.78", + "@date-io/date-fns": "2.16.0", + "@dnd-kit/core": "6.0.8", + "@dnd-kit/sortable": "7.0.2", + "@faceless-ui/modal": "2.0.1", + "@faceless-ui/scroll-info": "1.3.0", + "@faceless-ui/window-info": "2.1.1", + "@monaco-editor/react": "4.5.1", + "@swc/core": "1.3.76", "@swc/register": "0.1.10", - "@types/sharp": "^0.31.1", - "body-parser": "^1.20.1", - "bson-objectid": "^2.0.4", - "compression": "^1.7.4", - "conf": "^10.2.0", - "connect-history-api-fallback": "^1.6.0", - "console-table-printer": "^2.11.2", - "css-loader": "^5.2.7", - "css-minimizer-webpack-plugin": "^5.0.0", - "dataloader": "^2.1.0", - "date-fns": "^2.29.3", - "deep-equal": "^2.2.0", - "deepmerge": "^4.2.2", - "dotenv": "^8.6.0", - "express": "^4.18.2", + "body-parser": "1.20.2", + "body-scroll-lock": "4.0.0-beta.0", + "bson-objectid": "2.0.4", + "compression": "1.7.4", + "conf": "10.2.0", + "connect-history-api-fallback": "1.6.0", + "console-table-printer": "2.11.2", + "dataloader": "2.2.2", + "date-fns": "2.30.0", + "deep-equal": "2.2.2", + "deepmerge": "4.3.1", + "dotenv": "8.6.0", + "express": "4.18.2", "express-fileupload": "1.4.0", - "express-rate-limit": "^5.5.1", - "file-loader": "^6.2.0", + "express-rate-limit": "5.5.1", "file-type": "16.5.4", "find-up": "4.1.0", - "flatley": "^5.2.0", - "fs-extra": "^10.1.0", - "get-tsconfig": "^4.4.0", - "graphql": "^16.6.0", - "graphql-http": "^1.17.1", - "graphql-playground-middleware-express": "^1.7.23", - "graphql-query-complexity": "^0.12.0", - "graphql-scalars": "^1.20.1", - "graphql-type-json": "^0.3.2", - "html-webpack-plugin": "^5.5.0", - "http-status": "^1.6.2", - "i18next": "^22.4.9", - "i18next-browser-languagedetector": "^6.1.8", - "i18next-http-middleware": "^3.2.2", - "is-hotkey": "^0.2.0", - "is-plain-object": "^5.0.0", - "isomorphic-fetch": "^3.0.0", - "joi": "^17.7.0", + "flatley": "5.2.0", + "fs-extra": "10.1.0", + "get-tsconfig": "4.6.2", + "graphql": "16.8.1", + "graphql-http": "1.21.0", + "graphql-playground-middleware-express": "1.7.23", + "graphql-query-complexity": "0.12.0", + "graphql-scalars": "1.22.2", + "graphql-type-json": "0.3.2", + "html-webpack-plugin": "5.5.3", + "http-status": "1.6.2", + "i18next": "22.5.1", + "i18next-browser-languagedetector": "6.1.8", + "i18next-http-middleware": "3.3.2", + "is-hotkey": "0.2.0", + "is-plain-object": "5.0.0", + "isomorphic-fetch": "3.0.0", + "joi": "17.9.2", "json-schema-to-typescript": "11.0.3", - "jsonwebtoken": "^9.0.0", - "jwt-decode": "^3.1.2", - "md5": "^2.3.0", - "method-override": "^3.0.0", - "micro-memoize": "^4.0.14", - "mini-css-extract-plugin": "1.6.2", - "minimist": "^1.2.7", - "mkdirp": "^1.0.4", - "monaco-editor": "^0.38.0", - "mongoose": "6.11.4", - "mongoose-aggregate-paginate-v2": "^1.0.6", - "mongoose-paginate-v2": "1.7.22", - "nodemailer": "^6.9.0", - "object-to-formdata": "^4.4.2", - "passport": "^0.6.0", - "passport-anonymous": "^1.0.1", - "passport-headerapikey": "^1.2.2", - "passport-jwt": "^4.0.1", - "passport-local": "^1.0.0", - "path-browserify": "^1.0.1", - "pino": "^6.4.1", - "pino-pretty": "^9.1.1", - "pluralize": "^8.0.0", - "postcss": "^8.4.21", - "postcss-loader": "^6.2.1", - "postcss-preset-env": "^9.0.0", - "probe-image-size": "^6.0.0", - "process": "^0.11.10", - "qs": "^6.11.0", - "qs-middleware": "^1.0.3", - "react": "^18.2.0", - "react-animate-height": "^2.1.2", - "react-datepicker": "^4.10.0", - "react-diff-viewer-continued": "^3.2.6", - "react-dom": "^18.2.0", - "react-helmet": "^6.1.0", - "react-i18next": "^11.18.6", - "react-router-dom": "^5.3.4", - "react-router-navigation-prompt": "^1.9.6", - "react-select": "^5.7.3", - "react-toastify": "^8.2.0", - "sanitize-filename": "^1.6.3", - "sass": "^1.57.1", - "sass-loader": "^12.6.0", - "scheduler": "^0.23.0", - "scmp": "^2.1.0", - "sharp": "^0.31.3", - "slate": "^0.91.4", - "slate-history": "^0.86.0", - "slate-hyperscript": "^0.81.3", - "slate-react": "^0.92.0", - "style-loader": "^2.0.0", - "swc-loader": "^0.2.3", - "swc-minify-webpack-plugin": "^2.1.0", - "terser-webpack-plugin": "^5.3.6", - "ts-essentials": "^7.0.3", - "url-loader": "^4.1.1", - "use-context-selector": "^1.4.1", - "uuid": "^8.3.2", - "webpack": "^5.78.0", - "webpack-bundle-analyzer": "^4.8.0", - "webpack-cli": "^4.10.0", - "webpack-dev-middleware": "6.0.1", - "webpack-hot-middleware": "^2.25.3" + "jsonwebtoken": "9.0.1", + "jwt-decode": "3.1.2", + "md5": "2.3.0", + "method-override": "3.0.0", + "micro-memoize": "4.1.2", + "minimist": "1.2.8", + "mkdirp": "1.0.4", + "monaco-editor": "0.38.0", + "nodemailer": "6.9.4", + "object-to-formdata": "4.5.1", + "passport": "0.6.0", + "passport-anonymous": "1.0.1", + "passport-headerapikey": "1.2.2", + "passport-jwt": "4.0.1", + "passport-local": "1.0.0", + "pino": "8.15.0", + "pino-pretty": "10.2.0", + "pluralize": "8.0.0", + "probe-image-size": "6.0.0", + "process": "0.11.10", + "qs": "6.11.2", + "qs-middleware": "1.0.3", + "react": "18.2.0", + "react-animate-height": "2.1.2", + "react-datepicker": "4.16.0", + "react-diff-viewer-continued": "3.2.6", + "react-dom": "18.2.0", + "react-helmet": "6.1.0", + "react-i18next": "11.18.6", + "react-image-crop": "10.1.8", + "react-router-dom": "5.3.4", + "react-router-navigation-prompt": "1.9.6", + "react-select": "5.7.4", + "react-toastify": "8.2.0", + "sanitize-filename": "1.6.3", + "sass": "1.64.0", + "scheduler": "0.23.0", + "scmp": "2.1.0", + "sharp": "0.31.3", + "swc-loader": "0.2.3", + "terser-webpack-plugin": "5.3.9", + "ts-essentials": "7.0.3", + "use-context-selector": "1.4.1", + "uuid": "8.3.2" }, "bin": { "payload": "bin.js" }, "engines": { "node": ">=14", - "yarn": ">=1.22 <2" + "pnpm": ">=8" } }, + "node_modules/payload/node_modules/@swc/core": { + "version": "1.3.76", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.76.tgz", + "integrity": "sha512-aYYTA2aVYkwJAZepQXtPnkUthhOfn8qd6rsh+lrJxonFrjmpI7RHt2tMDVTXP6XDX7fvnvrVtT1bwZfmBFPh0Q==", + "hasInstallScript": true, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.3.76", + "@swc/core-darwin-x64": "1.3.76", + "@swc/core-linux-arm-gnueabihf": "1.3.76", + "@swc/core-linux-arm64-gnu": "1.3.76", + "@swc/core-linux-arm64-musl": "1.3.76", + "@swc/core-linux-x64-gnu": "1.3.76", + "@swc/core-linux-x64-musl": "1.3.76", + "@swc/core-win32-arm64-msvc": "1.3.76", + "@swc/core-win32-ia32-msvc": "1.3.76", + "@swc/core-win32-x64-msvc": "1.3.76" + }, + "peerDependencies": { + "@swc/helpers": "^0.5.0" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/payload/node_modules/@swc/core-linux-x64-gnu": { + "version": "1.3.76", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.76.tgz", + "integrity": "sha512-iwCeRzd9oSvUzqt7nU6p/ztceAWfnO9XVxBn502R5gs6QCBbE1HCKrWHDO77aKPK7ss+0NcIGHvXTd9L8/wRzw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/payload/node_modules/@swc/core-linux-x64-musl": { + "version": "1.3.76", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.76.tgz", + "integrity": "sha512-a671g4tW8kyFeuICsgq4uB9ukQfiIyXJT4V6YSnmqhCTz5mazWuDxZ5wKnx/1g5nXTl+U5cWH2TZaCJatp4GKA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/payload/node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/payload/node_modules/body-parser/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/payload/node_modules/body-scroll-lock": { + "version": "4.0.0-beta.0", + "resolved": "https://registry.npmjs.org/body-scroll-lock/-/body-scroll-lock-4.0.0-beta.0.tgz", + "integrity": "sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ==" + }, "node_modules/payload/node_modules/dotenv": { "version": "8.6.0", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz", @@ -9995,6 +10653,61 @@ "node": ">=10" } }, + "node_modules/payload/node_modules/node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" + }, + "node_modules/payload/node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/payload/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/payload/node_modules/sharp": { + "version": "0.31.3", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.31.3.tgz", + "integrity": "sha512-XcR4+FCLBFKw1bdB+GEhnUNXNXvnt0tDo4WsBsraKymuo/IAuPuCBVAL2wIkUw2r/dwFW5Q5+g66Kwl2dgDFVg==", + "hasInstallScript": true, + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.1", + "node-addon-api": "^5.0.0", + "prebuild-install": "^7.1.1", + "semver": "^7.3.8", + "simple-get": "^4.0.1", + "tar-fs": "^2.1.1", + "tunnel-agent": "^0.6.0" + }, + "engines": { + "node": ">=14.15.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, "node_modules/peek-readable": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", @@ -10032,17 +10745,21 @@ } }, "node_modules/pino": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-6.14.0.tgz", - "integrity": "sha512-iuhEDel3Z3hF9Jfe44DPXR8l07bhjuFY3GMHIXbjnY9XcafbyDDwl2sN2vw2GjMPf5Nkoe+OFao7ffn9SXaKDg==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-8.15.0.tgz", + "integrity": "sha512-olUADJByk4twxccmAxb1RiGKOSvddHugCV3wkqjyv+3Sooa2KLrmXrKEWOKi0XPCLasRR5jBXxioE1jxUa4KzQ==", "dependencies": { - "fast-redact": "^3.0.0", - "fast-safe-stringify": "^2.0.8", - "flatstr": "^1.0.12", - "pino-std-serializers": "^3.1.0", - "process-warning": "^1.0.0", + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "v1.0.0", + "pino-std-serializers": "^6.0.0", + "process-warning": "^2.0.0", "quick-format-unescaped": "^4.0.3", - "sonic-boom": "^1.0.2" + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^3.1.0", + "thread-stream": "^2.0.0" }, "bin": { "pino": "bin.js" @@ -10104,9 +10821,9 @@ } }, "node_modules/pino-pretty": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-9.4.1.tgz", - "integrity": "sha512-loWr5SNawVycvY//hamIzyz3Fh5OSpvkcO13MwdDW+eKIGylobPLqnVGTDwDXkdmpJd1BhEG+qhDw09h6SqJiQ==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-10.2.0.tgz", + "integrity": "sha512-tRvpyEmGtc2D+Lr3FulIZ+R1baggQ4S3xD2Ar93KixFEDx6SEAUP3W5aYuEw1C73d6ROrNcB2IXLteW8itlwhA==", "dependencies": { "colorette": "^2.0.7", "dateformat": "^4.6.3", @@ -10165,14 +10882,6 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/pino-pretty/node_modules/sonic-boom": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.3.0.tgz", - "integrity": "sha512-LYxp34KlZ1a2Jb8ZQgFCK3niIHzibdwtwNUWKg0qQRzsDoJ3Gfgkf8KdBTFU3SkejDEIlWwnSnpVdOZIhFMl/g==", - "dependencies": { - "atomic-sleep": "^1.0.0" - } - }, "node_modules/pino-pretty/node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -10182,9 +10891,9 @@ } }, "node_modules/pino-std-serializers": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz", - "integrity": "sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg==" + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz", + "integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==" }, "node_modules/pirates": { "version": "4.0.6", @@ -10267,9 +10976,9 @@ } }, "node_modules/postcss": { - "version": "8.4.25", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.25.tgz", - "integrity": "sha512-7taJ/8t2av0Z+sQEvNzCkpDynl0tX3uJMCODi6nT3PfASC7dYCWV9aQ+uiCf+KBD4SEFcu+GvJdGdwzQ6OSjCw==", + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "funding": [ { "type": "opencollective", @@ -10341,9 +11050,9 @@ } }, "node_modules/postcss-color-functional-notation": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-6.0.0.tgz", - "integrity": "sha512-kaWTgnhRKFtfMF8H0+NQBFxgr5CGg05WGe07Mc1ld6XHwwRWlqSbHOW0zwf+BtkBQpsdVUu7+gl9dtdvhWMedw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-6.0.1.tgz", + "integrity": "sha512-IouVx77fASIjOChWxkvOjYGnYNKq286cSiKFJwWNICV9NP2xZWVOS9WOriR/8uIB2zt/44bzQyw4GteCLpP2SA==", "funding": [ { "type": "github", @@ -10355,7 +11064,7 @@ } ], "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^3.0.0", + "@csstools/postcss-progressive-custom-properties": "^3.0.1", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -10384,9 +11093,9 @@ } }, "node_modules/postcss-color-rebeccapurple": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-9.0.0.tgz", - "integrity": "sha512-RmUFL+foS05AKglkEoqfx+KFdKRVmqUAxlHNz4jLqIi7046drIPyerdl4B6j/RA2BSP8FI8gJcHmLRrwJOMnHw==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-9.0.1.tgz", + "integrity": "sha512-ds4cq5BjRieizVb2PnvbJ0omg9VCo2/KzluvoFZbxuGpsGJ5BQSD93CHBooinEtangCM5YqUOerGDl4xGmOb6Q==", "funding": [ { "type": "github", @@ -10440,36 +11149,9 @@ } }, "node_modules/postcss-custom-media": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-10.0.0.tgz", - "integrity": "sha512-NxDn7C6GJ7X8TsWOa8MbCdq9rLERRLcPfQSp856k1jzMreL8X9M6iWk35JjPRIb9IfRnVohmxAylDRx7n4Rv4g==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "dependencies": { - "@csstools/cascade-layer-name-parser": "^1.0.3", - "@csstools/css-parser-algorithms": "^2.3.0", - "@csstools/css-tokenizer": "^2.1.1", - "@csstools/media-query-list-parser": "^2.1.2" - }, - "engines": { - "node": "^14 || ^16 || >=18" - }, - "peerDependencies": { - "postcss": "^8.4" - } - }, - "node_modules/postcss-custom-properties": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-13.3.0.tgz", - "integrity": "sha512-q4VgtIKSy5+KcUvQ0WxTjDy9DZjQ5VCXAZ9+tT9+aPMbA0z6s2t1nMw0QHszru1ib5ElkXl9JUpYYU37VVUs7g==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-10.0.1.tgz", + "integrity": "sha512-fil7cosvzlIAYmZJPtNFcTH0Er7a3GveEK4q5Y/L24eWQHmiw8Fv/E5DMkVpdbNjkGzJxrvowOSt/Il9HZ06VQ==", "funding": [ { "type": "github", @@ -10484,7 +11166,7 @@ "@csstools/cascade-layer-name-parser": "^1.0.4", "@csstools/css-parser-algorithms": "^2.3.1", "@csstools/css-tokenizer": "^2.2.0", - "postcss-value-parser": "^4.2.0" + "@csstools/media-query-list-parser": "^2.1.4" }, "engines": { "node": "^14 || ^16 || >=18" @@ -10493,10 +11175,10 @@ "postcss": "^8.4" } }, - "node_modules/postcss-custom-selectors": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-7.1.4.tgz", - "integrity": "sha512-TU2xyUUBTlpiLnwyE2ZYMUIYB41MKMkBZ8X8ntkqRDQ8sdBLhFFsPgNcOliBd5+/zcK51C9hRnSE7hKUJMxQSw==", + "node_modules/postcss-custom-properties": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-13.3.2.tgz", + "integrity": "sha512-2Coszybpo8lpLY24vy2CYv9AasiZ39/bs8Imv0pWMq55Gl8NWzfc24OAo3zIX7rc6uUJAqESnVOMZ6V6lpMjJA==", "funding": [ { "type": "github", @@ -10508,9 +11190,36 @@ } ], "dependencies": { - "@csstools/cascade-layer-name-parser": "^1.0.3", - "@csstools/css-parser-algorithms": "^2.3.0", - "@csstools/css-tokenizer": "^2.1.1", + "@csstools/cascade-layer-name-parser": "^1.0.5", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1", + "postcss-value-parser": "^4.2.0" + }, + "engines": { + "node": "^14 || ^16 || >=18" + }, + "peerDependencies": { + "postcss": "^8.4" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-7.1.5.tgz", + "integrity": "sha512-0UYtz7GG10bZrRiUdZ/2Flt+hp5p/WP0T7JgAPZ/Xhgb0wFjW/p7QOjE+M58S9Z3x11P9YaNPcrsoOGewWYkcw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "dependencies": { + "@csstools/cascade-layer-name-parser": "^1.0.4", + "@csstools/css-parser-algorithms": "^2.3.1", + "@csstools/css-tokenizer": "^2.2.0", "postcss-selector-parser": "^6.0.13" }, "engines": { @@ -10589,9 +11298,9 @@ } }, "node_modules/postcss-double-position-gradients": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-5.0.0.tgz", - "integrity": "sha512-wR8npIkrIVUTicUpCWSSo1f/g7gAEIH70FMqCugY4m4j6TX4E0T2Q5rhfO0gqv00biBZdLyb+HkW8x6as+iJNQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-5.0.1.tgz", + "integrity": "sha512-ogcHzfC5q4nfySyZyNF7crvK3/MRDTh+akzE+l7bgJUjVkhgfahBuI+ZAm/5EeaVSVKnCOgqtC6wTyUFgLVLTw==", "funding": [ { "type": "github", @@ -10603,7 +11312,7 @@ } ], "dependencies": { - "@csstools/postcss-progressive-custom-properties": "^3.0.0", + "@csstools/postcss-progressive-custom-properties": "^3.0.1", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -10691,9 +11400,9 @@ } }, "node_modules/postcss-image-set-function": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-6.0.0.tgz", - "integrity": "sha512-bg58QnJexFpPBU4IGPAugAPKV0FuFtX5rHYNSKVaV91TpHN7iwyEzz1bkIPCiSU5+BUN00e+3fV5KFrwIgRocw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-6.0.1.tgz", + "integrity": "sha512-VlZncC9hhZ5tg0JllY4g6Z28BeoPO8DIkelioEEkXL0AA0IORlqYpTi2L8TUnl4YQrlwvBgxVy+mdZJw5R/cIQ==", "funding": [ { "type": "github", @@ -10723,9 +11432,9 @@ } }, "node_modules/postcss-lab-function": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-6.0.1.tgz", - "integrity": "sha512-/Xl6JitDh7jWkcOLxrHcAlEaqkxyaG3g4iDMy5RyhNaiQPJ9Egf2+Mxp1W2qnH5jB2bj59f3RbdKmC6qx1IcXA==", + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-6.0.6.tgz", + "integrity": "sha512-hZtIi0HPZg0Jc2Q7LL3TossaboSQVINYLT8zNRzp6zumjipl8vi80F2pNLO3euB4b8cRh6KlGdWKO0Q29pqtjg==", "funding": [ { "type": "github", @@ -10737,10 +11446,10 @@ } ], "dependencies": { - "@csstools/css-color-parser": "^1.2.2", - "@csstools/css-parser-algorithms": "^2.3.1", - "@csstools/css-tokenizer": "^2.2.0", - "@csstools/postcss-progressive-custom-properties": "^3.0.0" + "@csstools/css-color-parser": "^1.3.3", + "@csstools/css-parser-algorithms": "^2.3.2", + "@csstools/css-tokenizer": "^2.2.1", + "@csstools/postcss-progressive-custom-properties": "^3.0.1" }, "engines": { "node": "^14 || ^16 || >=18" @@ -10956,9 +11665,9 @@ } }, "node_modules/postcss-nesting": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-12.0.0.tgz", - "integrity": "sha512-knqwW65kxssmyIFadRSimaiRyLVRd0MdwfabesKw6XvGLwSOCJ+4zfvNQQCOOYij5obwpZzDpODuGRv2PCyiUw==", + "version": "12.0.1", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-12.0.1.tgz", + "integrity": "sha512-6LCqCWP9pqwXw/njMvNK0hGY44Fxc4B2EsGbn6xDcxbNRzP8GYoxT7yabVVMLrX3quqOJ9hg2jYMsnkedOf8pA==", "funding": [ { "type": "github", @@ -11197,9 +11906,9 @@ } }, "node_modules/postcss-preset-env": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-9.1.0.tgz", - "integrity": "sha512-G+x9BD7jb9uHBB7o720emXV00CP+VdWeirJsHC5ERSpbTd2e6Xg7vHzT+a6UkxFyddALuV+Q8wJMgeTKaau+Pg==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-9.0.0.tgz", + "integrity": "sha512-L0x/Nluq+/FkidIYjU7JtkmRL2/QmXuYkxuM3C5y9VG3iGLljF9PuBHQ7kzKRoVfwnca0VNN0Zb3a/bxVJ12vA==", "funding": [ { "type": "github", @@ -11212,42 +11921,41 @@ ], "dependencies": { "@csstools/postcss-cascade-layers": "^4.0.0", - "@csstools/postcss-color-function": "^3.0.1", - "@csstools/postcss-color-mix-function": "^2.0.1", - "@csstools/postcss-exponential-functions": "^1.0.0", + "@csstools/postcss-color-function": "^2.2.3", + "@csstools/postcss-color-mix-function": "^1.0.3", "@csstools/postcss-font-format-keywords": "^3.0.0", - "@csstools/postcss-gradients-interpolation-method": "^4.0.1", - "@csstools/postcss-hwb-function": "^3.0.1", + "@csstools/postcss-gradients-interpolation-method": "^4.0.0", + "@csstools/postcss-hwb-function": "^3.0.0", "@csstools/postcss-ic-unit": "^3.0.0", "@csstools/postcss-is-pseudo-class": "^4.0.0", "@csstools/postcss-logical-float-and-clear": "^2.0.0", "@csstools/postcss-logical-resize": "^2.0.0", - "@csstools/postcss-logical-viewport-units": "^2.0.1", - "@csstools/postcss-media-minmax": "^1.0.6", - "@csstools/postcss-media-queries-aspect-ratio-number-values": "^2.0.1", + "@csstools/postcss-logical-viewport-units": "^2.0.0", + "@csstools/postcss-media-minmax": "^1.0.5", + "@csstools/postcss-media-queries-aspect-ratio-number-values": "^2.0.0", "@csstools/postcss-nested-calc": "^3.0.0", "@csstools/postcss-normalize-display-values": "^3.0.0", - "@csstools/postcss-oklab-function": "^3.0.1", + "@csstools/postcss-oklab-function": "^3.0.0", "@csstools/postcss-progressive-custom-properties": "^3.0.0", - "@csstools/postcss-relative-color-syntax": "^2.0.1", + "@csstools/postcss-relative-color-syntax": "^2.0.0", "@csstools/postcss-scope-pseudo-class": "^3.0.0", - "@csstools/postcss-stepped-value-functions": "^3.0.1", + "@csstools/postcss-stepped-value-functions": "^3.0.0", "@csstools/postcss-text-decoration-shorthand": "^3.0.0", - "@csstools/postcss-trigonometric-functions": "^3.0.1", + "@csstools/postcss-trigonometric-functions": "^3.0.0", "@csstools/postcss-unset-value": "^3.0.0", "autoprefixer": "^10.4.14", "browserslist": "^4.21.9", "css-blank-pseudo": "^6.0.0", "css-has-pseudo": "^6.0.0", "css-prefers-color-scheme": "^9.0.0", - "cssdb": "^7.7.0", + "cssdb": "^7.6.0", "postcss-attribute-case-insensitive": "^6.0.2", "postcss-clamp": "^4.1.0", "postcss-color-functional-notation": "^6.0.0", "postcss-color-hex-alpha": "^9.0.2", "postcss-color-rebeccapurple": "^9.0.0", "postcss-custom-media": "^10.0.0", - "postcss-custom-properties": "^13.3.0", + "postcss-custom-properties": "^13.2.1", "postcss-custom-selectors": "^7.1.4", "postcss-dir-pseudo-class": "^8.0.0", "postcss-double-position-gradients": "^5.0.0", @@ -11257,7 +11965,7 @@ "postcss-gap-properties": "^5.0.0", "postcss-image-set-function": "^6.0.0", "postcss-initial": "^4.0.1", - "postcss-lab-function": "^6.0.1", + "postcss-lab-function": "^6.0.0", "postcss-logical": "^7.0.0", "postcss-nesting": "^12.0.0", "postcss-opacity-percentage": "^2.0.0", @@ -11467,6 +12175,14 @@ "renderkid": "^3.0.0" } }, + "node_modules/prismjs": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "engines": { + "node": ">=6" + } + }, "node_modules/probe-image-size": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/probe-image-size/-/probe-image-size-6.0.0.tgz", @@ -11492,9 +12208,21 @@ "dev": true }, "node_modules/process-warning": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-1.0.0.tgz", - "integrity": "sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.2.0.tgz", + "integrity": "sha512-/1WZ8+VQjR6avWOgHeEPd7SDQmFQ1B5mC1eRXsCm5TarlNmx/wCsa5GEaxGm05BORRtyG/Ex/3xq3TuRvq57qg==" + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } }, "node_modules/prop-types": { "version": "15.8.1", @@ -11706,6 +12434,17 @@ "react": "^18.2.0" } }, + "node_modules/react-error-boundary": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-4.0.11.tgz", + "integrity": "sha512-U13ul67aP5DOSPNSCWQ/eO0AQEYzEFkVljULQIjMV0KlffTAhxuDoBKdO0pb/JZ8mDhMKFZ9NZi0BmLGUiNphw==", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "peerDependencies": { + "react": ">=16.13.1" + } + }, "node_modules/react-fast-compare": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz", @@ -11746,6 +12485,14 @@ } } }, + "node_modules/react-image-crop": { + "version": "10.1.8", + "resolved": "https://registry.npmjs.org/react-image-crop/-/react-image-crop-10.1.8.tgz", + "integrity": "sha512-4rb8XtXNx7ZaOZarKKnckgz4xLMvds/YrU6mpJfGhGAsy2Mg4mIw1x+DCCGngVGq2soTBVVOxx2s/C6mTX9+pA==", + "peerDependencies": { + "react": ">=16.13.1" + } + }, "node_modules/react-is": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", @@ -11837,9 +12584,9 @@ } }, "node_modules/react-select": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/react-select/-/react-select-5.7.3.tgz", - "integrity": "sha512-z8i3NCuFFWL3w27xq92rBkVI2onT0jzIIPe480HlBjXJ3b5o6Q+Clp4ydyeKrj9DZZ3lrjawwLC5NGl0FSvUDg==", + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/react-select/-/react-select-5.7.4.tgz", + "integrity": "sha512-NhuE56X+p9QDFh4BgeygHFIvJJszO1i1KSkg/JPcIJrbovyRtI+GuOEa4XzFCEpZRAEoEI8u/cAHK+jG/PgUzQ==", "dependencies": { "@babel/runtime": "^7.12.0", "@emotion/cache": "^11.4.0", @@ -11956,6 +12703,14 @@ "node": ">=8.10.0" } }, + "node_modules/real-require": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", + "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==", + "engines": { + "node": ">= 12.13.0" + } + }, "node_modules/rechoir": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", @@ -12119,6 +12874,18 @@ "node": ">=8" } }, + "node_modules/resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==", + "dependencies": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -12159,6 +12926,14 @@ } ] }, + "node_modules/safe-stable-stringify": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", + "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==", + "engines": { + "node": ">=10" + } + }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -12185,9 +12960,9 @@ } }, "node_modules/sass": { - "version": "1.63.6", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.63.6.tgz", - "integrity": "sha512-MJuxGMHzaOW7ipp+1KdELtqKbfAWbH7OLIdoSMnVe3EXPMTmxTmlaZDCTsgIpPCs3w99lLo9/zDKkOrJuT5byw==", + "version": "1.64.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.64.0.tgz", + "integrity": "sha512-m7YtAGmQta9uANIUJwXesAJMSncqH+3INc8kdVXs6eV6GUC8Qu2IYKQSN8PRLgiQfpca697G94klm2leYMxSHw==", "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -12272,14 +13047,6 @@ "resolved": "https://registry.npmjs.org/scmp/-/scmp-2.1.0.tgz", "integrity": "sha512-o/mRQGk9Rcer/jEEw/yw4mwo3EU/NvYvp577/Btqrym9Qy5/MdWGBqipbALgd2lrdWTJ5/gqDusxfnQBxOxT2Q==" }, - "node_modules/scroll-into-view-if-needed": { - "version": "2.2.31", - "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz", - "integrity": "sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==", - "dependencies": { - "compute-scroll-into-view": "^1.0.20" - } - }, "node_modules/secure-json-parse": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz", @@ -12364,42 +13131,6 @@ "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz", "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" }, - "node_modules/sharp": { - "version": "0.31.3", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.31.3.tgz", - "integrity": "sha512-XcR4+FCLBFKw1bdB+GEhnUNXNXvnt0tDo4WsBsraKymuo/IAuPuCBVAL2wIkUw2r/dwFW5Q5+g66Kwl2dgDFVg==", - "hasInstallScript": true, - "dependencies": { - "color": "^4.2.3", - "detect-libc": "^2.0.1", - "node-addon-api": "^5.0.0", - "prebuild-install": "^7.1.1", - "semver": "^7.3.8", - "simple-get": "^4.0.1", - "tar-fs": "^2.1.1", - "tunnel-agent": "^0.6.0" - }, - "engines": { - "node": ">=14.15.0" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/sharp/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -12538,6 +13269,11 @@ "node": ">= 10" } }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, "node_modules/slash": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", @@ -12546,69 +13282,6 @@ "node": ">=6" } }, - "node_modules/slate": { - "version": "0.91.4", - "resolved": "https://registry.npmjs.org/slate/-/slate-0.91.4.tgz", - "integrity": "sha512-aUJ3rpjrdi5SbJ5G1Qjr3arytfRkEStTmHjBfWq2A2Q8MybacIzkScSvGJjQkdTk3djCK9C9SEOt39sSeZFwTw==", - "dependencies": { - "immer": "^9.0.6", - "is-plain-object": "^5.0.0", - "tiny-warning": "^1.0.3" - } - }, - "node_modules/slate-history": { - "version": "0.86.0", - "resolved": "https://registry.npmjs.org/slate-history/-/slate-history-0.86.0.tgz", - "integrity": "sha512-OxObL9tbhgwvSlnKSCpGIh7wnuaqvOj5jRExGjEyCU2Ke8ctf22HjT+jw7GEi9ttLzNTUmTEU3YIzqKGeqN+og==", - "dependencies": { - "is-plain-object": "^5.0.0" - }, - "peerDependencies": { - "slate": ">=0.65.3" - } - }, - "node_modules/slate-hyperscript": { - "version": "0.81.3", - "resolved": "https://registry.npmjs.org/slate-hyperscript/-/slate-hyperscript-0.81.3.tgz", - "integrity": "sha512-A/jvoLTAgeRcJaUPQCYOikCJxSws6+/jkL7mM+QuZljNd7EA5YqafGA7sVBJRFpcoSsDRUIah1yNiC/7vxZPYg==", - "dependencies": { - "is-plain-object": "^5.0.0" - }, - "peerDependencies": { - "slate": ">=0.65.3" - } - }, - "node_modules/slate-react": { - "version": "0.92.0", - "resolved": "https://registry.npmjs.org/slate-react/-/slate-react-0.92.0.tgz", - "integrity": "sha512-xEDKu5RKw5f0N95l1UeNQnrB0Pxh4JPjpIZR/BVsMo0ININnLAknR99gLo46bl/Ffql4mr7LeaxQRoXxbFtJOQ==", - "dependencies": { - "@juggle/resize-observer": "^3.4.0", - "@types/is-hotkey": "^0.1.1", - "@types/lodash": "^4.14.149", - "direction": "^1.0.3", - "is-hotkey": "^0.1.6", - "is-plain-object": "^5.0.0", - "lodash": "^4.17.4", - "scroll-into-view-if-needed": "^2.2.20", - "tiny-invariant": "1.0.6" - }, - "peerDependencies": { - "react": ">=16.8.0", - "react-dom": ">=16.8.0", - "slate": ">=0.65.3" - } - }, - "node_modules/slate-react/node_modules/is-hotkey": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/is-hotkey/-/is-hotkey-0.1.8.tgz", - "integrity": "sha512-qs3NZ1INIS+H+yeo7cD9pDfwYV/jqRh1JG9S9zYrNudkoUQg7OL7ziXqRKu+InFjUIDoP2o6HIkLYMh1pcWgyQ==" - }, - "node_modules/slate-react/node_modules/tiny-invariant": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.0.6.tgz", - "integrity": "sha512-FOyLWWVjG+aC0UqG76V53yAWdXfH8bO6FNmyZOuUrzDzK8DI3/JRY25UD7+g49JWM1LXwymsKERB+DzI0dTEQA==" - }, "node_modules/smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", @@ -12632,12 +13305,11 @@ } }, "node_modules/sonic-boom": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.4.1.tgz", - "integrity": "sha512-LRHh/A8tpW7ru89lrlkU4AszXt1dbwSjVWguGrmlxE7tawVmDBlI1PILMkXAxJTwqhgsEeTHzj36D5CmHgQmNg==", + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.6.1.tgz", + "integrity": "sha512-QV+p5nXPiUiSMxn/k5bOL+hzCpafdj1voL+hywPZhheRSYyYp7CF15rNdz1evOXCUn/tFb7R62PDX1yJmtoTgg==", "dependencies": { - "atomic-sleep": "^1.0.0", - "flatstr": "^1.0.12" + "atomic-sleep": "^1.0.0" } }, "node_modules/source-list-map": { @@ -12758,6 +13430,15 @@ "node": ">=8" } }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -12811,9 +13492,9 @@ } }, "node_modules/styled-components": { - "version": "6.0.8", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.0.8.tgz", - "integrity": "sha512-AwI02MTWZwqjzfXgR5QcbmcSn5xVjY4N2TLjSuYnmuBGF3y7GicHz3ysbpUq2EMJP5M8/Nc22vcmF3V3WNZDFA==", + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.0.9.tgz", + "integrity": "sha512-dDEXXF66b4iQhI1YHgvkBqfdJPGj2EifyLd298PVs50nz7KDfBKnAmWVnkZtw6+Nb6Izf19BAUyfYy8p434JAg==", "dependencies": { "@babel/cli": "^7.21.0", "@babel/core": "^7.21.0", @@ -13187,6 +13868,14 @@ "node": ">=0.8" } }, + "node_modules/thread-stream": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.4.1.tgz", + "integrity": "sha512-d/Ex2iWd1whipbT681JmTINKw0ZwOUBZm7+Gjs64DHuX34mmw8vJL2bFAaNacaW72zYiTJxSHi5abUuOi5nsfg==", + "dependencies": { + "real-require": "^0.2.0" + } + }, "node_modules/through2": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", @@ -13394,6 +14083,54 @@ "node": ">=0.3.1" } }, + "node_modules/ts-unused-exports": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/ts-unused-exports/-/ts-unused-exports-10.0.1.tgz", + "integrity": "sha512-nWG8Y96pKem01Hw4j4+Mwuy+L0/9sKT7D61Q+OS3cii9ocQACuV6lu00B9qpiPhF4ReVWw3QYHDqV8+to2wbsg==", + "dev": true, + "dependencies": { + "chalk": "^4.0.0", + "tsconfig-paths": "^3.9.0" + }, + "bin": { + "ts-unused-exports": "bin/ts-unused-exports" + }, + "funding": { + "url": "https://github.com/pzavolinsky/ts-unused-exports?sponsor=1" + }, + "peerDependencies": { + "typescript": ">=3.8.3" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": false + } + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, "node_modules/tslib": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.0.tgz", @@ -13507,9 +14244,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz", - "integrity": "sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "funding": [ { "type": "opencollective", @@ -13679,6 +14416,14 @@ "node": ">=10.13.0" } }, + "node_modules/web-streams-polyfill": { + "version": "4.0.0-beta.3", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz", + "integrity": "sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==", + "engines": { + "node": ">= 14" + } + }, "node_modules/webidl-conversions": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", @@ -14132,6 +14877,23 @@ "node": ">=10" } }, + "node_modules/yjs": { + "version": "13.6.8", + "resolved": "https://registry.npmjs.org/yjs/-/yjs-13.6.8.tgz", + "integrity": "sha512-ZPq0hpJQb6f59B++Ngg4cKexDJTvfOgeiv0sBc4sUm8CaBWH7OQC4kcCgrqbjJ/B2+6vO49exvTmYfdlPtcjbg==", + "peer": true, + "dependencies": { + "lib0": "^0.2.74" + }, + "engines": { + "node": ">=16.0.0", + "npm": ">=8.0.0" + }, + "funding": { + "type": "GitHub Sponsors ❤", + "url": "https://github.com/sponsors/dmonad" + } + }, "node_modules/yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", diff --git a/package.json b/package.json index a558362..612b963 100644 --- a/package.json +++ b/package.json @@ -13,21 +13,25 @@ "copyfiles": "copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png}\" dist/", "generate:types": "cross-env PAYLOAD_CONFIG_PATH=src/payload.config.ts payload generate:types", "generate:graphQLSchema": "cross-env PAYLOAD_CONFIG_PATH=src/payload.config.ts payload generate:graphQLSchema", + "unused-exports": "ts-unused-exports ./tsconfig.json --excludePathsFromReport='src/payload.config.ts;src/sdk.ts;src/types/collections.ts'", "prettier": "prettier --list-different --end-of-line auto --write src", "tsc": "tsc --noEmit", - "precommit": "npm run generate:types && npm run prettier && npm run tsc", + "precommit": "npm run generate:types && npm run prettier && npm run unused-exports && npm run tsc", "upgrade": "ncu", "clean": "sudo rm -r uploads mongo", "start": "sudo docker compose up" }, "dependencies": { "@fontsource/vollkorn": "^5.0.14", + "@payloadcms/bundler-webpack": "^1.0.3", + "@payloadcms/db-mongodb": "^1.0.3", + "@payloadcms/richtext-lexical": "^0.1.8", "clean-deep": "^3.4.0", "cross-env": "^7.0.3", "language-tags": "^1.0.9", "luxon": "^3.4.3", - "payload": "^1.15.7", - "styled-components": "^6.0.8" + "payload": "^2.0.5", + "styled-components": "^6.0.9" }, "devDependencies": { "@types/dotenv": "^8.2.0", @@ -36,10 +40,12 @@ "@types/luxon": "^3.3.2", "@types/qs": "^6.9.8", "@types/react-router-dom": "^5.3.3", + "@types/styled-components": "^5.1.28", "copyfiles": "^2.4.1", "nodemon": "^3.0.1", "prettier": "^3.0.3", "ts-node": "^10.9.1", + "ts-unused-exports": "^10.0.1", "typescript": "^5.2.2" } } diff --git a/src/accesses/collections/mustHaveAtLeastOneRole.ts b/src/accesses/collections/mustHaveAtLeastOneRole.ts deleted file mode 100644 index 5dbfe7b..0000000 --- a/src/accesses/collections/mustHaveAtLeastOneRole.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { Access } from "payload/config"; -import { Recorder } from "../../types/collections"; -import { isDefined, isUndefined } from "../../utils/asserts"; - -export const mustHaveAtLeastOneRole: Access = ({ req: { user } }): boolean => { - if (isUndefined(user)) return false; - return isDefined(user.role) && user.role.length > 0; -}; diff --git a/src/accesses/endpoints/mustBeApi.ts b/src/accesses/endpoints/mustBeApi.ts deleted file mode 100644 index 79678d8..0000000 --- a/src/accesses/endpoints/mustBeApi.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { RecordersRoles } from "../../constants"; -import { Recorder } from "../../types/collections"; -import { EndpointAccess } from "../../types/payload"; -import { isDefined, isUndefined } from "../../utils/asserts"; - -export const mustBeApi: EndpointAccess = ({ user }) => { - if (isUndefined(user)) return false; - return isDefined(user.role) && user.role.includes(RecordersRoles.Api); -}; diff --git a/src/accesses/endpoints/mustHaveAtLeastOneRole.ts b/src/accesses/endpoints/mustHaveAtLeastOneRole.ts deleted file mode 100644 index 9e87622..0000000 --- a/src/accesses/endpoints/mustHaveAtLeastOneRole.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { Recorder } from "../../types/collections"; -import { EndpointAccess } from "../../types/payload"; -import { isDefined, isUndefined } from "../../utils/asserts"; - -export const mustHaveAtLeastOneRole: EndpointAccess = ({ user }) => { - if (isUndefined(user)) return false; - return isDefined(user.role) && user.role.length > 0; -}; diff --git a/src/collections/ChronologyEras/ChronologyEras.ts b/src/collections/ChronologyEras/ChronologyEras.ts index 4506905..239e909 100644 --- a/src/collections/ChronologyEras/ChronologyEras.ts +++ b/src/collections/ChronologyEras/ChronologyEras.ts @@ -50,14 +50,14 @@ export const ChronologyEras: CollectionConfig = buildCollectionConfig({ type: "number", min: 0, required: true, - admin: { width: "50%", description: "The year the era started (year included)" }, + admin: { width: "0%", description: "The year the era started (year included)" }, }, { name: fields.endingYear, type: "number", min: 0, required: true, - admin: { width: "50%", description: "The year the era ended (year included)" }, + admin: { width: "0%", description: "The year the era ended (year included)" }, }, ], }, diff --git a/src/collections/ChronologyEras/endpoints/importFromStrapi.ts b/src/collections/ChronologyEras/endpoints/importFromStrapi.ts index 43c269d..2521648 100644 --- a/src/collections/ChronologyEras/endpoints/importFromStrapi.ts +++ b/src/collections/ChronologyEras/endpoints/importFromStrapi.ts @@ -1,6 +1,5 @@ import { Collections } from "../../../constants"; import { createStrapiImportEndpoint } from "../../../endpoints/createStrapiImportEndpoint"; -import { ChronologyEra } from "../../../types/collections"; import { StrapiLanguage } from "../../../types/strapi"; import { isUndefined } from "../../../utils/asserts"; @@ -11,7 +10,7 @@ type StrapiChronologyEra = { title: { title: string; language: StrapiLanguage; description?: string }[]; }; -export const importFromStrapi = createStrapiImportEndpoint({ +export const importFromStrapi = createStrapiImportEndpoint({ strapi: { collection: "chronology-eras", params: { diff --git a/src/collections/ChronologyItems/ChronologyItems.ts b/src/collections/ChronologyItems/ChronologyItems.ts index dcff0d4..6ab9203 100644 --- a/src/collections/ChronologyItems/ChronologyItems.ts +++ b/src/collections/ChronologyItems/ChronologyItems.ts @@ -76,10 +76,22 @@ export const ChronologyItems: CollectionConfig = buildVersionedCollectionConfig( type: "number", required: true, min: 0, - admin: { width: "33%" }, + admin: { width: "0%" }, + }, + { + name: fields.dateMonth, + type: "number", + min: 1, + max: 12, + admin: { width: "0%" }, + }, + { + name: fields.dateDay, + type: "number", + min: 1, + max: 31, + admin: { width: "0%" }, }, - { name: fields.dateMonth, type: "number", min: 1, max: 12, admin: { width: "33%" } }, - { name: fields.dateDay, type: "number", min: 1, max: 31, admin: { width: "33%" } }, ], }, ], diff --git a/src/collections/ChronologyItems/endpoints/importFromStrapi.ts b/src/collections/ChronologyItems/endpoints/importFromStrapi.ts index 025de6b..51878fc 100644 --- a/src/collections/ChronologyItems/endpoints/importFromStrapi.ts +++ b/src/collections/ChronologyItems/endpoints/importFromStrapi.ts @@ -1,6 +1,5 @@ import { Collections } from "../../../constants"; import { createStrapiImportEndpoint } from "../../../endpoints/createStrapiImportEndpoint"; -import { ChronologyItem } from "../../../types/collections"; import { StrapiLanguage } from "../../../types/strapi"; import { isUndefined } from "../../../utils/asserts"; @@ -18,7 +17,7 @@ type StrapiChronologyItem = { }[]; }; -export const importFromStrapi = createStrapiImportEndpoint({ +export const importFromStrapi = createStrapiImportEndpoint({ strapi: { collection: "chronology-items", params: { diff --git a/src/collections/Contents/Blocks/blocks.ts b/src/collections/Contents/Blocks/blocks.ts deleted file mode 100644 index 4f19da1..0000000 --- a/src/collections/Contents/Blocks/blocks.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { BlocksConfig, generateBlocks } from "../../../utils/recursiveBlocks"; -import { quoteBlock } from "./quoteBlock"; -import { textBlock } from "./textBlock"; -import { transcriptBlock } from "./transcriptBlock"; - -const enum BlockName { - Text = "Text", - Section = "Section", - Tabs = "Tabs", - Tab = "Tab", - Transcript = "Transcript", - Quote = "Quote", -} - -const blocksConfig: BlocksConfig = { - Text: { - root: true, - block: textBlock, - }, - Section: { - root: true, - block: { - slug: "section", - labels: { singular: "Section", plural: "Sections" }, - recursion: { - name: "content", - condition: (depth) => depth < 5, - newDepth: (depth) => depth + 1, - blocks: [ - BlockName.Section, - BlockName.Tabs, - BlockName.Transcript, - BlockName.Quote, - BlockName.Text, - ], - }, - }, - }, - Tabs: { - root: true, - block: { - slug: "tabs", - labels: { singular: "Tabs", plural: "Tabs" }, - recursion: { - name: "tabs", - newDepth: (depth) => depth, - condition: (depth, parents) => !parents.includes(BlockName.Tabs) && depth < 5, - blocks: [BlockName.Tab], - }, - }, - }, - Tab: { - root: false, - block: { - slug: "tab", - labels: { singular: "Tab", plural: "Tabs" }, - recursion: { - name: "content", - condition: (depth) => depth < 5, - newDepth: (depth) => depth + 1, - blocks: [ - BlockName.Section, - BlockName.Tabs, - BlockName.Transcript, - BlockName.Quote, - BlockName.Text, - ], - }, - }, - }, - Transcript: { - root: true, - block: transcriptBlock, - }, - Quote: { - root: true, - block: quoteBlock, - }, -}; - -export const contentBlocks = generateBlocks(blocksConfig); diff --git a/src/collections/Contents/Blocks/lineBlock.ts b/src/collections/Contents/Blocks/lineBlock.ts index fd27574..a5ab95a 100644 --- a/src/collections/Contents/Blocks/lineBlock.ts +++ b/src/collections/Contents/Blocks/lineBlock.ts @@ -10,11 +10,6 @@ export const lineBlock: Block = { label: false, type: "richText", required: true, - admin: { - hideGutter: true, - elements: [], - leaves: ["bold", "italic", "underline", "strikethrough", "code"], - }, }, ], }; diff --git a/src/collections/Contents/Blocks/quoteBlock.ts b/src/collections/Contents/Blocks/quoteBlock.ts deleted file mode 100644 index a0c029e..0000000 --- a/src/collections/Contents/Blocks/quoteBlock.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Block } from "payload/types"; - -export const quoteBlock: Block = { - slug: "quoteBlock", - interfaceName: "QuoteBlock", - labels: { singular: "Quote", plural: "Quotes" }, - fields: [ - { - name: "from", - type: "text", - required: true, - }, - { - name: "content", - type: "richText", - label: false, - required: true, - admin: { - hideGutter: true, - elements: [], - }, - }, - ], -}; diff --git a/src/collections/Contents/Blocks/textBlock.ts b/src/collections/Contents/Blocks/textBlock.ts deleted file mode 100644 index 781566c..0000000 --- a/src/collections/Contents/Blocks/textBlock.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { Block } from "payload/types"; - -export const textBlock: Block = { - slug: "textBlock", - interfaceName: "TextBlock", - labels: { singular: "Text", plural: "Texts" }, - fields: [ - { - name: "content", - type: "richText", - label: false, - required: true, - admin: { - hideGutter: true, - elements: ["ul", "ol", "indent", "link", "relationship", "upload", "blockquote"], - }, - }, - ], -}; diff --git a/src/collections/Contents/Contents.ts b/src/collections/Contents/Contents.ts index b5c5a4c..a9390ab 100644 --- a/src/collections/Contents/Contents.ts +++ b/src/collections/Contents/Contents.ts @@ -9,7 +9,6 @@ import { beforeDuplicatePiping } from "../../hooks/beforeDuplicatePiping"; import { beforeDuplicateUnpublish } from "../../hooks/beforeDuplicateUnpublish"; import { isDefined } from "../../utils/asserts"; import { buildVersionedCollectionConfig } from "../../utils/versionedCollectionConfig"; -import { contentBlocks } from "./Blocks/blocks"; const fields = { slug: "slug", @@ -66,11 +65,11 @@ export const Contents = buildVersionedCollectionConfig({ { type: "row", fields: [ - slugField({ name: fields.slug, admin: { width: "50%" } }), + slugField({ name: fields.slug, admin: { width: "0%" } }), imageField({ name: fields.thumbnail, relationTo: Collections.ContentsThumbnails, - admin: { width: "50%" }, + admin: { width: "0%" }, }), ], }, @@ -81,12 +80,12 @@ export const Contents = buildVersionedCollectionConfig({ name: fields.categories, relationTo: KeysTypes.Categories, hasMany: true, - admin: { allowCreate: false, width: "50%" }, + admin: { allowCreate: false, width: "0%" }, }), keysField({ name: fields.type, relationTo: KeysTypes.Contents, - admin: { allowCreate: false, width: "50%" }, + admin: { allowCreate: false, width: "0%" }, }), ], }, @@ -115,6 +114,7 @@ export const Contents = buildVersionedCollectionConfig({ { label: "Text", fields: [ + { name: fields.textContent, type: "richText" }, { type: "row", fields: [ @@ -127,7 +127,7 @@ export const Contents = buildVersionedCollectionConfig({ admin: { condition: (_, siblingData) => siblingData.language === siblingData.sourceLanguage, - width: "50%", + width: "0%", }, }, { @@ -139,7 +139,7 @@ export const Contents = buildVersionedCollectionConfig({ admin: { condition: (_, siblingData) => siblingData.language !== siblingData.sourceLanguage, - width: "50%", + width: "0%", }, }, { @@ -148,18 +148,10 @@ export const Contents = buildVersionedCollectionConfig({ type: "relationship", relationTo: Collections.Recorders, hasMany: true, - admin: { width: "50%" }, + admin: { width: "0%" }, }, ], }, - { - name: fields.textContent, - label: "Content", - labels: { singular: "Block", plural: "Blocks" }, - type: "blocks", - admin: { initCollapsed: true }, - blocks: contentBlocks, - }, { name: fields.textNotes, label: "Notes", @@ -176,13 +168,13 @@ export const Contents = buildVersionedCollectionConfig({ fileField({ name: fields.video, relationTo: FileTypes.ContentVideo, - admin: { width: "50%" }, + admin: { width: "0%" }, }), { name: fields.videoNotes, label: "Notes", type: "textarea", - admin: { width: "50%" }, + admin: { width: "0%" }, }, ], }, @@ -197,13 +189,13 @@ export const Contents = buildVersionedCollectionConfig({ fileField({ name: fields.audio, relationTo: FileTypes.ContentAudio, - admin: { width: "50%" }, + admin: { width: "0%" }, }), { name: fields.audioNotes, label: "Notes", type: "textarea", - admin: { width: "50%" }, + admin: { width: "0%" }, }, ], }, diff --git a/src/collections/ContentsFolders/ContentsFolders.ts b/src/collections/ContentsFolders/ContentsFolders.ts index da9f23a..87172d8 100644 --- a/src/collections/ContentsFolders/ContentsFolders.ts +++ b/src/collections/ContentsFolders/ContentsFolders.ts @@ -44,14 +44,14 @@ export const ContentsFolders = buildCollectionConfig({ name: fields.subfolders, relationTo: Collections.ContentsFolders, hasMany: true, - admin: { width: "50%" }, + admin: { width: "0%" }, }, { type: "relationship", name: fields.contents, relationTo: Collections.Contents, hasMany: true, - admin: { width: "50%" }, + admin: { width: "0%" }, }, ], }, diff --git a/src/collections/Currencies/endpoints/importFromStrapi.ts b/src/collections/Currencies/endpoints/importFromStrapi.ts index 8727102..6067eb3 100644 --- a/src/collections/Currencies/endpoints/importFromStrapi.ts +++ b/src/collections/Currencies/endpoints/importFromStrapi.ts @@ -1,13 +1,12 @@ import { Collections } from "../../../constants"; import { createStrapiImportEndpoint } from "../../../endpoints/createStrapiImportEndpoint"; -import { Language } from "../../../types/collections"; type StrapiLanguage = { code: string; name: string; }; -export const importFromStrapi = createStrapiImportEndpoint({ +export const importFromStrapi = createStrapiImportEndpoint({ strapi: { collection: "currencies", params: {}, diff --git a/src/collections/Keys/Keys.ts b/src/collections/Keys/Keys.ts index 38826fc..5c0b0b8 100644 --- a/src/collections/Keys/Keys.ts +++ b/src/collections/Keys/Keys.ts @@ -102,7 +102,7 @@ export const Keys = buildCollectionConfig({ name: fields.translationsName, type: "text", required: true, - admin: { width: "50%" }, + admin: { width: "0%" }, }, { name: fields.translationsShort, @@ -110,7 +110,7 @@ export const Keys = buildCollectionConfig({ admin: { condition: (data: Partial) => isDefined(data.type) && keysTypesWithShort.includes(data.type), - width: "50%", + width: "0%", }, }, ], diff --git a/src/collections/Keys/endpoints/importFromStrapi.ts b/src/collections/Keys/endpoints/importFromStrapi.ts index e89f8a9..b636c17 100644 --- a/src/collections/Keys/endpoints/importFromStrapi.ts +++ b/src/collections/Keys/endpoints/importFromStrapi.ts @@ -5,51 +5,45 @@ import { importStrapiEntries, } from "../../../endpoints/createStrapiImportEndpoint"; import { Key } from "../../../types/collections"; -import { CollectionEndpoint, PayloadCreateData } from "../../../types/payload"; +import { CollectionEndpoint } from "../../../types/payload"; import { StrapiLanguage } from "../../../types/strapi"; import { isDefined, isUndefined } from "../../../utils/asserts"; import { formatToCamelCase } from "../../../utils/string"; -const importStrapiWordings: typeof importStrapiEntries = async ({ - payload: payloadParams, - strapi: strapiParams, - user, -}) => { - const rawEntries = await getAllStrapiEntries(strapiParams.collection, strapiParams.params); +const importStrapiWordings: typeof importStrapiEntries = async ({ strapi: strapiParams, user }) => { + const rawEntries = await getAllStrapiEntries(strapiParams.collection, strapiParams.params); const { ui_language, createdAt, updatedAt, ...otherKeys } = rawEntries[0].attributes; - const entries: PayloadCreateData[] = Object.keys(otherKeys).map((key) => ({ - name: formatToCamelCase(key), - type: "Wordings", - translations: rawEntries - .map((entry) => ({ - language: entry.attributes.ui_language.data.attributes.code, - name: entry.attributes[key], - })) - .filter(({ name }) => isDefined(name) && name !== ""), - })); - const errors: string[] = []; await Promise.all( - entries.map(async (entry) => { + Object.keys(otherKeys).map(async (key) => { try { await payload.create({ - collection: payloadParams.collection, - data: entry, + collection: Collections.Keys, + data: { + name: formatToCamelCase(key), + type: "Wordings", + translations: rawEntries + .map((entry) => ({ + language: entry.attributes.ui_language.data.attributes.code, + name: entry.attributes[key], + })) + .filter(({ name }) => isDefined(name) && name !== ""), + }, user, }); } catch (e) { console.warn(e); if (typeof e === "object" && isDefined(e) && "name" in e) { - errors.push(`${e.name} with ${entry.name}`); + errors.push(`${e.name} with ${key}`); } } }) ); - return { count: entries.length, errors }; + return { count: Object.keys(otherKeys).length, errors }; }; export const importFromStrapi: CollectionEndpoint = { @@ -71,289 +65,271 @@ export const importFromStrapi: CollectionEndpoint = { titles: { title?: string; short?: string; language: StrapiLanguage }[]; }; - const { count: categoriesCount, errors: categoriesErrors } = await importStrapiEntries< - Key, - StrapiCategories - >({ - strapi: { - collection: "categories", - params: { populate: { titles: { populate: "language" } } }, - }, - payload: { - collection: Collections.Keys, - convert: ({ slug, titles }) => ({ - name: slug, - type: "Categories", - translations: titles.map(({ title, short, language }) => { - if (isUndefined(language.data)) - throw new Error("A language is required for a Keys title translation"); - if (isUndefined(title)) - throw new Error("A title is required for a Keys title translation"); - return { - name: title, - short, - language: language.data.attributes.code, - }; + const { count: categoriesCount, errors: categoriesErrors } = + await importStrapiEntries({ + strapi: { + collection: "categories", + params: { populate: { titles: { populate: "language" } } }, + }, + payload: { + collection: Collections.Keys, + convert: ({ slug, titles }) => ({ + name: slug, + type: "Categories", + translations: titles.map(({ title, short, language }) => { + if (isUndefined(language.data)) + throw new Error("A language is required for a Keys title translation"); + if (isUndefined(title)) + throw new Error("A title is required for a Keys title translation"); + return { + name: title, + short, + language: language.data.attributes.code, + }; + }), }), - }), - }, - user: req.user, - }); + }, + user: req.user, + }); type StrapiContentType = { slug: string; titles: { title: string; language: StrapiLanguage }[]; }; - const { count: contentTypesCount, errors: contentTypesErrors } = await importStrapiEntries< - Key, - StrapiContentType - >({ - strapi: { - collection: "content-types", - params: { populate: { titles: { populate: "language" } } }, - }, - payload: { - collection: Collections.Keys, - convert: ({ slug, titles }) => ({ - name: slug, - type: "Contents", - translations: titles.map(({ title, language }) => { - if (isUndefined(language.data)) - throw new Error("A language is required for a Keys title translation"); - return { - name: title, - language: language.data.attributes.code, - }; + const { count: contentTypesCount, errors: contentTypesErrors } = + await importStrapiEntries({ + strapi: { + collection: "content-types", + params: { populate: { titles: { populate: "language" } } }, + }, + payload: { + collection: Collections.Keys, + convert: ({ slug, titles }) => ({ + name: slug, + type: "Contents", + translations: titles.map(({ title, language }) => { + if (isUndefined(language.data)) + throw new Error("A language is required for a Keys title translation"); + return { + name: title, + language: language.data.attributes.code, + }; + }), }), - }), - }, - user: req.user, - }); + }, + user: req.user, + }); type StrapiGamePlatform = { slug: string; titles: { title?: string; short?: string; language: StrapiLanguage }[]; }; - const { count: gamePlatformsCount, errors: gamePlatformsErrors } = await importStrapiEntries< - Key, - StrapiGamePlatform - >({ - strapi: { - collection: "game-platforms", - params: { populate: { titles: { populate: "language" } } }, - }, - payload: { - collection: Collections.Keys, - convert: ({ slug, titles }) => ({ - name: slug, - type: "GamePlatforms", - translations: titles.map(({ title, short, language }) => { - if (isUndefined(language.data)) - throw new Error("A language is required for a Keys title translation"); - if (isUndefined(title)) - throw new Error("A title is required for a Keys title translation"); - return { - name: title, - short, - language: language.data.attributes.code, - }; + const { count: gamePlatformsCount, errors: gamePlatformsErrors } = + await importStrapiEntries({ + strapi: { + collection: "game-platforms", + params: { populate: { titles: { populate: "language" } } }, + }, + payload: { + collection: Collections.Keys, + convert: ({ slug, titles }) => ({ + name: slug, + type: "GamePlatforms", + translations: titles.map(({ title, short, language }) => { + if (isUndefined(language.data)) + throw new Error("A language is required for a Keys title translation"); + if (isUndefined(title)) + throw new Error("A title is required for a Keys title translation"); + return { + name: title, + short, + language: language.data.attributes.code, + }; + }), }), - }), - }, - user: req.user, - }); + }, + user: req.user, + }); type StrapiMetadataTypes = { slug: string; titles: { title: string; language: StrapiLanguage }[]; }; - const { count: libraryCount, errors: libraryErrors } = await importStrapiEntries< - Key, - StrapiMetadataTypes - >({ - strapi: { - collection: "metadata-types", - params: { populate: { titles: { populate: "language" } } }, - }, - payload: { - collection: Collections.Keys, - convert: ({ slug, titles }) => ({ - name: slug, - type: "Library", - translations: titles.map(({ title, language }) => { - if (isUndefined(language.data)) - throw new Error("A language is required for a Keys title translation"); - return { - name: title, - language: language.data.attributes.code, - }; + const { count: libraryCount, errors: libraryErrors } = + await importStrapiEntries({ + strapi: { + collection: "metadata-types", + params: { populate: { titles: { populate: "language" } } }, + }, + payload: { + collection: Collections.Keys, + convert: ({ slug, titles }) => ({ + name: slug, + type: "Library", + translations: titles.map(({ title, language }) => { + if (isUndefined(language.data)) + throw new Error("A language is required for a Keys title translation"); + return { + name: title, + language: language.data.attributes.code, + }; + }), }), - }), - }, - user: req.user, - }); + }, + user: req.user, + }); type StrapiAudioSubtypes = { slug: string; titles: { title: string; language: StrapiLanguage }[]; }; - const { count: libraryAudioCount, errors: libraryAudioErrors } = await importStrapiEntries< - Key, - StrapiAudioSubtypes - >({ - strapi: { - collection: "audio-subtypes", - params: { populate: { titles: { populate: "language" } } }, - }, - payload: { - collection: Collections.Keys, - convert: ({ slug, titles }) => ({ - name: slug, - type: "LibraryAudio", - translations: titles.map(({ title, language }) => { - if (isUndefined(language.data)) - throw new Error("A language is required for a Keys title translation"); - return { - name: title, - language: language.data.attributes.code, - }; + const { count: libraryAudioCount, errors: libraryAudioErrors } = + await importStrapiEntries({ + strapi: { + collection: "audio-subtypes", + params: { populate: { titles: { populate: "language" } } }, + }, + payload: { + collection: Collections.Keys, + convert: ({ slug, titles }) => ({ + name: slug, + type: "LibraryAudio", + translations: titles.map(({ title, language }) => { + if (isUndefined(language.data)) + throw new Error("A language is required for a Keys title translation"); + return { + name: title, + language: language.data.attributes.code, + }; + }), }), - }), - }, - user: req.user, - }); + }, + user: req.user, + }); type StrapiGroupSubtypes = { slug: string; titles: { title: string; language: StrapiLanguage }[]; }; - const { count: libraryGroupCount, errors: libraryGroupErrors } = await importStrapiEntries< - Key, - StrapiGroupSubtypes - >({ - strapi: { - collection: "group-subtypes", - params: { populate: { titles: { populate: "language" } } }, - }, - payload: { - collection: Collections.Keys, - convert: ({ slug, titles }) => ({ - name: slug, - type: "LibraryGroup", - translations: titles.map(({ title, language }) => { - if (isUndefined(language.data)) - throw new Error("A language is required for a Keys title translation"); - return { - name: title, - language: language.data.attributes.code, - }; + const { count: libraryGroupCount, errors: libraryGroupErrors } = + await importStrapiEntries({ + strapi: { + collection: "group-subtypes", + params: { populate: { titles: { populate: "language" } } }, + }, + payload: { + collection: Collections.Keys, + convert: ({ slug, titles }) => ({ + name: slug, + type: "LibraryGroup", + translations: titles.map(({ title, language }) => { + if (isUndefined(language.data)) + throw new Error("A language is required for a Keys title translation"); + return { + name: title, + language: language.data.attributes.code, + }; + }), }), - }), - }, - user: req.user, - }); + }, + user: req.user, + }); type StrapiTextualSubtypes = { slug: string; titles: { title: string; language: StrapiLanguage }[]; }; - const { count: libraryTextualCount, errors: libraryTextualErrors } = await importStrapiEntries< - Key, - StrapiTextualSubtypes - >({ - strapi: { - collection: "textual-subtypes", - params: { populate: { titles: { populate: "language" } } }, - }, - payload: { - collection: Collections.Keys, - convert: ({ slug, titles }) => ({ - name: slug, - type: "LibraryTextual", - translations: titles.map(({ title, language }) => { - if (isUndefined(language.data)) - throw new Error("A language is required for a Keys title translation"); - return { - name: title, - language: language.data.attributes.code, - }; + const { count: libraryTextualCount, errors: libraryTextualErrors } = + await importStrapiEntries({ + strapi: { + collection: "textual-subtypes", + params: { populate: { titles: { populate: "language" } } }, + }, + payload: { + collection: Collections.Keys, + convert: ({ slug, titles }) => ({ + name: slug, + type: "LibraryTextual", + translations: titles.map(({ title, language }) => { + if (isUndefined(language.data)) + throw new Error("A language is required for a Keys title translation"); + return { + name: title, + language: language.data.attributes.code, + }; + }), }), - }), - }, - user: req.user, - }); + }, + user: req.user, + }); type StrapiVideoSubtypes = { slug: string; titles: { title: string; language: StrapiLanguage }[]; }; - const { count: libraryVideoCount, errors: libraryVideoErrors } = await importStrapiEntries< - Key, - StrapiVideoSubtypes - >({ - strapi: { - collection: "video-subtypes", - params: { populate: { titles: { populate: "language" } } }, - }, - payload: { - collection: Collections.Keys, - convert: ({ slug, titles }) => ({ - name: slug, - type: "LibraryVideo", - translations: titles.map(({ title, language }) => { - if (isUndefined(language.data)) - throw new Error("A language is required for a Keys title translation"); - return { - name: title, - language: language.data.attributes.code, - }; + const { count: libraryVideoCount, errors: libraryVideoErrors } = + await importStrapiEntries({ + strapi: { + collection: "video-subtypes", + params: { populate: { titles: { populate: "language" } } }, + }, + payload: { + collection: Collections.Keys, + convert: ({ slug, titles }) => ({ + name: slug, + type: "LibraryVideo", + translations: titles.map(({ title, language }) => { + if (isUndefined(language.data)) + throw new Error("A language is required for a Keys title translation"); + return { + name: title, + language: language.data.attributes.code, + }; + }), }), - }), - }, - user: req.user, - }); + }, + user: req.user, + }); type StrapiWeaponTypes = { slug: string; translations: { name?: string; language: StrapiLanguage }[]; }; - const { count: weaponsCount, errors: weaponsErrors } = await importStrapiEntries< - Key, - StrapiWeaponTypes - >({ - strapi: { - collection: "weapon-story-types", - params: { populate: { translations: { populate: "language" } } }, - }, - payload: { - collection: Collections.Keys, - convert: ({ slug, translations }) => ({ - name: slug, - type: "Weapons", - translations: translations.map(({ name, language }) => { - if (isUndefined(language.data)) - throw new Error("A language is required for a Keys title translation"); - if (isUndefined(name)) - throw new Error("A name is required for a Keys title translation"); - return { - name, - language: language.data.attributes.code, - }; + const { count: weaponsCount, errors: weaponsErrors } = + await importStrapiEntries({ + strapi: { + collection: "weapon-story-types", + params: { populate: { translations: { populate: "language" } } }, + }, + payload: { + collection: Collections.Keys, + convert: ({ slug, translations }) => ({ + name: slug, + type: "Weapons", + translations: translations.map(({ name, language }) => { + if (isUndefined(language.data)) + throw new Error("A language is required for a Keys title translation"); + if (isUndefined(name)) + throw new Error("A name is required for a Keys title translation"); + return { + name, + language: language.data.attributes.code, + }; + }), }), - }), - }, - user: req.user, - }); + }, + user: req.user, + }); - const { count: wordingsCount, errors: wordingsErrors } = await importStrapiWordings({ + const { count: wordingsCount, errors: wordingsErrors } = await importStrapiWordings({ strapi: { collection: "website-interfaces", params: { populate: "ui_language" } }, payload: { collection: Collections.Keys, convert: (strapiObject) => strapiObject }, user: req.user, diff --git a/src/collections/Languages/endpoints/importFromStrapi.ts b/src/collections/Languages/endpoints/importFromStrapi.ts index ac8a934..61705df 100644 --- a/src/collections/Languages/endpoints/importFromStrapi.ts +++ b/src/collections/Languages/endpoints/importFromStrapi.ts @@ -1,13 +1,12 @@ import { Collections } from "../../../constants"; import { createStrapiImportEndpoint } from "../../../endpoints/createStrapiImportEndpoint"; -import { Language } from "../../../types/collections"; type StrapiLanguage = { name: string; code: string; }; -export const importFromStrapi = createStrapiImportEndpoint({ +export const importFromStrapi = createStrapiImportEndpoint({ strapi: { collection: "languages", params: {}, diff --git a/src/collections/LibraryItems/LibraryItems.ts b/src/collections/LibraryItems/LibraryItems.ts index 7fb38c1..1e21f77 100644 --- a/src/collections/LibraryItems/LibraryItems.ts +++ b/src/collections/LibraryItems/LibraryItems.ts @@ -170,12 +170,10 @@ export const LibraryItems = buildVersionedCollectionConfig({ fields: [ slugField({ name: fields.slug, - admin: { width: "50%" }, }), imageField({ name: fields.thumbnail, relationTo: Collections.LibraryItemsThumbnails, - admin: { width: "50%" }, }), ], }, @@ -197,7 +195,7 @@ export const LibraryItems = buildVersionedCollectionConfig({ defaultValue: true, admin: { description: "Only items that can be sold separetely should be root items.", - width: "25%", + width: "0%", }, }, { @@ -208,7 +206,7 @@ export const LibraryItems = buildVersionedCollectionConfig({ admin: { description: "A primary item is an official item that focuses primarly on one or more of our Categories.", - width: "25%", + width: "0%", }, }, { @@ -219,7 +217,7 @@ export const LibraryItems = buildVersionedCollectionConfig({ admin: { description: "The item is the digital version of another item, or the item is sold only digitally.", - width: "25%", + width: "0%", }, }, { @@ -229,7 +227,7 @@ export const LibraryItems = buildVersionedCollectionConfig({ defaultValue: false, admin: { description: "Are the scans available for download?", - width: "25%", + width: "0%", }, }, ], @@ -265,17 +263,17 @@ export const LibraryItems = buildVersionedCollectionConfig({ imageField({ name: fields.scansCoverFront, relationTo: Collections.LibraryItemsScans, - admin: { width: "33%" }, + admin: { width: "0%" }, }), imageField({ name: fields.scansCoverSpine, relationTo: Collections.LibraryItemsScans, - admin: { width: "33%" }, + admin: { width: "0%" }, }), imageField({ name: fields.scansCoverBack, relationTo: Collections.LibraryItemsScans, - admin: { width: "33%" }, + admin: { width: "0%" }, }), ], }, @@ -285,12 +283,12 @@ export const LibraryItems = buildVersionedCollectionConfig({ imageField({ name: fields.scansCoverInsideFront, relationTo: Collections.LibraryItemsScans, - admin: { width: "50%" }, + admin: { width: "0%" }, }), imageField({ name: fields.scansCoverBack, relationTo: Collections.LibraryItemsScans, - admin: { width: "50%" }, + admin: { width: "0%" }, }), ], }, @@ -300,22 +298,22 @@ export const LibraryItems = buildVersionedCollectionConfig({ imageField({ name: fields.scansCoverFlapFront, relationTo: Collections.LibraryItemsScans, - admin: { width: "25%" }, + admin: { width: "0%" }, }), imageField({ name: fields.scansCoverFlapBack, relationTo: Collections.LibraryItemsScans, - admin: { width: "25%" }, + admin: { width: "0%" }, }), imageField({ name: fields.scansCoverInsideFlapFront, relationTo: Collections.LibraryItemsScans, - admin: { width: "25%" }, + admin: { width: "0%" }, }), imageField({ name: fields.scansCoverInsideFlapBack, relationTo: Collections.LibraryItemsScans, - admin: { width: "25%" }, + admin: { width: "0%" }, }), ], }, @@ -337,17 +335,17 @@ export const LibraryItems = buildVersionedCollectionConfig({ imageField({ name: fields.scansDustjacketFront, relationTo: Collections.LibraryItemsScans, - admin: { width: "33%" }, + admin: { width: "0%" }, }), imageField({ name: fields.scansDustjacketSpine, relationTo: Collections.LibraryItemsScans, - admin: { width: "33%" }, + admin: { width: "0%" }, }), imageField({ name: fields.scansDustjacketBack, relationTo: Collections.LibraryItemsScans, - admin: { width: "33%" }, + admin: { width: "0%" }, }), ], }, @@ -357,17 +355,17 @@ export const LibraryItems = buildVersionedCollectionConfig({ imageField({ name: fields.scansDustjacketInsideFront, relationTo: Collections.LibraryItemsScans, - admin: { width: "33%" }, + admin: { width: "0%" }, }), imageField({ name: fields.scansDustjacketInsideSpine, relationTo: Collections.LibraryItemsScans, - admin: { width: "33%" }, + admin: { width: "0%" }, }), imageField({ name: fields.scansDustjacketInsideBack, relationTo: Collections.LibraryItemsScans, - admin: { width: "33%" }, + admin: { width: "0%" }, }), ], }, @@ -377,22 +375,22 @@ export const LibraryItems = buildVersionedCollectionConfig({ imageField({ name: fields.scansDustjacketFlapFront, relationTo: Collections.LibraryItemsScans, - admin: { width: "25%" }, + admin: { width: "0%" }, }), imageField({ name: fields.scansDustjacketFlapBack, relationTo: Collections.LibraryItemsScans, - admin: { width: "25%" }, + admin: { width: "0%" }, }), imageField({ name: fields.scansDustjacketInsideFlapFront, relationTo: Collections.LibraryItemsScans, - admin: { width: "25%" }, + admin: { width: "0%" }, }), imageField({ name: fields.scansDustjacketInsideFlapBack, relationTo: Collections.LibraryItemsScans, - admin: { width: "25%" }, + admin: { width: "0%" }, }), ], }, @@ -414,17 +412,17 @@ export const LibraryItems = buildVersionedCollectionConfig({ imageField({ name: fields.scansObiFront, relationTo: Collections.LibraryItemsScans, - admin: { width: "33%" }, + admin: { width: "0%" }, }), imageField({ name: fields.scansObiSpine, relationTo: Collections.LibraryItemsScans, - admin: { width: "33%" }, + admin: { width: "0%" }, }), imageField({ name: fields.scansObiBack, relationTo: Collections.LibraryItemsScans, - admin: { width: "33%" }, + admin: { width: "0%" }, }), ], }, @@ -434,17 +432,17 @@ export const LibraryItems = buildVersionedCollectionConfig({ imageField({ name: fields.scansObiInsideFront, relationTo: Collections.LibraryItemsScans, - admin: { width: "33%" }, + admin: { width: "0%" }, }), imageField({ name: fields.scansObiInsideSpine, relationTo: Collections.LibraryItemsScans, - admin: { width: "33%" }, + admin: { width: "0%" }, }), imageField({ name: fields.scansObiInsideBack, relationTo: Collections.LibraryItemsScans, - admin: { width: "33%" }, + admin: { width: "0%" }, }), ], }, @@ -454,22 +452,22 @@ export const LibraryItems = buildVersionedCollectionConfig({ imageField({ name: fields.scansObiFlapFront, relationTo: Collections.LibraryItemsScans, - admin: { width: "25%" }, + admin: { width: "0%" }, }), imageField({ name: fields.scansObiFlapBack, relationTo: Collections.LibraryItemsScans, - admin: { width: "25%" }, + admin: { width: "0%" }, }), imageField({ name: fields.scansObiInsideFlapFront, relationTo: Collections.LibraryItemsScans, - admin: { width: "25%" }, + admin: { width: "0%" }, }), imageField({ name: fields.scansObiInsideFlapBack, relationTo: Collections.LibraryItemsScans, - admin: { width: "25%" }, + admin: { width: "0%" }, }), ], }, @@ -495,13 +493,13 @@ export const LibraryItems = buildVersionedCollectionConfig({ name: fields.scansPagesPage, type: "number", required: true, - admin: { width: "33%" }, + admin: { width: "0%" }, }, imageField({ name: fields.scansPagesImage, relationTo: Collections.LibraryItemsScans, required: true, - admin: { width: "66%" }, + admin: { width: "0%" }, }), ], }, @@ -518,6 +516,7 @@ export const LibraryItems = buildVersionedCollectionConfig({ { name: fields.textual, type: "group", + label: false, admin: { condition: (data: Partial) => data.itemType === LibraryItemsTypes.Textual, @@ -530,14 +529,14 @@ export const LibraryItems = buildVersionedCollectionConfig({ name: fields.textualSubtype, relationTo: KeysTypes.LibraryTextual, hasMany: true, - admin: { allowCreate: false, width: "50%" }, + admin: { allowCreate: false, width: "0%" }, }), { name: fields.textualLanguages, type: "relationship", relationTo: Collections.Languages, hasMany: true, - admin: { allowCreate: false, width: "50%" }, + admin: { allowCreate: false, width: "0%" }, }, ], }, @@ -548,7 +547,7 @@ export const LibraryItems = buildVersionedCollectionConfig({ name: fields.textualPageCount, type: "number", min: 1, - admin: { width: "33%" }, + admin: { width: "0%" }, }, { name: fields.textualBindingType, @@ -561,7 +560,7 @@ export const LibraryItems = buildVersionedCollectionConfig({ ), admin: { layout: "horizontal", - width: "33%", + width: "0%", }, }, { @@ -575,7 +574,7 @@ export const LibraryItems = buildVersionedCollectionConfig({ ), admin: { layout: "horizontal", - width: "33%", + width: "0%", }, }, ], @@ -585,6 +584,7 @@ export const LibraryItems = buildVersionedCollectionConfig({ { name: fields.audio, type: "group", + label: false, admin: { condition: (data: Partial) => data.itemType === LibraryItemsTypes.Audio, @@ -597,7 +597,7 @@ export const LibraryItems = buildVersionedCollectionConfig({ name: fields.audioSubtype, relationTo: KeysTypes.LibraryAudio, hasMany: true, - admin: { allowCreate: false, width: "50%" }, + admin: { allowCreate: false, width: "0%" }, }), ], }, @@ -612,13 +612,13 @@ export const LibraryItems = buildVersionedCollectionConfig({ name: fields.audioTracksTitle, type: "text", required: true, - admin: { width: "50%" }, + admin: { width: "0%" }, }, fileField({ name: fields.audioTracksFile, relationTo: FileTypes.LibrarySoundtracks, required: true, - admin: { width: "50%" }, + admin: { width: "0%" }, }), ], }, @@ -639,21 +639,21 @@ export const LibraryItems = buildVersionedCollectionConfig({ type: "date", admin: { date: { pickerAppearance: "dayOnly", displayFormat: "yyyy-MM-dd" }, - width: "50%", + width: "0%", }, }, keysField({ name: fields.categories, relationTo: KeysTypes.Categories, hasMany: true, - admin: { allowCreate: false, width: "50%" }, + admin: { allowCreate: false, width: "0%" }, }), ], }, translatedFields({ name: fields.translations, label: "Descriptions", - admin: { initCollapsed: true }, + admin: { initCollapsed: true, useAsTitle: fields.translationsDescription }, fields: [{ name: fields.translationsDescription, type: "textarea", required: true }], }), optionalGroupField({ @@ -667,18 +667,18 @@ export const LibraryItems = buildVersionedCollectionConfig({ name: fields.width, type: "number", required: true, - admin: { step: 1, width: "33%", description: "in mm." }, + admin: { step: 1, width: "0%", description: "in mm." }, }, { name: fields.height, type: "number", required: true, - admin: { step: 1, width: "33%", description: "in mm." }, + admin: { step: 1, width: "0%", description: "in mm." }, }, { name: fields.thickness, type: "number", - admin: { step: 1, width: "33%", description: "in mm." }, + admin: { step: 1, width: "0%", description: "in mm." }, }, ], }, @@ -686,7 +686,7 @@ export const LibraryItems = buildVersionedCollectionConfig({ }), optionalGroupField({ name: fields.price, - admin: { className: "group-array", width: "50%" }, + admin: { className: "group-array", width: "0%" }, fields: [ { type: "row", @@ -696,14 +696,14 @@ export const LibraryItems = buildVersionedCollectionConfig({ type: "number", required: true, min: 0, - admin: { width: "50%" }, + admin: { width: "0%" }, }, { name: fields.priceCurrency, type: "relationship", relationTo: Collections.Currencies, required: true, - admin: { allowCreate: false, width: "50%" }, + admin: { allowCreate: false, width: "0%" }, }, ], }, @@ -715,7 +715,7 @@ export const LibraryItems = buildVersionedCollectionConfig({ type: "array", admin: { description: "Links to official websites where to get/buy the item.", - width: "50%", + width: "0%", }, fields: [{ name: fields.urlsUrl, type: "text", required: true }], }, diff --git a/src/collections/LibraryItems/components/RowLabel.tsx b/src/collections/LibraryItems/components/RowLabel.tsx index 9da31a0..47e97ee 100644 --- a/src/collections/LibraryItems/components/RowLabel.tsx +++ b/src/collections/LibraryItems/components/RowLabel.tsx @@ -1,5 +1,5 @@ import React from "react"; -import { styled } from "styled-components"; +import styled from "styled-components"; import { isDefined } from "../../../utils/asserts"; interface Props { diff --git a/src/collections/Posts/Posts.ts b/src/collections/Posts/Posts.ts index 939656e..b495f28 100644 --- a/src/collections/Posts/Posts.ts +++ b/src/collections/Posts/Posts.ts @@ -60,11 +60,11 @@ export const Posts = buildVersionedCollectionConfig({ { type: "row", fields: [ - slugField({ name: fields.slug, admin: { width: "50%" } }), + slugField({ name: fields.slug, admin: { width: "0%" } }), imageField({ name: fields.thumbnail, relationTo: Collections.PostsThumbnails, - admin: { width: "50%" }, + admin: { width: "0%" }, }), ], }, @@ -78,7 +78,7 @@ export const Posts = buildVersionedCollectionConfig({ required: true, minRows: 1, hasMany: true, - admin: { width: "35%" }, + admin: { width: "0%" }, }, { name: fields.categories, @@ -86,7 +86,7 @@ export const Posts = buildVersionedCollectionConfig({ relationTo: [Collections.Keys], filterOptions: { type: { equals: KeysTypes.Categories } }, hasMany: true, - admin: { allowCreate: false, width: "35%" }, + admin: { allowCreate: false, width: "0%" }, }, ], }, @@ -125,7 +125,7 @@ export const Posts = buildVersionedCollectionConfig({ } return siblingData.language !== siblingData.sourceLanguage; }, - width: "50%", + width: "0%", }, validate: (translators, { siblingData }) => { if (isUndefined(siblingData.language) || isUndefined(siblingData.sourceLanguage)) { @@ -145,11 +145,11 @@ export const Posts = buildVersionedCollectionConfig({ type: "relationship", relationTo: Collections.Recorders, hasMany: true, - admin: { width: "50%" }, + admin: { width: "0%" }, }, ], }, - { name: fields.content, type: "richText", admin: { hideGutter: true } }, + { name: fields.content, type: "richText" }, ], }), { diff --git a/src/collections/Recorders/Recorders.ts b/src/collections/Recorders/Recorders.ts index c54cff8..0e80e5a 100644 --- a/src/collections/Recorders/Recorders.ts +++ b/src/collections/Recorders/Recorders.ts @@ -84,12 +84,12 @@ export const Recorders = buildCollectionConfig({ type: "text", unique: true, required: true, - admin: { description: "The username must be unique", width: "33%" }, + admin: { description: "The username must be unique", width: "0%" }, }, imageField({ name: fields.avatar, relationTo: Collections.RecordersThumbnails, - admin: { width: "66%" }, + admin: { width: "0%" }, }), ], }, diff --git a/src/collections/Recorders/endpoints/importFromStrapi.ts b/src/collections/Recorders/endpoints/importFromStrapi.ts index 8d0c14c..8d1ad37 100644 --- a/src/collections/Recorders/endpoints/importFromStrapi.ts +++ b/src/collections/Recorders/endpoints/importFromStrapi.ts @@ -2,7 +2,6 @@ import payload from "payload"; import { Collections } from "../../../constants"; import { createStrapiImportEndpoint } from "../../../endpoints/createStrapiImportEndpoint"; import { Recorder } from "../../../types/collections"; -import { PayloadCreateData } from "../../../types/payload"; import { StrapiImage, StrapiLanguage } from "../../../types/strapi"; import { isDefined, isUndefined } from "../../../utils/asserts"; import { uploadStrapiImage } from "../../../utils/localApi"; @@ -16,7 +15,7 @@ type StrapiRecorder = { bio: { language: StrapiLanguage; bio?: string }[]; }; -export const importFromStrapi = createStrapiImportEndpoint({ +export const importFromStrapi = createStrapiImportEndpoint({ strapi: { collection: "recorders", params: { @@ -31,22 +30,6 @@ export const importFromStrapi = createStrapiImportEndpoint, "password" | "email"> = { - username, - anonymize, - languages: languages.data?.map((language) => language.attributes.code), - avatar: avatarId, - biographies: bios?.map(({ language, bio }) => { - if (isUndefined(language.data)) - throw new Error("A language is required for a Recorder biography"); - if (isUndefined(bio)) throw new Error("A bio is required for a Recorder biography"); - return { - language: language.data.attributes.code, - biography: bio, - }; - }), - }; - const recorder = ( await payload.find({ collection: Collections.Recorders, @@ -55,12 +38,44 @@ export const importFromStrapi = createStrapiImportEndpoint language.attributes.code), + avatar: avatarId, + biographies: bios?.map(({ language, bio }) => { + if (isUndefined(language.data)) + throw new Error("A language is required for a Recorder biography"); + if (isUndefined(bio)) throw new Error("A bio is required for a Recorder biography"); + return { + language: language.data.attributes.code, + biography: bio, + }; + }), + }, + user, + }); } else { await payload.create({ collection: Collections.Recorders, data: { - ...data, + username, + anonymize, + languages: languages.data?.map((language) => language.attributes.code), + avatar: avatarId, + biographies: bios?.map(({ language, bio }) => { + if (isUndefined(language.data)) + throw new Error("A language is required for a Recorder biography"); + if (isUndefined(bio)) throw new Error("A bio is required for a Recorder biography"); + return { + language: language.data.attributes.code, + biography: bio, + }; + }), + email: `${anonymous_code}@accords-library.com`, password: process.env.RECORDER_DEFAULT_PASSWORD, }, diff --git a/src/collections/Videos/Videos.ts b/src/collections/Videos/Videos.ts index 610d3bc..e4c4976 100644 --- a/src/collections/Videos/Videos.ts +++ b/src/collections/Videos/Videos.ts @@ -50,7 +50,7 @@ export const Videos: CollectionConfig = buildCollectionConfig({ { type: "row", fields: [ - { name: fields.uid, type: "text", required: true, unique: true, admin: { width: "33%" } }, + { name: fields.uid, type: "text", required: true, unique: true, admin: { width: "0%" } }, { name: fields.gone, type: "checkbox", @@ -59,7 +59,7 @@ export const Videos: CollectionConfig = buildCollectionConfig({ admin: { description: "Is the video no longer available (deleted, privatized, unlisted, blocked...)", - width: "33%", + width: "0%", }, }, { @@ -67,7 +67,7 @@ export const Videos: CollectionConfig = buildCollectionConfig({ type: "select", required: true, options: Object.entries(VideoSources).map(([value, label]) => ({ label, value })), - admin: { width: "33%" }, + admin: { width: "0%" }, }, ], }, @@ -77,8 +77,8 @@ export const Videos: CollectionConfig = buildCollectionConfig({ { type: "row", fields: [ - { name: fields.likes, type: "number", admin: { width: "50%" } }, - { name: fields.views, type: "number", admin: { width: "50%" } }, + { name: fields.likes, type: "number", admin: { width: "0%" } }, + { name: fields.views, type: "number", admin: { width: "0%" } }, ], }, { diff --git a/src/collections/Videos/endpoints/importFromStrapi.ts b/src/collections/Videos/endpoints/importFromStrapi.ts index 5d4810b..31a3848 100644 --- a/src/collections/Videos/endpoints/importFromStrapi.ts +++ b/src/collections/Videos/endpoints/importFromStrapi.ts @@ -1,8 +1,6 @@ import payload from "payload"; import { Collections, VideoSources } from "../../../constants"; import { createStrapiImportEndpoint } from "../../../endpoints/createStrapiImportEndpoint"; -import { Video, VideosChannel } from "../../../types/collections"; -import { PayloadCreateData } from "../../../types/payload"; import { isDefined, isUndefined } from "../../../utils/asserts"; type StapiVideo = { @@ -21,7 +19,7 @@ type StapiVideo = { channel: { data?: { attributes: { uid: string; title: string; subscribers: number } } }; }; -export const importFromStrapi = createStrapiImportEndpoint({ +export const importFromStrapi = createStrapiImportEndpoint({ strapi: { collection: "videos", params: { populate: "published_date,channel" }, @@ -49,14 +47,13 @@ export const importFromStrapi = createStrapiImportEndpoint({ let videoChannelId; if (isDefined(channel.data)) { try { - const videoChannel: PayloadCreateData = { - uid: channel.data.attributes.uid, - title: channel.data.attributes.title, - subscribers: channel.data.attributes.subscribers, - }; await payload.create({ collection: Collections.VideosChannels, - data: videoChannel, + data: { + uid: channel.data.attributes.uid, + title: channel.data.attributes.title, + subscribers: channel.data.attributes.subscribers, + }, user, }); } catch (e) {} @@ -66,26 +63,24 @@ export const importFromStrapi = createStrapiImportEndpoint({ where: { uid: { equals: channel.data.attributes.uid } }, }); - if (result.docs.length > 0) { + if (result.docs[0]) { videoChannelId = result.docs[0].id; } } - const video: PayloadCreateData