From 021bd7279965d61501cd31267bf6fdd8d80e1360 Mon Sep 17 00:00:00 2001 From: Daniel Lautzenheiser Date: Fri, 24 Feb 2023 08:09:06 -0500 Subject: [PATCH] fix: i18n duplicate fields (#580) --- packages/core/src/lib/i18n.ts | 17 +- .../src/reducers/__tests__/entryDraft.spec.ts | 114 ++++++++++++ packages/core/src/reducers/entryDraft.ts | 2 +- yarn.lock | 174 +++++++++--------- 4 files changed, 212 insertions(+), 95 deletions(-) diff --git a/packages/core/src/lib/i18n.ts b/packages/core/src/lib/i18n.ts index 86f18d55..f7b16d16 100644 --- a/packages/core/src/lib/i18n.ts +++ b/packages/core/src/lib/i18n.ts @@ -383,16 +383,16 @@ export function duplicateI18nFields( field: Field, locales: string[], defaultLocale: string, - fieldPath: string[] = [field.name], + fieldPath: string, ) { - const value = get(entryDraft, ['entry', 'data', ...fieldPath]); + const value = get(entryDraft, ['entry', 'data', ...fieldPath.split('.')]); if (field.i18n === I18N_FIELD.DUPLICATE) { locales .filter(l => l !== defaultLocale) .forEach(l => { entryDraft = set( entryDraft, - ['entry', ...getDataPath(l, defaultLocale), ...fieldPath].join('.'), + ['entry', ...getDataPath(l, defaultLocale), fieldPath].join('.'), value, ); }); @@ -400,10 +400,13 @@ export function duplicateI18nFields( if ('fields' in field && !Array.isArray(value)) { field.fields?.forEach(field => { - entryDraft = duplicateI18nFields(entryDraft, field, locales, defaultLocale, [ - ...fieldPath, - field.name, - ]); + entryDraft = duplicateI18nFields( + entryDraft, + field, + locales, + defaultLocale, + `${fieldPath}.${field.name}`, + ); }); } diff --git a/packages/core/src/reducers/__tests__/entryDraft.spec.ts b/packages/core/src/reducers/__tests__/entryDraft.spec.ts index 1d524535..27103504 100644 --- a/packages/core/src/reducers/__tests__/entryDraft.spec.ts +++ b/packages/core/src/reducers/__tests__/entryDraft.spec.ts @@ -2,6 +2,7 @@ import { DRAFT_CHANGE_FIELD, DRAFT_CREATE_EMPTY } from '@staticcms/core/constant import mockEntry from '@staticcms/core/lib/test-utils/mock-data/MockEntry'; import entryDraftReducer from '../entryDraft'; +import type { I18nSettings, StringOrTextField } from '@staticcms/core/interface'; import type { EntryDraftState } from '../entryDraft'; describe('entryDraft', () => { @@ -72,6 +73,119 @@ describe('entryDraft', () => { path1: ['newValue1', 'newValue2Updated', 'newValue3'], }); }); + + describe('i18n', () => { + it('duplicate values to other locales', () => { + const state = entryDraftReducer(startState, { + type: DRAFT_CHANGE_FIELD, + payload: { + path: 'path1.path2', + field: { + widget: 'string', + name: 'stringInput', + i18n: 'duplicate', + }, + value: 'newValue', + i18n: { + locales: ['en', 'fr', 'es'], + defaultLocale: 'en', + currentLocale: 'en', + }, + }, + }); + + expect(state.entry?.data).toEqual({ + path1: { + path2: 'newValue', + }, + }); + + expect(state.entry?.i18n).toEqual({ + fr: { + data: { + path1: { + path2: 'newValue', + }, + }, + }, + es: { + data: { + path1: { + path2: 'newValue', + }, + }, + }, + }); + }); + + it('should duplicate values to other locales for singleton list', () => { + const field: StringOrTextField = { + widget: 'string', + name: 'stringInput', + i18n: 'duplicate', + }; + + const i18n: I18nSettings = { + locales: ['en', 'fr', 'es'], + defaultLocale: 'en', + currentLocale: 'en', + }; + + let state = entryDraftReducer(startState, { + type: DRAFT_CHANGE_FIELD, + payload: { + path: 'path1', + field, + value: ['newValue1', 'newValue2', 'newValue3'], + i18n, + }, + }); + + expect(state.entry?.data).toEqual({ + path1: ['newValue1', 'newValue2', 'newValue3'], + }); + + expect(state.entry?.i18n).toEqual({ + fr: { + data: { + path1: ['newValue1', 'newValue2', 'newValue3'], + }, + }, + es: { + data: { + path1: ['newValue1', 'newValue2', 'newValue3'], + }, + }, + }); + + state = entryDraftReducer(state, { + type: DRAFT_CHANGE_FIELD, + payload: { + path: 'path1.1', + field, + value: 'newValue2Updated', + i18n, + }, + }); + + expect(state.entry?.data).toEqual({ + path1: ['newValue1', 'newValue2Updated', 'newValue3'], + }); + + expect(state.entry?.i18n).toEqual({ + fr: { + data: { + path1: ['newValue1', 'newValue2Updated', 'newValue3'], + }, + }, + es: { + data: { + path1: ['newValue1', 'newValue2Updated', 'newValue3'], + }, + }, + }); + }); + }); }); }); }); diff --git a/packages/core/src/reducers/entryDraft.ts b/packages/core/src/reducers/entryDraft.ts index 877f17c6..76b5e443 100644 --- a/packages/core/src/reducers/entryDraft.ts +++ b/packages/core/src/reducers/entryDraft.ts @@ -163,7 +163,7 @@ function entryDraftReducer( }; if (i18n) { - newState = duplicateI18nFields(newState, field, i18n.locales, i18n.defaultLocale); + newState = duplicateI18nFields(newState, field, i18n.locales, i18n.defaultLocale, path); } const newData = get(newState.entry, dataPath) ?? {}; diff --git a/yarn.lock b/yarn.lock index b2816ba8..1e4e6765 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2778,89 +2778,89 @@ react-transition-group "^4.4.5" rifm "^0.12.1" -"@next/bundle-analyzer@13.2.0": - version "13.2.0" - resolved "https://registry.yarnpkg.com/@next/bundle-analyzer/-/bundle-analyzer-13.2.0.tgz#f7fa232a03a7fac7e5bbaf4f69a569b7337b7e3d" - integrity sha512-ygZLD/hEMQ1ea0/Crp66AZ6PDHCBffgkO410X5d165c+Nlgnn6hf2M+gOML6GndDm+Gh0yWR7LLL/VIVpF/oyg== +"@next/bundle-analyzer@13.2.1": + version "13.2.1" + resolved "https://registry.yarnpkg.com/@next/bundle-analyzer/-/bundle-analyzer-13.2.1.tgz#a80bf24adef2380233c9e3cd9f5c77849c851b36" + integrity sha512-ex5CyyqWfBaDE0eguyhWlWZAsg2n9zN1c/YK4FNui7C/cKnjib5FcZeVNeKU9PfSYXDDT9onIhWkhsMNQwIGVg== dependencies: webpack-bundle-analyzer "4.7.0" -"@next/env@13.2.0": - version "13.2.0" - resolved "https://registry.yarnpkg.com/@next/env/-/env-13.2.0.tgz#1a597a885ce11860446c88e1098fd517dc0e84b1" - integrity sha512-yv9oaRVa+AxFa27uQOVecS931NrE+GcQSqcL2HaRxL8NunStLtPiyNm/VixvdzfiWLabMz4dXvbXfwCNaECzcw== +"@next/env@13.2.1": + version "13.2.1" + resolved "https://registry.yarnpkg.com/@next/env/-/env-13.2.1.tgz#082d42cfc0c794e9185d7b4133d71440ba2e795d" + integrity sha512-Hq+6QZ6kgmloCg8Kgrix+4F0HtvLqVK3FZAnlAoS0eonaDemHe1Km4kwjSWRE3JNpJNcKxFHF+jsZrYo0SxWoQ== -"@next/eslint-plugin-next@13.2.0": - version "13.2.0" - resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-13.2.0.tgz#fa7f229ab870ae27dbd6aec0669291095c7c41ea" - integrity sha512-/UW29MPgX5P1J1AVIj9g1TCv4BKzUTBB54wgtEp7X15pEKerACGYv9iny44KGZxSJDizWD2+Zaw6+E7do4kwRA== +"@next/eslint-plugin-next@13.2.1": + version "13.2.1" + resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-13.2.1.tgz#58dea4d53c0adfc59c10195f51eb8d3575fce414" + integrity sha512-r0i5rcO6SMAZtqiGarUVMr3k256X0R0j6pEkKg4PxqUW+hG0qgMxRVAJsuoRG5OBFkCOlSfWZJ0mP9fQdCcyNg== dependencies: glob "7.1.7" -"@next/swc-android-arm-eabi@13.2.0": - version "13.2.0" - resolved "https://registry.yarnpkg.com/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-13.2.0.tgz#241d007fdb2f06f70ab21d5a333e08a29de9cd7f" - integrity sha512-VMetUwBWtDBGzNiOkhiWTP+99ZYW5NVRpIGlUsldEtY8IQIqleaUgW9iamsO0kDSjhWNdCQCB+xu5HcCvmDTww== +"@next/swc-android-arm-eabi@13.2.1": + version "13.2.1" + resolved "https://registry.yarnpkg.com/@next/swc-android-arm-eabi/-/swc-android-arm-eabi-13.2.1.tgz#67f2580fbbe05ee006220688972c5e3a555fc741" + integrity sha512-Yua7mUpEd1wzIT6Jjl3dpRizIfGp9NR4F2xeRuQv+ae+SDI1Em2WyM9m46UL+oeW5GpMiEHoaBagr47RScZFmQ== -"@next/swc-android-arm64@13.2.0": - version "13.2.0" - resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-13.2.0.tgz#924e79197f094a12ac3409b6a416f84c2f74341d" - integrity sha512-fAiP54Om3fSj5aKntxEvW5fWzyMUzLzjFrHuUt5jBnTRWM4QikhLy547OZDoxycyk4GoQVHmNMSA3hILsrV/dQ== +"@next/swc-android-arm64@13.2.1": + version "13.2.1" + resolved "https://registry.yarnpkg.com/@next/swc-android-arm64/-/swc-android-arm64-13.2.1.tgz#460a02b69eb23bb5f402266bcea9cadae59415c1" + integrity sha512-Bifcr2f6VwInOdq1uH/9lp8fH7Nf7XGkIx4XceVd32LPJqG2c6FZU8ZRBvTdhxzXVpt5TPtuXhOP4Ij9UPqsVw== -"@next/swc-darwin-arm64@13.2.0": - version "13.2.0" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.2.0.tgz#bfd3dfe90903b3bbf81f617f2b1d4f8b9e20e8aa" - integrity sha512-F4zbvPnq3zCTqyyM6WN8ledazzJx3OrxIdc2ewnqnfk6tjBZ/aq1M27GhEfylGjZG1KvbtJCxUqi7dR/6R94bA== +"@next/swc-darwin-arm64@13.2.1": + version "13.2.1" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.2.1.tgz#8b8530ff417802027471aee2419f78a58a863ccb" + integrity sha512-gvqm+fGMYxAkwBapH0Vvng5yrb6HTkIvZfY4oEdwwYrwuLdkjqnJygCMgpNqIFmAHSXgtlWxfYv1VC8sjN81Kw== -"@next/swc-darwin-x64@13.2.0": - version "13.2.0" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-13.2.0.tgz#3d159bb2889f093d173546a6e5edd6260df7e156" - integrity sha512-Y9+fB7TLAAnkCZQXWjwJg5bi1pT5NuNkI+HoKYp26U1J0SxW5vZWFGc31WFmmHIz3wA0zlaQfRa4mF7cpZL5yw== +"@next/swc-darwin-x64@13.2.1": + version "13.2.1" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-13.2.1.tgz#80aebb3329a1e4568a28de1ee177780b3d50330c" + integrity sha512-HGqVqmaZWj6zomqOZUVbO5NhlABL0iIaxTmd0O5B0MoMa5zpDGoaHSG+fxgcWMXcGcxmUNchv1NfNOYiTKoHOg== -"@next/swc-freebsd-x64@13.2.0": - version "13.2.0" - resolved "https://registry.yarnpkg.com/@next/swc-freebsd-x64/-/swc-freebsd-x64-13.2.0.tgz#33877ad933e1b3d7776dfb060f4e3b55f675523e" - integrity sha512-b9bCLlfznbV6e6Vg9wKYZJs7Uz8z/Py9105MYq95a3JlHiI3e/fvBpm1c7fe5QlvWJlqyNav6Clyu1W+lDk+IQ== +"@next/swc-freebsd-x64@13.2.1": + version "13.2.1" + resolved "https://registry.yarnpkg.com/@next/swc-freebsd-x64/-/swc-freebsd-x64-13.2.1.tgz#250ea2ab7e1734f22d11c677c463fab9ac33a516" + integrity sha512-N/a4JarAq+E+g+9K2ywJUmDIgU2xs2nA+BBldH0oq4zYJMRiUhL0iaN9G4e72VmGOJ61L/3W6VN8RIUOwTLoqQ== -"@next/swc-linux-arm-gnueabihf@13.2.0": - version "13.2.0" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-13.2.0.tgz#31b81ff368e5337019f858c4a0d7ae7f80310728" - integrity sha512-jY/2JjDVVyktzRtMclAIVLgOxk5Ut9NKu8kKMCPdKMf9/ila37UpRfIh2fOXtRhv8AK7Lq/iSI/v2vjopZxZgQ== +"@next/swc-linux-arm-gnueabihf@13.2.1": + version "13.2.1" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm-gnueabihf/-/swc-linux-arm-gnueabihf-13.2.1.tgz#fe6bb29ed348a5f8ecae3740df22a8d8130c474a" + integrity sha512-WaFoerF/eRbhbE57TaIGJXbQAERADZ/RZ45u6qox9beb5xnWsyYgzX+WuN7Tkhyvga0/aMuVYFzS9CEay7D+bw== -"@next/swc-linux-arm64-gnu@13.2.0": - version "13.2.0" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.2.0.tgz#e46bd73d1ccc38be46009b88dc87df88d8c44fa1" - integrity sha512-EKjWU3/lSBhOwPQRQLbySUnATnXygCjGd8ag3rP6d7kTIhfuPO4pY+DYW+wHOt5qB1ULNRmW0sXZ/ZKnQrVszw== +"@next/swc-linux-arm64-gnu@13.2.1": + version "13.2.1" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.2.1.tgz#4781b927fc5e421f3cea2b29e5d38e5e4837b198" + integrity sha512-R+Jhc1/RJTnncE9fkePboHDNOCm1WJ8daanWbjKhfPySMyeniKYRwGn5SLYW3S8YlRS0QVdZaaszDSZWgUcsmA== -"@next/swc-linux-arm64-musl@13.2.0": - version "13.2.0" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.2.0.tgz#54a4f0cc1431f3e4e24a5e017e473a5fc761b33b" - integrity sha512-T5R9r23Docwo6PYZRzndeFB5WUN3+smMbyk25K50MAngCiSydr82/YfAetcp7Ov7Shp4a8xXP9DHDIsBas6wbQ== +"@next/swc-linux-arm64-musl@13.2.1": + version "13.2.1" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.2.1.tgz#c2ba0a121b0255ba62450916bc70e6d0e26cbc98" + integrity sha512-oI1UfZPidGAVddlL2eOTmfsuKV9EaT1aktIzVIxIAgxzQSdwsV371gU3G55ggkurzfdlgF3GThFePDWF0d8dmw== -"@next/swc-linux-x64-gnu@13.2.0": - version "13.2.0" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.2.0.tgz#1c17a6121846decac2d701a040649f8f764ac671" - integrity sha512-FeXTc2KFvUSnTJmkpNMKoBHmNA1Ujr3QdfcKnVm/gXWqK+rfuEhAiRNOo+6mPcQ0noEge1j8Ai+W1LTbdDwPZQ== +"@next/swc-linux-x64-gnu@13.2.1": + version "13.2.1" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.2.1.tgz#573c220f8b087e5d131d1fba58d3e1a670b220ad" + integrity sha512-PCygPwrQmS+7WUuAWWioWMZCzZm4PG91lfRxToLDg7yIm/3YfAw5N2EK2TaM9pzlWdvHQAqRMX/oLvv027xUiA== -"@next/swc-linux-x64-musl@13.2.0": - version "13.2.0" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.2.0.tgz#a4f39cfeb19123196a2ebc2061e60897b29ffa3f" - integrity sha512-7Y0XMUzWDWI94pxC0xWGMWrgTFKHu/myc+GTNVEwvLtI9WA0brKqZrL1tCQW/+t6J+5XqS7w+AHbViaF+muu1A== +"@next/swc-linux-x64-musl@13.2.1": + version "13.2.1" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.2.1.tgz#950b5bb920b322ca7b447efbd12a9c7a10c3a642" + integrity sha512-sUAKxo7CFZYGHNxheGh9nIBElLYBM6md/liEGfOTwh/xna4/GTTcmkGWkF7PdnvaYNgcPIQgHIMYiAa6yBKAVw== -"@next/swc-win32-arm64-msvc@13.2.0": - version "13.2.0" - resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.2.0.tgz#d21ef0d0c2757cee9b1d723aafb9e02ca25852eb" - integrity sha512-NM5h2gEMe8EtvOeRU3vRM83tq1xo6Qvhuz0xJem/176SAMxbqzAz4LLP3l9VyUI3SIzGyiztvF/1c0jqeq7UEA== +"@next/swc-win32-arm64-msvc@13.2.1": + version "13.2.1" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.2.1.tgz#dbff3c4f5a3812a7059dac05804148a0f98682db" + integrity sha512-qDmyEjDBpl/vBXxuOOKKWmPQOcARcZIMach1s7kjzaien0SySut/PHRlj56sosa81Wt4hTGhfhZ1R7g1n7+B8w== -"@next/swc-win32-ia32-msvc@13.2.0": - version "13.2.0" - resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.2.0.tgz#529852721e3f00afb9385640cbac1a899342c6ba" - integrity sha512-G7YEJZX9wkcUaBOvXQSCF9Wb2sqP8hhsmFXF6po7M3llw4b+2ut2DXLf+UMdthOdUK0u+Ijhy5F7SbW9HOn2ig== +"@next/swc-win32-ia32-msvc@13.2.1": + version "13.2.1" + resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.2.1.tgz#7d2c17be7b8d9963984f5c15cc2588127101f620" + integrity sha512-2joqFQ81ZYPg6DcikIzQn3DgjKglNhPAozx6dL5sCNkr1CPMD0YIkJgT3CnYyMHQ04Qi3Npv0XX3MD6LJO8OCA== -"@next/swc-win32-x64-msvc@13.2.0": - version "13.2.0" - resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.2.0.tgz#49bc50b1865d20b29892a415fcbaab84217112a5" - integrity sha512-QTAjSuPevnZnlHfC4600+4NvxRuPar6tWdYbPum9vnk3OIH1xu9YLK+2ArPGFd0bB2K8AoY2SIMbs1dhK0GjQQ== +"@next/swc-win32-x64-msvc@13.2.1": + version "13.2.1" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.2.1.tgz#09713c6a925461f414e89422851326d1625bd4d2" + integrity sha512-r3+0fSaIZT6N237iMzwUhfNwjhAFvXjqB+4iuW+wcpxW+LHm1g/IoxN8eSRcb8jPItC86JxjAxpke0QL97qd6g== "@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3": version "2.1.8-no-fsevents.3" @@ -8185,12 +8185,12 @@ escodegen@^2.0.0: optionalDependencies: source-map "~0.6.1" -eslint-config-next@13.2.0: - version "13.2.0" - resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-13.2.0.tgz#0f303b1f73eaa1a1eb72583bf2ffe784c430fb99" - integrity sha512-nZfIQG5m82xwgGO8EjakbF5qjnXADcveGxOxlg5J1jZ9MQlESvqqRrvl4+KHE+JKRgFD2h0q5xwDDWfFbtZmMA== +eslint-config-next@13.2.1: + version "13.2.1" + resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-13.2.1.tgz#644fb3496b832bc1e32f2c57cce1ec3eeb7bb7a1" + integrity sha512-2GAx7EjSiCzJN6H2L/v1kbYrNiwQxzkyjy6eWSjuhAKt+P6d3nVNHGy9mON8ZcYd72w/M8kyMjm4UB9cvijgrw== dependencies: - "@next/eslint-plugin-next" "13.2.0" + "@next/eslint-plugin-next" "13.2.1" "@rushstack/eslint-patch" "^1.1.3" "@typescript-eslint/parser" "^5.42.0" eslint-import-resolver-node "^0.3.6" @@ -13300,30 +13300,30 @@ next-tick@^1.1.0: resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb" integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== -next@13.2.0: - version "13.2.0" - resolved "https://registry.yarnpkg.com/next/-/next-13.2.0.tgz#100b2d1dca120a3460c767ccdad80fc8e2463e31" - integrity sha512-vhByvKHedsaMwNTwXKzK4IMmNp7XI7vN4etcGUoIpLrIuDfoYA3bS0ImS4X9F6lKzopG5aVp7a1CjuzF2NGkvA== +next@13.2.1: + version "13.2.1" + resolved "https://registry.yarnpkg.com/next/-/next-13.2.1.tgz#34d823f518632b36379863228ed9f861c335b9c0" + integrity sha512-qhgJlDtG0xidNViJUPeQHLGJJoT4zDj/El7fP3D3OzpxJDUfxsm16cK4WTMyvSX1ciIfAq05u+0HqFAa+VJ+Hg== dependencies: - "@next/env" "13.2.0" + "@next/env" "13.2.1" "@swc/helpers" "0.4.14" caniuse-lite "^1.0.30001406" postcss "8.4.14" styled-jsx "5.1.1" optionalDependencies: - "@next/swc-android-arm-eabi" "13.2.0" - "@next/swc-android-arm64" "13.2.0" - "@next/swc-darwin-arm64" "13.2.0" - "@next/swc-darwin-x64" "13.2.0" - "@next/swc-freebsd-x64" "13.2.0" - "@next/swc-linux-arm-gnueabihf" "13.2.0" - "@next/swc-linux-arm64-gnu" "13.2.0" - "@next/swc-linux-arm64-musl" "13.2.0" - "@next/swc-linux-x64-gnu" "13.2.0" - "@next/swc-linux-x64-musl" "13.2.0" - "@next/swc-win32-arm64-msvc" "13.2.0" - "@next/swc-win32-ia32-msvc" "13.2.0" - "@next/swc-win32-x64-msvc" "13.2.0" + "@next/swc-android-arm-eabi" "13.2.1" + "@next/swc-android-arm64" "13.2.1" + "@next/swc-darwin-arm64" "13.2.1" + "@next/swc-darwin-x64" "13.2.1" + "@next/swc-freebsd-x64" "13.2.1" + "@next/swc-linux-arm-gnueabihf" "13.2.1" + "@next/swc-linux-arm64-gnu" "13.2.1" + "@next/swc-linux-arm64-musl" "13.2.1" + "@next/swc-linux-x64-gnu" "13.2.1" + "@next/swc-linux-x64-musl" "13.2.1" + "@next/swc-win32-arm64-msvc" "13.2.1" + "@next/swc-win32-ia32-msvc" "13.2.1" + "@next/swc-win32-x64-msvc" "13.2.1" nice-try@^1.0.4: version "1.0.5"