diff --git a/.devcontainer/compose.yml b/.devcontainer/compose.yml index f1c0a57a4f2..731b4a90052 100644 --- a/.devcontainer/compose.yml +++ b/.devcontainer/compose.yml @@ -7,6 +7,7 @@ services: - node_modules:/workspace/growi/node_modules - buildcache_app:/workspace/growi/apps/app/.next - ../../growi-docker-compose:/workspace/growi-docker-compose:delegated + - ../../share:/workspace/share:delegated tty: true mongo: diff --git a/CHANGELOG.md b/CHANGELOG.md index 64dfe3b1728..c09eb3cca6b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,26 @@ # Changelog -## [Unreleased](https://github.com/weseek/growi/compare/v7.1.5...HEAD) +## [Unreleased](https://github.com/weseek/growi/compare/v7.1.6...HEAD) *Please do not manually update this file. We've automated the process.* +## [v7.1.6](https://github.com/weseek/growi/compare/v7.1.5...v7.1.6) - 2024-12-26 + +### 💎 Features + +* feat(ai): Save file to VectorStore in HTML format (#9462) @miya + +### 🐛 Bug Fixes + +* fix: remark-lsx pagination (#9513) @miya +* fix: Spelling miss of external_link in i18n (#9456) @reiji-h +* fix: Wider copy to clipboard area (#9450) @Ryosei-Fukushima +* fix: Error when creating pages with deep hierarchy (#9487) @reiji-h + +### 🧰 Maintenance + +* ci(deps): bump next from 14.2.13 to 14.2.15 (#9501) @dependabot + ## [v7.1.5](https://github.com/weseek/growi/compare/v7.1.4...v7.1.5) - 2024-12-13 ### 🚀 Improvement diff --git a/apps/app/bin/swagger-jsdoc/definition-apiv3.js b/apps/app/bin/swagger-jsdoc/definition-apiv3.js index 097d706d94c..ce5dcc054b8 100644 --- a/apps/app/bin/swagger-jsdoc/definition-apiv3.js +++ b/apps/app/bin/swagger-jsdoc/definition-apiv3.js @@ -81,6 +81,7 @@ module.exports = { 'UserGroups', 'Users Management', 'FullTextSearch Management', + 'Install', ], }, { diff --git a/apps/app/package.json b/apps/app/package.json index 60ddccdaa3a..90fa602ebc5 100644 --- a/apps/app/package.json +++ b/apps/app/package.json @@ -1,6 +1,6 @@ { "name": "@growi/app", - "version": "7.1.6-RC.0", + "version": "7.1.7-RC.0", "license": "MIT", "private": "true", "scripts": { @@ -157,7 +157,7 @@ "multer": "~1.4.0", "multer-autoreap": "^1.0.3", "mustache": "^4.2.0", - "next": "^14.2.15", + "next": "^14.2.21", "next-dynamic-loading-props": "^0.1.1", "next-i18next": "^15.3.1", "next-superjson": "^0.0.4", diff --git a/apps/app/public/static/locales/en_US/admin.json b/apps/app/public/static/locales/en_US/admin.json index 95c61eac8f2..067f26d72d3 100644 --- a/apps/app/public/static/locales/en_US/admin.json +++ b/apps/app/public/static/locales/en_US/admin.json @@ -200,9 +200,9 @@ "id_detail": "Specification of the name of attribute which can identify the user in OIDC claims", "username_detail": "Specification of mappings for username when creating new users", "name_detail": "Specification of mappings for name when creating new users", - "mapping_detail": "Specification of mappings for %s when creating new users", + "mapping_detail": "Specification of mappings for {{target}} when creating new users", "register_1": "Contact to OIDC IdP Administrator", - "register_2": "Register your OIDC App with \"Authorization callback URL\" as %s", + "register_2": "Register your OIDC App with \"Authorization callback URL\" as {{url}}", "register_3": "Copy and paste your ClientID and Client Secret above", "updated_oidc": "Succeeded to update OpenID Connect", "Use discovered URL if empty": "Use discovered URL from \"Issuer Host\" if empty" diff --git a/apps/app/public/static/locales/fr_FR/admin.json b/apps/app/public/static/locales/fr_FR/admin.json index 946e4649d5b..ebd2676da02 100644 --- a/apps/app/public/static/locales/fr_FR/admin.json +++ b/apps/app/public/static/locales/fr_FR/admin.json @@ -200,9 +200,9 @@ "id_detail": "Specification of the name of attribute which can identify the user in OIDC claims", "username_detail": "Spécifications des liaisons username lors de la création de nouveaux utilisateurs", "name_detail": "Spécifications des liaisons name lors de la création de nouveaux utilisateurs", - "mapping_detail": "Spécifications des liaisons pour %s lors de la création de nouveaux utilisateurs", + "mapping_detail": "Spécifications des liaisons pour {{target}} lors de la création de nouveaux utilisateurs", "register_1": "Contacter votre administrateur OIDC", - "register_2": "Configurer l'application OAuth avec l'un des URL de redirection autorisés avec %s", + "register_2": "Configurer l'application OAuth avec l'un des URL de redirection autorisés avec {{url}}", "register_3": "Copier l'ID client et Secret client ci-dessus", "updated_oidc": "Paramètres mis à jour", "Use discovered URL if empty": "Use discovered URL from \"Issuer Host\" if empty" diff --git a/apps/app/public/static/locales/ja_JP/admin.json b/apps/app/public/static/locales/ja_JP/admin.json index 7cb1b518461..ffb0a9599ce 100644 --- a/apps/app/public/static/locales/ja_JP/admin.json +++ b/apps/app/public/static/locales/ja_JP/admin.json @@ -211,7 +211,7 @@ "name_detail": "新規ユーザー名(name)に関連付ける属性", "mapping_detail": "新規ユーザーの{{target}}に関連付ける属性", "register_1": "OIDC IdP Administrator へ接続します。", - "register_2": "OIDCアプリの認証コールバックURLを%sとして登録します。", + "register_2": "OIDCアプリの認証コールバックURLを{{url}}として登録します。", "register_3": "上記のClientIDとClient Secretをコピー&ペーストしてください。", "updated_oidc": "OpenID Connect を更新しました", "Use discovered URL if empty": "データベース側の値が空の場合、\"Issuer Host\"から検出した値を利用します。" diff --git a/apps/app/public/static/locales/zh_CN/admin.json b/apps/app/public/static/locales/zh_CN/admin.json index 9eff7d1f1e7..f83a7030048 100644 --- a/apps/app/public/static/locales/zh_CN/admin.json +++ b/apps/app/public/static/locales/zh_CN/admin.json @@ -209,9 +209,9 @@ "id_detail": "Specification of the name of attribute which can identify the user in OIDC claims", "username_detail": "Specification of mappings for username when creating new users", "name_detail": "Specification of mappings for name when creating new users", - "mapping_detail": "Specification of mappings for %s when creating new users", + "mapping_detail": "Specification of mappings for {{target}} when creating new users", "register_1": "Contact to OIDC IdP Administrator", - "register_2": "Register your OIDC App with \"Authorization callback URL\" as %s", + "register_2": "Register your OIDC App with \"Authorization callback URL\" as {{url}}", "register_3": "Copy and paste your ClientID and Client Secret above", "updated_oidc": "Succeeded to update OpenID Connect", "Use discovered URL if empty": "Use discovered URL from \"Issuer Host\" if empty" diff --git a/apps/app/src/client/components/Admin/Security/OidcSecuritySettingContents.jsx b/apps/app/src/client/components/Admin/Security/OidcSecuritySettingContents.jsx index d1b041abc1c..18dfe343012 100644 --- a/apps/app/src/client/components/Admin/Security/OidcSecuritySettingContents.jsx +++ b/apps/app/src/client/components/Admin/Security/OidcSecuritySettingContents.jsx @@ -455,7 +455,7 @@ class OidcSecurityManagementContents extends React.Component {
  1. {t('security_settings.OAuth.OIDC.register_1')}
  2. -
  3. {t('security_settings.OAuth.OIDC.register_2')}
  4. +
  5. {t('security_settings.OAuth.OIDC.register_3')}
