diff --git a/packages/theme/components/CartSidebar.vue b/packages/theme/components/CartSidebar.vue index 8cfbae88c..de0ce24f7 100644 --- a/packages/theme/components/CartSidebar.vue +++ b/packages/theme/components/CartSidebar.vue @@ -283,7 +283,7 @@ import { useContext, onMounted, } from '@nuxtjs/composition-api'; -import _debounce from 'lodash.debounce'; +import { debounce } from 'lodash-es'; import { cartGetters } from '~/getters'; import { useUiState, @@ -388,7 +388,7 @@ export default defineComponent({ title: 'Product removed', }); }; - const delayedUpdateItemQty = _debounce( + const delayedUpdateItemQty = debounce( (params) => updateItemQty(params), 1000, ); diff --git a/packages/theme/components/Header/SearchBar/SearchBar.vue b/packages/theme/components/Header/SearchBar/SearchBar.vue index efb3b0603..7f94d33da 100644 --- a/packages/theme/components/Header/SearchBar/SearchBar.vue +++ b/packages/theme/components/Header/SearchBar/SearchBar.vue @@ -53,7 +53,7 @@ import { SfButton, SfSearchBar } from '@storefront-ui/vue'; import { defineComponent, ref, watch, useRoute, } from '@nuxtjs/composition-api'; -import debounce from 'lodash.debounce'; +import { debounce } from 'lodash-es'; import { clickOutside } from '~/utilities/directives/click-outside/click-outside-directive'; import SvgImage from '~/components/General/SvgImage.vue'; import { useProduct } from '~/modules/catalog/product/composables/useProduct'; diff --git a/packages/theme/helpers/integrationPlugin/_proxyUtils.ts b/packages/theme/helpers/integrationPlugin/_proxyUtils.ts index c33fcace8..7e147b4d0 100644 --- a/packages/theme/helpers/integrationPlugin/_proxyUtils.ts +++ b/packages/theme/helpers/integrationPlugin/_proxyUtils.ts @@ -1,6 +1,6 @@ import { IncomingMessage } from 'node:http'; import { Context as NuxtContext } from '@nuxt/types'; -import merge from 'lodash.merge'; +import { merge } from 'lodash-es'; export type ApiClientMethod = (...args: any) => Promise; diff --git a/packages/theme/jest.config.js b/packages/theme/jest.config.js index ee617d53e..35b25dda5 100644 --- a/packages/theme/jest.config.js +++ b/packages/theme/jest.config.js @@ -40,7 +40,7 @@ module.exports = { setupFilesAfterEnv: ['/jest-setup.js'], transformIgnorePatterns: [ - 'node_modules/(?!(@storefront-ui)|vee-validate/dist/rules|nouislider)', + 'node_modules/(?!(@storefront-ui)|vee-validate/dist/rules|nouislider|lodash-es)', ], testMatch: ['/**/__tests__/**/*spec.[jt]s?(x)'], diff --git a/packages/theme/nuxt.config.js b/packages/theme/nuxt.config.js index 58efe69ef..5e6a74f0c 100755 --- a/packages/theme/nuxt.config.js +++ b/packages/theme/nuxt.config.js @@ -207,6 +207,7 @@ export default () => { ], transpile: [ 'vee-validate', + 'lodash-es', /^@storefront-ui/, ], }, diff --git a/packages/theme/package.json b/packages/theme/package.json index b53f6cc4d..1ac9af4fc 100644 --- a/packages/theme/package.json +++ b/packages/theme/package.json @@ -49,9 +49,7 @@ "graphql-request": "4.1.0", "is-https": "^4.0.0", "isomorphic-dompurify": "^0.18.0", - "lodash.debounce": "^4.0.8", - "lodash.merge": "^4.6.2", - "lodash.unescape": "^4.0.1", + "lodash-es": "^4.17.21", "nuxt": "^2.15.8", "nuxt-i18n": "^6.28.0", "omit-deep": "^0.3.0", @@ -70,9 +68,7 @@ "@testing-library/jest-dom": "^5.16.4", "@testing-library/user-event": "^14.2.0", "@testing-library/vue": "^5.8.3", - "@types/lodash.debounce": "^4.0.6", - "@types/lodash.merge": "^4.6.7", - "@types/lodash.unescape": "^4.0.7", + "@types/lodash-es": "^4.17.6", "@vue/test-utils": "^1.3.0", "babel-core": "7.0.0-bridge.0", "babel-jest": "^27.4.6", diff --git a/packages/theme/plugins/dompurify.ts b/packages/theme/plugins/dompurify.ts index 3ed6dcf18..f1316e1d3 100644 --- a/packages/theme/plugins/dompurify.ts +++ b/packages/theme/plugins/dompurify.ts @@ -1,4 +1,4 @@ -import _unescape from 'lodash.unescape'; +import { unescape } from 'lodash-es'; import DOMPurify from 'isomorphic-dompurify'; import type { Plugin } from '@nuxt/types'; @@ -9,7 +9,7 @@ declare module 'vue/types/vue' { } const plugin : Plugin = (_, inject) => { - inject('dompurify', (html: string): string => _unescape(DOMPurify.sanitize(html))); + inject('dompurify', (html: string): string => unescape(DOMPurify.sanitize(html))); }; export default plugin; diff --git a/yarn.lock b/yarn.lock index f90846ff6..58e86d1c3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1964,11 +1964,33 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" +"@jridgewell/gen-mapping@^0.3.0": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz#cf92a983c83466b8c0ce9124fadeaf09f7c66ea9" + integrity sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg== + dependencies: + "@jridgewell/set-array" "^1.0.0" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/resolve-uri@^3.0.3": version "3.0.5" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c" integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew== +"@jridgewell/set-array@^1.0.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.1.tgz#36a6acc93987adcf0ba50c66908bd0b70de8afea" + integrity sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ== + +"@jridgewell/source-map@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" + integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/sourcemap-codec@^1.4.10": version "1.4.11" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" @@ -1982,6 +2004,14 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" +"@jridgewell/trace-mapping@^0.3.9": + version "0.3.13" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz#dcfe3e95f224c8fe97a87a5235defec999aa92ea" + integrity sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@lerna/add@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@lerna/add/-/add-4.0.0.tgz#c36f57d132502a57b9e7058d1548b7a565ef183f" @@ -3943,24 +3973,10 @@ resolved "https://registry.yarnpkg.com/@types/less/-/less-3.0.2.tgz#2761d477678c8374cb9897666871662eb1d1115e" integrity sha512-62vfe65cMSzYaWmpmhqCMMNl0khen89w57mByPi1OseGfcV/LV03fO8YVrNj7rFQsRWNJo650WWyh6m7p8vZmA== -"@types/lodash.debounce@^4.0.6": - version "4.0.7" - resolved "https://registry.yarnpkg.com/@types/lodash.debounce/-/lodash.debounce-4.0.7.tgz#0285879defb7cdb156ae633cecd62d5680eded9f" - integrity sha512-X1T4wMZ+gT000M2/91SYj0d/7JfeNZ9PeeOldSNoE/lunLeQXKvkmIumI29IaKMotU/ln/McOIvgzZcQ/3TrSA== - dependencies: - "@types/lodash" "*" - -"@types/lodash.merge@^4.6.7": - version "4.6.7" - resolved "https://registry.yarnpkg.com/@types/lodash.merge/-/lodash.merge-4.6.7.tgz#0af6555dd8bc6568ef73e5e0d820a027362946b1" - integrity sha512-OwxUJ9E50gw3LnAefSHJPHaBLGEKmQBQ7CZe/xflHkyy/wH2zVyEIAKReHvVrrn7zKdF58p16We9kMfh7v0RRQ== - dependencies: - "@types/lodash" "*" - -"@types/lodash.unescape@^4.0.7": - version "4.0.7" - resolved "https://registry.yarnpkg.com/@types/lodash.unescape/-/lodash.unescape-4.0.7.tgz#69f1cab2e755b824151346a44faeaaf93702972b" - integrity sha512-KGxcfHpWcOnLeK5g71YErXL6m947wQC9XfhVjENlCku85C6WxsqNIxwxpqDCpL06rY5ExQiXZH50KgJDFLzc7Q== +"@types/lodash-es@^4.17.6": + version "4.17.6" + resolved "https://registry.yarnpkg.com/@types/lodash-es/-/lodash-es-4.17.6.tgz#c2ed4c8320ffa6f11b43eb89e9eaeec65966a0a0" + integrity sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg== dependencies: "@types/lodash" "*" @@ -13206,11 +13222,6 @@ lodash.templatesettings@^4.0.0: dependencies: lodash._reinterpolate "^3.0.0" -lodash.unescape@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c" - integrity sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw= - lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" @@ -17978,7 +17989,7 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -source-map@^0.7.3, source-map@~0.7.2: +source-map@^0.7.3: version "0.7.3" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== @@ -18725,13 +18736,13 @@ terser@^4.1.2, terser@^4.6.13, terser@^4.6.3: source-map-support "~0.5.12" terser@^5.3.4, terser@^5.7.2: - version "5.11.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.11.0.tgz#2da5506c02e12cd8799947f30ce9c5b760be000f" - integrity sha512-uCA9DLanzzWSsN1UirKwylhhRz3aKPInlfmpGfw8VN6jHsAtu8HJtIpeeHHK23rxnE/cDc+yvmq5wqkIC6Kn0A== + version "5.14.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.14.0.tgz#eefeec9af5153f55798180ee2617f390bdd285e2" + integrity sha512-JC6qfIEkPBd9j1SMO3Pfn+A6w2kQV54tv+ABQLgZr7dA3k/DL/OBoYSWxzVpZev3J+bUHXfr55L8Mox7AaNo6g== dependencies: + "@jridgewell/source-map" "^0.3.2" acorn "^8.5.0" commander "^2.20.0" - source-map "~0.7.2" source-map-support "~0.5.20" test-exclude@^6.0.0: @@ -18973,6 +18984,20 @@ ts-jest@^27.1.3: semver "7.x" yargs-parser "20.x" +ts-jest@^27.1.5: + version "27.1.5" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.1.5.tgz#0ddf1b163fbaae3d5b7504a1e65c914a95cff297" + integrity sha512-Xv6jBQPoBEvBq/5i2TeSG9tt/nqkbpcurrEG1b+2yfBrcJelOZF9Ml6dmyMh7bcW9JyFbRYpR5rxROSlBLTZHA== + dependencies: + bs-logger "0.x" + fast-json-stable-stringify "2.x" + jest-util "^27.0.0" + json5 "2.x" + lodash.memoize "4.x" + make-error "1.x" + semver "7.x" + yargs-parser "20.x" + ts-loader@^8.0.17, ts-loader@^8.1.0: version "8.3.0" resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-8.3.0.tgz#83360496d6f8004fab35825279132c93412edf33"