chore: update dependencies
diff --git a/package-lock.json b/package-lock.json
index 0792aa6..d2d5025 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -10,15 +10,15 @@
       "dependencies": {
         "@lang/object-visualizer": "^4.2.0",
         "codesandbox": "^2.2.3",
-        "lodash": "^4.17.19",
+        "lodash": "^4.17.21",
         "lz-string": "^1.4.4",
-        "nanoid": "^3.1.31",
-        "prettier": "^2.3.2",
-        "resize-detector": "^0.2.2",
+        "nanoid": "^4.0.0",
+        "prettier": "^2.7.1",
+        "resize-detector": "^0.3.0",
         "scroll-into-view": "^1.14.2",
-        "semver": "^7.3.5",
-        "sucrase": "^3.17.0",
-        "vanilla-lazyload": "^12.5.1",
+        "semver": "^7.3.7",
+        "sucrase": "^3.24.0",
+        "vanilla-lazyload": "^17.8.3",
         "vue-i18n": "^8.18.2",
         "vue-scrollactive": "^0.9.3"
       },
@@ -7054,14 +7054,14 @@
       }
     },
     "node_modules/nanoid": {
-      "version": "3.1.31",
-      "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.31.tgz",
-      "integrity": "sha512-ZivnJm0o9bb13p2Ot5CpgC2rQdzB9Uxm/mFZweqm5eMViqOJe3PV6LU2E30SiLgheesmcPrjquqraoolONSA0A==",
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.0.tgz",
+      "integrity": "sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg==",
       "bin": {
-        "nanoid": "bin/nanoid.cjs"
+        "nanoid": "bin/nanoid.js"
       },
       "engines": {
-        "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+        "node": "^14 || ^16 || >=18"
       }
     },
     "node_modules/napi-build-utils": {
@@ -8150,14 +8150,17 @@
       }
     },
     "node_modules/prettier": {
-      "version": "2.3.2",
-      "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.2.tgz",
-      "integrity": "sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==",
+      "version": "2.7.1",
+      "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz",
+      "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==",
       "bin": {
         "prettier": "bin-prettier.js"
       },
       "engines": {
         "node": ">=10.13.0"
+      },
+      "funding": {
+        "url": "https://github.com/prettier/prettier?sponsor=1"
       }
     },
     "node_modules/process-nextick-args": {
@@ -8544,9 +8547,9 @@
       "dev": true
     },
     "node_modules/resize-detector": {
-      "version": "0.2.2",
-      "resolved": "https://registry.npmjs.org/resize-detector/-/resize-detector-0.2.2.tgz",
-      "integrity": "sha512-X07ADfFqXoyfbx4/PSzr7EBF9e/RwrcS9UoPBMbau11agg5uad39ysMmXFCu0o5C3hhKbs0X/cSl85OwPIpZLQ=="
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/resize-detector/-/resize-detector-0.3.0.tgz",
+      "integrity": "sha512-R/tCuvuOHQ8o2boRP6vgx8hXCCy87H1eY9V5imBYeVNyNVpuL9ciReSccLj2gDcax9+2weXy3bc8Vv+NRXeEvQ=="
     },
     "node_modules/resolve": {
       "version": "1.14.1",
@@ -8796,9 +8799,9 @@
       }
     },
     "node_modules/semver": {
-      "version": "7.3.5",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
-      "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+      "version": "7.3.7",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+      "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
       "dependencies": {
         "lru-cache": "^6.0.0"
       },
@@ -9430,9 +9433,9 @@
       }
     },
     "node_modules/sucrase": {
-      "version": "3.17.0",
-      "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.17.0.tgz",
-      "integrity": "sha512-wtiqaokYRjFSSrv8fQu7pThKTIZSLwiffW+PHQG52hlI8eJO47v1tXbKt6fYb8Z1kCyuCkNH9etpTUebb7g+pA==",
+      "version": "3.24.0",
+      "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.24.0.tgz",
+      "integrity": "sha512-SevqflhW356TKEyWjFHg2e5f3eH+5rzmsMJxrVMDvZIEHh/goYrpzDGA6APEj4ME9MdGm8oNgIzi1eF3c3dDQA==",
       "dependencies": {
         "commander": "^4.0.0",
         "glob": "7.1.6",
@@ -10043,9 +10046,13 @@
       }
     },
     "node_modules/vanilla-lazyload": {
-      "version": "12.5.1",
-      "resolved": "https://registry.npmjs.org/vanilla-lazyload/-/vanilla-lazyload-12.5.1.tgz",
-      "integrity": "sha512-gB986dXslHqkbYMDnwfIlKHl++lLADAEZhI6FNZy7gtVddR+1N69xkOI2vRAJssr6QzmKPCfZu4btEHWjG0pNA=="
+      "version": "17.8.3",
+      "resolved": "https://registry.npmjs.org/vanilla-lazyload/-/vanilla-lazyload-17.8.3.tgz",
+      "integrity": "sha512-0eYjhkSkfP/JCDIzVpmgnh9I3XKAA8/i/6FpRrH8qjcC+nHv5mYZ6DQZUIGU16TqJei23hHl0J/Zuv/zmCC2Zw==",
+      "funding": {
+        "type": "individual",
+        "url": "https://ko-fi.com/verlok"
+      }
     },
     "node_modules/vue": {
       "version": "2.6.14",
@@ -16363,9 +16370,9 @@
       }
     },
     "nanoid": {
-      "version": "3.1.31",
-      "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.31.tgz",
-      "integrity": "sha512-ZivnJm0o9bb13p2Ot5CpgC2rQdzB9Uxm/mFZweqm5eMViqOJe3PV6LU2E30SiLgheesmcPrjquqraoolONSA0A=="
+      "version": "4.0.0",
+      "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.0.tgz",
+      "integrity": "sha512-IgBP8piMxe/gf73RTQx7hmnhwz0aaEXYakvqZyE302IXW3HyVNhdNGC+O2MwMAVhLEnvXlvKtGbtJf6wvHihCg=="
     },
     "napi-build-utils": {
       "version": "1.0.2",
@@ -17238,9 +17245,9 @@
       "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw="
     },
     "prettier": {
-      "version": "2.3.2",
-      "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.2.tgz",
-      "integrity": "sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ=="
+      "version": "2.7.1",
+      "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz",
+      "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g=="
     },
     "process-nextick-args": {
       "version": "2.0.1",
@@ -17557,9 +17564,9 @@
       "dev": true
     },
     "resize-detector": {
-      "version": "0.2.2",
-      "resolved": "https://registry.npmjs.org/resize-detector/-/resize-detector-0.2.2.tgz",
-      "integrity": "sha512-X07ADfFqXoyfbx4/PSzr7EBF9e/RwrcS9UoPBMbau11agg5uad39ysMmXFCu0o5C3hhKbs0X/cSl85OwPIpZLQ=="
+      "version": "0.3.0",
+      "resolved": "https://registry.npmjs.org/resize-detector/-/resize-detector-0.3.0.tgz",
+      "integrity": "sha512-R/tCuvuOHQ8o2boRP6vgx8hXCCy87H1eY9V5imBYeVNyNVpuL9ciReSccLj2gDcax9+2weXy3bc8Vv+NRXeEvQ=="
     },
     "resolve": {
       "version": "1.14.1",
@@ -17755,9 +17762,9 @@
       }
     },
     "semver": {
-      "version": "7.3.5",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
-      "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+      "version": "7.3.7",
+      "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+      "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
       "requires": {
         "lru-cache": "^6.0.0"
       },
@@ -18235,9 +18242,9 @@
       }
     },
     "sucrase": {
-      "version": "3.17.0",
-      "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.17.0.tgz",
-      "integrity": "sha512-wtiqaokYRjFSSrv8fQu7pThKTIZSLwiffW+PHQG52hlI8eJO47v1tXbKt6fYb8Z1kCyuCkNH9etpTUebb7g+pA==",
+      "version": "3.24.0",
+      "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.24.0.tgz",
+      "integrity": "sha512-SevqflhW356TKEyWjFHg2e5f3eH+5rzmsMJxrVMDvZIEHh/goYrpzDGA6APEj4ME9MdGm8oNgIzi1eF3c3dDQA==",
       "requires": {
         "commander": "^4.0.0",
         "glob": "7.1.6",
@@ -18707,9 +18714,9 @@
       }
     },
     "vanilla-lazyload": {
-      "version": "12.5.1",
-      "resolved": "https://registry.npmjs.org/vanilla-lazyload/-/vanilla-lazyload-12.5.1.tgz",
-      "integrity": "sha512-gB986dXslHqkbYMDnwfIlKHl++lLADAEZhI6FNZy7gtVddR+1N69xkOI2vRAJssr6QzmKPCfZu4btEHWjG0pNA=="
+      "version": "17.8.3",
+      "resolved": "https://registry.npmjs.org/vanilla-lazyload/-/vanilla-lazyload-17.8.3.tgz",
+      "integrity": "sha512-0eYjhkSkfP/JCDIzVpmgnh9I3XKAA8/i/6FpRrH8qjcC+nHv5mYZ6DQZUIGU16TqJei23hHl0J/Zuv/zmCC2Zw=="
     },
     "vue": {
       "version": "2.6.14",
diff --git a/package.json b/package.json
index 5622e56..68b06ae 100644
--- a/package.json
+++ b/package.json
@@ -64,15 +64,15 @@
   "dependencies": {
     "@lang/object-visualizer": "^4.2.0",
     "codesandbox": "^2.2.3",
-    "lodash": "^4.17.19",
+    "lodash": "^4.17.21",
     "lz-string": "^1.4.4",
-    "nanoid": "^3.1.31",
-    "prettier": "^2.3.2",
-    "resize-detector": "^0.2.2",
+    "nanoid": "^4.0.0",
+    "prettier": "^2.7.1",
+    "resize-detector": "^0.3.0",
     "scroll-into-view": "^1.14.2",
-    "semver": "^7.3.5",
-    "sucrase": "^3.17.0",
-    "vanilla-lazyload": "^12.5.1",
+    "semver": "^7.3.7",
+    "sucrase": "^3.24.0",
+    "vanilla-lazyload": "^17.8.3",
     "vue-i18n": "^8.18.2",
     "vue-scrollactive": "^0.9.3"
   }