git: ec1710f0fde8 - main - net-im/signal-desktop: Update to 8.18.0

From: Mikael Urankar <mikael_at_FreeBSD.org>
Date: Tue, 21 Jul 2026 07:19:09 UTC
The branch main has been updated by mikael:

URL: https://cgit.FreeBSD.org/ports/commit/?id=ec1710f0fde818bbb63e2db1e0d489004dbd84ff

commit ec1710f0fde818bbb63e2db1e0d489004dbd84ff
Author:     Mikael Urankar <mikael@FreeBSD.org>
AuthorDate: 2026-07-21 07:03:58 +0000
Commit:     Mikael Urankar <mikael@FreeBSD.org>
CommitDate: 2026-07-21 07:19:01 +0000

    net-im/signal-desktop: Update to 8.18.0
---
 net-im/signal-desktop/Makefile                     |    3 +-
 net-im/signal-desktop/distinfo                     |   10 +-
 net-im/signal-desktop/files/patch-package.json     |   40 -
 .../signal-desktop/files/patch-pnpm-workspace.yaml |   18 +
 net-im/signal-desktop/files/patch-windows-ucv      |   40 +
 net-im/signal-desktop/files/pnpm-lock.yaml         | 9371 +++++++++++---------
 net-im/signal-desktop/get_deps.sh                  |    7 +-
 net-im/signal-desktop/pkg-plist                    |    2 +
 8 files changed, 5453 insertions(+), 4038 deletions(-)

diff --git a/net-im/signal-desktop/Makefile b/net-im/signal-desktop/Makefile
index 9e7257306c65..87dccba91428 100644
--- a/net-im/signal-desktop/Makefile
+++ b/net-im/signal-desktop/Makefile
@@ -1,7 +1,6 @@
 PORTNAME=	signal-desktop
 DISTVERSIONPREFIX=	v
-DISTVERSION=	8.14.0
-PORTREVISION=	6
+DISTVERSION=	8.18.0
 CATEGORIES=	net-im
 MASTER_SITES=	LOCAL/mikael/signal-desktop/:npm
 DISTFILES=	signal-desktop-${DISTVERSION}-npm-cache.tar.gz:npm
