From 766698cb3a33c2b3f2689157d75245f36b82a0df Mon Sep 17 00:00:00 2001 From: Pranav Raj S Date: Sun, 28 Jan 2024 23:41:42 -0800 Subject: [PATCH] chore: Upgrade @june-so/analytics-next, js-cookie to the latest version (#8799) This is a small change, upgrading 2 packages to the latest version. getJSON is removed from the latest version, I've added a patch for the same across the codebase. fixes: https://linear.app/chatwoot/issue/CW-3035/upgrade-dependencies --- app/javascript/dashboard/api/auth.js | 5 +- .../store/modules/specs/auth/actions.spec.js | 6 +- app/javascript/v3/helpers/AuthHelper.js | 2 +- .../v3/helpers/specs/RouteHelper.spec.js | 6 +- package.json | 4 +- yarn.lock | 90 +++++++++++-------- 6 files changed, 63 insertions(+), 50 deletions(-) diff --git a/app/javascript/dashboard/api/auth.js b/app/javascript/dashboard/api/auth.js index 48e7d7085..229e4f309 100644 --- a/app/javascript/dashboard/api/auth.js +++ b/app/javascript/dashboard/api/auth.js @@ -29,11 +29,12 @@ export default { return fetchPromise; }, hasAuthCookie() { - return !!Cookies.getJSON('cw_d_session_info'); + return !!Cookies.get('cw_d_session_info'); }, getAuthData() { if (this.hasAuthCookie()) { - return Cookies.getJSON('cw_d_session_info'); + const savedAuthInfo = Cookies.get('cw_d_session_info'); + return JSON.parse(savedAuthInfo || '{}'); } return false; }, diff --git a/app/javascript/dashboard/store/modules/specs/auth/actions.spec.js b/app/javascript/dashboard/store/modules/specs/auth/actions.spec.js index c933333be..59ef88f4c 100644 --- a/app/javascript/dashboard/store/modules/specs/auth/actions.spec.js +++ b/app/javascript/dashboard/store/modules/specs/auth/actions.spec.js @@ -12,7 +12,7 @@ jest.mock('../../../utils/api', () => ({ getHeaderExpiry: jest.fn(), })); jest.mock('js-cookie', () => ({ - getJSON: jest.fn(), + get: jest.fn(), })); const commit = jest.fn(); @@ -155,14 +155,14 @@ describe('#actions', () => { describe('#setUser', () => { it('sends correct actions if user is logged in', async () => { - Cookies.getJSON.mockImplementation(() => true); + Cookies.get.mockImplementation(() => true); actions.setUser({ commit, dispatch }); expect(commit.mock.calls).toEqual([]); expect(dispatch.mock.calls).toEqual([['validityCheck']]); }); it('sends correct actions if user is not logged in', async () => { - Cookies.getJSON.mockImplementation(() => false); + Cookies.get.mockImplementation(() => false); actions.setUser({ commit, dispatch }); expect(commit.mock.calls).toEqual([ [types.default.CLEAR_USER], diff --git a/app/javascript/v3/helpers/AuthHelper.js b/app/javascript/v3/helpers/AuthHelper.js index 1eaea34e6..70df55331 100644 --- a/app/javascript/v3/helpers/AuthHelper.js +++ b/app/javascript/v3/helpers/AuthHelper.js @@ -3,7 +3,7 @@ import { DEFAULT_REDIRECT_URL } from 'dashboard/constants/globals'; import { frontendURL } from 'dashboard/helper/URLHelper'; export const hasAuthCookie = () => { - return !!Cookies.getJSON('cw_d_session_info'); + return !!Cookies.get('cw_d_session_info'); }; const getSSOAccountPath = ({ ssoAccountId, user }) => { diff --git a/app/javascript/v3/helpers/specs/RouteHelper.spec.js b/app/javascript/v3/helpers/specs/RouteHelper.spec.js index 9c699a44f..8481a8ff4 100644 --- a/app/javascript/v3/helpers/specs/RouteHelper.spec.js +++ b/app/javascript/v3/helpers/specs/RouteHelper.spec.js @@ -10,10 +10,10 @@ jest.mock('dashboard/store/utils/api', () => ({ jest.mock('../CommonHelper', () => ({ replaceRouteWithReload: jest.fn() })); jest.mock('js-cookie', () => ({ - getJSON: jest.fn(), + get: jest.fn(), })); -Cookies.getJSON.mockReturnValueOnce(true).mockReturnValue(false); +Cookies.get.mockReturnValueOnce(true).mockReturnValue(false); describe('#validateRouteAccess', () => { it('reset cookies and continues to the login page if the SSO parameters are present', () => { validateRouteAccess( @@ -40,7 +40,7 @@ describe('#validateRouteAccess', () => { }); it('redirects to dashboard if auth cookie is present', () => { - Cookies.getJSON.mockImplementation(() => true); + Cookies.get.mockImplementation(() => true); validateRouteAccess({ name: 'login' }, next); expect(clearBrowserSessionCookies).not.toHaveBeenCalled(); expect(replaceRouteWithReload).toHaveBeenCalledWith('/app/'); diff --git a/package.json b/package.json index a2e381244..3213922e8 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "@chatwoot/prosemirror-schema": "1.0.5", "@chatwoot/utils": "^0.0.21", "@hcaptcha/vue-hcaptcha": "^0.3.2", - "@june-so/analytics-next": "^1.36.5", + "@june-so/analytics-next": "^2.0.0", "@radix-ui/colors": "^1.0.1", "@rails/actioncable": "6.1.3", "@rails/ujs": "^7.0.3-1", @@ -60,7 +60,7 @@ "highlight.js": "~10.4.1", "idb": "^7.1.1", "ionicons": "~2.0.1", - "js-cookie": "^2.2.1", + "js-cookie": "^3.0.5", "libphonenumber-js": "^1.10.24", "logrocket": "^3.0.1", "logrocket-vuex": "^0.0.3", diff --git a/yarn.lock b/yarn.lock index f07f2ba62..1ab16149d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3854,21 +3854,22 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" -"@june-so/analytics-next@^1.36.5": - version "1.36.5" - resolved "https://registry.yarnpkg.com/@june-so/analytics-next/-/analytics-next-1.36.5.tgz#030ba5a7f8fa232597185cdb706e40b7036ca7f8" - integrity sha512-r2sp4VDngeX/ItQrlgmdKpmghg3OmPvhnTOKJ1huaHbFM2uPELpfnMRRngUVzbgbMoMeTf8QtgQVMjnUsl7G1A== +"@june-so/analytics-next@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@june-so/analytics-next/-/analytics-next-2.0.0.tgz#979035ce812e768370d409c90b541ef238a3daa8" + integrity sha512-7uFP94JLD7mP4qLyOwn5HBs+CC8VlevOkiGd1CIYqPSjSRmbCOI+MVcJNlTAcpyNvMi9iUnWZ3jGVO5177Di4A== dependencies: "@lukeed/uuid" "^2.0.0" + "@segment/analytics-core" "1.2.2" "@segment/analytics.js-video-plugins" "^0.2.1" - "@segment/facade" "3.4.7" - "@segment/tsub" "^0.1.9" - dset "^3.0.0" - encoding "^0.1.13" - js-cookie "^2.2.1" - node-fetch "^2.6.1" + "@segment/facade" "^3.4.9" + "@segment/tsub" "1.0.1" + dset "^3.1.2" + js-cookie "3.0.1" + node-fetch "^2.6.7" spark-md5 "^3.0.1" - tslib "^2.1.0" + tslib "^2.4.1" + typescript "^4.9.5" unfetch "^4.1.0" "@lit-labs/ssr-dom-shim@^1.0.0", "@lit-labs/ssr-dom-shim@^1.1.0": @@ -4068,6 +4069,15 @@ resolved "https://registry.yarnpkg.com/@scmmishra/pico-search/-/pico-search-0.5.1.tgz#fe10a5615259623bff0095ad9af26e15d84379cb" integrity sha512-OKyoGy9f0Y47khEpgP3eLw2aKujJe/ndAE0IbovpsVh210GCmECtl8DLYKL+3abcorX3+e6K8S3eFs2HdH8Ksw== +"@segment/analytics-core@1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@segment/analytics-core/-/analytics-core-1.2.2.tgz#46b1465181e089bd75890d37c68c58de36fa6c44" + integrity sha512-zVWSDcyh7Rp32xL5v2fuEk2yZxxy+JA93vF1L3EF9XAYLSra/uEHJEswOWieXSdDHVRHes7APORp136usFE/tw== + dependencies: + "@lukeed/uuid" "^2.0.0" + dset "^3.1.2" + tslib "^2.4.1" + "@segment/analytics.js-video-plugins@^0.2.1": version "0.2.1" resolved "https://registry.yarnpkg.com/@segment/analytics.js-video-plugins/-/analytics.js-video-plugins-0.2.1.tgz#3596fa3887dcd9df5978dc566edf4a0aea2a9b1e" @@ -4075,14 +4085,13 @@ dependencies: unfetch "^3.1.1" -"@segment/facade@3.4.7": - version "3.4.7" - resolved "https://registry.yarnpkg.com/@segment/facade/-/facade-3.4.7.tgz#27e469189d45d5a2806d16571722e6b00d81429a" - integrity sha512-Tj4aJsdmR9cl7xm7BT0NF9kYOnbIJ/3DdC1yOiLnjQRbHcnOq7WWkMDug/JCSEPF2loxGhG/oTeZybR3hpG3MA== +"@segment/facade@^3.4.9": + version "3.4.10" + resolved "https://registry.yarnpkg.com/@segment/facade/-/facade-3.4.10.tgz#118fab29cf2250d3128f9b2a16d6ec76f86e3710" + integrity sha512-xVQBbB/lNvk/u8+ey0kC/+g8pT3l0gCT8O2y9Z+StMMn3KAFAQ9w8xfgef67tJybktOKKU7pQGRPolRM1i1pdA== dependencies: "@segment/isodate-traverse" "^1.1.1" inherits "^2.0.4" - klona "^2.0.5" new-date "^1.0.3" obj-case "0.2.1" @@ -4098,10 +4107,10 @@ resolved "https://registry.yarnpkg.com/@segment/isodate/-/isodate-1.0.3.tgz#f44e8202d5edd277ce822785239474b2c9411d4a" integrity sha512-BtanDuvJqnACFkeeYje7pWULVv8RgZaqKHWwGFnL/g/TH/CcZjkIVTfGDp/MAxmilYHUkrX70SqwnYSTNEaN7A== -"@segment/tsub@^0.1.9": - version "0.1.12" - resolved "https://registry.yarnpkg.com/@segment/tsub/-/tsub-0.1.12.tgz#1c301a8b81e5dbda54eb0435ae808fbe65553f23" - integrity sha512-35JB0+HuMZrn7mus/s4yOHAcuid+MzaOYxV8YAogTR4Z7AsHwn/Zn/y9XdoHp2kKdn54s6jO4IaO826v0j7qmw== +"@segment/tsub@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@segment/tsub/-/tsub-1.0.1.tgz#4d7fad9eb84b354eec559020da7408fac3046b33" + integrity sha512-rUpvlj/rRfOolk5rjwyrsbl0qzGLsaYgFNEiOSrwrWDryDPq1ZGdo+3Eb+E8+EC0yZOAO4F1DjJfLtaSifpx7w== dependencies: "@stdlib/math-base-special-ldexp" "^0.0.5" dlv "^1.1.3" @@ -10205,11 +10214,16 @@ dotenv@^8.0.0: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.6.0.tgz#061af664d19f7f4d8fc6e4ff9b584ce237adcb8b" integrity sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g== -dset@^3.0.0, dset@^3.1.1: +dset@^3.1.1: version "3.1.2" resolved "https://registry.yarnpkg.com/dset/-/dset-3.1.2.tgz#89c436ca6450398396dc6538ea00abc0c54cd45a" integrity sha512-g/M9sqy3oHe477Ar4voQxWtaPIFw1jTdKZuomOjhCcBx9nHUNn0pu6NopuFFrTh/TRZIKEj+76vLWFu9BNKk+Q== +dset@^3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/dset/-/dset-3.1.3.tgz#c194147f159841148e8e34ca41f638556d9542d2" + integrity sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ== + duplexify@^3.4.2, duplexify@^3.6.0: version "3.7.1" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" @@ -10311,13 +10325,6 @@ encodeurl@~1.0.2: resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== -encoding@^0.1.13: - version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" - end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -12392,7 +12399,7 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@0.6.3, iconv-lite@^0.6.2: +iconv-lite@0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== @@ -13787,10 +13794,15 @@ js-beautify@^1.6.12: mkdirp "^1.0.4" nopt "^5.0.0" -js-cookie@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-2.2.1.tgz#69e106dc5d5806894562902aa5baec3744e9b2b8" - integrity sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ== +js-cookie@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-3.0.1.tgz#9e39b4c6c2f56563708d7d31f6f5f21873a92414" + integrity sha512-+0rgsUXZu4ncpPxRL+lNEptWMOWl9etvPHc/koSRp6MPwpRYAhmk0dUG00J4bxVV3r9uUzfo24wW0knS07SKSw== + +js-cookie@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/js-cookie/-/js-cookie-3.0.5.tgz#0b7e2fd0c01552c58ba86e0841f94dc2557dcdbc" + integrity sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw== js-string-escape@^1.0.1: version "1.0.1" @@ -14046,11 +14058,6 @@ klona@^2.0.4: resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0" integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA== -klona@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.5.tgz#d166574d90076395d9963aa7a928fabb8d76afbc" - integrity sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ== - language-subtag-registry@~0.3.2: version "0.3.21" resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz#04ac218bea46f04cb039084602c6da9e788dd45a" @@ -19807,7 +19814,7 @@ tslib@^2.1.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== -tslib@^2.5.0, tslib@^2.6.0: +tslib@^2.4.1, tslib@^2.5.0, tslib@^2.6.0: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== @@ -19937,6 +19944,11 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= +typescript@^4.9.5: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + typeson-registry@^1.0.0-alpha.20: version "1.0.0-alpha.39" resolved "https://registry.yarnpkg.com/typeson-registry/-/typeson-registry-1.0.0-alpha.39.tgz#9e0f5aabd5eebfcffd65a796487541196f4b1211"