diff --git a/apps/app/src/server/routes/apiv3/installer.ts b/apps/app/src/server/routes/apiv3/installer.ts index b2a3d64eb81..5a64278652a 100644 --- a/apps/app/src/server/routes/apiv3/installer.ts +++ b/apps/app/src/server/routes/apiv3/installer.ts @@ -29,6 +29,48 @@ module.exports = (crowi: Crowi): Router => { const minPasswordLength = configManager.getConfig('crowi', 'app:minPasswordLength'); + /** + * @swagger + * + * /installer: + * post: + * tags: [Install] + * security: [] + * operationId: Install + * summary: /installer + * description: Install GROWI + * requestBody: + * required: true + * content: + * application/json: + * schema: + * type: object + * properties: + * registerForm: + * type: object + * properties: + * name: + * type: string + * username: + * type: string + * email: + * type: string + * password: + * type: string + * app:globalLang: + * type: string + * default: en_US + * responses: + * 200: + * description: import settings params + * content: + * application/json: + * schema: + * properties: + * message: + * type: string + * example: Installation completed (Logged in as an admin user) + */ // eslint-disable-next-line max-len router.post('/', registerRules(minPasswordLength), registerValidation, addActivity, async(req: FormRequest, res: ApiV3Response) => { const appService = crowi.appService; diff --git a/apps/app/src/server/routes/apiv3/invited.ts b/apps/app/src/server/routes/apiv3/invited.ts index 4766f58d927..4a3f185d190 100644 --- a/apps/app/src/server/routes/apiv3/invited.ts +++ b/apps/app/src/server/routes/apiv3/invited.ts @@ -18,6 +18,48 @@ module.exports = (crowi: Crowi): Router => { const applicationInstalled = require('../../middlewares/application-installed')(crowi); const router = express.Router(); + /** + * @swagger + * + * /invited: + * post: + * tags: [Users] + * security: + * - cookieAuth: [] + * operationId: activateInvitedUser + * summary: /invited + * description: Activate invited user + * requestBody: + * required: true + * content: + * application/json: + * schema: + * type: object + * properties: + * invitedForm: + * type: object + * properties: + * username: + * type: string + * description: The username of the invited user. + * name: + * type: string + * description: The name of the invited user. + * password: + * type: string + * description: The password for the invited user. + * responses: + * 200: + * description: User activated successfully + * content: + * application/json: + * schema: + * type: object + * properties: + * redirectTo: + * type: string + * description: URL to redirect after successful activation. + */ router.post('/', applicationInstalled, invitedRules(), invitedValidation, async(req: InvitedFormRequest, res: ApiV3Response) => { if (!req.user) { return res.apiv3({ redirectTo: '/login' }); diff --git a/apps/app/src/server/service/normalize-data/convert-null-to-empty-granted-arrays.ts b/apps/app/src/server/service/normalize-data/convert-null-to-empty-granted-arrays.ts new file mode 100644 index 00000000000..bcd6255b353 --- /dev/null +++ b/apps/app/src/server/service/normalize-data/convert-null-to-empty-granted-arrays.ts @@ -0,0 +1,31 @@ +import type { IPageHasId } from '@growi/core'; +import mongoose from 'mongoose'; + +import { type PageModel } from '~/server/models/page'; + +export const convertNullToEmptyGrantedArrays = async(): Promise => { + const Page = mongoose.model('Page'); + + const requests = [ + { + updateMany: { + // Matches documents where field is null or nonexistent + // https://www.mongodb.com/docs/manual/tutorial/query-for-null-fields/#equality-filter + filter: { grantedUsers: null }, + update: { + $set: { grantedUsers: [] }, + }, + }, + }, + { + updateMany: { + filter: { grantedGroups: null }, + update: { + $set: { grantedGroups: [] }, + }, + }, + }, + ]; + + await Page.bulkWrite(requests); +}; diff --git a/apps/app/src/server/service/normalize-data/index.ts b/apps/app/src/server/service/normalize-data/index.ts index f4647773625..b7901e77356 100644 --- a/apps/app/src/server/service/normalize-data/index.ts +++ b/apps/app/src/server/service/normalize-data/index.ts @@ -1,6 +1,7 @@ import { normalizeExpiredAtForThreadRelations } from '~/features/openai/server/services/normalize-data'; import loggerFactory from '~/utils/logger'; +import { convertNullToEmptyGrantedArrays } from './convert-null-to-empty-granted-arrays'; import { convertRevisionPageIdToObjectId } from './convert-revision-page-id-to-objectid'; import { renameDuplicateRootPages } from './rename-duplicate-root-pages'; @@ -10,6 +11,7 @@ export const normalizeData = async(): Promise => { await renameDuplicateRootPages(); await convertRevisionPageIdToObjectId(); await normalizeExpiredAtForThreadRelations(); + await convertNullToEmptyGrantedArrays(); logger.info('normalizeData has been executed'); return; diff --git a/apps/slackbot-proxy/package.json b/apps/slackbot-proxy/package.json index 8d2c43b29d4..17d274d7a3d 100644 --- a/apps/slackbot-proxy/package.json +++ b/apps/slackbot-proxy/package.json @@ -1,6 +1,6 @@ { "name": "@growi/slackbot-proxy", - "version": "7.1.6-slackbot-proxy.0", + "version": "7.1.7-slackbot-proxy.0", "license": "MIT", "private": "true", "scripts": { diff --git a/package.json b/package.json index 36cba3ba9be..4827275b3e8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "growi", - "version": "7.1.6-RC.0", + "version": "7.1.7-RC.0", "description": "Team collaboration software using markdown", "license": "MIT", "private": "true", diff --git a/packages/presentation/package.json b/packages/presentation/package.json index 11b743236b1..631e14a31f6 100644 --- a/packages/presentation/package.json +++ b/packages/presentation/package.json @@ -42,7 +42,7 @@ "@growi/core": "workspace:^" }, "devDependencies": { - "@marp-team/marp-core": "^3.9.0", + "@marp-team/marp-core": "^3.9.1", "@marp-team/marpit": "^2.6.1", "@types/mdast": "^4.0.4", "@types/reveal.js": "^4.4.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1f509599ab5..ec474d2602f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -74,7 +74,7 @@ importers: version: 8.41.0 eslint-config-next: specifier: ^12.1.6 - version: 12.1.6(eslint@8.41.0)(next@14.2.15(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6))(typescript@5.0.4) + version: 12.1.6(eslint@8.41.0)(next@14.2.21(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6))(typescript@5.0.4) eslint-config-weseek: specifier: ^2.1.1 version: 2.1.1(@babel/core@7.24.6)(@babel/eslint-parser@7.24.7(@babel/core@7.24.6)(eslint@8.41.0))(@typescript-eslint/eslint-plugin@5.59.7(@typescript-eslint/parser@5.59.7(eslint@8.41.0)(typescript@5.0.4))(eslint@8.41.0)(typescript@5.0.4))(@typescript-eslint/parser@5.59.7(eslint@8.41.0)(typescript@5.0.4))(eslint-import-resolver-typescript@3.2.5(eslint-plugin-import@2.26.0)(eslint@8.41.0))(eslint-plugin-import@2.26.0(@typescript-eslint/parser@5.59.7(eslint@8.41.0)(typescript@5.0.4))(eslint-import-resolver-typescript@3.2.5)(eslint@8.41.0))(eslint-plugin-jsx-a11y@6.5.1(eslint@8.41.0))(eslint-plugin-react-hooks@4.6.0(eslint@8.41.0))(eslint-plugin-react@7.30.1(eslint@8.41.0))(eslint-plugin-vue@7.20.0(eslint@8.41.0))(eslint@8.41.0) @@ -478,20 +478,20 @@ importers: specifier: ^4.2.0 version: 4.2.0 next: - specifier: ^14.2.15 - version: 14.2.15(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6) + specifier: ^14.2.21 + version: 14.2.21(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6) next-dynamic-loading-props: specifier: ^0.1.1 version: 0.1.1(react@18.2.0) next-i18next: specifier: ^15.3.1 - version: 15.3.1(i18next@23.16.5)(next@14.2.15(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6))(react-i18next@15.1.1(i18next@23.16.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0) + version: 15.3.1(i18next@23.16.5)(next@14.2.21(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6))(react-i18next@15.1.1(i18next@23.16.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0) next-superjson: specifier: ^0.0.4 - version: 0.0.4(next@14.2.15(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6))(superjson@1.13.3)(webpack@5.92.1(@swc/core@1.5.25(@swc/helpers@0.5.11))) + version: 0.0.4(next@14.2.21(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6))(superjson@1.13.3)(webpack@5.92.1(@swc/core@1.5.25(@swc/helpers@0.5.11))) next-themes: specifier: ^0.2.1 - version: 0.2.1(next@14.2.15(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 0.2.1(next@14.2.21(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) nocache: specifier: ^4.0.0 version: 4.0.0 @@ -1258,8 +1258,8 @@ importers: version: 18.2.0(react@18.2.0) devDependencies: '@marp-team/marp-core': - specifier: ^3.9.0 - version: 3.9.0 + specifier: ^3.9.1 + version: 3.9.1 '@marp-team/marpit': specifier: ^2.6.1 version: 2.6.1 @@ -2980,8 +2980,8 @@ packages: '@manypkg/get-packages@1.1.3': resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==} - '@marp-team/marp-core@3.9.0': - resolution: {integrity: sha512-gi6nq0rsB1oMA8ReppW4XxmS4fisQiAsD0ZoUgLeG4h6SWatveCAA7fZyxnXfwA2UC8pNb7ktPqYdRsxvuwntA==} + '@marp-team/marp-core@3.9.1': + resolution: {integrity: sha512-/GOecdgt0HmvFnC/C2flxPfUVgLMNE8lP8UAvjlFfWyeB9hyNBP5k1N2Wnx0mXPU8UHpDzYdySDxIR+ki2p8Fw==} engines: {node: ^12.20 || ^14.13.1 || >=16} '@marp-team/marpit-svg-polyfill@2.1.0': @@ -3025,8 +3025,8 @@ packages: '@next/env@14.2.13': resolution: {integrity: sha512-s3lh6K8cbW1h5Nga7NNeXrbe0+2jIIYK9YaA9T7IufDWnZpozdFUp6Hf0d5rNWUKu4fEuSX2rCKlGjCrtylfDw==} - '@next/env@14.2.15': - resolution: {integrity: sha512-S1qaj25Wru2dUpcIZMjxeMVSwkt8BK4dmWHHiBuRstcIyOsMapqT4A4jSB6onvqeygkSSmOkyny9VVx8JIGamQ==} + '@next/env@14.2.21': + resolution: {integrity: sha512-lXcwcJd5oR01tggjWJ6SrNNYFGuOOMB9c251wUNkjCpkoXOPkDeF/15c3mnVlBqrW4JJXb2kVxDFhC4GduJt2A==} '@next/eslint-plugin-next@12.1.6': resolution: {integrity: sha512-yNUtJ90NEiYFT6TJnNyofKMPYqirKDwpahcbxBgSIuABwYOdkGwzos1ZkYD51Qf0diYwpQZBeVqElTk7Q2WNqw==} @@ -3037,8 +3037,8 @@ packages: cpu: [arm64] os: [darwin] - '@next/swc-darwin-arm64@14.2.15': - resolution: {integrity: sha512-Rvh7KU9hOUBnZ9TJ28n2Oa7dD9cvDBKua9IKx7cfQQ0GoYUwg9ig31O2oMwH3wm+pE3IkAQ67ZobPfEgurPZIA==} + '@next/swc-darwin-arm64@14.2.21': + resolution: {integrity: sha512-HwEjcKsXtvszXz5q5Z7wCtrHeTTDSTgAbocz45PHMUjU3fBYInfvhR+ZhavDRUYLonm53aHZbB09QtJVJj8T7g==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] @@ -3049,8 +3049,8 @@ packages: cpu: [x64] os: [darwin] - '@next/swc-darwin-x64@14.2.15': - resolution: {integrity: sha512-5TGyjFcf8ampZP3e+FyCax5zFVHi+Oe7sZyaKOngsqyaNEpOgkKB3sqmymkZfowy3ufGA/tUgDPPxpQx931lHg==} + '@next/swc-darwin-x64@14.2.21': + resolution: {integrity: sha512-TSAA2ROgNzm4FhKbTbyJOBrsREOMVdDIltZ6aZiKvCi/v0UwFmwigBGeqXDA97TFMpR3LNNpw52CbVelkoQBxA==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] @@ -3061,8 +3061,8 @@ packages: cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-gnu@14.2.15': - resolution: {integrity: sha512-3Bwv4oc08ONiQ3FiOLKT72Q+ndEMyLNsc/D3qnLMbtUYTQAmkx9E/JRu0DBpHxNddBmNT5hxz1mYBphJ3mfrrw==} + '@next/swc-linux-arm64-gnu@14.2.21': + resolution: {integrity: sha512-0Dqjn0pEUz3JG+AImpnMMW/m8hRtl1GQCNbO66V1yp6RswSTiKmnHf3pTX6xMdJYSemf3O4Q9ykiL0jymu0TuA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -3073,8 +3073,8 @@ packages: cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@14.2.15': - resolution: {integrity: sha512-k5xf/tg1FBv/M4CMd8S+JL3uV9BnnRmoe7F+GWC3DxkTCD9aewFRH1s5rJ1zkzDa+Do4zyN8qD0N8c84Hu96FQ==} + '@next/swc-linux-arm64-musl@14.2.21': + resolution: {integrity: sha512-Ggfw5qnMXldscVntwnjfaQs5GbBbjioV4B4loP+bjqNEb42fzZlAaK+ldL0jm2CTJga9LynBMhekNfV8W4+HBw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] @@ -3085,8 +3085,8 @@ packages: cpu: [x64] os: [linux] - '@next/swc-linux-x64-gnu@14.2.15': - resolution: {integrity: sha512-kE6q38hbrRbKEkkVn62reLXhThLRh6/TvgSP56GkFNhU22TbIrQDEMrO7j0IcQHcew2wfykq8lZyHFabz0oBrA==} + '@next/swc-linux-x64-gnu@14.2.21': + resolution: {integrity: sha512-uokj0lubN1WoSa5KKdThVPRffGyiWlm/vCc/cMkWOQHw69Qt0X1o3b2PyLLx8ANqlefILZh1EdfLRz9gVpG6tg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -3097,8 +3097,8 @@ packages: cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@14.2.15': - resolution: {integrity: sha512-PZ5YE9ouy/IdO7QVJeIcyLn/Rc4ml9M2G4y3kCM9MNf1YKvFY4heg3pVa/jQbMro+tP6yc4G2o9LjAz1zxD7tQ==} + '@next/swc-linux-x64-musl@14.2.21': + resolution: {integrity: sha512-iAEBPzWNbciah4+0yI4s7Pce6BIoxTQ0AGCkxn/UBuzJFkYyJt71MadYQkjPqCQCJAFQ26sYh7MOKdU+VQFgPg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] @@ -3109,8 +3109,8 @@ packages: cpu: [arm64] os: [win32] - '@next/swc-win32-arm64-msvc@14.2.15': - resolution: {integrity: sha512-2raR16703kBvYEQD9HNLyb0/394yfqzmIeyp2nDzcPV4yPjqNUG3ohX6jX00WryXz6s1FXpVhsCo3i+g4RUX+g==} + '@next/swc-win32-arm64-msvc@14.2.21': + resolution: {integrity: sha512-plykgB3vL2hB4Z32W3ktsfqyuyGAPxqwiyrAi2Mr8LlEUhNn9VgkiAl5hODSBpzIfWweX3er1f5uNpGDygfQVQ==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] @@ -3121,8 +3121,8 @@ packages: cpu: [ia32] os: [win32] - '@next/swc-win32-ia32-msvc@14.2.15': - resolution: {integrity: sha512-fyTE8cklgkyR1p03kJa5zXEaZ9El+kDNM5A+66+8evQS5e/6v0Gk28LqA0Jet8gKSOyP+OTm/tJHzMlGdQerdQ==} + '@next/swc-win32-ia32-msvc@14.2.21': + resolution: {integrity: sha512-w5bacz4Vxqrh06BjWgua3Yf7EMDb8iMcVhNrNx8KnJXt8t+Uu0Zg4JHLDL/T7DkTCEEfKXO/Er1fcfWxn2xfPA==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] @@ -3133,8 +3133,8 @@ packages: cpu: [x64] os: [win32] - '@next/swc-win32-x64-msvc@14.2.15': - resolution: {integrity: sha512-SzqGbsLsP9OwKNUG9nekShTwhj6JSB9ZLMWQ8g1gG6hdE5gQLncbnbymrwy2yVmH9nikSLYRYxYMFu78Ggp7/g==} + '@next/swc-win32-x64-msvc@14.2.21': + resolution: {integrity: sha512-sT6+llIkzpsexGYZq8cjjthRyRGe5cJVhqh12FmlbxHqna6zsDDK8UNaV7g41T6atFHCJUPeLb3uyAwrBwy0NA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -6397,6 +6397,7 @@ packages: encoding-down@6.3.0: resolution: {integrity: sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw==} engines: {node: '>=6'} + deprecated: Superseded by abstract-level (https://github.com/Level/community#faq) encoding@0.1.13: resolution: {integrity: sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==} @@ -8266,14 +8267,17 @@ packages: level-codec@9.0.2: resolution: {integrity: sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==} engines: {node: '>=6'} + deprecated: Superseded by level-transcoder (https://github.com/Level/community#faq) level-concat-iterator@2.0.1: resolution: {integrity: sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==} engines: {node: '>=6'} + deprecated: Superseded by abstract-level (https://github.com/Level/community#faq) level-errors@2.0.1: resolution: {integrity: sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==} engines: {node: '>=6'} + deprecated: Superseded by abstract-level (https://github.com/Level/community#faq) level-iterator-stream@4.0.2: resolution: {integrity: sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==} @@ -8286,6 +8290,7 @@ packages: level-packager@5.1.1: resolution: {integrity: sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ==} engines: {node: '>=6'} + deprecated: Superseded by abstract-level (https://github.com/Level/community#faq) level-supports@1.0.1: resolution: {integrity: sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==} @@ -9182,8 +9187,8 @@ packages: sass: optional: true - next@14.2.15: - resolution: {integrity: sha512-h9ctmOokpoDphRvMGnwOJAedT6zKhwqyZML9mDtspgf4Rh3Pn7UTYKqePNoDvhsWBAO5GoPNYshnAUGIazVGmw==} + next@14.2.21: + resolution: {integrity: sha512-rZmLwucLHr3/zfDMYbJXbw0ZeoBpirxkXuvsJbk7UPorvPYZhP7vq7aHbKnU7dQNCYIimRrbB2pp3xmf+wsYUg==} engines: {node: '>=18.17.0'} hasBin: true peerDependencies: @@ -14830,7 +14835,7 @@ snapshots: globby: 11.1.0 read-yaml-file: 1.1.0 - '@marp-team/marp-core@3.9.0': + '@marp-team/marp-core@3.9.1': dependencies: '@marp-team/marpit': 2.6.1 '@marp-team/marpit-svg-polyfill': 2.1.0(@marp-team/marpit@2.6.1) @@ -14914,7 +14919,7 @@ snapshots: '@next/env@14.2.13': {} - '@next/env@14.2.15': {} + '@next/env@14.2.21': {} '@next/eslint-plugin-next@12.1.6': dependencies: @@ -14923,55 +14928,55 @@ snapshots: '@next/swc-darwin-arm64@14.2.13': optional: true - '@next/swc-darwin-arm64@14.2.15': + '@next/swc-darwin-arm64@14.2.21': optional: true '@next/swc-darwin-x64@14.2.13': optional: true - '@next/swc-darwin-x64@14.2.15': + '@next/swc-darwin-x64@14.2.21': optional: true '@next/swc-linux-arm64-gnu@14.2.13': optional: true - '@next/swc-linux-arm64-gnu@14.2.15': + '@next/swc-linux-arm64-gnu@14.2.21': optional: true '@next/swc-linux-arm64-musl@14.2.13': optional: true - '@next/swc-linux-arm64-musl@14.2.15': + '@next/swc-linux-arm64-musl@14.2.21': optional: true '@next/swc-linux-x64-gnu@14.2.13': optional: true - '@next/swc-linux-x64-gnu@14.2.15': + '@next/swc-linux-x64-gnu@14.2.21': optional: true '@next/swc-linux-x64-musl@14.2.13': optional: true - '@next/swc-linux-x64-musl@14.2.15': + '@next/swc-linux-x64-musl@14.2.21': optional: true '@next/swc-win32-arm64-msvc@14.2.13': optional: true - '@next/swc-win32-arm64-msvc@14.2.15': + '@next/swc-win32-arm64-msvc@14.2.21': optional: true '@next/swc-win32-ia32-msvc@14.2.13': optional: true - '@next/swc-win32-ia32-msvc@14.2.15': + '@next/swc-win32-ia32-msvc@14.2.21': optional: true '@next/swc-win32-x64-msvc@14.2.13': optional: true - '@next/swc-win32-x64-msvc@14.2.15': + '@next/swc-win32-x64-msvc@14.2.21': optional: true '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': @@ -17309,12 +17314,12 @@ snapshots: '@types/babel__core': 7.20.5 '@types/babel__traverse': 7.0.7 - babel-plugin-superjson-next@0.4.5(next@14.2.15(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6))(superjson@1.13.3): + babel-plugin-superjson-next@0.4.5(next@14.2.21(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6))(superjson@1.13.3): dependencies: '@babel/helper-module-imports': 7.24.6 '@babel/types': 7.25.6 hoist-non-react-statics: 3.3.2 - next: 14.2.15(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6) + next: 14.2.21(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6) superjson: 1.13.3 babel-preset-current-node-syntax@1.0.1(@babel/core@7.24.6): @@ -19011,7 +19016,7 @@ snapshots: object.assign: 4.1.5 object.entries: 1.1.5 - eslint-config-next@12.1.6(eslint@8.41.0)(next@14.2.15(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6))(typescript@5.0.4): + eslint-config-next@12.1.6(eslint@8.41.0)(next@14.2.21(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6))(typescript@5.0.4): dependencies: '@next/eslint-plugin-next': 12.1.6 '@rushstack/eslint-patch': 1.1.3 @@ -19023,7 +19028,7 @@ snapshots: eslint-plugin-jsx-a11y: 6.5.1(eslint@8.41.0) eslint-plugin-react: 7.30.1(eslint@8.41.0) eslint-plugin-react-hooks: 4.6.0(eslint@8.41.0) - next: 14.2.15(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6) + next: 14.2.21(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6) optionalDependencies: typescript: 5.0.4 transitivePeerDependencies: @@ -22457,7 +22462,7 @@ snapshots: dependencies: react: 18.2.0 - next-i18next@15.3.1(i18next@23.16.5)(next@14.2.15(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6))(react-i18next@15.1.1(i18next@23.16.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0): + next-i18next@15.3.1(i18next@23.16.5)(next@14.2.21(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6))(react-i18next@15.1.1(i18next@23.16.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.25.4 '@types/hoist-non-react-statics': 3.3.5 @@ -22465,26 +22470,26 @@ snapshots: hoist-non-react-statics: 3.3.2 i18next: 23.16.5 i18next-fs-backend: 2.3.2 - next: 14.2.15(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6) + next: 14.2.21(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6) react: 18.2.0 react-i18next: 15.1.1(i18next@23.16.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - next-superjson@0.0.4(next@14.2.15(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6))(superjson@1.13.3)(webpack@5.92.1(@swc/core@1.5.25(@swc/helpers@0.5.11))): + next-superjson@0.0.4(next@14.2.21(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6))(superjson@1.13.3)(webpack@5.92.1(@swc/core@1.5.25(@swc/helpers@0.5.11))): dependencies: '@babel/core': 7.24.6 '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.24.6) '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.6) babel-loader: 8.3.0(@babel/core@7.24.6)(webpack@5.92.1(@swc/core@1.5.25(@swc/helpers@0.5.11))) - babel-plugin-superjson-next: 0.4.5(next@14.2.15(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6))(superjson@1.13.3) - next: 14.2.15(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6) + babel-plugin-superjson-next: 0.4.5(next@14.2.21(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6))(superjson@1.13.3) + next: 14.2.21(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6) transitivePeerDependencies: - superjson - supports-color - webpack - next-themes@0.2.1(next@14.2.15(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + next-themes@0.2.1(next@14.2.21(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6))(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - next: 14.2.15(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6) + next: 14.2.21(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) @@ -22515,9 +22520,9 @@ snapshots: - '@babel/core' - babel-plugin-macros - next@14.2.15(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6): + next@14.2.21(@babel/core@7.24.6)(@playwright/test@1.46.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(sass@1.77.6): dependencies: - '@next/env': 14.2.15 + '@next/env': 14.2.21 '@swc/helpers': 0.5.5 busboy: 1.6.0 caniuse-lite: 1.0.30001680 @@ -22527,15 +22532,15 @@ snapshots: react-dom: 18.2.0(react@18.2.0) styled-jsx: 5.1.1(@babel/core@7.24.6)(react@18.2.0) optionalDependencies: - '@next/swc-darwin-arm64': 14.2.15 - '@next/swc-darwin-x64': 14.2.15 - '@next/swc-linux-arm64-gnu': 14.2.15 - '@next/swc-linux-arm64-musl': 14.2.15 - '@next/swc-linux-x64-gnu': 14.2.15 - '@next/swc-linux-x64-musl': 14.2.15 - '@next/swc-win32-arm64-msvc': 14.2.15 - '@next/swc-win32-ia32-msvc': 14.2.15 - '@next/swc-win32-x64-msvc': 14.2.15 + '@next/swc-darwin-arm64': 14.2.21 + '@next/swc-darwin-x64': 14.2.21 + '@next/swc-linux-arm64-gnu': 14.2.21 + '@next/swc-linux-arm64-musl': 14.2.21 + '@next/swc-linux-x64-gnu': 14.2.21 + '@next/swc-linux-x64-musl': 14.2.21 + '@next/swc-win32-arm64-msvc': 14.2.21 + '@next/swc-win32-ia32-msvc': 14.2.21 + '@next/swc-win32-x64-msvc': 14.2.21 '@playwright/test': 1.46.0 sass: 1.77.6 transitivePeerDependencies: