From e8d8c8e6a82e11a2c4cee25c37c34c03a4871f19 Mon Sep 17 00:00:00 2001 From: DrMint <29893320+DrMint@users.noreply.github.com> Date: Sat, 20 Jan 2024 03:25:52 +0100 Subject: [PATCH] Added folders --- .vscode/settings.json | 4 +- bun.lockb | Bin 541699 -> 530196 bytes docker-compose.yml | 4 +- package-lock.json | 776 +++++++++---- package.json | 21 +- .../ChronologyItems/ChronologyItems.ts | 8 - src/collections/Folders/Folders.ts | 64 ++ .../LibraryFolders/LibraryFolders.ts | 71 -- src/collections/LibraryItems/LibraryItems.ts | 19 +- src/collections/Posts/Posts.ts | 4 +- .../Posts/endpoints/importFromStrapi.ts | 115 ++ src/collections/Recorders/Recorders.ts | 2 +- src/constants.ts | 2 +- src/payload.config.ts | 4 +- src/types/collections.ts | 1018 +++++++++-------- src/utils/versionedCollectionConfig.ts | 2 +- 16 files changed, 1300 insertions(+), 814 deletions(-) create mode 100644 src/collections/Folders/Folders.ts delete mode 100644 src/collections/LibraryFolders/LibraryFolders.ts create mode 100644 src/collections/Posts/endpoints/importFromStrapi.ts diff --git a/.vscode/settings.json b/.vscode/settings.json index e0ffbfc..9315f09 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,7 +3,7 @@ "editor.rulers": [100], "typescript.preferences.importModuleSpecifier": "non-relative", "editor.codeActionsOnSave": { - "source.fixAll": true, - "source.organizeImports": true + "source.fixAll": "explicit", + "source.organizeImports": "explicit" } } diff --git a/bun.lockb b/bun.lockb index 12d04d9484fb740a8163ad97629a4b204c52d8e6..af9390d8d7a3cb3cfea184ec6b16a42390d167cc 100755 GIT binary patch delta 104822 zcmeF4d0bW1`|r;_a**wSLken&mWr7{n&klzjyRPQIgg0~f}%_UqL>V3nwpZjm7NWg z4K~xLg(YQ{4JK-XW#*Knl}Tx7;XwEES&y(<8pXXWgwAbEen+um* zv!=A&%FxaqH$MDFMz>yP4^Dsi!99a--4%B4mPL6<`-7&JfAam{zCKso9pLBSr_rjh zZ6iiHTuL|`8F9HO>2XsXZ4HN`iNjI27c{}l#JGfP#A)SpI2u5|0@5D5>gB+eTM>!I zjP$JRgsdz_ppV1R5W3;2BZ1+ia9#y54@EQsr-Mzwgt*kil;nAd>)~hQl^{!;2L^zh zt!_r(_z&w#sy9K#DnT9Ufg7NkgL4w&GvX3vIxhO7DbT-ztk?4(q7;^Z_*0l2mk}4A zlIWO?OjuRhT5q&1h(Lj?(=}i#uqnt~7B!YSp3u1+0ah(o zCowHM%i&lJ&D`Hbri@<(vNm455Ps&L1)_+8!Z-xj8KZT=&(U%=J~1mHE+uYi;s+2c z=v9yveF|g&QHUQ1#wDa@rlCtZK(hhQw3NdosW}2f)WS6ITJR+DVF6#`7f1aBGN;Z? z%*;y6L=Ux-axQ@N3g9?}00(L*$gau)S<~T2g}N0MB3Bli46@)lns>FA7A`VttG3rk2(Nk?Xm4Lzh!E`YSh zxFz0cXf}2oh;b~;N=VIMsabK@UGTX(Ox4Qzz}2$giEyc5FvvWTvqGk&q{lnrdP*KG zwEYA$mUm%8Xx1e@GcF+!xxEn~@v1?lAJ$9qi%ZK*jmu7$elH?3UGqq3Qx4b|IuCZl zFDOh%$(qYb&4Ph5%f};2qB2S*&UYXiqqfkHGXS?5biq{e^bYkiTw~9y$Rw;~L(F05jSSa@aEyv(i&?5*<4S%I2~S zWDjfvnIYC9JIpa1nk~(ZOHH9p8Y~�WyB4A=044%*^!6ki@y(=@Fpq3De_J3T7hV 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 delta 112720 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

C?4WW|g!BdRB&1v8AXCslx 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 diff --git a/docker-compose.yml b/docker-compose.yml index bdd27ce..54b2e12 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,7 @@ version: "3" services: payload: - image: node:18-alpine + image: docker.io/library/node:18-alpine ports: - "${PAYLOAD_PORT}:${PAYLOAD_PORT}" volumes: @@ -20,7 +20,7 @@ services: NODE_ENV: development mongo: - image: mongo:latest + image: docker.io/library/mongo:latest ports: - "${MONGODB_PORT}:27017" command: diff --git a/package-lock.json b/package-lock.json index 673154c..2c539df 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,23 +10,24 @@ "license": "MIT", "dependencies": { "@fontsource/vollkorn": "^5.0.17", - "@payloadcms/bundler-webpack": "^1.0.4", - "@payloadcms/db-mongodb": "^1.0.4", - "@payloadcms/richtext-lexical": "^0.1.15", + "@payloadcms/bundler-webpack": "^1.0.5", + "@payloadcms/db-mongodb": "^1.0.8", + "@payloadcms/richtext-lexical": "^0.1.17", "cross-env": "^7.0.3", "language-tags": "^1.0.9", "luxon": "^3.4.3", - "payload": "^2.0.13", - "styled-components": "^6.1.0" + "payload": "^2.1.1", + "sharp": "^0.33.2", + "styled-components": "^6.1.1" }, "devDependencies": { "@types/dotenv": "^8.2.0", - "@types/express": "^4.17.20", - "@types/language-tags": "^1.0.3", - "@types/luxon": "^3.3.3", - "@types/qs": "^6.9.9", + "@types/express": "^4.17.21", + "@types/language-tags": "^1.0.4", + "@types/luxon": "^3.3.4", + "@types/qs": "^6.9.10", "@types/react-router-dom": "^5.3.3", - "@types/styled-components": "^5.1.29", + "@types/styled-components": "^5.1.30", "copyfiles": "^2.4.1", "nodemon": "^3.0.1", "npm-check-updates": "^16.14.6", @@ -1721,6 +1722,15 @@ "react": ">=16.8.0" } }, + "node_modules/@emnapi/runtime": { + "version": "0.45.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-0.45.0.tgz", + "integrity": "sha512-Txumi3td7J4A/xTTwlssKieHKTGl3j4A1tglBx72auZ49YK7ePY6XZricgIg9mnZT4xPfA+UPCUdnhRuEFDL+w==", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@emotion/babel-plugin": { "version": "11.11.0", "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", @@ -1943,6 +1953,437 @@ "@hapi/hoek": "^9.0.0" } }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.2.tgz", + "integrity": "sha512-itHBs1rPmsmGF9p4qRe++CzCgd+kFYktnsoR1sbIAfsRMrJZau0Tt1AH9KVnufc2/tU02Gf6Ibujx+15qRE03w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "glibc": ">=2.26", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.0.1" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.2.tgz", + "integrity": "sha512-/rK/69Rrp9x5kaWBjVN07KixZanRr+W1OiyKdXcbjQD6KbW+obaTeBBtLUAtbBsnlTTmWthw99xqoOS7SsySDg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "glibc": ">=2.26", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.0.1" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.1.tgz", + "integrity": "sha512-kQyrSNd6lmBV7O0BUiyu/OEw9yeNGFbQhbxswS1i6rMDwBBSX+e+rPzu3S+MwAiGU3HdLze3PanQ4Xkfemgzcw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "macos": ">=11", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.1.tgz", + "integrity": "sha512-eVU/JYLPVjhhrd8Tk6gosl5pVlvsqiFlt50wotCvdkFGf+mDNBJxMh+bvav+Wt3EBnNZWq8Sp2I7XfSjm8siog==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "macos": ">=10.13", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.1.tgz", + "integrity": "sha512-FtdMvR4R99FTsD53IA3LxYGghQ82t3yt0ZQ93WMZ2xV3dqrb0E8zq4VHaTOuLEAuA83oDawHV3fd+BsAPadHIQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.28", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.1.tgz", + "integrity": "sha512-bnGG+MJjdX70mAQcSLxgeJco11G+MxTz+ebxlz8Y3dxyeb3Nkl7LgLI0mXupoO+u1wRNx/iRj5yHtzA4sde1yA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.26", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.1.tgz", + "integrity": "sha512-3+rzfAR1YpMOeA2zZNp+aYEzGNWK4zF3+sdMxuCS3ey9HhDbJ66w6hDSHDMoap32DueFwhhs3vwooAB2MaK4XQ==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.28", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.1.tgz", + "integrity": "sha512-3NR1mxFsaSgMMzz1bAnnKbSAI+lHXVTqAHgc1bgzjHuXjo4hlscpUxc0vFSAPKI3yuzdzcZOkq7nDPrP2F8Jgw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.26", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.1.tgz", + "integrity": "sha512-5aBRcjHDG/T6jwC3Edl3lP8nl9U2Yo8+oTl5drd1dh9Z1EBfzUKAJFUDTDisDjUwc7N4AjnPGfCA3jl3hY8uDg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "musl": ">=1.2.2", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.1.tgz", + "integrity": "sha512-dcT7inI9DBFK6ovfeWRe3hG30h51cBAP5JXlZfx6pzc/Mnf9HFCQDLtYf4MCBjxaaTfjCCjkBxcy3XzOAo5txw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "musl": ">=1.2.2", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.2.tgz", + "integrity": "sha512-Fndk/4Zq3vAc4G/qyfXASbS3HBZbKrlnKZLEJzPLrXoJuipFNNwTes71+Ki1hwYW5lch26niRYoZFAtZVf3EGA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.28", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.0.1" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.2.tgz", + "integrity": "sha512-pz0NNo882vVfqJ0yNInuG9YH71smP4gRSdeL09ukC2YLE6ZyZePAlWKEHgAzJGTiOh8Qkaov6mMIMlEhmLdKew==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.26", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.0.1" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.2.tgz", + "integrity": "sha512-MBoInDXDppMfhSzbMmOQtGfloVAflS2rP1qPcUIiITMi36Mm5YR7r0ASND99razjQUpHTzjrU1flO76hKvP5RA==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.28", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.0.1" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.2.tgz", + "integrity": "sha512-xUT82H5IbXewKkeF5aiooajoO1tQV4PnKfS/OZtb5DDdxS/FCI/uXTVZ35GQ97RZXsycojz/AJ0asoz6p2/H/A==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.26", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.0.1" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.2.tgz", + "integrity": "sha512-F+0z8JCu/UnMzg8IYW1TMeiViIWBVg7IWP6nE0p5S5EPQxlLd76c8jYemG21X99UzFwgkRo5yz2DS+zbrnxZeA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "musl": ">=1.2.2", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.0.1" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.2.tgz", + "integrity": "sha512-+ZLE3SQmSL+Fn1gmSaM8uFusW5Y3J9VOf+wMGNnTtJUMUxFhv+P4UPaYEYT8tqnyYVaOVGgMN/zsOxn9pSsO2A==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "musl": ">=1.2.2", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.0.1" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.2.tgz", + "integrity": "sha512-fLbTaESVKuQcpm8ffgBD7jLb/CQLcATju/jxtTXR1XCLwbOQt+OL5zPHSDMmp2JZIeq82e18yE0Vv7zh6+6BfQ==", + "cpu": [ + "wasm32" + ], + "optional": true, + "dependencies": { + "@emnapi/runtime": "^0.45.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.2.tgz", + "integrity": "sha512-okBpql96hIGuZ4lN3+nsAjGeggxKm7hIRu9zyec0lnfB8E7Z6p95BuRZzDDXZOl2e8UmR4RhYt631i7mfmKU8g==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.2.tgz", + "integrity": "sha512-E4magOks77DK47FwHUIGH0RYWSgRBfGdK56kIHSVeB9uIS4pPFr4N2kIVsXdQQo4LzOsENKV5KAhRlRL7eMAdg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -2157,14 +2598,6 @@ "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", @@ -2597,9 +3030,9 @@ } }, "node_modules/@payloadcms/bundler-webpack": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@payloadcms/bundler-webpack/-/bundler-webpack-1.0.4.tgz", - "integrity": "sha512-ou3FUDi10GZCxjnzQ+fR4R3SFUVeCv3sWqtpzV1vza0g6CM4T+rDQeCIf5huveWJ2Vwfw276il+F6Cp7XdUd4Q==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@payloadcms/bundler-webpack/-/bundler-webpack-1.0.5.tgz", + "integrity": "sha512-TjzRTGRDQPrxGoMZ+fV76Pzx3nXC37oSZe/+dA/5HM18fRA9vlu/z54r8HHvThZc7ywx0iRiSwgPZYzQu5xUVQ==", "dependencies": { "compression": "1.7.4", "connect-history-api-fallback": "1.6.0", @@ -2632,9 +3065,9 @@ } }, "node_modules/@payloadcms/db-mongodb": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@payloadcms/db-mongodb/-/db-mongodb-1.0.4.tgz", - "integrity": "sha512-AkCVp407Y210TPt0imtUrtBxKrvlSgsbwZ9GrJXL8RACo3P86e4N+4wPlHKSF74w/rvagNDy151P5pvmmiRLYQ==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@payloadcms/db-mongodb/-/db-mongodb-1.0.8.tgz", + "integrity": "sha512-7U1BXY7JdoQrUkxdre4E0PhHsZw4LmNcJGwhkENnKtJB2xU4zZc3Ed6Uk0W4WbLYw0xCZCtYzW7qQ0GUYjOmSw==", "dependencies": { "bson-objectid": "2.0.4", "deepmerge": "4.3.1", @@ -2658,36 +3091,26 @@ } }, "node_modules/@payloadcms/richtext-lexical": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/@payloadcms/richtext-lexical/-/richtext-lexical-0.1.15.tgz", - "integrity": "sha512-NgsoZ5Gm0fDAZvtapNgiP3E4u1dFxqn+bAHMWU7i2IYDZz+oFP7SLOqKfhNXkEJlmhXIPCNxLdZiFJxPXVw3Vw==", + "version": "0.1.17", + "resolved": "https://registry.npmjs.org/@payloadcms/richtext-lexical/-/richtext-lexical-0.1.17.tgz", + "integrity": "sha512-HJVSmt9oFv5gSFsC1DQH6UTJW8fyrduwFD9wGg2HQpkuTZo6n0pKEnFlkJyuy9z9ZgMBqShCOVYPdhaHc8Mw+Q==", "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", "deep-equal": "2.2.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", @@ -2695,7 +3118,7 @@ "ts-essentials": "7.0.3" }, "peerDependencies": { - "payload": "^2.0.6" + "payload": "^2.0.14" } }, "node_modules/@pkgjs/parseargs": { @@ -3859,9 +4282,9 @@ "integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==" }, "node_modules/@types/express": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.20.tgz", - "integrity": "sha512-rOaqlkgEvOW495xErXMsmyX3WKBInbhG5eqojXYi3cGUaLoRDlXa5d52fkfWZT963AZ3v2eZ4MbKE6WpDAGVsw==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", "dev": true, "dependencies": { "@types/body-parser": "*", @@ -3957,9 +4380,9 @@ "dev": true }, "node_modules/@types/language-tags": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/language-tags/-/language-tags-1.0.3.tgz", - "integrity": "sha512-YwOfmHfZmsPZjLu4tnGFDukszUPk2LMkAOYjyIEfqeyoPs7ZHmXRZN/U+d4vePDDbDPhOcOe6htR8UEgsCCwDw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@types/language-tags/-/language-tags-1.0.4.tgz", + "integrity": "sha512-20PQbifv3v/djCT+KlXybv0KqO5ofoR1qD1wkinN59kfggTPVTWGmPFgL/1yWuDyRcsQP/POvkqK+fnl5nOwTg==", "dev": true }, "node_modules/@types/lodash": { @@ -3968,9 +4391,9 @@ "integrity": "sha512-Vrjz5N5Ia4SEzWWgIVwnHNEnb1UE1XMkvY5DGXrAeOGE9imk0hgTHh5GyDjLDJi9OTCn9oo9dXH1uToK1VRfrg==" }, "node_modules/@types/luxon": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.3.3.tgz", - "integrity": "sha512-/BJF3NT0pRMuxrenr42emRUF67sXwcZCd+S1ksG/Fcf9O7C3kKCY4uJSbKBE4KDUIYr3WMsvfmWD8hRjXExBJQ==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/@types/luxon/-/luxon-3.3.4.tgz", + "integrity": "sha512-H9OXxv4EzJwE75aTPKpiGXJq+y4LFxjpsdgKwSmr503P5DkWc3AG7VAFYrFNVvqemT5DfgZJV9itYhqBHSGujA==", "dev": true }, "node_modules/@types/mime": { @@ -3989,15 +4412,6 @@ "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", @@ -4014,9 +4428,9 @@ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, "node_modules/@types/qs": { - "version": "6.9.9", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.9.tgz", - "integrity": "sha512-wYLxw35euwqGvTDx6zfY1vokBFnsK0HNrzc6xNHchxfO2hpuRg74GbkEW7e3sSmPvj0TjCDT1VCa6OtHXnubsg==", + "version": "6.9.10", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.10.tgz", + "integrity": "sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==", "dev": true }, "node_modules/@types/range-parser": { @@ -4091,9 +4505,9 @@ } }, "node_modules/@types/styled-components": { - "version": "5.1.29", - "resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.29.tgz", - "integrity": "sha512-5h/ah9PAblggQ6Laa4peplT4iY5ddA8qM1LMD4HzwToUWs3hftfy0fayeRgbtH1JZUdw5CCaowmz7Lnb8SjIxQ==", + "version": "5.1.30", + "resolved": "https://registry.npmjs.org/@types/styled-components/-/styled-components-5.1.30.tgz", + "integrity": "sha512-xxJqw0s1myRTgrzHgG5tKHS9hK+KNhjbKMXDWlHRo9eDNVVUqf147QUGYUqwyCDkFyGr2pi1qJKFMEy0ACZb0A==", "dev": true, "dependencies": { "@types/hoist-non-react-statics": "*", @@ -4402,6 +4816,7 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", + "dev": true, "dependencies": { "humanize-ms": "^1.2.1" }, @@ -4619,11 +5034,6 @@ "node": ">=8" } }, - "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", @@ -4711,11 +5121,6 @@ "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", @@ -5562,17 +5967,6 @@ "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", @@ -6419,14 +6813,6 @@ "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/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", @@ -6474,15 +6860,6 @@ "node": ">=0.3.1" } }, - "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/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -7301,36 +7678,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "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", @@ -8215,6 +8562,7 @@ "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==", + "dev": true, "dependencies": { "ms": "^2.0.0" } @@ -9143,21 +9491,6 @@ "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/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -10038,9 +10371,9 @@ } }, "node_modules/node-abi": { - "version": "3.51.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.51.0.tgz", - "integrity": "sha512-SQkEP4hmNWjlniS5zdnfIXTk1x7Ome85RDzHlTbBtzE97Gfwz/Ipw4v/Ryk20DWIy3yCNVLVlGKApCnmvYoJbA==", + "version": "3.54.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.54.0.tgz", + "integrity": "sha512-p7eGEiQil0YUV3ItH4/tBb781L5impVmmx2E9FRKF7d18XXzp4PGT2tdYMFY6wQqgxD0IwNZOiSJ0/K0fSi/OA==", "dependencies": { "semver": "^7.3.5" }, @@ -10053,24 +10386,6 @@ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==" }, - "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", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz", @@ -10756,29 +11071,6 @@ "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", @@ -11111,9 +11403,9 @@ "integrity": "sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg==" }, "node_modules/payload": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/payload/-/payload-2.0.13.tgz", - "integrity": "sha512-rD9ncVH8ClP7SphDymnrtVv0GAwHeyBXt9b1wSQBF15Dx/svU5rD1OEDtDPgEUTQApnySBVsB4NDGM1xO32YjA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/payload/-/payload-2.1.1.tgz", + "integrity": "sha512-hhfog5lE7jRsbuYiWZmyn6xsvt1iAO2N+dfae22QcaUAbMP0HKgM2j8YKZTORcqhFpglcQXQ8MPp+2lbvVagBw==", "dependencies": { "@date-io/date-fns": "2.16.0", "@dnd-kit/core": "6.0.8", @@ -11203,7 +11495,7 @@ "terser-webpack-plugin": "5.3.9", "ts-essentials": "7.0.3", "use-context-selector": "1.4.1", - "uuid": "8.3.2" + "uuid": "9.0.1" }, "bin": { "payload": "bin.js" @@ -11288,6 +11580,40 @@ "node": ">=10" } }, + "node_modules/payload/node_modules/sharp": { + "version": "0.32.6", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz", + "integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==", + "hasInstallScript": true, + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.2", + "node-addon-api": "^6.1.0", + "prebuild-install": "^7.1.1", + "semver": "^7.5.4", + "simple-get": "^4.0.1", + "tar-fs": "^3.0.4", + "tunnel-agent": "^0.6.0" + }, + "engines": { + "node": ">=14.15.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/payload/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/peek-readable": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/peek-readable/-/peek-readable-4.1.0.tgz", @@ -14146,25 +14472,42 @@ "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==" }, "node_modules/sharp": { - "version": "0.32.6", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz", - "integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==", + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.2.tgz", + "integrity": "sha512-WlYOPyyPDiiM07j/UO+E720ju6gtNtHjEGg5vovUk1Lgxyjm2LFO+37Nt/UI3MMh2l6hxTWQWi7qk3cXJTutcQ==", "hasInstallScript": true, "dependencies": { "color": "^4.2.3", "detect-libc": "^2.0.2", - "node-addon-api": "^6.1.0", - "prebuild-install": "^7.1.1", - "semver": "^7.5.4", - "simple-get": "^4.0.1", - "tar-fs": "^3.0.4", - "tunnel-agent": "^0.6.0" + "semver": "^7.5.4" }, "engines": { - "node": ">=14.15.0" + "libvips": ">=8.15.1", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" }, "funding": { "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.33.2", + "@img/sharp-darwin-x64": "0.33.2", + "@img/sharp-libvips-darwin-arm64": "1.0.1", + "@img/sharp-libvips-darwin-x64": "1.0.1", + "@img/sharp-libvips-linux-arm": "1.0.1", + "@img/sharp-libvips-linux-arm64": "1.0.1", + "@img/sharp-libvips-linux-s390x": "1.0.1", + "@img/sharp-libvips-linux-x64": "1.0.1", + "@img/sharp-libvips-linuxmusl-arm64": "1.0.1", + "@img/sharp-libvips-linuxmusl-x64": "1.0.1", + "@img/sharp-linux-arm": "0.33.2", + "@img/sharp-linux-arm64": "0.33.2", + "@img/sharp-linux-s390x": "0.33.2", + "@img/sharp-linux-x64": "0.33.2", + "@img/sharp-linuxmusl-arm64": "0.33.2", + "@img/sharp-linuxmusl-x64": "0.33.2", + "@img/sharp-wasm32": "0.33.2", + "@img/sharp-win32-ia32": "0.33.2", + "@img/sharp-win32-x64": "0.33.2" } }, "node_modules/shebang-command": { @@ -14549,9 +14892,9 @@ } }, "node_modules/streamx": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.1.tgz", - "integrity": "sha512-fQMzy2O/Q47rgwErk/eGeLu/roaFWV0jVsogDmrszM9uIw8L5OA+t+V93MgYlufNptfjmYR1tOMWhei/Eh7TQA==", + "version": "2.15.6", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.15.6.tgz", + "integrity": "sha512-q+vQL4AAz+FdfT137VF69Cc/APqUbxy+MDOImRrMvchJpigHj9GksgDU2LYbO9rx7RX6osWgxJB2WxhYv4SZAw==", "dependencies": { "fast-fifo": "^1.1.0", "queue-tick": "^1.0.1" @@ -14679,9 +15022,9 @@ } }, "node_modules/styled-components": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.0.tgz", - "integrity": "sha512-VWNfYYBuXzuLS/QYEeoPgMErP26WL+dX9//rEh80B2mmlS1yRxRxuL5eax4m6ybYEUoHWlTy2XOU32767mlMkg==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/styled-components/-/styled-components-6.1.1.tgz", + "integrity": "sha512-cpZZP5RrKRIClBW5Eby4JM1wElLVP4NQrJbJ0h10TidTyJf4SIIwa3zLXOoPb4gJi8MsJ8mjq5mu2IrEhZIAcQ==", "dependencies": { "@emotion/is-prop-valid": "^1.2.1", "@emotion/unitless": "^0.8.0", @@ -14911,9 +15254,9 @@ } }, "node_modules/tar-stream": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz", - "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", "dependencies": { "b4a": "^1.6.4", "fast-fifo": "^1.2.0", @@ -15651,6 +15994,7 @@ "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "optional": true, "bin": { "uuid": "dist/bin/uuid" } @@ -15724,14 +16068,6 @@ "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", diff --git a/package.json b/package.json index 4b211e4..6c4dc0c 100644 --- a/package.json +++ b/package.json @@ -24,23 +24,24 @@ }, "dependencies": { "@fontsource/vollkorn": "^5.0.17", - "@payloadcms/bundler-webpack": "^1.0.4", - "@payloadcms/db-mongodb": "^1.0.4", - "@payloadcms/richtext-lexical": "^0.1.15", + "@payloadcms/bundler-webpack": "^1.0.5", + "@payloadcms/db-mongodb": "^1.0.8", + "@payloadcms/richtext-lexical": "^0.1.17", "cross-env": "^7.0.3", "language-tags": "^1.0.9", "luxon": "^3.4.3", - "payload": "^2.0.13", - "styled-components": "^6.1.0" + "payload": "^2.1.1", + "sharp": "^0.33.2", + "styled-components": "^6.1.1" }, "devDependencies": { "@types/dotenv": "^8.2.0", - "@types/express": "^4.17.20", - "@types/language-tags": "^1.0.3", - "@types/luxon": "^3.3.3", - "@types/qs": "^6.9.9", + "@types/express": "^4.17.21", + "@types/language-tags": "^1.0.4", + "@types/luxon": "^3.3.4", + "@types/qs": "^6.9.10", "@types/react-router-dom": "^5.3.3", - "@types/styled-components": "^5.1.29", + "@types/styled-components": "^5.1.30", "copyfiles": "^2.4.1", "nodemon": "^3.0.1", "npm-check-updates": "^16.14.6", diff --git a/src/collections/ChronologyItems/ChronologyItems.ts b/src/collections/ChronologyItems/ChronologyItems.ts index 2375e89..49adf5d 100644 --- a/src/collections/ChronologyItems/ChronologyItems.ts +++ b/src/collections/ChronologyItems/ChronologyItems.ts @@ -18,7 +18,6 @@ import { validateEventsTranslationsTitle } from "./validations/validateEventsTra const fields = { name: "name", events: "events", - eventsSource: "source", eventsTranslations: "translations", eventsTranslationsTitle: "title", eventsTranslationsDescription: "description", @@ -98,13 +97,6 @@ export const ChronologyItems: CollectionConfig = buildVersionedCollectionConfig( required: true, minRows: 1, fields: [ - { - name: fields.eventsSource, - type: "relationship", - relationTo: [Collections.Contents, Collections.LibraryItems], - // required: true, - admin: { allowCreate: false }, - }, translatedFields({ name: fields.eventsTranslations, required: true, diff --git a/src/collections/Folders/Folders.ts b/src/collections/Folders/Folders.ts new file mode 100644 index 0000000..834bc66 --- /dev/null +++ b/src/collections/Folders/Folders.ts @@ -0,0 +1,64 @@ +import { CollectionGroups, Collections } from "../../constants"; +import { rowField } from "../../fields/rowField/rowField"; +import { slugField } from "../../fields/slugField/slugField"; +import { translatedFields } from "../../fields/translatedFields/translatedFields"; +import { buildCollectionConfig } from "../../utils/collectionConfig"; + +const fields = { + slug: "slug", + translations: "translations", + translationsName: "name", + sections: "sections", + sectionsSubfolders: "subfolders", + sectionsName: "name", + files: "files", +} as const satisfies Record; + +export const Folders = buildCollectionConfig({ + slug: Collections.Folders, + labels: { singular: "Folder", plural: "Folders" }, + admin: { + useAsTitle: fields.slug, + group: CollectionGroups.Collections, + }, + fields: [ + slugField({ name: fields.slug }), + translatedFields({ + name: fields.translations, + fields: [ + { + name: fields.translationsName, + type: "text", + required: true, + }, + ], + }), + { + name: "sections", + type: "array", + fields: [ + rowField([ + { + name: fields.sectionsName, + type: "text", + admin: { + condition: (data) => data[fields.sections]?.length > 1, + }, + }, + { + name: fields.sectionsSubfolders, + type: "relationship", + relationTo: Collections.Folders, + hasMany: true, + }, + ]), + ], + }, + { + type: "relationship", + name: fields.files, + relationTo: [Collections.LibraryItems, Collections.Contents], + hasMany: true, + }, + ], +}); diff --git a/src/collections/LibraryFolders/LibraryFolders.ts b/src/collections/LibraryFolders/LibraryFolders.ts deleted file mode 100644 index e04e910..0000000 --- a/src/collections/LibraryFolders/LibraryFolders.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { CollectionGroups, Collections } from "../../constants"; -import { backPropagationField } from "../../fields/backPropagationField/backPropagationField"; -import { rowField } from "../../fields/rowField/rowField"; -import { slugField } from "../../fields/slugField/slugField"; -import { translatedFields } from "../../fields/translatedFields/translatedFields"; -import { buildCollectionConfig } from "../../utils/collectionConfig"; -import { createEditor } from "../../utils/editor"; - -const fields = { - slug: "slug", - translations: "translations", - name: "name", - description: "description", - subfolders: "subfolders", - items: "items", - parentFolders: "parentFolders", -} as const satisfies Record; - -export const LibraryFolders = buildCollectionConfig({ - slug: Collections.LibraryFolders, - labels: { - singular: "Library Folder", - plural: "Library Folders", - }, - defaultSort: fields.slug, - admin: { - useAsTitle: fields.slug, - defaultColumns: [fields.slug, fields.translations], - disableDuplicate: true, - group: CollectionGroups.Collections, - }, - timestamps: false, - versions: false, - fields: [ - slugField({ name: fields.slug }), - translatedFields({ - name: fields.translations, - admin: { - useAsTitle: fields.name, - }, - fields: [ - { name: fields.name, type: "text", required: true }, - { - name: fields.description, - type: "richText", - editor: createEditor({ inlines: true, lists: true, links: true }), - }, - ], - }), - rowField([ - backPropagationField({ - name: fields.parentFolders, - relationTo: Collections.LibraryFolders, - hasMany: true, - where: ({ id }) => ({ [fields.subfolders]: { equals: id } }), - }), - { - type: "relationship", - name: fields.subfolders, - relationTo: Collections.LibraryFolders, - hasMany: true, - }, - { - type: "relationship", - name: fields.items, - relationTo: Collections.LibraryItems, - hasMany: true, - }, - ]), - ], -}); diff --git a/src/collections/LibraryItems/LibraryItems.ts b/src/collections/LibraryItems/LibraryItems.ts index f97e58e..e327cb2 100644 --- a/src/collections/LibraryItems/LibraryItems.ts +++ b/src/collections/LibraryItems/LibraryItems.ts @@ -704,15 +704,16 @@ export const LibraryItems = buildVersionedCollectionConfig({ label: "Contents", fields: [ rowField([ - backPropagationField({ - name: fields.parentFolders, - relationTo: Collections.LibraryFolders, - hasMany: true, - where: ({ id }) => ({ items: { equals: id } }), - admin: { - description: `You can set the folders from the "Library Folders" collection`, - }, - }), + // TODO: Uncomment when the Folders are ready + // backPropagationField({ + // name: fields.parentFolders, + // relationTo: Collections.Folders, + // hasMany: true, + // where: ({ id }) => ({ files: { equals: id } }), + // admin: { + // description: `You can set the folders from the "Folders" collection`, + // }, + // }), backPropagationField({ name: fields.parentItems, relationTo: Collections.LibraryItems, diff --git a/src/collections/Posts/Posts.ts b/src/collections/Posts/Posts.ts index ac880b7..b3c9533 100644 --- a/src/collections/Posts/Posts.ts +++ b/src/collections/Posts/Posts.ts @@ -12,6 +12,7 @@ import { beforeDuplicateUnpublish } from "../../hooks/beforeDuplicateUnpublish"; import { isDefined, isUndefined } from "../../utils/asserts"; import { createEditor } from "../../utils/editor"; import { buildVersionedCollectionConfig } from "../../utils/versionedCollectionConfig"; +import { importFromStrapi } from "./endpoints/importFromStrapi"; const fields = { slug: "slug", @@ -60,6 +61,7 @@ export const Posts = buildVersionedCollectionConfig({ }, preview: (doc) => `https://accords-library.com/news/${doc.slug}`, }, + endpoints: [importFromStrapi], fields: [ rowField([ slugField({ name: fields.slug }), @@ -72,7 +74,7 @@ export const Posts = buildVersionedCollectionConfig({ { name: fields.authors, type: "relationship", - relationTo: [Collections.Recorders], + relationTo: Collections.Recorders, required: true, minRows: 1, hasMany: true, diff --git a/src/collections/Posts/endpoints/importFromStrapi.ts b/src/collections/Posts/endpoints/importFromStrapi.ts new file mode 100644 index 0000000..abc12b8 --- /dev/null +++ b/src/collections/Posts/endpoints/importFromStrapi.ts @@ -0,0 +1,115 @@ +import { DateTime } from "luxon"; +import type { MarkOptional } from "ts-essentials"; +import { Collections } from "../../../constants"; +import { createStrapiImportEndpoint } from "../../../endpoints/createStrapiImportEndpoint"; +import type { Post } from "../../../types/collections"; +import { StrapiImage, StrapiLanguage, StrapiRecorders } from "../../../types/strapi"; +import { isDefined, isUndefined } from "../../../utils/asserts"; +import { findCategory, findRecorder, uploadStrapiImage } from "../../../utils/localApi"; +import { plainTextToLexical } from "../../../utils/string"; + +type StrapiPost = { + slug: string; + categories: { data: { attributes: { slug: string } }[] }; + authors: StrapiRecorders; + hidden: boolean; + thumbnail: StrapiImage; + translations: { + title: string; + excerpt?: string; + body: string; + translators: StrapiRecorders; + proofreaders: StrapiRecorders; + language: StrapiLanguage; + source_language: StrapiLanguage; + }[]; + date: { + day: number; + month: number; + year: number; + }; +}; + +export const importFromStrapi = createStrapiImportEndpoint({ + strapi: { + collection: "posts", + params: { + populate: [ + "date", + "authors", + "thumbnail", + "categories", + "translations", + "translations.language", + "translations.translators", + "translations.proofreaders", + "translations.source_language", + ], + }, + }, + payload: { + collection: Collections.Posts, + convert: async ({ + slug, + date: { day, month, year }, + hidden, + authors, + thumbnail, + categories, + translations, + }) => { + const thumbnailId = await uploadStrapiImage({ + collection: Collections.PostsThumbnails, + image: thumbnail, + }); + + const handleTranslation = async ({ + language, + title, + body, + excerpt, + proofreaders, + source_language, + translators, + }: StrapiPost["translations"][number]): Promise => { + if (isUndefined(language.data)) + throw new Error("A language is required for a post translation"); + if (isUndefined(source_language.data)) + throw new Error("A source_language is required for a post translation"); + return { + language: language.data.attributes.code, + sourceLanguage: source_language.data.attributes.code, + title, + content: plainTextToLexical(body), + summary: isDefined(excerpt) ? plainTextToLexical(excerpt) : undefined, + translators: + translators.data && + (await Promise.all( + translators.data?.map(async (recorder) => findRecorder(recorder.attributes.username)) + )), + proofreaders: + proofreaders.data && + (await Promise.all( + proofreaders.data?.map(async (recorder) => findRecorder(recorder.attributes.username)) + )), + }; + }; + + const data: MarkOptional = { + slug, + publishedDate: + DateTime.fromObject({ day, month, year }).toISO() ?? new Date().toISOString(), + categories: await Promise.all( + categories.data.map((category) => findCategory(category.attributes.slug)) + ), + translations: await Promise.all(translations.map(handleTranslation)), + authors: await Promise.all( + authors.data?.map((author) => findRecorder(author.attributes.username)) ?? [] + ), + thumbnail: thumbnailId, + hidden, + }; + return data; + }, + }, +}); diff --git a/src/collections/Recorders/Recorders.ts b/src/collections/Recorders/Recorders.ts index a17ed70..308aae1 100644 --- a/src/collections/Recorders/Recorders.ts +++ b/src/collections/Recorders/Recorders.ts @@ -65,7 +65,7 @@ export const Recorders = buildCollectionConfig({ ], }, }, - auth: true, + auth: { tokenExpiration: 24 * 60 * 60 }, access: { unlock: mustBeAdminForCollections, update: mustBeAdminOrSelf, diff --git a/src/constants.ts b/src/constants.ts index 6ebe990..320c816 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -8,7 +8,6 @@ export enum Collections { Files = "files", Keys = "keys", Languages = "languages", - LibraryFolders = "library-folders", LibraryItems = "library-items", LibraryItemsThumbnails = "library-items-thumbnails", LibraryItemsScans = "library-items-scans", @@ -23,6 +22,7 @@ export enum Collections { Weapons = "weapons", WeaponsGroups = "weapons-groups", WeaponsThumbnails = "weapons-thumbnails", + Folders = "folders" } export enum CollectionGroups { diff --git a/src/payload.config.ts b/src/payload.config.ts index 67cc2a2..bbb7c7e 100644 --- a/src/payload.config.ts +++ b/src/payload.config.ts @@ -9,9 +9,9 @@ import { ContentsFolders } from "./collections/ContentsFolders/ContentsFolders"; import { ContentsThumbnails } from "./collections/ContentsThumbnails/ContentsThumbnails"; import { Currencies } from "./collections/Currencies/Currencies"; import { Files } from "./collections/Files/Files"; +import { Folders } from "./collections/Folders/Folders"; import { Keys } from "./collections/Keys/Keys"; import { Languages } from "./collections/Languages/Languages"; -import { LibraryFolders } from "./collections/LibraryFolders/LibraryFolders"; import { LibraryItems } from "./collections/LibraryItems/LibraryItems"; import { LibraryItemsGallery } from "./collections/LibraryItemsGallery/LibraryItemsGallery"; import { LibraryItemsScans } from "./collections/LibraryItemsScans/LibraryItemsScans"; @@ -46,7 +46,7 @@ export default buildConfig({ }, editor: createEditor({}), collections: [ - LibraryFolders, + Folders, LibraryItems, Contents, ContentsFolders, diff --git a/src/types/collections.ts b/src/types/collections.ts index 86ab027..6531364 100644 --- a/src/types/collections.ts +++ b/src/types/collections.ts @@ -6,65 +6,73 @@ * and re-run `payload generate:types` to regenerate this file. */ -export type CategoryTranslations = { - language: string | Language; - name: string; - short?: string; - id?: string; -}[]; -export type RecorderBiographies = { - language: string | Language; - biography: { - [k: string]: unknown; - }[]; - id?: string; -}[]; +export type RecorderBiographies = + | { + language: string | Language; + biography: { + [k: string]: unknown; + }[]; + id?: string | null; + }[] + | null; +export type CategoryTranslations = + | { + language: string | Language; + name: string; + short?: string | null; + id?: string | null; + }[] + | null; export interface Config { collections: { - "library-folders": LibraryFolder; - "library-items": LibraryItem; + 'library-folders': LibraryFolder; + 'library-items': LibraryItem; contents: Content; - "contents-folders": ContentsFolder; + 'contents-folders': ContentsFolder; posts: Post; - "chronology-items": ChronologyItem; - "chronology-eras": ChronologyEra; + 'chronology-items': ChronologyItem; + 'chronology-eras': ChronologyEra; weapons: Weapon; - "weapons-groups": WeaponsGroup; - "weapons-thumbnails": WeaponsThumbnail; - "contents-thumbnails": ContentsThumbnail; - "library-items-thumbnails": LibraryItemThumbnail; - "library-items-scans": LibraryItemScans; - "library-items-gallery": LibraryItemGallery; - "recorders-thumbnails": RecordersThumbnail; - "posts-thumbnails": PostThumbnail; + 'weapons-groups': WeaponsGroup; + 'weapons-thumbnails': WeaponsThumbnail; + 'contents-thumbnails': ContentsThumbnail; + 'library-items-thumbnails': LibraryItemThumbnail; + 'library-items-scans': LibraryItemScans; + 'library-items-gallery': LibraryItemGallery; + 'recorders-thumbnails': RecordersThumbnail; + 'posts-thumbnails': PostThumbnail; files: File; Notes: Note; videos: Video; - "videos-channels": VideosChannel; + 'videos-channels': VideosChannel; languages: Language; currencies: Currency; recorders: Recorder; keys: Key; - "payload-preferences": PayloadPreference; - "payload-migrations": PayloadMigration; + 'payload-preferences': PayloadPreference; + 'payload-migrations': PayloadMigration; }; globals: {}; } export interface LibraryFolder { id: string; slug: string; - translations?: { - language: string | Language; - name: string; - description?: { - [k: string]: unknown; - }[]; - id?: string; - }[]; - parentFolders?: string[] | LibraryFolder[]; - subfolders?: string[] | LibraryFolder[]; - items?: string[] | LibraryItem[]; + translations?: + | { + language: string | Language; + name: string; + description?: + | { + [k: string]: unknown; + }[] + | null; + id?: string | null; + }[] + | null; + parentFolders?: (string | LibraryFolder)[] | null; + subfolders?: (string | LibraryFolder)[] | null; + items?: (string | LibraryItem)[] | null; } export interface Language { id: string; @@ -72,155 +80,183 @@ export interface Language { } export interface LibraryItem { id: string; - itemType?: "Textual" | "Audio" | "Video" | "Game" | "Other"; + itemType?: ('Textual' | 'Audio' | 'Video' | 'Game' | 'Other') | null; + language: string | Language; slug: string; - thumbnail?: string | LibraryItemThumbnail; - pretitle?: string; + thumbnail?: string | LibraryItemThumbnail | null; + pretitle?: string | null; title: string; - subtitle?: string; + subtitle?: string | null; digital: boolean; - gallery?: { - image?: string | LibraryItemGallery; - id?: string; - }[]; - scansEnabled?: boolean; + gallery?: + | { + image?: string | LibraryItemGallery | null; + id?: string | null; + }[] + | null; + scansEnabled?: boolean | null; scans?: { - coverEnabled?: boolean; + scanners: (string | Recorder)[]; + cleaners: (string | Recorder)[]; + typesetters?: (string | Recorder)[] | null; + coverEnabled?: boolean | null; cover?: { - front?: string | LibraryItemScans; - spine?: string | LibraryItemScans; - back?: string | LibraryItemScans; - insideFront?: string | LibraryItemScans; - flapFront?: string | LibraryItemScans; - flapBack?: string | LibraryItemScans; - insideFlapFront?: string | LibraryItemScans; - insideFlapBack?: string | LibraryItemScans; + front?: string | LibraryItemScans | null; + spine?: string | LibraryItemScans | null; + back?: string | LibraryItemScans | null; + insideFront?: string | LibraryItemScans | null; + flapFront?: string | LibraryItemScans | null; + flapBack?: string | LibraryItemScans | null; + insideFlapFront?: string | LibraryItemScans | null; + insideFlapBack?: string | LibraryItemScans | null; }; - dustjacketEnabled?: boolean; + dustjacketEnabled?: boolean | null; dustjacket?: { - front?: string | LibraryItemScans; - spine?: string | LibraryItemScans; - back?: string | LibraryItemScans; - insideFront?: string | LibraryItemScans; - insideSpine?: string | LibraryItemScans; - insideBack?: string | LibraryItemScans; - flapFront?: string | LibraryItemScans; - flapBack?: string | LibraryItemScans; - insideFlapFront?: string | LibraryItemScans; - insideFlapBack?: string | LibraryItemScans; + front?: string | LibraryItemScans | null; + spine?: string | LibraryItemScans | null; + back?: string | LibraryItemScans | null; + insideFront?: string | LibraryItemScans | null; + insideSpine?: string | LibraryItemScans | null; + insideBack?: string | LibraryItemScans | null; + flapFront?: string | LibraryItemScans | null; + flapBack?: string | LibraryItemScans | null; + insideFlapFront?: string | LibraryItemScans | null; + insideFlapBack?: string | LibraryItemScans | null; }; - obiEnabled?: boolean; + obiEnabled?: boolean | null; obi?: { - front?: string | LibraryItemScans; - spine?: string | LibraryItemScans; - back?: string | LibraryItemScans; - insideFront?: string | LibraryItemScans; - insideSpine?: string | LibraryItemScans; - insideBack?: string | LibraryItemScans; - flapFront?: string | LibraryItemScans; - flapBack?: string | LibraryItemScans; - insideFlapFront?: string | LibraryItemScans; - insideFlapBack?: string | LibraryItemScans; + front?: string | LibraryItemScans | null; + spine?: string | LibraryItemScans | null; + back?: string | LibraryItemScans | null; + insideFront?: string | LibraryItemScans | null; + insideSpine?: string | LibraryItemScans | null; + insideBack?: string | LibraryItemScans | null; + flapFront?: string | LibraryItemScans | null; + flapBack?: string | LibraryItemScans | null; + insideFlapFront?: string | LibraryItemScans | null; + insideFlapBack?: string | LibraryItemScans | null; }; - pages?: { - page: number; - image: string | LibraryItemScans; - id?: string; - }[]; + pages?: + | { + page: number; + image: string | LibraryItemScans; + id?: string | null; + }[] + | null; + archiveFile?: (string | null) | File; }; textual?: { - subtype?: string[] | Key[]; - languages?: string[] | Language[]; - pageCount?: number; - bindingType?: "Paperback" | "Hardcover"; - pageOrder?: "LeftToRight" | "RightToLeft"; + subtype?: (string | null) | Key; + pageCount?: number | null; + bindingType?: ('Paperback' | 'Hardcover') | null; + pageOrder?: ('LeftToRight' | 'RightToLeft') | null; }; audio?: { - audioSubtype?: string[] | Key[]; - tracks?: { - title: string; - file: string | File; - id?: string; - }[]; + audioSubtype?: (string | null) | Key; + tracks?: + | { + title: string; + file: string | File; + id?: string | null; + }[] + | null; }; - releaseDate?: string; - categories?: string[] | Key[]; - sizeEnabled?: boolean; + video?: { + subtype?: (string | null) | Key; + }; + game?: { + demo?: boolean | null; + platform?: (string | null) | Key; + audioLanguages?: (string | Language)[] | null; + subtitleLanguages?: (string | Language)[] | null; + interfacesLanguages?: (string | Language)[] | null; + }; + releaseDate?: string | null; + categories?: (string | Key)[] | null; + sizeEnabled?: boolean | null; size?: { width: number; height: number; - thickness?: number; + thickness?: number | null; }; - priceEnabled?: boolean; + priceEnabled?: boolean | null; price?: { amount: number; currency: string | Currency; }; - translations?: { - language: string | Language; - description: { - [k: string]: unknown; - }[]; - id?: string; - }[]; - urls?: { - url: string; - id?: string; - }[]; - parentFolders?: string[] | LibraryFolder[]; - parentItems?: string[] | LibraryItem[]; - subitems?: string[] | LibraryItem[]; - contents?: { - content: string | Content; - pageStart?: number; - pageEnd?: number; - timeStart?: number; - timeEnd?: number; - note?: { - [k: string]: unknown; - }[]; - id?: string; - }[]; + translations?: + | { + language: string | Language; + description: { + [k: string]: unknown; + }[]; + id?: string | null; + }[] + | null; + urls?: + | { + url: string; + id?: string | null; + }[] + | null; + parentFolders?: (string | LibraryFolder)[] | null; + parentItems?: (string | LibraryItem)[] | null; + subitems?: (string | LibraryItem)[] | null; + contents?: + | { + content: string | Content; + pageStart?: number | null; + pageEnd?: number | null; + timeStart?: number | null; + timeEnd?: number | null; + note?: + | { + [k: string]: unknown; + }[] + | null; + id?: string | null; + }[] + | null; updatedBy: string | Recorder; updatedAt: string; createdAt: string; - _status?: "draft" | "published"; + _status?: ('draft' | 'published') | null; } export interface LibraryItemThumbnail { id: string; - libraryItem?: string[] | LibraryItem[]; + libraryItem?: (string | LibraryItem)[] | null; updatedAt: string; createdAt: string; - url?: string; - filename?: string; - mimeType?: string; - filesize?: number; - width?: number; - height?: number; + url?: string | null; + filename?: string | null; + mimeType?: string | null; + filesize?: number | null; + width?: number | null; + height?: number | null; sizes?: { thumb?: { - url?: string; - width?: number; - height?: number; - mimeType?: string; - filesize?: number; - filename?: string; + url?: string | null; + width?: number | null; + height?: number | null; + mimeType?: string | null; + filesize?: number | null; + filename?: string | null; }; og?: { - url?: string; - width?: number; - height?: number; - mimeType?: string; - filesize?: number; - filename?: string; + url?: string | null; + width?: number | null; + height?: number | null; + mimeType?: string | null; + filesize?: number | null; + filename?: string | null; }; square?: { - url?: string; - width?: number; - height?: number; - mimeType?: string; - filesize?: number; - filename?: string; + url?: string | null; + width?: number | null; + height?: number | null; + mimeType?: string | null; + filesize?: number | null; + filename?: string | null; }; }; } @@ -228,28 +264,75 @@ export interface LibraryItemGallery { id: string; updatedAt: string; createdAt: string; - url?: string; - filename?: string; - mimeType?: string; - filesize?: number; - width?: number; - height?: number; + url?: string | null; + filename?: string | null; + mimeType?: string | null; + filesize?: number | null; + width?: number | null; + height?: number | null; sizes?: { thumb?: { - url?: string; - width?: number; - height?: number; - mimeType?: string; - filesize?: number; - filename?: string; + url?: string | null; + width?: number | null; + height?: number | null; + mimeType?: string | null; + filesize?: number | null; + filename?: string | null; }; small?: { - url?: string; - width?: number; - height?: number; - mimeType?: string; - filesize?: number; - filename?: string; + url?: string | null; + width?: number | null; + height?: number | null; + mimeType?: string | null; + filesize?: number | null; + filename?: string | null; + }; + }; +} +export interface Recorder { + id: string; + username: string; + avatar?: string | RecordersThumbnail | null; + languages?: (string | Language)[] | null; + biographies?: RecorderBiographies; + role?: ('Admin' | 'Recorder' | 'Api')[] | null; + anonymize: boolean; + email: string; + resetPasswordToken?: string | null; + resetPasswordExpiration?: string | null; + salt?: string | null; + hash?: string | null; + loginAttempts?: number | null; + lockUntil?: string | null; + password?: string | null; +} +export interface RecordersThumbnail { + id: string; + recorder?: (string | null) | Recorder; + updatedAt: string; + createdAt: string; + url?: string | null; + filename?: string | null; + mimeType?: string | null; + filesize?: number | null; + width?: number | null; + height?: number | null; + sizes?: { + thumb?: { + url?: string | null; + width?: number | null; + height?: number | null; + mimeType?: string | null; + filesize?: number | null; + filename?: string | null; + }; + square?: { + url?: string | null; + width?: number | null; + height?: number | null; + mimeType?: string | null; + filesize?: number | null; + filename?: string | null; }; }; } @@ -257,441 +340,403 @@ export interface LibraryItemScans { id: string; updatedAt: string; createdAt: string; - url?: string; - filename?: string; - mimeType?: string; - filesize?: number; - width?: number; - height?: number; + url?: string | null; + filename?: string | null; + mimeType?: string | null; + filesize?: number | null; + width?: number | null; + height?: number | null; sizes?: { thumb?: { - url?: string; - width?: number; - height?: number; - mimeType?: string; - filesize?: number; - filename?: string; + url?: string | null; + width?: number | null; + height?: number | null; + mimeType?: string | null; + filesize?: number | null; + filename?: string | null; }; og?: { - url?: string; - width?: number; - height?: number; - mimeType?: string; - filesize?: number; - filename?: string; + url?: string | null; + width?: number | null; + height?: number | null; + mimeType?: string | null; + filesize?: number | null; + filename?: string | null; }; medium?: { - url?: string; - width?: number; - height?: number; - mimeType?: string; - filesize?: number; - filename?: string; + url?: string | null; + width?: number | null; + height?: number | null; + mimeType?: string | null; + filesize?: number | null; + filename?: string | null; }; large?: { - url?: string; - width?: number; - height?: number; - mimeType?: string; - filesize?: number; - filename?: string; + url?: string | null; + width?: number | null; + height?: number | null; + mimeType?: string | null; + filesize?: number | null; + filename?: string | null; }; }; } +export interface File { + id: string; + filename: string; + type: 'LibraryScans' | 'LibrarySoundtracks' | 'ContentVideo' | 'ContentAudio'; + updatedAt: string; + createdAt: string; +} export interface Key { id: string; name: string; type: - | "Contents" - | "LibraryAudio" - | "LibraryVideo" - | "LibraryTextual" - | "LibraryGroup" - | "Library" - | "Weapons" - | "GamePlatforms" - | "Categories" - | "Wordings"; + | 'Contents' + | 'LibraryAudio' + | 'LibraryVideo' + | 'LibraryTextual' + | 'LibraryGroup' + | 'Library' + | 'Weapons' + | 'GamePlatforms' + | 'Categories' + | 'Wordings'; translations?: CategoryTranslations; } -export interface File { - id: string; - filename: string; - type: "LibraryScans" | "LibrarySoundtracks" | "ContentVideo" | "ContentAudio"; - updatedAt: string; - createdAt: string; -} export interface Currency { id: string; } export interface Content { id: string; slug: string; - thumbnail?: string | ContentsThumbnail; - categories?: string[] | Key[]; - type?: string | Key; - libraryItems?: string[] | LibraryItem[]; + thumbnail?: string | ContentsThumbnail | null; + categories?: (string | Key)[] | null; + type?: (string | null) | Key; + libraryItems?: (string | LibraryItem)[] | null; translations: { language: string | Language; sourceLanguage: string | Language; - pretitle?: string; + pretitle?: string | null; title: string; - subtitle?: string; - summary?: { - [k: string]: unknown; - }[]; - textContent?: { - [k: string]: unknown; - }[]; - textTranscribers?: string[] | Recorder[]; - textTranslators?: string[] | Recorder[]; - textProofreaders?: string[] | Recorder[]; - textNotes?: { - [k: string]: unknown; - }[]; - video?: string | File; - videoNotes?: { - [k: string]: unknown; - }[]; - audio?: string | File; - id?: string; + subtitle?: string | null; + summary?: + | { + [k: string]: unknown; + }[] + | null; + textContent?: + | { + [k: string]: unknown; + }[] + | null; + textTranscribers?: (string | Recorder)[] | null; + textTranslators?: (string | Recorder)[] | null; + textProofreaders?: (string | Recorder)[] | null; + textNotes?: + | { + [k: string]: unknown; + }[] + | null; + video?: (string | null) | File; + videoNotes?: + | { + [k: string]: unknown; + }[] + | null; + audio?: (string | null) | File; + id?: string | null; }[]; - folders?: string[] | ContentsFolder[]; - previousContents?: string[] | Content[]; - nextContents?: string[] | Content[]; + folders?: (string | ContentsFolder)[] | null; + previousContents?: (string | Content)[] | null; + nextContents?: (string | Content)[] | null; updatedBy: string | Recorder; updatedAt: string; createdAt: string; - _status?: "draft" | "published"; + _status?: ('draft' | 'published') | null; } export interface ContentsThumbnail { id: string; - contents?: string[] | Content[]; + contents?: (string | Content)[] | null; updatedAt: string; createdAt: string; - url?: string; - filename?: string; - mimeType?: string; - filesize?: number; - width?: number; - height?: number; + url?: string | null; + filename?: string | null; + mimeType?: string | null; + filesize?: number | null; + width?: number | null; + height?: number | null; sizes?: { thumb?: { - url?: string; - width?: number; - height?: number; - mimeType?: string; - filesize?: number; - filename?: string; + url?: string | null; + width?: number | null; + height?: number | null; + mimeType?: string | null; + filesize?: number | null; + filename?: string | null; }; og?: { - url?: string; - width?: number; - height?: number; - mimeType?: string; - filesize?: number; - filename?: string; + url?: string | null; + width?: number | null; + height?: number | null; + mimeType?: string | null; + filesize?: number | null; + filename?: string | null; }; medium?: { - url?: string; - width?: number; - height?: number; - mimeType?: string; - filesize?: number; - filename?: string; - }; - }; -} -export interface Recorder { - id: string; - username: string; - avatar?: string | RecordersThumbnail; - languages?: string[] | Language[]; - biographies?: RecorderBiographies; - role?: ("Admin" | "Recorder" | "Api")[]; - anonymize: boolean; - email: string; - resetPasswordToken?: string; - resetPasswordExpiration?: string; - salt?: string; - hash?: string; - loginAttempts?: number; - lockUntil?: string; - password?: string; -} -export interface RecordersThumbnail { - id: string; - recorder?: string | Recorder; - updatedAt: string; - createdAt: string; - url?: string; - filename?: string; - mimeType?: string; - filesize?: number; - width?: number; - height?: number; - sizes?: { - thumb?: { - url?: string; - width?: number; - height?: number; - mimeType?: string; - filesize?: number; - filename?: string; - }; - square?: { - url?: string; - width?: number; - height?: number; - mimeType?: string; - filesize?: number; - filename?: string; + url?: string | null; + width?: number | null; + height?: number | null; + mimeType?: string | null; + filesize?: number | null; + filename?: string | null; }; }; } export interface ContentsFolder { id: string; slug: string; - translations?: { - language: string | Language; - name: string; - id?: string; - }[]; - subfolders?: string[] | ContentsFolder[]; - contents?: string[] | Content[]; + translations?: + | { + language: string | Language; + name: string; + id?: string | null; + }[] + | null; + subfolders?: (string | ContentsFolder)[] | null; + contents?: (string | Content)[] | null; } export interface Post { id: string; slug: string; - thumbnail?: string | PostThumbnail; - authors: - | { - relationTo: "recorders"; - value: string; - }[] - | { - relationTo: "recorders"; - value: Recorder; - }[]; - categories?: - | { - relationTo: "keys"; - value: string; - }[] - | { - relationTo: "keys"; - value: Key; - }[]; + thumbnail?: string | PostThumbnail | null; + authors: (string | Recorder)[]; + categories?: (string | Key)[] | null; translations: { language: string | Language; sourceLanguage: string | Language; title: string; - summary?: { - [k: string]: unknown; - }[]; - content?: { - [k: string]: unknown; - }[]; - translators?: string[] | Recorder[]; - proofreaders?: string[] | Recorder[]; - id?: string; + summary?: + | { + [k: string]: unknown; + }[] + | null; + content?: + | { + [k: string]: unknown; + }[] + | null; + translators?: (string | Recorder)[] | null; + proofreaders?: (string | Recorder)[] | null; + id?: string | null; }[]; publishedDate: string; - hidden?: boolean; + hidden?: boolean | null; updatedBy: string | Recorder; updatedAt: string; createdAt: string; - _status?: "draft" | "published"; + _status?: ('draft' | 'published') | null; } export interface PostThumbnail { id: string; - posts?: string[] | Post[]; + posts?: (string | Post)[] | null; updatedAt: string; createdAt: string; - url?: string; - filename?: string; - mimeType?: string; - filesize?: number; - width?: number; - height?: number; + url?: string | null; + filename?: string | null; + mimeType?: string | null; + filesize?: number | null; + width?: number | null; + height?: number | null; sizes?: { thumb?: { - url?: string; - width?: number; - height?: number; - mimeType?: string; - filesize?: number; - filename?: string; + url?: string | null; + width?: number | null; + height?: number | null; + mimeType?: string | null; + filesize?: number | null; + filename?: string | null; }; og?: { - url?: string; - width?: number; - height?: number; - mimeType?: string; - filesize?: number; - filename?: string; + url?: string | null; + width?: number | null; + height?: number | null; + mimeType?: string | null; + filesize?: number | null; + filename?: string | null; }; medium?: { - url?: string; - width?: number; - height?: number; - mimeType?: string; - filesize?: number; - filename?: string; + url?: string | null; + width?: number | null; + height?: number | null; + mimeType?: string | null; + filesize?: number | null; + filename?: string | null; }; }; } export interface ChronologyItem { id: string; - name?: string; + name?: string | null; date: { year: number; - month?: number; - day?: number; + month?: number | null; + day?: number | null; }; events: { - source?: - | { - relationTo: "contents"; - value: string | Content; - } - | { - relationTo: "library-items"; - value: string | LibraryItem; - }; translations: { language: string | Language; sourceLanguage: string | Language; - title?: string; - description?: { - [k: string]: unknown; - }[]; - notes?: { - [k: string]: unknown; - }[]; - transcribers?: string[] | Recorder[]; - translators?: string[] | Recorder[]; - proofreaders?: string[] | Recorder[]; - id?: string; + title?: string | null; + description?: + | { + [k: string]: unknown; + }[] + | null; + notes?: + | { + [k: string]: unknown; + }[] + | null; + transcribers?: (string | Recorder)[] | null; + translators?: (string | Recorder)[] | null; + proofreaders?: (string | Recorder)[] | null; + id?: string | null; }[]; - id?: string; + id?: string | null; }[]; updatedBy: string | Recorder; updatedAt: string; createdAt: string; - _status?: "draft" | "published"; + _status?: ('draft' | 'published') | null; } export interface ChronologyEra { id: string; slug: string; startingYear: number; endingYear: number; - translations?: { - language: string | Language; - title: string; - description?: { - [k: string]: unknown; - }[]; - id?: string; - }[]; - events?: string[] | ChronologyItem[]; + translations?: + | { + language: string | Language; + title: string; + description?: + | { + [k: string]: unknown; + }[] + | null; + id?: string | null; + }[] + | null; + events?: (string | ChronologyItem)[] | null; updatedAt: string; createdAt: string; } export interface Weapon { id: string; slug: string; - thumbnail?: string | WeaponsThumbnail; + thumbnail?: string | WeaponsThumbnail | null; type: string | Key; - group?: string | WeaponsGroup; + group?: (string | null) | WeaponsGroup; appearances: { - categories: string[] | Key[]; + categories: (string | Key)[]; translations: { language: string | Language; sourceLanguage: string | Language; name: string; - description?: { - [k: string]: unknown; - }[]; - level1?: { - [k: string]: unknown; - }[]; - level2?: { - [k: string]: unknown; - }[]; - level3?: { - [k: string]: unknown; - }[]; - level4?: { - [k: string]: unknown; - }[]; - transcribers?: string[] | Recorder[]; - translators?: string[] | Recorder[]; - proofreaders?: string[] | Recorder[]; - id?: string; + description?: + | { + [k: string]: unknown; + }[] + | null; + level1?: + | { + [k: string]: unknown; + }[] + | null; + level2?: + | { + [k: string]: unknown; + }[] + | null; + level3?: + | { + [k: string]: unknown; + }[] + | null; + level4?: + | { + [k: string]: unknown; + }[] + | null; + transcribers?: (string | Recorder)[] | null; + translators?: (string | Recorder)[] | null; + proofreaders?: (string | Recorder)[] | null; + id?: string | null; }[]; - id?: string; + id?: string | null; }[]; updatedBy: string | Recorder; updatedAt: string; createdAt: string; - _status?: "draft" | "published"; + _status?: ('draft' | 'published') | null; } export interface WeaponsThumbnail { id: string; - weapon?: string | Weapon; + weapon?: (string | null) | Weapon; updatedAt: string; createdAt: string; - url?: string; - filename?: string; - mimeType?: string; - filesize?: number; - width?: number; - height?: number; + url?: string | null; + filename?: string | null; + mimeType?: string | null; + filesize?: number | null; + width?: number | null; + height?: number | null; sizes?: { thumb?: { - url?: string; - width?: number; - height?: number; - mimeType?: string; - filesize?: number; - filename?: string; + url?: string | null; + width?: number | null; + height?: number | null; + mimeType?: string | null; + filesize?: number | null; + filename?: string | null; }; og?: { - url?: string; - width?: number; - height?: number; - mimeType?: string; - filesize?: number; - filename?: string; + url?: string | null; + width?: number | null; + height?: number | null; + mimeType?: string | null; + filesize?: number | null; + filename?: string | null; }; small?: { - url?: string; - width?: number; - height?: number; - mimeType?: string; - filesize?: number; - filename?: string; + url?: string | null; + width?: number | null; + height?: number | null; + mimeType?: string | null; + filesize?: number | null; + filename?: string | null; }; medium?: { - url?: string; - width?: number; - height?: number; - mimeType?: string; - filesize?: number; - filename?: string; + url?: string | null; + width?: number | null; + height?: number | null; + mimeType?: string | null; + filesize?: number | null; + filename?: string | null; }; }; } export interface WeaponsGroup { id: string; slug: string; - translations?: { - language: string | Language; - name: string; - id?: string; - }[]; - weapons?: string[] | Weapon[]; + translations?: + | { + language: string | Language; + name: string; + id?: string | null; + }[] + | null; + weapons?: (string | Weapon)[] | null; } export interface Note { id: string; @@ -705,27 +750,27 @@ export interface Video { id: string; uid: string; gone: boolean; - source: "YouTube" | "NicoNico" | "Tumblr"; + source: 'YouTube' | 'NicoNico' | 'Tumblr'; title: string; - description?: string; - likes?: number; - views?: number; + description?: string | null; + likes?: number | null; + views?: number | null; publishedDate: string; - channel?: string | VideosChannel; + channel?: (string | null) | VideosChannel; } export interface VideosChannel { id: string; uid: string; title: string; - subscribers?: number; + subscribers?: number | null; } export interface PayloadPreference { id: string; user: { - relationTo: "recorders"; + relationTo: 'recorders'; value: string | Recorder; }; - key?: string; + key?: string | null; value?: | { [k: string]: unknown; @@ -740,12 +785,13 @@ export interface PayloadPreference { } export interface PayloadMigration { id: string; - name?: string; - batch?: number; + name?: string | null; + batch?: number | null; updatedAt: string; createdAt: string; } -declare module "payload" { + +declare module 'payload' { export interface GeneratedTypes extends Config {} -} +} \ No newline at end of file diff --git a/src/utils/versionedCollectionConfig.ts b/src/utils/versionedCollectionConfig.ts index 568e325..407155c 100644 --- a/src/utils/versionedCollectionConfig.ts +++ b/src/utils/versionedCollectionConfig.ts @@ -26,7 +26,7 @@ export const buildVersionedCollectionConfig = ({ }: BuildVersionedCollectionConfig): CollectionConfig => ({ ...otherParams, timestamps: true, - versions: { drafts: { autosave: { interval: 2000 } } }, + versions: { drafts: { autosave: false } }, hooks: { ...otherHooks, beforeChange: [...(beforeChange ?? []), beforeChangeUpdatedBy],