diff --git a/net-im/signal-desktop/distinfo b/net-im/signal-desktop/distinfo
index 735f207b13f2..f61bd19a0a75 100644
--- a/net-im/signal-desktop/distinfo
+++ b/net-im/signal-desktop/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1781612777
-SHA256 (signal-desktop-8.14.0-npm-cache.tar.gz) = 1d1b02be61e6842ccab582703c9d14ae1b62c5ec4b8de987ab3e8ef37d2b7226
-SIZE (signal-desktop-8.14.0-npm-cache.tar.gz) = 407149890
-SHA256 (signalapp-Signal-Desktop-v8.14.0_GH0.tar.gz) = 95b162369d6bb1d56f96d9c8afad0de9857b7e8950eb50e551d0f67db4bbb089
-SIZE (signalapp-Signal-Desktop-v8.14.0_GH0.tar.gz) = 47133843
+TIMESTAMP = 1783947073
+SHA256 (signal-desktop-8.18.0-npm-cache.tar.gz) = a56646593fe97150ef23648addea28ecbdb292f8c9093805e0e9d4f3bc52d902
+SIZE (signal-desktop-8.18.0-npm-cache.tar.gz) = 910585233
+SHA256 (signalapp-Signal-Desktop-v8.18.0_GH0.tar.gz) = 61a93b2b5b74e696de74efe59d408b9ab8c026a826321379ce96a9b68172bc72
+SIZE (signalapp-Signal-Desktop-v8.18.0_GH0.tar.gz) = 46811763
diff --git a/net-im/signal-desktop/files/patch-package.json b/net-im/signal-desktop/files/patch-package.json
deleted file mode 100644
index 38410e901b82..000000000000
--- a/net-im/signal-desktop/files/patch-package.json
+++ /dev/null
@@ -1,40 +0,0 @@
---- package.json.orig	2025-05-28 20:17:57 UTC
-+++ package.json
-@@ -359,13 +359,14 @@
-       "growing-file@0.1.3": "patches/growing-file+0.1.3.patch",
-       "app-builder-lib": "patches/app-builder-lib.patch",
-       "dmg-builder": "patches/dmg-builder.patch",
--      "fs-xattr": "patches/fs-xattr.patch",
-       "@types/chai": "patches/@types__chai.patch",
-       "@napi-rs/canvas@0.1.61": "patches/@napi-rs__canvas@0.1.61.patch",
-       "playwright-core": "patches/playwright-core.patch",
-       "tsx": "patches/tsx.patch",
-       "node-fetch@3.3.2": "patches/node-fetch@3.3.2.patch",
--      "zod@4.3.6": "patches/zod@4.3.6.patch"
-+      "zod@4.3.6": "patches/zod@4.3.6.patch",
-+      "electron-builder": "patches/electron-builder.patch",
-+      "@signalapp/ringrtc": "patches/signalapp-ringrtc.patch"
-     },
-     "onlyBuiltDependencies": [
-       "@indutny/mac-screen-share",
-@@ -503,20 +504,6 @@
-       "asarUnpack": [
-         "build/icons/win/icon.ico"
-       ]
--    },
--    "nsis": {
--      "deleteAppDataOnUninstall": true,
--      "differentialPackage": true,
--      "customNsisBinary": {
--        "url": "https://updates.signal.org/desktop/nsis/nsis-3.0.4.1.7z",
--        "version": "3.0.4.1-signal",
--        "checksum": "D6XH03F8A4Vzfjpq6zS9eZYXGXktdoaeQh5QgxAZ01pdts3KaDfMilem0x+HUzn9FpzfpgZrD8MVTcFlcPfcWg=="
--      },
--      "customNsisResources": {
--        "url": "https://updates.signal.org/desktop/nsis/nsis-resources-3.4.1.7z",
--        "version": "3.4.1-signal",
--        "checksum": "KmySC53iz92XNYVgEy5gc0/cpXiyWsxxOX5UETBAt889TIvsNlUx7uKBxkQVf3D2Ycex0D2IPGjRdGYr1bftrw=="
--      }
-     },
-     "linux": {
-       "executableName": "signal-desktop",
diff --git a/net-im/signal-desktop/files/patch-pnpm-workspace.yaml b/net-im/signal-desktop/files/patch-pnpm-workspace.yaml
new file mode 100644
index 000000000000..4777a113d376
--- /dev/null
+++ b/net-im/signal-desktop/files/patch-pnpm-workspace.yaml
@@ -0,0 +1,18 @@
+--- pnpm-workspace.yaml.orig	2026-07-13 10:52:52 UTC
++++ pnpm-workspace.yaml
+@@ -63,13 +63,14 @@ patchedDependencies:
+   'casual@1.6.2': 'patches/casual+1.6.2.patch'
+   'dmg-builder': 'patches/dmg-builder.patch'
+   'fabric@4.6.0': 'patches/fabric+4.6.0.patch'
+-  'fs-xattr': 'patches/fs-xattr.patch'
+   'growing-file@0.1.3': 'patches/growing-file+0.1.3.patch'
+   'node-fetch@3.3.2': 'patches/node-fetch@3.3.2.patch'
+   'playwright-core': 'patches/playwright-core.patch'
+   'qrcode-generator': 'patches/qrcode-generator.patch'
+   'tsx': 'patches/tsx.patch'
+   'zod@4.3.6': 'patches/zod@4.3.6.patch'
++  'electron-builder': 'patches/electron-builder.patch'
++  '@signalapp/ringrtc': 'patches/signalapp-ringrtc.patch'
+ 
+ strictDepBuilds: true
+ allowBuilds:
diff --git a/net-im/signal-desktop/files/patch-windows-ucv b/net-im/signal-desktop/files/patch-windows-ucv
new file mode 100644
index 000000000000..35a40a9ba2f2
--- /dev/null
+++ b/net-im/signal-desktop/files/patch-windows-ucv
@@ -0,0 +1,40 @@
+For whatever reason Signal-desktop has started to error out if windows-ucv
+is not present, this is the case on FreeBSD, just get rid of it
+
+--- ts/util/os/promptOSAuthMain.main.ts	2026-07-13 15:08:34 UTC
++++ ts/util/os/promptOSAuthMain.main.ts
+@@ -3,10 +3,6 @@ import { exec } from 'node:child_process';
+ 
+ import { app, systemPreferences } from 'electron';
+ import { exec } from 'node:child_process';
+-import {
+-  checkAvailability as checkAvailabilityWindowsUcv,
+-  requestVerification as requestVerificationWindowsUcv,
+-} from '@signalapp/windows-ucv';
+ 
+ import { createLogger } from '../../logging/log.std.ts';
+ import OS from './osMain.node.ts';
+@@ -70,23 +66,7 @@ async function promptOSAuthWindows(
+ async function promptOSAuthWindows(
+   text: string
+ ): Promise<PromptOSAuthResultType> {
+-  // For Windows a verification device is required for the UserConsentVerifier API.
+-  const availability = await checkAvailabilityWindowsUcv();
+-  log.info(`Windows UCV availability=${availability}`);
+-  if (availability !== 'available') {
+     return 'unsupported';
+-  }
+-
+-  try {
+-    const result = await requestVerificationWindowsUcv(text);
+-    if (result === 'verified') {
+-      return 'success';
+-    }
+-    return 'unauthorized';
+-  } catch (error) {
+-    log.error('Error requesting Windows UCV', toLogFormat(error));
+-    return 'error';
+-  }
+ }
+ 
+ async function promptOSAuthLinux(
diff --git a/net-im/signal-desktop/files/pnpm-lock.yaml b/net-im/signal-desktop/files/pnpm-lock.yaml
index 9c123eb76683..786be82a382d 100644
--- a/net-im/signal-desktop/files/pnpm-lock.yaml
+++ b/net-im/signal-desktop/files/pnpm-lock.yaml
@@ -2,106 +2,76 @@ lockfileVersion: '9.0'
 
 settings:
   autoInstallPeers: true
+  dedupePeers: true
   excludeLinksFromLockfile: false
 
 overrides:
+  '@electron/rebuild>node-gyp': 12.4.0
   canvas: '-'
   jsdom: '-'
-  thenify-all>thenify: 3.3.1
-  '@electron/rebuild@3.7.2>@electron/node-gyp': 10.2.0-electron.2
-  react-popper@2.3.0>react: 19.2.4
   react-popper@2.3.0>react-dom: 19.2.4
+  react-popper@2.3.0>react: 19.2.4
+  thenify-all>thenify: 3.3.1
 
-pnpmfileChecksum: sha256-o+YmVibNtPcu3FSR1zxQU+b0Bi0bKdB6ADNIl+tjylA=
+pnpmfileChecksum: sha256-bByyW+G0/ld7ZSgtIlcAVRHgcUTBCQ31JLSwI1rhzys=
 
 patchedDependencies:
-  '@napi-rs/canvas@0.1.61':
-    hash: d232c1154bffd88fa8df40fc91dc36098b29aba725d826c24ce74cfac7803919
-    path: patches/@napi-rs__canvas@0.1.61.patch
-  '@signalapp/ringrtc':
-    hash: 16738d799318d4c5fe950f44ee7511dad758c4364ec26a25fb6b657203e9d8bf
-    path: patches/signalapp-ringrtc.patch
-  '@types/chai':
-    hash: b1cea4e432957039e7f72a32140d7a718258944078c5d5bdb40ad62b8717cb97
-    path: patches/@types__chai.patch
-  '@types/fabric@4.5.3':
-    hash: e5f339ecf72fbab1c91505e7713e127a7184bfe8164aa3a9afe9bf45a0ad6b89
-    path: patches/@types+fabric+4.5.3.patch
-  '@vitest/expect@2.0.5':
-    hash: e8a96f71e52bf903c9f1eadba4740489a0beb48da33db52354adca484fe1f495
-    path: patches/@vitest+expect+2.0.5.patch
-  app-builder-lib:
-    hash: bcbaa020b1d47a2b1e6ba770e561454819f95f13e01361cc3b2a25560a607fd5
-    path: patches/app-builder-lib.patch
-  casual@1.6.2:
-    hash: b88b5052437cbdc1882137778b76ca5037f71b2a030ae9ef39dc97f51670d599
-    path: patches/casual+1.6.2.patch
-  dmg-builder:
-    hash: 7ce1df215d2c4dcbe797485ec0456168d19a4870687b21c489062abd079c7982
-    path: patches/dmg-builder.patch
-  electron-builder:
-    hash: 4efee114d8c7e2a77c68ff826373a94a9678edfde006eeec4eccb386c32dae15
-    path: patches/electron-builder.patch
-  fabric@4.6.0:
-    hash: 259e6eff3d60c4a453f7815fca6aa0d3a81842f4efdc4051836812fc1e711e00
-    path: patches/fabric+4.6.0.patch
-  growing-file@0.1.3:
-    hash: 1bb085e3fda38f2983114beedc229acf8b0c539736fe73e2e8183dab2df074b4
-    path: patches/growing-file+0.1.3.patch
-  node-fetch@3.3.2:
-    hash: 1dc57b3827aeb8d0a7f3f6c39c51df08119ff45aff99d9a03db2360e99d3a826
-    path: patches/node-fetch@3.3.2.patch
-  playwright-core:
-    hash: 0d32e74d7c83e28ccbaea73aeaf171e4f4180b2d997e4ec0457aeda2144b651d
-    path: patches/playwright-core.patch
-  qrcode-generator:
-    hash: d70b44e0a29e1109f8b55b2a89c4f600bb3907877375cb50d0d363e16a2636ad
-    path: patches/qrcode-generator.patch
-  tsx:
-    hash: 251027c4cc25615da4cf5b54757ba1af5ecae4256a23772bcc2c1284f6aa1251
-    path: patches/tsx.patch
-  zod@4.3.6:
-    hash: ab3dbef13a3a4a50b2a2fcab2bdabd3ef94a4b1607e046308492e88bdd9d5553
-    path: patches/zod@4.3.6.patch
+  '@electron/universal': 506a5defc2fc12cdae1092759ae376a9fd8f1731ef1d38cf2aee2d1ec752acde
+  '@napi-rs/canvas@0.1.61': d232c1154bffd88fa8df40fc91dc36098b29aba725d826c24ce74cfac7803919
+  '@signalapp/ringrtc': 16738d799318d4c5fe950f44ee7511dad758c4364ec26a25fb6b657203e9d8bf
+  '@types/chai': b1cea4e432957039e7f72a32140d7a718258944078c5d5bdb40ad62b8717cb97
+  '@types/fabric@4.5.3': e5f339ecf72fbab1c91505e7713e127a7184bfe8164aa3a9afe9bf45a0ad6b89
+  '@vitest/expect@2.0.5': e8a96f71e52bf903c9f1eadba4740489a0beb48da33db52354adca484fe1f495
+  app-builder-lib: 02fa41bb6c77d0ecc2b4c7a03b1d16089baaeadf948fcab1d63b2bb12404c1d6
+  casual@1.6.2: b88b5052437cbdc1882137778b76ca5037f71b2a030ae9ef39dc97f51670d599
+  dmg-builder: 75ddbdfdce4e9fad4f5e7d3e2ac0d29fc920006584534018bf560c486e0642ec
+  electron-builder: 4efee114d8c7e2a77c68ff826373a94a9678edfde006eeec4eccb386c32dae15
+  fabric@4.6.0: 259e6eff3d60c4a453f7815fca6aa0d3a81842f4efdc4051836812fc1e711e00
+  growing-file@0.1.3: 1bb085e3fda38f2983114beedc229acf8b0c539736fe73e2e8183dab2df074b4
+  node-fetch@3.3.2: 1dc57b3827aeb8d0a7f3f6c39c51df08119ff45aff99d9a03db2360e99d3a826
+  playwright-core: 0d32e74d7c83e28ccbaea73aeaf171e4f4180b2d997e4ec0457aeda2144b651d
+  qrcode-generator: d70b44e0a29e1109f8b55b2a89c4f600bb3907877375cb50d0d363e16a2636ad
+  tsx: 251027c4cc25615da4cf5b54757ba1af5ecae4256a23772bcc2c1284f6aa1251
+  zod@4.3.6: ab3dbef13a3a4a50b2a2fcab2bdabd3ef94a4b1607e046308492e88bdd9d5553
 
 importers:
 
   .:
     dependencies:
       '@indutny/mac-screen-share':
-        specifier: 1.0.13
-        version: 1.0.13
+        specifier: 1.2.5
+        version: 1.2.5
       '@indutny/simple-windows-notifications':
-        specifier: 2.0.16
-        version: 2.0.16
+        specifier: 2.0.21
+        version: 2.0.21
       '@signalapp/libsignal-client':
-        specifier: 0.94.4
-        version: 0.94.4
+        specifier: 0.96.3
+        version: 0.96.3
       '@signalapp/mute-state-change':
-        specifier: workspace:1.0.0
+        specifier: workspace:*
         version: link:packages/mute-state-change
       '@signalapp/ringrtc':
-        specifier: 2.69.1
-        version: 2.69.1(patch_hash=16738d799318d4c5fe950f44ee7511dad758c4364ec26a25fb6b657203e9d8bf)
+        specifier: 2.69.4
+        version: 2.69.4(patch_hash=16738d799318d4c5fe950f44ee7511dad758c4364ec26a25fb6b657203e9d8bf)
       '@signalapp/sqlcipher':
-        specifier: 3.3.5
-        version: 3.3.5
+        specifier: 3.3.9
+        version: 3.3.9
       '@signalapp/windows-ucv':
-        specifier: 1.0.1
-        version: 1.0.1
+        specifier: workspace:*
+        version: link:packages/windows-ucv
       google-libphonenumber:
         specifier: 3.2.44
         version: 3.2.44
     devDependencies:
       '@babel/core':
         specifier: 7.29.0
-        version: 7.29.0
+        version: 7.29.0(supports-color@8.1.1)
       '@babel/helper-plugin-utils':
         specifier: 7.28.6
         version: 7.28.6
       '@babel/plugin-transform-runtime':
         specifier: 7.29.0
-        version: 7.29.0(@babel/core@7.29.0)
+        version: 7.29.0(@babel/core@7.29.0)(supports-color@8.1.1)
       '@babel/plugin-transform-typescript':
         specifier: 7.28.6
         version: 7.28.6(@babel/core@7.29.0)
@@ -113,7 +83,7 @@ importers:
         version: 7.28.5(@babel/core@7.29.0)
       '@csstools/stylelint-formatter-github':
         specifier: 2.0.0
-        version: 2.0.0(stylelint@17.11.1(typescript@6.0.3))
+        version: 2.0.0(stylelint@17.11.1)
       '@electron/asar':
         specifier: 3.4.1
         version: 3.4.1
@@ -122,7 +92,7 @@ importers:
         version: 1.5.0
       '@electron/notarize':
         specifier: 2.1.0
-        version: 2.1.0
+        version: 2.1.0(supports-color@8.1.1)
       '@electron/symbolicate-mac':
         specifier: 2.3.1
         version: 2.3.1
@@ -161,25 +131,25 @@ importers:
         version: 2.11.8
       '@react-aria/focus':
         specifier: 3.21.5
-        version: 3.21.5(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+        version: 3.21.5(react-dom@19.2.4)(react@19.2.4)
       '@react-aria/interactions':
         specifier: 3.27.1
-        version: 3.27.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+        version: 3.27.1(react-dom@19.2.4)(react@19.2.4)
       '@react-aria/utils':
         specifier: 3.33.1
-        version: 3.33.1(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+        version: 3.33.1(react-dom@19.2.4)(react@19.2.4)
       '@react-spring/web':
         specifier: 10.0.3
-        version: 10.0.3(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+        version: 10.0.3(react-dom@19.2.4)(react@19.2.4)
       '@signalapp/lame':
-        specifier: workspace:1.0.0
+        specifier: workspace:*
         version: link:packages/lame
       '@signalapp/minimask':
         specifier: 1.0.1
         version: 1.0.1
       '@signalapp/mock-server':
-        specifier: 22.1.0
-        version: 22.1.0(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+        specifier: 23.0.0
+        version: 23.0.0(bufferutil@4.0.9)(supports-color@8.1.1)(utf-8-validate@5.0.10)
       '@signalapp/parchment-cjs':
         specifier: 3.0.1
         version: 3.0.1
@@ -188,49 +158,46 @@ importers:
         version: 2.1.2
       '@storybook/addon-a11y':
         specifier: 8.4.4
-        version: 8.4.4(storybook@8.4.4(bufferutil@4.0.9)(prettier@3.8.3)(utf-8-validate@5.0.10))
+        version: 8.4.4(storybook@8.6.18)
       '@storybook/addon-actions':
         specifier: 8.4.4
-        version: 8.4.4(storybook@8.4.4(bufferutil@4.0.9)(prettier@3.8.3)(utf-8-validate@5.0.10))
+        version: 8.4.4(storybook@8.6.18)
       '@storybook/addon-controls':
         specifier: 8.4.4
-        version: 8.4.4(storybook@8.4.4(bufferutil@4.0.9)(prettier@3.8.3)(utf-8-validate@5.0.10))
+        version: 8.4.4(storybook@8.6.18)
       '@storybook/addon-interactions':
         specifier: 8.6.14
-        version: 8.6.14(storybook@8.4.4(bufferutil@4.0.9)(prettier@3.8.3)(utf-8-validate@5.0.10))
+        version: 8.6.14(storybook@8.6.18)
       '@storybook/addon-jest':
         specifier: 8.4.4
-        version: 8.4.4(storybook@8.4.4(bufferutil@4.0.9)(prettier@3.8.3)(utf-8-validate@5.0.10))
+        version: 8.4.4(storybook@8.6.18)
       '@storybook/addon-measure':
         specifier: 8.4.4
-        version: 8.4.4(storybook@8.4.4(bufferutil@4.0.9)(prettier@3.8.3)(utf-8-validate@5.0.10))
+        version: 8.4.4(storybook@8.6.18)
       '@storybook/addon-toolbars':
         specifier: 8.4.4
-        version: 8.4.4(storybook@8.4.4(bufferutil@4.0.9)(prettier@3.8.3)(utf-8-validate@5.0.10))
+        version: 8.4.4(storybook@8.6.18)
       '@storybook/addon-viewport':
         specifier: 8.4.4
-        version: 8.4.4(storybook@8.4.4(bufferutil@4.0.9)(prettier@3.8.3)(utf-8-validate@5.0.10))
+        version: 8.4.4(storybook@8.6.18)
       '@storybook/addon-webpack5-compiler-swc':
         specifier: 1.0.5
-        version: 1.0.5(@swc/helpers@0.5.15)(webpack@5.96.1(@swc/core@1.10.16(@swc/helpers@0.5.15))(esbuild@0.24.0))
-      '@storybook/csf':
-        specifier: 0.1.11
-        version: 0.1.11
+        version: 1.0.5(@swc/helpers@0.5.15)(webpack@5.96.1)
       '@storybook/react':
         specifier: 8.4.4
-        version: 8.4.4(@storybook/test@8.6.15(storybook@8.4.4(bufferutil@4.0.9)(prettier@3.8.3)(utf-8-validate@5.0.10)))(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@8.4.4(bufferutil@4.0.9)(prettier@3.8.3)(utf-8-validate@5.0.10))(typescript@6.0.3)
+        version: 8.4.4(@storybook/test@8.6.15)(react-dom@19.2.4)(react@19.2.4)(storybook@8.6.18)(typescript@6.0.3)
       '@storybook/react-webpack5':
         specifier: 8.4.4
-        version: 8.4.4(@storybook/test@8.6.15(storybook@8.4.4(bufferutil@4.0.9)(prettier@3.8.3)(utf-8-validate@5.0.10)))(@swc/core@1.10.16(@swc/helpers@0.5.15))(esbuild@0.24.0)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(storybook@8.4.4(bufferutil@4.0.9)(prettier@3.8.3)(utf-8-validate@5.0.10))(typescript@6.0.3)
+        version: 8.4.4(@storybook/test@8.6.15)(@swc/core@1.10.16)(esbuild@0.25.12)(react-dom@19.2.4)(react@19.2.4)(storybook@8.6.18)(supports-color@8.1.1)(typescript@6.0.3)
       '@storybook/test':
         specifier: 8.6.15
-        version: 8.6.15(storybook@8.4.4(bufferutil@4.0.9)(prettier@3.8.3)(utf-8-validate@5.0.10))
+        version: 8.6.15(storybook@8.6.18)
       '@storybook/test-runner':
         specifier: 0.22.0
-        version: 0.22.0(@swc/helpers@0.5.15)(@types/node@24.12.0)(debug@4.4.3)(storybook@8.4.4(bufferutil@4.0.9)(prettier@3.8.3)(utf-8-validate@5.0.10))(ts-node@10.9.2(@swc/core@1.10.16(@swc/helpers@0.5.15))(@types/node@24.12.0)(typescript@6.0.3))
+        version: 0.22.0(@swc/helpers@0.5.15)(@types/node@24.12.0)(debug@4.4.3)(storybook@8.6.18)(supports-color@8.1.1)(ts-node@10.9.2)
       '@storybook/types':
         specifier: 8.6.14
-        version: 8.6.14(storybook@8.4.4(bufferutil@4.0.9)(prettier@3.8.3)(utf-8-validate@5.0.10))
+        version: 8.6.14(storybook@8.6.18)
       '@tailwindcss/cli':
         specifier: 4.3.0
         version: 4.3.0
@@ -239,7 +206,7 @@ importers:
         version: 4.3.0
       '@tanstack/react-virtual':
         specifier: 3.13.23
-        version: 3.13.23(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+        version: 3.13.23(react-dom@19.2.4)(react@19.2.4)
       '@types/babel__core':
         specifier: 7.20.5
         version: 7.20.5
@@ -338,10 +305,10 @@ importers:
         version: 4.0.3
       '@typescript-eslint/rule-tester':
         specifier: 8.59.3
-        version: 8.59.3(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3)
+        version: 8.59.3(eslint@10.4.0)(supports-color@8.1.1)(typescript@6.0.3)
       '@typescript-eslint/utils':
         specifier: 8.59.3
-        version: 8.59.3(eslint@10.4.0(jiti@2.7.0))(typescript@6.0.3)
+        version: 8.59.3(eslint@10.4.0)(typescript@6.0.3)
       '@typescript/native-preview':
         specifier: 7.0.0-dev.20260515.1
         version: 7.0.0-dev.20260515.1
@@ -401,13 +368,13 @@ importers:
         version: 10.1.0
       css-loader:
         specifier: 7.1.4
-        version: 7.1.4(webpack@5.96.1(@swc/core@1.10.16(@swc/helpers@0.5.15))(esbuild@0.24.0))
+        version: 7.1.4(webpack@5.96.1)
       csv-parse:
         specifier: 6.2.1
         version: 6.2.1
       danger:
         specifier: 13.0.7
-        version: 13.0.7(encoding@0.1.13)
+        version: 13.0.7(encoding@0.1.13)(supports-color@8.1.1)
       dashdash:
         specifier: 2.0.0
         version: 2.0.0
@@ -422,10 +389,10 @@ importers:
         version: 0.7.1
       electron:
         specifier: 42.3.0
-        version: 42.3.0
+        version: 42.3.0(supports-color@8.1.1)
       electron-builder:
-        specifier: 26.0.14
-        version: 26.0.14(patch_hash=4efee114d8c7e2a77c68ff826373a94a9678edfde006eeec4eccb386c32dae15)(electron-builder-squirrel-windows@26.0.14)
+        specifier: 26.11.1
+        version: 26.11.1(patch_hash=4efee114d8c7e2a77c68ff826373a94a9678edfde006eeec4eccb386c32dae15)(electron-builder-squirrel-windows@26.11.1)
       electron-mocha:
         specifier: 13.1.0
         version: 13.1.0
@@ -440,10 +407,10 @@ importers:
         version: 2.4.1
       eslint:
         specifier: 10.4.0
-        version: 10.4.0(jiti@2.7.0)
+        version: 10.4.0(jiti@2.7.0)(supports-color@8.1.1)
       eslint-plugin-better-tailwindcss:
         specifier: 4.5.0
-        version: 4.5.0(eslint@10.4.0(jiti@2.7.0))(oxlint@1.65.0(oxlint-tsgolint@0.22.1))(tailwindcss@4.3.0)(typescript@6.0.3)
+        version: 4.5.0(eslint@10.4.0)(oxlint@1.65.0)(tailwindcss@4.3.0)(typescript@6.0.3)
       execa:
         specifier: 9.6.1
         version: 9.6.1
@@ -460,8 +427,8 @@ importers:
         specifier: 2.0.2
         version: 2.0.2
       form-data:
-        specifier: 4.0.5
-        version: 4.0.5
+        specifier: 4.0.6
+        version: 4.0.6
       fs-extra:
         specifier: 11.3.4
         version: 11.3.4
@@ -502,11 +469,11 @@ importers:
         specifier: 6.14.0
         version: 6.14.0(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)
       linkify-it:
-        specifier: 5.0.0
-        version: 5.0.0
+        specifier: 5.0.1
+        version: 5.0.1
       lodash:
-        specifier: 4.17.23
-        version: 4.17.23
+        specifier: 4.18.1
+        version: 4.18.1
       log-symbols:
         specifier: 7.0.1
         version: 7.0.1
@@ -527,7 +494,7 @@ importers:
         version: 2.30.1
       motion:
         specifier: 12.38.0
-        version: 12.38.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+        version: 12.38.0(react-dom@19.2.4)(react@19.2.4)
       mp4box:
         specifier: 0.5.3
         version: 0.5.3
@@ -581,7 +548,7 @@ importers:
         version: 7.0.0
       postcss-loader:
         specifier: 8.2.1
-        version: 8.2.1(postcss@8.5.14)(typescript@6.0.3)(webpack@5.96.1(@swc/core@1.10.16(@swc/helpers@0.5.15))(esbuild@0.24.0))
+        version: 8.2.1(postcss@8.5.15)(typescript@6.0.3)(webpack@5.96.1)
       prettier:
         specifier: 3.8.3
         version: 3.8.3
@@ -593,22 +560,22 @@ importers:
         version: 2.0.4(patch_hash=d70b44e0a29e1109f8b55b2a89c4f600bb3907877375cb50d0d363e16a2636ad)
       radix-ui:
         specifier: 1.4.3
-        version: 1.4.3(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+        version: 1.4.3(@types/react-dom@19.2.3)(@types/react@19.2.14)(react-dom@19.2.4)(react@19.2.4)
       react:
         specifier: 19.2.4
         version: 19.2.4
       react-aria:
         specifier: 3.47.0
-        version: 3.47.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+        version: 3.47.0(react-dom@19.2.4)(react@19.2.4)
       react-aria-components:
         specifier: 1.16.0
-        version: 1.16.0(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+        version: 1.16.0(react-dom@19.2.4)(react@19.2.4)
       react-blurhash:
         specifier: 0.3.0
         version: 0.3.0(blurhash@2.0.5)(react@19.2.4)
       react-devtools:
         specifier: 7.0.1
-        version: 7.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)
+        version: 7.0.1(bufferutil@4.0.9)(supports-color@8.1.1)(utf-8-validate@5.0.10)
       react-devtools-core:
         specifier: 7.0.1
         version: 7.0.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)
@@ -620,13 +587,13 @@ importers:
         version: 10.1.0(@types/react@19.2.14)(react@19.2.4)(typescript@6.0.3)
       react-popper:
         specifier: 2.3.0
-        version: 2.3.0(@popperjs/core@2.11.8)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+        version: 2.3.0(@popperjs/core@2.11.8)(react-dom@19.2.4)(react@19.2.4)
       react-redux:
         specifier: 9.2.0
         version: 9.2.0(@types/react@19.2.14)(react@19.2.4)(redux@5.0.1)
       react-virtualized:
         specifier: 9.22.6
-        version: 9.22.6(react-dom@19.2.4(react@19.2.4))(react@19.2.4)
+        version: 9.22.6(react-dom@19.2.4)(react@19.2.4)
       read-last-lines:
         specifier: 1.8.0
         version: 1.8.0
@@ -653,7 +620,7 @@ importers:
         version: 1.99.0
       sass-loader:
         specifier: 16.0.8
-        version: 16.0.8(sass@1.99.0)(webpack@5.96.1(@swc/core@1.10.16(@swc/helpers@0.5.15))(esbuild@0.24.0))
+        version: 16.0.8(sass@1.99.0)(webpack@5.96.1)
       semver:
         specifier: 7.7.4
         version: 7.7.4
@@ -662,7 +629,7 @@ importers:
         version: 22.0.0
       socks-proxy-agent:
         specifier: 8.0.5
-        version: 8.0.5
+        version: 8.0.5(supports-color@8.1.1)
       split2:
         specifier: 4.2.0
         version: 4.2.0
@@ -670,23 +637,23 @@ importers:
         specifier: 15.7.4
         version: 15.7.4
       storybook:
-        specifier: 8.4.4
-        version: 8.4.4(bufferutil@4.0.9)(prettier@3.8.3)(utf-8-validate@5.0.10)
+        specifier: 8.6.18
+        version: 8.6.18(bufferutil@4.0.9)(prettier@3.8.3)(supports-color@8.1.1)(utf-8-validate@5.0.10)
       style-loader:
         specifier: 4.0.0
-        version: 4.0.0(webpack@5.96.1(@swc/core@1.10.16(@swc/helpers@0.5.15))(esbuild@0.24.0))
+        version: 4.0.0(webpack@5.96.1)
       stylelint:
         specifier: 17.11.1
-        version: 17.11.1(typescript@6.0.3)
+        version: 17.11.1(supports-color@8.1.1)(typescript@6.0.3)
       stylelint-config-css-modules:
         specifier: 4.6.0
-        version: 4.6.0(stylelint@17.11.1(typescript@6.0.3))
+        version: 4.6.0(stylelint@17.11.1)
       stylelint-config-recommended-scss:
         specifier: 17.0.1
-        version: 17.0.1(postcss@8.5.14)(stylelint@17.11.1(typescript@6.0.3))
+        version: 17.0.1(postcss@8.5.15)(stylelint@17.11.1)
       stylelint-use-logical-spec:
         specifier: 5.0.1
-        version: 5.0.1(stylelint@17.11.1(typescript@6.0.3))
+        version: 5.0.1(stylelint@17.11.1)
       svgo:
         specifier: 4.0.1
         version: 4.0.1
@@ -719,13 +686,17 @@ importers:
         version: 9.0.5(debug@4.4.3)
       webpack:
         specifier: 5.96.1
-        version: 5.96.1(@swc/core@1.10.16(@swc/helpers@0.5.15))(esbuild@0.24.0)
+        version: 5.96.1(@swc/core@1.10.16)(esbuild@0.25.12)
       write-file-atomic:
         specifier: 7.0.1
         version: 7.0.1
       zod:
         specifier: 4.3.6
         version: 4.3.6(patch_hash=ab3dbef13a3a4a50b2a2fcab2bdabd3ef94a4b1607e046308492e88bdd9d5553)
+    optionalDependencies:
+      fs-xattr:
+        specifier: 0.4.0
+        version: 0.4.0
 
   packages/lame: {}
 
@@ -742,352 +713,424 @@ importers:
         specifier: 3.6.2
         version: 3.6.2
 
+  packages/windows-ucv:
+    dependencies:
+      bindings:
+        specifier: 1.5.0
+        version: 1.5.0
+      node-addon-api:
+        specifier: 8.8.0
+        version: 8.8.0
+    devDependencies:
+      '@types/bindings':
+        specifier: 1.5.5
+        version: 1.5.5
+      '@types/node':
+        specifier: 24.12.0
+        version: 24.12.0
+      typescript:
+        specifier: 6.0.3
+        version: 6.0.3
+
+  sticker-creator:
+    dependencies:
+      '@indutny/emoji-picker-react':
+        specifier: 4.10.1
+        version: 4.10.1(react@19.2.4)
+      '@indutny/protopiler':
+        specifier: 4.0.0
+        version: 4.0.0
+      '@popperjs/core':
+        specifier: 2.11.8
+        version: 2.11.8
+      '@react-aria/interactions':
+        specifier: 3.27.1
+        version: 3.27.1(react-dom@19.2.4)(react@19.2.4)
+      '@reduxjs/toolkit':
+        specifier: 2.12.0
+        version: 2.12.0(react-redux@9.2.0)(react@19.2.4)
+      base64-js:
+        specifier: 1.5.1
+        version: 1.5.1
+      classnames:
+        specifier: 2.3.2
+        version: 2.3.2
+      debug:
+        specifier: 4.3.4
+        version: 4.3.4
+      react:
+        specifier: 19.2.4
+        version: 19.2.4
+      react-dom:
+        specifier: 19.2.4
+        version: 19.2.4(react@19.2.4)
+      react-dropzone:
+        specifier: 14.2.3
+        version: 14.2.3(react@19.2.4)
+      react-intl:
+        specifier: 10.1.0
+        version: 10.1.0(@types/react@19.2.14)(react@19.2.4)(typescript@6.0.3)
+      react-popper:
+        specifier: 2.3.0
+        version: 2.3.0(@popperjs/core@2.11.8)(react-dom@19.2.4)(react@19.2.4)
+      react-redux:
+        specifier: 9.2.0
+        version: 9.2.0(@types/react@19.2.14)(react@19.2.4)(redux@5.0.1)
+      react-router-dom:
+        specifier: 6.10.0
+        version: 6.10.0(react-dom@19.2.4)(react@19.2.4)
+      react-sortablejs:
+        specifier: 6.1.4
+        version: 6.1.4(@types/sortablejs@1.15.1)(react-dom@19.2.4)(react@19.2.4)(sortablejs@1.15.0)
+      redux:
+        specifier: 5.0.1
+        version: 5.0.1
+      reselect:
+        specifier: 4.1.8
+        version: 4.1.8
+      sortablejs:
+        specifier: 1.15.0
+        version: 1.15.0
+    devDependencies:
+      '@types/debug':
+        specifier: 4.1.7
+        version: 4.1.7
+      '@types/react':
+        specifier: 19.2.14
+        version: 19.2.14
+      '@types/react-dom':
+        specifier: 19.2.3
+        version: 19.2.3(@types/react@19.2.14)
+      '@types/sortablejs':
+        specifier: 1.15.1
+        version: 1.15.1
+      '@typescript-eslint/eslint-plugin':
+        specifier: 5.59.0
+        version: 5.59.0(@typescript-eslint/parser@5.59.0)(eslint@8.38.0)(supports-color@8.1.1)(typescript@6.0.3)
+      '@typescript-eslint/parser':
+        specifier: 5.59.0
+        version: 5.59.0(eslint@8.38.0)(supports-color@8.1.1)(typescript@6.0.3)
+      '@vitejs/plugin-react':
+        specifier: 6.0.2
+        version: 6.0.2(vite@8.0.16)
+      eslint:
+        specifier: 8.38.0
+        version: 8.38.0(supports-color@8.1.1)
+      eslint-config-airbnb-typescript-prettier:
+        specifier: 5.0.0
+        version: 5.0.0(eslint@8.38.0)(prettier@2.8.7)(typescript@6.0.3)
+      eslint-plugin-react:
+        specifier: 7.32.2
+        version: 7.32.2(eslint@8.38.0)
+      npm-run-all2:
+        specifier: 8.0.4
+        version: 8.0.4
+      prettier:
+        specifier: 2.8.7
+        version: 2.8.7
+      sass:
+        specifier: 1.101.0
+        version: 1.101.0
+      typescript:
+        specifier: 6.0.3
+        version: 6.0.3
+      vite:
+        specifier: 8.0.16
+        version: 8.0.16(@types/node@24.12.0)(esbuild@0.27.4)(jiti@2.7.0)(sass@1.101.0)(terser@5.46.1)(tsx@4.21.0)(yaml@2.9.0)
+
 packages:
 
   7zip-bin@5.2.0:
-    resolution: {integrity: sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A==}
+    resolution: {integrity: sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A==, tarball: https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.2.0.tgz}
 
   '@adobe/css-tools@4.4.4':
-    resolution: {integrity: sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==}
+    resolution: {integrity: sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==, tarball: https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.4.4.tgz}
 
   '@alloc/quick-lru@5.2.0':
-    resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
+    resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==, tarball: https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz}
     engines: {node: '>=10'}
 
-  '@babel/code-frame@7.26.2':
-    resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==}
-    engines: {node: '>=6.9.0'}
-
   '@babel/code-frame@7.29.0':
-    resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==}
+    resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==, tarball: https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz}
     engines: {node: '>=6.9.0'}
 
   '@babel/compat-data@7.29.0':
-    resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==}
+    resolution: {integrity: sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==, tarball: https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz}
     engines: {node: '>=6.9.0'}
 
   '@babel/core@7.29.0':
-    resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==}
-    engines: {node: '>=6.9.0'}
-
-  '@babel/generator@7.26.8':
-    resolution: {integrity: sha512-ef383X5++iZHWAXX0SXQR6ZyQhw/0KtTkrTz61WXRhFM6dhpHulO/RJz79L8S6ugZHJkOOkUrUdxgdF2YiPFnA==}
+    resolution: {integrity: sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==, tarball: https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz}
     engines: {node: '>=6.9.0'}
 
   '@babel/generator@7.29.1':
-    resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==}
+    resolution: {integrity: sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==, tarball: https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz}
     engines: {node: '>=6.9.0'}
 
   '@babel/helper-annotate-as-pure@7.27.3':
-    resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==}
+    resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==, tarball: https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz}
     engines: {node: '>=6.9.0'}
 
   '@babel/helper-compilation-targets@7.28.6':
-    resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==}
+    resolution: {integrity: sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==, tarball: https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz}
     engines: {node: '>=6.9.0'}
 
   '@babel/helper-create-class-features-plugin@7.28.6':
-    resolution: {integrity: sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==}
+    resolution: {integrity: sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow==, tarball: https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.6.tgz}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0
 
   '@babel/helper-define-polyfill-provider@0.6.8':
-    resolution: {integrity: sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==}
+    resolution: {integrity: sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA==, tarball: https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz}
     peerDependencies:
       '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0
 
   '@babel/helper-globals@7.28.0':
-    resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==}
+    resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==, tarball: https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz}
     engines: {node: '>=6.9.0'}
 
   '@babel/helper-member-expression-to-functions@7.28.5':
-    resolution: {integrity: sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==}
-    engines: {node: '>=6.9.0'}
-
-  '@babel/helper-module-imports@7.25.9':
-    resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==}
+    resolution: {integrity: sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==, tarball: https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz}
     engines: {node: '>=6.9.0'}
 
   '@babel/helper-module-imports@7.28.6':
-    resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==}
+    resolution: {integrity: sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==, tarball: https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz}
     engines: {node: '>=6.9.0'}
 
   '@babel/helper-module-transforms@7.28.6':
-    resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==}
+    resolution: {integrity: sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==, tarball: https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0
 
   '@babel/helper-optimise-call-expression@7.27.1':
-    resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==}
+    resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==, tarball: https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz}
     engines: {node: '>=6.9.0'}
 
   '@babel/helper-plugin-utils@7.28.6':
-    resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==}
+    resolution: {integrity: sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==, tarball: https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz}
     engines: {node: '>=6.9.0'}
 
   '@babel/helper-replace-supers@7.28.6':
-    resolution: {integrity: sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==}
+    resolution: {integrity: sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg==, tarball: https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.28.6.tgz}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0
 
   '@babel/helper-skip-transparent-expression-wrappers@7.27.1':
-    resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==}
-    engines: {node: '>=6.9.0'}
-
-  '@babel/helper-string-parser@7.25.9':
-    resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==}
+    resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==, tarball: https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz}
     engines: {node: '>=6.9.0'}
 
   '@babel/helper-string-parser@7.27.1':
-    resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==}
-    engines: {node: '>=6.9.0'}
-
-  '@babel/helper-validator-identifier@7.25.9':
-    resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==}
+    resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==, tarball: https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz}
     engines: {node: '>=6.9.0'}
 
   '@babel/helper-validator-identifier@7.28.5':
-    resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==}
+    resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==, tarball: https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz}
     engines: {node: '>=6.9.0'}
 
   '@babel/helper-validator-option@7.27.1':
-    resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==}
+    resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==, tarball: https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz}
     engines: {node: '>=6.9.0'}
 
   '@babel/helpers@7.29.2':
-    resolution: {integrity: sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==}
+    resolution: {integrity: sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw==, tarball: https://registry.npmjs.org/@babel/helpers/-/helpers-7.29.2.tgz}
     engines: {node: '>=6.9.0'}
 
-  '@babel/parser@7.26.8':
-    resolution: {integrity: sha512-TZIQ25pkSoaKEYYaHbbxkfL36GNsQ6iFiBbeuzAkLnXayKR1yP1zFe+NxuZWWsUyvt8icPU9CCq0sgWGXR1GEw==}
-    engines: {node: '>=6.0.0'}
-    hasBin: true
-
   '@babel/parser@7.29.2':
-    resolution: {integrity: sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==}
+    resolution: {integrity: sha512-4GgRzy/+fsBa72/RZVJmGKPmZu9Byn8o4MoLpmNe1m8ZfYnz5emHLQz3U4gLud6Zwl0RZIcgiLD7Uq7ySFuDLA==, tarball: https://registry.npmjs.org/@babel/parser/-/parser-7.29.2.tgz}
     engines: {node: '>=6.0.0'}
     hasBin: true
 
   '@babel/plugin-syntax-async-generators@7.8.4':
-    resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==}
+    resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz}
     peerDependencies:
       '@babel/core': ^7.0.0-0
 
   '@babel/plugin-syntax-bigint@7.8.3':
-    resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==}
+    resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz}
     peerDependencies:
       '@babel/core': ^7.0.0-0
 
   '@babel/plugin-syntax-class-properties@7.12.13':
-    resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==}
+    resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz}
     peerDependencies:
       '@babel/core': ^7.0.0-0
 
   '@babel/plugin-syntax-class-static-block@7.14.5':
-    resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==}
+    resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
 
   '@babel/plugin-syntax-import-attributes@7.26.0':
-    resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==}
+    resolution: {integrity: sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz}
     engines: {node: '>=6.9.0'}
     peerDependencies:
       '@babel/core': ^7.0.0-0
 
   '@babel/plugin-syntax-import-meta@7.10.4':
-    resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==}
+    resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz}
     peerDependencies:
       '@babel/core': ^7.0.0-0
 
   '@babel/plugin-syntax-json-strings@7.8.3':
-    resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==}
-    peerDependencies:
-      '@babel/core': ^7.0.0-0
-
-  '@babel/plugin-syntax-jsx@7.25.9':
-    resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==}
-    engines: {node: '>=6.9.0'}
+    resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz}
     peerDependencies:
       '@babel/core': ^7.0.0-0
 
   '@babel/plugin-syntax-jsx@7.28.6':
-    resolution: {integrity: sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==}
+    resolution: {integrity: sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w==, tarball: https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz}
     engines: {node: '>=6.9.0'}
     peerDependencies:
*** 19384 LINES SKIPPED ***