diff --git a/package-lock.json b/package-lock.json index 5d0ce08..732d5d7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,6 +15,7 @@ "copy-to-clipboard": "^3.3.3", "eventemitter3": "^4.0.7", "javascript-stringify": "^2.1.0", + "lz-string": "^1.4.4", "meriyah": "^4.3.3", "normalize.css": "^8.0.1", "primeicons": "^6.0.1", @@ -4359,6 +4360,14 @@ "node": ">=10" } }, + "node_modules/lz-string": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", + "integrity": "sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==", + "bin": { + "lz-string": "bin/bin.js" + } + }, "node_modules/magic-string": { "version": "0.25.9", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", @@ -9506,6 +9515,11 @@ "yallist": "^4.0.0" } }, + "lz-string": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", + "integrity": "sha512-0ckx7ZHRPqb0oUm8zNr+90mtf9DQB60H1wMCjBtfi62Kl3a7JbHob6gA2bC+xRvZoOL+1hzUK8jeuEIQE8svEQ==" + }, "magic-string": { "version": "0.25.9", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", diff --git a/package.json b/package.json index 8b30bd3..815284d 100644 --- a/package.json +++ b/package.json @@ -13,11 +13,11 @@ "dependencies": { "@codemirror/lang-javascript": "^6.1.1", "@codemirror/theme-one-dark": "^6.1.0", - "@gkucmierz/utils": "^1.16.1", "codemirror": "^6.0.1", "copy-to-clipboard": "^3.3.3", "eventemitter3": "^4.0.7", "javascript-stringify": "^2.1.0", + "lz-string": "^1.4.4", "meriyah": "^4.3.3", "normalize.css": "^8.0.1", "primeicons": "^6.0.1", diff --git a/src/services/codeService.mjs b/src/services/codeService.mjs index 45b760d..cf15900 100644 --- a/src/services/codeService.mjs +++ b/src/services/codeService.mjs @@ -4,8 +4,8 @@ import { STORAGE_KEY_CODE, } from '../app.config'; import EventEmitter from 'eventemitter3'; -import { toBase64Url, fromBase64Url } from '@gkucmierz/utils/src/base64.mjs'; import { APP_URL, SHARE_CODE_ROUTE_NAME } from '../app.config'; +import { compressToEncodedURIComponent, decompressFromEncodedURIComponent } from 'lz-string'; const ee = new EventEmitter(); let code; @@ -25,10 +25,10 @@ const codeService = { ee.emit('change', code); }, setFromUrl(_encoded) { - this.change(fromBase64Url(_encoded)); + this.change(decompressFromEncodedURIComponent(_encoded)); }, codeToUrl(_code = code) { - return [APP_URL, SHARE_CODE_ROUTE_NAME, toBase64Url(_code)].join('/'); + return [APP_URL, SHARE_CODE_ROUTE_NAME, compressToEncodedURIComponent(_code)].join('/'); }, ee, };