From 5fb8ad785a8d18cd68c68692835025726622183d Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 4 Aug 2025 15:17:27 +0000
Subject: [PATCH 001/215] fix(deps): bump core-js from 3.39.0 to 3.44.0 in /web
Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.39.0 to 3.44.0.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/commits/v3.44.0/packages/core-js)
---
updated-dependencies:
- dependency-name: core-js
dependency-version: 3.44.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
web/package.json | 2 +-
web/pnpm-lock.yaml | 12 ++++++------
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/web/package.json b/web/package.json
index 51838d6b..28b038b8 100644
--- a/web/package.json
+++ b/web/package.json
@@ -28,7 +28,7 @@
"@nuxtjs/sitemap": "^2.4.0",
"chart.js": "^4.5.0",
"chartjs-adapter-moment": "^1.0.1",
- "core-js": "^3.39.0",
+ "core-js": "^3.44.0",
"date-fns": "^2.30.0",
"dotenv": "^17.2.1",
"firebase": "^10.14.1",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index b21cd5b2..88c85b63 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -27,8 +27,8 @@ importers:
specifier: ^1.0.1
version: 1.0.1(chart.js@4.5.0)(moment@2.30.1)
core-js:
- specifier: ^3.39.0
- version: 3.39.0
+ specifier: ^3.44.0
+ version: 3.44.0
date-fns:
specifier: ^2.30.0
version: 2.30.0
@@ -3672,8 +3672,8 @@ packages:
resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==}
deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
- core-js@3.39.0:
- resolution: {integrity: sha512-raM0ew0/jJUqkJ0E6e8UDtl+y/7ktFivgWvqw8dNSQeNWoSDLvQ1H/RN3aPXB9tBd4/FhyR4RDPGhsNIMsAn7g==}
+ core-js@3.44.0:
+ resolution: {integrity: sha512-aFCtd4l6GvAXwVEh3XbbVqJGHDJt0OZRa+5ePGx3LLwi12WfexqQxcsohb2wgsa/92xtl19Hd66G/L+TaAxDMw==}
core-util-is@1.0.3:
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
@@ -11562,7 +11562,7 @@ snapshots:
'@babel/preset-env': 7.24.7(@babel/core@7.24.7)
'@babel/runtime': 7.24.7
'@vue/babel-preset-jsx': 1.4.0(@babel/core@7.24.7)(vue@2.7.16)
- core-js: 3.39.0
+ core-js: 3.44.0
core-js-compat: 3.37.1
regenerator-runtime: 0.14.1
transitivePeerDependencies:
@@ -13993,7 +13993,7 @@ snapshots:
core-js@2.6.12: {}
- core-js@3.39.0: {}
+ core-js@3.44.0: {}
core-util-is@1.0.3: {}
From 4d5d11db3d1db4f426ad2f6639e2a2be0609afd0 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 1 Sep 2025 00:06:38 +0000
Subject: [PATCH 002/215] fix(deps): bump gorm.io/gorm from 1.30.1 to 1.30.2 in
/api
Bumps [gorm.io/gorm](https://github.com/go-gorm/gorm) from 1.30.1 to 1.30.2.
- [Release notes](https://github.com/go-gorm/gorm/releases)
- [Commits](https://github.com/go-gorm/gorm/compare/v1.30.1...v1.30.2)
---
updated-dependencies:
- dependency-name: gorm.io/gorm
dependency-version: 1.30.2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 2 +-
api/go.sum | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index 38db6836..eb80570c 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -53,7 +53,7 @@ require (
google.golang.org/api v0.244.0
google.golang.org/protobuf v1.36.6
gorm.io/driver/postgres v1.6.0
- gorm.io/gorm v1.30.1
+ gorm.io/gorm v1.30.2
gorm.io/plugin/opentelemetry v0.1.16
)
diff --git a/api/go.sum b/api/go.sum
index d23dae81..5d242f8d 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -535,7 +535,7 @@ gorm.io/driver/postgres v1.6.0 h1:2dxzU8xJ+ivvqTRph34QX+WrRaJlmfyPqXmoGVjMBa4=
gorm.io/driver/postgres v1.6.0/go.mod h1:vUw0mrGgrTK+uPHEhAdV4sfFELrByKVGnaVRkXDhtWo=
gorm.io/driver/sqlite v1.5.0 h1:zKYbzRCpBrT1bNijRnxLDJWPjVfImGEn0lSnUY5gZ+c=
gorm.io/driver/sqlite v1.5.0/go.mod h1:kDMDfntV9u/vuMmz8APHtHF0b4nyBB7sfCieC6G8k8I=
-gorm.io/gorm v1.30.1 h1:lSHg33jJTBxs2mgJRfRZeLDG+WZaHYCk3Wtfl6Ngzo4=
-gorm.io/gorm v1.30.1/go.mod h1:8Z33v652h4//uMA76KjeDH8mJXPm1QNCYrMeatR0DOE=
+gorm.io/gorm v1.30.2 h1:f7bevlVoVe4Byu3pmbWPVHnPsLoWaMjEb7/clyr9Ivs=
+gorm.io/gorm v1.30.2/go.mod h1:8Z33v652h4//uMA76KjeDH8mJXPm1QNCYrMeatR0DOE=
gorm.io/plugin/opentelemetry v0.1.16 h1:Kypj2YYAliJqkIczDZDde6P6sFMhKSlG5IpngMFQGpc=
gorm.io/plugin/opentelemetry v0.1.16/go.mod h1:P3RmTeZXT+9n0F1ccUqR5uuTvEXDxF8k2UpO7mTIB2Y=
From 7c956438fbe0d5a905183eb405ba683ed59d61d4 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 1 Sep 2025 00:07:04 +0000
Subject: [PATCH 003/215] fix(deps): bump github.com/nyaruka/phonenumbers in
/api
Bumps [github.com/nyaruka/phonenumbers](https://github.com/nyaruka/phonenumbers) from 1.6.4 to 1.6.5.
- [Release notes](https://github.com/nyaruka/phonenumbers/releases)
- [Changelog](https://github.com/nyaruka/phonenumbers/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nyaruka/phonenumbers/compare/v1.6.4...v1.6.5)
---
updated-dependencies:
- dependency-name: github.com/nyaruka/phonenumbers
dependency-version: 1.6.5
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 2 +-
api/go.sum | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index 38db6836..f800f722 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -32,7 +32,7 @@ require (
github.com/jszwec/csvutil v1.10.0
github.com/lib/pq v1.10.9
github.com/matcornic/hermes v1.3.0
- github.com/nyaruka/phonenumbers v1.6.4
+ github.com/nyaruka/phonenumbers v1.6.5
github.com/palantir/stacktrace v0.0.0-20161112013806-78658fd2d177
github.com/patrickmn/go-cache v2.1.0+incompatible
github.com/pkg/errors v0.9.1
diff --git a/api/go.sum b/api/go.sum
index d23dae81..8e1a776a 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -245,8 +245,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
-github.com/nyaruka/phonenumbers v1.6.4 h1:GFAa844VqRKJvO7oboosM1q3gFVgYvyNe0O6CCbg33A=
-github.com/nyaruka/phonenumbers v1.6.4/go.mod h1:7gjs+Lchqm49adhAKB5cdcng5ZXgt6x7Jgvi0ZorUtU=
+github.com/nyaruka/phonenumbers v1.6.5 h1:aBCaUhfpRA7hU6fsXk+p7KF1aNx4nQlq9hGeo2qdFg8=
+github.com/nyaruka/phonenumbers v1.6.5/go.mod h1:7gjs+Lchqm49adhAKB5cdcng5ZXgt6x7Jgvi0ZorUtU=
github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
github.com/palantir/stacktrace v0.0.0-20161112013806-78658fd2d177 h1:nRlQD0u1871kaznCnn1EvYiMbum36v7hw1DLPEjds4o=
From 3c70fab0547b2507c4d3e3bd64b80002b90f4110 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 1 Sep 2025 00:07:08 +0000
Subject: [PATCH 004/215] fix(deps): bump github.com/stretchr/testify in /api
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.10.0 to 1.11.1.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](https://github.com/stretchr/testify/compare/v1.10.0...v1.11.1)
---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
dependency-version: 1.11.1
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 2 +-
api/go.sum | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index 38db6836..4dd2c044 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -40,7 +40,7 @@ require (
github.com/redis/go-redis/extra/redisotel/v9 v9.11.0
github.com/redis/go-redis/v9 v9.11.0
github.com/rs/zerolog v1.34.0
- github.com/stretchr/testify v1.10.0
+ github.com/stretchr/testify v1.11.1
github.com/swaggo/swag v1.16.6
github.com/thedevsaddam/govalidator v1.9.10
github.com/uptrace/uptrace-go v1.37.0
diff --git a/api/go.sum b/api/go.sum
index d23dae81..19e83153 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -300,8 +300,8 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
-github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
-github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
+github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
+github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
github.com/swaggo/files/v2 v2.0.2 h1:Bq4tgS/yxLB/3nwOMcul5oLEUKa877Ykgz3CJMVbQKU=
github.com/swaggo/files/v2 v2.0.2/go.mod h1:TVqetIzZsO9OhHX1Am9sRf9LdrFZqoK49N37KON/jr0=
github.com/swaggo/swag v1.16.6 h1:qBNcx53ZaX+M5dxVyTrgQ0PJ/ACK+NzhwcbieTt+9yI=
From 9bcc4c0c15c6aa1503958c83a6efc8d30e6ffa34 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 1 Sep 2025 00:07:16 +0000
Subject: [PATCH 005/215] fix(deps): bump google.golang.org/api from 0.244.0 to
0.248.0 in /api
Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.244.0 to 0.248.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](https://github.com/googleapis/google-api-go-client/compare/v0.244.0...v0.248.0)
---
updated-dependencies:
- dependency-name: google.golang.org/api
dependency-version: 0.248.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 22 +++++++++++-----------
api/go.sum | 44 ++++++++++++++++++++++----------------------
2 files changed, 33 insertions(+), 33 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index 38db6836..04596dfa 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -50,8 +50,8 @@ require (
go.opentelemetry.io/otel/sdk v1.37.0
go.opentelemetry.io/otel/sdk/metric v1.37.0
go.opentelemetry.io/otel/trace v1.37.0
- google.golang.org/api v0.244.0
- google.golang.org/protobuf v1.36.6
+ google.golang.org/api v0.248.0
+ google.golang.org/protobuf v1.36.7
gorm.io/driver/postgres v1.6.0
gorm.io/gorm v1.30.1
gorm.io/plugin/opentelemetry v0.1.16
@@ -60,9 +60,9 @@ require (
require (
cel.dev/expr v0.24.0 // indirect
cloud.google.com/go v0.121.3 // indirect
- cloud.google.com/go/auth v0.16.3 // indirect
+ cloud.google.com/go/auth v0.16.5 // indirect
cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect
- cloud.google.com/go/compute/metadata v0.7.0 // indirect
+ cloud.google.com/go/compute/metadata v0.8.0 // indirect
cloud.google.com/go/firestore v1.18.0 // indirect
cloud.google.com/go/iam v1.5.2 // indirect
cloud.google.com/go/longrunning v0.6.7 // indirect
@@ -166,20 +166,20 @@ require (
go.opentelemetry.io/proto/otlp v1.7.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.0 // indirect
- golang.org/x/crypto v0.40.0 // indirect
+ golang.org/x/crypto v0.41.0 // indirect
golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b // indirect
- golang.org/x/mod v0.25.0 // indirect
- golang.org/x/net v0.42.0 // indirect
+ golang.org/x/mod v0.26.0 // indirect
+ golang.org/x/net v0.43.0 // indirect
golang.org/x/oauth2 v0.30.0 // indirect
golang.org/x/sync v0.16.0 // indirect
- golang.org/x/sys v0.34.0 // indirect
- golang.org/x/text v0.27.0 // indirect
+ golang.org/x/sys v0.35.0 // indirect
+ golang.org/x/text v0.28.0 // indirect
golang.org/x/time v0.12.0 // indirect
- golang.org/x/tools v0.34.0 // indirect
+ golang.org/x/tools v0.35.0 // indirect
google.golang.org/appengine v1.6.8 // indirect
google.golang.org/genproto v0.0.0-20250603155806-513f23925822 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20250707201910-8d1bb00bc6a7 // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20250728155136-f173205681a0 // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20250818200422-3122310a409c // indirect
google.golang.org/grpc v1.74.2 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
gorm.io/driver/clickhouse v0.7.0 // indirect
diff --git a/api/go.sum b/api/go.sum
index d23dae81..dedcb1b5 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -4,14 +4,14 @@ cel.dev/expr v0.24.0 h1:56OvJKSH3hDGL0ml5uSxZmz3/3Pq4tJ+fb1unVLAFcY=
cel.dev/expr v0.24.0/go.mod h1:hLPLo1W4QUmuYdA72RBX06QTs6MXw941piREPl3Yfiw=
cloud.google.com/go v0.121.3 h1:84RD+hQXNdY5Sw/MWVAx5O9Aui/rd5VQ9HEcdN19afo=
cloud.google.com/go v0.121.3/go.mod h1:6vWF3nJWRrEUv26mMB3FEIU/o1MQNVPG1iHdisa2SJc=
-cloud.google.com/go/auth v0.16.3 h1:kabzoQ9/bobUmnseYnBO6qQG7q4a/CffFRlJSxv2wCc=
-cloud.google.com/go/auth v0.16.3/go.mod h1:NucRGjaXfzP1ltpcQ7On/VTZ0H4kWB5Jy+Y9Dnm76fA=
+cloud.google.com/go/auth v0.16.5 h1:mFWNQ2FEVWAliEQWpAdH80omXFokmrnbDhUS9cBywsI=
+cloud.google.com/go/auth v0.16.5/go.mod h1:utzRfHMP+Vv0mpOkTRQoWD2q3BatTOoWbA7gCc2dUhQ=
cloud.google.com/go/auth/oauth2adapt v0.2.8 h1:keo8NaayQZ6wimpNSmW5OPc283g65QNIiLpZnkHRbnc=
cloud.google.com/go/auth/oauth2adapt v0.2.8/go.mod h1:XQ9y31RkqZCcwJWNSx2Xvric3RrU88hAYYbjDWYDL+c=
cloud.google.com/go/cloudtasks v1.13.6 h1:Fwan19UiNoFD+3KY0MnNHE5DyixOxNzS1mZ4ChOdpy0=
cloud.google.com/go/cloudtasks v1.13.6/go.mod h1:/IDaQqGKMixD+ayM43CfsvWF2k36GeomEuy9gL4gLmU=
-cloud.google.com/go/compute/metadata v0.7.0 h1:PBWF+iiAerVNe8UCHxdOt6eHLVc3ydFeOCw78U8ytSU=
-cloud.google.com/go/compute/metadata v0.7.0/go.mod h1:j5MvL9PprKL39t166CoB1uVHfQMs4tFQZZcKwksXUjo=
+cloud.google.com/go/compute/metadata v0.8.0 h1:HxMRIbao8w17ZX6wBnjhcDkW6lTFpgcaobyVfZWqRLA=
+cloud.google.com/go/compute/metadata v0.8.0/go.mod h1:sYOGTp851OV9bOFJ9CH7elVvyzopvWQFNNghtDQ/Biw=
cloud.google.com/go/firestore v1.18.0 h1:cuydCaLS7Vl2SatAeivXyhbhDEIR8BDmtn4egDhIn2s=
cloud.google.com/go/firestore v1.18.0/go.mod h1:5ye0v48PhseZBdcl0qbl3uttu7FIEwEYVaWm0UIEOEU=
cloud.google.com/go/iam v1.5.2 h1:qgFRAGEmd8z6dJ/qyEchAuL9jpswyODjA2lS+w234g8=
@@ -401,8 +401,8 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY
golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
-golang.org/x/crypto v0.40.0 h1:r4x+VvoG5Fm+eJcxMaY8CQM7Lb0l1lsmjGBQ6s8BfKM=
-golang.org/x/crypto v0.40.0/go.mod h1:Qr1vMER5WyS2dfPHAlsOj01wgLbsyWtFn/aY+5+ZdxY=
+golang.org/x/crypto v0.41.0 h1:WKYxWedPGCTVVl5+WHSSrOBT0O8lx32+zxmHxijgXp4=
+golang.org/x/crypto v0.41.0/go.mod h1:pO5AFd7FA68rFak7rOAGVuygIISepHftHnr8dr6+sUc=
golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b h1:M2rDM6z3Fhozi9O7NWsxAkg/yqS/lQJ6PmkyIV3YP+o=
golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b/go.mod h1:3//PLf8L/X+8b4vuAfHzxeRUl04Adcb341+IGKfnqS8=
golang.org/x/image v0.25.0 h1:Y6uW6rH1y5y/LK1J8BPWZtr6yZ7hrsy6hFrXjgsc2fQ=
@@ -414,8 +414,8 @@ golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
-golang.org/x/mod v0.25.0 h1:n7a+ZbQKQA/Ysbyb0/6IbB1H/X41mKgbhfv7AfG/44w=
-golang.org/x/mod v0.25.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww=
+golang.org/x/mod v0.26.0 h1:EGMPT//Ezu+ylkCijjPc+f4Aih7sZvaAr+O3EHBxvZg=
+golang.org/x/mod v0.26.0/go.mod h1:/j6NAhSk8iQ723BGAUyoAcn7SlD7s15Dp9Nd/SfeaFQ=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -429,8 +429,8 @@ golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
-golang.org/x/net v0.42.0 h1:jzkYrhi3YQWD6MLBJcsklgQsoAcw89EcZbJw8Z614hs=
-golang.org/x/net v0.42.0/go.mod h1:FF1RA5d3u7nAYA4z2TkclSCKh68eSXtiFwcWQpPXdt8=
+golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE=
+golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg=
golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI=
golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -461,8 +461,8 @@ golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
-golang.org/x/sys v0.34.0 h1:H5Y5sJ2L2JRdyv7ROF1he/lPdvFsd0mJHFw2ThKHxLA=
-golang.org/x/sys v0.34.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
+golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI=
+golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
@@ -483,8 +483,8 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
-golang.org/x/text v0.27.0 h1:4fGWRpyh641NLlecmyl4LOe6yDdfaYNrGb2zdfo4JV4=
-golang.org/x/text v0.27.0/go.mod h1:1D28KMCvyooCX9hBiosv5Tz/+YLxj0j7XhWjpSUF7CU=
+golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng=
+golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU=
golang.org/x/time v0.12.0 h1:ScB/8o8olJvc+CQPWrK3fPZNfh7qgwCrY0zJmoEQLSE=
golang.org/x/time v0.12.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -495,29 +495,29 @@ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
-golang.org/x/tools v0.34.0 h1:qIpSLOxeCYGg9TrcJokLBG4KFA6d795g0xkBkiESGlo=
-golang.org/x/tools v0.34.0/go.mod h1:pAP9OwEaY1CAW3HOmg3hLZC5Z0CCmzjAF2UQMSqNARg=
+golang.org/x/tools v0.35.0 h1:mBffYraMEf7aa0sB+NuKnuCy8qI/9Bughn8dC2Gu5r0=
+golang.org/x/tools v0.35.0/go.mod h1:NKdj5HkL/73byiZSJjqJgKn3ep7KjFkBOkR/Hps3VPw=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-google.golang.org/api v0.244.0 h1:lpkP8wVibSKr++NCD36XzTk/IzeKJ3klj7vbj+XU5pE=
-google.golang.org/api v0.244.0/go.mod h1:dMVhVcylamkirHdzEBAIQWUCgqY885ivNeZYd7VAVr8=
+google.golang.org/api v0.248.0 h1:hUotakSkcwGdYUqzCRc5yGYsg4wXxpkKlW5ryVqvC1Y=
+google.golang.org/api v0.248.0/go.mod h1:yAFUAF56Li7IuIQbTFoLwXTCI6XCFKueOlS7S9e4F9k=
google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM=
google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds=
google.golang.org/genproto v0.0.0-20250603155806-513f23925822 h1:rHWScKit0gvAPuOnu87KpaYtjK5zBMLcULh7gxkCXu4=
google.golang.org/genproto v0.0.0-20250603155806-513f23925822/go.mod h1:HubltRL7rMh0LfnQPkMH4NPDFEWp0jw3vixw7jEM53s=
google.golang.org/genproto/googleapis/api v0.0.0-20250707201910-8d1bb00bc6a7 h1:FiusG7LWj+4byqhbvmB+Q93B/mOxJLN2DTozDuZm4EU=
google.golang.org/genproto/googleapis/api v0.0.0-20250707201910-8d1bb00bc6a7/go.mod h1:kXqgZtrWaf6qS3jZOCnCH7WYfrvFjkC51bM8fz3RsCA=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20250728155136-f173205681a0 h1:MAKi5q709QWfnkkpNQ0M12hYJ1+e8qYVDyowc4U1XZM=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20250728155136-f173205681a0/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20250818200422-3122310a409c h1:qXWI/sQtv5UKboZ/zUk7h+mrf/lXORyI+n9DKDAusdg=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20250818200422-3122310a409c/go.mod h1:gw1tLEfykwDz2ET4a12jcXt4couGAm7IwsVaTy0Sflo=
google.golang.org/grpc v1.74.2 h1:WoosgB65DlWVC9FqI82dGsZhWFNBSLjQ84bjROOpMu4=
google.golang.org/grpc v1.74.2/go.mod h1:CtQ+BGjaAIXHs/5YS3i473GqwBBa1zGQNevxdeBEXrM=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
-google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY=
-google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
+google.golang.org/protobuf v1.36.7 h1:IgrO7UwFQGJdRNXH/sQux4R1Dj1WAKcLElzeeRaXV2A=
+google.golang.org/protobuf v1.36.7/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
From b015fed8560ac3b0d071c4bcd34ae13b5ddf0a86 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 1 Sep 2025 00:07:20 +0000
Subject: [PATCH 006/215] fix(deps): bump
github.com/redis/go-redis/extra/redisotel/v9 in /api
Bumps [github.com/redis/go-redis/extra/redisotel/v9](https://github.com/redis/go-redis) from 9.11.0 to 9.12.1.
- [Release notes](https://github.com/redis/go-redis/releases)
- [Changelog](https://github.com/redis/go-redis/blob/master/RELEASE-NOTES.md)
- [Commits](https://github.com/redis/go-redis/compare/v9.11.0...v9.12.1)
---
updated-dependencies:
- dependency-name: github.com/redis/go-redis/extra/redisotel/v9
dependency-version: 9.12.1
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 6 +++---
api/go.sum | 12 ++++++------
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index 38db6836..09b2fec0 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -37,8 +37,8 @@ require (
github.com/patrickmn/go-cache v2.1.0+incompatible
github.com/pkg/errors v0.9.1
github.com/pusher/pusher-http-go/v5 v5.1.1
- github.com/redis/go-redis/extra/redisotel/v9 v9.11.0
- github.com/redis/go-redis/v9 v9.11.0
+ github.com/redis/go-redis/extra/redisotel/v9 v9.12.1
+ github.com/redis/go-redis/v9 v9.12.1
github.com/rs/zerolog v1.34.0
github.com/stretchr/testify v1.10.0
github.com/swaggo/swag v1.16.6
@@ -132,7 +132,7 @@ require (
github.com/pierrec/lz4/v4 v4.1.22 // indirect
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
- github.com/redis/go-redis/extra/rediscmd/v9 v9.11.0 // indirect
+ github.com/redis/go-redis/extra/rediscmd/v9 v9.12.1 // indirect
github.com/richardlehane/mscfb v1.0.4 // indirect
github.com/richardlehane/msoleps v1.0.4 // indirect
github.com/rivo/uniseg v0.4.7 // indirect
diff --git a/api/go.sum b/api/go.sum
index d23dae81..e326a5e5 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -267,12 +267,12 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pusher/pusher-http-go/v5 v5.1.1 h1:ZLUGdLA8yXMvByafIkS47nvuXOHrYmlh4bsQvuZnYVQ=
github.com/pusher/pusher-http-go/v5 v5.1.1/go.mod h1:Ibji4SGoUDtOy7CVRhCiEpgy+n5Xv6hSL/QqYOhmWW8=
-github.com/redis/go-redis/extra/rediscmd/v9 v9.11.0 h1:vP5CH2rJ3L4yk3o8FdXqiPL1lGl5APjHcxk5/OT6H0Q=
-github.com/redis/go-redis/extra/rediscmd/v9 v9.11.0/go.mod h1:/2yj0RD4xjZQ7wOg9u7gVoBM0IgMGrHunAql1hr1NDg=
-github.com/redis/go-redis/extra/redisotel/v9 v9.11.0 h1:dMNmusapfQefntfUqAYAvaVJMrJCdKUaQoPSZtd99WU=
-github.com/redis/go-redis/extra/redisotel/v9 v9.11.0/go.mod h1:Yy5oaeVwWj7KMu6Mga/i4imlXFvgitQWN5HFiT5JqoE=
-github.com/redis/go-redis/v9 v9.11.0 h1:E3S08Gl/nJNn5vkxd2i78wZxWAPNZgUNTp8WIJUAiIs=
-github.com/redis/go-redis/v9 v9.11.0/go.mod h1:huWgSWd8mW6+m0VPhJjSSQ+d6Nh1VICQ6Q5lHuCH/Iw=
+github.com/redis/go-redis/extra/rediscmd/v9 v9.12.1 h1:DR14pbiA9cjS5btoGU7oKuBcaYGzpxMsAyswO6mHqSk=
+github.com/redis/go-redis/extra/rediscmd/v9 v9.12.1/go.mod h1:mWGfYiY4x0lamv7XbhF0M1hxwa6EkfxzEpVsv9yG7PY=
+github.com/redis/go-redis/extra/redisotel/v9 v9.12.1 h1:2MioZj2s8Ovom2Yrpb/bBCJ88fR9L0MfMq2wAH44R8M=
+github.com/redis/go-redis/extra/redisotel/v9 v9.12.1/go.mod h1:nw1BvV+EW5TmXbfUOhFsPETFR390JLmtdWut88T1VAE=
+github.com/redis/go-redis/v9 v9.12.1 h1:k5iquqv27aBtnTm2tIkROUDp8JBXhXZIVu1InSgvovg=
+github.com/redis/go-redis/v9 v9.12.1/go.mod h1:huWgSWd8mW6+m0VPhJjSSQ+d6Nh1VICQ6Q5lHuCH/Iw=
github.com/richardlehane/mscfb v1.0.4 h1:WULscsljNPConisD5hR0+OyZjwK46Pfyr6mPu5ZawpM=
github.com/richardlehane/mscfb v1.0.4/go.mod h1:YzVpcZg9czvAuhk9T+a3avCpcFPMUWm7gK3DypaEsUk=
github.com/richardlehane/msoleps v1.0.1/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg=
From 6930b4db4f0f853a23506e66e4b3d99a8dc143fd Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 1 Sep 2025 02:34:28 +0000
Subject: [PATCH 007/215] fix(deps): bump google.golang.org/protobuf from
1.36.6 to 1.36.8 in /api
Bumps google.golang.org/protobuf from 1.36.6 to 1.36.8.
---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
dependency-version: 1.36.8
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 2 +-
api/go.sum | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index 9e3e82dd..31d8ae6b 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -51,7 +51,7 @@ require (
go.opentelemetry.io/otel/sdk/metric v1.37.0
go.opentelemetry.io/otel/trace v1.37.0
google.golang.org/api v0.248.0
- google.golang.org/protobuf v1.36.7
+ google.golang.org/protobuf v1.36.8
gorm.io/driver/postgres v1.6.0
gorm.io/gorm v1.30.1
gorm.io/plugin/opentelemetry v0.1.16
diff --git a/api/go.sum b/api/go.sum
index e11258e1..ff1140c5 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -516,8 +516,8 @@ google.golang.org/grpc v1.74.2/go.mod h1:CtQ+BGjaAIXHs/5YS3i473GqwBBa1zGQNevxdeB
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
-google.golang.org/protobuf v1.36.7 h1:IgrO7UwFQGJdRNXH/sQux4R1Dj1WAKcLElzeeRaXV2A=
-google.golang.org/protobuf v1.36.7/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
+google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc=
+google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
From de3bc83f921e20bc102d040f3a429224551fe704 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 1 Sep 2025 02:34:39 +0000
Subject: [PATCH 008/215] fix(deps): bump go.opentelemetry.io/otel from 1.37.0
to 1.38.0 in /api
Bumps [go.opentelemetry.io/otel](https://github.com/open-telemetry/opentelemetry-go) from 1.37.0 to 1.38.0.
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.37.0...v1.38.0)
---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel
dependency-version: 1.38.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 8 ++++----
api/go.sum | 16 ++++++++--------
2 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index 69e4a6c4..f48be202 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -40,16 +40,16 @@ require (
github.com/redis/go-redis/extra/redisotel/v9 v9.12.1
github.com/redis/go-redis/v9 v9.12.1
github.com/rs/zerolog v1.34.0
- github.com/stretchr/testify v1.10.0
+ github.com/stretchr/testify v1.11.1
github.com/swaggo/swag v1.16.6
github.com/thedevsaddam/govalidator v1.9.10
github.com/uptrace/uptrace-go v1.37.0
github.com/xuri/excelize/v2 v2.9.1
- go.opentelemetry.io/otel v1.37.0
- go.opentelemetry.io/otel/metric v1.37.0
+ go.opentelemetry.io/otel v1.38.0
+ go.opentelemetry.io/otel/metric v1.38.0
go.opentelemetry.io/otel/sdk v1.37.0
go.opentelemetry.io/otel/sdk/metric v1.37.0
- go.opentelemetry.io/otel/trace v1.37.0
+ go.opentelemetry.io/otel/trace v1.38.0
google.golang.org/api v0.248.0
google.golang.org/protobuf v1.36.7
gorm.io/driver/postgres v1.6.0
diff --git a/api/go.sum b/api/go.sum
index d667889f..63c10673 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -300,8 +300,8 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
-github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
-github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
+github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
+github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
github.com/swaggo/files/v2 v2.0.2 h1:Bq4tgS/yxLB/3nwOMcul5oLEUKa877Ykgz3CJMVbQKU=
github.com/swaggo/files/v2 v2.0.2/go.mod h1:TVqetIzZsO9OhHX1Am9sRf9LdrFZqoK49N37KON/jr0=
github.com/swaggo/swag v1.16.6 h1:qBNcx53ZaX+M5dxVyTrgQ0PJ/ACK+NzhwcbieTt+9yI=
@@ -353,8 +353,8 @@ go.opentelemetry.io/contrib/instrumentation/runtime v0.62.0 h1:ZIt0ya9/y4WyRIzfL
go.opentelemetry.io/contrib/instrumentation/runtime v0.62.0/go.mod h1:F1aJ9VuiKWOlWwKdTYDUp1aoS0HzQxg38/VLxKmhm5U=
go.opentelemetry.io/contrib/propagators/b3 v1.19.0 h1:ulz44cpm6V5oAeg5Aw9HyqGFMS6XM7untlMEhD7YzzA=
go.opentelemetry.io/contrib/propagators/b3 v1.19.0/go.mod h1:OzCmE2IVS+asTI+odXQstRGVfXQ4bXv9nMBRK0nNyqQ=
-go.opentelemetry.io/otel v1.37.0 h1:9zhNfelUvx0KBfu/gb+ZgeAfAgtWrfHJZcAqFC228wQ=
-go.opentelemetry.io/otel v1.37.0/go.mod h1:ehE/umFRLnuLa/vSccNq9oS1ErUlkkK71gMcN34UG8I=
+go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8=
+go.opentelemetry.io/otel v1.38.0/go.mod h1:zcmtmQ1+YmQM9wrNsTGV/q/uyusom3P8RxwExxkZhjM=
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.13.0 h1:zUfYw8cscHHLwaY8Xz3fiJu+R59xBnkgq2Zr1lwmK/0=
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.13.0/go.mod h1:514JLMCcFLQFS8cnTepOk6I09cKWJ5nGHBxHrMJ8Yfg=
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.37.0 h1:9PgnL3QNlj10uGxExowIDIZu66aVBwWhXmbOp1pa6RA=
@@ -369,8 +369,8 @@ go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.37.0 h1:SNhVp/9q4Go/XHB
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.37.0/go.mod h1:tx8OOlGH6R4kLV67YaYO44GFXloEjGPZuMjEkaaqIp4=
go.opentelemetry.io/otel/log v0.13.0 h1:yoxRoIZcohB6Xf0lNv9QIyCzQvrtGZklVbdCoyb7dls=
go.opentelemetry.io/otel/log v0.13.0/go.mod h1:INKfG4k1O9CL25BaM1qLe0zIedOpvlS5Z7XgSbmN83E=
-go.opentelemetry.io/otel/metric v1.37.0 h1:mvwbQS5m0tbmqML4NqK+e3aDiO02vsf/WgbsdpcPoZE=
-go.opentelemetry.io/otel/metric v1.37.0/go.mod h1:04wGrZurHYKOc+RKeye86GwKiTb9FKm1WHtO+4EVr2E=
+go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgfrA6WpA=
+go.opentelemetry.io/otel/metric v1.38.0/go.mod h1:kB5n/QoRM8YwmUahxvI3bO34eVtQf2i4utNVLr9gEmI=
go.opentelemetry.io/otel/oteltest v1.0.0-RC3 h1:MjaeegZTaX0Bv9uB9CrdVjOFM/8slRjReoWoV9xDCpY=
go.opentelemetry.io/otel/oteltest v1.0.0-RC3/go.mod h1:xpzajI9JBRr7gX63nO6kAmImmYIAtuQblZ36Z+LfCjE=
go.opentelemetry.io/otel/sdk v1.37.0 h1:ItB0QUqnjesGRvNcmAcU0LyvkVyGJ2xftD29bWdDvKI=
@@ -381,8 +381,8 @@ go.opentelemetry.io/otel/sdk/log/logtest v0.13.0 h1:9yio6AFZ3QD9j9oqshV1Ibm9gPLl
go.opentelemetry.io/otel/sdk/log/logtest v0.13.0/go.mod h1:QOGiAJHl+fob8Nu85ifXfuQYmJTFAvcrxL6w5/tu168=
go.opentelemetry.io/otel/sdk/metric v1.37.0 h1:90lI228XrB9jCMuSdA0673aubgRobVZFhbjxHHspCPc=
go.opentelemetry.io/otel/sdk/metric v1.37.0/go.mod h1:cNen4ZWfiD37l5NhS+Keb5RXVWZWpRE+9WyVCpbo5ps=
-go.opentelemetry.io/otel/trace v1.37.0 h1:HLdcFNbRQBE2imdSEgm/kwqmQj1Or1l/7bW6mxVK7z4=
-go.opentelemetry.io/otel/trace v1.37.0/go.mod h1:TlgrlQ+PtQO5XFerSPUYG0JSgGyryXewPGyayAWSBS0=
+go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE=
+go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs=
go.opentelemetry.io/proto/otlp v1.7.0 h1:jX1VolD6nHuFzOYso2E73H85i92Mv8JQYk0K9vz09os=
go.opentelemetry.io/proto/otlp v1.7.0/go.mod h1:fSKjH6YJ7HDlwzltzyMj036AJ3ejJLCgCSHGj4efDDo=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
From 01b5346c0c6ddc0a882db8f26f336dea7924b7a0 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 1 Sep 2025 02:36:27 +0000
Subject: [PATCH 009/215] fix(deps): bump go.opentelemetry.io/otel/sdk in /api
Bumps [go.opentelemetry.io/otel/sdk](https://github.com/open-telemetry/opentelemetry-go) from 1.37.0 to 1.38.0.
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.37.0...v1.38.0)
---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel/sdk
dependency-version: 1.38.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 4 ++--
api/go.sum | 8 ++++----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index 295f09db..0fd7efb7 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -47,8 +47,8 @@ require (
github.com/xuri/excelize/v2 v2.9.1
go.opentelemetry.io/otel v1.38.0
go.opentelemetry.io/otel/metric v1.38.0
- go.opentelemetry.io/otel/sdk v1.37.0
- go.opentelemetry.io/otel/sdk/metric v1.37.0
+ go.opentelemetry.io/otel/sdk v1.38.0
+ go.opentelemetry.io/otel/sdk/metric v1.38.0
go.opentelemetry.io/otel/trace v1.38.0
google.golang.org/api v0.248.0
google.golang.org/protobuf v1.36.8
diff --git a/api/go.sum b/api/go.sum
index 4aa5e2cf..0e3f68f7 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -373,14 +373,14 @@ go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgf
go.opentelemetry.io/otel/metric v1.38.0/go.mod h1:kB5n/QoRM8YwmUahxvI3bO34eVtQf2i4utNVLr9gEmI=
go.opentelemetry.io/otel/oteltest v1.0.0-RC3 h1:MjaeegZTaX0Bv9uB9CrdVjOFM/8slRjReoWoV9xDCpY=
go.opentelemetry.io/otel/oteltest v1.0.0-RC3/go.mod h1:xpzajI9JBRr7gX63nO6kAmImmYIAtuQblZ36Z+LfCjE=
-go.opentelemetry.io/otel/sdk v1.37.0 h1:ItB0QUqnjesGRvNcmAcU0LyvkVyGJ2xftD29bWdDvKI=
-go.opentelemetry.io/otel/sdk v1.37.0/go.mod h1:VredYzxUvuo2q3WRcDnKDjbdvmO0sCzOvVAiY+yUkAg=
+go.opentelemetry.io/otel/sdk v1.38.0 h1:l48sr5YbNf2hpCUj/FoGhW9yDkl+Ma+LrVl8qaM5b+E=
+go.opentelemetry.io/otel/sdk v1.38.0/go.mod h1:ghmNdGlVemJI3+ZB5iDEuk4bWA3GkTpW+DOoZMYBVVg=
go.opentelemetry.io/otel/sdk/log v0.13.0 h1:I3CGUszjM926OphK8ZdzF+kLqFvfRY/IIoFq/TjwfaQ=
go.opentelemetry.io/otel/sdk/log v0.13.0/go.mod h1:lOrQyCCXmpZdN7NchXb6DOZZa1N5G1R2tm5GMMTpDBw=
go.opentelemetry.io/otel/sdk/log/logtest v0.13.0 h1:9yio6AFZ3QD9j9oqshV1Ibm9gPLlHNxurno5BreMtIA=
go.opentelemetry.io/otel/sdk/log/logtest v0.13.0/go.mod h1:QOGiAJHl+fob8Nu85ifXfuQYmJTFAvcrxL6w5/tu168=
-go.opentelemetry.io/otel/sdk/metric v1.37.0 h1:90lI228XrB9jCMuSdA0673aubgRobVZFhbjxHHspCPc=
-go.opentelemetry.io/otel/sdk/metric v1.37.0/go.mod h1:cNen4ZWfiD37l5NhS+Keb5RXVWZWpRE+9WyVCpbo5ps=
+go.opentelemetry.io/otel/sdk/metric v1.38.0 h1:aSH66iL0aZqo//xXzQLYozmWrXxyFkBJ6qT5wthqPoM=
+go.opentelemetry.io/otel/sdk/metric v1.38.0/go.mod h1:dg9PBnW9XdQ1Hd6ZnRz689CbtrUp0wMMs9iPcgT9EZA=
go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE=
go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs=
go.opentelemetry.io/proto/otlp v1.7.0 h1:jX1VolD6nHuFzOYso2E73H85i92Mv8JQYk0K9vz09os=
From 6e84044b0de65c719ce061a98371b19c39c7a018 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Tue, 16 Sep 2025 11:15:13 +0300
Subject: [PATCH 010/215] Fix the multiplart form data
---
api/docs/docs.go | 19 ++++++++++++++-----
api/docs/swagger.json | 19 ++++++++++++++-----
api/docs/swagger.yaml | 19 +++++++++++++------
api/pkg/handlers/bulk_message_handler.go | 7 ++++---
4 files changed, 45 insertions(+), 19 deletions(-)
diff --git a/api/docs/docs.go b/api/docs/docs.go
index 908d34c3..21f3a971 100644
--- a/api/docs/docs.go
+++ b/api/docs/docs.go
@@ -11,7 +11,7 @@ const docTemplate = `{
"description": "{{escape .Description}}",
"title": "{{.Title}}",
"contact": {
- "name": "HTTP SMS",
+ "name": "support@httpsms.com",
"email": "support@httpsms.com"
},
"license": {
@@ -151,9 +151,9 @@ const docTemplate = `{
"ApiKeyAuth": []
}
],
- "description": "Sends bulk SMS messages to multiple users from a CSV file.",
+ "description": "Sends bulk SMS messages to multiple users from a CSV or Excel file.",
"consumes": [
- "application/json"
+ "multipart/form-data"
],
"produces": [
"application/json"
@@ -162,6 +162,15 @@ const docTemplate = `{
"BulkSMS"
],
"summary": "Store bulk SMS file",
+ "parameters": [
+ {
+ "type": "file",
+ "description": "The Excel or CSV file formatted according to the templates",
+ "name": "document",
+ "in": "formData",
+ "required": true
+ }
+ ],
"responses": {
"202": {
"description": "Accepted",
@@ -3630,7 +3639,7 @@ const docTemplate = `{
"example": "153554b5-ae44-44a0-8f4f-7bbac5657ad4"
},
"send_at": {
- "description": "SendAt is an optional parameter used to schedule a message to be sent at a later time",
+ "description": "SendAt is an optional parameter used to schedule a message to be sent in the future. The time is considered to be in your profile's local timezone.",
"type": "string",
"example": "2022-06-05T14:26:09.527976+03:00"
},
@@ -4362,7 +4371,7 @@ var SwaggerInfo = &swag.Spec{
BasePath: "/v1",
Schemes: []string{"https"},
Title: "httpSMS API Reference",
- Description: "API to send SMS messages using android [SmsManager](https://developer.android.com/reference/android/telephony/SmsManager) via HTTP",
+ Description: "Use your Android phone to send and receive SMS messages via a simple programmable API with end-to-end encryption.",
InfoInstanceName: "swagger",
SwaggerTemplate: docTemplate,
}
diff --git a/api/docs/swagger.json b/api/docs/swagger.json
index fb49b100..5cef4eb0 100644
--- a/api/docs/swagger.json
+++ b/api/docs/swagger.json
@@ -2,10 +2,10 @@
"schemes": ["https"],
"swagger": "2.0",
"info": {
- "description": "API to send SMS messages using android [SmsManager](https://developer.android.com/reference/android/telephony/SmsManager) via HTTP",
+ "description": "Use your Android phone to send and receive SMS messages via a simple programmable API with end-to-end encryption.",
"title": "httpSMS API Reference",
"contact": {
- "name": "HTTP SMS",
+ "name": "support@httpsms.com",
"email": "support@httpsms.com"
},
"license": {
@@ -133,11 +133,20 @@
"ApiKeyAuth": []
}
],
- "description": "Sends bulk SMS messages to multiple users from a CSV file.",
- "consumes": ["application/json"],
+ "description": "Sends bulk SMS messages to multiple users from a CSV or Excel file.",
+ "consumes": ["multipart/form-data"],
"produces": ["application/json"],
"tags": ["BulkSMS"],
"summary": "Store bulk SMS file",
+ "parameters": [
+ {
+ "type": "file",
+ "description": "The Excel or CSV file formatted according to the templates",
+ "name": "document",
+ "in": "formData",
+ "required": true
+ }
+ ],
"responses": {
"202": {
"description": "Accepted",
@@ -3323,7 +3332,7 @@
"example": "153554b5-ae44-44a0-8f4f-7bbac5657ad4"
},
"send_at": {
- "description": "SendAt is an optional parameter used to schedule a message to be sent at a later time",
+ "description": "SendAt is an optional parameter used to schedule a message to be sent in the future. The time is considered to be in your profile's local timezone.",
"type": "string",
"example": "2022-06-05T14:26:09.527976+03:00"
},
diff --git a/api/docs/swagger.yaml b/api/docs/swagger.yaml
index a4124b82..efc316c4 100644
--- a/api/docs/swagger.yaml
+++ b/api/docs/swagger.yaml
@@ -658,7 +658,8 @@ definitions:
send_at:
description:
SendAt is an optional parameter used to schedule a message to
- be sent at a later time
+ be sent in the future. The time is considered to be in your profile's local
+ timezone.
example: "2022-06-05T14:26:09.527976+03:00"
type: string
to:
@@ -1185,10 +1186,10 @@ host: api.httpsms.com
info:
contact:
email: support@httpsms.com
- name: HTTP SMS
+ name: support@httpsms.com
description:
- API to send SMS messages using android [SmsManager](https://developer.android.com/reference/android/telephony/SmsManager)
- via HTTP
+ Use your Android phone to send and receive SMS messages via a simple
+ programmable API with end-to-end encryption.
license:
name: AGPL-3.0
url: https://raw.githubusercontent.com/NdoleStudio/http-sms-manager/main/LICENSE
@@ -1280,8 +1281,14 @@ paths:
/bulk-messages:
post:
consumes:
- - application/json
- description: Sends bulk SMS messages to multiple users from a CSV file.
+ - multipart/form-data
+ description: Sends bulk SMS messages to multiple users from a CSV or Excel file.
+ parameters:
+ - description: The Excel or CSV file formatted according to the templates
+ in: formData
+ name: document
+ required: true
+ type: file
produces:
- application/json
responses:
diff --git a/api/pkg/handlers/bulk_message_handler.go b/api/pkg/handlers/bulk_message_handler.go
index 5299fb0f..1c85be4f 100644
--- a/api/pkg/handlers/bulk_message_handler.go
+++ b/api/pkg/handlers/bulk_message_handler.go
@@ -48,13 +48,14 @@ func (h *BulkMessageHandler) RegisterRoutes(router fiber.Router, middlewares ...
router.Post("/v1/bulk-messages", h.computeRoute(middlewares, h.Store)...)
}
-// Store sends bulk SMS messages from a CSV file.
+// Store sends bulk SMS messages from a CSV or Excel file.
// @Summary Store bulk SMS file
-// @Description Sends bulk SMS messages to multiple users from a CSV file.
+// @Description Sends bulk SMS messages to multiple users from a CSV or Excel file.
// @Security ApiKeyAuth
// @Tags BulkSMS
-// @Accept json
+// @Accept multipart/form-data
// @Produce json
+// @Param document formData file true "The Excel or CSV file formatted according to the templates"
// @Success 202 {object} responses.NoContent
// @Failure 400 {object} responses.BadRequest
// @Failure 401 {object} responses.Unauthorized
From 3fad1b353c7f8d9b4ab0efd4dab660a54549bd9a Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Tue, 16 Sep 2025 11:34:50 +0300
Subject: [PATCH 011/215] Add markdown in description
---
api/pkg/handlers/bulk_message_handler.go | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/api/pkg/handlers/bulk_message_handler.go b/api/pkg/handlers/bulk_message_handler.go
index 1c85be4f..c660eeaa 100644
--- a/api/pkg/handlers/bulk_message_handler.go
+++ b/api/pkg/handlers/bulk_message_handler.go
@@ -50,12 +50,12 @@ func (h *BulkMessageHandler) RegisterRoutes(router fiber.Router, middlewares ...
// Store sends bulk SMS messages from a CSV or Excel file.
// @Summary Store bulk SMS file
-// @Description Sends bulk SMS messages to multiple users from a CSV or Excel file.
+// @Description Sends bulk SMS messages to multiple users based on our [CSV template](https://httpsms.com/templates/httpsms-bulk.csv) or our [Excel template](https://httpsms.com/templates/httpsms-bulk.xlsx).
// @Security ApiKeyAuth
// @Tags BulkSMS
// @Accept multipart/form-data
// @Produce json
-// @Param document formData file true "The Excel or CSV file formatted according to the templates"
+// @Param document formData file true "The Excel or CSV file containing the messages to be sent."
// @Success 202 {object} responses.NoContent
// @Failure 400 {object} responses.BadRequest
// @Failure 401 {object} responses.Unauthorized
From 5bf56930218dd334a9b44ff5c731ef4688387be8 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Fri, 19 Sep 2025 09:28:16 +0300
Subject: [PATCH 012/215] Increase send time to 20 days into the future
---
api/pkg/requests/message_send_request.go | 2 +-
api/pkg/validators/bulk_message_handler_validator.go | 4 ++--
api/pkg/validators/message_handler_validator.go | 5 +++++
3 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/api/pkg/requests/message_send_request.go b/api/pkg/requests/message_send_request.go
index 0285807d..c07a9a28 100644
--- a/api/pkg/requests/message_send_request.go
+++ b/api/pkg/requests/message_send_request.go
@@ -22,7 +22,7 @@ type MessageSend struct {
Encrypted bool `json:"encrypted" example:"false" validate:"optional"`
// RequestID is an optional parameter used to track a request from the client's perspective
RequestID string `json:"request_id" example:"153554b5-ae44-44a0-8f4f-7bbac5657ad4" validate:"optional"`
- // SendAt is an optional parameter used to schedule a message to be sent in the future. The time is considered to be in your profile's local timezone.
+ // SendAt is an optional parameter used to schedule a message to be sent in the future. The time is considered to be in your profile's local timezone and you can queue messages for up to 20 days (480 hours) in the future.
SendAt *time.Time `json:"send_at" example:"2022-06-05T14:26:09.527976+03:00" validate:"optional"`
}
diff --git a/api/pkg/validators/bulk_message_handler_validator.go b/api/pkg/validators/bulk_message_handler_validator.go
index 4c31ea51..9881c53f 100644
--- a/api/pkg/validators/bulk_message_handler_validator.go
+++ b/api/pkg/validators/bulk_message_handler_validator.go
@@ -224,8 +224,8 @@ func (v *BulkMessageHandlerValidator) validateMessages(messages []*requests.Bulk
result.Add("document", fmt.Sprintf("Row [%d]: The message content must be less than 1024 characters.", index+2))
}
- if message.SendTime != nil && message.SendTime.After(time.Now().Add(24*time.Hour)) {
- result.Add("document", fmt.Sprintf("Row [%d]: The SendTime [%s] cannot be more than 24 hours in the future.", index+2, message.SendTime.Format(time.RFC3339)))
+ if message.SendTime != nil && message.SendTime.After(time.Now().Add(420*time.Hour)) {
+ result.Add("document", fmt.Sprintf("Row [%d]: The SendTime [%s] cannot be more than 20 days (420 hours) in the future.", index+2, message.SendTime.Format(time.RFC3339)))
}
}
return result
diff --git a/api/pkg/validators/message_handler_validator.go b/api/pkg/validators/message_handler_validator.go
index 78cfd024..33ab4dfe 100644
--- a/api/pkg/validators/message_handler_validator.go
+++ b/api/pkg/validators/message_handler_validator.go
@@ -5,6 +5,7 @@ import (
"fmt"
"net/url"
"strings"
+ "time"
"github.com/NdoleStudio/httpsms/pkg/repositories"
"github.com/NdoleStudio/httpsms/pkg/services"
@@ -105,6 +106,10 @@ func (validator MessageHandlerValidator) ValidateMessageSend(ctx context.Context
return result
}
+ if request.SendAt != nil && request.SendAt.After(time.Now().Add(480*time.Hour)) {
+ result.Add("send_at", "the scheduled time cannot be more than 20 days (480 hours) in the future")
+ }
+
_, err := validator.phoneService.Load(ctx, userID, request.From)
if stacktrace.GetCode(err) == repositories.ErrCodeNotFound {
result.Add("from", fmt.Sprintf("no phone found with with 'from' number [%s]. install the android app on your phone to start sending messages", request.From))
From add6c9e1823d0b16bc8a4d70d4210e9773099584 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 1 Oct 2025 00:02:32 +0000
Subject: [PATCH 013/215] fix(deps): bump google.golang.org/protobuf from
1.36.8 to 1.36.9 in /api
Bumps google.golang.org/protobuf from 1.36.8 to 1.36.9.
---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
dependency-version: 1.36.9
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 2 +-
api/go.sum | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index 0fd7efb7..22f4b86c 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -51,7 +51,7 @@ require (
go.opentelemetry.io/otel/sdk/metric v1.38.0
go.opentelemetry.io/otel/trace v1.38.0
google.golang.org/api v0.248.0
- google.golang.org/protobuf v1.36.8
+ google.golang.org/protobuf v1.36.9
gorm.io/driver/postgres v1.6.0
gorm.io/gorm v1.30.2
gorm.io/plugin/opentelemetry v0.1.16
diff --git a/api/go.sum b/api/go.sum
index 0e3f68f7..539cd84d 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -516,8 +516,8 @@ google.golang.org/grpc v1.74.2/go.mod h1:CtQ+BGjaAIXHs/5YS3i473GqwBBa1zGQNevxdeB
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
-google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc=
-google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU=
+google.golang.org/protobuf v1.36.9 h1:w2gp2mA27hUeUzj9Ex9FBjsBm40zfaDtEWow293U7Iw=
+google.golang.org/protobuf v1.36.9/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
From 83e461ebc338e4430132c93f0b17d9ef072c9980 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 1 Oct 2025 00:02:57 +0000
Subject: [PATCH 014/215] fix(deps): bump github.com/cloudevents/sdk-go/v2 in
/api
Bumps [github.com/cloudevents/sdk-go/v2](https://github.com/cloudevents/sdk-go) from 2.16.1 to 2.16.2.
- [Release notes](https://github.com/cloudevents/sdk-go/releases)
- [Commits](https://github.com/cloudevents/sdk-go/compare/v2.16.1...v2.16.2)
---
updated-dependencies:
- dependency-name: github.com/cloudevents/sdk-go/v2
dependency-version: 2.16.2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 2 +-
api/go.sum | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index 0fd7efb7..f5169698 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -13,7 +13,7 @@ require (
github.com/NdoleStudio/lemonsqueezy-go v1.2.4
github.com/avast/retry-go v3.0.0+incompatible
github.com/carlmjohnson/requests v0.24.3
- github.com/cloudevents/sdk-go/v2 v2.16.1
+ github.com/cloudevents/sdk-go/v2 v2.16.2
github.com/cockroachdb/cockroach-go/v2 v2.4.1
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
github.com/dgraph-io/ristretto v1.0.0
diff --git a/api/go.sum b/api/go.sum
index 0e3f68f7..66c270f3 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -76,8 +76,8 @@ github.com/cenkalti/backoff/v5 v5.0.2 h1:rIfFVxEf1QsI7E1ZHfp/B4DF/6QBAUhmgkxc0H7
github.com/cenkalti/backoff/v5 v5.0.2/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw=
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
-github.com/cloudevents/sdk-go/v2 v2.16.1 h1:G91iUdqvl88BZ1GYYr9vScTj5zzXSyEuqbfE63gbu9Q=
-github.com/cloudevents/sdk-go/v2 v2.16.1/go.mod h1:v/kVOaWjNfbvc6tkhhlkhvLapj8Aa8kvXiH5GiOHCKI=
+github.com/cloudevents/sdk-go/v2 v2.16.2 h1:ZYDFrYke4FD+jM8TZTJJO6JhKHzOQl2oqpFK1D+NnQM=
+github.com/cloudevents/sdk-go/v2 v2.16.2/go.mod h1:laOcGImm4nVJEU+PHnUrKL56CKmRL65RlQF0kRmW/kg=
github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443 h1:aQ3y1lwWyqYPiWZThqv1aFbZMiM9vblcSArJRf2Irls=
github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8=
github.com/cockroachdb/cockroach-go/v2 v2.4.1 h1:ACVT/zXsuK6waRPVYtDQpsM8pPA7IA/3fkgA02RR/Gw=
From 54be1c8faabe7575b645cac3962bfc31349adeed Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 1 Oct 2025 00:03:06 +0000
Subject: [PATCH 015/215] fix(deps): bump github.com/redis/go-redis/v9 in /api
Bumps [github.com/redis/go-redis/v9](https://github.com/redis/go-redis) from 9.12.1 to 9.14.0.
- [Release notes](https://github.com/redis/go-redis/releases)
- [Changelog](https://github.com/redis/go-redis/blob/master/RELEASE-NOTES.md)
- [Commits](https://github.com/redis/go-redis/compare/v9.12.1...v9.14.0)
---
updated-dependencies:
- dependency-name: github.com/redis/go-redis/v9
dependency-version: 9.14.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 2 +-
api/go.sum | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index 0fd7efb7..814686c5 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -38,7 +38,7 @@ require (
github.com/pkg/errors v0.9.1
github.com/pusher/pusher-http-go/v5 v5.1.1
github.com/redis/go-redis/extra/redisotel/v9 v9.12.1
- github.com/redis/go-redis/v9 v9.12.1
+ github.com/redis/go-redis/v9 v9.14.0
github.com/rs/zerolog v1.34.0
github.com/stretchr/testify v1.11.1
github.com/swaggo/swag v1.16.6
diff --git a/api/go.sum b/api/go.sum
index 0e3f68f7..9d485d44 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -271,8 +271,8 @@ github.com/redis/go-redis/extra/rediscmd/v9 v9.12.1 h1:DR14pbiA9cjS5btoGU7oKuBca
github.com/redis/go-redis/extra/rediscmd/v9 v9.12.1/go.mod h1:mWGfYiY4x0lamv7XbhF0M1hxwa6EkfxzEpVsv9yG7PY=
github.com/redis/go-redis/extra/redisotel/v9 v9.12.1 h1:2MioZj2s8Ovom2Yrpb/bBCJ88fR9L0MfMq2wAH44R8M=
github.com/redis/go-redis/extra/redisotel/v9 v9.12.1/go.mod h1:nw1BvV+EW5TmXbfUOhFsPETFR390JLmtdWut88T1VAE=
-github.com/redis/go-redis/v9 v9.12.1 h1:k5iquqv27aBtnTm2tIkROUDp8JBXhXZIVu1InSgvovg=
-github.com/redis/go-redis/v9 v9.12.1/go.mod h1:huWgSWd8mW6+m0VPhJjSSQ+d6Nh1VICQ6Q5lHuCH/Iw=
+github.com/redis/go-redis/v9 v9.14.0 h1:u4tNCjXOyzfgeLN+vAZaW1xUooqWDqVEsZN0U01jfAE=
+github.com/redis/go-redis/v9 v9.14.0/go.mod h1:huWgSWd8mW6+m0VPhJjSSQ+d6Nh1VICQ6Q5lHuCH/Iw=
github.com/richardlehane/mscfb v1.0.4 h1:WULscsljNPConisD5hR0+OyZjwK46Pfyr6mPu5ZawpM=
github.com/richardlehane/mscfb v1.0.4/go.mod h1:YzVpcZg9czvAuhk9T+a3avCpcFPMUWm7gK3DypaEsUk=
github.com/richardlehane/msoleps v1.0.1/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg=
From dac3b43663a31cba543877b03d5b6513004b692a Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 1 Oct 2025 00:03:25 +0000
Subject: [PATCH 016/215] fix(deps): bump cloud.google.com/go/cloudtasks in
/api
Bumps [cloud.google.com/go/cloudtasks](https://github.com/googleapis/google-cloud-go) from 1.13.6 to 1.13.7.
- [Release notes](https://github.com/googleapis/google-cloud-go/releases)
- [Changelog](https://github.com/googleapis/google-cloud-go/blob/main/CHANGES.md)
- [Commits](https://github.com/googleapis/google-cloud-go/compare/automl/v1.13.6...automl/v1.13.7)
---
updated-dependencies:
- dependency-name: cloud.google.com/go/cloudtasks
dependency-version: 1.13.7
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 4 ++--
api/go.sum | 8 ++++----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index 0fd7efb7..da639efb 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -5,7 +5,7 @@ go 1.24.2
toolchain go1.24.3
require (
- cloud.google.com/go/cloudtasks v1.13.6
+ cloud.google.com/go/cloudtasks v1.13.7
firebase.google.com/go v3.13.0+incompatible
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.53.0
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.29.0
@@ -178,7 +178,7 @@ require (
golang.org/x/tools v0.35.0 // indirect
google.golang.org/appengine v1.6.8 // indirect
google.golang.org/genproto v0.0.0-20250603155806-513f23925822 // indirect
- google.golang.org/genproto/googleapis/api v0.0.0-20250707201910-8d1bb00bc6a7 // indirect
+ google.golang.org/genproto/googleapis/api v0.0.0-20250818200422-3122310a409c // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20250818200422-3122310a409c // indirect
google.golang.org/grpc v1.74.2 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
diff --git a/api/go.sum b/api/go.sum
index 0e3f68f7..baf58182 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -8,8 +8,8 @@ cloud.google.com/go/auth v0.16.5 h1:mFWNQ2FEVWAliEQWpAdH80omXFokmrnbDhUS9cBywsI=
cloud.google.com/go/auth v0.16.5/go.mod h1:utzRfHMP+Vv0mpOkTRQoWD2q3BatTOoWbA7gCc2dUhQ=
cloud.google.com/go/auth/oauth2adapt v0.2.8 h1:keo8NaayQZ6wimpNSmW5OPc283g65QNIiLpZnkHRbnc=
cloud.google.com/go/auth/oauth2adapt v0.2.8/go.mod h1:XQ9y31RkqZCcwJWNSx2Xvric3RrU88hAYYbjDWYDL+c=
-cloud.google.com/go/cloudtasks v1.13.6 h1:Fwan19UiNoFD+3KY0MnNHE5DyixOxNzS1mZ4ChOdpy0=
-cloud.google.com/go/cloudtasks v1.13.6/go.mod h1:/IDaQqGKMixD+ayM43CfsvWF2k36GeomEuy9gL4gLmU=
+cloud.google.com/go/cloudtasks v1.13.7 h1:H2v8GEolNtMFfYzUpZBaZbydqU7drpyo99GtAgA+m4I=
+cloud.google.com/go/cloudtasks v1.13.7/go.mod h1:H0TThOUG+Ml34e2+ZtW6k6nt4i9KuH3nYAJ5mxh7OM4=
cloud.google.com/go/compute/metadata v0.8.0 h1:HxMRIbao8w17ZX6wBnjhcDkW6lTFpgcaobyVfZWqRLA=
cloud.google.com/go/compute/metadata v0.8.0/go.mod h1:sYOGTp851OV9bOFJ9CH7elVvyzopvWQFNNghtDQ/Biw=
cloud.google.com/go/firestore v1.18.0 h1:cuydCaLS7Vl2SatAeivXyhbhDEIR8BDmtn4egDhIn2s=
@@ -507,8 +507,8 @@ google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAs
google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds=
google.golang.org/genproto v0.0.0-20250603155806-513f23925822 h1:rHWScKit0gvAPuOnu87KpaYtjK5zBMLcULh7gxkCXu4=
google.golang.org/genproto v0.0.0-20250603155806-513f23925822/go.mod h1:HubltRL7rMh0LfnQPkMH4NPDFEWp0jw3vixw7jEM53s=
-google.golang.org/genproto/googleapis/api v0.0.0-20250707201910-8d1bb00bc6a7 h1:FiusG7LWj+4byqhbvmB+Q93B/mOxJLN2DTozDuZm4EU=
-google.golang.org/genproto/googleapis/api v0.0.0-20250707201910-8d1bb00bc6a7/go.mod h1:kXqgZtrWaf6qS3jZOCnCH7WYfrvFjkC51bM8fz3RsCA=
+google.golang.org/genproto/googleapis/api v0.0.0-20250818200422-3122310a409c h1:AtEkQdl5b6zsybXcbz00j1LwNodDuH6hVifIaNqk7NQ=
+google.golang.org/genproto/googleapis/api v0.0.0-20250818200422-3122310a409c/go.mod h1:ea2MjsO70ssTfCjiwHgI0ZFqcw45Ksuk2ckf9G468GA=
google.golang.org/genproto/googleapis/rpc v0.0.0-20250818200422-3122310a409c h1:qXWI/sQtv5UKboZ/zUk7h+mrf/lXORyI+n9DKDAusdg=
google.golang.org/genproto/googleapis/rpc v0.0.0-20250818200422-3122310a409c/go.mod h1:gw1tLEfykwDz2ET4a12jcXt4couGAm7IwsVaTy0Sflo=
google.golang.org/grpc v1.74.2 h1:WoosgB65DlWVC9FqI82dGsZhWFNBSLjQ84bjROOpMu4=
From ff8782da778afba270f8aa7b12d83d93d753bce4 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 1 Oct 2025 00:06:09 +0000
Subject: [PATCH 017/215] fix(deps): bump webpack from 5.101.0 to 5.102.0 in
/web
Bumps [webpack](https://github.com/webpack/webpack) from 5.101.0 to 5.102.0.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.101.0...v5.102.0)
---
updated-dependencies:
- dependency-name: webpack
dependency-version: 5.102.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
web/package.json | 2 +-
web/pnpm-lock.yaml | 498 ++++++++++++++++++++++++---------------------
2 files changed, 262 insertions(+), 238 deletions(-)
diff --git a/web/package.json b/web/package.json
index 1d5ece33..1cd31157 100644
--- a/web/package.json
+++ b/web/package.json
@@ -51,7 +51,7 @@
"vue-template-compiler": "^2.7.16",
"vuetify": "^2.7.2",
"vuex": "^3.6.2",
- "webpack": "^5.101.0"
+ "webpack": "^5.102.0"
},
"devDependencies": {
"@babel/eslint-parser": "^7.27.5",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index 1653b83e..4bb67971 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -16,7 +16,7 @@ importers:
version: 1.4.2
'@nuxtjs/firebase':
specifier: ^8.2.2
- version: 8.2.2(@firebase/app-types@0.9.2)(firebase@10.14.1)(nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16))
+ version: 8.2.2(@firebase/app-types@0.9.2)(firebase@10.14.1)(nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16))
'@nuxtjs/sitemap':
specifier: ^2.4.0
version: 2.4.0
@@ -52,7 +52,7 @@ importers:
version: 2.30.1
nuxt:
specifier: ^2.18.1
- version: 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
+ version: 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
nuxt-highlightjs:
specifier: ^1.0.3
version: 1.0.3
@@ -96,15 +96,15 @@ importers:
specifier: ^3.6.2
version: 3.6.2(vue@2.7.16)
webpack:
- specifier: ^5.101.0
- version: 5.101.0
+ specifier: ^5.102.0
+ version: 5.102.0
devDependencies:
'@babel/eslint-parser':
specifier: ^7.27.5
- version: 7.27.5(@babel/core@7.24.7)(eslint@8.57.1)
+ version: 7.27.5(@babel/core@7.28.0)(eslint@8.57.1)
'@commitlint/cli':
specifier: ^19.8.1
- version: 19.8.1(@types/node@24.2.0)(typescript@4.9.5)
+ version: 19.8.1(@types/node@24.6.1)(typescript@4.9.5)
'@commitlint/config-conventional':
specifier: ^19.8.0
version: 19.8.0
@@ -113,19 +113,19 @@ importers:
version: 2.18.1
'@nuxt/typescript-build':
specifier: ^3.0.2
- version: 3.0.2(@nuxt/types@2.18.1)(eslint@8.57.1)(typescript@4.9.5)(vue-template-compiler@2.7.16)(webpack@5.101.0)
+ version: 3.0.2(@nuxt/types@2.18.1)(eslint@8.57.1)(typescript@4.9.5)(vue-template-compiler@2.7.16)(webpack@5.102.0)
'@nuxtjs/eslint-config-typescript':
specifier: ^12.1.0
version: 12.1.0(eslint@8.57.1)(typescript@4.9.5)
'@nuxtjs/eslint-module':
specifier: ^4.1.0
- version: 4.1.0(eslint@8.57.1)(rollup@3.29.5)(vite@4.5.3(@types/node@24.2.0)(sass@1.32.13)(terser@5.43.1))(webpack@5.101.0)
+ version: 4.1.0(eslint@8.57.1)(rollup@3.29.5)(vite@4.5.3(@types/node@24.6.1)(sass@1.32.13)(terser@5.44.0))(webpack@5.102.0)
'@nuxtjs/stylelint-module':
specifier: ^5.2.0
- version: 5.2.0(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@24.2.0)(sass@1.32.13)(terser@5.43.1))(webpack@5.101.0)
+ version: 5.2.0(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@24.6.1)(sass@1.32.13)(terser@5.44.0))(webpack@5.102.0)
'@nuxtjs/vuetify':
specifier: ^1.12.3
- version: 1.12.3(vue@2.7.16)(webpack@5.101.0)
+ version: 1.12.3(vue@2.7.16)(webpack@5.102.0)
'@types/qrcode':
specifier: ^1.5.5
version: 1.5.5
@@ -137,10 +137,10 @@ importers:
version: 0.30.0
babel-core:
specifier: 7.0.0-bridge.0
- version: 7.0.0-bridge.0(@babel/core@7.24.7)
+ version: 7.0.0-bridge.0(@babel/core@7.28.0)
babel-jest:
specifier: ^30.0.5
- version: 30.0.5(@babel/core@7.24.7)
+ version: 30.0.5(@babel/core@7.28.0)
eslint:
specifier: ^8.57.1
version: 8.57.1
@@ -158,7 +158,7 @@ importers:
version: 11.11.1
jest:
specifier: ^30.0.5
- version: 30.0.5(@types/node@24.2.0)
+ version: 30.0.5(@types/node@24.6.1)
lint-staged:
specifier: ^16.1.4
version: 16.1.4
@@ -185,13 +185,13 @@ importers:
version: 34.0.0(stylelint@15.11.0(typescript@4.9.5))
ts-jest:
specifier: ^29.4.0
- version: 29.4.0(@babel/core@7.24.7)(@jest/transform@30.0.5)(@jest/types@30.0.5)(babel-jest@30.0.5(@babel/core@7.24.7))(jest-util@30.0.5)(jest@30.0.5(@types/node@24.2.0))(typescript@4.9.5)
+ version: 29.4.0(@babel/core@7.28.0)(@jest/transform@30.0.5)(@jest/types@30.0.5)(babel-jest@30.0.5(@babel/core@7.28.0))(jest-util@30.0.5)(jest@30.0.5(@types/node@24.6.1))(typescript@4.9.5)
vue-client-only:
specifier: ^2.1.0
version: 2.1.0
vue-jest:
specifier: ^3.0.7
- version: 3.0.7(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(vue-template-compiler@2.7.16)(vue@2.7.16)
+ version: 3.0.7(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(vue-template-compiler@2.7.16)(vue@2.7.16)
vue-meta:
specifier: ^2.4.0
version: 2.4.0
@@ -1935,6 +1935,9 @@ packages:
'@jridgewell/gen-mapping@0.3.12':
resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==}
+ '@jridgewell/gen-mapping@0.3.13':
+ resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
+
'@jridgewell/gen-mapping@0.3.3':
resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
engines: {node: '>=6.0.0'}
@@ -1955,15 +1958,21 @@ packages:
resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==}
engines: {node: '>=6.0.0'}
- '@jridgewell/source-map@0.3.10':
- resolution: {integrity: sha512-0pPkgz9dY+bijgistcTTJ5mR+ocqRXLuhXHYdzoMmmoJ2C9S46RCm2GMUbatPEUK9Yjy26IrAy8D/M00lLkv+Q==}
+ '@jridgewell/source-map@0.3.11':
+ resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==}
'@jridgewell/sourcemap-codec@1.5.4':
resolution: {integrity: sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==}
+ '@jridgewell/sourcemap-codec@1.5.5':
+ resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
+
'@jridgewell/trace-mapping@0.3.29':
resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==}
+ '@jridgewell/trace-mapping@0.3.31':
+ resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
+
'@jsonjoy.com/base64@1.1.2':
resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==}
engines: {node: '>=10.0'}
@@ -2352,6 +2361,9 @@ packages:
'@types/node@24.2.0':
resolution: {integrity: sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw==}
+ '@types/node@24.6.1':
+ resolution: {integrity: sha512-ljvjjs3DNXummeIaooB4cLBKg2U6SPI6Hjra/9rRIy7CpM0HpLtG9HptkMKAb4HYWy5S7HUvJEuWgr/y0U8SHw==}
+
'@types/normalize-package-data@2.4.2':
resolution: {integrity: sha512-lqa4UEhhv/2sjjIQgjX8B+RBjj47eo0mzGasklVJ78UKGQY1r0VpB9XHDaZZO9qzEFDdy4MrXLuEaSmPrPSe/A==}
@@ -3108,6 +3120,10 @@ packages:
resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==}
engines: {node: '>=0.10.0'}
+ baseline-browser-mapping@2.8.9:
+ resolution: {integrity: sha512-hY/u2lxLrbecMEWSB0IpGzGyDyeoMFQhCvZd2jGFSE5I17Fh01sYUBPCJtkWERw7zrac9+cIghxm/ytJa2X8iA==}
+ hasBin: true
+
big.js@5.2.2:
resolution: {integrity: sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==}
@@ -3184,8 +3200,8 @@ packages:
browserify-zlib@0.2.0:
resolution: {integrity: sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==}
- browserslist@4.25.1:
- resolution: {integrity: sha512-KGj0KoOMXLpSNkkEI6Z6mShmQy0bc1I+T7K9N81k4WWMrfz+6fQ6es80B/YLAeRoKvjYE1YSHHOW1qe9xIVzHw==}
+ browserslist@4.26.2:
+ resolution: {integrity: sha512-ECFzp6uFOSB+dcZ5BK/IBaGWssbSYBHvuMeMt3MMFyhI0Z8SqGgEkBLARgpRH3hutIgPVsALcMwbDrJqPxQ65A==}
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
@@ -3288,8 +3304,8 @@ packages:
caniuse-lite@1.0.30001639:
resolution: {integrity: sha512-eFHflNTBIlFwP2AIKaYuBQN/apnUoKNhBdza8ZnW/h2di4LCZ4xFqYlxUxo+LQ76KFI1PGcC1QDxMbxTZpSCAg==}
- caniuse-lite@1.0.30001731:
- resolution: {integrity: sha512-lDdp2/wrOmTRWuoB5DpfNkC0rJDU8DqRa6nYL6HK6sytw70QMopt/NIc/9SM7ylItlBWfACXk0tEn37UWM/+mg==}
+ caniuse-lite@1.0.30001746:
+ resolution: {integrity: sha512-eA7Ys/DGw+pnkWWSE/id29f2IcPHVoE8wxtvE5JdvD2V28VTDPy1yEeo11Guz0sJ4ZeGRcm3uaTcAqK1LXaphA==}
chalk@1.1.3:
resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==}
@@ -4208,8 +4224,8 @@ packages:
engines: {node: '>=0.10.0'}
hasBin: true
- electron-to-chromium@1.5.194:
- resolution: {integrity: sha512-SdnWJwSUot04UR51I2oPD8kuP2VI37/CADR1OHsFOUzZIvfWJBO6q11k5P/uKNyTT3cdOsnyjkrZ+DDShqYqJA==}
+ electron-to-chromium@1.5.227:
+ resolution: {integrity: sha512-ITxuoPfJu3lsNWUi2lBM2PaBPYgH3uqmxut5vmBxgYvyI4AlJ6P3Cai1O76mOrkJCBzq0IxWg/NtqOrpu/0gKA==}
elliptic@6.6.0:
resolution: {integrity: sha512-dpwoQcLc/2WLQvJvLRHKZ+f9FgOdjnq11rurqwekGQygGPsYSK29OMMD2WalatiqQ+XGFDglTNixpPfI+lpaAA==}
@@ -4246,8 +4262,8 @@ packages:
resolution: {integrity: sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==}
engines: {node: '>=6.9.0'}
- enhanced-resolve@5.18.2:
- resolution: {integrity: sha512-6Jw4sE1maoRJo3q8MsSIn2onJFbLTOjY9hlx4DZXmOKvLRd1Ok2kXmAGXaafL2+ijsJZ1ClYbl/pmqr9+k4iUQ==}
+ enhanced-resolve@5.18.3:
+ resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==}
engines: {node: '>=10.13.0'}
ent@2.2.0:
@@ -4624,8 +4640,8 @@ packages:
fast-text-encoding@1.0.6:
resolution: {integrity: sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==}
- fast-uri@3.0.6:
- resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==}
+ fast-uri@3.1.0:
+ resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==}
fastest-levenshtein@1.0.16:
resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==}
@@ -6422,8 +6438,8 @@ packages:
resolution: {integrity: sha512-UdS4swXs85fCGWWf6t6DMGgpN/vnlKeSGEQ7hJcrs7PBFoxoKLmibc3QRb7fwiYsjdL7PX8iI/TMSlZ90dgHhQ==}
engines: {node: '>=0.10.0'}
- node-releases@2.0.19:
- resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==}
+ node-releases@2.0.21:
+ resolution: {integrity: sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==}
node-res@5.0.1:
resolution: {integrity: sha512-YOleO9c7MAqoHC+Ccu2vzvV1fL6Ku49gShq3PIMKWHRgrMSih3XcwL05NbLBi6oU2J471gTBfdpVVxwT6Pfhxg==}
@@ -8281,8 +8297,8 @@ packages:
resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==}
engines: {node: '>=6'}
- tapable@2.2.2:
- resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==}
+ tapable@2.2.3:
+ resolution: {integrity: sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==}
engines: {node: '>=6'}
tar@6.2.0:
@@ -8326,8 +8342,8 @@ packages:
engines: {node: '>=6.0.0'}
hasBin: true
- terser@5.43.1:
- resolution: {integrity: sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==}
+ terser@5.44.0:
+ resolution: {integrity: sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==}
engines: {node: '>=10'}
hasBin: true
@@ -8587,6 +8603,9 @@ packages:
undici-types@7.10.0:
resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==}
+ undici-types@7.13.0:
+ resolution: {integrity: sha512-Ov2Rr9Sx+fRgagJ5AX0qvItZG/JKKoBRAVITs1zk7IqZGTJUwgUr7qoYBpWwakpWilTZFM98rG/AFRocu10iIQ==}
+
undici@6.19.7:
resolution: {integrity: sha512-HR3W/bMGPSr90i8AAp2C4DM3wChFdJPLrWYpIS++LxS8K+W535qftjt+4MyjNYHeWabMj1nvtmLIi7l++iq91A==}
engines: {node: '>=18.17'}
@@ -8981,8 +9000,8 @@ packages:
webpack-command:
optional: true
- webpack@5.101.0:
- resolution: {integrity: sha512-B4t+nJqytPeuZlHuIKTbalhljIFXeNRqrUGAQgTGlfOl2lXXKXw+yZu6bicycP+PUlM44CxBjCFD6aciKFT3LQ==}
+ webpack@5.102.0:
+ resolution: {integrity: sha512-hUtqAR3ZLVEYDEABdBioQCIqSoguHbFn1K7WlPPWSuXmx0031BD73PSE35jKyftdSh4YLDoQNgK4pqBt5Q82MA==}
engines: {node: '>=10.13.0'}
hasBin: true
peerDependencies:
@@ -9193,12 +9212,12 @@ snapshots:
'@ampproject/remapping@2.2.1':
dependencies:
'@jridgewell/gen-mapping': 0.3.3
- '@jridgewell/trace-mapping': 0.3.29
+ '@jridgewell/trace-mapping': 0.3.31
'@ampproject/remapping@2.3.0':
dependencies:
'@jridgewell/gen-mapping': 0.3.12
- '@jridgewell/trace-mapping': 0.3.29
+ '@jridgewell/trace-mapping': 0.3.31
'@asamuzakjp/css-color@3.2.0':
dependencies:
@@ -9273,9 +9292,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/eslint-parser@7.27.5(@babel/core@7.24.7)(eslint@8.57.1)':
+ '@babel/eslint-parser@7.27.5(@babel/core@7.28.0)(eslint@8.57.1)':
dependencies:
- '@babel/core': 7.24.7
+ '@babel/core': 7.28.0
'@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1
eslint: 8.57.1
eslint-visitor-keys: 2.1.0
@@ -9285,7 +9304,7 @@ snapshots:
dependencies:
'@babel/types': 7.28.2
'@jridgewell/gen-mapping': 0.3.5
- '@jridgewell/trace-mapping': 0.3.29
+ '@jridgewell/trace-mapping': 0.3.31
jsesc: 2.5.2
'@babel/generator@7.28.0':
@@ -9293,7 +9312,7 @@ snapshots:
'@babel/parser': 7.28.0
'@babel/types': 7.28.2
'@jridgewell/gen-mapping': 0.3.12
- '@jridgewell/trace-mapping': 0.3.29
+ '@jridgewell/trace-mapping': 0.3.31
jsesc: 3.1.0
'@babel/helper-annotate-as-pure@7.22.5':
@@ -9315,7 +9334,7 @@ snapshots:
dependencies:
'@babel/compat-data': 7.24.7
'@babel/helper-validator-option': 7.24.7
- browserslist: 4.25.1
+ browserslist: 4.26.2
lru-cache: 5.1.1
semver: 6.3.1
@@ -9323,7 +9342,7 @@ snapshots:
dependencies:
'@babel/compat-data': 7.28.0
'@babel/helper-validator-option': 7.27.1
- browserslist: 4.25.1
+ browserslist: 4.26.2
lru-cache: 5.1.1
semver: 6.3.1
@@ -9649,11 +9668,6 @@ snapshots:
'@babel/core': 7.28.0
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.7)':
- dependencies:
- '@babel/core': 7.24.7
- '@babel/helper-plugin-utils': 7.27.1
-
'@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.0)':
dependencies:
'@babel/core': 7.28.0
@@ -9704,11 +9718,6 @@ snapshots:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.24.7)':
- dependencies:
- '@babel/core': 7.24.7
- '@babel/helper-plugin-utils': 7.27.1
-
'@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.0)':
dependencies:
'@babel/core': 7.28.0
@@ -10324,11 +10333,11 @@ snapshots:
'@bcoe/v8-coverage@0.2.3': {}
- '@commitlint/cli@19.8.1(@types/node@24.2.0)(typescript@4.9.5)':
+ '@commitlint/cli@19.8.1(@types/node@24.6.1)(typescript@4.9.5)':
dependencies:
'@commitlint/format': 19.8.1
'@commitlint/lint': 19.8.1
- '@commitlint/load': 19.8.1(@types/node@24.2.0)(typescript@4.9.5)
+ '@commitlint/load': 19.8.1(@types/node@24.6.1)(typescript@4.9.5)
'@commitlint/read': 19.8.1
'@commitlint/types': 19.8.1
tinyexec: 1.0.1
@@ -10375,7 +10384,7 @@ snapshots:
'@commitlint/rules': 19.8.1
'@commitlint/types': 19.8.1
- '@commitlint/load@19.8.1(@types/node@24.2.0)(typescript@4.9.5)':
+ '@commitlint/load@19.8.1(@types/node@24.6.1)(typescript@4.9.5)':
dependencies:
'@commitlint/config-validator': 19.8.1
'@commitlint/execute-rule': 19.8.1
@@ -10383,7 +10392,7 @@ snapshots:
'@commitlint/types': 19.8.1
chalk: 5.5.0
cosmiconfig: 9.0.0(typescript@4.9.5)
- cosmiconfig-typescript-loader: 6.1.0(@types/node@24.2.0)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5)
+ cosmiconfig-typescript-loader: 6.1.0(@types/node@24.6.1)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5)
lodash.isplainobject: 4.0.6
lodash.merge: 4.6.2
lodash.uniq: 4.5.0
@@ -11261,7 +11270,7 @@ snapshots:
'@grpc/grpc-js@1.6.12':
dependencies:
'@grpc/proto-loader': 0.7.10
- '@types/node': 24.2.0
+ '@types/node': 24.6.1
optional: true
'@grpc/grpc-js@1.9.15':
@@ -11424,7 +11433,7 @@ snapshots:
'@jest/test-result': 30.0.5
'@jest/transform': 30.0.5
'@jest/types': 30.0.5
- '@jridgewell/trace-mapping': 0.3.29
+ '@jridgewell/trace-mapping': 0.3.31
'@types/node': 24.2.0
chalk: 4.1.2
collect-v8-coverage: 1.0.2
@@ -11462,7 +11471,7 @@ snapshots:
'@jest/source-map@30.0.1':
dependencies:
- '@jridgewell/trace-mapping': 0.3.29
+ '@jridgewell/trace-mapping': 0.3.31
callsites: 3.1.0
graceful-fs: 4.2.11
@@ -11505,7 +11514,7 @@ snapshots:
'@jest/schemas': 29.6.3
'@types/istanbul-lib-coverage': 2.0.6
'@types/istanbul-reports': 3.0.4
- '@types/node': 24.2.0
+ '@types/node': 24.6.1
'@types/yargs': 17.0.33
chalk: 4.1.2
@@ -11521,20 +11530,25 @@ snapshots:
'@jridgewell/gen-mapping@0.3.12':
dependencies:
- '@jridgewell/sourcemap-codec': 1.5.4
- '@jridgewell/trace-mapping': 0.3.29
+ '@jridgewell/sourcemap-codec': 1.5.5
+ '@jridgewell/trace-mapping': 0.3.31
+
+ '@jridgewell/gen-mapping@0.3.13':
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.5
+ '@jridgewell/trace-mapping': 0.3.31
'@jridgewell/gen-mapping@0.3.3':
dependencies:
'@jridgewell/set-array': 1.1.2
- '@jridgewell/sourcemap-codec': 1.5.4
- '@jridgewell/trace-mapping': 0.3.29
+ '@jridgewell/sourcemap-codec': 1.5.5
+ '@jridgewell/trace-mapping': 0.3.31
'@jridgewell/gen-mapping@0.3.5':
dependencies:
'@jridgewell/set-array': 1.2.1
- '@jridgewell/sourcemap-codec': 1.5.4
- '@jridgewell/trace-mapping': 0.3.29
+ '@jridgewell/sourcemap-codec': 1.5.5
+ '@jridgewell/trace-mapping': 0.3.31
'@jridgewell/resolve-uri@3.1.2': {}
@@ -11542,18 +11556,25 @@ snapshots:
'@jridgewell/set-array@1.2.1': {}
- '@jridgewell/source-map@0.3.10':
+ '@jridgewell/source-map@0.3.11':
dependencies:
- '@jridgewell/gen-mapping': 0.3.12
- '@jridgewell/trace-mapping': 0.3.29
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
'@jridgewell/sourcemap-codec@1.5.4': {}
+ '@jridgewell/sourcemap-codec@1.5.5': {}
+
'@jridgewell/trace-mapping@0.3.29':
dependencies:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.4
+ '@jridgewell/trace-mapping@0.3.31':
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.2
+ '@jridgewell/sourcemap-codec': 1.5.5
+
'@jsonjoy.com/base64@1.1.2(tslib@2.6.2)':
dependencies:
tslib: 2.6.2
@@ -11630,12 +11651,12 @@ snapshots:
- supports-color
- vue
- '@nuxt/builder@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)':
+ '@nuxt/builder@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)':
dependencies:
'@nuxt/devalue': 2.0.2
'@nuxt/utils': 2.18.1
'@nuxt/vue-app': 2.18.1
- '@nuxt/webpack': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
+ '@nuxt/webpack': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
chalk: 4.1.2
chokidar: 3.6.0
consola: 3.2.3
@@ -11964,13 +11985,13 @@ snapshots:
'@types/webpack-bundle-analyzer': 3.9.5
'@types/webpack-hot-middleware': 2.25.5
- '@nuxt/typescript-build@3.0.2(@nuxt/types@2.18.1)(eslint@8.57.1)(typescript@4.9.5)(vue-template-compiler@2.7.16)(webpack@5.101.0)':
+ '@nuxt/typescript-build@3.0.2(@nuxt/types@2.18.1)(eslint@8.57.1)(typescript@4.9.5)(vue-template-compiler@2.7.16)(webpack@5.102.0)':
dependencies:
'@nuxt/types': 2.18.1
consola: 3.2.3
defu: 6.1.2
- fork-ts-checker-webpack-plugin: 6.5.3(eslint@8.57.1)(typescript@4.9.5)(vue-template-compiler@2.7.16)(webpack@5.101.0)
- ts-loader: 8.4.0(typescript@4.9.5)(webpack@5.101.0)
+ fork-ts-checker-webpack-plugin: 6.5.3(eslint@8.57.1)(typescript@4.9.5)(vue-template-compiler@2.7.16)(webpack@5.102.0)
+ ts-loader: 8.4.0(typescript@4.9.5)(webpack@5.102.0)
typescript: 4.9.5
transitivePeerDependencies:
- eslint
@@ -12021,7 +12042,7 @@ snapshots:
vue-meta: 2.4.0
vue-server-renderer: 2.7.16
- '@nuxt/webpack@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)':
+ '@nuxt/webpack@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)':
dependencies:
'@babel/core': 7.24.7
'@nuxt/babel-preset-app': 2.18.1(vue@2.7.16)
@@ -12060,8 +12081,8 @@ snapshots:
time-fix-plugin: 2.0.7(webpack@4.47.0)
ufo: 1.6.1
upath: 2.0.1
- url-loader: 4.1.1(file-loader@6.2.0(webpack@5.101.0))(webpack@4.47.0)
- vue-loader: 15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@5.101.0))(ejs@3.1.10)(lodash@4.17.21)(prettier@3.6.2)(vue-template-compiler@2.7.16)(webpack@4.47.0)
+ url-loader: 4.1.1(file-loader@6.2.0(webpack@5.102.0))(webpack@4.47.0)
+ vue-loader: 15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@5.102.0))(ejs@3.1.10)(lodash@4.17.21)(prettier@3.6.2)(vue-template-compiler@2.7.16)(webpack@4.47.0)
vue-style-loader: 4.1.3
vue-template-compiler: 2.7.16
watchpack: 2.4.4
@@ -12172,25 +12193,25 @@ snapshots:
- eslint-import-resolver-webpack
- supports-color
- '@nuxtjs/eslint-module@4.1.0(eslint@8.57.1)(rollup@3.29.5)(vite@4.5.3(@types/node@24.2.0)(sass@1.32.13)(terser@5.43.1))(webpack@5.101.0)':
+ '@nuxtjs/eslint-module@4.1.0(eslint@8.57.1)(rollup@3.29.5)(vite@4.5.3(@types/node@24.6.1)(sass@1.32.13)(terser@5.44.0))(webpack@5.102.0)':
dependencies:
'@nuxt/kit': 3.7.4(rollup@3.29.5)
chokidar: 3.5.3
eslint: 8.57.1
- eslint-webpack-plugin: 4.0.1(eslint@8.57.1)(webpack@5.101.0)
+ eslint-webpack-plugin: 4.0.1(eslint@8.57.1)(webpack@5.102.0)
pathe: 1.1.1
- vite-plugin-eslint: 1.8.1(eslint@8.57.1)(vite@4.5.3(@types/node@24.2.0)(sass@1.32.13)(terser@5.43.1))
+ vite-plugin-eslint: 1.8.1(eslint@8.57.1)(vite@4.5.3(@types/node@24.6.1)(sass@1.32.13)(terser@5.44.0))
transitivePeerDependencies:
- rollup
- supports-color
- vite
- webpack
- '@nuxtjs/firebase@8.2.2(@firebase/app-types@0.9.2)(firebase@10.14.1)(nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16))':
+ '@nuxtjs/firebase@8.2.2(@firebase/app-types@0.9.2)(firebase@10.14.1)(nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16))':
dependencies:
consola: 2.15.3
firebase: 10.14.1
- nuxt: 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
+ nuxt: 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
optionalDependencies:
firebase-admin: 10.3.0(@firebase/app-types@0.9.2)
transitivePeerDependencies:
@@ -12210,14 +12231,14 @@ snapshots:
minimatch: 3.1.2
sitemap: 4.1.1
- '@nuxtjs/stylelint-module@5.2.0(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@24.2.0)(sass@1.32.13)(terser@5.43.1))(webpack@5.101.0)':
+ '@nuxtjs/stylelint-module@5.2.0(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@24.6.1)(sass@1.32.13)(terser@5.44.0))(webpack@5.102.0)':
dependencies:
'@nuxt/kit': 3.12.2(rollup@3.29.5)
chokidar: 3.6.0
pathe: 1.1.2
stylelint: 15.11.0(typescript@4.9.5)
- stylelint-webpack-plugin: 5.0.1(stylelint@15.11.0(typescript@4.9.5))(webpack@5.101.0)
- vite-plugin-stylelint: 5.3.1(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@24.2.0)(sass@1.32.13)(terser@5.43.1))
+ stylelint-webpack-plugin: 5.0.1(stylelint@15.11.0(typescript@4.9.5))(webpack@5.102.0)
+ vite-plugin-stylelint: 5.3.1(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@24.6.1)(sass@1.32.13)(terser@5.44.0))
transitivePeerDependencies:
- '@types/stylelint'
- magicast
@@ -12227,13 +12248,13 @@ snapshots:
- vite
- webpack
- '@nuxtjs/vuetify@1.12.3(vue@2.7.16)(webpack@5.101.0)':
+ '@nuxtjs/vuetify@1.12.3(vue@2.7.16)(webpack@5.102.0)':
dependencies:
deepmerge: 4.3.1
sass: 1.32.13
- sass-loader: 10.4.1(sass@1.32.13)(webpack@5.101.0)
+ sass-loader: 10.4.1(sass@1.32.13)(webpack@5.102.0)
vuetify: 2.7.2(vue@2.7.16)
- vuetify-loader: 1.9.2(vue@2.7.16)(vuetify@2.7.2(vue@2.7.16))(webpack@5.101.0)
+ vuetify-loader: 1.9.2(vue@2.7.16)(vuetify@2.7.2(vue@2.7.16))(webpack@5.102.0)
transitivePeerDependencies:
- fibers
- gm
@@ -12353,7 +12374,7 @@ snapshots:
'@types/body-parser@1.19.3':
dependencies:
'@types/connect': 3.4.38
- '@types/node': 24.2.0
+ '@types/node': 16.18.55
'@types/compression@1.7.5':
dependencies:
@@ -12390,7 +12411,7 @@ snapshots:
'@types/express-serve-static-core@4.17.37':
dependencies:
- '@types/node': 24.2.0
+ '@types/node': 16.18.55
'@types/qs': 6.9.8
'@types/range-parser': 1.2.5
'@types/send': 0.17.2
@@ -12456,6 +12477,10 @@ snapshots:
dependencies:
undici-types: 7.10.0
+ '@types/node@24.6.1':
+ dependencies:
+ undici-types: 7.13.0
+
'@types/normalize-package-data@2.4.2': {}
'@types/optimize-css-assets-webpack-plugin@5.0.8':
@@ -12769,9 +12794,9 @@ snapshots:
optionalDependencies:
prettier: 2.8.8
- '@vue/component-compiler-utils@3.3.0(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(ejs@3.1.10)(lodash@4.17.21)':
+ '@vue/component-compiler-utils@3.3.0(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(lodash@4.17.21)':
dependencies:
- consolidate: 0.15.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(ejs@3.1.10)(lodash@4.17.21)
+ consolidate: 0.15.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(lodash@4.17.21)
hash-sum: 1.0.2
lru-cache: 4.1.5
merge-source-map: 1.1.0
@@ -13093,7 +13118,7 @@ snapshots:
ajv@8.17.1:
dependencies:
fast-deep-equal: 3.1.3
- fast-uri: 3.0.6
+ fast-uri: 3.1.0
json-schema-traverse: 1.0.0
require-from-string: 2.0.2
@@ -13264,8 +13289,8 @@ snapshots:
autoprefixer@10.4.19(postcss@8.4.39):
dependencies:
- browserslist: 4.25.1
- caniuse-lite: 1.0.30001731
+ browserslist: 4.26.2
+ caniuse-lite: 1.0.30001746
fraction.js: 4.3.7
normalize-range: 0.1.2
picocolors: 1.1.1
@@ -13288,22 +13313,9 @@ snapshots:
esutils: 2.0.3
js-tokens: 3.0.2
- babel-core@7.0.0-bridge.0(@babel/core@7.24.7):
- dependencies:
- '@babel/core': 7.24.7
-
- babel-jest@30.0.5(@babel/core@7.24.7):
+ babel-core@7.0.0-bridge.0(@babel/core@7.28.0):
dependencies:
- '@babel/core': 7.24.7
- '@jest/transform': 30.0.5
- '@types/babel__core': 7.20.5
- babel-plugin-istanbul: 7.0.0
- babel-preset-jest: 30.0.1(@babel/core@7.24.7)
- chalk: 4.1.2
- graceful-fs: 4.2.11
- slash: 3.0.0
- transitivePeerDependencies:
- - supports-color
+ '@babel/core': 7.28.0
babel-jest@30.0.5(@babel/core@7.28.0):
dependencies:
@@ -13385,25 +13397,6 @@ snapshots:
babel-runtime: 6.26.0
babel-types: 6.26.0
- babel-preset-current-node-syntax@1.2.0(@babel/core@7.24.7):
- dependencies:
- '@babel/core': 7.24.7
- '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.7)
- '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.24.7)
- '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.7)
- '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.7)
- '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.24.7)
- '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.7)
- '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.7)
- '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.7)
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.7)
- '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.7)
- '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.7)
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.7)
- '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.7)
- '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.7)
- '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.7)
-
babel-preset-current-node-syntax@1.2.0(@babel/core@7.28.0):
dependencies:
'@babel/core': 7.28.0
@@ -13423,12 +13416,6 @@ snapshots:
'@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.0)
'@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.0)
- babel-preset-jest@30.0.1(@babel/core@7.24.7):
- dependencies:
- '@babel/core': 7.24.7
- babel-plugin-jest-hoist: 30.0.1
- babel-preset-current-node-syntax: 1.2.0(@babel/core@7.24.7)
-
babel-preset-jest@30.0.1(@babel/core@7.28.0):
dependencies:
'@babel/core': 7.28.0
@@ -13489,6 +13476,8 @@ snapshots:
mixin-deep: 1.3.2
pascalcase: 0.1.1
+ baseline-browser-mapping@2.8.9: {}
+
big.js@5.2.2: {}
bignumber.js@9.1.2:
@@ -13603,12 +13592,13 @@ snapshots:
dependencies:
pako: 1.0.11
- browserslist@4.25.1:
+ browserslist@4.26.2:
dependencies:
- caniuse-lite: 1.0.30001731
- electron-to-chromium: 1.5.194
- node-releases: 2.0.19
- update-browserslist-db: 1.1.3(browserslist@4.25.1)
+ baseline-browser-mapping: 2.8.9
+ caniuse-lite: 1.0.30001746
+ electron-to-chromium: 1.5.227
+ node-releases: 2.0.21
+ update-browserslist-db: 1.1.3(browserslist@4.26.2)
bs-logger@0.2.6:
dependencies:
@@ -13769,14 +13759,14 @@ snapshots:
caniuse-api@3.0.0:
dependencies:
- browserslist: 4.25.1
- caniuse-lite: 1.0.30001731
+ browserslist: 4.26.2
+ caniuse-lite: 1.0.30001746
lodash.memoize: 4.1.2
lodash.uniq: 4.5.0
caniuse-lite@1.0.30001639: {}
- caniuse-lite@1.0.30001731: {}
+ caniuse-lite@1.0.30001746: {}
chalk@1.1.3:
dependencies:
@@ -14052,11 +14042,11 @@ snapshots:
console-browserify@1.2.0: {}
- consolidate@0.15.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(ejs@3.1.10)(lodash@4.17.21):
+ consolidate@0.15.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(lodash@4.17.21):
dependencies:
bluebird: 3.7.2
optionalDependencies:
- babel-core: 7.0.0-bridge.0(@babel/core@7.24.7)
+ babel-core: 7.0.0-bridge.0(@babel/core@7.28.0)
ejs: 3.1.10
lodash: 4.17.21
@@ -14094,7 +14084,7 @@ snapshots:
core-js-compat@3.37.1:
dependencies:
- browserslist: 4.25.1
+ browserslist: 4.26.2
core-js@2.6.12: {}
@@ -14102,9 +14092,9 @@ snapshots:
core-util-is@1.0.3: {}
- cosmiconfig-typescript-loader@6.1.0(@types/node@24.2.0)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5):
+ cosmiconfig-typescript-loader@6.1.0(@types/node@24.6.1)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5):
dependencies:
- '@types/node': 24.2.0
+ '@types/node': 24.6.1
cosmiconfig: 9.0.0(typescript@4.9.5)
jiti: 2.5.1
typescript: 4.9.5
@@ -14228,7 +14218,7 @@ snapshots:
semver: 7.7.2
webpack: 4.47.0
- css-loader@5.2.7(webpack@5.101.0):
+ css-loader@5.2.7(webpack@5.102.0):
dependencies:
icss-utils: 5.1.0(postcss@8.4.39)
loader-utils: 2.0.4
@@ -14240,7 +14230,7 @@ snapshots:
postcss-value-parser: 4.2.0
schema-utils: 3.3.0
semver: 7.7.2
- webpack: 5.101.0
+ webpack: 5.102.0
css-prefers-color-scheme@9.0.1(postcss@8.4.39):
dependencies:
@@ -14325,7 +14315,7 @@ snapshots:
cssnano-preset-default@7.0.3(postcss@8.4.39):
dependencies:
- browserslist: 4.25.1
+ browserslist: 4.26.2
css-declaration-sorter: 7.2.0(postcss@8.4.39)
cssnano-utils: 5.0.0(postcss@8.4.39)
postcss: 8.4.39
@@ -14634,7 +14624,7 @@ snapshots:
dependencies:
jake: 10.9.2
- electron-to-chromium@1.5.194: {}
+ electron-to-chromium@1.5.227: {}
elliptic@6.6.0:
dependencies:
@@ -14670,10 +14660,10 @@ snapshots:
memory-fs: 0.5.0
tapable: 1.1.3
- enhanced-resolve@5.18.2:
+ enhanced-resolve@5.18.3:
dependencies:
graceful-fs: 4.2.11
- tapable: 2.2.2
+ tapable: 2.2.3
ent@2.2.0:
optional: true
@@ -14830,7 +14820,7 @@ snapshots:
eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.7.3(eslint@8.57.1)(typescript@4.9.5))(eslint-plugin-import@2.28.1)(eslint@8.57.1):
dependencies:
debug: 4.4.1
- enhanced-resolve: 5.18.2
+ enhanced-resolve: 5.18.3
eslint: 8.57.1
eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.7.3(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.1)
eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.7.3(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.1)
@@ -14991,7 +14981,7 @@ snapshots:
eslint-visitor-keys@3.4.3: {}
- eslint-webpack-plugin@4.0.1(eslint@8.57.1)(webpack@5.101.0):
+ eslint-webpack-plugin@4.0.1(eslint@8.57.1)(webpack@5.102.0):
dependencies:
'@types/eslint': 8.44.3
eslint: 8.57.1
@@ -14999,7 +14989,7 @@ snapshots:
micromatch: 4.0.8
normalize-path: 3.0.0
schema-utils: 4.3.2
- webpack: 5.101.0
+ webpack: 5.102.0
eslint@8.57.1:
dependencies:
@@ -15209,7 +15199,7 @@ snapshots:
fast-text-encoding@1.0.6:
optional: true
- fast-uri@3.0.6: {}
+ fast-uri@3.1.0: {}
fastest-levenshtein@1.0.16: {}
@@ -15245,11 +15235,11 @@ snapshots:
schema-utils: 3.3.0
webpack: 4.47.0
- file-loader@6.2.0(webpack@5.101.0):
+ file-loader@6.2.0(webpack@5.102.0):
dependencies:
loader-utils: 2.0.4
schema-utils: 3.3.0
- webpack: 5.101.0
+ webpack: 5.102.0
file-uri-to-path@1.0.0: {}
@@ -15407,7 +15397,7 @@ snapshots:
cross-spawn: 7.0.6
signal-exit: 4.1.0
- fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.1)(typescript@4.9.5)(vue-template-compiler@2.7.16)(webpack@5.101.0):
+ fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.1)(typescript@4.9.5)(vue-template-compiler@2.7.16)(webpack@5.102.0):
dependencies:
'@babel/code-frame': 7.22.13
'@types/json-schema': 7.0.15
@@ -15423,7 +15413,7 @@ snapshots:
semver: 7.7.2
tapable: 1.1.3
typescript: 4.9.5
- webpack: 5.101.0
+ webpack: 5.102.0
optionalDependencies:
eslint: 8.57.1
vue-template-compiler: 2.7.16
@@ -15917,7 +15907,7 @@ snapshots:
entities: 4.5.0
param-case: 3.0.4
relateurl: 0.2.7
- terser: 5.43.1
+ terser: 5.44.0
html-tags@2.0.0: {}
@@ -16294,7 +16284,7 @@ snapshots:
istanbul-lib-source-maps@5.0.6:
dependencies:
- '@jridgewell/trace-mapping': 0.3.29
+ '@jridgewell/trace-mapping': 0.3.31
debug: 4.4.1
istanbul-lib-coverage: 3.2.2
transitivePeerDependencies:
@@ -16350,7 +16340,7 @@ snapshots:
- babel-plugin-macros
- supports-color
- jest-cli@30.0.5(@types/node@24.2.0):
+ jest-cli@30.0.5(@types/node@24.6.1):
dependencies:
'@jest/core': 30.0.5
'@jest/test-result': 30.0.5
@@ -16358,7 +16348,7 @@ snapshots:
chalk: 4.1.2
exit-x: 0.2.2
import-local: 3.2.0
- jest-config: 30.0.5(@types/node@24.2.0)
+ jest-config: 30.0.5(@types/node@24.6.1)
jest-util: 30.0.5
jest-validate: 30.0.5
yargs: 17.7.2
@@ -16401,6 +16391,38 @@ snapshots:
- babel-plugin-macros
- supports-color
+ jest-config@30.0.5(@types/node@24.6.1):
+ dependencies:
+ '@babel/core': 7.28.0
+ '@jest/get-type': 30.0.1
+ '@jest/pattern': 30.0.1
+ '@jest/test-sequencer': 30.0.5
+ '@jest/types': 30.0.5
+ babel-jest: 30.0.5(@babel/core@7.28.0)
+ chalk: 4.1.2
+ ci-info: 4.3.0
+ deepmerge: 4.3.1
+ glob: 10.4.5
+ graceful-fs: 4.2.11
+ jest-circus: 30.0.5
+ jest-docblock: 30.0.1
+ jest-environment-node: 30.0.5
+ jest-regex-util: 30.0.1
+ jest-resolve: 30.0.5
+ jest-runner: 30.0.5
+ jest-util: 30.0.5
+ jest-validate: 30.0.5
+ micromatch: 4.0.8
+ parse-json: 5.2.0
+ pretty-format: 30.0.5
+ slash: 3.0.0
+ strip-json-comments: 3.1.1
+ optionalDependencies:
+ '@types/node': 24.6.1
+ transitivePeerDependencies:
+ - babel-plugin-macros
+ - supports-color
+
jest-diff@30.0.5:
dependencies:
'@jest/diff-sequences': 30.0.1
@@ -16631,13 +16653,13 @@ snapshots:
jest-worker@26.6.2:
dependencies:
- '@types/node': 24.2.0
+ '@types/node': 24.6.1
merge-stream: 2.0.0
supports-color: 7.2.0
jest-worker@27.5.1:
dependencies:
- '@types/node': 24.2.0
+ '@types/node': 24.6.1
merge-stream: 2.0.0
supports-color: 8.1.1
@@ -16656,12 +16678,12 @@ snapshots:
merge-stream: 2.0.0
supports-color: 8.1.1
- jest@30.0.5(@types/node@24.2.0):
+ jest@30.0.5(@types/node@24.6.1):
dependencies:
'@jest/core': 30.0.5
'@jest/types': 30.0.5
import-local: 3.2.0
- jest-cli: 30.0.5(@types/node@24.2.0)
+ jest-cli: 30.0.5(@types/node@24.6.1)
transitivePeerDependencies:
- '@types/node'
- babel-plugin-macros
@@ -17056,11 +17078,11 @@ snapshots:
magic-string@0.30.10:
dependencies:
- '@jridgewell/sourcemap-codec': 1.5.4
+ '@jridgewell/sourcemap-codec': 1.5.5
magic-string@0.30.4:
dependencies:
- '@jridgewell/sourcemap-codec': 1.5.4
+ '@jridgewell/sourcemap-codec': 1.5.5
make-dir@1.3.0:
dependencies:
@@ -17435,7 +17457,7 @@ snapshots:
node-object-hash@1.4.2: {}
- node-releases@2.0.19: {}
+ node-releases@2.0.21: {}
node-res@5.0.1:
dependencies:
@@ -17497,10 +17519,10 @@ snapshots:
dependencies:
highlight.js: 11.11.1
- nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16):
+ nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16):
dependencies:
'@nuxt/babel-preset-app': 2.18.1(vue@2.7.16)
- '@nuxt/builder': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
+ '@nuxt/builder': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
'@nuxt/cli': 2.18.1
'@nuxt/components': 2.2.1(consola@3.2.3)
'@nuxt/config': 2.18.1
@@ -17513,7 +17535,7 @@ snapshots:
'@nuxt/utils': 2.18.1
'@nuxt/vue-app': 2.18.1
'@nuxt/vue-renderer': 2.18.1
- '@nuxt/webpack': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
+ '@nuxt/webpack': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
transitivePeerDependencies:
- '@vue/compiler-sfc'
- arc-templates
@@ -17943,7 +17965,7 @@ snapshots:
postcss-colormin@5.3.1(postcss@8.4.39):
dependencies:
- browserslist: 4.25.1
+ browserslist: 4.26.2
caniuse-api: 3.0.0
colord: 2.9.3
postcss: 8.4.39
@@ -17951,7 +17973,7 @@ snapshots:
postcss-colormin@7.0.1(postcss@8.4.39):
dependencies:
- browserslist: 4.25.1
+ browserslist: 4.26.2
caniuse-api: 3.0.0
colord: 2.9.3
postcss: 8.4.39
@@ -17959,13 +17981,13 @@ snapshots:
postcss-convert-values@5.1.3(postcss@8.4.39):
dependencies:
- browserslist: 4.25.1
+ browserslist: 4.26.2
postcss: 8.4.39
postcss-value-parser: 4.2.0
postcss-convert-values@7.0.1(postcss@8.4.39):
dependencies:
- browserslist: 4.25.1
+ browserslist: 4.26.2
postcss: 8.4.39
postcss-value-parser: 4.2.0
@@ -18119,7 +18141,7 @@ snapshots:
postcss-merge-rules@5.1.4(postcss@8.4.39):
dependencies:
- browserslist: 4.25.1
+ browserslist: 4.26.2
caniuse-api: 3.0.0
cssnano-utils: 3.1.0(postcss@8.4.39)
postcss: 8.4.39
@@ -18127,7 +18149,7 @@ snapshots:
postcss-merge-rules@7.0.2(postcss@8.4.39):
dependencies:
- browserslist: 4.25.1
+ browserslist: 4.26.2
caniuse-api: 3.0.0
cssnano-utils: 5.0.0(postcss@8.4.39)
postcss: 8.4.39
@@ -18159,14 +18181,14 @@ snapshots:
postcss-minify-params@5.1.4(postcss@8.4.39):
dependencies:
- browserslist: 4.25.1
+ browserslist: 4.26.2
cssnano-utils: 3.1.0(postcss@8.4.39)
postcss: 8.4.39
postcss-value-parser: 4.2.0
postcss-minify-params@7.0.1(postcss@8.4.39):
dependencies:
- browserslist: 4.25.1
+ browserslist: 4.26.2
cssnano-utils: 5.0.0(postcss@8.4.39)
postcss: 8.4.39
postcss-value-parser: 4.2.0
@@ -18270,13 +18292,13 @@ snapshots:
postcss-normalize-unicode@5.1.1(postcss@8.4.39):
dependencies:
- browserslist: 4.25.1
+ browserslist: 4.26.2
postcss: 8.4.39
postcss-value-parser: 4.2.0
postcss-normalize-unicode@7.0.1(postcss@8.4.39):
dependencies:
- browserslist: 4.25.1
+ browserslist: 4.26.2
postcss: 8.4.39
postcss-value-parser: 4.2.0
@@ -18363,7 +18385,7 @@ snapshots:
'@csstools/postcss-trigonometric-functions': 3.0.9(postcss@8.4.39)
'@csstools/postcss-unset-value': 3.0.1(postcss@8.4.39)
autoprefixer: 10.4.19(postcss@8.4.39)
- browserslist: 4.25.1
+ browserslist: 4.26.2
css-blank-pseudo: 6.0.2(postcss@8.4.39)
css-has-pseudo: 6.0.5(postcss@8.4.39)
css-prefers-color-scheme: 9.0.1(postcss@8.4.39)
@@ -18402,13 +18424,13 @@ snapshots:
postcss-reduce-initial@5.1.2(postcss@8.4.39):
dependencies:
- browserslist: 4.25.1
+ browserslist: 4.26.2
caniuse-api: 3.0.0
postcss: 8.4.39
postcss-reduce-initial@7.0.1(postcss@8.4.39):
dependencies:
- browserslist: 4.25.1
+ browserslist: 4.26.2
caniuse-api: 3.0.0
postcss: 8.4.39
@@ -18576,7 +18598,7 @@ snapshots:
'@protobufjs/pool': 1.1.0
'@protobufjs/utf8': 1.1.0
'@types/long': 4.0.2
- '@types/node': 24.2.0
+ '@types/node': 24.6.1
long: 4.0.0
optional: true
@@ -18609,7 +18631,7 @@ snapshots:
'@protobufjs/path': 1.1.2
'@protobufjs/pool': 1.1.0
'@protobufjs/utf8': 1.1.0
- '@types/node': 24.2.0
+ '@types/node': 24.6.1
long: 5.2.3
protocols@2.0.1: {}
@@ -18949,14 +18971,14 @@ snapshots:
safer-buffer@2.1.2: {}
- sass-loader@10.4.1(sass@1.32.13)(webpack@5.101.0):
+ sass-loader@10.4.1(sass@1.32.13)(webpack@5.102.0):
dependencies:
klona: 2.0.6
loader-utils: 2.0.4
neo-async: 2.6.2
schema-utils: 3.3.0
semver: 7.7.2
- webpack: 5.101.0
+ webpack: 5.102.0
optionalDependencies:
sass: 1.32.13
@@ -19395,13 +19417,13 @@ snapshots:
stylehacks@5.1.1(postcss@8.4.39):
dependencies:
- browserslist: 4.25.1
+ browserslist: 4.26.2
postcss: 8.4.39
postcss-selector-parser: 6.1.2
stylehacks@7.0.2(postcss@8.4.39):
dependencies:
- browserslist: 4.25.1
+ browserslist: 4.26.2
postcss: 8.4.39
postcss-selector-parser: 6.1.2
@@ -19431,7 +19453,7 @@ snapshots:
stylelint: 15.11.0(typescript@4.9.5)
stylelint-config-recommended: 13.0.0(stylelint@15.11.0(typescript@4.9.5))
- stylelint-webpack-plugin@5.0.1(stylelint@15.11.0(typescript@4.9.5))(webpack@5.101.0):
+ stylelint-webpack-plugin@5.0.1(stylelint@15.11.0(typescript@4.9.5))(webpack@5.102.0):
dependencies:
globby: 11.1.0
jest-worker: 29.7.0
@@ -19439,7 +19461,7 @@ snapshots:
normalize-path: 3.0.0
schema-utils: 4.3.2
stylelint: 15.11.0(typescript@4.9.5)
- webpack: 5.101.0
+ webpack: 5.102.0
stylelint@15.11.0(typescript@4.9.5):
dependencies:
@@ -19546,7 +19568,7 @@ snapshots:
tapable@1.1.3: {}
- tapable@2.2.2: {}
+ tapable@2.2.3: {}
tar@6.2.0:
dependencies:
@@ -19591,20 +19613,20 @@ snapshots:
schema-utils: 3.3.0
serialize-javascript: 5.0.1
source-map: 0.6.1
- terser: 5.43.1
+ terser: 5.44.0
webpack: 4.47.0
webpack-sources: 1.4.3
transitivePeerDependencies:
- bluebird
- terser-webpack-plugin@5.3.14(webpack@5.101.0):
+ terser-webpack-plugin@5.3.14(webpack@5.102.0):
dependencies:
- '@jridgewell/trace-mapping': 0.3.29
+ '@jridgewell/trace-mapping': 0.3.31
jest-worker: 27.5.1
schema-utils: 4.3.2
serialize-javascript: 6.0.2
- terser: 5.43.1
- webpack: 5.101.0
+ terser: 5.44.0
+ webpack: 5.102.0
terser@4.8.1:
dependencies:
@@ -19613,9 +19635,9 @@ snapshots:
source-map: 0.6.1
source-map-support: 0.5.21
- terser@5.43.1:
+ terser@5.44.0:
dependencies:
- '@jridgewell/source-map': 0.3.10
+ '@jridgewell/source-map': 0.3.11
acorn: 8.15.0
commander: 2.20.3
source-map-support: 0.5.21
@@ -19723,12 +19745,12 @@ snapshots:
dependencies:
typescript: 4.9.5
- ts-jest@29.4.0(@babel/core@7.24.7)(@jest/transform@30.0.5)(@jest/types@30.0.5)(babel-jest@30.0.5(@babel/core@7.24.7))(jest-util@30.0.5)(jest@30.0.5(@types/node@24.2.0))(typescript@4.9.5):
+ ts-jest@29.4.0(@babel/core@7.28.0)(@jest/transform@30.0.5)(@jest/types@30.0.5)(babel-jest@30.0.5(@babel/core@7.28.0))(jest-util@30.0.5)(jest@30.0.5(@types/node@24.6.1))(typescript@4.9.5):
dependencies:
bs-logger: 0.2.6
ejs: 3.1.10
fast-json-stable-stringify: 2.1.0
- jest: 30.0.5(@types/node@24.2.0)
+ jest: 30.0.5(@types/node@24.6.1)
json5: 2.2.3
lodash.memoize: 4.1.2
make-error: 1.3.6
@@ -19737,13 +19759,13 @@ snapshots:
typescript: 4.9.5
yargs-parser: 21.1.1
optionalDependencies:
- '@babel/core': 7.24.7
+ '@babel/core': 7.28.0
'@jest/transform': 30.0.5
'@jest/types': 30.0.5
- babel-jest: 30.0.5(@babel/core@7.24.7)
+ babel-jest: 30.0.5(@babel/core@7.28.0)
jest-util: 30.0.5
- ts-loader@8.4.0(typescript@4.9.5)(webpack@5.101.0):
+ ts-loader@8.4.0(typescript@4.9.5)(webpack@5.102.0):
dependencies:
chalk: 4.1.2
enhanced-resolve: 4.5.0
@@ -19751,7 +19773,7 @@ snapshots:
micromatch: 4.0.8
semver: 7.7.2
typescript: 4.9.5
- webpack: 5.101.0
+ webpack: 5.102.0
ts-pnp@1.2.0(typescript@4.9.5):
optionalDependencies:
@@ -19858,6 +19880,8 @@ snapshots:
undici-types@7.10.0: {}
+ undici-types@7.13.0: {}
+
undici@6.19.7: {}
unfetch@5.0.0: {}
@@ -20007,9 +20031,9 @@ snapshots:
upath@2.0.1: {}
- update-browserslist-db@1.1.3(browserslist@4.25.1):
+ update-browserslist-db@1.1.3(browserslist@4.26.2):
dependencies:
- browserslist: 4.25.1
+ browserslist: 4.26.2
escalade: 3.2.0
picocolors: 1.1.1
@@ -20019,14 +20043,14 @@ snapshots:
urix@0.1.0: {}
- url-loader@4.1.1(file-loader@6.2.0(webpack@5.101.0))(webpack@4.47.0):
+ url-loader@4.1.1(file-loader@6.2.0(webpack@5.102.0))(webpack@4.47.0):
dependencies:
loader-utils: 2.0.4
mime-types: 2.1.35
schema-utils: 3.3.0
webpack: 4.47.0
optionalDependencies:
- file-loader: 6.2.0(webpack@5.101.0)
+ file-loader: 6.2.0(webpack@5.102.0)
url@0.11.3:
dependencies:
@@ -20059,7 +20083,7 @@ snapshots:
v8-to-istanbul@9.3.0:
dependencies:
- '@jridgewell/trace-mapping': 0.3.29
+ '@jridgewell/trace-mapping': 0.3.31
'@types/istanbul-lib-coverage': 2.0.6
convert-source-map: 2.0.0
@@ -20070,37 +20094,37 @@ snapshots:
vary@1.1.2: {}
- vite-plugin-eslint@1.8.1(eslint@8.57.1)(vite@4.5.3(@types/node@24.2.0)(sass@1.32.13)(terser@5.43.1)):
+ vite-plugin-eslint@1.8.1(eslint@8.57.1)(vite@4.5.3(@types/node@24.6.1)(sass@1.32.13)(terser@5.44.0)):
dependencies:
'@rollup/pluginutils': 4.2.1
'@types/eslint': 8.44.3
eslint: 8.57.1
rollup: 2.79.2
- vite: 4.5.3(@types/node@24.2.0)(sass@1.32.13)(terser@5.43.1)
+ vite: 4.5.3(@types/node@24.6.1)(sass@1.32.13)(terser@5.44.0)
- vite-plugin-stylelint@5.3.1(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@24.2.0)(sass@1.32.13)(terser@5.43.1)):
+ vite-plugin-stylelint@5.3.1(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@24.6.1)(sass@1.32.13)(terser@5.44.0)):
dependencies:
'@rollup/pluginutils': 5.1.0(rollup@3.29.5)
chokidar: 3.6.0
debug: 4.4.1
stylelint: 15.11.0(typescript@4.9.5)
- vite: 4.5.3(@types/node@24.2.0)(sass@1.32.13)(terser@5.43.1)
+ vite: 4.5.3(@types/node@24.6.1)(sass@1.32.13)(terser@5.44.0)
optionalDependencies:
postcss: 8.4.39
rollup: 3.29.5
transitivePeerDependencies:
- supports-color
- vite@4.5.3(@types/node@24.2.0)(sass@1.32.13)(terser@5.43.1):
+ vite@4.5.3(@types/node@24.6.1)(sass@1.32.13)(terser@5.44.0):
dependencies:
esbuild: 0.18.20
postcss: 8.5.6
rollup: 3.29.5
optionalDependencies:
- '@types/node': 24.2.0
+ '@types/node': 24.6.1
fsevents: 2.3.3
sass: 1.32.13
- terser: 5.43.1
+ terser: 5.44.0
vm-browserify@1.1.2: {}
@@ -20147,9 +20171,9 @@ snapshots:
vue-hot-reload-api@2.3.4: {}
- vue-jest@3.0.7(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(vue-template-compiler@2.7.16)(vue@2.7.16):
+ vue-jest@3.0.7(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(vue-template-compiler@2.7.16)(vue@2.7.16):
dependencies:
- babel-core: 7.0.0-bridge.0(@babel/core@7.24.7)
+ babel-core: 7.0.0-bridge.0(@babel/core@7.28.0)
babel-plugin-transform-es2015-modules-commonjs: 6.26.2
chalk: 2.4.2
deasync: 0.1.29
@@ -20166,10 +20190,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
- vue-loader@15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@5.101.0))(ejs@3.1.10)(lodash@4.17.21)(prettier@3.6.2)(vue-template-compiler@2.7.16)(webpack@4.47.0):
+ vue-loader@15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@5.102.0))(ejs@3.1.10)(lodash@4.17.21)(prettier@3.6.2)(vue-template-compiler@2.7.16)(webpack@4.47.0):
dependencies:
- '@vue/component-compiler-utils': 3.3.0(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(ejs@3.1.10)(lodash@4.17.21)
- css-loader: 5.2.7(webpack@5.101.0)
+ '@vue/component-compiler-utils': 3.3.0(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(lodash@4.17.21)
+ css-loader: 5.2.7(webpack@5.102.0)
hash-sum: 1.0.2
loader-utils: 1.4.2
vue-hot-reload-api: 2.3.4
@@ -20277,16 +20301,16 @@ snapshots:
'@vue/compiler-sfc': 2.7.16
csstype: 3.1.2
- vuetify-loader@1.9.2(vue@2.7.16)(vuetify@2.7.2(vue@2.7.16))(webpack@5.101.0):
+ vuetify-loader@1.9.2(vue@2.7.16)(vuetify@2.7.2(vue@2.7.16))(webpack@5.102.0):
dependencies:
acorn: 8.15.0
acorn-walk: 8.2.0
decache: 4.6.2
- file-loader: 6.2.0(webpack@5.101.0)
+ file-loader: 6.2.0(webpack@5.102.0)
loader-utils: 2.0.4
vue: 2.7.16
vuetify: 2.7.2(vue@2.7.16)
- webpack: 5.101.0
+ webpack: 5.102.0
vuetify@2.7.2(vue@2.7.16):
dependencies:
@@ -20404,7 +20428,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- webpack@5.101.0:
+ webpack@5.102.0:
dependencies:
'@types/eslint-scope': 3.7.7
'@types/estree': 1.0.8
@@ -20414,9 +20438,9 @@ snapshots:
'@webassemblyjs/wasm-parser': 1.14.1
acorn: 8.15.0
acorn-import-phases: 1.0.4(acorn@8.15.0)
- browserslist: 4.25.1
+ browserslist: 4.26.2
chrome-trace-event: 1.0.4
- enhanced-resolve: 5.18.2
+ enhanced-resolve: 5.18.3
es-module-lexer: 1.7.0
eslint-scope: 5.1.1
events: 3.3.0
@@ -20427,8 +20451,8 @@ snapshots:
mime-types: 2.1.35
neo-async: 2.6.2
schema-utils: 4.3.2
- tapable: 2.2.2
- terser-webpack-plugin: 5.3.14(webpack@5.101.0)
+ tapable: 2.2.3
+ terser-webpack-plugin: 5.3.14(webpack@5.102.0)
watchpack: 2.4.4
webpack-sources: 3.3.3
transitivePeerDependencies:
From 4d697e4e1bd1b7ed9c664d3891652f1402cccb73 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 1 Oct 2025 00:10:42 +0000
Subject: [PATCH 018/215] fix(deps): bump @nuxtjs/sitemap from 2.4.0 to 7.4.7
in /web
Bumps [@nuxtjs/sitemap](https://github.com/nuxt-modules/sitemap) from 2.4.0 to 7.4.7.
- [Release notes](https://github.com/nuxt-modules/sitemap/releases)
- [Commits](https://github.com/nuxt-modules/sitemap/compare/v2.4.0...v7.4.7)
---
updated-dependencies:
- dependency-name: "@nuxtjs/sitemap"
dependency-version: 7.4.7
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot]
---
web/package.json | 2 +-
web/pnpm-lock.yaml | 1204 ++++++++++++++++++++++++--------------------
2 files changed, 651 insertions(+), 555 deletions(-)
diff --git a/web/package.json b/web/package.json
index 1d5ece33..416ac0a9 100644
--- a/web/package.json
+++ b/web/package.json
@@ -25,7 +25,7 @@
"@mdi/js": "^7.4.47",
"@nuxtjs/dotenv": "^1.4.2",
"@nuxtjs/firebase": "^8.2.2",
- "@nuxtjs/sitemap": "^2.4.0",
+ "@nuxtjs/sitemap": "^7.4.7",
"chart.js": "^4.5.0",
"chartjs-adapter-moment": "^1.0.1",
"core-js": "^3.44.0",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index 1653b83e..ecc46f09 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -16,10 +16,10 @@ importers:
version: 1.4.2
'@nuxtjs/firebase':
specifier: ^8.2.2
- version: 8.2.2(@firebase/app-types@0.9.2)(firebase@10.14.1)(nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16))
+ version: 8.2.2(@firebase/app-types@0.9.2)(firebase@10.14.1)(nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(consola@3.4.2)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16))
'@nuxtjs/sitemap':
- specifier: ^2.4.0
- version: 2.4.0
+ specifier: ^7.4.7
+ version: 7.4.7(h3@1.15.4)(vue@2.7.16)
chart.js:
specifier: ^4.5.0
version: 4.5.0
@@ -52,7 +52,7 @@ importers:
version: 2.30.1
nuxt:
specifier: ^2.18.1
- version: 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
+ version: 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(consola@3.4.2)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
nuxt-highlightjs:
specifier: ^1.0.3
version: 1.0.3
@@ -101,7 +101,7 @@ importers:
devDependencies:
'@babel/eslint-parser':
specifier: ^7.27.5
- version: 7.27.5(@babel/core@7.24.7)(eslint@8.57.1)
+ version: 7.27.5(@babel/core@7.28.0)(eslint@8.57.1)
'@commitlint/cli':
specifier: ^19.8.1
version: 19.8.1(@types/node@24.2.0)(typescript@4.9.5)
@@ -119,10 +119,10 @@ importers:
version: 12.1.0(eslint@8.57.1)(typescript@4.9.5)
'@nuxtjs/eslint-module':
specifier: ^4.1.0
- version: 4.1.0(eslint@8.57.1)(rollup@3.29.5)(vite@4.5.3(@types/node@24.2.0)(sass@1.32.13)(terser@5.43.1))(webpack@5.101.0)
+ version: 4.1.0(eslint@8.57.1)(rollup@3.29.5)(webpack@5.101.0)
'@nuxtjs/stylelint-module':
specifier: ^5.2.0
- version: 5.2.0(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@24.2.0)(sass@1.32.13)(terser@5.43.1))(webpack@5.101.0)
+ version: 5.2.0(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(webpack@5.101.0)
'@nuxtjs/vuetify':
specifier: ^1.12.3
version: 1.12.3(vue@2.7.16)(webpack@5.101.0)
@@ -137,10 +137,10 @@ importers:
version: 0.30.0
babel-core:
specifier: 7.0.0-bridge.0
- version: 7.0.0-bridge.0(@babel/core@7.24.7)
+ version: 7.0.0-bridge.0(@babel/core@7.28.0)
babel-jest:
specifier: ^30.0.5
- version: 30.0.5(@babel/core@7.24.7)
+ version: 30.0.5(@babel/core@7.28.0)
eslint:
specifier: ^8.57.1
version: 8.57.1
@@ -185,13 +185,13 @@ importers:
version: 34.0.0(stylelint@15.11.0(typescript@4.9.5))
ts-jest:
specifier: ^29.4.0
- version: 29.4.0(@babel/core@7.24.7)(@jest/transform@30.0.5)(@jest/types@30.0.5)(babel-jest@30.0.5(@babel/core@7.24.7))(jest-util@30.0.5)(jest@30.0.5(@types/node@24.2.0))(typescript@4.9.5)
+ version: 29.4.0(@babel/core@7.28.0)(@jest/transform@30.0.5)(@jest/types@30.0.5)(babel-jest@30.0.5(@babel/core@7.28.0))(jest-util@30.0.5)(jest@30.0.5(@types/node@24.2.0))(typescript@4.9.5)
vue-client-only:
specifier: ^2.1.0
version: 2.1.0
vue-jest:
specifier: ^3.0.7
- version: 3.0.7(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(vue-template-compiler@2.7.16)(vue@2.7.16)
+ version: 3.0.7(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(vue-template-compiler@2.7.16)(vue@2.7.16)
vue-meta:
specifier: ^2.4.0
version: 2.4.0
@@ -1385,138 +1385,6 @@ packages:
'@emnapi/wasi-threads@1.0.4':
resolution: {integrity: sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==}
- '@esbuild/android-arm64@0.18.20':
- resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [android]
-
- '@esbuild/android-arm@0.18.20':
- resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [android]
-
- '@esbuild/android-x64@0.18.20':
- resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [android]
-
- '@esbuild/darwin-arm64@0.18.20':
- resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [darwin]
-
- '@esbuild/darwin-x64@0.18.20':
- resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [darwin]
-
- '@esbuild/freebsd-arm64@0.18.20':
- resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [freebsd]
-
- '@esbuild/freebsd-x64@0.18.20':
- resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [freebsd]
-
- '@esbuild/linux-arm64@0.18.20':
- resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [linux]
-
- '@esbuild/linux-arm@0.18.20':
- resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==}
- engines: {node: '>=12'}
- cpu: [arm]
- os: [linux]
-
- '@esbuild/linux-ia32@0.18.20':
- resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [linux]
-
- '@esbuild/linux-loong64@0.18.20':
- resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==}
- engines: {node: '>=12'}
- cpu: [loong64]
- os: [linux]
-
- '@esbuild/linux-mips64el@0.18.20':
- resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==}
- engines: {node: '>=12'}
- cpu: [mips64el]
- os: [linux]
-
- '@esbuild/linux-ppc64@0.18.20':
- resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==}
- engines: {node: '>=12'}
- cpu: [ppc64]
- os: [linux]
-
- '@esbuild/linux-riscv64@0.18.20':
- resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==}
- engines: {node: '>=12'}
- cpu: [riscv64]
- os: [linux]
-
- '@esbuild/linux-s390x@0.18.20':
- resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==}
- engines: {node: '>=12'}
- cpu: [s390x]
- os: [linux]
-
- '@esbuild/linux-x64@0.18.20':
- resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [linux]
-
- '@esbuild/netbsd-x64@0.18.20':
- resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [netbsd]
-
- '@esbuild/openbsd-x64@0.18.20':
- resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [openbsd]
-
- '@esbuild/sunos-x64@0.18.20':
- resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [sunos]
-
- '@esbuild/win32-arm64@0.18.20':
- resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==}
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [win32]
-
- '@esbuild/win32-ia32@0.18.20':
- resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==}
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [win32]
-
- '@esbuild/win32-x64@0.18.20':
- resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==}
- engines: {node: '>=12'}
- cpu: [x64]
- os: [win32]
-
'@eslint-community/eslint-utils@4.4.0':
resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -1935,6 +1803,9 @@ packages:
'@jridgewell/gen-mapping@0.3.12':
resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==}
+ '@jridgewell/gen-mapping@0.3.13':
+ resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
+
'@jridgewell/gen-mapping@0.3.3':
resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
engines: {node: '>=6.0.0'}
@@ -1943,6 +1814,9 @@ packages:
resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
engines: {node: '>=6.0.0'}
+ '@jridgewell/remapping@2.3.5':
+ resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==}
+
'@jridgewell/resolve-uri@3.1.2':
resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
engines: {node: '>=6.0.0'}
@@ -1961,9 +1835,15 @@ packages:
'@jridgewell/sourcemap-codec@1.5.4':
resolution: {integrity: sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==}
+ '@jridgewell/sourcemap-codec@1.5.5':
+ resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
+
'@jridgewell/trace-mapping@0.3.29':
resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==}
+ '@jridgewell/trace-mapping@0.3.31':
+ resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
+
'@jsonjoy.com/base64@1.1.2':
resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==}
engines: {node: '>=10.0'}
@@ -2043,6 +1923,11 @@ packages:
'@nuxt/devalue@2.0.2':
resolution: {integrity: sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==}
+ '@nuxt/devtools-kit@2.6.5':
+ resolution: {integrity: sha512-t+NxoENyzJ8KZDrnbVYv3FJI5VXqSi6X4w6ZsuIIh0aKABu6+6k9nR/LoEhrM0oekn/2LDhA0NmsRZyzCXt2xQ==}
+ peerDependencies:
+ vite: '>=6.0'
+
'@nuxt/friendly-errors-webpack-plugin@2.6.0':
resolution: {integrity: sha512-3IZj6MXbzlvUxDncAxgBMLQwGPY/JlNhy2i+AGyOHCAReR5HcBxYjVRBvyaKM9R3s5k4OODYKeHAbrToZH/47w==}
engines: {node: '>=14.18.0', npm: '>=5.0.0'}
@@ -2057,10 +1942,18 @@ packages:
resolution: {integrity: sha512-5kOqEzfc3FsAncjK2je7vuq4/QsR5ypViTnop52mlFLf0Ku1NMCrWCSWYowAh4P0yqTACMAZYa+HdRZHscU84g==}
engines: {node: ^14.18.0 || >=16.10.0}
+ '@nuxt/kit@3.19.2':
+ resolution: {integrity: sha512-+QiqO0WcIxsKLUqXdVn3m4rzTRm2fO9MZgd330utCAaagGmHsgiMJp67kE14boJEPutnikfz3qOmrzBnDIHUUg==}
+ engines: {node: '>=18.12.0'}
+
'@nuxt/kit@3.7.4':
resolution: {integrity: sha512-/S5abZL62BITCvC/TY3KWA6N721U1Osln3cQdBb56XHIeafZCBVqTi92Xb0o7ovl72mMRhrKwRu7elzvz9oT/g==}
engines: {node: ^14.18.0 || >=16.10.0}
+ '@nuxt/kit@4.1.2':
+ resolution: {integrity: sha512-P5q41xeEOa6ZQC0PvIP7TSBmOAMxXK4qihDcCbYIJq8RcVsEPbGZVlidmxE6EOw1ucSyodq9nbV31FAKwoL4NQ==}
+ engines: {node: '>=18.12.0'}
+
'@nuxt/loading-screen@2.0.4':
resolution: {integrity: sha512-xpEDAoRu75tLUYCkUJCIvJkWJSuwr8pqomvQ+fkXpSrkxZ/9OzlBFjAbVdOAWTMj4aV/LVQso4vcEdircKeFIQ==}
@@ -2138,9 +2031,9 @@ packages:
firebase: ^9.6.2
nuxt: ^2.15.6
- '@nuxtjs/sitemap@2.4.0':
- resolution: {integrity: sha512-TVgIYOtPp7KAfaUo76WRpGbO20j4D/xi/A7shFIGjARHs+FvfAWXNCtBT87dTwe/RoYzAsEKtijFFUTaSu5bUA==}
- engines: {node: '>=8.9.0', npm: '>=5.0.0'}
+ '@nuxtjs/sitemap@7.4.7':
+ resolution: {integrity: sha512-DUhX92lnCJD6tpghUmfmRIsSIoiXMS2SQ2Yd9Tg1+SnZskiKX+DGwLeAeHX8r0/9Pl/bTDpmYhs1snWcCoIkXA==}
+ engines: {node: '>=18.0.0'}
'@nuxtjs/stylelint-module@5.2.0':
resolution: {integrity: sha512-CMGZORt5fM1pK+5Xj3p2uajkK9DZ9Sja7jewXa8LZFNMjt7GIsKaoAvH4poCUMorhIVBS0lGQZ9BlRmg3MWxvg==}
@@ -2168,8 +2061,8 @@ packages:
resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==}
engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
- '@polka/url@1.0.0-next.23':
- resolution: {integrity: sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==}
+ '@polka/url@1.0.0-next.29':
+ resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==}
'@protobufjs/aspromise@1.1.2':
resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==}
@@ -2340,9 +2233,6 @@ packages:
'@types/minimist@1.2.3':
resolution: {integrity: sha512-ZYFzrvyWUNhaPomn80dsMNgMeXxNWZBdkuG/hWlUvXvbdUH8ZERNBGXnU87McuGcWDsyzX2aChCv/SVN348k3A==}
- '@types/node@12.20.55':
- resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
-
'@types/node@16.18.55':
resolution: {integrity: sha512-Y1zz/LIuJek01+hlPNzzXQhmq/Z2BCP96j18MSXC0S0jSu/IG4FFxmBs7W4/lI2vPJ7foVfEB0hUVtnOjnCiTg==}
@@ -2373,9 +2263,6 @@ packages:
'@types/range-parser@1.2.5':
resolution: {integrity: sha512-xrO9OoVPqFuYyR/loIHjnbvvyRZREYKLjxV4+dY6v3FQR3stQ9ZxIGkaclF7YhI9hfjpuTbu14hZEy94qKLtOA==}
- '@types/sax@1.2.7':
- resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==}
-
'@types/semver@7.5.3':
resolution: {integrity: sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==}
@@ -2892,9 +2779,6 @@ packages:
aproba@1.2.0:
resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==}
- arg@4.1.3:
- resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
-
arg@5.0.2:
resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
@@ -2976,10 +2860,6 @@ packages:
resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==}
engines: {node: '>=8'}
- async-cache@1.1.0:
- resolution: {integrity: sha512-YDQc4vBn5NFhY6g6HhVshyi3Fy9+SQ5ePnE7JLDJn1DoL+i7ER+vMwtTNOYk9leZkYMnOwpBCWqyLDPw8Aig8g==}
- deprecated: No longer maintained. Use [lru-cache](http://npm.im/lru-cache) version 7.6 or higher, and provide an asynchronous `fetchMethod` option.
-
async-each@1.0.6:
resolution: {integrity: sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==}
@@ -3236,6 +3116,14 @@ packages:
c12@1.4.2:
resolution: {integrity: sha512-3IP/MuamSVRVw8W8+CHWAz9gKN4gd+voF2zm/Ln6D25C2RhytEZ1ABbC8MjKr4BR9rhoV1JQ7jJA158LDiTkLg==}
+ c12@3.3.0:
+ resolution: {integrity: sha512-K9ZkuyeJQeqLEyqldbYLG3wjqwpw4BVaAqvmxq3GYKK0b1A/yYQdIcJxkzAOWcNVWhJpRXAPfZFueekiY/L8Dw==}
+ peerDependencies:
+ magicast: ^0.3.5
+ peerDependenciesMeta:
+ magicast:
+ optional: true
+
cacache@12.0.4:
resolution: {integrity: sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==}
@@ -3307,6 +3195,10 @@ packages:
resolution: {integrity: sha512-1tm8DTaJhPBG3bIkVeZt1iZM9GfSX2lzOeDVZH9R9ffRHpmHvxZ/QhgQH/aDTkswQVt+YHdXAdS/In/30OjCbg==}
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
char-regex@1.0.2:
resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
engines: {node: '>=10'}
@@ -3336,6 +3228,10 @@ packages:
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
engines: {node: '>= 8.10.0'}
+ chokidar@4.0.3:
+ resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
+ engines: {node: '>= 14.16.0'}
+
chownr@1.1.4:
resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==}
@@ -3506,12 +3402,12 @@ packages:
resolution: {integrity: sha512-P7X+QL9Hb9B/c8HI5BFFKmjgBu2XpQuF98WZ9XkO+dBGgk5XgwiQz7o1SmpglNWId3581UcS0SFAWfoIhMHPfg==}
engines: {node: '>=0.10.0'}
- confbox@0.1.7:
- resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==}
-
confbox@0.1.8:
resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==}
+ confbox@0.2.2:
+ resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==}
+
config-chain@1.1.13:
resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==}
@@ -3530,6 +3426,10 @@ packages:
resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==}
engines: {node: ^14.18.0 || >=16.10.0}
+ consola@3.4.2:
+ resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==}
+ engines: {node: ^14.18.0 || >=16.10.0}
+
console-browserify@1.2.0:
resolution: {integrity: sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==}
@@ -3718,6 +3618,9 @@ packages:
convert-source-map@2.0.0:
resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
+ cookie-es@1.2.2:
+ resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==}
+
cookie@0.3.1:
resolution: {integrity: sha512-+IJOX0OqlHCszo2mBUq+SrEbCj6w7Kpffqx60zYbPTFaO4+yYgRjHwcZNpWvaTylDHaV7PPmBHzSecZiMhtPgw==}
engines: {node: '>= 0.6'}
@@ -3802,6 +3705,9 @@ packages:
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
engines: {node: '>= 8'}
+ crossws@0.3.5:
+ resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==}
+
crypto-browserify@3.12.0:
resolution: {integrity: sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==}
@@ -4084,6 +3990,9 @@ packages:
destr@2.0.3:
resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==}
+ destr@2.0.5:
+ resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==}
+
destroy@1.2.0:
resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
@@ -4168,6 +4077,10 @@ packages:
resolution: {integrity: sha512-kQhDYKZecqnM0fCnzI5eIv5L4cAe/iRI+HqMbO/hbRdTAeXDG+M9FjipUxNfbARuEg4iHIbhnhs78BCHNbSxEQ==}
engines: {node: '>=12'}
+ dotenv@17.2.3:
+ resolution: {integrity: sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==}
+ engines: {node: '>=12'}
+
dotenv@8.6.0:
resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==}
engines: {node: '>=10'}
@@ -4282,6 +4195,9 @@ packages:
error-stack-parser@2.1.4:
resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==}
+ errx@0.1.0:
+ resolution: {integrity: sha512-fZmsRiDNv07K6s2KkKFTiD2aIvECa7++PKyD5NC32tpRw46qZA3sOz+aM+/V9V0GDHxVTKLziveV4JhzBHDp9Q==}
+
es-abstract@1.22.2:
resolution: {integrity: sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==}
engines: {node: '>= 0.4'}
@@ -4315,11 +4231,6 @@ packages:
resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
engines: {node: '>= 0.4'}
- esbuild@0.18.20:
- resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==}
- engines: {node: '>=12'}
- hasBin: true
-
escalade@3.2.0:
resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
engines: {node: '>=6'}
@@ -4575,6 +4486,9 @@ packages:
resolution: {integrity: sha512-P0te2pt+hHI5qLJkIR+iMvS+lYUZml8rKKsohVHAGY+uClp9XVbdyYNJOIjSRpHVp8s8YqxJCiHUkSYZGr8rtQ==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ exsolve@1.0.7:
+ resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==}
+
extend-shallow@2.0.1:
resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
engines: {node: '>=0.10.0'}
@@ -4627,6 +4541,10 @@ packages:
fast-uri@3.0.6:
resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==}
+ fast-xml-parser@5.2.5:
+ resolution: {integrity: sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==}
+ hasBin: true
+
fastest-levenshtein@1.0.16:
resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==}
engines: {node: '>= 4.9.1'}
@@ -4641,6 +4559,15 @@ packages:
fb-watchman@2.0.2:
resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
+ fdir@6.5.0:
+ resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ picomatch: ^3 || ^4
+ peerDependenciesMeta:
+ picomatch:
+ optional: true
+
figgy-pudding@3.5.2:
resolution: {integrity: sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==}
deprecated: This module is no longer supported.
@@ -4912,6 +4839,10 @@ packages:
resolution: {integrity: sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==}
hasBin: true
+ giget@2.0.0:
+ resolution: {integrity: sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==}
+ hasBin: true
+
git-config-path@2.0.0:
resolution: {integrity: sha512-qc8h1KIQbJpp+241id3GuAtkdyJ+IK+LIVtkiFTRKRrmddDzs3SI9CvP1QYmWBFvm1I/PWRwj//of8bgAc0ltA==}
engines: {node: '>=4'}
@@ -5033,6 +4964,14 @@ packages:
resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==}
engines: {node: '>=10'}
+ h3-compression@0.3.2:
+ resolution: {integrity: sha512-B+yCKyDRnO0BXSfjAP4tCXJgJwmnKp3GyH5Yh66mY9KuOCrrGQSPk/gBFG2TgH7OyB/6mvqNZ1X0XNVuy0qRsw==}
+ peerDependencies:
+ h3: ^1.6.0
+
+ h3@1.15.4:
+ resolution: {integrity: sha512-z5cFQWDffyOe4vQ9xIqNfCZdV4p//vy6fBnr8Q1AWnVZ0teurKMG66rLj++TKwKPUP3u7iMUvrvKaEUiQw2QWQ==}
+
hard-rejection@2.1.0:
resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
engines: {node: '>=6'}
@@ -5250,6 +5189,14 @@ packages:
resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
engines: {node: '>= 4'}
+ ignore@5.3.2:
+ resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
+ engines: {node: '>= 4'}
+
+ ignore@7.0.5:
+ resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==}
+ engines: {node: '>= 4'}
+
import-fresh@3.3.0:
resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
engines: {node: '>=6'}
@@ -5316,6 +5263,9 @@ packages:
ip@2.0.1:
resolution: {integrity: sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==}
+ iron-webcrypto@1.2.1:
+ resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==}
+
is-accessor-descriptor@0.1.6:
resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==}
engines: {node: '>=0.10.0'}
@@ -5419,9 +5369,6 @@ packages:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
engines: {node: '>=0.10.0'}
- is-https@2.0.2:
- resolution: {integrity: sha512-UfUCKVQH/6PQRCh5Qk9vNu4feLZiFmV/gr8DjbtJD0IrCRIDTA6E+d/AVFGPulI5tqK5W45fYbn1Nir1O99rFw==}
-
is-negative-zero@2.0.2:
resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==}
engines: {node: '>= 0.4'}
@@ -5726,8 +5673,8 @@ packages:
resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==}
hasBin: true
- jiti@2.5.1:
- resolution: {integrity: sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==}
+ jiti@2.6.0:
+ resolution: {integrity: sha512-VXe6RjJkBPj0ohtqaO8vSWP3ZhAKo66fKrFNCll4BTcwljPLz03pCbaNKfzGP5MbrCYcbJ7v0nOYYwUzTEIdXQ==}
hasBin: true
jose@2.0.7:
@@ -5748,6 +5695,9 @@ packages:
js-tokens@9.0.0:
resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==}
+ js-tokens@9.0.1:
+ resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==}
+
js-yaml@3.14.1:
resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
hasBin: true
@@ -5872,6 +5822,9 @@ packages:
knitwork@1.1.0:
resolution: {integrity: sha512-oHnmiBUVHz1V+URE77PNot2lv3QiYU2zQf1JjOVkMt3YDKGbu8NAFr+c4mcNOhdsGrB/VpVbRwPwhiXrPhxQbw==}
+ knitwork@1.2.0:
+ resolution: {integrity: sha512-xYSH7AvuQ6nXkq42x0v5S8/Iry+cfulBz/DJQzhIyESdLD7425jXsPy4vn5cCXU+HhRN2kVw51Vd1K6/By4BQg==}
+
known-css-properties@0.29.0:
resolution: {integrity: sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==}
@@ -5942,6 +5895,10 @@ packages:
resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==}
engines: {node: '>=14'}
+ local-pkg@1.1.2:
+ resolution: {integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==}
+ engines: {node: '>=14'}
+
locate-path@3.0.0:
resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==}
engines: {node: '>=6'}
@@ -6019,9 +5976,6 @@ packages:
lodash.truncate@4.4.2:
resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==}
- lodash.unionby@4.8.0:
- resolution: {integrity: sha512-e60kn4GJIunNkw6v9MxRnUuLYI/Tyuanch7ozoCtk/1irJTYBj+qNTxr5B3qVflmJhwStJBv387Cb+9VOfABMg==}
-
lodash.uniq@4.5.0:
resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
@@ -6070,6 +6024,9 @@ packages:
magic-string@0.30.10:
resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==}
+ magic-string@0.30.19:
+ resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==}
+
magic-string@0.30.4:
resolution: {integrity: sha512-Q/TKtsC5BPm0kGqgBIF9oXAs/xEf2vRKiIB4wCRQTJOQIByZ1d+NnUOotvJOvNpi5RNIgVOMC3pOuaP1ZTDlVg==}
engines: {node: '>=12'}
@@ -6312,8 +6269,8 @@ packages:
mlly@1.7.1:
resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==}
- mlly@1.7.3:
- resolution: {integrity: sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==}
+ mlly@1.8.0:
+ resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==}
moment@2.30.1:
resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==}
@@ -6326,8 +6283,8 @@ packages:
resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
engines: {node: '>=4'}
- mrmime@1.0.1:
- resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==}
+ mrmime@2.0.1:
+ resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==}
engines: {node: '>=10'}
ms@2.0.0:
@@ -6354,11 +6311,6 @@ packages:
resolution: {integrity: sha512-21t+ozMQDAL/UGgQVBbZ/xXvNO10++ZPuTmKRO8k9V3AClVRht49ahtDjfY8l1q6nSHOrE5ASfthzH3ol6R/hg==}
engines: {node: '>=20.17'}
- nanoid@3.3.11:
- resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
- engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
- hasBin: true
-
nanoid@3.3.8:
resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
@@ -6396,6 +6348,9 @@ packages:
node-fetch-native@1.6.4:
resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==}
+ node-fetch-native@1.6.7:
+ resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==}
+
node-fetch@2.7.0:
resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
engines: {node: 4.x || >=6.0.0}
@@ -6418,6 +6373,9 @@ packages:
node-libs-browser@2.2.1:
resolution: {integrity: sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==}
+ node-mock-http@1.0.3:
+ resolution: {integrity: sha512-jN8dK25fsfnMrVsEhluUTPkBFY+6ybu7jSB1n+ri/vOGjJxU8J9CZhpSGkHXSkFjtUhbmoncG/YG9ta5Ludqog==}
+
node-object-hash@1.4.2:
resolution: {integrity: sha512-UdS4swXs85fCGWWf6t6DMGgpN/vnlKeSGEQ7hJcrs7PBFoxoKLmibc3QRb7fwiYsjdL7PX8iI/TMSlZ90dgHhQ==}
engines: {node: '>=0.10.0'}
@@ -6474,6 +6432,14 @@ packages:
nuxt-highlightjs@1.0.3:
resolution: {integrity: sha512-3UEEyVYwjN+tg+gFF2fC/K4+xMiGCQlZ+3c19f3MCa5l90JtV7QXfU/2NpTq3yY3BeAgAYSwLVbP1SWOhVsXaw==}
+ nuxt-site-config-kit@3.2.9:
+ resolution: {integrity: sha512-x8DjW9FnR96LqijcFSbZxae/RwqJ/Wr5ossqfrFDIqRWXO8jD/UX8wNQjXkDYYopHThGqdpxlPUj1FieNL2N8A==}
+
+ nuxt-site-config@3.2.9:
+ resolution: {integrity: sha512-Li/q3d8q/dGzWJJw9fFzZp7JnGUudKxB03gZojShYnN4lz15r++vL8ET1Vu7/BTDXaW9dhLRE1f60Et0jGk7ew==}
+ peerDependencies:
+ h3: ^1
+
nuxt@2.18.1:
resolution: {integrity: sha512-SZFOLDKgCfLu23BrQE0YYNWeoi/h+fw07TNDNDzRfbmMvQlStgTBG7lqeELytXdQnaPKWjWAYo12K7pPPRZb9Q==}
deprecated: Nuxt 2 has reached EOL and is no longer actively maintained. See https://nuxt.com/blog/nuxt2-eol for more details.
@@ -6487,6 +6453,11 @@ packages:
engines: {node: ^14.16.0 || >=16.10.0}
hasBin: true
+ nypm@0.6.2:
+ resolution: {integrity: sha512-7eM+hpOtrKrBDCh7Ypu2lJ9Z7PNZBdi/8AT3AX8xoCj43BBVHD0hPSTEvMtkMpfs8FCqBGhxB+uToIQimA111g==}
+ engines: {node: ^14.16.0 || >=16.10.0}
+ hasBin: true
+
object-assign@4.1.1:
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
engines: {node: '>=0.10.0'}
@@ -6533,11 +6504,14 @@ packages:
resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==}
engines: {node: '>= 0.4'}
- ohash@1.1.3:
- resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==}
+ ofetch@1.4.1:
+ resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==}
+
+ ohash@1.1.6:
+ resolution: {integrity: sha512-TBu7PtV8YkAZn0tSxobKY2n2aAQva936lhRrj6957aDaCf9IEtqsKbgMzXE/F/sjqYOwmrukeORHNLe5glk7Cg==}
- ohash@1.1.4:
- resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==}
+ ohash@2.0.11:
+ resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==}
on-finished@2.3.0:
resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==}
@@ -6724,6 +6698,9 @@ packages:
pathe@1.1.2:
resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
+ pathe@2.0.3:
+ resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
+
pbkdf2@3.1.2:
resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==}
engines: {node: '>=0.12'}
@@ -6731,6 +6708,9 @@ packages:
perfect-debounce@1.0.0:
resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==}
+ perfect-debounce@2.0.0:
+ resolution: {integrity: sha512-fkEH/OBiKrqqI/yIgjR92lMfs2K8105zt/VT6+7eTjNwisrsh47CeIED9z58zI7DfKdH3uHAn25ziRZn3kgAow==}
+
picocolors@0.2.1:
resolution: {integrity: sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==}
@@ -6784,11 +6764,11 @@ packages:
resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
engines: {node: '>=8'}
- pkg-types@1.1.2:
- resolution: {integrity: sha512-VEGf1he2DR5yowYRl0XJhWJq5ktm9gYIsH+y8sNJpHlxch7JPDaufgrsl4vYjd9hMUY8QVjoNncKbow9I7exyA==}
+ pkg-types@1.3.1:
+ resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==}
- pkg-types@1.2.1:
- resolution: {integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==}
+ pkg-types@2.3.0:
+ resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==}
pluralize@8.0.0:
resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
@@ -7368,10 +7348,6 @@ packages:
resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==}
engines: {node: ^10 || ^12 || >=14}
- postcss@8.5.6:
- resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==}
- engines: {node: ^10 || ^12 || >=14}
-
prelude-ls@1.2.1:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: '>= 0.8.0'}
@@ -7498,6 +7474,9 @@ packages:
resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==}
engines: {node: '>=0.6'}
+ quansync@0.2.11:
+ resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==}
+
query-string@4.3.4:
resolution: {integrity: sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==}
engines: {node: '>=0.10.0'}
@@ -7513,6 +7492,9 @@ packages:
resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
engines: {node: '>=10'}
+ radix3@1.1.2:
+ resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==}
+
randombytes@2.1.0:
resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
@@ -7566,6 +7548,10 @@ packages:
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
engines: {node: '>=8.10.0'}
+ readdirp@4.1.2:
+ resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==}
+ engines: {node: '>= 14.18.0'}
+
redent@4.0.0:
resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==}
engines: {node: '>=12'}
@@ -7776,9 +7762,6 @@ packages:
engines: {node: '>=8.9.0'}
hasBin: true
- sax@1.4.1:
- resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==}
-
saxes@6.0.0:
resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
engines: {node: '>=v12.22.7'}
@@ -7898,14 +7881,18 @@ packages:
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
engines: {node: '>=14'}
- sirv@2.0.3:
- resolution: {integrity: sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==}
+ sirv@2.0.4:
+ resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==}
engines: {node: '>= 10'}
- sitemap@4.1.1:
- resolution: {integrity: sha512-+8yd66IxyIFEMFkFpVoPuoPwBvdiL7Ap/HS5YD7igqO4phkyTPFIprCAE9NMHehAY5ZGN3MkAze4lDrOAX3sVQ==}
- engines: {node: '>=8.9.0', npm: '>=5.6.0'}
- hasBin: true
+ sirv@3.0.2:
+ resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==}
+ engines: {node: '>=18'}
+
+ site-config-stack@3.2.9:
+ resolution: {integrity: sha512-VHSClGeW2+pMxb3PAVdnbfuFGuan/PYWB+S7wk89ry4XQixu7zDKFRiyMSzoORs0NGXCmGIjU0ePjwNjs9Zn5Q==}
+ peerDependencies:
+ vue: ^3
slash@3.0.0:
resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
@@ -7962,10 +7949,6 @@ packages:
resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
engines: {node: '>=0.10.0'}
- source-map-js@1.2.1:
- resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
- engines: {node: '>=0.10.0'}
-
source-map-resolve@0.5.3:
resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==}
deprecated: See https://github.com/lydell/source-map-resolve#deprecated
@@ -8052,8 +8035,8 @@ packages:
resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
engines: {node: '>= 0.8'}
- std-env@3.7.0:
- resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==}
+ std-env@3.9.0:
+ resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==}
stream-browserify@2.0.2:
resolution: {integrity: sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==}
@@ -8160,6 +8143,12 @@ packages:
strip-literal@2.1.0:
resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==}
+ strip-literal@3.1.0:
+ resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==}
+
+ strnum@2.1.1:
+ resolution: {integrity: sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw==}
+
stubs@3.0.0:
resolution: {integrity: sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==}
@@ -8375,6 +8364,10 @@ packages:
tinyexec@1.0.1:
resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==}
+ tinyglobby@0.2.15:
+ resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==}
+ engines: {node: '>=12.0.0'}
+
tldts-core@6.1.86:
resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==}
@@ -8575,6 +8568,9 @@ packages:
ufo@1.6.1:
resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==}
+ ultrahtml@1.6.0:
+ resolution: {integrity: sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==}
+
unbox-primitive@1.0.2:
resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
@@ -8584,6 +8580,9 @@ packages:
unctx@2.3.1:
resolution: {integrity: sha512-PhKke8ZYauiqh3FEMVNm7ljvzQiph0Mt3GBRve03IJm7ukfaON2OBK795tLwhbyfzknuRRkW0+Ze+CQUmzOZ+A==}
+ unctx@2.4.1:
+ resolution: {integrity: sha512-AbaYw0Nm4mK4qjhns67C+kgxR2YWiwlDBPzxrN8h8C6VtAdCgditAY5Dezu3IJy4XVqAnbrXt9oQJvsn3fyozg==}
+
undici-types@7.10.0:
resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==}
@@ -8620,6 +8619,10 @@ packages:
unimport@3.7.2:
resolution: {integrity: sha512-91mxcZTadgXyj3lFWmrGT8GyoRHWuE5fqPOjg5RVtF6vj+OfM5G6WCzXjuYtSgELE5ggB34RY4oiCSEP8I3AHw==}
+ unimport@5.4.0:
+ resolution: {integrity: sha512-g/OLFZR2mEfqbC6NC9b2225eCJGvufxq34mj6kM3OmI5gdSL0qyqtnv+9qmsGpAmnzSl6x0IWZj4W+8j2hLkMA==}
+ engines: {node: '>=18.12.0'}
+
union-value@1.0.1:
resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==}
engines: {node: '>=0.10.0'}
@@ -8646,6 +8649,10 @@ packages:
resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
engines: {node: '>= 0.8'}
+ unplugin-utils@0.3.0:
+ resolution: {integrity: sha512-JLoggz+PvLVMJo+jZt97hdIIIZ2yTzGgft9e9q8iMrC4ewufl62ekeW7mixBghonn2gVb/ICjyvlmOCUBnJLQg==}
+ engines: {node: '>=20.19.0'}
+
unplugin@1.11.0:
resolution: {integrity: sha512-3r7VWZ/webh0SGgJScpWl2/MRCZK5d3ZYFcNaeci/GQ7Teop7zf0Nl2pUuz7G21BwPd9pcUPOC5KmJ2L3WgC5g==}
engines: {node: '>=14.0.0'}
@@ -8653,6 +8660,10 @@ packages:
unplugin@1.5.0:
resolution: {integrity: sha512-9ZdRwbh/4gcm1JTOkp9lAkIDrtOyOxgHmY7cjuwI8L/2RTikMcVG25GsZwNAgRuap3iDw2jeq7eoqtAsz5rW3A==}
+ unplugin@2.3.10:
+ resolution: {integrity: sha512-6NCPkv1ClwH+/BGE9QeoTIl09nuiAt0gS28nn1PvYXsGKRwM2TCbFA2QiilmehPDTXIe684k4rZI1yl3A1PCUw==}
+ engines: {node: '>=18.12.0'}
+
unrs-resolver@1.11.1:
resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==}
@@ -8668,6 +8679,10 @@ packages:
resolution: {integrity: sha512-nC5q0DnPEPVURPhfPQLahhSTnemVtPzdx7ofiRxXpOB2SYnb3MfdU3DVGyJdS8Lx+tBWeAePO8BfU/3EgksM7Q==}
hasBin: true
+ untyped@2.0.0:
+ resolution: {integrity: sha512-nwNCjxJTjNuLCgFr42fEak5OcLuB3ecca+9ksPFNvtfYSLpjf+iJqSIaSnIile6ZPbKYxI5k2AfXqeopGudK/g==}
+ hasBin: true
+
upath@1.2.0:
resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==}
engines: {node: '>=4'}
@@ -8763,34 +8778,6 @@ packages:
rollup:
optional: true
- vite@4.5.3:
- resolution: {integrity: sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==}
- engines: {node: ^14.18.0 || >=16.0.0}
- hasBin: true
- peerDependencies:
- '@types/node': '>= 14'
- less: '*'
- lightningcss: ^1.21.0
- sass: '*'
- stylus: '*'
- sugarss: '*'
- terser: ^5.4.0
- peerDependenciesMeta:
- '@types/node':
- optional: true
- less:
- optional: true
- lightningcss:
- optional: true
- sass:
- optional: true
- stylus:
- optional: true
- sugarss:
- optional: true
- terser:
- optional: true
-
vm-browserify@1.1.2:
resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==}
@@ -9115,10 +9102,6 @@ packages:
resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==}
engines: {node: '>=18'}
- xmlbuilder@13.0.2:
- resolution: {integrity: sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ==}
- engines: {node: '>=6.0'}
-
xmlchars@2.2.0:
resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
@@ -9273,9 +9256,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/eslint-parser@7.27.5(@babel/core@7.24.7)(eslint@8.57.1)':
+ '@babel/eslint-parser@7.27.5(@babel/core@7.28.0)(eslint@8.57.1)':
dependencies:
- '@babel/core': 7.24.7
+ '@babel/core': 7.28.0
'@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1
eslint: 8.57.1
eslint-visitor-keys: 2.1.0
@@ -9649,11 +9632,6 @@ snapshots:
'@babel/core': 7.28.0
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.7)':
- dependencies:
- '@babel/core': 7.24.7
- '@babel/helper-plugin-utils': 7.27.1
-
'@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.0)':
dependencies:
'@babel/core': 7.28.0
@@ -9704,11 +9682,6 @@ snapshots:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.24.7)':
- dependencies:
- '@babel/core': 7.24.7
- '@babel/helper-plugin-utils': 7.27.1
-
'@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.0)':
dependencies:
'@babel/core': 7.28.0
@@ -10361,7 +10334,7 @@ snapshots:
'@commitlint/format@19.8.1':
dependencies:
'@commitlint/types': 19.8.1
- chalk: 5.5.0
+ chalk: 5.6.2
'@commitlint/is-ignored@19.8.1':
dependencies:
@@ -10381,7 +10354,7 @@ snapshots:
'@commitlint/execute-rule': 19.8.1
'@commitlint/resolve-extends': 19.8.1
'@commitlint/types': 19.8.1
- chalk: 5.5.0
+ chalk: 5.6.2
cosmiconfig: 9.0.0(typescript@4.9.5)
cosmiconfig-typescript-loader: 6.1.0(@types/node@24.2.0)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5)
lodash.isplainobject: 4.0.6
@@ -10432,12 +10405,12 @@ snapshots:
'@commitlint/types@19.8.0':
dependencies:
'@types/conventional-commits-parser': 5.0.1
- chalk: 5.5.0
+ chalk: 5.6.2
'@commitlint/types@19.8.1':
dependencies:
'@types/conventional-commits-parser': 5.0.1
- chalk: 5.5.0
+ chalk: 5.6.2
'@csstools/cascade-layer-name-parser@1.0.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2)':
dependencies:
@@ -10727,72 +10700,6 @@ snapshots:
tslib: 2.8.1
optional: true
- '@esbuild/android-arm64@0.18.20':
- optional: true
-
- '@esbuild/android-arm@0.18.20':
- optional: true
-
- '@esbuild/android-x64@0.18.20':
- optional: true
-
- '@esbuild/darwin-arm64@0.18.20':
- optional: true
-
- '@esbuild/darwin-x64@0.18.20':
- optional: true
-
- '@esbuild/freebsd-arm64@0.18.20':
- optional: true
-
- '@esbuild/freebsd-x64@0.18.20':
- optional: true
-
- '@esbuild/linux-arm64@0.18.20':
- optional: true
-
- '@esbuild/linux-arm@0.18.20':
- optional: true
-
- '@esbuild/linux-ia32@0.18.20':
- optional: true
-
- '@esbuild/linux-loong64@0.18.20':
- optional: true
-
- '@esbuild/linux-mips64el@0.18.20':
- optional: true
-
- '@esbuild/linux-ppc64@0.18.20':
- optional: true
-
- '@esbuild/linux-riscv64@0.18.20':
- optional: true
-
- '@esbuild/linux-s390x@0.18.20':
- optional: true
-
- '@esbuild/linux-x64@0.18.20':
- optional: true
-
- '@esbuild/netbsd-x64@0.18.20':
- optional: true
-
- '@esbuild/openbsd-x64@0.18.20':
- optional: true
-
- '@esbuild/sunos-x64@0.18.20':
- optional: true
-
- '@esbuild/win32-arm64@0.18.20':
- optional: true
-
- '@esbuild/win32-ia32@0.18.20':
- optional: true
-
- '@esbuild/win32-x64@0.18.20':
- optional: true
-
'@eslint-community/eslint-utils@4.4.0(eslint@8.57.1)':
dependencies:
eslint: 8.57.1
@@ -11521,21 +11428,31 @@ snapshots:
'@jridgewell/gen-mapping@0.3.12':
dependencies:
- '@jridgewell/sourcemap-codec': 1.5.4
+ '@jridgewell/sourcemap-codec': 1.5.5
'@jridgewell/trace-mapping': 0.3.29
+ '@jridgewell/gen-mapping@0.3.13':
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.5
+ '@jridgewell/trace-mapping': 0.3.31
+
'@jridgewell/gen-mapping@0.3.3':
dependencies:
'@jridgewell/set-array': 1.1.2
- '@jridgewell/sourcemap-codec': 1.5.4
+ '@jridgewell/sourcemap-codec': 1.5.5
'@jridgewell/trace-mapping': 0.3.29
'@jridgewell/gen-mapping@0.3.5':
dependencies:
'@jridgewell/set-array': 1.2.1
- '@jridgewell/sourcemap-codec': 1.5.4
+ '@jridgewell/sourcemap-codec': 1.5.5
'@jridgewell/trace-mapping': 0.3.29
+ '@jridgewell/remapping@2.3.5':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
+
'@jridgewell/resolve-uri@3.1.2': {}
'@jridgewell/set-array@1.1.2': {}
@@ -11549,11 +11466,18 @@ snapshots:
'@jridgewell/sourcemap-codec@1.5.4': {}
+ '@jridgewell/sourcemap-codec@1.5.5': {}
+
'@jridgewell/trace-mapping@0.3.29':
dependencies:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.4
+ '@jridgewell/trace-mapping@0.3.31':
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.2
+ '@jridgewell/sourcemap-codec': 1.5.5
+
'@jsonjoy.com/base64@1.1.2(tslib@2.6.2)':
dependencies:
tslib: 2.6.2
@@ -11630,12 +11554,12 @@ snapshots:
- supports-color
- vue
- '@nuxt/builder@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)':
+ '@nuxt/builder@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)':
dependencies:
'@nuxt/devalue': 2.0.2
'@nuxt/utils': 2.18.1
'@nuxt/vue-app': 2.18.1
- '@nuxt/webpack': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
+ '@nuxt/webpack': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
chalk: 4.1.2
chokidar: 3.6.0
consola: 3.2.3
@@ -11734,18 +11658,18 @@ snapshots:
pretty-bytes: 5.6.0
semver: 7.7.2
serve-static: 1.16.2
- std-env: 3.7.0
+ std-env: 3.9.0
upath: 2.0.1
wrap-ansi: 7.0.0
transitivePeerDependencies:
- buffer
- supports-color
- '@nuxt/components@2.2.1(consola@3.2.3)':
+ '@nuxt/components@2.2.1(consola@3.4.2)':
dependencies:
chalk: 4.1.2
chokidar: 3.6.0
- consola: 3.2.3
+ consola: 3.4.2
glob: 7.2.3
globby: 11.1.0
scule: 0.2.1
@@ -11762,7 +11686,7 @@ snapshots:
dotenv: 16.6.1
lodash: 4.17.21
rc9: 2.1.2
- std-env: 3.7.0
+ std-env: 3.9.0
ufo: 1.6.1
'@nuxt/core@2.18.1':
@@ -11780,10 +11704,17 @@ snapshots:
'@nuxt/devalue@2.0.2': {}
+ '@nuxt/devtools-kit@2.6.5':
+ dependencies:
+ '@nuxt/kit': 3.19.2
+ execa: 8.0.1
+ transitivePeerDependencies:
+ - magicast
+
'@nuxt/friendly-errors-webpack-plugin@2.6.0(webpack@4.47.0)':
dependencies:
chalk: 2.4.2
- consola: 3.2.3
+ consola: 3.4.2
error-stack-parser: 2.1.4
string-width: 4.2.3
webpack: 4.47.0
@@ -11815,7 +11746,7 @@ snapshots:
knitwork: 1.1.0
mlly: 1.7.1
pathe: 1.1.2
- pkg-types: 1.1.2
+ pkg-types: 1.3.1
scule: 1.3.0
semver: 7.7.2
ufo: 1.6.1
@@ -11827,6 +11758,34 @@ snapshots:
- rollup
- supports-color
+ '@nuxt/kit@3.19.2':
+ dependencies:
+ c12: 3.3.0
+ consola: 3.4.2
+ defu: 6.1.4
+ destr: 2.0.5
+ errx: 0.1.0
+ exsolve: 1.0.7
+ ignore: 7.0.5
+ jiti: 2.6.0
+ klona: 2.0.6
+ knitwork: 1.2.0
+ mlly: 1.8.0
+ ohash: 2.0.11
+ pathe: 2.0.3
+ pkg-types: 2.3.0
+ rc9: 2.1.2
+ scule: 1.3.0
+ semver: 7.7.2
+ std-env: 3.9.0
+ tinyglobby: 0.2.15
+ ufo: 1.6.1
+ unctx: 2.4.1
+ unimport: 5.4.0
+ untyped: 2.0.0
+ transitivePeerDependencies:
+ - magicast
+
'@nuxt/kit@3.7.4(rollup@3.29.5)':
dependencies:
'@nuxt/schema': 3.7.4(rollup@3.29.5)
@@ -11839,8 +11798,8 @@ snapshots:
jiti: 1.20.0
knitwork: 1.0.0
mlly: 1.4.2
- pathe: 1.1.2
- pkg-types: 1.1.2
+ pathe: 1.1.1
+ pkg-types: 1.3.1
scule: 1.0.0
semver: 7.7.2
ufo: 1.6.1
@@ -11851,6 +11810,33 @@ snapshots:
- rollup
- supports-color
+ '@nuxt/kit@4.1.2':
+ dependencies:
+ c12: 3.3.0
+ consola: 3.4.2
+ defu: 6.1.4
+ destr: 2.0.5
+ errx: 0.1.0
+ exsolve: 1.0.7
+ ignore: 7.0.5
+ jiti: 2.6.0
+ klona: 2.0.6
+ mlly: 1.8.0
+ ohash: 2.0.11
+ pathe: 2.0.3
+ pkg-types: 2.3.0
+ rc9: 2.1.2
+ scule: 1.3.0
+ semver: 7.7.2
+ std-env: 3.9.0
+ tinyglobby: 0.2.15
+ ufo: 1.6.1
+ unctx: 2.4.1
+ unimport: 5.4.0
+ untyped: 2.0.0
+ transitivePeerDependencies:
+ - magicast
+
'@nuxt/loading-screen@2.0.4':
dependencies:
connect: 3.7.0
@@ -11874,9 +11860,9 @@ snapshots:
defu: 6.1.4
hookable: 5.5.3
pathe: 1.1.2
- pkg-types: 1.1.2
+ pkg-types: 1.3.1
scule: 1.3.0
- std-env: 3.7.0
+ std-env: 3.9.0
ufo: 1.6.1
uncrypto: 0.1.3
unimport: 3.7.2(rollup@3.29.5)
@@ -11892,12 +11878,12 @@ snapshots:
defu: 6.1.4
hookable: 5.5.3
pathe: 1.1.2
- pkg-types: 1.1.2
+ pkg-types: 1.3.1
postcss-import-resolver: 2.0.0
- std-env: 3.7.0
+ std-env: 3.9.0
ufo: 1.6.1
- unimport: 3.7.2(rollup@3.29.5)
- untyped: 1.4.2
+ unimport: 3.4.0(rollup@3.29.5)
+ untyped: 1.4.0
transitivePeerDependencies:
- rollup
- supports-color
@@ -11942,7 +11928,7 @@ snapshots:
node-fetch: 2.7.0
parse-git-config: 3.0.0
rc9: 2.1.1
- std-env: 3.7.0
+ std-env: 3.9.0
transitivePeerDependencies:
- encoding
@@ -12021,7 +12007,7 @@ snapshots:
vue-meta: 2.4.0
vue-server-renderer: 2.7.16
- '@nuxt/webpack@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)':
+ '@nuxt/webpack@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)':
dependencies:
'@babel/core': 7.24.7
'@nuxt/babel-preset-app': 2.18.1(vue@2.7.16)
@@ -12053,7 +12039,7 @@ snapshots:
postcss-preset-env: 9.5.15(postcss@8.4.39)
postcss-url: 10.1.3(postcss@8.4.39)
semver: 7.7.2
- std-env: 3.7.0
+ std-env: 3.9.0
style-resources-loader: 1.5.0(webpack@4.47.0)
terser-webpack-plugin: 4.2.3(webpack@4.47.0)
thread-loader: 3.0.4(webpack@4.47.0)
@@ -12061,7 +12047,7 @@ snapshots:
ufo: 1.6.1
upath: 2.0.1
url-loader: 4.1.1(file-loader@6.2.0(webpack@5.101.0))(webpack@4.47.0)
- vue-loader: 15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@5.101.0))(ejs@3.1.10)(lodash@4.17.21)(prettier@3.6.2)(vue-template-compiler@2.7.16)(webpack@4.47.0)
+ vue-loader: 15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@5.101.0))(ejs@3.1.10)(lodash@4.17.21)(prettier@3.6.2)(vue-template-compiler@2.7.16)(webpack@4.47.0)
vue-style-loader: 4.1.3
vue-template-compiler: 2.7.16
watchpack: 2.4.4
@@ -12172,25 +12158,25 @@ snapshots:
- eslint-import-resolver-webpack
- supports-color
- '@nuxtjs/eslint-module@4.1.0(eslint@8.57.1)(rollup@3.29.5)(vite@4.5.3(@types/node@24.2.0)(sass@1.32.13)(terser@5.43.1))(webpack@5.101.0)':
+ '@nuxtjs/eslint-module@4.1.0(eslint@8.57.1)(rollup@3.29.5)(webpack@5.101.0)':
dependencies:
'@nuxt/kit': 3.7.4(rollup@3.29.5)
chokidar: 3.5.3
eslint: 8.57.1
eslint-webpack-plugin: 4.0.1(eslint@8.57.1)(webpack@5.101.0)
pathe: 1.1.1
- vite-plugin-eslint: 1.8.1(eslint@8.57.1)(vite@4.5.3(@types/node@24.2.0)(sass@1.32.13)(terser@5.43.1))
+ vite-plugin-eslint: 1.8.1(eslint@8.57.1)
transitivePeerDependencies:
- rollup
- supports-color
- vite
- webpack
- '@nuxtjs/firebase@8.2.2(@firebase/app-types@0.9.2)(firebase@10.14.1)(nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16))':
+ '@nuxtjs/firebase@8.2.2(@firebase/app-types@0.9.2)(firebase@10.14.1)(nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(consola@3.4.2)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16))':
dependencies:
consola: 2.15.3
firebase: 10.14.1
- nuxt: 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
+ nuxt: 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(consola@3.4.2)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
optionalDependencies:
firebase-admin: 10.3.0(@firebase/app-types@0.9.2)
transitivePeerDependencies:
@@ -12198,26 +12184,38 @@ snapshots:
- encoding
- supports-color
- '@nuxtjs/sitemap@2.4.0':
+ '@nuxtjs/sitemap@7.4.7(h3@1.15.4)(vue@2.7.16)':
dependencies:
- async-cache: 1.1.0
- consola: 2.15.3
- etag: 1.8.1
- fresh: 0.5.2
- fs-extra: 8.1.0
- is-https: 2.0.2
- lodash.unionby: 4.8.0
- minimatch: 3.1.2
- sitemap: 4.1.1
+ '@nuxt/devtools-kit': 2.6.5
+ '@nuxt/kit': 4.1.2
+ chalk: 5.6.2
+ defu: 6.1.4
+ fast-xml-parser: 5.2.5
+ h3-compression: 0.3.2(h3@1.15.4)
+ nuxt-site-config: 3.2.9(h3@1.15.4)(vue@2.7.16)
+ ofetch: 1.4.1
+ pathe: 2.0.3
+ pkg-types: 2.3.0
+ radix3: 1.1.2
+ semver: 7.7.2
+ sirv: 3.0.2
+ std-env: 3.9.0
+ ufo: 1.6.1
+ ultrahtml: 1.6.0
+ transitivePeerDependencies:
+ - h3
+ - magicast
+ - vite
+ - vue
- '@nuxtjs/stylelint-module@5.2.0(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@24.2.0)(sass@1.32.13)(terser@5.43.1))(webpack@5.101.0)':
+ '@nuxtjs/stylelint-module@5.2.0(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(webpack@5.101.0)':
dependencies:
'@nuxt/kit': 3.12.2(rollup@3.29.5)
chokidar: 3.6.0
pathe: 1.1.2
stylelint: 15.11.0(typescript@4.9.5)
stylelint-webpack-plugin: 5.0.1(stylelint@15.11.0(typescript@4.9.5))(webpack@5.101.0)
- vite-plugin-stylelint: 5.3.1(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@24.2.0)(sass@1.32.13)(terser@5.43.1))
+ vite-plugin-stylelint: 5.3.1(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))
transitivePeerDependencies:
- '@types/stylelint'
- magicast
@@ -12259,7 +12257,7 @@ snapshots:
'@pkgr/core@0.2.9': {}
- '@polka/url@1.0.0-next.23': {}
+ '@polka/url@1.0.0-next.29': {}
'@protobufjs/aspromise@1.1.2': {}
@@ -12446,8 +12444,6 @@ snapshots:
'@types/minimist@1.2.3': {}
- '@types/node@12.20.55': {}
-
'@types/node@16.18.55': {}
'@types/node@20.8.0': {}
@@ -12474,10 +12470,6 @@ snapshots:
'@types/range-parser@1.2.5': {}
- '@types/sax@1.2.7':
- dependencies:
- '@types/node': 24.2.0
-
'@types/semver@7.5.3': {}
'@types/send@0.17.2':
@@ -12769,9 +12761,9 @@ snapshots:
optionalDependencies:
prettier: 2.8.8
- '@vue/component-compiler-utils@3.3.0(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(ejs@3.1.10)(lodash@4.17.21)':
+ '@vue/component-compiler-utils@3.3.0(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(lodash@4.17.21)':
dependencies:
- consolidate: 0.15.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(ejs@3.1.10)(lodash@4.17.21)
+ consolidate: 0.15.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(lodash@4.17.21)
hash-sum: 1.0.2
lru-cache: 4.1.5
merge-source-map: 1.1.0
@@ -13146,8 +13138,6 @@ snapshots:
aproba@1.2.0: {}
- arg@4.1.3: {}
-
arg@5.0.2: {}
argparse@1.0.10:
@@ -13242,10 +13232,6 @@ snapshots:
astral-regex@2.0.0: {}
- async-cache@1.1.0:
- dependencies:
- lru-cache: 4.1.5
-
async-each@1.0.6:
optional: true
@@ -13288,22 +13274,9 @@ snapshots:
esutils: 2.0.3
js-tokens: 3.0.2
- babel-core@7.0.0-bridge.0(@babel/core@7.24.7):
- dependencies:
- '@babel/core': 7.24.7
-
- babel-jest@30.0.5(@babel/core@7.24.7):
+ babel-core@7.0.0-bridge.0(@babel/core@7.28.0):
dependencies:
- '@babel/core': 7.24.7
- '@jest/transform': 30.0.5
- '@types/babel__core': 7.20.5
- babel-plugin-istanbul: 7.0.0
- babel-preset-jest: 30.0.1(@babel/core@7.24.7)
- chalk: 4.1.2
- graceful-fs: 4.2.11
- slash: 3.0.0
- transitivePeerDependencies:
- - supports-color
+ '@babel/core': 7.28.0
babel-jest@30.0.5(@babel/core@7.28.0):
dependencies:
@@ -13385,25 +13358,6 @@ snapshots:
babel-runtime: 6.26.0
babel-types: 6.26.0
- babel-preset-current-node-syntax@1.2.0(@babel/core@7.24.7):
- dependencies:
- '@babel/core': 7.24.7
- '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.7)
- '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.24.7)
- '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.7)
- '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.7)
- '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.24.7)
- '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.7)
- '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.7)
- '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.7)
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.7)
- '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.7)
- '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.7)
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.7)
- '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.7)
- '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.7)
- '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.7)
-
babel-preset-current-node-syntax@1.2.0(@babel/core@7.28.0):
dependencies:
'@babel/core': 7.28.0
@@ -13423,12 +13377,6 @@ snapshots:
'@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.0)
'@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.0)
- babel-preset-jest@30.0.1(@babel/core@7.24.7):
- dependencies:
- '@babel/core': 7.24.7
- babel-plugin-jest-hoist: 30.0.1
- babel-preset-current-node-syntax: 1.2.0(@babel/core@7.24.7)
-
babel-preset-jest@30.0.1(@babel/core@7.28.0):
dependencies:
'@babel/core': 7.28.0
@@ -13646,16 +13594,16 @@ snapshots:
c12@1.11.1:
dependencies:
chokidar: 3.6.0
- confbox: 0.1.7
+ confbox: 0.1.8
defu: 6.1.4
dotenv: 16.6.1
giget: 1.2.3
jiti: 1.21.6
mlly: 1.7.1
- ohash: 1.1.3
+ ohash: 1.1.6
pathe: 1.1.2
perfect-debounce: 1.0.0
- pkg-types: 1.1.2
+ pkg-types: 1.3.1
rc9: 2.1.2
c12@1.4.2:
@@ -13664,16 +13612,31 @@ snapshots:
defu: 6.1.4
dotenv: 16.6.1
giget: 1.1.2
- jiti: 1.21.6
- mlly: 1.7.1
- ohash: 1.1.3
+ jiti: 1.20.0
+ mlly: 1.4.2
+ ohash: 1.1.6
pathe: 1.1.2
perfect-debounce: 1.0.0
- pkg-types: 1.1.2
- rc9: 2.1.1
+ pkg-types: 1.3.1
+ rc9: 2.1.2
transitivePeerDependencies:
- supports-color
+ c12@3.3.0:
+ dependencies:
+ chokidar: 4.0.3
+ confbox: 0.2.2
+ defu: 6.1.4
+ dotenv: 17.2.3
+ exsolve: 1.0.7
+ giget: 2.0.0
+ jiti: 2.6.0
+ ohash: 2.0.11
+ pathe: 2.0.3
+ perfect-debounce: 2.0.0
+ pkg-types: 2.3.0
+ rc9: 2.1.2
+
cacache@12.0.4:
dependencies:
bluebird: 3.7.2
@@ -13799,6 +13762,8 @@ snapshots:
chalk@5.5.0: {}
+ chalk@5.6.2: {}
+
char-regex@1.0.2: {}
chardet@0.7.0: {}
@@ -13855,6 +13820,10 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
+ chokidar@4.0.3:
+ dependencies:
+ readdirp: 4.1.2
+
chownr@1.1.4: {}
chownr@2.0.0: {}
@@ -13874,7 +13843,7 @@ snapshots:
citty@0.1.6:
dependencies:
- consola: 3.2.3
+ consola: 3.4.2
cjs-module-lexer@2.1.0: {}
@@ -14018,10 +13987,10 @@ snapshots:
is-whitespace: 0.3.0
kind-of: 3.2.2
- confbox@0.1.7: {}
-
confbox@0.1.8: {}
+ confbox@0.2.2: {}
+
config-chain@1.1.13:
dependencies:
ini: 1.3.8
@@ -14050,13 +14019,15 @@ snapshots:
consola@3.2.3: {}
+ consola@3.4.2: {}
+
console-browserify@1.2.0: {}
- consolidate@0.15.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(ejs@3.1.10)(lodash@4.17.21):
+ consolidate@0.15.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(lodash@4.17.21):
dependencies:
bluebird: 3.7.2
optionalDependencies:
- babel-core: 7.0.0-bridge.0(@babel/core@7.24.7)
+ babel-core: 7.0.0-bridge.0(@babel/core@7.28.0)
ejs: 3.1.10
lodash: 4.17.21
@@ -14079,6 +14050,8 @@ snapshots:
convert-source-map@2.0.0: {}
+ cookie-es@1.2.2: {}
+
cookie@0.3.1: {}
copy-concurrently@1.0.5:
@@ -14106,7 +14079,7 @@ snapshots:
dependencies:
'@types/node': 24.2.0
cosmiconfig: 9.0.0(typescript@4.9.5)
- jiti: 2.5.1
+ jiti: 2.6.0
typescript: 4.9.5
cosmiconfig@6.0.0:
@@ -14175,6 +14148,10 @@ snapshots:
shebang-command: 2.0.0
which: 2.0.2
+ crossws@0.3.5:
+ dependencies:
+ uncrypto: 0.1.3
+
crypto-browserify@3.12.0:
dependencies:
browserify-cipher: 1.0.1
@@ -14502,6 +14479,8 @@ snapshots:
destr@2.0.3: {}
+ destr@2.0.5: {}
+
destroy@1.2.0: {}
detect-indent@5.0.0: {}
@@ -14587,6 +14566,8 @@ snapshots:
dotenv@17.2.1: {}
+ dotenv@17.2.3: {}
+
dotenv@8.6.0: {}
dotenv@9.0.2: {}
@@ -14700,6 +14681,8 @@ snapshots:
dependencies:
stackframe: 1.3.4
+ errx@0.1.0: {}
+
es-abstract@1.22.2:
dependencies:
array-buffer-byte-length: 1.0.0
@@ -14771,31 +14754,6 @@ snapshots:
is-date-object: 1.0.5
is-symbol: 1.0.4
- esbuild@0.18.20:
- optionalDependencies:
- '@esbuild/android-arm': 0.18.20
- '@esbuild/android-arm64': 0.18.20
- '@esbuild/android-x64': 0.18.20
- '@esbuild/darwin-arm64': 0.18.20
- '@esbuild/darwin-x64': 0.18.20
- '@esbuild/freebsd-arm64': 0.18.20
- '@esbuild/freebsd-x64': 0.18.20
- '@esbuild/linux-arm': 0.18.20
- '@esbuild/linux-arm64': 0.18.20
- '@esbuild/linux-ia32': 0.18.20
- '@esbuild/linux-loong64': 0.18.20
- '@esbuild/linux-mips64el': 0.18.20
- '@esbuild/linux-ppc64': 0.18.20
- '@esbuild/linux-riscv64': 0.18.20
- '@esbuild/linux-s390x': 0.18.20
- '@esbuild/linux-x64': 0.18.20
- '@esbuild/netbsd-x64': 0.18.20
- '@esbuild/openbsd-x64': 0.18.20
- '@esbuild/sunos-x64': 0.18.20
- '@esbuild/win32-arm64': 0.18.20
- '@esbuild/win32-ia32': 0.18.20
- '@esbuild/win32-x64': 0.18.20
-
escalade@3.2.0: {}
escape-html@1.0.3: {}
@@ -14900,7 +14858,7 @@ snapshots:
eslint: 8.57.1
eslint-plugin-es: 4.1.0(eslint@8.57.1)
eslint-utils: 3.0.0(eslint@8.57.1)
- ignore: 5.3.1
+ ignore: 5.3.2
is-core-module: 2.13.0
minimatch: 3.1.2
resolve: 1.22.6
@@ -14911,7 +14869,7 @@ snapshots:
eslint: 8.57.1
eslint-plugin-es: 3.0.1(eslint@8.57.1)
eslint-utils: 2.1.0
- ignore: 5.3.1
+ ignore: 5.3.2
minimatch: 3.1.2
resolve: 1.22.6
semver: 6.3.1
@@ -15141,6 +15099,8 @@ snapshots:
jest-mock: 30.0.5
jest-util: 30.0.5
+ exsolve@1.0.7: {}
+
extend-shallow@2.0.1:
dependencies:
is-extendable: 0.1.1
@@ -15211,6 +15171,10 @@ snapshots:
fast-uri@3.0.6: {}
+ fast-xml-parser@5.2.5:
+ dependencies:
+ strnum: 2.1.1
+
fastest-levenshtein@1.0.16: {}
fastq@1.15.0:
@@ -15225,6 +15189,10 @@ snapshots:
dependencies:
bser: 2.1.1
+ fdir@6.5.0(picomatch@4.0.3):
+ optionalDependencies:
+ picomatch: 4.0.3
+
figgy-pudding@3.5.2: {}
figures@3.2.0:
@@ -15588,7 +15556,7 @@ snapshots:
defu: 6.1.4
https-proxy-agent: 5.0.1
mri: 1.2.0
- node-fetch-native: 1.6.4
+ node-fetch-native: 1.6.7
pathe: 1.1.2
tar: 6.2.0
transitivePeerDependencies:
@@ -15597,14 +15565,23 @@ snapshots:
giget@1.2.3:
dependencies:
citty: 0.1.6
- consola: 3.2.3
+ consola: 3.4.2
defu: 6.1.4
- node-fetch-native: 1.6.4
+ node-fetch-native: 1.6.7
nypm: 0.3.9
- ohash: 1.1.4
+ ohash: 1.1.6
pathe: 1.1.2
tar: 6.2.0
+ giget@2.0.0:
+ dependencies:
+ citty: 0.1.6
+ consola: 3.4.2
+ defu: 6.1.4
+ node-fetch-native: 1.6.7
+ nypm: 0.6.2
+ pathe: 2.0.3
+
git-config-path@2.0.0: {}
git-raw-commits@4.0.0:
@@ -15783,6 +15760,22 @@ snapshots:
dependencies:
duplexer: 0.1.2
+ h3-compression@0.3.2(h3@1.15.4):
+ dependencies:
+ h3: 1.15.4
+
+ h3@1.15.4:
+ dependencies:
+ cookie-es: 1.2.2
+ crossws: 0.3.5
+ defu: 6.1.4
+ destr: 2.0.5
+ iron-webcrypto: 1.2.1
+ node-mock-http: 1.0.3
+ radix3: 1.1.2
+ ufo: 1.6.1
+ uncrypto: 0.1.3
+
hard-rejection@2.1.0: {}
hard-source-webpack-plugin@0.13.1(webpack@4.47.0):
@@ -16020,6 +16013,10 @@ snapshots:
ignore@5.3.1: {}
+ ignore@5.3.2: {}
+
+ ignore@7.0.5: {}
+
import-fresh@3.3.0:
dependencies:
parent-module: 1.0.1
@@ -16088,6 +16085,8 @@ snapshots:
ip@2.0.1: {}
+ iron-webcrypto@1.2.1: {}
+
is-accessor-descriptor@0.1.6:
dependencies:
kind-of: 3.2.2
@@ -16185,8 +16184,6 @@ snapshots:
dependencies:
is-extglob: 2.1.1
- is-https@2.0.2: {}
-
is-negative-zero@2.0.2: {}
is-number-object@1.0.7:
@@ -16675,7 +16672,7 @@ snapshots:
jiti@1.21.6: {}
- jiti@2.5.1: {}
+ jiti@2.6.0: {}
jose@2.0.7:
dependencies:
@@ -16695,6 +16692,8 @@ snapshots:
js-tokens@9.0.0: {}
+ js-tokens@9.0.1: {}
+
js-yaml@3.14.1:
dependencies:
argparse: 1.0.10
@@ -16848,6 +16847,8 @@ snapshots:
knitwork@1.1.0: {}
+ knitwork@1.2.0: {}
+
known-css-properties@0.29.0: {}
last-call-webpack-plugin@3.0.0:
@@ -16926,8 +16927,14 @@ snapshots:
local-pkg@0.5.0:
dependencies:
- mlly: 1.7.1
- pkg-types: 1.1.2
+ mlly: 1.8.0
+ pkg-types: 1.3.1
+
+ local-pkg@1.1.2:
+ dependencies:
+ mlly: 1.8.0
+ pkg-types: 2.3.0
+ quansync: 0.2.11
locate-path@3.0.0:
dependencies:
@@ -16998,8 +17005,6 @@ snapshots:
lodash.truncate@4.4.2: {}
- lodash.unionby@4.8.0: {}
-
lodash.uniq@4.5.0: {}
lodash.upperfirst@4.3.1: {}
@@ -17058,6 +17063,10 @@ snapshots:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.4
+ magic-string@0.30.19:
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.5
+
magic-string@0.30.4:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.4
@@ -17304,21 +17313,21 @@ snapshots:
dependencies:
acorn: 8.15.0
pathe: 1.1.2
- pkg-types: 1.1.2
+ pkg-types: 1.3.1
ufo: 1.6.1
mlly@1.7.1:
dependencies:
acorn: 8.15.0
pathe: 1.1.2
- pkg-types: 1.1.2
+ pkg-types: 1.3.1
ufo: 1.6.1
- mlly@1.7.3:
+ mlly@1.8.0:
dependencies:
acorn: 8.15.0
- pathe: 1.1.2
- pkg-types: 1.2.1
+ pathe: 2.0.3
+ pkg-types: 1.3.1
ufo: 1.6.1
moment@2.30.1: {}
@@ -17334,7 +17343,7 @@ snapshots:
mri@1.2.0: {}
- mrmime@1.0.1: {}
+ mrmime@2.0.1: {}
ms@2.0.0: {}
@@ -17351,8 +17360,6 @@ snapshots:
nano-spawn@1.0.2: {}
- nanoid@3.3.11: {}
-
nanoid@3.3.8: {}
nanomatch@1.2.13:
@@ -17393,6 +17400,8 @@ snapshots:
node-fetch-native@1.6.4: {}
+ node-fetch-native@1.6.7: {}
+
node-fetch@2.7.0:
dependencies:
whatwg-url: 5.0.0
@@ -17433,6 +17442,8 @@ snapshots:
util: 0.11.1
vm-browserify: 1.1.2
+ node-mock-http@1.0.3: {}
+
node-object-hash@1.4.2: {}
node-releases@2.0.19: {}
@@ -17497,12 +17508,37 @@ snapshots:
dependencies:
highlight.js: 11.11.1
- nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16):
+ nuxt-site-config-kit@3.2.9(vue@2.7.16):
+ dependencies:
+ '@nuxt/kit': 4.1.2
+ pkg-types: 2.3.0
+ site-config-stack: 3.2.9(vue@2.7.16)
+ std-env: 3.9.0
+ ufo: 1.6.1
+ transitivePeerDependencies:
+ - magicast
+ - vue
+
+ nuxt-site-config@3.2.9(h3@1.15.4)(vue@2.7.16):
+ dependencies:
+ '@nuxt/kit': 4.1.2
+ h3: 1.15.4
+ nuxt-site-config-kit: 3.2.9(vue@2.7.16)
+ pathe: 2.0.3
+ pkg-types: 2.3.0
+ sirv: 3.0.2
+ site-config-stack: 3.2.9(vue@2.7.16)
+ ufo: 1.6.1
+ transitivePeerDependencies:
+ - magicast
+ - vue
+
+ nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(consola@3.4.2)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16):
dependencies:
'@nuxt/babel-preset-app': 2.18.1(vue@2.7.16)
- '@nuxt/builder': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
+ '@nuxt/builder': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
'@nuxt/cli': 2.18.1
- '@nuxt/components': 2.2.1(consola@3.2.3)
+ '@nuxt/components': 2.2.1(consola@3.4.2)
'@nuxt/config': 2.18.1
'@nuxt/core': 2.18.1
'@nuxt/generator': 2.18.1
@@ -17513,7 +17549,7 @@ snapshots:
'@nuxt/utils': 2.18.1
'@nuxt/vue-app': 2.18.1
'@nuxt/vue-renderer': 2.18.1
- '@nuxt/webpack': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
+ '@nuxt/webpack': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
transitivePeerDependencies:
- '@vue/compiler-sfc'
- arc-templates
@@ -17586,12 +17622,20 @@ snapshots:
nypm@0.3.9:
dependencies:
citty: 0.1.6
- consola: 3.2.3
+ consola: 3.4.2
execa: 8.0.1
pathe: 1.1.2
- pkg-types: 1.2.1
+ pkg-types: 1.3.1
ufo: 1.6.1
+ nypm@0.6.2:
+ dependencies:
+ citty: 0.1.6
+ consola: 3.4.2
+ pathe: 2.0.3
+ pkg-types: 2.3.0
+ tinyexec: 1.0.1
+
object-assign@4.1.1: {}
object-copy@0.1.0:
@@ -17649,9 +17693,15 @@ snapshots:
define-properties: 1.2.1
es-abstract: 1.22.2
- ohash@1.1.3: {}
+ ofetch@1.4.1:
+ dependencies:
+ destr: 2.0.5
+ node-fetch-native: 1.6.7
+ ufo: 1.6.1
+
+ ohash@1.1.6: {}
- ohash@1.1.4: {}
+ ohash@2.0.11: {}
on-finished@2.3.0:
dependencies:
@@ -17832,6 +17882,8 @@ snapshots:
pathe@1.1.2: {}
+ pathe@2.0.3: {}
+
pbkdf2@3.1.2:
dependencies:
create-hash: 1.2.0
@@ -17842,6 +17894,8 @@ snapshots:
perfect-debounce@1.0.0: {}
+ perfect-debounce@2.0.0: {}
+
picocolors@0.2.1: {}
picocolors@1.0.0: {}
@@ -17874,17 +17928,17 @@ snapshots:
dependencies:
find-up: 4.1.0
- pkg-types@1.1.2:
+ pkg-types@1.3.1:
dependencies:
- confbox: 0.1.7
- mlly: 1.7.1
- pathe: 1.1.2
+ confbox: 0.1.8
+ mlly: 1.8.0
+ pathe: 2.0.3
- pkg-types@1.2.1:
+ pkg-types@2.3.0:
dependencies:
- confbox: 0.1.8
- mlly: 1.7.3
- pathe: 1.1.2
+ confbox: 0.2.2
+ exsolve: 1.0.7
+ pathe: 2.0.3
pluralize@8.0.0: {}
@@ -18506,12 +18560,6 @@ snapshots:
picocolors: 1.0.1
source-map-js: 1.2.0
- postcss@8.5.6:
- dependencies:
- nanoid: 3.3.11
- picocolors: 1.1.1
- source-map-js: 1.2.1
-
prelude-ls@1.2.1: {}
prepend-http@1.0.4: {}
@@ -18674,6 +18722,8 @@ snapshots:
dependencies:
side-channel: 1.0.4
+ quansync@0.2.11: {}
+
query-string@4.3.4:
dependencies:
object-assign: 4.1.1
@@ -18685,6 +18735,8 @@ snapshots:
quick-lru@5.1.1: {}
+ radix3@1.1.2: {}
+
randombytes@2.1.0:
dependencies:
safe-buffer: 5.2.1
@@ -18699,13 +18751,13 @@ snapshots:
rc9@2.1.1:
dependencies:
defu: 6.1.4
- destr: 2.0.3
+ destr: 2.0.5
flat: 5.0.2
rc9@2.1.2:
dependencies:
defu: 6.1.4
- destr: 2.0.3
+ destr: 2.0.5
react-is@18.3.1: {}
@@ -18768,6 +18820,8 @@ snapshots:
dependencies:
picomatch: 2.3.1
+ readdirp@4.1.2: {}
+
redent@4.0.0:
dependencies:
indent-string: 5.0.0
@@ -18905,6 +18959,7 @@ snapshots:
rollup@3.29.5:
optionalDependencies:
fsevents: 2.3.3
+ optional: true
rrweb-cssom@0.8.0: {}
@@ -18964,8 +19019,6 @@ snapshots:
dependencies:
chokidar: 3.6.0
- sax@1.4.1: {}
-
saxes@6.0.0:
dependencies:
xmlchars: 2.2.0
@@ -19108,19 +19161,22 @@ snapshots:
signal-exit@4.1.0: {}
- sirv@2.0.3:
+ sirv@2.0.4:
dependencies:
- '@polka/url': 1.0.0-next.23
- mrmime: 1.0.1
+ '@polka/url': 1.0.0-next.29
+ mrmime: 2.0.1
totalist: 3.0.1
- sitemap@4.1.1:
+ sirv@3.0.2:
dependencies:
- '@types/node': 12.20.55
- '@types/sax': 1.2.7
- arg: 4.1.3
- sax: 1.4.1
- xmlbuilder: 13.0.2
+ '@polka/url': 1.0.0-next.29
+ mrmime: 2.0.1
+ totalist: 3.0.1
+
+ site-config-stack@3.2.9(vue@2.7.16):
+ dependencies:
+ ufo: 1.6.1
+ vue: 2.7.16
slash@3.0.0: {}
@@ -19181,8 +19237,6 @@ snapshots:
source-map-js@1.2.0: {}
- source-map-js@1.2.1: {}
-
source-map-resolve@0.5.3:
dependencies:
atob: 2.1.2
@@ -19260,7 +19314,7 @@ snapshots:
statuses@2.0.1: {}
- std-env@3.7.0: {}
+ std-env@3.9.0: {}
stream-browserify@2.0.2:
dependencies:
@@ -19380,6 +19434,12 @@ snapshots:
dependencies:
js-tokens: 9.0.0
+ strip-literal@3.1.0:
+ dependencies:
+ js-tokens: 9.0.1
+
+ strnum@2.1.1: {}
+
stubs@3.0.0:
optional: true
@@ -19663,6 +19723,11 @@ snapshots:
tinyexec@1.0.1: {}
+ tinyglobby@0.2.15:
+ dependencies:
+ fdir: 6.5.0(picomatch@4.0.3)
+ picomatch: 4.0.3
+
tldts-core@6.1.86: {}
tldts@6.1.86:
@@ -19723,7 +19788,7 @@ snapshots:
dependencies:
typescript: 4.9.5
- ts-jest@29.4.0(@babel/core@7.24.7)(@jest/transform@30.0.5)(@jest/types@30.0.5)(babel-jest@30.0.5(@babel/core@7.24.7))(jest-util@30.0.5)(jest@30.0.5(@types/node@24.2.0))(typescript@4.9.5):
+ ts-jest@29.4.0(@babel/core@7.28.0)(@jest/transform@30.0.5)(@jest/types@30.0.5)(babel-jest@30.0.5(@babel/core@7.28.0))(jest-util@30.0.5)(jest@30.0.5(@types/node@24.2.0))(typescript@4.9.5):
dependencies:
bs-logger: 0.2.6
ejs: 3.1.10
@@ -19737,10 +19802,10 @@ snapshots:
typescript: 4.9.5
yargs-parser: 21.1.1
optionalDependencies:
- '@babel/core': 7.24.7
+ '@babel/core': 7.28.0
'@jest/transform': 30.0.5
'@jest/types': 30.0.5
- babel-jest: 30.0.5(@babel/core@7.24.7)
+ babel-jest: 30.0.5(@babel/core@7.28.0)
jest-util: 30.0.5
ts-loader@8.4.0(typescript@4.9.5)(webpack@5.101.0):
@@ -19840,6 +19905,8 @@ snapshots:
ufo@1.6.1: {}
+ ultrahtml@1.6.0: {}
+
unbox-primitive@1.0.2:
dependencies:
call-bind: 1.0.2
@@ -19856,6 +19923,13 @@ snapshots:
magic-string: 0.30.10
unplugin: 1.11.0
+ unctx@2.4.1:
+ dependencies:
+ acorn: 8.15.0
+ estree-walker: 3.0.3
+ magic-string: 0.30.19
+ unplugin: 2.3.10
+
undici-types@7.10.0: {}
undici@6.19.7: {}
@@ -19882,10 +19956,10 @@ snapshots:
fast-glob: 3.3.1
local-pkg: 0.4.3
magic-string: 0.30.4
- mlly: 1.7.1
+ mlly: 1.4.2
pathe: 1.1.2
- pkg-types: 1.1.2
- scule: 1.3.0
+ pkg-types: 1.3.1
+ scule: 1.0.0
strip-literal: 1.3.0
unplugin: 1.5.0
transitivePeerDependencies:
@@ -19902,13 +19976,30 @@ snapshots:
magic-string: 0.30.10
mlly: 1.7.1
pathe: 1.1.2
- pkg-types: 1.1.2
+ pkg-types: 1.3.1
scule: 1.3.0
strip-literal: 2.1.0
unplugin: 1.11.0
transitivePeerDependencies:
- rollup
+ unimport@5.4.0:
+ dependencies:
+ acorn: 8.15.0
+ escape-string-regexp: 5.0.0
+ estree-walker: 3.0.3
+ local-pkg: 1.1.2
+ magic-string: 0.30.19
+ mlly: 1.8.0
+ pathe: 2.0.3
+ picomatch: 4.0.3
+ pkg-types: 2.3.0
+ scule: 1.3.0
+ strip-literal: 3.1.0
+ tinyglobby: 0.2.15
+ unplugin: 2.3.10
+ unplugin-utils: 0.3.0
+
union-value@1.0.1:
dependencies:
arr-union: 3.1.0
@@ -19935,6 +20026,11 @@ snapshots:
unpipe@1.0.0: {}
+ unplugin-utils@0.3.0:
+ dependencies:
+ pathe: 2.0.3
+ picomatch: 4.0.3
+
unplugin@1.11.0:
dependencies:
acorn: 8.15.0
@@ -19945,10 +20041,17 @@ snapshots:
unplugin@1.5.0:
dependencies:
acorn: 8.15.0
- chokidar: 3.6.0
+ chokidar: 3.5.3
webpack-sources: 3.3.3
webpack-virtual-modules: 0.5.0
+ unplugin@2.3.10:
+ dependencies:
+ '@jridgewell/remapping': 2.3.5
+ acorn: 8.15.0
+ picomatch: 4.0.3
+ webpack-virtual-modules: 0.6.2
+
unrs-resolver@1.11.1:
dependencies:
napi-postinstall: 0.3.2
@@ -19984,9 +20087,9 @@ snapshots:
'@babel/standalone': 7.23.1
'@babel/types': 7.28.2
defu: 6.1.4
- jiti: 1.21.6
+ jiti: 1.20.0
mri: 1.2.0
- scule: 1.3.0
+ scule: 1.0.0
transitivePeerDependencies:
- supports-color
@@ -20002,6 +20105,14 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ untyped@2.0.0:
+ dependencies:
+ citty: 0.1.6
+ defu: 6.1.4
+ jiti: 2.6.0
+ knitwork: 1.2.0
+ scule: 1.3.0
+
upath@1.2.0:
optional: true
@@ -20070,38 +20181,25 @@ snapshots:
vary@1.1.2: {}
- vite-plugin-eslint@1.8.1(eslint@8.57.1)(vite@4.5.3(@types/node@24.2.0)(sass@1.32.13)(terser@5.43.1)):
+ vite-plugin-eslint@1.8.1(eslint@8.57.1):
dependencies:
'@rollup/pluginutils': 4.2.1
'@types/eslint': 8.44.3
eslint: 8.57.1
rollup: 2.79.2
- vite: 4.5.3(@types/node@24.2.0)(sass@1.32.13)(terser@5.43.1)
- vite-plugin-stylelint@5.3.1(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@24.2.0)(sass@1.32.13)(terser@5.43.1)):
+ vite-plugin-stylelint@5.3.1(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5)):
dependencies:
'@rollup/pluginutils': 5.1.0(rollup@3.29.5)
chokidar: 3.6.0
debug: 4.4.1
stylelint: 15.11.0(typescript@4.9.5)
- vite: 4.5.3(@types/node@24.2.0)(sass@1.32.13)(terser@5.43.1)
optionalDependencies:
postcss: 8.4.39
rollup: 3.29.5
transitivePeerDependencies:
- supports-color
- vite@4.5.3(@types/node@24.2.0)(sass@1.32.13)(terser@5.43.1):
- dependencies:
- esbuild: 0.18.20
- postcss: 8.5.6
- rollup: 3.29.5
- optionalDependencies:
- '@types/node': 24.2.0
- fsevents: 2.3.3
- sass: 1.32.13
- terser: 5.43.1
-
vm-browserify@1.1.2: {}
vue-chartjs@5.3.2(chart.js@4.5.0)(vue@2.7.16):
@@ -20124,7 +20222,7 @@ snapshots:
espree: 9.6.1
esquery: 1.5.0
lodash: 4.17.21
- semver: 7.7.2
+ semver: 7.5.4
transitivePeerDependencies:
- supports-color
@@ -20147,9 +20245,9 @@ snapshots:
vue-hot-reload-api@2.3.4: {}
- vue-jest@3.0.7(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(vue-template-compiler@2.7.16)(vue@2.7.16):
+ vue-jest@3.0.7(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(vue-template-compiler@2.7.16)(vue@2.7.16):
dependencies:
- babel-core: 7.0.0-bridge.0(@babel/core@7.24.7)
+ babel-core: 7.0.0-bridge.0(@babel/core@7.28.0)
babel-plugin-transform-es2015-modules-commonjs: 6.26.2
chalk: 2.4.2
deasync: 0.1.29
@@ -20166,9 +20264,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
- vue-loader@15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@5.101.0))(ejs@3.1.10)(lodash@4.17.21)(prettier@3.6.2)(vue-template-compiler@2.7.16)(webpack@4.47.0):
+ vue-loader@15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@5.101.0))(ejs@3.1.10)(lodash@4.17.21)(prettier@3.6.2)(vue-template-compiler@2.7.16)(webpack@4.47.0):
dependencies:
- '@vue/component-compiler-utils': 3.3.0(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(ejs@3.1.10)(lodash@4.17.21)
+ '@vue/component-compiler-utils': 3.3.0(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(lodash@4.17.21)
css-loader: 5.2.7(webpack@5.101.0)
hash-sum: 1.0.2
loader-utils: 1.4.2
@@ -20342,7 +20440,7 @@ snapshots:
html-escaper: 2.0.2
opener: 1.5.2
picocolors: 1.0.0
- sirv: 2.0.3
+ sirv: 2.0.4
ws: 7.5.10
transitivePeerDependencies:
- bufferutil
@@ -20440,11 +20538,11 @@ snapshots:
dependencies:
ansi-escapes: 4.3.2
chalk: 4.1.2
- consola: 3.2.3
+ consola: 3.4.2
figures: 3.2.0
markdown-table: 2.0.0
pretty-time: 1.1.0
- std-env: 3.7.0
+ std-env: 3.9.0
webpack: 4.47.0
wrap-ansi: 7.0.0
@@ -20571,8 +20669,6 @@ snapshots:
xml-name-validator@5.0.0: {}
- xmlbuilder@13.0.2: {}
-
xmlchars@2.2.0: {}
xtend@4.0.2: {}
From 298f2a89a02f3449188136e8beddb2de31a76e59 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Wed, 1 Oct 2025 23:03:22 +0300
Subject: [PATCH 019/215] Revert "fix(deps): bump @nuxtjs/sitemap from 2.4.0 to
7.4.7 in /web"
---
web/package.json | 2 +-
web/pnpm-lock.yaml | 1204 ++++++++++++++++++++------------------------
2 files changed, 555 insertions(+), 651 deletions(-)
diff --git a/web/package.json b/web/package.json
index 416ac0a9..1d5ece33 100644
--- a/web/package.json
+++ b/web/package.json
@@ -25,7 +25,7 @@
"@mdi/js": "^7.4.47",
"@nuxtjs/dotenv": "^1.4.2",
"@nuxtjs/firebase": "^8.2.2",
- "@nuxtjs/sitemap": "^7.4.7",
+ "@nuxtjs/sitemap": "^2.4.0",
"chart.js": "^4.5.0",
"chartjs-adapter-moment": "^1.0.1",
"core-js": "^3.44.0",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index ecc46f09..1653b83e 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -16,10 +16,10 @@ importers:
version: 1.4.2
'@nuxtjs/firebase':
specifier: ^8.2.2
- version: 8.2.2(@firebase/app-types@0.9.2)(firebase@10.14.1)(nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(consola@3.4.2)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16))
+ version: 8.2.2(@firebase/app-types@0.9.2)(firebase@10.14.1)(nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16))
'@nuxtjs/sitemap':
- specifier: ^7.4.7
- version: 7.4.7(h3@1.15.4)(vue@2.7.16)
+ specifier: ^2.4.0
+ version: 2.4.0
chart.js:
specifier: ^4.5.0
version: 4.5.0
@@ -52,7 +52,7 @@ importers:
version: 2.30.1
nuxt:
specifier: ^2.18.1
- version: 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(consola@3.4.2)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
+ version: 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
nuxt-highlightjs:
specifier: ^1.0.3
version: 1.0.3
@@ -101,7 +101,7 @@ importers:
devDependencies:
'@babel/eslint-parser':
specifier: ^7.27.5
- version: 7.27.5(@babel/core@7.28.0)(eslint@8.57.1)
+ version: 7.27.5(@babel/core@7.24.7)(eslint@8.57.1)
'@commitlint/cli':
specifier: ^19.8.1
version: 19.8.1(@types/node@24.2.0)(typescript@4.9.5)
@@ -119,10 +119,10 @@ importers:
version: 12.1.0(eslint@8.57.1)(typescript@4.9.5)
'@nuxtjs/eslint-module':
specifier: ^4.1.0
- version: 4.1.0(eslint@8.57.1)(rollup@3.29.5)(webpack@5.101.0)
+ version: 4.1.0(eslint@8.57.1)(rollup@3.29.5)(vite@4.5.3(@types/node@24.2.0)(sass@1.32.13)(terser@5.43.1))(webpack@5.101.0)
'@nuxtjs/stylelint-module':
specifier: ^5.2.0
- version: 5.2.0(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(webpack@5.101.0)
+ version: 5.2.0(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@24.2.0)(sass@1.32.13)(terser@5.43.1))(webpack@5.101.0)
'@nuxtjs/vuetify':
specifier: ^1.12.3
version: 1.12.3(vue@2.7.16)(webpack@5.101.0)
@@ -137,10 +137,10 @@ importers:
version: 0.30.0
babel-core:
specifier: 7.0.0-bridge.0
- version: 7.0.0-bridge.0(@babel/core@7.28.0)
+ version: 7.0.0-bridge.0(@babel/core@7.24.7)
babel-jest:
specifier: ^30.0.5
- version: 30.0.5(@babel/core@7.28.0)
+ version: 30.0.5(@babel/core@7.24.7)
eslint:
specifier: ^8.57.1
version: 8.57.1
@@ -185,13 +185,13 @@ importers:
version: 34.0.0(stylelint@15.11.0(typescript@4.9.5))
ts-jest:
specifier: ^29.4.0
- version: 29.4.0(@babel/core@7.28.0)(@jest/transform@30.0.5)(@jest/types@30.0.5)(babel-jest@30.0.5(@babel/core@7.28.0))(jest-util@30.0.5)(jest@30.0.5(@types/node@24.2.0))(typescript@4.9.5)
+ version: 29.4.0(@babel/core@7.24.7)(@jest/transform@30.0.5)(@jest/types@30.0.5)(babel-jest@30.0.5(@babel/core@7.24.7))(jest-util@30.0.5)(jest@30.0.5(@types/node@24.2.0))(typescript@4.9.5)
vue-client-only:
specifier: ^2.1.0
version: 2.1.0
vue-jest:
specifier: ^3.0.7
- version: 3.0.7(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(vue-template-compiler@2.7.16)(vue@2.7.16)
+ version: 3.0.7(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(vue-template-compiler@2.7.16)(vue@2.7.16)
vue-meta:
specifier: ^2.4.0
version: 2.4.0
@@ -1385,6 +1385,138 @@ packages:
'@emnapi/wasi-threads@1.0.4':
resolution: {integrity: sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==}
+ '@esbuild/android-arm64@0.18.20':
+ resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [android]
+
+ '@esbuild/android-arm@0.18.20':
+ resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [android]
+
+ '@esbuild/android-x64@0.18.20':
+ resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [android]
+
+ '@esbuild/darwin-arm64@0.18.20':
+ resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@esbuild/darwin-x64@0.18.20':
+ resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@esbuild/freebsd-arm64@0.18.20':
+ resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [freebsd]
+
+ '@esbuild/freebsd-x64@0.18.20':
+ resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [freebsd]
+
+ '@esbuild/linux-arm64@0.18.20':
+ resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@esbuild/linux-arm@0.18.20':
+ resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [linux]
+
+ '@esbuild/linux-ia32@0.18.20':
+ resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [linux]
+
+ '@esbuild/linux-loong64@0.18.20':
+ resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==}
+ engines: {node: '>=12'}
+ cpu: [loong64]
+ os: [linux]
+
+ '@esbuild/linux-mips64el@0.18.20':
+ resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==}
+ engines: {node: '>=12'}
+ cpu: [mips64el]
+ os: [linux]
+
+ '@esbuild/linux-ppc64@0.18.20':
+ resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [linux]
+
+ '@esbuild/linux-riscv64@0.18.20':
+ resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==}
+ engines: {node: '>=12'}
+ cpu: [riscv64]
+ os: [linux]
+
+ '@esbuild/linux-s390x@0.18.20':
+ resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==}
+ engines: {node: '>=12'}
+ cpu: [s390x]
+ os: [linux]
+
+ '@esbuild/linux-x64@0.18.20':
+ resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [linux]
+
+ '@esbuild/netbsd-x64@0.18.20':
+ resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [netbsd]
+
+ '@esbuild/openbsd-x64@0.18.20':
+ resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [openbsd]
+
+ '@esbuild/sunos-x64@0.18.20':
+ resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [sunos]
+
+ '@esbuild/win32-arm64@0.18.20':
+ resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@esbuild/win32-ia32@0.18.20':
+ resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [win32]
+
+ '@esbuild/win32-x64@0.18.20':
+ resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+
'@eslint-community/eslint-utils@4.4.0':
resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -1803,9 +1935,6 @@ packages:
'@jridgewell/gen-mapping@0.3.12':
resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==}
- '@jridgewell/gen-mapping@0.3.13':
- resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
-
'@jridgewell/gen-mapping@0.3.3':
resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
engines: {node: '>=6.0.0'}
@@ -1814,9 +1943,6 @@ packages:
resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
engines: {node: '>=6.0.0'}
- '@jridgewell/remapping@2.3.5':
- resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==}
-
'@jridgewell/resolve-uri@3.1.2':
resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
engines: {node: '>=6.0.0'}
@@ -1835,15 +1961,9 @@ packages:
'@jridgewell/sourcemap-codec@1.5.4':
resolution: {integrity: sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==}
- '@jridgewell/sourcemap-codec@1.5.5':
- resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
-
'@jridgewell/trace-mapping@0.3.29':
resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==}
- '@jridgewell/trace-mapping@0.3.31':
- resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
-
'@jsonjoy.com/base64@1.1.2':
resolution: {integrity: sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==}
engines: {node: '>=10.0'}
@@ -1923,11 +2043,6 @@ packages:
'@nuxt/devalue@2.0.2':
resolution: {integrity: sha512-GBzP8zOc7CGWyFQS6dv1lQz8VVpz5C2yRszbXufwG/9zhStTIH50EtD87NmWbTMwXDvZLNg8GIpb1UFdH93JCA==}
- '@nuxt/devtools-kit@2.6.5':
- resolution: {integrity: sha512-t+NxoENyzJ8KZDrnbVYv3FJI5VXqSi6X4w6ZsuIIh0aKABu6+6k9nR/LoEhrM0oekn/2LDhA0NmsRZyzCXt2xQ==}
- peerDependencies:
- vite: '>=6.0'
-
'@nuxt/friendly-errors-webpack-plugin@2.6.0':
resolution: {integrity: sha512-3IZj6MXbzlvUxDncAxgBMLQwGPY/JlNhy2i+AGyOHCAReR5HcBxYjVRBvyaKM9R3s5k4OODYKeHAbrToZH/47w==}
engines: {node: '>=14.18.0', npm: '>=5.0.0'}
@@ -1942,18 +2057,10 @@ packages:
resolution: {integrity: sha512-5kOqEzfc3FsAncjK2je7vuq4/QsR5ypViTnop52mlFLf0Ku1NMCrWCSWYowAh4P0yqTACMAZYa+HdRZHscU84g==}
engines: {node: ^14.18.0 || >=16.10.0}
- '@nuxt/kit@3.19.2':
- resolution: {integrity: sha512-+QiqO0WcIxsKLUqXdVn3m4rzTRm2fO9MZgd330utCAaagGmHsgiMJp67kE14boJEPutnikfz3qOmrzBnDIHUUg==}
- engines: {node: '>=18.12.0'}
-
'@nuxt/kit@3.7.4':
resolution: {integrity: sha512-/S5abZL62BITCvC/TY3KWA6N721U1Osln3cQdBb56XHIeafZCBVqTi92Xb0o7ovl72mMRhrKwRu7elzvz9oT/g==}
engines: {node: ^14.18.0 || >=16.10.0}
- '@nuxt/kit@4.1.2':
- resolution: {integrity: sha512-P5q41xeEOa6ZQC0PvIP7TSBmOAMxXK4qihDcCbYIJq8RcVsEPbGZVlidmxE6EOw1ucSyodq9nbV31FAKwoL4NQ==}
- engines: {node: '>=18.12.0'}
-
'@nuxt/loading-screen@2.0.4':
resolution: {integrity: sha512-xpEDAoRu75tLUYCkUJCIvJkWJSuwr8pqomvQ+fkXpSrkxZ/9OzlBFjAbVdOAWTMj4aV/LVQso4vcEdircKeFIQ==}
@@ -2031,9 +2138,9 @@ packages:
firebase: ^9.6.2
nuxt: ^2.15.6
- '@nuxtjs/sitemap@7.4.7':
- resolution: {integrity: sha512-DUhX92lnCJD6tpghUmfmRIsSIoiXMS2SQ2Yd9Tg1+SnZskiKX+DGwLeAeHX8r0/9Pl/bTDpmYhs1snWcCoIkXA==}
- engines: {node: '>=18.0.0'}
+ '@nuxtjs/sitemap@2.4.0':
+ resolution: {integrity: sha512-TVgIYOtPp7KAfaUo76WRpGbO20j4D/xi/A7shFIGjARHs+FvfAWXNCtBT87dTwe/RoYzAsEKtijFFUTaSu5bUA==}
+ engines: {node: '>=8.9.0', npm: '>=5.0.0'}
'@nuxtjs/stylelint-module@5.2.0':
resolution: {integrity: sha512-CMGZORt5fM1pK+5Xj3p2uajkK9DZ9Sja7jewXa8LZFNMjt7GIsKaoAvH4poCUMorhIVBS0lGQZ9BlRmg3MWxvg==}
@@ -2061,8 +2168,8 @@ packages:
resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==}
engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
- '@polka/url@1.0.0-next.29':
- resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==}
+ '@polka/url@1.0.0-next.23':
+ resolution: {integrity: sha512-C16M+IYz0rgRhWZdCmK+h58JMv8vijAA61gmz2rspCSwKwzBebpdcsiUmwrtJRdphuY30i6BSLEOP8ppbNLyLg==}
'@protobufjs/aspromise@1.1.2':
resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==}
@@ -2233,6 +2340,9 @@ packages:
'@types/minimist@1.2.3':
resolution: {integrity: sha512-ZYFzrvyWUNhaPomn80dsMNgMeXxNWZBdkuG/hWlUvXvbdUH8ZERNBGXnU87McuGcWDsyzX2aChCv/SVN348k3A==}
+ '@types/node@12.20.55':
+ resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
+
'@types/node@16.18.55':
resolution: {integrity: sha512-Y1zz/LIuJek01+hlPNzzXQhmq/Z2BCP96j18MSXC0S0jSu/IG4FFxmBs7W4/lI2vPJ7foVfEB0hUVtnOjnCiTg==}
@@ -2263,6 +2373,9 @@ packages:
'@types/range-parser@1.2.5':
resolution: {integrity: sha512-xrO9OoVPqFuYyR/loIHjnbvvyRZREYKLjxV4+dY6v3FQR3stQ9ZxIGkaclF7YhI9hfjpuTbu14hZEy94qKLtOA==}
+ '@types/sax@1.2.7':
+ resolution: {integrity: sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==}
+
'@types/semver@7.5.3':
resolution: {integrity: sha512-OxepLK9EuNEIPxWNME+C6WwbRAOOI2o2BaQEGzz5Lu2e4Z5eDnEo+/aVEDMIXywoJitJ7xWd641wrGLZdtwRyw==}
@@ -2779,6 +2892,9 @@ packages:
aproba@1.2.0:
resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==}
+ arg@4.1.3:
+ resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
+
arg@5.0.2:
resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
@@ -2860,6 +2976,10 @@ packages:
resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==}
engines: {node: '>=8'}
+ async-cache@1.1.0:
+ resolution: {integrity: sha512-YDQc4vBn5NFhY6g6HhVshyi3Fy9+SQ5ePnE7JLDJn1DoL+i7ER+vMwtTNOYk9leZkYMnOwpBCWqyLDPw8Aig8g==}
+ deprecated: No longer maintained. Use [lru-cache](http://npm.im/lru-cache) version 7.6 or higher, and provide an asynchronous `fetchMethod` option.
+
async-each@1.0.6:
resolution: {integrity: sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==}
@@ -3116,14 +3236,6 @@ packages:
c12@1.4.2:
resolution: {integrity: sha512-3IP/MuamSVRVw8W8+CHWAz9gKN4gd+voF2zm/Ln6D25C2RhytEZ1ABbC8MjKr4BR9rhoV1JQ7jJA158LDiTkLg==}
- c12@3.3.0:
- resolution: {integrity: sha512-K9ZkuyeJQeqLEyqldbYLG3wjqwpw4BVaAqvmxq3GYKK0b1A/yYQdIcJxkzAOWcNVWhJpRXAPfZFueekiY/L8Dw==}
- peerDependencies:
- magicast: ^0.3.5
- peerDependenciesMeta:
- magicast:
- optional: true
-
cacache@12.0.4:
resolution: {integrity: sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==}
@@ -3195,10 +3307,6 @@ packages:
resolution: {integrity: sha512-1tm8DTaJhPBG3bIkVeZt1iZM9GfSX2lzOeDVZH9R9ffRHpmHvxZ/QhgQH/aDTkswQVt+YHdXAdS/In/30OjCbg==}
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
- chalk@5.6.2:
- resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
- engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
-
char-regex@1.0.2:
resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
engines: {node: '>=10'}
@@ -3228,10 +3336,6 @@ packages:
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
engines: {node: '>= 8.10.0'}
- chokidar@4.0.3:
- resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==}
- engines: {node: '>= 14.16.0'}
-
chownr@1.1.4:
resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==}
@@ -3402,12 +3506,12 @@ packages:
resolution: {integrity: sha512-P7X+QL9Hb9B/c8HI5BFFKmjgBu2XpQuF98WZ9XkO+dBGgk5XgwiQz7o1SmpglNWId3581UcS0SFAWfoIhMHPfg==}
engines: {node: '>=0.10.0'}
+ confbox@0.1.7:
+ resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==}
+
confbox@0.1.8:
resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==}
- confbox@0.2.2:
- resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==}
-
config-chain@1.1.13:
resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==}
@@ -3426,10 +3530,6 @@ packages:
resolution: {integrity: sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==}
engines: {node: ^14.18.0 || >=16.10.0}
- consola@3.4.2:
- resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==}
- engines: {node: ^14.18.0 || >=16.10.0}
-
console-browserify@1.2.0:
resolution: {integrity: sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==}
@@ -3618,9 +3718,6 @@ packages:
convert-source-map@2.0.0:
resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
- cookie-es@1.2.2:
- resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==}
-
cookie@0.3.1:
resolution: {integrity: sha512-+IJOX0OqlHCszo2mBUq+SrEbCj6w7Kpffqx60zYbPTFaO4+yYgRjHwcZNpWvaTylDHaV7PPmBHzSecZiMhtPgw==}
engines: {node: '>= 0.6'}
@@ -3705,9 +3802,6 @@ packages:
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
engines: {node: '>= 8'}
- crossws@0.3.5:
- resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==}
-
crypto-browserify@3.12.0:
resolution: {integrity: sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==}
@@ -3990,9 +4084,6 @@ packages:
destr@2.0.3:
resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==}
- destr@2.0.5:
- resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==}
-
destroy@1.2.0:
resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==}
engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16}
@@ -4077,10 +4168,6 @@ packages:
resolution: {integrity: sha512-kQhDYKZecqnM0fCnzI5eIv5L4cAe/iRI+HqMbO/hbRdTAeXDG+M9FjipUxNfbARuEg4iHIbhnhs78BCHNbSxEQ==}
engines: {node: '>=12'}
- dotenv@17.2.3:
- resolution: {integrity: sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==}
- engines: {node: '>=12'}
-
dotenv@8.6.0:
resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==}
engines: {node: '>=10'}
@@ -4195,9 +4282,6 @@ packages:
error-stack-parser@2.1.4:
resolution: {integrity: sha512-Sk5V6wVazPhq5MhpO+AUxJn5x7XSXGl1R93Vn7i+zS15KDVxQijejNCrz8340/2bgLBjR9GtEG8ZVKONDjcqGQ==}
- errx@0.1.0:
- resolution: {integrity: sha512-fZmsRiDNv07K6s2KkKFTiD2aIvECa7++PKyD5NC32tpRw46qZA3sOz+aM+/V9V0GDHxVTKLziveV4JhzBHDp9Q==}
-
es-abstract@1.22.2:
resolution: {integrity: sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==}
engines: {node: '>= 0.4'}
@@ -4231,6 +4315,11 @@ packages:
resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
engines: {node: '>= 0.4'}
+ esbuild@0.18.20:
+ resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==}
+ engines: {node: '>=12'}
+ hasBin: true
+
escalade@3.2.0:
resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
engines: {node: '>=6'}
@@ -4486,9 +4575,6 @@ packages:
resolution: {integrity: sha512-P0te2pt+hHI5qLJkIR+iMvS+lYUZml8rKKsohVHAGY+uClp9XVbdyYNJOIjSRpHVp8s8YqxJCiHUkSYZGr8rtQ==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- exsolve@1.0.7:
- resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==}
-
extend-shallow@2.0.1:
resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
engines: {node: '>=0.10.0'}
@@ -4541,10 +4627,6 @@ packages:
fast-uri@3.0.6:
resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==}
- fast-xml-parser@5.2.5:
- resolution: {integrity: sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==}
- hasBin: true
-
fastest-levenshtein@1.0.16:
resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==}
engines: {node: '>= 4.9.1'}
@@ -4559,15 +4641,6 @@ packages:
fb-watchman@2.0.2:
resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==}
- fdir@6.5.0:
- resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
- engines: {node: '>=12.0.0'}
- peerDependencies:
- picomatch: ^3 || ^4
- peerDependenciesMeta:
- picomatch:
- optional: true
-
figgy-pudding@3.5.2:
resolution: {integrity: sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==}
deprecated: This module is no longer supported.
@@ -4839,10 +4912,6 @@ packages:
resolution: {integrity: sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==}
hasBin: true
- giget@2.0.0:
- resolution: {integrity: sha512-L5bGsVkxJbJgdnwyuheIunkGatUF/zssUoxxjACCseZYAVbaqdh9Tsmmlkl8vYan09H7sbvKt4pS8GqKLBrEzA==}
- hasBin: true
-
git-config-path@2.0.0:
resolution: {integrity: sha512-qc8h1KIQbJpp+241id3GuAtkdyJ+IK+LIVtkiFTRKRrmddDzs3SI9CvP1QYmWBFvm1I/PWRwj//of8bgAc0ltA==}
engines: {node: '>=4'}
@@ -4964,14 +5033,6 @@ packages:
resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==}
engines: {node: '>=10'}
- h3-compression@0.3.2:
- resolution: {integrity: sha512-B+yCKyDRnO0BXSfjAP4tCXJgJwmnKp3GyH5Yh66mY9KuOCrrGQSPk/gBFG2TgH7OyB/6mvqNZ1X0XNVuy0qRsw==}
- peerDependencies:
- h3: ^1.6.0
-
- h3@1.15.4:
- resolution: {integrity: sha512-z5cFQWDffyOe4vQ9xIqNfCZdV4p//vy6fBnr8Q1AWnVZ0teurKMG66rLj++TKwKPUP3u7iMUvrvKaEUiQw2QWQ==}
-
hard-rejection@2.1.0:
resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
engines: {node: '>=6'}
@@ -5189,14 +5250,6 @@ packages:
resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
engines: {node: '>= 4'}
- ignore@5.3.2:
- resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==}
- engines: {node: '>= 4'}
-
- ignore@7.0.5:
- resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==}
- engines: {node: '>= 4'}
-
import-fresh@3.3.0:
resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
engines: {node: '>=6'}
@@ -5263,9 +5316,6 @@ packages:
ip@2.0.1:
resolution: {integrity: sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ==}
- iron-webcrypto@1.2.1:
- resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==}
-
is-accessor-descriptor@0.1.6:
resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==}
engines: {node: '>=0.10.0'}
@@ -5369,6 +5419,9 @@ packages:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
engines: {node: '>=0.10.0'}
+ is-https@2.0.2:
+ resolution: {integrity: sha512-UfUCKVQH/6PQRCh5Qk9vNu4feLZiFmV/gr8DjbtJD0IrCRIDTA6E+d/AVFGPulI5tqK5W45fYbn1Nir1O99rFw==}
+
is-negative-zero@2.0.2:
resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==}
engines: {node: '>= 0.4'}
@@ -5673,8 +5726,8 @@ packages:
resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==}
hasBin: true
- jiti@2.6.0:
- resolution: {integrity: sha512-VXe6RjJkBPj0ohtqaO8vSWP3ZhAKo66fKrFNCll4BTcwljPLz03pCbaNKfzGP5MbrCYcbJ7v0nOYYwUzTEIdXQ==}
+ jiti@2.5.1:
+ resolution: {integrity: sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==}
hasBin: true
jose@2.0.7:
@@ -5695,9 +5748,6 @@ packages:
js-tokens@9.0.0:
resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==}
- js-tokens@9.0.1:
- resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==}
-
js-yaml@3.14.1:
resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
hasBin: true
@@ -5822,9 +5872,6 @@ packages:
knitwork@1.1.0:
resolution: {integrity: sha512-oHnmiBUVHz1V+URE77PNot2lv3QiYU2zQf1JjOVkMt3YDKGbu8NAFr+c4mcNOhdsGrB/VpVbRwPwhiXrPhxQbw==}
- knitwork@1.2.0:
- resolution: {integrity: sha512-xYSH7AvuQ6nXkq42x0v5S8/Iry+cfulBz/DJQzhIyESdLD7425jXsPy4vn5cCXU+HhRN2kVw51Vd1K6/By4BQg==}
-
known-css-properties@0.29.0:
resolution: {integrity: sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==}
@@ -5895,10 +5942,6 @@ packages:
resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==}
engines: {node: '>=14'}
- local-pkg@1.1.2:
- resolution: {integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==}
- engines: {node: '>=14'}
-
locate-path@3.0.0:
resolution: {integrity: sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==}
engines: {node: '>=6'}
@@ -5976,6 +6019,9 @@ packages:
lodash.truncate@4.4.2:
resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==}
+ lodash.unionby@4.8.0:
+ resolution: {integrity: sha512-e60kn4GJIunNkw6v9MxRnUuLYI/Tyuanch7ozoCtk/1irJTYBj+qNTxr5B3qVflmJhwStJBv387Cb+9VOfABMg==}
+
lodash.uniq@4.5.0:
resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
@@ -6024,9 +6070,6 @@ packages:
magic-string@0.30.10:
resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==}
- magic-string@0.30.19:
- resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==}
-
magic-string@0.30.4:
resolution: {integrity: sha512-Q/TKtsC5BPm0kGqgBIF9oXAs/xEf2vRKiIB4wCRQTJOQIByZ1d+NnUOotvJOvNpi5RNIgVOMC3pOuaP1ZTDlVg==}
engines: {node: '>=12'}
@@ -6269,8 +6312,8 @@ packages:
mlly@1.7.1:
resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==}
- mlly@1.8.0:
- resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==}
+ mlly@1.7.3:
+ resolution: {integrity: sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==}
moment@2.30.1:
resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==}
@@ -6283,8 +6326,8 @@ packages:
resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
engines: {node: '>=4'}
- mrmime@2.0.1:
- resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==}
+ mrmime@1.0.1:
+ resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==}
engines: {node: '>=10'}
ms@2.0.0:
@@ -6311,6 +6354,11 @@ packages:
resolution: {integrity: sha512-21t+ozMQDAL/UGgQVBbZ/xXvNO10++ZPuTmKRO8k9V3AClVRht49ahtDjfY8l1q6nSHOrE5ASfthzH3ol6R/hg==}
engines: {node: '>=20.17'}
+ nanoid@3.3.11:
+ resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+
nanoid@3.3.8:
resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
@@ -6348,9 +6396,6 @@ packages:
node-fetch-native@1.6.4:
resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==}
- node-fetch-native@1.6.7:
- resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==}
-
node-fetch@2.7.0:
resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
engines: {node: 4.x || >=6.0.0}
@@ -6373,9 +6418,6 @@ packages:
node-libs-browser@2.2.1:
resolution: {integrity: sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==}
- node-mock-http@1.0.3:
- resolution: {integrity: sha512-jN8dK25fsfnMrVsEhluUTPkBFY+6ybu7jSB1n+ri/vOGjJxU8J9CZhpSGkHXSkFjtUhbmoncG/YG9ta5Ludqog==}
-
node-object-hash@1.4.2:
resolution: {integrity: sha512-UdS4swXs85fCGWWf6t6DMGgpN/vnlKeSGEQ7hJcrs7PBFoxoKLmibc3QRb7fwiYsjdL7PX8iI/TMSlZ90dgHhQ==}
engines: {node: '>=0.10.0'}
@@ -6432,14 +6474,6 @@ packages:
nuxt-highlightjs@1.0.3:
resolution: {integrity: sha512-3UEEyVYwjN+tg+gFF2fC/K4+xMiGCQlZ+3c19f3MCa5l90JtV7QXfU/2NpTq3yY3BeAgAYSwLVbP1SWOhVsXaw==}
- nuxt-site-config-kit@3.2.9:
- resolution: {integrity: sha512-x8DjW9FnR96LqijcFSbZxae/RwqJ/Wr5ossqfrFDIqRWXO8jD/UX8wNQjXkDYYopHThGqdpxlPUj1FieNL2N8A==}
-
- nuxt-site-config@3.2.9:
- resolution: {integrity: sha512-Li/q3d8q/dGzWJJw9fFzZp7JnGUudKxB03gZojShYnN4lz15r++vL8ET1Vu7/BTDXaW9dhLRE1f60Et0jGk7ew==}
- peerDependencies:
- h3: ^1
-
nuxt@2.18.1:
resolution: {integrity: sha512-SZFOLDKgCfLu23BrQE0YYNWeoi/h+fw07TNDNDzRfbmMvQlStgTBG7lqeELytXdQnaPKWjWAYo12K7pPPRZb9Q==}
deprecated: Nuxt 2 has reached EOL and is no longer actively maintained. See https://nuxt.com/blog/nuxt2-eol for more details.
@@ -6453,11 +6487,6 @@ packages:
engines: {node: ^14.16.0 || >=16.10.0}
hasBin: true
- nypm@0.6.2:
- resolution: {integrity: sha512-7eM+hpOtrKrBDCh7Ypu2lJ9Z7PNZBdi/8AT3AX8xoCj43BBVHD0hPSTEvMtkMpfs8FCqBGhxB+uToIQimA111g==}
- engines: {node: ^14.16.0 || >=16.10.0}
- hasBin: true
-
object-assign@4.1.1:
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
engines: {node: '>=0.10.0'}
@@ -6504,14 +6533,11 @@ packages:
resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==}
engines: {node: '>= 0.4'}
- ofetch@1.4.1:
- resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==}
-
- ohash@1.1.6:
- resolution: {integrity: sha512-TBu7PtV8YkAZn0tSxobKY2n2aAQva936lhRrj6957aDaCf9IEtqsKbgMzXE/F/sjqYOwmrukeORHNLe5glk7Cg==}
+ ohash@1.1.3:
+ resolution: {integrity: sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==}
- ohash@2.0.11:
- resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==}
+ ohash@1.1.4:
+ resolution: {integrity: sha512-FlDryZAahJmEF3VR3w1KogSEdWX3WhA5GPakFx4J81kEAiHyLMpdLLElS8n8dfNadMgAne/MywcvmogzscVt4g==}
on-finished@2.3.0:
resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==}
@@ -6698,9 +6724,6 @@ packages:
pathe@1.1.2:
resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==}
- pathe@2.0.3:
- resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==}
-
pbkdf2@3.1.2:
resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==}
engines: {node: '>=0.12'}
@@ -6708,9 +6731,6 @@ packages:
perfect-debounce@1.0.0:
resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==}
- perfect-debounce@2.0.0:
- resolution: {integrity: sha512-fkEH/OBiKrqqI/yIgjR92lMfs2K8105zt/VT6+7eTjNwisrsh47CeIED9z58zI7DfKdH3uHAn25ziRZn3kgAow==}
-
picocolors@0.2.1:
resolution: {integrity: sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==}
@@ -6764,11 +6784,11 @@ packages:
resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
engines: {node: '>=8'}
- pkg-types@1.3.1:
- resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==}
+ pkg-types@1.1.2:
+ resolution: {integrity: sha512-VEGf1he2DR5yowYRl0XJhWJq5ktm9gYIsH+y8sNJpHlxch7JPDaufgrsl4vYjd9hMUY8QVjoNncKbow9I7exyA==}
- pkg-types@2.3.0:
- resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==}
+ pkg-types@1.2.1:
+ resolution: {integrity: sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==}
pluralize@8.0.0:
resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
@@ -7348,6 +7368,10 @@ packages:
resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==}
engines: {node: ^10 || ^12 || >=14}
+ postcss@8.5.6:
+ resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==}
+ engines: {node: ^10 || ^12 || >=14}
+
prelude-ls@1.2.1:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: '>= 0.8.0'}
@@ -7474,9 +7498,6 @@ packages:
resolution: {integrity: sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==}
engines: {node: '>=0.6'}
- quansync@0.2.11:
- resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==}
-
query-string@4.3.4:
resolution: {integrity: sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==}
engines: {node: '>=0.10.0'}
@@ -7492,9 +7513,6 @@ packages:
resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
engines: {node: '>=10'}
- radix3@1.1.2:
- resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==}
-
randombytes@2.1.0:
resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
@@ -7548,10 +7566,6 @@ packages:
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
engines: {node: '>=8.10.0'}
- readdirp@4.1.2:
- resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==}
- engines: {node: '>= 14.18.0'}
-
redent@4.0.0:
resolution: {integrity: sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==}
engines: {node: '>=12'}
@@ -7762,6 +7776,9 @@ packages:
engines: {node: '>=8.9.0'}
hasBin: true
+ sax@1.4.1:
+ resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==}
+
saxes@6.0.0:
resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==}
engines: {node: '>=v12.22.7'}
@@ -7881,18 +7898,14 @@ packages:
resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
engines: {node: '>=14'}
- sirv@2.0.4:
- resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==}
+ sirv@2.0.3:
+ resolution: {integrity: sha512-O9jm9BsID1P+0HOi81VpXPoDxYP374pkOLzACAoyUQ/3OUVndNpsz6wMnY2z+yOxzbllCKZrM+9QrWsv4THnyA==}
engines: {node: '>= 10'}
- sirv@3.0.2:
- resolution: {integrity: sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==}
- engines: {node: '>=18'}
-
- site-config-stack@3.2.9:
- resolution: {integrity: sha512-VHSClGeW2+pMxb3PAVdnbfuFGuan/PYWB+S7wk89ry4XQixu7zDKFRiyMSzoORs0NGXCmGIjU0ePjwNjs9Zn5Q==}
- peerDependencies:
- vue: ^3
+ sitemap@4.1.1:
+ resolution: {integrity: sha512-+8yd66IxyIFEMFkFpVoPuoPwBvdiL7Ap/HS5YD7igqO4phkyTPFIprCAE9NMHehAY5ZGN3MkAze4lDrOAX3sVQ==}
+ engines: {node: '>=8.9.0', npm: '>=5.6.0'}
+ hasBin: true
slash@3.0.0:
resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
@@ -7949,6 +7962,10 @@ packages:
resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
engines: {node: '>=0.10.0'}
+ source-map-js@1.2.1:
+ resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
+ engines: {node: '>=0.10.0'}
+
source-map-resolve@0.5.3:
resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==}
deprecated: See https://github.com/lydell/source-map-resolve#deprecated
@@ -8035,8 +8052,8 @@ packages:
resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==}
engines: {node: '>= 0.8'}
- std-env@3.9.0:
- resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==}
+ std-env@3.7.0:
+ resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==}
stream-browserify@2.0.2:
resolution: {integrity: sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==}
@@ -8143,12 +8160,6 @@ packages:
strip-literal@2.1.0:
resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==}
- strip-literal@3.1.0:
- resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==}
-
- strnum@2.1.1:
- resolution: {integrity: sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw==}
-
stubs@3.0.0:
resolution: {integrity: sha512-PdHt7hHUJKxvTCgbKX9C1V/ftOcjJQgz8BZwNfV5c4B6dcGqlpelTbJ999jBGZ2jYiPAwcX5dP6oBwVlBlUbxw==}
@@ -8364,10 +8375,6 @@ packages:
tinyexec@1.0.1:
resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==}
- tinyglobby@0.2.15:
- resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==}
- engines: {node: '>=12.0.0'}
-
tldts-core@6.1.86:
resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==}
@@ -8568,9 +8575,6 @@ packages:
ufo@1.6.1:
resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==}
- ultrahtml@1.6.0:
- resolution: {integrity: sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==}
-
unbox-primitive@1.0.2:
resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
@@ -8580,9 +8584,6 @@ packages:
unctx@2.3.1:
resolution: {integrity: sha512-PhKke8ZYauiqh3FEMVNm7ljvzQiph0Mt3GBRve03IJm7ukfaON2OBK795tLwhbyfzknuRRkW0+Ze+CQUmzOZ+A==}
- unctx@2.4.1:
- resolution: {integrity: sha512-AbaYw0Nm4mK4qjhns67C+kgxR2YWiwlDBPzxrN8h8C6VtAdCgditAY5Dezu3IJy4XVqAnbrXt9oQJvsn3fyozg==}
-
undici-types@7.10.0:
resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==}
@@ -8619,10 +8620,6 @@ packages:
unimport@3.7.2:
resolution: {integrity: sha512-91mxcZTadgXyj3lFWmrGT8GyoRHWuE5fqPOjg5RVtF6vj+OfM5G6WCzXjuYtSgELE5ggB34RY4oiCSEP8I3AHw==}
- unimport@5.4.0:
- resolution: {integrity: sha512-g/OLFZR2mEfqbC6NC9b2225eCJGvufxq34mj6kM3OmI5gdSL0qyqtnv+9qmsGpAmnzSl6x0IWZj4W+8j2hLkMA==}
- engines: {node: '>=18.12.0'}
-
union-value@1.0.1:
resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==}
engines: {node: '>=0.10.0'}
@@ -8649,10 +8646,6 @@ packages:
resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
engines: {node: '>= 0.8'}
- unplugin-utils@0.3.0:
- resolution: {integrity: sha512-JLoggz+PvLVMJo+jZt97hdIIIZ2yTzGgft9e9q8iMrC4ewufl62ekeW7mixBghonn2gVb/ICjyvlmOCUBnJLQg==}
- engines: {node: '>=20.19.0'}
-
unplugin@1.11.0:
resolution: {integrity: sha512-3r7VWZ/webh0SGgJScpWl2/MRCZK5d3ZYFcNaeci/GQ7Teop7zf0Nl2pUuz7G21BwPd9pcUPOC5KmJ2L3WgC5g==}
engines: {node: '>=14.0.0'}
@@ -8660,10 +8653,6 @@ packages:
unplugin@1.5.0:
resolution: {integrity: sha512-9ZdRwbh/4gcm1JTOkp9lAkIDrtOyOxgHmY7cjuwI8L/2RTikMcVG25GsZwNAgRuap3iDw2jeq7eoqtAsz5rW3A==}
- unplugin@2.3.10:
- resolution: {integrity: sha512-6NCPkv1ClwH+/BGE9QeoTIl09nuiAt0gS28nn1PvYXsGKRwM2TCbFA2QiilmehPDTXIe684k4rZI1yl3A1PCUw==}
- engines: {node: '>=18.12.0'}
-
unrs-resolver@1.11.1:
resolution: {integrity: sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==}
@@ -8679,10 +8668,6 @@ packages:
resolution: {integrity: sha512-nC5q0DnPEPVURPhfPQLahhSTnemVtPzdx7ofiRxXpOB2SYnb3MfdU3DVGyJdS8Lx+tBWeAePO8BfU/3EgksM7Q==}
hasBin: true
- untyped@2.0.0:
- resolution: {integrity: sha512-nwNCjxJTjNuLCgFr42fEak5OcLuB3ecca+9ksPFNvtfYSLpjf+iJqSIaSnIile6ZPbKYxI5k2AfXqeopGudK/g==}
- hasBin: true
-
upath@1.2.0:
resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==}
engines: {node: '>=4'}
@@ -8778,6 +8763,34 @@ packages:
rollup:
optional: true
+ vite@4.5.3:
+ resolution: {integrity: sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ hasBin: true
+ peerDependencies:
+ '@types/node': '>= 14'
+ less: '*'
+ lightningcss: ^1.21.0
+ sass: '*'
+ stylus: '*'
+ sugarss: '*'
+ terser: ^5.4.0
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ less:
+ optional: true
+ lightningcss:
+ optional: true
+ sass:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+
vm-browserify@1.1.2:
resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==}
@@ -9102,6 +9115,10 @@ packages:
resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==}
engines: {node: '>=18'}
+ xmlbuilder@13.0.2:
+ resolution: {integrity: sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ==}
+ engines: {node: '>=6.0'}
+
xmlchars@2.2.0:
resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==}
@@ -9256,9 +9273,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/eslint-parser@7.27.5(@babel/core@7.28.0)(eslint@8.57.1)':
+ '@babel/eslint-parser@7.27.5(@babel/core@7.24.7)(eslint@8.57.1)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.24.7
'@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1
eslint: 8.57.1
eslint-visitor-keys: 2.1.0
@@ -9632,6 +9649,11 @@ snapshots:
'@babel/core': 7.28.0
'@babel/helper-plugin-utils': 7.27.1
+ '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.24.7)':
+ dependencies:
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.27.1
+
'@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.0)':
dependencies:
'@babel/core': 7.28.0
@@ -9682,6 +9704,11 @@ snapshots:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.27.1
+ '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.24.7)':
+ dependencies:
+ '@babel/core': 7.24.7
+ '@babel/helper-plugin-utils': 7.27.1
+
'@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.0)':
dependencies:
'@babel/core': 7.28.0
@@ -10334,7 +10361,7 @@ snapshots:
'@commitlint/format@19.8.1':
dependencies:
'@commitlint/types': 19.8.1
- chalk: 5.6.2
+ chalk: 5.5.0
'@commitlint/is-ignored@19.8.1':
dependencies:
@@ -10354,7 +10381,7 @@ snapshots:
'@commitlint/execute-rule': 19.8.1
'@commitlint/resolve-extends': 19.8.1
'@commitlint/types': 19.8.1
- chalk: 5.6.2
+ chalk: 5.5.0
cosmiconfig: 9.0.0(typescript@4.9.5)
cosmiconfig-typescript-loader: 6.1.0(@types/node@24.2.0)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5)
lodash.isplainobject: 4.0.6
@@ -10405,12 +10432,12 @@ snapshots:
'@commitlint/types@19.8.0':
dependencies:
'@types/conventional-commits-parser': 5.0.1
- chalk: 5.6.2
+ chalk: 5.5.0
'@commitlint/types@19.8.1':
dependencies:
'@types/conventional-commits-parser': 5.0.1
- chalk: 5.6.2
+ chalk: 5.5.0
'@csstools/cascade-layer-name-parser@1.0.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2)':
dependencies:
@@ -10700,6 +10727,72 @@ snapshots:
tslib: 2.8.1
optional: true
+ '@esbuild/android-arm64@0.18.20':
+ optional: true
+
+ '@esbuild/android-arm@0.18.20':
+ optional: true
+
+ '@esbuild/android-x64@0.18.20':
+ optional: true
+
+ '@esbuild/darwin-arm64@0.18.20':
+ optional: true
+
+ '@esbuild/darwin-x64@0.18.20':
+ optional: true
+
+ '@esbuild/freebsd-arm64@0.18.20':
+ optional: true
+
+ '@esbuild/freebsd-x64@0.18.20':
+ optional: true
+
+ '@esbuild/linux-arm64@0.18.20':
+ optional: true
+
+ '@esbuild/linux-arm@0.18.20':
+ optional: true
+
+ '@esbuild/linux-ia32@0.18.20':
+ optional: true
+
+ '@esbuild/linux-loong64@0.18.20':
+ optional: true
+
+ '@esbuild/linux-mips64el@0.18.20':
+ optional: true
+
+ '@esbuild/linux-ppc64@0.18.20':
+ optional: true
+
+ '@esbuild/linux-riscv64@0.18.20':
+ optional: true
+
+ '@esbuild/linux-s390x@0.18.20':
+ optional: true
+
+ '@esbuild/linux-x64@0.18.20':
+ optional: true
+
+ '@esbuild/netbsd-x64@0.18.20':
+ optional: true
+
+ '@esbuild/openbsd-x64@0.18.20':
+ optional: true
+
+ '@esbuild/sunos-x64@0.18.20':
+ optional: true
+
+ '@esbuild/win32-arm64@0.18.20':
+ optional: true
+
+ '@esbuild/win32-ia32@0.18.20':
+ optional: true
+
+ '@esbuild/win32-x64@0.18.20':
+ optional: true
+
'@eslint-community/eslint-utils@4.4.0(eslint@8.57.1)':
dependencies:
eslint: 8.57.1
@@ -11428,31 +11521,21 @@ snapshots:
'@jridgewell/gen-mapping@0.3.12':
dependencies:
- '@jridgewell/sourcemap-codec': 1.5.5
+ '@jridgewell/sourcemap-codec': 1.5.4
'@jridgewell/trace-mapping': 0.3.29
- '@jridgewell/gen-mapping@0.3.13':
- dependencies:
- '@jridgewell/sourcemap-codec': 1.5.5
- '@jridgewell/trace-mapping': 0.3.31
-
'@jridgewell/gen-mapping@0.3.3':
dependencies:
'@jridgewell/set-array': 1.1.2
- '@jridgewell/sourcemap-codec': 1.5.5
+ '@jridgewell/sourcemap-codec': 1.5.4
'@jridgewell/trace-mapping': 0.3.29
'@jridgewell/gen-mapping@0.3.5':
dependencies:
'@jridgewell/set-array': 1.2.1
- '@jridgewell/sourcemap-codec': 1.5.5
+ '@jridgewell/sourcemap-codec': 1.5.4
'@jridgewell/trace-mapping': 0.3.29
- '@jridgewell/remapping@2.3.5':
- dependencies:
- '@jridgewell/gen-mapping': 0.3.13
- '@jridgewell/trace-mapping': 0.3.31
-
'@jridgewell/resolve-uri@3.1.2': {}
'@jridgewell/set-array@1.1.2': {}
@@ -11466,18 +11549,11 @@ snapshots:
'@jridgewell/sourcemap-codec@1.5.4': {}
- '@jridgewell/sourcemap-codec@1.5.5': {}
-
'@jridgewell/trace-mapping@0.3.29':
dependencies:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.4
- '@jridgewell/trace-mapping@0.3.31':
- dependencies:
- '@jridgewell/resolve-uri': 3.1.2
- '@jridgewell/sourcemap-codec': 1.5.5
-
'@jsonjoy.com/base64@1.1.2(tslib@2.6.2)':
dependencies:
tslib: 2.6.2
@@ -11554,12 +11630,12 @@ snapshots:
- supports-color
- vue
- '@nuxt/builder@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)':
+ '@nuxt/builder@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)':
dependencies:
'@nuxt/devalue': 2.0.2
'@nuxt/utils': 2.18.1
'@nuxt/vue-app': 2.18.1
- '@nuxt/webpack': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
+ '@nuxt/webpack': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
chalk: 4.1.2
chokidar: 3.6.0
consola: 3.2.3
@@ -11658,18 +11734,18 @@ snapshots:
pretty-bytes: 5.6.0
semver: 7.7.2
serve-static: 1.16.2
- std-env: 3.9.0
+ std-env: 3.7.0
upath: 2.0.1
wrap-ansi: 7.0.0
transitivePeerDependencies:
- buffer
- supports-color
- '@nuxt/components@2.2.1(consola@3.4.2)':
+ '@nuxt/components@2.2.1(consola@3.2.3)':
dependencies:
chalk: 4.1.2
chokidar: 3.6.0
- consola: 3.4.2
+ consola: 3.2.3
glob: 7.2.3
globby: 11.1.0
scule: 0.2.1
@@ -11686,7 +11762,7 @@ snapshots:
dotenv: 16.6.1
lodash: 4.17.21
rc9: 2.1.2
- std-env: 3.9.0
+ std-env: 3.7.0
ufo: 1.6.1
'@nuxt/core@2.18.1':
@@ -11704,17 +11780,10 @@ snapshots:
'@nuxt/devalue@2.0.2': {}
- '@nuxt/devtools-kit@2.6.5':
- dependencies:
- '@nuxt/kit': 3.19.2
- execa: 8.0.1
- transitivePeerDependencies:
- - magicast
-
'@nuxt/friendly-errors-webpack-plugin@2.6.0(webpack@4.47.0)':
dependencies:
chalk: 2.4.2
- consola: 3.4.2
+ consola: 3.2.3
error-stack-parser: 2.1.4
string-width: 4.2.3
webpack: 4.47.0
@@ -11746,7 +11815,7 @@ snapshots:
knitwork: 1.1.0
mlly: 1.7.1
pathe: 1.1.2
- pkg-types: 1.3.1
+ pkg-types: 1.1.2
scule: 1.3.0
semver: 7.7.2
ufo: 1.6.1
@@ -11758,34 +11827,6 @@ snapshots:
- rollup
- supports-color
- '@nuxt/kit@3.19.2':
- dependencies:
- c12: 3.3.0
- consola: 3.4.2
- defu: 6.1.4
- destr: 2.0.5
- errx: 0.1.0
- exsolve: 1.0.7
- ignore: 7.0.5
- jiti: 2.6.0
- klona: 2.0.6
- knitwork: 1.2.0
- mlly: 1.8.0
- ohash: 2.0.11
- pathe: 2.0.3
- pkg-types: 2.3.0
- rc9: 2.1.2
- scule: 1.3.0
- semver: 7.7.2
- std-env: 3.9.0
- tinyglobby: 0.2.15
- ufo: 1.6.1
- unctx: 2.4.1
- unimport: 5.4.0
- untyped: 2.0.0
- transitivePeerDependencies:
- - magicast
-
'@nuxt/kit@3.7.4(rollup@3.29.5)':
dependencies:
'@nuxt/schema': 3.7.4(rollup@3.29.5)
@@ -11798,8 +11839,8 @@ snapshots:
jiti: 1.20.0
knitwork: 1.0.0
mlly: 1.4.2
- pathe: 1.1.1
- pkg-types: 1.3.1
+ pathe: 1.1.2
+ pkg-types: 1.1.2
scule: 1.0.0
semver: 7.7.2
ufo: 1.6.1
@@ -11810,33 +11851,6 @@ snapshots:
- rollup
- supports-color
- '@nuxt/kit@4.1.2':
- dependencies:
- c12: 3.3.0
- consola: 3.4.2
- defu: 6.1.4
- destr: 2.0.5
- errx: 0.1.0
- exsolve: 1.0.7
- ignore: 7.0.5
- jiti: 2.6.0
- klona: 2.0.6
- mlly: 1.8.0
- ohash: 2.0.11
- pathe: 2.0.3
- pkg-types: 2.3.0
- rc9: 2.1.2
- scule: 1.3.0
- semver: 7.7.2
- std-env: 3.9.0
- tinyglobby: 0.2.15
- ufo: 1.6.1
- unctx: 2.4.1
- unimport: 5.4.0
- untyped: 2.0.0
- transitivePeerDependencies:
- - magicast
-
'@nuxt/loading-screen@2.0.4':
dependencies:
connect: 3.7.0
@@ -11860,9 +11874,9 @@ snapshots:
defu: 6.1.4
hookable: 5.5.3
pathe: 1.1.2
- pkg-types: 1.3.1
+ pkg-types: 1.1.2
scule: 1.3.0
- std-env: 3.9.0
+ std-env: 3.7.0
ufo: 1.6.1
uncrypto: 0.1.3
unimport: 3.7.2(rollup@3.29.5)
@@ -11878,12 +11892,12 @@ snapshots:
defu: 6.1.4
hookable: 5.5.3
pathe: 1.1.2
- pkg-types: 1.3.1
+ pkg-types: 1.1.2
postcss-import-resolver: 2.0.0
- std-env: 3.9.0
+ std-env: 3.7.0
ufo: 1.6.1
- unimport: 3.4.0(rollup@3.29.5)
- untyped: 1.4.0
+ unimport: 3.7.2(rollup@3.29.5)
+ untyped: 1.4.2
transitivePeerDependencies:
- rollup
- supports-color
@@ -11928,7 +11942,7 @@ snapshots:
node-fetch: 2.7.0
parse-git-config: 3.0.0
rc9: 2.1.1
- std-env: 3.9.0
+ std-env: 3.7.0
transitivePeerDependencies:
- encoding
@@ -12007,7 +12021,7 @@ snapshots:
vue-meta: 2.4.0
vue-server-renderer: 2.7.16
- '@nuxt/webpack@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)':
+ '@nuxt/webpack@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)':
dependencies:
'@babel/core': 7.24.7
'@nuxt/babel-preset-app': 2.18.1(vue@2.7.16)
@@ -12039,7 +12053,7 @@ snapshots:
postcss-preset-env: 9.5.15(postcss@8.4.39)
postcss-url: 10.1.3(postcss@8.4.39)
semver: 7.7.2
- std-env: 3.9.0
+ std-env: 3.7.0
style-resources-loader: 1.5.0(webpack@4.47.0)
terser-webpack-plugin: 4.2.3(webpack@4.47.0)
thread-loader: 3.0.4(webpack@4.47.0)
@@ -12047,7 +12061,7 @@ snapshots:
ufo: 1.6.1
upath: 2.0.1
url-loader: 4.1.1(file-loader@6.2.0(webpack@5.101.0))(webpack@4.47.0)
- vue-loader: 15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@5.101.0))(ejs@3.1.10)(lodash@4.17.21)(prettier@3.6.2)(vue-template-compiler@2.7.16)(webpack@4.47.0)
+ vue-loader: 15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@5.101.0))(ejs@3.1.10)(lodash@4.17.21)(prettier@3.6.2)(vue-template-compiler@2.7.16)(webpack@4.47.0)
vue-style-loader: 4.1.3
vue-template-compiler: 2.7.16
watchpack: 2.4.4
@@ -12158,25 +12172,25 @@ snapshots:
- eslint-import-resolver-webpack
- supports-color
- '@nuxtjs/eslint-module@4.1.0(eslint@8.57.1)(rollup@3.29.5)(webpack@5.101.0)':
+ '@nuxtjs/eslint-module@4.1.0(eslint@8.57.1)(rollup@3.29.5)(vite@4.5.3(@types/node@24.2.0)(sass@1.32.13)(terser@5.43.1))(webpack@5.101.0)':
dependencies:
'@nuxt/kit': 3.7.4(rollup@3.29.5)
chokidar: 3.5.3
eslint: 8.57.1
eslint-webpack-plugin: 4.0.1(eslint@8.57.1)(webpack@5.101.0)
pathe: 1.1.1
- vite-plugin-eslint: 1.8.1(eslint@8.57.1)
+ vite-plugin-eslint: 1.8.1(eslint@8.57.1)(vite@4.5.3(@types/node@24.2.0)(sass@1.32.13)(terser@5.43.1))
transitivePeerDependencies:
- rollup
- supports-color
- vite
- webpack
- '@nuxtjs/firebase@8.2.2(@firebase/app-types@0.9.2)(firebase@10.14.1)(nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(consola@3.4.2)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16))':
+ '@nuxtjs/firebase@8.2.2(@firebase/app-types@0.9.2)(firebase@10.14.1)(nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16))':
dependencies:
consola: 2.15.3
firebase: 10.14.1
- nuxt: 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(consola@3.4.2)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
+ nuxt: 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
optionalDependencies:
firebase-admin: 10.3.0(@firebase/app-types@0.9.2)
transitivePeerDependencies:
@@ -12184,38 +12198,26 @@ snapshots:
- encoding
- supports-color
- '@nuxtjs/sitemap@7.4.7(h3@1.15.4)(vue@2.7.16)':
+ '@nuxtjs/sitemap@2.4.0':
dependencies:
- '@nuxt/devtools-kit': 2.6.5
- '@nuxt/kit': 4.1.2
- chalk: 5.6.2
- defu: 6.1.4
- fast-xml-parser: 5.2.5
- h3-compression: 0.3.2(h3@1.15.4)
- nuxt-site-config: 3.2.9(h3@1.15.4)(vue@2.7.16)
- ofetch: 1.4.1
- pathe: 2.0.3
- pkg-types: 2.3.0
- radix3: 1.1.2
- semver: 7.7.2
- sirv: 3.0.2
- std-env: 3.9.0
- ufo: 1.6.1
- ultrahtml: 1.6.0
- transitivePeerDependencies:
- - h3
- - magicast
- - vite
- - vue
+ async-cache: 1.1.0
+ consola: 2.15.3
+ etag: 1.8.1
+ fresh: 0.5.2
+ fs-extra: 8.1.0
+ is-https: 2.0.2
+ lodash.unionby: 4.8.0
+ minimatch: 3.1.2
+ sitemap: 4.1.1
- '@nuxtjs/stylelint-module@5.2.0(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(webpack@5.101.0)':
+ '@nuxtjs/stylelint-module@5.2.0(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@24.2.0)(sass@1.32.13)(terser@5.43.1))(webpack@5.101.0)':
dependencies:
'@nuxt/kit': 3.12.2(rollup@3.29.5)
chokidar: 3.6.0
pathe: 1.1.2
stylelint: 15.11.0(typescript@4.9.5)
stylelint-webpack-plugin: 5.0.1(stylelint@15.11.0(typescript@4.9.5))(webpack@5.101.0)
- vite-plugin-stylelint: 5.3.1(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))
+ vite-plugin-stylelint: 5.3.1(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@24.2.0)(sass@1.32.13)(terser@5.43.1))
transitivePeerDependencies:
- '@types/stylelint'
- magicast
@@ -12257,7 +12259,7 @@ snapshots:
'@pkgr/core@0.2.9': {}
- '@polka/url@1.0.0-next.29': {}
+ '@polka/url@1.0.0-next.23': {}
'@protobufjs/aspromise@1.1.2': {}
@@ -12444,6 +12446,8 @@ snapshots:
'@types/minimist@1.2.3': {}
+ '@types/node@12.20.55': {}
+
'@types/node@16.18.55': {}
'@types/node@20.8.0': {}
@@ -12470,6 +12474,10 @@ snapshots:
'@types/range-parser@1.2.5': {}
+ '@types/sax@1.2.7':
+ dependencies:
+ '@types/node': 24.2.0
+
'@types/semver@7.5.3': {}
'@types/send@0.17.2':
@@ -12761,9 +12769,9 @@ snapshots:
optionalDependencies:
prettier: 2.8.8
- '@vue/component-compiler-utils@3.3.0(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(lodash@4.17.21)':
+ '@vue/component-compiler-utils@3.3.0(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(ejs@3.1.10)(lodash@4.17.21)':
dependencies:
- consolidate: 0.15.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(lodash@4.17.21)
+ consolidate: 0.15.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(ejs@3.1.10)(lodash@4.17.21)
hash-sum: 1.0.2
lru-cache: 4.1.5
merge-source-map: 1.1.0
@@ -13138,6 +13146,8 @@ snapshots:
aproba@1.2.0: {}
+ arg@4.1.3: {}
+
arg@5.0.2: {}
argparse@1.0.10:
@@ -13232,6 +13242,10 @@ snapshots:
astral-regex@2.0.0: {}
+ async-cache@1.1.0:
+ dependencies:
+ lru-cache: 4.1.5
+
async-each@1.0.6:
optional: true
@@ -13274,9 +13288,22 @@ snapshots:
esutils: 2.0.3
js-tokens: 3.0.2
- babel-core@7.0.0-bridge.0(@babel/core@7.28.0):
+ babel-core@7.0.0-bridge.0(@babel/core@7.24.7):
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.24.7
+
+ babel-jest@30.0.5(@babel/core@7.24.7):
+ dependencies:
+ '@babel/core': 7.24.7
+ '@jest/transform': 30.0.5
+ '@types/babel__core': 7.20.5
+ babel-plugin-istanbul: 7.0.0
+ babel-preset-jest: 30.0.1(@babel/core@7.24.7)
+ chalk: 4.1.2
+ graceful-fs: 4.2.11
+ slash: 3.0.0
+ transitivePeerDependencies:
+ - supports-color
babel-jest@30.0.5(@babel/core@7.28.0):
dependencies:
@@ -13358,6 +13385,25 @@ snapshots:
babel-runtime: 6.26.0
babel-types: 6.26.0
+ babel-preset-current-node-syntax@1.2.0(@babel/core@7.24.7):
+ dependencies:
+ '@babel/core': 7.24.7
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.24.7)
+ '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.24.7)
+ '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.24.7)
+ '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.24.7)
+ '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.24.7)
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.24.7)
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.24.7)
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.24.7)
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.24.7)
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.24.7)
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.24.7)
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.24.7)
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.24.7)
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.24.7)
+ '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.24.7)
+
babel-preset-current-node-syntax@1.2.0(@babel/core@7.28.0):
dependencies:
'@babel/core': 7.28.0
@@ -13377,6 +13423,12 @@ snapshots:
'@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.0)
'@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.0)
+ babel-preset-jest@30.0.1(@babel/core@7.24.7):
+ dependencies:
+ '@babel/core': 7.24.7
+ babel-plugin-jest-hoist: 30.0.1
+ babel-preset-current-node-syntax: 1.2.0(@babel/core@7.24.7)
+
babel-preset-jest@30.0.1(@babel/core@7.28.0):
dependencies:
'@babel/core': 7.28.0
@@ -13594,16 +13646,16 @@ snapshots:
c12@1.11.1:
dependencies:
chokidar: 3.6.0
- confbox: 0.1.8
+ confbox: 0.1.7
defu: 6.1.4
dotenv: 16.6.1
giget: 1.2.3
jiti: 1.21.6
mlly: 1.7.1
- ohash: 1.1.6
+ ohash: 1.1.3
pathe: 1.1.2
perfect-debounce: 1.0.0
- pkg-types: 1.3.1
+ pkg-types: 1.1.2
rc9: 2.1.2
c12@1.4.2:
@@ -13612,31 +13664,16 @@ snapshots:
defu: 6.1.4
dotenv: 16.6.1
giget: 1.1.2
- jiti: 1.20.0
- mlly: 1.4.2
- ohash: 1.1.6
+ jiti: 1.21.6
+ mlly: 1.7.1
+ ohash: 1.1.3
pathe: 1.1.2
perfect-debounce: 1.0.0
- pkg-types: 1.3.1
- rc9: 2.1.2
+ pkg-types: 1.1.2
+ rc9: 2.1.1
transitivePeerDependencies:
- supports-color
- c12@3.3.0:
- dependencies:
- chokidar: 4.0.3
- confbox: 0.2.2
- defu: 6.1.4
- dotenv: 17.2.3
- exsolve: 1.0.7
- giget: 2.0.0
- jiti: 2.6.0
- ohash: 2.0.11
- pathe: 2.0.3
- perfect-debounce: 2.0.0
- pkg-types: 2.3.0
- rc9: 2.1.2
-
cacache@12.0.4:
dependencies:
bluebird: 3.7.2
@@ -13762,8 +13799,6 @@ snapshots:
chalk@5.5.0: {}
- chalk@5.6.2: {}
-
char-regex@1.0.2: {}
chardet@0.7.0: {}
@@ -13820,10 +13855,6 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
- chokidar@4.0.3:
- dependencies:
- readdirp: 4.1.2
-
chownr@1.1.4: {}
chownr@2.0.0: {}
@@ -13843,7 +13874,7 @@ snapshots:
citty@0.1.6:
dependencies:
- consola: 3.4.2
+ consola: 3.2.3
cjs-module-lexer@2.1.0: {}
@@ -13987,9 +14018,9 @@ snapshots:
is-whitespace: 0.3.0
kind-of: 3.2.2
- confbox@0.1.8: {}
+ confbox@0.1.7: {}
- confbox@0.2.2: {}
+ confbox@0.1.8: {}
config-chain@1.1.13:
dependencies:
@@ -14019,15 +14050,13 @@ snapshots:
consola@3.2.3: {}
- consola@3.4.2: {}
-
console-browserify@1.2.0: {}
- consolidate@0.15.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(lodash@4.17.21):
+ consolidate@0.15.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(ejs@3.1.10)(lodash@4.17.21):
dependencies:
bluebird: 3.7.2
optionalDependencies:
- babel-core: 7.0.0-bridge.0(@babel/core@7.28.0)
+ babel-core: 7.0.0-bridge.0(@babel/core@7.24.7)
ejs: 3.1.10
lodash: 4.17.21
@@ -14050,8 +14079,6 @@ snapshots:
convert-source-map@2.0.0: {}
- cookie-es@1.2.2: {}
-
cookie@0.3.1: {}
copy-concurrently@1.0.5:
@@ -14079,7 +14106,7 @@ snapshots:
dependencies:
'@types/node': 24.2.0
cosmiconfig: 9.0.0(typescript@4.9.5)
- jiti: 2.6.0
+ jiti: 2.5.1
typescript: 4.9.5
cosmiconfig@6.0.0:
@@ -14148,10 +14175,6 @@ snapshots:
shebang-command: 2.0.0
which: 2.0.2
- crossws@0.3.5:
- dependencies:
- uncrypto: 0.1.3
-
crypto-browserify@3.12.0:
dependencies:
browserify-cipher: 1.0.1
@@ -14479,8 +14502,6 @@ snapshots:
destr@2.0.3: {}
- destr@2.0.5: {}
-
destroy@1.2.0: {}
detect-indent@5.0.0: {}
@@ -14566,8 +14587,6 @@ snapshots:
dotenv@17.2.1: {}
- dotenv@17.2.3: {}
-
dotenv@8.6.0: {}
dotenv@9.0.2: {}
@@ -14681,8 +14700,6 @@ snapshots:
dependencies:
stackframe: 1.3.4
- errx@0.1.0: {}
-
es-abstract@1.22.2:
dependencies:
array-buffer-byte-length: 1.0.0
@@ -14754,6 +14771,31 @@ snapshots:
is-date-object: 1.0.5
is-symbol: 1.0.4
+ esbuild@0.18.20:
+ optionalDependencies:
+ '@esbuild/android-arm': 0.18.20
+ '@esbuild/android-arm64': 0.18.20
+ '@esbuild/android-x64': 0.18.20
+ '@esbuild/darwin-arm64': 0.18.20
+ '@esbuild/darwin-x64': 0.18.20
+ '@esbuild/freebsd-arm64': 0.18.20
+ '@esbuild/freebsd-x64': 0.18.20
+ '@esbuild/linux-arm': 0.18.20
+ '@esbuild/linux-arm64': 0.18.20
+ '@esbuild/linux-ia32': 0.18.20
+ '@esbuild/linux-loong64': 0.18.20
+ '@esbuild/linux-mips64el': 0.18.20
+ '@esbuild/linux-ppc64': 0.18.20
+ '@esbuild/linux-riscv64': 0.18.20
+ '@esbuild/linux-s390x': 0.18.20
+ '@esbuild/linux-x64': 0.18.20
+ '@esbuild/netbsd-x64': 0.18.20
+ '@esbuild/openbsd-x64': 0.18.20
+ '@esbuild/sunos-x64': 0.18.20
+ '@esbuild/win32-arm64': 0.18.20
+ '@esbuild/win32-ia32': 0.18.20
+ '@esbuild/win32-x64': 0.18.20
+
escalade@3.2.0: {}
escape-html@1.0.3: {}
@@ -14858,7 +14900,7 @@ snapshots:
eslint: 8.57.1
eslint-plugin-es: 4.1.0(eslint@8.57.1)
eslint-utils: 3.0.0(eslint@8.57.1)
- ignore: 5.3.2
+ ignore: 5.3.1
is-core-module: 2.13.0
minimatch: 3.1.2
resolve: 1.22.6
@@ -14869,7 +14911,7 @@ snapshots:
eslint: 8.57.1
eslint-plugin-es: 3.0.1(eslint@8.57.1)
eslint-utils: 2.1.0
- ignore: 5.3.2
+ ignore: 5.3.1
minimatch: 3.1.2
resolve: 1.22.6
semver: 6.3.1
@@ -15099,8 +15141,6 @@ snapshots:
jest-mock: 30.0.5
jest-util: 30.0.5
- exsolve@1.0.7: {}
-
extend-shallow@2.0.1:
dependencies:
is-extendable: 0.1.1
@@ -15171,10 +15211,6 @@ snapshots:
fast-uri@3.0.6: {}
- fast-xml-parser@5.2.5:
- dependencies:
- strnum: 2.1.1
-
fastest-levenshtein@1.0.16: {}
fastq@1.15.0:
@@ -15189,10 +15225,6 @@ snapshots:
dependencies:
bser: 2.1.1
- fdir@6.5.0(picomatch@4.0.3):
- optionalDependencies:
- picomatch: 4.0.3
-
figgy-pudding@3.5.2: {}
figures@3.2.0:
@@ -15556,7 +15588,7 @@ snapshots:
defu: 6.1.4
https-proxy-agent: 5.0.1
mri: 1.2.0
- node-fetch-native: 1.6.7
+ node-fetch-native: 1.6.4
pathe: 1.1.2
tar: 6.2.0
transitivePeerDependencies:
@@ -15565,23 +15597,14 @@ snapshots:
giget@1.2.3:
dependencies:
citty: 0.1.6
- consola: 3.4.2
+ consola: 3.2.3
defu: 6.1.4
- node-fetch-native: 1.6.7
+ node-fetch-native: 1.6.4
nypm: 0.3.9
- ohash: 1.1.6
+ ohash: 1.1.4
pathe: 1.1.2
tar: 6.2.0
- giget@2.0.0:
- dependencies:
- citty: 0.1.6
- consola: 3.4.2
- defu: 6.1.4
- node-fetch-native: 1.6.7
- nypm: 0.6.2
- pathe: 2.0.3
-
git-config-path@2.0.0: {}
git-raw-commits@4.0.0:
@@ -15760,22 +15783,6 @@ snapshots:
dependencies:
duplexer: 0.1.2
- h3-compression@0.3.2(h3@1.15.4):
- dependencies:
- h3: 1.15.4
-
- h3@1.15.4:
- dependencies:
- cookie-es: 1.2.2
- crossws: 0.3.5
- defu: 6.1.4
- destr: 2.0.5
- iron-webcrypto: 1.2.1
- node-mock-http: 1.0.3
- radix3: 1.1.2
- ufo: 1.6.1
- uncrypto: 0.1.3
-
hard-rejection@2.1.0: {}
hard-source-webpack-plugin@0.13.1(webpack@4.47.0):
@@ -16013,10 +16020,6 @@ snapshots:
ignore@5.3.1: {}
- ignore@5.3.2: {}
-
- ignore@7.0.5: {}
-
import-fresh@3.3.0:
dependencies:
parent-module: 1.0.1
@@ -16085,8 +16088,6 @@ snapshots:
ip@2.0.1: {}
- iron-webcrypto@1.2.1: {}
-
is-accessor-descriptor@0.1.6:
dependencies:
kind-of: 3.2.2
@@ -16184,6 +16185,8 @@ snapshots:
dependencies:
is-extglob: 2.1.1
+ is-https@2.0.2: {}
+
is-negative-zero@2.0.2: {}
is-number-object@1.0.7:
@@ -16672,7 +16675,7 @@ snapshots:
jiti@1.21.6: {}
- jiti@2.6.0: {}
+ jiti@2.5.1: {}
jose@2.0.7:
dependencies:
@@ -16692,8 +16695,6 @@ snapshots:
js-tokens@9.0.0: {}
- js-tokens@9.0.1: {}
-
js-yaml@3.14.1:
dependencies:
argparse: 1.0.10
@@ -16847,8 +16848,6 @@ snapshots:
knitwork@1.1.0: {}
- knitwork@1.2.0: {}
-
known-css-properties@0.29.0: {}
last-call-webpack-plugin@3.0.0:
@@ -16927,14 +16926,8 @@ snapshots:
local-pkg@0.5.0:
dependencies:
- mlly: 1.8.0
- pkg-types: 1.3.1
-
- local-pkg@1.1.2:
- dependencies:
- mlly: 1.8.0
- pkg-types: 2.3.0
- quansync: 0.2.11
+ mlly: 1.7.1
+ pkg-types: 1.1.2
locate-path@3.0.0:
dependencies:
@@ -17005,6 +16998,8 @@ snapshots:
lodash.truncate@4.4.2: {}
+ lodash.unionby@4.8.0: {}
+
lodash.uniq@4.5.0: {}
lodash.upperfirst@4.3.1: {}
@@ -17063,10 +17058,6 @@ snapshots:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.4
- magic-string@0.30.19:
- dependencies:
- '@jridgewell/sourcemap-codec': 1.5.5
-
magic-string@0.30.4:
dependencies:
'@jridgewell/sourcemap-codec': 1.5.4
@@ -17313,21 +17304,21 @@ snapshots:
dependencies:
acorn: 8.15.0
pathe: 1.1.2
- pkg-types: 1.3.1
+ pkg-types: 1.1.2
ufo: 1.6.1
mlly@1.7.1:
dependencies:
acorn: 8.15.0
pathe: 1.1.2
- pkg-types: 1.3.1
+ pkg-types: 1.1.2
ufo: 1.6.1
- mlly@1.8.0:
+ mlly@1.7.3:
dependencies:
acorn: 8.15.0
- pathe: 2.0.3
- pkg-types: 1.3.1
+ pathe: 1.1.2
+ pkg-types: 1.2.1
ufo: 1.6.1
moment@2.30.1: {}
@@ -17343,7 +17334,7 @@ snapshots:
mri@1.2.0: {}
- mrmime@2.0.1: {}
+ mrmime@1.0.1: {}
ms@2.0.0: {}
@@ -17360,6 +17351,8 @@ snapshots:
nano-spawn@1.0.2: {}
+ nanoid@3.3.11: {}
+
nanoid@3.3.8: {}
nanomatch@1.2.13:
@@ -17400,8 +17393,6 @@ snapshots:
node-fetch-native@1.6.4: {}
- node-fetch-native@1.6.7: {}
-
node-fetch@2.7.0:
dependencies:
whatwg-url: 5.0.0
@@ -17442,8 +17433,6 @@ snapshots:
util: 0.11.1
vm-browserify: 1.1.2
- node-mock-http@1.0.3: {}
-
node-object-hash@1.4.2: {}
node-releases@2.0.19: {}
@@ -17508,37 +17497,12 @@ snapshots:
dependencies:
highlight.js: 11.11.1
- nuxt-site-config-kit@3.2.9(vue@2.7.16):
- dependencies:
- '@nuxt/kit': 4.1.2
- pkg-types: 2.3.0
- site-config-stack: 3.2.9(vue@2.7.16)
- std-env: 3.9.0
- ufo: 1.6.1
- transitivePeerDependencies:
- - magicast
- - vue
-
- nuxt-site-config@3.2.9(h3@1.15.4)(vue@2.7.16):
- dependencies:
- '@nuxt/kit': 4.1.2
- h3: 1.15.4
- nuxt-site-config-kit: 3.2.9(vue@2.7.16)
- pathe: 2.0.3
- pkg-types: 2.3.0
- sirv: 3.0.2
- site-config-stack: 3.2.9(vue@2.7.16)
- ufo: 1.6.1
- transitivePeerDependencies:
- - magicast
- - vue
-
- nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(consola@3.4.2)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16):
+ nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16):
dependencies:
'@nuxt/babel-preset-app': 2.18.1(vue@2.7.16)
- '@nuxt/builder': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
+ '@nuxt/builder': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
'@nuxt/cli': 2.18.1
- '@nuxt/components': 2.2.1(consola@3.4.2)
+ '@nuxt/components': 2.2.1(consola@3.2.3)
'@nuxt/config': 2.18.1
'@nuxt/core': 2.18.1
'@nuxt/generator': 2.18.1
@@ -17549,7 +17513,7 @@ snapshots:
'@nuxt/utils': 2.18.1
'@nuxt/vue-app': 2.18.1
'@nuxt/vue-renderer': 2.18.1
- '@nuxt/webpack': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
+ '@nuxt/webpack': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
transitivePeerDependencies:
- '@vue/compiler-sfc'
- arc-templates
@@ -17622,20 +17586,12 @@ snapshots:
nypm@0.3.9:
dependencies:
citty: 0.1.6
- consola: 3.4.2
+ consola: 3.2.3
execa: 8.0.1
pathe: 1.1.2
- pkg-types: 1.3.1
+ pkg-types: 1.2.1
ufo: 1.6.1
- nypm@0.6.2:
- dependencies:
- citty: 0.1.6
- consola: 3.4.2
- pathe: 2.0.3
- pkg-types: 2.3.0
- tinyexec: 1.0.1
-
object-assign@4.1.1: {}
object-copy@0.1.0:
@@ -17693,15 +17649,9 @@ snapshots:
define-properties: 1.2.1
es-abstract: 1.22.2
- ofetch@1.4.1:
- dependencies:
- destr: 2.0.5
- node-fetch-native: 1.6.7
- ufo: 1.6.1
-
- ohash@1.1.6: {}
+ ohash@1.1.3: {}
- ohash@2.0.11: {}
+ ohash@1.1.4: {}
on-finished@2.3.0:
dependencies:
@@ -17882,8 +17832,6 @@ snapshots:
pathe@1.1.2: {}
- pathe@2.0.3: {}
-
pbkdf2@3.1.2:
dependencies:
create-hash: 1.2.0
@@ -17894,8 +17842,6 @@ snapshots:
perfect-debounce@1.0.0: {}
- perfect-debounce@2.0.0: {}
-
picocolors@0.2.1: {}
picocolors@1.0.0: {}
@@ -17928,17 +17874,17 @@ snapshots:
dependencies:
find-up: 4.1.0
- pkg-types@1.3.1:
+ pkg-types@1.1.2:
dependencies:
- confbox: 0.1.8
- mlly: 1.8.0
- pathe: 2.0.3
+ confbox: 0.1.7
+ mlly: 1.7.1
+ pathe: 1.1.2
- pkg-types@2.3.0:
+ pkg-types@1.2.1:
dependencies:
- confbox: 0.2.2
- exsolve: 1.0.7
- pathe: 2.0.3
+ confbox: 0.1.8
+ mlly: 1.7.3
+ pathe: 1.1.2
pluralize@8.0.0: {}
@@ -18560,6 +18506,12 @@ snapshots:
picocolors: 1.0.1
source-map-js: 1.2.0
+ postcss@8.5.6:
+ dependencies:
+ nanoid: 3.3.11
+ picocolors: 1.1.1
+ source-map-js: 1.2.1
+
prelude-ls@1.2.1: {}
prepend-http@1.0.4: {}
@@ -18722,8 +18674,6 @@ snapshots:
dependencies:
side-channel: 1.0.4
- quansync@0.2.11: {}
-
query-string@4.3.4:
dependencies:
object-assign: 4.1.1
@@ -18735,8 +18685,6 @@ snapshots:
quick-lru@5.1.1: {}
- radix3@1.1.2: {}
-
randombytes@2.1.0:
dependencies:
safe-buffer: 5.2.1
@@ -18751,13 +18699,13 @@ snapshots:
rc9@2.1.1:
dependencies:
defu: 6.1.4
- destr: 2.0.5
+ destr: 2.0.3
flat: 5.0.2
rc9@2.1.2:
dependencies:
defu: 6.1.4
- destr: 2.0.5
+ destr: 2.0.3
react-is@18.3.1: {}
@@ -18820,8 +18768,6 @@ snapshots:
dependencies:
picomatch: 2.3.1
- readdirp@4.1.2: {}
-
redent@4.0.0:
dependencies:
indent-string: 5.0.0
@@ -18959,7 +18905,6 @@ snapshots:
rollup@3.29.5:
optionalDependencies:
fsevents: 2.3.3
- optional: true
rrweb-cssom@0.8.0: {}
@@ -19019,6 +18964,8 @@ snapshots:
dependencies:
chokidar: 3.6.0
+ sax@1.4.1: {}
+
saxes@6.0.0:
dependencies:
xmlchars: 2.2.0
@@ -19161,22 +19108,19 @@ snapshots:
signal-exit@4.1.0: {}
- sirv@2.0.4:
+ sirv@2.0.3:
dependencies:
- '@polka/url': 1.0.0-next.29
- mrmime: 2.0.1
+ '@polka/url': 1.0.0-next.23
+ mrmime: 1.0.1
totalist: 3.0.1
- sirv@3.0.2:
+ sitemap@4.1.1:
dependencies:
- '@polka/url': 1.0.0-next.29
- mrmime: 2.0.1
- totalist: 3.0.1
-
- site-config-stack@3.2.9(vue@2.7.16):
- dependencies:
- ufo: 1.6.1
- vue: 2.7.16
+ '@types/node': 12.20.55
+ '@types/sax': 1.2.7
+ arg: 4.1.3
+ sax: 1.4.1
+ xmlbuilder: 13.0.2
slash@3.0.0: {}
@@ -19237,6 +19181,8 @@ snapshots:
source-map-js@1.2.0: {}
+ source-map-js@1.2.1: {}
+
source-map-resolve@0.5.3:
dependencies:
atob: 2.1.2
@@ -19314,7 +19260,7 @@ snapshots:
statuses@2.0.1: {}
- std-env@3.9.0: {}
+ std-env@3.7.0: {}
stream-browserify@2.0.2:
dependencies:
@@ -19434,12 +19380,6 @@ snapshots:
dependencies:
js-tokens: 9.0.0
- strip-literal@3.1.0:
- dependencies:
- js-tokens: 9.0.1
-
- strnum@2.1.1: {}
-
stubs@3.0.0:
optional: true
@@ -19723,11 +19663,6 @@ snapshots:
tinyexec@1.0.1: {}
- tinyglobby@0.2.15:
- dependencies:
- fdir: 6.5.0(picomatch@4.0.3)
- picomatch: 4.0.3
-
tldts-core@6.1.86: {}
tldts@6.1.86:
@@ -19788,7 +19723,7 @@ snapshots:
dependencies:
typescript: 4.9.5
- ts-jest@29.4.0(@babel/core@7.28.0)(@jest/transform@30.0.5)(@jest/types@30.0.5)(babel-jest@30.0.5(@babel/core@7.28.0))(jest-util@30.0.5)(jest@30.0.5(@types/node@24.2.0))(typescript@4.9.5):
+ ts-jest@29.4.0(@babel/core@7.24.7)(@jest/transform@30.0.5)(@jest/types@30.0.5)(babel-jest@30.0.5(@babel/core@7.24.7))(jest-util@30.0.5)(jest@30.0.5(@types/node@24.2.0))(typescript@4.9.5):
dependencies:
bs-logger: 0.2.6
ejs: 3.1.10
@@ -19802,10 +19737,10 @@ snapshots:
typescript: 4.9.5
yargs-parser: 21.1.1
optionalDependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.24.7
'@jest/transform': 30.0.5
'@jest/types': 30.0.5
- babel-jest: 30.0.5(@babel/core@7.28.0)
+ babel-jest: 30.0.5(@babel/core@7.24.7)
jest-util: 30.0.5
ts-loader@8.4.0(typescript@4.9.5)(webpack@5.101.0):
@@ -19905,8 +19840,6 @@ snapshots:
ufo@1.6.1: {}
- ultrahtml@1.6.0: {}
-
unbox-primitive@1.0.2:
dependencies:
call-bind: 1.0.2
@@ -19923,13 +19856,6 @@ snapshots:
magic-string: 0.30.10
unplugin: 1.11.0
- unctx@2.4.1:
- dependencies:
- acorn: 8.15.0
- estree-walker: 3.0.3
- magic-string: 0.30.19
- unplugin: 2.3.10
-
undici-types@7.10.0: {}
undici@6.19.7: {}
@@ -19956,10 +19882,10 @@ snapshots:
fast-glob: 3.3.1
local-pkg: 0.4.3
magic-string: 0.30.4
- mlly: 1.4.2
+ mlly: 1.7.1
pathe: 1.1.2
- pkg-types: 1.3.1
- scule: 1.0.0
+ pkg-types: 1.1.2
+ scule: 1.3.0
strip-literal: 1.3.0
unplugin: 1.5.0
transitivePeerDependencies:
@@ -19976,30 +19902,13 @@ snapshots:
magic-string: 0.30.10
mlly: 1.7.1
pathe: 1.1.2
- pkg-types: 1.3.1
+ pkg-types: 1.1.2
scule: 1.3.0
strip-literal: 2.1.0
unplugin: 1.11.0
transitivePeerDependencies:
- rollup
- unimport@5.4.0:
- dependencies:
- acorn: 8.15.0
- escape-string-regexp: 5.0.0
- estree-walker: 3.0.3
- local-pkg: 1.1.2
- magic-string: 0.30.19
- mlly: 1.8.0
- pathe: 2.0.3
- picomatch: 4.0.3
- pkg-types: 2.3.0
- scule: 1.3.0
- strip-literal: 3.1.0
- tinyglobby: 0.2.15
- unplugin: 2.3.10
- unplugin-utils: 0.3.0
-
union-value@1.0.1:
dependencies:
arr-union: 3.1.0
@@ -20026,11 +19935,6 @@ snapshots:
unpipe@1.0.0: {}
- unplugin-utils@0.3.0:
- dependencies:
- pathe: 2.0.3
- picomatch: 4.0.3
-
unplugin@1.11.0:
dependencies:
acorn: 8.15.0
@@ -20041,17 +19945,10 @@ snapshots:
unplugin@1.5.0:
dependencies:
acorn: 8.15.0
- chokidar: 3.5.3
+ chokidar: 3.6.0
webpack-sources: 3.3.3
webpack-virtual-modules: 0.5.0
- unplugin@2.3.10:
- dependencies:
- '@jridgewell/remapping': 2.3.5
- acorn: 8.15.0
- picomatch: 4.0.3
- webpack-virtual-modules: 0.6.2
-
unrs-resolver@1.11.1:
dependencies:
napi-postinstall: 0.3.2
@@ -20087,9 +19984,9 @@ snapshots:
'@babel/standalone': 7.23.1
'@babel/types': 7.28.2
defu: 6.1.4
- jiti: 1.20.0
+ jiti: 1.21.6
mri: 1.2.0
- scule: 1.0.0
+ scule: 1.3.0
transitivePeerDependencies:
- supports-color
@@ -20105,14 +20002,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- untyped@2.0.0:
- dependencies:
- citty: 0.1.6
- defu: 6.1.4
- jiti: 2.6.0
- knitwork: 1.2.0
- scule: 1.3.0
-
upath@1.2.0:
optional: true
@@ -20181,25 +20070,38 @@ snapshots:
vary@1.1.2: {}
- vite-plugin-eslint@1.8.1(eslint@8.57.1):
+ vite-plugin-eslint@1.8.1(eslint@8.57.1)(vite@4.5.3(@types/node@24.2.0)(sass@1.32.13)(terser@5.43.1)):
dependencies:
'@rollup/pluginutils': 4.2.1
'@types/eslint': 8.44.3
eslint: 8.57.1
rollup: 2.79.2
+ vite: 4.5.3(@types/node@24.2.0)(sass@1.32.13)(terser@5.43.1)
- vite-plugin-stylelint@5.3.1(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5)):
+ vite-plugin-stylelint@5.3.1(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@24.2.0)(sass@1.32.13)(terser@5.43.1)):
dependencies:
'@rollup/pluginutils': 5.1.0(rollup@3.29.5)
chokidar: 3.6.0
debug: 4.4.1
stylelint: 15.11.0(typescript@4.9.5)
+ vite: 4.5.3(@types/node@24.2.0)(sass@1.32.13)(terser@5.43.1)
optionalDependencies:
postcss: 8.4.39
rollup: 3.29.5
transitivePeerDependencies:
- supports-color
+ vite@4.5.3(@types/node@24.2.0)(sass@1.32.13)(terser@5.43.1):
+ dependencies:
+ esbuild: 0.18.20
+ postcss: 8.5.6
+ rollup: 3.29.5
+ optionalDependencies:
+ '@types/node': 24.2.0
+ fsevents: 2.3.3
+ sass: 1.32.13
+ terser: 5.43.1
+
vm-browserify@1.1.2: {}
vue-chartjs@5.3.2(chart.js@4.5.0)(vue@2.7.16):
@@ -20222,7 +20124,7 @@ snapshots:
espree: 9.6.1
esquery: 1.5.0
lodash: 4.17.21
- semver: 7.5.4
+ semver: 7.7.2
transitivePeerDependencies:
- supports-color
@@ -20245,9 +20147,9 @@ snapshots:
vue-hot-reload-api@2.3.4: {}
- vue-jest@3.0.7(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(vue-template-compiler@2.7.16)(vue@2.7.16):
+ vue-jest@3.0.7(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(vue-template-compiler@2.7.16)(vue@2.7.16):
dependencies:
- babel-core: 7.0.0-bridge.0(@babel/core@7.28.0)
+ babel-core: 7.0.0-bridge.0(@babel/core@7.24.7)
babel-plugin-transform-es2015-modules-commonjs: 6.26.2
chalk: 2.4.2
deasync: 0.1.29
@@ -20264,9 +20166,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
- vue-loader@15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@5.101.0))(ejs@3.1.10)(lodash@4.17.21)(prettier@3.6.2)(vue-template-compiler@2.7.16)(webpack@4.47.0):
+ vue-loader@15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@5.101.0))(ejs@3.1.10)(lodash@4.17.21)(prettier@3.6.2)(vue-template-compiler@2.7.16)(webpack@4.47.0):
dependencies:
- '@vue/component-compiler-utils': 3.3.0(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(lodash@4.17.21)
+ '@vue/component-compiler-utils': 3.3.0(babel-core@7.0.0-bridge.0(@babel/core@7.24.7))(ejs@3.1.10)(lodash@4.17.21)
css-loader: 5.2.7(webpack@5.101.0)
hash-sum: 1.0.2
loader-utils: 1.4.2
@@ -20440,7 +20342,7 @@ snapshots:
html-escaper: 2.0.2
opener: 1.5.2
picocolors: 1.0.0
- sirv: 2.0.4
+ sirv: 2.0.3
ws: 7.5.10
transitivePeerDependencies:
- bufferutil
@@ -20538,11 +20440,11 @@ snapshots:
dependencies:
ansi-escapes: 4.3.2
chalk: 4.1.2
- consola: 3.4.2
+ consola: 3.2.3
figures: 3.2.0
markdown-table: 2.0.0
pretty-time: 1.1.0
- std-env: 3.9.0
+ std-env: 3.7.0
webpack: 4.47.0
wrap-ansi: 7.0.0
@@ -20669,6 +20571,8 @@ snapshots:
xml-name-validator@5.0.0: {}
+ xmlbuilder@13.0.2: {}
+
xmlchars@2.2.0: {}
xtend@4.0.2: {}
From 96449d8627658d5f9a05bc66cb8cbc82c930f4c3 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 1 Oct 2025 20:08:25 +0000
Subject: [PATCH 020/215] fix(deps): bump core-js from 3.44.0 to 3.45.1 in /web
Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.44.0 to 3.45.1.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/commits/v3.45.1/packages/core-js)
---
updated-dependencies:
- dependency-name: core-js
dependency-version: 3.45.1
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
web/package.json | 2 +-
web/pnpm-lock.yaml | 12 ++++++------
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/web/package.json b/web/package.json
index 1cd31157..bb713ed9 100644
--- a/web/package.json
+++ b/web/package.json
@@ -28,7 +28,7 @@
"@nuxtjs/sitemap": "^2.4.0",
"chart.js": "^4.5.0",
"chartjs-adapter-moment": "^1.0.1",
- "core-js": "^3.44.0",
+ "core-js": "^3.45.1",
"date-fns": "^2.30.0",
"dotenv": "^17.2.1",
"firebase": "^10.14.1",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index 4bb67971..b500910a 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -27,8 +27,8 @@ importers:
specifier: ^1.0.1
version: 1.0.1(chart.js@4.5.0)(moment@2.30.1)
core-js:
- specifier: ^3.44.0
- version: 3.44.0
+ specifier: ^3.45.1
+ version: 3.45.1
date-fns:
specifier: ^2.30.0
version: 2.30.0
@@ -3753,8 +3753,8 @@ packages:
resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==}
deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
- core-js@3.44.0:
- resolution: {integrity: sha512-aFCtd4l6GvAXwVEh3XbbVqJGHDJt0OZRa+5ePGx3LLwi12WfexqQxcsohb2wgsa/92xtl19Hd66G/L+TaAxDMw==}
+ core-js@3.45.1:
+ resolution: {integrity: sha512-L4NPsJlCfZsPeXukyzHFlg/i7IIVwHSItR0wg0FLNqYClJ4MQYTYLbC7EkjKYRLZF2iof2MUgN0EGy7MdQFChg==}
core-util-is@1.0.3:
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
@@ -11644,7 +11644,7 @@ snapshots:
'@babel/preset-env': 7.24.7(@babel/core@7.24.7)
'@babel/runtime': 7.24.7
'@vue/babel-preset-jsx': 1.4.0(@babel/core@7.24.7)(vue@2.7.16)
- core-js: 3.44.0
+ core-js: 3.45.1
core-js-compat: 3.37.1
regenerator-runtime: 0.14.1
transitivePeerDependencies:
@@ -14088,7 +14088,7 @@ snapshots:
core-js@2.6.12: {}
- core-js@3.44.0: {}
+ core-js@3.45.1: {}
core-util-is@1.0.3: {}
From 02300caf7d46d1ce773888203c729901adad1f75 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 1 Oct 2025 20:09:21 +0000
Subject: [PATCH 021/215] fix(deps): bump github.com/carlmjohnson/requests in
/api
Bumps [github.com/carlmjohnson/requests](https://github.com/carlmjohnson/requests) from 0.24.3 to 0.25.1.
- [Release notes](https://github.com/carlmjohnson/requests/releases)
- [Commits](https://github.com/carlmjohnson/requests/compare/v0.24.3...v0.25.1)
---
updated-dependencies:
- dependency-name: github.com/carlmjohnson/requests
dependency-version: 0.25.1
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 2 +-
api/go.sum | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index 037501f2..82f0db4c 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -12,7 +12,7 @@ require (
github.com/NdoleStudio/go-otelroundtripper v0.0.12
github.com/NdoleStudio/lemonsqueezy-go v1.2.4
github.com/avast/retry-go v3.0.0+incompatible
- github.com/carlmjohnson/requests v0.24.3
+ github.com/carlmjohnson/requests v0.25.1
github.com/cloudevents/sdk-go/v2 v2.16.2
github.com/cockroachdb/cockroach-go/v2 v2.4.1
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
diff --git a/api/go.sum b/api/go.sum
index ae0795a0..13d75756 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -70,8 +70,8 @@ github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs=
github.com/bsm/ginkgo/v2 v2.12.0/go.mod h1:SwYbGRRDovPVboqFv0tPTcG1sN61LM1Z4ARdbAV9g4c=
github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA=
github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0=
-github.com/carlmjohnson/requests v0.24.3 h1:LYcM/jVIVPkioigMjEAnBACXl2vb42TVqiC8EYNoaXQ=
-github.com/carlmjohnson/requests v0.24.3/go.mod h1:duYA/jDnyZ6f3xbcF5PpZ9N8clgopubP2nK5i6MVMhU=
+github.com/carlmjohnson/requests v0.25.1 h1:17zNRLecxtAjhtdEIV+F+wrYfe+AGZUjWJtpndcOUYA=
+github.com/carlmjohnson/requests v0.25.1/go.mod h1:z3UEf8IE4sZxZ78spW6/tLdqBkfCu1Fn4RaYMnZ8SRM=
github.com/cenkalti/backoff/v5 v5.0.2 h1:rIfFVxEf1QsI7E1ZHfp/B4DF/6QBAUhmgkxc0H7Zss8=
github.com/cenkalti/backoff/v5 v5.0.2/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw=
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
From 7445a10eafcdd846b86a47762be87e5dbdafe970 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 1 Oct 2025 20:10:03 +0000
Subject: [PATCH 022/215] chore(deps-dev): bump axios from 0.30.0 to 0.30.2 in
/web
Bumps [axios](https://github.com/axios/axios) from 0.30.0 to 0.30.2.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.30.0...v0.30.2)
---
updated-dependencies:
- dependency-name: axios
dependency-version: 0.30.2
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
web/package.json | 2 +-
web/pnpm-lock.yaml | 31 ++++++++++++++++---------------
2 files changed, 17 insertions(+), 16 deletions(-)
diff --git a/web/package.json b/web/package.json
index 1cd31157..d98a23c9 100644
--- a/web/package.json
+++ b/web/package.json
@@ -65,7 +65,7 @@
"@nuxtjs/vuetify": "^1.12.3",
"@types/qrcode": "^1.5.5",
"@vue/test-utils": "^1.3.6",
- "axios": "^0.30.0",
+ "axios": "^0.30.2",
"babel-core": "7.0.0-bridge.0",
"babel-jest": "^30.0.5",
"eslint": "^8.57.1",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index 4bb67971..29723247 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -133,8 +133,8 @@ importers:
specifier: ^1.3.6
version: 1.3.6(vue-template-compiler@2.7.16)(vue@2.7.16)
axios:
- specifier: ^0.30.0
- version: 0.30.0
+ specifier: ^0.30.2
+ version: 0.30.2
babel-core:
specifier: 7.0.0-bridge.0
version: 7.0.0-bridge.0(@babel/core@7.28.0)
@@ -3024,8 +3024,8 @@ packages:
resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==}
engines: {node: '>= 0.4'}
- axios@0.30.0:
- resolution: {integrity: sha512-Z4F3LjCgfjZz8BMYalWdMgAQUnEtKDmpwNHjh/C8pQZWde32TF64cqnSeyL3xD/aTIASRU30RHTNzRiV/NpGMg==}
+ axios@0.30.2:
+ resolution: {integrity: sha512-0pE4RQ4UQi1jKY6p7u6i1Tkzqmu+d+/tHS7Q7rKunWLB9WyilBTpHHpXzPNMDj5hTbK0B0PTLSz07yqMBiF6xg==}
babel-code-frame@6.26.0:
resolution: {integrity: sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==}
@@ -4755,8 +4755,8 @@ packages:
flush-write-stream@1.1.1:
resolution: {integrity: sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==}
- follow-redirects@1.15.9:
- resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==}
+ follow-redirects@1.15.11:
+ resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==}
engines: {node: '>=4.0'}
peerDependencies:
debug: '*'
@@ -4789,8 +4789,8 @@ packages:
vue-template-compiler:
optional: true
- form-data@4.0.2:
- resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==}
+ form-data@4.0.4:
+ resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==}
engines: {node: '>= 6'}
fraction.js@4.3.7:
@@ -13299,10 +13299,10 @@ snapshots:
available-typed-arrays@1.0.5: {}
- axios@0.30.0:
+ axios@0.30.2:
dependencies:
- follow-redirects: 1.15.9
- form-data: 4.0.2
+ follow-redirects: 1.15.11
+ form-data: 4.0.4
proxy-from-env: 1.1.0
transitivePeerDependencies:
- debug
@@ -13734,7 +13734,7 @@ snapshots:
call-bind@1.0.2:
dependencies:
- function-bind: 1.1.1
+ function-bind: 1.1.2
get-intrinsic: 1.3.0
callsite@1.0.0: {}
@@ -15384,7 +15384,7 @@ snapshots:
inherits: 2.0.4
readable-stream: 2.3.8
- follow-redirects@1.15.9: {}
+ follow-redirects@1.15.11: {}
for-each@0.3.3:
dependencies:
@@ -15418,11 +15418,12 @@ snapshots:
eslint: 8.57.1
vue-template-compiler: 2.7.16
- form-data@4.0.2:
+ form-data@4.0.4:
dependencies:
asynckit: 0.4.0
combined-stream: 1.0.8
es-set-tostringtag: 2.1.0
+ hasown: 2.0.2
mime-types: 2.1.35
fraction.js@4.3.7: {}
@@ -15528,7 +15529,7 @@ snapshots:
get-intrinsic@1.2.1:
dependencies:
- function-bind: 1.1.1
+ function-bind: 1.1.2
has: 1.0.3
has-proto: 1.0.1
has-symbols: 1.0.3
From d9ec93470fc62923420034deb623a518678b3d5c Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 1 Oct 2025 20:10:23 +0000
Subject: [PATCH 023/215] chore(deps-dev): bump jest from 30.0.5 to 30.2.0 in
/web
Bumps [jest](https://github.com/jestjs/jest/tree/HEAD/packages/jest) from 30.0.5 to 30.2.0.
- [Release notes](https://github.com/jestjs/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jestjs/jest/commits/v30.2.0/packages/jest)
---
updated-dependencies:
- dependency-name: jest
dependency-version: 30.2.0
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
web/package.json | 2 +-
web/pnpm-lock.yaml | 1244 +++++++++++++++++++++++++++-----------------
2 files changed, 772 insertions(+), 474 deletions(-)
diff --git a/web/package.json b/web/package.json
index 1cd31157..f86ac156 100644
--- a/web/package.json
+++ b/web/package.json
@@ -73,7 +73,7 @@
"eslint-plugin-nuxt": "^4.0.0",
"eslint-plugin-vue": "^9.33.0",
"highlight.js": "^11.11.1",
- "jest": "^30.0.5",
+ "jest": "^30.2.0",
"lint-staged": "^16.1.4",
"node-fetch-native": "^1.6.4",
"postcss-html": "^1.7.0",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index 4bb67971..1538a303 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -16,7 +16,7 @@ importers:
version: 1.4.2
'@nuxtjs/firebase':
specifier: ^8.2.2
- version: 8.2.2(@firebase/app-types@0.9.2)(firebase@10.14.1)(nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16))
+ version: 8.2.2(@firebase/app-types@0.9.2)(firebase@10.14.1)(nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16))
'@nuxtjs/sitemap':
specifier: ^2.4.0
version: 2.4.0
@@ -52,7 +52,7 @@ importers:
version: 2.30.1
nuxt:
specifier: ^2.18.1
- version: 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
+ version: 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
nuxt-highlightjs:
specifier: ^1.0.3
version: 1.0.3
@@ -101,7 +101,7 @@ importers:
devDependencies:
'@babel/eslint-parser':
specifier: ^7.27.5
- version: 7.27.5(@babel/core@7.28.0)(eslint@8.57.1)
+ version: 7.27.5(@babel/core@7.28.4)(eslint@8.57.1)
'@commitlint/cli':
specifier: ^19.8.1
version: 19.8.1(@types/node@24.6.1)(typescript@4.9.5)
@@ -137,10 +137,10 @@ importers:
version: 0.30.0
babel-core:
specifier: 7.0.0-bridge.0
- version: 7.0.0-bridge.0(@babel/core@7.28.0)
+ version: 7.0.0-bridge.0(@babel/core@7.28.4)
babel-jest:
specifier: ^30.0.5
- version: 30.0.5(@babel/core@7.28.0)
+ version: 30.0.5(@babel/core@7.28.4)
eslint:
specifier: ^8.57.1
version: 8.57.1
@@ -157,8 +157,8 @@ importers:
specifier: ^11.11.1
version: 11.11.1
jest:
- specifier: ^30.0.5
- version: 30.0.5(@types/node@24.6.1)
+ specifier: ^30.2.0
+ version: 30.2.0(@types/node@24.6.1)
lint-staged:
specifier: ^16.1.4
version: 16.1.4
@@ -185,13 +185,13 @@ importers:
version: 34.0.0(stylelint@15.11.0(typescript@4.9.5))
ts-jest:
specifier: ^29.4.0
- version: 29.4.0(@babel/core@7.28.0)(@jest/transform@30.0.5)(@jest/types@30.0.5)(babel-jest@30.0.5(@babel/core@7.28.0))(jest-util@30.0.5)(jest@30.0.5(@types/node@24.6.1))(typescript@4.9.5)
+ version: 29.4.0(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.0.5(@babel/core@7.28.4))(jest-util@30.2.0)(jest@30.2.0(@types/node@24.6.1))(typescript@4.9.5)
vue-client-only:
specifier: ^2.1.0
version: 2.1.0
vue-jest:
specifier: ^3.0.7
- version: 3.0.7(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(vue-template-compiler@2.7.16)(vue@2.7.16)
+ version: 3.0.7(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(vue-template-compiler@2.7.16)(vue@2.7.16)
vue-meta:
specifier: ^2.4.0
version: 2.4.0
@@ -248,6 +248,10 @@ packages:
resolution: {integrity: sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==}
engines: {node: '>=6.9.0'}
+ '@babel/core@7.28.4':
+ resolution: {integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==}
+ engines: {node: '>=6.9.0'}
+
'@babel/eslint-parser@7.27.5':
resolution: {integrity: sha512-HLkYQfRICudzcOtjGwkPvGc5nF1b4ljLZh1IRDj50lRZ718NAKVgQpIAUX8bfg6u/yuSKY3L7E0YzIV+OxrB8Q==}
engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0}
@@ -263,6 +267,10 @@ packages:
resolution: {integrity: sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==}
engines: {node: '>=6.9.0'}
+ '@babel/generator@7.28.3':
+ resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==}
+ engines: {node: '>=6.9.0'}
+
'@babel/helper-annotate-as-pure@7.22.5':
resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==}
engines: {node: '>=6.9.0'}
@@ -364,6 +372,12 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0
+ '@babel/helper-module-transforms@7.28.3':
+ resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+
'@babel/helper-optimise-call-expression@7.22.5':
resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==}
engines: {node: '>=6.9.0'}
@@ -446,6 +460,10 @@ packages:
resolution: {integrity: sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==}
engines: {node: '>=6.9.0'}
+ '@babel/helpers@7.28.4':
+ resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==}
+ engines: {node: '>=6.9.0'}
+
'@babel/highlight@7.23.4':
resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==}
engines: {node: '>=6.9.0'}
@@ -464,6 +482,11 @@ packages:
engines: {node: '>=6.0.0'}
hasBin: true
+ '@babel/parser@7.28.4':
+ resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+
'@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.7':
resolution: {integrity: sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ==}
engines: {node: '>=6.9.0'}
@@ -1000,10 +1023,18 @@ packages:
resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==}
engines: {node: '>=6.9.0'}
+ '@babel/traverse@7.28.4':
+ resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==}
+ engines: {node: '>=6.9.0'}
+
'@babel/types@7.28.2':
resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==}
engines: {node: '>=6.9.0'}
+ '@babel/types@7.28.4':
+ resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==}
+ engines: {node: '>=6.9.0'}
+
'@bcoe/v8-coverage@0.2.3':
resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
@@ -1376,14 +1407,14 @@ packages:
resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==}
engines: {node: '>=10.0.0'}
- '@emnapi/core@1.4.5':
- resolution: {integrity: sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==}
+ '@emnapi/core@1.5.0':
+ resolution: {integrity: sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==}
- '@emnapi/runtime@1.4.5':
- resolution: {integrity: sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==}
+ '@emnapi/runtime@1.5.0':
+ resolution: {integrity: sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==}
- '@emnapi/wasi-threads@1.0.4':
- resolution: {integrity: sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==}
+ '@emnapi/wasi-threads@1.1.0':
+ resolution: {integrity: sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==}
'@esbuild/android-arm64@0.18.20':
resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==}
@@ -1832,12 +1863,12 @@ packages:
resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==}
engines: {node: '>=8'}
- '@jest/console@30.0.5':
- resolution: {integrity: sha512-xY6b0XiL0Nav3ReresUarwl2oIz1gTnxGbGpho9/rbUWsLH0f1OD/VT84xs8c7VmH7MChnLb0pag6PhZhAdDiA==}
+ '@jest/console@30.2.0':
+ resolution: {integrity: sha512-+O1ifRjkvYIkBqASKWgLxrpEhQAAE7hY77ALLUufSk5717KfOShg6IbqLmdsLMPdUiFvA2kTs0R7YZy+l0IzZQ==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- '@jest/core@30.0.5':
- resolution: {integrity: sha512-fKD0OulvRsXF1hmaFgHhVJzczWzA1RXMMo9LTPuFXo9q/alDbME3JIyWYqovWsUBWSoBcsHaGPSLF9rz4l9Qeg==}
+ '@jest/core@30.2.0':
+ resolution: {integrity: sha512-03W6IhuhjqTlpzh/ojut/pDB2LPRygyWX8ExpgHtQA8H/3K7+1vKmcINx5UzeOX1se6YEsBsOHQ1CRzf3fOwTQ==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
peerDependencies:
node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
@@ -1863,32 +1894,40 @@ packages:
resolution: {integrity: sha512-aRX7WoaWx1oaOkDQvCWImVQ8XNtdv5sEWgk4gxR6NXb7WBUnL5sRak4WRzIQRZ1VTWPvV4VI4mgGjNL9TeKMYA==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- '@jest/expect-utils@30.0.5':
- resolution: {integrity: sha512-F3lmTT7CXWYywoVUGTCmom0vXq3HTTkaZyTAzIy+bXSBizB7o5qzlC9VCtq0arOa8GqmNsbg/cE9C6HLn7Szew==}
+ '@jest/environment@30.2.0':
+ resolution: {integrity: sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- '@jest/expect@30.0.5':
- resolution: {integrity: sha512-6udac8KKrtTtC+AXZ2iUN/R7dp7Ydry+Fo6FPFnDG54wjVMnb6vW/XNlf7Xj8UDjAE3aAVAsR4KFyKk3TCXmTA==}
+ '@jest/expect-utils@30.2.0':
+ resolution: {integrity: sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
+ '@jest/expect@30.2.0':
+ resolution: {integrity: sha512-V9yxQK5erfzx99Sf+7LbhBwNWEZ9eZay8qQ9+JSC0TrMR1pMDHLMY+BnVPacWU6Jamrh252/IKo4F1Xn/zfiqA==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
'@jest/fake-timers@30.0.5':
resolution: {integrity: sha512-ZO5DHfNV+kgEAeP3gK3XlpJLL4U3Sz6ebl/n68Uwt64qFFs5bv4bfEEjyRGK5uM0C90ewooNgFuKMdkbEoMEXw==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- '@jest/get-type@30.0.1':
- resolution: {integrity: sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw==}
+ '@jest/fake-timers@30.2.0':
+ resolution: {integrity: sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- '@jest/globals@30.0.5':
- resolution: {integrity: sha512-7oEJT19WW4oe6HR7oLRvHxwlJk2gev0U9px3ufs8sX9PoD1Eza68KF0/tlN7X0dq/WVsBScXQGgCldA1V9Y/jA==}
+ '@jest/get-type@30.1.0':
+ resolution: {integrity: sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
+ '@jest/globals@30.2.0':
+ resolution: {integrity: sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
'@jest/pattern@30.0.1':
resolution: {integrity: sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- '@jest/reporters@30.0.5':
- resolution: {integrity: sha512-mafft7VBX4jzED1FwGC1o/9QUM2xebzavImZMeqnsklgcyxBto8mV4HzNSzUrryJ+8R9MFOM3HgYuDradWR+4g==}
+ '@jest/reporters@30.2.0':
+ resolution: {integrity: sha512-DRyW6baWPqKMa9CzeiBjHwjd8XeAyco2Vt8XbcLFjiwCOEKOvy82GJ8QQnJE9ofsxCMPjH4MfH8fCWIHHDKpAQ==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
peerDependencies:
node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
@@ -1904,26 +1943,30 @@ packages:
resolution: {integrity: sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- '@jest/snapshot-utils@30.0.5':
- resolution: {integrity: sha512-XcCQ5qWHLvi29UUrowgDFvV4t7ETxX91CbDczMnoqXPOIcZOxyNdSjm6kV5XMc8+HkxfRegU/MUmnTbJRzGrUQ==}
+ '@jest/snapshot-utils@30.2.0':
+ resolution: {integrity: sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
'@jest/source-map@30.0.1':
resolution: {integrity: sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- '@jest/test-result@30.0.5':
- resolution: {integrity: sha512-wPyztnK0gbDMQAJZ43tdMro+qblDHH1Ru/ylzUo21TBKqt88ZqnKKK2m30LKmLLoKtR2lxdpCC/P3g1vfKcawQ==}
+ '@jest/test-result@30.2.0':
+ resolution: {integrity: sha512-RF+Z+0CCHkARz5HT9mcQCBulb1wgCP3FBvl9VFokMX27acKphwyQsNuWH3c+ojd1LeWBLoTYoxF0zm6S/66mjg==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- '@jest/test-sequencer@30.0.5':
- resolution: {integrity: sha512-Aea/G1egWoIIozmDD7PBXUOxkekXl7ueGzrsGGi1SbeKgQqCYCIf+wfbflEbf2LiPxL8j2JZGLyrzZagjvW4YQ==}
+ '@jest/test-sequencer@30.2.0':
+ resolution: {integrity: sha512-wXKgU/lk8fKXMu/l5Hog1R61bL4q5GCdT6OJvdAFz1P+QrpoFuLU68eoKuVc4RbrTtNnTL5FByhWdLgOPSph+Q==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
'@jest/transform@30.0.5':
resolution: {integrity: sha512-Vk8amLQCmuZyy6GbBht1Jfo9RSdBtg7Lks+B0PecnjI8J+PCLQPGh7uI8Q/2wwpW2gLdiAfiHNsmekKlywULqg==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ '@jest/transform@30.2.0':
+ resolution: {integrity: sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
'@jest/types@29.6.3':
resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -1932,6 +1975,10 @@ packages:
resolution: {integrity: sha512-aREYa3aku9SSnea4aX6bhKn4bgv3AXkgijoQgbYV3yvbiGt6z+MQ85+6mIhx9DsKW2BuB/cLR/A+tcMThx+KLQ==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ '@jest/types@30.2.0':
+ resolution: {integrity: sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
'@jridgewell/gen-mapping@0.3.12':
resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==}
@@ -1946,6 +1993,9 @@ packages:
resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==}
engines: {node: '>=6.0.0'}
+ '@jridgewell/remapping@2.3.5':
+ resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==}
+
'@jridgewell/resolve-uri@3.1.2':
resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==}
engines: {node: '>=6.0.0'}
@@ -2235,8 +2285,8 @@ packages:
'@sinclair/typebox@0.27.8':
resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==}
- '@sinclair/typebox@0.34.38':
- resolution: {integrity: sha512-HpkxMmc2XmZKhvaKIZZThlHmx1L0I/V1hWK1NubtlFnr6ZqdiOpV72TKudZUNQjZNsyDBay72qFEhEvb+bcwcA==}
+ '@sinclair/typebox@0.34.41':
+ resolution: {integrity: sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==}
'@sindresorhus/merge-streams@2.3.0':
resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==}
@@ -2256,8 +2306,8 @@ packages:
resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
engines: {node: '>=10.13.0'}
- '@tybys/wasm-util@0.10.0':
- resolution: {integrity: sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==}
+ '@tybys/wasm-util@0.10.1':
+ resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==}
'@types/babel__core@7.20.5':
resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==}
@@ -2853,8 +2903,8 @@ packages:
resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
engines: {node: '>=8'}
- ansi-escapes@7.0.0:
- resolution: {integrity: sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==}
+ ansi-escapes@7.1.1:
+ resolution: {integrity: sha512-Zhl0ErHcSRUaVfGUeUdDuLgpkEo8KIFjB4Y9uAc46ScOpdDiU1Dbyplh7qWJeJ/ZHpbyMSM26+X3BySgnIz40Q==}
engines: {node: '>=18'}
ansi-html-community@0.0.8:
@@ -2874,6 +2924,10 @@ packages:
resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==}
engines: {node: '>=12'}
+ ansi-regex@6.2.2:
+ resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==}
+ engines: {node: '>=12'}
+
ansi-styles@2.2.1:
resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==}
engines: {node: '>=0.10.0'}
@@ -2894,6 +2948,10 @@ packages:
resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
engines: {node: '>=12'}
+ ansi-styles@6.2.3:
+ resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==}
+ engines: {node: '>=12'}
+
anymatch@2.0.0:
resolution: {integrity: sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==}
@@ -3041,6 +3099,12 @@ packages:
peerDependencies:
'@babel/core': ^7.11.0
+ babel-jest@30.2.0:
+ resolution: {integrity: sha512-0YiBEOxWqKkSQWL9nNGGEgndoeL0ZpWrbLMNL5u/Kaxrli3Eaxlt3ZtIDktEvXt4L/R9r3ODr2zKwGM/2BjxVw==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ peerDependencies:
+ '@babel/core': ^7.11.0 || ^8.0.0-0
+
babel-loader@8.3.0:
resolution: {integrity: sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==}
engines: {node: '>= 8.9'}
@@ -3055,10 +3119,18 @@ packages:
resolution: {integrity: sha512-C5OzENSx/A+gt7t4VH1I2XsflxyPUmXRFPKBxt33xncdOmq7oROVM3bZv9Ysjjkv8OJYDMa+tKuKMvqU/H3xdw==}
engines: {node: '>=12'}
+ babel-plugin-istanbul@7.0.1:
+ resolution: {integrity: sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==}
+ engines: {node: '>=12'}
+
babel-plugin-jest-hoist@30.0.1:
resolution: {integrity: sha512-zTPME3pI50NsFW8ZBaVIOeAxzEY7XHlmWeXXu9srI+9kNfzCUTy8MFan46xOGZY8NZThMqq+e3qZUKsvXbasnQ==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ babel-plugin-jest-hoist@30.2.0:
+ resolution: {integrity: sha512-ftzhzSGMUnOzcCXd6WHdBGMyuwy15Wnn0iyyWGKgBDLxf9/s5ABuraCSpBX2uG0jUg4rqJnxsLc5+oYBqoxVaA==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
babel-plugin-polyfill-corejs2@0.4.11:
resolution: {integrity: sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==}
peerDependencies:
@@ -3091,6 +3163,12 @@ packages:
peerDependencies:
'@babel/core': ^7.11.0
+ babel-preset-jest@30.2.0:
+ resolution: {integrity: sha512-US4Z3NOieAQumwFnYdUWKvUKh8+YSnS/gB3t6YBiz0bskpu7Pine8pPCheNxlPEW4wnUkma2a94YuW2q3guvCQ==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ peerDependencies:
+ '@babel/core': ^7.11.0 || ^8.0.0-beta.1
+
babel-runtime@6.26.0:
resolution: {integrity: sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==}
@@ -4020,6 +4098,15 @@ packages:
supports-color:
optional: true
+ debug@4.4.3:
+ resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+
decache@4.6.2:
resolution: {integrity: sha512-2LPqkLeu8XWHU8qNCS3kcF6sCcb5zIzvWaAHYSvPfwhdd7mHuah29NssMzrTYyHN4F5oFy2ko9OBYxegtU0FEw==}
@@ -4042,8 +4129,8 @@ packages:
resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==}
engines: {node: '>=0.10'}
- dedent@1.6.0:
- resolution: {integrity: sha512-F1Z+5UCFpmQUzJa11agbyPVMbpgT/qA3/SKyJ1jyBgm7dUcUEa8v9JwDkerSQXfakBwFljIxhOJqGkjUwZ9FSA==}
+ dedent@1.7.0:
+ resolution: {integrity: sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==}
peerDependencies:
babel-plugin-macros: ^3.1.0
peerDependenciesMeta:
@@ -4587,8 +4674,8 @@ packages:
resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==}
engines: {node: '>=0.10.0'}
- expect@30.0.5:
- resolution: {integrity: sha512-P0te2pt+hHI5qLJkIR+iMvS+lYUZml8rKKsohVHAGY+uClp9XVbdyYNJOIjSRpHVp8s8YqxJCiHUkSYZGr8rtQ==}
+ expect@30.2.0:
+ resolution: {integrity: sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
extend-shallow@2.0.1:
@@ -5565,8 +5652,8 @@ packages:
resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==}
engines: {node: '>=10'}
- istanbul-reports@3.1.7:
- resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==}
+ istanbul-reports@3.2.0:
+ resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==}
engines: {node: '>=8'}
jackspeak@3.4.3:
@@ -5577,16 +5664,16 @@ packages:
engines: {node: '>=10'}
hasBin: true
- jest-changed-files@30.0.5:
- resolution: {integrity: sha512-bGl2Ntdx0eAwXuGpdLdVYVr5YQHnSZlQ0y9HVDu565lCUAe9sj6JOtBbMmBBikGIegne9piDDIOeiLVoqTkz4A==}
+ jest-changed-files@30.2.0:
+ resolution: {integrity: sha512-L8lR1ChrRnSdfeOvTrwZMlnWV8G/LLjQ0nG9MBclwWZidA2N5FviRki0Bvh20WRMOX31/JYvzdqTJrk5oBdydQ==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest-circus@30.0.5:
- resolution: {integrity: sha512-h/sjXEs4GS+NFFfqBDYT7y5Msfxh04EwWLhQi0F8kuWpe+J/7tICSlswU8qvBqumR3kFgHbfu7vU6qruWWBPug==}
+ jest-circus@30.2.0:
+ resolution: {integrity: sha512-Fh0096NC3ZkFx05EP2OXCxJAREVxj1BcW/i6EWqqymcgYKWjyyDpral3fMxVcHXg6oZM7iULer9wGRFvfpl+Tg==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest-cli@30.0.5:
- resolution: {integrity: sha512-Sa45PGMkBZzF94HMrlX4kUyPOwUpdZasaliKN3mifvDmkhLYqLLg8HQTzn6gq7vJGahFYMQjXgyJWfYImKZzOw==}
+ jest-cli@30.2.0:
+ resolution: {integrity: sha512-Os9ukIvADX/A9sLt6Zse3+nmHtHaE6hqOsjQtNiugFTbKRHYIYtZXNGNK9NChseXy7djFPjndX1tL0sCTlfpAA==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
hasBin: true
peerDependencies:
@@ -5595,8 +5682,8 @@ packages:
node-notifier:
optional: true
- jest-config@30.0.5:
- resolution: {integrity: sha512-aIVh+JNOOpzUgzUnPn5FLtyVnqc3TQHVMupYtyeURSb//iLColiMIR8TxCIDKyx9ZgjKnXGucuW68hCxgbrwmA==}
+ jest-config@30.2.0:
+ resolution: {integrity: sha512-g4WkyzFQVWHtu6uqGmQR4CQxz/CH3yDSlhzXMWzNjDx843gYjReZnMRanjRCq5XZFuQrGDxgUaiYWE8BRfVckA==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
peerDependencies:
'@types/node': '*'
@@ -5610,16 +5697,16 @@ packages:
ts-node:
optional: true
- jest-diff@30.0.5:
- resolution: {integrity: sha512-1UIqE9PoEKaHcIKvq2vbibrCog4Y8G0zmOxgQUVEiTqwR5hJVMCoDsN1vFvI5JvwD37hjueZ1C4l2FyGnfpE0A==}
+ jest-diff@30.2.0:
+ resolution: {integrity: sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest-docblock@30.0.1:
- resolution: {integrity: sha512-/vF78qn3DYphAaIc3jy4gA7XSAz167n9Bm/wn/1XhTLW7tTBIzXtCJpb/vcmc73NIIeeohCbdL94JasyXUZsGA==}
+ jest-docblock@30.2.0:
+ resolution: {integrity: sha512-tR/FFgZKS1CXluOQzZvNH3+0z9jXr3ldGSD8bhyuxvlVUwbeLOGynkunvlTMxchC5urrKndYiwCFC0DLVjpOCA==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest-each@30.0.5:
- resolution: {integrity: sha512-dKjRsx1uZ96TVyejD3/aAWcNKy6ajMaN531CwWIsrazIqIoXI9TnnpPlkrEYku/8rkS3dh2rbH+kMOyiEIv0xQ==}
+ jest-each@30.2.0:
+ resolution: {integrity: sha512-lpWlJlM7bCUf1mfmuqTA8+j2lNURW9eNafOy99knBM01i5CQeY5UH1vZjgT9071nDJac1M4XsbyI44oNOdhlDQ==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
jest-environment-jsdom@30.0.5:
@@ -5631,30 +5718,42 @@ packages:
canvas:
optional: true
- jest-environment-node@30.0.5:
- resolution: {integrity: sha512-ppYizXdLMSvciGsRsMEnv/5EFpvOdXBaXRBzFUDPWrsfmog4kYrOGWXarLllz6AXan6ZAA/kYokgDWuos1IKDA==}
+ jest-environment-node@30.2.0:
+ resolution: {integrity: sha512-ElU8v92QJ9UrYsKrxDIKCxu6PfNj4Hdcktcn0JX12zqNdqWHB0N+hwOnnBBXvjLd2vApZtuLUGs1QSY+MsXoNA==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
jest-haste-map@30.0.5:
resolution: {integrity: sha512-dkmlWNlsTSR0nH3nRfW5BKbqHefLZv0/6LCccG0xFCTWcJu8TuEwG+5Cm75iBfjVoockmO6J35o5gxtFSn5xeg==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest-leak-detector@30.0.5:
- resolution: {integrity: sha512-3Uxr5uP8jmHMcsOtYMRB/zf1gXN3yUIc+iPorhNETG54gErFIiUhLvyY/OggYpSMOEYqsmRxmuU4ZOoX5jpRFg==}
+ jest-haste-map@30.2.0:
+ resolution: {integrity: sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
+ jest-leak-detector@30.2.0:
+ resolution: {integrity: sha512-M6jKAjyzjHG0SrQgwhgZGy9hFazcudwCNovY/9HPIicmNSBuockPSedAP9vlPK6ONFJ1zfyH/M2/YYJxOz5cdQ==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest-matcher-utils@30.0.5:
- resolution: {integrity: sha512-uQgGWt7GOrRLP1P7IwNWwK1WAQbq+m//ZY0yXygyfWp0rJlksMSLQAA4wYQC3b6wl3zfnchyTx+k3HZ5aPtCbQ==}
+ jest-matcher-utils@30.2.0:
+ resolution: {integrity: sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
jest-message-util@30.0.5:
resolution: {integrity: sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ jest-message-util@30.2.0:
+ resolution: {integrity: sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
jest-mock@30.0.5:
resolution: {integrity: sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ jest-mock@30.2.0:
+ resolution: {integrity: sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
jest-pnp-resolver@1.2.3:
resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==}
engines: {node: '>=6'}
@@ -5668,24 +5767,24 @@ packages:
resolution: {integrity: sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest-resolve-dependencies@30.0.5:
- resolution: {integrity: sha512-/xMvBR4MpwkrHW4ikZIWRttBBRZgWK4d6xt3xW1iRDSKt4tXzYkMkyPfBnSCgv96cpkrctfXs6gexeqMYqdEpw==}
+ jest-resolve-dependencies@30.2.0:
+ resolution: {integrity: sha512-xTOIGug/0RmIe3mmCqCT95yO0vj6JURrn1TKWlNbhiAefJRWINNPgwVkrVgt/YaerPzY3iItufd80v3lOrFJ2w==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest-resolve@30.0.5:
- resolution: {integrity: sha512-d+DjBQ1tIhdz91B79mywH5yYu76bZuE96sSbxj8MkjWVx5WNdt1deEFRONVL4UkKLSrAbMkdhb24XN691yDRHg==}
+ jest-resolve@30.2.0:
+ resolution: {integrity: sha512-TCrHSxPlx3tBY3hWNtRQKbtgLhsXa1WmbJEqBlTBrGafd5fiQFByy2GNCEoGR+Tns8d15GaL9cxEzKOO3GEb2A==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest-runner@30.0.5:
- resolution: {integrity: sha512-JcCOucZmgp+YuGgLAXHNy7ualBx4wYSgJVWrYMRBnb79j9PD0Jxh0EHvR5Cx/r0Ce+ZBC4hCdz2AzFFLl9hCiw==}
+ jest-runner@30.2.0:
+ resolution: {integrity: sha512-PqvZ2B2XEyPEbclp+gV6KO/F1FIFSbIwewRgmROCMBo/aZ6J1w8Qypoj2pEOcg3G2HzLlaP6VUtvwCI8dM3oqQ==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest-runtime@30.0.5:
- resolution: {integrity: sha512-7oySNDkqpe4xpX5PPiJTe5vEa+Ak/NnNz2bGYZrA1ftG3RL3EFlHaUkA1Cjx+R8IhK0Vg43RML5mJedGTPNz3A==}
+ jest-runtime@30.2.0:
+ resolution: {integrity: sha512-p1+GVX/PJqTucvsmERPMgCPvQJpFt4hFbM+VN3n8TMo47decMUcJbt+rgzwrEme0MQUA/R+1de2axftTHkKckg==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest-snapshot@30.0.5:
- resolution: {integrity: sha512-T00dWU/Ek3LqTp4+DcW6PraVxjk28WY5Ua/s+3zUKSERZSNyxTqhDXCWKG5p2HAJ+crVQ3WJ2P9YVHpj1tkW+g==}
+ jest-snapshot@30.2.0:
+ resolution: {integrity: sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
jest-util@29.7.0:
@@ -5696,12 +5795,16 @@ packages:
resolution: {integrity: sha512-pvyPWssDZR0FlfMxCBoc0tvM8iUEskaRFALUtGQYzVEAqisAztmy+R8LnU14KT4XA0H/a5HMVTXat1jLne010g==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest-validate@30.0.5:
- resolution: {integrity: sha512-ouTm6VFHaS2boyl+k4u+Qip4TSH7Uld5tyD8psQ8abGgt2uYYB8VwVfAHWHjHc0NWmGGbwO5h0sCPOGHHevefw==}
+ jest-util@30.2.0:
+ resolution: {integrity: sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
+ jest-validate@30.2.0:
+ resolution: {integrity: sha512-FBGWi7dP2hpdi8nBoWxSsLvBFewKAg0+uSQwBaof4Y4DPgBabXgpSYC5/lR7VmnIlSpASmCi/ntRWPbv7089Pw==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest-watcher@30.0.5:
- resolution: {integrity: sha512-z9slj/0vOwBDBjN3L4z4ZYaA+pG56d6p3kTUhFRYGvXbXMWhXmb/FIxREZCD06DYUwDKKnj2T80+Pb71CQ0KEg==}
+ jest-watcher@30.2.0:
+ resolution: {integrity: sha512-PYxa28dxJ9g777pGm/7PrbnMeA0Jr7osHP9bS7eJy9DuAjMgdGtxgf0uKMyoIsTWAkIbUW5hSDdJ3urmgXBqxg==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
jest-worker@26.6.2:
@@ -5720,8 +5823,12 @@ packages:
resolution: {integrity: sha512-ojRXsWzEP16NdUuBw/4H/zkZdHOa7MMYCk4E430l+8fELeLg/mqmMlRhjL7UNZvQrDmnovWZV4DxX03fZF48fQ==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest@30.0.5:
- resolution: {integrity: sha512-y2mfcJywuTUkvLm2Lp1/pFX8kTgMO5yyQGq/Sk/n2mN7XWYp4JsCZ/QXW34M8YScgk8bPZlREH04f6blPnoHnQ==}
+ jest-worker@30.2.0:
+ resolution: {integrity: sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
+ jest@30.2.0:
+ resolution: {integrity: sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
hasBin: true
peerDependencies:
@@ -6384,8 +6491,8 @@ packages:
resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==}
engines: {node: '>=0.10.0'}
- napi-postinstall@0.3.2:
- resolution: {integrity: sha512-tWVJxJHmBWLy69PvO96TZMZDrzmw5KeiZBz3RHmiM2XZ9grBJ2WgMAFVVg25nqp3ZjTFUs2Ftw1JhscL3Teliw==}
+ napi-postinstall@0.3.3:
+ resolution: {integrity: sha512-uTp172LLXSxuSYHv/kou+f6KW3SMppU9ivthaVTXian9sOt3XM/zHYHpRZiLgQoxeWfYUnslNWQHF1+G71xcow==}
engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
hasBin: true
@@ -7417,6 +7524,10 @@ packages:
resolution: {integrity: sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+ pretty-format@30.2.0:
+ resolution: {integrity: sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==}
+ engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
+
pretty-time@1.1.0:
resolution: {integrity: sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==}
engines: {node: '>=4'}
@@ -8138,6 +8249,10 @@ packages:
resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
engines: {node: '>=12'}
+ strip-ansi@7.1.2:
+ resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==}
+ engines: {node: '>=12'}
+
strip-bom@3.0.0:
resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
engines: {node: '>=4'}
@@ -9217,7 +9332,7 @@ snapshots:
'@ampproject/remapping@2.3.0':
dependencies:
'@jridgewell/gen-mapping': 0.3.12
- '@jridgewell/trace-mapping': 0.3.31
+ '@jridgewell/trace-mapping': 0.3.29
'@asamuzakjp/css-color@3.2.0':
dependencies:
@@ -9292,9 +9407,29 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/eslint-parser@7.27.5(@babel/core@7.28.0)(eslint@8.57.1)':
+ '@babel/core@7.28.4':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/code-frame': 7.27.1
+ '@babel/generator': 7.28.3
+ '@babel/helper-compilation-targets': 7.27.2
+ '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4)
+ '@babel/helpers': 7.28.4
+ '@babel/parser': 7.28.4
+ '@babel/template': 7.27.2
+ '@babel/traverse': 7.28.4
+ '@babel/types': 7.28.4
+ '@jridgewell/remapping': 2.3.5
+ convert-source-map: 2.0.0
+ debug: 4.4.3
+ gensync: 1.0.0-beta.2
+ json5: 2.2.3
+ semver: 6.3.1
+ transitivePeerDependencies:
+ - supports-color
+
+ '@babel/eslint-parser@7.27.5(@babel/core@7.28.4)(eslint@8.57.1)':
+ dependencies:
+ '@babel/core': 7.28.4
'@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1
eslint: 8.57.1
eslint-visitor-keys: 2.1.0
@@ -9302,7 +9437,7 @@ snapshots:
'@babel/generator@7.24.7':
dependencies:
- '@babel/types': 7.28.2
+ '@babel/types': 7.28.4
'@jridgewell/gen-mapping': 0.3.5
'@jridgewell/trace-mapping': 0.3.31
jsesc: 2.5.2
@@ -9312,21 +9447,29 @@ snapshots:
'@babel/parser': 7.28.0
'@babel/types': 7.28.2
'@jridgewell/gen-mapping': 0.3.12
+ '@jridgewell/trace-mapping': 0.3.29
+ jsesc: 3.1.0
+
+ '@babel/generator@7.28.3':
+ dependencies:
+ '@babel/parser': 7.28.4
+ '@babel/types': 7.28.4
+ '@jridgewell/gen-mapping': 0.3.13
'@jridgewell/trace-mapping': 0.3.31
jsesc: 3.1.0
'@babel/helper-annotate-as-pure@7.22.5':
dependencies:
- '@babel/types': 7.28.2
+ '@babel/types': 7.28.4
'@babel/helper-annotate-as-pure@7.24.7':
dependencies:
- '@babel/types': 7.28.2
+ '@babel/types': 7.28.4
'@babel/helper-builder-binary-assignment-operator-visitor@7.24.7':
dependencies:
- '@babel/traverse': 7.28.0
- '@babel/types': 7.28.2
+ '@babel/traverse': 7.28.4
+ '@babel/types': 7.28.4
transitivePeerDependencies:
- supports-color
@@ -9393,7 +9536,7 @@ snapshots:
'@babel/core': 7.24.7
'@babel/helper-compilation-targets': 7.27.2
'@babel/helper-plugin-utils': 7.27.1
- debug: 4.4.1
+ debug: 4.4.3
lodash.debounce: 4.0.8
resolve: 1.22.6
transitivePeerDependencies:
@@ -9403,32 +9546,32 @@ snapshots:
'@babel/helper-environment-visitor@7.24.7':
dependencies:
- '@babel/types': 7.28.2
+ '@babel/types': 7.28.4
'@babel/helper-function-name@7.23.0':
dependencies:
'@babel/template': 7.27.2
- '@babel/types': 7.28.2
+ '@babel/types': 7.28.4
'@babel/helper-function-name@7.24.7':
dependencies:
'@babel/template': 7.27.2
- '@babel/types': 7.28.2
+ '@babel/types': 7.28.4
'@babel/helper-globals@7.28.0': {}
'@babel/helper-hoist-variables@7.24.7':
dependencies:
- '@babel/types': 7.28.2
+ '@babel/types': 7.28.4
'@babel/helper-member-expression-to-functions@7.24.5':
dependencies:
- '@babel/types': 7.28.2
+ '@babel/types': 7.28.4
'@babel/helper-member-expression-to-functions@7.24.7':
dependencies:
- '@babel/traverse': 7.28.0
- '@babel/types': 7.28.2
+ '@babel/traverse': 7.28.4
+ '@babel/types': 7.28.4
transitivePeerDependencies:
- supports-color
@@ -9442,7 +9585,7 @@ snapshots:
'@babel/helper-module-imports@7.27.1':
dependencies:
'@babel/traverse': 7.28.0
- '@babel/types': 7.28.2
+ '@babel/types': 7.28.4
transitivePeerDependencies:
- supports-color
@@ -9475,13 +9618,22 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.4)':
+ dependencies:
+ '@babel/core': 7.28.4
+ '@babel/helper-module-imports': 7.27.1
+ '@babel/helper-validator-identifier': 7.27.1
+ '@babel/traverse': 7.28.4
+ transitivePeerDependencies:
+ - supports-color
+
'@babel/helper-optimise-call-expression@7.22.5':
dependencies:
- '@babel/types': 7.28.2
+ '@babel/types': 7.28.4
'@babel/helper-optimise-call-expression@7.24.7':
dependencies:
- '@babel/types': 7.28.2
+ '@babel/types': 7.28.4
'@babel/helper-plugin-utils@7.27.1': {}
@@ -9512,29 +9664,29 @@ snapshots:
'@babel/helper-simple-access@7.24.7':
dependencies:
- '@babel/traverse': 7.28.0
- '@babel/types': 7.28.2
+ '@babel/traverse': 7.28.4
+ '@babel/types': 7.28.4
transitivePeerDependencies:
- supports-color
'@babel/helper-skip-transparent-expression-wrappers@7.22.5':
dependencies:
- '@babel/types': 7.28.2
+ '@babel/types': 7.28.4
'@babel/helper-skip-transparent-expression-wrappers@7.24.7':
dependencies:
- '@babel/traverse': 7.28.0
- '@babel/types': 7.28.2
+ '@babel/traverse': 7.28.4
+ '@babel/types': 7.28.4
transitivePeerDependencies:
- supports-color
'@babel/helper-split-export-declaration@7.24.5':
dependencies:
- '@babel/types': 7.28.2
+ '@babel/types': 7.28.4
'@babel/helper-split-export-declaration@7.24.7':
dependencies:
- '@babel/types': 7.28.2
+ '@babel/types': 7.28.4
'@babel/helper-string-parser@7.27.1': {}
@@ -9550,21 +9702,26 @@ snapshots:
dependencies:
'@babel/helper-function-name': 7.24.7
'@babel/template': 7.27.2
- '@babel/traverse': 7.28.0
- '@babel/types': 7.28.2
+ '@babel/traverse': 7.28.4
+ '@babel/types': 7.28.4
transitivePeerDependencies:
- supports-color
'@babel/helpers@7.24.7':
dependencies:
'@babel/template': 7.27.2
- '@babel/types': 7.28.2
+ '@babel/types': 7.28.4
'@babel/helpers@7.28.2':
dependencies:
'@babel/template': 7.27.2
'@babel/types': 7.28.2
+ '@babel/helpers@7.28.4':
+ dependencies:
+ '@babel/template': 7.27.2
+ '@babel/types': 7.28.4
+
'@babel/highlight@7.23.4':
dependencies:
'@babel/helper-validator-identifier': 7.27.1
@@ -9586,6 +9743,10 @@ snapshots:
dependencies:
'@babel/types': 7.28.2
+ '@babel/parser@7.28.4':
+ dependencies:
+ '@babel/types': 7.28.4
+
'@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.24.7(@babel/core@7.24.7)':
dependencies:
'@babel/core': 7.24.7
@@ -9663,14 +9824,14 @@ snapshots:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
'@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.24.7)':
@@ -9678,9 +9839,9 @@ snapshots:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
'@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.24.7)':
@@ -9688,9 +9849,9 @@ snapshots:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
'@babel/plugin-syntax-decorators@7.24.7(@babel/core@7.24.7)':
@@ -9718,9 +9879,9 @@ snapshots:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-import-attributes@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
'@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.24.7)':
@@ -9728,9 +9889,9 @@ snapshots:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
'@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.24.7)':
@@ -9738,9 +9899,9 @@ snapshots:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
'@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.24.7)':
@@ -9748,9 +9909,9 @@ snapshots:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-jsx@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
'@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.24.7)':
@@ -9758,9 +9919,9 @@ snapshots:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
'@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.24.7)':
@@ -9768,9 +9929,9 @@ snapshots:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
'@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.24.7)':
@@ -9778,9 +9939,9 @@ snapshots:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
'@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.24.7)':
@@ -9788,9 +9949,9 @@ snapshots:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
'@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.24.7)':
@@ -9798,9 +9959,9 @@ snapshots:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
'@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.24.7)':
@@ -9808,9 +9969,9 @@ snapshots:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
'@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.24.7)':
@@ -9818,9 +9979,9 @@ snapshots:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
'@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.24.7)':
@@ -9828,14 +9989,14 @@ snapshots:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
- '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.0)':
+ '@babel/plugin-syntax-typescript@7.27.1(@babel/core@7.28.4)':
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/helper-plugin-utils': 7.27.1
'@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.24.7)':
@@ -10270,7 +10431,7 @@ snapshots:
dependencies:
'@babel/core': 7.24.7
'@babel/helper-plugin-utils': 7.27.1
- '@babel/types': 7.28.2
+ '@babel/types': 7.28.4
esutils: 2.0.3
'@babel/regjsgen@0.8.0': {}
@@ -10291,7 +10452,7 @@ snapshots:
dependencies:
'@babel/code-frame': 7.27.1
'@babel/parser': 7.28.0
- '@babel/types': 7.28.2
+ '@babel/types': 7.28.4
'@babel/template@7.27.2':
dependencies:
@@ -10302,13 +10463,13 @@ snapshots:
'@babel/traverse@7.24.7':
dependencies:
'@babel/code-frame': 7.27.1
- '@babel/generator': 7.28.0
+ '@babel/generator': 7.28.3
'@babel/helper-environment-visitor': 7.24.7
'@babel/helper-function-name': 7.24.7
'@babel/helper-hoist-variables': 7.24.7
'@babel/helper-split-export-declaration': 7.24.7
'@babel/parser': 7.28.0
- '@babel/types': 7.28.2
+ '@babel/types': 7.28.4
debug: 4.4.1
globals: 11.12.0
transitivePeerDependencies:
@@ -10326,11 +10487,28 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@babel/traverse@7.28.4':
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ '@babel/generator': 7.28.3
+ '@babel/helper-globals': 7.28.0
+ '@babel/parser': 7.28.4
+ '@babel/template': 7.27.2
+ '@babel/types': 7.28.4
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - supports-color
+
'@babel/types@7.28.2':
dependencies:
'@babel/helper-string-parser': 7.27.1
'@babel/helper-validator-identifier': 7.27.1
+ '@babel/types@7.28.4':
+ dependencies:
+ '@babel/helper-string-parser': 7.27.1
+ '@babel/helper-validator-identifier': 7.27.1
+
'@bcoe/v8-coverage@0.2.3': {}
'@commitlint/cli@19.8.1(@types/node@24.6.1)(typescript@4.9.5)':
@@ -10720,18 +10898,18 @@ snapshots:
'@discoveryjs/json-ext@0.5.7': {}
- '@emnapi/core@1.4.5':
+ '@emnapi/core@1.5.0':
dependencies:
- '@emnapi/wasi-threads': 1.0.4
+ '@emnapi/wasi-threads': 1.1.0
tslib: 2.8.1
optional: true
- '@emnapi/runtime@1.4.5':
+ '@emnapi/runtime@1.5.0':
dependencies:
tslib: 2.8.1
optional: true
- '@emnapi/wasi-threads@1.0.4':
+ '@emnapi/wasi-threads@1.1.0':
dependencies:
tslib: 2.8.1
optional: true
@@ -11276,7 +11454,7 @@ snapshots:
'@grpc/grpc-js@1.9.15':
dependencies:
'@grpc/proto-loader': 0.7.10
- '@types/node': 24.2.0
+ '@types/node': 24.6.1
'@grpc/proto-loader@0.6.13':
dependencies:
@@ -11310,7 +11488,7 @@ snapshots:
dependencies:
string-width: 5.1.2
string-width-cjs: string-width@4.2.3
- strip-ansi: 7.1.0
+ strip-ansi: 7.1.2
strip-ansi-cjs: strip-ansi@6.0.1
wrap-ansi: 8.1.0
wrap-ansi-cjs: wrap-ansi@7.0.0
@@ -11325,44 +11503,44 @@ snapshots:
'@istanbuljs/schema@0.1.3': {}
- '@jest/console@30.0.5':
+ '@jest/console@30.2.0':
dependencies:
- '@jest/types': 30.0.5
- '@types/node': 24.2.0
+ '@jest/types': 30.2.0
+ '@types/node': 24.6.1
chalk: 4.1.2
- jest-message-util: 30.0.5
- jest-util: 30.0.5
+ jest-message-util: 30.2.0
+ jest-util: 30.2.0
slash: 3.0.0
- '@jest/core@30.0.5':
+ '@jest/core@30.2.0':
dependencies:
- '@jest/console': 30.0.5
+ '@jest/console': 30.2.0
'@jest/pattern': 30.0.1
- '@jest/reporters': 30.0.5
- '@jest/test-result': 30.0.5
- '@jest/transform': 30.0.5
- '@jest/types': 30.0.5
- '@types/node': 24.2.0
+ '@jest/reporters': 30.2.0
+ '@jest/test-result': 30.2.0
+ '@jest/transform': 30.2.0
+ '@jest/types': 30.2.0
+ '@types/node': 24.6.1
ansi-escapes: 4.3.2
chalk: 4.1.2
ci-info: 4.3.0
exit-x: 0.2.2
graceful-fs: 4.2.11
- jest-changed-files: 30.0.5
- jest-config: 30.0.5(@types/node@24.2.0)
- jest-haste-map: 30.0.5
- jest-message-util: 30.0.5
+ jest-changed-files: 30.2.0
+ jest-config: 30.2.0(@types/node@24.6.1)
+ jest-haste-map: 30.2.0
+ jest-message-util: 30.2.0
jest-regex-util: 30.0.1
- jest-resolve: 30.0.5
- jest-resolve-dependencies: 30.0.5
- jest-runner: 30.0.5
- jest-runtime: 30.0.5
- jest-snapshot: 30.0.5
- jest-util: 30.0.5
- jest-validate: 30.0.5
- jest-watcher: 30.0.5
+ jest-resolve: 30.2.0
+ jest-resolve-dependencies: 30.2.0
+ jest-runner: 30.2.0
+ jest-runtime: 30.2.0
+ jest-snapshot: 30.2.0
+ jest-util: 30.2.0
+ jest-validate: 30.2.0
+ jest-watcher: 30.2.0
micromatch: 4.0.8
- pretty-format: 30.0.5
+ pretty-format: 30.2.0
slash: 3.0.0
transitivePeerDependencies:
- babel-plugin-macros
@@ -11390,14 +11568,21 @@ snapshots:
'@types/node': 24.2.0
jest-mock: 30.0.5
- '@jest/expect-utils@30.0.5':
+ '@jest/environment@30.2.0':
dependencies:
- '@jest/get-type': 30.0.1
+ '@jest/fake-timers': 30.2.0
+ '@jest/types': 30.2.0
+ '@types/node': 24.6.1
+ jest-mock: 30.2.0
+
+ '@jest/expect-utils@30.2.0':
+ dependencies:
+ '@jest/get-type': 30.1.0
- '@jest/expect@30.0.5':
+ '@jest/expect@30.2.0':
dependencies:
- expect: 30.0.5
- jest-snapshot: 30.0.5
+ expect: 30.2.0
+ jest-snapshot: 30.2.0
transitivePeerDependencies:
- supports-color
@@ -11405,36 +11590,45 @@ snapshots:
dependencies:
'@jest/types': 30.0.5
'@sinonjs/fake-timers': 13.0.5
- '@types/node': 24.2.0
+ '@types/node': 24.6.1
jest-message-util: 30.0.5
jest-mock: 30.0.5
jest-util: 30.0.5
- '@jest/get-type@30.0.1': {}
+ '@jest/fake-timers@30.2.0':
+ dependencies:
+ '@jest/types': 30.2.0
+ '@sinonjs/fake-timers': 13.0.5
+ '@types/node': 24.6.1
+ jest-message-util: 30.2.0
+ jest-mock: 30.2.0
+ jest-util: 30.2.0
+
+ '@jest/get-type@30.1.0': {}
- '@jest/globals@30.0.5':
+ '@jest/globals@30.2.0':
dependencies:
- '@jest/environment': 30.0.5
- '@jest/expect': 30.0.5
- '@jest/types': 30.0.5
- jest-mock: 30.0.5
+ '@jest/environment': 30.2.0
+ '@jest/expect': 30.2.0
+ '@jest/types': 30.2.0
+ jest-mock: 30.2.0
transitivePeerDependencies:
- supports-color
'@jest/pattern@30.0.1':
dependencies:
- '@types/node': 24.2.0
+ '@types/node': 24.6.1
jest-regex-util: 30.0.1
- '@jest/reporters@30.0.5':
+ '@jest/reporters@30.2.0':
dependencies:
'@bcoe/v8-coverage': 0.2.3
- '@jest/console': 30.0.5
- '@jest/test-result': 30.0.5
- '@jest/transform': 30.0.5
- '@jest/types': 30.0.5
+ '@jest/console': 30.2.0
+ '@jest/test-result': 30.2.0
+ '@jest/transform': 30.2.0
+ '@jest/types': 30.2.0
'@jridgewell/trace-mapping': 0.3.31
- '@types/node': 24.2.0
+ '@types/node': 24.6.1
chalk: 4.1.2
collect-v8-coverage: 1.0.2
exit-x: 0.2.2
@@ -11444,10 +11638,10 @@ snapshots:
istanbul-lib-instrument: 6.0.3
istanbul-lib-report: 3.0.1
istanbul-lib-source-maps: 5.0.6
- istanbul-reports: 3.1.7
- jest-message-util: 30.0.5
- jest-util: 30.0.5
- jest-worker: 30.0.5
+ istanbul-reports: 3.2.0
+ jest-message-util: 30.2.0
+ jest-util: 30.2.0
+ jest-worker: 30.2.0
slash: 3.0.0
string-length: 4.0.2
v8-to-istanbul: 9.3.0
@@ -11460,11 +11654,11 @@ snapshots:
'@jest/schemas@30.0.5':
dependencies:
- '@sinclair/typebox': 0.34.38
+ '@sinclair/typebox': 0.34.41
- '@jest/snapshot-utils@30.0.5':
+ '@jest/snapshot-utils@30.2.0':
dependencies:
- '@jest/types': 30.0.5
+ '@jest/types': 30.2.0
chalk: 4.1.2
graceful-fs: 4.2.11
natural-compare: 1.4.0
@@ -11475,18 +11669,18 @@ snapshots:
callsites: 3.1.0
graceful-fs: 4.2.11
- '@jest/test-result@30.0.5':
+ '@jest/test-result@30.2.0':
dependencies:
- '@jest/console': 30.0.5
- '@jest/types': 30.0.5
+ '@jest/console': 30.2.0
+ '@jest/types': 30.2.0
'@types/istanbul-lib-coverage': 2.0.6
collect-v8-coverage: 1.0.2
- '@jest/test-sequencer@30.0.5':
+ '@jest/test-sequencer@30.2.0':
dependencies:
- '@jest/test-result': 30.0.5
+ '@jest/test-result': 30.2.0
graceful-fs: 4.2.11
- jest-haste-map: 30.0.5
+ jest-haste-map: 30.2.0
slash: 3.0.0
'@jest/transform@30.0.5':
@@ -11509,6 +11703,26 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@jest/transform@30.2.0':
+ dependencies:
+ '@babel/core': 7.28.4
+ '@jest/types': 30.2.0
+ '@jridgewell/trace-mapping': 0.3.31
+ babel-plugin-istanbul: 7.0.1
+ chalk: 4.1.2
+ convert-source-map: 2.0.0
+ fast-json-stable-stringify: 2.1.0
+ graceful-fs: 4.2.11
+ jest-haste-map: 30.2.0
+ jest-regex-util: 30.0.1
+ jest-util: 30.2.0
+ micromatch: 4.0.8
+ pirates: 4.0.7
+ slash: 3.0.0
+ write-file-atomic: 5.0.1
+ transitivePeerDependencies:
+ - supports-color
+
'@jest/types@29.6.3':
dependencies:
'@jest/schemas': 29.6.3
@@ -11524,7 +11738,17 @@ snapshots:
'@jest/schemas': 30.0.5
'@types/istanbul-lib-coverage': 2.0.6
'@types/istanbul-reports': 3.0.4
- '@types/node': 24.2.0
+ '@types/node': 24.6.1
+ '@types/yargs': 17.0.33
+ chalk: 4.1.2
+
+ '@jest/types@30.2.0':
+ dependencies:
+ '@jest/pattern': 30.0.1
+ '@jest/schemas': 30.0.5
+ '@types/istanbul-lib-coverage': 2.0.6
+ '@types/istanbul-reports': 3.0.4
+ '@types/node': 24.6.1
'@types/yargs': 17.0.33
chalk: 4.1.2
@@ -11550,6 +11774,11 @@ snapshots:
'@jridgewell/sourcemap-codec': 1.5.5
'@jridgewell/trace-mapping': 0.3.31
+ '@jridgewell/remapping@2.3.5':
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.13
+ '@jridgewell/trace-mapping': 0.3.31
+
'@jridgewell/resolve-uri@3.1.2': {}
'@jridgewell/set-array@1.1.2': {}
@@ -11597,9 +11826,9 @@ snapshots:
'@napi-rs/wasm-runtime@0.2.12':
dependencies:
- '@emnapi/core': 1.4.5
- '@emnapi/runtime': 1.4.5
- '@tybys/wasm-util': 0.10.0
+ '@emnapi/core': 1.5.0
+ '@emnapi/runtime': 1.5.0
+ '@tybys/wasm-util': 0.10.1
optional: true
'@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1':
@@ -11651,12 +11880,12 @@ snapshots:
- supports-color
- vue
- '@nuxt/builder@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)':
+ '@nuxt/builder@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)':
dependencies:
'@nuxt/devalue': 2.0.2
'@nuxt/utils': 2.18.1
'@nuxt/vue-app': 2.18.1
- '@nuxt/webpack': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
+ '@nuxt/webpack': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
chalk: 4.1.2
chokidar: 3.6.0
consola: 3.2.3
@@ -12042,7 +12271,7 @@ snapshots:
vue-meta: 2.4.0
vue-server-renderer: 2.7.16
- '@nuxt/webpack@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)':
+ '@nuxt/webpack@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)':
dependencies:
'@babel/core': 7.24.7
'@nuxt/babel-preset-app': 2.18.1(vue@2.7.16)
@@ -12082,7 +12311,7 @@ snapshots:
ufo: 1.6.1
upath: 2.0.1
url-loader: 4.1.1(file-loader@6.2.0(webpack@5.102.0))(webpack@4.47.0)
- vue-loader: 15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@5.102.0))(ejs@3.1.10)(lodash@4.17.21)(prettier@3.6.2)(vue-template-compiler@2.7.16)(webpack@4.47.0)
+ vue-loader: 15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@5.102.0))(ejs@3.1.10)(lodash@4.17.21)(prettier@3.6.2)(vue-template-compiler@2.7.16)(webpack@4.47.0)
vue-style-loader: 4.1.3
vue-template-compiler: 2.7.16
watchpack: 2.4.4
@@ -12207,11 +12436,11 @@ snapshots:
- vite
- webpack
- '@nuxtjs/firebase@8.2.2(@firebase/app-types@0.9.2)(firebase@10.14.1)(nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16))':
+ '@nuxtjs/firebase@8.2.2(@firebase/app-types@0.9.2)(firebase@10.14.1)(nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16))':
dependencies:
consola: 2.15.3
firebase: 10.14.1
- nuxt: 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
+ nuxt: 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
optionalDependencies:
firebase-admin: 10.3.0(@firebase/app-types@0.9.2)
transitivePeerDependencies:
@@ -12328,7 +12557,7 @@ snapshots:
'@sinclair/typebox@0.27.8': {}
- '@sinclair/typebox@0.34.38': {}
+ '@sinclair/typebox@0.34.41': {}
'@sindresorhus/merge-streams@2.3.0': {}
@@ -12345,7 +12574,7 @@ snapshots:
'@trysound/sax@0.2.0': {}
- '@tybys/wasm-util@0.10.0':
+ '@tybys/wasm-util@0.10.1':
dependencies:
tslib: 2.8.1
optional: true
@@ -12374,7 +12603,7 @@ snapshots:
'@types/body-parser@1.19.3':
dependencies:
'@types/connect': 3.4.38
- '@types/node': 16.18.55
+ '@types/node': 24.6.1
'@types/compression@1.7.5':
dependencies:
@@ -12411,7 +12640,7 @@ snapshots:
'@types/express-serve-static-core@4.17.37':
dependencies:
- '@types/node': 16.18.55
+ '@types/node': 24.6.1
'@types/qs': 6.9.8
'@types/range-parser': 1.2.5
'@types/send': 0.17.2
@@ -12455,7 +12684,7 @@ snapshots:
'@types/jsonwebtoken@8.5.9':
dependencies:
- '@types/node': 24.2.0
+ '@types/node': 24.6.1
optional: true
'@types/less@3.0.6': {}
@@ -12501,14 +12730,14 @@ snapshots:
'@types/sax@1.2.7':
dependencies:
- '@types/node': 24.2.0
+ '@types/node': 24.6.1
'@types/semver@7.5.3': {}
'@types/send@0.17.2':
dependencies:
'@types/mime': 1.3.3
- '@types/node': 24.2.0
+ '@types/node': 16.18.55
'@types/serve-static@1.15.7':
dependencies:
@@ -12548,7 +12777,7 @@ snapshots:
'@types/webpack-sources@3.2.1':
dependencies:
- '@types/node': 24.2.0
+ '@types/node': 16.18.55
'@types/source-list-map': 0.1.3
source-map: 0.7.4
@@ -12794,9 +13023,9 @@ snapshots:
optionalDependencies:
prettier: 2.8.8
- '@vue/component-compiler-utils@3.3.0(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(lodash@4.17.21)':
+ '@vue/component-compiler-utils@3.3.0(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(lodash@4.17.21)':
dependencies:
- consolidate: 0.15.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(lodash@4.17.21)
+ consolidate: 0.15.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(lodash@4.17.21)
hash-sum: 1.0.2
lru-cache: 4.1.5
merge-source-map: 1.1.0
@@ -13073,7 +13302,7 @@ snapshots:
agent-base@6.0.2:
dependencies:
- debug: 4.4.1
+ debug: 4.4.3
transitivePeerDependencies:
- supports-color
@@ -13130,7 +13359,7 @@ snapshots:
dependencies:
type-fest: 0.21.3
- ansi-escapes@7.0.0:
+ ansi-escapes@7.1.1:
dependencies:
environment: 1.1.0
@@ -13142,6 +13371,8 @@ snapshots:
ansi-regex@6.1.0: {}
+ ansi-regex@6.2.2: {}
+
ansi-styles@2.2.1: {}
ansi-styles@3.2.1:
@@ -13156,6 +13387,8 @@ snapshots:
ansi-styles@6.2.1: {}
+ ansi-styles@6.2.3: {}
+
anymatch@2.0.0:
dependencies:
micromatch: 3.1.10
@@ -13313,17 +13546,30 @@ snapshots:
esutils: 2.0.3
js-tokens: 3.0.2
- babel-core@7.0.0-bridge.0(@babel/core@7.28.0):
+ babel-core@7.0.0-bridge.0(@babel/core@7.28.4):
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
- babel-jest@30.0.5(@babel/core@7.28.0):
+ babel-jest@30.0.5(@babel/core@7.28.4):
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@jest/transform': 30.0.5
'@types/babel__core': 7.20.5
babel-plugin-istanbul: 7.0.0
- babel-preset-jest: 30.0.1(@babel/core@7.28.0)
+ babel-preset-jest: 30.0.1(@babel/core@7.28.4)
+ chalk: 4.1.2
+ graceful-fs: 4.2.11
+ slash: 3.0.0
+ transitivePeerDependencies:
+ - supports-color
+
+ babel-jest@30.2.0(@babel/core@7.28.4):
+ dependencies:
+ '@babel/core': 7.28.4
+ '@jest/transform': 30.2.0
+ '@types/babel__core': 7.20.5
+ babel-plugin-istanbul: 7.0.1
+ babel-preset-jest: 30.2.0(@babel/core@7.28.4)
chalk: 4.1.2
graceful-fs: 4.2.11
slash: 3.0.0
@@ -13353,12 +13599,26 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ babel-plugin-istanbul@7.0.1:
+ dependencies:
+ '@babel/helper-plugin-utils': 7.27.1
+ '@istanbuljs/load-nyc-config': 1.1.0
+ '@istanbuljs/schema': 0.1.3
+ istanbul-lib-instrument: 6.0.3
+ test-exclude: 6.0.0
+ transitivePeerDependencies:
+ - supports-color
+
babel-plugin-jest-hoist@30.0.1:
dependencies:
'@babel/template': 7.27.2
'@babel/types': 7.28.2
'@types/babel__core': 7.20.5
+ babel-plugin-jest-hoist@30.2.0:
+ dependencies:
+ '@types/babel__core': 7.20.5
+
babel-plugin-polyfill-corejs2@0.4.11(@babel/core@7.24.7):
dependencies:
'@babel/compat-data': 7.24.7
@@ -13397,30 +13657,36 @@ snapshots:
babel-runtime: 6.26.0
babel-types: 6.26.0
- babel-preset-current-node-syntax@1.2.0(@babel/core@7.28.0):
- dependencies:
- '@babel/core': 7.28.0
- '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.0)
- '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.0)
- '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.0)
- '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.28.0)
- '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.0)
- '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.28.0)
- '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.28.0)
- '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.0)
- '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.28.0)
- '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.0)
- '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.28.0)
- '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.0)
- '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.0)
- '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.0)
-
- babel-preset-jest@30.0.1(@babel/core@7.28.0):
- dependencies:
- '@babel/core': 7.28.0
+ babel-preset-current-node-syntax@1.2.0(@babel/core@7.28.4):
+ dependencies:
+ '@babel/core': 7.28.4
+ '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.28.4)
+ '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.28.4)
+ '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.28.4)
+ '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.28.4)
+ '@babel/plugin-syntax-import-attributes': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.28.4)
+ '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.28.4)
+ '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.28.4)
+ '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.28.4)
+ '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.28.4)
+ '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.28.4)
+ '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.28.4)
+ '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.28.4)
+ '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.4)
+ '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.4)
+
+ babel-preset-jest@30.0.1(@babel/core@7.28.4):
+ dependencies:
+ '@babel/core': 7.28.4
babel-plugin-jest-hoist: 30.0.1
- babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.0)
+ babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.4)
+
+ babel-preset-jest@30.2.0(@babel/core@7.28.4):
+ dependencies:
+ '@babel/core': 7.28.4
+ babel-plugin-jest-hoist: 30.2.0
+ babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.4)
babel-runtime@6.26.0:
dependencies:
@@ -14042,11 +14308,11 @@ snapshots:
console-browserify@1.2.0: {}
- consolidate@0.15.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(lodash@4.17.21):
+ consolidate@0.15.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(lodash@4.17.21):
dependencies:
bluebird: 3.7.2
optionalDependencies:
- babel-core: 7.0.0-bridge.0(@babel/core@7.28.0)
+ babel-core: 7.0.0-bridge.0(@babel/core@7.28.4)
ejs: 3.1.10
lodash: 4.17.21
@@ -14427,6 +14693,10 @@ snapshots:
dependencies:
ms: 2.1.3
+ debug@4.4.3:
+ dependencies:
+ ms: 2.1.3
+
decache@4.6.2:
dependencies:
callsite: 1.0.0
@@ -14444,7 +14714,7 @@ snapshots:
decode-uri-component@0.2.2: {}
- dedent@1.6.0: {}
+ dedent@1.7.0: {}
deep-is@0.1.4: {}
@@ -15122,14 +15392,14 @@ snapshots:
transitivePeerDependencies:
- supports-color
- expect@30.0.5:
+ expect@30.2.0:
dependencies:
- '@jest/expect-utils': 30.0.5
- '@jest/get-type': 30.0.1
- jest-matcher-utils: 30.0.5
- jest-message-util: 30.0.5
- jest-mock: 30.0.5
- jest-util: 30.0.5
+ '@jest/expect-utils': 30.2.0
+ '@jest/get-type': 30.1.0
+ jest-matcher-utils: 30.2.0
+ jest-message-util: 30.2.0
+ jest-mock: 30.2.0
+ jest-util: 30.2.0
extend-shallow@2.0.1:
dependencies:
@@ -15954,7 +16224,7 @@ snapshots:
dependencies:
'@tootallnate/once': 2.0.0
agent-base: 6.0.2
- debug: 4.4.1
+ debug: 4.4.3
transitivePeerDependencies:
- supports-color
optional: true
@@ -15971,7 +16241,7 @@ snapshots:
https-proxy-agent@5.0.1:
dependencies:
agent-base: 6.0.2
- debug: 4.4.1
+ debug: 4.4.3
transitivePeerDependencies:
- supports-color
@@ -16285,12 +16555,12 @@ snapshots:
istanbul-lib-source-maps@5.0.6:
dependencies:
'@jridgewell/trace-mapping': 0.3.31
- debug: 4.4.1
+ debug: 4.4.3
istanbul-lib-coverage: 3.2.2
transitivePeerDependencies:
- supports-color
- istanbul-reports@3.1.7:
+ istanbul-reports@3.2.0:
dependencies:
html-escaper: 2.0.2
istanbul-lib-report: 3.0.1
@@ -16308,31 +16578,31 @@ snapshots:
filelist: 1.0.4
minimatch: 3.1.2
- jest-changed-files@30.0.5:
+ jest-changed-files@30.2.0:
dependencies:
execa: 5.1.1
- jest-util: 30.0.5
+ jest-util: 30.2.0
p-limit: 3.1.0
- jest-circus@30.0.5:
+ jest-circus@30.2.0:
dependencies:
- '@jest/environment': 30.0.5
- '@jest/expect': 30.0.5
- '@jest/test-result': 30.0.5
- '@jest/types': 30.0.5
- '@types/node': 24.2.0
+ '@jest/environment': 30.2.0
+ '@jest/expect': 30.2.0
+ '@jest/test-result': 30.2.0
+ '@jest/types': 30.2.0
+ '@types/node': 24.6.1
chalk: 4.1.2
co: 4.6.0
- dedent: 1.6.0
+ dedent: 1.7.0
is-generator-fn: 2.1.0
- jest-each: 30.0.5
- jest-matcher-utils: 30.0.5
- jest-message-util: 30.0.5
- jest-runtime: 30.0.5
- jest-snapshot: 30.0.5
- jest-util: 30.0.5
+ jest-each: 30.2.0
+ jest-matcher-utils: 30.2.0
+ jest-message-util: 30.2.0
+ jest-runtime: 30.2.0
+ jest-snapshot: 30.2.0
+ jest-util: 30.2.0
p-limit: 3.1.0
- pretty-format: 30.0.5
+ pretty-format: 30.2.0
pure-rand: 7.0.1
slash: 3.0.0
stack-utils: 2.0.6
@@ -16340,17 +16610,17 @@ snapshots:
- babel-plugin-macros
- supports-color
- jest-cli@30.0.5(@types/node@24.6.1):
+ jest-cli@30.2.0(@types/node@24.6.1):
dependencies:
- '@jest/core': 30.0.5
- '@jest/test-result': 30.0.5
- '@jest/types': 30.0.5
+ '@jest/core': 30.2.0
+ '@jest/test-result': 30.2.0
+ '@jest/types': 30.2.0
chalk: 4.1.2
exit-x: 0.2.2
import-local: 3.2.0
- jest-config: 30.0.5(@types/node@24.6.1)
- jest-util: 30.0.5
- jest-validate: 30.0.5
+ jest-config: 30.2.0(@types/node@24.6.1)
+ jest-util: 30.2.0
+ jest-validate: 30.2.0
yargs: 17.7.2
transitivePeerDependencies:
- '@types/node'
@@ -16359,62 +16629,30 @@ snapshots:
- supports-color
- ts-node
- jest-config@30.0.5(@types/node@24.2.0):
+ jest-config@30.2.0(@types/node@24.6.1):
dependencies:
- '@babel/core': 7.28.0
- '@jest/get-type': 30.0.1
+ '@babel/core': 7.28.4
+ '@jest/get-type': 30.1.0
'@jest/pattern': 30.0.1
- '@jest/test-sequencer': 30.0.5
- '@jest/types': 30.0.5
- babel-jest: 30.0.5(@babel/core@7.28.0)
+ '@jest/test-sequencer': 30.2.0
+ '@jest/types': 30.2.0
+ babel-jest: 30.2.0(@babel/core@7.28.4)
chalk: 4.1.2
ci-info: 4.3.0
deepmerge: 4.3.1
glob: 10.4.5
graceful-fs: 4.2.11
- jest-circus: 30.0.5
- jest-docblock: 30.0.1
- jest-environment-node: 30.0.5
+ jest-circus: 30.2.0
+ jest-docblock: 30.2.0
+ jest-environment-node: 30.2.0
jest-regex-util: 30.0.1
- jest-resolve: 30.0.5
- jest-runner: 30.0.5
- jest-util: 30.0.5
- jest-validate: 30.0.5
+ jest-resolve: 30.2.0
+ jest-runner: 30.2.0
+ jest-util: 30.2.0
+ jest-validate: 30.2.0
micromatch: 4.0.8
parse-json: 5.2.0
- pretty-format: 30.0.5
- slash: 3.0.0
- strip-json-comments: 3.1.1
- optionalDependencies:
- '@types/node': 24.2.0
- transitivePeerDependencies:
- - babel-plugin-macros
- - supports-color
-
- jest-config@30.0.5(@types/node@24.6.1):
- dependencies:
- '@babel/core': 7.28.0
- '@jest/get-type': 30.0.1
- '@jest/pattern': 30.0.1
- '@jest/test-sequencer': 30.0.5
- '@jest/types': 30.0.5
- babel-jest: 30.0.5(@babel/core@7.28.0)
- chalk: 4.1.2
- ci-info: 4.3.0
- deepmerge: 4.3.1
- glob: 10.4.5
- graceful-fs: 4.2.11
- jest-circus: 30.0.5
- jest-docblock: 30.0.1
- jest-environment-node: 30.0.5
- jest-regex-util: 30.0.1
- jest-resolve: 30.0.5
- jest-runner: 30.0.5
- jest-util: 30.0.5
- jest-validate: 30.0.5
- micromatch: 4.0.8
- parse-json: 5.2.0
- pretty-format: 30.0.5
+ pretty-format: 30.2.0
slash: 3.0.0
strip-json-comments: 3.1.1
optionalDependencies:
@@ -16423,24 +16661,24 @@ snapshots:
- babel-plugin-macros
- supports-color
- jest-diff@30.0.5:
+ jest-diff@30.2.0:
dependencies:
'@jest/diff-sequences': 30.0.1
- '@jest/get-type': 30.0.1
+ '@jest/get-type': 30.1.0
chalk: 4.1.2
- pretty-format: 30.0.5
+ pretty-format: 30.2.0
- jest-docblock@30.0.1:
+ jest-docblock@30.2.0:
dependencies:
detect-newline: 3.1.0
- jest-each@30.0.5:
+ jest-each@30.2.0:
dependencies:
- '@jest/get-type': 30.0.1
- '@jest/types': 30.0.5
+ '@jest/get-type': 30.1.0
+ '@jest/types': 30.2.0
chalk: 4.1.2
- jest-util: 30.0.5
- pretty-format: 30.0.5
+ jest-util: 30.2.0
+ pretty-format: 30.2.0
jest-environment-jsdom@30.0.5:
dependencies:
@@ -16454,20 +16692,20 @@ snapshots:
- supports-color
- utf-8-validate
- jest-environment-node@30.0.5:
+ jest-environment-node@30.2.0:
dependencies:
- '@jest/environment': 30.0.5
- '@jest/fake-timers': 30.0.5
- '@jest/types': 30.0.5
- '@types/node': 24.2.0
- jest-mock: 30.0.5
- jest-util: 30.0.5
- jest-validate: 30.0.5
+ '@jest/environment': 30.2.0
+ '@jest/fake-timers': 30.2.0
+ '@jest/types': 30.2.0
+ '@types/node': 24.6.1
+ jest-mock: 30.2.0
+ jest-util: 30.2.0
+ jest-validate: 30.2.0
jest-haste-map@30.0.5:
dependencies:
'@jest/types': 30.0.5
- '@types/node': 24.2.0
+ '@types/node': 24.6.1
anymatch: 3.1.3
fb-watchman: 2.0.2
graceful-fs: 4.2.11
@@ -16479,17 +16717,32 @@ snapshots:
optionalDependencies:
fsevents: 2.3.3
- jest-leak-detector@30.0.5:
+ jest-haste-map@30.2.0:
dependencies:
- '@jest/get-type': 30.0.1
- pretty-format: 30.0.5
+ '@jest/types': 30.2.0
+ '@types/node': 24.6.1
+ anymatch: 3.1.3
+ fb-watchman: 2.0.2
+ graceful-fs: 4.2.11
+ jest-regex-util: 30.0.1
+ jest-util: 30.2.0
+ jest-worker: 30.2.0
+ micromatch: 4.0.8
+ walker: 1.0.8
+ optionalDependencies:
+ fsevents: 2.3.3
+
+ jest-leak-detector@30.2.0:
+ dependencies:
+ '@jest/get-type': 30.1.0
+ pretty-format: 30.2.0
- jest-matcher-utils@30.0.5:
+ jest-matcher-utils@30.2.0:
dependencies:
- '@jest/get-type': 30.0.1
+ '@jest/get-type': 30.1.0
chalk: 4.1.2
- jest-diff: 30.0.5
- pretty-format: 30.0.5
+ jest-diff: 30.2.0
+ pretty-format: 30.2.0
jest-message-util@30.0.5:
dependencies:
@@ -16503,111 +16756,129 @@ snapshots:
slash: 3.0.0
stack-utils: 2.0.6
+ jest-message-util@30.2.0:
+ dependencies:
+ '@babel/code-frame': 7.27.1
+ '@jest/types': 30.2.0
+ '@types/stack-utils': 2.0.3
+ chalk: 4.1.2
+ graceful-fs: 4.2.11
+ micromatch: 4.0.8
+ pretty-format: 30.2.0
+ slash: 3.0.0
+ stack-utils: 2.0.6
+
jest-mock@30.0.5:
dependencies:
'@jest/types': 30.0.5
- '@types/node': 24.2.0
+ '@types/node': 24.6.1
jest-util: 30.0.5
- jest-pnp-resolver@1.2.3(jest-resolve@30.0.5):
+ jest-mock@30.2.0:
+ dependencies:
+ '@jest/types': 30.2.0
+ '@types/node': 24.6.1
+ jest-util: 30.2.0
+
+ jest-pnp-resolver@1.2.3(jest-resolve@30.2.0):
optionalDependencies:
- jest-resolve: 30.0.5
+ jest-resolve: 30.2.0
jest-regex-util@30.0.1: {}
- jest-resolve-dependencies@30.0.5:
+ jest-resolve-dependencies@30.2.0:
dependencies:
jest-regex-util: 30.0.1
- jest-snapshot: 30.0.5
+ jest-snapshot: 30.2.0
transitivePeerDependencies:
- supports-color
- jest-resolve@30.0.5:
+ jest-resolve@30.2.0:
dependencies:
chalk: 4.1.2
graceful-fs: 4.2.11
- jest-haste-map: 30.0.5
- jest-pnp-resolver: 1.2.3(jest-resolve@30.0.5)
- jest-util: 30.0.5
- jest-validate: 30.0.5
+ jest-haste-map: 30.2.0
+ jest-pnp-resolver: 1.2.3(jest-resolve@30.2.0)
+ jest-util: 30.2.0
+ jest-validate: 30.2.0
slash: 3.0.0
unrs-resolver: 1.11.1
- jest-runner@30.0.5:
+ jest-runner@30.2.0:
dependencies:
- '@jest/console': 30.0.5
- '@jest/environment': 30.0.5
- '@jest/test-result': 30.0.5
- '@jest/transform': 30.0.5
- '@jest/types': 30.0.5
- '@types/node': 24.2.0
+ '@jest/console': 30.2.0
+ '@jest/environment': 30.2.0
+ '@jest/test-result': 30.2.0
+ '@jest/transform': 30.2.0
+ '@jest/types': 30.2.0
+ '@types/node': 24.6.1
chalk: 4.1.2
emittery: 0.13.1
exit-x: 0.2.2
graceful-fs: 4.2.11
- jest-docblock: 30.0.1
- jest-environment-node: 30.0.5
- jest-haste-map: 30.0.5
- jest-leak-detector: 30.0.5
- jest-message-util: 30.0.5
- jest-resolve: 30.0.5
- jest-runtime: 30.0.5
- jest-util: 30.0.5
- jest-watcher: 30.0.5
- jest-worker: 30.0.5
+ jest-docblock: 30.2.0
+ jest-environment-node: 30.2.0
+ jest-haste-map: 30.2.0
+ jest-leak-detector: 30.2.0
+ jest-message-util: 30.2.0
+ jest-resolve: 30.2.0
+ jest-runtime: 30.2.0
+ jest-util: 30.2.0
+ jest-watcher: 30.2.0
+ jest-worker: 30.2.0
p-limit: 3.1.0
source-map-support: 0.5.13
transitivePeerDependencies:
- supports-color
- jest-runtime@30.0.5:
+ jest-runtime@30.2.0:
dependencies:
- '@jest/environment': 30.0.5
- '@jest/fake-timers': 30.0.5
- '@jest/globals': 30.0.5
+ '@jest/environment': 30.2.0
+ '@jest/fake-timers': 30.2.0
+ '@jest/globals': 30.2.0
'@jest/source-map': 30.0.1
- '@jest/test-result': 30.0.5
- '@jest/transform': 30.0.5
- '@jest/types': 30.0.5
- '@types/node': 24.2.0
+ '@jest/test-result': 30.2.0
+ '@jest/transform': 30.2.0
+ '@jest/types': 30.2.0
+ '@types/node': 24.6.1
chalk: 4.1.2
cjs-module-lexer: 2.1.0
collect-v8-coverage: 1.0.2
glob: 10.4.5
graceful-fs: 4.2.11
- jest-haste-map: 30.0.5
- jest-message-util: 30.0.5
- jest-mock: 30.0.5
+ jest-haste-map: 30.2.0
+ jest-message-util: 30.2.0
+ jest-mock: 30.2.0
jest-regex-util: 30.0.1
- jest-resolve: 30.0.5
- jest-snapshot: 30.0.5
- jest-util: 30.0.5
+ jest-resolve: 30.2.0
+ jest-snapshot: 30.2.0
+ jest-util: 30.2.0
slash: 3.0.0
strip-bom: 4.0.0
transitivePeerDependencies:
- supports-color
- jest-snapshot@30.0.5:
- dependencies:
- '@babel/core': 7.28.0
- '@babel/generator': 7.28.0
- '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.0)
- '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.0)
- '@babel/types': 7.28.2
- '@jest/expect-utils': 30.0.5
- '@jest/get-type': 30.0.1
- '@jest/snapshot-utils': 30.0.5
- '@jest/transform': 30.0.5
- '@jest/types': 30.0.5
- babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.0)
+ jest-snapshot@30.2.0:
+ dependencies:
+ '@babel/core': 7.28.4
+ '@babel/generator': 7.28.3
+ '@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4)
+ '@babel/plugin-syntax-typescript': 7.27.1(@babel/core@7.28.4)
+ '@babel/types': 7.28.4
+ '@jest/expect-utils': 30.2.0
+ '@jest/get-type': 30.1.0
+ '@jest/snapshot-utils': 30.2.0
+ '@jest/transform': 30.2.0
+ '@jest/types': 30.2.0
+ babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.4)
chalk: 4.1.2
- expect: 30.0.5
+ expect: 30.2.0
graceful-fs: 4.2.11
- jest-diff: 30.0.5
- jest-matcher-utils: 30.0.5
- jest-message-util: 30.0.5
- jest-util: 30.0.5
- pretty-format: 30.0.5
+ jest-diff: 30.2.0
+ jest-matcher-utils: 30.2.0
+ jest-message-util: 30.2.0
+ jest-util: 30.2.0
+ pretty-format: 30.2.0
semver: 7.7.2
synckit: 0.11.11
transitivePeerDependencies:
@@ -16616,7 +16887,7 @@ snapshots:
jest-util@29.7.0:
dependencies:
'@jest/types': 29.6.3
- '@types/node': 24.2.0
+ '@types/node': 24.6.1
chalk: 4.1.2
ci-info: 3.9.0
graceful-fs: 4.2.11
@@ -16625,30 +16896,39 @@ snapshots:
jest-util@30.0.5:
dependencies:
'@jest/types': 30.0.5
- '@types/node': 24.2.0
+ '@types/node': 24.6.1
chalk: 4.1.2
ci-info: 4.3.0
graceful-fs: 4.2.11
picomatch: 4.0.3
- jest-validate@30.0.5:
+ jest-util@30.2.0:
dependencies:
- '@jest/get-type': 30.0.1
- '@jest/types': 30.0.5
+ '@jest/types': 30.2.0
+ '@types/node': 24.6.1
+ chalk: 4.1.2
+ ci-info: 4.3.0
+ graceful-fs: 4.2.11
+ picomatch: 4.0.3
+
+ jest-validate@30.2.0:
+ dependencies:
+ '@jest/get-type': 30.1.0
+ '@jest/types': 30.2.0
camelcase: 6.3.0
chalk: 4.1.2
leven: 3.1.0
- pretty-format: 30.0.5
+ pretty-format: 30.2.0
- jest-watcher@30.0.5:
+ jest-watcher@30.2.0:
dependencies:
- '@jest/test-result': 30.0.5
- '@jest/types': 30.0.5
- '@types/node': 24.2.0
+ '@jest/test-result': 30.2.0
+ '@jest/types': 30.2.0
+ '@types/node': 24.6.1
ansi-escapes: 4.3.2
chalk: 4.1.2
emittery: 0.13.1
- jest-util: 30.0.5
+ jest-util: 30.2.0
string-length: 4.0.2
jest-worker@26.6.2:
@@ -16665,25 +16945,33 @@ snapshots:
jest-worker@29.7.0:
dependencies:
- '@types/node': 24.2.0
+ '@types/node': 24.6.1
jest-util: 29.7.0
merge-stream: 2.0.0
supports-color: 8.1.1
jest-worker@30.0.5:
dependencies:
- '@types/node': 24.2.0
+ '@types/node': 24.6.1
'@ungap/structured-clone': 1.3.0
jest-util: 30.0.5
merge-stream: 2.0.0
supports-color: 8.1.1
- jest@30.0.5(@types/node@24.6.1):
+ jest-worker@30.2.0:
dependencies:
- '@jest/core': 30.0.5
- '@jest/types': 30.0.5
+ '@types/node': 24.6.1
+ '@ungap/structured-clone': 1.3.0
+ jest-util: 30.2.0
+ merge-stream: 2.0.0
+ supports-color: 8.1.1
+
+ jest@30.2.0(@types/node@24.6.1):
+ dependencies:
+ '@jest/core': 30.2.0
+ '@jest/types': 30.2.0
import-local: 3.2.0
- jest-cli: 30.0.5(@types/node@24.6.1)
+ jest-cli: 30.2.0(@types/node@24.6.1)
transitivePeerDependencies:
- '@types/node'
- babel-plugin-macros
@@ -17030,7 +17318,7 @@ snapshots:
log-update@6.1.0:
dependencies:
- ansi-escapes: 7.0.0
+ ansi-escapes: 7.1.1
cli-cursor: 5.0.0
slice-ansi: 7.1.0
strip-ansi: 7.1.0
@@ -17393,7 +17681,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- napi-postinstall@0.3.2: {}
+ napi-postinstall@0.3.3: {}
natural-compare@1.4.0: {}
@@ -17519,10 +17807,10 @@ snapshots:
dependencies:
highlight.js: 11.11.1
- nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16):
+ nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16):
dependencies:
'@nuxt/babel-preset-app': 2.18.1(vue@2.7.16)
- '@nuxt/builder': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
+ '@nuxt/builder': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
'@nuxt/cli': 2.18.1
'@nuxt/components': 2.2.1(consola@3.2.3)
'@nuxt/config': 2.18.1
@@ -17535,7 +17823,7 @@ snapshots:
'@nuxt/utils': 2.18.1
'@nuxt/vue-app': 2.18.1
'@nuxt/vue-renderer': 2.18.1
- '@nuxt/webpack': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
+ '@nuxt/webpack': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
transitivePeerDependencies:
- '@vue/compiler-sfc'
- arc-templates
@@ -18556,6 +18844,12 @@ snapshots:
ansi-styles: 5.2.0
react-is: 18.3.1
+ pretty-format@30.2.0:
+ dependencies:
+ '@jest/schemas': 30.0.5
+ ansi-styles: 5.2.0
+ react-is: 18.3.1
+
pretty-time@1.1.0: {}
pretty@2.0.0:
@@ -18615,7 +18909,7 @@ snapshots:
'@protobufjs/pool': 1.1.0
'@protobufjs/utf8': 1.1.0
'@types/long': 4.0.2
- '@types/node': 24.2.0
+ '@types/node': 24.6.1
long: 4.0.0
optional: true
@@ -19158,12 +19452,12 @@ snapshots:
slice-ansi@5.0.0:
dependencies:
- ansi-styles: 6.2.1
+ ansi-styles: 6.2.3
is-fullwidth-code-point: 4.0.0
slice-ansi@7.1.0:
dependencies:
- ansi-styles: 6.2.1
+ ansi-styles: 6.2.3
is-fullwidth-code-point: 5.0.0
snapdragon-node@2.1.1:
@@ -19328,7 +19622,7 @@ snapshots:
dependencies:
eastasianwidth: 0.2.0
emoji-regex: 9.2.2
- strip-ansi: 7.1.0
+ strip-ansi: 7.1.2
string-width@7.2.0:
dependencies:
@@ -19374,6 +19668,10 @@ snapshots:
dependencies:
ansi-regex: 6.1.0
+ strip-ansi@7.1.2:
+ dependencies:
+ ansi-regex: 6.2.2
+
strip-bom@3.0.0: {}
strip-bom@4.0.0: {}
@@ -19745,12 +20043,12 @@ snapshots:
dependencies:
typescript: 4.9.5
- ts-jest@29.4.0(@babel/core@7.28.0)(@jest/transform@30.0.5)(@jest/types@30.0.5)(babel-jest@30.0.5(@babel/core@7.28.0))(jest-util@30.0.5)(jest@30.0.5(@types/node@24.6.1))(typescript@4.9.5):
+ ts-jest@29.4.0(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.0.5(@babel/core@7.28.4))(jest-util@30.2.0)(jest@30.2.0(@types/node@24.6.1))(typescript@4.9.5):
dependencies:
bs-logger: 0.2.6
ejs: 3.1.10
fast-json-stable-stringify: 2.1.0
- jest: 30.0.5(@types/node@24.6.1)
+ jest: 30.2.0(@types/node@24.6.1)
json5: 2.2.3
lodash.memoize: 4.1.2
make-error: 1.3.6
@@ -19759,11 +20057,11 @@ snapshots:
typescript: 4.9.5
yargs-parser: 21.1.1
optionalDependencies:
- '@babel/core': 7.28.0
- '@jest/transform': 30.0.5
- '@jest/types': 30.0.5
- babel-jest: 30.0.5(@babel/core@7.28.0)
- jest-util: 30.0.5
+ '@babel/core': 7.28.4
+ '@jest/transform': 30.2.0
+ '@jest/types': 30.2.0
+ babel-jest: 30.0.5(@babel/core@7.28.4)
+ jest-util: 30.2.0
ts-loader@8.4.0(typescript@4.9.5)(webpack@5.102.0):
dependencies:
@@ -19975,7 +20273,7 @@ snapshots:
unrs-resolver@1.11.1:
dependencies:
- napi-postinstall: 0.3.2
+ napi-postinstall: 0.3.3
optionalDependencies:
'@unrs/resolver-binding-android-arm-eabi': 1.11.1
'@unrs/resolver-binding-android-arm64': 1.11.1
@@ -20171,9 +20469,9 @@ snapshots:
vue-hot-reload-api@2.3.4: {}
- vue-jest@3.0.7(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(vue-template-compiler@2.7.16)(vue@2.7.16):
+ vue-jest@3.0.7(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(vue-template-compiler@2.7.16)(vue@2.7.16):
dependencies:
- babel-core: 7.0.0-bridge.0(@babel/core@7.28.0)
+ babel-core: 7.0.0-bridge.0(@babel/core@7.28.4)
babel-plugin-transform-es2015-modules-commonjs: 6.26.2
chalk: 2.4.2
deasync: 0.1.29
@@ -20190,9 +20488,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
- vue-loader@15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@5.102.0))(ejs@3.1.10)(lodash@4.17.21)(prettier@3.6.2)(vue-template-compiler@2.7.16)(webpack@4.47.0):
+ vue-loader@15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@5.102.0))(ejs@3.1.10)(lodash@4.17.21)(prettier@3.6.2)(vue-template-compiler@2.7.16)(webpack@4.47.0):
dependencies:
- '@vue/component-compiler-utils': 3.3.0(babel-core@7.0.0-bridge.0(@babel/core@7.28.0))(ejs@3.1.10)(lodash@4.17.21)
+ '@vue/component-compiler-utils': 3.3.0(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(lodash@4.17.21)
css-loader: 5.2.7(webpack@5.102.0)
hash-sum: 1.0.2
loader-utils: 1.4.2
@@ -20544,9 +20842,9 @@ snapshots:
wrap-ansi@8.1.0:
dependencies:
- ansi-styles: 6.2.1
+ ansi-styles: 6.2.3
string-width: 5.1.2
- strip-ansi: 7.1.0
+ strip-ansi: 7.1.2
wrap-ansi@9.0.0:
dependencies:
From c9cc41e3648cd5eadd34af90373de817c49db8dc Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 2 Oct 2025 09:38:07 +0000
Subject: [PATCH 024/215] fix(deps): bump gorm.io/gorm from 1.30.2 to 1.31.0 in
/api
Bumps [gorm.io/gorm](https://github.com/go-gorm/gorm) from 1.30.2 to 1.31.0.
- [Release notes](https://github.com/go-gorm/gorm/releases)
- [Commits](https://github.com/go-gorm/gorm/compare/v1.30.2...v1.31.0)
---
updated-dependencies:
- dependency-name: gorm.io/gorm
dependency-version: 1.31.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 2 +-
api/go.sum | 12 ++++++------
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index cb5137b0..25366e2d 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -53,7 +53,7 @@ require (
google.golang.org/api v0.248.0
google.golang.org/protobuf v1.36.9
gorm.io/driver/postgres v1.6.0
- gorm.io/gorm v1.30.2
+ gorm.io/gorm v1.31.0
gorm.io/plugin/opentelemetry v0.1.16
)
diff --git a/api/go.sum b/api/go.sum
index 795e8cc7..f2029025 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -233,8 +233,8 @@ github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D
github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc=
github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
-github.com/mattn/go-sqlite3 v1.14.15 h1:vfoHhTN1af61xCRSWzFIWzx2YskyMTwHLrExkBOjvxI=
-github.com/mattn/go-sqlite3 v1.14.15/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg=
+github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU=
+github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw=
github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s=
github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ=
@@ -533,9 +533,9 @@ gorm.io/driver/mysql v1.6.0 h1:eNbLmNTpPpTOVZi8MMxCi2aaIm0ZpInbORNXDwyLGvg=
gorm.io/driver/mysql v1.6.0/go.mod h1:D/oCC2GWK3M/dqoLxnOlaNKmXz8WNTfcS9y5ovaSqKo=
gorm.io/driver/postgres v1.6.0 h1:2dxzU8xJ+ivvqTRph34QX+WrRaJlmfyPqXmoGVjMBa4=
gorm.io/driver/postgres v1.6.0/go.mod h1:vUw0mrGgrTK+uPHEhAdV4sfFELrByKVGnaVRkXDhtWo=
-gorm.io/driver/sqlite v1.5.0 h1:zKYbzRCpBrT1bNijRnxLDJWPjVfImGEn0lSnUY5gZ+c=
-gorm.io/driver/sqlite v1.5.0/go.mod h1:kDMDfntV9u/vuMmz8APHtHF0b4nyBB7sfCieC6G8k8I=
-gorm.io/gorm v1.30.2 h1:f7bevlVoVe4Byu3pmbWPVHnPsLoWaMjEb7/clyr9Ivs=
-gorm.io/gorm v1.30.2/go.mod h1:8Z33v652h4//uMA76KjeDH8mJXPm1QNCYrMeatR0DOE=
+gorm.io/driver/sqlite v1.6.0 h1:WHRRrIiulaPiPFmDcod6prc4l2VGVWHz80KspNsxSfQ=
+gorm.io/driver/sqlite v1.6.0/go.mod h1:AO9V1qIQddBESngQUKWL9yoH93HIeA1X6V633rBwyT8=
+gorm.io/gorm v1.31.0 h1:0VlycGreVhK7RF/Bwt51Fk8v0xLiiiFdbGDPIZQ7mJY=
+gorm.io/gorm v1.31.0/go.mod h1:XyQVbO2k6YkOis7C2437jSit3SsDK72s7n7rsSHd+Gs=
gorm.io/plugin/opentelemetry v0.1.16 h1:Kypj2YYAliJqkIczDZDde6P6sFMhKSlG5IpngMFQGpc=
gorm.io/plugin/opentelemetry v0.1.16/go.mod h1:P3RmTeZXT+9n0F1ccUqR5uuTvEXDxF8k2UpO7mTIB2Y=
From 9138e3f4b72cb9e0edc9720c376c421364e65307 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 2 Oct 2025 09:38:09 +0000
Subject: [PATCH 025/215] chore(deps-dev): bump babel-jest from 30.0.5 to
30.2.0 in /web
Bumps [babel-jest](https://github.com/jestjs/jest/tree/HEAD/packages/babel-jest) from 30.0.5 to 30.2.0.
- [Release notes](https://github.com/jestjs/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jestjs/jest/commits/v30.2.0/packages/babel-jest)
---
updated-dependencies:
- dependency-name: babel-jest
dependency-version: 30.2.0
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
web/package.json | 2 +-
web/pnpm-lock.yaml | 461 +++++++++++++++------------------------------
2 files changed, 155 insertions(+), 308 deletions(-)
diff --git a/web/package.json b/web/package.json
index c3514024..003515db 100644
--- a/web/package.json
+++ b/web/package.json
@@ -67,7 +67,7 @@
"@vue/test-utils": "^1.3.6",
"axios": "^0.30.2",
"babel-core": "7.0.0-bridge.0",
- "babel-jest": "^30.0.5",
+ "babel-jest": "^30.2.0",
"eslint": "^8.57.1",
"eslint-config-prettier": "^10.1.8",
"eslint-plugin-nuxt": "^4.0.0",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index 6452a732..3aecd36a 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -104,7 +104,7 @@ importers:
version: 7.27.5(@babel/core@7.28.4)(eslint@8.57.1)
'@commitlint/cli':
specifier: ^19.8.1
- version: 19.8.1(@types/node@24.6.1)(typescript@4.9.5)
+ version: 19.8.1(@types/node@24.6.2)(typescript@4.9.5)
'@commitlint/config-conventional':
specifier: ^19.8.0
version: 19.8.0
@@ -119,10 +119,10 @@ importers:
version: 12.1.0(eslint@8.57.1)(typescript@4.9.5)
'@nuxtjs/eslint-module':
specifier: ^4.1.0
- version: 4.1.0(eslint@8.57.1)(rollup@3.29.5)(vite@4.5.3(@types/node@24.6.1)(sass@1.32.13)(terser@5.44.0))(webpack@5.102.0)
+ version: 4.1.0(eslint@8.57.1)(rollup@3.29.5)(vite@4.5.3(@types/node@24.6.2)(sass@1.32.13)(terser@5.44.0))(webpack@5.102.0)
'@nuxtjs/stylelint-module':
specifier: ^5.2.0
- version: 5.2.0(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@24.6.1)(sass@1.32.13)(terser@5.44.0))(webpack@5.102.0)
+ version: 5.2.0(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@24.6.2)(sass@1.32.13)(terser@5.44.0))(webpack@5.102.0)
'@nuxtjs/vuetify':
specifier: ^1.12.3
version: 1.12.3(vue@2.7.16)(webpack@5.102.0)
@@ -139,8 +139,8 @@ importers:
specifier: 7.0.0-bridge.0
version: 7.0.0-bridge.0(@babel/core@7.28.4)
babel-jest:
- specifier: ^30.0.5
- version: 30.0.5(@babel/core@7.28.4)
+ specifier: ^30.2.0
+ version: 30.2.0(@babel/core@7.28.4)
eslint:
specifier: ^8.57.1
version: 8.57.1
@@ -158,7 +158,7 @@ importers:
version: 11.11.1
jest:
specifier: ^30.2.0
- version: 30.2.0(@types/node@24.6.1)
+ version: 30.2.0(@types/node@24.6.2)
lint-staged:
specifier: ^16.1.4
version: 16.1.4
@@ -185,7 +185,7 @@ importers:
version: 34.0.0(stylelint@15.11.0(typescript@4.9.5))
ts-jest:
specifier: ^29.4.0
- version: 29.4.0(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.0.5(@babel/core@7.28.4))(jest-util@30.2.0)(jest@30.2.0(@types/node@24.6.1))(typescript@4.9.5)
+ version: 29.4.0(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.4))(jest-util@30.2.0)(jest@30.2.0(@types/node@24.6.2))(typescript@4.9.5)
vue-client-only:
specifier: ^2.1.0
version: 2.1.0
@@ -209,10 +209,6 @@ packages:
resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==}
engines: {node: '>=6.0.0'}
- '@ampproject/remapping@2.3.0':
- resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
- engines: {node: '>=6.0.0'}
-
'@asamuzakjp/css-color@3.2.0':
resolution: {integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==}
@@ -236,18 +232,14 @@ packages:
resolution: {integrity: sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==}
engines: {node: '>=6.9.0'}
- '@babel/compat-data@7.28.0':
- resolution: {integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==}
+ '@babel/compat-data@7.28.4':
+ resolution: {integrity: sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==}
engines: {node: '>=6.9.0'}
'@babel/core@7.24.7':
resolution: {integrity: sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==}
engines: {node: '>=6.9.0'}
- '@babel/core@7.28.0':
- resolution: {integrity: sha512-UlLAnTPrFdNGoFtbSXwcGFQBtQZJCNjaN6hQNP3UPvuNXT1i82N26KL3dZeIpNalWywr9IuQuncaAfUaS1g6sQ==}
- engines: {node: '>=6.9.0'}
-
'@babel/core@7.28.4':
resolution: {integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==}
engines: {node: '>=6.9.0'}
@@ -263,10 +255,6 @@ packages:
resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==}
engines: {node: '>=6.9.0'}
- '@babel/generator@7.28.0':
- resolution: {integrity: sha512-lJjzvrbEeWrhB4P3QBsH7tey117PjLZnDbLiQEKjQ/fNJTjuq4HSqgFA+UNSwZT8D7dxxbnuSBMsa1lrWzKlQg==}
- engines: {node: '>=6.9.0'}
-
'@babel/generator@7.28.3':
resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==}
engines: {node: '>=6.9.0'}
@@ -366,12 +354,6 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0
- '@babel/helper-module-transforms@7.27.3':
- resolution: {integrity: sha512-dSOvYwvyLsWBeIRyOeHXp5vPj5l1I011r52FM1+r1jCERv+aFXYk4whgQccYEGYxK2H3ZAIA8nuPkQ0HaUo3qg==}
- engines: {node: '>=6.9.0'}
- peerDependencies:
- '@babel/core': ^7.0.0
-
'@babel/helper-module-transforms@7.28.3':
resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==}
engines: {node: '>=6.9.0'}
@@ -456,10 +438,6 @@ packages:
resolution: {integrity: sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==}
engines: {node: '>=6.9.0'}
- '@babel/helpers@7.28.2':
- resolution: {integrity: sha512-/V9771t+EgXz62aCcyofnQhGM8DQACbRhvzKFsXKC9QM+5MadF8ZmIm0crDMaz3+o0h0zXfJnd4EhbYbxsrcFw==}
- engines: {node: '>=6.9.0'}
-
'@babel/helpers@7.28.4':
resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==}
engines: {node: '>=6.9.0'}
@@ -1019,10 +997,6 @@ packages:
resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==}
engines: {node: '>=6.9.0'}
- '@babel/traverse@7.28.0':
- resolution: {integrity: sha512-mGe7UK5wWyh0bKRfupsUchrQGqvDbZDbKJw+kcRGSmdHVYrv+ltd0pnpDTVpiTqnaBru9iEvA8pz8W46v0Amwg==}
- engines: {node: '>=6.9.0'}
-
'@babel/traverse@7.28.4':
resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==}
engines: {node: '>=6.9.0'}
@@ -1959,10 +1933,6 @@ packages:
resolution: {integrity: sha512-wXKgU/lk8fKXMu/l5Hog1R61bL4q5GCdT6OJvdAFz1P+QrpoFuLU68eoKuVc4RbrTtNnTL5FByhWdLgOPSph+Q==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- '@jest/transform@30.0.5':
- resolution: {integrity: sha512-Vk8amLQCmuZyy6GbBht1Jfo9RSdBtg7Lks+B0PecnjI8J+PCLQPGh7uI8Q/2wwpW2gLdiAfiHNsmekKlywULqg==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
'@jest/transform@30.2.0':
resolution: {integrity: sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
@@ -1979,9 +1949,6 @@ packages:
resolution: {integrity: sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- '@jridgewell/gen-mapping@0.3.12':
- resolution: {integrity: sha512-OuLGC46TjB5BbN1dH8JULVVZY4WTdkF7tV9Ys6wLL1rubZnCMstOhNHueU5bLCrnRuDhKPDM4g6sw4Bel5Gzqg==}
-
'@jridgewell/gen-mapping@0.3.13':
resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==}
@@ -2011,15 +1978,9 @@ packages:
'@jridgewell/source-map@0.3.11':
resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==}
- '@jridgewell/sourcemap-codec@1.5.4':
- resolution: {integrity: sha512-VT2+G1VQs/9oz078bLrYbecdZKs912zQlkelYpuf+SXF+QvZDYJlbx/LSx+meSAwdDFnF8FVXW92AVjjkVmgFw==}
-
'@jridgewell/sourcemap-codec@1.5.5':
resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==}
- '@jridgewell/trace-mapping@0.3.29':
- resolution: {integrity: sha512-uw6guiW/gcAGPDhLmd77/6lW8QLeiV5RUTsAX46Db6oLhGaVj4lhnPwb184s1bkc8kdVg/+h988dro8GRDpmYQ==}
-
'@jridgewell/trace-mapping@0.3.31':
resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
@@ -2414,6 +2375,9 @@ packages:
'@types/node@24.6.1':
resolution: {integrity: sha512-ljvjjs3DNXummeIaooB4cLBKg2U6SPI6Hjra/9rRIy7CpM0HpLtG9HptkMKAb4HYWy5S7HUvJEuWgr/y0U8SHw==}
+ '@types/node@24.6.2':
+ resolution: {integrity: sha512-d2L25Y4j+W3ZlNAeMKcy7yDsK425ibcAOO2t7aPTz6gNMH0z2GThtwENCDc0d/Pw9wgyRqE5Px1wkV7naz8ang==}
+
'@types/normalize-package-data@2.4.2':
resolution: {integrity: sha512-lqa4UEhhv/2sjjIQgjX8B+RBjj47eo0mzGasklVJ78UKGQY1r0VpB9XHDaZZO9qzEFDdy4MrXLuEaSmPrPSe/A==}
@@ -2944,10 +2908,6 @@ packages:
resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==}
engines: {node: '>=10'}
- ansi-styles@6.2.1:
- resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
- engines: {node: '>=12'}
-
ansi-styles@6.2.3:
resolution: {integrity: sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==}
engines: {node: '>=12'}
@@ -3093,12 +3053,6 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0-0
- babel-jest@30.0.5:
- resolution: {integrity: sha512-mRijnKimhGDMsizTvBTWotwNpzrkHr+VvZUQBof2AufXKB8NXrL1W69TG20EvOz7aevx6FTJIaBuBkYxS8zolg==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- peerDependencies:
- '@babel/core': ^7.11.0
-
babel-jest@30.2.0:
resolution: {integrity: sha512-0YiBEOxWqKkSQWL9nNGGEgndoeL0ZpWrbLMNL5u/Kaxrli3Eaxlt3ZtIDktEvXt4L/R9r3ODr2zKwGM/2BjxVw==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
@@ -3115,18 +3069,10 @@ packages:
babel-messages@6.23.0:
resolution: {integrity: sha512-Bl3ZiA+LjqaMtNYopA9TYE9HP1tQ+E5dLxE0XrAzcIJeK2UqF0/EaqXwBn9esd4UmTfEab+P+UYQ1GnioFIb/w==}
- babel-plugin-istanbul@7.0.0:
- resolution: {integrity: sha512-C5OzENSx/A+gt7t4VH1I2XsflxyPUmXRFPKBxt33xncdOmq7oROVM3bZv9Ysjjkv8OJYDMa+tKuKMvqU/H3xdw==}
- engines: {node: '>=12'}
-
babel-plugin-istanbul@7.0.1:
resolution: {integrity: sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==}
engines: {node: '>=12'}
- babel-plugin-jest-hoist@30.0.1:
- resolution: {integrity: sha512-zTPME3pI50NsFW8ZBaVIOeAxzEY7XHlmWeXXu9srI+9kNfzCUTy8MFan46xOGZY8NZThMqq+e3qZUKsvXbasnQ==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
babel-plugin-jest-hoist@30.2.0:
resolution: {integrity: sha512-ftzhzSGMUnOzcCXd6WHdBGMyuwy15Wnn0iyyWGKgBDLxf9/s5ABuraCSpBX2uG0jUg4rqJnxsLc5+oYBqoxVaA==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
@@ -3157,12 +3103,6 @@ packages:
peerDependencies:
'@babel/core': ^7.0.0 || ^8.0.0-0
- babel-preset-jest@30.0.1:
- resolution: {integrity: sha512-+YHejD5iTWI46cZmcc/YtX4gaKBtdqCHCVfuVinizVpbmyjO3zYmeuyFdfA8duRqQZfgCAMlsfmkVbJ+e2MAJw==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- peerDependencies:
- '@babel/core': ^7.11.0
-
babel-preset-jest@30.2.0:
resolution: {integrity: sha512-US4Z3NOieAQumwFnYdUWKvUKh8+YSnS/gB3t6YBiz0bskpu7Pine8pPCheNxlPEW4wnUkma2a94YuW2q3guvCQ==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
@@ -3198,6 +3138,10 @@ packages:
resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==}
engines: {node: '>=0.10.0'}
+ baseline-browser-mapping@2.8.10:
+ resolution: {integrity: sha512-uLfgBi+7IBNay8ECBO2mVMGZAc1VgZWEChxm4lv+TobGdG82LnXMjuNGo/BSSZZL4UmkWhxEHP2f5ziLNwGWMA==}
+ hasBin: true
+
baseline-browser-mapping@2.8.9:
resolution: {integrity: sha512-hY/u2lxLrbecMEWSB0IpGzGyDyeoMFQhCvZd2jGFSE5I17Fh01sYUBPCJtkWERw7zrac9+cIghxm/ytJa2X8iA==}
hasBin: true
@@ -3283,6 +3227,11 @@ packages:
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
+ browserslist@4.26.3:
+ resolution: {integrity: sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+
bs-logger@0.2.6:
resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==}
engines: {node: '>= 6'}
@@ -4314,6 +4263,9 @@ packages:
electron-to-chromium@1.5.227:
resolution: {integrity: sha512-ITxuoPfJu3lsNWUi2lBM2PaBPYgH3uqmxut5vmBxgYvyI4AlJ6P3Cai1O76mOrkJCBzq0IxWg/NtqOrpu/0gKA==}
+ electron-to-chromium@1.5.228:
+ resolution: {integrity: sha512-nxkiyuqAn4MJ1QbobwqJILiDtu/jk14hEAWaMiJmNPh1Z+jqoFlBFZjdXwLWGeVSeu9hGLg6+2G9yJaW8rBIFA==}
+
elliptic@6.6.0:
resolution: {integrity: sha512-dpwoQcLc/2WLQvJvLRHKZ+f9FgOdjnq11rurqwekGQygGPsYSK29OMMD2WalatiqQ+XGFDglTNixpPfI+lpaAA==}
@@ -5722,10 +5674,6 @@ packages:
resolution: {integrity: sha512-ElU8v92QJ9UrYsKrxDIKCxu6PfNj4Hdcktcn0JX12zqNdqWHB0N+hwOnnBBXvjLd2vApZtuLUGs1QSY+MsXoNA==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest-haste-map@30.0.5:
- resolution: {integrity: sha512-dkmlWNlsTSR0nH3nRfW5BKbqHefLZv0/6LCccG0xFCTWcJu8TuEwG+5Cm75iBfjVoockmO6J35o5gxtFSn5xeg==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
jest-haste-map@30.2.0:
resolution: {integrity: sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
@@ -5819,10 +5767,6 @@ packages:
resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- jest-worker@30.0.5:
- resolution: {integrity: sha512-ojRXsWzEP16NdUuBw/4H/zkZdHOa7MMYCk4E430l+8fELeLg/mqmMlRhjL7UNZvQrDmnovWZV4DxX03fZF48fQ==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
jest-worker@30.2.0:
resolution: {integrity: sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
@@ -9329,11 +9273,6 @@ snapshots:
'@jridgewell/gen-mapping': 0.3.3
'@jridgewell/trace-mapping': 0.3.31
- '@ampproject/remapping@2.3.0':
- dependencies:
- '@jridgewell/gen-mapping': 0.3.12
- '@jridgewell/trace-mapping': 0.3.29
-
'@asamuzakjp/css-color@3.2.0':
dependencies:
'@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
@@ -9365,7 +9304,7 @@ snapshots:
'@babel/compat-data@7.24.7': {}
- '@babel/compat-data@7.28.0': {}
+ '@babel/compat-data@7.28.4': {}
'@babel/core@7.24.7':
dependencies:
@@ -9387,26 +9326,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/core@7.28.0':
- dependencies:
- '@ampproject/remapping': 2.3.0
- '@babel/code-frame': 7.27.1
- '@babel/generator': 7.28.0
- '@babel/helper-compilation-targets': 7.27.2
- '@babel/helper-module-transforms': 7.27.3(@babel/core@7.28.0)
- '@babel/helpers': 7.28.2
- '@babel/parser': 7.28.0
- '@babel/template': 7.27.2
- '@babel/traverse': 7.28.0
- '@babel/types': 7.28.2
- convert-source-map: 2.0.0
- debug: 4.4.1
- gensync: 1.0.0-beta.2
- json5: 2.2.3
- semver: 6.3.1
- transitivePeerDependencies:
- - supports-color
-
'@babel/core@7.28.4':
dependencies:
'@babel/code-frame': 7.27.1
@@ -9442,14 +9361,6 @@ snapshots:
'@jridgewell/trace-mapping': 0.3.31
jsesc: 2.5.2
- '@babel/generator@7.28.0':
- dependencies:
- '@babel/parser': 7.28.0
- '@babel/types': 7.28.2
- '@jridgewell/gen-mapping': 0.3.12
- '@jridgewell/trace-mapping': 0.3.29
- jsesc: 3.1.0
-
'@babel/generator@7.28.3':
dependencies:
'@babel/parser': 7.28.4
@@ -9483,9 +9394,9 @@ snapshots:
'@babel/helper-compilation-targets@7.27.2':
dependencies:
- '@babel/compat-data': 7.28.0
+ '@babel/compat-data': 7.28.4
'@babel/helper-validator-option': 7.27.1
- browserslist: 4.26.2
+ browserslist: 4.26.3
lru-cache: 5.1.1
semver: 6.3.1
@@ -9584,7 +9495,7 @@ snapshots:
'@babel/helper-module-imports@7.27.1':
dependencies:
- '@babel/traverse': 7.28.0
+ '@babel/traverse': 7.28.4
'@babel/types': 7.28.4
transitivePeerDependencies:
- supports-color
@@ -9600,21 +9511,12 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/helper-module-transforms@7.27.3(@babel/core@7.24.7)':
+ '@babel/helper-module-transforms@7.28.3(@babel/core@7.24.7)':
dependencies:
'@babel/core': 7.24.7
'@babel/helper-module-imports': 7.27.1
'@babel/helper-validator-identifier': 7.27.1
- '@babel/traverse': 7.28.0
- transitivePeerDependencies:
- - supports-color
-
- '@babel/helper-module-transforms@7.27.3(@babel/core@7.28.0)':
- dependencies:
- '@babel/core': 7.28.0
- '@babel/helper-module-imports': 7.27.1
- '@babel/helper-validator-identifier': 7.27.1
- '@babel/traverse': 7.28.0
+ '@babel/traverse': 7.28.4
transitivePeerDependencies:
- supports-color
@@ -9712,11 +9614,6 @@ snapshots:
'@babel/template': 7.27.2
'@babel/types': 7.28.4
- '@babel/helpers@7.28.2':
- dependencies:
- '@babel/template': 7.27.2
- '@babel/types': 7.28.2
-
'@babel/helpers@7.28.4':
dependencies:
'@babel/template': 7.27.2
@@ -10152,7 +10049,7 @@ snapshots:
'@babel/plugin-transform-modules-amd@7.24.7(@babel/core@7.24.7)':
dependencies:
'@babel/core': 7.24.7
- '@babel/helper-module-transforms': 7.27.3(@babel/core@7.24.7)
+ '@babel/helper-module-transforms': 7.28.3(@babel/core@7.24.7)
'@babel/helper-plugin-utils': 7.27.1
transitivePeerDependencies:
- supports-color
@@ -10160,7 +10057,7 @@ snapshots:
'@babel/plugin-transform-modules-commonjs@7.24.7(@babel/core@7.24.7)':
dependencies:
'@babel/core': 7.24.7
- '@babel/helper-module-transforms': 7.27.3(@babel/core@7.24.7)
+ '@babel/helper-module-transforms': 7.28.3(@babel/core@7.24.7)
'@babel/helper-plugin-utils': 7.27.1
'@babel/helper-simple-access': 7.24.7
transitivePeerDependencies:
@@ -10170,7 +10067,7 @@ snapshots:
dependencies:
'@babel/core': 7.24.7
'@babel/helper-hoist-variables': 7.24.7
- '@babel/helper-module-transforms': 7.27.3(@babel/core@7.24.7)
+ '@babel/helper-module-transforms': 7.28.3(@babel/core@7.24.7)
'@babel/helper-plugin-utils': 7.27.1
'@babel/helper-validator-identifier': 7.27.1
transitivePeerDependencies:
@@ -10179,7 +10076,7 @@ snapshots:
'@babel/plugin-transform-modules-umd@7.24.7(@babel/core@7.24.7)':
dependencies:
'@babel/core': 7.24.7
- '@babel/helper-module-transforms': 7.27.3(@babel/core@7.24.7)
+ '@babel/helper-module-transforms': 7.28.3(@babel/core@7.24.7)
'@babel/helper-plugin-utils': 7.27.1
transitivePeerDependencies:
- supports-color
@@ -10451,14 +10348,14 @@ snapshots:
'@babel/template@7.24.7':
dependencies:
'@babel/code-frame': 7.27.1
- '@babel/parser': 7.28.0
+ '@babel/parser': 7.28.4
'@babel/types': 7.28.4
'@babel/template@7.27.2':
dependencies:
'@babel/code-frame': 7.27.1
- '@babel/parser': 7.28.0
- '@babel/types': 7.28.2
+ '@babel/parser': 7.28.4
+ '@babel/types': 7.28.4
'@babel/traverse@7.24.7':
dependencies:
@@ -10468,25 +10365,13 @@ snapshots:
'@babel/helper-function-name': 7.24.7
'@babel/helper-hoist-variables': 7.24.7
'@babel/helper-split-export-declaration': 7.24.7
- '@babel/parser': 7.28.0
+ '@babel/parser': 7.28.4
'@babel/types': 7.28.4
- debug: 4.4.1
+ debug: 4.4.3
globals: 11.12.0
transitivePeerDependencies:
- supports-color
- '@babel/traverse@7.28.0':
- dependencies:
- '@babel/code-frame': 7.27.1
- '@babel/generator': 7.28.0
- '@babel/helper-globals': 7.28.0
- '@babel/parser': 7.28.0
- '@babel/template': 7.27.2
- '@babel/types': 7.28.2
- debug: 4.4.1
- transitivePeerDependencies:
- - supports-color
-
'@babel/traverse@7.28.4':
dependencies:
'@babel/code-frame': 7.27.1
@@ -10511,11 +10396,11 @@ snapshots:
'@bcoe/v8-coverage@0.2.3': {}
- '@commitlint/cli@19.8.1(@types/node@24.6.1)(typescript@4.9.5)':
+ '@commitlint/cli@19.8.1(@types/node@24.6.2)(typescript@4.9.5)':
dependencies:
'@commitlint/format': 19.8.1
'@commitlint/lint': 19.8.1
- '@commitlint/load': 19.8.1(@types/node@24.6.1)(typescript@4.9.5)
+ '@commitlint/load': 19.8.1(@types/node@24.6.2)(typescript@4.9.5)
'@commitlint/read': 19.8.1
'@commitlint/types': 19.8.1
tinyexec: 1.0.1
@@ -10562,7 +10447,7 @@ snapshots:
'@commitlint/rules': 19.8.1
'@commitlint/types': 19.8.1
- '@commitlint/load@19.8.1(@types/node@24.6.1)(typescript@4.9.5)':
+ '@commitlint/load@19.8.1(@types/node@24.6.2)(typescript@4.9.5)':
dependencies:
'@commitlint/config-validator': 19.8.1
'@commitlint/execute-rule': 19.8.1
@@ -10570,7 +10455,7 @@ snapshots:
'@commitlint/types': 19.8.1
chalk: 5.5.0
cosmiconfig: 9.0.0(typescript@4.9.5)
- cosmiconfig-typescript-loader: 6.1.0(@types/node@24.6.1)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5)
+ cosmiconfig-typescript-loader: 6.1.0(@types/node@24.6.2)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5)
lodash.isplainobject: 4.0.6
lodash.merge: 4.6.2
lodash.uniq: 4.5.0
@@ -11448,7 +11333,7 @@ snapshots:
'@grpc/grpc-js@1.6.12':
dependencies:
'@grpc/proto-loader': 0.7.10
- '@types/node': 24.6.1
+ '@types/node': 24.6.2
optional: true
'@grpc/grpc-js@1.9.15':
@@ -11572,7 +11457,7 @@ snapshots:
dependencies:
'@jest/fake-timers': 30.2.0
'@jest/types': 30.2.0
- '@types/node': 24.6.1
+ '@types/node': 24.6.2
jest-mock: 30.2.0
'@jest/expect-utils@30.2.0':
@@ -11599,7 +11484,7 @@ snapshots:
dependencies:
'@jest/types': 30.2.0
'@sinonjs/fake-timers': 13.0.5
- '@types/node': 24.6.1
+ '@types/node': 24.6.2
jest-message-util: 30.2.0
jest-mock: 30.2.0
jest-util: 30.2.0
@@ -11683,26 +11568,6 @@ snapshots:
jest-haste-map: 30.2.0
slash: 3.0.0
- '@jest/transform@30.0.5':
- dependencies:
- '@babel/core': 7.28.0
- '@jest/types': 30.0.5
- '@jridgewell/trace-mapping': 0.3.29
- babel-plugin-istanbul: 7.0.0
- chalk: 4.1.2
- convert-source-map: 2.0.0
- fast-json-stable-stringify: 2.1.0
- graceful-fs: 4.2.11
- jest-haste-map: 30.0.5
- jest-regex-util: 30.0.1
- jest-util: 30.0.5
- micromatch: 4.0.8
- pirates: 4.0.7
- slash: 3.0.0
- write-file-atomic: 5.0.1
- transitivePeerDependencies:
- - supports-color
-
'@jest/transform@30.2.0':
dependencies:
'@babel/core': 7.28.4
@@ -11728,7 +11593,7 @@ snapshots:
'@jest/schemas': 29.6.3
'@types/istanbul-lib-coverage': 2.0.6
'@types/istanbul-reports': 3.0.4
- '@types/node': 24.6.1
+ '@types/node': 24.6.2
'@types/yargs': 17.0.33
chalk: 4.1.2
@@ -11752,11 +11617,6 @@ snapshots:
'@types/yargs': 17.0.33
chalk: 4.1.2
- '@jridgewell/gen-mapping@0.3.12':
- dependencies:
- '@jridgewell/sourcemap-codec': 1.5.5
- '@jridgewell/trace-mapping': 0.3.31
-
'@jridgewell/gen-mapping@0.3.13':
dependencies:
'@jridgewell/sourcemap-codec': 1.5.5
@@ -11790,15 +11650,8 @@ snapshots:
'@jridgewell/gen-mapping': 0.3.13
'@jridgewell/trace-mapping': 0.3.31
- '@jridgewell/sourcemap-codec@1.5.4': {}
-
'@jridgewell/sourcemap-codec@1.5.5': {}
- '@jridgewell/trace-mapping@0.3.29':
- dependencies:
- '@jridgewell/resolve-uri': 3.1.2
- '@jridgewell/sourcemap-codec': 1.5.4
-
'@jridgewell/trace-mapping@0.3.31':
dependencies:
'@jridgewell/resolve-uri': 3.1.2
@@ -12422,14 +12275,14 @@ snapshots:
- eslint-import-resolver-webpack
- supports-color
- '@nuxtjs/eslint-module@4.1.0(eslint@8.57.1)(rollup@3.29.5)(vite@4.5.3(@types/node@24.6.1)(sass@1.32.13)(terser@5.44.0))(webpack@5.102.0)':
+ '@nuxtjs/eslint-module@4.1.0(eslint@8.57.1)(rollup@3.29.5)(vite@4.5.3(@types/node@24.6.2)(sass@1.32.13)(terser@5.44.0))(webpack@5.102.0)':
dependencies:
'@nuxt/kit': 3.7.4(rollup@3.29.5)
chokidar: 3.5.3
eslint: 8.57.1
eslint-webpack-plugin: 4.0.1(eslint@8.57.1)(webpack@5.102.0)
pathe: 1.1.1
- vite-plugin-eslint: 1.8.1(eslint@8.57.1)(vite@4.5.3(@types/node@24.6.1)(sass@1.32.13)(terser@5.44.0))
+ vite-plugin-eslint: 1.8.1(eslint@8.57.1)(vite@4.5.3(@types/node@24.6.2)(sass@1.32.13)(terser@5.44.0))
transitivePeerDependencies:
- rollup
- supports-color
@@ -12460,14 +12313,14 @@ snapshots:
minimatch: 3.1.2
sitemap: 4.1.1
- '@nuxtjs/stylelint-module@5.2.0(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@24.6.1)(sass@1.32.13)(terser@5.44.0))(webpack@5.102.0)':
+ '@nuxtjs/stylelint-module@5.2.0(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@24.6.2)(sass@1.32.13)(terser@5.44.0))(webpack@5.102.0)':
dependencies:
'@nuxt/kit': 3.12.2(rollup@3.29.5)
chokidar: 3.6.0
pathe: 1.1.2
stylelint: 15.11.0(typescript@4.9.5)
stylelint-webpack-plugin: 5.0.1(stylelint@15.11.0(typescript@4.9.5))(webpack@5.102.0)
- vite-plugin-stylelint: 5.3.1(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@24.6.1)(sass@1.32.13)(terser@5.44.0))
+ vite-plugin-stylelint: 5.3.1(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@24.6.2)(sass@1.32.13)(terser@5.44.0))
transitivePeerDependencies:
- '@types/stylelint'
- magicast
@@ -12603,7 +12456,7 @@ snapshots:
'@types/body-parser@1.19.3':
dependencies:
'@types/connect': 3.4.38
- '@types/node': 24.6.1
+ '@types/node': 16.18.55
'@types/compression@1.7.5':
dependencies:
@@ -12640,7 +12493,7 @@ snapshots:
'@types/express-serve-static-core@4.17.37':
dependencies:
- '@types/node': 24.6.1
+ '@types/node': 16.18.55
'@types/qs': 6.9.8
'@types/range-parser': 1.2.5
'@types/send': 0.17.2
@@ -12684,7 +12537,7 @@ snapshots:
'@types/jsonwebtoken@8.5.9':
dependencies:
- '@types/node': 24.6.1
+ '@types/node': 24.6.2
optional: true
'@types/less@3.0.6': {}
@@ -12710,6 +12563,10 @@ snapshots:
dependencies:
undici-types: 7.13.0
+ '@types/node@24.6.2':
+ dependencies:
+ undici-types: 7.13.0
+
'@types/normalize-package-data@2.4.2': {}
'@types/optimize-css-assets-webpack-plugin@5.0.8':
@@ -13385,8 +13242,6 @@ snapshots:
ansi-styles@5.2.0: {}
- ansi-styles@6.2.1: {}
-
ansi-styles@6.2.3: {}
anymatch@2.0.0:
@@ -13550,19 +13405,6 @@ snapshots:
dependencies:
'@babel/core': 7.28.4
- babel-jest@30.0.5(@babel/core@7.28.4):
- dependencies:
- '@babel/core': 7.28.4
- '@jest/transform': 30.0.5
- '@types/babel__core': 7.20.5
- babel-plugin-istanbul: 7.0.0
- babel-preset-jest: 30.0.1(@babel/core@7.28.4)
- chalk: 4.1.2
- graceful-fs: 4.2.11
- slash: 3.0.0
- transitivePeerDependencies:
- - supports-color
-
babel-jest@30.2.0(@babel/core@7.28.4):
dependencies:
'@babel/core': 7.28.4
@@ -13589,16 +13431,6 @@ snapshots:
dependencies:
babel-runtime: 6.26.0
- babel-plugin-istanbul@7.0.0:
- dependencies:
- '@babel/helper-plugin-utils': 7.27.1
- '@istanbuljs/load-nyc-config': 1.1.0
- '@istanbuljs/schema': 0.1.3
- istanbul-lib-instrument: 6.0.3
- test-exclude: 6.0.0
- transitivePeerDependencies:
- - supports-color
-
babel-plugin-istanbul@7.0.1:
dependencies:
'@babel/helper-plugin-utils': 7.27.1
@@ -13609,12 +13441,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- babel-plugin-jest-hoist@30.0.1:
- dependencies:
- '@babel/template': 7.27.2
- '@babel/types': 7.28.2
- '@types/babel__core': 7.20.5
-
babel-plugin-jest-hoist@30.2.0:
dependencies:
'@types/babel__core': 7.20.5
@@ -13676,12 +13502,6 @@ snapshots:
'@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.28.4)
'@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.28.4)
- babel-preset-jest@30.0.1(@babel/core@7.28.4):
- dependencies:
- '@babel/core': 7.28.4
- babel-plugin-jest-hoist: 30.0.1
- babel-preset-current-node-syntax: 1.2.0(@babel/core@7.28.4)
-
babel-preset-jest@30.2.0(@babel/core@7.28.4):
dependencies:
'@babel/core': 7.28.4
@@ -13742,6 +13562,8 @@ snapshots:
mixin-deep: 1.3.2
pascalcase: 0.1.1
+ baseline-browser-mapping@2.8.10: {}
+
baseline-browser-mapping@2.8.9: {}
big.js@5.2.2: {}
@@ -13866,6 +13688,14 @@ snapshots:
node-releases: 2.0.21
update-browserslist-db: 1.1.3(browserslist@4.26.2)
+ browserslist@4.26.3:
+ dependencies:
+ baseline-browser-mapping: 2.8.10
+ caniuse-lite: 1.0.30001746
+ electron-to-chromium: 1.5.228
+ node-releases: 2.0.21
+ update-browserslist-db: 1.1.3(browserslist@4.26.3)
+
bs-logger@0.2.6:
dependencies:
fast-json-stable-stringify: 2.1.0
@@ -14025,7 +13855,7 @@ snapshots:
caniuse-api@3.0.0:
dependencies:
- browserslist: 4.26.2
+ browserslist: 4.26.3
caniuse-lite: 1.0.30001746
lodash.memoize: 4.1.2
lodash.uniq: 4.5.0
@@ -14358,9 +14188,9 @@ snapshots:
core-util-is@1.0.3: {}
- cosmiconfig-typescript-loader@6.1.0(@types/node@24.6.1)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5):
+ cosmiconfig-typescript-loader@6.1.0(@types/node@24.6.2)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5):
dependencies:
- '@types/node': 24.6.1
+ '@types/node': 24.6.2
cosmiconfig: 9.0.0(typescript@4.9.5)
jiti: 2.5.1
typescript: 4.9.5
@@ -14896,6 +14726,8 @@ snapshots:
electron-to-chromium@1.5.227: {}
+ electron-to-chromium@1.5.228: {}
+
elliptic@6.6.0:
dependencies:
bn.js: 4.12.0
@@ -16539,8 +16371,8 @@ snapshots:
istanbul-lib-instrument@6.0.3:
dependencies:
- '@babel/core': 7.28.0
- '@babel/parser': 7.28.0
+ '@babel/core': 7.28.4
+ '@babel/parser': 7.28.4
'@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.2
semver: 7.7.2
@@ -16591,7 +16423,7 @@ snapshots:
'@jest/expect': 30.2.0
'@jest/test-result': 30.2.0
'@jest/types': 30.2.0
- '@types/node': 24.6.1
+ '@types/node': 24.6.2
chalk: 4.1.2
co: 4.6.0
dedent: 1.7.0
@@ -16611,7 +16443,7 @@ snapshots:
- babel-plugin-macros
- supports-color
- jest-cli@30.2.0(@types/node@24.6.1):
+ jest-cli@30.2.0(@types/node@24.6.2):
dependencies:
'@jest/core': 30.2.0
'@jest/test-result': 30.2.0
@@ -16619,7 +16451,7 @@ snapshots:
chalk: 4.1.2
exit-x: 0.2.2
import-local: 3.2.0
- jest-config: 30.2.0(@types/node@24.6.1)
+ jest-config: 30.2.0(@types/node@24.6.2)
jest-util: 30.2.0
jest-validate: 30.2.0
yargs: 17.7.2
@@ -16662,6 +16494,38 @@ snapshots:
- babel-plugin-macros
- supports-color
+ jest-config@30.2.0(@types/node@24.6.2):
+ dependencies:
+ '@babel/core': 7.28.4
+ '@jest/get-type': 30.1.0
+ '@jest/pattern': 30.0.1
+ '@jest/test-sequencer': 30.2.0
+ '@jest/types': 30.2.0
+ babel-jest: 30.2.0(@babel/core@7.28.4)
+ chalk: 4.1.2
+ ci-info: 4.3.0
+ deepmerge: 4.3.1
+ glob: 10.4.5
+ graceful-fs: 4.2.11
+ jest-circus: 30.2.0
+ jest-docblock: 30.2.0
+ jest-environment-node: 30.2.0
+ jest-regex-util: 30.0.1
+ jest-resolve: 30.2.0
+ jest-runner: 30.2.0
+ jest-util: 30.2.0
+ jest-validate: 30.2.0
+ micromatch: 4.0.8
+ parse-json: 5.2.0
+ pretty-format: 30.2.0
+ slash: 3.0.0
+ strip-json-comments: 3.1.1
+ optionalDependencies:
+ '@types/node': 24.6.2
+ transitivePeerDependencies:
+ - babel-plugin-macros
+ - supports-color
+
jest-diff@30.2.0:
dependencies:
'@jest/diff-sequences': 30.0.1
@@ -16698,30 +16562,15 @@ snapshots:
'@jest/environment': 30.2.0
'@jest/fake-timers': 30.2.0
'@jest/types': 30.2.0
- '@types/node': 24.6.1
+ '@types/node': 24.6.2
jest-mock: 30.2.0
jest-util: 30.2.0
jest-validate: 30.2.0
- jest-haste-map@30.0.5:
- dependencies:
- '@jest/types': 30.0.5
- '@types/node': 24.6.1
- anymatch: 3.1.3
- fb-watchman: 2.0.2
- graceful-fs: 4.2.11
- jest-regex-util: 30.0.1
- jest-util: 30.0.5
- jest-worker: 30.0.5
- micromatch: 4.0.8
- walker: 1.0.8
- optionalDependencies:
- fsevents: 2.3.3
-
jest-haste-map@30.2.0:
dependencies:
'@jest/types': 30.2.0
- '@types/node': 24.6.1
+ '@types/node': 24.6.2
anymatch: 3.1.3
fb-watchman: 2.0.2
graceful-fs: 4.2.11
@@ -16778,7 +16627,7 @@ snapshots:
jest-mock@30.2.0:
dependencies:
'@jest/types': 30.2.0
- '@types/node': 24.6.1
+ '@types/node': 24.6.2
jest-util: 30.2.0
jest-pnp-resolver@1.2.3(jest-resolve@30.2.0):
@@ -16906,7 +16755,7 @@ snapshots:
jest-util@30.2.0:
dependencies:
'@jest/types': 30.2.0
- '@types/node': 24.6.1
+ '@types/node': 24.6.2
chalk: 4.1.2
ci-info: 4.3.0
graceful-fs: 4.2.11
@@ -16934,7 +16783,7 @@ snapshots:
jest-worker@26.6.2:
dependencies:
- '@types/node': 24.6.1
+ '@types/node': 24.6.2
merge-stream: 2.0.0
supports-color: 7.2.0
@@ -16951,28 +16800,20 @@ snapshots:
merge-stream: 2.0.0
supports-color: 8.1.1
- jest-worker@30.0.5:
- dependencies:
- '@types/node': 24.6.1
- '@ungap/structured-clone': 1.3.0
- jest-util: 30.0.5
- merge-stream: 2.0.0
- supports-color: 8.1.1
-
jest-worker@30.2.0:
dependencies:
- '@types/node': 24.6.1
+ '@types/node': 24.6.2
'@ungap/structured-clone': 1.3.0
jest-util: 30.2.0
merge-stream: 2.0.0
supports-color: 8.1.1
- jest@30.2.0(@types/node@24.6.1):
+ jest@30.2.0(@types/node@24.6.2):
dependencies:
'@jest/core': 30.2.0
'@jest/types': 30.2.0
import-local: 3.2.0
- jest-cli: 30.2.0(@types/node@24.6.1)
+ jest-cli: 30.2.0(@types/node@24.6.2)
transitivePeerDependencies:
- '@types/node'
- babel-plugin-macros
@@ -18254,7 +18095,7 @@ snapshots:
postcss-colormin@5.3.1(postcss@8.4.39):
dependencies:
- browserslist: 4.26.2
+ browserslist: 4.26.3
caniuse-api: 3.0.0
colord: 2.9.3
postcss: 8.4.39
@@ -18262,7 +18103,7 @@ snapshots:
postcss-colormin@7.0.1(postcss@8.4.39):
dependencies:
- browserslist: 4.26.2
+ browserslist: 4.26.3
caniuse-api: 3.0.0
colord: 2.9.3
postcss: 8.4.39
@@ -18270,13 +18111,13 @@ snapshots:
postcss-convert-values@5.1.3(postcss@8.4.39):
dependencies:
- browserslist: 4.26.2
+ browserslist: 4.26.3
postcss: 8.4.39
postcss-value-parser: 4.2.0
postcss-convert-values@7.0.1(postcss@8.4.39):
dependencies:
- browserslist: 4.26.2
+ browserslist: 4.26.3
postcss: 8.4.39
postcss-value-parser: 4.2.0
@@ -18430,7 +18271,7 @@ snapshots:
postcss-merge-rules@5.1.4(postcss@8.4.39):
dependencies:
- browserslist: 4.26.2
+ browserslist: 4.26.3
caniuse-api: 3.0.0
cssnano-utils: 3.1.0(postcss@8.4.39)
postcss: 8.4.39
@@ -18438,7 +18279,7 @@ snapshots:
postcss-merge-rules@7.0.2(postcss@8.4.39):
dependencies:
- browserslist: 4.26.2
+ browserslist: 4.26.3
caniuse-api: 3.0.0
cssnano-utils: 5.0.0(postcss@8.4.39)
postcss: 8.4.39
@@ -18470,14 +18311,14 @@ snapshots:
postcss-minify-params@5.1.4(postcss@8.4.39):
dependencies:
- browserslist: 4.26.2
+ browserslist: 4.26.3
cssnano-utils: 3.1.0(postcss@8.4.39)
postcss: 8.4.39
postcss-value-parser: 4.2.0
postcss-minify-params@7.0.1(postcss@8.4.39):
dependencies:
- browserslist: 4.26.2
+ browserslist: 4.26.3
cssnano-utils: 5.0.0(postcss@8.4.39)
postcss: 8.4.39
postcss-value-parser: 4.2.0
@@ -18581,13 +18422,13 @@ snapshots:
postcss-normalize-unicode@5.1.1(postcss@8.4.39):
dependencies:
- browserslist: 4.26.2
+ browserslist: 4.26.3
postcss: 8.4.39
postcss-value-parser: 4.2.0
postcss-normalize-unicode@7.0.1(postcss@8.4.39):
dependencies:
- browserslist: 4.26.2
+ browserslist: 4.26.3
postcss: 8.4.39
postcss-value-parser: 4.2.0
@@ -18713,13 +18554,13 @@ snapshots:
postcss-reduce-initial@5.1.2(postcss@8.4.39):
dependencies:
- browserslist: 4.26.2
+ browserslist: 4.26.3
caniuse-api: 3.0.0
postcss: 8.4.39
postcss-reduce-initial@7.0.1(postcss@8.4.39):
dependencies:
- browserslist: 4.26.2
+ browserslist: 4.26.3
caniuse-api: 3.0.0
postcss: 8.4.39
@@ -18893,7 +18734,7 @@ snapshots:
'@protobufjs/pool': 1.1.0
'@protobufjs/utf8': 1.1.0
'@types/long': 4.0.2
- '@types/node': 24.6.1
+ '@types/node': 24.6.2
long: 4.0.0
optional: true
@@ -18910,7 +18751,7 @@ snapshots:
'@protobufjs/pool': 1.1.0
'@protobufjs/utf8': 1.1.0
'@types/long': 4.0.2
- '@types/node': 24.6.1
+ '@types/node': 24.6.2
long: 4.0.0
optional: true
@@ -18926,7 +18767,7 @@ snapshots:
'@protobufjs/path': 1.1.2
'@protobufjs/pool': 1.1.0
'@protobufjs/utf8': 1.1.0
- '@types/node': 24.6.1
+ '@types/node': 24.6.2
long: 5.2.3
protocols@2.0.1: {}
@@ -19187,7 +19028,7 @@ snapshots:
retry-request@4.2.2:
dependencies:
- debug: 4.4.1
+ debug: 4.4.3
extend: 3.0.2
transitivePeerDependencies:
- supports-color
@@ -19716,13 +19557,13 @@ snapshots:
stylehacks@5.1.1(postcss@8.4.39):
dependencies:
- browserslist: 4.26.2
+ browserslist: 4.26.3
postcss: 8.4.39
postcss-selector-parser: 6.1.2
stylehacks@7.0.2(postcss@8.4.39):
dependencies:
- browserslist: 4.26.2
+ browserslist: 4.26.3
postcss: 8.4.39
postcss-selector-parser: 6.1.2
@@ -20044,12 +19885,12 @@ snapshots:
dependencies:
typescript: 4.9.5
- ts-jest@29.4.0(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.0.5(@babel/core@7.28.4))(jest-util@30.2.0)(jest@30.2.0(@types/node@24.6.1))(typescript@4.9.5):
+ ts-jest@29.4.0(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.4))(jest-util@30.2.0)(jest@30.2.0(@types/node@24.6.2))(typescript@4.9.5):
dependencies:
bs-logger: 0.2.6
ejs: 3.1.10
fast-json-stable-stringify: 2.1.0
- jest: 30.2.0(@types/node@24.6.1)
+ jest: 30.2.0(@types/node@24.6.2)
json5: 2.2.3
lodash.memoize: 4.1.2
make-error: 1.3.6
@@ -20061,7 +19902,7 @@ snapshots:
'@babel/core': 7.28.4
'@jest/transform': 30.2.0
'@jest/types': 30.2.0
- babel-jest: 30.0.5(@babel/core@7.28.4)
+ babel-jest: 30.2.0(@babel/core@7.28.4)
jest-util: 30.2.0
ts-loader@8.4.0(typescript@4.9.5)(webpack@5.102.0):
@@ -20303,7 +20144,7 @@ snapshots:
untyped@1.4.0:
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/standalone': 7.23.1
'@babel/types': 7.28.2
defu: 6.1.4
@@ -20315,7 +20156,7 @@ snapshots:
untyped@1.4.2:
dependencies:
- '@babel/core': 7.28.0
+ '@babel/core': 7.28.4
'@babel/standalone': 7.24.7
'@babel/types': 7.28.2
defu: 6.1.4
@@ -20336,6 +20177,12 @@ snapshots:
escalade: 3.2.0
picocolors: 1.1.1
+ update-browserslist-db@1.1.3(browserslist@4.26.3):
+ dependencies:
+ browserslist: 4.26.3
+ escalade: 3.2.0
+ picocolors: 1.1.1
+
uri-js@4.4.1:
dependencies:
punycode: 2.3.0
@@ -20393,34 +20240,34 @@ snapshots:
vary@1.1.2: {}
- vite-plugin-eslint@1.8.1(eslint@8.57.1)(vite@4.5.3(@types/node@24.6.1)(sass@1.32.13)(terser@5.44.0)):
+ vite-plugin-eslint@1.8.1(eslint@8.57.1)(vite@4.5.3(@types/node@24.6.2)(sass@1.32.13)(terser@5.44.0)):
dependencies:
'@rollup/pluginutils': 4.2.1
'@types/eslint': 8.44.3
eslint: 8.57.1
rollup: 2.79.2
- vite: 4.5.3(@types/node@24.6.1)(sass@1.32.13)(terser@5.44.0)
+ vite: 4.5.3(@types/node@24.6.2)(sass@1.32.13)(terser@5.44.0)
- vite-plugin-stylelint@5.3.1(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@24.6.1)(sass@1.32.13)(terser@5.44.0)):
+ vite-plugin-stylelint@5.3.1(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@24.6.2)(sass@1.32.13)(terser@5.44.0)):
dependencies:
'@rollup/pluginutils': 5.1.0(rollup@3.29.5)
chokidar: 3.6.0
debug: 4.4.1
stylelint: 15.11.0(typescript@4.9.5)
- vite: 4.5.3(@types/node@24.6.1)(sass@1.32.13)(terser@5.44.0)
+ vite: 4.5.3(@types/node@24.6.2)(sass@1.32.13)(terser@5.44.0)
optionalDependencies:
postcss: 8.4.39
rollup: 3.29.5
transitivePeerDependencies:
- supports-color
- vite@4.5.3(@types/node@24.6.1)(sass@1.32.13)(terser@5.44.0):
+ vite@4.5.3(@types/node@24.6.2)(sass@1.32.13)(terser@5.44.0):
dependencies:
esbuild: 0.18.20
postcss: 8.5.6
rollup: 3.29.5
optionalDependencies:
- '@types/node': 24.6.1
+ '@types/node': 24.6.2
fsevents: 2.3.3
sass: 1.32.13
terser: 5.44.0
@@ -20849,7 +20696,7 @@ snapshots:
wrap-ansi@9.0.0:
dependencies:
- ansi-styles: 6.2.1
+ ansi-styles: 6.2.3
string-width: 7.2.0
strip-ansi: 7.1.0
From 015f08a6b08e05c4a21226d6b0642518c13ae7ca Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 2 Oct 2025 09:38:36 +0000
Subject: [PATCH 026/215] chore(deps-dev): bump node-fetch-native from 1.6.4 to
1.6.7 in /web
Bumps [node-fetch-native](https://github.com/unjs/node-fetch-native) from 1.6.4 to 1.6.7.
- [Release notes](https://github.com/unjs/node-fetch-native/releases)
- [Changelog](https://github.com/unjs/node-fetch-native/blob/main/CHANGELOG.md)
- [Commits](https://github.com/unjs/node-fetch-native/compare/v1.6.4...v1.6.7)
---
updated-dependencies:
- dependency-name: node-fetch-native
dependency-version: 1.6.7
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
web/package.json | 2 +-
web/pnpm-lock.yaml | 18 +++++++++---------
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/web/package.json b/web/package.json
index c3514024..a6e03aec 100644
--- a/web/package.json
+++ b/web/package.json
@@ -75,7 +75,7 @@
"highlight.js": "^11.11.1",
"jest": "^30.2.0",
"lint-staged": "^16.1.4",
- "node-fetch-native": "^1.6.4",
+ "node-fetch-native": "^1.6.7",
"postcss-html": "^1.7.0",
"prettier": "3.6.2",
"stylelint": "^15.11.0",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index 6452a732..c3df03e0 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -163,8 +163,8 @@ importers:
specifier: ^16.1.4
version: 16.1.4
node-fetch-native:
- specifier: ^1.6.4
- version: 1.6.4
+ specifier: ^1.6.7
+ version: 1.6.7
postcss-html:
specifier: ^1.7.0
version: 1.7.0
@@ -6516,8 +6516,8 @@ packages:
resolution: {integrity: sha512-BOb67bWg2dTyax5kdef5WfU3X8xu4wPg+zHzkvls0Q/QpYycIFRLEEIdAx9Wma43DxG6Qzn4illdZoYseKWa4A==}
engines: {node: '>= 0.4.6'}
- node-fetch-native@1.6.4:
- resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==}
+ node-fetch-native@1.6.7:
+ resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==}
node-fetch@2.7.0:
resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
@@ -12115,7 +12115,7 @@ snapshots:
dependencies:
chalk: 4.1.2
consola: 3.2.3
- node-fetch-native: 1.6.4
+ node-fetch-native: 1.6.7
'@nuxt/schema@3.12.2(rollup@3.29.5)':
dependencies:
@@ -12246,7 +12246,7 @@ snapshots:
'@nuxt/vue-app@2.18.1':
dependencies:
- node-fetch-native: 1.6.4
+ node-fetch-native: 1.6.7
ufo: 1.6.1
unfetch: 5.0.0
vue: 2.7.16
@@ -15849,7 +15849,7 @@ snapshots:
defu: 6.1.4
https-proxy-agent: 5.0.1
mri: 1.2.0
- node-fetch-native: 1.6.4
+ node-fetch-native: 1.6.7
pathe: 1.1.2
tar: 6.2.0
transitivePeerDependencies:
@@ -15860,7 +15860,7 @@ snapshots:
citty: 0.1.6
consola: 3.2.3
defu: 6.1.4
- node-fetch-native: 1.6.4
+ node-fetch-native: 1.6.7
nypm: 0.3.9
ohash: 1.1.4
pathe: 1.1.2
@@ -17702,7 +17702,7 @@ snapshots:
clone: 2.1.2
lodash: 4.17.21
- node-fetch-native@1.6.4: {}
+ node-fetch-native@1.6.7: {}
node-fetch@2.7.0:
dependencies:
From 23e4b96f9691d91d9e866fb713192e6701df0a2e Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 2 Oct 2025 09:39:11 +0000
Subject: [PATCH 027/215] fix(deps): bump
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace
Bumps [github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace](https://github.com/GoogleCloudPlatform/opentelemetry-operations-go) from 1.29.0 to 1.30.0.
- [Release notes](https://github.com/GoogleCloudPlatform/opentelemetry-operations-go/releases)
- [Commits](https://github.com/GoogleCloudPlatform/opentelemetry-operations-go/compare/detectors/gcp/v1.29.0...detectors/gcp/v1.30.0)
---
updated-dependencies:
- dependency-name: github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace
dependency-version: 1.30.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 40 ++++++++++++------------
api/go.sum | 90 ++++++++++++++++++++++++++++--------------------------
2 files changed, 66 insertions(+), 64 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index cb5137b0..9c51f73f 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -8,7 +8,7 @@ require (
cloud.google.com/go/cloudtasks v1.13.7
firebase.google.com/go v3.13.0+incompatible
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.53.0
- github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.29.0
+ github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.30.0
github.com/NdoleStudio/go-otelroundtripper v0.0.12
github.com/NdoleStudio/lemonsqueezy-go v1.2.4
github.com/avast/retry-go v3.0.0+incompatible
@@ -50,7 +50,7 @@ require (
go.opentelemetry.io/otel/sdk v1.38.0
go.opentelemetry.io/otel/sdk/metric v1.38.0
go.opentelemetry.io/otel/trace v1.38.0
- google.golang.org/api v0.248.0
+ google.golang.org/api v0.249.0
google.golang.org/protobuf v1.36.9
gorm.io/driver/postgres v1.6.0
gorm.io/gorm v1.30.2
@@ -62,7 +62,7 @@ require (
cloud.google.com/go v0.121.3 // indirect
cloud.google.com/go/auth v0.16.5 // indirect
cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect
- cloud.google.com/go/compute/metadata v0.8.0 // indirect
+ cloud.google.com/go/compute/metadata v0.9.0 // indirect
cloud.google.com/go/firestore v1.18.0 // indirect
cloud.google.com/go/iam v1.5.2 // indirect
cloud.google.com/go/longrunning v0.6.7 // indirect
@@ -74,7 +74,7 @@ require (
github.com/ClickHouse/ch-go v0.66.1 // indirect
github.com/ClickHouse/clickhouse-go/v2 v2.37.2 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.29.0 // indirect
- github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.53.0 // indirect
+ github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.54.0 // indirect
github.com/KyleBanks/depth v1.2.1 // indirect
github.com/Masterminds/goutils v1.1.1 // indirect
github.com/Masterminds/semver v1.5.0 // indirect
@@ -150,11 +150,11 @@ require (
github.com/xuri/efp v0.0.1 // indirect
github.com/xuri/nfp v0.0.1 // indirect
github.com/zeebo/errs v1.4.0 // indirect
- go.opentelemetry.io/auto/sdk v1.1.0 // indirect
+ go.opentelemetry.io/auto/sdk v1.2.1 // indirect
go.opentelemetry.io/contrib v1.37.0 // indirect
go.opentelemetry.io/contrib/detectors/gcp v1.37.0 // indirect
- go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.62.0 // indirect
- go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.62.0 // indirect
+ go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0 // indirect
+ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 // indirect
go.opentelemetry.io/contrib/instrumentation/runtime v0.62.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.13.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.37.0 // indirect
@@ -166,21 +166,21 @@ require (
go.opentelemetry.io/proto/otlp v1.7.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.0 // indirect
- golang.org/x/crypto v0.41.0 // indirect
+ golang.org/x/crypto v0.42.0 // indirect
golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b // indirect
- golang.org/x/mod v0.26.0 // indirect
- golang.org/x/net v0.43.0 // indirect
- golang.org/x/oauth2 v0.30.0 // indirect
- golang.org/x/sync v0.16.0 // indirect
- golang.org/x/sys v0.35.0 // indirect
- golang.org/x/text v0.28.0 // indirect
- golang.org/x/time v0.12.0 // indirect
- golang.org/x/tools v0.35.0 // indirect
+ golang.org/x/mod v0.27.0 // indirect
+ golang.org/x/net v0.44.0 // indirect
+ golang.org/x/oauth2 v0.31.0 // indirect
+ golang.org/x/sync v0.17.0 // indirect
+ golang.org/x/sys v0.36.0 // indirect
+ golang.org/x/text v0.29.0 // indirect
+ golang.org/x/time v0.13.0 // indirect
+ golang.org/x/tools v0.36.0 // indirect
google.golang.org/appengine v1.6.8 // indirect
- google.golang.org/genproto v0.0.0-20250603155806-513f23925822 // indirect
- google.golang.org/genproto/googleapis/api v0.0.0-20250818200422-3122310a409c // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20250818200422-3122310a409c // indirect
- google.golang.org/grpc v1.74.2 // indirect
+ google.golang.org/genproto v0.0.0-20250922171735-9219d122eba9 // indirect
+ google.golang.org/genproto/googleapis/api v0.0.0-20250922171735-9219d122eba9 // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20250922171735-9219d122eba9 // indirect
+ google.golang.org/grpc v1.75.1 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
gorm.io/driver/clickhouse v0.7.0 // indirect
gorm.io/driver/mysql v1.6.0 // indirect
diff --git a/api/go.sum b/api/go.sum
index 795e8cc7..2a786b82 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -10,8 +10,8 @@ cloud.google.com/go/auth/oauth2adapt v0.2.8 h1:keo8NaayQZ6wimpNSmW5OPc283g65QNIi
cloud.google.com/go/auth/oauth2adapt v0.2.8/go.mod h1:XQ9y31RkqZCcwJWNSx2Xvric3RrU88hAYYbjDWYDL+c=
cloud.google.com/go/cloudtasks v1.13.7 h1:H2v8GEolNtMFfYzUpZBaZbydqU7drpyo99GtAgA+m4I=
cloud.google.com/go/cloudtasks v1.13.7/go.mod h1:H0TThOUG+Ml34e2+ZtW6k6nt4i9KuH3nYAJ5mxh7OM4=
-cloud.google.com/go/compute/metadata v0.8.0 h1:HxMRIbao8w17ZX6wBnjhcDkW6lTFpgcaobyVfZWqRLA=
-cloud.google.com/go/compute/metadata v0.8.0/go.mod h1:sYOGTp851OV9bOFJ9CH7elVvyzopvWQFNNghtDQ/Biw=
+cloud.google.com/go/compute/metadata v0.9.0 h1:pDUj4QMoPejqq20dK0Pg2N4yG9zIkYGdBtwLoEkH9Zs=
+cloud.google.com/go/compute/metadata v0.9.0/go.mod h1:E0bWwX5wTnLPedCKqk3pJmVgCBSM6qQI1yTBdEb3C10=
cloud.google.com/go/firestore v1.18.0 h1:cuydCaLS7Vl2SatAeivXyhbhDEIR8BDmtn4egDhIn2s=
cloud.google.com/go/firestore v1.18.0/go.mod h1:5ye0v48PhseZBdcl0qbl3uttu7FIEwEYVaWm0UIEOEU=
cloud.google.com/go/iam v1.5.2 h1:qgFRAGEmd8z6dJ/qyEchAuL9jpswyODjA2lS+w234g8=
@@ -40,12 +40,12 @@ github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.29.0
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.29.0/go.mod h1:Cz6ft6Dkn3Et6l2v2a9/RpN7epQ1GtDlO6lj8bEcOvw=
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.53.0 h1:owcC2UnmsZycprQ5RfRgjydWhuoxg71LUfyiQdijZuM=
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.53.0/go.mod h1:ZPpqegjbE99EPKsu3iUWV22A04wzGPcAY/ziSIQEEgs=
-github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.29.0 h1:YVtMlmfRUTaWs3+1acwMBp7rBUo6zrxl6Kn13/R9YW4=
-github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.29.0/go.mod h1:rKOFVIPbNs2wZeh7ZeQ0D9p/XLgbNiTr5m7x6KuAshk=
-github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.53.0 h1:4LP6hvB4I5ouTbGgWtixJhgED6xdf67twf9PoY96Tbg=
-github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.53.0/go.mod h1:jUZ5LYlw40WMd07qxcQJD5M40aUxrfwqQX1g7zxYnrQ=
-github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.53.0 h1:Ron4zCA/yk6U7WOBXhTJcDpsUBG9npumK6xw2auFltQ=
-github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.53.0/go.mod h1:cSgYe11MCNYunTnRXrKiR/tHc0eoKjICUuWpNZoVCOo=
+github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.30.0 h1:5eCqTd9rTwMlE62z0xFdzPJ+3pji75hJrwq1jrCjo5w=
+github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.30.0/go.mod h1:4BcvJy7WxY8X2eX49z2VO1ByhO+CcQK8lKPCH/QlZvo=
+github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.54.0 h1:xfK3bbi6F2RDtaZFtUdKO3osOBIhNb+xTs8lFW6yx9o=
+github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.54.0/go.mod h1:vB2GH9GAYYJTO3mEn8oYwzEdhlayZIdQz6zdzgUIRvA=
+github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.54.0 h1:s0WlVbf9qpvkh1c/uDAPElam0WrL7fHRIidgZJ7UqZI=
+github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.54.0/go.mod h1:Mf6O40IAyB9zR/1J8nGDDPirZQQPbYJni8Yisy7NTMc=
github.com/KyleBanks/depth v1.2.1 h1:5h8fQADFrWtarTdtDudMmGsC7GPbOAu6RVB3ffsVFHc=
github.com/KyleBanks/depth v1.2.1/go.mod h1:jzSb9d0L43HxTQfT+oSA1EEp2q+ne2uh6XgeJcm8brE=
github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI=
@@ -281,8 +281,8 @@ github.com/richardlehane/msoleps v1.0.4/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTK
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
-github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
-github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
+github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
+github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0=
github.com/rs/zerolog v1.34.0 h1:k43nTLIwcTVQAncfCw4KZ2VY6ukYoZaBPNOE8txlOeY=
github.com/rs/zerolog v1.34.0/go.mod h1:bJsvje4Z08ROH4Nhs5iH600c3IkWhwp44iRc54W6wYQ=
@@ -339,16 +339,16 @@ github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5t
github.com/zeebo/errs v1.4.0 h1:XNdoD/RRMKP7HD0UhJnIzUy74ISdGGxURlYG8HSWSfM=
github.com/zeebo/errs v1.4.0/go.mod h1:sgbWHsvVuTPHcqJJGQ1WhI5KbWlHYz+2+2C/LSEtCw4=
go.mongodb.org/mongo-driver v1.11.4/go.mod h1:PTSz5yu21bkT/wXpkS7WR5f0ddqw5quethTUn9WM+2g=
-go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
-go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
+go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64=
+go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y=
go.opentelemetry.io/contrib v1.37.0 h1:D6KBfpW31z7ty0qbheujzwJDsqubVGYoaBJojh5vYnY=
go.opentelemetry.io/contrib v1.37.0/go.mod h1:V0PijCkYR5XurE5ytnNJuqWMXPW60jJTPXOiKj6nvhI=
go.opentelemetry.io/contrib/detectors/gcp v1.37.0 h1:B+WbN9RPsvobe6q4vP6KgM8/9plR/HNjgGBrfcOlweA=
go.opentelemetry.io/contrib/detectors/gcp v1.37.0/go.mod h1:K5zQ3TT7p2ru9Qkzk0bKtCql0RGkPj9pRjpXgZJZ+rU=
-go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.62.0 h1:rbRJ8BBoVMsQShESYZ0FkvcITu8X8QNwJogcLUmDNNw=
-go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.62.0/go.mod h1:ru6KHrNtNHxM4nD/vd6QrLVWgKhxPYgblq4VAtNawTQ=
-go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.62.0 h1:Hf9xI/XLML9ElpiHVDNwvqI0hIFlzV8dgIr35kV1kRU=
-go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.62.0/go.mod h1:NfchwuyNoMcZ5MLHwPrODwUF1HWCXWrL31s8gSAdIKY=
+go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0 h1:YH4g8lQroajqUwWbq/tr2QX1JFmEXaDLgG+ew9bLMWo=
+go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0/go.mod h1:fvPi2qXDqFs8M4B4fmJhE92TyQs9Ydjlg3RvfUp+NbQ=
+go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 h1:RbKq8BG0FI8OiXhBfcRtqqHcZcka+gU3cskNuf05R18=
+go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0/go.mod h1:h06DGIukJOevXaj/xrNjhi/2098RZzcLTbc0jDAUbsg=
go.opentelemetry.io/contrib/instrumentation/runtime v0.62.0 h1:ZIt0ya9/y4WyRIzfLC8hQRRsWg0J9M9GyaGtIMiElZI=
go.opentelemetry.io/contrib/instrumentation/runtime v0.62.0/go.mod h1:F1aJ9VuiKWOlWwKdTYDUp1aoS0HzQxg38/VLxKmhm5U=
go.opentelemetry.io/contrib/propagators/b3 v1.19.0 h1:ulz44cpm6V5oAeg5Aw9HyqGFMS6XM7untlMEhD7YzzA=
@@ -401,8 +401,8 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY
golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
-golang.org/x/crypto v0.41.0 h1:WKYxWedPGCTVVl5+WHSSrOBT0O8lx32+zxmHxijgXp4=
-golang.org/x/crypto v0.41.0/go.mod h1:pO5AFd7FA68rFak7rOAGVuygIISepHftHnr8dr6+sUc=
+golang.org/x/crypto v0.42.0 h1:chiH31gIWm57EkTXpwnqf8qeuMUi0yekh6mT2AvFlqI=
+golang.org/x/crypto v0.42.0/go.mod h1:4+rDnOTJhQCx2q7/j6rAN5XDw8kPjeaXEUR2eL94ix8=
golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b h1:M2rDM6z3Fhozi9O7NWsxAkg/yqS/lQJ6PmkyIV3YP+o=
golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b/go.mod h1:3//PLf8L/X+8b4vuAfHzxeRUl04Adcb341+IGKfnqS8=
golang.org/x/image v0.25.0 h1:Y6uW6rH1y5y/LK1J8BPWZtr6yZ7hrsy6hFrXjgsc2fQ=
@@ -414,8 +414,8 @@ golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
-golang.org/x/mod v0.26.0 h1:EGMPT//Ezu+ylkCijjPc+f4Aih7sZvaAr+O3EHBxvZg=
-golang.org/x/mod v0.26.0/go.mod h1:/j6NAhSk8iQ723BGAUyoAcn7SlD7s15Dp9Nd/SfeaFQ=
+golang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ=
+golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -429,10 +429,10 @@ golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
-golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE=
-golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg=
-golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI=
-golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU=
+golang.org/x/net v0.44.0 h1:evd8IRDyfNBMBTTY5XRF1vaZlD+EmWx6x8PkhR04H/I=
+golang.org/x/net v0.44.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY=
+golang.org/x/oauth2 v0.31.0 h1:8Fq0yVZLh4j4YA47vHKFTa9Ew5XIrCP8LC6UeNZnLxo=
+golang.org/x/oauth2 v0.31.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -443,8 +443,8 @@ golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
-golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw=
-golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
+golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug=
+golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -461,8 +461,8 @@ golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
-golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI=
-golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
+golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k=
+golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
@@ -483,10 +483,10 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
-golang.org/x/text v0.28.0 h1:rhazDwis8INMIwQ4tpjLDzUhx6RlXqZNPEM0huQojng=
-golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU=
-golang.org/x/time v0.12.0 h1:ScB/8o8olJvc+CQPWrK3fPZNfh7qgwCrY0zJmoEQLSE=
-golang.org/x/time v0.12.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg=
+golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk=
+golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4=
+golang.org/x/time v0.13.0 h1:eUlYslOIt32DgYD6utsuUeHs4d7AsEYLuIAdg7FlYgI=
+golang.org/x/time v0.13.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
@@ -495,24 +495,26 @@ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
-golang.org/x/tools v0.35.0 h1:mBffYraMEf7aa0sB+NuKnuCy8qI/9Bughn8dC2Gu5r0=
-golang.org/x/tools v0.35.0/go.mod h1:NKdj5HkL/73byiZSJjqJgKn3ep7KjFkBOkR/Hps3VPw=
+golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg=
+golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-google.golang.org/api v0.248.0 h1:hUotakSkcwGdYUqzCRc5yGYsg4wXxpkKlW5ryVqvC1Y=
-google.golang.org/api v0.248.0/go.mod h1:yAFUAF56Li7IuIQbTFoLwXTCI6XCFKueOlS7S9e4F9k=
+gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk=
+gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E=
+google.golang.org/api v0.249.0 h1:0VrsWAKzIZi058aeq+I86uIXbNhm9GxSHpbmZ92a38w=
+google.golang.org/api v0.249.0/go.mod h1:dGk9qyI0UYPwO/cjt2q06LG/EhUpwZGdAbYF14wHHrQ=
google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM=
google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds=
-google.golang.org/genproto v0.0.0-20250603155806-513f23925822 h1:rHWScKit0gvAPuOnu87KpaYtjK5zBMLcULh7gxkCXu4=
-google.golang.org/genproto v0.0.0-20250603155806-513f23925822/go.mod h1:HubltRL7rMh0LfnQPkMH4NPDFEWp0jw3vixw7jEM53s=
-google.golang.org/genproto/googleapis/api v0.0.0-20250818200422-3122310a409c h1:AtEkQdl5b6zsybXcbz00j1LwNodDuH6hVifIaNqk7NQ=
-google.golang.org/genproto/googleapis/api v0.0.0-20250818200422-3122310a409c/go.mod h1:ea2MjsO70ssTfCjiwHgI0ZFqcw45Ksuk2ckf9G468GA=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20250818200422-3122310a409c h1:qXWI/sQtv5UKboZ/zUk7h+mrf/lXORyI+n9DKDAusdg=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20250818200422-3122310a409c/go.mod h1:gw1tLEfykwDz2ET4a12jcXt4couGAm7IwsVaTy0Sflo=
-google.golang.org/grpc v1.74.2 h1:WoosgB65DlWVC9FqI82dGsZhWFNBSLjQ84bjROOpMu4=
-google.golang.org/grpc v1.74.2/go.mod h1:CtQ+BGjaAIXHs/5YS3i473GqwBBa1zGQNevxdeBEXrM=
+google.golang.org/genproto v0.0.0-20250922171735-9219d122eba9 h1:LvZVVaPE0JSqL+ZWb6ErZfnEOKIqqFWUJE2D0fObSmc=
+google.golang.org/genproto v0.0.0-20250922171735-9219d122eba9/go.mod h1:QFOrLhdAe2PsTp3vQY4quuLKTi9j3XG3r6JPPaw7MSc=
+google.golang.org/genproto/googleapis/api v0.0.0-20250922171735-9219d122eba9 h1:jm6v6kMRpTYKxBRrDkYAitNJegUeO1Mf3Kt80obv0gg=
+google.golang.org/genproto/googleapis/api v0.0.0-20250922171735-9219d122eba9/go.mod h1:LmwNphe5Afor5V3R5BppOULHOnt2mCIf+NxMd4XiygE=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20250922171735-9219d122eba9 h1:V1jCN2HBa8sySkR5vLcCSqJSTMv093Rw9EJefhQGP7M=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20250922171735-9219d122eba9/go.mod h1:HSkG/KdJWusxU1F6CNrwNDjBMgisKxGnc5dAZfT0mjQ=
+google.golang.org/grpc v1.75.1 h1:/ODCNEuf9VghjgO3rqLcfg8fiOP0nSluljWFlDxELLI=
+google.golang.org/grpc v1.75.1/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
From 46207a5bb0027873fba1d0c045014a3c2daf5459 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 2 Oct 2025 09:39:11 +0000
Subject: [PATCH 028/215] fix(deps): bump
github.com/cockroachdb/cockroach-go/v2 in /api
Bumps [github.com/cockroachdb/cockroach-go/v2](https://github.com/cockroachdb/cockroach-go) from 2.4.1 to 2.4.2.
- [Release notes](https://github.com/cockroachdb/cockroach-go/releases)
- [Commits](https://github.com/cockroachdb/cockroach-go/compare/v2.4.1...v2.4.2)
---
updated-dependencies:
- dependency-name: github.com/cockroachdb/cockroach-go/v2
dependency-version: 2.4.2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 2 +-
api/go.sum | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index cb5137b0..635da9a0 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -14,7 +14,7 @@ require (
github.com/avast/retry-go v3.0.0+incompatible
github.com/carlmjohnson/requests v0.25.1
github.com/cloudevents/sdk-go/v2 v2.16.2
- github.com/cockroachdb/cockroach-go/v2 v2.4.1
+ github.com/cockroachdb/cockroach-go/v2 v2.4.2
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
github.com/dgraph-io/ristretto v1.0.0
github.com/dustin/go-humanize v1.0.1
diff --git a/api/go.sum b/api/go.sum
index 795e8cc7..e20a0a62 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -80,8 +80,8 @@ github.com/cloudevents/sdk-go/v2 v2.16.2 h1:ZYDFrYke4FD+jM8TZTJJO6JhKHzOQl2oqpFK
github.com/cloudevents/sdk-go/v2 v2.16.2/go.mod h1:laOcGImm4nVJEU+PHnUrKL56CKmRL65RlQF0kRmW/kg=
github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443 h1:aQ3y1lwWyqYPiWZThqv1aFbZMiM9vblcSArJRf2Irls=
github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8=
-github.com/cockroachdb/cockroach-go/v2 v2.4.1 h1:ACVT/zXsuK6waRPVYtDQpsM8pPA7IA/3fkgA02RR/Gw=
-github.com/cockroachdb/cockroach-go/v2 v2.4.1/go.mod h1:9U179XbCx4qFWtNhc7BiWLPfuyMVQ7qdAhfrwLz1vH0=
+github.com/cockroachdb/cockroach-go/v2 v2.4.2 h1:QB0ozDWQUUJ0GP8Zw63X/qHefPTCpLvtfCs6TLrPgyE=
+github.com/cockroachdb/cockroach-go/v2 v2.4.2/go.mod h1:9U179XbCx4qFWtNhc7BiWLPfuyMVQ7qdAhfrwLz1vH0=
github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
From 52c8016b1dcc1d6214bb770cbdffe6a91f6f15ab Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 5 Oct 2025 10:42:05 +0000
Subject: [PATCH 029/215] chore(deps-dev): bump ts-jest from 29.4.0 to 29.4.4
in /web
Bumps [ts-jest](https://github.com/kulshekhar/ts-jest) from 29.4.0 to 29.4.4.
- [Release notes](https://github.com/kulshekhar/ts-jest/releases)
- [Changelog](https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/kulshekhar/ts-jest/compare/v29.4.0...v29.4.4)
---
updated-dependencies:
- dependency-name: ts-jest
dependency-version: 29.4.4
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
web/package.json | 2 +-
web/pnpm-lock.yaml | 101 +++++++++++++++++++++++++++++----------------
2 files changed, 67 insertions(+), 36 deletions(-)
diff --git a/web/package.json b/web/package.json
index 919ef813..96c9251e 100644
--- a/web/package.json
+++ b/web/package.json
@@ -82,7 +82,7 @@
"stylelint-config-prettier": "^9.0.5",
"stylelint-config-recommended-vue": "^1.5.0",
"stylelint-config-standard": "^34.0.0",
- "ts-jest": "^29.4.0",
+ "ts-jest": "^29.4.4",
"vue-client-only": "^2.1.0",
"vue-jest": "^3.0.7",
"vue-meta": "^2.4.0",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index 689cd99e..3b317b15 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -16,7 +16,7 @@ importers:
version: 1.4.2
'@nuxtjs/firebase':
specifier: ^8.2.2
- version: 8.2.2(@firebase/app-types@0.9.2)(firebase@10.14.1)(nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16))
+ version: 8.2.2(@firebase/app-types@0.9.2)(firebase@10.14.1)(nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16))
'@nuxtjs/sitemap':
specifier: ^2.4.0
version: 2.4.0
@@ -52,7 +52,7 @@ importers:
version: 2.30.1
nuxt:
specifier: ^2.18.1
- version: 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
+ version: 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
nuxt-highlightjs:
specifier: ^1.0.3
version: 1.0.3
@@ -184,8 +184,8 @@ importers:
specifier: ^34.0.0
version: 34.0.0(stylelint@15.11.0(typescript@4.9.5))
ts-jest:
- specifier: ^29.4.0
- version: 29.4.0(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.4))(jest-util@30.2.0)(jest@30.2.0(@types/node@24.6.2))(typescript@4.9.5)
+ specifier: ^29.4.4
+ version: 29.4.4(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.4))(jest-util@30.2.0)(jest@30.2.0(@types/node@24.6.2))(typescript@4.9.5)
vue-client-only:
specifier: ^2.1.0
version: 2.1.0
@@ -5088,6 +5088,11 @@ packages:
resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==}
engines: {node: '>=10'}
+ handlebars@4.7.8:
+ resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==}
+ engines: {node: '>=0.4.7'}
+ hasBin: true
+
hard-rejection@2.1.0:
resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
engines: {node: '>=6'}
@@ -5611,8 +5616,8 @@ packages:
jackspeak@3.4.3:
resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
- jake@10.9.2:
- resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==}
+ jake@10.9.4:
+ resolution: {integrity: sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==}
engines: {node: '>=10'}
hasBin: true
@@ -8063,9 +8068,9 @@ packages:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
- source-map@0.7.4:
- resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==}
- engines: {node: '>= 8'}
+ source-map@0.7.6:
+ resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==}
+ engines: {node: '>= 12'}
spdx-correct@3.2.0:
resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
@@ -8522,8 +8527,8 @@ packages:
peerDependencies:
typescript: '>=4.2.0'
- ts-jest@29.4.0:
- resolution: {integrity: sha512-d423TJMnJGu80/eSgfQ5w/R+0zFJvdtTxwtF9KzFFunOpSeD+79lHJQIiAhluJoyGRbvj9NZJsl9WjCUo0ND7Q==}
+ ts-jest@29.4.4:
+ resolution: {integrity: sha512-ccVcRABct5ZELCT5U0+DZwkXMCcOCLi2doHRrKy1nK/s7J7bch6TzJMsrY09WxgUUIP/ITfmcDS8D2yl63rnXw==}
engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
@@ -8650,6 +8655,11 @@ packages:
ufo@1.6.1:
resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==}
+ uglify-js@3.19.3:
+ resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==}
+ engines: {node: '>=0.8.0'}
+ hasBin: true
+
unbox-primitive@1.0.2:
resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
@@ -9121,6 +9131,9 @@ packages:
resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==}
engines: {node: '>=8'}
+ wordwrap@1.0.0:
+ resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
+
worker-farm@1.7.0:
resolution: {integrity: sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==}
@@ -11733,12 +11746,12 @@ snapshots:
- supports-color
- vue
- '@nuxt/builder@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)':
+ '@nuxt/builder@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)':
dependencies:
'@nuxt/devalue': 2.0.2
'@nuxt/utils': 2.18.1
'@nuxt/vue-app': 2.18.1
- '@nuxt/webpack': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
+ '@nuxt/webpack': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
chalk: 4.1.2
chokidar: 3.6.0
consola: 3.2.3
@@ -12124,7 +12137,7 @@ snapshots:
vue-meta: 2.4.0
vue-server-renderer: 2.7.16
- '@nuxt/webpack@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)':
+ '@nuxt/webpack@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)':
dependencies:
'@babel/core': 7.24.7
'@nuxt/babel-preset-app': 2.18.1(vue@2.7.16)
@@ -12164,7 +12177,7 @@ snapshots:
ufo: 1.6.1
upath: 2.0.1
url-loader: 4.1.1(file-loader@6.2.0(webpack@5.102.0))(webpack@4.47.0)
- vue-loader: 15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@5.102.0))(ejs@3.1.10)(lodash@4.17.21)(prettier@3.6.2)(vue-template-compiler@2.7.16)(webpack@4.47.0)
+ vue-loader: 15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@5.102.0))(ejs@3.1.10)(handlebars@4.7.8)(lodash@4.17.21)(prettier@3.6.2)(vue-template-compiler@2.7.16)(webpack@4.47.0)
vue-style-loader: 4.1.3
vue-template-compiler: 2.7.16
watchpack: 2.4.4
@@ -12289,11 +12302,11 @@ snapshots:
- vite
- webpack
- '@nuxtjs/firebase@8.2.2(@firebase/app-types@0.9.2)(firebase@10.14.1)(nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16))':
+ '@nuxtjs/firebase@8.2.2(@firebase/app-types@0.9.2)(firebase@10.14.1)(nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16))':
dependencies:
consola: 2.15.3
firebase: 10.14.1
- nuxt: 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
+ nuxt: 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
optionalDependencies:
firebase-admin: 10.3.0(@firebase/app-types@0.9.2)
transitivePeerDependencies:
@@ -12636,7 +12649,7 @@ snapshots:
dependencies:
'@types/node': 16.18.55
'@types/source-list-map': 0.1.3
- source-map: 0.7.4
+ source-map: 0.7.6
'@types/webpack@4.41.38':
dependencies:
@@ -12880,9 +12893,9 @@ snapshots:
optionalDependencies:
prettier: 2.8.8
- '@vue/component-compiler-utils@3.3.0(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(lodash@4.17.21)':
+ '@vue/component-compiler-utils@3.3.0(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(handlebars@4.7.8)(lodash@4.17.21)':
dependencies:
- consolidate: 0.15.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(lodash@4.17.21)
+ consolidate: 0.15.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(handlebars@4.7.8)(lodash@4.17.21)
hash-sum: 1.0.2
lru-cache: 4.1.5
merge-source-map: 1.1.0
@@ -13367,7 +13380,8 @@ snapshots:
retry: 0.13.1
optional: true
- async@3.2.6: {}
+ async@3.2.6:
+ optional: true
asynckit@0.4.0: {}
@@ -14138,12 +14152,13 @@ snapshots:
console-browserify@1.2.0: {}
- consolidate@0.15.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(lodash@4.17.21):
+ consolidate@0.15.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(handlebars@4.7.8)(lodash@4.17.21):
dependencies:
bluebird: 3.7.2
optionalDependencies:
babel-core: 7.0.0-bridge.0(@babel/core@7.28.4)
ejs: 3.1.10
+ handlebars: 4.7.8
lodash: 4.17.21
constants-browserify@1.0.0: {}
@@ -14722,7 +14737,8 @@ snapshots:
ejs@3.1.10:
dependencies:
- jake: 10.9.2
+ jake: 10.9.4
+ optional: true
electron-to-chromium@1.5.227: {}
@@ -15348,6 +15364,7 @@ snapshots:
filelist@1.0.4:
dependencies:
minimatch: 5.1.6
+ optional: true
fill-range@4.0.0:
dependencies:
@@ -15876,6 +15893,15 @@ snapshots:
dependencies:
duplexer: 0.1.2
+ handlebars@4.7.8:
+ dependencies:
+ minimist: 1.2.8
+ neo-async: 2.6.2
+ source-map: 0.6.1
+ wordwrap: 1.0.0
+ optionalDependencies:
+ uglify-js: 3.19.3
+
hard-rejection@2.1.0: {}
hard-source-webpack-plugin@0.13.1(webpack@4.47.0):
@@ -16404,12 +16430,12 @@ snapshots:
optionalDependencies:
'@pkgjs/parseargs': 0.11.0
- jake@10.9.2:
+ jake@10.9.4:
dependencies:
async: 3.2.6
- chalk: 4.1.2
filelist: 1.0.4
- minimatch: 3.1.2
+ picocolors: 1.1.1
+ optional: true
jest-changed-files@30.2.0:
dependencies:
@@ -17649,10 +17675,10 @@ snapshots:
dependencies:
highlight.js: 11.11.1
- nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16):
+ nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16):
dependencies:
'@nuxt/babel-preset-app': 2.18.1(vue@2.7.16)
- '@nuxt/builder': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
+ '@nuxt/builder': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
'@nuxt/cli': 2.18.1
'@nuxt/components': 2.2.1(consola@3.2.3)
'@nuxt/config': 2.18.1
@@ -17665,7 +17691,7 @@ snapshots:
'@nuxt/utils': 2.18.1
'@nuxt/vue-app': 2.18.1
'@nuxt/vue-renderer': 2.18.1
- '@nuxt/webpack': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
+ '@nuxt/webpack': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
transitivePeerDependencies:
- '@vue/compiler-sfc'
- arc-templates
@@ -19367,7 +19393,7 @@ snapshots:
source-map@0.6.1: {}
- source-map@0.7.4: {}
+ source-map@0.7.6: {}
spdx-correct@3.2.0:
dependencies:
@@ -19885,11 +19911,11 @@ snapshots:
dependencies:
typescript: 4.9.5
- ts-jest@29.4.0(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.4))(jest-util@30.2.0)(jest@30.2.0(@types/node@24.6.2))(typescript@4.9.5):
+ ts-jest@29.4.4(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.4))(jest-util@30.2.0)(jest@30.2.0(@types/node@24.6.2))(typescript@4.9.5):
dependencies:
bs-logger: 0.2.6
- ejs: 3.1.10
fast-json-stable-stringify: 2.1.0
+ handlebars: 4.7.8
jest: 30.2.0(@types/node@24.6.2)
json5: 2.2.3
lodash.memoize: 4.1.2
@@ -20002,6 +20028,9 @@ snapshots:
ufo@1.6.1: {}
+ uglify-js@3.19.3:
+ optional: true
+
unbox-primitive@1.0.2:
dependencies:
call-bind: 1.0.2
@@ -20294,7 +20323,7 @@ snapshots:
espree: 9.6.1
esquery: 1.5.0
lodash: 4.17.21
- semver: 7.7.2
+ semver: 7.5.4
transitivePeerDependencies:
- supports-color
@@ -20336,9 +20365,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
- vue-loader@15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@5.102.0))(ejs@3.1.10)(lodash@4.17.21)(prettier@3.6.2)(vue-template-compiler@2.7.16)(webpack@4.47.0):
+ vue-loader@15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@5.102.0))(ejs@3.1.10)(handlebars@4.7.8)(lodash@4.17.21)(prettier@3.6.2)(vue-template-compiler@2.7.16)(webpack@4.47.0):
dependencies:
- '@vue/component-compiler-utils': 3.3.0(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(lodash@4.17.21)
+ '@vue/component-compiler-utils': 3.3.0(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(handlebars@4.7.8)(lodash@4.17.21)
css-loader: 5.2.7(webpack@5.102.0)
hash-sum: 1.0.2
loader-utils: 1.4.2
@@ -20672,6 +20701,8 @@ snapshots:
dependencies:
string-width: 4.2.3
+ wordwrap@1.0.0: {}
+
worker-farm@1.7.0:
dependencies:
errno: 0.1.8
From 3f0d95d192e08844317997c6a310cc6e0ea40560 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 5 Oct 2025 10:42:23 +0000
Subject: [PATCH 030/215] fix(deps): bump google.golang.org/api from 0.248.0 to
0.251.0 in /api
Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.248.0 to 0.251.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](https://github.com/googleapis/google-api-go-client/compare/v0.248.0...v0.251.0)
---
updated-dependencies:
- dependency-name: google.golang.org/api
dependency-version: 0.251.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 4 ++--
api/go.sum | 8 ++++----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index e6dc2a9e..8ca14a62 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -50,7 +50,7 @@ require (
go.opentelemetry.io/otel/sdk v1.38.0
go.opentelemetry.io/otel/sdk/metric v1.38.0
go.opentelemetry.io/otel/trace v1.38.0
- google.golang.org/api v0.249.0
+ google.golang.org/api v0.251.0
google.golang.org/protobuf v1.36.9
gorm.io/driver/postgres v1.6.0
gorm.io/gorm v1.31.0
@@ -179,7 +179,7 @@ require (
google.golang.org/appengine v1.6.8 // indirect
google.golang.org/genproto v0.0.0-20250922171735-9219d122eba9 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20250922171735-9219d122eba9 // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20250922171735-9219d122eba9 // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20250929231259-57b25ae835d4 // indirect
google.golang.org/grpc v1.75.1 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
gorm.io/driver/clickhouse v0.7.0 // indirect
diff --git a/api/go.sum b/api/go.sum
index b70e4e1b..4b33dbeb 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -503,16 +503,16 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk=
gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E=
-google.golang.org/api v0.249.0 h1:0VrsWAKzIZi058aeq+I86uIXbNhm9GxSHpbmZ92a38w=
-google.golang.org/api v0.249.0/go.mod h1:dGk9qyI0UYPwO/cjt2q06LG/EhUpwZGdAbYF14wHHrQ=
+google.golang.org/api v0.251.0 h1:6lea5nHRT8RUmpy9kkC2PJYnhnDAB13LqrLSVQlMIE8=
+google.golang.org/api v0.251.0/go.mod h1:Rwy0lPf/TD7+T2VhYcffCHhyyInyuxGjICxdfLqT7KI=
google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM=
google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds=
google.golang.org/genproto v0.0.0-20250922171735-9219d122eba9 h1:LvZVVaPE0JSqL+ZWb6ErZfnEOKIqqFWUJE2D0fObSmc=
google.golang.org/genproto v0.0.0-20250922171735-9219d122eba9/go.mod h1:QFOrLhdAe2PsTp3vQY4quuLKTi9j3XG3r6JPPaw7MSc=
google.golang.org/genproto/googleapis/api v0.0.0-20250922171735-9219d122eba9 h1:jm6v6kMRpTYKxBRrDkYAitNJegUeO1Mf3Kt80obv0gg=
google.golang.org/genproto/googleapis/api v0.0.0-20250922171735-9219d122eba9/go.mod h1:LmwNphe5Afor5V3R5BppOULHOnt2mCIf+NxMd4XiygE=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20250922171735-9219d122eba9 h1:V1jCN2HBa8sySkR5vLcCSqJSTMv093Rw9EJefhQGP7M=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20250922171735-9219d122eba9/go.mod h1:HSkG/KdJWusxU1F6CNrwNDjBMgisKxGnc5dAZfT0mjQ=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20250929231259-57b25ae835d4 h1:i8QOKZfYg6AbGVZzUAY3LrNWCKF8O6zFisU9Wl9RER4=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20250929231259-57b25ae835d4/go.mod h1:HSkG/KdJWusxU1F6CNrwNDjBMgisKxGnc5dAZfT0mjQ=
google.golang.org/grpc v1.75.1 h1:/ODCNEuf9VghjgO3rqLcfg8fiOP0nSluljWFlDxELLI=
google.golang.org/grpc v1.75.1/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
From 2ead03b8126cead9c87b93b579e02c22cc034726 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 5 Oct 2025 10:42:26 +0000
Subject: [PATCH 031/215] fix(deps): bump
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric
Bumps [github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric](https://github.com/GoogleCloudPlatform/opentelemetry-operations-go) from 0.53.0 to 0.54.0.
- [Release notes](https://github.com/GoogleCloudPlatform/opentelemetry-operations-go/releases)
- [Commits](https://github.com/GoogleCloudPlatform/opentelemetry-operations-go/compare/v0.53.0...v0.54.0)
---
updated-dependencies:
- dependency-name: github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric
dependency-version: 0.54.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 2 +-
api/go.sum | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index e6dc2a9e..52228c76 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -7,7 +7,7 @@ toolchain go1.24.3
require (
cloud.google.com/go/cloudtasks v1.13.7
firebase.google.com/go v3.13.0+incompatible
- github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.53.0
+ github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.54.0
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.30.0
github.com/NdoleStudio/go-otelroundtripper v0.0.12
github.com/NdoleStudio/lemonsqueezy-go v1.2.4
diff --git a/api/go.sum b/api/go.sum
index b70e4e1b..3aa60359 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -38,8 +38,8 @@ github.com/ClickHouse/clickhouse-go/v2 v2.37.2 h1:wRLNKoynvHQEN4znnVHNLaYnrqVc9s
github.com/ClickHouse/clickhouse-go/v2 v2.37.2/go.mod h1:pH2zrBGp5Y438DMwAxXMm1neSXPPjSI7tD4MURVULw8=
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.29.0 h1:UQUsRi8WTzhZntp5313l+CHIAT95ojUI2lpP/ExlZa4=
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.29.0/go.mod h1:Cz6ft6Dkn3Et6l2v2a9/RpN7epQ1GtDlO6lj8bEcOvw=
-github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.53.0 h1:owcC2UnmsZycprQ5RfRgjydWhuoxg71LUfyiQdijZuM=
-github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.53.0/go.mod h1:ZPpqegjbE99EPKsu3iUWV22A04wzGPcAY/ziSIQEEgs=
+github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.54.0 h1:lhhYARPUu3LmHysQ/igznQphfzynnqI3D75oUyw1HXk=
+github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.54.0/go.mod h1:l9rva3ApbBpEJxSNYnwT9N4CDLrWgtq3u8736C5hyJw=
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.30.0 h1:5eCqTd9rTwMlE62z0xFdzPJ+3pji75hJrwq1jrCjo5w=
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.30.0/go.mod h1:4BcvJy7WxY8X2eX49z2VO1ByhO+CcQK8lKPCH/QlZvo=
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.54.0 h1:xfK3bbi6F2RDtaZFtUdKO3osOBIhNb+xTs8lFW6yx9o=
From cf9a0545888d89aa07430646e890a61c1d340f06 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 5 Oct 2025 10:42:27 +0000
Subject: [PATCH 032/215] fix(deps): bump jest-environment-jsdom from 30.0.5 to
30.2.0 in /web
Bumps [jest-environment-jsdom](https://github.com/jestjs/jest/tree/HEAD/packages/jest-environment-jsdom) from 30.0.5 to 30.2.0.
- [Release notes](https://github.com/jestjs/jest/releases)
- [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jestjs/jest/commits/v30.2.0/packages/jest-environment-jsdom)
---
updated-dependencies:
- dependency-name: jest-environment-jsdom
dependency-version: 30.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
web/package.json | 2 +-
web/pnpm-lock.yaml | 242 ++++++++++-----------------------------------
2 files changed, 53 insertions(+), 191 deletions(-)
diff --git a/web/package.json b/web/package.json
index 919ef813..e3fcd92a 100644
--- a/web/package.json
+++ b/web/package.json
@@ -33,7 +33,7 @@
"dotenv": "^17.2.1",
"firebase": "^10.14.1",
"firebaseui": "^6.1.0",
- "jest-environment-jsdom": "^30.0.5",
+ "jest-environment-jsdom": "^30.2.0",
"libphonenumber-js": "^1.12.9",
"moment": "^2.30.1",
"nuxt": "^2.18.1",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index 689cd99e..6590e46a 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -42,8 +42,8 @@ importers:
specifier: ^6.1.0
version: 6.1.0(firebase@10.14.1)
jest-environment-jsdom:
- specifier: ^30.0.5
- version: 30.0.5
+ specifier: ^30.2.0
+ version: 30.2.0
libphonenumber-js:
specifier: ^1.12.9
version: 1.12.9
@@ -1096,8 +1096,8 @@ packages:
resolution: {integrity: sha512-CEypeeykO9AN7JWkr1OEOQb0HRzZlPWGwV0Ya6DuVgFdDi6g3ma/cPZ5ZPZM4AWQikDpq/0llnGGlIL+j8afzw==}
engines: {node: ^14 || ^16 || >=18}
- '@csstools/color-helpers@5.0.2':
- resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==}
+ '@csstools/color-helpers@5.1.0':
+ resolution: {integrity: sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==}
engines: {node: '>=18'}
'@csstools/css-calc@1.2.3':
@@ -1128,8 +1128,8 @@ packages:
'@csstools/css-parser-algorithms': ^2.7.0
'@csstools/css-tokenizer': ^2.3.2
- '@csstools/css-color-parser@3.0.10':
- resolution: {integrity: sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg==}
+ '@csstools/css-color-parser@3.1.0':
+ resolution: {integrity: sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==}
engines: {node: '>=18'}
peerDependencies:
'@csstools/css-parser-algorithms': ^3.0.5
@@ -1854,8 +1854,8 @@ packages:
resolution: {integrity: sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- '@jest/environment-jsdom-abstract@30.0.5':
- resolution: {integrity: sha512-gpWwiVxZunkoglP8DCnT3As9x5O8H6gveAOpvaJd2ATAoSh7ZSSCWbr9LQtUMvr8WD3VjG9YnDhsmkCK5WN1rQ==}
+ '@jest/environment-jsdom-abstract@30.2.0':
+ resolution: {integrity: sha512-kazxw2L9IPuZpQ0mEt9lu9Z98SqR74xcagANmMBU16X0lS23yPc0+S6hGLUz8kVRlomZEs/5S/Zlpqwf5yu6OQ==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
peerDependencies:
canvas: ^3.0.0
@@ -1864,10 +1864,6 @@ packages:
canvas:
optional: true
- '@jest/environment@30.0.5':
- resolution: {integrity: sha512-aRX7WoaWx1oaOkDQvCWImVQ8XNtdv5sEWgk4gxR6NXb7WBUnL5sRak4WRzIQRZ1VTWPvV4VI4mgGjNL9TeKMYA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
'@jest/environment@30.2.0':
resolution: {integrity: sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
@@ -1880,10 +1876,6 @@ packages:
resolution: {integrity: sha512-V9yxQK5erfzx99Sf+7LbhBwNWEZ9eZay8qQ9+JSC0TrMR1pMDHLMY+BnVPacWU6Jamrh252/IKo4F1Xn/zfiqA==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- '@jest/fake-timers@30.0.5':
- resolution: {integrity: sha512-ZO5DHfNV+kgEAeP3gK3XlpJLL4U3Sz6ebl/n68Uwt64qFFs5bv4bfEEjyRGK5uM0C90ewooNgFuKMdkbEoMEXw==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
'@jest/fake-timers@30.2.0':
resolution: {integrity: sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
@@ -1941,10 +1933,6 @@ packages:
resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- '@jest/types@30.0.5':
- resolution: {integrity: sha512-aREYa3aku9SSnea4aX6bhKn4bgv3AXkgijoQgbYV3yvbiGt6z+MQ85+6mIhx9DsKW2BuB/cLR/A+tcMThx+KLQ==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
'@jest/types@30.2.0':
resolution: {integrity: sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
@@ -2369,12 +2357,6 @@ packages:
'@types/node@20.8.0':
resolution: {integrity: sha512-LzcWltT83s1bthcvjBmiBvGJiiUe84NWRHkw+ZV6Fr41z2FbIzvc815dk2nQ3RAKMuN2fkenM/z3Xv2QzEpYxQ==}
- '@types/node@24.2.0':
- resolution: {integrity: sha512-3xyG3pMCq3oYCNg7/ZP+E1ooTaGB4cG8JWRsqqOYQdbWNY4zbaV0Ennrd7stjiJEFZCaybcIgpTjJWHRfBSIDw==}
-
- '@types/node@24.6.1':
- resolution: {integrity: sha512-ljvjjs3DNXummeIaooB4cLBKg2U6SPI6Hjra/9rRIy7CpM0HpLtG9HptkMKAb4HYWy5S7HUvJEuWgr/y0U8SHw==}
-
'@types/node@24.6.2':
resolution: {integrity: sha512-d2L25Y4j+W3ZlNAeMKcy7yDsK425ibcAOO2t7aPTz6gNMH0z2GThtwENCDc0d/Pw9wgyRqE5Px1wkV7naz8ang==}
@@ -5661,8 +5643,8 @@ packages:
resolution: {integrity: sha512-lpWlJlM7bCUf1mfmuqTA8+j2lNURW9eNafOy99knBM01i5CQeY5UH1vZjgT9071nDJac1M4XsbyI44oNOdhlDQ==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest-environment-jsdom@30.0.5:
- resolution: {integrity: sha512-BmnDEoAH+jEjkPrvE9DTKS2r3jYSJWlN/r46h0/DBUxKrkgt2jAZ5Nj4wXLAcV1KWkRpcFqA5zri9SWzJZ1cCg==}
+ jest-environment-jsdom@30.2.0:
+ resolution: {integrity: sha512-zbBTiqr2Vl78pKp/laGBREYzbZx9ZtqPjOK4++lL4BNDhxRnahg51HtoDrk9/VjIy9IthNEWdKVd7H5bqBhiWQ==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
peerDependencies:
canvas: ^3.0.0
@@ -5686,18 +5668,10 @@ packages:
resolution: {integrity: sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest-message-util@30.0.5:
- resolution: {integrity: sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
jest-message-util@30.2.0:
resolution: {integrity: sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
- jest-mock@30.0.5:
- resolution: {integrity: sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
jest-mock@30.2.0:
resolution: {integrity: sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
@@ -5739,10 +5713,6 @@ packages:
resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- jest-util@30.0.5:
- resolution: {integrity: sha512-pvyPWssDZR0FlfMxCBoc0tvM8iUEskaRFALUtGQYzVEAqisAztmy+R8LnU14KT4XA0H/a5HMVTXat1jLne010g==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
jest-util@30.2.0:
resolution: {integrity: sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
@@ -6546,8 +6516,8 @@ packages:
deprecated: Nuxt 2 has reached EOL and is no longer actively maintained. See https://nuxt.com/blog/nuxt2-eol for more details.
hasBin: true
- nwsapi@2.2.21:
- resolution: {integrity: sha512-o6nIY3qwiSXl7/LuOU0Dmuctd34Yay0yeuZRLFmDPrrdHpXKFndPj3hM+YEPVHYC5fx2otBx4Ilc/gyYSAUaIA==}
+ nwsapi@2.2.22:
+ resolution: {integrity: sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==}
nypm@0.3.9:
resolution: {integrity: sha512-BI2SdqqTHg2d4wJh8P9A1W+bslg33vOE9IZDY6eR2QC+Pu1iNBVZUqczrd43rJb+fMzHU7ltAYKsEFY/kHMFcw==}
@@ -7464,10 +7434,6 @@ packages:
pretty-error@2.1.2:
resolution: {integrity: sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==}
- pretty-format@30.0.5:
- resolution: {integrity: sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
pretty-format@30.2.0:
resolution: {integrity: sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
@@ -8659,9 +8625,6 @@ packages:
unctx@2.3.1:
resolution: {integrity: sha512-PhKke8ZYauiqh3FEMVNm7ljvzQiph0Mt3GBRve03IJm7ukfaON2OBK795tLwhbyfzknuRRkW0+Ze+CQUmzOZ+A==}
- undici-types@7.10.0:
- resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==}
-
undici-types@7.13.0:
resolution: {integrity: sha512-Ov2Rr9Sx+fRgagJ5AX0qvItZG/JKKoBRAVITs1zk7IqZGTJUwgUr7qoYBpWwakpWilTZFM98rG/AFRocu10iIQ==}
@@ -9276,7 +9239,7 @@ snapshots:
'@asamuzakjp/css-color@3.2.0':
dependencies:
'@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
- '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
+ '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
'@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
'@csstools/css-tokenizer': 3.0.4
lru-cache: 10.4.3
@@ -10518,7 +10481,7 @@ snapshots:
'@csstools/color-helpers@4.2.1': {}
- '@csstools/color-helpers@5.0.2': {}
+ '@csstools/color-helpers@5.1.0': {}
'@csstools/css-calc@1.2.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2)':
dependencies:
@@ -10542,9 +10505,9 @@ snapshots:
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2)
'@csstools/css-tokenizer': 2.3.2
- '@csstools/css-color-parser@3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)':
+ '@csstools/css-color-parser@3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)':
dependencies:
- '@csstools/color-helpers': 5.0.2
+ '@csstools/color-helpers': 5.1.0
'@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)
'@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4)
'@csstools/css-tokenizer': 3.0.4
@@ -11339,7 +11302,7 @@ snapshots:
'@grpc/grpc-js@1.9.15':
dependencies:
'@grpc/proto-loader': 0.7.10
- '@types/node': 24.6.1
+ '@types/node': 24.6.2
'@grpc/proto-loader@0.6.13':
dependencies:
@@ -11391,7 +11354,7 @@ snapshots:
'@jest/console@30.2.0':
dependencies:
'@jest/types': 30.2.0
- '@types/node': 24.6.1
+ '@types/node': 24.6.2
chalk: 4.1.2
jest-message-util: 30.2.0
jest-util: 30.2.0
@@ -11405,14 +11368,14 @@ snapshots:
'@jest/test-result': 30.2.0
'@jest/transform': 30.2.0
'@jest/types': 30.2.0
- '@types/node': 24.6.1
+ '@types/node': 24.6.2
ansi-escapes: 4.3.2
chalk: 4.1.2
ci-info: 4.3.0
exit-x: 0.2.2
graceful-fs: 4.2.11
jest-changed-files: 30.2.0
- jest-config: 30.2.0(@types/node@24.6.1)
+ jest-config: 30.2.0(@types/node@24.6.2)
jest-haste-map: 30.2.0
jest-message-util: 30.2.0
jest-regex-util: 30.0.1
@@ -11435,24 +11398,17 @@ snapshots:
'@jest/diff-sequences@30.0.1': {}
- '@jest/environment-jsdom-abstract@30.0.5(jsdom@26.1.0)':
+ '@jest/environment-jsdom-abstract@30.2.0(jsdom@26.1.0)':
dependencies:
- '@jest/environment': 30.0.5
- '@jest/fake-timers': 30.0.5
- '@jest/types': 30.0.5
+ '@jest/environment': 30.2.0
+ '@jest/fake-timers': 30.2.0
+ '@jest/types': 30.2.0
'@types/jsdom': 21.1.7
- '@types/node': 24.2.0
- jest-mock: 30.0.5
- jest-util: 30.0.5
+ '@types/node': 24.6.2
+ jest-mock: 30.2.0
+ jest-util: 30.2.0
jsdom: 26.1.0
- '@jest/environment@30.0.5':
- dependencies:
- '@jest/fake-timers': 30.0.5
- '@jest/types': 30.0.5
- '@types/node': 24.2.0
- jest-mock: 30.0.5
-
'@jest/environment@30.2.0':
dependencies:
'@jest/fake-timers': 30.2.0
@@ -11471,15 +11427,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@jest/fake-timers@30.0.5':
- dependencies:
- '@jest/types': 30.0.5
- '@sinonjs/fake-timers': 13.0.5
- '@types/node': 24.6.1
- jest-message-util: 30.0.5
- jest-mock: 30.0.5
- jest-util: 30.0.5
-
'@jest/fake-timers@30.2.0':
dependencies:
'@jest/types': 30.2.0
@@ -11502,7 +11449,7 @@ snapshots:
'@jest/pattern@30.0.1':
dependencies:
- '@types/node': 24.6.1
+ '@types/node': 24.6.2
jest-regex-util: 30.0.1
'@jest/reporters@30.2.0':
@@ -11513,7 +11460,7 @@ snapshots:
'@jest/transform': 30.2.0
'@jest/types': 30.2.0
'@jridgewell/trace-mapping': 0.3.31
- '@types/node': 24.6.1
+ '@types/node': 24.6.2
chalk: 4.1.2
collect-v8-coverage: 1.0.2
exit-x: 0.2.2
@@ -11597,23 +11544,13 @@ snapshots:
'@types/yargs': 17.0.33
chalk: 4.1.2
- '@jest/types@30.0.5':
- dependencies:
- '@jest/pattern': 30.0.1
- '@jest/schemas': 30.0.5
- '@types/istanbul-lib-coverage': 2.0.6
- '@types/istanbul-reports': 3.0.4
- '@types/node': 24.6.1
- '@types/yargs': 17.0.33
- chalk: 4.1.2
-
'@jest/types@30.2.0':
dependencies:
'@jest/pattern': 30.0.1
'@jest/schemas': 30.0.5
'@types/istanbul-lib-coverage': 2.0.6
'@types/istanbul-reports': 3.0.4
- '@types/node': 24.6.1
+ '@types/node': 24.6.2
'@types/yargs': 17.0.33
chalk: 4.1.2
@@ -12456,7 +12393,7 @@ snapshots:
'@types/body-parser@1.19.3':
dependencies:
'@types/connect': 3.4.38
- '@types/node': 16.18.55
+ '@types/node': 24.6.2
'@types/compression@1.7.5':
dependencies:
@@ -12468,7 +12405,7 @@ snapshots:
'@types/conventional-commits-parser@5.0.1':
dependencies:
- '@types/node': 24.2.0
+ '@types/node': 24.6.2
'@types/eslint-scope@3.7.7':
dependencies:
@@ -12493,7 +12430,7 @@ snapshots:
'@types/express-serve-static-core@4.17.37':
dependencies:
- '@types/node': 16.18.55
+ '@types/node': 24.6.2
'@types/qs': 6.9.8
'@types/range-parser': 1.2.5
'@types/send': 0.17.2
@@ -12527,7 +12464,7 @@ snapshots:
'@types/jsdom@21.1.7':
dependencies:
- '@types/node': 24.2.0
+ '@types/node': 24.6.2
'@types/tough-cookie': 4.0.5
parse5: 7.3.0
@@ -12555,14 +12492,6 @@ snapshots:
'@types/node@20.8.0': {}
- '@types/node@24.2.0':
- dependencies:
- undici-types: 7.10.0
-
- '@types/node@24.6.1':
- dependencies:
- undici-types: 7.13.0
-
'@types/node@24.6.2':
dependencies:
undici-types: 7.13.0
@@ -12587,14 +12516,14 @@ snapshots:
'@types/sax@1.2.7':
dependencies:
- '@types/node': 24.6.1
+ '@types/node': 24.6.2
'@types/semver@7.5.3': {}
'@types/send@0.17.2':
dependencies:
'@types/mime': 1.3.3
- '@types/node': 16.18.55
+ '@types/node': 24.6.2
'@types/serve-static@1.15.7':
dependencies:
@@ -12634,7 +12563,7 @@ snapshots:
'@types/webpack-sources@3.2.1':
dependencies:
- '@types/node': 16.18.55
+ '@types/node': 24.6.2
'@types/source-list-map': 0.1.3
source-map: 0.7.4
@@ -15418,7 +15347,7 @@ snapshots:
'@fastify/busboy': 1.2.1
'@firebase/database-compat': 0.2.10(@firebase/app-types@0.9.2)
'@firebase/database-types': 0.9.17
- '@types/node': 24.2.0
+ '@types/node': 24.6.2
jsonwebtoken: 8.5.1
jwks-rsa: 2.1.5
node-forge: 1.3.1
@@ -16065,7 +15994,7 @@ snapshots:
http-proxy-agent@7.0.2:
dependencies:
agent-base: 7.1.4
- debug: 4.4.1
+ debug: 4.4.3
transitivePeerDependencies:
- supports-color
@@ -16081,7 +16010,7 @@ snapshots:
https-proxy-agent@7.0.6:
dependencies:
agent-base: 7.1.4
- debug: 4.4.1
+ debug: 4.4.3
transitivePeerDependencies:
- supports-color
@@ -16462,38 +16391,6 @@ snapshots:
- supports-color
- ts-node
- jest-config@30.2.0(@types/node@24.6.1):
- dependencies:
- '@babel/core': 7.28.4
- '@jest/get-type': 30.1.0
- '@jest/pattern': 30.0.1
- '@jest/test-sequencer': 30.2.0
- '@jest/types': 30.2.0
- babel-jest: 30.2.0(@babel/core@7.28.4)
- chalk: 4.1.2
- ci-info: 4.3.0
- deepmerge: 4.3.1
- glob: 10.4.5
- graceful-fs: 4.2.11
- jest-circus: 30.2.0
- jest-docblock: 30.2.0
- jest-environment-node: 30.2.0
- jest-regex-util: 30.0.1
- jest-resolve: 30.2.0
- jest-runner: 30.2.0
- jest-util: 30.2.0
- jest-validate: 30.2.0
- micromatch: 4.0.8
- parse-json: 5.2.0
- pretty-format: 30.2.0
- slash: 3.0.0
- strip-json-comments: 3.1.1
- optionalDependencies:
- '@types/node': 24.6.1
- transitivePeerDependencies:
- - babel-plugin-macros
- - supports-color
-
jest-config@30.2.0(@types/node@24.6.2):
dependencies:
'@babel/core': 7.28.4
@@ -16545,12 +16442,12 @@ snapshots:
jest-util: 30.2.0
pretty-format: 30.2.0
- jest-environment-jsdom@30.0.5:
+ jest-environment-jsdom@30.2.0:
dependencies:
- '@jest/environment': 30.0.5
- '@jest/environment-jsdom-abstract': 30.0.5(jsdom@26.1.0)
+ '@jest/environment': 30.2.0
+ '@jest/environment-jsdom-abstract': 30.2.0(jsdom@26.1.0)
'@types/jsdom': 21.1.7
- '@types/node': 24.2.0
+ '@types/node': 24.6.2
jsdom: 26.1.0
transitivePeerDependencies:
- bufferutil
@@ -16594,18 +16491,6 @@ snapshots:
jest-diff: 30.2.0
pretty-format: 30.2.0
- jest-message-util@30.0.5:
- dependencies:
- '@babel/code-frame': 7.27.1
- '@jest/types': 30.0.5
- '@types/stack-utils': 2.0.3
- chalk: 4.1.2
- graceful-fs: 4.2.11
- micromatch: 4.0.8
- pretty-format: 30.0.5
- slash: 3.0.0
- stack-utils: 2.0.6
-
jest-message-util@30.2.0:
dependencies:
'@babel/code-frame': 7.27.1
@@ -16618,12 +16503,6 @@ snapshots:
slash: 3.0.0
stack-utils: 2.0.6
- jest-mock@30.0.5:
- dependencies:
- '@jest/types': 30.0.5
- '@types/node': 24.6.1
- jest-util: 30.0.5
-
jest-mock@30.2.0:
dependencies:
'@jest/types': 30.2.0
@@ -16661,7 +16540,7 @@ snapshots:
'@jest/test-result': 30.2.0
'@jest/transform': 30.2.0
'@jest/types': 30.2.0
- '@types/node': 24.6.1
+ '@types/node': 24.6.2
chalk: 4.1.2
emittery: 0.13.1
exit-x: 0.2.2
@@ -16690,7 +16569,7 @@ snapshots:
'@jest/test-result': 30.2.0
'@jest/transform': 30.2.0
'@jest/types': 30.2.0
- '@types/node': 24.6.1
+ '@types/node': 24.6.2
chalk: 4.1.2
cjs-module-lexer: 2.1.0
collect-v8-coverage: 1.0.2
@@ -16737,21 +16616,12 @@ snapshots:
jest-util@29.7.0:
dependencies:
'@jest/types': 29.6.3
- '@types/node': 24.6.1
+ '@types/node': 24.6.2
chalk: 4.1.2
ci-info: 3.9.0
graceful-fs: 4.2.11
picomatch: 2.3.1
- jest-util@30.0.5:
- dependencies:
- '@jest/types': 30.0.5
- '@types/node': 24.6.1
- chalk: 4.1.2
- ci-info: 4.3.0
- graceful-fs: 4.2.11
- picomatch: 4.0.3
-
jest-util@30.2.0:
dependencies:
'@jest/types': 30.2.0
@@ -16774,7 +16644,7 @@ snapshots:
dependencies:
'@jest/test-result': 30.2.0
'@jest/types': 30.2.0
- '@types/node': 24.6.1
+ '@types/node': 24.6.2
ansi-escapes: 4.3.2
chalk: 4.1.2
emittery: 0.13.1
@@ -16789,13 +16659,13 @@ snapshots:
jest-worker@27.5.1:
dependencies:
- '@types/node': 24.6.1
+ '@types/node': 24.6.2
merge-stream: 2.0.0
supports-color: 8.1.1
jest-worker@29.7.0:
dependencies:
- '@types/node': 24.6.1
+ '@types/node': 24.6.2
jest-util: 29.7.0
merge-stream: 2.0.0
supports-color: 8.1.1
@@ -16865,7 +16735,7 @@ snapshots:
http-proxy-agent: 7.0.2
https-proxy-agent: 7.0.6
is-potential-custom-element-name: 1.0.1
- nwsapi: 2.2.21
+ nwsapi: 2.2.22
parse5: 7.3.0
rrweb-cssom: 0.8.0
saxes: 6.0.0
@@ -17733,7 +17603,7 @@ snapshots:
- webpack-command
- whiskers
- nwsapi@2.2.21: {}
+ nwsapi@2.2.22: {}
nypm@0.3.9:
dependencies:
@@ -18680,12 +18550,6 @@ snapshots:
lodash: 4.17.21
renderkid: 2.0.7
- pretty-format@30.0.5:
- dependencies:
- '@jest/schemas': 30.0.5
- ansi-styles: 5.2.0
- react-is: 18.3.1
-
pretty-format@30.2.0:
dependencies:
'@jest/schemas': 30.0.5
@@ -20018,8 +19882,6 @@ snapshots:
magic-string: 0.30.10
unplugin: 1.11.0
- undici-types@7.10.0: {}
-
undici-types@7.13.0: {}
undici@6.19.7: {}
From 8c27fd8e45a5815115eb0e2100cb0b8ef5401727 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 5 Oct 2025 10:42:52 +0000
Subject: [PATCH 033/215] chore(deps-dev): bump @commitlint/cli from 19.8.1 to
20.1.0 in /web
Bumps [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) from 19.8.1 to 20.1.0.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/cli/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v20.1.0/@commitlint/cli)
---
updated-dependencies:
- dependency-name: "@commitlint/cli"
dependency-version: 20.1.0
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot]
---
web/package.json | 2 +-
web/pnpm-lock.yaml | 190 ++++++++++++++++++++++-----------------------
2 files changed, 96 insertions(+), 96 deletions(-)
diff --git a/web/package.json b/web/package.json
index 919ef813..82e8f7ea 100644
--- a/web/package.json
+++ b/web/package.json
@@ -55,7 +55,7 @@
},
"devDependencies": {
"@babel/eslint-parser": "^7.27.5",
- "@commitlint/cli": "^19.8.1",
+ "@commitlint/cli": "^20.1.0",
"@commitlint/config-conventional": "^19.8.0",
"@nuxt/types": "^2.18.1",
"@nuxt/typescript-build": "^3.0.2",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index 689cd99e..715cb165 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -103,8 +103,8 @@ importers:
specifier: ^7.27.5
version: 7.27.5(@babel/core@7.28.4)(eslint@8.57.1)
'@commitlint/cli':
- specifier: ^19.8.1
- version: 19.8.1(@types/node@24.6.2)(typescript@4.9.5)
+ specifier: ^20.1.0
+ version: 20.1.0(@types/node@24.6.2)(typescript@4.9.5)
'@commitlint/config-conventional':
specifier: ^19.8.0
version: 19.8.0
@@ -1012,8 +1012,8 @@ packages:
'@bcoe/v8-coverage@0.2.3':
resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
- '@commitlint/cli@19.8.1':
- resolution: {integrity: sha512-LXUdNIkspyxrlV6VDHWBmCZRtkEVRpBKxi2Gtw3J54cGWhLCTouVD/Q6ZSaSvd2YaDObWK8mDjrz3TIKtaQMAA==}
+ '@commitlint/cli@20.1.0':
+ resolution: {integrity: sha512-pW5ujjrOovhq5RcYv5xCpb4GkZxkO2+GtOdBW2/qrr0Ll9tl3PX0aBBobGQl3mdZUbOBgwAexEQLeH6uxL0VYg==}
engines: {node: '>=v18'}
hasBin: true
@@ -1021,68 +1021,68 @@ packages:
resolution: {integrity: sha512-9I2kKJwcAPwMoAj38hwqFXG0CzS2Kj+SAByPUQ0SlHTfb7VUhYVmo7G2w2tBrqmOf7PFd6MpZ/a1GQJo8na8kw==}
engines: {node: '>=v18'}
- '@commitlint/config-validator@19.8.1':
- resolution: {integrity: sha512-0jvJ4u+eqGPBIzzSdqKNX1rvdbSU1lPNYlfQQRIFnBgLy26BtC0cFnr7c/AyuzExMxWsMOte6MkTi9I3SQ3iGQ==}
+ '@commitlint/config-validator@20.0.0':
+ resolution: {integrity: sha512-BeyLMaRIJDdroJuYM2EGhDMGwVBMZna9UiIqV9hxj+J551Ctc6yoGuGSmghOy/qPhBSuhA6oMtbEiTmxECafsg==}
engines: {node: '>=v18'}
- '@commitlint/ensure@19.8.1':
- resolution: {integrity: sha512-mXDnlJdvDzSObafjYrOSvZBwkD01cqB4gbnnFuVyNpGUM5ijwU/r/6uqUmBXAAOKRfyEjpkGVZxaDsCVnHAgyw==}
+ '@commitlint/ensure@20.0.0':
+ resolution: {integrity: sha512-WBV47Fffvabe68n+13HJNFBqiMH5U1Ryls4W3ieGwPC0C7kJqp3OVQQzG2GXqOALmzrgAB+7GXmyy8N9ct8/Fg==}
engines: {node: '>=v18'}
- '@commitlint/execute-rule@19.8.1':
- resolution: {integrity: sha512-YfJyIqIKWI64Mgvn/sE7FXvVMQER/Cd+s3hZke6cI1xgNT/f6ZAz5heND0QtffH+KbcqAwXDEE1/5niYayYaQA==}
+ '@commitlint/execute-rule@20.0.0':
+ resolution: {integrity: sha512-xyCoOShoPuPL44gVa+5EdZsBVao/pNzpQhkzq3RdtlFdKZtjWcLlUFQHSWBuhk5utKYykeJPSz2i8ABHQA+ZZw==}
engines: {node: '>=v18'}
- '@commitlint/format@19.8.1':
- resolution: {integrity: sha512-kSJj34Rp10ItP+Eh9oCItiuN/HwGQMXBnIRk69jdOwEW9llW9FlyqcWYbHPSGofmjsqeoxa38UaEA5tsbm2JWw==}
+ '@commitlint/format@20.0.0':
+ resolution: {integrity: sha512-zrZQXUcSDmQ4eGGrd+gFESiX0Rw+WFJk7nW4VFOmxub4mAATNKBQ4vNw5FgMCVehLUKG2OT2LjOqD0Hk8HvcRg==}
engines: {node: '>=v18'}
- '@commitlint/is-ignored@19.8.1':
- resolution: {integrity: sha512-AceOhEhekBUQ5dzrVhDDsbMaY5LqtN8s1mqSnT2Kz1ERvVZkNihrs3Sfk1Je/rxRNbXYFzKZSHaPsEJJDJV8dg==}
+ '@commitlint/is-ignored@20.0.0':
+ resolution: {integrity: sha512-ayPLicsqqGAphYIQwh9LdAYOVAQ9Oe5QCgTNTj+BfxZb9b/JW222V5taPoIBzYnAP0z9EfUtljgBk+0BN4T4Cw==}
engines: {node: '>=v18'}
- '@commitlint/lint@19.8.1':
- resolution: {integrity: sha512-52PFbsl+1EvMuokZXLRlOsdcLHf10isTPlWwoY1FQIidTsTvjKXVXYb7AvtpWkDzRO2ZsqIgPK7bI98x8LRUEw==}
+ '@commitlint/lint@20.0.0':
+ resolution: {integrity: sha512-kWrX8SfWk4+4nCexfLaQT3f3EcNjJwJBsSZ5rMBw6JCd6OzXufFHgel2Curos4LKIxwec9WSvs2YUD87rXlxNQ==}
engines: {node: '>=v18'}
- '@commitlint/load@19.8.1':
- resolution: {integrity: sha512-9V99EKG3u7z+FEoe4ikgq7YGRCSukAcvmKQuTtUyiYPnOd9a2/H9Ak1J9nJA1HChRQp9OA/sIKPugGS+FK/k1A==}
+ '@commitlint/load@20.1.0':
+ resolution: {integrity: sha512-qo9ER0XiAimATQR5QhvvzePfeDfApi/AFlC1G+YN+ZAY8/Ua6IRrDrxRvQAr+YXUKAxUsTDSp9KXeXLBPsNRWg==}
engines: {node: '>=v18'}
- '@commitlint/message@19.8.1':
- resolution: {integrity: sha512-+PMLQvjRXiU+Ae0Wc+p99EoGEutzSXFVwQfa3jRNUZLNW5odZAyseb92OSBTKCu+9gGZiJASt76Cj3dLTtcTdg==}
+ '@commitlint/message@20.0.0':
+ resolution: {integrity: sha512-gLX4YmKnZqSwkmSB9OckQUrI5VyXEYiv3J5JKZRxIp8jOQsWjZgHSG/OgEfMQBK9ibdclEdAyIPYggwXoFGXjQ==}
engines: {node: '>=v18'}
- '@commitlint/parse@19.8.1':
- resolution: {integrity: sha512-mmAHYcMBmAgJDKWdkjIGq50X4yB0pSGpxyOODwYmoexxxiUCy5JJT99t1+PEMK7KtsCtzuWYIAXYAiKR+k+/Jw==}
+ '@commitlint/parse@20.0.0':
+ resolution: {integrity: sha512-j/PHCDX2bGM5xGcWObOvpOc54cXjn9g6xScXzAeOLwTsScaL4Y+qd0pFC6HBwTtrH92NvJQc+2Lx9HFkVi48cg==}
engines: {node: '>=v18'}
- '@commitlint/read@19.8.1':
- resolution: {integrity: sha512-03Jbjb1MqluaVXKHKRuGhcKWtSgh3Jizqy2lJCRbRrnWpcM06MYm8th59Xcns8EqBYvo0Xqb+2DoZFlga97uXQ==}
+ '@commitlint/read@20.0.0':
+ resolution: {integrity: sha512-Ti7Y7aEgxsM1nkwA4ZIJczkTFRX/+USMjNrL9NXwWQHqNqrBX2iMi+zfuzZXqfZ327WXBjdkRaytJ+z5vNqTOA==}
engines: {node: '>=v18'}
- '@commitlint/resolve-extends@19.8.1':
- resolution: {integrity: sha512-GM0mAhFk49I+T/5UCYns5ayGStkTt4XFFrjjf0L4S26xoMTSkdCf9ZRO8en1kuopC4isDFuEm7ZOm/WRVeElVg==}
+ '@commitlint/resolve-extends@20.1.0':
+ resolution: {integrity: sha512-cxKXQrqHjZT3o+XPdqDCwOWVFQiae++uwd9dUBC7f2MdV58ons3uUvASdW7m55eat5sRiQ6xUHyMWMRm6atZWw==}
engines: {node: '>=v18'}
- '@commitlint/rules@19.8.1':
- resolution: {integrity: sha512-Hnlhd9DyvGiGwjfjfToMi1dsnw1EXKGJNLTcsuGORHz6SS9swRgkBsou33MQ2n51/boIDrbsg4tIBbRpEWK2kw==}
+ '@commitlint/rules@20.0.0':
+ resolution: {integrity: sha512-gvg2k10I/RfvHn5I5sxvVZKM1fl72Sqrv2YY/BnM7lMHcYqO0E2jnRWoYguvBfEcZ39t+rbATlciggVe77E4zA==}
engines: {node: '>=v18'}
- '@commitlint/to-lines@19.8.1':
- resolution: {integrity: sha512-98Mm5inzbWTKuZQr2aW4SReY6WUukdWXuZhrqf1QdKPZBCCsXuG87c+iP0bwtD6DBnmVVQjgp4whoHRVixyPBg==}
+ '@commitlint/to-lines@20.0.0':
+ resolution: {integrity: sha512-2l9gmwiCRqZNWgV+pX1X7z4yP0b3ex/86UmUFgoRt672Ez6cAM2lOQeHFRUTuE6sPpi8XBCGnd8Kh3bMoyHwJw==}
engines: {node: '>=v18'}
- '@commitlint/top-level@19.8.1':
- resolution: {integrity: sha512-Ph8IN1IOHPSDhURCSXBz44+CIu+60duFwRsg6HqaISFHQHbmBtxVw4ZrFNIYUzEP7WwrNPxa2/5qJ//NK1FGcw==}
+ '@commitlint/top-level@20.0.0':
+ resolution: {integrity: sha512-drXaPSP2EcopukrUXvUXmsQMu3Ey/FuJDc/5oiW4heoCfoE5BdLQyuc7veGeE3aoQaTVqZnh4D5WTWe2vefYKg==}
engines: {node: '>=v18'}
'@commitlint/types@19.8.0':
resolution: {integrity: sha512-LRjP623jPyf3Poyfb0ohMj8I3ORyBDOwXAgxxVPbSD0unJuW2mJWeiRfaQinjtccMqC5Wy1HOMfa4btKjbNxbg==}
engines: {node: '>=v18'}
- '@commitlint/types@19.8.1':
- resolution: {integrity: sha512-/yCrWGCoA1SVKOks25EGadP9Pnj0oAIHGpl2wH2M2Y46dPM2ueb8wyCVOD7O3WCTkaJ0IkKvzhl1JY7+uCT2Dw==}
+ '@commitlint/types@20.0.0':
+ resolution: {integrity: sha512-bVUNBqG6aznYcYjTjnc3+Cat/iBgbgpflxbIBTnsHTX0YVpnmINPEkSRWymT2Q8aSH3Y7aKnEbunilkYe8TybA==}
engines: {node: '>=v18'}
'@csstools/cascade-layer-name-parser@1.0.12':
@@ -2888,10 +2888,6 @@ packages:
resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==}
engines: {node: '>=12'}
- ansi-regex@6.2.2:
- resolution: {integrity: sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==}
- engines: {node: '>=12'}
-
ansi-styles@2.2.1:
resolution: {integrity: sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==}
engines: {node: '>=0.10.0'}
@@ -3350,6 +3346,10 @@ packages:
resolution: {integrity: sha512-1tm8DTaJhPBG3bIkVeZt1iZM9GfSX2lzOeDVZH9R9ffRHpmHvxZ/QhgQH/aDTkswQVt+YHdXAdS/In/30OjCbg==}
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+ chalk@5.6.2:
+ resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+
char-regex@1.0.2:
resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
engines: {node: '>=10'}
@@ -5322,8 +5322,8 @@ packages:
engines: {node: '>=8'}
hasBin: true
- import-meta-resolve@4.1.0:
- resolution: {integrity: sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==}
+ import-meta-resolve@4.2.0:
+ resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==}
imurmurhash@0.1.4:
resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
@@ -5793,8 +5793,8 @@ packages:
resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==}
hasBin: true
- jiti@2.5.1:
- resolution: {integrity: sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==}
+ jiti@2.6.1:
+ resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==}
hasBin: true
jose@2.0.7:
@@ -10396,13 +10396,13 @@ snapshots:
'@bcoe/v8-coverage@0.2.3': {}
- '@commitlint/cli@19.8.1(@types/node@24.6.2)(typescript@4.9.5)':
+ '@commitlint/cli@20.1.0(@types/node@24.6.2)(typescript@4.9.5)':
dependencies:
- '@commitlint/format': 19.8.1
- '@commitlint/lint': 19.8.1
- '@commitlint/load': 19.8.1(@types/node@24.6.2)(typescript@4.9.5)
- '@commitlint/read': 19.8.1
- '@commitlint/types': 19.8.1
+ '@commitlint/format': 20.0.0
+ '@commitlint/lint': 20.0.0
+ '@commitlint/load': 20.1.0(@types/node@24.6.2)(typescript@4.9.5)
+ '@commitlint/read': 20.0.0
+ '@commitlint/types': 20.0.0
tinyexec: 1.0.1
yargs: 17.7.2
transitivePeerDependencies:
@@ -10414,46 +10414,46 @@ snapshots:
'@commitlint/types': 19.8.0
conventional-changelog-conventionalcommits: 7.0.2
- '@commitlint/config-validator@19.8.1':
+ '@commitlint/config-validator@20.0.0':
dependencies:
- '@commitlint/types': 19.8.1
+ '@commitlint/types': 20.0.0
ajv: 8.17.1
- '@commitlint/ensure@19.8.1':
+ '@commitlint/ensure@20.0.0':
dependencies:
- '@commitlint/types': 19.8.1
+ '@commitlint/types': 20.0.0
lodash.camelcase: 4.3.0
lodash.kebabcase: 4.1.1
lodash.snakecase: 4.1.1
lodash.startcase: 4.4.0
lodash.upperfirst: 4.3.1
- '@commitlint/execute-rule@19.8.1': {}
+ '@commitlint/execute-rule@20.0.0': {}
- '@commitlint/format@19.8.1':
+ '@commitlint/format@20.0.0':
dependencies:
- '@commitlint/types': 19.8.1
- chalk: 5.5.0
+ '@commitlint/types': 20.0.0
+ chalk: 5.6.2
- '@commitlint/is-ignored@19.8.1':
+ '@commitlint/is-ignored@20.0.0':
dependencies:
- '@commitlint/types': 19.8.1
+ '@commitlint/types': 20.0.0
semver: 7.7.2
- '@commitlint/lint@19.8.1':
+ '@commitlint/lint@20.0.0':
dependencies:
- '@commitlint/is-ignored': 19.8.1
- '@commitlint/parse': 19.8.1
- '@commitlint/rules': 19.8.1
- '@commitlint/types': 19.8.1
+ '@commitlint/is-ignored': 20.0.0
+ '@commitlint/parse': 20.0.0
+ '@commitlint/rules': 20.0.0
+ '@commitlint/types': 20.0.0
- '@commitlint/load@19.8.1(@types/node@24.6.2)(typescript@4.9.5)':
+ '@commitlint/load@20.1.0(@types/node@24.6.2)(typescript@4.9.5)':
dependencies:
- '@commitlint/config-validator': 19.8.1
- '@commitlint/execute-rule': 19.8.1
- '@commitlint/resolve-extends': 19.8.1
- '@commitlint/types': 19.8.1
- chalk: 5.5.0
+ '@commitlint/config-validator': 20.0.0
+ '@commitlint/execute-rule': 20.0.0
+ '@commitlint/resolve-extends': 20.1.0
+ '@commitlint/types': 20.0.0
+ chalk: 5.6.2
cosmiconfig: 9.0.0(typescript@4.9.5)
cosmiconfig-typescript-loader: 6.1.0(@types/node@24.6.2)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5)
lodash.isplainobject: 4.0.6
@@ -10463,41 +10463,41 @@ snapshots:
- '@types/node'
- typescript
- '@commitlint/message@19.8.1': {}
+ '@commitlint/message@20.0.0': {}
- '@commitlint/parse@19.8.1':
+ '@commitlint/parse@20.0.0':
dependencies:
- '@commitlint/types': 19.8.1
+ '@commitlint/types': 20.0.0
conventional-changelog-angular: 7.0.0
conventional-commits-parser: 5.0.0
- '@commitlint/read@19.8.1':
+ '@commitlint/read@20.0.0':
dependencies:
- '@commitlint/top-level': 19.8.1
- '@commitlint/types': 19.8.1
+ '@commitlint/top-level': 20.0.0
+ '@commitlint/types': 20.0.0
git-raw-commits: 4.0.0
minimist: 1.2.8
tinyexec: 1.0.1
- '@commitlint/resolve-extends@19.8.1':
+ '@commitlint/resolve-extends@20.1.0':
dependencies:
- '@commitlint/config-validator': 19.8.1
- '@commitlint/types': 19.8.1
+ '@commitlint/config-validator': 20.0.0
+ '@commitlint/types': 20.0.0
global-directory: 4.0.1
- import-meta-resolve: 4.1.0
+ import-meta-resolve: 4.2.0
lodash.mergewith: 4.6.2
resolve-from: 5.0.0
- '@commitlint/rules@19.8.1':
+ '@commitlint/rules@20.0.0':
dependencies:
- '@commitlint/ensure': 19.8.1
- '@commitlint/message': 19.8.1
- '@commitlint/to-lines': 19.8.1
- '@commitlint/types': 19.8.1
+ '@commitlint/ensure': 20.0.0
+ '@commitlint/message': 20.0.0
+ '@commitlint/to-lines': 20.0.0
+ '@commitlint/types': 20.0.0
- '@commitlint/to-lines@19.8.1': {}
+ '@commitlint/to-lines@20.0.0': {}
- '@commitlint/top-level@19.8.1':
+ '@commitlint/top-level@20.0.0':
dependencies:
find-up: 7.0.0
@@ -10506,10 +10506,10 @@ snapshots:
'@types/conventional-commits-parser': 5.0.1
chalk: 5.5.0
- '@commitlint/types@19.8.1':
+ '@commitlint/types@20.0.0':
dependencies:
'@types/conventional-commits-parser': 5.0.1
- chalk: 5.5.0
+ chalk: 5.6.2
'@csstools/cascade-layer-name-parser@1.0.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2)':
dependencies:
@@ -13228,8 +13228,6 @@ snapshots:
ansi-regex@6.1.0: {}
- ansi-regex@6.2.2: {}
-
ansi-styles@2.2.1: {}
ansi-styles@3.2.1:
@@ -13885,6 +13883,8 @@ snapshots:
chalk@5.5.0: {}
+ chalk@5.6.2: {}
+
char-regex@1.0.2: {}
chardet@0.7.0: {}
@@ -14192,7 +14192,7 @@ snapshots:
dependencies:
'@types/node': 24.6.2
cosmiconfig: 9.0.0(typescript@4.9.5)
- jiti: 2.5.1
+ jiti: 2.6.1
typescript: 4.9.5
cosmiconfig@6.0.0:
@@ -16130,7 +16130,7 @@ snapshots:
pkg-dir: 4.2.0
resolve-cwd: 3.0.0
- import-meta-resolve@4.1.0: {}
+ import-meta-resolve@4.2.0: {}
imurmurhash@0.1.4: {}
@@ -16827,7 +16827,7 @@ snapshots:
jiti@1.21.6: {}
- jiti@2.5.1: {}
+ jiti@2.6.1: {}
jose@2.0.7:
dependencies:
@@ -19470,7 +19470,7 @@ snapshots:
dependencies:
emoji-regex: 10.4.0
get-east-asian-width: 1.3.0
- strip-ansi: 7.1.0
+ strip-ansi: 7.1.2
string.prototype.trim@1.2.8:
dependencies:
@@ -19512,7 +19512,7 @@ snapshots:
strip-ansi@7.1.2:
dependencies:
- ansi-regex: 6.2.2
+ ansi-regex: 6.1.0
strip-bom@3.0.0: {}
From cd2bf902a9ac26a02296310f2d2ab3088addd952 Mon Sep 17 00:00:00 2001
From: Ammar Hussein
Date: Sat, 11 Oct 2025 23:24:27 -0700
Subject: [PATCH 034/215] Update README.md
Fix a typo in the one of the instructions
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 49c41f9a..fa387b9e 100644
--- a/README.md
+++ b/README.md
@@ -177,7 +177,7 @@ git clone https://github.com/NdoleStudio/httpsms.git
- Copy the `.env.docker` file in the `web` directory into `.env`
```bash
-cp web/.env.local.docker web/.env.local
+cp web/.env.docker web/.env
```
- Update the environment variables in the `.env` file in the `web` directory with your firebase web SDK configuration in step 1 above
From eb599e21d323a131cec7667088223b7231628949 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Wed, 15 Oct 2025 09:54:16 +0300
Subject: [PATCH 035/215] Fix the error message
---
api/pkg/services/webhook_service.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/api/pkg/services/webhook_service.go b/api/pkg/services/webhook_service.go
index 0a9a8c75..9c1856d6 100644
--- a/api/pkg/services/webhook_service.go
+++ b/api/pkg/services/webhook_service.go
@@ -230,7 +230,7 @@ func (service *WebhookService) sendNotification(ctx context.Context, event cloud
if attempts == 1 {
return err
}
- service.handleWebhookSendFailed(ctx, event, webhook, owner, err, nil)
+ service.handleWebhookSendFailed(ctx, event, webhook, owner, err, response)
return nil
}
From 24c5caf0a28507dd3d4d567923f960300b1c9a70 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Wed, 15 Oct 2025 21:49:13 +0300
Subject: [PATCH 036/215] Fix the webhook container
---
api/pkg/di/container.go | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/api/pkg/di/container.go b/api/pkg/di/container.go
index 2ceadc25..91eb9920 100644
--- a/api/pkg/di/container.go
+++ b/api/pkg/di/container.go
@@ -828,7 +828,10 @@ func (container *Container) WebhookService() (service *services.WebhookService)
return services.NewWebhookService(
container.Logger(),
container.Tracer(),
- container.HTTPClient("webhook"),
+ &http.Client{
+ Timeout: 6 * time.Second,
+ Transport: container.HTTPRoundTripperWithoutRetry("webhook"),
+ },
container.WebhookRepository(),
container.EventDispatcher(),
)
@@ -865,6 +868,16 @@ func (container *Container) HTTPRoundTripper(name string) http.RoundTripper {
)
}
+// HTTPRoundTripperWithoutRetry creates an open telemetry http.RoundTripper without retry
+func (container *Container) HTTPRoundTripperWithoutRetry(name string) http.RoundTripper {
+ container.logger.Debug(fmt.Sprintf("Debug: initializing %s %T", name, http.DefaultTransport))
+ return otelroundtripper.New(
+ otelroundtripper.WithName(name),
+ otelroundtripper.WithMeter(otel.GetMeterProvider().Meter(container.projectID)),
+ otelroundtripper.WithAttributes(container.OtelResources(container.version, container.projectID).Attributes()...),
+ )
+}
+
// OtelResources generates default open telemetry resources
func (container *Container) OtelResources(version string, namespace string) *resource.Resource {
return resource.NewWithAttributes(
From 5c863ff0f1694e1bf3deec9368500485c55bf2b1 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Wed, 15 Oct 2025 22:02:42 +0300
Subject: [PATCH 037/215] Updated dependencies
---
api/go.mod | 140 +++++----
api/go.sum | 293 +++++++++---------
api/pkg/di/container.go | 2 +-
.../gorm_phone_api_key_repository.go | 2 +-
api/pkg/repositories/gorm_user_repository.go | 2 +-
api/pkg/services/webhook_service.go | 12 +-
6 files changed, 238 insertions(+), 213 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index 2d95b521..e34fb6d3 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -16,42 +16,42 @@ require (
github.com/cloudevents/sdk-go/v2 v2.16.2
github.com/cockroachdb/cockroach-go/v2 v2.4.2
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
- github.com/dgraph-io/ristretto v1.0.0
+ github.com/dgraph-io/ristretto/v2 v2.3.0
github.com/dustin/go-humanize v1.0.1
github.com/gofiber/contrib/otelfiber v1.0.10
github.com/gofiber/fiber/v2 v2.52.9
github.com/gofiber/swagger v1.1.1
- github.com/golang-jwt/jwt v3.2.2+incompatible
+ github.com/golang-jwt/jwt/v5 v5.3.0
github.com/google/uuid v1.6.0
github.com/hashicorp/go-retryablehttp v0.7.8
github.com/hirosassa/zerodriver v0.1.4
- github.com/jaswdr/faker/v2 v2.6.1
+ github.com/jaswdr/faker/v2 v2.8.1
github.com/jinzhu/now v1.1.5
github.com/joho/godotenv v1.5.1
github.com/jordan-wright/email v4.0.1-0.20210109023952-943e75fe5223+incompatible
github.com/jszwec/csvutil v1.10.0
github.com/lib/pq v1.10.9
github.com/matcornic/hermes v1.3.0
- github.com/nyaruka/phonenumbers v1.6.5
+ github.com/nyaruka/phonenumbers v1.6.6
github.com/palantir/stacktrace v0.0.0-20161112013806-78658fd2d177
github.com/patrickmn/go-cache v2.1.0+incompatible
github.com/pkg/errors v0.9.1
github.com/pusher/pusher-http-go/v5 v5.1.1
- github.com/redis/go-redis/extra/redisotel/v9 v9.12.1
+ github.com/redis/go-redis/extra/redisotel/v9 v9.14.0
github.com/redis/go-redis/v9 v9.14.0
github.com/rs/zerolog v1.34.0
github.com/stretchr/testify v1.11.1
github.com/swaggo/swag v1.16.6
github.com/thedevsaddam/govalidator v1.9.10
- github.com/uptrace/uptrace-go v1.37.0
- github.com/xuri/excelize/v2 v2.9.1
+ github.com/uptrace/uptrace-go v1.38.0
+ github.com/xuri/excelize/v2 v2.10.0
go.opentelemetry.io/otel v1.38.0
go.opentelemetry.io/otel/metric v1.38.0
go.opentelemetry.io/otel/sdk v1.38.0
go.opentelemetry.io/otel/sdk/metric v1.38.0
go.opentelemetry.io/otel/trace v1.38.0
- google.golang.org/api v0.251.0
- google.golang.org/protobuf v1.36.9
+ google.golang.org/api v0.252.0
+ google.golang.org/protobuf v1.36.10
gorm.io/driver/postgres v1.6.0
gorm.io/gorm v1.31.0
gorm.io/plugin/opentelemetry v0.1.16
@@ -59,21 +59,21 @@ require (
require (
cel.dev/expr v0.24.0 // indirect
- cloud.google.com/go v0.121.3 // indirect
- cloud.google.com/go/auth v0.16.5 // indirect
+ cloud.google.com/go v0.123.0 // indirect
+ cloud.google.com/go/auth v0.17.0 // indirect
cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect
cloud.google.com/go/compute/metadata v0.9.0 // indirect
- cloud.google.com/go/firestore v1.18.0 // indirect
- cloud.google.com/go/iam v1.5.2 // indirect
- cloud.google.com/go/longrunning v0.6.7 // indirect
- cloud.google.com/go/monitoring v1.24.2 // indirect
- cloud.google.com/go/storage v1.55.0 // indirect
- cloud.google.com/go/trace v1.11.6 // indirect
+ cloud.google.com/go/firestore v1.19.0 // indirect
+ cloud.google.com/go/iam v1.5.3 // indirect
+ cloud.google.com/go/longrunning v0.7.0 // indirect
+ cloud.google.com/go/monitoring v1.24.3 // indirect
+ cloud.google.com/go/storage v1.57.0 // indirect
+ cloud.google.com/go/trace v1.11.7 // indirect
dario.cat/mergo v1.0.2 // indirect
filippo.io/edwards25519 v1.1.0 // indirect
- github.com/ClickHouse/ch-go v0.66.1 // indirect
- github.com/ClickHouse/clickhouse-go/v2 v2.37.2 // indirect
- github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.29.0 // indirect
+ github.com/ClickHouse/ch-go v0.69.0 // indirect
+ github.com/ClickHouse/clickhouse-go/v2 v2.40.3 // indirect
+ github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.30.0 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.54.0 // indirect
github.com/KyleBanks/depth v1.2.1 // indirect
github.com/Masterminds/goutils v1.1.1 // indirect
@@ -82,105 +82,113 @@ require (
github.com/PuerkitoBio/goquery v1.10.3 // indirect
github.com/andybalholm/brotli v1.2.0 // indirect
github.com/andybalholm/cascadia v1.3.3 // indirect
- github.com/cenkalti/backoff/v5 v5.0.2 // indirect
+ github.com/cenkalti/backoff/v5 v5.0.3 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect
- github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443 // indirect
+ github.com/clipperhouse/uax29/v2 v2.2.0 // indirect
+ github.com/cncf/xds/go v0.0.0-20251014123835-2ee22ca58382 // indirect
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
- github.com/envoyproxy/go-control-plane/envoy v1.32.4 // indirect
+ github.com/envoyproxy/go-control-plane/envoy v1.35.0 // indirect
github.com/envoyproxy/protoc-gen-validate v1.2.1 // indirect
github.com/fatih/color v1.18.0 // indirect
github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/go-faster/city v1.0.1 // indirect
github.com/go-faster/errors v0.7.1 // indirect
- github.com/go-jose/go-jose/v4 v4.1.1 // indirect
+ github.com/go-jose/go-jose/v4 v4.1.3 // indirect
github.com/go-logr/logr v1.4.3 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
- github.com/go-openapi/jsonpointer v0.21.1 // indirect
- github.com/go-openapi/jsonreference v0.21.0 // indirect
- github.com/go-openapi/spec v0.21.0 // indirect
- github.com/go-openapi/swag v0.23.1 // indirect
+ github.com/go-openapi/jsonpointer v0.22.1 // indirect
+ github.com/go-openapi/jsonreference v0.21.2 // indirect
+ github.com/go-openapi/spec v0.22.0 // indirect
+ github.com/go-openapi/swag/conv v0.25.1 // indirect
+ github.com/go-openapi/swag/jsonname v0.25.1 // indirect
+ github.com/go-openapi/swag/jsonutils v0.25.1 // indirect
+ github.com/go-openapi/swag/loading v0.25.1 // indirect
+ github.com/go-openapi/swag/stringutils v0.25.1 // indirect
+ github.com/go-openapi/swag/typeutils v0.25.1 // indirect
+ github.com/go-openapi/swag/yamlutils v0.25.1 // indirect
github.com/go-sql-driver/mysql v1.9.3 // indirect
github.com/golang/protobuf v1.5.4 // indirect
github.com/google/s2a-go v0.1.9 // indirect
github.com/googleapis/enterprise-certificate-proxy v0.3.6 // indirect
github.com/googleapis/gax-go/v2 v2.15.0 // indirect
github.com/gorilla/css v1.0.1 // indirect
- github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.1 // indirect
+ github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.3 // indirect
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
github.com/hashicorp/go-version v1.7.0 // indirect
github.com/huandu/xstrings v1.5.0 // indirect
github.com/imdario/mergo v0.3.16 // indirect
github.com/jackc/pgpassfile v1.0.0 // indirect
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect
- github.com/jackc/pgx/v5 v5.7.5 // indirect
+ github.com/jackc/pgx/v5 v5.7.6 // indirect
github.com/jackc/puddle/v2 v2.2.2 // indirect
github.com/jaytaylor/html2text v0.0.0-20230321000545-74c2419ad056 // indirect
github.com/jinzhu/inflection v1.0.0 // indirect
- github.com/josharian/intern v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/klauspost/compress v1.18.0 // indirect
- github.com/mailru/easyjson v0.9.0 // indirect
github.com/mattn/go-colorable v0.1.14 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
- github.com/mattn/go-runewidth v0.0.16 // indirect
+ github.com/mattn/go-runewidth v0.0.19 // indirect
github.com/mitchellh/copystructure v1.2.0 // indirect
github.com/mitchellh/reflectwalk v1.0.2 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
- github.com/olekukonko/tablewriter v0.0.5 // indirect
- github.com/paulmach/orb v0.11.1 // indirect
+ github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 // indirect
+ github.com/olekukonko/errors v1.1.0 // indirect
+ github.com/olekukonko/ll v0.1.2 // indirect
+ github.com/olekukonko/tablewriter v1.1.0 // indirect
+ github.com/paulmach/orb v0.12.0 // indirect
github.com/pierrec/lz4/v4 v4.1.22 // indirect
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
- github.com/redis/go-redis/extra/rediscmd/v9 v9.12.1 // indirect
+ github.com/redis/go-redis/extra/rediscmd/v9 v9.14.0 // indirect
github.com/richardlehane/mscfb v1.0.4 // indirect
github.com/richardlehane/msoleps v1.0.4 // indirect
github.com/rivo/uniseg v0.4.7 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
- github.com/segmentio/asm v1.2.0 // indirect
+ github.com/segmentio/asm v1.2.1 // indirect
github.com/shopspring/decimal v1.4.0 // indirect
- github.com/spiffe/go-spiffe/v2 v2.5.0 // indirect
+ github.com/spiffe/go-spiffe/v2 v2.6.0 // indirect
github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf // indirect
github.com/swaggo/files/v2 v2.0.2 // indirect
- github.com/tiendc/go-deepcopy v1.6.1 // indirect
+ github.com/tiendc/go-deepcopy v1.7.1 // indirect
github.com/valyala/bytebufferpool v1.0.0 // indirect
- github.com/valyala/fasthttp v1.63.0 // indirect
+ github.com/valyala/fasthttp v1.67.0 // indirect
github.com/vanng822/css v1.0.1 // indirect
github.com/vanng822/go-premailer v1.25.0 // indirect
github.com/xuri/efp v0.0.1 // indirect
- github.com/xuri/nfp v0.0.1 // indirect
- github.com/zeebo/errs v1.4.0 // indirect
+ github.com/xuri/nfp v0.0.2-0.20250530014748-2ddeb826f9a9 // indirect
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
- go.opentelemetry.io/contrib v1.37.0 // indirect
- go.opentelemetry.io/contrib/detectors/gcp v1.37.0 // indirect
+ go.opentelemetry.io/contrib v1.38.0 // indirect
+ go.opentelemetry.io/contrib/detectors/gcp v1.38.0 // indirect
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 // indirect
- go.opentelemetry.io/contrib/instrumentation/runtime v0.62.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.13.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.37.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.37.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.37.0 // indirect
- go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.37.0 // indirect
- go.opentelemetry.io/otel/log v0.13.0 // indirect
- go.opentelemetry.io/otel/sdk/log v0.13.0 // indirect
- go.opentelemetry.io/proto/otlp v1.7.0 // indirect
+ go.opentelemetry.io/contrib/instrumentation/runtime v0.63.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.14.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.38.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0 // indirect
+ go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0 // indirect
+ go.opentelemetry.io/otel/log v0.14.0 // indirect
+ go.opentelemetry.io/otel/sdk/log v0.14.0 // indirect
+ go.opentelemetry.io/proto/otlp v1.8.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.0 // indirect
- golang.org/x/crypto v0.42.0 // indirect
- golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b // indirect
- golang.org/x/mod v0.27.0 // indirect
- golang.org/x/net v0.44.0 // indirect
- golang.org/x/oauth2 v0.31.0 // indirect
+ go.yaml.in/yaml/v3 v3.0.4 // indirect
+ golang.org/x/crypto v0.43.0 // indirect
+ golang.org/x/exp v0.0.0-20251009144603-d2f985daa21b // indirect
+ golang.org/x/mod v0.29.0 // indirect
+ golang.org/x/net v0.46.0 // indirect
+ golang.org/x/oauth2 v0.32.0 // indirect
golang.org/x/sync v0.17.0 // indirect
- golang.org/x/sys v0.36.0 // indirect
- golang.org/x/text v0.29.0 // indirect
- golang.org/x/time v0.13.0 // indirect
- golang.org/x/tools v0.36.0 // indirect
+ golang.org/x/sys v0.37.0 // indirect
+ golang.org/x/text v0.30.0 // indirect
+ golang.org/x/time v0.14.0 // indirect
+ golang.org/x/tools v0.38.0 // indirect
google.golang.org/appengine v1.6.8 // indirect
- google.golang.org/genproto v0.0.0-20250922171735-9219d122eba9 // indirect
- google.golang.org/genproto/googleapis/api v0.0.0-20250922171735-9219d122eba9 // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20250929231259-57b25ae835d4 // indirect
- google.golang.org/grpc v1.75.1 // indirect
+ google.golang.org/genproto v0.0.0-20251014184007-4626949a642f // indirect
+ google.golang.org/genproto/googleapis/api v0.0.0-20251014184007-4626949a642f // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20251014184007-4626949a642f // indirect
+ google.golang.org/grpc v1.76.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
gorm.io/driver/clickhouse v0.7.0 // indirect
gorm.io/driver/mysql v1.6.0 // indirect
diff --git a/api/go.sum b/api/go.sum
index d7766bce..20b96dac 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -2,42 +2,42 @@ bou.ke/monkey v1.0.2 h1:kWcnsrCNUatbxncxR/ThdYqbytgOIArtYWqcQLQzKLI=
bou.ke/monkey v1.0.2/go.mod h1:OqickVX3tNx6t33n1xvtTtu85YN5s6cKwVug+oHMaIA=
cel.dev/expr v0.24.0 h1:56OvJKSH3hDGL0ml5uSxZmz3/3Pq4tJ+fb1unVLAFcY=
cel.dev/expr v0.24.0/go.mod h1:hLPLo1W4QUmuYdA72RBX06QTs6MXw941piREPl3Yfiw=
-cloud.google.com/go v0.121.3 h1:84RD+hQXNdY5Sw/MWVAx5O9Aui/rd5VQ9HEcdN19afo=
-cloud.google.com/go v0.121.3/go.mod h1:6vWF3nJWRrEUv26mMB3FEIU/o1MQNVPG1iHdisa2SJc=
-cloud.google.com/go/auth v0.16.5 h1:mFWNQ2FEVWAliEQWpAdH80omXFokmrnbDhUS9cBywsI=
-cloud.google.com/go/auth v0.16.5/go.mod h1:utzRfHMP+Vv0mpOkTRQoWD2q3BatTOoWbA7gCc2dUhQ=
+cloud.google.com/go v0.123.0 h1:2NAUJwPR47q+E35uaJeYoNhuNEM9kM8SjgRgdeOJUSE=
+cloud.google.com/go v0.123.0/go.mod h1:xBoMV08QcqUGuPW65Qfm1o9Y4zKZBpGS+7bImXLTAZU=
+cloud.google.com/go/auth v0.17.0 h1:74yCm7hCj2rUyyAocqnFzsAYXgJhrG26XCFimrc/Kz4=
+cloud.google.com/go/auth v0.17.0/go.mod h1:6wv/t5/6rOPAX4fJiRjKkJCvswLwdet7G8+UGXt7nCQ=
cloud.google.com/go/auth/oauth2adapt v0.2.8 h1:keo8NaayQZ6wimpNSmW5OPc283g65QNIiLpZnkHRbnc=
cloud.google.com/go/auth/oauth2adapt v0.2.8/go.mod h1:XQ9y31RkqZCcwJWNSx2Xvric3RrU88hAYYbjDWYDL+c=
cloud.google.com/go/cloudtasks v1.13.7 h1:H2v8GEolNtMFfYzUpZBaZbydqU7drpyo99GtAgA+m4I=
cloud.google.com/go/cloudtasks v1.13.7/go.mod h1:H0TThOUG+Ml34e2+ZtW6k6nt4i9KuH3nYAJ5mxh7OM4=
cloud.google.com/go/compute/metadata v0.9.0 h1:pDUj4QMoPejqq20dK0Pg2N4yG9zIkYGdBtwLoEkH9Zs=
cloud.google.com/go/compute/metadata v0.9.0/go.mod h1:E0bWwX5wTnLPedCKqk3pJmVgCBSM6qQI1yTBdEb3C10=
-cloud.google.com/go/firestore v1.18.0 h1:cuydCaLS7Vl2SatAeivXyhbhDEIR8BDmtn4egDhIn2s=
-cloud.google.com/go/firestore v1.18.0/go.mod h1:5ye0v48PhseZBdcl0qbl3uttu7FIEwEYVaWm0UIEOEU=
-cloud.google.com/go/iam v1.5.2 h1:qgFRAGEmd8z6dJ/qyEchAuL9jpswyODjA2lS+w234g8=
-cloud.google.com/go/iam v1.5.2/go.mod h1:SE1vg0N81zQqLzQEwxL2WI6yhetBdbNQuTvIKCSkUHE=
+cloud.google.com/go/firestore v1.19.0 h1:E3FiRsWfZKwZ6W+Lsp1YqTzZ9H6jP+QsKW40KR21C8I=
+cloud.google.com/go/firestore v1.19.0/go.mod h1:jqu4yKdBmDN5srneWzx3HlKrHFWFdlkgjgQ6BKIOFQo=
+cloud.google.com/go/iam v1.5.3 h1:+vMINPiDF2ognBJ97ABAYYwRgsaqxPbQDlMnbHMjolc=
+cloud.google.com/go/iam v1.5.3/go.mod h1:MR3v9oLkZCTlaqljW6Eb2d3HGDGK5/bDv93jhfISFvU=
cloud.google.com/go/logging v1.13.0 h1:7j0HgAp0B94o1YRDqiqm26w4q1rDMH7XNRU34lJXHYc=
cloud.google.com/go/logging v1.13.0/go.mod h1:36CoKh6KA/M0PbhPKMq6/qety2DCAErbhXT62TuXALA=
-cloud.google.com/go/longrunning v0.6.7 h1:IGtfDWHhQCgCjwQjV9iiLnUta9LBCo8R9QmAFsS/PrE=
-cloud.google.com/go/longrunning v0.6.7/go.mod h1:EAFV3IZAKmM56TyiE6VAP3VoTzhZzySwI/YI1s/nRsY=
-cloud.google.com/go/monitoring v1.24.2 h1:5OTsoJ1dXYIiMiuL+sYscLc9BumrL3CarVLL7dd7lHM=
-cloud.google.com/go/monitoring v1.24.2/go.mod h1:x7yzPWcgDRnPEv3sI+jJGBkwl5qINf+6qY4eq0I9B4U=
-cloud.google.com/go/storage v1.55.0 h1:NESjdAToN9u1tmhVqhXCaCwYBuvEhZLLv0gBr+2znf0=
-cloud.google.com/go/storage v1.55.0/go.mod h1:ztSmTTwzsdXe5syLVS0YsbFxXuvEmEyZj7v7zChEmuY=
-cloud.google.com/go/trace v1.11.6 h1:2O2zjPzqPYAHrn3OKl029qlqG6W8ZdYaOWRyr8NgMT4=
-cloud.google.com/go/trace v1.11.6/go.mod h1:GA855OeDEBiBMzcckLPE2kDunIpC72N+Pq8WFieFjnI=
+cloud.google.com/go/longrunning v0.7.0 h1:FV0+SYF1RIj59gyoWDRi45GiYUMM3K1qO51qoboQT1E=
+cloud.google.com/go/longrunning v0.7.0/go.mod h1:ySn2yXmjbK9Ba0zsQqunhDkYi0+9rlXIwnoAf+h+TPY=
+cloud.google.com/go/monitoring v1.24.3 h1:dde+gMNc0UhPZD1Azu6at2e79bfdztVDS5lvhOdsgaE=
+cloud.google.com/go/monitoring v1.24.3/go.mod h1:nYP6W0tm3N9H/bOw8am7t62YTzZY+zUeQ+Bi6+2eonI=
+cloud.google.com/go/storage v1.57.0 h1:4g7NB7Ta7KetVbOMpCqy89C+Vg5VE8scqlSHUPm7Rds=
+cloud.google.com/go/storage v1.57.0/go.mod h1:329cwlpzALLgJuu8beyJ/uvQznDHpa2U5lGjWednkzg=
+cloud.google.com/go/trace v1.11.7 h1:kDNDX8JkaAG3R2nq1lIdkb7FCSi1rCmsEtKVsty7p+U=
+cloud.google.com/go/trace v1.11.7/go.mod h1:TNn9d5V3fQVf6s4SCveVMIBS2LJUqo73GACmq/Tky0s=
dario.cat/mergo v1.0.2 h1:85+piFYR1tMbRrLcDwR18y4UKJ3aH1Tbzi24VRW1TK8=
dario.cat/mergo v1.0.2/go.mod h1:E/hbnu0NxMFBjpMIE34DRGLWqDy0g5FuKDhCb31ngxA=
filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
firebase.google.com/go v3.13.0+incompatible h1:3TdYC3DDi6aHn20qoRkxwGqNgdjtblwVAyRLQwGn/+4=
firebase.google.com/go v3.13.0+incompatible/go.mod h1:xlah6XbEyW6tbfSklcfe5FHJIwjt8toICdV5Wh9ptHs=
-github.com/ClickHouse/ch-go v0.66.1 h1:LQHFslfVYZsISOY0dnOYOXGkOUvpv376CCm8g7W74A4=
-github.com/ClickHouse/ch-go v0.66.1/go.mod h1:NEYcg3aOFv2EmTJfo4m2WF7sHB/YFbLUuIWv9iq76xY=
-github.com/ClickHouse/clickhouse-go/v2 v2.37.2 h1:wRLNKoynvHQEN4znnVHNLaYnrqVc9sGJmGYg+GGCfto=
-github.com/ClickHouse/clickhouse-go/v2 v2.37.2/go.mod h1:pH2zrBGp5Y438DMwAxXMm1neSXPPjSI7tD4MURVULw8=
-github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.29.0 h1:UQUsRi8WTzhZntp5313l+CHIAT95ojUI2lpP/ExlZa4=
-github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.29.0/go.mod h1:Cz6ft6Dkn3Et6l2v2a9/RpN7epQ1GtDlO6lj8bEcOvw=
+github.com/ClickHouse/ch-go v0.69.0 h1:nO0OJkpxOlN/eaXFj0KzjTz5p7vwP1/y3GN4qc5z/iM=
+github.com/ClickHouse/ch-go v0.69.0/go.mod h1:9XeZpSAT4S0kVjOpaJ5186b7PY/NH/hhF8R6u0WIjwg=
+github.com/ClickHouse/clickhouse-go/v2 v2.40.3 h1:46jB4kKwVDUOnECpStKMVXxvR0Cg9zeV9vdbPjtn6po=
+github.com/ClickHouse/clickhouse-go/v2 v2.40.3/go.mod h1:qO0HwvjCnTB4BPL/k6EE3l4d9f/uF+aoimAhJX70eKA=
+github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.30.0 h1:sBEjpZlNHzK1voKq9695PJSX2o5NEXl7/OL3coiIY0c=
+github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.30.0/go.mod h1:P4WPRUkOhJC13W//jWpyfJNDAIpvRbAUIYLX/4jtlE0=
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.54.0 h1:lhhYARPUu3LmHysQ/igznQphfzynnqI3D75oUyw1HXk=
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.54.0/go.mod h1:l9rva3ApbBpEJxSNYnwT9N4CDLrWgtq3u8736C5hyJw=
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.30.0 h1:5eCqTd9rTwMlE62z0xFdzPJ+3pji75hJrwq1jrCjo5w=
@@ -72,14 +72,16 @@ github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA=
github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0=
github.com/carlmjohnson/requests v0.25.1 h1:17zNRLecxtAjhtdEIV+F+wrYfe+AGZUjWJtpndcOUYA=
github.com/carlmjohnson/requests v0.25.1/go.mod h1:z3UEf8IE4sZxZ78spW6/tLdqBkfCu1Fn4RaYMnZ8SRM=
-github.com/cenkalti/backoff/v5 v5.0.2 h1:rIfFVxEf1QsI7E1ZHfp/B4DF/6QBAUhmgkxc0H7Zss8=
-github.com/cenkalti/backoff/v5 v5.0.2/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw=
+github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1xcsSM=
+github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw=
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+github.com/clipperhouse/uax29/v2 v2.2.0 h1:ChwIKnQN3kcZteTXMgb1wztSgaU+ZemkgWdohwgs8tY=
+github.com/clipperhouse/uax29/v2 v2.2.0/go.mod h1:EFJ2TJMRUaplDxHKj1qAEhCtQPW2tJSwu5BF98AuoVM=
github.com/cloudevents/sdk-go/v2 v2.16.2 h1:ZYDFrYke4FD+jM8TZTJJO6JhKHzOQl2oqpFK1D+NnQM=
github.com/cloudevents/sdk-go/v2 v2.16.2/go.mod h1:laOcGImm4nVJEU+PHnUrKL56CKmRL65RlQF0kRmW/kg=
-github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443 h1:aQ3y1lwWyqYPiWZThqv1aFbZMiM9vblcSArJRf2Irls=
-github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8=
+github.com/cncf/xds/go v0.0.0-20251014123835-2ee22ca58382 h1:5IeUoAZvqwF6LcCnV99NbhrGKN6ihZgahJv5jKjmZ3k=
+github.com/cncf/xds/go v0.0.0-20251014123835-2ee22ca58382/go.mod h1:HlzOvOjVBOfTGSRXRyY0OiCS/3J1akRGQQpRO/7zyF4=
github.com/cockroachdb/cockroach-go/v2 v2.4.2 h1:QB0ozDWQUUJ0GP8Zw63X/qHefPTCpLvtfCs6TLrPgyE=
github.com/cockroachdb/cockroach-go/v2 v2.4.2/go.mod h1:9U179XbCx4qFWtNhc7BiWLPfuyMVQ7qdAhfrwLz1vH0=
github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
@@ -87,18 +89,18 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/dgraph-io/ristretto v1.0.0 h1:SYG07bONKMlFDUYu5pEu3DGAh8c2OFNzKm6G9J4Si84=
-github.com/dgraph-io/ristretto v1.0.0/go.mod h1:jTi2FiYEhQ1NsMmA7DeBykizjOuY88NhKBkepyu1jPc=
-github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y=
-github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw=
+github.com/dgraph-io/ristretto/v2 v2.3.0 h1:qTQ38m7oIyd4GAed/QkUZyPFNMnvVWyazGXRwvOt5zk=
+github.com/dgraph-io/ristretto/v2 v2.3.0/go.mod h1:gpoRV3VzrEY1a9dWAYV6T1U7YzfgttXdd/ZzL1s9OZM=
+github.com/dgryski/go-farm v0.0.0-20240924180020-3414d57e47da h1:aIftn67I1fkbMa512G+w+Pxci9hJPB8oMnkcP3iZF38=
+github.com/dgryski/go-farm v0.0.0-20240924180020-3414d57e47da/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw=
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
github.com/envoyproxy/go-control-plane v0.13.4 h1:zEqyPVyku6IvWCFwux4x9RxkLOMUL+1vC9xUFv5l2/M=
github.com/envoyproxy/go-control-plane v0.13.4/go.mod h1:kDfuBlDVsSj2MjrLEtRWtHlsWIFcGyB2RMO44Dc5GZA=
-github.com/envoyproxy/go-control-plane/envoy v1.32.4 h1:jb83lalDRZSpPWW2Z7Mck/8kXZ5CQAFYVjQcdVIr83A=
-github.com/envoyproxy/go-control-plane/envoy v1.32.4/go.mod h1:Gzjc5k8JcJswLjAx1Zm+wSYE20UrLtt7JZMWiWQXQEw=
+github.com/envoyproxy/go-control-plane/envoy v1.35.0 h1:ixjkELDE+ru6idPxcHLj8LBVc2bFP7iBytj353BoHUo=
+github.com/envoyproxy/go-control-plane/envoy v1.35.0/go.mod h1:09qwbGVuSWWAyN5t/b3iyVfz5+z8QWGrzkoqm/8SbEs=
github.com/envoyproxy/go-control-plane/ratelimit v0.1.0 h1:/G9QYbddjL25KvtKTv3an9lx6VBE2cnb8wp1vEGNYGI=
github.com/envoyproxy/go-control-plane/ratelimit v0.1.0/go.mod h1:Wk+tMFAFbCXaJPzVVHnPgRKdUdwW/KdbRt94AzgRee4=
github.com/envoyproxy/protoc-gen-validate v1.2.1 h1:DEo3O99U8j4hBFwbJfrz9VtgcDfUKS7KJ7spH3d86P8=
@@ -111,21 +113,36 @@ github.com/go-faster/city v1.0.1 h1:4WAxSZ3V2Ws4QRDrscLEDcibJY8uf41H6AhXDrNDcGw=
github.com/go-faster/city v1.0.1/go.mod h1:jKcUJId49qdW3L1qKHH/3wPeUstCVpVSXTM6vO3VcTw=
github.com/go-faster/errors v0.7.1 h1:MkJTnDoEdi9pDabt1dpWf7AA8/BaSYZqibYyhZ20AYg=
github.com/go-faster/errors v0.7.1/go.mod h1:5ySTjWFiphBs07IKuiL69nxdfd5+fzh1u7FPGZP2quo=
-github.com/go-jose/go-jose/v4 v4.1.1 h1:JYhSgy4mXXzAdF3nUx3ygx347LRXJRrpgyU3adRmkAI=
-github.com/go-jose/go-jose/v4 v4.1.1/go.mod h1:BdsZGqgdO3b6tTc6LSE56wcDbMMLuPsw5d4ZD5f94kA=
+github.com/go-jose/go-jose/v4 v4.1.3 h1:CVLmWDhDVRa6Mi/IgCgaopNosCaHz7zrMeF9MlZRkrs=
+github.com/go-jose/go-jose/v4 v4.1.3/go.mod h1:x4oUasVrzR7071A4TnHLGSPpNOm2a21K9Kf04k1rs08=
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
-github.com/go-openapi/jsonpointer v0.21.1 h1:whnzv/pNXtK2FbX/W9yJfRmE2gsmkfahjMKB0fZvcic=
-github.com/go-openapi/jsonpointer v0.21.1/go.mod h1:50I1STOfbY1ycR8jGz8DaMeLCdXiI6aDteEdRNNzpdk=
-github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ=
-github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4=
-github.com/go-openapi/spec v0.21.0 h1:LTVzPc3p/RzRnkQqLRndbAzjY0d0BCL72A6j3CdL9ZY=
-github.com/go-openapi/spec v0.21.0/go.mod h1:78u6VdPw81XU44qEWGhtr982gJ5BWg2c0I5XwVMotYk=
-github.com/go-openapi/swag v0.23.1 h1:lpsStH0n2ittzTnbaSloVZLuB5+fvSY/+hnagBjSNZU=
-github.com/go-openapi/swag v0.23.1/go.mod h1:STZs8TbRvEQQKUA+JZNAm3EWlgaOBGpyFDqQnDHMef0=
+github.com/go-openapi/jsonpointer v0.22.1 h1:sHYI1He3b9NqJ4wXLoJDKmUmHkWy/L7rtEo92JUxBNk=
+github.com/go-openapi/jsonpointer v0.22.1/go.mod h1:pQT9OsLkfz1yWoMgYFy4x3U5GY5nUlsOn1qSBH5MkCM=
+github.com/go-openapi/jsonreference v0.21.2 h1:Wxjda4M/BBQllegefXrY/9aq1fxBA8sI5M/lFU6tSWU=
+github.com/go-openapi/jsonreference v0.21.2/go.mod h1:pp3PEjIsJ9CZDGCNOyXIQxsNuroxm8FAJ/+quA0yKzQ=
+github.com/go-openapi/spec v0.22.0 h1:xT/EsX4frL3U09QviRIZXvkh80yibxQmtoEvyqug0Tw=
+github.com/go-openapi/spec v0.22.0/go.mod h1:K0FhKxkez8YNS94XzF8YKEMULbFrRw4m15i2YUht4L0=
+github.com/go-openapi/swag v0.19.15 h1:D2NRCBzS9/pEY3gP9Nl8aDqGUcPFrwG2p+CNFrLyrCM=
+github.com/go-openapi/swag/conv v0.25.1 h1:+9o8YUg6QuqqBM5X6rYL/p1dpWeZRhoIt9x7CCP+he0=
+github.com/go-openapi/swag/conv v0.25.1/go.mod h1:Z1mFEGPfyIKPu0806khI3zF+/EUXde+fdeksUl2NiDs=
+github.com/go-openapi/swag/jsonname v0.25.1 h1:Sgx+qbwa4ej6AomWC6pEfXrA6uP2RkaNjA9BR8a1RJU=
+github.com/go-openapi/swag/jsonname v0.25.1/go.mod h1:71Tekow6UOLBD3wS7XhdT98g5J5GR13NOTQ9/6Q11Zo=
+github.com/go-openapi/swag/jsonutils v0.25.1 h1:AihLHaD0brrkJoMqEZOBNzTLnk81Kg9cWr+SPtxtgl8=
+github.com/go-openapi/swag/jsonutils v0.25.1/go.mod h1:JpEkAjxQXpiaHmRO04N1zE4qbUEg3b7Udll7AMGTNOo=
+github.com/go-openapi/swag/jsonutils/fixtures_test v0.25.1 h1:DSQGcdB6G0N9c/KhtpYc71PzzGEIc/fZ1no35x4/XBY=
+github.com/go-openapi/swag/jsonutils/fixtures_test v0.25.1/go.mod h1:kjmweouyPwRUEYMSrbAidoLMGeJ5p6zdHi9BgZiqmsg=
+github.com/go-openapi/swag/loading v0.25.1 h1:6OruqzjWoJyanZOim58iG2vj934TysYVptyaoXS24kw=
+github.com/go-openapi/swag/loading v0.25.1/go.mod h1:xoIe2EG32NOYYbqxvXgPzne989bWvSNoWoyQVWEZicc=
+github.com/go-openapi/swag/stringutils v0.25.1 h1:Xasqgjvk30eUe8VKdmyzKtjkVjeiXx1Iz0zDfMNpPbw=
+github.com/go-openapi/swag/stringutils v0.25.1/go.mod h1:JLdSAq5169HaiDUbTvArA2yQxmgn4D6h4A+4HqVvAYg=
+github.com/go-openapi/swag/typeutils v0.25.1 h1:rD/9HsEQieewNt6/k+JBwkxuAHktFtH3I3ysiFZqukA=
+github.com/go-openapi/swag/typeutils v0.25.1/go.mod h1:9McMC/oCdS4BKwk2shEB7x17P6HmMmA6dQRtAkSnNb8=
+github.com/go-openapi/swag/yamlutils v0.25.1 h1:mry5ez8joJwzvMbaTGLhw8pXUnhDK91oSJLDPF1bmGk=
+github.com/go-openapi/swag/yamlutils v0.25.1/go.mod h1:cm9ywbzncy3y6uPm/97ysW8+wZ09qsks+9RS8fLWKqg=
github.com/go-sql-driver/mysql v1.9.3 h1:U/N249h2WzJ3Ukj8SowVFjdtZKfu9vlLZxjPXV1aweo=
github.com/go-sql-driver/mysql v1.9.3/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU=
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
@@ -138,8 +155,8 @@ github.com/gofiber/swagger v1.1.1/go.mod h1:vtvY/sQAMc/lGTUCg0lqmBL7Ht9O7uzChpbv
github.com/gofrs/flock v0.12.1 h1:MTLVXXHf8ekldpJk3AKicLij9MdwOWkZ+a/jHHZby9E=
github.com/gofrs/flock v0.12.1/go.mod h1:9zxTsyu5xtJ9DK+1tFZyibEV7y3uwDxPPfbxeeHCoD0=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
-github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY=
-github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I=
+github.com/golang-jwt/jwt/v5 v5.3.0 h1:pv4AsKCKKZuqlgs5sUmn4x8UlGa0kEVt/puTpKx9vvo=
+github.com/golang-jwt/jwt/v5 v5.3.0/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE=
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
@@ -163,8 +180,8 @@ github.com/googleapis/gax-go/v2 v2.15.0 h1:SyjDc1mGgZU5LncH8gimWo9lW1DtIfPibOG81
github.com/googleapis/gax-go/v2 v2.15.0/go.mod h1:zVVkkxAQHa1RQpg9z2AUCMnKhi0Qld9rcmyfL1OZhoc=
github.com/gorilla/css v1.0.1 h1:ntNaBIghp6JmvWnxbZKANoLyuXTPZ4cAMlo6RyhlbO8=
github.com/gorilla/css v1.0.1/go.mod h1:BvnYkspnSzMmwRK+b8/xgNPLiIuNZr6vbZBTPQ2A3b0=
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.1 h1:X5VWvz21y3gzm9Nw/kaUeku/1+uBhcekkmy4IkffJww=
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.1/go.mod h1:Zanoh4+gvIgluNqcfMVTJueD4wSS5hT7zTt4Mrutd90=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.3 h1:NmZ1PKzSTQbuGHw9DGPFomqkkLWMC+vZCkfs+FHv1Vg=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.3/go.mod h1:zQrxl1YP88HQlA6i9c63DSVPFklWpGX4OWAc9bFuaH4=
github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ=
github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB11/k=
@@ -183,12 +200,12 @@ github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsI
github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg=
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 h1:iCEnooe7UlwOQYpKFhBabPMi4aNAfoODPEFNiAnClxo=
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM=
-github.com/jackc/pgx/v5 v5.7.5 h1:JHGfMnQY+IEtGM63d+NGMjoRpysB2JBwDr5fsngwmJs=
-github.com/jackc/pgx/v5 v5.7.5/go.mod h1:aruU7o91Tc2q2cFp5h4uP3f6ztExVpyVv88Xl/8Vl8M=
+github.com/jackc/pgx/v5 v5.7.6 h1:rWQc5FwZSPX58r1OQmkuaNicxdmExaEz5A2DO2hUuTk=
+github.com/jackc/pgx/v5 v5.7.6/go.mod h1:aruU7o91Tc2q2cFp5h4uP3f6ztExVpyVv88Xl/8Vl8M=
github.com/jackc/puddle/v2 v2.2.2 h1:PR8nw+E/1w0GLuRFSmiioY6UooMp6KJv0/61nB7icHo=
github.com/jackc/puddle/v2 v2.2.2/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4=
-github.com/jaswdr/faker/v2 v2.6.1 h1:TlGSt2WYc9ut4IfCd1hk4luXQRjImC+Zza0KS+t0aR8=
-github.com/jaswdr/faker/v2 v2.6.1/go.mod h1:jZq+qzNQr8/P+5fHd9t3txe2GNPnthrTfohtnJ7B+68=
+github.com/jaswdr/faker/v2 v2.8.1 h1:2AcPgHDBXYQregFUH9LgVZKfFupc4SIquYhp29sf5wQ=
+github.com/jaswdr/faker/v2 v2.8.1/go.mod h1:jZq+qzNQr8/P+5fHd9t3txe2GNPnthrTfohtnJ7B+68=
github.com/jaytaylor/html2text v0.0.0-20230321000545-74c2419ad056 h1:iCHtR9CQyktQ5+f3dMVZfwD2KWJUgm7M0gdL9NGr8KA=
github.com/jaytaylor/html2text v0.0.0-20230321000545-74c2419ad056/go.mod h1:CVKlgaMiht+LXvHG173ujK6JUhZXKb2u/BQtjPDIvyk=
github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
@@ -199,8 +216,6 @@ github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0=
github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4=
github.com/jordan-wright/email v4.0.1-0.20210109023952-943e75fe5223+incompatible h1:jdpOPRN1zP63Td1hDQbZW73xKmzDvZHzVdNYxhnTMDA=
github.com/jordan-wright/email v4.0.1-0.20210109023952-943e75fe5223+incompatible/go.mod h1:1c7szIrayyPPB/987hsnvNzLushdWf4o/79s3P08L8A=
-github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
-github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/jszwec/csvutil v1.10.0 h1:upMDUxhQKqZ5ZDCs/wy+8Kib8rZR8I8lOR34yJkdqhI=
@@ -219,8 +234,6 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw=
github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
-github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4=
-github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU=
github.com/matcornic/hermes v1.3.0 h1:k6rih7zpUgfIF/57F3WeBi9n68XkvhC/z8eQTRIsQqc=
github.com/matcornic/hermes v1.3.0/go.mod h1:X3MXWWBHjKSfgQl0xjv+NQTAGWSiNr/fZTlhAEQJ63Q=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
@@ -230,9 +243,8 @@ github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/
github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
-github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
-github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc=
-github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w=
+github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw=
+github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs=
github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU=
github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw=
@@ -245,16 +257,22 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
-github.com/nyaruka/phonenumbers v1.6.5 h1:aBCaUhfpRA7hU6fsXk+p7KF1aNx4nQlq9hGeo2qdFg8=
-github.com/nyaruka/phonenumbers v1.6.5/go.mod h1:7gjs+Lchqm49adhAKB5cdcng5ZXgt6x7Jgvi0ZorUtU=
-github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
-github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
+github.com/nyaruka/phonenumbers v1.6.6 h1:cZv5/vslJh65zuOrLjdVDHKHzVEwVuUsXAPQi3bjGJU=
+github.com/nyaruka/phonenumbers v1.6.6/go.mod h1:7gjs+Lchqm49adhAKB5cdcng5ZXgt6x7Jgvi0ZorUtU=
+github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 h1:zrbMGy9YXpIeTnGj4EljqMiZsIcE09mmF8XsD5AYOJc=
+github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6/go.mod h1:rEKTHC9roVVicUIfZK7DYrdIoM0EOr8mK1Hj5s3JjH0=
+github.com/olekukonko/errors v1.1.0 h1:RNuGIh15QdDenh+hNvKrJkmxxjV4hcS50Db478Ou5sM=
+github.com/olekukonko/errors v1.1.0/go.mod h1:ppzxA5jBKcO1vIpCXQ9ZqgDh8iwODz6OXIGKU8r5m4Y=
+github.com/olekukonko/ll v0.1.2 h1:lkg/k/9mlsy0SxO5aC+WEpbdT5K83ddnNhAepz7TQc0=
+github.com/olekukonko/ll v0.1.2/go.mod h1:b52bVQRRPObe+yyBl0TxNfhesL0nedD4Cht0/zx55Ew=
+github.com/olekukonko/tablewriter v1.1.0 h1:N0LHrshF4T39KvI96fn6GT8HEjXRXYNDrDjKFDB7RIY=
+github.com/olekukonko/tablewriter v1.1.0/go.mod h1:5c+EBPeSqvXnLLgkm9isDdzR3wjfBkHR9Nhfp3NWrzo=
github.com/palantir/stacktrace v0.0.0-20161112013806-78658fd2d177 h1:nRlQD0u1871kaznCnn1EvYiMbum36v7hw1DLPEjds4o=
github.com/palantir/stacktrace v0.0.0-20161112013806-78658fd2d177/go.mod h1:ao5zGxj8Z4x60IOVYZUbDSmt3R8Ddo080vEgPosHpak=
github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc=
github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ=
-github.com/paulmach/orb v0.11.1 h1:3koVegMC4X/WeiXYz9iswopaTwMem53NzTJuTF20JzU=
-github.com/paulmach/orb v0.11.1/go.mod h1:5mULz1xQfs3bmQm63QEJA6lNGujuRafwA5S/EnuLaLU=
+github.com/paulmach/orb v0.12.0 h1:z+zOwjmG3MyEEqzv92UN49Lg1JFYx0L9GpGKNVDKk1s=
+github.com/paulmach/orb v0.12.0/go.mod h1:5mULz1xQfs3bmQm63QEJA6lNGujuRafwA5S/EnuLaLU=
github.com/paulmach/protoscan v0.2.1/go.mod h1:SpcSwydNLrxUGSDvXvO0P7g7AuhJ7lcKfDlhJCDw2gY=
github.com/pierrec/lz4/v4 v4.1.22 h1:cKFw6uJDK+/gfw5BcDL0JL5aBsAFdsIT18eRtLj7VIU=
github.com/pierrec/lz4/v4 v4.1.22/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
@@ -267,10 +285,10 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pusher/pusher-http-go/v5 v5.1.1 h1:ZLUGdLA8yXMvByafIkS47nvuXOHrYmlh4bsQvuZnYVQ=
github.com/pusher/pusher-http-go/v5 v5.1.1/go.mod h1:Ibji4SGoUDtOy7CVRhCiEpgy+n5Xv6hSL/QqYOhmWW8=
-github.com/redis/go-redis/extra/rediscmd/v9 v9.12.1 h1:DR14pbiA9cjS5btoGU7oKuBcaYGzpxMsAyswO6mHqSk=
-github.com/redis/go-redis/extra/rediscmd/v9 v9.12.1/go.mod h1:mWGfYiY4x0lamv7XbhF0M1hxwa6EkfxzEpVsv9yG7PY=
-github.com/redis/go-redis/extra/redisotel/v9 v9.12.1 h1:2MioZj2s8Ovom2Yrpb/bBCJ88fR9L0MfMq2wAH44R8M=
-github.com/redis/go-redis/extra/redisotel/v9 v9.12.1/go.mod h1:nw1BvV+EW5TmXbfUOhFsPETFR390JLmtdWut88T1VAE=
+github.com/redis/go-redis/extra/rediscmd/v9 v9.14.0 h1:DF7JP9CeCIEWbvVKA3r7dxCB1cUvEm+cD8fgWCn7R0g=
+github.com/redis/go-redis/extra/rediscmd/v9 v9.14.0/go.mod h1:JCn91QtwR6qo3PEs35hcpBSirjqKpKwSSjnZX4kYgI0=
+github.com/redis/go-redis/extra/redisotel/v9 v9.14.0 h1:kXIdyUBHeXsR1foSU+qdZjo3tROk5Rb2HS1kp99YuPM=
+github.com/redis/go-redis/extra/redisotel/v9 v9.14.0/go.mod h1:LafdjmKxzRKYznKgcVeqS3vIiBCsY90JbB0pDgHt774=
github.com/redis/go-redis/v9 v9.14.0 h1:u4tNCjXOyzfgeLN+vAZaW1xUooqWDqVEsZN0U01jfAE=
github.com/redis/go-redis/v9 v9.14.0/go.mod h1:huWgSWd8mW6+m0VPhJjSSQ+d6Nh1VICQ6Q5lHuCH/Iw=
github.com/richardlehane/mscfb v1.0.4 h1:WULscsljNPConisD5hR0+OyZjwK46Pfyr6mPu5ZawpM=
@@ -278,7 +296,6 @@ github.com/richardlehane/mscfb v1.0.4/go.mod h1:YzVpcZg9czvAuhk9T+a3avCpcFPMUWm7
github.com/richardlehane/msoleps v1.0.1/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg=
github.com/richardlehane/msoleps v1.0.4 h1:WuESlvhX3gH2IHcd8UqyCuFY5yiq/GR/yqaSM/9/g00=
github.com/richardlehane/msoleps v1.0.4/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg=
-github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
@@ -288,12 +305,12 @@ github.com/rs/zerolog v1.34.0 h1:k43nTLIwcTVQAncfCw4KZ2VY6ukYoZaBPNOE8txlOeY=
github.com/rs/zerolog v1.34.0/go.mod h1:bJsvje4Z08ROH4Nhs5iH600c3IkWhwp44iRc54W6wYQ=
github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
-github.com/segmentio/asm v1.2.0 h1:9BQrFxC+YOHJlTlHGkTrFWf59nbL3XnCoFLTwDCI7ys=
-github.com/segmentio/asm v1.2.0/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr5aAcs=
+github.com/segmentio/asm v1.2.1 h1:DTNbBqs57ioxAD4PrArqftgypG4/qNpXoJx8TVXxPR0=
+github.com/segmentio/asm v1.2.1/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr5aAcs=
github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k=
github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME=
-github.com/spiffe/go-spiffe/v2 v2.5.0 h1:N2I01KCUkv1FAjZXJMwh95KK1ZIQLYbPfhaxw8WS0hE=
-github.com/spiffe/go-spiffe/v2 v2.5.0/go.mod h1:P+NxobPc6wXhVtINNtFjNWGBTreew1GBUCwT2wPmb7g=
+github.com/spiffe/go-spiffe/v2 v2.6.0 h1:l+DolpxNWYgruGQVV0xsfeya3CsC7m8iBzDnMpsbLuo=
+github.com/spiffe/go-spiffe/v2 v2.6.0/go.mod h1:gm2SeUoMZEtpnzPNs2Csc0D/gX33k1xIx7lEzqblHEs=
github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf h1:pvbZ0lM0XWPBqUKqFU8cmavspvIl9nulOYwdy6IFRRo=
github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf/go.mod h1:RJID2RhlZKId02nZ62WenDCkgHFerpIOmW0iT7GKmXM=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
@@ -309,14 +326,14 @@ github.com/swaggo/swag v1.16.6/go.mod h1:ngP2etMK5a0P3QBizic5MEwpRmluJZPHjXcMoj4
github.com/thedevsaddam/govalidator v1.9.10 h1:m3dLRbSZ5Hts3VUWYe+vxLMG+FdyQuWOjzTeQRiMCvU=
github.com/thedevsaddam/govalidator v1.9.10/go.mod h1:Ilx8u7cg5g3LXbSS943cx5kczyNuUn7LH/cK5MYuE90=
github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
-github.com/tiendc/go-deepcopy v1.6.1 h1:uVRTItFeNHkMcLueHS7OCsxgxT9P8MzGB/taUa2Y4Tk=
-github.com/tiendc/go-deepcopy v1.6.1/go.mod h1:toXoeQoUqXOOS/X4sKuiAoSk6elIdqc0pN7MTgOOo2I=
-github.com/uptrace/uptrace-go v1.37.0 h1:9ohbWB0qZEfcPLFbfqAAt5wz2rcBmL60/QqkOkvqYOs=
-github.com/uptrace/uptrace-go v1.37.0/go.mod h1:3xAdXLVyEoqvRwuj3D/n1s9bLl7Ok+OnNaW889fvtDQ=
+github.com/tiendc/go-deepcopy v1.7.1 h1:LnubftI6nYaaMOcaz0LphzwraqN8jiWTwm416sitff4=
+github.com/tiendc/go-deepcopy v1.7.1/go.mod h1:4bKjNC2r7boYOkD2IOuZpYjmlDdzjbpTRyCx+goBCJQ=
+github.com/uptrace/uptrace-go v1.38.0 h1:QdJfyQkaz7HNPbqM9OkaQ2L9jfdf0DpfZJv9em7YIgE=
+github.com/uptrace/uptrace-go v1.38.0/go.mod h1:SdE9nA+/y+SOIzatuIK2tZeYhoWgrAzAr08kJEquZyM=
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
-github.com/valyala/fasthttp v1.63.0 h1:DisIL8OjB7ul2d7cBaMRcKTQDYnrGy56R4FCiuDP0Ns=
-github.com/valyala/fasthttp v1.63.0/go.mod h1:REc4IeW+cAEyLrRPa5A81MIjvz0QE1laoTX2EaPHKJM=
+github.com/valyala/fasthttp v1.67.0 h1:tqKlJMUP6iuNG8hGjK/s9J4kadH7HLV4ijEcPGsezac=
+github.com/valyala/fasthttp v1.67.0/go.mod h1:qYSIpqt/0XNmShgo/8Aq8E3UYWVVwNS2QYmzd8WIEPM=
github.com/vanng822/css v1.0.1 h1:10yiXc4e8NI8ldU6mSrWmSWMuyWgPr9DZ63RSlsgDw8=
github.com/vanng822/css v1.0.1/go.mod h1:tcnB1voG49QhCrwq1W0w5hhGasvOg+VQp9i9H1rCM1w=
github.com/vanng822/go-premailer v1.25.0 h1:hGHKfroCXrCDTyGVR8o4HCON5/HWvc7C1uocS+VnaZs=
@@ -326,71 +343,71 @@ github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23n
github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8=
github.com/xuri/efp v0.0.1 h1:fws5Rv3myXyYni8uwj2qKjVaRP30PdjeYe2Y6FDsCL8=
github.com/xuri/efp v0.0.1/go.mod h1:ybY/Jr0T0GTCnYjKqmdwxyxn2BQf2RcQIIvex5QldPI=
-github.com/xuri/excelize/v2 v2.9.1 h1:VdSGk+rraGmgLHGFaGG9/9IWu1nj4ufjJ7uwMDtj8Qw=
-github.com/xuri/excelize/v2 v2.9.1/go.mod h1:x7L6pKz2dvo9ejrRuD8Lnl98z4JLt0TGAwjhW+EiP8s=
-github.com/xuri/nfp v0.0.1 h1:MDamSGatIvp8uOmDP8FnmjuQpu90NzdJxo7242ANR9Q=
-github.com/xuri/nfp v0.0.1/go.mod h1:WwHg+CVyzlv/TX9xqBFXEZAuxOPxn2k1GNHwG41IIUQ=
+github.com/xuri/excelize/v2 v2.10.0 h1:8aKsP7JD39iKLc6dH5Tw3dgV3sPRh8uRVXu/fMstfW4=
+github.com/xuri/excelize/v2 v2.10.0/go.mod h1:SC5TzhQkaOsTWpANfm+7bJCldzcnU/jrhqkTi/iBHBU=
+github.com/xuri/nfp v0.0.2-0.20250530014748-2ddeb826f9a9 h1:+C0TIdyyYmzadGaL/HBLbf3WdLgC29pgyhTjAT/0nuE=
+github.com/xuri/nfp v0.0.2-0.20250530014748-2ddeb826f9a9/go.mod h1:WwHg+CVyzlv/TX9xqBFXEZAuxOPxn2k1GNHwG41IIUQ=
github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU=
github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E=
github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
-github.com/zeebo/errs v1.4.0 h1:XNdoD/RRMKP7HD0UhJnIzUy74ISdGGxURlYG8HSWSfM=
-github.com/zeebo/errs v1.4.0/go.mod h1:sgbWHsvVuTPHcqJJGQ1WhI5KbWlHYz+2+2C/LSEtCw4=
go.mongodb.org/mongo-driver v1.11.4/go.mod h1:PTSz5yu21bkT/wXpkS7WR5f0ddqw5quethTUn9WM+2g=
go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64=
go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y=
-go.opentelemetry.io/contrib v1.37.0 h1:D6KBfpW31z7ty0qbheujzwJDsqubVGYoaBJojh5vYnY=
-go.opentelemetry.io/contrib v1.37.0/go.mod h1:V0PijCkYR5XurE5ytnNJuqWMXPW60jJTPXOiKj6nvhI=
-go.opentelemetry.io/contrib/detectors/gcp v1.37.0 h1:B+WbN9RPsvobe6q4vP6KgM8/9plR/HNjgGBrfcOlweA=
-go.opentelemetry.io/contrib/detectors/gcp v1.37.0/go.mod h1:K5zQ3TT7p2ru9Qkzk0bKtCql0RGkPj9pRjpXgZJZ+rU=
+go.opentelemetry.io/contrib v1.38.0 h1:msaHYZ13HfLIbqXsGwZZQBg5zgxwumlZ1mCkXn3E7LM=
+go.opentelemetry.io/contrib v1.38.0/go.mod h1:4Vp7Az5Dez02V1lCi9OqLvSmSz0lbZu/O2r4XZsqwB0=
+go.opentelemetry.io/contrib/detectors/gcp v1.38.0 h1:ZoYbqX7OaA/TAikspPl3ozPI6iY6LiIY9I8cUfm+pJs=
+go.opentelemetry.io/contrib/detectors/gcp v1.38.0/go.mod h1:SU+iU7nu5ud4oCb3LQOhIZ3nRLj6FNVrKgtflbaf2ts=
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0 h1:YH4g8lQroajqUwWbq/tr2QX1JFmEXaDLgG+ew9bLMWo=
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0/go.mod h1:fvPi2qXDqFs8M4B4fmJhE92TyQs9Ydjlg3RvfUp+NbQ=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 h1:RbKq8BG0FI8OiXhBfcRtqqHcZcka+gU3cskNuf05R18=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0/go.mod h1:h06DGIukJOevXaj/xrNjhi/2098RZzcLTbc0jDAUbsg=
-go.opentelemetry.io/contrib/instrumentation/runtime v0.62.0 h1:ZIt0ya9/y4WyRIzfLC8hQRRsWg0J9M9GyaGtIMiElZI=
-go.opentelemetry.io/contrib/instrumentation/runtime v0.62.0/go.mod h1:F1aJ9VuiKWOlWwKdTYDUp1aoS0HzQxg38/VLxKmhm5U=
+go.opentelemetry.io/contrib/instrumentation/runtime v0.63.0 h1:PeBoRj6af6xMI7qCupwFvTbbnd49V7n5YpG6pg8iDYQ=
+go.opentelemetry.io/contrib/instrumentation/runtime v0.63.0/go.mod h1:ingqBCtMCe8I4vpz/UVzCW6sxoqgZB37nao91mLQ3Bw=
go.opentelemetry.io/contrib/propagators/b3 v1.19.0 h1:ulz44cpm6V5oAeg5Aw9HyqGFMS6XM7untlMEhD7YzzA=
go.opentelemetry.io/contrib/propagators/b3 v1.19.0/go.mod h1:OzCmE2IVS+asTI+odXQstRGVfXQ4bXv9nMBRK0nNyqQ=
go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8=
go.opentelemetry.io/otel v1.38.0/go.mod h1:zcmtmQ1+YmQM9wrNsTGV/q/uyusom3P8RxwExxkZhjM=
-go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.13.0 h1:zUfYw8cscHHLwaY8Xz3fiJu+R59xBnkgq2Zr1lwmK/0=
-go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.13.0/go.mod h1:514JLMCcFLQFS8cnTepOk6I09cKWJ5nGHBxHrMJ8Yfg=
-go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.37.0 h1:9PgnL3QNlj10uGxExowIDIZu66aVBwWhXmbOp1pa6RA=
-go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.37.0/go.mod h1:0ineDcLELf6JmKfuo0wvvhAVMuxWFYvkTin2iV4ydPQ=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.37.0 h1:Ahq7pZmv87yiyn3jeFz/LekZmPLLdKejuO3NcK9MssM=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.37.0/go.mod h1:MJTqhM0im3mRLw1i8uGHnCvUEeS7VwRyxlLC78PA18M=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.37.0 h1:bDMKF3RUSxshZ5OjOTi8rsHGaPKsAt76FaqgvIUySLc=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.37.0/go.mod h1:dDT67G/IkA46Mr2l9Uj7HsQVwsjASyV9SjGofsiUZDA=
+go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.14.0 h1:QQqYw3lkrzwVsoEX0w//EhH/TCnpRdEenKBOOEIMjWc=
+go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.14.0/go.mod h1:gSVQcr17jk2ig4jqJ2DX30IdWH251JcNAecvrqTxH1s=
+go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.38.0 h1:Oe2z/BCg5q7k4iXC3cqJxKYg0ieRiOqF0cecFYdPTwk=
+go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.38.0/go.mod h1:ZQM5lAJpOsKnYagGg/zV2krVqTtaVdYdDkhMoX6Oalg=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 h1:GqRJVj7UmLjCVyVJ3ZFLdPRmhDUp2zFmQe3RHIOsw24=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0/go.mod h1:ri3aaHSmCTVYu2AWv44YMauwAQc0aqI9gHKIcSbI1pU=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0 h1:aTL7F04bJHUlztTsNGJ2l+6he8c+y/b//eR0jjjemT4=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0/go.mod h1:kldtb7jDTeol0l3ewcmd8SDvx3EmIE7lyvqbasU3QC4=
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.36.0 h1:rixTyDGXFxRy1xzhKrotaHy3/KXdPhlWARrCgK+eqUY=
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.36.0/go.mod h1:dowW6UsM9MKbJq5JTz2AMVp3/5iW5I/TStsk8S+CfHw=
-go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.37.0 h1:SNhVp/9q4Go/XHBkQ1/d5u9P/U+L1yaGPoi0x+mStaI=
-go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.37.0/go.mod h1:tx8OOlGH6R4kLV67YaYO44GFXloEjGPZuMjEkaaqIp4=
-go.opentelemetry.io/otel/log v0.13.0 h1:yoxRoIZcohB6Xf0lNv9QIyCzQvrtGZklVbdCoyb7dls=
-go.opentelemetry.io/otel/log v0.13.0/go.mod h1:INKfG4k1O9CL25BaM1qLe0zIedOpvlS5Z7XgSbmN83E=
+go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0 h1:kJxSDN4SgWWTjG/hPp3O7LCGLcHXFlvS2/FFOrwL+SE=
+go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0/go.mod h1:mgIOzS7iZeKJdeB8/NYHrJ48fdGc71Llo5bJ1J4DWUE=
+go.opentelemetry.io/otel/log v0.14.0 h1:2rzJ+pOAZ8qmZ3DDHg73NEKzSZkhkGIua9gXtxNGgrM=
+go.opentelemetry.io/otel/log v0.14.0/go.mod h1:5jRG92fEAgx0SU/vFPxmJvhIuDU9E1SUnEQrMlJpOno=
go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgfrA6WpA=
go.opentelemetry.io/otel/metric v1.38.0/go.mod h1:kB5n/QoRM8YwmUahxvI3bO34eVtQf2i4utNVLr9gEmI=
go.opentelemetry.io/otel/oteltest v1.0.0-RC3 h1:MjaeegZTaX0Bv9uB9CrdVjOFM/8slRjReoWoV9xDCpY=
go.opentelemetry.io/otel/oteltest v1.0.0-RC3/go.mod h1:xpzajI9JBRr7gX63nO6kAmImmYIAtuQblZ36Z+LfCjE=
go.opentelemetry.io/otel/sdk v1.38.0 h1:l48sr5YbNf2hpCUj/FoGhW9yDkl+Ma+LrVl8qaM5b+E=
go.opentelemetry.io/otel/sdk v1.38.0/go.mod h1:ghmNdGlVemJI3+ZB5iDEuk4bWA3GkTpW+DOoZMYBVVg=
-go.opentelemetry.io/otel/sdk/log v0.13.0 h1:I3CGUszjM926OphK8ZdzF+kLqFvfRY/IIoFq/TjwfaQ=
-go.opentelemetry.io/otel/sdk/log v0.13.0/go.mod h1:lOrQyCCXmpZdN7NchXb6DOZZa1N5G1R2tm5GMMTpDBw=
-go.opentelemetry.io/otel/sdk/log/logtest v0.13.0 h1:9yio6AFZ3QD9j9oqshV1Ibm9gPLlHNxurno5BreMtIA=
-go.opentelemetry.io/otel/sdk/log/logtest v0.13.0/go.mod h1:QOGiAJHl+fob8Nu85ifXfuQYmJTFAvcrxL6w5/tu168=
+go.opentelemetry.io/otel/sdk/log v0.14.0 h1:JU/U3O7N6fsAXj0+CXz21Czg532dW2V4gG1HE/e8Zrg=
+go.opentelemetry.io/otel/sdk/log v0.14.0/go.mod h1:imQvII+0ZylXfKU7/wtOND8Hn4OpT3YUoIgqJVksUkM=
+go.opentelemetry.io/otel/sdk/log/logtest v0.14.0 h1:Ijbtz+JKXl8T2MngiwqBlPaHqc4YCaP/i13Qrow6gAM=
+go.opentelemetry.io/otel/sdk/log/logtest v0.14.0/go.mod h1:dCU8aEL6q+L9cYTqcVOk8rM9Tp8WdnHOPLiBgp0SGOA=
go.opentelemetry.io/otel/sdk/metric v1.38.0 h1:aSH66iL0aZqo//xXzQLYozmWrXxyFkBJ6qT5wthqPoM=
go.opentelemetry.io/otel/sdk/metric v1.38.0/go.mod h1:dg9PBnW9XdQ1Hd6ZnRz689CbtrUp0wMMs9iPcgT9EZA=
go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE=
go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs=
-go.opentelemetry.io/proto/otlp v1.7.0 h1:jX1VolD6nHuFzOYso2E73H85i92Mv8JQYk0K9vz09os=
-go.opentelemetry.io/proto/otlp v1.7.0/go.mod h1:fSKjH6YJ7HDlwzltzyMj036AJ3ejJLCgCSHGj4efDDo=
+go.opentelemetry.io/proto/otlp v1.8.0 h1:fRAZQDcAFHySxpJ1TwlA1cJ4tvcrw7nXl9xWWC8N5CE=
+go.opentelemetry.io/proto/otlp v1.8.0/go.mod h1:tIeYOeNBU4cvmPqpaji1P+KbB4Oloai8wN4rWzRrFF0=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
+go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc=
+go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
@@ -401,10 +418,10 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY
golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
-golang.org/x/crypto v0.42.0 h1:chiH31gIWm57EkTXpwnqf8qeuMUi0yekh6mT2AvFlqI=
-golang.org/x/crypto v0.42.0/go.mod h1:4+rDnOTJhQCx2q7/j6rAN5XDw8kPjeaXEUR2eL94ix8=
-golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b h1:M2rDM6z3Fhozi9O7NWsxAkg/yqS/lQJ6PmkyIV3YP+o=
-golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b/go.mod h1:3//PLf8L/X+8b4vuAfHzxeRUl04Adcb341+IGKfnqS8=
+golang.org/x/crypto v0.43.0 h1:dduJYIi3A3KOfdGOHX8AVZ/jGiyPa3IbBozJ5kNuE04=
+golang.org/x/crypto v0.43.0/go.mod h1:BFbav4mRNlXJL4wNeejLpWxB7wMbc79PdRGhWKncxR0=
+golang.org/x/exp v0.0.0-20251009144603-d2f985daa21b h1:18qgiDvlvH7kk8Ioa8Ov+K6xCi0GMvmGfGW0sgd/SYA=
+golang.org/x/exp v0.0.0-20251009144603-d2f985daa21b/go.mod h1:j/pmGrbnkbPtQfxEe5D0VQhZC6qKbfKifgD0oM7sR70=
golang.org/x/image v0.25.0 h1:Y6uW6rH1y5y/LK1J8BPWZtr6yZ7hrsy6hFrXjgsc2fQ=
golang.org/x/image v0.25.0/go.mod h1:tCAmOEGthTtkalusGp1g3xa2gke8J6c2N565dTyl9Rs=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
@@ -414,8 +431,8 @@ golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
-golang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ=
-golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc=
+golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA=
+golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -429,10 +446,10 @@ golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
-golang.org/x/net v0.44.0 h1:evd8IRDyfNBMBTTY5XRF1vaZlD+EmWx6x8PkhR04H/I=
-golang.org/x/net v0.44.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY=
-golang.org/x/oauth2 v0.31.0 h1:8Fq0yVZLh4j4YA47vHKFTa9Ew5XIrCP8LC6UeNZnLxo=
-golang.org/x/oauth2 v0.31.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
+golang.org/x/net v0.46.0 h1:giFlY12I07fugqwPuWJi68oOnpfqFnJIJzaIIm2JVV4=
+golang.org/x/net v0.46.0/go.mod h1:Q9BGdFy1y4nkUwiLvT5qtyhAnEHgnQ/zd8PfU6nc210=
+golang.org/x/oauth2 v0.32.0 h1:jsCblLleRMDrxMN29H3z/k1KliIvpLgCkE6R8FXXNgY=
+golang.org/x/oauth2 v0.32.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -461,8 +478,8 @@ golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
-golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k=
-golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
+golang.org/x/sys v0.37.0 h1:fdNQudmxPjkdUTPnLn5mdQv7Zwvbvpaxqs831goi9kQ=
+golang.org/x/sys v0.37.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
@@ -483,10 +500,10 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
-golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk=
-golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4=
-golang.org/x/time v0.13.0 h1:eUlYslOIt32DgYD6utsuUeHs4d7AsEYLuIAdg7FlYgI=
-golang.org/x/time v0.13.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4=
+golang.org/x/text v0.30.0 h1:yznKA/E9zq54KzlzBEAWn1NXSQ8DIp/NYMy88xJjl4k=
+golang.org/x/text v0.30.0/go.mod h1:yDdHFIX9t+tORqspjENWgzaCVXgk0yYnYuSZ8UzzBVM=
+golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI=
+golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
@@ -495,31 +512,31 @@ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
-golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg=
-golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s=
+golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ=
+golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk=
gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E=
-google.golang.org/api v0.251.0 h1:6lea5nHRT8RUmpy9kkC2PJYnhnDAB13LqrLSVQlMIE8=
-google.golang.org/api v0.251.0/go.mod h1:Rwy0lPf/TD7+T2VhYcffCHhyyInyuxGjICxdfLqT7KI=
+google.golang.org/api v0.252.0 h1:xfKJeAJaMwb8OC9fesr369rjciQ704AjU/psjkKURSI=
+google.golang.org/api v0.252.0/go.mod h1:dnHOv81x5RAmumZ7BWLShB/u7JZNeyalImxHmtTHxqw=
google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM=
google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds=
-google.golang.org/genproto v0.0.0-20250922171735-9219d122eba9 h1:LvZVVaPE0JSqL+ZWb6ErZfnEOKIqqFWUJE2D0fObSmc=
-google.golang.org/genproto v0.0.0-20250922171735-9219d122eba9/go.mod h1:QFOrLhdAe2PsTp3vQY4quuLKTi9j3XG3r6JPPaw7MSc=
-google.golang.org/genproto/googleapis/api v0.0.0-20250922171735-9219d122eba9 h1:jm6v6kMRpTYKxBRrDkYAitNJegUeO1Mf3Kt80obv0gg=
-google.golang.org/genproto/googleapis/api v0.0.0-20250922171735-9219d122eba9/go.mod h1:LmwNphe5Afor5V3R5BppOULHOnt2mCIf+NxMd4XiygE=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20250929231259-57b25ae835d4 h1:i8QOKZfYg6AbGVZzUAY3LrNWCKF8O6zFisU9Wl9RER4=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20250929231259-57b25ae835d4/go.mod h1:HSkG/KdJWusxU1F6CNrwNDjBMgisKxGnc5dAZfT0mjQ=
-google.golang.org/grpc v1.75.1 h1:/ODCNEuf9VghjgO3rqLcfg8fiOP0nSluljWFlDxELLI=
-google.golang.org/grpc v1.75.1/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ=
+google.golang.org/genproto v0.0.0-20251014184007-4626949a642f h1:vLd1CJuJOUgV6qijD7KT5Y2ZtC97ll4dxjTUappMnbo=
+google.golang.org/genproto v0.0.0-20251014184007-4626949a642f/go.mod h1:PI3KrSadr00yqfv6UDvgZGFsmLqeRIwt8x4p5Oo7CdM=
+google.golang.org/genproto/googleapis/api v0.0.0-20251014184007-4626949a642f h1:OiFuztEyBivVKDvguQJYWq1yDcfAHIID/FVrPR4oiI0=
+google.golang.org/genproto/googleapis/api v0.0.0-20251014184007-4626949a642f/go.mod h1:kprOiu9Tr0JYyD6DORrc4Hfyk3RFXqkQ3ctHEum3ZbM=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20251014184007-4626949a642f h1:1FTH6cpXFsENbPR5Bu8NQddPSaUUE6NA2XdZdDSAJK4=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20251014184007-4626949a642f/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk=
+google.golang.org/grpc v1.76.0 h1:UnVkv1+uMLYXoIz6o7chp59WfQUYA2ex/BXQ9rHZu7A=
+google.golang.org/grpc v1.76.0/go.mod h1:Ju12QI8M6iQJtbcsV+awF5a4hfJMLi4X0JLo94ULZ6c=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
-google.golang.org/protobuf v1.36.9 h1:w2gp2mA27hUeUzj9Ex9FBjsBm40zfaDtEWow293U7Iw=
-google.golang.org/protobuf v1.36.9/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU=
+google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE=
+google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
diff --git a/api/pkg/di/container.go b/api/pkg/di/container.go
index 91eb9920..98b0a672 100644
--- a/api/pkg/di/container.go
+++ b/api/pkg/di/container.go
@@ -15,7 +15,7 @@ import (
otelMetric "go.opentelemetry.io/otel/metric"
- "github.com/dgraph-io/ristretto"
+ "github.com/dgraph-io/ristretto/v2"
"github.com/gofiber/contrib/otelfiber"
"gorm.io/plugin/opentelemetry/tracing"
diff --git a/api/pkg/repositories/gorm_phone_api_key_repository.go b/api/pkg/repositories/gorm_phone_api_key_repository.go
index 692616eb..3b1bb306 100644
--- a/api/pkg/repositories/gorm_phone_api_key_repository.go
+++ b/api/pkg/repositories/gorm_phone_api_key_repository.go
@@ -10,7 +10,7 @@ import (
"github.com/NdoleStudio/httpsms/pkg/entities"
"github.com/NdoleStudio/httpsms/pkg/telemetry"
- "github.com/dgraph-io/ristretto"
+ "github.com/dgraph-io/ristretto/v2"
"github.com/google/uuid"
"github.com/palantir/stacktrace"
"gorm.io/gorm"
diff --git a/api/pkg/repositories/gorm_user_repository.go b/api/pkg/repositories/gorm_user_repository.go
index c8888399..39cda887 100644
--- a/api/pkg/repositories/gorm_user_repository.go
+++ b/api/pkg/repositories/gorm_user_repository.go
@@ -11,7 +11,7 @@ import (
"gorm.io/gorm/clause"
"github.com/cockroachdb/cockroach-go/v2/crdb/crdbgorm"
- "github.com/dgraph-io/ristretto"
+ "github.com/dgraph-io/ristretto/v2"
"github.com/NdoleStudio/httpsms/pkg/entities"
"github.com/NdoleStudio/httpsms/pkg/telemetry"
diff --git a/api/pkg/services/webhook_service.go b/api/pkg/services/webhook_service.go
index 9c1856d6..93432054 100644
--- a/api/pkg/services/webhook_service.go
+++ b/api/pkg/services/webhook_service.go
@@ -22,7 +22,7 @@ import (
"github.com/NdoleStudio/httpsms/pkg/repositories"
"github.com/NdoleStudio/httpsms/pkg/telemetry"
cloudevents "github.com/cloudevents/sdk-go/v2"
- "github.com/golang-jwt/jwt"
+ "github.com/golang-jwt/jwt/v5"
"github.com/google/uuid"
"github.com/lib/pq"
"github.com/palantir/stacktrace"
@@ -339,12 +339,12 @@ func (service *WebhookService) getPayload(ctxLogger telemetry.Logger, event clou
}
func (service *WebhookService) getAuthToken(webhook *entities.Webhook) (string, error) {
- token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.StandardClaims{
- Audience: webhook.URL,
- ExpiresAt: time.Now().UTC().Add(10 * time.Minute).Unix(),
- IssuedAt: time.Now().UTC().Unix(),
+ token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.RegisteredClaims{
+ Audience: []string{webhook.URL},
+ ExpiresAt: jwt.NewNumericDate(time.Now().UTC().Add(10 * time.Minute)),
+ IssuedAt: jwt.NewNumericDate(time.Now().UTC()),
Issuer: "api.httpsms.com",
- NotBefore: time.Now().UTC().Add(-10 * time.Minute).Unix(),
+ NotBefore: jwt.NewNumericDate(time.Now().UTC().Add(-10 * time.Minute)),
Subject: string(webhook.UserID),
})
return token.SignedString([]byte(webhook.SigningKey))
From 86c22c3106041411ab0f30bbae229f6a255fa629 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Wed, 15 Oct 2025 22:08:22 +0300
Subject: [PATCH 038/215] Bring back version
---
api/go.mod | 6 +-----
api/go.sum | 13 +++----------
2 files changed, 4 insertions(+), 15 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index e34fb6d3..f35f5cb0 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -132,10 +132,7 @@ require (
github.com/mitchellh/reflectwalk v1.0.2 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
- github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 // indirect
- github.com/olekukonko/errors v1.1.0 // indirect
- github.com/olekukonko/ll v0.1.2 // indirect
- github.com/olekukonko/tablewriter v1.1.0 // indirect
+ github.com/olekukonko/tablewriter v0.0.5 // indirect
github.com/paulmach/orb v0.12.0 // indirect
github.com/pierrec/lz4/v4 v4.1.22 // indirect
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
@@ -143,7 +140,6 @@ require (
github.com/redis/go-redis/extra/rediscmd/v9 v9.14.0 // indirect
github.com/richardlehane/mscfb v1.0.4 // indirect
github.com/richardlehane/msoleps v1.0.4 // indirect
- github.com/rivo/uniseg v0.4.7 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/segmentio/asm v1.2.1 // indirect
github.com/shopspring/decimal v1.4.0 // indirect
diff --git a/api/go.sum b/api/go.sum
index 20b96dac..8a78f4fb 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -243,6 +243,7 @@ github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/
github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
+github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw=
github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs=
github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU=
@@ -259,14 +260,8 @@ github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjY
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
github.com/nyaruka/phonenumbers v1.6.6 h1:cZv5/vslJh65zuOrLjdVDHKHzVEwVuUsXAPQi3bjGJU=
github.com/nyaruka/phonenumbers v1.6.6/go.mod h1:7gjs+Lchqm49adhAKB5cdcng5ZXgt6x7Jgvi0ZorUtU=
-github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 h1:zrbMGy9YXpIeTnGj4EljqMiZsIcE09mmF8XsD5AYOJc=
-github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6/go.mod h1:rEKTHC9roVVicUIfZK7DYrdIoM0EOr8mK1Hj5s3JjH0=
-github.com/olekukonko/errors v1.1.0 h1:RNuGIh15QdDenh+hNvKrJkmxxjV4hcS50Db478Ou5sM=
-github.com/olekukonko/errors v1.1.0/go.mod h1:ppzxA5jBKcO1vIpCXQ9ZqgDh8iwODz6OXIGKU8r5m4Y=
-github.com/olekukonko/ll v0.1.2 h1:lkg/k/9mlsy0SxO5aC+WEpbdT5K83ddnNhAepz7TQc0=
-github.com/olekukonko/ll v0.1.2/go.mod h1:b52bVQRRPObe+yyBl0TxNfhesL0nedD4Cht0/zx55Ew=
-github.com/olekukonko/tablewriter v1.1.0 h1:N0LHrshF4T39KvI96fn6GT8HEjXRXYNDrDjKFDB7RIY=
-github.com/olekukonko/tablewriter v1.1.0/go.mod h1:5c+EBPeSqvXnLLgkm9isDdzR3wjfBkHR9Nhfp3NWrzo=
+github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
+github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
github.com/palantir/stacktrace v0.0.0-20161112013806-78658fd2d177 h1:nRlQD0u1871kaznCnn1EvYiMbum36v7hw1DLPEjds4o=
github.com/palantir/stacktrace v0.0.0-20161112013806-78658fd2d177/go.mod h1:ao5zGxj8Z4x60IOVYZUbDSmt3R8Ddo080vEgPosHpak=
github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc=
@@ -296,8 +291,6 @@ github.com/richardlehane/mscfb v1.0.4/go.mod h1:YzVpcZg9czvAuhk9T+a3avCpcFPMUWm7
github.com/richardlehane/msoleps v1.0.1/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg=
github.com/richardlehane/msoleps v1.0.4 h1:WuESlvhX3gH2IHcd8UqyCuFY5yiq/GR/yqaSM/9/g00=
github.com/richardlehane/msoleps v1.0.4/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg=
-github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
-github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0=
From 0a784ac171eada785c084ea22dc0c61eb8b12f17 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Thu, 16 Oct 2025 10:12:51 +0300
Subject: [PATCH 039/215] Fix swagger + Add scheduled sms docs
---
api/pkg/entities/event_listener_log.go | 18 --------------
api/pkg/entities/message.go | 24 +++++++++---------
api/pkg/entities/phone.go | 4 +--
api/pkg/entities/user.go | 10 ++++----
api/pkg/handlers/lemonsqueezy_handler.go | 13 +---------
api/pkg/handlers/message_handler.go | 6 ++---
api/pkg/requests/message_send_request.go | 2 +-
web/assets/img/schedule-messages.svg | 1 +
web/pages/index.vue | 31 +++++++++++++++++++++---
web/pages/login.vue | 4 +--
10 files changed, 55 insertions(+), 58 deletions(-)
delete mode 100644 api/pkg/entities/event_listener_log.go
create mode 100644 web/assets/img/schedule-messages.svg
diff --git a/api/pkg/entities/event_listener_log.go b/api/pkg/entities/event_listener_log.go
deleted file mode 100644
index 50f0662c..00000000
--- a/api/pkg/entities/event_listener_log.go
+++ /dev/null
@@ -1,18 +0,0 @@
-package entities
-
-import (
- "time"
-
- "github.com/google/uuid"
-)
-
-// EventListenerLog stores the log of all the events handled
-type EventListenerLog struct {
- ID uuid.UUID `json:"id" gorm:"primaryKey;type:uuid;"`
- EventID string `json:"event_id" gorm:"index:idx_event_listener_log_event_id_handler"`
- EventType string `json:"event_type"`
- Handler string `json:"handler" gorm:"index:idx_event_listener_log_event_id_handler"`
- Duration time.Duration `json:"duration"`
- HandledAt time.Time `json:"handled_at"`
- CreatedAt time.Time `json:"created_at"`
-}
diff --git a/api/pkg/entities/message.go b/api/pkg/entities/message.go
index fcec05a4..87bd5682 100644
--- a/api/pkg/entities/message.go
+++ b/api/pkg/entities/message.go
@@ -84,7 +84,7 @@ func (s SIM) String() string {
// Message represents a message sent between 2 phone numbers
type Message struct {
ID uuid.UUID `json:"id" gorm:"primaryKey;type:uuid;" example:"32343a19-da5e-4b1b-a767-3298a73703cb"`
- RequestID *string `json:"request_id" example:"153554b5-ae44-44a0-8f4f-7bbac5657ad4"`
+ RequestID *string `json:"request_id" example:"153554b5-ae44-44a0-8f4f-7bbac5657ad4" validate:"optional"`
Owner string `json:"owner" example:"+18005550199"`
UserID UserID `json:"user_id" gorm:"index:idx_messages__user_id" example:"WB7DRDWrJZRGbYrv2CKGkqbzvqdC"`
Contact string `json:"contact" example:"+18005550100"`
@@ -99,24 +99,24 @@ type Message struct {
SIM SIM `json:"sim" example:"DEFAULT"`
// SendDuration is the number of nanoseconds from when the request was received until when the mobile phone send the message
- SendDuration *int64 `json:"send_time" example:"133414"`
+ SendDuration *int64 `json:"send_time" example:"133414" validate:"optional"`
RequestReceivedAt time.Time `json:"request_received_at" example:"2022-06-05T14:26:01.520828+03:00"`
CreatedAt time.Time `json:"created_at" example:"2022-06-05T14:26:02.302718+03:00"`
UpdatedAt time.Time `json:"updated_at" example:"2022-06-05T14:26:10.303278+03:00"`
OrderTimestamp time.Time `json:"order_timestamp" example:"2022-06-05T14:26:09.527976+03:00"`
- LastAttemptedAt *time.Time `json:"last_attempted_at" example:"2022-06-05T14:26:09.527976+03:00"`
- NotificationScheduledAt *time.Time `json:"scheduled_at" example:"2022-06-05T14:26:09.527976+03:00"`
- SentAt *time.Time `json:"sent_at" example:"2022-06-05T14:26:09.527976+03:00"`
- ScheduledSendTime *time.Time `json:"scheduled_send_time" example:"2022-06-05T14:26:09.527976+03:00"`
- DeliveredAt *time.Time `json:"delivered_at" example:"2022-06-05T14:26:09.527976+03:00"`
- ExpiredAt *time.Time `json:"expired_at" example:"2022-06-05T14:26:09.527976+03:00"`
- FailedAt *time.Time `json:"failed_at" example:"2022-06-05T14:26:09.527976+03:00"`
- CanBePolled bool `json:"can_be_polled" example:"false"`
+ LastAttemptedAt *time.Time `json:"last_attempted_at" example:"2022-06-05T14:26:09.527976+03:00" validate:"optional"`
+ NotificationScheduledAt *time.Time `json:"scheduled_at" example:"2022-06-05T14:26:09.527976+03:00" validate:"optional"`
+ SentAt *time.Time `json:"sent_at" example:"2022-06-05T14:26:09.527976+03:00" validate:"optional"`
+ ScheduledSendTime *time.Time `json:"scheduled_send_time" example:"2022-06-05T14:26:09.527976+03:00" validate:"optional"`
+ DeliveredAt *time.Time `json:"delivered_at" example:"2022-06-05T14:26:09.527976+03:00" validate:"optional"`
+ ExpiredAt *time.Time `json:"expired_at" example:"2022-06-05T14:26:09.527976+03:00" validate:"optional"`
+ FailedAt *time.Time `json:"failed_at" example:"2022-06-05T14:26:09.527976+03:00" validate:"optional"`
+ CanBePolled bool `json:"can_be_polled" example:"false" swaggerignore:"true"`
SendAttemptCount uint `json:"send_attempt_count" example:"0"`
MaxSendAttempts uint `json:"max_send_attempts" example:"1"`
- ReceivedAt *time.Time `json:"received_at" example:"2022-06-05T14:26:09.527976+03:00"`
- FailureReason *string `json:"failure_reason" example:"UNKNOWN"`
+ ReceivedAt *time.Time `json:"received_at" example:"2022-06-05T14:26:09.527976+03:00" validate:"optional"`
+ FailureReason *string `json:"failure_reason" example:"UNKNOWN" validate:"optional"`
}
// IsSending determines if a message is being sent
diff --git a/api/pkg/entities/phone.go b/api/pkg/entities/phone.go
index 7e6d9b26..83521759 100644
--- a/api/pkg/entities/phone.go
+++ b/api/pkg/entities/phone.go
@@ -10,7 +10,7 @@ import (
type Phone struct {
ID uuid.UUID `json:"id" gorm:"primaryKey;type:uuid;" example:"32343a19-da5e-4b1b-a767-3298a73703cb"`
UserID UserID `json:"user_id" example:"WB7DRDWrJZRGbYrv2CKGkqbzvqdC"`
- FcmToken *string `json:"fcm_token" example:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzd....."`
+ FcmToken *string `json:"fcm_token" example:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzd....." validate:"optional"`
PhoneNumber string `json:"phone_number" example:"+18005550199"`
MessagesPerMinute uint `json:"messages_per_minute" example:"1"`
SIM SIM `json:"sim" gorm:"default:SIM1"`
@@ -20,7 +20,7 @@ type Phone struct {
// MessageExpirationSeconds is the duration in seconds after sending a message when it is considered to be expired.
MessageExpirationSeconds uint `json:"message_expiration_seconds"`
- MissedCallAutoReply *string `json:"missed_call_auto_reply" example:"This phone cannot receive calls. Please send an SMS instead."`
+ MissedCallAutoReply *string `json:"missed_call_auto_reply" example:"This phone cannot receive calls. Please send an SMS instead." validate:"optional"`
CreatedAt time.Time `json:"created_at" example:"2022-06-05T14:26:02.302718+03:00"`
UpdatedAt time.Time `json:"updated_at" example:"2022-06-05T14:26:10.303278+03:00"`
diff --git a/api/pkg/entities/user.go b/api/pkg/entities/user.go
index 0d4cbbe7..fd8de1a5 100644
--- a/api/pkg/entities/user.go
+++ b/api/pkg/entities/user.go
@@ -76,12 +76,12 @@ type User struct {
Email string `json:"email" example:"name@email.com"`
APIKey string `json:"api_key" gorm:"uniqueIndex:idx_users_api_key;NOT NULL" example:"x-api-key"`
Timezone string `json:"timezone" example:"Europe/Helsinki" gorm:"default:Africa/Accra"`
- ActivePhoneID *uuid.UUID `json:"active_phone_id" gorm:"type:uuid;" example:"32343a19-da5e-4b1b-a767-3298a73703cb"`
+ ActivePhoneID *uuid.UUID `json:"active_phone_id" gorm:"type:uuid;" example:"32343a19-da5e-4b1b-a767-3298a73703cb" validate:"optional"`
SubscriptionName SubscriptionName `json:"subscription_name" example:"free"`
- SubscriptionID *string `json:"subscription_id" example:"8f9c71b8-b84e-4417-8408-a62274f65a08"`
- SubscriptionStatus *string `json:"subscription_status" example:"on_trial"`
- SubscriptionRenewsAt *time.Time `json:"subscription_renews_at" example:"2022-06-05T14:26:02.302718+03:00"`
- SubscriptionEndsAt *time.Time `json:"subscription_ends_at" example:"2022-06-05T14:26:02.302718+03:00"`
+ SubscriptionID *string `json:"subscription_id" example:"8f9c71b8-b84e-4417-8408-a62274f65a08" swaggerignore:"true"`
+ SubscriptionStatus *string `json:"subscription_status" example:"on_trial" validate:"optional"`
+ SubscriptionRenewsAt *time.Time `json:"subscription_renews_at" example:"2022-06-05T14:26:02.302718+03:00" validate:"optional"`
+ SubscriptionEndsAt *time.Time `json:"subscription_ends_at" example:"2022-06-05T14:26:02.302718+03:00" validate:"optional"`
NotificationMessageStatusEnabled bool `json:"notification_message_status_enabled" gorm:"default:true" example:"true"`
NotificationWebhookEnabled bool `json:"notification_webhook_enabled" gorm:"default:true" example:"true"`
NotificationHeartbeatEnabled bool `json:"notification_heartbeat_enabled" gorm:"default:true" example:"true"`
diff --git a/api/pkg/handlers/lemonsqueezy_handler.go b/api/pkg/handlers/lemonsqueezy_handler.go
index a6bfbb85..ca9ea0eb 100644
--- a/api/pkg/handlers/lemonsqueezy_handler.go
+++ b/api/pkg/handlers/lemonsqueezy_handler.go
@@ -44,18 +44,7 @@ func (h *LemonsqueezyHandler) RegisterRoutes(app *fiber.App, middlewares ...fibe
router.Post("/event", h.computeRoute(middlewares, h.Event)...)
}
-// Event consumes a lemonsqueezy event
-// @Summary Consume a lemonsqueezy event
-// @Description Publish a lemonsqueezy event to the registered listeners
-// @Tags Lemonsqueezy
-// @Accept json
-// @Produce json
-// @Success 204 {object} responses.NoContent
-// @Failure 400 {object} responses.BadRequest
-// @Failure 401 {object} responses.Unauthorized
-// @Failure 422 {object} responses.UnprocessableEntity
-// @Failure 500 {object} responses.InternalServerError
-// @Router /lemonsqueezy/event [post]
+// Event handles lemonsqueezy events
func (h *LemonsqueezyHandler) Event(c *fiber.Ctx) error {
ctx, span, ctxLogger := h.tracer.StartFromFiberCtxWithLogger(c, h.logger)
defer span.End()
diff --git a/api/pkg/handlers/message_handler.go b/api/pkg/handlers/message_handler.go
index 6f812554..f0ec9de2 100644
--- a/api/pkg/handlers/message_handler.go
+++ b/api/pkg/handlers/message_handler.go
@@ -66,13 +66,13 @@ func (h *MessageHandler) RegisterPhoneAPIKeyRoutes(router fiber.Router, middlewa
}
// PostSend a new entities.Message
-// @Summary Send a new SMS message
-// @Description Add a new SMS message to be sent by the android phone
+// @Summary Send an SMS message
+// @Description Add a new SMS message to be sent by your Android phone
// @Security ApiKeyAuth
// @Tags Messages
// @Accept json
// @Produce json
-// @Param payload body requests.MessageSend true "PostSend message request payload"
+// @Param payload body requests.MessageSend true "Send message request payload"
// @Success 200 {object} responses.MessageResponse
// @Failure 400 {object} responses.BadRequest
// @Failure 401 {object} responses.Unauthorized
diff --git a/api/pkg/requests/message_send_request.go b/api/pkg/requests/message_send_request.go
index c07a9a28..3301691d 100644
--- a/api/pkg/requests/message_send_request.go
+++ b/api/pkg/requests/message_send_request.go
@@ -23,7 +23,7 @@ type MessageSend struct {
// RequestID is an optional parameter used to track a request from the client's perspective
RequestID string `json:"request_id" example:"153554b5-ae44-44a0-8f4f-7bbac5657ad4" validate:"optional"`
// SendAt is an optional parameter used to schedule a message to be sent in the future. The time is considered to be in your profile's local timezone and you can queue messages for up to 20 days (480 hours) in the future.
- SendAt *time.Time `json:"send_at" example:"2022-06-05T14:26:09.527976+03:00" validate:"optional"`
+ SendAt *time.Time `json:"send_at" example:"2025-12-19T16:39:57-08:00" validate:"optional"`
}
// Sanitize sets defaults to MessageReceive
diff --git a/web/assets/img/schedule-messages.svg b/web/assets/img/schedule-messages.svg
new file mode 100644
index 00000000..5906b27e
--- /dev/null
+++ b/web/assets/img/schedule-messages.svg
@@ -0,0 +1 @@
+
diff --git a/web/pages/index.vue b/web/pages/index.vue
index dad84598..f67aabb4 100644
--- a/web/pages/index.vue
+++ b/web/pages/index.vue
@@ -51,8 +51,8 @@
- ⚡Trusted by 8,370+ happy users who have sent or received
- more than 3,994,092+ messages.
+ ⚡Trusted by 13,195+ happy users who have sent or received
+ more than 5,263,593+ messages.
excel template
- and upload it on httpSMS to send your SMS messages to multiple
+ and upload it on httpSMS to send SMS messages to up to 1,000
recipients at once without writing any code.
+
+
+
+
Schedule Text Messages
+
+ Control when your SMS will reach your recipients, allowing you
+ to perfectly time promotions, critical alerts etc by scheduling
+ your messages in advance.
+
+ Documentation
+
+
+
+
+
+
diff --git a/web/pages/login.vue b/web/pages/login.vue
index 831d128e..0012028f 100644
--- a/web/pages/login.vue
+++ b/web/pages/login.vue
@@ -14,9 +14,9 @@
Welcome
- Join 8,370+ happy users who have sent or
+ Join 13,195+ happy users who have sent or
- received more than 3,994,092+ SMS messages
+ received more than 5,263,593+ SMS messages
From b05e0cb4ee0d0132fa28aba61865367827d7ea44 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Thu, 16 Oct 2025 10:18:56 +0300
Subject: [PATCH 040/215] Set margin explicitly
---
api/pkg/di/container.go | 1 +
web/pages/index.vue | 3 +++
2 files changed, 4 insertions(+)
diff --git a/api/pkg/di/container.go b/api/pkg/di/container.go
index 98b0a672..442fa0e6 100644
--- a/api/pkg/di/container.go
+++ b/api/pkg/di/container.go
@@ -1479,6 +1479,7 @@ func (container *Container) RegisterSwaggerRoutes() {
Title: docs.SwaggerInfo.Title,
CustomScript: `
document.addEventListener("DOMContentLoaded", function(event) {
+ document.body.style.margin = '0';
var links = document.querySelectorAll("link[rel~='icon']");
links.forEach(function (link) {
link.href = 'https://httpsms.com/favicon.ico';
diff --git a/web/pages/index.vue b/web/pages/index.vue
index f67aabb4..820f58d9 100644
--- a/web/pages/index.vue
+++ b/web/pages/index.vue
@@ -355,6 +355,7 @@
{{ mdiClockOutline }} Documentation
@@ -1023,6 +1024,7 @@ import {
mdiLanguageJava,
mdiMicrosoftExcel,
mdiWebhook,
+ mdiClockOutline,
mdiArrowRightThin,
mdiPowershell,
mdiLanguageGo,
@@ -1042,6 +1044,7 @@ export default Vue.extend({
mdiSend,
mdiGift,
mdiArrowRightThin,
+ mdiClockOutline,
mdiCreation,
mdiForum,
mdiNumeric1,
From 911bf0358ab508471513f1176f87678616566af0 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Thu, 16 Oct 2025 10:27:31 +0300
Subject: [PATCH 041/215] Fixing docs
---
api/pkg/entities/message.go | 2 +-
api/pkg/entities/user.go | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/api/pkg/entities/message.go b/api/pkg/entities/message.go
index 87bd5682..bf846c0b 100644
--- a/api/pkg/entities/message.go
+++ b/api/pkg/entities/message.go
@@ -112,7 +112,7 @@ type Message struct {
DeliveredAt *time.Time `json:"delivered_at" example:"2022-06-05T14:26:09.527976+03:00" validate:"optional"`
ExpiredAt *time.Time `json:"expired_at" example:"2022-06-05T14:26:09.527976+03:00" validate:"optional"`
FailedAt *time.Time `json:"failed_at" example:"2022-06-05T14:26:09.527976+03:00" validate:"optional"`
- CanBePolled bool `json:"can_be_polled" example:"false" swaggerignore:"true"`
+ CanBePolled bool `json:"-" example:"false" swaggerignore:"true"`
SendAttemptCount uint `json:"send_attempt_count" example:"0"`
MaxSendAttempts uint `json:"max_send_attempts" example:"1"`
ReceivedAt *time.Time `json:"received_at" example:"2022-06-05T14:26:09.527976+03:00" validate:"optional"`
diff --git a/api/pkg/entities/user.go b/api/pkg/entities/user.go
index fd8de1a5..a6a92371 100644
--- a/api/pkg/entities/user.go
+++ b/api/pkg/entities/user.go
@@ -78,7 +78,7 @@ type User struct {
Timezone string `json:"timezone" example:"Europe/Helsinki" gorm:"default:Africa/Accra"`
ActivePhoneID *uuid.UUID `json:"active_phone_id" gorm:"type:uuid;" example:"32343a19-da5e-4b1b-a767-3298a73703cb" validate:"optional"`
SubscriptionName SubscriptionName `json:"subscription_name" example:"free"`
- SubscriptionID *string `json:"subscription_id" example:"8f9c71b8-b84e-4417-8408-a62274f65a08" swaggerignore:"true"`
+ SubscriptionID *string `json:"-" example:"8f9c71b8-b84e-4417-8408-a62274f65a08" swaggerignore:"true"`
SubscriptionStatus *string `json:"subscription_status" example:"on_trial" validate:"optional"`
SubscriptionRenewsAt *time.Time `json:"subscription_renews_at" example:"2022-06-05T14:26:02.302718+03:00" validate:"optional"`
SubscriptionEndsAt *time.Time `json:"subscription_ends_at" example:"2022-06-05T14:26:02.302718+03:00" validate:"optional"`
From b8c9880488a8e1cafe5236fefb7738a2f01e9706 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Thu, 16 Oct 2025 10:31:45 +0300
Subject: [PATCH 042/215] Add attempt count to logs
---
api/pkg/services/webhook_service.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/api/pkg/services/webhook_service.go b/api/pkg/services/webhook_service.go
index 93432054..2e94cc06 100644
--- a/api/pkg/services/webhook_service.go
+++ b/api/pkg/services/webhook_service.go
@@ -242,7 +242,7 @@ func (service *WebhookService) sendNotification(ctx context.Context, event cloud
}()
if response.StatusCode >= 400 {
- ctxLogger.Info(fmt.Sprintf("cannot send [%s] event to webhook [%s] for user [%s] with response code [%d]", event.Type(), webhook.URL, webhook.UserID, response.StatusCode))
+ ctxLogger.Info(fmt.Sprintf("cannot send [%s] event to webhook [%s] for user [%s] with response code [%d] after [%d] attempts", event.Type(), webhook.URL, webhook.UserID, response.StatusCode, attempts))
if attempts == 1 {
return stacktrace.NewError(http.StatusText(response.StatusCode))
}
From 4ce843194359d3a7ada363fd4ffe5c2ecf37904d Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Thu, 16 Oct 2025 10:34:50 +0300
Subject: [PATCH 043/215] Fix the documentation link
---
web/pages/index.vue | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/web/pages/index.vue b/web/pages/index.vue
index 820f58d9..42d7ff45 100644
--- a/web/pages/index.vue
+++ b/web/pages/index.vue
@@ -353,7 +353,7 @@
your messages in advance.
{{ mdiClockOutline }} Documentation
Date: Sun, 19 Oct 2025 20:46:45 +0300
Subject: [PATCH 044/215] Add pricing slider
---
web/pages/index.vue | 63 +++++++++++++++++++++++++++++++++++++++------
1 file changed, 55 insertions(+), 8 deletions(-)
diff --git a/web/pages/index.vue b/web/pages/index.vue
index 42d7ff45..3889e88d 100644
--- a/web/pages/index.vue
+++ b/web/pages/index.vue
@@ -668,6 +668,26 @@ Console.WriteLine(await response.Content.ReadAsStringAsync());
+
+
+
+
+ {{ pricingLabels[pricing] }}
+
+
+
+
@@ -760,23 +780,28 @@ Console.WriteLine(await response.Content.ReadAsStringAsync());
-
+
- Ultra
+
+ {{ pricingLabels[pricing] }} Plan
+
- Send and receive up to 10,000 SMS messages like a power user.
+ Send and receive up to {{ planMessages }} SMS messages like a
+ power user.
- $20 /month
+ ${{ planMonthlyPrice }} /month
- $200 /year
+ ${{ planYearlyPrice }} /year
- or $200 per year
+ or ${{ planYearlyPrice }} per year
- or $16.66 per month
+ or ${{ planYearlyMonthlyPrice }} per month
Try For Free {{
mdiCheckCircle
}}Send or receive up to 10,000 SMS/month
+ >Send or receive up to
+ {{ pricingLabels[pricing] }} SMS/month
@@ -1067,8 +1093,29 @@ export default Vue.extend({
selectedTab: 'javascript',
yearlyPricing: false,
faqPanel: null,
+ pricing: 0,
+ pricingLabels: ['10K', '20K', '50K', '100K', '200K'],
+ pricingLabelsFull: ['10,000', '20,000', '50,000', '100,000', '200,000'],
}
},
+ computed: {
+ planMessages() {
+ const plan = this.pricingLabels[this.pricing]
+ return plan.replace('K', ',000')
+ },
+ planMonthlyPrice() {
+ const prices = [20, 35, 89, 175, 350]
+ return prices[this.pricing]
+ },
+ planYearlyPrice() {
+ const prices = [200, 350, 1068, 2100, 4200]
+ return prices[this.pricing]
+ },
+ planYearlyMonthlyPrice() {
+ const prices = [16.66, 29.16, 89, 175, 350]
+ return prices[this.pricing]
+ },
+ },
})
From 6ff3ec3bef3d9c744a996888b5c0c769e4a41271 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat, 1 Nov 2025 00:02:30 +0000
Subject: [PATCH 045/215] fix(deps): bump google.golang.org/api from 0.252.0 to
0.254.0 in /api
Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.252.0 to 0.254.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](https://github.com/googleapis/google-api-go-client/compare/v0.252.0...v0.254.0)
---
updated-dependencies:
- dependency-name: google.golang.org/api
dependency-version: 0.254.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 4 ++--
api/go.sum | 8 ++++----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index f35f5cb0..1f7d8954 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -50,7 +50,7 @@ require (
go.opentelemetry.io/otel/sdk v1.38.0
go.opentelemetry.io/otel/sdk/metric v1.38.0
go.opentelemetry.io/otel/trace v1.38.0
- google.golang.org/api v0.252.0
+ google.golang.org/api v0.254.0
google.golang.org/protobuf v1.36.10
gorm.io/driver/postgres v1.6.0
gorm.io/gorm v1.31.0
@@ -183,7 +183,7 @@ require (
google.golang.org/appengine v1.6.8 // indirect
google.golang.org/genproto v0.0.0-20251014184007-4626949a642f // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20251014184007-4626949a642f // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20251014184007-4626949a642f // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8 // indirect
google.golang.org/grpc v1.76.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
gorm.io/driver/clickhouse v0.7.0 // indirect
diff --git a/api/go.sum b/api/go.sum
index 8a78f4fb..36ba242d 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -513,16 +513,16 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk=
gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E=
-google.golang.org/api v0.252.0 h1:xfKJeAJaMwb8OC9fesr369rjciQ704AjU/psjkKURSI=
-google.golang.org/api v0.252.0/go.mod h1:dnHOv81x5RAmumZ7BWLShB/u7JZNeyalImxHmtTHxqw=
+google.golang.org/api v0.254.0 h1:jl3XrGj7lRjnlUvZAbAdhINTLbsg5dbjmR90+pTQvt4=
+google.golang.org/api v0.254.0/go.mod h1:5BkSURm3D9kAqjGvBNgf0EcbX6Rnrf6UArKkwBzAyqQ=
google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM=
google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds=
google.golang.org/genproto v0.0.0-20251014184007-4626949a642f h1:vLd1CJuJOUgV6qijD7KT5Y2ZtC97ll4dxjTUappMnbo=
google.golang.org/genproto v0.0.0-20251014184007-4626949a642f/go.mod h1:PI3KrSadr00yqfv6UDvgZGFsmLqeRIwt8x4p5Oo7CdM=
google.golang.org/genproto/googleapis/api v0.0.0-20251014184007-4626949a642f h1:OiFuztEyBivVKDvguQJYWq1yDcfAHIID/FVrPR4oiI0=
google.golang.org/genproto/googleapis/api v0.0.0-20251014184007-4626949a642f/go.mod h1:kprOiu9Tr0JYyD6DORrc4Hfyk3RFXqkQ3ctHEum3ZbM=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20251014184007-4626949a642f h1:1FTH6cpXFsENbPR5Bu8NQddPSaUUE6NA2XdZdDSAJK4=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20251014184007-4626949a642f/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8 h1:M1rk8KBnUsBDg1oPGHNCxG4vc1f49epmTO7xscSajMk=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk=
google.golang.org/grpc v1.76.0 h1:UnVkv1+uMLYXoIz6o7chp59WfQUYA2ex/BXQ9rHZu7A=
google.golang.org/grpc v1.76.0/go.mod h1:Ju12QI8M6iQJtbcsV+awF5a4hfJMLi4X0JLo94ULZ6c=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
From b14a07a8848d5f075676cc5e2f617ff0e5959ce1 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sat, 1 Nov 2025 00:02:37 +0000
Subject: [PATCH 046/215] fix(deps): bump
github.com/redis/go-redis/extra/redisotel/v9 in /api
Bumps [github.com/redis/go-redis/extra/redisotel/v9](https://github.com/redis/go-redis) from 9.14.0 to 9.16.0.
- [Release notes](https://github.com/redis/go-redis/releases)
- [Changelog](https://github.com/redis/go-redis/blob/master/RELEASE-NOTES.md)
- [Commits](https://github.com/redis/go-redis/compare/v9.14.0...v9.16.0)
---
updated-dependencies:
- dependency-name: github.com/redis/go-redis/extra/redisotel/v9
dependency-version: 9.16.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 6 +++---
api/go.sum | 12 ++++++------
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index f35f5cb0..0542b1b8 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -37,8 +37,8 @@ require (
github.com/patrickmn/go-cache v2.1.0+incompatible
github.com/pkg/errors v0.9.1
github.com/pusher/pusher-http-go/v5 v5.1.1
- github.com/redis/go-redis/extra/redisotel/v9 v9.14.0
- github.com/redis/go-redis/v9 v9.14.0
+ github.com/redis/go-redis/extra/redisotel/v9 v9.16.0
+ github.com/redis/go-redis/v9 v9.16.0
github.com/rs/zerolog v1.34.0
github.com/stretchr/testify v1.11.1
github.com/swaggo/swag v1.16.6
@@ -137,7 +137,7 @@ require (
github.com/pierrec/lz4/v4 v4.1.22 // indirect
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
- github.com/redis/go-redis/extra/rediscmd/v9 v9.14.0 // indirect
+ github.com/redis/go-redis/extra/rediscmd/v9 v9.16.0 // indirect
github.com/richardlehane/mscfb v1.0.4 // indirect
github.com/richardlehane/msoleps v1.0.4 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
diff --git a/api/go.sum b/api/go.sum
index 8a78f4fb..e81e8880 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -280,12 +280,12 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pusher/pusher-http-go/v5 v5.1.1 h1:ZLUGdLA8yXMvByafIkS47nvuXOHrYmlh4bsQvuZnYVQ=
github.com/pusher/pusher-http-go/v5 v5.1.1/go.mod h1:Ibji4SGoUDtOy7CVRhCiEpgy+n5Xv6hSL/QqYOhmWW8=
-github.com/redis/go-redis/extra/rediscmd/v9 v9.14.0 h1:DF7JP9CeCIEWbvVKA3r7dxCB1cUvEm+cD8fgWCn7R0g=
-github.com/redis/go-redis/extra/rediscmd/v9 v9.14.0/go.mod h1:JCn91QtwR6qo3PEs35hcpBSirjqKpKwSSjnZX4kYgI0=
-github.com/redis/go-redis/extra/redisotel/v9 v9.14.0 h1:kXIdyUBHeXsR1foSU+qdZjo3tROk5Rb2HS1kp99YuPM=
-github.com/redis/go-redis/extra/redisotel/v9 v9.14.0/go.mod h1:LafdjmKxzRKYznKgcVeqS3vIiBCsY90JbB0pDgHt774=
-github.com/redis/go-redis/v9 v9.14.0 h1:u4tNCjXOyzfgeLN+vAZaW1xUooqWDqVEsZN0U01jfAE=
-github.com/redis/go-redis/v9 v9.14.0/go.mod h1:huWgSWd8mW6+m0VPhJjSSQ+d6Nh1VICQ6Q5lHuCH/Iw=
+github.com/redis/go-redis/extra/rediscmd/v9 v9.16.0 h1:zAFQyFxJ3QDwpPUY/CKn22LI5+B8m/lUyffzq2+8ENs=
+github.com/redis/go-redis/extra/rediscmd/v9 v9.16.0/go.mod h1:ouOc8ujB2wdUG6o0RrqaPl2tI6cenExC0KkJQ+PHXmw=
+github.com/redis/go-redis/extra/redisotel/v9 v9.16.0 h1:+a9h9qxFXdf3gX0FXnDcz7X44ZBFUPq58Gblq7aMU4s=
+github.com/redis/go-redis/extra/redisotel/v9 v9.16.0/go.mod h1:EtTTC7vnKWgznfG6kBgl9ySLqd7NckRCFUBzVXdeHeI=
+github.com/redis/go-redis/v9 v9.16.0 h1:OotgqgLSRCmzfqChbQyG1PHC3tLNR89DG4jdOERSEP4=
+github.com/redis/go-redis/v9 v9.16.0/go.mod h1:u410H11HMLoB+TP67dz8rL9s6QW2j76l0//kSOd3370=
github.com/richardlehane/mscfb v1.0.4 h1:WULscsljNPConisD5hR0+OyZjwK46Pfyr6mPu5ZawpM=
github.com/richardlehane/mscfb v1.0.4/go.mod h1:YzVpcZg9czvAuhk9T+a3avCpcFPMUWm7gK3DypaEsUk=
github.com/richardlehane/msoleps v1.0.1/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg=
From 17472f05e2f79626afae8608b6b671f4f77cd026 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 20 Nov 2025 02:41:49 +0000
Subject: [PATCH 047/215] fix(deps): bump golang.org/x/crypto from 0.43.0 to
0.45.0 in /api
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.43.0 to 0.45.0.
- [Commits](https://github.com/golang/crypto/compare/v0.43.0...v0.45.0)
---
updated-dependencies:
- dependency-name: golang.org/x/crypto
dependency-version: 0.45.0
dependency-type: indirect
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 10 +++++-----
api/go.sum | 20 ++++++++++----------
2 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index 259ed0c9..be5b58e7 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -170,14 +170,14 @@ require (
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.0 // indirect
go.yaml.in/yaml/v3 v3.0.4 // indirect
- golang.org/x/crypto v0.43.0 // indirect
+ golang.org/x/crypto v0.45.0 // indirect
golang.org/x/exp v0.0.0-20251009144603-d2f985daa21b // indirect
golang.org/x/mod v0.29.0 // indirect
- golang.org/x/net v0.46.0 // indirect
+ golang.org/x/net v0.47.0 // indirect
golang.org/x/oauth2 v0.32.0 // indirect
- golang.org/x/sync v0.17.0 // indirect
- golang.org/x/sys v0.37.0 // indirect
- golang.org/x/text v0.30.0 // indirect
+ golang.org/x/sync v0.18.0 // indirect
+ golang.org/x/sys v0.38.0 // indirect
+ golang.org/x/text v0.31.0 // indirect
golang.org/x/time v0.14.0 // indirect
golang.org/x/tools v0.38.0 // indirect
google.golang.org/appengine v1.6.8 // indirect
diff --git a/api/go.sum b/api/go.sum
index af620dce..9dcbb140 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -411,8 +411,8 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY
golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
-golang.org/x/crypto v0.43.0 h1:dduJYIi3A3KOfdGOHX8AVZ/jGiyPa3IbBozJ5kNuE04=
-golang.org/x/crypto v0.43.0/go.mod h1:BFbav4mRNlXJL4wNeejLpWxB7wMbc79PdRGhWKncxR0=
+golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q=
+golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4=
golang.org/x/exp v0.0.0-20251009144603-d2f985daa21b h1:18qgiDvlvH7kk8Ioa8Ov+K6xCi0GMvmGfGW0sgd/SYA=
golang.org/x/exp v0.0.0-20251009144603-d2f985daa21b/go.mod h1:j/pmGrbnkbPtQfxEe5D0VQhZC6qKbfKifgD0oM7sR70=
golang.org/x/image v0.25.0 h1:Y6uW6rH1y5y/LK1J8BPWZtr6yZ7hrsy6hFrXjgsc2fQ=
@@ -439,8 +439,8 @@ golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
-golang.org/x/net v0.46.0 h1:giFlY12I07fugqwPuWJi68oOnpfqFnJIJzaIIm2JVV4=
-golang.org/x/net v0.46.0/go.mod h1:Q9BGdFy1y4nkUwiLvT5qtyhAnEHgnQ/zd8PfU6nc210=
+golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY=
+golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU=
golang.org/x/oauth2 v0.32.0 h1:jsCblLleRMDrxMN29H3z/k1KliIvpLgCkE6R8FXXNgY=
golang.org/x/oauth2 v0.32.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -453,8 +453,8 @@ golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
-golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug=
-golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
+golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I=
+golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -471,8 +471,8 @@ golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
-golang.org/x/sys v0.37.0 h1:fdNQudmxPjkdUTPnLn5mdQv7Zwvbvpaxqs831goi9kQ=
-golang.org/x/sys v0.37.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
+golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc=
+golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
@@ -493,8 +493,8 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
-golang.org/x/text v0.30.0 h1:yznKA/E9zq54KzlzBEAWn1NXSQ8DIp/NYMy88xJjl4k=
-golang.org/x/text v0.30.0/go.mod h1:yDdHFIX9t+tORqspjENWgzaCVXgk0yYnYuSZ8UzzBVM=
+golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM=
+golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM=
golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI=
golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
From 63c2d0e31fbb29de176484225ac44658fad1968a Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 1 Dec 2025 00:10:49 +0000
Subject: [PATCH 048/215] fix(deps): bump google.golang.org/api from 0.254.0 to
0.256.0 in /api
Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.254.0 to 0.256.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](https://github.com/googleapis/google-api-go-client/compare/v0.254.0...v0.256.0)
---
updated-dependencies:
- dependency-name: google.golang.org/api
dependency-version: 0.256.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 8 ++++----
api/go.sum | 16 ++++++++--------
2 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index be5b58e7..4294d12c 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -50,7 +50,7 @@ require (
go.opentelemetry.io/otel/sdk v1.38.0
go.opentelemetry.io/otel/sdk/metric v1.38.0
go.opentelemetry.io/otel/trace v1.38.0
- google.golang.org/api v0.254.0
+ google.golang.org/api v0.256.0
google.golang.org/protobuf v1.36.10
gorm.io/driver/postgres v1.6.0
gorm.io/gorm v1.31.0
@@ -109,7 +109,7 @@ require (
github.com/go-sql-driver/mysql v1.9.3 // indirect
github.com/golang/protobuf v1.5.4 // indirect
github.com/google/s2a-go v0.1.9 // indirect
- github.com/googleapis/enterprise-certificate-proxy v0.3.6 // indirect
+ github.com/googleapis/enterprise-certificate-proxy v0.3.7 // indirect
github.com/googleapis/gax-go/v2 v2.15.0 // indirect
github.com/gorilla/css v1.0.1 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.3 // indirect
@@ -174,7 +174,7 @@ require (
golang.org/x/exp v0.0.0-20251009144603-d2f985daa21b // indirect
golang.org/x/mod v0.29.0 // indirect
golang.org/x/net v0.47.0 // indirect
- golang.org/x/oauth2 v0.32.0 // indirect
+ golang.org/x/oauth2 v0.33.0 // indirect
golang.org/x/sync v0.18.0 // indirect
golang.org/x/sys v0.38.0 // indirect
golang.org/x/text v0.31.0 // indirect
@@ -183,7 +183,7 @@ require (
google.golang.org/appengine v1.6.8 // indirect
google.golang.org/genproto v0.0.0-20251014184007-4626949a642f // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20251014184007-4626949a642f // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8 // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20251103181224-f26f9409b101 // indirect
google.golang.org/grpc v1.76.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
gorm.io/driver/clickhouse v0.7.0 // indirect
diff --git a/api/go.sum b/api/go.sum
index 9dcbb140..be03b8f8 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -174,8 +174,8 @@ github.com/google/s2a-go v0.1.9 h1:LGD7gtMgezd8a/Xak7mEWL0PjoTQFvpRudN895yqKW0=
github.com/google/s2a-go v0.1.9/go.mod h1:YA0Ei2ZQL3acow2O62kdp9UlnvMmU7kA6Eutn0dXayM=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/googleapis/enterprise-certificate-proxy v0.3.6 h1:GW/XbdyBFQ8Qe+YAmFU9uHLo7OnF5tL52HFAgMmyrf4=
-github.com/googleapis/enterprise-certificate-proxy v0.3.6/go.mod h1:MkHOF77EYAE7qfSuSS9PU6g4Nt4e11cnsDUowfwewLA=
+github.com/googleapis/enterprise-certificate-proxy v0.3.7 h1:zrn2Ee/nWmHulBx5sAVrGgAa0f2/R35S4DJwfFaUPFQ=
+github.com/googleapis/enterprise-certificate-proxy v0.3.7/go.mod h1:MkHOF77EYAE7qfSuSS9PU6g4Nt4e11cnsDUowfwewLA=
github.com/googleapis/gax-go/v2 v2.15.0 h1:SyjDc1mGgZU5LncH8gimWo9lW1DtIfPibOG81vgd/bo=
github.com/googleapis/gax-go/v2 v2.15.0/go.mod h1:zVVkkxAQHa1RQpg9z2AUCMnKhi0Qld9rcmyfL1OZhoc=
github.com/gorilla/css v1.0.1 h1:ntNaBIghp6JmvWnxbZKANoLyuXTPZ4cAMlo6RyhlbO8=
@@ -441,8 +441,8 @@ golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY=
golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU=
-golang.org/x/oauth2 v0.32.0 h1:jsCblLleRMDrxMN29H3z/k1KliIvpLgCkE6R8FXXNgY=
-golang.org/x/oauth2 v0.32.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
+golang.org/x/oauth2 v0.33.0 h1:4Q+qn+E5z8gPRJfmRy7C2gGG3T4jIprK6aSYgTXGRpo=
+golang.org/x/oauth2 v0.33.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -513,16 +513,16 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk=
gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E=
-google.golang.org/api v0.254.0 h1:jl3XrGj7lRjnlUvZAbAdhINTLbsg5dbjmR90+pTQvt4=
-google.golang.org/api v0.254.0/go.mod h1:5BkSURm3D9kAqjGvBNgf0EcbX6Rnrf6UArKkwBzAyqQ=
+google.golang.org/api v0.256.0 h1:u6Khm8+F9sxbCTYNoBHg6/Hwv0N/i+V94MvkOSor6oI=
+google.golang.org/api v0.256.0/go.mod h1:KIgPhksXADEKJlnEoRa9qAII4rXcy40vfI8HRqcU964=
google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM=
google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds=
google.golang.org/genproto v0.0.0-20251014184007-4626949a642f h1:vLd1CJuJOUgV6qijD7KT5Y2ZtC97ll4dxjTUappMnbo=
google.golang.org/genproto v0.0.0-20251014184007-4626949a642f/go.mod h1:PI3KrSadr00yqfv6UDvgZGFsmLqeRIwt8x4p5Oo7CdM=
google.golang.org/genproto/googleapis/api v0.0.0-20251014184007-4626949a642f h1:OiFuztEyBivVKDvguQJYWq1yDcfAHIID/FVrPR4oiI0=
google.golang.org/genproto/googleapis/api v0.0.0-20251014184007-4626949a642f/go.mod h1:kprOiu9Tr0JYyD6DORrc4Hfyk3RFXqkQ3ctHEum3ZbM=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8 h1:M1rk8KBnUsBDg1oPGHNCxG4vc1f49epmTO7xscSajMk=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20251103181224-f26f9409b101 h1:tRPGkdGHuewF4UisLzzHHr1spKw92qLM98nIzxbC0wY=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20251103181224-f26f9409b101/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk=
google.golang.org/grpc v1.76.0 h1:UnVkv1+uMLYXoIz6o7chp59WfQUYA2ex/BXQ9rHZu7A=
google.golang.org/grpc v1.76.0/go.mod h1:Ju12QI8M6iQJtbcsV+awF5a4hfJMLi4X0JLo94ULZ6c=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
From 7ea8834674b0eb43aa2fa14b6baa66bceb8bae13 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 1 Dec 2025 00:10:55 +0000
Subject: [PATCH 049/215] fix(deps): bump gorm.io/gorm from 1.31.0 to 1.31.1 in
/api
Bumps [gorm.io/gorm](https://github.com/go-gorm/gorm) from 1.31.0 to 1.31.1.
- [Release notes](https://github.com/go-gorm/gorm/releases)
- [Commits](https://github.com/go-gorm/gorm/compare/v1.31.0...v1.31.1)
---
updated-dependencies:
- dependency-name: gorm.io/gorm
dependency-version: 1.31.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 2 +-
api/go.sum | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index be5b58e7..08c02a86 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -53,7 +53,7 @@ require (
google.golang.org/api v0.254.0
google.golang.org/protobuf v1.36.10
gorm.io/driver/postgres v1.6.0
- gorm.io/gorm v1.31.0
+ gorm.io/gorm v1.31.1
gorm.io/plugin/opentelemetry v0.1.16
)
diff --git a/api/go.sum b/api/go.sum
index 9dcbb140..9fc47ef1 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -547,7 +547,7 @@ gorm.io/driver/postgres v1.6.0 h1:2dxzU8xJ+ivvqTRph34QX+WrRaJlmfyPqXmoGVjMBa4=
gorm.io/driver/postgres v1.6.0/go.mod h1:vUw0mrGgrTK+uPHEhAdV4sfFELrByKVGnaVRkXDhtWo=
gorm.io/driver/sqlite v1.6.0 h1:WHRRrIiulaPiPFmDcod6prc4l2VGVWHz80KspNsxSfQ=
gorm.io/driver/sqlite v1.6.0/go.mod h1:AO9V1qIQddBESngQUKWL9yoH93HIeA1X6V633rBwyT8=
-gorm.io/gorm v1.31.0 h1:0VlycGreVhK7RF/Bwt51Fk8v0xLiiiFdbGDPIZQ7mJY=
-gorm.io/gorm v1.31.0/go.mod h1:XyQVbO2k6YkOis7C2437jSit3SsDK72s7n7rsSHd+Gs=
+gorm.io/gorm v1.31.1 h1:7CA8FTFz/gRfgqgpeKIBcervUn3xSyPUmr6B2WXJ7kg=
+gorm.io/gorm v1.31.1/go.mod h1:XyQVbO2k6YkOis7C2437jSit3SsDK72s7n7rsSHd+Gs=
gorm.io/plugin/opentelemetry v0.1.16 h1:Kypj2YYAliJqkIczDZDde6P6sFMhKSlG5IpngMFQGpc=
gorm.io/plugin/opentelemetry v0.1.16/go.mod h1:P3RmTeZXT+9n0F1ccUqR5uuTvEXDxF8k2UpO7mTIB2Y=
From 3bfe876908d286535fa62bf9e2c4aa0fd3fa0640 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 1 Dec 2025 00:11:09 +0000
Subject: [PATCH 050/215] fix(deps): bump github.com/nyaruka/phonenumbers in
/api
Bumps [github.com/nyaruka/phonenumbers](https://github.com/nyaruka/phonenumbers) from 1.6.6 to 1.6.7.
- [Release notes](https://github.com/nyaruka/phonenumbers/releases)
- [Changelog](https://github.com/nyaruka/phonenumbers/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nyaruka/phonenumbers/compare/v1.6.6...v1.6.7)
---
updated-dependencies:
- dependency-name: github.com/nyaruka/phonenumbers
dependency-version: 1.6.7
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 2 +-
api/go.sum | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index be5b58e7..344831bf 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -32,7 +32,7 @@ require (
github.com/jszwec/csvutil v1.10.0
github.com/lib/pq v1.10.9
github.com/matcornic/hermes v1.3.0
- github.com/nyaruka/phonenumbers v1.6.6
+ github.com/nyaruka/phonenumbers v1.6.7
github.com/palantir/stacktrace v0.0.0-20161112013806-78658fd2d177
github.com/patrickmn/go-cache v2.1.0+incompatible
github.com/pkg/errors v0.9.1
diff --git a/api/go.sum b/api/go.sum
index 9dcbb140..f7d3c84d 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -258,8 +258,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
-github.com/nyaruka/phonenumbers v1.6.6 h1:cZv5/vslJh65zuOrLjdVDHKHzVEwVuUsXAPQi3bjGJU=
-github.com/nyaruka/phonenumbers v1.6.6/go.mod h1:7gjs+Lchqm49adhAKB5cdcng5ZXgt6x7Jgvi0ZorUtU=
+github.com/nyaruka/phonenumbers v1.6.7 h1:WmebT8TNEzNaui5QlrGqbccRC6dZkEkYc+MGQoILSSo=
+github.com/nyaruka/phonenumbers v1.6.7/go.mod h1:7gjs+Lchqm49adhAKB5cdcng5ZXgt6x7Jgvi0ZorUtU=
github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
github.com/palantir/stacktrace v0.0.0-20161112013806-78658fd2d177 h1:nRlQD0u1871kaznCnn1EvYiMbum36v7hw1DLPEjds4o=
From ef629cb74b23761f78924935013cf54bd89e112f Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 1 Dec 2025 00:11:17 +0000
Subject: [PATCH 051/215] fix(deps): bump github.com/jaswdr/faker/v2 from 2.8.1
to 2.9.0 in /api
Bumps [github.com/jaswdr/faker/v2](https://github.com/jaswdr/faker) from 2.8.1 to 2.9.0.
- [Release notes](https://github.com/jaswdr/faker/releases)
- [Commits](https://github.com/jaswdr/faker/compare/v2.8.1...v2.9.0)
---
updated-dependencies:
- dependency-name: github.com/jaswdr/faker/v2
dependency-version: 2.9.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 2 +-
api/go.sum | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index be5b58e7..c85858a0 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -25,7 +25,7 @@ require (
github.com/google/uuid v1.6.0
github.com/hashicorp/go-retryablehttp v0.7.8
github.com/hirosassa/zerodriver v0.1.4
- github.com/jaswdr/faker/v2 v2.8.1
+ github.com/jaswdr/faker/v2 v2.9.0
github.com/jinzhu/now v1.1.5
github.com/joho/godotenv v1.5.1
github.com/jordan-wright/email v4.0.1-0.20210109023952-943e75fe5223+incompatible
diff --git a/api/go.sum b/api/go.sum
index 9dcbb140..77b06c45 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -204,8 +204,8 @@ github.com/jackc/pgx/v5 v5.7.6 h1:rWQc5FwZSPX58r1OQmkuaNicxdmExaEz5A2DO2hUuTk=
github.com/jackc/pgx/v5 v5.7.6/go.mod h1:aruU7o91Tc2q2cFp5h4uP3f6ztExVpyVv88Xl/8Vl8M=
github.com/jackc/puddle/v2 v2.2.2 h1:PR8nw+E/1w0GLuRFSmiioY6UooMp6KJv0/61nB7icHo=
github.com/jackc/puddle/v2 v2.2.2/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4=
-github.com/jaswdr/faker/v2 v2.8.1 h1:2AcPgHDBXYQregFUH9LgVZKfFupc4SIquYhp29sf5wQ=
-github.com/jaswdr/faker/v2 v2.8.1/go.mod h1:jZq+qzNQr8/P+5fHd9t3txe2GNPnthrTfohtnJ7B+68=
+github.com/jaswdr/faker/v2 v2.9.0 h1:Sqqpp+pxduDO+MGOhYE3UHtI9Sowt9j95f8h8nVvips=
+github.com/jaswdr/faker/v2 v2.9.0/go.mod h1:jZq+qzNQr8/P+5fHd9t3txe2GNPnthrTfohtnJ7B+68=
github.com/jaytaylor/html2text v0.0.0-20230321000545-74c2419ad056 h1:iCHtR9CQyktQ5+f3dMVZfwD2KWJUgm7M0gdL9NGr8KA=
github.com/jaytaylor/html2text v0.0.0-20230321000545-74c2419ad056/go.mod h1:CVKlgaMiht+LXvHG173ujK6JUhZXKb2u/BQtjPDIvyk=
github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
From 110a26a0e5318f28705755d418573f07b7bb20ff Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 1 Dec 2025 00:11:23 +0000
Subject: [PATCH 052/215] fix(deps): bump github.com/redis/go-redis/v9 in /api
Bumps [github.com/redis/go-redis/v9](https://github.com/redis/go-redis) from 9.16.0 to 9.17.1.
- [Release notes](https://github.com/redis/go-redis/releases)
- [Changelog](https://github.com/redis/go-redis/blob/master/RELEASE-NOTES.md)
- [Commits](https://github.com/redis/go-redis/compare/v9.16.0...v9.17.1)
---
updated-dependencies:
- dependency-name: github.com/redis/go-redis/v9
dependency-version: 9.17.1
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 2 +-
api/go.sum | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index be5b58e7..36333756 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -38,7 +38,7 @@ require (
github.com/pkg/errors v0.9.1
github.com/pusher/pusher-http-go/v5 v5.1.1
github.com/redis/go-redis/extra/redisotel/v9 v9.16.0
- github.com/redis/go-redis/v9 v9.16.0
+ github.com/redis/go-redis/v9 v9.17.1
github.com/rs/zerolog v1.34.0
github.com/stretchr/testify v1.11.1
github.com/swaggo/swag v1.16.6
diff --git a/api/go.sum b/api/go.sum
index 9dcbb140..78037246 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -284,8 +284,8 @@ github.com/redis/go-redis/extra/rediscmd/v9 v9.16.0 h1:zAFQyFxJ3QDwpPUY/CKn22LI5
github.com/redis/go-redis/extra/rediscmd/v9 v9.16.0/go.mod h1:ouOc8ujB2wdUG6o0RrqaPl2tI6cenExC0KkJQ+PHXmw=
github.com/redis/go-redis/extra/redisotel/v9 v9.16.0 h1:+a9h9qxFXdf3gX0FXnDcz7X44ZBFUPq58Gblq7aMU4s=
github.com/redis/go-redis/extra/redisotel/v9 v9.16.0/go.mod h1:EtTTC7vnKWgznfG6kBgl9ySLqd7NckRCFUBzVXdeHeI=
-github.com/redis/go-redis/v9 v9.16.0 h1:OotgqgLSRCmzfqChbQyG1PHC3tLNR89DG4jdOERSEP4=
-github.com/redis/go-redis/v9 v9.16.0/go.mod h1:u410H11HMLoB+TP67dz8rL9s6QW2j76l0//kSOd3370=
+github.com/redis/go-redis/v9 v9.17.1 h1:7tl732FjYPRT9H9aNfyTwKg9iTETjWjGKEJ2t/5iWTs=
+github.com/redis/go-redis/v9 v9.17.1/go.mod h1:u410H11HMLoB+TP67dz8rL9s6QW2j76l0//kSOd3370=
github.com/richardlehane/mscfb v1.0.4 h1:WULscsljNPConisD5hR0+OyZjwK46Pfyr6mPu5ZawpM=
github.com/richardlehane/mscfb v1.0.4/go.mod h1:YzVpcZg9czvAuhk9T+a3avCpcFPMUWm7gK3DypaEsUk=
github.com/richardlehane/msoleps v1.0.1/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg=
From 248328bba9cf05c406946a314e779f98501997c5 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 1 Dec 2025 00:11:27 +0000
Subject: [PATCH 053/215] fix(deps): bump
github.com/NdoleStudio/go-otelroundtripper in /api
Bumps [github.com/NdoleStudio/go-otelroundtripper](https://github.com/NdoleStudio/go-otelroundtripper) from 0.0.12 to 0.0.13.
- [Release notes](https://github.com/NdoleStudio/go-otelroundtripper/releases)
- [Changelog](https://github.com/NdoleStudio/go-otelroundtripper/blob/main/CHANGELOG.MD)
- [Commits](https://github.com/NdoleStudio/go-otelroundtripper/compare/v0.0.12...v0.0.13)
---
updated-dependencies:
- dependency-name: github.com/NdoleStudio/go-otelroundtripper
dependency-version: 0.0.13
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 2 +-
api/go.sum | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index be5b58e7..4ba1f39b 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -9,7 +9,7 @@ require (
firebase.google.com/go v3.13.0+incompatible
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.54.0
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.30.0
- github.com/NdoleStudio/go-otelroundtripper v0.0.12
+ github.com/NdoleStudio/go-otelroundtripper v0.0.13
github.com/NdoleStudio/lemonsqueezy-go v1.2.4
github.com/avast/retry-go v3.0.0+incompatible
github.com/carlmjohnson/requests v0.25.1
diff --git a/api/go.sum b/api/go.sum
index 9dcbb140..10943043 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -54,8 +54,8 @@ github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3Q
github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
github.com/Masterminds/sprig v2.22.0+incompatible h1:z4yfnGrZ7netVz+0EDJ0Wi+5VZCSYp4Z0m2dk6cEM60=
github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o=
-github.com/NdoleStudio/go-otelroundtripper v0.0.12 h1:UAU7IcG8CR9GiZlgJR4yQj2zrnOokDYZCIUdDFHOTp4=
-github.com/NdoleStudio/go-otelroundtripper v0.0.12/go.mod h1:nnY1D4NCtCXNi3f35hDw+OCOigh7DsKHkxdwuC9RzeM=
+github.com/NdoleStudio/go-otelroundtripper v0.0.13 h1:fDgdxcNJov4LTrMhXqJnF/E3jO4HJVczj90wkxh5PSc=
+github.com/NdoleStudio/go-otelroundtripper v0.0.13/go.mod h1:UIUQ22ErFoBUyLuPDrVNRRKmBHBTfzQO9GF1ztqDvqo=
github.com/NdoleStudio/lemonsqueezy-go v1.2.4 h1:BhWlCUH+DIPfSn4g/V7f2nFkMCQuzno9DXKZ7YDrXXA=
github.com/NdoleStudio/lemonsqueezy-go v1.2.4/go.mod h1:2uZlWgn9sbNxOx3JQWLlPrDOC6NT/wmSTOgL3U/fMMw=
github.com/PuerkitoBio/goquery v1.10.3 h1:pFYcNSqHxBD06Fpj/KsbStFRsgRATgnf3LeXiUkhzPo=
From b7608f4cbe8c2d5fae0ed869c3af928f72a50b47 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 1 Dec 2025 00:11:32 +0000
Subject: [PATCH 054/215] fix(deps): bump github.com/gofiber/fiber/v2 in /api
Bumps [github.com/gofiber/fiber/v2](https://github.com/gofiber/fiber) from 2.52.9 to 2.52.10.
- [Release notes](https://github.com/gofiber/fiber/releases)
- [Commits](https://github.com/gofiber/fiber/compare/v2.52.9...v2.52.10)
---
updated-dependencies:
- dependency-name: github.com/gofiber/fiber/v2
dependency-version: 2.52.10
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 2 +-
api/go.sum | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index be5b58e7..93cde8c9 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -19,7 +19,7 @@ require (
github.com/dgraph-io/ristretto/v2 v2.3.0
github.com/dustin/go-humanize v1.0.1
github.com/gofiber/contrib/otelfiber v1.0.10
- github.com/gofiber/fiber/v2 v2.52.9
+ github.com/gofiber/fiber/v2 v2.52.10
github.com/gofiber/swagger v1.1.1
github.com/golang-jwt/jwt/v5 v5.3.0
github.com/google/uuid v1.6.0
diff --git a/api/go.sum b/api/go.sum
index 9dcbb140..d5136652 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -148,8 +148,8 @@ github.com/go-sql-driver/mysql v1.9.3/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI6
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
github.com/gofiber/contrib/otelfiber v1.0.10 h1:Bu28Pi4pfYmGfIc/9+sNaBbFwTHGY/zpSIK5jBxuRtM=
github.com/gofiber/contrib/otelfiber v1.0.10/go.mod h1:jN6AvS1HolDHTQHFURsV+7jSX96FpXYeKH6nmkq8AIw=
-github.com/gofiber/fiber/v2 v2.52.9 h1:YjKl5DOiyP3j0mO61u3NTmK7or8GzzWzCFzkboyP5cw=
-github.com/gofiber/fiber/v2 v2.52.9/go.mod h1:YEcBbO/FB+5M1IZNBP9FO3J9281zgPAreiI1oqg8nDw=
+github.com/gofiber/fiber/v2 v2.52.10 h1:jRHROi2BuNti6NYXmZ6gbNSfT3zj/8c0xy94GOU5elY=
+github.com/gofiber/fiber/v2 v2.52.10/go.mod h1:YEcBbO/FB+5M1IZNBP9FO3J9281zgPAreiI1oqg8nDw=
github.com/gofiber/swagger v1.1.1 h1:FZVhVQQ9s1ZKLHL/O0loLh49bYB5l1HEAgxDlcTtkRA=
github.com/gofiber/swagger v1.1.1/go.mod h1:vtvY/sQAMc/lGTUCg0lqmBL7Ht9O7uzChpbvJeJQINw=
github.com/gofrs/flock v0.12.1 h1:MTLVXXHf8ekldpJk3AKicLij9MdwOWkZ+a/jHHZby9E=
From 92f9b12c8ebc379b45620b643974754ab395c54d Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 1 Dec 2025 16:21:51 +0000
Subject: [PATCH 055/215] fix(deps): bump
github.com/redis/go-redis/extra/redisotel/v9 in /api
Bumps [github.com/redis/go-redis/extra/redisotel/v9](https://github.com/redis/go-redis) from 9.16.0 to 9.17.1.
- [Release notes](https://github.com/redis/go-redis/releases)
- [Changelog](https://github.com/redis/go-redis/blob/master/RELEASE-NOTES.md)
- [Commits](https://github.com/redis/go-redis/compare/v9.16.0...v9.17.1)
---
updated-dependencies:
- dependency-name: github.com/redis/go-redis/extra/redisotel/v9
dependency-version: 9.17.1
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 6 +++---
api/go.sum | 12 ++++++------
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index 55bd6cdc..cdb98988 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -37,8 +37,8 @@ require (
github.com/patrickmn/go-cache v2.1.0+incompatible
github.com/pkg/errors v0.9.1
github.com/pusher/pusher-http-go/v5 v5.1.1
- github.com/redis/go-redis/extra/redisotel/v9 v9.16.0
- github.com/redis/go-redis/v9 v9.17.1
+ github.com/redis/go-redis/extra/redisotel/v9 v9.17.2
+ github.com/redis/go-redis/v9 v9.17.2
github.com/rs/zerolog v1.34.0
github.com/stretchr/testify v1.11.1
github.com/swaggo/swag v1.16.6
@@ -137,7 +137,7 @@ require (
github.com/pierrec/lz4/v4 v4.1.22 // indirect
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
- github.com/redis/go-redis/extra/rediscmd/v9 v9.16.0 // indirect
+ github.com/redis/go-redis/extra/rediscmd/v9 v9.17.2 // indirect
github.com/richardlehane/mscfb v1.0.4 // indirect
github.com/richardlehane/msoleps v1.0.4 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
diff --git a/api/go.sum b/api/go.sum
index 2c8513c7..898e72d5 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -280,12 +280,12 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pusher/pusher-http-go/v5 v5.1.1 h1:ZLUGdLA8yXMvByafIkS47nvuXOHrYmlh4bsQvuZnYVQ=
github.com/pusher/pusher-http-go/v5 v5.1.1/go.mod h1:Ibji4SGoUDtOy7CVRhCiEpgy+n5Xv6hSL/QqYOhmWW8=
-github.com/redis/go-redis/extra/rediscmd/v9 v9.16.0 h1:zAFQyFxJ3QDwpPUY/CKn22LI5+B8m/lUyffzq2+8ENs=
-github.com/redis/go-redis/extra/rediscmd/v9 v9.16.0/go.mod h1:ouOc8ujB2wdUG6o0RrqaPl2tI6cenExC0KkJQ+PHXmw=
-github.com/redis/go-redis/extra/redisotel/v9 v9.16.0 h1:+a9h9qxFXdf3gX0FXnDcz7X44ZBFUPq58Gblq7aMU4s=
-github.com/redis/go-redis/extra/redisotel/v9 v9.16.0/go.mod h1:EtTTC7vnKWgznfG6kBgl9ySLqd7NckRCFUBzVXdeHeI=
-github.com/redis/go-redis/v9 v9.17.1 h1:7tl732FjYPRT9H9aNfyTwKg9iTETjWjGKEJ2t/5iWTs=
-github.com/redis/go-redis/v9 v9.17.1/go.mod h1:u410H11HMLoB+TP67dz8rL9s6QW2j76l0//kSOd3370=
+github.com/redis/go-redis/extra/rediscmd/v9 v9.17.2 h1:KYWnHK9pwzOUo3sNJlNmzRwZ5mw7opugn8njtGThKNg=
+github.com/redis/go-redis/extra/rediscmd/v9 v9.17.2/go.mod h1:wsfMQVl/GFYD9Gx/tlxurlTtvHkZRAt8j1qi27eIlTk=
+github.com/redis/go-redis/extra/redisotel/v9 v9.17.2 h1:wthFPRW3Y50CknMrjjJoYwXUFR4U7hMVJCMeLzDI8s4=
+github.com/redis/go-redis/extra/redisotel/v9 v9.17.2/go.mod h1:iqfQX7U2o8MWSl8W+Ah8KqbQyi/UoR/MQNgvaUyA1wc=
+github.com/redis/go-redis/v9 v9.17.2 h1:P2EGsA4qVIM3Pp+aPocCJ7DguDHhqrXNhVcEp4ViluI=
+github.com/redis/go-redis/v9 v9.17.2/go.mod h1:u410H11HMLoB+TP67dz8rL9s6QW2j76l0//kSOd3370=
github.com/richardlehane/mscfb v1.0.4 h1:WULscsljNPConisD5hR0+OyZjwK46Pfyr6mPu5ZawpM=
github.com/richardlehane/mscfb v1.0.4/go.mod h1:YzVpcZg9czvAuhk9T+a3avCpcFPMUWm7gK3DypaEsUk=
github.com/richardlehane/msoleps v1.0.1/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg=
From c818dd6cf1692a19d12caf9497db0f6327322e15 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Tue, 16 Dec 2025 19:40:21 +0200
Subject: [PATCH 056/215] Add plunk for marketting emails
---
api/go.mod | 1 +
api/go.sum | 2 +
api/pkg/di/container.go | 20 ++++-
api/pkg/events/user_account_created_event.go | 16 ++++
api/pkg/events/user_account_deleted_event.go | 3 +-
api/pkg/handlers/user_handler.go | 9 +-
api/pkg/listeners/marketing_listener.go | 23 +++++-
api/pkg/services/marketting_service.go | 86 ++++++++++----------
api/pkg/services/user_service.go | 33 ++++++--
9 files changed, 134 insertions(+), 59 deletions(-)
create mode 100644 api/pkg/events/user_account_created_event.go
diff --git a/api/go.mod b/api/go.mod
index cc1f13d8..91454eef 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -11,6 +11,7 @@ require (
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.30.0
github.com/NdoleStudio/go-otelroundtripper v0.0.13
github.com/NdoleStudio/lemonsqueezy-go v1.2.4
+ github.com/NdoleStudio/plunk-go v0.0.1
github.com/avast/retry-go v3.0.0+incompatible
github.com/carlmjohnson/requests v0.25.1
github.com/cloudevents/sdk-go/v2 v2.16.2
diff --git a/api/go.sum b/api/go.sum
index 8f5501ce..86e6039d 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -58,6 +58,8 @@ github.com/NdoleStudio/go-otelroundtripper v0.0.13 h1:fDgdxcNJov4LTrMhXqJnF/E3jO
github.com/NdoleStudio/go-otelroundtripper v0.0.13/go.mod h1:UIUQ22ErFoBUyLuPDrVNRRKmBHBTfzQO9GF1ztqDvqo=
github.com/NdoleStudio/lemonsqueezy-go v1.2.4 h1:BhWlCUH+DIPfSn4g/V7f2nFkMCQuzno9DXKZ7YDrXXA=
github.com/NdoleStudio/lemonsqueezy-go v1.2.4/go.mod h1:2uZlWgn9sbNxOx3JQWLlPrDOC6NT/wmSTOgL3U/fMMw=
+github.com/NdoleStudio/plunk-go v0.0.1 h1:nWPr5pcwFDvhYGZS5n3a3cKGkQvg5re9DSAiFMZCFvs=
+github.com/NdoleStudio/plunk-go v0.0.1/go.mod h1:pqG3zKhpn/A2bL1K+WsWzvfTpOeSkYgXhNk5H65uEc8=
github.com/PuerkitoBio/goquery v1.10.3 h1:pFYcNSqHxBD06Fpj/KsbStFRsgRATgnf3LeXiUkhzPo=
github.com/PuerkitoBio/goquery v1.10.3/go.mod h1:tMUX0zDMHXYlAQk6p35XxQMqMweEKB7iK7iLNd4RH4Y=
github.com/andybalholm/brotli v1.2.0 h1:ukwgCxwYrmACq68yiUqwIWnGY0cTPox/M94sVwToPjQ=
diff --git a/api/pkg/di/container.go b/api/pkg/di/container.go
index 442fa0e6..9594c791 100644
--- a/api/pkg/di/container.go
+++ b/api/pkg/di/container.go
@@ -9,6 +9,7 @@ import (
"strconv"
"time"
+ plunk "github.com/NdoleStudio/plunk-go"
"github.com/pusher/pusher-http-go/v5"
"github.com/NdoleStudio/httpsms/docs"
@@ -916,7 +917,7 @@ func (container *Container) MarketingService() (service *services.MarketingServi
container.Logger(),
container.Tracer(),
container.FirebaseAuthClient(),
- os.Getenv("BREVO_API_KEY"),
+ container.PlunkClient(),
)
}
@@ -929,7 +930,6 @@ func (container *Container) UserService() (service *services.UserService) {
container.UserRepository(),
container.Mailer(),
container.UserEmailFactory(),
- container.MarketingService(),
container.LemonsqueezyClient(),
container.EventDispatcher(),
container.FirebaseAuthClient(),
@@ -1181,6 +1181,16 @@ func (container *Container) DiscordClient() (client *discord.Client) {
)
}
+// PlunkClient creates a new instance of plunk.Client
+func (container *Container) PlunkClient() (client *plunk.Client) {
+ container.logger.Debug(fmt.Sprintf("creating %T", client))
+ return plunk.New(
+ plunk.WithHTTPClient(container.HTTPClient("plunk")),
+ plunk.WithSecretKey(os.Getenv("PLUNK_SECRET_KEY")),
+ plunk.WithPublicKey(os.Getenv("PLUNK_PUBLIC_KEY")),
+ )
+}
+
// RegisterLemonsqueezyRoutes registers routes for the /lemonsqueezy prefix
func (container *Container) RegisterLemonsqueezyRoutes() {
container.logger.Debug(fmt.Sprintf("registering %T routes", &handlers.LemonsqueezyHandler{}))
@@ -1306,6 +1316,12 @@ func (container *Container) RegisterDiscordListeners() {
// RegisterMarketingListeners registers event listeners for listeners.MarketingListener
func (container *Container) RegisterMarketingListeners() {
container.logger.Debug(fmt.Sprintf("registering listeners for %T", listeners.MarketingListener{}))
+
+ if os.Getenv("PLUNK_SECRET_KEY") == "" {
+ container.logger.Debug("skipping marketing listeners because the PLUNK_SECRET_KEY env variable is not set")
+ return
+ }
+
_, routes := listeners.NewMarketingListener(
container.Logger(),
container.Tracer(),
diff --git a/api/pkg/events/user_account_created_event.go b/api/pkg/events/user_account_created_event.go
new file mode 100644
index 00000000..2b37ef8a
--- /dev/null
+++ b/api/pkg/events/user_account_created_event.go
@@ -0,0 +1,16 @@
+package events
+
+import (
+ "time"
+
+ "github.com/NdoleStudio/httpsms/pkg/entities"
+)
+
+// UserAccountCreated is raised when a user's account is created.
+const UserAccountCreated = "user.account.created"
+
+// UserAccountCreatedPayload stores the data for the UserAccountCreated event
+type UserAccountCreatedPayload struct {
+ UserID entities.UserID `json:"user_id"`
+ Timestamp time.Time `json:"timestamp"`
+}
diff --git a/api/pkg/events/user_account_deleted_event.go b/api/pkg/events/user_account_deleted_event.go
index 581b44ef..bf8f68db 100644
--- a/api/pkg/events/user_account_deleted_event.go
+++ b/api/pkg/events/user_account_deleted_event.go
@@ -9,8 +9,9 @@ import (
// UserAccountDeleted is raised when a user's account is deleted.
const UserAccountDeleted = "user.account.deleted"
-// UserAccountDeletedPayload stores the data for the UserAccountDeletedPayload event
+// UserAccountDeletedPayload stores the data for the UserAccountDeleted event
type UserAccountDeletedPayload struct {
UserID entities.UserID `json:"user_id"`
+ UserEmail string `json:"user_email"`
Timestamp time.Time `json:"timestamp"`
}
diff --git a/api/pkg/handlers/user_handler.go b/api/pkg/handlers/user_handler.go
index af77e718..44ec619e 100644
--- a/api/pkg/handlers/user_handler.go
+++ b/api/pkg/handlers/user_handler.go
@@ -62,14 +62,11 @@ func (h *UserHandler) RegisterRoutes(router fiber.Router, middlewares ...fiber.H
// @Failure 500 {object} responses.InternalServerError
// @Router /users/me [get]
func (h *UserHandler) Show(c *fiber.Ctx) error {
- ctx, span := h.tracer.StartFromFiberCtx(c)
+ ctx, span, ctxLogger := h.tracer.StartFromFiberCtxWithLogger(c, h.logger)
defer span.End()
- ctxLogger := h.tracer.CtxLogger(h.logger, span)
-
authUser := h.userFromContext(c)
-
- user, err := h.service.Get(ctx, authUser)
+ user, err := h.service.Get(ctx, c.OriginalURL(), authUser)
if err != nil {
msg := fmt.Sprintf("cannot get user with ID [%s]", authUser.ID)
ctxLogger.Error(stacktrace.Propagate(err, msg))
@@ -112,7 +109,7 @@ func (h *UserHandler) Update(c *fiber.Ctx) error {
return h.responseUnprocessableEntity(c, errors, "validation errors while updating user")
}
- user, err := h.service.Update(ctx, h.userFromContext(c), request.ToUpdateParams())
+ user, err := h.service.Update(ctx, c.OriginalURL(), h.userFromContext(c), request.ToUpdateParams())
if err != nil {
msg := fmt.Sprintf("cannot update user with params [%+#v]", request)
ctxLogger.Error(stacktrace.Propagate(err, msg))
diff --git a/api/pkg/listeners/marketing_listener.go b/api/pkg/listeners/marketing_listener.go
index fbbb735f..62da4829 100644
--- a/api/pkg/listeners/marketing_listener.go
+++ b/api/pkg/listeners/marketing_listener.go
@@ -32,9 +32,28 @@ func NewMarketingListener(
return l, map[string]events.EventListener{
events.UserAccountDeleted: l.onUserAccountDeleted,
+ events.UserAccountCreated: l.onUserAccountCreated,
}
}
+func (listener *MarketingListener) onUserAccountCreated(ctx context.Context, event cloudevents.Event) error {
+ ctx, span := listener.tracer.Start(ctx)
+ defer span.End()
+
+ var payload events.UserAccountCreatedPayload
+ if err := event.DataAs(&payload); err != nil {
+ msg := fmt.Sprintf("cannot decode [%s] into [%T]", event.Data(), payload)
+ return listener.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
+ }
+
+ if err := listener.service.CreateContact(ctx, payload.UserID); err != nil {
+ msg := fmt.Sprintf("cannot create [contact] for user [%s] on [%s] event with ID [%s]", payload.UserID, event.Type(), event.ID())
+ return listener.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
+ }
+
+ return nil
+}
+
func (listener *MarketingListener) onUserAccountDeleted(ctx context.Context, event cloudevents.Event) error {
ctx, span := listener.tracer.Start(ctx)
defer span.End()
@@ -45,8 +64,8 @@ func (listener *MarketingListener) onUserAccountDeleted(ctx context.Context, eve
return listener.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
}
- if err := listener.service.DeleteUser(ctx, payload.UserID); err != nil {
- msg := fmt.Sprintf("cannot delete [sendgrid contact] for user [%s] on [%s] event with ID [%s]", payload.UserID, event.Type(), event.ID())
+ if err := listener.service.DeleteContact(ctx, payload.UserEmail); err != nil {
+ msg := fmt.Sprintf("cannot delete [contact] for user [%s] on [%s] event with ID [%s]", payload.UserID, event.Type(), event.ID())
return listener.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
}
diff --git a/api/pkg/services/marketting_service.go b/api/pkg/services/marketting_service.go
index 56645dfd..17eccdd6 100644
--- a/api/pkg/services/marketting_service.go
+++ b/api/pkg/services/marketting_service.go
@@ -5,11 +5,12 @@ import (
"fmt"
"strings"
- "github.com/carlmjohnson/requests"
+ semconv "go.opentelemetry.io/otel/semconv/v1.10.0"
"firebase.google.com/go/auth"
"github.com/NdoleStudio/httpsms/pkg/entities"
"github.com/NdoleStudio/httpsms/pkg/telemetry"
+ plunk "github.com/NdoleStudio/plunk-go"
"github.com/gofiber/fiber/v2"
"github.com/palantir/stacktrace"
)
@@ -19,7 +20,7 @@ type MarketingService struct {
logger telemetry.Logger
tracer telemetry.Tracer
authClient *auth.Client
- brevoAPIKey string
+ plunkClient *plunk.Client
}
// NewMarketingService creates a new instance of the MarketingService
@@ -27,70 +28,71 @@ func NewMarketingService(
logger telemetry.Logger,
tracer telemetry.Tracer,
authClient *auth.Client,
- brevoAPIKey string,
+ plunkClient *plunk.Client,
) *MarketingService {
return &MarketingService{
logger: logger.WithService(fmt.Sprintf("%T", &MarketingService{})),
tracer: tracer,
authClient: authClient,
- brevoAPIKey: brevoAPIKey,
+ plunkClient: plunkClient,
}
}
-// DeleteUser a user if exists in the sendgrid list
-func (service *MarketingService) DeleteUser(ctx context.Context, userID entities.UserID) error {
+// DeleteContact a user if exists as a contact
+func (service *MarketingService) DeleteContact(ctx context.Context, email string) error {
ctx, span, ctxLogger := service.tracer.StartWithLogger(ctx, service.logger)
defer span.End()
- err := requests.URL(fmt.Sprintf("https://api.brevo.com/v3/contacts/%s?identifierType=ext_id", userID)).
- Header("api-key", service.brevoAPIKey).
- Delete().
- CheckStatus(fiber.StatusNoContent).
- Fetch(ctx)
+ response, _, err := service.plunkClient.Contacts.List(ctx, map[string]string{"limit": "1", "search": email})
if err != nil {
- return service.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, fmt.Sprintf("cannot delete user with id [%s] from brevo list", userID)))
+ return service.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, fmt.Sprintf("cannot search for contact with email [%s]", email)))
}
- ctxLogger.Info(fmt.Sprintf("deleted user with ID [%s] from brevo list with status [%s]", userID, fiber.StatusNoContent))
+ if len(response.Contacts) == 0 {
+ ctxLogger.Info(fmt.Sprintf("no contact found with email [%s], skipping deletion", email))
+ return nil
+ }
+
+ contact := response.Contacts[0]
+ if _, err = service.plunkClient.Contacts.Delete(ctx, contact.ID); err != nil {
+ return service.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, fmt.Sprintf("cannot delete user with ID [%s] from contacts", contact.Data[string(semconv.EnduserIDKey)])))
+ }
+
+ ctxLogger.Info(fmt.Sprintf("deleted user with ID [%s] from as marketting contact with ID [%s]", contact.Data[string(semconv.EnduserIDKey)], contact.ID))
return nil
}
-// AddToList adds a new user on the onboarding automation.
-func (service *MarketingService) AddToList(ctx context.Context, user *entities.User) {
+// CreateContact adds a new user on the onboarding automation.
+func (service *MarketingService) CreateContact(ctx context.Context, userID entities.UserID) error {
ctx, span, ctxLogger := service.tracer.StartWithLogger(ctx, service.logger)
defer span.End()
- userRecord, err := service.authClient.GetUser(ctx, string(user.ID))
+ userRecord, err := service.authClient.GetUser(ctx, userID.String())
if err != nil {
- msg := fmt.Sprintf("cannot get auth user with id [%s]", user.ID)
- ctxLogger.Error(stacktrace.Propagate(err, msg))
- return
+ msg := fmt.Sprintf("cannot get auth user with id [%s]", userID)
+ return service.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
}
- var response string
- err = requests.URL("https://api.brevo.com/v3/contacts").
- Header("api-key", service.brevoAPIKey).
- Post().
- BodyJSON(fiber.Map{
- "email": userRecord.Email,
- "ext_id": userRecord.UID,
- "attributes": service.brevoAttributes(userRecord),
- "listIds": []int64{9},
- "updateEnabled": true,
- }).
- CheckStatus(fiber.StatusCreated, fiber.StatusNoContent).
- ToString(&response).
- Fetch(ctx)
+ data := service.attributes(userRecord)
+ data[string(semconv.ServiceNameKey)] = "httpsms.com"
+ data[string(semconv.EnduserIDKey)] = userRecord.UID
+
+ event, _, err := service.plunkClient.Tracker.TrackEvent(ctx, &plunk.TrackEventRequest{
+ Email: userRecord.Email,
+ Event: "contact.created",
+ Subscribed: true,
+ Data: data,
+ })
if err != nil {
- msg := fmt.Sprintf("cannot add user with id [%s] to brevo list", user.ID)
- ctxLogger.Error(stacktrace.Propagate(err, msg))
- return
+ msg := fmt.Sprintf("cannot create contact for user with id [%s]", userID)
+ return service.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
}
- ctxLogger.Info(fmt.Sprintf("user [%s] added to list brevo list with brevo response [%s]", user.ID, response))
+ ctxLogger.Info(fmt.Sprintf("user [%s] added to marketting list with contact ID [%s] and event ID [%s]", userID, event.Data.Contact, event.Data.Event))
+ return nil
}
-func (service *MarketingService) brevoAttributes(user *auth.UserRecord) map[string]any {
+func (service *MarketingService) attributes(user *auth.UserRecord) map[string]any {
name := strings.TrimSpace(user.DisplayName)
if name == "" {
return fiber.Map{}
@@ -98,11 +100,13 @@ func (service *MarketingService) brevoAttributes(user *auth.UserRecord) map[stri
parts := strings.Split(name, " ")
if len(parts) == 1 {
- return fiber.Map{"FIRSTNAME": name}
+ return fiber.Map{
+ "firstName": name,
+ }
}
return fiber.Map{
- "FIRSTNAME": strings.Join(parts[0:len(parts)-1], " "),
- "LASTNAME": parts[len(parts)-1],
+ "firstName": strings.Join(parts[0:len(parts)-1], " "),
+ "lastName": parts[len(parts)-1],
}
}
diff --git a/api/pkg/services/user_service.go b/api/pkg/services/user_service.go
index 731f50a9..e030e1f8 100644
--- a/api/pkg/services/user_service.go
+++ b/api/pkg/services/user_service.go
@@ -29,7 +29,6 @@ type UserService struct {
mailer emails.Mailer
repository repositories.UserRepository
dispatcher *EventDispatcher
- marketingService *MarketingService
authClient *auth.Client
lemonsqueezyClient *lemonsqueezy.Client
}
@@ -41,7 +40,6 @@ func NewUserService(
repository repositories.UserRepository,
mailer emails.Mailer,
emailFactory emails.UserEmailFactory,
- marketingService *MarketingService,
lemonsqueezyClient *lemonsqueezy.Client,
dispatcher *EventDispatcher,
authClient *auth.Client,
@@ -50,7 +48,6 @@ func NewUserService(
logger: logger.WithService(fmt.Sprintf("%T", s)),
tracer: tracer,
mailer: mailer,
- marketingService: marketingService,
emailFactory: emailFactory,
repository: repository,
dispatcher: dispatcher,
@@ -60,7 +57,7 @@ func NewUserService(
}
// Get fetches or creates an entities.User
-func (service *UserService) Get(ctx context.Context, authUser entities.AuthContext) (*entities.User, error) {
+func (service *UserService) Get(ctx context.Context, source string, authUser entities.AuthContext) (*entities.User, error) {
ctx, span := service.tracer.Start(ctx)
defer span.End()
@@ -71,12 +68,33 @@ func (service *UserService) Get(ctx context.Context, authUser entities.AuthConte
}
if isNew {
- service.marketingService.AddToList(ctx, user)
+ service.dispatchUserCreatedEvent(ctx, source, user)
}
return user, nil
}
+func (service *UserService) dispatchUserCreatedEvent(ctx context.Context, source string, user *entities.User) {
+ ctx, span, ctxLogger := service.tracer.StartWithLogger(ctx, service.logger)
+ defer span.End()
+
+ event, err := service.createEvent(events.UserAccountCreated, source, &events.UserAccountCreatedPayload{
+ UserID: user.ID,
+ Timestamp: time.Now().UTC(),
+ })
+ if err != nil {
+ msg := fmt.Sprintf("cannot create event [%s] for user [%s]", events.UserAccountCreated, user.ID)
+ ctxLogger.Error(stacktrace.Propagate(err, msg))
+ return
+ }
+
+ if err = service.dispatcher.Dispatch(ctx, event); err != nil {
+ msg := fmt.Sprintf("cannot dispatch [%s] event for user [%s]", event.Type(), user.ID)
+ ctxLogger.Error(stacktrace.Propagate(err, msg))
+ return
+ }
+}
+
// GetByID fetches an entities.User
func (service *UserService) GetByID(ctx context.Context, userID entities.UserID) (*entities.User, error) {
ctx, span, _ := service.tracer.StartWithLogger(ctx, service.logger)
@@ -98,7 +116,7 @@ type UserUpdateParams struct {
}
// Update an entities.User
-func (service *UserService) Update(ctx context.Context, authUser entities.AuthContext, params UserUpdateParams) (*entities.User, error) {
+func (service *UserService) Update(ctx context.Context, source string, authUser entities.AuthContext, params UserUpdateParams) (*entities.User, error) {
ctx, span := service.tracer.Start(ctx)
defer span.End()
@@ -111,7 +129,7 @@ func (service *UserService) Update(ctx context.Context, authUser entities.AuthCo
}
if isNew {
- service.marketingService.AddToList(ctx, user)
+ service.dispatchUserCreatedEvent(ctx, source, user)
}
user.Timezone = params.Timezone.String()
@@ -218,6 +236,7 @@ func (service *UserService) Delete(ctx context.Context, source string, userID en
event, err := service.createEvent(events.UserAccountDeleted, source, &events.UserAccountDeletedPayload{
UserID: userID,
+ UserEmail: user.Email,
Timestamp: time.Now().UTC(),
})
if err != nil {
From e58f6e22a8e640854f0025ac3a6d76eda0bfa96d Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Mon, 22 Dec 2025 21:01:07 +0200
Subject: [PATCH 057/215] Reduce TTL for cache
---
api/pkg/di/container.go | 15 ++++++++++++
api/pkg/repositories/gorm_phone_repository.go | 24 ++++++++++++++++++-
2 files changed, 38 insertions(+), 1 deletion(-)
diff --git a/api/pkg/di/container.go b/api/pkg/di/container.go
index 9594c791..07bce2c3 100644
--- a/api/pkg/di/container.go
+++ b/api/pkg/di/container.go
@@ -722,6 +722,7 @@ func (container *Container) PhoneRepository() (repository repositories.PhoneRepo
container.Logger(),
container.Tracer(),
container.DB(),
+ container.PhoneRistrettoCache(),
)
}
@@ -1525,6 +1526,20 @@ func (container *Container) UserRepository() repositories.UserRepository {
)
}
+// PhoneRistrettoCache creates an in-memory *ristretto.Cache[string, *entities.Phone]
+func (container *Container) PhoneRistrettoCache() (cache *ristretto.Cache[string, *entities.Phone]) {
+ container.logger.Debug(fmt.Sprintf("creating %T", cache))
+ ristrettoCache, err := ristretto.NewCache[string, *entities.Phone](&ristretto.Config[string, *entities.Phone]{
+ MaxCost: 5000,
+ NumCounters: 5000 * 10,
+ BufferItems: 64,
+ })
+ if err != nil {
+ container.logger.Fatal(stacktrace.Propagate(err, "cannot create user ristretto cache"))
+ }
+ return ristrettoCache
+}
+
// UserRistrettoCache creates an in-memory *ristretto.Cache[string, entities.AuthContext]
func (container *Container) UserRistrettoCache() (cache *ristretto.Cache[string, entities.AuthContext]) {
container.logger.Debug(fmt.Sprintf("creating %T", cache))
diff --git a/api/pkg/repositories/gorm_phone_repository.go b/api/pkg/repositories/gorm_phone_repository.go
index b45f7cff..40c29d30 100644
--- a/api/pkg/repositories/gorm_phone_repository.go
+++ b/api/pkg/repositories/gorm_phone_repository.go
@@ -4,9 +4,11 @@ import (
"context"
"errors"
"fmt"
+ "time"
"github.com/NdoleStudio/httpsms/pkg/entities"
"github.com/NdoleStudio/httpsms/pkg/telemetry"
+ "github.com/dgraph-io/ristretto/v2"
"github.com/google/uuid"
"github.com/palantir/stacktrace"
"gorm.io/gorm"
@@ -16,6 +18,7 @@ import (
type gormPhoneRepository struct {
logger telemetry.Logger
tracer telemetry.Tracer
+ cache *ristretto.Cache[string, *entities.Phone]
db *gorm.DB
}
@@ -24,11 +27,13 @@ func NewGormPhoneRepository(
logger telemetry.Logger,
tracer telemetry.Tracer,
db *gorm.DB,
+ cache *ristretto.Cache[string, *entities.Phone],
) PhoneRepository {
return &gormPhoneRepository{
logger: logger.WithService(fmt.Sprintf("%T", &gormPhoneRepository{})),
tracer: tracer,
db: db,
+ cache: cache,
}
}
@@ -41,6 +46,7 @@ func (repository *gormPhoneRepository) DeleteAllForUser(ctx context.Context, use
return repository.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
}
+ repository.cache.Clear()
return nil
}
@@ -81,6 +87,7 @@ func (repository *gormPhoneRepository) Delete(ctx context.Context, userID entiti
return repository.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
}
+ repository.cache.Clear()
return nil
}
@@ -106,14 +113,20 @@ func (repository *gormPhoneRepository) Save(ctx context.Context, phone *entities
return repository.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
}
+ repository.cache.Del(repository.getCacheKey(phone.UserID, phone.PhoneNumber))
return nil
}
// Load a phone based on entities.UserID and phoneNumber
func (repository *gormPhoneRepository) Load(ctx context.Context, userID entities.UserID, phoneNumber string) (*entities.Phone, error) {
- ctx, span := repository.tracer.Start(ctx)
+ ctx, span, ctxLogger := repository.tracer.StartWithLogger(ctx, repository.logger)
defer span.End()
+ if phone, found := repository.cache.Get(repository.getCacheKey(userID, phoneNumber)); found {
+ ctxLogger.Info(fmt.Sprintf("cache hit for [%T] with ID [%s]", phone, userID))
+ return phone, nil
+ }
+
phone := new(entities.Phone)
err := repository.db.WithContext(ctx).Where("user_id = ?", userID).Where("phone_number = ?", phoneNumber).First(phone).Error
if errors.Is(err, gorm.ErrRecordNotFound) {
@@ -126,6 +139,11 @@ func (repository *gormPhoneRepository) Load(ctx context.Context, userID entities
return nil, repository.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
}
+ if result := repository.cache.SetWithTTL(repository.getCacheKey(userID, phoneNumber), phone, 1, 30*time.Minute); !result {
+ msg := fmt.Sprintf("cannot cache [%T] with ID [%s] and result [%t]", phone, phone.ID, result)
+ ctxLogger.Error(repository.tracer.WrapErrorSpan(span, stacktrace.NewError(msg)))
+ }
+
return phone, nil
}
@@ -147,3 +165,7 @@ func (repository *gormPhoneRepository) Index(ctx context.Context, userID entitie
return phones, nil
}
+
+func (repository *gormPhoneRepository) getCacheKey(userID entities.UserID, phoneNumber string) string {
+ return fmt.Sprintf("user:%s:phone:%s", userID, phoneNumber)
+}
From 2f2a95c9dc6a889021baee0ffc6971202d27e4ff Mon Sep 17 00:00:00 2001
From: sudhanshu <40685426+sudhanshu-raj@users.noreply.github.com>
Date: Wed, 24 Dec 2025 01:51:59 +0530
Subject: [PATCH 058/215] Fix for the cp command of .env in api #1
We don't have .env.local.docker in api and instead of putting things on .env.local , I suggest .env as docker using this only for api environment
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index fa387b9e..f1d9a1b0 100644
--- a/README.md
+++ b/README.md
@@ -195,7 +195,7 @@ FIREBASE_MEASUREMENT_ID=
- Copy the `.env.docker` file in the `api` directory into `.env`
```bash
-cp api/.env.local.docker api/.env.local
+cp api/.env.docker api/.env
```
- Update the environment variables in the `.env` file in the `api` directory with your firebase service account credentials and SMTP server details.
From 12a6ea1a4b6973b12dedfbf9161681018275a2c9 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 1 Jan 2026 00:02:40 +0000
Subject: [PATCH 059/215] fix(deps): bump github.com/jaswdr/faker/v2 from 2.9.0
to 2.9.1 in /api
Bumps [github.com/jaswdr/faker/v2](https://github.com/jaswdr/faker) from 2.9.0 to 2.9.1.
- [Release notes](https://github.com/jaswdr/faker/releases)
- [Commits](https://github.com/jaswdr/faker/compare/v2.9.0...v2.9.1)
---
updated-dependencies:
- dependency-name: github.com/jaswdr/faker/v2
dependency-version: 2.9.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 2 +-
api/go.sum | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index 91454eef..9b0ae709 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -26,7 +26,7 @@ require (
github.com/google/uuid v1.6.0
github.com/hashicorp/go-retryablehttp v0.7.8
github.com/hirosassa/zerodriver v0.1.4
- github.com/jaswdr/faker/v2 v2.9.0
+ github.com/jaswdr/faker/v2 v2.9.1
github.com/jinzhu/now v1.1.5
github.com/joho/godotenv v1.5.1
github.com/jordan-wright/email v4.0.1-0.20210109023952-943e75fe5223+incompatible
diff --git a/api/go.sum b/api/go.sum
index 86e6039d..638cc3db 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -206,8 +206,8 @@ github.com/jackc/pgx/v5 v5.7.6 h1:rWQc5FwZSPX58r1OQmkuaNicxdmExaEz5A2DO2hUuTk=
github.com/jackc/pgx/v5 v5.7.6/go.mod h1:aruU7o91Tc2q2cFp5h4uP3f6ztExVpyVv88Xl/8Vl8M=
github.com/jackc/puddle/v2 v2.2.2 h1:PR8nw+E/1w0GLuRFSmiioY6UooMp6KJv0/61nB7icHo=
github.com/jackc/puddle/v2 v2.2.2/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4=
-github.com/jaswdr/faker/v2 v2.9.0 h1:Sqqpp+pxduDO+MGOhYE3UHtI9Sowt9j95f8h8nVvips=
-github.com/jaswdr/faker/v2 v2.9.0/go.mod h1:jZq+qzNQr8/P+5fHd9t3txe2GNPnthrTfohtnJ7B+68=
+github.com/jaswdr/faker/v2 v2.9.1 h1:J0Rjqb2/FquZnoZplzkGVL5LmhNkeIpvsSMoJKzn+8E=
+github.com/jaswdr/faker/v2 v2.9.1/go.mod h1:jZq+qzNQr8/P+5fHd9t3txe2GNPnthrTfohtnJ7B+68=
github.com/jaytaylor/html2text v0.0.0-20230321000545-74c2419ad056 h1:iCHtR9CQyktQ5+f3dMVZfwD2KWJUgm7M0gdL9NGr8KA=
github.com/jaytaylor/html2text v0.0.0-20230321000545-74c2419ad056/go.mod h1:CVKlgaMiht+LXvHG173ujK6JUhZXKb2u/BQtjPDIvyk=
github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
From ab23bbc78cd183e3a41ca7f3c916cda02e22f00c Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 1 Jan 2026 00:02:58 +0000
Subject: [PATCH 060/215] fix(deps): bump libphonenumber-js from 1.12.9 to
1.12.33 in /web
Bumps [libphonenumber-js](https://gitlab.com/catamphetamine/libphonenumber-js) from 1.12.9 to 1.12.33.
- [Changelog](https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/CHANGELOG.md)
- [Commits](https://gitlab.com/catamphetamine/libphonenumber-js/compare/v1.12.9...v1.12.33)
---
updated-dependencies:
- dependency-name: libphonenumber-js
dependency-version: 1.12.33
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
web/package.json | 2 +-
web/pnpm-lock.yaml | 11 ++++++-----
2 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/web/package.json b/web/package.json
index a9290488..57a2704b 100644
--- a/web/package.json
+++ b/web/package.json
@@ -34,7 +34,7 @@
"firebase": "^10.14.1",
"firebaseui": "^6.1.0",
"jest-environment-jsdom": "^30.2.0",
- "libphonenumber-js": "^1.12.9",
+ "libphonenumber-js": "^1.12.33",
"moment": "^2.30.1",
"nuxt": "^2.18.1",
"nuxt-highlightjs": "^1.0.3",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index e6addfc8..c88dc0e3 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -45,8 +45,8 @@ importers:
specifier: ^30.2.0
version: 30.2.0
libphonenumber-js:
- specifier: ^1.12.9
- version: 1.12.9
+ specifier: ^1.12.33
+ version: 1.12.33
moment:
specifier: ^2.30.1
version: 2.30.1
@@ -5934,8 +5934,8 @@ packages:
resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
engines: {node: '>= 0.8.0'}
- libphonenumber-js@1.12.9:
- resolution: {integrity: sha512-VWwAdNeJgN7jFOD+wN4qx83DTPMVPPAUyx9/TUkBXKLiNkuWWk6anV0439tgdtwaJDrEdqkvdN22iA6J4bUCZg==}
+ libphonenumber-js@1.12.33:
+ resolution: {integrity: sha512-r9kw4OA6oDO4dPXkOrXTkArQAafIKAU71hChInV4FxZ69dxCfbwQGDPzqR5/vea94wU705/3AZroEbSoeVWrQw==}
lilconfig@2.1.0:
resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
@@ -9059,6 +9059,7 @@ packages:
whatwg-encoding@3.1.1:
resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==}
engines: {node: '>=18'}
+ deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation
whatwg-mimetype@4.0.0:
resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==}
@@ -16919,7 +16920,7 @@ snapshots:
prelude-ls: 1.2.1
type-check: 0.4.0
- libphonenumber-js@1.12.9: {}
+ libphonenumber-js@1.12.33: {}
lilconfig@2.1.0: {}
From 05309b7610fb78f5c86a8e892130cc263be5da90 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 1 Jan 2026 00:03:05 +0000
Subject: [PATCH 061/215] fix(deps): bump google.golang.org/api from 0.256.0 to
0.258.0 in /api
Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.256.0 to 0.258.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](https://github.com/googleapis/google-api-go-client/compare/v0.256.0...v0.258.0)
---
updated-dependencies:
- dependency-name: google.golang.org/api
dependency-version: 0.258.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 28 ++++++++++++-------------
api/go.sum | 60 +++++++++++++++++++++++++++---------------------------
2 files changed, 44 insertions(+), 44 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index 91454eef..a39d2fde 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -51,8 +51,8 @@ require (
go.opentelemetry.io/otel/sdk v1.38.0
go.opentelemetry.io/otel/sdk/metric v1.38.0
go.opentelemetry.io/otel/trace v1.38.0
- google.golang.org/api v0.256.0
- google.golang.org/protobuf v1.36.10
+ google.golang.org/api v0.258.0
+ google.golang.org/protobuf v1.36.11
gorm.io/driver/postgres v1.6.0
gorm.io/gorm v1.31.1
gorm.io/plugin/opentelemetry v0.1.16
@@ -86,7 +86,7 @@ require (
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/clipperhouse/uax29/v2 v2.2.0 // indirect
- github.com/cncf/xds/go v0.0.0-20251014123835-2ee22ca58382 // indirect
+ github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f // indirect
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
github.com/envoyproxy/go-control-plane/envoy v1.35.0 // indirect
github.com/envoyproxy/protoc-gen-validate v1.2.1 // indirect
@@ -171,21 +171,21 @@ require (
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.0 // indirect
go.yaml.in/yaml/v3 v3.0.4 // indirect
- golang.org/x/crypto v0.45.0 // indirect
+ golang.org/x/crypto v0.46.0 // indirect
golang.org/x/exp v0.0.0-20251009144603-d2f985daa21b // indirect
- golang.org/x/mod v0.29.0 // indirect
- golang.org/x/net v0.47.0 // indirect
- golang.org/x/oauth2 v0.33.0 // indirect
- golang.org/x/sync v0.18.0 // indirect
- golang.org/x/sys v0.38.0 // indirect
- golang.org/x/text v0.31.0 // indirect
+ golang.org/x/mod v0.30.0 // indirect
+ golang.org/x/net v0.48.0 // indirect
+ golang.org/x/oauth2 v0.34.0 // indirect
+ golang.org/x/sync v0.19.0 // indirect
+ golang.org/x/sys v0.39.0 // indirect
+ golang.org/x/text v0.32.0 // indirect
golang.org/x/time v0.14.0 // indirect
- golang.org/x/tools v0.38.0 // indirect
+ golang.org/x/tools v0.39.0 // indirect
google.golang.org/appengine v1.6.8 // indirect
google.golang.org/genproto v0.0.0-20251014184007-4626949a642f // indirect
- google.golang.org/genproto/googleapis/api v0.0.0-20251014184007-4626949a642f // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20251103181224-f26f9409b101 // indirect
- google.golang.org/grpc v1.76.0 // indirect
+ google.golang.org/genproto/googleapis/api v0.0.0-20251022142026-3a174f9686a8 // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20251213004720-97cd9d5aeac2 // indirect
+ google.golang.org/grpc v1.77.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
gorm.io/driver/clickhouse v0.7.0 // indirect
gorm.io/driver/mysql v1.6.0 // indirect
diff --git a/api/go.sum b/api/go.sum
index 86e6039d..7662bba3 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -82,8 +82,8 @@ github.com/clipperhouse/uax29/v2 v2.2.0 h1:ChwIKnQN3kcZteTXMgb1wztSgaU+ZemkgWdoh
github.com/clipperhouse/uax29/v2 v2.2.0/go.mod h1:EFJ2TJMRUaplDxHKj1qAEhCtQPW2tJSwu5BF98AuoVM=
github.com/cloudevents/sdk-go/v2 v2.16.2 h1:ZYDFrYke4FD+jM8TZTJJO6JhKHzOQl2oqpFK1D+NnQM=
github.com/cloudevents/sdk-go/v2 v2.16.2/go.mod h1:laOcGImm4nVJEU+PHnUrKL56CKmRL65RlQF0kRmW/kg=
-github.com/cncf/xds/go v0.0.0-20251014123835-2ee22ca58382 h1:5IeUoAZvqwF6LcCnV99NbhrGKN6ihZgahJv5jKjmZ3k=
-github.com/cncf/xds/go v0.0.0-20251014123835-2ee22ca58382/go.mod h1:HlzOvOjVBOfTGSRXRyY0OiCS/3J1akRGQQpRO/7zyF4=
+github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f h1:Y8xYupdHxryycyPlc9Y+bSQAYZnetRJ70VMVKm5CKI0=
+github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f/go.mod h1:HlzOvOjVBOfTGSRXRyY0OiCS/3J1akRGQQpRO/7zyF4=
github.com/cockroachdb/cockroach-go/v2 v2.4.2 h1:QB0ozDWQUUJ0GP8Zw63X/qHefPTCpLvtfCs6TLrPgyE=
github.com/cockroachdb/cockroach-go/v2 v2.4.2/go.mod h1:9U179XbCx4qFWtNhc7BiWLPfuyMVQ7qdAhfrwLz1vH0=
github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
@@ -99,8 +99,8 @@ github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/r
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
-github.com/envoyproxy/go-control-plane v0.13.4 h1:zEqyPVyku6IvWCFwux4x9RxkLOMUL+1vC9xUFv5l2/M=
-github.com/envoyproxy/go-control-plane v0.13.4/go.mod h1:kDfuBlDVsSj2MjrLEtRWtHlsWIFcGyB2RMO44Dc5GZA=
+github.com/envoyproxy/go-control-plane v0.13.5-0.20251024222203-75eaa193e329 h1:K+fnvUM0VZ7ZFJf0n4L/BRlnsb9pL/GuDG6FqaH+PwM=
+github.com/envoyproxy/go-control-plane v0.13.5-0.20251024222203-75eaa193e329/go.mod h1:Alz8LEClvR7xKsrq3qzoc4N0guvVNSS8KmSChGYr9hs=
github.com/envoyproxy/go-control-plane/envoy v1.35.0 h1:ixjkELDE+ru6idPxcHLj8LBVc2bFP7iBytj353BoHUo=
github.com/envoyproxy/go-control-plane/envoy v1.35.0/go.mod h1:09qwbGVuSWWAyN5t/b3iyVfz5+z8QWGrzkoqm/8SbEs=
github.com/envoyproxy/go-control-plane/ratelimit v0.1.0 h1:/G9QYbddjL25KvtKTv3an9lx6VBE2cnb8wp1vEGNYGI=
@@ -413,8 +413,8 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY
golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
-golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q=
-golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4=
+golang.org/x/crypto v0.46.0 h1:cKRW/pmt1pKAfetfu+RCEvjvZkA9RimPbh7bhFjGVBU=
+golang.org/x/crypto v0.46.0/go.mod h1:Evb/oLKmMraqjZ2iQTwDwvCtJkczlDuTmdJXoZVzqU0=
golang.org/x/exp v0.0.0-20251009144603-d2f985daa21b h1:18qgiDvlvH7kk8Ioa8Ov+K6xCi0GMvmGfGW0sgd/SYA=
golang.org/x/exp v0.0.0-20251009144603-d2f985daa21b/go.mod h1:j/pmGrbnkbPtQfxEe5D0VQhZC6qKbfKifgD0oM7sR70=
golang.org/x/image v0.25.0 h1:Y6uW6rH1y5y/LK1J8BPWZtr6yZ7hrsy6hFrXjgsc2fQ=
@@ -426,8 +426,8 @@ golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
-golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA=
-golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w=
+golang.org/x/mod v0.30.0 h1:fDEXFVZ/fmCKProc/yAXXUijritrDzahmwwefnjoPFk=
+golang.org/x/mod v0.30.0/go.mod h1:lAsf5O2EvJeSFMiBxXDki7sCgAxEUcZHXoXMKT4GJKc=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -441,10 +441,10 @@ golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
-golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY=
-golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU=
-golang.org/x/oauth2 v0.33.0 h1:4Q+qn+E5z8gPRJfmRy7C2gGG3T4jIprK6aSYgTXGRpo=
-golang.org/x/oauth2 v0.33.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
+golang.org/x/net v0.48.0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU=
+golang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY=
+golang.org/x/oauth2 v0.34.0 h1:hqK/t4AKgbqWkdkcAeI8XLmbK+4m4G5YeQRrmiotGlw=
+golang.org/x/oauth2 v0.34.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -455,8 +455,8 @@ golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y=
golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
-golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I=
-golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
+golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4=
+golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -473,8 +473,8 @@ golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
-golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc=
-golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
+golang.org/x/sys v0.39.0 h1:CvCKL8MeisomCi6qNZ+wbb0DN9E5AATixKsvNtMoMFk=
+golang.org/x/sys v0.39.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
@@ -495,8 +495,8 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
-golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM=
-golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM=
+golang.org/x/text v0.32.0 h1:ZD01bjUt1FQ9WJ0ClOL5vxgxOI/sVCNgX1YtKwcY0mU=
+golang.org/x/text v0.32.0/go.mod h1:o/rUWzghvpD5TXrTIBuJU77MTaN0ljMWE47kxGJQ7jY=
golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI=
golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -507,31 +507,31 @@ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
-golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ=
-golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs=
+golang.org/x/tools v0.39.0 h1:ik4ho21kwuQln40uelmciQPp9SipgNDdrafrYA4TmQQ=
+golang.org/x/tools v0.39.0/go.mod h1:JnefbkDPyD8UU2kI5fuf8ZX4/yUeh9W877ZeBONxUqQ=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk=
gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E=
-google.golang.org/api v0.256.0 h1:u6Khm8+F9sxbCTYNoBHg6/Hwv0N/i+V94MvkOSor6oI=
-google.golang.org/api v0.256.0/go.mod h1:KIgPhksXADEKJlnEoRa9qAII4rXcy40vfI8HRqcU964=
+google.golang.org/api v0.258.0 h1:IKo1j5FBlN74fe5isA2PVozN3Y5pwNKriEgAXPOkDAc=
+google.golang.org/api v0.258.0/go.mod h1:qhOMTQEZ6lUps63ZNq9jhODswwjkjYYguA7fA3TBFww=
google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM=
google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds=
google.golang.org/genproto v0.0.0-20251014184007-4626949a642f h1:vLd1CJuJOUgV6qijD7KT5Y2ZtC97ll4dxjTUappMnbo=
google.golang.org/genproto v0.0.0-20251014184007-4626949a642f/go.mod h1:PI3KrSadr00yqfv6UDvgZGFsmLqeRIwt8x4p5Oo7CdM=
-google.golang.org/genproto/googleapis/api v0.0.0-20251014184007-4626949a642f h1:OiFuztEyBivVKDvguQJYWq1yDcfAHIID/FVrPR4oiI0=
-google.golang.org/genproto/googleapis/api v0.0.0-20251014184007-4626949a642f/go.mod h1:kprOiu9Tr0JYyD6DORrc4Hfyk3RFXqkQ3ctHEum3ZbM=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20251103181224-f26f9409b101 h1:tRPGkdGHuewF4UisLzzHHr1spKw92qLM98nIzxbC0wY=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20251103181224-f26f9409b101/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk=
-google.golang.org/grpc v1.76.0 h1:UnVkv1+uMLYXoIz6o7chp59WfQUYA2ex/BXQ9rHZu7A=
-google.golang.org/grpc v1.76.0/go.mod h1:Ju12QI8M6iQJtbcsV+awF5a4hfJMLi4X0JLo94ULZ6c=
+google.golang.org/genproto/googleapis/api v0.0.0-20251022142026-3a174f9686a8 h1:mepRgnBZa07I4TRuomDE4sTIYieg/osKmzIf4USdWS4=
+google.golang.org/genproto/googleapis/api v0.0.0-20251022142026-3a174f9686a8/go.mod h1:fDMmzKV90WSg1NbozdqrE64fkuTv6mlq2zxo9ad+3yo=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20251213004720-97cd9d5aeac2 h1:2I6GHUeJ/4shcDpoUlLs/2WPnhg7yJwvXtqcMJt9liA=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20251213004720-97cd9d5aeac2/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk=
+google.golang.org/grpc v1.77.0 h1:wVVY6/8cGA6vvffn+wWK5ToddbgdU3d8MNENr4evgXM=
+google.golang.org/grpc v1.77.0/go.mod h1:z0BY1iVj0q8E1uSQCjL9cppRj+gnZjzDnzV0dHhrNig=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
-google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE=
-google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
+google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
+google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
From 27d2852c3c7b0af965b158fd9383ac0f805580a5 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 1 Jan 2026 00:03:58 +0000
Subject: [PATCH 062/215] fix(deps): bump core-js from 3.45.1 to 3.47.0 in /web
Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.45.1 to 3.47.0.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/commits/v3.47.0/packages/core-js)
---
updated-dependencies:
- dependency-name: core-js
dependency-version: 3.47.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
web/package.json | 2 +-
web/pnpm-lock.yaml | 13 +++++++------
2 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/web/package.json b/web/package.json
index a9290488..4a5aec26 100644
--- a/web/package.json
+++ b/web/package.json
@@ -28,7 +28,7 @@
"@nuxtjs/sitemap": "^2.4.0",
"chart.js": "^4.5.0",
"chartjs-adapter-moment": "^1.0.1",
- "core-js": "^3.45.1",
+ "core-js": "^3.47.0",
"date-fns": "^2.30.0",
"dotenv": "^17.2.1",
"firebase": "^10.14.1",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index e6addfc8..97480bd1 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -27,8 +27,8 @@ importers:
specifier: ^1.0.1
version: 1.0.1(chart.js@4.5.0)(moment@2.30.1)
core-js:
- specifier: ^3.45.1
- version: 3.45.1
+ specifier: ^3.47.0
+ version: 3.47.0
date-fns:
specifier: ^2.30.0
version: 2.30.0
@@ -3762,8 +3762,8 @@ packages:
resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==}
deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
- core-js@3.45.1:
- resolution: {integrity: sha512-L4NPsJlCfZsPeXukyzHFlg/i7IIVwHSItR0wg0FLNqYClJ4MQYTYLbC7EkjKYRLZF2iof2MUgN0EGy7MdQFChg==}
+ core-js@3.47.0:
+ resolution: {integrity: sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg==}
core-util-is@1.0.3:
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
@@ -9059,6 +9059,7 @@ packages:
whatwg-encoding@3.1.1:
resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==}
engines: {node: '>=18'}
+ deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation
whatwg-mimetype@4.0.0:
resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==}
@@ -11676,7 +11677,7 @@ snapshots:
'@babel/preset-env': 7.24.7(@babel/core@7.24.7)
'@babel/runtime': 7.24.7
'@vue/babel-preset-jsx': 1.4.0(@babel/core@7.24.7)(vue@2.7.16)
- core-js: 3.45.1
+ core-js: 3.47.0
core-js-compat: 3.37.1
regenerator-runtime: 0.14.1
transitivePeerDependencies:
@@ -14128,7 +14129,7 @@ snapshots:
core-js@2.6.12: {}
- core-js@3.45.1: {}
+ core-js@3.47.0: {}
core-util-is@1.0.3: {}
From b1364e736ffca8467eefe20d4036e038106883c0 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 1 Jan 2026 00:06:54 +0000
Subject: [PATCH 063/215] fix(deps): bump dotenv from 17.2.1 to 17.2.3 in /web
Bumps [dotenv](https://github.com/motdotla/dotenv) from 17.2.1 to 17.2.3.
- [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md)
- [Commits](https://github.com/motdotla/dotenv/compare/v17.2.1...v17.2.3)
---
updated-dependencies:
- dependency-name: dotenv
dependency-version: 17.2.3
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
web/package.json | 2 +-
web/pnpm-lock.yaml | 11 ++++++-----
2 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/web/package.json b/web/package.json
index a9290488..bf851756 100644
--- a/web/package.json
+++ b/web/package.json
@@ -30,7 +30,7 @@
"chartjs-adapter-moment": "^1.0.1",
"core-js": "^3.45.1",
"date-fns": "^2.30.0",
- "dotenv": "^17.2.1",
+ "dotenv": "^17.2.3",
"firebase": "^10.14.1",
"firebaseui": "^6.1.0",
"jest-environment-jsdom": "^30.2.0",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index e6addfc8..803b6247 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -33,8 +33,8 @@ importers:
specifier: ^2.30.0
version: 2.30.0
dotenv:
- specifier: ^17.2.1
- version: 17.2.1
+ specifier: ^17.2.3
+ version: 17.2.3
firebase:
specifier: ^10.14.1
version: 10.14.1
@@ -4198,8 +4198,8 @@ packages:
resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==}
engines: {node: '>=12'}
- dotenv@17.2.1:
- resolution: {integrity: sha512-kQhDYKZecqnM0fCnzI5eIv5L4cAe/iRI+HqMbO/hbRdTAeXDG+M9FjipUxNfbARuEg4iHIbhnhs78BCHNbSxEQ==}
+ dotenv@17.2.3:
+ resolution: {integrity: sha512-JVUnt+DUIzu87TABbhPmNfVdBDt18BLOWjMUFJMSi/Qqg7NTYtabbvSNJGOJ7afbRuv9D/lngizHtP7QyLQ+9w==}
engines: {node: '>=12'}
dotenv@8.6.0:
@@ -9059,6 +9059,7 @@ packages:
whatwg-encoding@3.1.1:
resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==}
engines: {node: '>=18'}
+ deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation
whatwg-mimetype@4.0.0:
resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==}
@@ -14619,7 +14620,7 @@ snapshots:
dotenv@16.6.1: {}
- dotenv@17.2.1: {}
+ dotenv@17.2.3: {}
dotenv@8.6.0: {}
From a4a09ffaabe49a6194291a3de498076f6871df20 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 1 Jan 2026 00:07:43 +0000
Subject: [PATCH 064/215] chore(deps-dev): bump ts-jest from 29.4.4 to 29.4.6
in /web
Bumps [ts-jest](https://github.com/kulshekhar/ts-jest) from 29.4.4 to 29.4.6.
- [Release notes](https://github.com/kulshekhar/ts-jest/releases)
- [Changelog](https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/kulshekhar/ts-jest/compare/v29.4.4...v29.4.6)
---
updated-dependencies:
- dependency-name: ts-jest
dependency-version: 29.4.6
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
web/package.json | 2 +-
web/pnpm-lock.yaml | 100 ++++++++++++++++++++-------------------------
2 files changed, 45 insertions(+), 57 deletions(-)
diff --git a/web/package.json b/web/package.json
index a9290488..8e93b007 100644
--- a/web/package.json
+++ b/web/package.json
@@ -82,7 +82,7 @@
"stylelint-config-prettier": "^9.0.5",
"stylelint-config-recommended-vue": "^1.5.0",
"stylelint-config-standard": "^34.0.0",
- "ts-jest": "^29.4.4",
+ "ts-jest": "^29.4.6",
"vue-client-only": "^2.1.0",
"vue-jest": "^3.0.7",
"vue-meta": "^2.4.0",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index e6addfc8..c6f23454 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -184,8 +184,8 @@ importers:
specifier: ^34.0.0
version: 34.0.0(stylelint@15.11.0(typescript@4.9.5))
ts-jest:
- specifier: ^29.4.4
- version: 29.4.4(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.4))(jest-util@30.2.0)(jest@30.2.0(@types/node@24.6.2))(typescript@4.9.5)
+ specifier: ^29.4.6
+ version: 29.4.6(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.4))(jest-util@30.2.0)(jest@30.2.0(@types/node@24.6.2))(typescript@4.9.5)
vue-client-only:
specifier: ^2.1.0
version: 2.1.0
@@ -7872,6 +7872,11 @@ packages:
engines: {node: '>=10'}
hasBin: true
+ semver@7.7.3:
+ resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==}
+ engines: {node: '>=10'}
+ hasBin: true
+
send@0.19.0:
resolution: {integrity: sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==}
engines: {node: '>= 0.8.0'}
@@ -8493,8 +8498,8 @@ packages:
peerDependencies:
typescript: '>=4.2.0'
- ts-jest@29.4.4:
- resolution: {integrity: sha512-ccVcRABct5ZELCT5U0+DZwkXMCcOCLi2doHRrKy1nK/s7J7bch6TzJMsrY09WxgUUIP/ITfmcDS8D2yl63rnXw==}
+ ts-jest@29.4.6:
+ resolution: {integrity: sha512-fSpWtOO/1AjSNQguk43hb/JCo16oJDnMJf3CdEGNkqsEX3t0KX96xvyX1D7PfLCpVoKu4MfVrqUkFyblYoY4lA==}
engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
@@ -9059,6 +9064,7 @@ packages:
whatwg-encoding@3.1.1:
resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==}
engines: {node: '>=18'}
+ deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation
whatwg-mimetype@4.0.0:
resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==}
@@ -10414,7 +10420,7 @@ snapshots:
'@commitlint/is-ignored@20.0.0':
dependencies:
'@commitlint/types': 20.0.0
- semver: 7.7.2
+ semver: 7.7.3
'@commitlint/lint@20.0.0':
dependencies:
@@ -11653,7 +11659,7 @@ snapshots:
'@npmcli/fs@1.1.1':
dependencies:
'@gar/promisify': 1.1.3
- semver: 7.7.2
+ semver: 7.7.3
'@npmcli/move-file@1.1.2':
dependencies:
@@ -11785,7 +11791,7 @@ snapshots:
minimist: 1.2.8
opener: 1.5.2
pretty-bytes: 5.6.0
- semver: 7.7.2
+ semver: 7.7.3
serve-static: 1.16.2
std-env: 3.7.0
upath: 2.0.1
@@ -11802,7 +11808,7 @@ snapshots:
glob: 7.2.3
globby: 11.1.0
scule: 0.2.1
- semver: 7.7.2
+ semver: 7.7.3
upath: 2.0.1
vue-template-compiler: 2.7.16
@@ -11870,7 +11876,7 @@ snapshots:
pathe: 1.1.2
pkg-types: 1.1.2
scule: 1.3.0
- semver: 7.7.2
+ semver: 7.7.3
ufo: 1.6.1
unctx: 2.3.1
unimport: 3.7.2(rollup@3.29.5)
@@ -11895,7 +11901,7 @@ snapshots:
pathe: 1.1.2
pkg-types: 1.1.2
scule: 1.0.0
- semver: 7.7.2
+ semver: 7.7.3
ufo: 1.6.1
unctx: 2.3.1
unimport: 3.4.0(rollup@3.29.5)
@@ -12041,7 +12047,7 @@ snapshots:
jiti: 1.21.6
lodash: 4.17.21
proper-lockfile: 4.1.2
- semver: 7.7.2
+ semver: 7.7.3
serialize-javascript: 6.0.2
signal-exit: 4.1.0
ua-parser-js: 1.0.38
@@ -12084,11 +12090,11 @@ snapshots:
cache-loader: 4.1.0(webpack@4.47.0)
caniuse-lite: 1.0.30001639
consola: 3.2.3
- css-loader: 5.2.7(webpack@4.47.0)
+ css-loader: 5.2.7(webpack@5.102.0)
cssnano: 7.0.3(postcss@8.4.39)
eventsource-polyfill: 0.9.6
extract-css-chunks-webpack-plugin: 4.10.0(webpack@4.47.0)
- file-loader: 6.2.0(webpack@4.47.0)
+ file-loader: 6.2.0(webpack@5.102.0)
glob: 8.1.0
hard-source-webpack-plugin: 0.13.1(webpack@4.47.0)
hash-sum: 2.0.0
@@ -12105,7 +12111,7 @@ snapshots:
postcss-loader: 4.3.0(postcss@8.4.39)(webpack@4.47.0)
postcss-preset-env: 9.5.15(postcss@8.4.39)
postcss-url: 10.1.3(postcss@8.4.39)
- semver: 7.7.2
+ semver: 7.7.3
std-env: 3.7.0
style-resources-loader: 1.5.0(webpack@4.47.0)
terser-webpack-plugin: 4.2.3(webpack@4.47.0)
@@ -12113,8 +12119,8 @@ snapshots:
time-fix-plugin: 2.0.7(webpack@4.47.0)
ufo: 1.6.1
upath: 2.0.1
- url-loader: 4.1.1(file-loader@6.2.0(webpack@5.102.0))(webpack@4.47.0)
- vue-loader: 15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@5.102.0))(ejs@3.1.10)(handlebars@4.7.8)(lodash@4.17.21)(prettier@3.6.2)(vue-template-compiler@2.7.16)(webpack@4.47.0)
+ url-loader: 4.1.1(file-loader@6.2.0(webpack@4.47.0))(webpack@4.47.0)
+ vue-loader: 15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@4.47.0))(ejs@3.1.10)(handlebars@4.7.8)(lodash@4.17.21)(prettier@3.6.2)(vue-template-compiler@2.7.16)(webpack@4.47.0)
vue-style-loader: 4.1.3
vue-template-compiler: 2.7.16
watchpack: 2.4.4
@@ -12608,7 +12614,7 @@ snapshots:
graphemer: 1.4.0
ignore: 5.3.1
natural-compare: 1.4.0
- semver: 7.7.2
+ semver: 7.7.3
ts-api-utils: 1.0.3(typescript@4.9.5)
optionalDependencies:
typescript: 4.9.5
@@ -12654,7 +12660,7 @@ snapshots:
debug: 4.4.1
globby: 11.1.0
is-glob: 4.0.3
- semver: 7.7.2
+ semver: 7.7.3
ts-api-utils: 1.0.3(typescript@4.9.5)
optionalDependencies:
typescript: 4.9.5
@@ -12670,7 +12676,7 @@ snapshots:
'@typescript-eslint/types': 6.7.3
'@typescript-eslint/typescript-estree': 6.7.3(typescript@4.9.5)
eslint: 8.57.1
- semver: 7.7.2
+ semver: 7.7.3
transitivePeerDependencies:
- supports-color
- typescript
@@ -13666,7 +13672,7 @@ snapshots:
builtins@5.0.1:
dependencies:
- semver: 7.7.2
+ semver: 7.7.3
bytes@3.0.0: {}
@@ -14244,20 +14250,6 @@ snapshots:
postcss-selector-parser: 6.1.2
postcss-value-parser: 4.2.0
- css-loader@5.2.7(webpack@4.47.0):
- dependencies:
- icss-utils: 5.1.0(postcss@8.4.39)
- loader-utils: 2.0.4
- postcss: 8.4.39
- postcss-modules-extract-imports: 3.0.0(postcss@8.4.39)
- postcss-modules-local-by-default: 4.0.3(postcss@8.4.39)
- postcss-modules-scope: 3.0.0(postcss@8.4.39)
- postcss-modules-values: 4.0.0(postcss@8.4.39)
- postcss-value-parser: 4.2.0
- schema-utils: 3.3.0
- semver: 7.7.2
- webpack: 4.47.0
-
css-loader@5.2.7(webpack@5.102.0):
dependencies:
icss-utils: 5.1.0(postcss@8.4.39)
@@ -14269,7 +14261,7 @@ snapshots:
postcss-modules-values: 4.0.0(postcss@8.4.39)
postcss-value-parser: 4.2.0
schema-utils: 3.3.0
- semver: 7.7.2
+ semver: 7.7.3
webpack: 5.102.0
css-prefers-color-scheme@9.0.1(postcss@8.4.39):
@@ -14660,7 +14652,7 @@ snapshots:
'@one-ini/wasm': 0.1.1
commander: 10.0.1
minimatch: 9.0.1
- semver: 7.7.2
+ semver: 7.7.3
ee-first@1.1.1: {}
@@ -14941,7 +14933,7 @@ snapshots:
is-core-module: 2.13.0
minimatch: 3.1.2
resolve: 1.22.6
- semver: 7.7.2
+ semver: 7.7.3
eslint-plugin-node@11.1.0(eslint@8.57.1):
dependencies:
@@ -14981,7 +14973,7 @@ snapshots:
read-pkg-up: 7.0.1
regexp-tree: 0.1.27
safe-regex: 2.1.1
- semver: 7.7.2
+ semver: 7.7.3
strip-indent: 3.0.0
eslint-plugin-vue@9.33.0(eslint@8.57.1):
@@ -15276,12 +15268,6 @@ snapshots:
dependencies:
flat-cache: 3.1.1
- file-loader@6.2.0(webpack@4.47.0):
- dependencies:
- loader-utils: 2.0.4
- schema-utils: 3.3.0
- webpack: 4.47.0
-
file-loader@6.2.0(webpack@5.102.0):
dependencies:
loader-utils: 2.0.4
@@ -15458,7 +15444,7 @@ snapshots:
memfs: 3.5.3
minimatch: 3.1.2
schema-utils: 2.7.0
- semver: 7.7.2
+ semver: 7.7.3
tapable: 1.1.3
typescript: 4.9.5
webpack: 5.102.0
@@ -16330,7 +16316,7 @@ snapshots:
'@babel/parser': 7.28.4
'@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.2
- semver: 7.7.2
+ semver: 7.7.3
transitivePeerDependencies:
- supports-color
@@ -16634,7 +16620,7 @@ snapshots:
jest-message-util: 30.2.0
jest-util: 30.2.0
pretty-format: 30.2.0
- semver: 7.7.2
+ semver: 7.7.3
synckit: 0.11.11
transitivePeerDependencies:
- supports-color
@@ -17125,7 +17111,7 @@ snapshots:
make-dir@4.0.0:
dependencies:
- semver: 7.7.2
+ semver: 7.7.3
make-error@1.3.6: {}
@@ -17508,7 +17494,7 @@ snapshots:
dependencies:
hosted-git-info: 4.1.0
is-core-module: 2.13.0
- semver: 7.7.2
+ semver: 7.7.3
validate-npm-package-license: 3.0.4
normalize-path@2.1.1:
@@ -18145,7 +18131,7 @@ snapshots:
loader-utils: 2.0.4
postcss: 8.4.39
schema-utils: 3.3.0
- semver: 7.7.2
+ semver: 7.7.3
webpack: 4.47.0
postcss-logical@7.0.1(postcss@8.4.39):
@@ -19003,7 +18989,7 @@ snapshots:
loader-utils: 2.0.4
neo-async: 2.6.2
schema-utils: 3.3.0
- semver: 7.7.2
+ semver: 7.7.3
webpack: 5.102.0
optionalDependencies:
sass: 1.32.13
@@ -19065,6 +19051,8 @@ snapshots:
semver@7.7.2: {}
+ semver@7.7.3: {}
+
send@0.19.0:
dependencies:
debug: 2.6.9
@@ -19775,7 +19763,7 @@ snapshots:
dependencies:
typescript: 4.9.5
- ts-jest@29.4.4(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.4))(jest-util@30.2.0)(jest@30.2.0(@types/node@24.6.2))(typescript@4.9.5):
+ ts-jest@29.4.6(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.4))(jest-util@30.2.0)(jest@30.2.0(@types/node@24.6.2))(typescript@4.9.5):
dependencies:
bs-logger: 0.2.6
fast-json-stable-stringify: 2.1.0
@@ -19784,7 +19772,7 @@ snapshots:
json5: 2.2.3
lodash.memoize: 4.1.2
make-error: 1.3.6
- semver: 7.7.2
+ semver: 7.7.3
type-fest: 4.41.0
typescript: 4.9.5
yargs-parser: 21.1.1
@@ -19801,7 +19789,7 @@ snapshots:
enhanced-resolve: 4.5.0
loader-utils: 2.0.4
micromatch: 4.0.8
- semver: 7.7.2
+ semver: 7.7.3
typescript: 4.9.5
webpack: 5.102.0
@@ -20080,7 +20068,7 @@ snapshots:
urix@0.1.0: {}
- url-loader@4.1.1(file-loader@6.2.0(webpack@5.102.0))(webpack@4.47.0):
+ url-loader@4.1.1(file-loader@6.2.0(webpack@4.47.0))(webpack@4.47.0):
dependencies:
loader-utils: 2.0.4
mime-types: 2.1.35
@@ -20227,7 +20215,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- vue-loader@15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@5.102.0))(ejs@3.1.10)(handlebars@4.7.8)(lodash@4.17.21)(prettier@3.6.2)(vue-template-compiler@2.7.16)(webpack@4.47.0):
+ vue-loader@15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@4.47.0))(ejs@3.1.10)(handlebars@4.7.8)(lodash@4.17.21)(prettier@3.6.2)(vue-template-compiler@2.7.16)(webpack@4.47.0):
dependencies:
'@vue/component-compiler-utils': 3.3.0(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(handlebars@4.7.8)(lodash@4.17.21)
css-loader: 5.2.7(webpack@5.102.0)
From a5baa86ed7be8229439dd6e8d5357b8be2824291 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 1 Jan 2026 00:08:13 +0000
Subject: [PATCH 065/215] fix(deps): bump vue-chartjs from 5.3.2 to 5.3.3 in
/web
Bumps [vue-chartjs](https://github.com/apertureless/vue-chartjs) from 5.3.2 to 5.3.3.
- [Release notes](https://github.com/apertureless/vue-chartjs/releases)
- [Changelog](https://github.com/apertureless/vue-chartjs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/apertureless/vue-chartjs/compare/v5.3.2...v5.3.3)
---
updated-dependencies:
- dependency-name: vue-chartjs
dependency-version: 5.3.3
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
web/package.json | 2 +-
web/pnpm-lock.yaml | 11 ++++++-----
2 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/web/package.json b/web/package.json
index a9290488..8b77d0e6 100644
--- a/web/package.json
+++ b/web/package.json
@@ -42,7 +42,7 @@
"qrcode": "^1.5.0",
"ufo": "^1.6.1",
"vue": "^2.7.16",
- "vue-chartjs": "^5.3.2",
+ "vue-chartjs": "^5.3.3",
"vue-class-component": "^7.2.6",
"vue-glow": "^1.4.2",
"vue-property-decorator": "^9.1.2",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index e6addfc8..d397ae84 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -69,8 +69,8 @@ importers:
specifier: ^2.7.16
version: 2.7.16
vue-chartjs:
- specifier: ^5.3.2
- version: 5.3.2(chart.js@4.5.0)(vue@2.7.16)
+ specifier: ^5.3.3
+ version: 5.3.3(chart.js@4.5.0)(vue@2.7.16)
vue-class-component:
specifier: ^7.2.6
version: 7.2.6(vue@2.7.16)
@@ -8845,8 +8845,8 @@ packages:
vm-browserify@1.1.2:
resolution: {integrity: sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==}
- vue-chartjs@5.3.2:
- resolution: {integrity: sha512-NrkbRRoYshbXbWqJkTN6InoDVwVb90C0R7eAVgMWcB9dPikbruaOoTFjFYHE/+tNPdIe6qdLCDjfjPHQ0fw4jw==}
+ vue-chartjs@5.3.3:
+ resolution: {integrity: sha512-jqxtL8KZ6YJ5NTv6XzrzLS7osyegOi28UGNZW0h9OkDL7Sh1396ht4Dorh04aKrl2LiSalQ84WtqiG0RIJb0tA==}
peerDependencies:
chart.js: ^4.1.1
vue: ^3.0.0-0 || ^2.7.0
@@ -9059,6 +9059,7 @@ packages:
whatwg-encoding@3.1.1:
resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==}
engines: {node: '>=18'}
+ deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation
whatwg-mimetype@4.0.0:
resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==}
@@ -20165,7 +20166,7 @@ snapshots:
vm-browserify@1.1.2: {}
- vue-chartjs@5.3.2(chart.js@4.5.0)(vue@2.7.16):
+ vue-chartjs@5.3.3(chart.js@4.5.0)(vue@2.7.16):
dependencies:
chart.js: 4.5.0
vue: 2.7.16
From 8ca7ca8b13ec5f2abaa0c4888b6708ea18eb1336 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 1 Jan 2026 09:20:48 +0000
Subject: [PATCH 066/215] fix(deps): bump
github.com/cockroachdb/cockroach-go/v2 in /api
Bumps [github.com/cockroachdb/cockroach-go/v2](https://github.com/cockroachdb/cockroach-go) from 2.4.2 to 2.4.3.
- [Release notes](https://github.com/cockroachdb/cockroach-go/releases)
- [Commits](https://github.com/cockroachdb/cockroach-go/compare/v2.4.2...v2.4.3)
---
updated-dependencies:
- dependency-name: github.com/cockroachdb/cockroach-go/v2
dependency-version: 2.4.3
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 2 +-
api/go.sum | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index a39d2fde..35ad062b 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -15,7 +15,7 @@ require (
github.com/avast/retry-go v3.0.0+incompatible
github.com/carlmjohnson/requests v0.25.1
github.com/cloudevents/sdk-go/v2 v2.16.2
- github.com/cockroachdb/cockroach-go/v2 v2.4.2
+ github.com/cockroachdb/cockroach-go/v2 v2.4.3
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
github.com/dgraph-io/ristretto/v2 v2.3.0
github.com/dustin/go-humanize v1.0.1
diff --git a/api/go.sum b/api/go.sum
index 7662bba3..b414e4c0 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -84,8 +84,8 @@ github.com/cloudevents/sdk-go/v2 v2.16.2 h1:ZYDFrYke4FD+jM8TZTJJO6JhKHzOQl2oqpFK
github.com/cloudevents/sdk-go/v2 v2.16.2/go.mod h1:laOcGImm4nVJEU+PHnUrKL56CKmRL65RlQF0kRmW/kg=
github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f h1:Y8xYupdHxryycyPlc9Y+bSQAYZnetRJ70VMVKm5CKI0=
github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f/go.mod h1:HlzOvOjVBOfTGSRXRyY0OiCS/3J1akRGQQpRO/7zyF4=
-github.com/cockroachdb/cockroach-go/v2 v2.4.2 h1:QB0ozDWQUUJ0GP8Zw63X/qHefPTCpLvtfCs6TLrPgyE=
-github.com/cockroachdb/cockroach-go/v2 v2.4.2/go.mod h1:9U179XbCx4qFWtNhc7BiWLPfuyMVQ7qdAhfrwLz1vH0=
+github.com/cockroachdb/cockroach-go/v2 v2.4.3 h1:LJO3K3jC5WXvMePRQSJE1NsIGoFGcEx1LW83W6RAlhw=
+github.com/cockroachdb/cockroach-go/v2 v2.4.3/go.mod h1:9U179XbCx4qFWtNhc7BiWLPfuyMVQ7qdAhfrwLz1vH0=
github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
From d09780ae40bdfb88b0c7ae7d4794b61da479d73e Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 1 Jan 2026 09:21:22 +0000
Subject: [PATCH 067/215] fix(deps): bump go.opentelemetry.io/otel/metric in
/api
Bumps [go.opentelemetry.io/otel/metric](https://github.com/open-telemetry/opentelemetry-go) from 1.38.0 to 1.39.0.
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.38.0...v1.39.0)
---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel/metric
dependency-version: 1.39.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 6 +++---
api/go.sum | 12 ++++++------
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index a39d2fde..2671ffce 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -46,11 +46,11 @@ require (
github.com/thedevsaddam/govalidator v1.9.10
github.com/uptrace/uptrace-go v1.38.0
github.com/xuri/excelize/v2 v2.10.0
- go.opentelemetry.io/otel v1.38.0
- go.opentelemetry.io/otel/metric v1.38.0
+ go.opentelemetry.io/otel v1.39.0
+ go.opentelemetry.io/otel/metric v1.39.0
go.opentelemetry.io/otel/sdk v1.38.0
go.opentelemetry.io/otel/sdk/metric v1.38.0
- go.opentelemetry.io/otel/trace v1.38.0
+ go.opentelemetry.io/otel/trace v1.39.0
google.golang.org/api v0.258.0
google.golang.org/protobuf v1.36.11
gorm.io/driver/postgres v1.6.0
diff --git a/api/go.sum b/api/go.sum
index 7662bba3..dbab2e66 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -363,8 +363,8 @@ go.opentelemetry.io/contrib/instrumentation/runtime v0.63.0 h1:PeBoRj6af6xMI7qCu
go.opentelemetry.io/contrib/instrumentation/runtime v0.63.0/go.mod h1:ingqBCtMCe8I4vpz/UVzCW6sxoqgZB37nao91mLQ3Bw=
go.opentelemetry.io/contrib/propagators/b3 v1.19.0 h1:ulz44cpm6V5oAeg5Aw9HyqGFMS6XM7untlMEhD7YzzA=
go.opentelemetry.io/contrib/propagators/b3 v1.19.0/go.mod h1:OzCmE2IVS+asTI+odXQstRGVfXQ4bXv9nMBRK0nNyqQ=
-go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8=
-go.opentelemetry.io/otel v1.38.0/go.mod h1:zcmtmQ1+YmQM9wrNsTGV/q/uyusom3P8RxwExxkZhjM=
+go.opentelemetry.io/otel v1.39.0 h1:8yPrr/S0ND9QEfTfdP9V+SiwT4E0G7Y5MO7p85nis48=
+go.opentelemetry.io/otel v1.39.0/go.mod h1:kLlFTywNWrFyEdH0oj2xK0bFYZtHRYUdv1NklR/tgc8=
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.14.0 h1:QQqYw3lkrzwVsoEX0w//EhH/TCnpRdEenKBOOEIMjWc=
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.14.0/go.mod h1:gSVQcr17jk2ig4jqJ2DX30IdWH251JcNAecvrqTxH1s=
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.38.0 h1:Oe2z/BCg5q7k4iXC3cqJxKYg0ieRiOqF0cecFYdPTwk=
@@ -379,8 +379,8 @@ go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0 h1:kJxSDN4SgWWTjG/
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0/go.mod h1:mgIOzS7iZeKJdeB8/NYHrJ48fdGc71Llo5bJ1J4DWUE=
go.opentelemetry.io/otel/log v0.14.0 h1:2rzJ+pOAZ8qmZ3DDHg73NEKzSZkhkGIua9gXtxNGgrM=
go.opentelemetry.io/otel/log v0.14.0/go.mod h1:5jRG92fEAgx0SU/vFPxmJvhIuDU9E1SUnEQrMlJpOno=
-go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgfrA6WpA=
-go.opentelemetry.io/otel/metric v1.38.0/go.mod h1:kB5n/QoRM8YwmUahxvI3bO34eVtQf2i4utNVLr9gEmI=
+go.opentelemetry.io/otel/metric v1.39.0 h1:d1UzonvEZriVfpNKEVmHXbdf909uGTOQjA0HF0Ls5Q0=
+go.opentelemetry.io/otel/metric v1.39.0/go.mod h1:jrZSWL33sD7bBxg1xjrqyDjnuzTUB0x1nBERXd7Ftcs=
go.opentelemetry.io/otel/oteltest v1.0.0-RC3 h1:MjaeegZTaX0Bv9uB9CrdVjOFM/8slRjReoWoV9xDCpY=
go.opentelemetry.io/otel/oteltest v1.0.0-RC3/go.mod h1:xpzajI9JBRr7gX63nO6kAmImmYIAtuQblZ36Z+LfCjE=
go.opentelemetry.io/otel/sdk v1.38.0 h1:l48sr5YbNf2hpCUj/FoGhW9yDkl+Ma+LrVl8qaM5b+E=
@@ -391,8 +391,8 @@ go.opentelemetry.io/otel/sdk/log/logtest v0.14.0 h1:Ijbtz+JKXl8T2MngiwqBlPaHqc4Y
go.opentelemetry.io/otel/sdk/log/logtest v0.14.0/go.mod h1:dCU8aEL6q+L9cYTqcVOk8rM9Tp8WdnHOPLiBgp0SGOA=
go.opentelemetry.io/otel/sdk/metric v1.38.0 h1:aSH66iL0aZqo//xXzQLYozmWrXxyFkBJ6qT5wthqPoM=
go.opentelemetry.io/otel/sdk/metric v1.38.0/go.mod h1:dg9PBnW9XdQ1Hd6ZnRz689CbtrUp0wMMs9iPcgT9EZA=
-go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE=
-go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs=
+go.opentelemetry.io/otel/trace v1.39.0 h1:2d2vfpEDmCJ5zVYz7ijaJdOF59xLomrvj7bjt6/qCJI=
+go.opentelemetry.io/otel/trace v1.39.0/go.mod h1:88w4/PnZSazkGzz/w84VHpQafiU4EtqqlVdxWy+rNOA=
go.opentelemetry.io/proto/otlp v1.8.0 h1:fRAZQDcAFHySxpJ1TwlA1cJ4tvcrw7nXl9xWWC8N5CE=
go.opentelemetry.io/proto/otlp v1.8.0/go.mod h1:tIeYOeNBU4cvmPqpaji1P+KbB4Oloai8wN4rWzRrFF0=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
From 2960d01c592a2e602ea3abf66e60577e947204e2 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 1 Jan 2026 09:21:40 +0000
Subject: [PATCH 068/215] fix(deps): bump go.opentelemetry.io/otel from 1.38.0
to 1.39.0 in /api
Bumps [go.opentelemetry.io/otel](https://github.com/open-telemetry/opentelemetry-go) from 1.38.0 to 1.39.0.
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.38.0...v1.39.0)
---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel
dependency-version: 1.39.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 6 +++---
api/go.sum | 12 ++++++------
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index a39d2fde..2671ffce 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -46,11 +46,11 @@ require (
github.com/thedevsaddam/govalidator v1.9.10
github.com/uptrace/uptrace-go v1.38.0
github.com/xuri/excelize/v2 v2.10.0
- go.opentelemetry.io/otel v1.38.0
- go.opentelemetry.io/otel/metric v1.38.0
+ go.opentelemetry.io/otel v1.39.0
+ go.opentelemetry.io/otel/metric v1.39.0
go.opentelemetry.io/otel/sdk v1.38.0
go.opentelemetry.io/otel/sdk/metric v1.38.0
- go.opentelemetry.io/otel/trace v1.38.0
+ go.opentelemetry.io/otel/trace v1.39.0
google.golang.org/api v0.258.0
google.golang.org/protobuf v1.36.11
gorm.io/driver/postgres v1.6.0
diff --git a/api/go.sum b/api/go.sum
index 7662bba3..dbab2e66 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -363,8 +363,8 @@ go.opentelemetry.io/contrib/instrumentation/runtime v0.63.0 h1:PeBoRj6af6xMI7qCu
go.opentelemetry.io/contrib/instrumentation/runtime v0.63.0/go.mod h1:ingqBCtMCe8I4vpz/UVzCW6sxoqgZB37nao91mLQ3Bw=
go.opentelemetry.io/contrib/propagators/b3 v1.19.0 h1:ulz44cpm6V5oAeg5Aw9HyqGFMS6XM7untlMEhD7YzzA=
go.opentelemetry.io/contrib/propagators/b3 v1.19.0/go.mod h1:OzCmE2IVS+asTI+odXQstRGVfXQ4bXv9nMBRK0nNyqQ=
-go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8=
-go.opentelemetry.io/otel v1.38.0/go.mod h1:zcmtmQ1+YmQM9wrNsTGV/q/uyusom3P8RxwExxkZhjM=
+go.opentelemetry.io/otel v1.39.0 h1:8yPrr/S0ND9QEfTfdP9V+SiwT4E0G7Y5MO7p85nis48=
+go.opentelemetry.io/otel v1.39.0/go.mod h1:kLlFTywNWrFyEdH0oj2xK0bFYZtHRYUdv1NklR/tgc8=
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.14.0 h1:QQqYw3lkrzwVsoEX0w//EhH/TCnpRdEenKBOOEIMjWc=
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.14.0/go.mod h1:gSVQcr17jk2ig4jqJ2DX30IdWH251JcNAecvrqTxH1s=
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.38.0 h1:Oe2z/BCg5q7k4iXC3cqJxKYg0ieRiOqF0cecFYdPTwk=
@@ -379,8 +379,8 @@ go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0 h1:kJxSDN4SgWWTjG/
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0/go.mod h1:mgIOzS7iZeKJdeB8/NYHrJ48fdGc71Llo5bJ1J4DWUE=
go.opentelemetry.io/otel/log v0.14.0 h1:2rzJ+pOAZ8qmZ3DDHg73NEKzSZkhkGIua9gXtxNGgrM=
go.opentelemetry.io/otel/log v0.14.0/go.mod h1:5jRG92fEAgx0SU/vFPxmJvhIuDU9E1SUnEQrMlJpOno=
-go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgfrA6WpA=
-go.opentelemetry.io/otel/metric v1.38.0/go.mod h1:kB5n/QoRM8YwmUahxvI3bO34eVtQf2i4utNVLr9gEmI=
+go.opentelemetry.io/otel/metric v1.39.0 h1:d1UzonvEZriVfpNKEVmHXbdf909uGTOQjA0HF0Ls5Q0=
+go.opentelemetry.io/otel/metric v1.39.0/go.mod h1:jrZSWL33sD7bBxg1xjrqyDjnuzTUB0x1nBERXd7Ftcs=
go.opentelemetry.io/otel/oteltest v1.0.0-RC3 h1:MjaeegZTaX0Bv9uB9CrdVjOFM/8slRjReoWoV9xDCpY=
go.opentelemetry.io/otel/oteltest v1.0.0-RC3/go.mod h1:xpzajI9JBRr7gX63nO6kAmImmYIAtuQblZ36Z+LfCjE=
go.opentelemetry.io/otel/sdk v1.38.0 h1:l48sr5YbNf2hpCUj/FoGhW9yDkl+Ma+LrVl8qaM5b+E=
@@ -391,8 +391,8 @@ go.opentelemetry.io/otel/sdk/log/logtest v0.14.0 h1:Ijbtz+JKXl8T2MngiwqBlPaHqc4Y
go.opentelemetry.io/otel/sdk/log/logtest v0.14.0/go.mod h1:dCU8aEL6q+L9cYTqcVOk8rM9Tp8WdnHOPLiBgp0SGOA=
go.opentelemetry.io/otel/sdk/metric v1.38.0 h1:aSH66iL0aZqo//xXzQLYozmWrXxyFkBJ6qT5wthqPoM=
go.opentelemetry.io/otel/sdk/metric v1.38.0/go.mod h1:dg9PBnW9XdQ1Hd6ZnRz689CbtrUp0wMMs9iPcgT9EZA=
-go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE=
-go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs=
+go.opentelemetry.io/otel/trace v1.39.0 h1:2d2vfpEDmCJ5zVYz7ijaJdOF59xLomrvj7bjt6/qCJI=
+go.opentelemetry.io/otel/trace v1.39.0/go.mod h1:88w4/PnZSazkGzz/w84VHpQafiU4EtqqlVdxWy+rNOA=
go.opentelemetry.io/proto/otlp v1.8.0 h1:fRAZQDcAFHySxpJ1TwlA1cJ4tvcrw7nXl9xWWC8N5CE=
go.opentelemetry.io/proto/otlp v1.8.0/go.mod h1:tIeYOeNBU4cvmPqpaji1P+KbB4Oloai8wN4rWzRrFF0=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
From 558633c7551673d141714f81de9ce9883017f7e5 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 1 Jan 2026 09:21:44 +0000
Subject: [PATCH 069/215] fix(deps): bump go.opentelemetry.io/otel/trace in
/api
Bumps [go.opentelemetry.io/otel/trace](https://github.com/open-telemetry/opentelemetry-go) from 1.38.0 to 1.39.0.
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.38.0...v1.39.0)
---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel/trace
dependency-version: 1.39.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 6 +++---
api/go.sum | 12 ++++++------
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index a39d2fde..2671ffce 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -46,11 +46,11 @@ require (
github.com/thedevsaddam/govalidator v1.9.10
github.com/uptrace/uptrace-go v1.38.0
github.com/xuri/excelize/v2 v2.10.0
- go.opentelemetry.io/otel v1.38.0
- go.opentelemetry.io/otel/metric v1.38.0
+ go.opentelemetry.io/otel v1.39.0
+ go.opentelemetry.io/otel/metric v1.39.0
go.opentelemetry.io/otel/sdk v1.38.0
go.opentelemetry.io/otel/sdk/metric v1.38.0
- go.opentelemetry.io/otel/trace v1.38.0
+ go.opentelemetry.io/otel/trace v1.39.0
google.golang.org/api v0.258.0
google.golang.org/protobuf v1.36.11
gorm.io/driver/postgres v1.6.0
diff --git a/api/go.sum b/api/go.sum
index 7662bba3..dbab2e66 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -363,8 +363,8 @@ go.opentelemetry.io/contrib/instrumentation/runtime v0.63.0 h1:PeBoRj6af6xMI7qCu
go.opentelemetry.io/contrib/instrumentation/runtime v0.63.0/go.mod h1:ingqBCtMCe8I4vpz/UVzCW6sxoqgZB37nao91mLQ3Bw=
go.opentelemetry.io/contrib/propagators/b3 v1.19.0 h1:ulz44cpm6V5oAeg5Aw9HyqGFMS6XM7untlMEhD7YzzA=
go.opentelemetry.io/contrib/propagators/b3 v1.19.0/go.mod h1:OzCmE2IVS+asTI+odXQstRGVfXQ4bXv9nMBRK0nNyqQ=
-go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8=
-go.opentelemetry.io/otel v1.38.0/go.mod h1:zcmtmQ1+YmQM9wrNsTGV/q/uyusom3P8RxwExxkZhjM=
+go.opentelemetry.io/otel v1.39.0 h1:8yPrr/S0ND9QEfTfdP9V+SiwT4E0G7Y5MO7p85nis48=
+go.opentelemetry.io/otel v1.39.0/go.mod h1:kLlFTywNWrFyEdH0oj2xK0bFYZtHRYUdv1NklR/tgc8=
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.14.0 h1:QQqYw3lkrzwVsoEX0w//EhH/TCnpRdEenKBOOEIMjWc=
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.14.0/go.mod h1:gSVQcr17jk2ig4jqJ2DX30IdWH251JcNAecvrqTxH1s=
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.38.0 h1:Oe2z/BCg5q7k4iXC3cqJxKYg0ieRiOqF0cecFYdPTwk=
@@ -379,8 +379,8 @@ go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0 h1:kJxSDN4SgWWTjG/
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0/go.mod h1:mgIOzS7iZeKJdeB8/NYHrJ48fdGc71Llo5bJ1J4DWUE=
go.opentelemetry.io/otel/log v0.14.0 h1:2rzJ+pOAZ8qmZ3DDHg73NEKzSZkhkGIua9gXtxNGgrM=
go.opentelemetry.io/otel/log v0.14.0/go.mod h1:5jRG92fEAgx0SU/vFPxmJvhIuDU9E1SUnEQrMlJpOno=
-go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgfrA6WpA=
-go.opentelemetry.io/otel/metric v1.38.0/go.mod h1:kB5n/QoRM8YwmUahxvI3bO34eVtQf2i4utNVLr9gEmI=
+go.opentelemetry.io/otel/metric v1.39.0 h1:d1UzonvEZriVfpNKEVmHXbdf909uGTOQjA0HF0Ls5Q0=
+go.opentelemetry.io/otel/metric v1.39.0/go.mod h1:jrZSWL33sD7bBxg1xjrqyDjnuzTUB0x1nBERXd7Ftcs=
go.opentelemetry.io/otel/oteltest v1.0.0-RC3 h1:MjaeegZTaX0Bv9uB9CrdVjOFM/8slRjReoWoV9xDCpY=
go.opentelemetry.io/otel/oteltest v1.0.0-RC3/go.mod h1:xpzajI9JBRr7gX63nO6kAmImmYIAtuQblZ36Z+LfCjE=
go.opentelemetry.io/otel/sdk v1.38.0 h1:l48sr5YbNf2hpCUj/FoGhW9yDkl+Ma+LrVl8qaM5b+E=
@@ -391,8 +391,8 @@ go.opentelemetry.io/otel/sdk/log/logtest v0.14.0 h1:Ijbtz+JKXl8T2MngiwqBlPaHqc4Y
go.opentelemetry.io/otel/sdk/log/logtest v0.14.0/go.mod h1:dCU8aEL6q+L9cYTqcVOk8rM9Tp8WdnHOPLiBgp0SGOA=
go.opentelemetry.io/otel/sdk/metric v1.38.0 h1:aSH66iL0aZqo//xXzQLYozmWrXxyFkBJ6qT5wthqPoM=
go.opentelemetry.io/otel/sdk/metric v1.38.0/go.mod h1:dg9PBnW9XdQ1Hd6ZnRz689CbtrUp0wMMs9iPcgT9EZA=
-go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE=
-go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs=
+go.opentelemetry.io/otel/trace v1.39.0 h1:2d2vfpEDmCJ5zVYz7ijaJdOF59xLomrvj7bjt6/qCJI=
+go.opentelemetry.io/otel/trace v1.39.0/go.mod h1:88w4/PnZSazkGzz/w84VHpQafiU4EtqqlVdxWy+rNOA=
go.opentelemetry.io/proto/otlp v1.8.0 h1:fRAZQDcAFHySxpJ1TwlA1cJ4tvcrw7nXl9xWWC8N5CE=
go.opentelemetry.io/proto/otlp v1.8.0/go.mod h1:tIeYOeNBU4cvmPqpaji1P+KbB4Oloai8wN4rWzRrFF0=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
From 62b4a024d1cdd0395b4e12931d5f15d05f5459eb Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 1 Jan 2026 09:23:06 +0000
Subject: [PATCH 070/215] fix(deps): bump webpack from 5.102.0 to 5.104.1 in
/web
Bumps [webpack](https://github.com/webpack/webpack) from 5.102.0 to 5.104.1.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Changelog](https://github.com/webpack/webpack/blob/main/CHANGELOG.md)
- [Commits](https://github.com/webpack/webpack/compare/v5.102.0...v5.104.1)
---
updated-dependencies:
- dependency-name: webpack
dependency-version: 5.104.1
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
web/package.json | 2 +-
web/pnpm-lock.yaml | 428 ++++++++++++++++++++++++---------------------
2 files changed, 232 insertions(+), 198 deletions(-)
diff --git a/web/package.json b/web/package.json
index 046b73de..c65c2ab7 100644
--- a/web/package.json
+++ b/web/package.json
@@ -51,7 +51,7 @@
"vue-template-compiler": "^2.7.16",
"vuetify": "^2.7.2",
"vuex": "^3.6.2",
- "webpack": "^5.102.0"
+ "webpack": "^5.104.1"
},
"devDependencies": {
"@babel/eslint-parser": "^7.27.5",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index 7344ee9f..5cbbe2fe 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -96,15 +96,15 @@ importers:
specifier: ^3.6.2
version: 3.6.2(vue@2.7.16)
webpack:
- specifier: ^5.102.0
- version: 5.102.0
+ specifier: ^5.104.1
+ version: 5.104.1
devDependencies:
'@babel/eslint-parser':
specifier: ^7.27.5
version: 7.27.5(@babel/core@7.28.4)(eslint@8.57.1)
'@commitlint/cli':
specifier: ^20.1.0
- version: 20.1.0(@types/node@24.6.2)(typescript@4.9.5)
+ version: 20.1.0(@types/node@25.0.3)(typescript@4.9.5)
'@commitlint/config-conventional':
specifier: ^19.8.0
version: 19.8.0
@@ -113,19 +113,19 @@ importers:
version: 2.18.1
'@nuxt/typescript-build':
specifier: ^3.0.2
- version: 3.0.2(@nuxt/types@2.18.1)(eslint@8.57.1)(typescript@4.9.5)(vue-template-compiler@2.7.16)(webpack@5.102.0)
+ version: 3.0.2(@nuxt/types@2.18.1)(eslint@8.57.1)(typescript@4.9.5)(vue-template-compiler@2.7.16)(webpack@5.104.1)
'@nuxtjs/eslint-config-typescript':
specifier: ^12.1.0
version: 12.1.0(eslint@8.57.1)(typescript@4.9.5)
'@nuxtjs/eslint-module':
specifier: ^4.1.0
- version: 4.1.0(eslint@8.57.1)(rollup@3.29.5)(vite@4.5.3(@types/node@24.6.2)(sass@1.32.13)(terser@5.44.0))(webpack@5.102.0)
+ version: 4.1.0(eslint@8.57.1)(rollup@3.29.5)(vite@4.5.3(@types/node@25.0.3)(sass@1.32.13)(terser@5.44.1))(webpack@5.104.1)
'@nuxtjs/stylelint-module':
specifier: ^5.2.0
- version: 5.2.0(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@24.6.2)(sass@1.32.13)(terser@5.44.0))(webpack@5.102.0)
+ version: 5.2.0(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@25.0.3)(sass@1.32.13)(terser@5.44.1))(webpack@5.104.1)
'@nuxtjs/vuetify':
specifier: ^1.12.3
- version: 1.12.3(vue@2.7.16)(webpack@5.102.0)
+ version: 1.12.3(vue@2.7.16)(webpack@5.104.1)
'@types/qrcode':
specifier: ^1.5.5
version: 1.5.5
@@ -158,7 +158,7 @@ importers:
version: 11.11.1
jest:
specifier: ^30.2.0
- version: 30.2.0(@types/node@24.6.2)
+ version: 30.2.0(@types/node@25.0.3)
lint-staged:
specifier: ^16.1.4
version: 16.1.4
@@ -185,7 +185,7 @@ importers:
version: 34.0.0(stylelint@15.11.0(typescript@4.9.5))
ts-jest:
specifier: ^29.4.6
- version: 29.4.6(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.4))(jest-util@30.2.0)(jest@30.2.0(@types/node@24.6.2))(typescript@4.9.5)
+ version: 29.4.6(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.4))(jest-util@30.2.0)(jest@30.2.0(@types/node@25.0.3))(typescript@4.9.5)
vue-client-only:
specifier: ^2.1.0
version: 2.1.0
@@ -2360,6 +2360,9 @@ packages:
'@types/node@24.6.2':
resolution: {integrity: sha512-d2L25Y4j+W3ZlNAeMKcy7yDsK425ibcAOO2t7aPTz6gNMH0z2GThtwENCDc0d/Pw9wgyRqE5Px1wkV7naz8ang==}
+ '@types/node@25.0.3':
+ resolution: {integrity: sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==}
+
'@types/normalize-package-data@2.4.2':
resolution: {integrity: sha512-lqa4UEhhv/2sjjIQgjX8B+RBjj47eo0mzGasklVJ78UKGQY1r0VpB9XHDaZZO9qzEFDdy4MrXLuEaSmPrPSe/A==}
@@ -3116,12 +3119,8 @@ packages:
resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==}
engines: {node: '>=0.10.0'}
- baseline-browser-mapping@2.8.10:
- resolution: {integrity: sha512-uLfgBi+7IBNay8ECBO2mVMGZAc1VgZWEChxm4lv+TobGdG82LnXMjuNGo/BSSZZL4UmkWhxEHP2f5ziLNwGWMA==}
- hasBin: true
-
- baseline-browser-mapping@2.8.9:
- resolution: {integrity: sha512-hY/u2lxLrbecMEWSB0IpGzGyDyeoMFQhCvZd2jGFSE5I17Fh01sYUBPCJtkWERw7zrac9+cIghxm/ytJa2X8iA==}
+ baseline-browser-mapping@2.9.11:
+ resolution: {integrity: sha512-Sg0xJUNDU1sJNGdfGWhVHX0kkZ+HWcvmVymJbj6NSgZZmW/8S9Y2HQ5euytnIgakgxN6papOAWiwDo1ctFDcoQ==}
hasBin: true
big.js@5.2.2:
@@ -3200,13 +3199,8 @@ packages:
browserify-zlib@0.2.0:
resolution: {integrity: sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==}
- browserslist@4.26.2:
- resolution: {integrity: sha512-ECFzp6uFOSB+dcZ5BK/IBaGWssbSYBHvuMeMt3MMFyhI0Z8SqGgEkBLARgpRH3hutIgPVsALcMwbDrJqPxQ65A==}
- engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
- hasBin: true
-
- browserslist@4.26.3:
- resolution: {integrity: sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==}
+ browserslist@4.28.1:
+ resolution: {integrity: sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==}
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
@@ -3309,8 +3303,8 @@ packages:
caniuse-lite@1.0.30001639:
resolution: {integrity: sha512-eFHflNTBIlFwP2AIKaYuBQN/apnUoKNhBdza8ZnW/h2di4LCZ4xFqYlxUxo+LQ76KFI1PGcC1QDxMbxTZpSCAg==}
- caniuse-lite@1.0.30001746:
- resolution: {integrity: sha512-eA7Ys/DGw+pnkWWSE/id29f2IcPHVoE8wxtvE5JdvD2V28VTDPy1yEeo11Guz0sJ4ZeGRcm3uaTcAqK1LXaphA==}
+ caniuse-lite@1.0.30001762:
+ resolution: {integrity: sha512-PxZwGNvH7Ak8WX5iXzoK1KPZttBXNPuaOvI2ZYU7NrlM+d9Ov+TUvlLOBNGzVXAntMSMMlJPd+jY6ovrVjSmUw==}
chalk@1.1.3:
resolution: {integrity: sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==}
@@ -4242,11 +4236,8 @@ packages:
engines: {node: '>=0.10.0'}
hasBin: true
- electron-to-chromium@1.5.227:
- resolution: {integrity: sha512-ITxuoPfJu3lsNWUi2lBM2PaBPYgH3uqmxut5vmBxgYvyI4AlJ6P3Cai1O76mOrkJCBzq0IxWg/NtqOrpu/0gKA==}
-
- electron-to-chromium@1.5.228:
- resolution: {integrity: sha512-nxkiyuqAn4MJ1QbobwqJILiDtu/jk14hEAWaMiJmNPh1Z+jqoFlBFZjdXwLWGeVSeu9hGLg6+2G9yJaW8rBIFA==}
+ electron-to-chromium@1.5.267:
+ resolution: {integrity: sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==}
elliptic@6.6.0:
resolution: {integrity: sha512-dpwoQcLc/2WLQvJvLRHKZ+f9FgOdjnq11rurqwekGQygGPsYSK29OMMD2WalatiqQ+XGFDglTNixpPfI+lpaAA==}
@@ -4283,8 +4274,8 @@ packages:
resolution: {integrity: sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==}
engines: {node: '>=6.9.0'}
- enhanced-resolve@5.18.3:
- resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==}
+ enhanced-resolve@5.18.4:
+ resolution: {integrity: sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==}
engines: {node: '>=10.13.0'}
ent@2.2.0:
@@ -4334,8 +4325,8 @@ packages:
resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
engines: {node: '>= 0.4'}
- es-module-lexer@1.7.0:
- resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==}
+ es-module-lexer@2.0.0:
+ resolution: {integrity: sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==}
es-object-atoms@1.1.1:
resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==}
@@ -5964,8 +5955,8 @@ packages:
resolution: {integrity: sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==}
engines: {node: '>=4.3.0 <5.0.0 || >=5.10'}
- loader-runner@4.3.0:
- resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==}
+ loader-runner@4.3.1:
+ resolution: {integrity: sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==}
engines: {node: '>=6.11.5'}
loader-utils@1.4.2:
@@ -6464,8 +6455,8 @@ packages:
resolution: {integrity: sha512-UdS4swXs85fCGWWf6t6DMGgpN/vnlKeSGEQ7hJcrs7PBFoxoKLmibc3QRb7fwiYsjdL7PX8iI/TMSlZ90dgHhQ==}
engines: {node: '>=0.10.0'}
- node-releases@2.0.21:
- resolution: {integrity: sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==}
+ node-releases@2.0.27:
+ resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==}
node-res@5.0.1:
resolution: {integrity: sha512-YOleO9c7MAqoHC+Ccu2vzvV1fL6Ku49gShq3PIMKWHRgrMSih3XcwL05NbLBi6oU2J471gTBfdpVVxwT6Pfhxg==}
@@ -7841,8 +7832,8 @@ packages:
resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==}
engines: {node: '>= 10.13.0'}
- schema-utils@4.3.2:
- resolution: {integrity: sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==}
+ schema-utils@4.3.3:
+ resolution: {integrity: sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==}
engines: {node: '>= 10.13.0'}
scule@0.2.1:
@@ -8332,8 +8323,8 @@ packages:
resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==}
engines: {node: '>=6'}
- tapable@2.2.3:
- resolution: {integrity: sha512-ZL6DDuAlRlLGghwcfmSn9sK3Hr6ArtyudlSAiCqQ6IfE+b+HHbydbYDIG15IfS5do+7XQQBdBiubF/cV2dnDzg==}
+ tapable@2.3.0:
+ resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==}
engines: {node: '>=6'}
tar@6.2.0:
@@ -8356,8 +8347,8 @@ packages:
peerDependencies:
webpack: ^4.0.0 || ^5.0.0
- terser-webpack-plugin@5.3.14:
- resolution: {integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==}
+ terser-webpack-plugin@5.3.16:
+ resolution: {integrity: sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==}
engines: {node: '>= 10.13.0'}
peerDependencies:
'@swc/core': '*'
@@ -8377,8 +8368,8 @@ packages:
engines: {node: '>=6.0.0'}
hasBin: true
- terser@5.44.0:
- resolution: {integrity: sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==}
+ terser@5.44.1:
+ resolution: {integrity: sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==}
engines: {node: '>=10'}
hasBin: true
@@ -8643,6 +8634,9 @@ packages:
undici-types@7.13.0:
resolution: {integrity: sha512-Ov2Rr9Sx+fRgagJ5AX0qvItZG/JKKoBRAVITs1zk7IqZGTJUwgUr7qoYBpWwakpWilTZFM98rG/AFRocu10iIQ==}
+ undici-types@7.16.0:
+ resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==}
+
undici@6.19.7:
resolution: {integrity: sha512-HR3W/bMGPSr90i8AAp2C4DM3wChFdJPLrWYpIS++LxS8K+W535qftjt+4MyjNYHeWabMj1nvtmLIi7l++iq91A==}
engines: {node: '>=18.17'}
@@ -8732,8 +8726,8 @@ packages:
resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==}
engines: {node: '>=4'}
- update-browserslist-db@1.1.3:
- resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==}
+ update-browserslist-db@1.2.3:
+ resolution: {integrity: sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==}
hasBin: true
peerDependencies:
browserslist: '>= 4.21.0'
@@ -8982,8 +8976,8 @@ packages:
watchpack@1.7.5:
resolution: {integrity: sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==}
- watchpack@2.4.4:
- resolution: {integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==}
+ watchpack@2.5.0:
+ resolution: {integrity: sha512-e6vZvY6xboSwLz2GD36c16+O/2Z6fKvIf4pOXptw2rY9MVwE/TXc6RGqxD3I3x0a28lwBY7DE+76uTPSsBrrCA==}
engines: {node: '>=10.13.0'}
webidl-conversions@3.0.1:
@@ -9037,8 +9031,8 @@ packages:
webpack-command:
optional: true
- webpack@5.102.0:
- resolution: {integrity: sha512-hUtqAR3ZLVEYDEABdBioQCIqSoguHbFn1K7WlPPWSuXmx0031BD73PSE35jKyftdSh4YLDoQNgK4pqBt5Q82MA==}
+ webpack@5.104.1:
+ resolution: {integrity: sha512-Qphch25abbMNtekmEGJmeRUhLDbe+QfiWTiqpKYkpCOWY64v9eyl+KRRLmqOFA2AvKPpc9DC6+u2n76tQLBoaA==}
engines: {node: '>=10.13.0'}
hasBin: true
peerDependencies:
@@ -9370,7 +9364,7 @@ snapshots:
dependencies:
'@babel/compat-data': 7.24.7
'@babel/helper-validator-option': 7.24.7
- browserslist: 4.26.2
+ browserslist: 4.28.1
lru-cache: 5.1.1
semver: 6.3.1
@@ -9378,7 +9372,7 @@ snapshots:
dependencies:
'@babel/compat-data': 7.28.4
'@babel/helper-validator-option': 7.27.1
- browserslist: 4.26.3
+ browserslist: 4.28.1
lru-cache: 5.1.1
semver: 6.3.1
@@ -10378,11 +10372,11 @@ snapshots:
'@bcoe/v8-coverage@0.2.3': {}
- '@commitlint/cli@20.1.0(@types/node@24.6.2)(typescript@4.9.5)':
+ '@commitlint/cli@20.1.0(@types/node@25.0.3)(typescript@4.9.5)':
dependencies:
'@commitlint/format': 20.0.0
'@commitlint/lint': 20.0.0
- '@commitlint/load': 20.1.0(@types/node@24.6.2)(typescript@4.9.5)
+ '@commitlint/load': 20.1.0(@types/node@25.0.3)(typescript@4.9.5)
'@commitlint/read': 20.0.0
'@commitlint/types': 20.0.0
tinyexec: 1.0.1
@@ -10429,7 +10423,7 @@ snapshots:
'@commitlint/rules': 20.0.0
'@commitlint/types': 20.0.0
- '@commitlint/load@20.1.0(@types/node@24.6.2)(typescript@4.9.5)':
+ '@commitlint/load@20.1.0(@types/node@25.0.3)(typescript@4.9.5)':
dependencies:
'@commitlint/config-validator': 20.0.0
'@commitlint/execute-rule': 20.0.0
@@ -10437,7 +10431,7 @@ snapshots:
'@commitlint/types': 20.0.0
chalk: 5.6.2
cosmiconfig: 9.0.0(typescript@4.9.5)
- cosmiconfig-typescript-loader: 6.1.0(@types/node@24.6.2)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5)
+ cosmiconfig-typescript-loader: 6.1.0(@types/node@25.0.3)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5)
lodash.isplainobject: 4.0.6
lodash.merge: 4.6.2
lodash.uniq: 4.5.0
@@ -11315,7 +11309,7 @@ snapshots:
'@grpc/grpc-js@1.6.12':
dependencies:
'@grpc/proto-loader': 0.7.10
- '@types/node': 24.6.2
+ '@types/node': 25.0.3
optional: true
'@grpc/grpc-js@1.9.15':
@@ -11559,7 +11553,7 @@ snapshots:
'@jest/schemas': 29.6.3
'@types/istanbul-lib-coverage': 2.0.6
'@types/istanbul-reports': 3.0.4
- '@types/node': 24.6.2
+ '@types/node': 25.0.3
'@types/yargs': 17.0.33
chalk: 4.1.2
@@ -12023,13 +12017,13 @@ snapshots:
'@types/webpack-bundle-analyzer': 3.9.5
'@types/webpack-hot-middleware': 2.25.5
- '@nuxt/typescript-build@3.0.2(@nuxt/types@2.18.1)(eslint@8.57.1)(typescript@4.9.5)(vue-template-compiler@2.7.16)(webpack@5.102.0)':
+ '@nuxt/typescript-build@3.0.2(@nuxt/types@2.18.1)(eslint@8.57.1)(typescript@4.9.5)(vue-template-compiler@2.7.16)(webpack@5.104.1)':
dependencies:
'@nuxt/types': 2.18.1
consola: 3.2.3
defu: 6.1.2
- fork-ts-checker-webpack-plugin: 6.5.3(eslint@8.57.1)(typescript@4.9.5)(vue-template-compiler@2.7.16)(webpack@5.102.0)
- ts-loader: 8.4.0(typescript@4.9.5)(webpack@5.102.0)
+ fork-ts-checker-webpack-plugin: 6.5.3(eslint@8.57.1)(typescript@4.9.5)(vue-template-compiler@2.7.16)(webpack@5.104.1)
+ ts-loader: 8.4.0(typescript@4.9.5)(webpack@5.104.1)
typescript: 4.9.5
transitivePeerDependencies:
- eslint
@@ -12090,11 +12084,11 @@ snapshots:
cache-loader: 4.1.0(webpack@4.47.0)
caniuse-lite: 1.0.30001639
consola: 3.2.3
- css-loader: 5.2.7(webpack@5.102.0)
+ css-loader: 5.2.7(webpack@4.47.0)
cssnano: 7.0.3(postcss@8.4.39)
eventsource-polyfill: 0.9.6
extract-css-chunks-webpack-plugin: 4.10.0(webpack@4.47.0)
- file-loader: 6.2.0(webpack@5.102.0)
+ file-loader: 6.2.0(webpack@4.47.0)
glob: 8.1.0
hard-source-webpack-plugin: 0.13.1(webpack@4.47.0)
hash-sum: 2.0.0
@@ -12119,11 +12113,11 @@ snapshots:
time-fix-plugin: 2.0.7(webpack@4.47.0)
ufo: 1.6.1
upath: 2.0.1
- url-loader: 4.1.1(file-loader@6.2.0(webpack@4.47.0))(webpack@4.47.0)
- vue-loader: 15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@4.47.0))(ejs@3.1.10)(handlebars@4.7.8)(lodash@4.17.21)(prettier@3.6.2)(vue-template-compiler@2.7.16)(webpack@4.47.0)
+ url-loader: 4.1.1(file-loader@6.2.0(webpack@5.104.1))(webpack@4.47.0)
+ vue-loader: 15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@5.104.1))(ejs@3.1.10)(handlebars@4.7.8)(lodash@4.17.21)(prettier@3.6.2)(vue-template-compiler@2.7.16)(webpack@4.47.0)
vue-style-loader: 4.1.3
vue-template-compiler: 2.7.16
- watchpack: 2.4.4
+ watchpack: 2.5.0
webpack: 4.47.0
webpack-bundle-analyzer: 4.10.2
webpack-dev-middleware: 5.3.4(webpack@4.47.0)
@@ -12231,14 +12225,14 @@ snapshots:
- eslint-import-resolver-webpack
- supports-color
- '@nuxtjs/eslint-module@4.1.0(eslint@8.57.1)(rollup@3.29.5)(vite@4.5.3(@types/node@24.6.2)(sass@1.32.13)(terser@5.44.0))(webpack@5.102.0)':
+ '@nuxtjs/eslint-module@4.1.0(eslint@8.57.1)(rollup@3.29.5)(vite@4.5.3(@types/node@25.0.3)(sass@1.32.13)(terser@5.44.1))(webpack@5.104.1)':
dependencies:
'@nuxt/kit': 3.7.4(rollup@3.29.5)
chokidar: 3.5.3
eslint: 8.57.1
- eslint-webpack-plugin: 4.0.1(eslint@8.57.1)(webpack@5.102.0)
+ eslint-webpack-plugin: 4.0.1(eslint@8.57.1)(webpack@5.104.1)
pathe: 1.1.1
- vite-plugin-eslint: 1.8.1(eslint@8.57.1)(vite@4.5.3(@types/node@24.6.2)(sass@1.32.13)(terser@5.44.0))
+ vite-plugin-eslint: 1.8.1(eslint@8.57.1)(vite@4.5.3(@types/node@25.0.3)(sass@1.32.13)(terser@5.44.1))
transitivePeerDependencies:
- rollup
- supports-color
@@ -12269,14 +12263,14 @@ snapshots:
minimatch: 3.1.2
sitemap: 4.1.1
- '@nuxtjs/stylelint-module@5.2.0(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@24.6.2)(sass@1.32.13)(terser@5.44.0))(webpack@5.102.0)':
+ '@nuxtjs/stylelint-module@5.2.0(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@25.0.3)(sass@1.32.13)(terser@5.44.1))(webpack@5.104.1)':
dependencies:
'@nuxt/kit': 3.12.2(rollup@3.29.5)
chokidar: 3.6.0
pathe: 1.1.2
stylelint: 15.11.0(typescript@4.9.5)
- stylelint-webpack-plugin: 5.0.1(stylelint@15.11.0(typescript@4.9.5))(webpack@5.102.0)
- vite-plugin-stylelint: 5.3.1(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@24.6.2)(sass@1.32.13)(terser@5.44.0))
+ stylelint-webpack-plugin: 5.0.1(stylelint@15.11.0(typescript@4.9.5))(webpack@5.104.1)
+ vite-plugin-stylelint: 5.3.1(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@25.0.3)(sass@1.32.13)(terser@5.44.1))
transitivePeerDependencies:
- '@types/stylelint'
- magicast
@@ -12286,13 +12280,13 @@ snapshots:
- vite
- webpack
- '@nuxtjs/vuetify@1.12.3(vue@2.7.16)(webpack@5.102.0)':
+ '@nuxtjs/vuetify@1.12.3(vue@2.7.16)(webpack@5.104.1)':
dependencies:
deepmerge: 4.3.1
sass: 1.32.13
- sass-loader: 10.4.1(sass@1.32.13)(webpack@5.102.0)
+ sass-loader: 10.4.1(sass@1.32.13)(webpack@5.104.1)
vuetify: 2.7.2(vue@2.7.16)
- vuetify-loader: 1.9.2(vue@2.7.16)(vuetify@2.7.2(vue@2.7.16))(webpack@5.102.0)
+ vuetify-loader: 1.9.2(vue@2.7.16)(vuetify@2.7.2(vue@2.7.16))(webpack@5.104.1)
transitivePeerDependencies:
- fibers
- gm
@@ -12412,7 +12406,7 @@ snapshots:
'@types/body-parser@1.19.3':
dependencies:
'@types/connect': 3.4.38
- '@types/node': 24.6.2
+ '@types/node': 16.18.55
'@types/compression@1.7.5':
dependencies:
@@ -12449,7 +12443,7 @@ snapshots:
'@types/express-serve-static-core@4.17.37':
dependencies:
- '@types/node': 24.6.2
+ '@types/node': 16.18.55
'@types/qs': 6.9.8
'@types/range-parser': 1.2.5
'@types/send': 0.17.2
@@ -12515,6 +12509,10 @@ snapshots:
dependencies:
undici-types: 7.13.0
+ '@types/node@25.0.3':
+ dependencies:
+ undici-types: 7.16.0
+
'@types/normalize-package-data@2.4.2': {}
'@types/optimize-css-assets-webpack-plugin@5.0.8':
@@ -13324,8 +13322,8 @@ snapshots:
autoprefixer@10.4.19(postcss@8.4.39):
dependencies:
- browserslist: 4.26.2
- caniuse-lite: 1.0.30001746
+ browserslist: 4.28.1
+ caniuse-lite: 1.0.30001762
fraction.js: 4.3.7
normalize-range: 0.1.2
picocolors: 1.1.1
@@ -13509,9 +13507,7 @@ snapshots:
mixin-deep: 1.3.2
pascalcase: 0.1.1
- baseline-browser-mapping@2.8.10: {}
-
- baseline-browser-mapping@2.8.9: {}
+ baseline-browser-mapping@2.9.11: {}
big.js@5.2.2: {}
@@ -13627,21 +13623,13 @@ snapshots:
dependencies:
pako: 1.0.11
- browserslist@4.26.2:
+ browserslist@4.28.1:
dependencies:
- baseline-browser-mapping: 2.8.9
- caniuse-lite: 1.0.30001746
- electron-to-chromium: 1.5.227
- node-releases: 2.0.21
- update-browserslist-db: 1.1.3(browserslist@4.26.2)
-
- browserslist@4.26.3:
- dependencies:
- baseline-browser-mapping: 2.8.10
- caniuse-lite: 1.0.30001746
- electron-to-chromium: 1.5.228
- node-releases: 2.0.21
- update-browserslist-db: 1.1.3(browserslist@4.26.3)
+ baseline-browser-mapping: 2.9.11
+ caniuse-lite: 1.0.30001762
+ electron-to-chromium: 1.5.267
+ node-releases: 2.0.27
+ update-browserslist-db: 1.2.3(browserslist@4.28.1)
bs-logger@0.2.6:
dependencies:
@@ -13802,14 +13790,14 @@ snapshots:
caniuse-api@3.0.0:
dependencies:
- browserslist: 4.26.3
- caniuse-lite: 1.0.30001746
+ browserslist: 4.28.1
+ caniuse-lite: 1.0.30001762
lodash.memoize: 4.1.2
lodash.uniq: 4.5.0
caniuse-lite@1.0.30001639: {}
- caniuse-lite@1.0.30001746: {}
+ caniuse-lite@1.0.30001762: {}
chalk@1.1.3:
dependencies:
@@ -14130,7 +14118,7 @@ snapshots:
core-js-compat@3.37.1:
dependencies:
- browserslist: 4.26.2
+ browserslist: 4.28.1
core-js@2.6.12: {}
@@ -14138,9 +14126,9 @@ snapshots:
core-util-is@1.0.3: {}
- cosmiconfig-typescript-loader@6.1.0(@types/node@24.6.2)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5):
+ cosmiconfig-typescript-loader@6.1.0(@types/node@25.0.3)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5):
dependencies:
- '@types/node': 24.6.2
+ '@types/node': 25.0.3
cosmiconfig: 9.0.0(typescript@4.9.5)
jiti: 2.6.1
typescript: 4.9.5
@@ -14250,7 +14238,7 @@ snapshots:
postcss-selector-parser: 6.1.2
postcss-value-parser: 4.2.0
- css-loader@5.2.7(webpack@5.102.0):
+ css-loader@5.2.7(webpack@4.47.0):
dependencies:
icss-utils: 5.1.0(postcss@8.4.39)
loader-utils: 2.0.4
@@ -14262,7 +14250,21 @@ snapshots:
postcss-value-parser: 4.2.0
schema-utils: 3.3.0
semver: 7.7.3
- webpack: 5.102.0
+ webpack: 4.47.0
+
+ css-loader@5.2.7(webpack@5.104.1):
+ dependencies:
+ icss-utils: 5.1.0(postcss@8.4.39)
+ loader-utils: 2.0.4
+ postcss: 8.4.39
+ postcss-modules-extract-imports: 3.0.0(postcss@8.4.39)
+ postcss-modules-local-by-default: 4.0.3(postcss@8.4.39)
+ postcss-modules-scope: 3.0.0(postcss@8.4.39)
+ postcss-modules-values: 4.0.0(postcss@8.4.39)
+ postcss-value-parser: 4.2.0
+ schema-utils: 3.3.0
+ semver: 7.7.3
+ webpack: 5.104.1
css-prefers-color-scheme@9.0.1(postcss@8.4.39):
dependencies:
@@ -14347,7 +14349,7 @@ snapshots:
cssnano-preset-default@7.0.3(postcss@8.4.39):
dependencies:
- browserslist: 4.26.2
+ browserslist: 4.28.1
css-declaration-sorter: 7.2.0(postcss@8.4.39)
cssnano-utils: 5.0.0(postcss@8.4.39)
postcss: 8.4.39
@@ -14661,9 +14663,7 @@ snapshots:
jake: 10.9.4
optional: true
- electron-to-chromium@1.5.227: {}
-
- electron-to-chromium@1.5.228: {}
+ electron-to-chromium@1.5.267: {}
elliptic@6.6.0:
dependencies:
@@ -14699,10 +14699,10 @@ snapshots:
memory-fs: 0.5.0
tapable: 1.1.3
- enhanced-resolve@5.18.3:
+ enhanced-resolve@5.18.4:
dependencies:
graceful-fs: 4.2.11
- tapable: 2.2.3
+ tapable: 2.3.0
ent@2.2.0:
optional: true
@@ -14777,7 +14777,7 @@ snapshots:
es-errors@1.3.0: {}
- es-module-lexer@1.7.0: {}
+ es-module-lexer@2.0.0: {}
es-object-atoms@1.1.1:
dependencies:
@@ -14859,7 +14859,7 @@ snapshots:
eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.7.3(eslint@8.57.1)(typescript@4.9.5))(eslint-plugin-import@2.28.1)(eslint@8.57.1):
dependencies:
debug: 4.4.1
- enhanced-resolve: 5.18.3
+ enhanced-resolve: 5.18.4
eslint: 8.57.1
eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.7.3(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.1)
eslint-plugin-import: 2.28.1(@typescript-eslint/parser@6.7.3(eslint@8.57.1)(typescript@4.9.5))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.1)
@@ -15020,15 +15020,15 @@ snapshots:
eslint-visitor-keys@3.4.3: {}
- eslint-webpack-plugin@4.0.1(eslint@8.57.1)(webpack@5.102.0):
+ eslint-webpack-plugin@4.0.1(eslint@8.57.1)(webpack@5.104.1):
dependencies:
'@types/eslint': 8.44.3
eslint: 8.57.1
jest-worker: 29.7.0
micromatch: 4.0.8
normalize-path: 3.0.0
- schema-utils: 4.3.2
- webpack: 5.102.0
+ schema-utils: 4.3.3
+ webpack: 5.104.1
eslint@8.57.1:
dependencies:
@@ -15268,11 +15268,17 @@ snapshots:
dependencies:
flat-cache: 3.1.1
- file-loader@6.2.0(webpack@5.102.0):
+ file-loader@6.2.0(webpack@4.47.0):
+ dependencies:
+ loader-utils: 2.0.4
+ schema-utils: 3.3.0
+ webpack: 4.47.0
+
+ file-loader@6.2.0(webpack@5.104.1):
dependencies:
loader-utils: 2.0.4
schema-utils: 3.3.0
- webpack: 5.102.0
+ webpack: 5.104.1
file-uri-to-path@1.0.0: {}
@@ -15431,7 +15437,7 @@ snapshots:
cross-spawn: 7.0.6
signal-exit: 4.1.0
- fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.1)(typescript@4.9.5)(vue-template-compiler@2.7.16)(webpack@5.102.0):
+ fork-ts-checker-webpack-plugin@6.5.3(eslint@8.57.1)(typescript@4.9.5)(vue-template-compiler@2.7.16)(webpack@5.104.1):
dependencies:
'@babel/code-frame': 7.22.13
'@types/json-schema': 7.0.15
@@ -15447,7 +15453,7 @@ snapshots:
semver: 7.7.3
tapable: 1.1.3
typescript: 4.9.5
- webpack: 5.102.0
+ webpack: 5.104.1
optionalDependencies:
eslint: 8.57.1
vue-template-compiler: 2.7.16
@@ -15951,7 +15957,7 @@ snapshots:
entities: 4.5.0
param-case: 3.0.4
relateurl: 0.2.7
- terser: 5.44.0
+ terser: 5.44.1
html-tags@2.0.0: {}
@@ -16384,7 +16390,7 @@ snapshots:
- babel-plugin-macros
- supports-color
- jest-cli@30.2.0(@types/node@24.6.2):
+ jest-cli@30.2.0(@types/node@25.0.3):
dependencies:
'@jest/core': 30.2.0
'@jest/test-result': 30.2.0
@@ -16392,7 +16398,7 @@ snapshots:
chalk: 4.1.2
exit-x: 0.2.2
import-local: 3.2.0
- jest-config: 30.2.0(@types/node@24.6.2)
+ jest-config: 30.2.0(@types/node@25.0.3)
jest-util: 30.2.0
jest-validate: 30.2.0
yargs: 17.7.2
@@ -16435,6 +16441,38 @@ snapshots:
- babel-plugin-macros
- supports-color
+ jest-config@30.2.0(@types/node@25.0.3):
+ dependencies:
+ '@babel/core': 7.28.4
+ '@jest/get-type': 30.1.0
+ '@jest/pattern': 30.0.1
+ '@jest/test-sequencer': 30.2.0
+ '@jest/types': 30.2.0
+ babel-jest: 30.2.0(@babel/core@7.28.4)
+ chalk: 4.1.2
+ ci-info: 4.3.0
+ deepmerge: 4.3.1
+ glob: 10.4.5
+ graceful-fs: 4.2.11
+ jest-circus: 30.2.0
+ jest-docblock: 30.2.0
+ jest-environment-node: 30.2.0
+ jest-regex-util: 30.0.1
+ jest-resolve: 30.2.0
+ jest-runner: 30.2.0
+ jest-util: 30.2.0
+ jest-validate: 30.2.0
+ micromatch: 4.0.8
+ parse-json: 5.2.0
+ pretty-format: 30.2.0
+ slash: 3.0.0
+ strip-json-comments: 3.1.1
+ optionalDependencies:
+ '@types/node': 25.0.3
+ transitivePeerDependencies:
+ - babel-plugin-macros
+ - supports-color
+
jest-diff@30.2.0:
dependencies:
'@jest/diff-sequences': 30.0.1
@@ -16665,13 +16703,13 @@ snapshots:
jest-worker@26.6.2:
dependencies:
- '@types/node': 24.6.2
+ '@types/node': 25.0.3
merge-stream: 2.0.0
supports-color: 7.2.0
jest-worker@27.5.1:
dependencies:
- '@types/node': 24.6.2
+ '@types/node': 25.0.3
merge-stream: 2.0.0
supports-color: 8.1.1
@@ -16690,12 +16728,12 @@ snapshots:
merge-stream: 2.0.0
supports-color: 8.1.1
- jest@30.2.0(@types/node@24.6.2):
+ jest@30.2.0(@types/node@25.0.3):
dependencies:
'@jest/core': 30.2.0
'@jest/types': 30.2.0
import-local: 3.2.0
- jest-cli: 30.2.0(@types/node@24.6.2)
+ jest-cli: 30.2.0(@types/node@25.0.3)
transitivePeerDependencies:
- '@types/node'
- babel-plugin-macros
@@ -16942,7 +16980,7 @@ snapshots:
loader-runner@2.4.0: {}
- loader-runner@4.3.0: {}
+ loader-runner@4.3.1: {}
loader-utils@1.4.2:
dependencies:
@@ -17469,7 +17507,7 @@ snapshots:
node-object-hash@1.4.2: {}
- node-releases@2.0.21: {}
+ node-releases@2.0.27: {}
node-res@5.0.1:
dependencies:
@@ -17977,7 +18015,7 @@ snapshots:
postcss-colormin@5.3.1(postcss@8.4.39):
dependencies:
- browserslist: 4.26.3
+ browserslist: 4.28.1
caniuse-api: 3.0.0
colord: 2.9.3
postcss: 8.4.39
@@ -17985,7 +18023,7 @@ snapshots:
postcss-colormin@7.0.1(postcss@8.4.39):
dependencies:
- browserslist: 4.26.3
+ browserslist: 4.28.1
caniuse-api: 3.0.0
colord: 2.9.3
postcss: 8.4.39
@@ -17993,13 +18031,13 @@ snapshots:
postcss-convert-values@5.1.3(postcss@8.4.39):
dependencies:
- browserslist: 4.26.3
+ browserslist: 4.28.1
postcss: 8.4.39
postcss-value-parser: 4.2.0
postcss-convert-values@7.0.1(postcss@8.4.39):
dependencies:
- browserslist: 4.26.3
+ browserslist: 4.28.1
postcss: 8.4.39
postcss-value-parser: 4.2.0
@@ -18153,7 +18191,7 @@ snapshots:
postcss-merge-rules@5.1.4(postcss@8.4.39):
dependencies:
- browserslist: 4.26.3
+ browserslist: 4.28.1
caniuse-api: 3.0.0
cssnano-utils: 3.1.0(postcss@8.4.39)
postcss: 8.4.39
@@ -18161,7 +18199,7 @@ snapshots:
postcss-merge-rules@7.0.2(postcss@8.4.39):
dependencies:
- browserslist: 4.26.3
+ browserslist: 4.28.1
caniuse-api: 3.0.0
cssnano-utils: 5.0.0(postcss@8.4.39)
postcss: 8.4.39
@@ -18193,14 +18231,14 @@ snapshots:
postcss-minify-params@5.1.4(postcss@8.4.39):
dependencies:
- browserslist: 4.26.3
+ browserslist: 4.28.1
cssnano-utils: 3.1.0(postcss@8.4.39)
postcss: 8.4.39
postcss-value-parser: 4.2.0
postcss-minify-params@7.0.1(postcss@8.4.39):
dependencies:
- browserslist: 4.26.3
+ browserslist: 4.28.1
cssnano-utils: 5.0.0(postcss@8.4.39)
postcss: 8.4.39
postcss-value-parser: 4.2.0
@@ -18304,13 +18342,13 @@ snapshots:
postcss-normalize-unicode@5.1.1(postcss@8.4.39):
dependencies:
- browserslist: 4.26.3
+ browserslist: 4.28.1
postcss: 8.4.39
postcss-value-parser: 4.2.0
postcss-normalize-unicode@7.0.1(postcss@8.4.39):
dependencies:
- browserslist: 4.26.3
+ browserslist: 4.28.1
postcss: 8.4.39
postcss-value-parser: 4.2.0
@@ -18397,7 +18435,7 @@ snapshots:
'@csstools/postcss-trigonometric-functions': 3.0.9(postcss@8.4.39)
'@csstools/postcss-unset-value': 3.0.1(postcss@8.4.39)
autoprefixer: 10.4.19(postcss@8.4.39)
- browserslist: 4.26.2
+ browserslist: 4.28.1
css-blank-pseudo: 6.0.2(postcss@8.4.39)
css-has-pseudo: 6.0.5(postcss@8.4.39)
css-prefers-color-scheme: 9.0.1(postcss@8.4.39)
@@ -18436,13 +18474,13 @@ snapshots:
postcss-reduce-initial@5.1.2(postcss@8.4.39):
dependencies:
- browserslist: 4.26.3
+ browserslist: 4.28.1
caniuse-api: 3.0.0
postcss: 8.4.39
postcss-reduce-initial@7.0.1(postcss@8.4.39):
dependencies:
- browserslist: 4.26.3
+ browserslist: 4.28.1
caniuse-api: 3.0.0
postcss: 8.4.39
@@ -18610,7 +18648,7 @@ snapshots:
'@protobufjs/pool': 1.1.0
'@protobufjs/utf8': 1.1.0
'@types/long': 4.0.2
- '@types/node': 24.6.2
+ '@types/node': 25.0.3
long: 4.0.0
optional: true
@@ -18643,7 +18681,7 @@ snapshots:
'@protobufjs/path': 1.1.2
'@protobufjs/pool': 1.1.0
'@protobufjs/utf8': 1.1.0
- '@types/node': 24.6.2
+ '@types/node': 25.0.3
long: 5.2.3
protocols@2.0.1: {}
@@ -18983,14 +19021,14 @@ snapshots:
safer-buffer@2.1.2: {}
- sass-loader@10.4.1(sass@1.32.13)(webpack@5.102.0):
+ sass-loader@10.4.1(sass@1.32.13)(webpack@5.104.1):
dependencies:
klona: 2.0.6
loader-utils: 2.0.4
neo-async: 2.6.2
schema-utils: 3.3.0
semver: 7.7.3
- webpack: 5.102.0
+ webpack: 5.104.1
optionalDependencies:
sass: 1.32.13
@@ -19028,7 +19066,7 @@ snapshots:
ajv: 6.12.6
ajv-keywords: 3.5.2(ajv@6.12.6)
- schema-utils@4.3.2:
+ schema-utils@4.3.3:
dependencies:
'@types/json-schema': 7.0.15
ajv: 8.17.1
@@ -19435,13 +19473,13 @@ snapshots:
stylehacks@5.1.1(postcss@8.4.39):
dependencies:
- browserslist: 4.26.3
+ browserslist: 4.28.1
postcss: 8.4.39
postcss-selector-parser: 6.1.2
stylehacks@7.0.2(postcss@8.4.39):
dependencies:
- browserslist: 4.26.3
+ browserslist: 4.28.1
postcss: 8.4.39
postcss-selector-parser: 6.1.2
@@ -19471,15 +19509,15 @@ snapshots:
stylelint: 15.11.0(typescript@4.9.5)
stylelint-config-recommended: 13.0.0(stylelint@15.11.0(typescript@4.9.5))
- stylelint-webpack-plugin@5.0.1(stylelint@15.11.0(typescript@4.9.5))(webpack@5.102.0):
+ stylelint-webpack-plugin@5.0.1(stylelint@15.11.0(typescript@4.9.5))(webpack@5.104.1):
dependencies:
globby: 11.1.0
jest-worker: 29.7.0
micromatch: 4.0.8
normalize-path: 3.0.0
- schema-utils: 4.3.2
+ schema-utils: 4.3.3
stylelint: 15.11.0(typescript@4.9.5)
- webpack: 5.102.0
+ webpack: 5.104.1
stylelint@15.11.0(typescript@4.9.5):
dependencies:
@@ -19586,7 +19624,7 @@ snapshots:
tapable@1.1.3: {}
- tapable@2.2.3: {}
+ tapable@2.3.0: {}
tar@6.2.0:
dependencies:
@@ -19631,20 +19669,20 @@ snapshots:
schema-utils: 3.3.0
serialize-javascript: 5.0.1
source-map: 0.6.1
- terser: 5.44.0
+ terser: 5.44.1
webpack: 4.47.0
webpack-sources: 1.4.3
transitivePeerDependencies:
- bluebird
- terser-webpack-plugin@5.3.14(webpack@5.102.0):
+ terser-webpack-plugin@5.3.16(webpack@5.104.1):
dependencies:
'@jridgewell/trace-mapping': 0.3.31
jest-worker: 27.5.1
- schema-utils: 4.3.2
+ schema-utils: 4.3.3
serialize-javascript: 6.0.2
- terser: 5.44.0
- webpack: 5.102.0
+ terser: 5.44.1
+ webpack: 5.104.1
terser@4.8.1:
dependencies:
@@ -19653,7 +19691,7 @@ snapshots:
source-map: 0.6.1
source-map-support: 0.5.21
- terser@5.44.0:
+ terser@5.44.1:
dependencies:
'@jridgewell/source-map': 0.3.11
acorn: 8.15.0
@@ -19680,7 +19718,7 @@ snapshots:
thread-loader@3.0.4(webpack@4.47.0):
dependencies:
json-parse-better-errors: 1.0.2
- loader-runner: 4.3.0
+ loader-runner: 4.3.1
loader-utils: 2.0.4
neo-async: 2.6.2
schema-utils: 3.3.0
@@ -19763,12 +19801,12 @@ snapshots:
dependencies:
typescript: 4.9.5
- ts-jest@29.4.6(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.4))(jest-util@30.2.0)(jest@30.2.0(@types/node@24.6.2))(typescript@4.9.5):
+ ts-jest@29.4.6(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.4))(jest-util@30.2.0)(jest@30.2.0(@types/node@25.0.3))(typescript@4.9.5):
dependencies:
bs-logger: 0.2.6
fast-json-stable-stringify: 2.1.0
handlebars: 4.7.8
- jest: 30.2.0(@types/node@24.6.2)
+ jest: 30.2.0(@types/node@25.0.3)
json5: 2.2.3
lodash.memoize: 4.1.2
make-error: 1.3.6
@@ -19783,7 +19821,7 @@ snapshots:
babel-jest: 30.2.0(@babel/core@7.28.4)
jest-util: 30.2.0
- ts-loader@8.4.0(typescript@4.9.5)(webpack@5.102.0):
+ ts-loader@8.4.0(typescript@4.9.5)(webpack@5.104.1):
dependencies:
chalk: 4.1.2
enhanced-resolve: 4.5.0
@@ -19791,7 +19829,7 @@ snapshots:
micromatch: 4.0.8
semver: 7.7.3
typescript: 4.9.5
- webpack: 5.102.0
+ webpack: 5.104.1
ts-pnp@1.2.0(typescript@4.9.5):
optionalDependencies:
@@ -19901,6 +19939,8 @@ snapshots:
undici-types@7.13.0: {}
+ undici-types@7.16.0: {}
+
undici@6.19.7: {}
unfetch@5.0.0: {}
@@ -20050,15 +20090,9 @@ snapshots:
upath@2.0.1: {}
- update-browserslist-db@1.1.3(browserslist@4.26.2):
+ update-browserslist-db@1.2.3(browserslist@4.28.1):
dependencies:
- browserslist: 4.26.2
- escalade: 3.2.0
- picocolors: 1.1.1
-
- update-browserslist-db@1.1.3(browserslist@4.26.3):
- dependencies:
- browserslist: 4.26.3
+ browserslist: 4.28.1
escalade: 3.2.0
picocolors: 1.1.1
@@ -20068,14 +20102,14 @@ snapshots:
urix@0.1.0: {}
- url-loader@4.1.1(file-loader@6.2.0(webpack@4.47.0))(webpack@4.47.0):
+ url-loader@4.1.1(file-loader@6.2.0(webpack@5.104.1))(webpack@4.47.0):
dependencies:
loader-utils: 2.0.4
mime-types: 2.1.35
schema-utils: 3.3.0
webpack: 4.47.0
optionalDependencies:
- file-loader: 6.2.0(webpack@5.102.0)
+ file-loader: 6.2.0(webpack@5.104.1)
url@0.11.3:
dependencies:
@@ -20119,37 +20153,37 @@ snapshots:
vary@1.1.2: {}
- vite-plugin-eslint@1.8.1(eslint@8.57.1)(vite@4.5.3(@types/node@24.6.2)(sass@1.32.13)(terser@5.44.0)):
+ vite-plugin-eslint@1.8.1(eslint@8.57.1)(vite@4.5.3(@types/node@25.0.3)(sass@1.32.13)(terser@5.44.1)):
dependencies:
'@rollup/pluginutils': 4.2.1
'@types/eslint': 8.44.3
eslint: 8.57.1
rollup: 2.79.2
- vite: 4.5.3(@types/node@24.6.2)(sass@1.32.13)(terser@5.44.0)
+ vite: 4.5.3(@types/node@25.0.3)(sass@1.32.13)(terser@5.44.1)
- vite-plugin-stylelint@5.3.1(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@24.6.2)(sass@1.32.13)(terser@5.44.0)):
+ vite-plugin-stylelint@5.3.1(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@25.0.3)(sass@1.32.13)(terser@5.44.1)):
dependencies:
'@rollup/pluginutils': 5.1.0(rollup@3.29.5)
chokidar: 3.6.0
debug: 4.4.1
stylelint: 15.11.0(typescript@4.9.5)
- vite: 4.5.3(@types/node@24.6.2)(sass@1.32.13)(terser@5.44.0)
+ vite: 4.5.3(@types/node@25.0.3)(sass@1.32.13)(terser@5.44.1)
optionalDependencies:
postcss: 8.4.39
rollup: 3.29.5
transitivePeerDependencies:
- supports-color
- vite@4.5.3(@types/node@24.6.2)(sass@1.32.13)(terser@5.44.0):
+ vite@4.5.3(@types/node@25.0.3)(sass@1.32.13)(terser@5.44.1):
dependencies:
esbuild: 0.18.20
postcss: 8.5.6
rollup: 3.29.5
optionalDependencies:
- '@types/node': 24.6.2
+ '@types/node': 25.0.3
fsevents: 2.3.3
sass: 1.32.13
- terser: 5.44.0
+ terser: 5.44.1
vm-browserify@1.1.2: {}
@@ -20215,10 +20249,10 @@ snapshots:
transitivePeerDependencies:
- supports-color
- vue-loader@15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@4.47.0))(ejs@3.1.10)(handlebars@4.7.8)(lodash@4.17.21)(prettier@3.6.2)(vue-template-compiler@2.7.16)(webpack@4.47.0):
+ vue-loader@15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@5.104.1))(ejs@3.1.10)(handlebars@4.7.8)(lodash@4.17.21)(prettier@3.6.2)(vue-template-compiler@2.7.16)(webpack@4.47.0):
dependencies:
'@vue/component-compiler-utils': 3.3.0(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(handlebars@4.7.8)(lodash@4.17.21)
- css-loader: 5.2.7(webpack@5.102.0)
+ css-loader: 5.2.7(webpack@5.104.1)
hash-sum: 1.0.2
loader-utils: 1.4.2
vue-hot-reload-api: 2.3.4
@@ -20326,16 +20360,16 @@ snapshots:
'@vue/compiler-sfc': 2.7.16
csstype: 3.1.2
- vuetify-loader@1.9.2(vue@2.7.16)(vuetify@2.7.2(vue@2.7.16))(webpack@5.102.0):
+ vuetify-loader@1.9.2(vue@2.7.16)(vuetify@2.7.2(vue@2.7.16))(webpack@5.104.1):
dependencies:
acorn: 8.15.0
acorn-walk: 8.2.0
decache: 4.6.2
- file-loader: 6.2.0(webpack@5.102.0)
+ file-loader: 6.2.0(webpack@5.104.1)
loader-utils: 2.0.4
vue: 2.7.16
vuetify: 2.7.2(vue@2.7.16)
- webpack: 5.102.0
+ webpack: 5.104.1
vuetify@2.7.2(vue@2.7.16):
dependencies:
@@ -20370,7 +20404,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- watchpack@2.4.4:
+ watchpack@2.5.0:
dependencies:
glob-to-regexp: 0.4.1
graceful-fs: 4.2.11
@@ -20403,7 +20437,7 @@ snapshots:
memfs: 3.5.3
mime-types: 2.1.35
range-parser: 1.2.1
- schema-utils: 4.3.2
+ schema-utils: 4.3.3
webpack: 4.47.0
webpack-hot-middleware@2.26.1:
@@ -20453,7 +20487,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- webpack@5.102.0:
+ webpack@5.104.1:
dependencies:
'@types/eslint-scope': 3.7.7
'@types/estree': 1.0.8
@@ -20463,22 +20497,22 @@ snapshots:
'@webassemblyjs/wasm-parser': 1.14.1
acorn: 8.15.0
acorn-import-phases: 1.0.4(acorn@8.15.0)
- browserslist: 4.26.2
+ browserslist: 4.28.1
chrome-trace-event: 1.0.4
- enhanced-resolve: 5.18.3
- es-module-lexer: 1.7.0
+ enhanced-resolve: 5.18.4
+ es-module-lexer: 2.0.0
eslint-scope: 5.1.1
events: 3.3.0
glob-to-regexp: 0.4.1
graceful-fs: 4.2.11
json-parse-even-better-errors: 2.3.1
- loader-runner: 4.3.0
+ loader-runner: 4.3.1
mime-types: 2.1.35
neo-async: 2.6.2
- schema-utils: 4.3.2
- tapable: 2.2.3
- terser-webpack-plugin: 5.3.14(webpack@5.102.0)
- watchpack: 2.4.4
+ schema-utils: 4.3.3
+ tapable: 2.3.0
+ terser-webpack-plugin: 5.3.16(webpack@5.104.1)
+ watchpack: 2.5.0
webpack-sources: 3.3.3
transitivePeerDependencies:
- '@swc/core'
From de51ee7ff310f8e3c3770457bdefff9c92418431 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 1 Jan 2026 09:24:19 +0000
Subject: [PATCH 071/215] fix(deps): bump go.opentelemetry.io/otel/sdk in /api
Bumps [go.opentelemetry.io/otel/sdk](https://github.com/open-telemetry/opentelemetry-go) from 1.38.0 to 1.39.0.
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.38.0...v1.39.0)
---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel/sdk
dependency-version: 1.39.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 4 ++--
api/go.sum | 8 ++++----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index 59d11160..23c4c379 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -48,8 +48,8 @@ require (
github.com/xuri/excelize/v2 v2.10.0
go.opentelemetry.io/otel v1.39.0
go.opentelemetry.io/otel/metric v1.39.0
- go.opentelemetry.io/otel/sdk v1.38.0
- go.opentelemetry.io/otel/sdk/metric v1.38.0
+ go.opentelemetry.io/otel/sdk v1.39.0
+ go.opentelemetry.io/otel/sdk/metric v1.39.0
go.opentelemetry.io/otel/trace v1.39.0
google.golang.org/api v0.258.0
google.golang.org/protobuf v1.36.11
diff --git a/api/go.sum b/api/go.sum
index 1dd1542d..4600b738 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -383,14 +383,14 @@ go.opentelemetry.io/otel/metric v1.39.0 h1:d1UzonvEZriVfpNKEVmHXbdf909uGTOQjA0HF
go.opentelemetry.io/otel/metric v1.39.0/go.mod h1:jrZSWL33sD7bBxg1xjrqyDjnuzTUB0x1nBERXd7Ftcs=
go.opentelemetry.io/otel/oteltest v1.0.0-RC3 h1:MjaeegZTaX0Bv9uB9CrdVjOFM/8slRjReoWoV9xDCpY=
go.opentelemetry.io/otel/oteltest v1.0.0-RC3/go.mod h1:xpzajI9JBRr7gX63nO6kAmImmYIAtuQblZ36Z+LfCjE=
-go.opentelemetry.io/otel/sdk v1.38.0 h1:l48sr5YbNf2hpCUj/FoGhW9yDkl+Ma+LrVl8qaM5b+E=
-go.opentelemetry.io/otel/sdk v1.38.0/go.mod h1:ghmNdGlVemJI3+ZB5iDEuk4bWA3GkTpW+DOoZMYBVVg=
+go.opentelemetry.io/otel/sdk v1.39.0 h1:nMLYcjVsvdui1B/4FRkwjzoRVsMK8uL/cj0OyhKzt18=
+go.opentelemetry.io/otel/sdk v1.39.0/go.mod h1:vDojkC4/jsTJsE+kh+LXYQlbL8CgrEcwmt1ENZszdJE=
go.opentelemetry.io/otel/sdk/log v0.14.0 h1:JU/U3O7N6fsAXj0+CXz21Czg532dW2V4gG1HE/e8Zrg=
go.opentelemetry.io/otel/sdk/log v0.14.0/go.mod h1:imQvII+0ZylXfKU7/wtOND8Hn4OpT3YUoIgqJVksUkM=
go.opentelemetry.io/otel/sdk/log/logtest v0.14.0 h1:Ijbtz+JKXl8T2MngiwqBlPaHqc4YCaP/i13Qrow6gAM=
go.opentelemetry.io/otel/sdk/log/logtest v0.14.0/go.mod h1:dCU8aEL6q+L9cYTqcVOk8rM9Tp8WdnHOPLiBgp0SGOA=
-go.opentelemetry.io/otel/sdk/metric v1.38.0 h1:aSH66iL0aZqo//xXzQLYozmWrXxyFkBJ6qT5wthqPoM=
-go.opentelemetry.io/otel/sdk/metric v1.38.0/go.mod h1:dg9PBnW9XdQ1Hd6ZnRz689CbtrUp0wMMs9iPcgT9EZA=
+go.opentelemetry.io/otel/sdk/metric v1.39.0 h1:cXMVVFVgsIf2YL6QkRF4Urbr/aMInf+2WKg+sEJTtB8=
+go.opentelemetry.io/otel/sdk/metric v1.39.0/go.mod h1:xq9HEVH7qeX69/JnwEfp6fVq5wosJsY1mt4lLfYdVew=
go.opentelemetry.io/otel/trace v1.39.0 h1:2d2vfpEDmCJ5zVYz7ijaJdOF59xLomrvj7bjt6/qCJI=
go.opentelemetry.io/otel/trace v1.39.0/go.mod h1:88w4/PnZSazkGzz/w84VHpQafiU4EtqqlVdxWy+rNOA=
go.opentelemetry.io/proto/otlp v1.8.0 h1:fRAZQDcAFHySxpJ1TwlA1cJ4tvcrw7nXl9xWWC8N5CE=
From 0399a9014e64b7dbb1a85c5678babf07927d51e2 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 1 Jan 2026 09:25:18 +0000
Subject: [PATCH 072/215] fix(deps): bump go.opentelemetry.io/otel/sdk/metric
in /api
Bumps [go.opentelemetry.io/otel/sdk/metric](https://github.com/open-telemetry/opentelemetry-go) from 1.38.0 to 1.39.0.
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/open-telemetry/opentelemetry-go/compare/v1.38.0...v1.39.0)
---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel/sdk/metric
dependency-version: 1.39.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 4 ++--
api/go.sum | 8 ++++----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index 59d11160..23c4c379 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -48,8 +48,8 @@ require (
github.com/xuri/excelize/v2 v2.10.0
go.opentelemetry.io/otel v1.39.0
go.opentelemetry.io/otel/metric v1.39.0
- go.opentelemetry.io/otel/sdk v1.38.0
- go.opentelemetry.io/otel/sdk/metric v1.38.0
+ go.opentelemetry.io/otel/sdk v1.39.0
+ go.opentelemetry.io/otel/sdk/metric v1.39.0
go.opentelemetry.io/otel/trace v1.39.0
google.golang.org/api v0.258.0
google.golang.org/protobuf v1.36.11
diff --git a/api/go.sum b/api/go.sum
index 1dd1542d..4600b738 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -383,14 +383,14 @@ go.opentelemetry.io/otel/metric v1.39.0 h1:d1UzonvEZriVfpNKEVmHXbdf909uGTOQjA0HF
go.opentelemetry.io/otel/metric v1.39.0/go.mod h1:jrZSWL33sD7bBxg1xjrqyDjnuzTUB0x1nBERXd7Ftcs=
go.opentelemetry.io/otel/oteltest v1.0.0-RC3 h1:MjaeegZTaX0Bv9uB9CrdVjOFM/8slRjReoWoV9xDCpY=
go.opentelemetry.io/otel/oteltest v1.0.0-RC3/go.mod h1:xpzajI9JBRr7gX63nO6kAmImmYIAtuQblZ36Z+LfCjE=
-go.opentelemetry.io/otel/sdk v1.38.0 h1:l48sr5YbNf2hpCUj/FoGhW9yDkl+Ma+LrVl8qaM5b+E=
-go.opentelemetry.io/otel/sdk v1.38.0/go.mod h1:ghmNdGlVemJI3+ZB5iDEuk4bWA3GkTpW+DOoZMYBVVg=
+go.opentelemetry.io/otel/sdk v1.39.0 h1:nMLYcjVsvdui1B/4FRkwjzoRVsMK8uL/cj0OyhKzt18=
+go.opentelemetry.io/otel/sdk v1.39.0/go.mod h1:vDojkC4/jsTJsE+kh+LXYQlbL8CgrEcwmt1ENZszdJE=
go.opentelemetry.io/otel/sdk/log v0.14.0 h1:JU/U3O7N6fsAXj0+CXz21Czg532dW2V4gG1HE/e8Zrg=
go.opentelemetry.io/otel/sdk/log v0.14.0/go.mod h1:imQvII+0ZylXfKU7/wtOND8Hn4OpT3YUoIgqJVksUkM=
go.opentelemetry.io/otel/sdk/log/logtest v0.14.0 h1:Ijbtz+JKXl8T2MngiwqBlPaHqc4YCaP/i13Qrow6gAM=
go.opentelemetry.io/otel/sdk/log/logtest v0.14.0/go.mod h1:dCU8aEL6q+L9cYTqcVOk8rM9Tp8WdnHOPLiBgp0SGOA=
-go.opentelemetry.io/otel/sdk/metric v1.38.0 h1:aSH66iL0aZqo//xXzQLYozmWrXxyFkBJ6qT5wthqPoM=
-go.opentelemetry.io/otel/sdk/metric v1.38.0/go.mod h1:dg9PBnW9XdQ1Hd6ZnRz689CbtrUp0wMMs9iPcgT9EZA=
+go.opentelemetry.io/otel/sdk/metric v1.39.0 h1:cXMVVFVgsIf2YL6QkRF4Urbr/aMInf+2WKg+sEJTtB8=
+go.opentelemetry.io/otel/sdk/metric v1.39.0/go.mod h1:xq9HEVH7qeX69/JnwEfp6fVq5wosJsY1mt4lLfYdVew=
go.opentelemetry.io/otel/trace v1.39.0 h1:2d2vfpEDmCJ5zVYz7ijaJdOF59xLomrvj7bjt6/qCJI=
go.opentelemetry.io/otel/trace v1.39.0/go.mod h1:88w4/PnZSazkGzz/w84VHpQafiU4EtqqlVdxWy+rNOA=
go.opentelemetry.io/proto/otlp v1.8.0 h1:fRAZQDcAFHySxpJ1TwlA1cJ4tvcrw7nXl9xWWC8N5CE=
From 1a79efc85cfd7f7e37f269caaeda58216b3af6cb Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 1 Jan 2026 09:28:16 +0000
Subject: [PATCH 073/215] fix(deps): bump github.com/uptrace/uptrace-go in /api
Bumps [github.com/uptrace/uptrace-go](https://github.com/uptrace/uptrace-go) from 1.38.0 to 1.39.0.
- [Release notes](https://github.com/uptrace/uptrace-go/releases)
- [Commits](https://github.com/uptrace/uptrace-go/compare/v1.38.0...v1.39.0)
---
updated-dependencies:
- dependency-name: github.com/uptrace/uptrace-go
dependency-version: 1.39.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 22 +++++++++++-----------
api/go.sum | 44 ++++++++++++++++++++++----------------------
2 files changed, 33 insertions(+), 33 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index 23c4c379..a7a09bc2 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -44,7 +44,7 @@ require (
github.com/stretchr/testify v1.11.1
github.com/swaggo/swag v1.16.6
github.com/thedevsaddam/govalidator v1.9.10
- github.com/uptrace/uptrace-go v1.38.0
+ github.com/uptrace/uptrace-go v1.39.0
github.com/xuri/excelize/v2 v2.10.0
go.opentelemetry.io/otel v1.39.0
go.opentelemetry.io/otel/metric v1.39.0
@@ -159,15 +159,15 @@ require (
go.opentelemetry.io/contrib/detectors/gcp v1.38.0 // indirect
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 // indirect
- go.opentelemetry.io/contrib/instrumentation/runtime v0.63.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.14.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.38.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0 // indirect
- go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0 // indirect
- go.opentelemetry.io/otel/log v0.14.0 // indirect
- go.opentelemetry.io/otel/sdk/log v0.14.0 // indirect
- go.opentelemetry.io/proto/otlp v1.8.0 // indirect
+ go.opentelemetry.io/contrib/instrumentation/runtime v0.64.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.15.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.39.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.39.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.39.0 // indirect
+ go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.39.0 // indirect
+ go.opentelemetry.io/otel/log v0.15.0 // indirect
+ go.opentelemetry.io/otel/sdk/log v0.15.0 // indirect
+ go.opentelemetry.io/proto/otlp v1.9.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.0 // indirect
go.yaml.in/yaml/v3 v3.0.4 // indirect
@@ -183,7 +183,7 @@ require (
golang.org/x/tools v0.39.0 // indirect
google.golang.org/appengine v1.6.8 // indirect
google.golang.org/genproto v0.0.0-20251014184007-4626949a642f // indirect
- google.golang.org/genproto/googleapis/api v0.0.0-20251022142026-3a174f9686a8 // indirect
+ google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20251213004720-97cd9d5aeac2 // indirect
google.golang.org/grpc v1.77.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
diff --git a/api/go.sum b/api/go.sum
index 4600b738..f6302a56 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -323,8 +323,8 @@ github.com/thedevsaddam/govalidator v1.9.10/go.mod h1:Ilx8u7cg5g3LXbSS943cx5kczy
github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
github.com/tiendc/go-deepcopy v1.7.1 h1:LnubftI6nYaaMOcaz0LphzwraqN8jiWTwm416sitff4=
github.com/tiendc/go-deepcopy v1.7.1/go.mod h1:4bKjNC2r7boYOkD2IOuZpYjmlDdzjbpTRyCx+goBCJQ=
-github.com/uptrace/uptrace-go v1.38.0 h1:QdJfyQkaz7HNPbqM9OkaQ2L9jfdf0DpfZJv9em7YIgE=
-github.com/uptrace/uptrace-go v1.38.0/go.mod h1:SdE9nA+/y+SOIzatuIK2tZeYhoWgrAzAr08kJEquZyM=
+github.com/uptrace/uptrace-go v1.39.0 h1:MszuE3eX/z86xzYywN2JBtYcmsS4ofdo1VMDhRvkWrI=
+github.com/uptrace/uptrace-go v1.39.0/go.mod h1:FquipEqgTMXPbhdhenjbiLHG1R5WYdxVH6zgwHeMzzA=
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
github.com/valyala/fasthttp v1.67.0 h1:tqKlJMUP6iuNG8hGjK/s9J4kadH7HLV4ijEcPGsezac=
@@ -359,42 +359,42 @@ go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.6
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0/go.mod h1:fvPi2qXDqFs8M4B4fmJhE92TyQs9Ydjlg3RvfUp+NbQ=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 h1:RbKq8BG0FI8OiXhBfcRtqqHcZcka+gU3cskNuf05R18=
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0/go.mod h1:h06DGIukJOevXaj/xrNjhi/2098RZzcLTbc0jDAUbsg=
-go.opentelemetry.io/contrib/instrumentation/runtime v0.63.0 h1:PeBoRj6af6xMI7qCupwFvTbbnd49V7n5YpG6pg8iDYQ=
-go.opentelemetry.io/contrib/instrumentation/runtime v0.63.0/go.mod h1:ingqBCtMCe8I4vpz/UVzCW6sxoqgZB37nao91mLQ3Bw=
+go.opentelemetry.io/contrib/instrumentation/runtime v0.64.0 h1:/+/+UjlXjFcdDlXxKL1PouzX8Z2Vl0OxolRKeBEgYDw=
+go.opentelemetry.io/contrib/instrumentation/runtime v0.64.0/go.mod h1:Ldm/PDuzY2DP7IypudopCR3OCOW42NJlN9+mNEroevo=
go.opentelemetry.io/contrib/propagators/b3 v1.19.0 h1:ulz44cpm6V5oAeg5Aw9HyqGFMS6XM7untlMEhD7YzzA=
go.opentelemetry.io/contrib/propagators/b3 v1.19.0/go.mod h1:OzCmE2IVS+asTI+odXQstRGVfXQ4bXv9nMBRK0nNyqQ=
go.opentelemetry.io/otel v1.39.0 h1:8yPrr/S0ND9QEfTfdP9V+SiwT4E0G7Y5MO7p85nis48=
go.opentelemetry.io/otel v1.39.0/go.mod h1:kLlFTywNWrFyEdH0oj2xK0bFYZtHRYUdv1NklR/tgc8=
-go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.14.0 h1:QQqYw3lkrzwVsoEX0w//EhH/TCnpRdEenKBOOEIMjWc=
-go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.14.0/go.mod h1:gSVQcr17jk2ig4jqJ2DX30IdWH251JcNAecvrqTxH1s=
-go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.38.0 h1:Oe2z/BCg5q7k4iXC3cqJxKYg0ieRiOqF0cecFYdPTwk=
-go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.38.0/go.mod h1:ZQM5lAJpOsKnYagGg/zV2krVqTtaVdYdDkhMoX6Oalg=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 h1:GqRJVj7UmLjCVyVJ3ZFLdPRmhDUp2zFmQe3RHIOsw24=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0/go.mod h1:ri3aaHSmCTVYu2AWv44YMauwAQc0aqI9gHKIcSbI1pU=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0 h1:aTL7F04bJHUlztTsNGJ2l+6he8c+y/b//eR0jjjemT4=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0/go.mod h1:kldtb7jDTeol0l3ewcmd8SDvx3EmIE7lyvqbasU3QC4=
+go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.15.0 h1:EKpiGphOYq3CYnIe2eX9ftUkyU+Y8Dtte8OaWyHJ4+I=
+go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.15.0/go.mod h1:nWFP7C+T8TygkTjJ7mAyEaFaE7wNfms3nV/vexZ6qt0=
+go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.39.0 h1:nKP4Z2ejtHn3yShBb+2KawiXgpn8In5cT7aO2wXuOTE=
+go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.39.0/go.mod h1:NwjeBbNigsO4Aj9WgM0C+cKIrxsZUaRmZUO7A8I7u8o=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.39.0 h1:f0cb2XPmrqn4XMy9PNliTgRKJgS5WcL/u0/WRYGz4t0=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.39.0/go.mod h1:vnakAaFckOMiMtOIhFI2MNH4FYrZzXCYxmb1LlhoGz8=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.39.0 h1:Ckwye2FpXkYgiHX7fyVrN1uA/UYd9ounqqTuSNAv0k4=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.39.0/go.mod h1:teIFJh5pW2y+AN7riv6IBPX2DuesS3HgP39mwOspKwU=
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.36.0 h1:rixTyDGXFxRy1xzhKrotaHy3/KXdPhlWARrCgK+eqUY=
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.36.0/go.mod h1:dowW6UsM9MKbJq5JTz2AMVp3/5iW5I/TStsk8S+CfHw=
-go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0 h1:kJxSDN4SgWWTjG/hPp3O7LCGLcHXFlvS2/FFOrwL+SE=
-go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.38.0/go.mod h1:mgIOzS7iZeKJdeB8/NYHrJ48fdGc71Llo5bJ1J4DWUE=
-go.opentelemetry.io/otel/log v0.14.0 h1:2rzJ+pOAZ8qmZ3DDHg73NEKzSZkhkGIua9gXtxNGgrM=
-go.opentelemetry.io/otel/log v0.14.0/go.mod h1:5jRG92fEAgx0SU/vFPxmJvhIuDU9E1SUnEQrMlJpOno=
+go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.39.0 h1:8UPA4IbVZxpsD76ihGOQiFml99GPAEZLohDXvqHdi6U=
+go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.39.0/go.mod h1:MZ1T/+51uIVKlRzGw1Fo46KEWThjlCBZKl2LzY5nv4g=
+go.opentelemetry.io/otel/log v0.15.0 h1:0VqVnc3MgyYd7QqNVIldC3dsLFKgazR6P3P3+ypkyDY=
+go.opentelemetry.io/otel/log v0.15.0/go.mod h1:9c/G1zbyZfgu1HmQD7Qj84QMmwTp2QCQsZH1aeoWDE4=
go.opentelemetry.io/otel/metric v1.39.0 h1:d1UzonvEZriVfpNKEVmHXbdf909uGTOQjA0HF0Ls5Q0=
go.opentelemetry.io/otel/metric v1.39.0/go.mod h1:jrZSWL33sD7bBxg1xjrqyDjnuzTUB0x1nBERXd7Ftcs=
go.opentelemetry.io/otel/oteltest v1.0.0-RC3 h1:MjaeegZTaX0Bv9uB9CrdVjOFM/8slRjReoWoV9xDCpY=
go.opentelemetry.io/otel/oteltest v1.0.0-RC3/go.mod h1:xpzajI9JBRr7gX63nO6kAmImmYIAtuQblZ36Z+LfCjE=
go.opentelemetry.io/otel/sdk v1.39.0 h1:nMLYcjVsvdui1B/4FRkwjzoRVsMK8uL/cj0OyhKzt18=
go.opentelemetry.io/otel/sdk v1.39.0/go.mod h1:vDojkC4/jsTJsE+kh+LXYQlbL8CgrEcwmt1ENZszdJE=
-go.opentelemetry.io/otel/sdk/log v0.14.0 h1:JU/U3O7N6fsAXj0+CXz21Czg532dW2V4gG1HE/e8Zrg=
-go.opentelemetry.io/otel/sdk/log v0.14.0/go.mod h1:imQvII+0ZylXfKU7/wtOND8Hn4OpT3YUoIgqJVksUkM=
+go.opentelemetry.io/otel/sdk/log v0.15.0 h1:WgMEHOUt5gjJE93yqfqJOkRflApNif84kxoHWS9VVHE=
+go.opentelemetry.io/otel/sdk/log v0.15.0/go.mod h1:qDC/FlKQCXfH5hokGsNg9aUBGMJQsrUyeOiW5u+dKBQ=
go.opentelemetry.io/otel/sdk/log/logtest v0.14.0 h1:Ijbtz+JKXl8T2MngiwqBlPaHqc4YCaP/i13Qrow6gAM=
go.opentelemetry.io/otel/sdk/log/logtest v0.14.0/go.mod h1:dCU8aEL6q+L9cYTqcVOk8rM9Tp8WdnHOPLiBgp0SGOA=
go.opentelemetry.io/otel/sdk/metric v1.39.0 h1:cXMVVFVgsIf2YL6QkRF4Urbr/aMInf+2WKg+sEJTtB8=
go.opentelemetry.io/otel/sdk/metric v1.39.0/go.mod h1:xq9HEVH7qeX69/JnwEfp6fVq5wosJsY1mt4lLfYdVew=
go.opentelemetry.io/otel/trace v1.39.0 h1:2d2vfpEDmCJ5zVYz7ijaJdOF59xLomrvj7bjt6/qCJI=
go.opentelemetry.io/otel/trace v1.39.0/go.mod h1:88w4/PnZSazkGzz/w84VHpQafiU4EtqqlVdxWy+rNOA=
-go.opentelemetry.io/proto/otlp v1.8.0 h1:fRAZQDcAFHySxpJ1TwlA1cJ4tvcrw7nXl9xWWC8N5CE=
-go.opentelemetry.io/proto/otlp v1.8.0/go.mod h1:tIeYOeNBU4cvmPqpaji1P+KbB4Oloai8wN4rWzRrFF0=
+go.opentelemetry.io/proto/otlp v1.9.0 h1:l706jCMITVouPOqEnii2fIAuO3IVGBRPV5ICjceRb/A=
+go.opentelemetry.io/proto/otlp v1.9.0/go.mod h1:xE+Cx5E/eEHw+ISFkwPLwCZefwVjY+pqKg1qcK03+/4=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
@@ -521,8 +521,8 @@ google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAs
google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds=
google.golang.org/genproto v0.0.0-20251014184007-4626949a642f h1:vLd1CJuJOUgV6qijD7KT5Y2ZtC97ll4dxjTUappMnbo=
google.golang.org/genproto v0.0.0-20251014184007-4626949a642f/go.mod h1:PI3KrSadr00yqfv6UDvgZGFsmLqeRIwt8x4p5Oo7CdM=
-google.golang.org/genproto/googleapis/api v0.0.0-20251022142026-3a174f9686a8 h1:mepRgnBZa07I4TRuomDE4sTIYieg/osKmzIf4USdWS4=
-google.golang.org/genproto/googleapis/api v0.0.0-20251022142026-3a174f9686a8/go.mod h1:fDMmzKV90WSg1NbozdqrE64fkuTv6mlq2zxo9ad+3yo=
+google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217 h1:fCvbg86sFXwdrl5LgVcTEvNC+2txB5mgROGmRL5mrls=
+google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:+rXWjjaukWZun3mLfjmVnQi18E1AsFbDN9QdJ5YXLto=
google.golang.org/genproto/googleapis/rpc v0.0.0-20251213004720-97cd9d5aeac2 h1:2I6GHUeJ/4shcDpoUlLs/2WPnhg7yJwvXtqcMJt9liA=
google.golang.org/genproto/googleapis/rpc v0.0.0-20251213004720-97cd9d5aeac2/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk=
google.golang.org/grpc v1.77.0 h1:wVVY6/8cGA6vvffn+wWK5ToddbgdU3d8MNENr4evgXM=
From a601fe4b68d680850a65df61ac2cb09dc19273cf Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 1 Jan 2026 09:43:07 +0000
Subject: [PATCH 074/215] chore(deps-dev): bump prettier from 3.6.2 to 3.7.4 in
/web
Bumps [prettier](https://github.com/prettier/prettier) from 3.6.2 to 3.7.4.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.6.2...3.7.4)
---
updated-dependencies:
- dependency-name: prettier
dependency-version: 3.7.4
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
web/package.json | 2 +-
web/pnpm-lock.yaml | 36 ++++++++++++++++++------------------
2 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/web/package.json b/web/package.json
index c65c2ab7..ac4f85f4 100644
--- a/web/package.json
+++ b/web/package.json
@@ -77,7 +77,7 @@
"lint-staged": "^16.1.4",
"node-fetch-native": "^1.6.7",
"postcss-html": "^1.7.0",
- "prettier": "3.6.2",
+ "prettier": "3.7.4",
"stylelint": "^15.11.0",
"stylelint-config-prettier": "^9.0.5",
"stylelint-config-recommended-vue": "^1.5.0",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index 5cbbe2fe..77a730b5 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -16,7 +16,7 @@ importers:
version: 1.4.2
'@nuxtjs/firebase':
specifier: ^8.2.2
- version: 8.2.2(@firebase/app-types@0.9.2)(firebase@10.14.1)(nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16))
+ version: 8.2.2(@firebase/app-types@0.9.2)(firebase@10.14.1)(nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.7.4)(typescript@4.9.5)(vue@2.7.16))
'@nuxtjs/sitemap':
specifier: ^2.4.0
version: 2.4.0
@@ -52,7 +52,7 @@ importers:
version: 2.30.1
nuxt:
specifier: ^2.18.1
- version: 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
+ version: 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.7.4)(typescript@4.9.5)(vue@2.7.16)
nuxt-highlightjs:
specifier: ^1.0.3
version: 1.0.3
@@ -169,8 +169,8 @@ importers:
specifier: ^1.7.0
version: 1.7.0
prettier:
- specifier: 3.6.2
- version: 3.6.2
+ specifier: 3.7.4
+ version: 3.7.4
stylelint:
specifier: ^15.11.0
version: 15.11.0(typescript@4.9.5)
@@ -7418,8 +7418,8 @@ packages:
engines: {node: '>=10.13.0'}
hasBin: true
- prettier@3.6.2:
- resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==}
+ prettier@3.7.4:
+ resolution: {integrity: sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==}
engines: {node: '>=14'}
hasBin: true
@@ -11683,12 +11683,12 @@ snapshots:
- supports-color
- vue
- '@nuxt/builder@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)':
+ '@nuxt/builder@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.7.4)(typescript@4.9.5)(vue@2.7.16)':
dependencies:
'@nuxt/devalue': 2.0.2
'@nuxt/utils': 2.18.1
'@nuxt/vue-app': 2.18.1
- '@nuxt/webpack': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
+ '@nuxt/webpack': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.7.4)(typescript@4.9.5)(vue@2.7.16)
chalk: 4.1.2
chokidar: 3.6.0
consola: 3.2.3
@@ -12074,7 +12074,7 @@ snapshots:
vue-meta: 2.4.0
vue-server-renderer: 2.7.16
- '@nuxt/webpack@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)':
+ '@nuxt/webpack@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.7.4)(typescript@4.9.5)(vue@2.7.16)':
dependencies:
'@babel/core': 7.24.7
'@nuxt/babel-preset-app': 2.18.1(vue@2.7.16)
@@ -12114,7 +12114,7 @@ snapshots:
ufo: 1.6.1
upath: 2.0.1
url-loader: 4.1.1(file-loader@6.2.0(webpack@5.104.1))(webpack@4.47.0)
- vue-loader: 15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@5.104.1))(ejs@3.1.10)(handlebars@4.7.8)(lodash@4.17.21)(prettier@3.6.2)(vue-template-compiler@2.7.16)(webpack@4.47.0)
+ vue-loader: 15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@5.104.1))(ejs@3.1.10)(handlebars@4.7.8)(lodash@4.17.21)(prettier@3.7.4)(vue-template-compiler@2.7.16)(webpack@4.47.0)
vue-style-loader: 4.1.3
vue-template-compiler: 2.7.16
watchpack: 2.5.0
@@ -12239,11 +12239,11 @@ snapshots:
- vite
- webpack
- '@nuxtjs/firebase@8.2.2(@firebase/app-types@0.9.2)(firebase@10.14.1)(nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16))':
+ '@nuxtjs/firebase@8.2.2(@firebase/app-types@0.9.2)(firebase@10.14.1)(nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.7.4)(typescript@4.9.5)(vue@2.7.16))':
dependencies:
consola: 2.15.3
firebase: 10.14.1
- nuxt: 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
+ nuxt: 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.7.4)(typescript@4.9.5)(vue@2.7.16)
optionalDependencies:
firebase-admin: 10.3.0(@firebase/app-types@0.9.2)
transitivePeerDependencies:
@@ -17569,10 +17569,10 @@ snapshots:
dependencies:
highlight.js: 11.11.1
- nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16):
+ nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.7.4)(typescript@4.9.5)(vue@2.7.16):
dependencies:
'@nuxt/babel-preset-app': 2.18.1(vue@2.7.16)
- '@nuxt/builder': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
+ '@nuxt/builder': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.7.4)(typescript@4.9.5)(vue@2.7.16)
'@nuxt/cli': 2.18.1
'@nuxt/components': 2.2.1(consola@3.2.3)
'@nuxt/config': 2.18.1
@@ -17585,7 +17585,7 @@ snapshots:
'@nuxt/utils': 2.18.1
'@nuxt/vue-app': 2.18.1
'@nuxt/vue-renderer': 2.18.1
- '@nuxt/webpack': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.6.2)(typescript@4.9.5)(vue@2.7.16)
+ '@nuxt/webpack': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.7.4)(typescript@4.9.5)(vue@2.7.16)
transitivePeerDependencies:
- '@vue/compiler-sfc'
- arc-templates
@@ -18591,7 +18591,7 @@ snapshots:
prettier@2.8.8:
optional: true
- prettier@3.6.2: {}
+ prettier@3.7.4: {}
pretty-bytes@5.6.0: {}
@@ -20249,7 +20249,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- vue-loader@15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@5.104.1))(ejs@3.1.10)(handlebars@4.7.8)(lodash@4.17.21)(prettier@3.6.2)(vue-template-compiler@2.7.16)(webpack@4.47.0):
+ vue-loader@15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@5.104.1))(ejs@3.1.10)(handlebars@4.7.8)(lodash@4.17.21)(prettier@3.7.4)(vue-template-compiler@2.7.16)(webpack@4.47.0):
dependencies:
'@vue/component-compiler-utils': 3.3.0(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(handlebars@4.7.8)(lodash@4.17.21)
css-loader: 5.2.7(webpack@5.104.1)
@@ -20260,7 +20260,7 @@ snapshots:
webpack: 4.47.0
optionalDependencies:
cache-loader: 4.1.0(webpack@4.47.0)
- prettier: 3.6.2
+ prettier: 3.7.4
vue-template-compiler: 2.7.16
transitivePeerDependencies:
- arc-templates
From 09f89a546dad8480ea89e97d2fb93e5bfdf39986 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 1 Jan 2026 09:43:12 +0000
Subject: [PATCH 075/215] chore(deps-dev): bump @commitlint/cli from 20.1.0 to
20.2.0 in /web
Bumps [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) from 20.1.0 to 20.2.0.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/cli/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v20.2.0/@commitlint/cli)
---
updated-dependencies:
- dependency-name: "@commitlint/cli"
dependency-version: 20.2.0
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
web/package.json | 2 +-
web/pnpm-lock.yaml | 184 ++++++++++++++++++++++++---------------------
2 files changed, 101 insertions(+), 85 deletions(-)
diff --git a/web/package.json b/web/package.json
index c65c2ab7..7724365f 100644
--- a/web/package.json
+++ b/web/package.json
@@ -55,7 +55,7 @@
},
"devDependencies": {
"@babel/eslint-parser": "^7.27.5",
- "@commitlint/cli": "^20.1.0",
+ "@commitlint/cli": "^20.2.0",
"@commitlint/config-conventional": "^19.8.0",
"@nuxt/types": "^2.18.1",
"@nuxt/typescript-build": "^3.0.2",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index 5cbbe2fe..7049f9c6 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -103,8 +103,8 @@ importers:
specifier: ^7.27.5
version: 7.27.5(@babel/core@7.28.4)(eslint@8.57.1)
'@commitlint/cli':
- specifier: ^20.1.0
- version: 20.1.0(@types/node@25.0.3)(typescript@4.9.5)
+ specifier: ^20.2.0
+ version: 20.2.0(@types/node@25.0.3)(typescript@4.9.5)
'@commitlint/config-conventional':
specifier: ^19.8.0
version: 19.8.0
@@ -1012,8 +1012,8 @@ packages:
'@bcoe/v8-coverage@0.2.3':
resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
- '@commitlint/cli@20.1.0':
- resolution: {integrity: sha512-pW5ujjrOovhq5RcYv5xCpb4GkZxkO2+GtOdBW2/qrr0Ll9tl3PX0aBBobGQl3mdZUbOBgwAexEQLeH6uxL0VYg==}
+ '@commitlint/cli@20.2.0':
+ resolution: {integrity: sha512-l37HkrPZ2DZy26rKiTUvdq/LZtlMcxz+PeLv9dzK9NzoFGuJdOQyYU7IEkEQj0pO++uYue89wzOpZ0hcTtoqUA==}
engines: {node: '>=v18'}
hasBin: true
@@ -1021,52 +1021,52 @@ packages:
resolution: {integrity: sha512-9I2kKJwcAPwMoAj38hwqFXG0CzS2Kj+SAByPUQ0SlHTfb7VUhYVmo7G2w2tBrqmOf7PFd6MpZ/a1GQJo8na8kw==}
engines: {node: '>=v18'}
- '@commitlint/config-validator@20.0.0':
- resolution: {integrity: sha512-BeyLMaRIJDdroJuYM2EGhDMGwVBMZna9UiIqV9hxj+J551Ctc6yoGuGSmghOy/qPhBSuhA6oMtbEiTmxECafsg==}
+ '@commitlint/config-validator@20.2.0':
+ resolution: {integrity: sha512-SQCBGsL9MFk8utWNSthdxd9iOD1pIVZSHxGBwYIGfd67RTjxqzFOSAYeQVXOu3IxRC3YrTOH37ThnTLjUlyF2w==}
engines: {node: '>=v18'}
- '@commitlint/ensure@20.0.0':
- resolution: {integrity: sha512-WBV47Fffvabe68n+13HJNFBqiMH5U1Ryls4W3ieGwPC0C7kJqp3OVQQzG2GXqOALmzrgAB+7GXmyy8N9ct8/Fg==}
+ '@commitlint/ensure@20.2.0':
+ resolution: {integrity: sha512-+8TgIGv89rOWyt3eC6lcR1H7hqChAKkpawytlq9P1i/HYugFRVqgoKJ8dhd89fMnlrQTLjA5E97/4sF09QwdoA==}
engines: {node: '>=v18'}
'@commitlint/execute-rule@20.0.0':
resolution: {integrity: sha512-xyCoOShoPuPL44gVa+5EdZsBVao/pNzpQhkzq3RdtlFdKZtjWcLlUFQHSWBuhk5utKYykeJPSz2i8ABHQA+ZZw==}
engines: {node: '>=v18'}
- '@commitlint/format@20.0.0':
- resolution: {integrity: sha512-zrZQXUcSDmQ4eGGrd+gFESiX0Rw+WFJk7nW4VFOmxub4mAATNKBQ4vNw5FgMCVehLUKG2OT2LjOqD0Hk8HvcRg==}
+ '@commitlint/format@20.2.0':
+ resolution: {integrity: sha512-PhNoLNhxpfIBlW/i90uZ3yG3hwSSYx7n4d9Yc+2FAorAHS0D9btYRK4ZZXX+Gm3W5tDtu911ow/eWRfcRVgNWg==}
engines: {node: '>=v18'}
- '@commitlint/is-ignored@20.0.0':
- resolution: {integrity: sha512-ayPLicsqqGAphYIQwh9LdAYOVAQ9Oe5QCgTNTj+BfxZb9b/JW222V5taPoIBzYnAP0z9EfUtljgBk+0BN4T4Cw==}
+ '@commitlint/is-ignored@20.2.0':
+ resolution: {integrity: sha512-Lz0OGeZCo/QHUDLx5LmZc0EocwanneYJUM8z0bfWexArk62HKMLfLIodwXuKTO5y0s6ddXaTexrYHs7v96EOmw==}
engines: {node: '>=v18'}
- '@commitlint/lint@20.0.0':
- resolution: {integrity: sha512-kWrX8SfWk4+4nCexfLaQT3f3EcNjJwJBsSZ5rMBw6JCd6OzXufFHgel2Curos4LKIxwec9WSvs2YUD87rXlxNQ==}
+ '@commitlint/lint@20.2.0':
+ resolution: {integrity: sha512-cQEEB+jlmyQbyiji/kmh8pUJSDeUmPiWq23kFV0EtW3eM+uAaMLMuoTMajbrtWYWQpPzOMDjYltQ8jxHeHgITg==}
engines: {node: '>=v18'}
- '@commitlint/load@20.1.0':
- resolution: {integrity: sha512-qo9ER0XiAimATQR5QhvvzePfeDfApi/AFlC1G+YN+ZAY8/Ua6IRrDrxRvQAr+YXUKAxUsTDSp9KXeXLBPsNRWg==}
+ '@commitlint/load@20.2.0':
+ resolution: {integrity: sha512-iAK2GaBM8sPFTSwtagI67HrLKHIUxQc2BgpgNc/UMNme6LfmtHpIxQoN1TbP+X1iz58jq32HL1GbrFTCzcMi6g==}
engines: {node: '>=v18'}
'@commitlint/message@20.0.0':
resolution: {integrity: sha512-gLX4YmKnZqSwkmSB9OckQUrI5VyXEYiv3J5JKZRxIp8jOQsWjZgHSG/OgEfMQBK9ibdclEdAyIPYggwXoFGXjQ==}
engines: {node: '>=v18'}
- '@commitlint/parse@20.0.0':
- resolution: {integrity: sha512-j/PHCDX2bGM5xGcWObOvpOc54cXjn9g6xScXzAeOLwTsScaL4Y+qd0pFC6HBwTtrH92NvJQc+2Lx9HFkVi48cg==}
+ '@commitlint/parse@20.2.0':
+ resolution: {integrity: sha512-LXStagGU1ivh07X7sM+hnEr4BvzFYn1iBJ6DRg2QsIN8lBfSzyvkUcVCDwok9Ia4PWiEgei5HQjju6xfJ1YaSQ==}
engines: {node: '>=v18'}
- '@commitlint/read@20.0.0':
- resolution: {integrity: sha512-Ti7Y7aEgxsM1nkwA4ZIJczkTFRX/+USMjNrL9NXwWQHqNqrBX2iMi+zfuzZXqfZ327WXBjdkRaytJ+z5vNqTOA==}
+ '@commitlint/read@20.2.0':
+ resolution: {integrity: sha512-+SjF9mxm5JCbe+8grOpXCXMMRzAnE0WWijhhtasdrpJoAFJYd5UgRTj/oCq5W3HJTwbvTOsijEJ0SUGImECD7Q==}
engines: {node: '>=v18'}
- '@commitlint/resolve-extends@20.1.0':
- resolution: {integrity: sha512-cxKXQrqHjZT3o+XPdqDCwOWVFQiae++uwd9dUBC7f2MdV58ons3uUvASdW7m55eat5sRiQ6xUHyMWMRm6atZWw==}
+ '@commitlint/resolve-extends@20.2.0':
+ resolution: {integrity: sha512-KVoLDi9BEuqeq+G0wRABn4azLRiCC22/YHR2aCquwx6bzCHAIN8hMt3Nuf1VFxq/c8ai6s8qBxE8+ZD4HeFTlQ==}
engines: {node: '>=v18'}
- '@commitlint/rules@20.0.0':
- resolution: {integrity: sha512-gvg2k10I/RfvHn5I5sxvVZKM1fl72Sqrv2YY/BnM7lMHcYqO0E2jnRWoYguvBfEcZ39t+rbATlciggVe77E4zA==}
+ '@commitlint/rules@20.2.0':
+ resolution: {integrity: sha512-27rHGpeAjnYl/A+qUUiYDa7Yn1WIjof/dFJjYW4gA1Ug+LUGa1P0AexzGZ5NBxTbAlmDgaxSZkLLxtLVqtg8PQ==}
engines: {node: '>=v18'}
'@commitlint/to-lines@20.0.0':
@@ -1081,8 +1081,8 @@ packages:
resolution: {integrity: sha512-LRjP623jPyf3Poyfb0ohMj8I3ORyBDOwXAgxxVPbSD0unJuW2mJWeiRfaQinjtccMqC5Wy1HOMfa4btKjbNxbg==}
engines: {node: '>=v18'}
- '@commitlint/types@20.0.0':
- resolution: {integrity: sha512-bVUNBqG6aznYcYjTjnc3+Cat/iBgbgpflxbIBTnsHTX0YVpnmINPEkSRWymT2Q8aSH3Y7aKnEbunilkYe8TybA==}
+ '@commitlint/types@20.2.0':
+ resolution: {integrity: sha512-KTy0OqRDLR5y/zZMnizyx09z/rPlPC/zKhYgH8o/q6PuAjoQAKlRfY4zzv0M64yybQ//6//4H1n14pxaLZfUnA==}
engines: {node: '>=v18'}
'@csstools/cascade-layer-name-parser@1.0.12':
@@ -2282,6 +2282,9 @@ packages:
'@types/conventional-commits-parser@5.0.1':
resolution: {integrity: sha512-7uz5EHdzz2TqoMfV7ee61Egf5y6NkcO4FB/1iCCQnbeiI1F3xzv3vK5dBCXUCLQgGYS+mUeigK1iKQzvED+QnQ==}
+ '@types/conventional-commits-parser@5.0.2':
+ resolution: {integrity: sha512-BgT2szDXnVypgpNxOK8aL5SGjUdaQbC++WZNjF1Qge3Og2+zhHj+RWhmehLhYyvQwqAmvezruVfOf8+3m74W+g==}
+
'@types/eslint-scope@3.7.7':
resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==}
@@ -3762,8 +3765,8 @@ packages:
core-util-is@1.0.3:
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
- cosmiconfig-typescript-loader@6.1.0:
- resolution: {integrity: sha512-tJ1w35ZRUiM5FeTzT7DtYWAFFv37ZLqSRkGi2oeCK1gPhvaWjkAtfXvLmvE1pRfxxp9aQo6ba/Pvg1dKj05D4g==}
+ cosmiconfig-typescript-loader@6.2.0:
+ resolution: {integrity: sha512-GEN39v7TgdxgIoNcdkRE3uiAzQt3UXLyHbRHD6YoL048XAeOomyxaP+Hh/+2C6C2wYjxJ2onhJcsQp+L4YEkVQ==}
engines: {node: '>=v18'}
peerDependencies:
'@types/node': '*'
@@ -5789,6 +5792,10 @@ packages:
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
hasBin: true
+ js-yaml@4.1.1:
+ resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==}
+ hasBin: true
+
jsdom@26.1.0:
resolution: {integrity: sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==}
engines: {node: '>=18'}
@@ -8414,8 +8421,9 @@ packages:
resolution: {integrity: sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==}
engines: {node: '>=0.6.0'}
- tinyexec@1.0.1:
- resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==}
+ tinyexec@1.0.2:
+ resolution: {integrity: sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==}
+ engines: {node: '>=18'}
tldts-core@6.1.86:
resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==}
@@ -9236,8 +9244,8 @@ packages:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
- yocto-queue@1.2.1:
- resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==}
+ yocto-queue@1.2.2:
+ resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==}
engines: {node: '>=12.20'}
snapshots:
@@ -10372,14 +10380,14 @@ snapshots:
'@bcoe/v8-coverage@0.2.3': {}
- '@commitlint/cli@20.1.0(@types/node@25.0.3)(typescript@4.9.5)':
+ '@commitlint/cli@20.2.0(@types/node@25.0.3)(typescript@4.9.5)':
dependencies:
- '@commitlint/format': 20.0.0
- '@commitlint/lint': 20.0.0
- '@commitlint/load': 20.1.0(@types/node@25.0.3)(typescript@4.9.5)
- '@commitlint/read': 20.0.0
- '@commitlint/types': 20.0.0
- tinyexec: 1.0.1
+ '@commitlint/format': 20.2.0
+ '@commitlint/lint': 20.2.0
+ '@commitlint/load': 20.2.0(@types/node@25.0.3)(typescript@4.9.5)
+ '@commitlint/read': 20.2.0
+ '@commitlint/types': 20.2.0
+ tinyexec: 1.0.2
yargs: 17.7.2
transitivePeerDependencies:
- '@types/node'
@@ -10390,14 +10398,14 @@ snapshots:
'@commitlint/types': 19.8.0
conventional-changelog-conventionalcommits: 7.0.2
- '@commitlint/config-validator@20.0.0':
+ '@commitlint/config-validator@20.2.0':
dependencies:
- '@commitlint/types': 20.0.0
+ '@commitlint/types': 20.2.0
ajv: 8.17.1
- '@commitlint/ensure@20.0.0':
+ '@commitlint/ensure@20.2.0':
dependencies:
- '@commitlint/types': 20.0.0
+ '@commitlint/types': 20.2.0
lodash.camelcase: 4.3.0
lodash.kebabcase: 4.1.1
lodash.snakecase: 4.1.1
@@ -10406,32 +10414,32 @@ snapshots:
'@commitlint/execute-rule@20.0.0': {}
- '@commitlint/format@20.0.0':
+ '@commitlint/format@20.2.0':
dependencies:
- '@commitlint/types': 20.0.0
+ '@commitlint/types': 20.2.0
chalk: 5.6.2
- '@commitlint/is-ignored@20.0.0':
+ '@commitlint/is-ignored@20.2.0':
dependencies:
- '@commitlint/types': 20.0.0
+ '@commitlint/types': 20.2.0
semver: 7.7.3
- '@commitlint/lint@20.0.0':
+ '@commitlint/lint@20.2.0':
dependencies:
- '@commitlint/is-ignored': 20.0.0
- '@commitlint/parse': 20.0.0
- '@commitlint/rules': 20.0.0
- '@commitlint/types': 20.0.0
+ '@commitlint/is-ignored': 20.2.0
+ '@commitlint/parse': 20.2.0
+ '@commitlint/rules': 20.2.0
+ '@commitlint/types': 20.2.0
- '@commitlint/load@20.1.0(@types/node@25.0.3)(typescript@4.9.5)':
+ '@commitlint/load@20.2.0(@types/node@25.0.3)(typescript@4.9.5)':
dependencies:
- '@commitlint/config-validator': 20.0.0
+ '@commitlint/config-validator': 20.2.0
'@commitlint/execute-rule': 20.0.0
- '@commitlint/resolve-extends': 20.1.0
- '@commitlint/types': 20.0.0
+ '@commitlint/resolve-extends': 20.2.0
+ '@commitlint/types': 20.2.0
chalk: 5.6.2
cosmiconfig: 9.0.0(typescript@4.9.5)
- cosmiconfig-typescript-loader: 6.1.0(@types/node@25.0.3)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5)
+ cosmiconfig-typescript-loader: 6.2.0(@types/node@25.0.3)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5)
lodash.isplainobject: 4.0.6
lodash.merge: 4.6.2
lodash.uniq: 4.5.0
@@ -10441,35 +10449,35 @@ snapshots:
'@commitlint/message@20.0.0': {}
- '@commitlint/parse@20.0.0':
+ '@commitlint/parse@20.2.0':
dependencies:
- '@commitlint/types': 20.0.0
+ '@commitlint/types': 20.2.0
conventional-changelog-angular: 7.0.0
conventional-commits-parser: 5.0.0
- '@commitlint/read@20.0.0':
+ '@commitlint/read@20.2.0':
dependencies:
'@commitlint/top-level': 20.0.0
- '@commitlint/types': 20.0.0
+ '@commitlint/types': 20.2.0
git-raw-commits: 4.0.0
minimist: 1.2.8
- tinyexec: 1.0.1
+ tinyexec: 1.0.2
- '@commitlint/resolve-extends@20.1.0':
+ '@commitlint/resolve-extends@20.2.0':
dependencies:
- '@commitlint/config-validator': 20.0.0
- '@commitlint/types': 20.0.0
+ '@commitlint/config-validator': 20.2.0
+ '@commitlint/types': 20.2.0
global-directory: 4.0.1
import-meta-resolve: 4.2.0
lodash.mergewith: 4.6.2
resolve-from: 5.0.0
- '@commitlint/rules@20.0.0':
+ '@commitlint/rules@20.2.0':
dependencies:
- '@commitlint/ensure': 20.0.0
+ '@commitlint/ensure': 20.2.0
'@commitlint/message': 20.0.0
'@commitlint/to-lines': 20.0.0
- '@commitlint/types': 20.0.0
+ '@commitlint/types': 20.2.0
'@commitlint/to-lines@20.0.0': {}
@@ -10482,9 +10490,9 @@ snapshots:
'@types/conventional-commits-parser': 5.0.1
chalk: 5.5.0
- '@commitlint/types@20.0.0':
+ '@commitlint/types@20.2.0':
dependencies:
- '@types/conventional-commits-parser': 5.0.1
+ '@types/conventional-commits-parser': 5.0.2
chalk: 5.6.2
'@csstools/cascade-layer-name-parser@1.0.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2)':
@@ -11315,7 +11323,7 @@ snapshots:
'@grpc/grpc-js@1.9.15':
dependencies:
'@grpc/proto-loader': 0.7.10
- '@types/node': 24.6.2
+ '@types/node': 25.0.3
'@grpc/proto-loader@0.6.13':
dependencies:
@@ -12406,7 +12414,7 @@ snapshots:
'@types/body-parser@1.19.3':
dependencies:
'@types/connect': 3.4.38
- '@types/node': 16.18.55
+ '@types/node': 25.0.3
'@types/compression@1.7.5':
dependencies:
@@ -12420,6 +12428,10 @@ snapshots:
dependencies:
'@types/node': 24.6.2
+ '@types/conventional-commits-parser@5.0.2':
+ dependencies:
+ '@types/node': 25.0.3
+
'@types/eslint-scope@3.7.7':
dependencies:
'@types/eslint': 9.6.1
@@ -12443,7 +12455,7 @@ snapshots:
'@types/express-serve-static-core@4.17.37':
dependencies:
- '@types/node': 16.18.55
+ '@types/node': 25.0.3
'@types/qs': 6.9.8
'@types/range-parser': 1.2.5
'@types/send': 0.17.2
@@ -12487,7 +12499,7 @@ snapshots:
'@types/jsonwebtoken@8.5.9':
dependencies:
- '@types/node': 24.6.2
+ '@types/node': 25.0.3
optional: true
'@types/less@3.0.6': {}
@@ -14126,7 +14138,7 @@ snapshots:
core-util-is@1.0.3: {}
- cosmiconfig-typescript-loader@6.1.0(@types/node@25.0.3)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5):
+ cosmiconfig-typescript-loader@6.2.0(@types/node@25.0.3)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5):
dependencies:
'@types/node': 25.0.3
cosmiconfig: 9.0.0(typescript@4.9.5)
@@ -14162,7 +14174,7 @@ snapshots:
dependencies:
env-paths: 2.2.1
import-fresh: 3.3.1
- js-yaml: 4.1.0
+ js-yaml: 4.1.1
parse-json: 5.2.0
optionalDependencies:
typescript: 4.9.5
@@ -16370,7 +16382,7 @@ snapshots:
'@jest/expect': 30.2.0
'@jest/test-result': 30.2.0
'@jest/types': 30.2.0
- '@types/node': 24.6.2
+ '@types/node': 25.0.3
chalk: 4.1.2
co: 4.6.0
dedent: 1.7.0
@@ -16509,7 +16521,7 @@ snapshots:
'@jest/environment': 30.2.0
'@jest/fake-timers': 30.2.0
'@jest/types': 30.2.0
- '@types/node': 24.6.2
+ '@types/node': 25.0.3
jest-mock: 30.2.0
jest-util: 30.2.0
jest-validate: 30.2.0
@@ -16666,7 +16678,7 @@ snapshots:
jest-util@29.7.0:
dependencies:
'@jest/types': 29.6.3
- '@types/node': 24.6.2
+ '@types/node': 25.0.3
chalk: 4.1.2
ci-info: 3.9.0
graceful-fs: 4.2.11
@@ -16722,7 +16734,7 @@ snapshots:
jest-worker@30.2.0:
dependencies:
- '@types/node': 24.6.2
+ '@types/node': 25.0.3
'@ungap/structured-clone': 1.3.0
jest-util: 30.2.0
merge-stream: 2.0.0
@@ -16776,6 +16788,10 @@ snapshots:
dependencies:
argparse: 2.0.1
+ js-yaml@4.1.1:
+ dependencies:
+ argparse: 2.0.1
+
jsdom@26.1.0:
dependencies:
cssstyle: 4.6.0
@@ -17783,7 +17799,7 @@ snapshots:
p-limit@4.0.0:
dependencies:
- yocto-queue: 1.2.1
+ yocto-queue: 1.2.2
p-locate@3.0.0:
dependencies:
@@ -18665,7 +18681,7 @@ snapshots:
'@protobufjs/pool': 1.1.0
'@protobufjs/utf8': 1.1.0
'@types/long': 4.0.2
- '@types/node': 24.6.2
+ '@types/node': 25.0.3
long: 4.0.0
optional: true
@@ -19739,7 +19755,7 @@ snapshots:
dependencies:
setimmediate: 1.0.5
- tinyexec@1.0.1: {}
+ tinyexec@1.0.2: {}
tldts-core@6.1.86: {}
@@ -20726,4 +20742,4 @@ snapshots:
yocto-queue@0.1.0: {}
- yocto-queue@1.2.1: {}
+ yocto-queue@1.2.2: {}
From ff814aee70652c2cb873f4fae670f90f085f266f Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 1 Jan 2026 09:43:19 +0000
Subject: [PATCH 076/215] chore(deps-dev): bump
stylelint-config-recommended-vue in /web
Bumps [stylelint-config-recommended-vue](https://github.com/ota-meshi/stylelint-config-recommended-vue) from 1.5.0 to 1.6.1.
- [Release notes](https://github.com/ota-meshi/stylelint-config-recommended-vue/releases)
- [Changelog](https://github.com/ota-meshi/stylelint-config-recommended-vue/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ota-meshi/stylelint-config-recommended-vue/compare/v1.5.0...v1.6.1)
---
updated-dependencies:
- dependency-name: stylelint-config-recommended-vue
dependency-version: 1.6.1
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
web/package.json | 2 +-
web/pnpm-lock.yaml | 24 +++++++++++++++++-------
2 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/web/package.json b/web/package.json
index c65c2ab7..2eb8134d 100644
--- a/web/package.json
+++ b/web/package.json
@@ -80,7 +80,7 @@
"prettier": "3.6.2",
"stylelint": "^15.11.0",
"stylelint-config-prettier": "^9.0.5",
- "stylelint-config-recommended-vue": "^1.5.0",
+ "stylelint-config-recommended-vue": "^1.6.1",
"stylelint-config-standard": "^34.0.0",
"ts-jest": "^29.4.6",
"vue-client-only": "^2.1.0",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index 5cbbe2fe..b4556d26 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -178,8 +178,8 @@ importers:
specifier: ^9.0.5
version: 9.0.5(stylelint@15.11.0(typescript@4.9.5))
stylelint-config-recommended-vue:
- specifier: ^1.5.0
- version: 1.5.0(postcss-html@1.7.0)(stylelint@15.11.0(typescript@4.9.5))
+ specifier: ^1.6.1
+ version: 1.6.1(postcss-html@1.7.0)(stylelint@15.11.0(typescript@4.9.5))
stylelint-config-standard:
specifier: ^34.0.0
version: 34.0.0(stylelint@15.11.0(typescript@4.9.5))
@@ -8240,8 +8240,8 @@ packages:
peerDependencies:
stylelint: '>= 11.x < 15'
- stylelint-config-recommended-vue@1.5.0:
- resolution: {integrity: sha512-65TAK/clUqkNtkZLcuytoxU0URQYlml+30Nhop7sRkCZ/mtWdXt7T+spPSB3KMKlb+82aEVJ4OrcstyDBdbosg==}
+ stylelint-config-recommended-vue@1.6.1:
+ resolution: {integrity: sha512-lLW7hTIMBiTfjenGuDq2kyHA6fBWd/+Df7MO4/AWOxiFeXP9clbpKgg27kHfwA3H7UNMGC7aeP3mNlZB5LMmEQ==}
engines: {node: ^12 || >=14}
peerDependencies:
postcss-html: ^1.0.0
@@ -8253,6 +8253,12 @@ packages:
peerDependencies:
stylelint: ^15.10.0
+ stylelint-config-recommended@17.0.0:
+ resolution: {integrity: sha512-WaMSdEiPfZTSFVoYmJbxorJfA610O0tlYuU2aEwY33UQhSPgFbClrVJYWvy3jGJx+XW37O+LyNLiZOEXhKhJmA==}
+ engines: {node: '>=18.12.0'}
+ peerDependencies:
+ stylelint: ^16.23.0
+
stylelint-config-standard@34.0.0:
resolution: {integrity: sha512-u0VSZnVyW9VSryBG2LSO+OQTjN7zF9XJaAJRX/4EwkmU0R2jYwmBSN10acqZisDitS0CLiEiGjX7+Hrq8TAhfQ==}
engines: {node: ^14.13.1 || >=16.0.0}
@@ -19492,18 +19498,22 @@ snapshots:
dependencies:
stylelint: 15.11.0(typescript@4.9.5)
- stylelint-config-recommended-vue@1.5.0(postcss-html@1.7.0)(stylelint@15.11.0(typescript@4.9.5)):
+ stylelint-config-recommended-vue@1.6.1(postcss-html@1.7.0)(stylelint@15.11.0(typescript@4.9.5)):
dependencies:
postcss-html: 1.7.0
- semver: 7.5.4
+ semver: 7.7.3
stylelint: 15.11.0(typescript@4.9.5)
stylelint-config-html: 1.1.0(postcss-html@1.7.0)(stylelint@15.11.0(typescript@4.9.5))
- stylelint-config-recommended: 13.0.0(stylelint@15.11.0(typescript@4.9.5))
+ stylelint-config-recommended: 17.0.0(stylelint@15.11.0(typescript@4.9.5))
stylelint-config-recommended@13.0.0(stylelint@15.11.0(typescript@4.9.5)):
dependencies:
stylelint: 15.11.0(typescript@4.9.5)
+ stylelint-config-recommended@17.0.0(stylelint@15.11.0(typescript@4.9.5)):
+ dependencies:
+ stylelint: 15.11.0(typescript@4.9.5)
+
stylelint-config-standard@34.0.0(stylelint@15.11.0(typescript@4.9.5)):
dependencies:
stylelint: 15.11.0(typescript@4.9.5)
From a0ee492f6e370aac2e9f86831cf4ec4be38cc437 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Thu, 1 Jan 2026 12:13:36 +0200
Subject: [PATCH 077/215] Updated user + messages count
---
web/pages/index.vue | 4 ++--
web/pages/login.vue | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/web/pages/index.vue b/web/pages/index.vue
index 3889e88d..0171ce06 100644
--- a/web/pages/index.vue
+++ b/web/pages/index.vue
@@ -51,8 +51,8 @@
- ⚡Trusted by 13,195+ happy users who have sent or received
- more than 5,263,593+ messages.
+ ⚡Trusted by 16,212+ happy users who have sent or received
+ more than 5,921,545+ messages.
Welcome
- Join 13,195+ happy users who have sent or
+ Join 16,212+ happy users who have sent or
- received more than 5,263,593+ SMS messages
+ received more than 5,921,545+ SMS messages
From ebead9bb6f7b790e7c0a969fe25f691c799253e8 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 1 Jan 2026 10:18:18 +0000
Subject: [PATCH 078/215] chore(deps-dev): bump @babel/eslint-parser from
7.27.5 to 7.28.5 in /web
Bumps [@babel/eslint-parser](https://github.com/babel/babel/tree/HEAD/eslint/babel-eslint-parser) from 7.27.5 to 7.28.5.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.28.5/eslint/babel-eslint-parser)
---
updated-dependencies:
- dependency-name: "@babel/eslint-parser"
dependency-version: 7.28.5
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
web/package.json | 2 +-
web/pnpm-lock.yaml | 14 +++++++-------
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/web/package.json b/web/package.json
index c66313ef..88ee1d92 100644
--- a/web/package.json
+++ b/web/package.json
@@ -54,7 +54,7 @@
"webpack": "^5.104.1"
},
"devDependencies": {
- "@babel/eslint-parser": "^7.27.5",
+ "@babel/eslint-parser": "^7.28.5",
"@commitlint/cli": "^20.2.0",
"@commitlint/config-conventional": "^19.8.0",
"@nuxt/types": "^2.18.1",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index bb7f17dd..1d328728 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -100,8 +100,8 @@ importers:
version: 5.104.1
devDependencies:
'@babel/eslint-parser':
- specifier: ^7.27.5
- version: 7.27.5(@babel/core@7.28.4)(eslint@8.57.1)
+ specifier: ^7.28.5
+ version: 7.28.5(@babel/core@7.28.4)(eslint@8.57.1)
'@commitlint/cli':
specifier: ^20.2.0
version: 20.2.0(@types/node@25.0.3)(typescript@4.9.5)
@@ -244,8 +244,8 @@ packages:
resolution: {integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==}
engines: {node: '>=6.9.0'}
- '@babel/eslint-parser@7.27.5':
- resolution: {integrity: sha512-HLkYQfRICudzcOtjGwkPvGc5nF1b4ljLZh1IRDj50lRZ718NAKVgQpIAUX8bfg6u/yuSKY3L7E0YzIV+OxrB8Q==}
+ '@babel/eslint-parser@7.28.5':
+ resolution: {integrity: sha512-fcdRcWahONYo+JRnJg1/AekOacGvKx12Gu0qXJXFi2WBqQA1i7+O5PaxRB7kxE/Op94dExnCiiar6T09pvdHpA==}
engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0}
peerDependencies:
'@babel/core': ^7.11.0
@@ -9336,7 +9336,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/eslint-parser@7.27.5(@babel/core@7.28.4)(eslint@8.57.1)':
+ '@babel/eslint-parser@7.28.5(@babel/core@7.28.4)(eslint@8.57.1)':
dependencies:
'@babel/core': 7.28.4
'@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1
@@ -20233,7 +20233,7 @@ snapshots:
espree: 9.6.1
esquery: 1.5.0
lodash: 4.17.21
- semver: 7.5.4
+ semver: 7.7.3
transitivePeerDependencies:
- supports-color
@@ -20246,7 +20246,7 @@ snapshots:
espree: 9.6.1
esquery: 1.6.0
lodash: 4.17.21
- semver: 7.7.2
+ semver: 7.7.3
transitivePeerDependencies:
- supports-color
From bd12c040213944442a60f48f77104b4c4656fcb8 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Thu, 1 Jan 2026 13:54:22 +0200
Subject: [PATCH 079/215] Revert "chore(deps-dev): bump
stylelint-config-recommended-vue from 1.5.0 to 1.6.1 in /web"
---
web/package.json | 2 +-
web/pnpm-lock.yaml | 24 +++++++-----------------
2 files changed, 8 insertions(+), 18 deletions(-)
diff --git a/web/package.json b/web/package.json
index 88ee1d92..dd63ade1 100644
--- a/web/package.json
+++ b/web/package.json
@@ -80,7 +80,7 @@
"prettier": "3.7.4",
"stylelint": "^15.11.0",
"stylelint-config-prettier": "^9.0.5",
- "stylelint-config-recommended-vue": "^1.6.1",
+ "stylelint-config-recommended-vue": "^1.5.0",
"stylelint-config-standard": "^34.0.0",
"ts-jest": "^29.4.6",
"vue-client-only": "^2.1.0",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index 1d328728..b2b84a8c 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -178,8 +178,8 @@ importers:
specifier: ^9.0.5
version: 9.0.5(stylelint@15.11.0(typescript@4.9.5))
stylelint-config-recommended-vue:
- specifier: ^1.6.1
- version: 1.6.1(postcss-html@1.7.0)(stylelint@15.11.0(typescript@4.9.5))
+ specifier: ^1.5.0
+ version: 1.5.0(postcss-html@1.7.0)(stylelint@15.11.0(typescript@4.9.5))
stylelint-config-standard:
specifier: ^34.0.0
version: 34.0.0(stylelint@15.11.0(typescript@4.9.5))
@@ -8247,8 +8247,8 @@ packages:
peerDependencies:
stylelint: '>= 11.x < 15'
- stylelint-config-recommended-vue@1.6.1:
- resolution: {integrity: sha512-lLW7hTIMBiTfjenGuDq2kyHA6fBWd/+Df7MO4/AWOxiFeXP9clbpKgg27kHfwA3H7UNMGC7aeP3mNlZB5LMmEQ==}
+ stylelint-config-recommended-vue@1.5.0:
+ resolution: {integrity: sha512-65TAK/clUqkNtkZLcuytoxU0URQYlml+30Nhop7sRkCZ/mtWdXt7T+spPSB3KMKlb+82aEVJ4OrcstyDBdbosg==}
engines: {node: ^12 || >=14}
peerDependencies:
postcss-html: ^1.0.0
@@ -8260,12 +8260,6 @@ packages:
peerDependencies:
stylelint: ^15.10.0
- stylelint-config-recommended@17.0.0:
- resolution: {integrity: sha512-WaMSdEiPfZTSFVoYmJbxorJfA610O0tlYuU2aEwY33UQhSPgFbClrVJYWvy3jGJx+XW37O+LyNLiZOEXhKhJmA==}
- engines: {node: '>=18.12.0'}
- peerDependencies:
- stylelint: ^16.23.0
-
stylelint-config-standard@34.0.0:
resolution: {integrity: sha512-u0VSZnVyW9VSryBG2LSO+OQTjN7zF9XJaAJRX/4EwkmU0R2jYwmBSN10acqZisDitS0CLiEiGjX7+Hrq8TAhfQ==}
engines: {node: ^14.13.1 || >=16.0.0}
@@ -19514,22 +19508,18 @@ snapshots:
dependencies:
stylelint: 15.11.0(typescript@4.9.5)
- stylelint-config-recommended-vue@1.6.1(postcss-html@1.7.0)(stylelint@15.11.0(typescript@4.9.5)):
+ stylelint-config-recommended-vue@1.5.0(postcss-html@1.7.0)(stylelint@15.11.0(typescript@4.9.5)):
dependencies:
postcss-html: 1.7.0
- semver: 7.7.3
+ semver: 7.5.4
stylelint: 15.11.0(typescript@4.9.5)
stylelint-config-html: 1.1.0(postcss-html@1.7.0)(stylelint@15.11.0(typescript@4.9.5))
- stylelint-config-recommended: 17.0.0(stylelint@15.11.0(typescript@4.9.5))
+ stylelint-config-recommended: 13.0.0(stylelint@15.11.0(typescript@4.9.5))
stylelint-config-recommended@13.0.0(stylelint@15.11.0(typescript@4.9.5)):
dependencies:
stylelint: 15.11.0(typescript@4.9.5)
- stylelint-config-recommended@17.0.0(stylelint@15.11.0(typescript@4.9.5)):
- dependencies:
- stylelint: 15.11.0(typescript@4.9.5)
-
stylelint-config-standard@34.0.0(stylelint@15.11.0(typescript@4.9.5)):
dependencies:
stylelint: 15.11.0(typescript@4.9.5)
From bdcc74d091598712c4452e255a1c48c5904a1f46 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Mon, 5 Jan 2026 22:50:59 +0200
Subject: [PATCH 080/215] Fixed the delete user procedure
---
api/go.mod | 2 +-
api/go.sum | 4 ++--
api/pkg/services/marketting_service.go | 6 +++---
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index a7a09bc2..1a9e4882 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -11,7 +11,7 @@ require (
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.30.0
github.com/NdoleStudio/go-otelroundtripper v0.0.13
github.com/NdoleStudio/lemonsqueezy-go v1.2.4
- github.com/NdoleStudio/plunk-go v0.0.1
+ github.com/NdoleStudio/plunk-go v0.0.2
github.com/avast/retry-go v3.0.0+incompatible
github.com/carlmjohnson/requests v0.25.1
github.com/cloudevents/sdk-go/v2 v2.16.2
diff --git a/api/go.sum b/api/go.sum
index f6302a56..083d8121 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -58,8 +58,8 @@ github.com/NdoleStudio/go-otelroundtripper v0.0.13 h1:fDgdxcNJov4LTrMhXqJnF/E3jO
github.com/NdoleStudio/go-otelroundtripper v0.0.13/go.mod h1:UIUQ22ErFoBUyLuPDrVNRRKmBHBTfzQO9GF1ztqDvqo=
github.com/NdoleStudio/lemonsqueezy-go v1.2.4 h1:BhWlCUH+DIPfSn4g/V7f2nFkMCQuzno9DXKZ7YDrXXA=
github.com/NdoleStudio/lemonsqueezy-go v1.2.4/go.mod h1:2uZlWgn9sbNxOx3JQWLlPrDOC6NT/wmSTOgL3U/fMMw=
-github.com/NdoleStudio/plunk-go v0.0.1 h1:nWPr5pcwFDvhYGZS5n3a3cKGkQvg5re9DSAiFMZCFvs=
-github.com/NdoleStudio/plunk-go v0.0.1/go.mod h1:pqG3zKhpn/A2bL1K+WsWzvfTpOeSkYgXhNk5H65uEc8=
+github.com/NdoleStudio/plunk-go v0.0.2 h1:afPW7MHK4Z3rsybpJBnmTmxKCLKF1M7sPI+BNGPf35A=
+github.com/NdoleStudio/plunk-go v0.0.2/go.mod h1:pqG3zKhpn/A2bL1K+WsWzvfTpOeSkYgXhNk5H65uEc8=
github.com/PuerkitoBio/goquery v1.10.3 h1:pFYcNSqHxBD06Fpj/KsbStFRsgRATgnf3LeXiUkhzPo=
github.com/PuerkitoBio/goquery v1.10.3/go.mod h1:tMUX0zDMHXYlAQk6p35XxQMqMweEKB7iK7iLNd4RH4Y=
github.com/andybalholm/brotli v1.2.0 h1:ukwgCxwYrmACq68yiUqwIWnGY0cTPox/M94sVwToPjQ=
diff --git a/api/pkg/services/marketting_service.go b/api/pkg/services/marketting_service.go
index 17eccdd6..199eb81c 100644
--- a/api/pkg/services/marketting_service.go
+++ b/api/pkg/services/marketting_service.go
@@ -43,17 +43,17 @@ func (service *MarketingService) DeleteContact(ctx context.Context, email string
ctx, span, ctxLogger := service.tracer.StartWithLogger(ctx, service.logger)
defer span.End()
- response, _, err := service.plunkClient.Contacts.List(ctx, map[string]string{"limit": "1", "search": email})
+ response, _, err := service.plunkClient.Contacts.List(ctx, map[string]string{"search": email})
if err != nil {
return service.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, fmt.Sprintf("cannot search for contact with email [%s]", email)))
}
- if len(response.Contacts) == 0 {
+ if len(response.Data) == 0 {
ctxLogger.Info(fmt.Sprintf("no contact found with email [%s], skipping deletion", email))
return nil
}
- contact := response.Contacts[0]
+ contact := response.Data[0]
if _, err = service.plunkClient.Contacts.Delete(ctx, contact.ID); err != nil {
return service.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, fmt.Sprintf("cannot delete user with ID [%s] from contacts", contact.Data[string(semconv.EnduserIDKey)])))
}
From bd94f49bcf4e7e17e7281c65307f12a2996e7003 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Wed, 14 Jan 2026 01:12:20 +0200
Subject: [PATCH 081/215] Add API for fetching the payment history for a user
---
api/docs/docs.go | 361 +++++++++++++++++++------
api/docs/swagger.json | 333 ++++++++++++++++++-----
api/docs/swagger.yaml | 265 +++++++++++++-----
api/go.mod | 2 +-
api/go.sum | 4 +-
api/pkg/entities/user.go | 2 +-
api/pkg/handlers/user_handler.go | 61 +++++
api/pkg/responses/billing_responses.go | 4 +-
api/pkg/responses/user_responses.go | 44 ++-
api/pkg/services/user_service.go | 38 ++-
web/models/api.ts | 136 ++++++----
web/pages/billing/index.vue | 97 +++++++
web/store/index.ts | 32 +++
13 files changed, 1106 insertions(+), 273 deletions(-)
diff --git a/api/docs/docs.go b/api/docs/docs.go
index 21f3a971..60d623e7 100644
--- a/api/docs/docs.go
+++ b/api/docs/docs.go
@@ -151,7 +151,7 @@ const docTemplate = `{
"ApiKeyAuth": []
}
],
- "description": "Sends bulk SMS messages to multiple users from a CSV or Excel file.",
+ "description": "Sends bulk SMS messages to multiple users based on our [CSV template](https://httpsms.com/templates/httpsms-bulk.csv) or our [Excel template](https://httpsms.com/templates/httpsms-bulk.xlsx).",
"consumes": [
"multipart/form-data"
],
@@ -165,7 +165,7 @@ const docTemplate = `{
"parameters": [
{
"type": "file",
- "description": "The Excel or CSV file formatted according to the templates",
+ "description": "The Excel or CSV file containing the messages to be sent.",
"name": "document",
"in": "formData",
"required": true
@@ -710,53 +710,6 @@ const docTemplate = `{
}
}
},
- "/lemonsqueezy/event": {
- "post": {
- "description": "Publish a lemonsqueezy event to the registered listeners",
- "consumes": [
- "application/json"
- ],
- "produces": [
- "application/json"
- ],
- "tags": [
- "Lemonsqueezy"
- ],
- "summary": "Consume a lemonsqueezy event",
- "responses": {
- "204": {
- "description": "No Content",
- "schema": {
- "$ref": "#/definitions/responses.NoContent"
- }
- },
- "400": {
- "description": "Bad Request",
- "schema": {
- "$ref": "#/definitions/responses.BadRequest"
- }
- },
- "401": {
- "description": "Unauthorized",
- "schema": {
- "$ref": "#/definitions/responses.Unauthorized"
- }
- },
- "422": {
- "description": "Unprocessable Entity",
- "schema": {
- "$ref": "#/definitions/responses.UnprocessableEntity"
- }
- },
- "500": {
- "description": "Internal Server Error",
- "schema": {
- "$ref": "#/definitions/responses.InternalServerError"
- }
- }
- }
- }
- },
"/message-threads": {
"get": {
"security": [
@@ -1419,7 +1372,7 @@ const docTemplate = `{
"ApiKeyAuth": []
}
],
- "description": "Add a new SMS message to be sent by the android phone",
+ "description": "Add a new SMS message to be sent by your Android phone",
"consumes": [
"application/json"
],
@@ -1429,10 +1382,10 @@ const docTemplate = `{
"tags": [
"Messages"
],
- "summary": "Send a new SMS message",
+ "summary": "Send an SMS message",
"parameters": [
{
- "description": "PostSend message request payload",
+ "description": "Send message request payload",
"name": "payload",
"in": "body",
"required": true,
@@ -2410,6 +2363,110 @@ const docTemplate = `{
}
}
},
+ "/users/subscription/invoices": {
+ "get": {
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "description": "Subscription invoices are generated throughout the lifecycle of a subscription, typically there is one at the time of purchase and then one for each renewal.",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "tags": [
+ "Users"
+ ],
+ "summary": "Get the last 10 subscription invoices.",
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/responses.UserInvoicesResponse"
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/responses.BadRequest"
+ }
+ },
+ "401": {
+ "description": "Unauthorized",
+ "schema": {
+ "$ref": "#/definitions/responses.Unauthorized"
+ }
+ },
+ "422": {
+ "description": "Unprocessable Entity",
+ "schema": {
+ "$ref": "#/definitions/responses.UnprocessableEntity"
+ }
+ },
+ "500": {
+ "description": "Internal Server Error",
+ "schema": {
+ "$ref": "#/definitions/responses.InternalServerError"
+ }
+ }
+ }
+ }
+ },
+ "/users/subscription/invoices/{subscriptionInvoiceID}": {
+ "post": {
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "description": "Generates a new invoice for the given subscription with given parameters.",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/pdf"
+ ],
+ "tags": [
+ "Users"
+ ],
+ "summary": "Generate a subscription invoice",
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "type": "file"
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/responses.BadRequest"
+ }
+ },
+ "401": {
+ "description": "Unauthorized",
+ "schema": {
+ "$ref": "#/definitions/responses.Unauthorized"
+ }
+ },
+ "422": {
+ "description": "Unprocessable Entity",
+ "schema": {
+ "$ref": "#/definitions/responses.UnprocessableEntity"
+ }
+ },
+ "500": {
+ "description": "Internal Server Error",
+ "schema": {
+ "$ref": "#/definitions/responses.InternalServerError"
+ }
+ }
+ }
+ }
+ },
"/users/{userID}/api-keys": {
"delete": {
"security": [
@@ -2946,28 +3003,16 @@ const docTemplate = `{
"entities.Message": {
"type": "object",
"required": [
- "can_be_polled",
"contact",
"content",
"created_at",
- "delivered_at",
"encrypted",
- "expired_at",
- "failed_at",
- "failure_reason",
"id",
- "last_attempted_at",
"max_send_attempts",
"order_timestamp",
"owner",
- "received_at",
- "request_id",
"request_received_at",
- "scheduled_at",
- "scheduled_send_time",
"send_attempt_count",
- "send_time",
- "sent_at",
"sim",
"status",
"type",
@@ -2975,10 +3020,6 @@ const docTemplate = `{
"user_id"
],
"properties": {
- "can_be_polled": {
- "type": "boolean",
- "example": false
- },
"contact": {
"type": "string",
"example": "+18005550100"
@@ -3158,12 +3199,10 @@ const docTemplate = `{
"type": "object",
"required": [
"created_at",
- "fcm_token",
"id",
"max_send_attempts",
"message_expiration_seconds",
"messages_per_minute",
- "missed_call_auto_reply",
"phone_number",
"sim",
"updated_at",
@@ -3284,7 +3323,6 @@ const docTemplate = `{
"entities.User": {
"type": "object",
"required": [
- "active_phone_id",
"api_key",
"created_at",
"email",
@@ -3293,11 +3331,7 @@ const docTemplate = `{
"notification_message_status_enabled",
"notification_newsletter_enabled",
"notification_webhook_enabled",
- "subscription_ends_at",
- "subscription_id",
"subscription_name",
- "subscription_renews_at",
- "subscription_status",
"timezone",
"updated_at"
],
@@ -3342,10 +3376,6 @@ const docTemplate = `{
"type": "string",
"example": "2022-06-05T14:26:02.302718+03:00"
},
- "subscription_id": {
- "type": "string",
- "example": "8f9c71b8-b84e-4417-8408-a62274f65a08"
- },
"subscription_name": {
"type": "string",
"example": "free"
@@ -3639,9 +3669,9 @@ const docTemplate = `{
"example": "153554b5-ae44-44a0-8f4f-7bbac5657ad4"
},
"send_at": {
- "description": "SendAt is an optional parameter used to schedule a message to be sent in the future. The time is considered to be in your profile's local timezone.",
+ "description": "SendAt is an optional parameter used to schedule a message to be sent in the future. The time is considered to be in your profile's local timezone and you can queue messages for up to 20 days (480 hours) in the future.",
"type": "string",
- "example": "2022-06-05T14:26:09.527976+03:00"
+ "example": "2025-12-19T16:39:57-08:00"
},
"to": {
"type": "string",
@@ -4288,6 +4318,27 @@ const docTemplate = `{
}
}
},
+ "responses.UserInvoicesResponse": {
+ "type": "object",
+ "required": [
+ "data",
+ "message",
+ "status"
+ ],
+ "properties": {
+ "data": {
+ "$ref": "#/definitions/responses.subscriptionInvoicesAPIResponse"
+ },
+ "message": {
+ "type": "string",
+ "example": "Request handled successfully"
+ },
+ "status": {
+ "type": "string",
+ "example": "success"
+ }
+ }
+ },
"responses.UserResponse": {
"type": "object",
"required": [
@@ -4353,6 +4404,154 @@ const docTemplate = `{
"example": "success"
}
}
+ },
+ "responses.subscriptionInvoicesAPIResponse": {
+ "type": "object",
+ "required": [
+ "data"
+ ],
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": [
+ "attributes",
+ "id",
+ "type"
+ ],
+ "properties": {
+ "attributes": {
+ "type": "object",
+ "required": [
+ "billing_reason",
+ "card_brand",
+ "card_last_four",
+ "created_at",
+ "currency",
+ "currency_rate",
+ "discount_total",
+ "discount_total_formatted",
+ "discount_total_usd",
+ "refunded",
+ "refunded_amount",
+ "refunded_amount_formatted",
+ "refunded_amount_usd",
+ "refunded_at",
+ "status",
+ "status_formatted",
+ "subtotal",
+ "subtotal_formatted",
+ "subtotal_usd",
+ "tax",
+ "tax_formatted",
+ "tax_inclusive",
+ "tax_usd",
+ "total",
+ "total_formatted",
+ "total_usd",
+ "updated_at",
+ "user_email",
+ "user_name"
+ ],
+ "properties": {
+ "billing_reason": {
+ "type": "string"
+ },
+ "card_brand": {
+ "type": "string"
+ },
+ "card_last_four": {
+ "type": "string"
+ },
+ "created_at": {
+ "type": "string"
+ },
+ "currency": {
+ "type": "string"
+ },
+ "currency_rate": {
+ "type": "string"
+ },
+ "discount_total": {
+ "type": "integer"
+ },
+ "discount_total_formatted": {
+ "type": "string"
+ },
+ "discount_total_usd": {
+ "type": "integer"
+ },
+ "refunded": {
+ "type": "boolean"
+ },
+ "refunded_amount": {
+ "type": "integer"
+ },
+ "refunded_amount_formatted": {
+ "type": "string"
+ },
+ "refunded_amount_usd": {
+ "type": "integer"
+ },
+ "refunded_at": {},
+ "status": {
+ "type": "string"
+ },
+ "status_formatted": {
+ "type": "string"
+ },
+ "subtotal": {
+ "type": "integer"
+ },
+ "subtotal_formatted": {
+ "type": "string"
+ },
+ "subtotal_usd": {
+ "type": "integer"
+ },
+ "tax": {
+ "type": "integer"
+ },
+ "tax_formatted": {
+ "type": "string"
+ },
+ "tax_inclusive": {
+ "type": "boolean"
+ },
+ "tax_usd": {
+ "type": "integer"
+ },
+ "total": {
+ "type": "integer"
+ },
+ "total_formatted": {
+ "type": "string"
+ },
+ "total_usd": {
+ "type": "integer"
+ },
+ "updated_at": {
+ "type": "string"
+ },
+ "user_email": {
+ "type": "string"
+ },
+ "user_name": {
+ "type": "string"
+ }
+ }
+ },
+ "id": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
}
},
"securityDefinitions": {
diff --git a/api/docs/swagger.json b/api/docs/swagger.json
index 5cef4eb0..35e5a245 100644
--- a/api/docs/swagger.json
+++ b/api/docs/swagger.json
@@ -133,7 +133,7 @@
"ApiKeyAuth": []
}
],
- "description": "Sends bulk SMS messages to multiple users from a CSV or Excel file.",
+ "description": "Sends bulk SMS messages to multiple users based on our [CSV template](https://httpsms.com/templates/httpsms-bulk.csv) or our [Excel template](https://httpsms.com/templates/httpsms-bulk.xlsx).",
"consumes": ["multipart/form-data"],
"produces": ["application/json"],
"tags": ["BulkSMS"],
@@ -141,7 +141,7 @@
"parameters": [
{
"type": "file",
- "description": "The Excel or CSV file formatted according to the templates",
+ "description": "The Excel or CSV file containing the messages to be sent.",
"name": "document",
"in": "formData",
"required": true
@@ -638,47 +638,6 @@
}
}
},
- "/lemonsqueezy/event": {
- "post": {
- "description": "Publish a lemonsqueezy event to the registered listeners",
- "consumes": ["application/json"],
- "produces": ["application/json"],
- "tags": ["Lemonsqueezy"],
- "summary": "Consume a lemonsqueezy event",
- "responses": {
- "204": {
- "description": "No Content",
- "schema": {
- "$ref": "#/definitions/responses.NoContent"
- }
- },
- "400": {
- "description": "Bad Request",
- "schema": {
- "$ref": "#/definitions/responses.BadRequest"
- }
- },
- "401": {
- "description": "Unauthorized",
- "schema": {
- "$ref": "#/definitions/responses.Unauthorized"
- }
- },
- "422": {
- "description": "Unprocessable Entity",
- "schema": {
- "$ref": "#/definitions/responses.UnprocessableEntity"
- }
- },
- "500": {
- "description": "Internal Server Error",
- "schema": {
- "$ref": "#/definitions/responses.InternalServerError"
- }
- }
- }
- }
- },
"/message-threads": {
"get": {
"security": [
@@ -1287,14 +1246,14 @@
"ApiKeyAuth": []
}
],
- "description": "Add a new SMS message to be sent by the android phone",
+ "description": "Add a new SMS message to be sent by your Android phone",
"consumes": ["application/json"],
"produces": ["application/json"],
"tags": ["Messages"],
- "summary": "Send a new SMS message",
+ "summary": "Send an SMS message",
"parameters": [
{
- "description": "PostSend message request payload",
+ "description": "Send message request payload",
"name": "payload",
"in": "body",
"required": true,
@@ -2186,6 +2145,98 @@
}
}
},
+ "/users/subscription/invoices": {
+ "get": {
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "description": "Subscription invoices are generated throughout the lifecycle of a subscription, typically there is one at the time of purchase and then one for each renewal.",
+ "consumes": ["application/json"],
+ "produces": ["application/json"],
+ "tags": ["Users"],
+ "summary": "Get the last 10 subscription invoices.",
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "$ref": "#/definitions/responses.UserInvoicesResponse"
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/responses.BadRequest"
+ }
+ },
+ "401": {
+ "description": "Unauthorized",
+ "schema": {
+ "$ref": "#/definitions/responses.Unauthorized"
+ }
+ },
+ "422": {
+ "description": "Unprocessable Entity",
+ "schema": {
+ "$ref": "#/definitions/responses.UnprocessableEntity"
+ }
+ },
+ "500": {
+ "description": "Internal Server Error",
+ "schema": {
+ "$ref": "#/definitions/responses.InternalServerError"
+ }
+ }
+ }
+ }
+ },
+ "/users/subscription/invoices/{subscriptionInvoiceID}": {
+ "post": {
+ "security": [
+ {
+ "ApiKeyAuth": []
+ }
+ ],
+ "description": "Generates a new invoice for the given subscription with given parameters.",
+ "consumes": ["application/json"],
+ "produces": ["application/pdf"],
+ "tags": ["Users"],
+ "summary": "Generate a subscription invoice",
+ "responses": {
+ "200": {
+ "description": "OK",
+ "schema": {
+ "type": "file"
+ }
+ },
+ "400": {
+ "description": "Bad Request",
+ "schema": {
+ "$ref": "#/definitions/responses.BadRequest"
+ }
+ },
+ "401": {
+ "description": "Unauthorized",
+ "schema": {
+ "$ref": "#/definitions/responses.Unauthorized"
+ }
+ },
+ "422": {
+ "description": "Unprocessable Entity",
+ "schema": {
+ "$ref": "#/definitions/responses.UnprocessableEntity"
+ }
+ },
+ "500": {
+ "description": "Internal Server Error",
+ "schema": {
+ "$ref": "#/definitions/responses.InternalServerError"
+ }
+ }
+ }
+ }
+ },
"/users/{userID}/api-keys": {
"delete": {
"security": [
@@ -2686,28 +2737,16 @@
"entities.Message": {
"type": "object",
"required": [
- "can_be_polled",
"contact",
"content",
"created_at",
- "delivered_at",
"encrypted",
- "expired_at",
- "failed_at",
- "failure_reason",
"id",
- "last_attempted_at",
"max_send_attempts",
"order_timestamp",
"owner",
- "received_at",
- "request_id",
"request_received_at",
- "scheduled_at",
- "scheduled_send_time",
"send_attempt_count",
- "send_time",
- "sent_at",
"sim",
"status",
"type",
@@ -2715,10 +2754,6 @@
"user_id"
],
"properties": {
- "can_be_polled": {
- "type": "boolean",
- "example": false
- },
"contact": {
"type": "string",
"example": "+18005550100"
@@ -2898,12 +2933,10 @@
"type": "object",
"required": [
"created_at",
- "fcm_token",
"id",
"max_send_attempts",
"message_expiration_seconds",
"messages_per_minute",
- "missed_call_auto_reply",
"phone_number",
"sim",
"updated_at",
@@ -3021,7 +3054,6 @@
"entities.User": {
"type": "object",
"required": [
- "active_phone_id",
"api_key",
"created_at",
"email",
@@ -3030,11 +3062,7 @@
"notification_message_status_enabled",
"notification_newsletter_enabled",
"notification_webhook_enabled",
- "subscription_ends_at",
- "subscription_id",
"subscription_name",
- "subscription_renews_at",
- "subscription_status",
"timezone",
"updated_at"
],
@@ -3079,10 +3107,6 @@
"type": "string",
"example": "2022-06-05T14:26:02.302718+03:00"
},
- "subscription_id": {
- "type": "string",
- "example": "8f9c71b8-b84e-4417-8408-a62274f65a08"
- },
"subscription_name": {
"type": "string",
"example": "free"
@@ -3332,9 +3356,9 @@
"example": "153554b5-ae44-44a0-8f4f-7bbac5657ad4"
},
"send_at": {
- "description": "SendAt is an optional parameter used to schedule a message to be sent in the future. The time is considered to be in your profile's local timezone.",
+ "description": "SendAt is an optional parameter used to schedule a message to be sent in the future. The time is considered to be in your profile's local timezone and you can queue messages for up to 20 days (480 hours) in the future.",
"type": "string",
- "example": "2022-06-05T14:26:09.527976+03:00"
+ "example": "2025-12-19T16:39:57-08:00"
},
"to": {
"type": "string",
@@ -3877,6 +3901,23 @@
}
}
},
+ "responses.UserInvoicesResponse": {
+ "type": "object",
+ "required": ["data", "message", "status"],
+ "properties": {
+ "data": {
+ "$ref": "#/definitions/responses.subscriptionInvoicesAPIResponse"
+ },
+ "message": {
+ "type": "string",
+ "example": "Request handled successfully"
+ },
+ "status": {
+ "type": "string",
+ "example": "success"
+ }
+ }
+ },
"responses.UserResponse": {
"type": "object",
"required": ["data", "message", "status"],
@@ -3930,6 +3971,148 @@
"example": "success"
}
}
+ },
+ "responses.subscriptionInvoicesAPIResponse": {
+ "type": "object",
+ "required": ["data"],
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "type": "object",
+ "required": ["attributes", "id", "type"],
+ "properties": {
+ "attributes": {
+ "type": "object",
+ "required": [
+ "billing_reason",
+ "card_brand",
+ "card_last_four",
+ "created_at",
+ "currency",
+ "currency_rate",
+ "discount_total",
+ "discount_total_formatted",
+ "discount_total_usd",
+ "refunded",
+ "refunded_amount",
+ "refunded_amount_formatted",
+ "refunded_amount_usd",
+ "refunded_at",
+ "status",
+ "status_formatted",
+ "subtotal",
+ "subtotal_formatted",
+ "subtotal_usd",
+ "tax",
+ "tax_formatted",
+ "tax_inclusive",
+ "tax_usd",
+ "total",
+ "total_formatted",
+ "total_usd",
+ "updated_at",
+ "user_email",
+ "user_name"
+ ],
+ "properties": {
+ "billing_reason": {
+ "type": "string"
+ },
+ "card_brand": {
+ "type": "string"
+ },
+ "card_last_four": {
+ "type": "string"
+ },
+ "created_at": {
+ "type": "string"
+ },
+ "currency": {
+ "type": "string"
+ },
+ "currency_rate": {
+ "type": "string"
+ },
+ "discount_total": {
+ "type": "integer"
+ },
+ "discount_total_formatted": {
+ "type": "string"
+ },
+ "discount_total_usd": {
+ "type": "integer"
+ },
+ "refunded": {
+ "type": "boolean"
+ },
+ "refunded_amount": {
+ "type": "integer"
+ },
+ "refunded_amount_formatted": {
+ "type": "string"
+ },
+ "refunded_amount_usd": {
+ "type": "integer"
+ },
+ "refunded_at": {},
+ "status": {
+ "type": "string"
+ },
+ "status_formatted": {
+ "type": "string"
+ },
+ "subtotal": {
+ "type": "integer"
+ },
+ "subtotal_formatted": {
+ "type": "string"
+ },
+ "subtotal_usd": {
+ "type": "integer"
+ },
+ "tax": {
+ "type": "integer"
+ },
+ "tax_formatted": {
+ "type": "string"
+ },
+ "tax_inclusive": {
+ "type": "boolean"
+ },
+ "tax_usd": {
+ "type": "integer"
+ },
+ "total": {
+ "type": "integer"
+ },
+ "total_formatted": {
+ "type": "string"
+ },
+ "total_usd": {
+ "type": "integer"
+ },
+ "updated_at": {
+ "type": "string"
+ },
+ "user_email": {
+ "type": "string"
+ },
+ "user_name": {
+ "type": "string"
+ }
+ }
+ },
+ "id": {
+ "type": "string"
+ },
+ "type": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
}
},
"securityDefinitions": {
diff --git a/api/docs/swagger.yaml b/api/docs/swagger.yaml
index efc316c4..fdde688c 100644
--- a/api/docs/swagger.yaml
+++ b/api/docs/swagger.yaml
@@ -102,9 +102,6 @@ definitions:
type: object
entities.Message:
properties:
- can_be_polled:
- example: false
- type: boolean
contact:
example: "+18005550100"
type: string
@@ -192,28 +189,16 @@ definitions:
example: WB7DRDWrJZRGbYrv2CKGkqbzvqdC
type: string
required:
- - can_be_polled
- contact
- content
- created_at
- - delivered_at
- encrypted
- - expired_at
- - failed_at
- - failure_reason
- id
- - last_attempted_at
- max_send_attempts
- order_timestamp
- owner
- - received_at
- - request_id
- request_received_at
- - scheduled_at
- - scheduled_send_time
- send_attempt_count
- - send_time
- - sent_at
- sim
- status
- type
@@ -314,12 +299,10 @@ definitions:
type: string
required:
- created_at
- - fcm_token
- id
- max_send_attempts
- message_expiration_seconds
- messages_per_minute
- - missed_call_auto_reply
- phone_number
- sim
- updated_at
@@ -405,9 +388,6 @@ definitions:
subscription_ends_at:
example: "2022-06-05T14:26:02.302718+03:00"
type: string
- subscription_id:
- example: 8f9c71b8-b84e-4417-8408-a62274f65a08
- type: string
subscription_name:
example: free
type: string
@@ -424,7 +404,6 @@ definitions:
example: "2022-06-05T14:26:10.303278+03:00"
type: string
required:
- - active_phone_id
- api_key
- created_at
- email
@@ -433,11 +412,7 @@ definitions:
- notification_message_status_enabled
- notification_newsletter_enabled
- notification_webhook_enabled
- - subscription_ends_at
- - subscription_id
- subscription_name
- - subscription_renews_at
- - subscription_status
- timezone
- updated_at
type: object
@@ -659,8 +634,9 @@ definitions:
description:
SendAt is an optional parameter used to schedule a message to
be sent in the future. The time is considered to be in your profile's local
- timezone.
- example: "2022-06-05T14:26:09.527976+03:00"
+ timezone and you can queue messages for up to 20 days (480 hours) in the
+ future.
+ example: "2025-12-19T16:39:57-08:00"
type: string
to:
example: "+18005550100"
@@ -1135,6 +1111,21 @@ definitions:
- message
- status
type: object
+ responses.UserInvoicesResponse:
+ properties:
+ data:
+ $ref: "#/definitions/responses.subscriptionInvoicesAPIResponse"
+ message:
+ example: Request handled successfully
+ type: string
+ status:
+ example: success
+ type: string
+ required:
+ - data
+ - message
+ - status
+ type: object
responses.UserResponse:
properties:
data:
@@ -1182,6 +1173,114 @@ definitions:
- message
- status
type: object
+ responses.subscriptionInvoicesAPIResponse:
+ properties:
+ data:
+ items:
+ properties:
+ attributes:
+ properties:
+ billing_reason:
+ type: string
+ card_brand:
+ type: string
+ card_last_four:
+ type: string
+ created_at:
+ type: string
+ currency:
+ type: string
+ currency_rate:
+ type: string
+ discount_total:
+ type: integer
+ discount_total_formatted:
+ type: string
+ discount_total_usd:
+ type: integer
+ refunded:
+ type: boolean
+ refunded_amount:
+ type: integer
+ refunded_amount_formatted:
+ type: string
+ refunded_amount_usd:
+ type: integer
+ refunded_at: {}
+ status:
+ type: string
+ status_formatted:
+ type: string
+ subtotal:
+ type: integer
+ subtotal_formatted:
+ type: string
+ subtotal_usd:
+ type: integer
+ tax:
+ type: integer
+ tax_formatted:
+ type: string
+ tax_inclusive:
+ type: boolean
+ tax_usd:
+ type: integer
+ total:
+ type: integer
+ total_formatted:
+ type: string
+ total_usd:
+ type: integer
+ updated_at:
+ type: string
+ user_email:
+ type: string
+ user_name:
+ type: string
+ required:
+ - billing_reason
+ - card_brand
+ - card_last_four
+ - created_at
+ - currency
+ - currency_rate
+ - discount_total
+ - discount_total_formatted
+ - discount_total_usd
+ - refunded
+ - refunded_amount
+ - refunded_amount_formatted
+ - refunded_amount_usd
+ - refunded_at
+ - status
+ - status_formatted
+ - subtotal
+ - subtotal_formatted
+ - subtotal_usd
+ - tax
+ - tax_formatted
+ - tax_inclusive
+ - tax_usd
+ - total
+ - total_formatted
+ - total_usd
+ - updated_at
+ - user_email
+ - user_name
+ type: object
+ id:
+ type: string
+ type:
+ type: string
+ required:
+ - attributes
+ - id
+ - type
+ type: object
+ type: array
+ required:
+ - data
+ type: object
host: api.httpsms.com
info:
contact:
@@ -1282,9 +1381,11 @@ paths:
post:
consumes:
- multipart/form-data
- description: Sends bulk SMS messages to multiple users from a CSV or Excel file.
+ description:
+ Sends bulk SMS messages to multiple users based on our [CSV template](https://httpsms.com/templates/httpsms-bulk.csv)
+ or our [Excel template](https://httpsms.com/templates/httpsms-bulk.xlsx).
parameters:
- - description: The Excel or CSV file formatted according to the templates
+ - description: The Excel or CSV file containing the messages to be sent.
in: formData
name: document
required: true
@@ -1650,37 +1751,6 @@ paths:
summary: Sends a 3CX SMS message
tags:
- 3CXIntegration
- /lemonsqueezy/event:
- post:
- consumes:
- - application/json
- description: Publish a lemonsqueezy event to the registered listeners
- produces:
- - application/json
- responses:
- "204":
- description: No Content
- schema:
- $ref: "#/definitions/responses.NoContent"
- "400":
- description: Bad Request
- schema:
- $ref: "#/definitions/responses.BadRequest"
- "401":
- description: Unauthorized
- schema:
- $ref: "#/definitions/responses.Unauthorized"
- "422":
- description: Unprocessable Entity
- schema:
- $ref: "#/definitions/responses.UnprocessableEntity"
- "500":
- description: Internal Server Error
- schema:
- $ref: "#/definitions/responses.InternalServerError"
- summary: Consume a lemonsqueezy event
- tags:
- - Lemonsqueezy
/message-threads:
get:
consumes:
@@ -2220,9 +2290,9 @@ paths:
post:
consumes:
- application/json
- description: Add a new SMS message to be sent by the android phone
+ description: Add a new SMS message to be sent by your Android phone
parameters:
- - description: PostSend message request payload
+ - description: Send message request payload
in: body
name: payload
required: true
@@ -2253,7 +2323,7 @@ paths:
$ref: "#/definitions/responses.InternalServerError"
security:
- ApiKeyAuth: []
- summary: Send a new SMS message
+ summary: Send an SMS message
tags:
- Messages
/phone-api-keys:
@@ -2866,6 +2936,75 @@ paths:
summary: Currently authenticated user subscription update URL
tags:
- Users
+ /users/subscription/invoices:
+ get:
+ consumes:
+ - application/json
+ description:
+ Subscription invoices are generated throughout the lifecycle of
+ a subscription, typically there is one at the time of purchase and then one
+ for each renewal.
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: OK
+ schema:
+ $ref: "#/definitions/responses.UserInvoicesResponse"
+ "400":
+ description: Bad Request
+ schema:
+ $ref: "#/definitions/responses.BadRequest"
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: "#/definitions/responses.Unauthorized"
+ "422":
+ description: Unprocessable Entity
+ schema:
+ $ref: "#/definitions/responses.UnprocessableEntity"
+ "500":
+ description: Internal Server Error
+ schema:
+ $ref: "#/definitions/responses.InternalServerError"
+ security:
+ - ApiKeyAuth: []
+ summary: Get the last 10 subscription invoices.
+ tags:
+ - Users
+ /users/subscription/invoices/{subscriptionInvoiceID}:
+ post:
+ consumes:
+ - application/json
+ description: Generates a new invoice for the given subscription with given parameters.
+ produces:
+ - application/pdf
+ responses:
+ "200":
+ description: OK
+ schema:
+ type: file
+ "400":
+ description: Bad Request
+ schema:
+ $ref: "#/definitions/responses.BadRequest"
+ "401":
+ description: Unauthorized
+ schema:
+ $ref: "#/definitions/responses.Unauthorized"
+ "422":
+ description: Unprocessable Entity
+ schema:
+ $ref: "#/definitions/responses.UnprocessableEntity"
+ "500":
+ description: Internal Server Error
+ schema:
+ $ref: "#/definitions/responses.InternalServerError"
+ security:
+ - ApiKeyAuth: []
+ summary: Generate a subscription invoice
+ tags:
+ - Users
/webhooks:
get:
consumes:
diff --git a/api/go.mod b/api/go.mod
index 1a9e4882..a798964a 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -10,7 +10,7 @@ require (
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.54.0
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.30.0
github.com/NdoleStudio/go-otelroundtripper v0.0.13
- github.com/NdoleStudio/lemonsqueezy-go v1.2.4
+ github.com/NdoleStudio/lemonsqueezy-go v1.3.1
github.com/NdoleStudio/plunk-go v0.0.2
github.com/avast/retry-go v3.0.0+incompatible
github.com/carlmjohnson/requests v0.25.1
diff --git a/api/go.sum b/api/go.sum
index 083d8121..d1685d6c 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -56,8 +56,8 @@ github.com/Masterminds/sprig v2.22.0+incompatible h1:z4yfnGrZ7netVz+0EDJ0Wi+5VZC
github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o=
github.com/NdoleStudio/go-otelroundtripper v0.0.13 h1:fDgdxcNJov4LTrMhXqJnF/E3jO4HJVczj90wkxh5PSc=
github.com/NdoleStudio/go-otelroundtripper v0.0.13/go.mod h1:UIUQ22ErFoBUyLuPDrVNRRKmBHBTfzQO9GF1ztqDvqo=
-github.com/NdoleStudio/lemonsqueezy-go v1.2.4 h1:BhWlCUH+DIPfSn4g/V7f2nFkMCQuzno9DXKZ7YDrXXA=
-github.com/NdoleStudio/lemonsqueezy-go v1.2.4/go.mod h1:2uZlWgn9sbNxOx3JQWLlPrDOC6NT/wmSTOgL3U/fMMw=
+github.com/NdoleStudio/lemonsqueezy-go v1.3.1 h1:lMUVgdAx2onbOUJIVPR05xAANYuCMXBRaGWpAdA4LiM=
+github.com/NdoleStudio/lemonsqueezy-go v1.3.1/go.mod h1:xKRsRX1jSI6mLrVXyWh2sF/1isxTioZrSjWy6HpA3xQ=
github.com/NdoleStudio/plunk-go v0.0.2 h1:afPW7MHK4Z3rsybpJBnmTmxKCLKF1M7sPI+BNGPf35A=
github.com/NdoleStudio/plunk-go v0.0.2/go.mod h1:pqG3zKhpn/A2bL1K+WsWzvfTpOeSkYgXhNk5H65uEc8=
github.com/PuerkitoBio/goquery v1.10.3 h1:pFYcNSqHxBD06Fpj/KsbStFRsgRATgnf3LeXiUkhzPo=
diff --git a/api/pkg/entities/user.go b/api/pkg/entities/user.go
index a6a92371..fd8de1a5 100644
--- a/api/pkg/entities/user.go
+++ b/api/pkg/entities/user.go
@@ -78,7 +78,7 @@ type User struct {
Timezone string `json:"timezone" example:"Europe/Helsinki" gorm:"default:Africa/Accra"`
ActivePhoneID *uuid.UUID `json:"active_phone_id" gorm:"type:uuid;" example:"32343a19-da5e-4b1b-a767-3298a73703cb" validate:"optional"`
SubscriptionName SubscriptionName `json:"subscription_name" example:"free"`
- SubscriptionID *string `json:"-" example:"8f9c71b8-b84e-4417-8408-a62274f65a08" swaggerignore:"true"`
+ SubscriptionID *string `json:"subscription_id" example:"8f9c71b8-b84e-4417-8408-a62274f65a08" swaggerignore:"true"`
SubscriptionStatus *string `json:"subscription_status" example:"on_trial" validate:"optional"`
SubscriptionRenewsAt *time.Time `json:"subscription_renews_at" example:"2022-06-05T14:26:02.302718+03:00" validate:"optional"`
SubscriptionEndsAt *time.Time `json:"subscription_ends_at" example:"2022-06-05T14:26:02.302718+03:00" validate:"optional"`
diff --git a/api/pkg/handlers/user_handler.go b/api/pkg/handlers/user_handler.go
index 44ec619e..574edf27 100644
--- a/api/pkg/handlers/user_handler.go
+++ b/api/pkg/handlers/user_handler.go
@@ -46,6 +46,8 @@ func (h *UserHandler) RegisterRoutes(router fiber.Router, middlewares ...fiber.H
router.Put("/v1/users/:userID/notifications", h.computeRoute(middlewares, h.UpdateNotifications)...)
router.Get("/v1/users/subscription-update-url", h.computeRoute(middlewares, h.subscriptionUpdateURL)...)
router.Delete("/v1/users/subscription", h.computeRoute(middlewares, h.cancelSubscription)...)
+ router.Get("/v1/users/subscription/invoices", h.computeRoute(middlewares, h.subscriptionPayments)...)
+ router.Post("/v1/users/subscription/invoices/:subscriptionInvoiceID", h.computeRoute(middlewares, h.subscriptionInvoice)...)
}
// Show returns an entities.User
@@ -272,3 +274,62 @@ func (h *UserHandler) DeleteAPIKey(c *fiber.Ctx) error {
return h.responseOK(c, "API Key rotated successfully", user)
}
+
+// subscriptionPayments returns the last 10 payments of the currently authenticated user
+// @Summary Get the last 10 subscription payments.
+// @Description Subscription payments are generated throughout the lifecycle of a subscription, typically there is one at the time of purchase and then one for each renewal.
+// @Security ApiKeyAuth
+// @Tags Users
+// @Accept json
+// @Produce json
+// @Success 200 {object} responses.UserSubscriptionPaymentsResponse
+// @Failure 400 {object} responses.BadRequest
+// @Failure 401 {object} responses.Unauthorized
+// @Failure 422 {object} responses.UnprocessableEntity
+// @Failure 500 {object} responses.InternalServerError
+// @Router /users/subscription/payments [get]
+func (h *UserHandler) subscriptionPayments(c *fiber.Ctx) error {
+ ctx, span, ctxLogger := h.tracer.StartFromFiberCtxWithLogger(c, h.logger)
+ defer span.End()
+
+ invoices, err := h.service.GetSubscriptionPayments(ctx, h.userIDFomContext(c))
+ if err != nil {
+ msg := fmt.Sprintf("cannot get current subscription invoices for user [%s]", h.userFromContext(c))
+ ctxLogger.Error(stacktrace.Propagate(err, msg))
+ return h.responseInternalServerError(c)
+ }
+
+ return h.responseOK(c, "fetched subscription invoices billing usage", invoices)
+}
+
+// subscriptionInvoice generates an invoice for a given subscription invoice ID
+// @Summary Generate a subscription invoice
+// @Description Generates a new invoice PDF file for the given subscription payment with given parameters.
+// @Security ApiKeyAuth
+// @Tags Users
+// @Accept json
+// @Produce application/pdf
+// @Success 200 {file} file
+// @Failure 400 {object} responses.BadRequest
+// @Failure 401 {object} responses.Unauthorized
+// @Failure 422 {object} responses.UnprocessableEntity
+// @Failure 500 {object} responses.InternalServerError
+// @Router /users/subscription/invoices/{subscriptionInvoiceID} [post]
+func (h *UserHandler) subscriptionInvoice(c *fiber.Ctx) error {
+ ctx, span, ctxLogger := h.tracer.StartFromFiberCtxWithLogger(c, h.logger)
+ defer span.End()
+
+ invoiceID := c.Params("subscriptionInvoiceID")
+
+ data, err := h.service.GenerateReceipt(ctx, h.userIDFomContext(c))
+ if err != nil {
+ msg := fmt.Sprintf("cannot generate receipt for invoice ID [%s] and user [%s]", invoiceID, h.userFromContext(c))
+ ctxLogger.Error(stacktrace.Propagate(err, msg))
+ return h.responseInternalServerError(c)
+ }
+
+ c.Set(fiber.HeaderContentType, "application/pdf")
+ c.Set(fiber.HeaderContentDisposition, fmt.Sprintf("attachment; filename=\"%s.pdf\"", invoiceID))
+
+ return c.SendStream(data)
+}
diff --git a/api/pkg/responses/billing_responses.go b/api/pkg/responses/billing_responses.go
index bb51d6ab..0ce46415 100644
--- a/api/pkg/responses/billing_responses.go
+++ b/api/pkg/responses/billing_responses.go
@@ -1,6 +1,8 @@
package responses
-import "github.com/NdoleStudio/httpsms/pkg/entities"
+import (
+ "github.com/NdoleStudio/httpsms/pkg/entities"
+)
// BillingUsagesResponse is the payload containing []entities.BillingUsage
type BillingUsagesResponse struct {
diff --git a/api/pkg/responses/user_responses.go b/api/pkg/responses/user_responses.go
index f2ee6c37..31f95341 100644
--- a/api/pkg/responses/user_responses.go
+++ b/api/pkg/responses/user_responses.go
@@ -1,9 +1,51 @@
package responses
-import "github.com/NdoleStudio/httpsms/pkg/entities"
+import (
+ "time"
+
+ "github.com/NdoleStudio/httpsms/pkg/entities"
+)
// UserResponse is the payload containing entities.User
type UserResponse struct {
response
Data entities.User `json:"data"`
}
+
+// UserSubscriptionPaymentsResponse is the payload containing lemonsqueezy.SubscriptionInvoicesAPIResponse
+type UserSubscriptionPaymentsResponse struct {
+ response
+ Data []struct {
+ Type string `json:"type"`
+ ID string `json:"id"`
+ Attributes struct {
+ BillingReason string `json:"billing_reason"`
+ CardBrand string `json:"card_brand"`
+ CardLastFour string `json:"card_last_four"`
+ Currency string `json:"currency"`
+ CurrencyRate string `json:"currency_rate"`
+ Status string `json:"status"`
+ StatusFormatted string `json:"status_formatted"`
+ Refunded bool `json:"refunded"`
+ RefundedAt any `json:"refunded_at"`
+ Subtotal int `json:"subtotal"`
+ DiscountTotal int `json:"discount_total"`
+ Tax int `json:"tax"`
+ TaxInclusive bool `json:"tax_inclusive"`
+ Total int `json:"total"`
+ RefundedAmount int `json:"refunded_amount"`
+ SubtotalUsd int `json:"subtotal_usd"`
+ DiscountTotalUsd int `json:"discount_total_usd"`
+ TaxUsd int `json:"tax_usd"`
+ TotalUsd int `json:"total_usd"`
+ RefundedAmountUsd int `json:"refunded_amount_usd"`
+ SubtotalFormatted string `json:"subtotal_formatted"`
+ DiscountTotalFormatted string `json:"discount_total_formatted"`
+ TaxFormatted string `json:"tax_formatted"`
+ TotalFormatted string `json:"total_formatted"`
+ RefundedAmountFormatted string `json:"refunded_amount_formatted"`
+ CreatedAt time.Time `json:"created_at"`
+ UpdatedAt time.Time `json:"updated_at"`
+ } `json:"attributes"`
+ } `json:"data"`
+}
diff --git a/api/pkg/services/user_service.go b/api/pkg/services/user_service.go
index e030e1f8..860e1a42 100644
--- a/api/pkg/services/user_service.go
+++ b/api/pkg/services/user_service.go
@@ -3,10 +3,10 @@ package services
import (
"context"
"fmt"
+ "io"
"time"
"firebase.google.com/go/auth"
-
"github.com/NdoleStudio/httpsms/pkg/events"
"github.com/NdoleStudio/httpsms/pkg/emails"
@@ -56,6 +56,42 @@ func NewUserService(
}
}
+// GetSubscriptionPayments fetches the subscription payments for an entities.User
+func (service *UserService) GetSubscriptionPayments(ctx context.Context, userID entities.UserID) (invoices []lemonsqueezy.ApiResponseData[lemonsqueezy.SubscriptionInvoiceAttributes, lemonsqueezy.APIResponseRelationshipsSubscriptionInvoice], err error) {
+ ctx, span, ctxLogger := service.tracer.StartWithLogger(ctx, service.logger)
+ defer span.End()
+
+ user, err := service.repository.Load(ctx, userID)
+ if err != nil {
+ msg := fmt.Sprintf("could not get [%T] with with ID [%s]", user, userID)
+ return invoices, service.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
+ }
+
+ if user.SubscriptionID == nil {
+ ctxLogger.Info(fmt.Sprintf("no subscription ID found for [%T] with ID [%s], returning empty invoices", user, user.ID))
+ return invoices, nil
+ }
+
+ ctxLogger.Info(fmt.Sprintf("fetching subscription payments for [%T] with ID [%s] and subscription [%s]", user, user.ID, *user.SubscriptionID))
+ invoicesResponse, _, err := service.lemonsqueezyClient.SubscriptionInvoices.List(ctx, map[string]string{"filter[subscription_id]": *user.SubscriptionID})
+ if err != nil {
+ msg := fmt.Sprintf("could not get invoices for subscription [%s] for [%T] with with ID [%s]", *user.SubscriptionID, user, user.ID)
+ return invoices, service.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
+ }
+
+ ctxLogger.Info(fmt.Sprintf("fetched [%d] payments for [%T] with ID [%s] and subscription ID [%s]", len(invoicesResponse.Data), user, user.ID, *user.SubscriptionID))
+ return invoicesResponse.Data, nil
+}
+
+// GenerateReceipt generates a receipt for a subscription payment.
+func (service *UserService) GenerateReceipt(ctx context.Context, userID entities.UserID) (reader io.Reader, err error) {
+ ctx, span, ctxLogger := service.tracer.StartWithLogger(ctx, service.logger)
+ defer span.End()
+
+ ctxLogger.Info(fmt.Sprintf("generating receipt for user [%s]", userID))
+ return nil, nil
+}
+
// Get fetches or creates an entities.User
func (service *UserService) Get(ctx context.Context, source string, authUser entities.AuthContext) (*entities.User, error) {
ctx, span := service.tracer.Start(ctx)
diff --git a/web/models/api.ts b/web/models/api.ts
index 7b2d542f..99f15064 100644
--- a/web/models/api.ts
+++ b/web/models/api.ts
@@ -64,8 +64,6 @@ export interface EntitiesHeartbeat {
}
export interface EntitiesMessage {
- /** @example false */
- can_be_polled: boolean
/** @example "+18005550100" */
contact: string
/** @example "This is a sample text message" */
@@ -73,19 +71,19 @@ export interface EntitiesMessage {
/** @example "2022-06-05T14:26:02.302718+03:00" */
created_at: string
/** @example "2022-06-05T14:26:09.527976+03:00" */
- delivered_at: string
+ delivered_at?: string
/** @example false */
encrypted: boolean
/** @example "2022-06-05T14:26:09.527976+03:00" */
- expired_at: string
+ expired_at?: string
/** @example "2022-06-05T14:26:09.527976+03:00" */
- failed_at: string
+ failed_at?: string
/** @example "UNKNOWN" */
- failure_reason: string
+ failure_reason?: string
/** @example "32343a19-da5e-4b1b-a767-3298a73703cb" */
id: string
/** @example "2022-06-05T14:26:09.527976+03:00" */
- last_attempted_at: string
+ last_attempted_at?: string
/** @example 1 */
max_send_attempts: number
/** @example "2022-06-05T14:26:09.527976+03:00" */
@@ -93,24 +91,24 @@ export interface EntitiesMessage {
/** @example "+18005550199" */
owner: string
/** @example "2022-06-05T14:26:09.527976+03:00" */
- received_at: string
+ received_at?: string
/** @example "153554b5-ae44-44a0-8f4f-7bbac5657ad4" */
- request_id: string
+ request_id?: string
/** @example "2022-06-05T14:26:01.520828+03:00" */
request_received_at: string
/** @example "2022-06-05T14:26:09.527976+03:00" */
- scheduled_at: string
+ scheduled_at?: string
/** @example "2022-06-05T14:26:09.527976+03:00" */
- scheduled_send_time: string
+ scheduled_send_time?: string
/** @example 0 */
send_attempt_count: number
/**
* SendDuration is the number of nanoseconds from when the request was received until when the mobile phone send the message
* @example 133414
*/
- send_time: number
+ send_time?: number
/** @example "2022-06-05T14:26:09.527976+03:00" */
- sent_at: string
+ sent_at?: string
/**
* SIM is the SIM card to use to send the message
* * SMS1: use the SIM card in slot 1
@@ -160,7 +158,7 @@ export interface EntitiesPhone {
/** @example "2022-06-05T14:26:02.302718+03:00" */
created_at: string
/** @example "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzd....." */
- fcm_token: string
+ fcm_token?: string
/** @example "32343a19-da5e-4b1b-a767-3298a73703cb" */
id: string
/**
@@ -173,7 +171,7 @@ export interface EntitiesPhone {
/** @example 1 */
messages_per_minute: number
/** @example "This phone cannot receive calls. Please send an SMS instead." */
- missed_call_auto_reply: string
+ missed_call_auto_reply?: string
/** @example "+18005550199" */
phone_number: string
/** SIM card that received the message */
@@ -185,7 +183,7 @@ export interface EntitiesPhone {
}
export interface EntitiesPhoneAPIKey {
- /** @example "pk_DGW8NwQp7mxKaSZ72Xq9v67SLqSbWQvckzzmK8D6rvd7NywSEkdMJtuxKyEkYnCY" */
+ /** @example "pk_DGW8NwQp7mxKaSZ72Xq9v6xxxxx" */
api_key: string
/** @example "2022-06-05T14:26:02.302718+03:00" */
created_at: string
@@ -193,9 +191,9 @@ export interface EntitiesPhoneAPIKey {
id: string
/** @example "Business Phone Key" */
name: string
- /** @example ["[32343a19-da5e-4b1b-a767-3298a73703cb","32343a19-da5e-4b1b-a767-3298a73703cc]"] */
+ /** @example ["32343a19-da5e-4b1b-a767-3298a73703cb","32343a19-da5e-4b1b-a767-3298a73703cc"] */
phone_ids: string[]
- /** @example ["[+18005550199","+18005550100]"] */
+ /** @example ["+18005550199","+18005550100"] */
phone_numbers: string[]
/** @example "2022-06-05T14:26:02.302718+03:00" */
updated_at: string
@@ -207,7 +205,7 @@ export interface EntitiesPhoneAPIKey {
export interface EntitiesUser {
/** @example "32343a19-da5e-4b1b-a767-3298a73703cb" */
- active_phone_id: string
+ active_phone_id?: string
/** @example "x-api-key" */
api_key: string
/** @example "2022-06-05T14:26:02.302718+03:00" */
@@ -225,15 +223,13 @@ export interface EntitiesUser {
/** @example true */
notification_webhook_enabled: boolean
/** @example "2022-06-05T14:26:02.302718+03:00" */
- subscription_ends_at: string
- /** @example "8f9c71b8-b84e-4417-8408-a62274f65a08" */
- subscription_id: string
+ subscription_ends_at?: string
/** @example "free" */
subscription_name: string
/** @example "2022-06-05T14:26:02.302718+03:00" */
- subscription_renews_at: string
+ subscription_renews_at?: string
/** @example "on_trial" */
- subscription_status: string
+ subscription_status?: string
/** @example "Europe/Helsinki" */
timezone: string
/** @example "2022-06-05T14:26:10.303278+03:00" */
@@ -243,11 +239,11 @@ export interface EntitiesUser {
export interface EntitiesWebhook {
/** @example "2022-06-05T14:26:02.302718+03:00" */
created_at: string
- /** @example ["[message.phone.received]"] */
+ /** @example ["message.phone.received"] */
events: string[]
/** @example "32343a19-da5e-4b1b-a767-3298a73703cb" */
id: string
- /** @example ["[+18005550199","+18005550100]"] */
+ /** @example ["+18005550199","+18005550100"] */
phone_numbers: string[]
/** @example "DGW8NwQp7mxKaSZ72Xq9v67SLqSbWQvckzzmK8D6rvd7NywSEkdMJtuxKyEkYnCY" */
signing_key: string
@@ -352,10 +348,10 @@ export interface RequestsMessageSend {
/** @example "This is a sample text message" */
content: string
/**
- * Encrypted is used to determine if the content is end-to-end encrypted. Make sure to set the encryption key on the httpSMS mobile app
+ * Encrypted is an optional parameter used to determine if the content is end-to-end encrypted. Make sure to set the encryption key on the httpSMS mobile app
* @example false
*/
- encrypted: boolean
+ encrypted?: boolean
/** @example "+18005550199" */
from: string
/**
@@ -364,8 +360,8 @@ export interface RequestsMessageSend {
*/
request_id?: string
/**
- * SendAt is an optional parameter used to schedule a message to be sent at a later time
- * @example "2022-06-05T14:26:09.527976+03:00"
+ * SendAt is an optional parameter used to schedule a message to be sent in the future. The time is considered to be in your profile's local timezone and you can queue messages for up to 20 days (480 hours) in the future.
+ * @example "2025-12-19T16:39:57-08:00"
*/
send_at?: string
/** @example "+18005550100" */
@@ -465,7 +461,7 @@ export interface ResponsesBadRequest {
export interface ResponsesBillingUsageResponse {
data: EntitiesBillingUsage
- /** @example "item created successfully" */
+ /** @example "Request handled successfully" */
message: string
/** @example "success" */
status: string
@@ -473,7 +469,7 @@ export interface ResponsesBillingUsageResponse {
export interface ResponsesBillingUsagesResponse {
data: EntitiesBillingUsage[]
- /** @example "item created successfully" */
+ /** @example "Request handled successfully" */
message: string
/** @example "success" */
status: string
@@ -481,7 +477,7 @@ export interface ResponsesBillingUsagesResponse {
export interface ResponsesDiscordResponse {
data: EntitiesDiscord
- /** @example "item created successfully" */
+ /** @example "Request handled successfully" */
message: string
/** @example "success" */
status: string
@@ -489,7 +485,7 @@ export interface ResponsesDiscordResponse {
export interface ResponsesDiscordsResponse {
data: EntitiesDiscord[]
- /** @example "item created successfully" */
+ /** @example "Request handled successfully" */
message: string
/** @example "success" */
status: string
@@ -497,7 +493,7 @@ export interface ResponsesDiscordsResponse {
export interface ResponsesHeartbeatResponse {
data: EntitiesHeartbeat
- /** @example "item created successfully" */
+ /** @example "Request handled successfully" */
message: string
/** @example "success" */
status: string
@@ -505,7 +501,7 @@ export interface ResponsesHeartbeatResponse {
export interface ResponsesHeartbeatsResponse {
data: EntitiesHeartbeat[]
- /** @example "item created successfully" */
+ /** @example "Request handled successfully" */
message: string
/** @example "success" */
status: string
@@ -520,7 +516,7 @@ export interface ResponsesInternalServerError {
export interface ResponsesMessageResponse {
data: EntitiesMessage
- /** @example "item created successfully" */
+ /** @example "Request handled successfully" */
message: string
/** @example "success" */
status: string
@@ -528,7 +524,7 @@ export interface ResponsesMessageResponse {
export interface ResponsesMessageThreadsResponse {
data: EntitiesMessageThread[]
- /** @example "item created successfully" */
+ /** @example "Request handled successfully" */
message: string
/** @example "success" */
status: string
@@ -536,7 +532,7 @@ export interface ResponsesMessageThreadsResponse {
export interface ResponsesMessagesResponse {
data: EntitiesMessage[]
- /** @example "item created successfully" */
+ /** @example "Request handled successfully" */
message: string
/** @example "success" */
status: string
@@ -566,7 +562,7 @@ export interface ResponsesOkString {
export interface ResponsesPhoneAPIKeyResponse {
data: EntitiesPhoneAPIKey
- /** @example "item created successfully" */
+ /** @example "Request handled successfully" */
message: string
/** @example "success" */
status: string
@@ -574,7 +570,7 @@ export interface ResponsesPhoneAPIKeyResponse {
export interface ResponsesPhoneAPIKeysResponse {
data: EntitiesPhoneAPIKey[]
- /** @example "item created successfully" */
+ /** @example "Request handled successfully" */
message: string
/** @example "success" */
status: string
@@ -582,7 +578,7 @@ export interface ResponsesPhoneAPIKeysResponse {
export interface ResponsesPhoneResponse {
data: EntitiesPhone
- /** @example "item created successfully" */
+ /** @example "Request handled successfully" */
message: string
/** @example "success" */
status: string
@@ -590,7 +586,7 @@ export interface ResponsesPhoneResponse {
export interface ResponsesPhonesResponse {
data: EntitiesPhone[]
- /** @example "item created successfully" */
+ /** @example "Request handled successfully" */
message: string
/** @example "success" */
status: string
@@ -607,15 +603,23 @@ export interface ResponsesUnauthorized {
export interface ResponsesUnprocessableEntity {
data: Record
- /** @example "validation errors while sending message" */
+ /** @example "validation errors while handling request" */
message: string
/** @example "error" */
status: string
}
+export interface ResponsesUserInvoicesResponse {
+ data: ResponsesSubscriptionInvoicesAPIResponse
+ /** @example "Request handled successfully" */
+ message: string
+ /** @example "success" */
+ status: string
+}
+
export interface ResponsesUserResponse {
data: EntitiesUser
- /** @example "item created successfully" */
+ /** @example "Request handled successfully" */
message: string
/** @example "success" */
status: string
@@ -623,7 +627,7 @@ export interface ResponsesUserResponse {
export interface ResponsesWebhookResponse {
data: EntitiesWebhook
- /** @example "item created successfully" */
+ /** @example "Request handled successfully" */
message: string
/** @example "success" */
status: string
@@ -631,8 +635,46 @@ export interface ResponsesWebhookResponse {
export interface ResponsesWebhooksResponse {
data: EntitiesWebhook[]
- /** @example "item created successfully" */
+ /** @example "Request handled successfully" */
message: string
/** @example "success" */
status: string
}
+
+export interface ResponsesSubscriptionInvoicesAPIResponse {
+ data: {
+ attributes: {
+ billing_reason: string
+ card_brand: string
+ card_last_four: string
+ created_at: string
+ currency: string
+ currency_rate: string
+ discount_total: number
+ discount_total_formatted: string
+ discount_total_usd: number
+ refunded: boolean
+ refunded_amount: number
+ refunded_amount_formatted: string
+ refunded_amount_usd: number
+ refunded_at: any
+ status: string
+ status_formatted: string
+ subtotal: number
+ subtotal_formatted: string
+ subtotal_usd: number
+ tax: number
+ tax_formatted: string
+ tax_inclusive: boolean
+ tax_usd: number
+ total: number
+ total_formatted: string
+ total_usd: number
+ updated_at: string
+ user_email: string
+ user_name: string
+ }
+ id: string
+ type: string
+ }[]
+}
diff --git a/web/pages/billing/index.vue b/web/pages/billing/index.vue
index d17b7c9a..74862f7a 100644
--- a/web/pages/billing/index.vue
+++ b/web/pages/billing/index.vue
@@ -288,6 +288,76 @@
+
+ Subscription Payments
+
+ This is a list of your last 10 subscription payments made using
+ our payment provider
+ Lemon Squeezy .
+
+
+
+
+
+
+ Timestamp
+ Status
+
+ Tax
+
+ Total
+
+
+
+
+
+
+ {{ payment.attributes.created_at | timestamp }}
+
+
+
+
+ {{ mdiCheck }}
+
+ {{ payment.attributes.status_formatted }}
+
+
+
+ {{ mdiAlert }}
+
+ {{ payment.attributes.status_formatted }}
+
+
+
+ {{ payment.attributes.tax_formatted }}
+
+
+ {{ payment.attributes.total_formatted }}
+
+
+
+ {{ mdiInvoice }}
+ Invoice
+
+
+
+
+
+
+
Usage History
Summary of all the sent and received messages in the past 12
@@ -349,6 +419,9 @@ import {
mdiDelete,
mdiCog,
mdiContentSave,
+ mdiCheck,
+ mdiAlert,
+ mdiInvoice,
mdiEye,
mdiEyeOff,
mdiCallReceived,
@@ -356,6 +429,10 @@ import {
mdiCreditCard,
mdiSquareEditOutline,
} from '@mdi/js'
+import {
+ EntitiesPhoneAPIKey,
+ ResponsesSubscriptionInvoicesAPIResponse,
+} from '~/models/api'
type PaymentPlan = {
name: string
@@ -373,6 +450,9 @@ export default Vue.extend({
mdiEyeOff,
mdiArrowLeft,
mdiAccountCircle,
+ mdiCheck,
+ mdiAlert,
+ mdiInvoice,
mdiShieldCheck,
mdiDelete,
mdiCog,
@@ -382,7 +462,9 @@ export default Vue.extend({
mdiCreditCard,
mdiSquareEditOutline,
loading: true,
+ loadingSubscriptionInvoices: false,
dialog: false,
+ invoices: null as ResponsesSubscriptionInvoicesAPIResponse | null,
plans: [
{
name: 'Free',
@@ -513,7 +595,22 @@ export default Vue.extend({
this.$store.dispatch('loadBillingUsageHistory'),
])
this.loading = false
+ this.loadSubscriptionInvoices()
+ },
+
+ loadSubscriptionInvoices() {
+ this.loadingSubscriptionInvoices = true
+ this.$store
+ .dispatch('indexSubscriptionPayments')
+ .then((invoices: ResponsesSubscriptionInvoicesAPIResponse) => {
+ console.log(invoices)
+ this.invoices = invoices
+ })
+ .finally(() => {
+ this.loadingSubscriptionInvoices = false
+ })
},
+
updateDetails() {
this.loading = true
this.$store
diff --git a/web/store/index.ts b/web/store/index.ts
index 92c15c5d..54fc875a 100644
--- a/web/store/index.ts
+++ b/web/store/index.ts
@@ -25,7 +25,9 @@ import {
ResponsesOkString,
ResponsesPhoneAPIKeyResponse,
ResponsesPhoneAPIKeysResponse,
+ ResponsesSubscriptionInvoicesAPIResponse,
ResponsesUnprocessableEntity,
+ ResponsesUserInvoicesResponse,
ResponsesUserResponse,
ResponsesWebhookResponse,
ResponsesWebhooksResponse,
@@ -533,6 +535,36 @@ export const actions = {
})
},
+ indexSubscriptionPayments(context: ActionContext) {
+ return new Promise(
+ (resolve, reject) => {
+ axios
+ .get(
+ `/v1/users/subscription/payments`,
+ {
+ params: {
+ limit: 100,
+ },
+ },
+ )
+ .then((response: AxiosResponse) => {
+ resolve(response.data.data)
+ })
+ .catch(async (error: AxiosError) => {
+ await Promise.all([
+ context.dispatch('addNotification', {
+ message:
+ (error.response?.data as any)?.message ??
+ 'Error while fetching subscription payments.',
+ type: 'error',
+ }),
+ ])
+ reject(getErrorMessages(error))
+ })
+ },
+ )
+ },
+
async handleAxiosError(
context: ActionContext,
error: AxiosError,
From 473f511f195de8aff955bdf19f40a99b3bd4bb62 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Wed, 14 Jan 2026 01:13:01 +0200
Subject: [PATCH 082/215] Update swagger
---
api/docs/docs.go | 153 ++++++++++++++++++------------------------
api/docs/swagger.json | 135 ++++++++++++++++---------------------
api/docs/swagger.yaml | 125 ++++++++++++++++------------------
3 files changed, 183 insertions(+), 230 deletions(-)
diff --git a/api/docs/docs.go b/api/docs/docs.go
index 60d623e7..f0a3cc7d 100644
--- a/api/docs/docs.go
+++ b/api/docs/docs.go
@@ -2363,29 +2363,29 @@ const docTemplate = `{
}
}
},
- "/users/subscription/invoices": {
- "get": {
+ "/users/subscription/invoices/{subscriptionInvoiceID}": {
+ "post": {
"security": [
{
"ApiKeyAuth": []
}
],
- "description": "Subscription invoices are generated throughout the lifecycle of a subscription, typically there is one at the time of purchase and then one for each renewal.",
+ "description": "Generates a new invoice PDF file for the given subscription payment with given parameters.",
"consumes": [
"application/json"
],
"produces": [
- "application/json"
+ "application/pdf"
],
"tags": [
"Users"
],
- "summary": "Get the last 10 subscription invoices.",
+ "summary": "Generate a subscription invoice",
"responses": {
"200": {
"description": "OK",
"schema": {
- "$ref": "#/definitions/responses.UserInvoicesResponse"
+ "type": "file"
}
},
"400": {
@@ -2415,29 +2415,29 @@ const docTemplate = `{
}
}
},
- "/users/subscription/invoices/{subscriptionInvoiceID}": {
- "post": {
+ "/users/subscription/payments": {
+ "get": {
"security": [
{
"ApiKeyAuth": []
}
],
- "description": "Generates a new invoice for the given subscription with given parameters.",
+ "description": "Subscription payments are generated throughout the lifecycle of a subscription, typically there is one at the time of purchase and then one for each renewal.",
"consumes": [
"application/json"
],
"produces": [
- "application/pdf"
+ "application/json"
],
"tags": [
"Users"
],
- "summary": "Generate a subscription invoice",
+ "summary": "Get the last 10 subscription payments.",
"responses": {
"200": {
"description": "OK",
"schema": {
- "type": "file"
+ "$ref": "#/definitions/responses.UserSubscriptionPaymentsResponse"
}
},
"400": {
@@ -4318,27 +4318,6 @@ const docTemplate = `{
}
}
},
- "responses.UserInvoicesResponse": {
- "type": "object",
- "required": [
- "data",
- "message",
- "status"
- ],
- "properties": {
- "data": {
- "$ref": "#/definitions/responses.subscriptionInvoicesAPIResponse"
- },
- "message": {
- "type": "string",
- "example": "Request handled successfully"
- },
- "status": {
- "type": "string",
- "example": "success"
- }
- }
- },
"responses.UserResponse": {
"type": "object",
"required": [
@@ -4360,56 +4339,13 @@ const docTemplate = `{
}
}
},
- "responses.WebhookResponse": {
+ "responses.UserSubscriptionPaymentsResponse": {
"type": "object",
"required": [
"data",
"message",
"status"
],
- "properties": {
- "data": {
- "$ref": "#/definitions/entities.Webhook"
- },
- "message": {
- "type": "string",
- "example": "Request handled successfully"
- },
- "status": {
- "type": "string",
- "example": "success"
- }
- }
- },
- "responses.WebhooksResponse": {
- "type": "object",
- "required": [
- "data",
- "message",
- "status"
- ],
- "properties": {
- "data": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/entities.Webhook"
- }
- },
- "message": {
- "type": "string",
- "example": "Request handled successfully"
- },
- "status": {
- "type": "string",
- "example": "success"
- }
- }
- },
- "responses.subscriptionInvoicesAPIResponse": {
- "type": "object",
- "required": [
- "data"
- ],
"properties": {
"data": {
"type": "array",
@@ -4450,9 +4386,7 @@ const docTemplate = `{
"total",
"total_formatted",
"total_usd",
- "updated_at",
- "user_email",
- "user_name"
+ "updated_at"
],
"properties": {
"billing_reason": {
@@ -4533,12 +4467,6 @@ const docTemplate = `{
},
"updated_at": {
"type": "string"
- },
- "user_email": {
- "type": "string"
- },
- "user_name": {
- "type": "string"
}
}
},
@@ -4550,6 +4478,59 @@ const docTemplate = `{
}
}
}
+ },
+ "message": {
+ "type": "string",
+ "example": "Request handled successfully"
+ },
+ "status": {
+ "type": "string",
+ "example": "success"
+ }
+ }
+ },
+ "responses.WebhookResponse": {
+ "type": "object",
+ "required": [
+ "data",
+ "message",
+ "status"
+ ],
+ "properties": {
+ "data": {
+ "$ref": "#/definitions/entities.Webhook"
+ },
+ "message": {
+ "type": "string",
+ "example": "Request handled successfully"
+ },
+ "status": {
+ "type": "string",
+ "example": "success"
+ }
+ }
+ },
+ "responses.WebhooksResponse": {
+ "type": "object",
+ "required": [
+ "data",
+ "message",
+ "status"
+ ],
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/entities.Webhook"
+ }
+ },
+ "message": {
+ "type": "string",
+ "example": "Request handled successfully"
+ },
+ "status": {
+ "type": "string",
+ "example": "success"
}
}
}
diff --git a/api/docs/swagger.json b/api/docs/swagger.json
index 35e5a245..88c252d1 100644
--- a/api/docs/swagger.json
+++ b/api/docs/swagger.json
@@ -2145,23 +2145,23 @@
}
}
},
- "/users/subscription/invoices": {
- "get": {
+ "/users/subscription/invoices/{subscriptionInvoiceID}": {
+ "post": {
"security": [
{
"ApiKeyAuth": []
}
],
- "description": "Subscription invoices are generated throughout the lifecycle of a subscription, typically there is one at the time of purchase and then one for each renewal.",
+ "description": "Generates a new invoice PDF file for the given subscription payment with given parameters.",
"consumes": ["application/json"],
- "produces": ["application/json"],
+ "produces": ["application/pdf"],
"tags": ["Users"],
- "summary": "Get the last 10 subscription invoices.",
+ "summary": "Generate a subscription invoice",
"responses": {
"200": {
"description": "OK",
"schema": {
- "$ref": "#/definitions/responses.UserInvoicesResponse"
+ "type": "file"
}
},
"400": {
@@ -2191,23 +2191,23 @@
}
}
},
- "/users/subscription/invoices/{subscriptionInvoiceID}": {
- "post": {
+ "/users/subscription/payments": {
+ "get": {
"security": [
{
"ApiKeyAuth": []
}
],
- "description": "Generates a new invoice for the given subscription with given parameters.",
+ "description": "Subscription payments are generated throughout the lifecycle of a subscription, typically there is one at the time of purchase and then one for each renewal.",
"consumes": ["application/json"],
- "produces": ["application/pdf"],
+ "produces": ["application/json"],
"tags": ["Users"],
- "summary": "Generate a subscription invoice",
+ "summary": "Get the last 10 subscription payments.",
"responses": {
"200": {
"description": "OK",
"schema": {
- "type": "file"
+ "$ref": "#/definitions/responses.UserSubscriptionPaymentsResponse"
}
},
"400": {
@@ -3901,23 +3901,6 @@
}
}
},
- "responses.UserInvoicesResponse": {
- "type": "object",
- "required": ["data", "message", "status"],
- "properties": {
- "data": {
- "$ref": "#/definitions/responses.subscriptionInvoicesAPIResponse"
- },
- "message": {
- "type": "string",
- "example": "Request handled successfully"
- },
- "status": {
- "type": "string",
- "example": "success"
- }
- }
- },
"responses.UserResponse": {
"type": "object",
"required": ["data", "message", "status"],
@@ -3935,46 +3918,9 @@
}
}
},
- "responses.WebhookResponse": {
- "type": "object",
- "required": ["data", "message", "status"],
- "properties": {
- "data": {
- "$ref": "#/definitions/entities.Webhook"
- },
- "message": {
- "type": "string",
- "example": "Request handled successfully"
- },
- "status": {
- "type": "string",
- "example": "success"
- }
- }
- },
- "responses.WebhooksResponse": {
+ "responses.UserSubscriptionPaymentsResponse": {
"type": "object",
"required": ["data", "message", "status"],
- "properties": {
- "data": {
- "type": "array",
- "items": {
- "$ref": "#/definitions/entities.Webhook"
- }
- },
- "message": {
- "type": "string",
- "example": "Request handled successfully"
- },
- "status": {
- "type": "string",
- "example": "success"
- }
- }
- },
- "responses.subscriptionInvoicesAPIResponse": {
- "type": "object",
- "required": ["data"],
"properties": {
"data": {
"type": "array",
@@ -4011,9 +3957,7 @@
"total",
"total_formatted",
"total_usd",
- "updated_at",
- "user_email",
- "user_name"
+ "updated_at"
],
"properties": {
"billing_reason": {
@@ -4094,12 +4038,6 @@
},
"updated_at": {
"type": "string"
- },
- "user_email": {
- "type": "string"
- },
- "user_name": {
- "type": "string"
}
}
},
@@ -4111,6 +4049,51 @@
}
}
}
+ },
+ "message": {
+ "type": "string",
+ "example": "Request handled successfully"
+ },
+ "status": {
+ "type": "string",
+ "example": "success"
+ }
+ }
+ },
+ "responses.WebhookResponse": {
+ "type": "object",
+ "required": ["data", "message", "status"],
+ "properties": {
+ "data": {
+ "$ref": "#/definitions/entities.Webhook"
+ },
+ "message": {
+ "type": "string",
+ "example": "Request handled successfully"
+ },
+ "status": {
+ "type": "string",
+ "example": "success"
+ }
+ }
+ },
+ "responses.WebhooksResponse": {
+ "type": "object",
+ "required": ["data", "message", "status"],
+ "properties": {
+ "data": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/entities.Webhook"
+ }
+ },
+ "message": {
+ "type": "string",
+ "example": "Request handled successfully"
+ },
+ "status": {
+ "type": "string",
+ "example": "success"
}
}
}
diff --git a/api/docs/swagger.yaml b/api/docs/swagger.yaml
index fdde688c..28274519 100644
--- a/api/docs/swagger.yaml
+++ b/api/docs/swagger.yaml
@@ -1111,21 +1111,6 @@ definitions:
- message
- status
type: object
- responses.UserInvoicesResponse:
- properties:
- data:
- $ref: "#/definitions/responses.subscriptionInvoicesAPIResponse"
- message:
- example: Request handled successfully
- type: string
- status:
- example: success
- type: string
- required:
- - data
- - message
- - status
- type: object
responses.UserResponse:
properties:
data:
@@ -1141,39 +1126,7 @@ definitions:
- message
- status
type: object
- responses.WebhookResponse:
- properties:
- data:
- $ref: "#/definitions/entities.Webhook"
- message:
- example: Request handled successfully
- type: string
- status:
- example: success
- type: string
- required:
- - data
- - message
- - status
- type: object
- responses.WebhooksResponse:
- properties:
- data:
- items:
- $ref: "#/definitions/entities.Webhook"
- type: array
- message:
- example: Request handled successfully
- type: string
- status:
- example: success
- type: string
- required:
- - data
- - message
- - status
- type: object
- responses.subscriptionInvoicesAPIResponse:
+ responses.UserSubscriptionPaymentsResponse:
properties:
data:
items:
@@ -1233,10 +1186,6 @@ definitions:
type: integer
updated_at:
type: string
- user_email:
- type: string
- user_name:
- type: string
required:
- billing_reason
- card_brand
@@ -1265,8 +1214,6 @@ definitions:
- total_formatted
- total_usd
- updated_at
- - user_email
- - user_name
type: object
id:
type: string
@@ -1278,8 +1225,48 @@ definitions:
- type
type: object
type: array
+ message:
+ example: Request handled successfully
+ type: string
+ status:
+ example: success
+ type: string
+ required:
+ - data
+ - message
+ - status
+ type: object
+ responses.WebhookResponse:
+ properties:
+ data:
+ $ref: "#/definitions/entities.Webhook"
+ message:
+ example: Request handled successfully
+ type: string
+ status:
+ example: success
+ type: string
+ required:
+ - data
+ - message
+ - status
+ type: object
+ responses.WebhooksResponse:
+ properties:
+ data:
+ items:
+ $ref: "#/definitions/entities.Webhook"
+ type: array
+ message:
+ example: Request handled successfully
+ type: string
+ status:
+ example: success
+ type: string
required:
- data
+ - message
+ - status
type: object
host: api.httpsms.com
info:
@@ -2936,21 +2923,20 @@ paths:
summary: Currently authenticated user subscription update URL
tags:
- Users
- /users/subscription/invoices:
- get:
+ /users/subscription/invoices/{subscriptionInvoiceID}:
+ post:
consumes:
- application/json
description:
- Subscription invoices are generated throughout the lifecycle of
- a subscription, typically there is one at the time of purchase and then one
- for each renewal.
+ Generates a new invoice PDF file for the given subscription payment
+ with given parameters.
produces:
- - application/json
+ - application/pdf
responses:
"200":
description: OK
schema:
- $ref: "#/definitions/responses.UserInvoicesResponse"
+ type: file
"400":
description: Bad Request
schema:
@@ -2969,21 +2955,24 @@ paths:
$ref: "#/definitions/responses.InternalServerError"
security:
- ApiKeyAuth: []
- summary: Get the last 10 subscription invoices.
+ summary: Generate a subscription invoice
tags:
- Users
- /users/subscription/invoices/{subscriptionInvoiceID}:
- post:
+ /users/subscription/payments:
+ get:
consumes:
- application/json
- description: Generates a new invoice for the given subscription with given parameters.
+ description:
+ Subscription payments are generated throughout the lifecycle of
+ a subscription, typically there is one at the time of purchase and then one
+ for each renewal.
produces:
- - application/pdf
+ - application/json
responses:
"200":
description: OK
schema:
- type: file
+ $ref: "#/definitions/responses.UserSubscriptionPaymentsResponse"
"400":
description: Bad Request
schema:
@@ -3002,7 +2991,7 @@ paths:
$ref: "#/definitions/responses.InternalServerError"
security:
- ApiKeyAuth: []
- summary: Generate a subscription invoice
+ summary: Get the last 10 subscription payments.
tags:
- Users
/webhooks:
From ade3a3d64d03db010f7a4fc73bde123131a74574 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Thu, 15 Jan 2026 00:49:51 +0200
Subject: [PATCH 083/215] Add the frontend
---
api/docs/docs.go | 55 +-
api/docs/swagger.json | 55 +-
api/docs/swagger.yaml | 41 +-
api/pkg/di/container.go | 2 +
api/pkg/handlers/billing_handler.go | 2 +-
api/pkg/handlers/user_handler.go | 29 +-
.../requests/user_payment_invoice_request.go | 46 ++
api/pkg/services/user_service.go | 48 +-
api/pkg/validators/user_handler_validator.go | 94 ++-
web/models/api.ts | 65 +-
web/pages/billing/index.vue | 561 +++++++++++++++++-
web/store/index.ts | 87 ++-
12 files changed, 1016 insertions(+), 69 deletions(-)
create mode 100644 api/pkg/requests/user_payment_invoice_request.go
diff --git a/api/docs/docs.go b/api/docs/docs.go
index f0a3cc7d..d5a3831f 100644
--- a/api/docs/docs.go
+++ b/api/docs/docs.go
@@ -2380,7 +2380,18 @@ const docTemplate = `{
"tags": [
"Users"
],
- "summary": "Generate a subscription invoice",
+ "summary": "Generate a subscription payment invoice",
+ "parameters": [
+ {
+ "description": "Generate subscription payment invoice parameters",
+ "name": "payload",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/requests.UserPaymentInvoice"
+ }
+ }
+ ],
"responses": {
"200": {
"description": "OK",
@@ -3798,6 +3809,48 @@ const docTemplate = `{
}
}
},
+ "requests.UserPaymentInvoice": {
+ "type": "object",
+ "required": [
+ "address",
+ "city",
+ "country",
+ "name",
+ "notes",
+ "state",
+ "zip_code"
+ ],
+ "properties": {
+ "address": {
+ "type": "string",
+ "example": "221B Baker Street, London"
+ },
+ "city": {
+ "type": "string",
+ "example": "Los Angeles"
+ },
+ "country": {
+ "type": "string",
+ "example": "US"
+ },
+ "name": {
+ "type": "string",
+ "example": "Acme Corp"
+ },
+ "notes": {
+ "type": "string",
+ "example": "Thank you for your business!"
+ },
+ "state": {
+ "type": "string",
+ "example": "CA"
+ },
+ "zip_code": {
+ "type": "string",
+ "example": "9800"
+ }
+ }
+ },
"requests.UserUpdate": {
"type": "object",
"required": [
diff --git a/api/docs/swagger.json b/api/docs/swagger.json
index 88c252d1..8559c8ec 100644
--- a/api/docs/swagger.json
+++ b/api/docs/swagger.json
@@ -2156,7 +2156,18 @@
"consumes": ["application/json"],
"produces": ["application/pdf"],
"tags": ["Users"],
- "summary": "Generate a subscription invoice",
+ "summary": "Generate a subscription payment invoice",
+ "parameters": [
+ {
+ "description": "Generate subscription payment invoice parameters",
+ "name": "payload",
+ "in": "body",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/requests.UserPaymentInvoice"
+ }
+ }
+ ],
"responses": {
"200": {
"description": "OK",
@@ -3477,6 +3488,48 @@
}
}
},
+ "requests.UserPaymentInvoice": {
+ "type": "object",
+ "required": [
+ "address",
+ "city",
+ "country",
+ "name",
+ "notes",
+ "state",
+ "zip_code"
+ ],
+ "properties": {
+ "address": {
+ "type": "string",
+ "example": "221B Baker Street, London"
+ },
+ "city": {
+ "type": "string",
+ "example": "Los Angeles"
+ },
+ "country": {
+ "type": "string",
+ "example": "US"
+ },
+ "name": {
+ "type": "string",
+ "example": "Acme Corp"
+ },
+ "notes": {
+ "type": "string",
+ "example": "Thank you for your business!"
+ },
+ "state": {
+ "type": "string",
+ "example": "CA"
+ },
+ "zip_code": {
+ "type": "string",
+ "example": "9800"
+ }
+ }
+ },
"requests.UserUpdate": {
"type": "object",
"required": ["active_phone_id", "timezone"],
diff --git a/api/docs/swagger.yaml b/api/docs/swagger.yaml
index 28274519..16811ab3 100644
--- a/api/docs/swagger.yaml
+++ b/api/docs/swagger.yaml
@@ -742,6 +742,38 @@ definitions:
- newsletter_enabled
- webhook_enabled
type: object
+ requests.UserPaymentInvoice:
+ properties:
+ address:
+ example: 221B Baker Street, London
+ type: string
+ city:
+ example: Los Angeles
+ type: string
+ country:
+ example: US
+ type: string
+ name:
+ example: Acme Corp
+ type: string
+ notes:
+ example: Thank you for your business!
+ type: string
+ state:
+ example: CA
+ type: string
+ zip_code:
+ example: "9800"
+ type: string
+ required:
+ - address
+ - city
+ - country
+ - name
+ - notes
+ - state
+ - zip_code
+ type: object
requests.UserUpdate:
properties:
active_phone_id:
@@ -2930,6 +2962,13 @@ paths:
description:
Generates a new invoice PDF file for the given subscription payment
with given parameters.
+ parameters:
+ - description: Generate subscription payment invoice parameters
+ in: body
+ name: payload
+ required: true
+ schema:
+ $ref: "#/definitions/requests.UserPaymentInvoice"
produces:
- application/pdf
responses:
@@ -2955,7 +2994,7 @@ paths:
$ref: "#/definitions/responses.InternalServerError"
security:
- ApiKeyAuth: []
- summary: Generate a subscription invoice
+ summary: Generate a subscription payment invoice
tags:
- Users
/users/subscription/payments:
diff --git a/api/pkg/di/container.go b/api/pkg/di/container.go
index 07bce2c3..d9a912f4 100644
--- a/api/pkg/di/container.go
+++ b/api/pkg/di/container.go
@@ -648,6 +648,7 @@ func (container *Container) UserHandlerValidator() (validator *validators.UserHa
return validators.NewUserHandlerValidator(
container.Logger(),
container.Tracer(),
+ container.UserService(),
)
}
@@ -934,6 +935,7 @@ func (container *Container) UserService() (service *services.UserService) {
container.LemonsqueezyClient(),
container.EventDispatcher(),
container.FirebaseAuthClient(),
+ container.HTTPClient("lemonsqueezy"),
)
}
diff --git a/api/pkg/handlers/billing_handler.go b/api/pkg/handlers/billing_handler.go
index bcdb5248..3d65ee9a 100644
--- a/api/pkg/handlers/billing_handler.go
+++ b/api/pkg/handlers/billing_handler.go
@@ -65,7 +65,7 @@ func (h *BillingHandler) UsageHistory(c *fiber.Ctx) error {
var request requests.BillingUsageHistory
if err := c.QueryParser(&request); err != nil {
- msg := fmt.Sprintf("cannot marshall params [%s] into %T", c.OriginalURL(), request)
+ msg := fmt.Sprintf("cannot marshall params [%s] into %T", c.Body(), request)
ctxLogger.Warn(stacktrace.Propagate(err, msg))
return h.responseBadRequest(c, err)
}
diff --git a/api/pkg/handlers/user_handler.go b/api/pkg/handlers/user_handler.go
index 574edf27..2d3895da 100644
--- a/api/pkg/handlers/user_handler.go
+++ b/api/pkg/handlers/user_handler.go
@@ -46,7 +46,7 @@ func (h *UserHandler) RegisterRoutes(router fiber.Router, middlewares ...fiber.H
router.Put("/v1/users/:userID/notifications", h.computeRoute(middlewares, h.UpdateNotifications)...)
router.Get("/v1/users/subscription-update-url", h.computeRoute(middlewares, h.subscriptionUpdateURL)...)
router.Delete("/v1/users/subscription", h.computeRoute(middlewares, h.cancelSubscription)...)
- router.Get("/v1/users/subscription/invoices", h.computeRoute(middlewares, h.subscriptionPayments)...)
+ router.Get("/v1/users/subscription/payments", h.computeRoute(middlewares, h.subscriptionPayments)...)
router.Post("/v1/users/subscription/invoices/:subscriptionInvoiceID", h.computeRoute(middlewares, h.subscriptionInvoice)...)
}
@@ -161,11 +161,9 @@ func (h *UserHandler) Delete(c *fiber.Ctx) error {
// @Failure 500 {object} responses.InternalServerError
// @Router /users/{userID}/notifications [put]
func (h *UserHandler) UpdateNotifications(c *fiber.Ctx) error {
- ctx, span := h.tracer.StartFromFiberCtx(c)
+ ctx, span, ctxLogger := h.tracer.StartFromFiberCtxWithLogger(c, h.logger)
defer span.End()
- ctxLogger := h.tracer.CtxLogger(h.logger, span)
-
var request requests.UserNotificationUpdate
if err := c.BodyParser(&request); err != nil {
msg := fmt.Sprintf("cannot marshall params [%s] into %T", c.OriginalURL(), request)
@@ -303,12 +301,13 @@ func (h *UserHandler) subscriptionPayments(c *fiber.Ctx) error {
}
// subscriptionInvoice generates an invoice for a given subscription invoice ID
-// @Summary Generate a subscription invoice
+// @Summary Generate a subscription payment invoice
// @Description Generates a new invoice PDF file for the given subscription payment with given parameters.
// @Security ApiKeyAuth
// @Tags Users
// @Accept json
// @Produce application/pdf
+// @Param payload body requests.UserPaymentInvoice true "Generate subscription payment invoice parameters"
// @Success 200 {file} file
// @Failure 400 {object} responses.BadRequest
// @Failure 401 {object} responses.Unauthorized
@@ -319,17 +318,29 @@ func (h *UserHandler) subscriptionInvoice(c *fiber.Ctx) error {
ctx, span, ctxLogger := h.tracer.StartFromFiberCtxWithLogger(c, h.logger)
defer span.End()
- invoiceID := c.Params("subscriptionInvoiceID")
+ var request requests.UserPaymentInvoice
+ if err := c.BodyParser(&request); err != nil {
+ msg := fmt.Sprintf("cannot marshall params [%s] into %T", c.Body(), request)
+ ctxLogger.Warn(stacktrace.Propagate(err, msg))
+ return h.responseBadRequest(c, err)
+ }
+
+ request.SubscriptionInvoiceID = c.Params("subscriptionInvoiceID")
+ if errors := h.validator.ValidatePaymentInvoice(ctx, h.userIDFomContext(c), request.Sanitize()); len(errors) != 0 {
+ msg := fmt.Sprintf("validation errors [%s], while validating subscription payment invoice request [%s]", spew.Sdump(errors), c.Body())
+ ctxLogger.Warn(stacktrace.NewError(msg))
+ return h.responseUnprocessableEntity(c, errors, "validation errors while generating payment invoice")
+ }
- data, err := h.service.GenerateReceipt(ctx, h.userIDFomContext(c))
+ data, err := h.service.GenerateReceipt(ctx, request.UserInvoiceGenerateParams(h.userIDFomContext(c)))
if err != nil {
- msg := fmt.Sprintf("cannot generate receipt for invoice ID [%s] and user [%s]", invoiceID, h.userFromContext(c))
+ msg := fmt.Sprintf("cannot generate receipt for invoice ID [%s] and user [%s]", request.SubscriptionInvoiceID, h.userFromContext(c))
ctxLogger.Error(stacktrace.Propagate(err, msg))
return h.responseInternalServerError(c)
}
c.Set(fiber.HeaderContentType, "application/pdf")
- c.Set(fiber.HeaderContentDisposition, fmt.Sprintf("attachment; filename=\"%s.pdf\"", invoiceID))
+ c.Set(fiber.HeaderContentDisposition, fmt.Sprintf("attachment; filename=\"httpsms.com - %s.pdf\"", request.SubscriptionInvoiceID))
return c.SendStream(data)
}
diff --git a/api/pkg/requests/user_payment_invoice_request.go b/api/pkg/requests/user_payment_invoice_request.go
new file mode 100644
index 00000000..4d196f4a
--- /dev/null
+++ b/api/pkg/requests/user_payment_invoice_request.go
@@ -0,0 +1,46 @@
+package requests
+
+import (
+ "github.com/NdoleStudio/httpsms/pkg/entities"
+ "github.com/NdoleStudio/httpsms/pkg/services"
+)
+
+// UserPaymentInvoice is the payload for generating a subscription payment invoice
+type UserPaymentInvoice struct {
+ request
+ Name string `json:"name" example:"Acme Corp"`
+ Address string `json:"address" example:"221B Baker Street, London"`
+ City string `json:"city" example:"Los Angeles"`
+ State string `json:"state" example:"CA"`
+ Country string `json:"country" example:"US"`
+ ZipCode string `json:"zip_code" example:"9800"`
+ Notes string `json:"notes" example:"Thank you for your business!"`
+ SubscriptionInvoiceID string `json:"subscriptionInvoiceID" swaggerignore:"true"` // used internally for validation
+}
+
+// Sanitize sets defaults to MessageReceive
+func (input *UserPaymentInvoice) Sanitize() UserPaymentInvoice {
+ input.Name = input.sanitizeAddress(input.Name)
+ input.Address = input.sanitizeAddress(input.Address)
+ input.City = input.sanitizeAddress(input.City)
+ input.State = input.sanitizeAddress(input.State)
+ input.Country = input.sanitizeAddress(input.Country)
+ input.ZipCode = input.sanitizeAddress(input.ZipCode)
+ input.Notes = input.sanitizeAddress(input.Notes)
+ return *input
+}
+
+// UserInvoiceGenerateParams converts UserPaymentInvoice to services.UserInvoiceGenerateParams
+func (input *UserPaymentInvoice) UserInvoiceGenerateParams(userID entities.UserID) *services.UserInvoiceGenerateParams {
+ return &services.UserInvoiceGenerateParams{
+ UserID: userID,
+ SubscriptionInvoiceID: input.SubscriptionInvoiceID,
+ Name: input.Name,
+ Address: input.Address,
+ City: input.City,
+ State: input.State,
+ Country: input.Country,
+ Notes: input.Notes,
+ ZipCode: input.ZipCode,
+ }
+}
diff --git a/api/pkg/services/user_service.go b/api/pkg/services/user_service.go
index 860e1a42..bd586eaa 100644
--- a/api/pkg/services/user_service.go
+++ b/api/pkg/services/user_service.go
@@ -4,12 +4,12 @@ import (
"context"
"fmt"
"io"
+ "net/http"
"time"
"firebase.google.com/go/auth"
- "github.com/NdoleStudio/httpsms/pkg/events"
-
"github.com/NdoleStudio/httpsms/pkg/emails"
+ "github.com/NdoleStudio/httpsms/pkg/events"
"github.com/NdoleStudio/lemonsqueezy-go"
"github.com/NdoleStudio/httpsms/pkg/repositories"
@@ -31,6 +31,7 @@ type UserService struct {
dispatcher *EventDispatcher
authClient *auth.Client
lemonsqueezyClient *lemonsqueezy.Client
+ httpClient *http.Client
}
// NewUserService creates a new UserService
@@ -43,6 +44,7 @@ func NewUserService(
lemonsqueezyClient *lemonsqueezy.Client,
dispatcher *EventDispatcher,
authClient *auth.Client,
+ httpClient *http.Client,
) (s *UserService) {
return &UserService{
logger: logger.WithService(fmt.Sprintf("%T", s)),
@@ -53,6 +55,7 @@ func NewUserService(
dispatcher: dispatcher,
authClient: authClient,
lemonsqueezyClient: lemonsqueezyClient,
+ httpClient: httpClient,
}
}
@@ -83,13 +86,48 @@ func (service *UserService) GetSubscriptionPayments(ctx context.Context, userID
return invoicesResponse.Data, nil
}
+// UserInvoiceGenerateParams are parameters for generating a subscription payment invoice
+type UserInvoiceGenerateParams struct {
+ UserID entities.UserID
+ SubscriptionInvoiceID string
+ Name string
+ Address string
+ City string
+ State string
+ Country string
+ ZipCode string
+ Notes string
+}
+
// GenerateReceipt generates a receipt for a subscription payment.
-func (service *UserService) GenerateReceipt(ctx context.Context, userID entities.UserID) (reader io.Reader, err error) {
+func (service *UserService) GenerateReceipt(ctx context.Context, params *UserInvoiceGenerateParams) (io.Reader, error) {
ctx, span, ctxLogger := service.tracer.StartWithLogger(ctx, service.logger)
defer span.End()
- ctxLogger.Info(fmt.Sprintf("generating receipt for user [%s]", userID))
- return nil, nil
+ payload := map[string]string{
+ "name": params.Name,
+ "address": params.Address,
+ "city": params.City,
+ "state": params.State,
+ "country": params.Country,
+ "zip_code": params.ZipCode,
+ "notes": params.Notes,
+ }
+
+ invoice, _, err := service.lemonsqueezyClient.SubscriptionInvoices.Generate(ctx, params.SubscriptionInvoiceID, payload)
+ if err != nil {
+ msg := fmt.Sprintf("could not generate subscription payment invoice user with ID [%s] and subscription invoice ID [%s]", params.UserID, params.SubscriptionInvoiceID)
+ return nil, service.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
+ }
+
+ response, err := service.httpClient.Get(invoice.Meta.Urls.DownloadInvoice)
+ if err != nil {
+ msg := fmt.Sprintf("could not download subscription payment invoice for user with ID [%s] and subscription invoice ID [%s]", params.UserID, params.SubscriptionInvoiceID)
+ return nil, service.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
+ }
+
+ ctxLogger.Info(fmt.Sprintf("generated subscription payment invoice for user with ID [%s] and subscription invoice ID [%s]", params.UserID, params.SubscriptionInvoiceID))
+ return response.Body, nil
}
// Get fetches or creates an entities.User
diff --git a/api/pkg/validators/user_handler_validator.go b/api/pkg/validators/user_handler_validator.go
index 553a1cd8..4c05bd1b 100644
--- a/api/pkg/validators/user_handler_validator.go
+++ b/api/pkg/validators/user_handler_validator.go
@@ -5,26 +5,32 @@ import (
"fmt"
"net/url"
+ "github.com/NdoleStudio/httpsms/pkg/entities"
"github.com/NdoleStudio/httpsms/pkg/requests"
+ "github.com/NdoleStudio/httpsms/pkg/services"
"github.com/NdoleStudio/httpsms/pkg/telemetry"
+ "github.com/palantir/stacktrace"
"github.com/thedevsaddam/govalidator"
)
// UserHandlerValidator validates models used in handlers.UserHandler
type UserHandlerValidator struct {
validator
- logger telemetry.Logger
- tracer telemetry.Tracer
+ logger telemetry.Logger
+ tracer telemetry.Tracer
+ service *services.UserService
}
// NewUserHandlerValidator creates a new handlers.UserHandler validator
func NewUserHandlerValidator(
logger telemetry.Logger,
tracer telemetry.Tracer,
+ service *services.UserService,
) (v *UserHandlerValidator) {
return &UserHandlerValidator{
- logger: logger.WithService(fmt.Sprintf("%T", v)),
- tracer: tracer,
+ service: service,
+ logger: logger.WithService(fmt.Sprintf("%T", v)),
+ tracer: tracer,
}
}
@@ -41,3 +47,83 @@ func (validator *UserHandlerValidator) ValidateUpdate(_ context.Context, request
return v.ValidateStruct()
}
+
+// ValidatePaymentInvoice validates the requests.UserPaymentInvoice request
+func (validator *UserHandlerValidator) ValidatePaymentInvoice(ctx context.Context, userID entities.UserID, request requests.UserPaymentInvoice) url.Values {
+ ctx, span, ctxLogger := validator.tracer.StartWithLogger(ctx, validator.logger)
+ defer span.End()
+
+ rules := govalidator.MapData{
+ "name": []string{
+ "required",
+ "min:1",
+ "max:100",
+ },
+ "address": []string{
+ "required",
+ "min:1",
+ "max:200",
+ },
+ "city": []string{
+ "required",
+ "min:1",
+ "max:100",
+ },
+ "state": []string{
+ "min:1",
+ "max:100",
+ },
+ "country": []string{
+ "required",
+ "len:2",
+ },
+ "zip_code": []string{
+ "required",
+ "min:1",
+ "max:20",
+ },
+ "notes": []string{
+ "max:1000",
+ },
+ }
+ if request.Country == "CA" {
+ rules["state"] = []string{
+ "required",
+ "in:AB,BC,MB,NB,NL,NS,NT,NU,ON,PE,QC,SK,YT",
+ }
+ }
+
+ if request.Country == "US" {
+ rules["state"] = []string{
+ "required",
+ "in:AL,AK,AZ,AR,CA,CO,CT,DE,FL,GA,HI,ID,IL,IN,IA,KS,KY,LA,ME,MD,MA,MI,MN,MS,MO,MT,NE,NV,NH,NJ,NM,NY,NC,ND,OH,OK,OR,PA,RI,SC,SD,TN,TX,UT,VT,VA,WA,WV,WI,WY",
+ }
+ }
+
+ v := govalidator.New(govalidator.Options{
+ Data: &request,
+ Rules: rules,
+ })
+
+ validationErrors := v.ValidateStruct()
+ if len(validationErrors) > 0 {
+ return validationErrors
+ }
+
+ payments, err := validator.service.GetSubscriptionPayments(ctx, userID)
+ if err != nil {
+ msg := fmt.Sprintf("cannot get subscription payments for user with ID [%s]", userID)
+ ctxLogger.Error(validator.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg)))
+ validationErrors.Add("subscriptionInvoiceID", "failed to validate subscription payment invoice ID")
+ return validationErrors
+ }
+
+ for _, payment := range payments {
+ if payment.ID == request.SubscriptionInvoiceID {
+ return validationErrors
+ }
+ }
+
+ validationErrors.Add("subscriptionInvoiceID", "failed to validate the subscription payment invoice ID")
+ return validationErrors
+}
diff --git a/web/models/api.ts b/web/models/api.ts
index 99f15064..94feb0b0 100644
--- a/web/models/api.ts
+++ b/web/models/api.ts
@@ -427,6 +427,23 @@ export interface RequestsUserNotificationUpdate {
webhook_enabled: boolean
}
+export interface RequestsUserPaymentInvoice {
+ /** @example "221B Baker Street, London" */
+ address: string
+ /** @example "Los Angeles" */
+ city: string
+ /** @example "US" */
+ country: string
+ /** @example "Acme Corp" */
+ name: string
+ /** @example "Thank you for your business!" */
+ notes: string
+ /** @example "CA" */
+ state: string
+ /** @example "9800" */
+ zip_code: string
+}
+
export interface RequestsUserUpdate {
/** @example "32343a19-da5e-4b1b-a767-3298a73703cb" */
active_phone_id: string
@@ -609,14 +626,6 @@ export interface ResponsesUnprocessableEntity {
status: string
}
-export interface ResponsesUserInvoicesResponse {
- data: ResponsesSubscriptionInvoicesAPIResponse
- /** @example "Request handled successfully" */
- message: string
- /** @example "success" */
- status: string
-}
-
export interface ResponsesUserResponse {
data: EntitiesUser
/** @example "Request handled successfully" */
@@ -625,23 +634,7 @@ export interface ResponsesUserResponse {
status: string
}
-export interface ResponsesWebhookResponse {
- data: EntitiesWebhook
- /** @example "Request handled successfully" */
- message: string
- /** @example "success" */
- status: string
-}
-
-export interface ResponsesWebhooksResponse {
- data: EntitiesWebhook[]
- /** @example "Request handled successfully" */
- message: string
- /** @example "success" */
- status: string
-}
-
-export interface ResponsesSubscriptionInvoicesAPIResponse {
+export interface ResponsesUserSubscriptionPaymentsResponse {
data: {
attributes: {
billing_reason: string
@@ -671,10 +664,28 @@ export interface ResponsesSubscriptionInvoicesAPIResponse {
total_formatted: string
total_usd: number
updated_at: string
- user_email: string
- user_name: string
}
id: string
type: string
}[]
+ /** @example "Request handled successfully" */
+ message: string
+ /** @example "success" */
+ status: string
+}
+
+export interface ResponsesWebhookResponse {
+ data: EntitiesWebhook
+ /** @example "Request handled successfully" */
+ message: string
+ /** @example "success" */
+ status: string
+}
+
+export interface ResponsesWebhooksResponse {
+ data: EntitiesWebhook[]
+ /** @example "Request handled successfully" */
+ message: string
+ /** @example "success" */
+ status: string
}
diff --git a/web/pages/billing/index.vue b/web/pages/billing/index.vue
index 74862f7a..750dc1ae 100644
--- a/web/pages/billing/index.vue
+++ b/web/pages/billing/index.vue
@@ -300,16 +300,19 @@
>.
-
+
+
+ ID
+
Timestamp
Status
@@ -320,7 +323,10 @@
-
+
+
+ {{ payment.id }}
+
{{ payment.attributes.created_at | timestamp }}
@@ -348,7 +354,11 @@
{{ payment.attributes.total_formatted }}
-
+
{{ mdiInvoice }}
Invoice
@@ -407,6 +417,150 @@
+
+
+ Generate Invoice
+
+ Create an invoice for your
+ {{ selectedPayment?.attributes.total_formatted }} payment on
+ {{ selectedPayment?.attributes.created_at | timestamp }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ mdiDownloadOutline }}
+ Download Invoice
+
+
+
+ Close
+
+
+
+
@@ -417,6 +571,7 @@ import {
mdiAccountCircle,
mdiShieldCheck,
mdiDelete,
+ mdiDownloadOutline,
mdiCog,
mdiContentSave,
mdiCheck,
@@ -430,9 +585,12 @@ import {
mdiSquareEditOutline,
} from '@mdi/js'
import {
- EntitiesPhoneAPIKey,
- ResponsesSubscriptionInvoicesAPIResponse,
+ RequestsUserPaymentInvoice,
+ ResponsesUnprocessableEntity,
+ ResponsesUserSubscriptionPaymentsResponse,
} from '~/models/api'
+import { ErrorMessages, getErrorMessages } from '~/plugins/errors'
+import { AxiosError } from 'axios'
type PaymentPlan = {
name: string
@@ -441,6 +599,14 @@ type PaymentPlan = {
messagesPerMonth: number
}
+type subscriptionPayment = {
+ attributes: {
+ created_at: string
+ total_formatted: string
+ }
+ id: string
+}
+
export default Vue.extend({
name: 'BillingIndex',
middleware: ['auth'],
@@ -449,6 +615,7 @@ export default Vue.extend({
mdiEye,
mdiEyeOff,
mdiArrowLeft,
+ mdiDownloadOutline,
mdiAccountCircle,
mdiCheck,
mdiAlert,
@@ -462,9 +629,267 @@ export default Vue.extend({
mdiCreditCard,
mdiSquareEditOutline,
loading: true,
- loadingSubscriptionInvoices: false,
+ loadingSubscriptionPayments: false,
dialog: false,
- invoices: null as ResponsesSubscriptionInvoicesAPIResponse | null,
+ payments: null as ResponsesUserSubscriptionPaymentsResponse | null,
+ selectedPayment: null as subscriptionPayment | null,
+ errorMessages: new ErrorMessages(),
+ invoiceFormName: '',
+ invoiceFormAddress: '',
+ invoiceFormCity: '',
+ invoiceFormState: '',
+ invoiceFormZipCode: '',
+ invoiceFormCountry: '',
+ invoiceFormNotes: '',
+ subscriptionInvoiceDialog: false,
+ countries: [
+ { text: 'Afghanistan', value: 'AF' },
+ { text: 'Ã…land Islands', value: 'AX' },
+ { text: 'Albania', value: 'AL' },
+ { text: 'Algeria', value: 'DZ' },
+ { text: 'American Samoa', value: 'AS' },
+ { text: 'Andorra', value: 'AD' },
+ { text: 'Angola', value: 'AO' },
+ { text: 'Anguilla', value: 'AI' },
+ { text: 'Antarctica', value: 'AQ' },
+ { text: 'Antigua and Barbuda', value: 'AG' },
+ { text: 'Argentina', value: 'AR' },
+ { text: 'Armenia', value: 'AM' },
+ { text: 'Aruba', value: 'AW' },
+ { text: 'Australia', value: 'AU' },
+ { text: 'Austria', value: 'AT' },
+ { text: 'Azerbaijan', value: 'AZ' },
+ { text: 'Bahamas', value: 'BS' },
+ { text: 'Bahrain', value: 'BH' },
+ { text: 'Bangladesh', value: 'BD' },
+ { text: 'Barbados', value: 'BB' },
+ { text: 'Belarus', value: 'BY' },
+ { text: 'Belgium', value: 'BE' },
+ { text: 'Belize', value: 'BZ' },
+ { text: 'Benin', value: 'BJ' },
+ { text: 'Bermuda', value: 'BM' },
+ { text: 'Bhutan', value: 'BT' },
+ { text: 'Bolivia', value: 'BO' },
+ { text: 'Bonaire', value: 'BQ' },
+ { text: 'Bosnia and Herzegovina', value: 'BA' },
+ { text: 'Botswana', value: 'BW' },
+ { text: 'Bouvet Island', value: 'BV' },
+ { text: 'Brazil', value: 'BR' },
+ { text: 'British Indian Ocean', value: 'IO' },
+ { text: 'Brunei Darussalam', value: 'BN' },
+ { text: 'Bulgaria', value: 'BG' },
+ { text: 'Burkina Faso', value: 'BF' },
+ { text: 'Burundi', value: 'BI' },
+ { text: 'Cabo Verde', value: 'CV' },
+ { text: 'Cambodia', value: 'KH' },
+ { text: 'Cameroon', value: 'CM' },
+ { text: 'Canada', value: 'CA' },
+ { text: 'Cayman Islands', value: 'KY' },
+ { text: 'Central African Republic', value: 'CF' },
+ { text: 'Chad', value: 'TD' },
+ { text: 'Chile', value: 'CL' },
+ { text: 'China', value: 'CN' },
+ { text: 'Christmas Island', value: 'CX' },
+ { text: 'Cocos (Keeling) Islands', value: 'CC' },
+ { text: 'Colombia', value: 'CO' },
+ { text: 'Comoros', value: 'KM' },
+ { text: 'Congo', value: 'CG' },
+ { text: 'Congo', value: 'CD' },
+ { text: 'Cook Islands', value: 'CK' },
+ { text: 'Costa Rica', value: 'CR' },
+ { text: "Côte d'Ivoire", value: 'CI' },
+ { text: 'Cuba', value: 'CU' },
+ { text: 'Curaçao', value: 'CW' },
+ { text: 'Cyprus', value: 'CY' },
+ { text: 'Czechia', value: 'CZ' },
+ { text: 'Denmark', value: 'DK' },
+ { text: 'Djibouti', value: 'DJ' },
+ { text: 'Dominica', value: 'DM' },
+ { text: 'Dominican Republic', value: 'DO' },
+ { text: 'Ecuador', value: 'EC' },
+ { text: 'Egypt', value: 'EG' },
+ { text: 'El Salvador', value: 'SV' },
+ { text: 'Equatorial Guinea', value: 'GQ' },
+ { text: 'Eritrea', value: 'ER' },
+ { text: 'Estonia', value: 'EE' },
+ { text: 'Eswatini', value: 'SZ' },
+ { text: 'Ethiopia', value: 'ET' },
+ { text: 'Falkland Islands', value: 'FK' },
+ { text: 'Faroe Islands', value: 'FO' },
+ { text: 'Fiji', value: 'FJ' },
+ { text: 'Finland', value: 'FI' },
+ { text: 'France', value: 'FR' },
+ { text: 'French Guiana', value: 'GF' },
+ { text: 'French Polynesia', value: 'PF' },
+ { text: 'French Southern Territories', value: 'TF' },
+ { text: 'Gabon', value: 'GA' },
+ { text: 'Gambia', value: 'GM' },
+ { text: 'Georgia', value: 'GE' },
+ { text: 'Germany', value: 'DE' },
+ { text: 'Ghana', value: 'GH' },
+ { text: 'Gibraltar', value: 'GI' },
+ { text: 'Greece', value: 'GR' },
+ { text: 'Greenland', value: 'GL' },
+ { text: 'Grenada', value: 'GD' },
+ { text: 'Guadeloupe', value: 'GP' },
+ { text: 'Guam', value: 'GU' },
+ { text: 'Guatemala', value: 'GT' },
+ { text: 'Guernsey', value: 'GG' },
+ { text: 'Guinea', value: 'GN' },
+ { text: 'Guinea-Bissau', value: 'GW' },
+ { text: 'Guyana', value: 'GY' },
+ { text: 'Haiti', value: 'HT' },
+ { text: 'Heard Island and McDonald Islands', value: 'HM' },
+ { text: 'Holy See', value: 'VA' },
+ { text: 'Honduras', value: 'HN' },
+ { text: 'Hong Kong', value: 'HK' },
+ { text: 'Hungary', value: 'HU' },
+ { text: 'Iceland', value: 'IS' },
+ { text: 'India', value: 'IN' },
+ { text: 'Indonesia', value: 'ID' },
+ { text: 'Iran', value: 'IR' },
+ { text: 'Iraq', value: 'IQ' },
+ { text: 'Ireland', value: 'IE' },
+ { text: 'Isle of Man', value: 'IM' },
+ { text: 'Israel', value: 'IL' },
+ { text: 'Italy', value: 'IT' },
+ { text: 'Jamaica', value: 'JM' },
+ { text: 'Japan', value: 'JP' },
+ { text: 'Jersey', value: 'JE' },
+ { text: 'Jordan', value: 'JO' },
+ { text: 'Kazakhstan', value: 'KZ' },
+ { text: 'Kenya', value: 'KE' },
+ { text: 'Kiribati', value: 'KI' },
+ { text: 'North Korea', value: 'KP' },
+ { text: 'South Korea', value: 'KR' },
+ { text: 'Kuwait', value: 'KW' },
+ { text: 'Kyrgyzstan', value: 'KG' },
+ { text: 'Lao People’s Democratic Republic', value: 'LA' },
+ { text: 'Latvia', value: 'LV' },
+ { text: 'Lebanon', value: 'LB' },
+ { text: 'Lesotho', value: 'LS' },
+ { text: 'Liberia', value: 'LR' },
+ { text: 'Libya', value: 'LY' },
+ { text: 'Liechtenstein', value: 'LI' },
+ { text: 'Lithuania', value: 'LT' },
+ { text: 'Luxembourg', value: 'LU' },
+ { text: 'Macao', value: 'MO' },
+ { text: 'Madagascar', value: 'MG' },
+ { text: 'Malawi', value: 'MW' },
+ { text: 'Malaysia', value: 'MY' },
+ { text: 'Maldives', value: 'MV' },
+ { text: 'Mali', value: 'ML' },
+ { text: 'Malta', value: 'MT' },
+ { text: 'Marshall Islands', value: 'MH' },
+ { text: 'Martinique', value: 'MQ' },
+ { text: 'Mauritania', value: 'MR' },
+ { text: 'Mauritius', value: 'MU' },
+ { text: 'Mayotte', value: 'YT' },
+ { text: 'Mexico', value: 'MX' },
+ { text: 'Micronesia', value: 'FM' },
+ { text: 'Moldova', value: 'MD' },
+ { text: 'Monaco', value: 'MC' },
+ { text: 'Mongolia', value: 'MN' },
+ { text: 'Montenegro', value: 'ME' },
+ { text: 'Montserrat', value: 'MS' },
+ { text: 'Morocco', value: 'MA' },
+ { text: 'Mozambique', value: 'MZ' },
+ { text: 'Myanmar', value: 'MM' },
+ { text: 'Namibia', value: 'NA' },
+ { text: 'Nauru', value: 'NR' },
+ { text: 'Nepal', value: 'NP' },
+ { text: 'Netherlands', value: 'NL' },
+ { text: 'New Caledonia', value: 'NC' },
+ { text: 'New Zealand', value: 'NZ' },
+ { text: 'Nicaragua', value: 'NI' },
+ { text: 'Niger', value: 'NE' },
+ { text: 'Nigeria', value: 'NG' },
+ { text: 'Niue', value: 'NU' },
+ { text: 'Norfolk Island', value: 'NF' },
+ { text: 'North Macedonia', value: 'MK' },
+ { text: 'Northern Mariana Islands', value: 'MP' },
+ { text: 'Norway', value: 'NO' },
+ { text: 'Oman', value: 'OM' },
+ { text: 'Pakistan', value: 'PK' },
+ { text: 'Palau', value: 'PW' },
+ { text: 'Panama', value: 'PA' },
+ { text: 'Papua New Guinea', value: 'PG' },
+ { text: 'Paraguay', value: 'PY' },
+ { text: 'Peru', value: 'PE' },
+ { text: 'Philippines', value: 'PH' },
+ { text: 'Pitcairn', value: 'PN' },
+ { text: 'Poland', value: 'PL' },
+ { text: 'Portugal', value: 'PT' },
+ { text: 'Puerto Rico', value: 'PR' },
+ { text: 'Qatar', value: 'QA' },
+ { text: 'Réunion', value: 'RE' },
+ { text: 'Romania', value: 'RO' },
+ { text: 'Russian Federation', value: 'RU' },
+ { text: 'Rwanda', value: 'RW' },
+ { text: 'Saint Barthélemy', value: 'BL' },
+ { text: 'Saint Helena, Ascension and Tristan da Cunha', value: 'SH' },
+ { text: 'Saint Kitts and Nevis', value: 'KN' },
+ { text: 'Saint Lucia', value: 'LC' },
+ { text: 'Saint Martin (French part)', value: 'MF' },
+ { text: 'Saint Pierre and Miquelon', value: 'PM' },
+ { text: 'Saint Vincent and the Grenadines', value: 'VC' },
+ { text: 'Samoa', value: 'WS' },
+ { text: 'San Marino', value: 'SM' },
+ { text: 'Sao Tome and Principe', value: 'ST' },
+ { text: 'Saudi Arabia', value: 'SA' },
+ { text: 'Senegal', value: 'SN' },
+ { text: 'Serbia', value: 'RS' },
+ { text: 'Seychelles', value: 'SC' },
+ { text: 'Sierra Leone', value: 'SL' },
+ { text: 'Singapore', value: 'SG' },
+ { text: 'Slovakia', value: 'SK' },
+ { text: 'Slovenia', value: 'SI' },
+ { text: 'Solomon Islands', value: 'SB' },
+ { text: 'Somalia', value: 'SO' },
+ { text: 'South Africa', value: 'ZA' },
+ { text: 'South Georgia and the South Sandwich Islands', value: 'GS' },
+ { text: 'South Sudan', value: 'SS' },
+ { text: 'Spain', value: 'ES' },
+ { text: 'Sri Lanka', value: 'LK' },
+ { text: 'Sudan', value: 'SD' },
+ { text: 'Suriname', value: 'SR' },
+ { text: 'Svalbard and Jan Mayen', value: 'SJ' },
+ { text: 'Sweden', value: 'SE' },
+ { text: 'Switzerland', value: 'CH' },
+ { text: 'Syrian Arab Republic', value: 'SY' },
+ { text: 'Taiwan, Province of China', value: 'TW' },
+ { text: 'Tajikistan', value: 'TJ' },
+ { text: 'Tanzania, United Republic of', value: 'TZ' },
+ { text: 'Thailand', value: 'TH' },
+ { text: 'Timor-Leste', value: 'TL' },
+ { text: 'Togo', value: 'TG' },
+ { text: 'Tokelau', value: 'TK' },
+ { text: 'Tonga', value: 'TO' },
+ { text: 'Trinidad and Tobago', value: 'TT' },
+ { text: 'Tunisia', value: 'TN' },
+ { text: 'Turkey', value: 'TR' },
+ { text: 'Turkmenistan', value: 'TM' },
+ { text: 'Turks and Caicos Islands', value: 'TC' },
+ { text: 'Tuvalu', value: 'TV' },
+ { text: 'Uganda', value: 'UG' },
+ { text: 'Ukraine', value: 'UA' },
+ { text: 'United Arab Emirates', value: 'AE' },
+ { text: 'United Kingdom', value: 'GB' },
+ { text: 'United States', value: 'US' },
+ { text: 'United States Minor Outlying Islands', value: 'UM' },
+ { text: 'Uruguay', value: 'UY' },
+ { text: 'Uzbekistan', value: 'UZ' },
+ { text: 'Vanuatu', value: 'VU' },
+ { text: 'Venezuela', value: 'VE' },
+ { text: 'Viet Nam', value: 'VN' },
+ { text: 'Virgin Islands (British)', value: 'VG' },
+ { text: 'Virgin Islands (U.S.)', value: 'VI' },
+ { text: 'Wallis and Futuna', value: 'WF' },
+ { text: 'Western Sahara', value: 'EH' },
+ { text: 'Yemen', value: 'YE' },
+ { text: 'Zambia', value: 'ZM' },
+ { text: 'Zimbabwe', value: 'ZW' },
+ ],
plans: [
{
name: 'Free',
@@ -541,6 +966,81 @@ export default Vue.extend({
}
},
computed: {
+ invoiceStateOptions() {
+ if (this.invoiceFormCountry === 'US') {
+ return [
+ { text: 'Alabama', value: 'AL' },
+ { text: 'Alaska', value: 'AK' },
+ { text: 'Arizona', value: 'AZ' },
+ { text: 'Arkansas', value: 'AR' },
+ { text: 'California', value: 'CA' },
+ { text: 'Colorado', value: 'CO' },
+ { text: 'Connecticut', value: 'CT' },
+ { text: 'Delaware', value: 'DE' },
+ { text: 'Florida', value: 'FL' },
+ { text: 'Georgia', value: 'GA' },
+ { text: 'Hawaii', value: 'HI' },
+ { text: 'Idaho', value: 'ID' },
+ { text: 'Illinois', value: 'IL' },
+ { text: 'Indiana', value: 'IN' },
+ { text: 'Iowa', value: 'IA' },
+ { text: 'Kansas', value: 'KS' },
+ { text: 'Kentucky', value: 'KY' },
+ { text: 'Louisiana', value: 'LA' },
+ { text: 'Maine', value: 'ME' },
+ { text: 'Maryland', value: 'MD' },
+ { text: 'Massachusetts', value: 'MA' },
+ { text: 'Michigan', value: 'MI' },
+ { text: 'Minnesota', value: 'MN' },
+ { text: 'Mississippi', value: 'MS' },
+ { text: 'Missouri', value: 'MO' },
+ { text: 'Montana', value: 'MT' },
+ { text: 'Nebraska', value: 'NE' },
+ { text: 'Nevada', value: 'NV' },
+ { text: 'New Hampshire', value: 'NH' },
+ { text: 'New Jersey', value: 'NJ' },
+ { text: 'New Mexico', value: 'NM' },
+ { text: 'New York', value: 'NY' },
+ { text: 'North Carolina', value: 'NC' },
+ { text: 'North Dakota', value: 'ND' },
+ { text: 'Ohio', value: 'OH' },
+ { text: 'Oklahoma', value: 'OK' },
+ { text: 'Oregon', value: 'OR' },
+ { text: 'Pennsylvania', value: 'PA' },
+ { text: 'Rhode Island', value: 'RI' },
+ { text: 'South Carolina', value: 'SC' },
+ { text: 'South Dakota', value: 'SD' },
+ { text: 'Tennessee', value: 'TN' },
+ { text: 'Texas', value: 'TX' },
+ { text: 'Utah', value: 'UT' },
+ { text: 'Vermont', value: 'VT' },
+ { text: 'Virginia', value: 'VA' },
+ { text: 'Washington', value: 'WA' },
+ { text: 'West Virginia', value: 'WV' },
+ { text: 'Wisconsin', value: 'WI' },
+ { text: 'Wyoming', value: 'WY' },
+ { text: 'District of Columbia', value: 'DC' },
+ ]
+ }
+ if (this.invoiceFormCountry === 'CA') {
+ return [
+ { text: 'Alberta', value: 'AB' },
+ { text: 'British Columbia', value: 'BC' },
+ { text: 'Manitoba', value: 'MB' },
+ { text: 'New Brunswick', value: 'NB' },
+ { text: 'Newfoundland and Labrador', value: 'NL' },
+ { text: 'Nova Scotia', value: 'NS' },
+ { text: 'Ontario', value: 'ON' },
+ { text: 'Prince Edward Island', value: 'PE' },
+ { text: 'Quebec', value: 'QC' },
+ { text: 'Saskatchewan', value: 'SK' },
+ { text: 'Northwest Territories', value: 'NT' },
+ { text: 'Nunavut', value: 'NU' },
+ { text: 'Yukon', value: 'YT' },
+ ]
+ }
+ return []
+ },
checkoutURL() {
const url = new URL(this.$config.checkoutURL)
const user = this.$store.getters.getAuthUser
@@ -599,15 +1099,45 @@ export default Vue.extend({
},
loadSubscriptionInvoices() {
- this.loadingSubscriptionInvoices = true
+ this.loadingSubscriptionPayments = true
this.$store
.dispatch('indexSubscriptionPayments')
- .then((invoices: ResponsesSubscriptionInvoicesAPIResponse) => {
- console.log(invoices)
- this.invoices = invoices
+ .then((response: ResponsesUserSubscriptionPaymentsResponse) => {
+ this.payments = response
+ })
+ .finally(() => {
+ this.loadingSubscriptionPayments = false
+ })
+ },
+
+ generateInvoice() {
+ this.errorMessages = new ErrorMessages()
+ this.loading = true
+ this.$store
+ .dispatch('generateSubscriptionPaymentInvoice', {
+ subscriptionInvoiceId: this.selectedPayment?.id!,
+ request: {
+ name: this.invoiceFormName,
+ address: this.invoiceFormAddress,
+ city: this.invoiceFormCity,
+ state: this.invoiceFormState,
+ zip_code: this.invoiceFormZipCode,
+ country: this.invoiceFormCountry,
+ notes: this.invoiceFormNotes,
+ },
+ } as {
+ subscriptionInvoiceId: string
+ request: RequestsUserPaymentInvoice
+ })
+ .then(() => {
+ this.subscriptionInvoiceDialog = false
+ })
+ .catch((error: ErrorMessages) => {
+ console.log(error)
+ this.errorMessages = error
})
.finally(() => {
- this.loadingSubscriptionInvoices = false
+ this.loading = false
})
},
@@ -637,6 +1167,11 @@ export default Vue.extend({
this.loading = false
})
},
+
+ showInvoiceDialog(payment: subscriptionPayment) {
+ this.selectedPayment = payment
+ this.subscriptionInvoiceDialog = true
+ },
},
})
diff --git a/web/store/index.ts b/web/store/index.ts
index 54fc875a..afeeaebd 100644
--- a/web/store/index.ts
+++ b/web/store/index.ts
@@ -16,6 +16,7 @@ import {
RequestsDiscordStore,
RequestsDiscordUpdate,
RequestsUserNotificationUpdate,
+ RequestsUserPaymentInvoice,
RequestsWebhookStore,
RequestsWebhookUpdate,
ResponsesDiscordResponse,
@@ -25,10 +26,9 @@ import {
ResponsesOkString,
ResponsesPhoneAPIKeyResponse,
ResponsesPhoneAPIKeysResponse,
- ResponsesSubscriptionInvoicesAPIResponse,
ResponsesUnprocessableEntity,
- ResponsesUserInvoicesResponse,
ResponsesUserResponse,
+ ResponsesUserSubscriptionPaymentsResponse,
ResponsesWebhookResponse,
ResponsesWebhooksResponse,
} from '~/models/api'
@@ -536,10 +536,10 @@ export const actions = {
},
indexSubscriptionPayments(context: ActionContext) {
- return new Promise(
+ return new Promise(
(resolve, reject) => {
axios
- .get(
+ .get(
`/v1/users/subscription/payments`,
{
params: {
@@ -547,9 +547,13 @@ export const actions = {
},
},
)
- .then((response: AxiosResponse) => {
- resolve(response.data.data)
- })
+ .then(
+ (
+ response: AxiosResponse,
+ ) => {
+ resolve(response.data)
+ },
+ )
.catch(async (error: AxiosError) => {
await Promise.all([
context.dispatch('addNotification', {
@@ -565,6 +569,75 @@ export const actions = {
)
},
+ generateSubscriptionPaymentInvoice(
+ context: ActionContext,
+ payload: {
+ subscriptionInvoiceId: string
+ request: RequestsUserPaymentInvoice
+ },
+ ) {
+ return new Promise((resolve, reject) => {
+ axios
+ .post(
+ `/v1/users/subscription/invoices/${payload.subscriptionInvoiceId}`,
+ payload.request,
+ {
+ responseType: 'blob',
+ },
+ )
+ .then(async (response: AxiosResponse) => {
+ // Create a Blob from the response data
+ const pdfBlob = new Blob([response.data], {
+ type: response.headers['content-type'],
+ })
+
+ // Create a temporary URL for the Blob
+ const url = window.URL.createObjectURL(pdfBlob)
+
+ // Create a temporary element to trigger the download
+ const tempLink = document.createElement('a')
+ tempLink.href = url
+ tempLink.setAttribute(
+ 'download',
+ response.headers['content-disposition']
+ ?.split('filename=')[1]
+ .replaceAll('"', '') || 'Invoice.pdf',
+ ) // Set the desired filename for the downloaded file
+
+ // Append the element to the body and click it to trigger the download
+ document.body.appendChild(tempLink)
+ tempLink.click()
+
+ // Clean up the temporary elements and URL
+ document.body.removeChild(tempLink)
+ window.URL.revokeObjectURL(url)
+
+ await context.dispatch('addNotification', {
+ message:
+ response.data.message ??
+ 'Your invoice has been generated successfully',
+ type: 'success',
+ })
+ resolve()
+ })
+ .catch(async (error: AxiosError) => {
+ const text = await (error.response as any).data.text()
+ if (error.response) {
+ error.response.data = JSON.parse(text)
+ }
+ await Promise.all([
+ context.dispatch('addNotification', {
+ message:
+ (error.response?.data as any)?.message ??
+ 'Error while generating your invoice',
+ type: 'error',
+ }),
+ ])
+ reject(getErrorMessages(error))
+ })
+ })
+ },
+
async handleAxiosError(
context: ActionContext,
error: AxiosError,
From 5472c50f75fde1c75cb775fb4b14530e19d0b0fc Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Thu, 15 Jan 2026 00:56:22 +0200
Subject: [PATCH 084/215] Fix the billing usages page
---
web/pages/billing/index.vue | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/web/pages/billing/index.vue b/web/pages/billing/index.vue
index 750dc1ae..621f261f 100644
--- a/web/pages/billing/index.vue
+++ b/web/pages/billing/index.vue
@@ -226,7 +226,7 @@
- Overview
+ Overview
This is the summary of the sent messages and received messages in
- Subscription Payments
+ Subscription Payments
This is a list of your last 10 subscription payments made using
our payment provider
@@ -368,7 +368,7 @@
- Usage History
+ Usage History
Summary of all the sent and received messages in the past 12
months
From f6e5fc898d2a385564e9f30e0f9e6b4261603c5e Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Thu, 15 Jan 2026 01:03:09 +0200
Subject: [PATCH 085/215] Fix prettier
---
web/pages/billing/index.vue | 23 ++++++++++-------------
web/pages/index.vue | 10 +++++-----
2 files changed, 15 insertions(+), 18 deletions(-)
diff --git a/web/pages/billing/index.vue b/web/pages/billing/index.vue
index 621f261f..039f129f 100644
--- a/web/pages/billing/index.vue
+++ b/web/pages/billing/index.vue
@@ -435,11 +435,11 @@
{
- console.log(error)
this.errorMessages = error
})
.finally(() => {
diff --git a/web/pages/index.vue b/web/pages/index.vue
index 0171ce06..f40028cb 100644
--- a/web/pages/index.vue
+++ b/web/pages/index.vue
@@ -682,7 +682,7 @@ Console.WriteLine(await response.Content.ReadAsStringAsync());
tick-size="4"
tick
>
-
+
{{ pricingLabels[pricing] }}
@@ -951,7 +951,7 @@ Console.WriteLine(await response.Content.ReadAsStringAsync());
Can I install the app on my Iphone?
-
+
{{ mdiMinus }}
{{ mdiPlus }}
@@ -967,7 +967,7 @@ Console.WriteLine(await response.Content.ReadAsStringAsync());
What's the minimum supported Android version?
-
+
{{ mdiMinus }}
{{ mdiPlus }}
@@ -983,7 +983,7 @@ Console.WriteLine(await response.Content.ReadAsStringAsync());
Can I send unlimited number of messages per month?
-
+
{{ mdiMinus }}
{{ mdiPlus }}
@@ -1001,7 +1001,7 @@ Console.WriteLine(await response.Content.ReadAsStringAsync());
Can I change the sender of the SMS message
-
+
{{ mdiMinus }}
{{ mdiPlus }}
From 5755adfa543bf10ce63348580c1d6807b1823c6f Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Thu, 15 Jan 2026 01:10:23 +0200
Subject: [PATCH 086/215] Fix ID's
---
api/docs/docs.go | 5 +++++
api/docs/swagger.json | 5 +++++
api/docs/swagger.yaml | 4 ++++
api/pkg/entities/user.go | 2 +-
web/models/api.ts | 2 ++
5 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/api/docs/docs.go b/api/docs/docs.go
index d5a3831f..26545bdb 100644
--- a/api/docs/docs.go
+++ b/api/docs/docs.go
@@ -3342,6 +3342,7 @@ const docTemplate = `{
"notification_message_status_enabled",
"notification_newsletter_enabled",
"notification_webhook_enabled",
+ "subscription_id",
"subscription_name",
"timezone",
"updated_at"
@@ -3387,6 +3388,10 @@ const docTemplate = `{
"type": "string",
"example": "2022-06-05T14:26:02.302718+03:00"
},
+ "subscription_id": {
+ "type": "string",
+ "example": "8f9c71b8-b84e-4417-8408-a62274f65a08"
+ },
"subscription_name": {
"type": "string",
"example": "free"
diff --git a/api/docs/swagger.json b/api/docs/swagger.json
index 8559c8ec..db16ea4b 100644
--- a/api/docs/swagger.json
+++ b/api/docs/swagger.json
@@ -3073,6 +3073,7 @@
"notification_message_status_enabled",
"notification_newsletter_enabled",
"notification_webhook_enabled",
+ "subscription_id",
"subscription_name",
"timezone",
"updated_at"
@@ -3118,6 +3119,10 @@
"type": "string",
"example": "2022-06-05T14:26:02.302718+03:00"
},
+ "subscription_id": {
+ "type": "string",
+ "example": "8f9c71b8-b84e-4417-8408-a62274f65a08"
+ },
"subscription_name": {
"type": "string",
"example": "free"
diff --git a/api/docs/swagger.yaml b/api/docs/swagger.yaml
index 16811ab3..e8b171eb 100644
--- a/api/docs/swagger.yaml
+++ b/api/docs/swagger.yaml
@@ -388,6 +388,9 @@ definitions:
subscription_ends_at:
example: "2022-06-05T14:26:02.302718+03:00"
type: string
+ subscription_id:
+ example: 8f9c71b8-b84e-4417-8408-a62274f65a08
+ type: string
subscription_name:
example: free
type: string
@@ -412,6 +415,7 @@ definitions:
- notification_message_status_enabled
- notification_newsletter_enabled
- notification_webhook_enabled
+ - subscription_id
- subscription_name
- timezone
- updated_at
diff --git a/api/pkg/entities/user.go b/api/pkg/entities/user.go
index fd8de1a5..f26a8135 100644
--- a/api/pkg/entities/user.go
+++ b/api/pkg/entities/user.go
@@ -78,7 +78,7 @@ type User struct {
Timezone string `json:"timezone" example:"Europe/Helsinki" gorm:"default:Africa/Accra"`
ActivePhoneID *uuid.UUID `json:"active_phone_id" gorm:"type:uuid;" example:"32343a19-da5e-4b1b-a767-3298a73703cb" validate:"optional"`
SubscriptionName SubscriptionName `json:"subscription_name" example:"free"`
- SubscriptionID *string `json:"subscription_id" example:"8f9c71b8-b84e-4417-8408-a62274f65a08" swaggerignore:"true"`
+ SubscriptionID *string `json:"subscription_id" example:"8f9c71b8-b84e-4417-8408-a62274f65a08"`
SubscriptionStatus *string `json:"subscription_status" example:"on_trial" validate:"optional"`
SubscriptionRenewsAt *time.Time `json:"subscription_renews_at" example:"2022-06-05T14:26:02.302718+03:00" validate:"optional"`
SubscriptionEndsAt *time.Time `json:"subscription_ends_at" example:"2022-06-05T14:26:02.302718+03:00" validate:"optional"`
diff --git a/web/models/api.ts b/web/models/api.ts
index 94feb0b0..029b5f01 100644
--- a/web/models/api.ts
+++ b/web/models/api.ts
@@ -224,6 +224,8 @@ export interface EntitiesUser {
notification_webhook_enabled: boolean
/** @example "2022-06-05T14:26:02.302718+03:00" */
subscription_ends_at?: string
+ /** @example "8f9c71b8-b84e-4417-8408-a62274f65a08" */
+ subscription_id: string
/** @example "free" */
subscription_name: string
/** @example "2022-06-05T14:26:02.302718+03:00" */
From 629b1a4096ec470b45c9d53933a29b99d23bc8df Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Thu, 15 Jan 2026 01:12:46 +0200
Subject: [PATCH 087/215] Set locale to english
---
api/pkg/services/user_service.go | 1 +
1 file changed, 1 insertion(+)
diff --git a/api/pkg/services/user_service.go b/api/pkg/services/user_service.go
index bd586eaa..20c924b4 100644
--- a/api/pkg/services/user_service.go
+++ b/api/pkg/services/user_service.go
@@ -112,6 +112,7 @@ func (service *UserService) GenerateReceipt(ctx context.Context, params *UserInv
"country": params.Country,
"zip_code": params.ZipCode,
"notes": params.Notes,
+ "locale": "en",
}
invoice, _, err := service.lemonsqueezyClient.SubscriptionInvoices.Generate(ctx, params.SubscriptionInvoiceID, payload)
From e99d1f130c923026bdcda350764ef6c16ab7f65a Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Fri, 30 Jan 2026 09:56:15 +0200
Subject: [PATCH 088/215] Remove excessive logging
---
api/pkg/middlewares/api_key_auth_middleware.go | 1 -
api/pkg/middlewares/bearer_api_key_auth_middleware.go | 7 +------
api/pkg/middlewares/bearer_auth_middleware.go | 2 --
api/pkg/middlewares/http_request_logger_middleware.go | 5 -----
api/pkg/middlewares/phone_api_key_auth_middleware.go | 1 -
api/pkg/repositories/gorm_phone_api_key_repository.go | 1 -
api/pkg/repositories/gorm_phone_repository.go | 1 -
api/pkg/repositories/gorm_user_repository.go | 1 -
8 files changed, 1 insertion(+), 18 deletions(-)
diff --git a/api/pkg/middlewares/api_key_auth_middleware.go b/api/pkg/middlewares/api_key_auth_middleware.go
index 17ac4335..d971c94a 100644
--- a/api/pkg/middlewares/api_key_auth_middleware.go
+++ b/api/pkg/middlewares/api_key_auth_middleware.go
@@ -33,7 +33,6 @@ func APIKeyAuth(logger telemetry.Logger, tracer telemetry.Tracer, userRepository
}
c.Locals(ContextKeyAuthUserID, authUser)
- ctxLogger.Info(fmt.Sprintf("[%T] set successfully for user with ID [%s]", authUser, authUser.ID))
return c.Next()
}
}
diff --git a/api/pkg/middlewares/bearer_api_key_auth_middleware.go b/api/pkg/middlewares/bearer_api_key_auth_middleware.go
index 2b1dc1c2..1babbd25 100644
--- a/api/pkg/middlewares/bearer_api_key_auth_middleware.go
+++ b/api/pkg/middlewares/bearer_api_key_auth_middleware.go
@@ -15,11 +15,9 @@ func BearerAPIKeyAuth(logger telemetry.Logger, tracer telemetry.Tracer, userRepo
logger = logger.WithService("middlewares.APIKeyAuth")
return func(c *fiber.Ctx) error {
- ctx, span := tracer.StartFromFiberCtx(c, "middlewares.APIKeyAuth")
+ ctx, span, _ := tracer.StartFromFiberCtxWithLogger(c, logger, "middlewares.APIKeyAuth")
defer span.End()
- ctxLogger := tracer.CtxLogger(logger, span)
-
apiKey := strings.TrimSpace(strings.Replace(c.Get(authHeaderBearer), bearerScheme, "", 1))
if len(apiKey) == 0 {
span.AddEvent(fmt.Sprintf("the request header has no [%s] api key", authHeaderAPIKey))
@@ -33,9 +31,6 @@ func BearerAPIKeyAuth(logger telemetry.Logger, tracer telemetry.Tracer, userRepo
}
c.Locals(ContextKeyAuthUserID, authUser)
-
- ctxLogger.Info(fmt.Sprintf("[%T] set successfully for user with ID [%s]", authUser, authUser.ID))
-
return c.Next()
}
}
diff --git a/api/pkg/middlewares/bearer_auth_middleware.go b/api/pkg/middlewares/bearer_auth_middleware.go
index 7df1ca3a..ffd29f0d 100644
--- a/api/pkg/middlewares/bearer_auth_middleware.go
+++ b/api/pkg/middlewares/bearer_auth_middleware.go
@@ -46,8 +46,6 @@ func BearerAuth(logger telemetry.Logger, tracer telemetry.Tracer, authClient *au
}
c.Locals(ContextKeyAuthUserID, authUser)
-
- ctxLogger.Info(fmt.Sprintf("[%T] set successfully for user with ID [%s]", authUser, authUser.ID))
return c.Next()
}
}
diff --git a/api/pkg/middlewares/http_request_logger_middleware.go b/api/pkg/middlewares/http_request_logger_middleware.go
index bc0146f0..522f0c91 100644
--- a/api/pkg/middlewares/http_request_logger_middleware.go
+++ b/api/pkg/middlewares/http_request_logger_middleware.go
@@ -18,11 +18,6 @@ func HTTPRequestLogger(tracer telemetry.Tracer, logger telemetry.Logger) fiber.H
_, span, ctxLogger := tracer.StartFromFiberCtxWithLogger(c, logger)
defer span.End()
- ctxLogger.WithString("http.method", c.Method()).
- WithString("http.path", c.Path()).
- WithString("client.version", c.Get(clientVersionHeader)).
- Trace(fmt.Sprintf("%s %s", c.Method(), c.OriginalURL()))
-
response := c.Next()
statusCode := c.Response().StatusCode()
diff --git a/api/pkg/middlewares/phone_api_key_auth_middleware.go b/api/pkg/middlewares/phone_api_key_auth_middleware.go
index dc19c3b8..72bc75ae 100644
--- a/api/pkg/middlewares/phone_api_key_auth_middleware.go
+++ b/api/pkg/middlewares/phone_api_key_auth_middleware.go
@@ -31,7 +31,6 @@ func PhoneAPIKeyAuth(logger telemetry.Logger, tracer telemetry.Tracer, repositor
}
c.Locals(ContextKeyAuthUserID, authUser)
- ctxLogger.Info(fmt.Sprintf("[%T] set successfully for user with ID [%s]", authUser, authUser.ID))
return c.Next()
}
}
diff --git a/api/pkg/repositories/gorm_phone_api_key_repository.go b/api/pkg/repositories/gorm_phone_api_key_repository.go
index 3b1bb306..3c306f5a 100644
--- a/api/pkg/repositories/gorm_phone_api_key_repository.go
+++ b/api/pkg/repositories/gorm_phone_api_key_repository.go
@@ -98,7 +98,6 @@ func (repository *gormPhoneAPIKeyRepository) LoadAuthContext(ctx context.Context
defer span.End()
if authContext, found := repository.cache.Get(apiKey); found {
- ctxLogger.Info(fmt.Sprintf("cache hit for user with ID [%s] and phone API Key ID [%s]", authContext.ID, *authContext.PhoneAPIKeyID))
return authContext, nil
}
diff --git a/api/pkg/repositories/gorm_phone_repository.go b/api/pkg/repositories/gorm_phone_repository.go
index 40c29d30..55b6fb3f 100644
--- a/api/pkg/repositories/gorm_phone_repository.go
+++ b/api/pkg/repositories/gorm_phone_repository.go
@@ -123,7 +123,6 @@ func (repository *gormPhoneRepository) Load(ctx context.Context, userID entities
defer span.End()
if phone, found := repository.cache.Get(repository.getCacheKey(userID, phoneNumber)); found {
- ctxLogger.Info(fmt.Sprintf("cache hit for [%T] with ID [%s]", phone, userID))
return phone, nil
}
diff --git a/api/pkg/repositories/gorm_user_repository.go b/api/pkg/repositories/gorm_user_repository.go
index 39cda887..572548c3 100644
--- a/api/pkg/repositories/gorm_user_repository.go
+++ b/api/pkg/repositories/gorm_user_repository.go
@@ -154,7 +154,6 @@ func (repository *gormUserRepository) LoadAuthContext(ctx context.Context, apiKe
defer span.End()
if authUser, found := repository.cache.Get(apiKey); found {
- ctxLogger.Info(fmt.Sprintf("cache hit for user with ID [%s]", authUser.ID))
return authUser, nil
}
From 35866bf8a129c5e24cd475ac0a76de227ddf7ebc Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Fri, 30 Jan 2026 10:01:49 +0200
Subject: [PATCH 089/215] Cache invalid API key
---
api/pkg/middlewares/http_request_logger_middleware.go | 2 +-
api/pkg/repositories/gorm_user_repository.go | 4 ++++
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/api/pkg/middlewares/http_request_logger_middleware.go b/api/pkg/middlewares/http_request_logger_middleware.go
index 522f0c91..b8ee0faa 100644
--- a/api/pkg/middlewares/http_request_logger_middleware.go
+++ b/api/pkg/middlewares/http_request_logger_middleware.go
@@ -22,7 +22,7 @@ func HTTPRequestLogger(tracer telemetry.Tracer, logger telemetry.Logger) fiber.H
statusCode := c.Response().StatusCode()
span.AddEvent(fmt.Sprintf("finished handling request with traceID: [%s], statusCode: [%d]", span.SpanContext().TraceID().String(), statusCode))
- if statusCode >= 300 && len(c.Request().Body()) > 0 {
+ if statusCode >= 300 && len(c.Request().Body()) > 0 && statusCode != 401 {
ctxLogger.Warn(stacktrace.NewError(fmt.Sprintf("http.status [%d], body [%s]", statusCode, string(c.Request().Body()))))
}
diff --git a/api/pkg/repositories/gorm_user_repository.go b/api/pkg/repositories/gorm_user_repository.go
index 572548c3..e31b2848 100644
--- a/api/pkg/repositories/gorm_user_repository.go
+++ b/api/pkg/repositories/gorm_user_repository.go
@@ -154,12 +154,16 @@ func (repository *gormUserRepository) LoadAuthContext(ctx context.Context, apiKe
defer span.End()
if authUser, found := repository.cache.Get(apiKey); found {
+ if authUser.IsNoop() {
+ return authUser, repository.tracer.WrapErrorSpan(span, stacktrace.NewError(fmt.Sprintf("user with api key [%s] does not exist", apiKey)))
+ }
return authUser, nil
}
user := new(entities.User)
err := repository.db.WithContext(ctx).Where("api_key = ?", apiKey).First(user).Error
if errors.Is(err, gorm.ErrRecordNotFound) {
+ repository.cache.SetWithTTL(apiKey, entities.AuthContext{}, 1, 2*time.Hour)
msg := fmt.Sprintf("user with api key [%s] does not exist", apiKey)
return entities.AuthContext{}, repository.tracer.WrapErrorSpan(span, stacktrace.PropagateWithCode(err, ErrCodeNotFound, msg))
}
From b3360eed1dba51e96eeda3b3a06441b62d648a75 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Fri, 30 Jan 2026 10:12:11 +0200
Subject: [PATCH 090/215] Cache invalid API key
---
api/pkg/middlewares/bearer_api_key_auth_middleware.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/api/pkg/middlewares/bearer_api_key_auth_middleware.go b/api/pkg/middlewares/bearer_api_key_auth_middleware.go
index 1babbd25..16d9ac5e 100644
--- a/api/pkg/middlewares/bearer_api_key_auth_middleware.go
+++ b/api/pkg/middlewares/bearer_api_key_auth_middleware.go
@@ -15,7 +15,7 @@ func BearerAPIKeyAuth(logger telemetry.Logger, tracer telemetry.Tracer, userRepo
logger = logger.WithService("middlewares.APIKeyAuth")
return func(c *fiber.Ctx) error {
- ctx, span, _ := tracer.StartFromFiberCtxWithLogger(c, logger, "middlewares.APIKeyAuth")
+ ctx, span, ctxLogger := tracer.StartFromFiberCtxWithLogger(c, logger, "middlewares.APIKeyAuth")
defer span.End()
apiKey := strings.TrimSpace(strings.Replace(c.Get(authHeaderBearer), bearerScheme, "", 1))
From fee6bf6a1524e09c1a6802e8d79d35d9fc71ebd9 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Fri, 30 Jan 2026 10:26:48 +0200
Subject: [PATCH 091/215] Fix warning header
---
api/pkg/middlewares/http_request_logger_middleware.go | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/api/pkg/middlewares/http_request_logger_middleware.go b/api/pkg/middlewares/http_request_logger_middleware.go
index b8ee0faa..75ddcae2 100644
--- a/api/pkg/middlewares/http_request_logger_middleware.go
+++ b/api/pkg/middlewares/http_request_logger_middleware.go
@@ -2,6 +2,7 @@ package middlewares
import (
"fmt"
+ "slices"
"github.com/NdoleStudio/httpsms/pkg/telemetry"
"github.com/gofiber/fiber/v2"
@@ -22,8 +23,8 @@ func HTTPRequestLogger(tracer telemetry.Tracer, logger telemetry.Logger) fiber.H
statusCode := c.Response().StatusCode()
span.AddEvent(fmt.Sprintf("finished handling request with traceID: [%s], statusCode: [%d]", span.SpanContext().TraceID().String(), statusCode))
- if statusCode >= 300 && len(c.Request().Body()) > 0 && statusCode != 401 {
- ctxLogger.Warn(stacktrace.NewError(fmt.Sprintf("http.status [%d], body [%s]", statusCode, string(c.Request().Body()))))
+ if statusCode >= 300 && len(c.Request().Body()) > 0 && !slices.Contains([]int{401, 402}, statusCode) {
+ ctxLogger.WithString("client.version", c.Get(clientVersionHeader)).Warn(stacktrace.NewError(fmt.Sprintf("http.status [%d], body [%s]", statusCode, string(c.Request().Body()))))
}
return response
From 5a8eea79ef745b8730d1a19526bd7027c189dcef Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Fri, 30 Jan 2026 22:26:09 +0200
Subject: [PATCH 092/215] Add clear instructions for system user
---
README.md | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index f1d9a1b0..c992a691 100644
--- a/README.md
+++ b/README.md
@@ -227,8 +227,10 @@ docker compose up --build
### 6. Create the System User
-- The application uses the concept of a system user to process events async. You should manually create this user in `users` table in your database.
- Make sure you use the same `id` and `api_key` as the `EVENTS_QUEUE_USER_ID`, and `EVENTS_QUEUE_USER_API_KEY` in your `.env` file
+- The application uses the concept of a system user to process events async. You should manually create this user in `users` table in your database. Make sure you use the same `id` and `api_key` as the `EVENTS_QUEUE_USER_ID`, and `EVENTS_QUEUE_USER_API_KEY` in your `.env` file. You can create a system user with this SQL command `INSERT INTO users (id, api_key, email ) VALUES ('your-system-user-id', 'your-system-api-key', 'system@domain.com');`
+
+> [!TIP]
+> Restart your API docker container after setting the `EVENTS_QUEUE_USER_ID`, and `EVENTS_QUEUE_USER_API_KEY` in your `.env` file
### 7. Build the Android App.
From 1c0efd78c7c0de00920f1f8544b45142e85caaf8 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Fri, 30 Jan 2026 22:27:41 +0200
Subject: [PATCH 093/215] Make it even more clear
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index c992a691..438158b8 100644
--- a/README.md
+++ b/README.md
@@ -230,7 +230,7 @@ docker compose up --build
- The application uses the concept of a system user to process events async. You should manually create this user in `users` table in your database. Make sure you use the same `id` and `api_key` as the `EVENTS_QUEUE_USER_ID`, and `EVENTS_QUEUE_USER_API_KEY` in your `.env` file. You can create a system user with this SQL command `INSERT INTO users (id, api_key, email ) VALUES ('your-system-user-id', 'your-system-api-key', 'system@domain.com');`
> [!TIP]
-> Restart your API docker container after setting the `EVENTS_QUEUE_USER_ID`, and `EVENTS_QUEUE_USER_API_KEY` in your `.env` file
+> Restart your API docker container after setting the `EVENTS_QUEUE_USER_ID`, and `EVENTS_QUEUE_USER_API_KEY` in your `.env` file so that the httpSMS API can pick up the changes.
### 7. Build the Android App.
From e1d62cf459982c2ddae424fec602d26a5a3bb75b Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Fri, 30 Jan 2026 22:28:37 +0200
Subject: [PATCH 094/215] Fix SQL script
---
README.md | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 438158b8..548f50a5 100644
--- a/README.md
+++ b/README.md
@@ -227,7 +227,10 @@ docker compose up --build
### 6. Create the System User
-- The application uses the concept of a system user to process events async. You should manually create this user in `users` table in your database. Make sure you use the same `id` and `api_key` as the `EVENTS_QUEUE_USER_ID`, and `EVENTS_QUEUE_USER_API_KEY` in your `.env` file. You can create a system user with this SQL command `INSERT INTO users (id, api_key, email ) VALUES ('your-system-user-id', 'your-system-api-key', 'system@domain.com');`
+- The application uses the concept of a system user to process events async. You should manually create this user in `users` table in your database. Make sure you use the same `id` and `api_key` as the `EVENTS_QUEUE_USER_ID`, and `EVENTS_QUEUE_USER_API_KEY` in your `.env` file.
+ ```SQL
+ INSERT INTO users (id, api_key, email ) VALUES ('your-system-user-id', 'your-system-api-key', 'system@domain.com');
+ ```
> [!TIP]
> Restart your API docker container after setting the `EVENTS_QUEUE_USER_ID`, and `EVENTS_QUEUE_USER_API_KEY` in your `.env` file so that the httpSMS API can pick up the changes.
From d134873ff081476992a297d2ef080786b6fc6723 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Fri, 30 Jan 2026 22:30:40 +0200
Subject: [PATCH 095/215] Change from TIP to important
---
README.md | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 548f50a5..ccae7451 100644
--- a/README.md
+++ b/README.md
@@ -228,12 +228,13 @@ docker compose up --build
### 6. Create the System User
- The application uses the concept of a system user to process events async. You should manually create this user in `users` table in your database. Make sure you use the same `id` and `api_key` as the `EVENTS_QUEUE_USER_ID`, and `EVENTS_QUEUE_USER_API_KEY` in your `.env` file.
+
```SQL
INSERT INTO users (id, api_key, email ) VALUES ('your-system-user-id', 'your-system-api-key', 'system@domain.com');
```
-> [!TIP]
-> Restart your API docker container after setting the `EVENTS_QUEUE_USER_ID`, and `EVENTS_QUEUE_USER_API_KEY` in your `.env` file so that the httpSMS API can pick up the changes.
+> [!IMPORTANT]
+> Restart your API docker container after modifying `EVENTS_QUEUE_USER_ID`, and `EVENTS_QUEUE_USER_API_KEY` in your `.env` file so that the httpSMS API can pick up the changes.
### 7. Build the Android App.
From bdb1e05f16bdfbeee31445bf8308b6e0753304a6 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 1 Feb 2026 00:03:36 +0000
Subject: [PATCH 096/215] fix(deps): bump
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace
Bumps [github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace](https://github.com/GoogleCloudPlatform/opentelemetry-operations-go) from 1.30.0 to 1.31.0.
- [Release notes](https://github.com/GoogleCloudPlatform/opentelemetry-operations-go/releases)
- [Commits](https://github.com/GoogleCloudPlatform/opentelemetry-operations-go/compare/detectors/gcp/v1.30.0...detectors/gcp/v1.31.0)
---
updated-dependencies:
- dependency-name: github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace
dependency-version: 1.31.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 4 ++--
api/go.sum | 12 ++++++------
2 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index a798964a..71b2ded8 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -8,7 +8,7 @@ require (
cloud.google.com/go/cloudtasks v1.13.7
firebase.google.com/go v3.13.0+incompatible
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.54.0
- github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.30.0
+ github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.31.0
github.com/NdoleStudio/go-otelroundtripper v0.0.13
github.com/NdoleStudio/lemonsqueezy-go v1.3.1
github.com/NdoleStudio/plunk-go v0.0.2
@@ -75,7 +75,7 @@ require (
github.com/ClickHouse/ch-go v0.69.0 // indirect
github.com/ClickHouse/clickhouse-go/v2 v2.40.3 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.30.0 // indirect
- github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.54.0 // indirect
+ github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.55.0 // indirect
github.com/KyleBanks/depth v1.2.1 // indirect
github.com/Masterminds/goutils v1.1.1 // indirect
github.com/Masterminds/semver v1.5.0 // indirect
diff --git a/api/go.sum b/api/go.sum
index d1685d6c..46d90258 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -40,12 +40,12 @@ github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.30.0
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.30.0/go.mod h1:P4WPRUkOhJC13W//jWpyfJNDAIpvRbAUIYLX/4jtlE0=
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.54.0 h1:lhhYARPUu3LmHysQ/igznQphfzynnqI3D75oUyw1HXk=
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.54.0/go.mod h1:l9rva3ApbBpEJxSNYnwT9N4CDLrWgtq3u8736C5hyJw=
-github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.30.0 h1:5eCqTd9rTwMlE62z0xFdzPJ+3pji75hJrwq1jrCjo5w=
-github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.30.0/go.mod h1:4BcvJy7WxY8X2eX49z2VO1ByhO+CcQK8lKPCH/QlZvo=
-github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.54.0 h1:xfK3bbi6F2RDtaZFtUdKO3osOBIhNb+xTs8lFW6yx9o=
-github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.54.0/go.mod h1:vB2GH9GAYYJTO3mEn8oYwzEdhlayZIdQz6zdzgUIRvA=
-github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.54.0 h1:s0WlVbf9qpvkh1c/uDAPElam0WrL7fHRIidgZJ7UqZI=
-github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.54.0/go.mod h1:Mf6O40IAyB9zR/1J8nGDDPirZQQPbYJni8Yisy7NTMc=
+github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.31.0 h1:xQMhkBXPOKe/GzC6TctwlK2aNF+9k5VwFgdE83rBK2Y=
+github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.31.0/go.mod h1:VLoD5cAsRQXsAFXpOZrrTGzbuMsntlspIZno4xor5Zg=
+github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.55.0 h1:7t/qx5Ost0s0wbA/VDrByOooURhp+ikYwv20i9Y07TQ=
+github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.55.0/go.mod h1:vB2GH9GAYYJTO3mEn8oYwzEdhlayZIdQz6zdzgUIRvA=
+github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.55.0 h1:0s6TxfCu2KHkkZPnBfsQ2y5qia0jl3MMrmBhu3nCOYk=
+github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.55.0/go.mod h1:Mf6O40IAyB9zR/1J8nGDDPirZQQPbYJni8Yisy7NTMc=
github.com/KyleBanks/depth v1.2.1 h1:5h8fQADFrWtarTdtDudMmGsC7GPbOAu6RVB3ffsVFHc=
github.com/KyleBanks/depth v1.2.1/go.mod h1:jzSb9d0L43HxTQfT+oSA1EEp2q+ne2uh6XgeJcm8brE=
github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI=
From 5f6fe6ba4eef835158adcb8d012f0fa05da24fca Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 1 Feb 2026 00:03:43 +0000
Subject: [PATCH 097/215] fix(deps): bump github.com/gofiber/fiber/v2 in /api
Bumps [github.com/gofiber/fiber/v2](https://github.com/gofiber/fiber) from 2.52.10 to 2.52.11.
- [Release notes](https://github.com/gofiber/fiber/releases)
- [Commits](https://github.com/gofiber/fiber/compare/v2.52.10...v2.52.11)
---
updated-dependencies:
- dependency-name: github.com/gofiber/fiber/v2
dependency-version: 2.52.11
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 2 +-
api/go.sum | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index a798964a..236c6cbd 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -20,7 +20,7 @@ require (
github.com/dgraph-io/ristretto/v2 v2.3.0
github.com/dustin/go-humanize v1.0.1
github.com/gofiber/contrib/otelfiber v1.0.10
- github.com/gofiber/fiber/v2 v2.52.10
+ github.com/gofiber/fiber/v2 v2.52.11
github.com/gofiber/swagger v1.1.1
github.com/golang-jwt/jwt/v5 v5.3.0
github.com/google/uuid v1.6.0
diff --git a/api/go.sum b/api/go.sum
index d1685d6c..cd18f0b8 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -150,8 +150,8 @@ github.com/go-sql-driver/mysql v1.9.3/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI6
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
github.com/gofiber/contrib/otelfiber v1.0.10 h1:Bu28Pi4pfYmGfIc/9+sNaBbFwTHGY/zpSIK5jBxuRtM=
github.com/gofiber/contrib/otelfiber v1.0.10/go.mod h1:jN6AvS1HolDHTQHFURsV+7jSX96FpXYeKH6nmkq8AIw=
-github.com/gofiber/fiber/v2 v2.52.10 h1:jRHROi2BuNti6NYXmZ6gbNSfT3zj/8c0xy94GOU5elY=
-github.com/gofiber/fiber/v2 v2.52.10/go.mod h1:YEcBbO/FB+5M1IZNBP9FO3J9281zgPAreiI1oqg8nDw=
+github.com/gofiber/fiber/v2 v2.52.11 h1:5f4yzKLcBcF8ha1GQTWB+mpblWz3Vz6nSAbTL31HkWs=
+github.com/gofiber/fiber/v2 v2.52.11/go.mod h1:YEcBbO/FB+5M1IZNBP9FO3J9281zgPAreiI1oqg8nDw=
github.com/gofiber/swagger v1.1.1 h1:FZVhVQQ9s1ZKLHL/O0loLh49bYB5l1HEAgxDlcTtkRA=
github.com/gofiber/swagger v1.1.1/go.mod h1:vtvY/sQAMc/lGTUCg0lqmBL7Ht9O7uzChpbvJeJQINw=
github.com/gofrs/flock v0.12.1 h1:MTLVXXHf8ekldpJk3AKicLij9MdwOWkZ+a/jHHZby9E=
From 0690b482b270085cb54daeb4cb796587f363cbf9 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 1 Feb 2026 00:03:45 +0000
Subject: [PATCH 098/215] chore(deps-dev): bump @types/qrcode from 1.5.5 to
1.5.6 in /web
Bumps [@types/qrcode](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/qrcode) from 1.5.5 to 1.5.6.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/qrcode)
---
updated-dependencies:
- dependency-name: "@types/qrcode"
dependency-version: 1.5.6
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
web/package.json | 2 +-
web/pnpm-lock.yaml | 190 ++++++++++++++++++---------------------------
2 files changed, 78 insertions(+), 114 deletions(-)
diff --git a/web/package.json b/web/package.json
index dd63ade1..d79e5170 100644
--- a/web/package.json
+++ b/web/package.json
@@ -63,7 +63,7 @@
"@nuxtjs/eslint-module": "^4.1.0",
"@nuxtjs/stylelint-module": "^5.2.0",
"@nuxtjs/vuetify": "^1.12.3",
- "@types/qrcode": "^1.5.5",
+ "@types/qrcode": "^1.5.6",
"@vue/test-utils": "^1.3.6",
"axios": "^0.30.2",
"babel-core": "7.0.0-bridge.0",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index b2b84a8c..7f151354 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -104,7 +104,7 @@ importers:
version: 7.28.5(@babel/core@7.28.4)(eslint@8.57.1)
'@commitlint/cli':
specifier: ^20.2.0
- version: 20.2.0(@types/node@25.0.3)(typescript@4.9.5)
+ version: 20.2.0(@types/node@25.1.0)(typescript@4.9.5)
'@commitlint/config-conventional':
specifier: ^19.8.0
version: 19.8.0
@@ -119,16 +119,16 @@ importers:
version: 12.1.0(eslint@8.57.1)(typescript@4.9.5)
'@nuxtjs/eslint-module':
specifier: ^4.1.0
- version: 4.1.0(eslint@8.57.1)(rollup@3.29.5)(vite@4.5.3(@types/node@25.0.3)(sass@1.32.13)(terser@5.44.1))(webpack@5.104.1)
+ version: 4.1.0(eslint@8.57.1)(rollup@3.29.5)(vite@4.5.3(@types/node@25.1.0)(sass@1.32.13)(terser@5.44.1))(webpack@5.104.1)
'@nuxtjs/stylelint-module':
specifier: ^5.2.0
- version: 5.2.0(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@25.0.3)(sass@1.32.13)(terser@5.44.1))(webpack@5.104.1)
+ version: 5.2.0(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@25.1.0)(sass@1.32.13)(terser@5.44.1))(webpack@5.104.1)
'@nuxtjs/vuetify':
specifier: ^1.12.3
version: 1.12.3(vue@2.7.16)(webpack@5.104.1)
'@types/qrcode':
- specifier: ^1.5.5
- version: 1.5.5
+ specifier: ^1.5.6
+ version: 1.5.6
'@vue/test-utils':
specifier: ^1.3.6
version: 1.3.6(vue-template-compiler@2.7.16)(vue@2.7.16)
@@ -158,7 +158,7 @@ importers:
version: 11.11.1
jest:
specifier: ^30.2.0
- version: 30.2.0(@types/node@25.0.3)
+ version: 30.2.0(@types/node@25.1.0)
lint-staged:
specifier: ^16.1.4
version: 16.1.4
@@ -185,7 +185,7 @@ importers:
version: 34.0.0(stylelint@15.11.0(typescript@4.9.5))
ts-jest:
specifier: ^29.4.6
- version: 29.4.6(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.4))(jest-util@30.2.0)(jest@30.2.0(@types/node@25.0.3))(typescript@4.9.5)
+ version: 29.4.6(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.4))(jest-util@30.2.0)(jest@30.2.0(@types/node@25.1.0))(typescript@4.9.5)
vue-client-only:
specifier: ^2.1.0
version: 2.1.0
@@ -2357,14 +2357,11 @@ packages:
'@types/node@16.18.55':
resolution: {integrity: sha512-Y1zz/LIuJek01+hlPNzzXQhmq/Z2BCP96j18MSXC0S0jSu/IG4FFxmBs7W4/lI2vPJ7foVfEB0hUVtnOjnCiTg==}
- '@types/node@20.8.0':
- resolution: {integrity: sha512-LzcWltT83s1bthcvjBmiBvGJiiUe84NWRHkw+ZV6Fr41z2FbIzvc815dk2nQ3RAKMuN2fkenM/z3Xv2QzEpYxQ==}
-
'@types/node@24.6.2':
resolution: {integrity: sha512-d2L25Y4j+W3ZlNAeMKcy7yDsK425ibcAOO2t7aPTz6gNMH0z2GThtwENCDc0d/Pw9wgyRqE5Px1wkV7naz8ang==}
- '@types/node@25.0.3':
- resolution: {integrity: sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==}
+ '@types/node@25.1.0':
+ resolution: {integrity: sha512-t7frlewr6+cbx+9Ohpl0NOTKXZNV9xHRmNOvql47BFJKcEG1CxtxlPEEe+gR9uhVWM4DwhnvTF110mIL4yP9RA==}
'@types/normalize-package-data@2.4.2':
resolution: {integrity: sha512-lqa4UEhhv/2sjjIQgjX8B+RBjj47eo0mzGasklVJ78UKGQY1r0VpB9XHDaZZO9qzEFDdy4MrXLuEaSmPrPSe/A==}
@@ -2378,8 +2375,8 @@ packages:
'@types/pug@2.0.10':
resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==}
- '@types/qrcode@1.5.5':
- resolution: {integrity: sha512-CdfBi/e3Qk+3Z/fXYShipBT13OJ2fDO2Q2w5CIP5anLTLIndQG9z6P1cnm+8zCWSpm5dnxMFd/uREtb0EXuQzg==}
+ '@types/qrcode@1.5.6':
+ resolution: {integrity: sha512-te7NQcV2BOvdj2b1hCAHzAoMNuj65kNBMz0KBaxM6c3VGBOhU0dURQKOtH8CFNI/dsKkwlv32p26qYQTWoB5bw==}
'@types/qs@6.9.8':
resolution: {integrity: sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==}
@@ -8337,6 +8334,7 @@ packages:
tar@6.2.0:
resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==}
engines: {node: '>=10'}
+ deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exhorbitant rates) by contacting i@izs.me
teeny-request@7.2.0:
resolution: {integrity: sha512-SyY0pek1zWsi0LRVAALem+avzMLc33MKW/JLLakdP4s9+D7+jHcy5x6P+h94g2QNZsAqQNfX5lsbd3WSeJXrrw==}
@@ -10380,11 +10378,11 @@ snapshots:
'@bcoe/v8-coverage@0.2.3': {}
- '@commitlint/cli@20.2.0(@types/node@25.0.3)(typescript@4.9.5)':
+ '@commitlint/cli@20.2.0(@types/node@25.1.0)(typescript@4.9.5)':
dependencies:
'@commitlint/format': 20.2.0
'@commitlint/lint': 20.2.0
- '@commitlint/load': 20.2.0(@types/node@25.0.3)(typescript@4.9.5)
+ '@commitlint/load': 20.2.0(@types/node@25.1.0)(typescript@4.9.5)
'@commitlint/read': 20.2.0
'@commitlint/types': 20.2.0
tinyexec: 1.0.2
@@ -10431,7 +10429,7 @@ snapshots:
'@commitlint/rules': 20.2.0
'@commitlint/types': 20.2.0
- '@commitlint/load@20.2.0(@types/node@25.0.3)(typescript@4.9.5)':
+ '@commitlint/load@20.2.0(@types/node@25.1.0)(typescript@4.9.5)':
dependencies:
'@commitlint/config-validator': 20.2.0
'@commitlint/execute-rule': 20.0.0
@@ -10439,7 +10437,7 @@ snapshots:
'@commitlint/types': 20.2.0
chalk: 5.6.2
cosmiconfig: 9.0.0(typescript@4.9.5)
- cosmiconfig-typescript-loader: 6.2.0(@types/node@25.0.3)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5)
+ cosmiconfig-typescript-loader: 6.2.0(@types/node@25.1.0)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5)
lodash.isplainobject: 4.0.6
lodash.merge: 4.6.2
lodash.uniq: 4.5.0
@@ -11317,13 +11315,13 @@ snapshots:
'@grpc/grpc-js@1.6.12':
dependencies:
'@grpc/proto-loader': 0.7.10
- '@types/node': 25.0.3
+ '@types/node': 25.1.0
optional: true
'@grpc/grpc-js@1.9.15':
dependencies:
'@grpc/proto-loader': 0.7.10
- '@types/node': 25.0.3
+ '@types/node': 25.1.0
'@grpc/proto-loader@0.6.13':
dependencies:
@@ -11375,7 +11373,7 @@ snapshots:
'@jest/console@30.2.0':
dependencies:
'@jest/types': 30.2.0
- '@types/node': 24.6.2
+ '@types/node': 25.1.0
chalk: 4.1.2
jest-message-util: 30.2.0
jest-util: 30.2.0
@@ -11389,14 +11387,14 @@ snapshots:
'@jest/test-result': 30.2.0
'@jest/transform': 30.2.0
'@jest/types': 30.2.0
- '@types/node': 24.6.2
+ '@types/node': 25.1.0
ansi-escapes: 4.3.2
chalk: 4.1.2
ci-info: 4.3.0
exit-x: 0.2.2
graceful-fs: 4.2.11
jest-changed-files: 30.2.0
- jest-config: 30.2.0(@types/node@24.6.2)
+ jest-config: 30.2.0(@types/node@25.1.0)
jest-haste-map: 30.2.0
jest-message-util: 30.2.0
jest-regex-util: 30.0.1
@@ -11425,7 +11423,7 @@ snapshots:
'@jest/fake-timers': 30.2.0
'@jest/types': 30.2.0
'@types/jsdom': 21.1.7
- '@types/node': 24.6.2
+ '@types/node': 25.1.0
jest-mock: 30.2.0
jest-util: 30.2.0
jsdom: 26.1.0
@@ -11434,7 +11432,7 @@ snapshots:
dependencies:
'@jest/fake-timers': 30.2.0
'@jest/types': 30.2.0
- '@types/node': 24.6.2
+ '@types/node': 25.1.0
jest-mock: 30.2.0
'@jest/expect-utils@30.2.0':
@@ -11452,7 +11450,7 @@ snapshots:
dependencies:
'@jest/types': 30.2.0
'@sinonjs/fake-timers': 13.0.5
- '@types/node': 24.6.2
+ '@types/node': 25.1.0
jest-message-util: 30.2.0
jest-mock: 30.2.0
jest-util: 30.2.0
@@ -11470,7 +11468,7 @@ snapshots:
'@jest/pattern@30.0.1':
dependencies:
- '@types/node': 24.6.2
+ '@types/node': 25.1.0
jest-regex-util: 30.0.1
'@jest/reporters@30.2.0':
@@ -11481,7 +11479,7 @@ snapshots:
'@jest/transform': 30.2.0
'@jest/types': 30.2.0
'@jridgewell/trace-mapping': 0.3.31
- '@types/node': 24.6.2
+ '@types/node': 25.1.0
chalk: 4.1.2
collect-v8-coverage: 1.0.2
exit-x: 0.2.2
@@ -11561,7 +11559,7 @@ snapshots:
'@jest/schemas': 29.6.3
'@types/istanbul-lib-coverage': 2.0.6
'@types/istanbul-reports': 3.0.4
- '@types/node': 25.0.3
+ '@types/node': 25.1.0
'@types/yargs': 17.0.33
chalk: 4.1.2
@@ -11571,7 +11569,7 @@ snapshots:
'@jest/schemas': 30.0.5
'@types/istanbul-lib-coverage': 2.0.6
'@types/istanbul-reports': 3.0.4
- '@types/node': 24.6.2
+ '@types/node': 25.1.0
'@types/yargs': 17.0.33
chalk: 4.1.2
@@ -12233,14 +12231,14 @@ snapshots:
- eslint-import-resolver-webpack
- supports-color
- '@nuxtjs/eslint-module@4.1.0(eslint@8.57.1)(rollup@3.29.5)(vite@4.5.3(@types/node@25.0.3)(sass@1.32.13)(terser@5.44.1))(webpack@5.104.1)':
+ '@nuxtjs/eslint-module@4.1.0(eslint@8.57.1)(rollup@3.29.5)(vite@4.5.3(@types/node@25.1.0)(sass@1.32.13)(terser@5.44.1))(webpack@5.104.1)':
dependencies:
'@nuxt/kit': 3.7.4(rollup@3.29.5)
chokidar: 3.5.3
eslint: 8.57.1
eslint-webpack-plugin: 4.0.1(eslint@8.57.1)(webpack@5.104.1)
pathe: 1.1.1
- vite-plugin-eslint: 1.8.1(eslint@8.57.1)(vite@4.5.3(@types/node@25.0.3)(sass@1.32.13)(terser@5.44.1))
+ vite-plugin-eslint: 1.8.1(eslint@8.57.1)(vite@4.5.3(@types/node@25.1.0)(sass@1.32.13)(terser@5.44.1))
transitivePeerDependencies:
- rollup
- supports-color
@@ -12271,14 +12269,14 @@ snapshots:
minimatch: 3.1.2
sitemap: 4.1.1
- '@nuxtjs/stylelint-module@5.2.0(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@25.0.3)(sass@1.32.13)(terser@5.44.1))(webpack@5.104.1)':
+ '@nuxtjs/stylelint-module@5.2.0(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@25.1.0)(sass@1.32.13)(terser@5.44.1))(webpack@5.104.1)':
dependencies:
'@nuxt/kit': 3.12.2(rollup@3.29.5)
chokidar: 3.6.0
pathe: 1.1.2
stylelint: 15.11.0(typescript@4.9.5)
stylelint-webpack-plugin: 5.0.1(stylelint@15.11.0(typescript@4.9.5))(webpack@5.104.1)
- vite-plugin-stylelint: 5.3.1(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@25.0.3)(sass@1.32.13)(terser@5.44.1))
+ vite-plugin-stylelint: 5.3.1(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@25.1.0)(sass@1.32.13)(terser@5.44.1))
transitivePeerDependencies:
- '@types/stylelint'
- magicast
@@ -12414,7 +12412,7 @@ snapshots:
'@types/body-parser@1.19.3':
dependencies:
'@types/connect': 3.4.38
- '@types/node': 25.0.3
+ '@types/node': 25.1.0
'@types/compression@1.7.5':
dependencies:
@@ -12426,11 +12424,11 @@ snapshots:
'@types/conventional-commits-parser@5.0.1':
dependencies:
- '@types/node': 24.6.2
+ '@types/node': 25.1.0
'@types/conventional-commits-parser@5.0.2':
dependencies:
- '@types/node': 25.0.3
+ '@types/node': 25.1.0
'@types/eslint-scope@3.7.7':
dependencies:
@@ -12455,7 +12453,7 @@ snapshots:
'@types/express-serve-static-core@4.17.37':
dependencies:
- '@types/node': 25.0.3
+ '@types/node': 25.1.0
'@types/qs': 6.9.8
'@types/range-parser': 1.2.5
'@types/send': 0.17.2
@@ -12489,7 +12487,7 @@ snapshots:
'@types/jsdom@21.1.7':
dependencies:
- '@types/node': 24.6.2
+ '@types/node': 25.1.0
'@types/tough-cookie': 4.0.5
parse5: 7.3.0
@@ -12499,7 +12497,7 @@ snapshots:
'@types/jsonwebtoken@8.5.9':
dependencies:
- '@types/node': 25.0.3
+ '@types/node': 25.1.0
optional: true
'@types/less@3.0.6': {}
@@ -12515,13 +12513,11 @@ snapshots:
'@types/node@16.18.55': {}
- '@types/node@20.8.0': {}
-
'@types/node@24.6.2':
dependencies:
undici-types: 7.13.0
- '@types/node@25.0.3':
+ '@types/node@25.1.0':
dependencies:
undici-types: 7.16.0
@@ -12535,9 +12531,9 @@ snapshots:
'@types/pug@2.0.10': {}
- '@types/qrcode@1.5.5':
+ '@types/qrcode@1.5.6':
dependencies:
- '@types/node': 20.8.0
+ '@types/node': 25.1.0
'@types/qs@6.9.8': {}
@@ -12545,14 +12541,14 @@ snapshots:
'@types/sax@1.2.7':
dependencies:
- '@types/node': 24.6.2
+ '@types/node': 25.1.0
'@types/semver@7.5.3': {}
'@types/send@0.17.2':
dependencies:
'@types/mime': 1.3.3
- '@types/node': 24.6.2
+ '@types/node': 25.1.0
'@types/serve-static@1.15.7':
dependencies:
@@ -12592,7 +12588,7 @@ snapshots:
'@types/webpack-sources@3.2.1':
dependencies:
- '@types/node': 24.6.2
+ '@types/node': 25.1.0
'@types/source-list-map': 0.1.3
source-map: 0.7.6
@@ -14138,9 +14134,9 @@ snapshots:
core-util-is@1.0.3: {}
- cosmiconfig-typescript-loader@6.2.0(@types/node@25.0.3)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5):
+ cosmiconfig-typescript-loader@6.2.0(@types/node@25.1.0)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5):
dependencies:
- '@types/node': 25.0.3
+ '@types/node': 25.1.0
cosmiconfig: 9.0.0(typescript@4.9.5)
jiti: 2.6.1
typescript: 4.9.5
@@ -15368,7 +15364,7 @@ snapshots:
'@fastify/busboy': 1.2.1
'@firebase/database-compat': 0.2.10(@firebase/app-types@0.9.2)
'@firebase/database-types': 0.9.17
- '@types/node': 24.6.2
+ '@types/node': 25.1.0
jsonwebtoken: 8.5.1
jwks-rsa: 2.1.5
node-forge: 1.3.1
@@ -16382,7 +16378,7 @@ snapshots:
'@jest/expect': 30.2.0
'@jest/test-result': 30.2.0
'@jest/types': 30.2.0
- '@types/node': 25.0.3
+ '@types/node': 25.1.0
chalk: 4.1.2
co: 4.6.0
dedent: 1.7.0
@@ -16402,7 +16398,7 @@ snapshots:
- babel-plugin-macros
- supports-color
- jest-cli@30.2.0(@types/node@25.0.3):
+ jest-cli@30.2.0(@types/node@25.1.0):
dependencies:
'@jest/core': 30.2.0
'@jest/test-result': 30.2.0
@@ -16410,7 +16406,7 @@ snapshots:
chalk: 4.1.2
exit-x: 0.2.2
import-local: 3.2.0
- jest-config: 30.2.0(@types/node@25.0.3)
+ jest-config: 30.2.0(@types/node@25.1.0)
jest-util: 30.2.0
jest-validate: 30.2.0
yargs: 17.7.2
@@ -16421,39 +16417,7 @@ snapshots:
- supports-color
- ts-node
- jest-config@30.2.0(@types/node@24.6.2):
- dependencies:
- '@babel/core': 7.28.4
- '@jest/get-type': 30.1.0
- '@jest/pattern': 30.0.1
- '@jest/test-sequencer': 30.2.0
- '@jest/types': 30.2.0
- babel-jest: 30.2.0(@babel/core@7.28.4)
- chalk: 4.1.2
- ci-info: 4.3.0
- deepmerge: 4.3.1
- glob: 10.4.5
- graceful-fs: 4.2.11
- jest-circus: 30.2.0
- jest-docblock: 30.2.0
- jest-environment-node: 30.2.0
- jest-regex-util: 30.0.1
- jest-resolve: 30.2.0
- jest-runner: 30.2.0
- jest-util: 30.2.0
- jest-validate: 30.2.0
- micromatch: 4.0.8
- parse-json: 5.2.0
- pretty-format: 30.2.0
- slash: 3.0.0
- strip-json-comments: 3.1.1
- optionalDependencies:
- '@types/node': 24.6.2
- transitivePeerDependencies:
- - babel-plugin-macros
- - supports-color
-
- jest-config@30.2.0(@types/node@25.0.3):
+ jest-config@30.2.0(@types/node@25.1.0):
dependencies:
'@babel/core': 7.28.4
'@jest/get-type': 30.1.0
@@ -16480,7 +16444,7 @@ snapshots:
slash: 3.0.0
strip-json-comments: 3.1.1
optionalDependencies:
- '@types/node': 25.0.3
+ '@types/node': 25.1.0
transitivePeerDependencies:
- babel-plugin-macros
- supports-color
@@ -16521,7 +16485,7 @@ snapshots:
'@jest/environment': 30.2.0
'@jest/fake-timers': 30.2.0
'@jest/types': 30.2.0
- '@types/node': 25.0.3
+ '@types/node': 25.1.0
jest-mock: 30.2.0
jest-util: 30.2.0
jest-validate: 30.2.0
@@ -16529,7 +16493,7 @@ snapshots:
jest-haste-map@30.2.0:
dependencies:
'@jest/types': 30.2.0
- '@types/node': 24.6.2
+ '@types/node': 25.1.0
anymatch: 3.1.3
fb-watchman: 2.0.2
graceful-fs: 4.2.11
@@ -16568,7 +16532,7 @@ snapshots:
jest-mock@30.2.0:
dependencies:
'@jest/types': 30.2.0
- '@types/node': 24.6.2
+ '@types/node': 25.1.0
jest-util: 30.2.0
jest-pnp-resolver@1.2.3(jest-resolve@30.2.0):
@@ -16602,7 +16566,7 @@ snapshots:
'@jest/test-result': 30.2.0
'@jest/transform': 30.2.0
'@jest/types': 30.2.0
- '@types/node': 24.6.2
+ '@types/node': 25.1.0
chalk: 4.1.2
emittery: 0.13.1
exit-x: 0.2.2
@@ -16631,7 +16595,7 @@ snapshots:
'@jest/test-result': 30.2.0
'@jest/transform': 30.2.0
'@jest/types': 30.2.0
- '@types/node': 24.6.2
+ '@types/node': 25.1.0
chalk: 4.1.2
cjs-module-lexer: 2.1.0
collect-v8-coverage: 1.0.2
@@ -16678,7 +16642,7 @@ snapshots:
jest-util@29.7.0:
dependencies:
'@jest/types': 29.6.3
- '@types/node': 25.0.3
+ '@types/node': 25.1.0
chalk: 4.1.2
ci-info: 3.9.0
graceful-fs: 4.2.11
@@ -16687,7 +16651,7 @@ snapshots:
jest-util@30.2.0:
dependencies:
'@jest/types': 30.2.0
- '@types/node': 24.6.2
+ '@types/node': 25.1.0
chalk: 4.1.2
ci-info: 4.3.0
graceful-fs: 4.2.11
@@ -16706,7 +16670,7 @@ snapshots:
dependencies:
'@jest/test-result': 30.2.0
'@jest/types': 30.2.0
- '@types/node': 24.6.2
+ '@types/node': 25.1.0
ansi-escapes: 4.3.2
chalk: 4.1.2
emittery: 0.13.1
@@ -16715,37 +16679,37 @@ snapshots:
jest-worker@26.6.2:
dependencies:
- '@types/node': 25.0.3
+ '@types/node': 25.1.0
merge-stream: 2.0.0
supports-color: 7.2.0
jest-worker@27.5.1:
dependencies:
- '@types/node': 25.0.3
+ '@types/node': 25.1.0
merge-stream: 2.0.0
supports-color: 8.1.1
jest-worker@29.7.0:
dependencies:
- '@types/node': 24.6.2
+ '@types/node': 25.1.0
jest-util: 29.7.0
merge-stream: 2.0.0
supports-color: 8.1.1
jest-worker@30.2.0:
dependencies:
- '@types/node': 25.0.3
+ '@types/node': 25.1.0
'@ungap/structured-clone': 1.3.0
jest-util: 30.2.0
merge-stream: 2.0.0
supports-color: 8.1.1
- jest@30.2.0(@types/node@25.0.3):
+ jest@30.2.0(@types/node@25.1.0):
dependencies:
'@jest/core': 30.2.0
'@jest/types': 30.2.0
import-local: 3.2.0
- jest-cli: 30.2.0(@types/node@25.0.3)
+ jest-cli: 30.2.0(@types/node@25.1.0)
transitivePeerDependencies:
- '@types/node'
- babel-plugin-macros
@@ -18664,7 +18628,7 @@ snapshots:
'@protobufjs/pool': 1.1.0
'@protobufjs/utf8': 1.1.0
'@types/long': 4.0.2
- '@types/node': 25.0.3
+ '@types/node': 25.1.0
long: 4.0.0
optional: true
@@ -18681,7 +18645,7 @@ snapshots:
'@protobufjs/pool': 1.1.0
'@protobufjs/utf8': 1.1.0
'@types/long': 4.0.2
- '@types/node': 25.0.3
+ '@types/node': 25.1.0
long: 4.0.0
optional: true
@@ -18697,7 +18661,7 @@ snapshots:
'@protobufjs/path': 1.1.2
'@protobufjs/pool': 1.1.0
'@protobufjs/utf8': 1.1.0
- '@types/node': 25.0.3
+ '@types/node': 25.1.0
long: 5.2.3
protocols@2.0.1: {}
@@ -19817,12 +19781,12 @@ snapshots:
dependencies:
typescript: 4.9.5
- ts-jest@29.4.6(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.4))(jest-util@30.2.0)(jest@30.2.0(@types/node@25.0.3))(typescript@4.9.5):
+ ts-jest@29.4.6(@babel/core@7.28.4)(@jest/transform@30.2.0)(@jest/types@30.2.0)(babel-jest@30.2.0(@babel/core@7.28.4))(jest-util@30.2.0)(jest@30.2.0(@types/node@25.1.0))(typescript@4.9.5):
dependencies:
bs-logger: 0.2.6
fast-json-stable-stringify: 2.1.0
handlebars: 4.7.8
- jest: 30.2.0(@types/node@25.0.3)
+ jest: 30.2.0(@types/node@25.1.0)
json5: 2.2.3
lodash.memoize: 4.1.2
make-error: 1.3.6
@@ -20169,34 +20133,34 @@ snapshots:
vary@1.1.2: {}
- vite-plugin-eslint@1.8.1(eslint@8.57.1)(vite@4.5.3(@types/node@25.0.3)(sass@1.32.13)(terser@5.44.1)):
+ vite-plugin-eslint@1.8.1(eslint@8.57.1)(vite@4.5.3(@types/node@25.1.0)(sass@1.32.13)(terser@5.44.1)):
dependencies:
'@rollup/pluginutils': 4.2.1
'@types/eslint': 8.44.3
eslint: 8.57.1
rollup: 2.79.2
- vite: 4.5.3(@types/node@25.0.3)(sass@1.32.13)(terser@5.44.1)
+ vite: 4.5.3(@types/node@25.1.0)(sass@1.32.13)(terser@5.44.1)
- vite-plugin-stylelint@5.3.1(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@25.0.3)(sass@1.32.13)(terser@5.44.1)):
+ vite-plugin-stylelint@5.3.1(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@25.1.0)(sass@1.32.13)(terser@5.44.1)):
dependencies:
'@rollup/pluginutils': 5.1.0(rollup@3.29.5)
chokidar: 3.6.0
debug: 4.4.1
stylelint: 15.11.0(typescript@4.9.5)
- vite: 4.5.3(@types/node@25.0.3)(sass@1.32.13)(terser@5.44.1)
+ vite: 4.5.3(@types/node@25.1.0)(sass@1.32.13)(terser@5.44.1)
optionalDependencies:
postcss: 8.4.39
rollup: 3.29.5
transitivePeerDependencies:
- supports-color
- vite@4.5.3(@types/node@25.0.3)(sass@1.32.13)(terser@5.44.1):
+ vite@4.5.3(@types/node@25.1.0)(sass@1.32.13)(terser@5.44.1):
dependencies:
esbuild: 0.18.20
postcss: 8.5.6
rollup: 3.29.5
optionalDependencies:
- '@types/node': 25.0.3
+ '@types/node': 25.1.0
fsevents: 2.3.3
sass: 1.32.13
terser: 5.44.1
From d5c7a18257012b2abe9ad65ab2418b43ab827f40 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 1 Feb 2026 00:04:16 +0000
Subject: [PATCH 099/215] fix(deps): bump github.com/lib/pq from 1.10.9 to
1.11.1 in /api
Bumps [github.com/lib/pq](https://github.com/lib/pq) from 1.10.9 to 1.11.1.
- [Release notes](https://github.com/lib/pq/releases)
- [Changelog](https://github.com/lib/pq/blob/master/CHANGELOG.md)
- [Commits](https://github.com/lib/pq/compare/v1.10.9...v1.11.1)
---
updated-dependencies:
- dependency-name: github.com/lib/pq
dependency-version: 1.11.1
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 2 +-
api/go.sum | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index a798964a..f0ec021c 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -31,7 +31,7 @@ require (
github.com/joho/godotenv v1.5.1
github.com/jordan-wright/email v4.0.1-0.20210109023952-943e75fe5223+incompatible
github.com/jszwec/csvutil v1.10.0
- github.com/lib/pq v1.10.9
+ github.com/lib/pq v1.11.1
github.com/matcornic/hermes v1.3.0
github.com/nyaruka/phonenumbers v1.6.7
github.com/palantir/stacktrace v0.0.0-20161112013806-78658fd2d177
diff --git a/api/go.sum b/api/go.sum
index d1685d6c..2da82b38 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -234,8 +234,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
-github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw=
-github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
+github.com/lib/pq v1.11.1 h1:wuChtj2hfsGmmx3nf1m7xC2XpK6OtelS2shMY+bGMtI=
+github.com/lib/pq v1.11.1/go.mod h1:/p+8NSbOcwzAEI7wiMXFlgydTwcgTr3OSKMsD2BitpA=
github.com/matcornic/hermes v1.3.0 h1:k6rih7zpUgfIF/57F3WeBi9n68XkvhC/z8eQTRIsQqc=
github.com/matcornic/hermes v1.3.0/go.mod h1:X3MXWWBHjKSfgQl0xjv+NQTAGWSiNr/fZTlhAEQJ63Q=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
From af39f698bb3bd53d7f10414ce12a4dd4a61ac605 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 1 Feb 2026 00:04:40 +0000
Subject: [PATCH 100/215] fix(deps): bump google.golang.org/api from 0.258.0 to
0.264.0 in /api
Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.258.0 to 0.264.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](https://github.com/googleapis/google-api-go-client/compare/v0.258.0...v0.264.0)
---
updated-dependencies:
- dependency-name: google.golang.org/api
dependency-version: 0.264.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 28 ++++++++++++-------------
api/go.sum | 60 +++++++++++++++++++++++++++---------------------------
2 files changed, 44 insertions(+), 44 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index a798964a..99f1b3af 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -51,7 +51,7 @@ require (
go.opentelemetry.io/otel/sdk v1.39.0
go.opentelemetry.io/otel/sdk/metric v1.39.0
go.opentelemetry.io/otel/trace v1.39.0
- google.golang.org/api v0.258.0
+ google.golang.org/api v0.264.0
google.golang.org/protobuf v1.36.11
gorm.io/driver/postgres v1.6.0
gorm.io/gorm v1.31.1
@@ -61,10 +61,10 @@ require (
require (
cel.dev/expr v0.24.0 // indirect
cloud.google.com/go v0.123.0 // indirect
- cloud.google.com/go/auth v0.17.0 // indirect
+ cloud.google.com/go/auth v0.18.1 // indirect
cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect
cloud.google.com/go/compute/metadata v0.9.0 // indirect
- cloud.google.com/go/firestore v1.19.0 // indirect
+ cloud.google.com/go/firestore v1.20.0 // indirect
cloud.google.com/go/iam v1.5.3 // indirect
cloud.google.com/go/longrunning v0.7.0 // indirect
cloud.google.com/go/monitoring v1.24.3 // indirect
@@ -110,8 +110,8 @@ require (
github.com/go-sql-driver/mysql v1.9.3 // indirect
github.com/golang/protobuf v1.5.4 // indirect
github.com/google/s2a-go v0.1.9 // indirect
- github.com/googleapis/enterprise-certificate-proxy v0.3.7 // indirect
- github.com/googleapis/gax-go/v2 v2.15.0 // indirect
+ github.com/googleapis/enterprise-certificate-proxy v0.3.11 // indirect
+ github.com/googleapis/gax-go/v2 v2.16.0 // indirect
github.com/gorilla/css v1.0.1 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.3 // indirect
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
@@ -171,21 +171,21 @@ require (
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.0 // indirect
go.yaml.in/yaml/v3 v3.0.4 // indirect
- golang.org/x/crypto v0.46.0 // indirect
+ golang.org/x/crypto v0.47.0 // indirect
golang.org/x/exp v0.0.0-20251009144603-d2f985daa21b // indirect
- golang.org/x/mod v0.30.0 // indirect
- golang.org/x/net v0.48.0 // indirect
+ golang.org/x/mod v0.31.0 // indirect
+ golang.org/x/net v0.49.0 // indirect
golang.org/x/oauth2 v0.34.0 // indirect
golang.org/x/sync v0.19.0 // indirect
- golang.org/x/sys v0.39.0 // indirect
- golang.org/x/text v0.32.0 // indirect
+ golang.org/x/sys v0.40.0 // indirect
+ golang.org/x/text v0.33.0 // indirect
golang.org/x/time v0.14.0 // indirect
- golang.org/x/tools v0.39.0 // indirect
+ golang.org/x/tools v0.40.0 // indirect
google.golang.org/appengine v1.6.8 // indirect
- google.golang.org/genproto v0.0.0-20251014184007-4626949a642f // indirect
+ google.golang.org/genproto v0.0.0-20251202230838-ff82c1b0f217 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217 // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20251213004720-97cd9d5aeac2 // indirect
- google.golang.org/grpc v1.77.0 // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20260122232226-8e98ce8d340d // indirect
+ google.golang.org/grpc v1.78.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
gorm.io/driver/clickhouse v0.7.0 // indirect
gorm.io/driver/mysql v1.6.0 // indirect
diff --git a/api/go.sum b/api/go.sum
index d1685d6c..c855060a 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -4,20 +4,20 @@ cel.dev/expr v0.24.0 h1:56OvJKSH3hDGL0ml5uSxZmz3/3Pq4tJ+fb1unVLAFcY=
cel.dev/expr v0.24.0/go.mod h1:hLPLo1W4QUmuYdA72RBX06QTs6MXw941piREPl3Yfiw=
cloud.google.com/go v0.123.0 h1:2NAUJwPR47q+E35uaJeYoNhuNEM9kM8SjgRgdeOJUSE=
cloud.google.com/go v0.123.0/go.mod h1:xBoMV08QcqUGuPW65Qfm1o9Y4zKZBpGS+7bImXLTAZU=
-cloud.google.com/go/auth v0.17.0 h1:74yCm7hCj2rUyyAocqnFzsAYXgJhrG26XCFimrc/Kz4=
-cloud.google.com/go/auth v0.17.0/go.mod h1:6wv/t5/6rOPAX4fJiRjKkJCvswLwdet7G8+UGXt7nCQ=
+cloud.google.com/go/auth v0.18.1 h1:IwTEx92GFUo2pJ6Qea0EU3zYvKnTAeRCODxfA/G5UWs=
+cloud.google.com/go/auth v0.18.1/go.mod h1:GfTYoS9G3CWpRA3Va9doKN9mjPGRS+v41jmZAhBzbrA=
cloud.google.com/go/auth/oauth2adapt v0.2.8 h1:keo8NaayQZ6wimpNSmW5OPc283g65QNIiLpZnkHRbnc=
cloud.google.com/go/auth/oauth2adapt v0.2.8/go.mod h1:XQ9y31RkqZCcwJWNSx2Xvric3RrU88hAYYbjDWYDL+c=
cloud.google.com/go/cloudtasks v1.13.7 h1:H2v8GEolNtMFfYzUpZBaZbydqU7drpyo99GtAgA+m4I=
cloud.google.com/go/cloudtasks v1.13.7/go.mod h1:H0TThOUG+Ml34e2+ZtW6k6nt4i9KuH3nYAJ5mxh7OM4=
cloud.google.com/go/compute/metadata v0.9.0 h1:pDUj4QMoPejqq20dK0Pg2N4yG9zIkYGdBtwLoEkH9Zs=
cloud.google.com/go/compute/metadata v0.9.0/go.mod h1:E0bWwX5wTnLPedCKqk3pJmVgCBSM6qQI1yTBdEb3C10=
-cloud.google.com/go/firestore v1.19.0 h1:E3FiRsWfZKwZ6W+Lsp1YqTzZ9H6jP+QsKW40KR21C8I=
-cloud.google.com/go/firestore v1.19.0/go.mod h1:jqu4yKdBmDN5srneWzx3HlKrHFWFdlkgjgQ6BKIOFQo=
+cloud.google.com/go/firestore v1.20.0 h1:JLlT12QP0fM2SJirKVyu2spBCO8leElaW0OOtPm6HEo=
+cloud.google.com/go/firestore v1.20.0/go.mod h1:jqu4yKdBmDN5srneWzx3HlKrHFWFdlkgjgQ6BKIOFQo=
cloud.google.com/go/iam v1.5.3 h1:+vMINPiDF2ognBJ97ABAYYwRgsaqxPbQDlMnbHMjolc=
cloud.google.com/go/iam v1.5.3/go.mod h1:MR3v9oLkZCTlaqljW6Eb2d3HGDGK5/bDv93jhfISFvU=
-cloud.google.com/go/logging v1.13.0 h1:7j0HgAp0B94o1YRDqiqm26w4q1rDMH7XNRU34lJXHYc=
-cloud.google.com/go/logging v1.13.0/go.mod h1:36CoKh6KA/M0PbhPKMq6/qety2DCAErbhXT62TuXALA=
+cloud.google.com/go/logging v1.13.1 h1:O7LvmO0kGLaHY/gq8cV7T0dyp6zJhYAOtZPX4TF3QtY=
+cloud.google.com/go/logging v1.13.1/go.mod h1:XAQkfkMBxQRjQek96WLPNze7vsOmay9H5PqfsNYDqvw=
cloud.google.com/go/longrunning v0.7.0 h1:FV0+SYF1RIj59gyoWDRi45GiYUMM3K1qO51qoboQT1E=
cloud.google.com/go/longrunning v0.7.0/go.mod h1:ySn2yXmjbK9Ba0zsQqunhDkYi0+9rlXIwnoAf+h+TPY=
cloud.google.com/go/monitoring v1.24.3 h1:dde+gMNc0UhPZD1Azu6at2e79bfdztVDS5lvhOdsgaE=
@@ -176,10 +176,10 @@ github.com/google/s2a-go v0.1.9 h1:LGD7gtMgezd8a/Xak7mEWL0PjoTQFvpRudN895yqKW0=
github.com/google/s2a-go v0.1.9/go.mod h1:YA0Ei2ZQL3acow2O62kdp9UlnvMmU7kA6Eutn0dXayM=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/googleapis/enterprise-certificate-proxy v0.3.7 h1:zrn2Ee/nWmHulBx5sAVrGgAa0f2/R35S4DJwfFaUPFQ=
-github.com/googleapis/enterprise-certificate-proxy v0.3.7/go.mod h1:MkHOF77EYAE7qfSuSS9PU6g4Nt4e11cnsDUowfwewLA=
-github.com/googleapis/gax-go/v2 v2.15.0 h1:SyjDc1mGgZU5LncH8gimWo9lW1DtIfPibOG81vgd/bo=
-github.com/googleapis/gax-go/v2 v2.15.0/go.mod h1:zVVkkxAQHa1RQpg9z2AUCMnKhi0Qld9rcmyfL1OZhoc=
+github.com/googleapis/enterprise-certificate-proxy v0.3.11 h1:vAe81Msw+8tKUxi2Dqh/NZMz7475yUvmRIkXr4oN2ao=
+github.com/googleapis/enterprise-certificate-proxy v0.3.11/go.mod h1:RFV7MUdlb7AgEq2v7FmMCfeSMCllAzWxFgRdusoGks8=
+github.com/googleapis/gax-go/v2 v2.16.0 h1:iHbQmKLLZrexmb0OSsNGTeSTS0HO4YvFOG8g5E4Zd0Y=
+github.com/googleapis/gax-go/v2 v2.16.0/go.mod h1:o1vfQjjNZn4+dPnRdl/4ZD7S9414Y4xA+a/6Icj6l14=
github.com/gorilla/css v1.0.1 h1:ntNaBIghp6JmvWnxbZKANoLyuXTPZ4cAMlo6RyhlbO8=
github.com/gorilla/css v1.0.1/go.mod h1:BvnYkspnSzMmwRK+b8/xgNPLiIuNZr6vbZBTPQ2A3b0=
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.3 h1:NmZ1PKzSTQbuGHw9DGPFomqkkLWMC+vZCkfs+FHv1Vg=
@@ -413,8 +413,8 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY
golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
-golang.org/x/crypto v0.46.0 h1:cKRW/pmt1pKAfetfu+RCEvjvZkA9RimPbh7bhFjGVBU=
-golang.org/x/crypto v0.46.0/go.mod h1:Evb/oLKmMraqjZ2iQTwDwvCtJkczlDuTmdJXoZVzqU0=
+golang.org/x/crypto v0.47.0 h1:V6e3FRj+n4dbpw86FJ8Fv7XVOql7TEwpHapKoMJ/GO8=
+golang.org/x/crypto v0.47.0/go.mod h1:ff3Y9VzzKbwSSEzWqJsJVBnWmRwRSHt/6Op5n9bQc4A=
golang.org/x/exp v0.0.0-20251009144603-d2f985daa21b h1:18qgiDvlvH7kk8Ioa8Ov+K6xCi0GMvmGfGW0sgd/SYA=
golang.org/x/exp v0.0.0-20251009144603-d2f985daa21b/go.mod h1:j/pmGrbnkbPtQfxEe5D0VQhZC6qKbfKifgD0oM7sR70=
golang.org/x/image v0.25.0 h1:Y6uW6rH1y5y/LK1J8BPWZtr6yZ7hrsy6hFrXjgsc2fQ=
@@ -426,8 +426,8 @@ golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
-golang.org/x/mod v0.30.0 h1:fDEXFVZ/fmCKProc/yAXXUijritrDzahmwwefnjoPFk=
-golang.org/x/mod v0.30.0/go.mod h1:lAsf5O2EvJeSFMiBxXDki7sCgAxEUcZHXoXMKT4GJKc=
+golang.org/x/mod v0.31.0 h1:HaW9xtz0+kOcWKwli0ZXy79Ix+UW/vOfmWI5QVd2tgI=
+golang.org/x/mod v0.31.0/go.mod h1:43JraMp9cGx1Rx3AqioxrbrhNsLl2l/iNAvuBkrezpg=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -441,8 +441,8 @@ golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
-golang.org/x/net v0.48.0 h1:zyQRTTrjc33Lhh0fBgT/H3oZq9WuvRR5gPC70xpDiQU=
-golang.org/x/net v0.48.0/go.mod h1:+ndRgGjkh8FGtu1w1FGbEC31if4VrNVMuKTgcAAnQRY=
+golang.org/x/net v0.49.0 h1:eeHFmOGUTtaaPSGNmjBKpbng9MulQsJURQUAfUwY++o=
+golang.org/x/net v0.49.0/go.mod h1:/ysNB2EvaqvesRkuLAyjI1ycPZlQHM3q01F02UY/MV8=
golang.org/x/oauth2 v0.34.0 h1:hqK/t4AKgbqWkdkcAeI8XLmbK+4m4G5YeQRrmiotGlw=
golang.org/x/oauth2 v0.34.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -473,8 +473,8 @@ golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
-golang.org/x/sys v0.39.0 h1:CvCKL8MeisomCi6qNZ+wbb0DN9E5AATixKsvNtMoMFk=
-golang.org/x/sys v0.39.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
+golang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ=
+golang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
@@ -495,8 +495,8 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
-golang.org/x/text v0.32.0 h1:ZD01bjUt1FQ9WJ0ClOL5vxgxOI/sVCNgX1YtKwcY0mU=
-golang.org/x/text v0.32.0/go.mod h1:o/rUWzghvpD5TXrTIBuJU77MTaN0ljMWE47kxGJQ7jY=
+golang.org/x/text v0.33.0 h1:B3njUFyqtHDUI5jMn1YIr5B0IE2U0qck04r6d4KPAxE=
+golang.org/x/text v0.33.0/go.mod h1:LuMebE6+rBincTi9+xWTY8TztLzKHc/9C1uBCG27+q8=
golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI=
golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -507,26 +507,26 @@ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
-golang.org/x/tools v0.39.0 h1:ik4ho21kwuQln40uelmciQPp9SipgNDdrafrYA4TmQQ=
-golang.org/x/tools v0.39.0/go.mod h1:JnefbkDPyD8UU2kI5fuf8ZX4/yUeh9W877ZeBONxUqQ=
+golang.org/x/tools v0.40.0 h1:yLkxfA+Qnul4cs9QA3KnlFu0lVmd8JJfoq+E41uSutA=
+golang.org/x/tools v0.40.0/go.mod h1:Ik/tzLRlbscWpqqMRjyWYDisX8bG13FrdXp3o4Sr9lc=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk=
gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E=
-google.golang.org/api v0.258.0 h1:IKo1j5FBlN74fe5isA2PVozN3Y5pwNKriEgAXPOkDAc=
-google.golang.org/api v0.258.0/go.mod h1:qhOMTQEZ6lUps63ZNq9jhODswwjkjYYguA7fA3TBFww=
+google.golang.org/api v0.264.0 h1:+Fo3DQXBK8gLdf8rFZ3uLu39JpOnhvzJrLMQSoSYZJM=
+google.golang.org/api v0.264.0/go.mod h1:fAU1xtNNisHgOF5JooAs8rRaTkl2rT3uaoNGo9NS3R8=
google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM=
google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds=
-google.golang.org/genproto v0.0.0-20251014184007-4626949a642f h1:vLd1CJuJOUgV6qijD7KT5Y2ZtC97ll4dxjTUappMnbo=
-google.golang.org/genproto v0.0.0-20251014184007-4626949a642f/go.mod h1:PI3KrSadr00yqfv6UDvgZGFsmLqeRIwt8x4p5Oo7CdM=
+google.golang.org/genproto v0.0.0-20251202230838-ff82c1b0f217 h1:GvESR9BIyHUahIb0NcTum6itIWtdoglGX+rnGxm2934=
+google.golang.org/genproto v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:yJ2HH4EHEDTd3JiLmhds6NkJ17ITVYOdV3m3VKOnws0=
google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217 h1:fCvbg86sFXwdrl5LgVcTEvNC+2txB5mgROGmRL5mrls=
google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:+rXWjjaukWZun3mLfjmVnQi18E1AsFbDN9QdJ5YXLto=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20251213004720-97cd9d5aeac2 h1:2I6GHUeJ/4shcDpoUlLs/2WPnhg7yJwvXtqcMJt9liA=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20251213004720-97cd9d5aeac2/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk=
-google.golang.org/grpc v1.77.0 h1:wVVY6/8cGA6vvffn+wWK5ToddbgdU3d8MNENr4evgXM=
-google.golang.org/grpc v1.77.0/go.mod h1:z0BY1iVj0q8E1uSQCjL9cppRj+gnZjzDnzV0dHhrNig=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20260122232226-8e98ce8d340d h1:xXzuihhT3gL/ntduUZwHECzAn57E8dA6l8SOtYWdD8Q=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20260122232226-8e98ce8d340d/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ=
+google.golang.org/grpc v1.78.0 h1:K1XZG/yGDJnzMdd/uZHAkVqJE+xIDOcmdSFZkBUicNc=
+google.golang.org/grpc v1.78.0/go.mod h1:I47qjTo4OKbMkjA/aOOwxDIiPSBofUtQUI5EfpWvW7U=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
From d4d8d4386049407713a3a96fa6c103aa33805afe Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 1 Feb 2026 00:04:46 +0000
Subject: [PATCH 101/215] fix(deps): bump
github.com/redis/go-redis/extra/redisotel/v9 in /api
Bumps [github.com/redis/go-redis/extra/redisotel/v9](https://github.com/redis/go-redis) from 9.17.2 to 9.17.3.
- [Release notes](https://github.com/redis/go-redis/releases)
- [Changelog](https://github.com/redis/go-redis/blob/v9.17.3/RELEASE-NOTES.md)
- [Commits](https://github.com/redis/go-redis/compare/v9.17.2...v9.17.3)
---
updated-dependencies:
- dependency-name: github.com/redis/go-redis/extra/redisotel/v9
dependency-version: 9.17.3
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 6 +++---
api/go.sum | 12 ++++++------
2 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index a798964a..3d8f5ac3 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -38,8 +38,8 @@ require (
github.com/patrickmn/go-cache v2.1.0+incompatible
github.com/pkg/errors v0.9.1
github.com/pusher/pusher-http-go/v5 v5.1.1
- github.com/redis/go-redis/extra/redisotel/v9 v9.17.2
- github.com/redis/go-redis/v9 v9.17.2
+ github.com/redis/go-redis/extra/redisotel/v9 v9.17.3
+ github.com/redis/go-redis/v9 v9.17.3
github.com/rs/zerolog v1.34.0
github.com/stretchr/testify v1.11.1
github.com/swaggo/swag v1.16.6
@@ -138,7 +138,7 @@ require (
github.com/pierrec/lz4/v4 v4.1.22 // indirect
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
- github.com/redis/go-redis/extra/rediscmd/v9 v9.17.2 // indirect
+ github.com/redis/go-redis/extra/rediscmd/v9 v9.17.3 // indirect
github.com/richardlehane/mscfb v1.0.4 // indirect
github.com/richardlehane/msoleps v1.0.4 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
diff --git a/api/go.sum b/api/go.sum
index d1685d6c..1764336a 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -282,12 +282,12 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pusher/pusher-http-go/v5 v5.1.1 h1:ZLUGdLA8yXMvByafIkS47nvuXOHrYmlh4bsQvuZnYVQ=
github.com/pusher/pusher-http-go/v5 v5.1.1/go.mod h1:Ibji4SGoUDtOy7CVRhCiEpgy+n5Xv6hSL/QqYOhmWW8=
-github.com/redis/go-redis/extra/rediscmd/v9 v9.17.2 h1:KYWnHK9pwzOUo3sNJlNmzRwZ5mw7opugn8njtGThKNg=
-github.com/redis/go-redis/extra/rediscmd/v9 v9.17.2/go.mod h1:wsfMQVl/GFYD9Gx/tlxurlTtvHkZRAt8j1qi27eIlTk=
-github.com/redis/go-redis/extra/redisotel/v9 v9.17.2 h1:wthFPRW3Y50CknMrjjJoYwXUFR4U7hMVJCMeLzDI8s4=
-github.com/redis/go-redis/extra/redisotel/v9 v9.17.2/go.mod h1:iqfQX7U2o8MWSl8W+Ah8KqbQyi/UoR/MQNgvaUyA1wc=
-github.com/redis/go-redis/v9 v9.17.2 h1:P2EGsA4qVIM3Pp+aPocCJ7DguDHhqrXNhVcEp4ViluI=
-github.com/redis/go-redis/v9 v9.17.2/go.mod h1:u410H11HMLoB+TP67dz8rL9s6QW2j76l0//kSOd3370=
+github.com/redis/go-redis/extra/rediscmd/v9 v9.17.3 h1:v9RNP5ynWkruvzscrIoDyyv20c9YeyVn12L9nYnaexw=
+github.com/redis/go-redis/extra/rediscmd/v9 v9.17.3/go.mod h1:gdthSemCkR3WxTmzV2XxYIxClunkUJZAhL0zPHaB0Ww=
+github.com/redis/go-redis/extra/redisotel/v9 v9.17.3 h1:bF0e3fV7PL0knd1UHDtMud8wA7CZt3RSWtyTMhpnWd8=
+github.com/redis/go-redis/extra/redisotel/v9 v9.17.3/go.mod h1:gR39sPK/dJZlqgIA9Nm4JFHcQJPyhsISBLj708nrD4w=
+github.com/redis/go-redis/v9 v9.17.3 h1:fN29NdNrE17KttK5Ndf20buqfDZwGNgoUr9qjl1DQx4=
+github.com/redis/go-redis/v9 v9.17.3/go.mod h1:u410H11HMLoB+TP67dz8rL9s6QW2j76l0//kSOd3370=
github.com/richardlehane/mscfb v1.0.4 h1:WULscsljNPConisD5hR0+OyZjwK46Pfyr6mPu5ZawpM=
github.com/richardlehane/mscfb v1.0.4/go.mod h1:YzVpcZg9czvAuhk9T+a3avCpcFPMUWm7gK3DypaEsUk=
github.com/richardlehane/msoleps v1.0.1/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg=
From a549ef30205f432a43ad922d252ad5257d207b09 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 1 Feb 2026 00:04:53 +0000
Subject: [PATCH 102/215] fix(deps): bump github.com/nyaruka/phonenumbers in
/api
Bumps [github.com/nyaruka/phonenumbers](https://github.com/nyaruka/phonenumbers) from 1.6.7 to 1.6.8.
- [Release notes](https://github.com/nyaruka/phonenumbers/releases)
- [Changelog](https://github.com/nyaruka/phonenumbers/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nyaruka/phonenumbers/compare/v1.6.7...v1.6.8)
---
updated-dependencies:
- dependency-name: github.com/nyaruka/phonenumbers
dependency-version: 1.6.8
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 2 +-
api/go.sum | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index a798964a..641a1305 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -33,7 +33,7 @@ require (
github.com/jszwec/csvutil v1.10.0
github.com/lib/pq v1.10.9
github.com/matcornic/hermes v1.3.0
- github.com/nyaruka/phonenumbers v1.6.7
+ github.com/nyaruka/phonenumbers v1.6.8
github.com/palantir/stacktrace v0.0.0-20161112013806-78658fd2d177
github.com/patrickmn/go-cache v2.1.0+incompatible
github.com/pkg/errors v0.9.1
diff --git a/api/go.sum b/api/go.sum
index d1685d6c..e99bb19d 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -260,8 +260,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
-github.com/nyaruka/phonenumbers v1.6.7 h1:WmebT8TNEzNaui5QlrGqbccRC6dZkEkYc+MGQoILSSo=
-github.com/nyaruka/phonenumbers v1.6.7/go.mod h1:7gjs+Lchqm49adhAKB5cdcng5ZXgt6x7Jgvi0ZorUtU=
+github.com/nyaruka/phonenumbers v1.6.8 h1:k7HAJ/LeBkXE0vfbajITzTCZD0z0j+epdBNx43yTygk=
+github.com/nyaruka/phonenumbers v1.6.8/go.mod h1:IUu45lj2bSeYXQuxDyyuzOrdV10tyRa1YSsfH8EKN5c=
github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
github.com/palantir/stacktrace v0.0.0-20161112013806-78658fd2d177 h1:nRlQD0u1871kaznCnn1EvYiMbum36v7hw1DLPEjds4o=
From f8bd1df390e8a218421eda44ca87f5ec23e0c353 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 1 Feb 2026 00:06:06 +0000
Subject: [PATCH 103/215] chore(deps-dev): bump prettier from 3.7.4 to 3.8.1 in
/web
Bumps [prettier](https://github.com/prettier/prettier) from 3.7.4 to 3.8.1.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.7.4...3.8.1)
---
updated-dependencies:
- dependency-name: prettier
dependency-version: 3.8.1
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
web/package.json | 2 +-
web/pnpm-lock.yaml | 37 +++++++++++++++++++------------------
2 files changed, 20 insertions(+), 19 deletions(-)
diff --git a/web/package.json b/web/package.json
index dd63ade1..d310ee53 100644
--- a/web/package.json
+++ b/web/package.json
@@ -77,7 +77,7 @@
"lint-staged": "^16.1.4",
"node-fetch-native": "^1.6.7",
"postcss-html": "^1.7.0",
- "prettier": "3.7.4",
+ "prettier": "3.8.1",
"stylelint": "^15.11.0",
"stylelint-config-prettier": "^9.0.5",
"stylelint-config-recommended-vue": "^1.5.0",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index b2b84a8c..64317143 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -16,7 +16,7 @@ importers:
version: 1.4.2
'@nuxtjs/firebase':
specifier: ^8.2.2
- version: 8.2.2(@firebase/app-types@0.9.2)(firebase@10.14.1)(nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.7.4)(typescript@4.9.5)(vue@2.7.16))
+ version: 8.2.2(@firebase/app-types@0.9.2)(firebase@10.14.1)(nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.8.1)(typescript@4.9.5)(vue@2.7.16))
'@nuxtjs/sitemap':
specifier: ^2.4.0
version: 2.4.0
@@ -52,7 +52,7 @@ importers:
version: 2.30.1
nuxt:
specifier: ^2.18.1
- version: 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.7.4)(typescript@4.9.5)(vue@2.7.16)
+ version: 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.8.1)(typescript@4.9.5)(vue@2.7.16)
nuxt-highlightjs:
specifier: ^1.0.3
version: 1.0.3
@@ -169,8 +169,8 @@ importers:
specifier: ^1.7.0
version: 1.7.0
prettier:
- specifier: 3.7.4
- version: 3.7.4
+ specifier: 3.8.1
+ version: 3.8.1
stylelint:
specifier: ^15.11.0
version: 15.11.0(typescript@4.9.5)
@@ -7425,8 +7425,8 @@ packages:
engines: {node: '>=10.13.0'}
hasBin: true
- prettier@3.7.4:
- resolution: {integrity: sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==}
+ prettier@3.8.1:
+ resolution: {integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==}
engines: {node: '>=14'}
hasBin: true
@@ -8337,6 +8337,7 @@ packages:
tar@6.2.0:
resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==}
engines: {node: '>=10'}
+ deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exhorbitant rates) by contacting i@izs.me
teeny-request@7.2.0:
resolution: {integrity: sha512-SyY0pek1zWsi0LRVAALem+avzMLc33MKW/JLLakdP4s9+D7+jHcy5x6P+h94g2QNZsAqQNfX5lsbd3WSeJXrrw==}
@@ -11691,12 +11692,12 @@ snapshots:
- supports-color
- vue
- '@nuxt/builder@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.7.4)(typescript@4.9.5)(vue@2.7.16)':
+ '@nuxt/builder@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.8.1)(typescript@4.9.5)(vue@2.7.16)':
dependencies:
'@nuxt/devalue': 2.0.2
'@nuxt/utils': 2.18.1
'@nuxt/vue-app': 2.18.1
- '@nuxt/webpack': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.7.4)(typescript@4.9.5)(vue@2.7.16)
+ '@nuxt/webpack': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.8.1)(typescript@4.9.5)(vue@2.7.16)
chalk: 4.1.2
chokidar: 3.6.0
consola: 3.2.3
@@ -12082,7 +12083,7 @@ snapshots:
vue-meta: 2.4.0
vue-server-renderer: 2.7.16
- '@nuxt/webpack@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.7.4)(typescript@4.9.5)(vue@2.7.16)':
+ '@nuxt/webpack@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.8.1)(typescript@4.9.5)(vue@2.7.16)':
dependencies:
'@babel/core': 7.24.7
'@nuxt/babel-preset-app': 2.18.1(vue@2.7.16)
@@ -12122,7 +12123,7 @@ snapshots:
ufo: 1.6.1
upath: 2.0.1
url-loader: 4.1.1(file-loader@6.2.0(webpack@5.104.1))(webpack@4.47.0)
- vue-loader: 15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@5.104.1))(ejs@3.1.10)(handlebars@4.7.8)(lodash@4.17.21)(prettier@3.7.4)(vue-template-compiler@2.7.16)(webpack@4.47.0)
+ vue-loader: 15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@5.104.1))(ejs@3.1.10)(handlebars@4.7.8)(lodash@4.17.21)(prettier@3.8.1)(vue-template-compiler@2.7.16)(webpack@4.47.0)
vue-style-loader: 4.1.3
vue-template-compiler: 2.7.16
watchpack: 2.5.0
@@ -12247,11 +12248,11 @@ snapshots:
- vite
- webpack
- '@nuxtjs/firebase@8.2.2(@firebase/app-types@0.9.2)(firebase@10.14.1)(nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.7.4)(typescript@4.9.5)(vue@2.7.16))':
+ '@nuxtjs/firebase@8.2.2(@firebase/app-types@0.9.2)(firebase@10.14.1)(nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.8.1)(typescript@4.9.5)(vue@2.7.16))':
dependencies:
consola: 2.15.3
firebase: 10.14.1
- nuxt: 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.7.4)(typescript@4.9.5)(vue@2.7.16)
+ nuxt: 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.8.1)(typescript@4.9.5)(vue@2.7.16)
optionalDependencies:
firebase-admin: 10.3.0(@firebase/app-types@0.9.2)
transitivePeerDependencies:
@@ -17585,10 +17586,10 @@ snapshots:
dependencies:
highlight.js: 11.11.1
- nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.7.4)(typescript@4.9.5)(vue@2.7.16):
+ nuxt@2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(consola@3.2.3)(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.8.1)(typescript@4.9.5)(vue@2.7.16):
dependencies:
'@nuxt/babel-preset-app': 2.18.1(vue@2.7.16)
- '@nuxt/builder': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.7.4)(typescript@4.9.5)(vue@2.7.16)
+ '@nuxt/builder': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.8.1)(typescript@4.9.5)(vue@2.7.16)
'@nuxt/cli': 2.18.1
'@nuxt/components': 2.2.1(consola@3.2.3)
'@nuxt/config': 2.18.1
@@ -17601,7 +17602,7 @@ snapshots:
'@nuxt/utils': 2.18.1
'@nuxt/vue-app': 2.18.1
'@nuxt/vue-renderer': 2.18.1
- '@nuxt/webpack': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.7.4)(typescript@4.9.5)(vue@2.7.16)
+ '@nuxt/webpack': 2.18.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(handlebars@4.7.8)(prettier@3.8.1)(typescript@4.9.5)(vue@2.7.16)
transitivePeerDependencies:
- '@vue/compiler-sfc'
- arc-templates
@@ -18607,7 +18608,7 @@ snapshots:
prettier@2.8.8:
optional: true
- prettier@3.7.4: {}
+ prettier@3.8.1: {}
pretty-bytes@5.6.0: {}
@@ -20265,7 +20266,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- vue-loader@15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@5.104.1))(ejs@3.1.10)(handlebars@4.7.8)(lodash@4.17.21)(prettier@3.7.4)(vue-template-compiler@2.7.16)(webpack@4.47.0):
+ vue-loader@15.11.1(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(cache-loader@4.1.0(webpack@4.47.0))(css-loader@5.2.7(webpack@5.104.1))(ejs@3.1.10)(handlebars@4.7.8)(lodash@4.17.21)(prettier@3.8.1)(vue-template-compiler@2.7.16)(webpack@4.47.0):
dependencies:
'@vue/component-compiler-utils': 3.3.0(babel-core@7.0.0-bridge.0(@babel/core@7.28.4))(ejs@3.1.10)(handlebars@4.7.8)(lodash@4.17.21)
css-loader: 5.2.7(webpack@5.104.1)
@@ -20276,7 +20277,7 @@ snapshots:
webpack: 4.47.0
optionalDependencies:
cache-loader: 4.1.0(webpack@4.47.0)
- prettier: 3.7.4
+ prettier: 3.8.1
vue-template-compiler: 2.7.16
transitivePeerDependencies:
- arc-templates
From 1578a5544b986c764286cdb26018cbfe11269ba3 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 1 Feb 2026 00:07:07 +0000
Subject: [PATCH 104/215] fix(deps): bump chart.js from 4.5.0 to 4.5.1 in /web
Bumps [chart.js](https://github.com/chartjs/Chart.js) from 4.5.0 to 4.5.1.
- [Release notes](https://github.com/chartjs/Chart.js/releases)
- [Commits](https://github.com/chartjs/Chart.js/compare/v4.5.0...v4.5.1)
---
updated-dependencies:
- dependency-name: chart.js
dependency-version: 4.5.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
web/package.json | 2 +-
web/pnpm-lock.yaml | 23 ++++++++++++-----------
2 files changed, 13 insertions(+), 12 deletions(-)
diff --git a/web/package.json b/web/package.json
index dd63ade1..04279585 100644
--- a/web/package.json
+++ b/web/package.json
@@ -26,7 +26,7 @@
"@nuxtjs/dotenv": "^1.4.2",
"@nuxtjs/firebase": "^8.2.2",
"@nuxtjs/sitemap": "^2.4.0",
- "chart.js": "^4.5.0",
+ "chart.js": "^4.5.1",
"chartjs-adapter-moment": "^1.0.1",
"core-js": "^3.47.0",
"date-fns": "^2.30.0",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index b2b84a8c..0b743755 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -21,11 +21,11 @@ importers:
specifier: ^2.4.0
version: 2.4.0
chart.js:
- specifier: ^4.5.0
- version: 4.5.0
+ specifier: ^4.5.1
+ version: 4.5.1
chartjs-adapter-moment:
specifier: ^1.0.1
- version: 1.0.1(chart.js@4.5.0)(moment@2.30.1)
+ version: 1.0.1(chart.js@4.5.1)(moment@2.30.1)
core-js:
specifier: ^3.47.0
version: 3.47.0
@@ -70,7 +70,7 @@ importers:
version: 2.7.16
vue-chartjs:
specifier: ^5.3.3
- version: 5.3.3(chart.js@4.5.0)(vue@2.7.16)
+ version: 5.3.3(chart.js@4.5.1)(vue@2.7.16)
vue-class-component:
specifier: ^7.2.6
version: 7.2.6(vue@2.7.16)
@@ -3336,8 +3336,8 @@ packages:
chardet@0.7.0:
resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
- chart.js@4.5.0:
- resolution: {integrity: sha512-aYeC/jDgSEx8SHWZvANYMioYMZ2KX02W6f6uVfyteuCGcadDLcYVHdfdygsTQkQ4TKn5lghoojAsPj5pu0SnvQ==}
+ chart.js@4.5.1:
+ resolution: {integrity: sha512-GIjfiT9dbmHRiYi6Nl2yFCq7kkwdkp1W/lp2J99rX0yo9tgJGn3lKQATztIjb5tVtevcBtIdICNWqlq5+E8/Pw==}
engines: {pnpm: '>=8'}
chartjs-adapter-moment@1.0.1:
@@ -8337,6 +8337,7 @@ packages:
tar@6.2.0:
resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==}
engines: {node: '>=10'}
+ deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exhorbitant rates) by contacting i@izs.me
teeny-request@7.2.0:
resolution: {integrity: sha512-SyY0pek1zWsi0LRVAALem+avzMLc33MKW/JLLakdP4s9+D7+jHcy5x6P+h94g2QNZsAqQNfX5lsbd3WSeJXrrw==}
@@ -13838,13 +13839,13 @@ snapshots:
chardet@0.7.0: {}
- chart.js@4.5.0:
+ chart.js@4.5.1:
dependencies:
'@kurkle/color': 0.3.4
- chartjs-adapter-moment@1.0.1(chart.js@4.5.0)(moment@2.30.1):
+ chartjs-adapter-moment@1.0.1(chart.js@4.5.1)(moment@2.30.1):
dependencies:
- chart.js: 4.5.0
+ chart.js: 4.5.1
moment: 2.30.1
chokidar@2.1.8:
@@ -20203,9 +20204,9 @@ snapshots:
vm-browserify@1.1.2: {}
- vue-chartjs@5.3.3(chart.js@4.5.0)(vue@2.7.16):
+ vue-chartjs@5.3.3(chart.js@4.5.1)(vue@2.7.16):
dependencies:
- chart.js: 4.5.0
+ chart.js: 4.5.1
vue: 2.7.16
vue-class-component@7.2.6(vue@2.7.16):
From 88753ca998503438554caed1546303e7f1d36333 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 1 Feb 2026 00:08:28 +0000
Subject: [PATCH 105/215] fix(deps): bump libphonenumber-js from 1.12.33 to
1.12.36 in /web
Bumps [libphonenumber-js](https://gitlab.com/catamphetamine/libphonenumber-js) from 1.12.33 to 1.12.36.
- [Changelog](https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/CHANGELOG.md)
- [Commits](https://gitlab.com/catamphetamine/libphonenumber-js/compare/v1.12.33...v1.12.36)
---
updated-dependencies:
- dependency-name: libphonenumber-js
dependency-version: 1.12.36
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
web/package.json | 2 +-
web/pnpm-lock.yaml | 11 ++++++-----
2 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/web/package.json b/web/package.json
index dd63ade1..8d755e8a 100644
--- a/web/package.json
+++ b/web/package.json
@@ -34,7 +34,7 @@
"firebase": "^10.14.1",
"firebaseui": "^6.1.0",
"jest-environment-jsdom": "^30.2.0",
- "libphonenumber-js": "^1.12.33",
+ "libphonenumber-js": "^1.12.36",
"moment": "^2.30.1",
"nuxt": "^2.18.1",
"nuxt-highlightjs": "^1.0.3",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index b2b84a8c..476f3468 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -45,8 +45,8 @@ importers:
specifier: ^30.2.0
version: 30.2.0
libphonenumber-js:
- specifier: ^1.12.33
- version: 1.12.33
+ specifier: ^1.12.36
+ version: 1.12.36
moment:
specifier: ^2.30.1
version: 2.30.1
@@ -5932,8 +5932,8 @@ packages:
resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
engines: {node: '>= 0.8.0'}
- libphonenumber-js@1.12.33:
- resolution: {integrity: sha512-r9kw4OA6oDO4dPXkOrXTkArQAafIKAU71hChInV4FxZ69dxCfbwQGDPzqR5/vea94wU705/3AZroEbSoeVWrQw==}
+ libphonenumber-js@1.12.36:
+ resolution: {integrity: sha512-woWhKMAVx1fzzUnMCyOzglgSgf6/AFHLASdOBcchYCyvWSGWt12imw3iu2hdI5d4dGZRsNWAmWiz37sDKUPaRQ==}
lilconfig@2.1.0:
resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
@@ -8337,6 +8337,7 @@ packages:
tar@6.2.0:
resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==}
engines: {node: '>=10'}
+ deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exhorbitant rates) by contacting i@izs.me
teeny-request@7.2.0:
resolution: {integrity: sha512-SyY0pek1zWsi0LRVAALem+avzMLc33MKW/JLLakdP4s9+D7+jHcy5x6P+h94g2QNZsAqQNfX5lsbd3WSeJXrrw==}
@@ -16959,7 +16960,7 @@ snapshots:
prelude-ls: 1.2.1
type-check: 0.4.0
- libphonenumber-js@1.12.33: {}
+ libphonenumber-js@1.12.36: {}
lilconfig@2.1.0: {}
From c4922ebca9d635c1e4d6b3e53b239ad135605b34 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 1 Feb 2026 00:08:58 +0000
Subject: [PATCH 106/215] fix(deps): bump core-js from 3.47.0 to 3.48.0 in /web
Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.47.0 to 3.48.0.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/commits/v3.48.0/packages/core-js)
---
updated-dependencies:
- dependency-name: core-js
dependency-version: 3.48.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
web/package.json | 2 +-
web/pnpm-lock.yaml | 13 +++++++------
2 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/web/package.json b/web/package.json
index dd63ade1..0e9a42ed 100644
--- a/web/package.json
+++ b/web/package.json
@@ -28,7 +28,7 @@
"@nuxtjs/sitemap": "^2.4.0",
"chart.js": "^4.5.0",
"chartjs-adapter-moment": "^1.0.1",
- "core-js": "^3.47.0",
+ "core-js": "^3.48.0",
"date-fns": "^2.30.0",
"dotenv": "^17.2.3",
"firebase": "^10.14.1",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index b2b84a8c..724a79ed 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -27,8 +27,8 @@ importers:
specifier: ^1.0.1
version: 1.0.1(chart.js@4.5.0)(moment@2.30.1)
core-js:
- specifier: ^3.47.0
- version: 3.47.0
+ specifier: ^3.48.0
+ version: 3.48.0
date-fns:
specifier: ^2.30.0
version: 2.30.0
@@ -3759,8 +3759,8 @@ packages:
resolution: {integrity: sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==}
deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.
- core-js@3.47.0:
- resolution: {integrity: sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg==}
+ core-js@3.48.0:
+ resolution: {integrity: sha512-zpEHTy1fjTMZCKLHUZoVeylt9XrzaIN2rbPXEt0k+q7JE5CkCZdo6bNq55bn24a69CH7ErAVLKijxJja4fw+UQ==}
core-util-is@1.0.3:
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
@@ -8337,6 +8337,7 @@ packages:
tar@6.2.0:
resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==}
engines: {node: '>=10'}
+ deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exhorbitant rates) by contacting i@izs.me
teeny-request@7.2.0:
resolution: {integrity: sha512-SyY0pek1zWsi0LRVAALem+avzMLc33MKW/JLLakdP4s9+D7+jHcy5x6P+h94g2QNZsAqQNfX5lsbd3WSeJXrrw==}
@@ -11684,7 +11685,7 @@ snapshots:
'@babel/preset-env': 7.24.7(@babel/core@7.24.7)
'@babel/runtime': 7.24.7
'@vue/babel-preset-jsx': 1.4.0(@babel/core@7.24.7)(vue@2.7.16)
- core-js: 3.47.0
+ core-js: 3.48.0
core-js-compat: 3.37.1
regenerator-runtime: 0.14.1
transitivePeerDependencies:
@@ -14134,7 +14135,7 @@ snapshots:
core-js@2.6.12: {}
- core-js@3.47.0: {}
+ core-js@3.48.0: {}
core-util-is@1.0.3: {}
From ff20dd5f4140926426a224f824e20124b8b4166b Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 1 Feb 2026 15:23:29 +0000
Subject: [PATCH 107/215] fix(deps): bump github.com/golang-jwt/jwt/v5 from
5.3.0 to 5.3.1 in /api
Bumps [github.com/golang-jwt/jwt/v5](https://github.com/golang-jwt/jwt) from 5.3.0 to 5.3.1.
- [Release notes](https://github.com/golang-jwt/jwt/releases)
- [Commits](https://github.com/golang-jwt/jwt/compare/v5.3.0...v5.3.1)
---
updated-dependencies:
- dependency-name: github.com/golang-jwt/jwt/v5
dependency-version: 5.3.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 2 +-
api/go.sum | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index 82d26c64..84b84443 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -22,7 +22,7 @@ require (
github.com/gofiber/contrib/otelfiber v1.0.10
github.com/gofiber/fiber/v2 v2.52.11
github.com/gofiber/swagger v1.1.1
- github.com/golang-jwt/jwt/v5 v5.3.0
+ github.com/golang-jwt/jwt/v5 v5.3.1
github.com/google/uuid v1.6.0
github.com/hashicorp/go-retryablehttp v0.7.8
github.com/hirosassa/zerodriver v0.1.4
diff --git a/api/go.sum b/api/go.sum
index c25980ec..426179ce 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -157,8 +157,8 @@ github.com/gofiber/swagger v1.1.1/go.mod h1:vtvY/sQAMc/lGTUCg0lqmBL7Ht9O7uzChpbv
github.com/gofrs/flock v0.12.1 h1:MTLVXXHf8ekldpJk3AKicLij9MdwOWkZ+a/jHHZby9E=
github.com/gofrs/flock v0.12.1/go.mod h1:9zxTsyu5xtJ9DK+1tFZyibEV7y3uwDxPPfbxeeHCoD0=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
-github.com/golang-jwt/jwt/v5 v5.3.0 h1:pv4AsKCKKZuqlgs5sUmn4x8UlGa0kEVt/puTpKx9vvo=
-github.com/golang-jwt/jwt/v5 v5.3.0/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE=
+github.com/golang-jwt/jwt/v5 v5.3.1 h1:kYf81DTWFe7t+1VvL7eS+jKFVWaUnK9cB1qbwn63YCY=
+github.com/golang-jwt/jwt/v5 v5.3.1/go.mod h1:fxCRLWMO43lRc8nhHWY6LGqRcf+1gQWArsqaEUEa5bE=
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
From 2efb6c88ecc83416c8010e669cf4b88410083590 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 1 Feb 2026 15:23:34 +0000
Subject: [PATCH 108/215] fix(deps): bump github.com/dgraph-io/ristretto/v2 in
/api
Bumps [github.com/dgraph-io/ristretto/v2](https://github.com/dgraph-io/ristretto) from 2.3.0 to 2.4.0.
- [Release notes](https://github.com/dgraph-io/ristretto/releases)
- [Changelog](https://github.com/dgraph-io/ristretto/blob/main/CHANGELOG.md)
- [Commits](https://github.com/dgraph-io/ristretto/compare/v2.3.0...v2.4.0)
---
updated-dependencies:
- dependency-name: github.com/dgraph-io/ristretto/v2
dependency-version: 2.4.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 2 +-
api/go.sum | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index 82d26c64..72035cec 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -17,7 +17,7 @@ require (
github.com/cloudevents/sdk-go/v2 v2.16.2
github.com/cockroachdb/cockroach-go/v2 v2.4.3
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
- github.com/dgraph-io/ristretto/v2 v2.3.0
+ github.com/dgraph-io/ristretto/v2 v2.4.0
github.com/dustin/go-humanize v1.0.1
github.com/gofiber/contrib/otelfiber v1.0.10
github.com/gofiber/fiber/v2 v2.52.11
diff --git a/api/go.sum b/api/go.sum
index c25980ec..401dd69d 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -91,8 +91,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/dgraph-io/ristretto/v2 v2.3.0 h1:qTQ38m7oIyd4GAed/QkUZyPFNMnvVWyazGXRwvOt5zk=
-github.com/dgraph-io/ristretto/v2 v2.3.0/go.mod h1:gpoRV3VzrEY1a9dWAYV6T1U7YzfgttXdd/ZzL1s9OZM=
+github.com/dgraph-io/ristretto/v2 v2.4.0 h1:I/w09yLjhdcVD2QV192UJcq8dPBaAJb9pOuMyNy0XlU=
+github.com/dgraph-io/ristretto/v2 v2.4.0/go.mod h1:0KsrXtXvnv0EqnzyowllbVJB8yBonswa2lTCK2gGo9E=
github.com/dgryski/go-farm v0.0.0-20240924180020-3414d57e47da h1:aIftn67I1fkbMa512G+w+Pxci9hJPB8oMnkcP3iZF38=
github.com/dgryski/go-farm v0.0.0-20240924180020-3414d57e47da/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw=
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
From 9e31a45ad7d621e683f3ac7f1262e51947a0f993 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 1 Feb 2026 15:25:08 +0000
Subject: [PATCH 109/215] fix(deps): bump
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric
Bumps [github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric](https://github.com/GoogleCloudPlatform/opentelemetry-operations-go) from 0.54.0 to 0.55.0.
- [Release notes](https://github.com/GoogleCloudPlatform/opentelemetry-operations-go/releases)
- [Commits](https://github.com/GoogleCloudPlatform/opentelemetry-operations-go/compare/v0.54.0...v0.55.0)
---
updated-dependencies:
- dependency-name: github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric
dependency-version: 0.55.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 2 +-
api/go.sum | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index 5be47a0a..51120b96 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -7,7 +7,7 @@ toolchain go1.24.3
require (
cloud.google.com/go/cloudtasks v1.13.7
firebase.google.com/go v3.13.0+incompatible
- github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.54.0
+ github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.55.0
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.31.0
github.com/NdoleStudio/go-otelroundtripper v0.0.13
github.com/NdoleStudio/lemonsqueezy-go v1.3.1
diff --git a/api/go.sum b/api/go.sum
index ea13ba63..f9625a5f 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -38,8 +38,8 @@ github.com/ClickHouse/clickhouse-go/v2 v2.40.3 h1:46jB4kKwVDUOnECpStKMVXxvR0Cg9z
github.com/ClickHouse/clickhouse-go/v2 v2.40.3/go.mod h1:qO0HwvjCnTB4BPL/k6EE3l4d9f/uF+aoimAhJX70eKA=
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.30.0 h1:sBEjpZlNHzK1voKq9695PJSX2o5NEXl7/OL3coiIY0c=
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.30.0/go.mod h1:P4WPRUkOhJC13W//jWpyfJNDAIpvRbAUIYLX/4jtlE0=
-github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.54.0 h1:lhhYARPUu3LmHysQ/igznQphfzynnqI3D75oUyw1HXk=
-github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.54.0/go.mod h1:l9rva3ApbBpEJxSNYnwT9N4CDLrWgtq3u8736C5hyJw=
+github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.55.0 h1:UnDZ/zFfG1JhH/DqxIZYU/1CUAlTUScoXD/LcM2Ykk8=
+github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.55.0/go.mod h1:IA1C1U7jO/ENqm/vhi7V9YYpBsp+IMyqNrEN94N7tVc=
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.31.0 h1:xQMhkBXPOKe/GzC6TctwlK2aNF+9k5VwFgdE83rBK2Y=
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.31.0/go.mod h1:VLoD5cAsRQXsAFXpOZrrTGzbuMsntlspIZno4xor5Zg=
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/cloudmock v0.55.0 h1:7t/qx5Ost0s0wbA/VDrByOooURhp+ikYwv20i9Y07TQ=
From 728d981d1973381afb82f5479a8233a96b3a4328 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 1 Feb 2026 15:25:49 +0000
Subject: [PATCH 110/215] chore(deps-dev): bump @commitlint/cli from 20.2.0 to
20.4.0 in /web
Bumps [@commitlint/cli](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli) from 20.2.0 to 20.4.0.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/cli/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v20.4.0/@commitlint/cli)
---
updated-dependencies:
- dependency-name: "@commitlint/cli"
dependency-version: 20.4.0
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
web/package.json | 2 +-
web/pnpm-lock.yaml | 314 ++++++++++++++++-----------------------------
2 files changed, 109 insertions(+), 207 deletions(-)
diff --git a/web/package.json b/web/package.json
index fe3419b9..5deaf3c2 100644
--- a/web/package.json
+++ b/web/package.json
@@ -55,7 +55,7 @@
},
"devDependencies": {
"@babel/eslint-parser": "^7.28.5",
- "@commitlint/cli": "^20.2.0",
+ "@commitlint/cli": "^20.4.0",
"@commitlint/config-conventional": "^19.8.0",
"@nuxt/types": "^2.18.1",
"@nuxt/typescript-build": "^3.0.2",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index 6fe39db6..3f1bbc0c 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -103,8 +103,8 @@ importers:
specifier: ^7.28.5
version: 7.28.5(@babel/core@7.28.4)(eslint@8.57.1)
'@commitlint/cli':
- specifier: ^20.2.0
- version: 20.2.0(@types/node@25.1.0)(typescript@4.9.5)
+ specifier: ^20.4.0
+ version: 20.4.0(@types/node@25.1.0)(typescript@4.9.5)
'@commitlint/config-conventional':
specifier: ^19.8.0
version: 19.8.0
@@ -1012,8 +1012,8 @@ packages:
'@bcoe/v8-coverage@0.2.3':
resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
- '@commitlint/cli@20.2.0':
- resolution: {integrity: sha512-l37HkrPZ2DZy26rKiTUvdq/LZtlMcxz+PeLv9dzK9NzoFGuJdOQyYU7IEkEQj0pO++uYue89wzOpZ0hcTtoqUA==}
+ '@commitlint/cli@20.4.0':
+ resolution: {integrity: sha512-2lqrFrYNxjKxgMqeYiO3zNM14XN9v72/5xIJyvdLw7sHEGlfg6sweW01PGNWiqZa6/AuZwsb0uzkgWJy6F4N2w==}
engines: {node: '>=v18'}
hasBin: true
@@ -1021,68 +1021,68 @@ packages:
resolution: {integrity: sha512-9I2kKJwcAPwMoAj38hwqFXG0CzS2Kj+SAByPUQ0SlHTfb7VUhYVmo7G2w2tBrqmOf7PFd6MpZ/a1GQJo8na8kw==}
engines: {node: '>=v18'}
- '@commitlint/config-validator@20.2.0':
- resolution: {integrity: sha512-SQCBGsL9MFk8utWNSthdxd9iOD1pIVZSHxGBwYIGfd67RTjxqzFOSAYeQVXOu3IxRC3YrTOH37ThnTLjUlyF2w==}
+ '@commitlint/config-validator@20.4.0':
+ resolution: {integrity: sha512-zShmKTF+sqyNOfAE0vKcqnpvVpG0YX8F9G/ZIQHI2CoKyK+PSdladXMSns400aZ5/QZs+0fN75B//3Q5CHw++w==}
engines: {node: '>=v18'}
- '@commitlint/ensure@20.2.0':
- resolution: {integrity: sha512-+8TgIGv89rOWyt3eC6lcR1H7hqChAKkpawytlq9P1i/HYugFRVqgoKJ8dhd89fMnlrQTLjA5E97/4sF09QwdoA==}
+ '@commitlint/ensure@20.4.0':
+ resolution: {integrity: sha512-F3qwnanJUisFWwh44GYYmMOxfgJL1FKV73FCB5zxo8pw1CHkxXadGfDfzNkN8B3iqgSGusDN2+oDH6upBmLszA==}
engines: {node: '>=v18'}
'@commitlint/execute-rule@20.0.0':
resolution: {integrity: sha512-xyCoOShoPuPL44gVa+5EdZsBVao/pNzpQhkzq3RdtlFdKZtjWcLlUFQHSWBuhk5utKYykeJPSz2i8ABHQA+ZZw==}
engines: {node: '>=v18'}
- '@commitlint/format@20.2.0':
- resolution: {integrity: sha512-PhNoLNhxpfIBlW/i90uZ3yG3hwSSYx7n4d9Yc+2FAorAHS0D9btYRK4ZZXX+Gm3W5tDtu911ow/eWRfcRVgNWg==}
+ '@commitlint/format@20.4.0':
+ resolution: {integrity: sha512-i3ki3WR0rgolFVX6r64poBHXM1t8qlFel1G1eCBvVgntE3fCJitmzSvH5JD/KVJN/snz6TfaX2CLdON7+s4WVQ==}
engines: {node: '>=v18'}
- '@commitlint/is-ignored@20.2.0':
- resolution: {integrity: sha512-Lz0OGeZCo/QHUDLx5LmZc0EocwanneYJUM8z0bfWexArk62HKMLfLIodwXuKTO5y0s6ddXaTexrYHs7v96EOmw==}
+ '@commitlint/is-ignored@20.4.0':
+ resolution: {integrity: sha512-E8AHpedEfuf+lZatFvFiJXA4TtZgBZ10+A7HzFudaEmTPPE5o6MGswxbxUIGAciaHAFj/oTTmyFc6A5tcvxE3Q==}
engines: {node: '>=v18'}
- '@commitlint/lint@20.2.0':
- resolution: {integrity: sha512-cQEEB+jlmyQbyiji/kmh8pUJSDeUmPiWq23kFV0EtW3eM+uAaMLMuoTMajbrtWYWQpPzOMDjYltQ8jxHeHgITg==}
+ '@commitlint/lint@20.4.0':
+ resolution: {integrity: sha512-W90YCbm5h3Yg+btF5/X+cxsY6vd/H3tsFt6U7WBmDQSkKV8NmitYg89zeoSQyYEiQCwAsH0dcA+99aQtLZiSnw==}
engines: {node: '>=v18'}
- '@commitlint/load@20.2.0':
- resolution: {integrity: sha512-iAK2GaBM8sPFTSwtagI67HrLKHIUxQc2BgpgNc/UMNme6LfmtHpIxQoN1TbP+X1iz58jq32HL1GbrFTCzcMi6g==}
+ '@commitlint/load@20.4.0':
+ resolution: {integrity: sha512-Dauup/GfjwffBXRJUdlX/YRKfSVXsXZLnINXKz0VZkXdKDcaEILAi9oflHGbfydonJnJAbXEbF3nXPm9rm3G6A==}
engines: {node: '>=v18'}
- '@commitlint/message@20.0.0':
- resolution: {integrity: sha512-gLX4YmKnZqSwkmSB9OckQUrI5VyXEYiv3J5JKZRxIp8jOQsWjZgHSG/OgEfMQBK9ibdclEdAyIPYggwXoFGXjQ==}
+ '@commitlint/message@20.4.0':
+ resolution: {integrity: sha512-B5lGtvHgiLAIsK5nLINzVW0bN5hXv+EW35sKhYHE8F7V9Uz1fR4tx3wt7mobA5UNhZKUNgB/+ldVMQE6IHZRyA==}
engines: {node: '>=v18'}
- '@commitlint/parse@20.2.0':
- resolution: {integrity: sha512-LXStagGU1ivh07X7sM+hnEr4BvzFYn1iBJ6DRg2QsIN8lBfSzyvkUcVCDwok9Ia4PWiEgei5HQjju6xfJ1YaSQ==}
+ '@commitlint/parse@20.4.0':
+ resolution: {integrity: sha512-NcRkqo/QUnuc1RgxRCIKTqobKzF0BKJ8h3i1jRyeZ+SEy5rO9dPNOh4BqrFsSznb5mnwETYB7ph9tUcthNkwAQ==}
engines: {node: '>=v18'}
- '@commitlint/read@20.2.0':
- resolution: {integrity: sha512-+SjF9mxm5JCbe+8grOpXCXMMRzAnE0WWijhhtasdrpJoAFJYd5UgRTj/oCq5W3HJTwbvTOsijEJ0SUGImECD7Q==}
+ '@commitlint/read@20.4.0':
+ resolution: {integrity: sha512-QfpFn6/I240ySEGv7YWqho4vxqtPpx40FS7kZZDjUJ+eHxu3azfhy7fFb5XzfTqVNp1hNoI3tEmiEPbDB44+cg==}
engines: {node: '>=v18'}
- '@commitlint/resolve-extends@20.2.0':
- resolution: {integrity: sha512-KVoLDi9BEuqeq+G0wRABn4azLRiCC22/YHR2aCquwx6bzCHAIN8hMt3Nuf1VFxq/c8ai6s8qBxE8+ZD4HeFTlQ==}
+ '@commitlint/resolve-extends@20.4.0':
+ resolution: {integrity: sha512-ay1KM8q0t+/OnlpqXJ+7gEFQNlUtSU5Gxr8GEwnVf2TPN3+ywc5DzL3JCxmpucqxfHBTFwfRMXxPRRnR5Ki20g==}
engines: {node: '>=v18'}
- '@commitlint/rules@20.2.0':
- resolution: {integrity: sha512-27rHGpeAjnYl/A+qUUiYDa7Yn1WIjof/dFJjYW4gA1Ug+LUGa1P0AexzGZ5NBxTbAlmDgaxSZkLLxtLVqtg8PQ==}
+ '@commitlint/rules@20.4.0':
+ resolution: {integrity: sha512-E+UoAA7WA4xrre9lDyX2vL4Df26I+vqMN4D8JoW/L2xE/VRDvn533/ibhgSlGYDltB9nm2S+1lti3PagEwO0ag==}
engines: {node: '>=v18'}
'@commitlint/to-lines@20.0.0':
resolution: {integrity: sha512-2l9gmwiCRqZNWgV+pX1X7z4yP0b3ex/86UmUFgoRt672Ez6cAM2lOQeHFRUTuE6sPpi8XBCGnd8Kh3bMoyHwJw==}
engines: {node: '>=v18'}
- '@commitlint/top-level@20.0.0':
- resolution: {integrity: sha512-drXaPSP2EcopukrUXvUXmsQMu3Ey/FuJDc/5oiW4heoCfoE5BdLQyuc7veGeE3aoQaTVqZnh4D5WTWe2vefYKg==}
+ '@commitlint/top-level@20.4.0':
+ resolution: {integrity: sha512-NDzq8Q6jmFaIIBC/GG6n1OQEaHdmaAAYdrZRlMgW6glYWGZ+IeuXmiymDvQNXPc82mVxq2KiE3RVpcs+1OeDeA==}
engines: {node: '>=v18'}
'@commitlint/types@19.8.0':
resolution: {integrity: sha512-LRjP623jPyf3Poyfb0ohMj8I3ORyBDOwXAgxxVPbSD0unJuW2mJWeiRfaQinjtccMqC5Wy1HOMfa4btKjbNxbg==}
engines: {node: '>=v18'}
- '@commitlint/types@20.2.0':
- resolution: {integrity: sha512-KTy0OqRDLR5y/zZMnizyx09z/rPlPC/zKhYgH8o/q6PuAjoQAKlRfY4zzv0M64yybQ//6//4H1n14pxaLZfUnA==}
+ '@commitlint/types@20.4.0':
+ resolution: {integrity: sha512-aO5l99BQJ0X34ft8b0h7QFkQlqxC6e7ZPVmBKz13xM9O8obDaM1Cld4sQlJDXXU/VFuUzQ30mVtHjVz74TuStw==}
engines: {node: '>=v18'}
'@csstools/cascade-layer-name-parser@1.0.12':
@@ -2282,9 +2282,6 @@ packages:
'@types/conventional-commits-parser@5.0.1':
resolution: {integrity: sha512-7uz5EHdzz2TqoMfV7ee61Egf5y6NkcO4FB/1iCCQnbeiI1F3xzv3vK5dBCXUCLQgGYS+mUeigK1iKQzvED+QnQ==}
- '@types/conventional-commits-parser@5.0.2':
- resolution: {integrity: sha512-BgT2szDXnVypgpNxOK8aL5SGjUdaQbC++WZNjF1Qge3Og2+zhHj+RWhmehLhYyvQwqAmvezruVfOf8+3m74W+g==}
-
'@types/eslint-scope@3.7.7':
resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==}
@@ -2761,10 +2758,6 @@ packages:
'@xtuc/long@4.2.2':
resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==}
- JSONStream@1.3.5:
- resolution: {integrity: sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==}
- hasBin: true
-
abbrev@1.1.1:
resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
@@ -3322,10 +3315,6 @@ packages:
resolution: {integrity: sha512-1tm8DTaJhPBG3bIkVeZt1iZM9GfSX2lzOeDVZH9R9ffRHpmHvxZ/QhgQH/aDTkswQVt+YHdXAdS/In/30OjCbg==}
engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
- chalk@5.6.2:
- resolution: {integrity: sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==}
- engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
-
char-regex@1.0.2:
resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==}
engines: {node: '>=10'}
@@ -3721,17 +3710,17 @@ packages:
constants-browserify@1.0.0:
resolution: {integrity: sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==}
- conventional-changelog-angular@7.0.0:
- resolution: {integrity: sha512-ROjNchA9LgfNMTTFSIWPzebCwOGFdgkEq45EnvvrmSLvCtAw0HSmrCs7/ty+wAeYUZyNay0YMUNYFTRL72PkBQ==}
- engines: {node: '>=16'}
+ conventional-changelog-angular@8.1.0:
+ resolution: {integrity: sha512-GGf2Nipn1RUCAktxuVauVr1e3r8QrLP/B0lEUsFktmGqc3ddbQkhoJZHJctVU829U1c6mTSWftrVOCHaL85Q3w==}
+ engines: {node: '>=18'}
conventional-changelog-conventionalcommits@7.0.2:
resolution: {integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==}
engines: {node: '>=16'}
- conventional-commits-parser@5.0.0:
- resolution: {integrity: sha512-ZPMl0ZJbw74iS9LuX9YIAiW8pfM5p3yh2o/NbXHbkFuZzY5jvdi5jFycEOkmBW5H5I7nA+D6f3UcsCLP2vvSEA==}
- engines: {node: '>=16'}
+ conventional-commits-parser@6.2.1:
+ resolution: {integrity: sha512-20pyHgnO40rvfI0NGF/xiEoFMkXDtkF8FwHvk5BokoFoCuTQRI8vrNCNFWUOfuolKJMm1tPCHc8GgYEtr1XRNA==}
+ engines: {node: '>=18'}
hasBin: true
convert-source-map@2.0.0:
@@ -4737,10 +4726,6 @@ packages:
resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
engines: {node: '>=10'}
- find-up@7.0.0:
- resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==}
- engines: {node: '>=18'}
-
firebase-admin@10.3.0:
resolution: {integrity: sha512-A0wgMLEjyVyUE+heyMJYqHRkPVjpebhOYsa47RHdrTM4ltApcx8Tn86sUmjqxlfh09gNnILAm7a8q5+FmgBYpg==}
engines: {node: '>=12.7.0'}
@@ -5483,6 +5468,10 @@ packages:
resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
engines: {node: '>=0.10.0'}
+ is-plain-obj@4.1.0:
+ resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
+ engines: {node: '>=12'}
+
is-plain-object@2.0.4:
resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
engines: {node: '>=0.10.0'}
@@ -5523,10 +5512,6 @@ packages:
resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
engines: {node: '>= 0.4'}
- is-text-path@2.0.0:
- resolution: {integrity: sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==}
- engines: {node: '>=8'}
-
is-typed-array@1.1.12:
resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==}
engines: {node: '>= 0.4'}
@@ -5856,10 +5841,6 @@ packages:
jsonfile@6.1.0:
resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
- jsonparse@1.3.1:
- resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==}
- engines: {'0': node >= 0.2.0}
-
jsonwebtoken@8.5.1:
resolution: {integrity: sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==}
engines: {node: '>=4', npm: '>=1.4.28'}
@@ -5880,6 +5861,9 @@ packages:
jws@4.0.0:
resolution: {integrity: sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==}
+ kasi@2.0.1:
+ resolution: {integrity: sha512-8qhiHZ1BN26ig1+jQ9fWEk6dj8T1wuxs00QRJfXIANI4scto1EuPUgqj+mxHls52WBfdTNJGQ8yYw9rDpWUcgQ==}
+
keyv@4.5.3:
resolution: {integrity: sha512-QCiSav9WaX1PgETJ+SpNnx2PRRapJ/oRSXM4VO5OGYGSjrxbKPVFVhB3l2OCbLCk329N8qyAtsJjSjvVBWzEug==}
@@ -5991,10 +5975,6 @@ packages:
resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
engines: {node: '>=10'}
- locate-path@7.2.0:
- resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
-
lodash._reinterpolate@3.0.0:
resolution: {integrity: sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==}
@@ -6040,12 +6020,6 @@ packages:
lodash.once@4.1.1:
resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==}
- lodash.snakecase@4.1.1:
- resolution: {integrity: sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw==}
-
- lodash.startcase@4.4.0:
- resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==}
-
lodash.template@4.5.0:
resolution: {integrity: sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==}
deprecated: This package is deprecated. Use https://socket.dev/npm/package/eta instead.
@@ -6062,9 +6036,6 @@ packages:
lodash.uniq@4.5.0:
resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==}
- lodash.upperfirst@4.3.1:
- resolution: {integrity: sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg==}
-
lodash@4.17.21:
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
@@ -6198,6 +6169,10 @@ packages:
resolution: {integrity: sha512-BhXM0Au22RwUneMPwSCnyhTOizdWoIEPU9sp0Aqa1PnDMR5Wv2FGXYDjuzJEIX+Eo2Rb8xuYe5jrnm5QowQFkw==}
engines: {node: '>=16.10'}
+ meow@13.2.0:
+ resolution: {integrity: sha512-pxQJQzB6djGPXh08dacEloMFopsOqGVRKFPYvPOt9XDZ1HasbgDZA74CJGreSU4G3Ak7EFJGoiH2auq+yXISgA==}
+ engines: {node: '>=18'}
+
merge-source-map@1.1.0:
resolution: {integrity: sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==}
@@ -6631,10 +6606,6 @@ packages:
resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
engines: {node: '>=10'}
- p-limit@4.0.0:
- resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
-
p-locate@3.0.0:
resolution: {integrity: sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==}
engines: {node: '>=6'}
@@ -6647,10 +6618,6 @@ packages:
resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
engines: {node: '>=10'}
- p-locate@6.0.0:
- resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
-
p-map@4.0.0:
resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==}
engines: {node: '>=10'}
@@ -6724,10 +6691,6 @@ packages:
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
engines: {node: '>=8'}
- path-exists@5.0.0:
- resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
-
path-is-absolute@1.0.1:
resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
engines: {node: '>=0.10.0'}
@@ -6774,9 +6737,6 @@ packages:
picocolors@1.0.0:
resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
- picocolors@1.0.1:
- resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==}
-
picocolors@1.1.1:
resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==}
@@ -8385,10 +8345,6 @@ packages:
text-decoding@1.0.0:
resolution: {integrity: sha512-/0TJD42KDnVwKmDK6jj3xP7E2MG7SHAOG4tyTgyUCRPdHwvkquYNLEQltmdMa3owq3TkddCVcTsoctJI8VQNKA==}
- text-extensions@2.4.0:
- resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==}
- engines: {node: '>=8'}
-
text-table@0.2.0:
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
@@ -9242,10 +9198,6 @@ packages:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
- yocto-queue@1.2.2:
- resolution: {integrity: sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==}
- engines: {node: '>=12.20'}
-
snapshots:
'@aashutoshrathi/word-wrap@1.2.6': {}
@@ -10378,13 +10330,13 @@ snapshots:
'@bcoe/v8-coverage@0.2.3': {}
- '@commitlint/cli@20.2.0(@types/node@25.1.0)(typescript@4.9.5)':
+ '@commitlint/cli@20.4.0(@types/node@25.1.0)(typescript@4.9.5)':
dependencies:
- '@commitlint/format': 20.2.0
- '@commitlint/lint': 20.2.0
- '@commitlint/load': 20.2.0(@types/node@25.1.0)(typescript@4.9.5)
- '@commitlint/read': 20.2.0
- '@commitlint/types': 20.2.0
+ '@commitlint/format': 20.4.0
+ '@commitlint/lint': 20.4.0
+ '@commitlint/load': 20.4.0(@types/node@25.1.0)(typescript@4.9.5)
+ '@commitlint/read': 20.4.0
+ '@commitlint/types': 20.4.0
tinyexec: 1.0.2
yargs: 17.7.2
transitivePeerDependencies:
@@ -10396,102 +10348,97 @@ snapshots:
'@commitlint/types': 19.8.0
conventional-changelog-conventionalcommits: 7.0.2
- '@commitlint/config-validator@20.2.0':
+ '@commitlint/config-validator@20.4.0':
dependencies:
- '@commitlint/types': 20.2.0
+ '@commitlint/types': 20.4.0
ajv: 8.17.1
- '@commitlint/ensure@20.2.0':
+ '@commitlint/ensure@20.4.0':
dependencies:
- '@commitlint/types': 20.2.0
- lodash.camelcase: 4.3.0
- lodash.kebabcase: 4.1.1
- lodash.snakecase: 4.1.1
- lodash.startcase: 4.4.0
- lodash.upperfirst: 4.3.1
+ '@commitlint/types': 20.4.0
+ kasi: 2.0.1
'@commitlint/execute-rule@20.0.0': {}
- '@commitlint/format@20.2.0':
+ '@commitlint/format@20.4.0':
dependencies:
- '@commitlint/types': 20.2.0
- chalk: 5.6.2
+ '@commitlint/types': 20.4.0
+ picocolors: 1.1.1
- '@commitlint/is-ignored@20.2.0':
+ '@commitlint/is-ignored@20.4.0':
dependencies:
- '@commitlint/types': 20.2.0
+ '@commitlint/types': 20.4.0
semver: 7.7.3
- '@commitlint/lint@20.2.0':
+ '@commitlint/lint@20.4.0':
dependencies:
- '@commitlint/is-ignored': 20.2.0
- '@commitlint/parse': 20.2.0
- '@commitlint/rules': 20.2.0
- '@commitlint/types': 20.2.0
+ '@commitlint/is-ignored': 20.4.0
+ '@commitlint/parse': 20.4.0
+ '@commitlint/rules': 20.4.0
+ '@commitlint/types': 20.4.0
- '@commitlint/load@20.2.0(@types/node@25.1.0)(typescript@4.9.5)':
+ '@commitlint/load@20.4.0(@types/node@25.1.0)(typescript@4.9.5)':
dependencies:
- '@commitlint/config-validator': 20.2.0
+ '@commitlint/config-validator': 20.4.0
'@commitlint/execute-rule': 20.0.0
- '@commitlint/resolve-extends': 20.2.0
- '@commitlint/types': 20.2.0
- chalk: 5.6.2
+ '@commitlint/resolve-extends': 20.4.0
+ '@commitlint/types': 20.4.0
cosmiconfig: 9.0.0(typescript@4.9.5)
cosmiconfig-typescript-loader: 6.2.0(@types/node@25.1.0)(cosmiconfig@9.0.0(typescript@4.9.5))(typescript@4.9.5)
- lodash.isplainobject: 4.0.6
- lodash.merge: 4.6.2
- lodash.uniq: 4.5.0
+ is-plain-obj: 4.1.0
+ lodash.mergewith: 4.6.2
+ picocolors: 1.1.1
transitivePeerDependencies:
- '@types/node'
- typescript
- '@commitlint/message@20.0.0': {}
+ '@commitlint/message@20.4.0': {}
- '@commitlint/parse@20.2.0':
+ '@commitlint/parse@20.4.0':
dependencies:
- '@commitlint/types': 20.2.0
- conventional-changelog-angular: 7.0.0
- conventional-commits-parser: 5.0.0
+ '@commitlint/types': 20.4.0
+ conventional-changelog-angular: 8.1.0
+ conventional-commits-parser: 6.2.1
- '@commitlint/read@20.2.0':
+ '@commitlint/read@20.4.0':
dependencies:
- '@commitlint/top-level': 20.0.0
- '@commitlint/types': 20.2.0
+ '@commitlint/top-level': 20.4.0
+ '@commitlint/types': 20.4.0
git-raw-commits: 4.0.0
minimist: 1.2.8
tinyexec: 1.0.2
- '@commitlint/resolve-extends@20.2.0':
+ '@commitlint/resolve-extends@20.4.0':
dependencies:
- '@commitlint/config-validator': 20.2.0
- '@commitlint/types': 20.2.0
+ '@commitlint/config-validator': 20.4.0
+ '@commitlint/types': 20.4.0
global-directory: 4.0.1
import-meta-resolve: 4.2.0
lodash.mergewith: 4.6.2
resolve-from: 5.0.0
- '@commitlint/rules@20.2.0':
+ '@commitlint/rules@20.4.0':
dependencies:
- '@commitlint/ensure': 20.2.0
- '@commitlint/message': 20.0.0
+ '@commitlint/ensure': 20.4.0
+ '@commitlint/message': 20.4.0
'@commitlint/to-lines': 20.0.0
- '@commitlint/types': 20.2.0
+ '@commitlint/types': 20.4.0
'@commitlint/to-lines@20.0.0': {}
- '@commitlint/top-level@20.0.0':
+ '@commitlint/top-level@20.4.0':
dependencies:
- find-up: 7.0.0
+ escalade: 3.2.0
'@commitlint/types@19.8.0':
dependencies:
'@types/conventional-commits-parser': 5.0.1
chalk: 5.5.0
- '@commitlint/types@20.2.0':
+ '@commitlint/types@20.4.0':
dependencies:
- '@types/conventional-commits-parser': 5.0.2
- chalk: 5.6.2
+ conventional-commits-parser: 6.2.1
+ picocolors: 1.1.1
'@csstools/cascade-layer-name-parser@1.0.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2)':
dependencies:
@@ -12426,10 +12373,6 @@ snapshots:
dependencies:
'@types/node': 25.1.0
- '@types/conventional-commits-parser@5.0.2':
- dependencies:
- '@types/node': 25.1.0
-
'@types/eslint-scope@3.7.7':
dependencies:
'@types/eslint': 9.6.1
@@ -13080,11 +13023,6 @@ snapshots:
'@xtuc/long@4.2.2': {}
- JSONStream@1.3.5:
- dependencies:
- jsonparse: 1.3.1
- through: 2.3.8
-
abbrev@1.1.1: {}
abort-controller@3.0.0:
@@ -13828,8 +13766,6 @@ snapshots:
chalk@5.5.0: {}
- chalk@5.6.2: {}
-
char-regex@1.0.2: {}
chardet@0.7.0: {}
@@ -14094,7 +14030,7 @@ snapshots:
constants-browserify@1.0.0: {}
- conventional-changelog-angular@7.0.0:
+ conventional-changelog-angular@8.1.0:
dependencies:
compare-func: 2.0.0
@@ -14102,12 +14038,9 @@ snapshots:
dependencies:
compare-func: 2.0.0
- conventional-commits-parser@5.0.0:
+ conventional-commits-parser@6.2.1:
dependencies:
- JSONStream: 1.3.5
- is-text-path: 2.0.0
- meow: 12.1.1
- split2: 4.2.0
+ meow: 13.2.0
convert-source-map@2.0.0: {}
@@ -15353,12 +15286,6 @@ snapshots:
locate-path: 6.0.0
path-exists: 4.0.0
- find-up@7.0.0:
- dependencies:
- locate-path: 7.2.0
- path-exists: 5.0.0
- unicorn-magic: 0.1.0
-
firebase-admin@10.3.0(@firebase/app-types@0.9.2):
dependencies:
'@fastify/busboy': 1.2.1
@@ -16253,6 +16180,8 @@ snapshots:
is-plain-obj@1.1.0: {}
+ is-plain-obj@4.1.0: {}
+
is-plain-object@2.0.4:
dependencies:
isobject: 3.0.1
@@ -16289,10 +16218,6 @@ snapshots:
dependencies:
has-symbols: 1.1.0
- is-text-path@2.0.0:
- dependencies:
- text-extensions: 2.4.0
-
is-typed-array@1.1.12:
dependencies:
which-typed-array: 1.1.11
@@ -16824,8 +16749,6 @@ snapshots:
optionalDependencies:
graceful-fs: 4.2.11
- jsonparse@1.3.1: {}
-
jsonwebtoken@8.5.1:
dependencies:
jws: 3.2.2
@@ -16878,6 +16801,8 @@ snapshots:
safe-buffer: 5.2.1
optional: true
+ kasi@2.0.1: {}
+
keyv@4.5.3:
dependencies:
json-buffer: 3.0.1
@@ -16994,10 +16919,6 @@ snapshots:
dependencies:
p-locate: 5.0.0
- locate-path@7.2.0:
- dependencies:
- p-locate: 6.0.0
-
lodash._reinterpolate@3.0.0: {}
lodash.camelcase@4.3.0: {}
@@ -17019,7 +16940,8 @@ snapshots:
lodash.isnumber@3.0.3:
optional: true
- lodash.isplainobject@4.0.6: {}
+ lodash.isplainobject@4.0.6:
+ optional: true
lodash.isstring@4.0.1:
optional: true
@@ -17035,10 +16957,6 @@ snapshots:
lodash.once@4.1.1:
optional: true
- lodash.snakecase@4.1.1: {}
-
- lodash.startcase@4.4.0: {}
-
lodash.template@4.5.0:
dependencies:
lodash._reinterpolate: 3.0.0
@@ -17054,8 +16972,6 @@ snapshots:
lodash.uniq@4.5.0: {}
- lodash.upperfirst@4.3.1: {}
-
lodash@4.17.21: {}
log-update@6.1.0:
@@ -17207,6 +17123,8 @@ snapshots:
meow@12.1.1: {}
+ meow@13.2.0: {}
+
merge-source-map@1.1.0:
dependencies:
source-map: 0.6.1
@@ -17761,10 +17679,6 @@ snapshots:
dependencies:
yocto-queue: 0.1.0
- p-limit@4.0.0:
- dependencies:
- yocto-queue: 1.2.2
-
p-locate@3.0.0:
dependencies:
p-limit: 2.3.0
@@ -17777,10 +17691,6 @@ snapshots:
dependencies:
p-limit: 3.1.0
- p-locate@6.0.0:
- dependencies:
- p-limit: 4.0.0
-
p-map@4.0.0:
dependencies:
aggregate-error: 3.1.0
@@ -17861,8 +17771,6 @@ snapshots:
path-exists@4.0.0: {}
- path-exists@5.0.0: {}
-
path-is-absolute@1.0.1: {}
path-key@3.1.1: {}
@@ -17898,8 +17806,6 @@ snapshots:
picocolors@1.0.0: {}
- picocolors@1.0.1: {}
-
picocolors@1.1.1: {}
picomatch@2.3.1: {}
@@ -18555,7 +18461,7 @@ snapshots:
postcss@8.4.39:
dependencies:
nanoid: 3.3.8
- picocolors: 1.0.1
+ picocolors: 1.1.1
source-map-js: 1.2.0
postcss@8.5.6:
@@ -19687,8 +19593,6 @@ snapshots:
text-decoding@1.0.0:
optional: true
- text-extensions@2.4.0: {}
-
text-table@0.2.0: {}
thingies@1.21.0(tslib@2.6.2):
@@ -20404,7 +20308,7 @@ snapshots:
gzip-size: 6.0.0
html-escaper: 2.0.2
opener: 1.5.2
- picocolors: 1.0.0
+ picocolors: 1.1.1
sirv: 2.0.3
ws: 7.5.10
transitivePeerDependencies:
@@ -20705,5 +20609,3 @@ snapshots:
yargs-parser: 21.1.1
yocto-queue@0.1.0: {}
-
- yocto-queue@1.2.2: {}
From bdc87dfdcf759d617088efaa43e8f39048d687e5 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Sun, 1 Feb 2026 17:41:20 +0200
Subject: [PATCH 111/215] Webhook poll when SMS is received
---
web/layouts/default.vue | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/web/layouts/default.vue b/web/layouts/default.vue
index 1c2049e5..69d2407e 100644
--- a/web/layouts/default.vue
+++ b/web/layouts/default.vue
@@ -50,6 +50,9 @@ export default class DefaultLayout extends Vue {
channel.bind('phone.updated', () => {
this.canPoll = true
})
+ channel.bind('message.phone.received', () => {
+ this.canPoll = true
+ })
this.startPoller()
}, 10_000) // delay so that the auth user is present
@@ -73,8 +76,9 @@ export default class DefaultLayout extends Vue {
if (this.$store.getters.getAuthUser && this.$store.getters.getOwner) {
setAuthHeader((await this.$fire.auth.currentUser?.getIdToken()) ?? '')
promises.push(
- promises.push(this.$store.dispatch('loadPhones', true)),
+ this.$store.dispatch('loadPhones', true),
this.$store.dispatch('loadThreads'),
+ this.$store.dispatch('loadMessages'),
this.$store.dispatch('getHeartbeat'),
)
}
From a0ddd5db10eeb361e0eca61c7cb04bb3d87e456a Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Sun, 1 Feb 2026 17:49:26 +0200
Subject: [PATCH 112/215] Bind phone received events
---
api/pkg/listeners/websocket_listener.go | 26 ++++++++++++++++++++++---
1 file changed, 23 insertions(+), 3 deletions(-)
diff --git a/api/pkg/listeners/websocket_listener.go b/api/pkg/listeners/websocket_listener.go
index 02e9a36a..2c0e2c17 100644
--- a/api/pkg/listeners/websocket_listener.go
+++ b/api/pkg/listeners/websocket_listener.go
@@ -32,9 +32,10 @@ func NewWebsocketListener(
}
return l, map[string]events.EventListener{
- events.EventTypePhoneUpdated: l.onPhoneUpdated,
- events.EventTypeMessagePhoneSent: l.onMessagePhoneSent,
- events.EventTypeMessageSendFailed: l.onMessagePhoneFailed,
+ events.EventTypePhoneUpdated: l.onPhoneUpdated,
+ events.EventTypeMessagePhoneSent: l.onMessagePhoneSent,
+ events.EventTypeMessageSendFailed: l.onMessagePhoneFailed,
+ events.EventTypeMessagePhoneReceived: l.onMessagePhoneReceived,
}
}
@@ -57,6 +58,25 @@ func (listener *WebsocketListener) onMessagePhoneSent(ctx context.Context, event
return nil
}
+// onMessagePhoneReceived handles the events.EventTypeMessagePhoneReceived event
+func (listener *WebsocketListener) onMessagePhoneReceived(ctx context.Context, event cloudevents.Event) error {
+ ctx, span, _ := listener.tracer.StartWithLogger(ctx, listener.logger)
+ defer span.End()
+
+ var payload events.MessagePhoneReceivedPayload
+ if err := event.DataAs(&payload); err != nil {
+ msg := fmt.Sprintf("cannot decode [%s] into [%T]", event.Data(), payload)
+ return listener.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
+ }
+
+ if err := listener.client.Trigger(payload.UserID.String(), event.Type(), event.ID()); err != nil {
+ msg := fmt.Sprintf("cannot trigger websocket [%s] event with ID [%s] for user with ID [%s]", event.Type(), event.ID(), payload.UserID)
+ return listener.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
+ }
+
+ return nil
+}
+
// onMessagePhoneFailed handles the events.EventTypeMessageSendFailed event
func (listener *WebsocketListener) onMessagePhoneFailed(ctx context.Context, event cloudevents.Event) error {
ctx, span, _ := listener.tracer.StartWithLogger(ctx, listener.logger)
From 355575fc9848f9f8fefb3339ef47379f8b26963b Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 1 Feb 2026 15:51:34 +0000
Subject: [PATCH 113/215] chore(deps-dev): bump @babel/eslint-parser from
7.28.5 to 7.28.6 in /web
Bumps [@babel/eslint-parser](https://github.com/babel/babel/tree/HEAD/eslint/babel-eslint-parser) from 7.28.5 to 7.28.6.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.28.6/eslint/babel-eslint-parser)
---
updated-dependencies:
- dependency-name: "@babel/eslint-parser"
dependency-version: 7.28.6
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
web/package.json | 2 +-
web/pnpm-lock.yaml | 10 +++++-----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/web/package.json b/web/package.json
index 5deaf3c2..f69b1811 100644
--- a/web/package.json
+++ b/web/package.json
@@ -54,7 +54,7 @@
"webpack": "^5.104.1"
},
"devDependencies": {
- "@babel/eslint-parser": "^7.28.5",
+ "@babel/eslint-parser": "^7.28.6",
"@commitlint/cli": "^20.4.0",
"@commitlint/config-conventional": "^19.8.0",
"@nuxt/types": "^2.18.1",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index 3f1bbc0c..62bbf2e1 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -100,8 +100,8 @@ importers:
version: 5.104.1
devDependencies:
'@babel/eslint-parser':
- specifier: ^7.28.5
- version: 7.28.5(@babel/core@7.28.4)(eslint@8.57.1)
+ specifier: ^7.28.6
+ version: 7.28.6(@babel/core@7.28.4)(eslint@8.57.1)
'@commitlint/cli':
specifier: ^20.4.0
version: 20.4.0(@types/node@25.1.0)(typescript@4.9.5)
@@ -244,8 +244,8 @@ packages:
resolution: {integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==}
engines: {node: '>=6.9.0'}
- '@babel/eslint-parser@7.28.5':
- resolution: {integrity: sha512-fcdRcWahONYo+JRnJg1/AekOacGvKx12Gu0qXJXFi2WBqQA1i7+O5PaxRB7kxE/Op94dExnCiiar6T09pvdHpA==}
+ '@babel/eslint-parser@7.28.6':
+ resolution: {integrity: sha512-QGmsKi2PBO/MHSQk+AAgA9R6OHQr+VqnniFE0eMWZcVcfBZoA2dKn2hUsl3Csg/Plt9opRUWdY7//VXsrIlEiA==}
engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0}
peerDependencies:
'@babel/core': ^7.11.0
@@ -9280,7 +9280,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@babel/eslint-parser@7.28.5(@babel/core@7.28.4)(eslint@8.57.1)':
+ '@babel/eslint-parser@7.28.6(@babel/core@7.28.4)(eslint@8.57.1)':
dependencies:
'@babel/core': 7.28.4
'@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1
From 4a159b4476236a53a039483b393f3a43cc992e89 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 1 Feb 2026 15:51:49 +0000
Subject: [PATCH 114/215] chore(deps-dev): bump @commitlint/config-conventional
in /web
Bumps [@commitlint/config-conventional](https://github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional) from 19.8.0 to 20.4.0.
- [Release notes](https://github.com/conventional-changelog/commitlint/releases)
- [Changelog](https://github.com/conventional-changelog/commitlint/blob/master/@commitlint/config-conventional/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/commitlint/commits/v20.4.0/@commitlint/config-conventional)
---
updated-dependencies:
- dependency-name: "@commitlint/config-conventional"
dependency-version: 20.4.0
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot]
---
web/package.json | 2 +-
web/pnpm-lock.yaml | 38 +++++++++++---------------------------
2 files changed, 12 insertions(+), 28 deletions(-)
diff --git a/web/package.json b/web/package.json
index 5deaf3c2..2ca6d70c 100644
--- a/web/package.json
+++ b/web/package.json
@@ -56,7 +56,7 @@
"devDependencies": {
"@babel/eslint-parser": "^7.28.5",
"@commitlint/cli": "^20.4.0",
- "@commitlint/config-conventional": "^19.8.0",
+ "@commitlint/config-conventional": "^20.4.0",
"@nuxt/types": "^2.18.1",
"@nuxt/typescript-build": "^3.0.2",
"@nuxtjs/eslint-config-typescript": "^12.1.0",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index 3f1bbc0c..2205189b 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -106,8 +106,8 @@ importers:
specifier: ^20.4.0
version: 20.4.0(@types/node@25.1.0)(typescript@4.9.5)
'@commitlint/config-conventional':
- specifier: ^19.8.0
- version: 19.8.0
+ specifier: ^20.4.0
+ version: 20.4.0
'@nuxt/types':
specifier: ^2.18.1
version: 2.18.1
@@ -1017,8 +1017,8 @@ packages:
engines: {node: '>=v18'}
hasBin: true
- '@commitlint/config-conventional@19.8.0':
- resolution: {integrity: sha512-9I2kKJwcAPwMoAj38hwqFXG0CzS2Kj+SAByPUQ0SlHTfb7VUhYVmo7G2w2tBrqmOf7PFd6MpZ/a1GQJo8na8kw==}
+ '@commitlint/config-conventional@20.4.0':
+ resolution: {integrity: sha512-nolhFe2YKIix0D4+tPXAWnnIc9WB5fOCgmm4h2EcRyEShC64oH/DpM9n++85NRdItvIhKb+Szsaeuug7KcEeIA==}
engines: {node: '>=v18'}
'@commitlint/config-validator@20.4.0':
@@ -1077,10 +1077,6 @@ packages:
resolution: {integrity: sha512-NDzq8Q6jmFaIIBC/GG6n1OQEaHdmaAAYdrZRlMgW6glYWGZ+IeuXmiymDvQNXPc82mVxq2KiE3RVpcs+1OeDeA==}
engines: {node: '>=v18'}
- '@commitlint/types@19.8.0':
- resolution: {integrity: sha512-LRjP623jPyf3Poyfb0ohMj8I3ORyBDOwXAgxxVPbSD0unJuW2mJWeiRfaQinjtccMqC5Wy1HOMfa4btKjbNxbg==}
- engines: {node: '>=v18'}
-
'@commitlint/types@20.4.0':
resolution: {integrity: sha512-aO5l99BQJ0X34ft8b0h7QFkQlqxC6e7ZPVmBKz13xM9O8obDaM1Cld4sQlJDXXU/VFuUzQ30mVtHjVz74TuStw==}
engines: {node: '>=v18'}
@@ -2279,9 +2275,6 @@ packages:
'@types/connect@3.4.38':
resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
- '@types/conventional-commits-parser@5.0.1':
- resolution: {integrity: sha512-7uz5EHdzz2TqoMfV7ee61Egf5y6NkcO4FB/1iCCQnbeiI1F3xzv3vK5dBCXUCLQgGYS+mUeigK1iKQzvED+QnQ==}
-
'@types/eslint-scope@3.7.7':
resolution: {integrity: sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==}
@@ -3714,9 +3707,9 @@ packages:
resolution: {integrity: sha512-GGf2Nipn1RUCAktxuVauVr1e3r8QrLP/B0lEUsFktmGqc3ddbQkhoJZHJctVU829U1c6mTSWftrVOCHaL85Q3w==}
engines: {node: '>=18'}
- conventional-changelog-conventionalcommits@7.0.2:
- resolution: {integrity: sha512-NKXYmMR/Hr1DevQegFB4MwfM5Vv0m4UIxKZTTYuD98lpTknaZlSRrDOG4X7wIXpGkfsYxZTghUN+Qq+T0YQI7w==}
- engines: {node: '>=16'}
+ conventional-changelog-conventionalcommits@9.1.0:
+ resolution: {integrity: sha512-MnbEysR8wWa8dAEvbj5xcBgJKQlX/m0lhS8DsyAAWDHdfs2faDJxTgzRYlRYpXSe7UiKrIIlB4TrBKU9q9DgkA==}
+ engines: {node: '>=18'}
conventional-commits-parser@6.2.1:
resolution: {integrity: sha512-20pyHgnO40rvfI0NGF/xiEoFMkXDtkF8FwHvk5BokoFoCuTQRI8vrNCNFWUOfuolKJMm1tPCHc8GgYEtr1XRNA==}
@@ -10343,10 +10336,10 @@ snapshots:
- '@types/node'
- typescript
- '@commitlint/config-conventional@19.8.0':
+ '@commitlint/config-conventional@20.4.0':
dependencies:
- '@commitlint/types': 19.8.0
- conventional-changelog-conventionalcommits: 7.0.2
+ '@commitlint/types': 20.4.0
+ conventional-changelog-conventionalcommits: 9.1.0
'@commitlint/config-validator@20.4.0':
dependencies:
@@ -10430,11 +10423,6 @@ snapshots:
dependencies:
escalade: 3.2.0
- '@commitlint/types@19.8.0':
- dependencies:
- '@types/conventional-commits-parser': 5.0.1
- chalk: 5.5.0
-
'@commitlint/types@20.4.0':
dependencies:
conventional-commits-parser: 6.2.1
@@ -12369,10 +12357,6 @@ snapshots:
dependencies:
'@types/node': 16.18.55
- '@types/conventional-commits-parser@5.0.1':
- dependencies:
- '@types/node': 25.1.0
-
'@types/eslint-scope@3.7.7':
dependencies:
'@types/eslint': 9.6.1
@@ -14034,7 +14018,7 @@ snapshots:
dependencies:
compare-func: 2.0.0
- conventional-changelog-conventionalcommits@7.0.2:
+ conventional-changelog-conventionalcommits@9.1.0:
dependencies:
compare-func: 2.0.0
From 14100a6b4a1bba801cfb7627c2e88cbd1876ba70 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 1 Feb 2026 15:51:53 +0000
Subject: [PATCH 115/215] chore(deps-dev): bump postcss-html from 1.7.0 to
1.8.1 in /web
Bumps [postcss-html](https://github.com/ota-meshi/postcss-html) from 1.7.0 to 1.8.1.
- [Release notes](https://github.com/ota-meshi/postcss-html/releases)
- [Commits](https://github.com/ota-meshi/postcss-html/compare/v1.7.0...v1.8.1)
---
updated-dependencies:
- dependency-name: postcss-html
dependency-version: 1.8.1
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
web/package.json | 2 +-
web/pnpm-lock.yaml | 998 ++++++++++++++++++++++-----------------------
2 files changed, 487 insertions(+), 513 deletions(-)
diff --git a/web/package.json b/web/package.json
index 5deaf3c2..f78c4b36 100644
--- a/web/package.json
+++ b/web/package.json
@@ -76,7 +76,7 @@
"jest": "^30.2.0",
"lint-staged": "^16.1.4",
"node-fetch-native": "^1.6.7",
- "postcss-html": "^1.7.0",
+ "postcss-html": "^1.8.1",
"prettier": "3.8.1",
"stylelint": "^15.11.0",
"stylelint-config-prettier": "^9.0.5",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index 3f1bbc0c..d1de3fe8 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -122,7 +122,7 @@ importers:
version: 4.1.0(eslint@8.57.1)(rollup@3.29.5)(vite@4.5.3(@types/node@25.1.0)(sass@1.32.13)(terser@5.44.1))(webpack@5.104.1)
'@nuxtjs/stylelint-module':
specifier: ^5.2.0
- version: 5.2.0(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@25.1.0)(sass@1.32.13)(terser@5.44.1))(webpack@5.104.1)
+ version: 5.2.0(postcss@8.5.6)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@25.1.0)(sass@1.32.13)(terser@5.44.1))(webpack@5.104.1)
'@nuxtjs/vuetify':
specifier: ^1.12.3
version: 1.12.3(vue@2.7.16)(webpack@5.104.1)
@@ -166,8 +166,8 @@ importers:
specifier: ^1.6.7
version: 1.6.7
postcss-html:
- specifier: ^1.7.0
- version: 1.7.0
+ specifier: ^1.8.1
+ version: 1.8.1
prettier:
specifier: 3.8.1
version: 3.8.1
@@ -179,7 +179,7 @@ importers:
version: 9.0.5(stylelint@15.11.0(typescript@4.9.5))
stylelint-config-recommended-vue:
specifier: ^1.5.0
- version: 1.5.0(postcss-html@1.7.0)(stylelint@15.11.0(typescript@4.9.5))
+ version: 1.5.0(postcss-html@1.8.1)(stylelint@15.11.0(typescript@4.9.5))
stylelint-config-standard:
specifier: ^34.0.0
version: 34.0.0(stylelint@15.11.0(typescript@4.9.5))
@@ -4167,8 +4167,8 @@ packages:
domutils@2.8.0:
resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==}
- domutils@3.1.0:
- resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==}
+ domutils@3.2.2:
+ resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==}
dot-case@3.0.4:
resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==}
@@ -5763,8 +5763,8 @@ packages:
js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
- js-tokens@9.0.0:
- resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==}
+ js-tokens@9.0.1:
+ resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==}
js-yaml@3.14.1:
resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
@@ -6969,8 +6969,8 @@ packages:
peerDependencies:
postcss: ^8.4
- postcss-html@1.7.0:
- resolution: {integrity: sha512-MfcMpSUIaR/nNgeVS8AyvyDugXlADjN9AcV7e5rDfrF1wduIAGSkL4q2+wgrZgA3sHVAHLDO9FuauHhZYW2nBw==}
+ postcss-html@1.8.1:
+ resolution: {integrity: sha512-OLF6P7qctfAWayOhLpcVnTGqVeJzu2W3WpIYelfz2+JV5oGxfkcEvweN9U4XpeqE0P98dcD9ssusGwlF0TK0uQ==}
engines: {node: ^12 || >=14}
postcss-image-set-function@6.0.3:
@@ -7357,14 +7357,6 @@ packages:
resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
engines: {node: ^10 || ^12 || >=14}
- postcss@8.4.35:
- resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==}
- engines: {node: ^10 || ^12 || >=14}
-
- postcss@8.4.39:
- resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==}
- engines: {node: ^10 || ^12 || >=14}
-
postcss@8.5.6:
resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==}
engines: {node: ^10 || ^12 || >=14}
@@ -7960,10 +7952,6 @@ packages:
resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
engines: {node: '>=0.10.0'}
- source-map-js@1.2.0:
- resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
- engines: {node: '>=0.10.0'}
-
source-map-js@1.2.1:
resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==}
engines: {node: '>=0.10.0'}
@@ -10506,193 +10494,193 @@ snapshots:
'@csstools/css-parser-algorithms': 2.3.2(@csstools/css-tokenizer@2.2.1)
'@csstools/css-tokenizer': 2.2.1
- '@csstools/postcss-cascade-layers@4.0.6(postcss@8.4.39)':
+ '@csstools/postcss-cascade-layers@4.0.6(postcss@8.5.6)':
dependencies:
'@csstools/selector-specificity': 3.1.1(postcss-selector-parser@6.1.2)
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-selector-parser: 6.1.2
- '@csstools/postcss-color-function@3.0.17(postcss@8.4.39)':
+ '@csstools/postcss-color-function@3.0.17(postcss@8.5.6)':
dependencies:
'@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2)
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2)
'@csstools/css-tokenizer': 2.3.2
- '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39)
- '@csstools/utilities': 1.0.0(postcss@8.4.39)
- postcss: 8.4.39
+ '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.5.6)
+ '@csstools/utilities': 1.0.0(postcss@8.5.6)
+ postcss: 8.5.6
- '@csstools/postcss-color-mix-function@2.0.17(postcss@8.4.39)':
+ '@csstools/postcss-color-mix-function@2.0.17(postcss@8.5.6)':
dependencies:
'@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2)
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2)
'@csstools/css-tokenizer': 2.3.2
- '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39)
- '@csstools/utilities': 1.0.0(postcss@8.4.39)
- postcss: 8.4.39
+ '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.5.6)
+ '@csstools/utilities': 1.0.0(postcss@8.5.6)
+ postcss: 8.5.6
- '@csstools/postcss-exponential-functions@1.0.8(postcss@8.4.39)':
+ '@csstools/postcss-exponential-functions@1.0.8(postcss@8.5.6)':
dependencies:
'@csstools/css-calc': 1.2.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2)
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2)
'@csstools/css-tokenizer': 2.3.2
- postcss: 8.4.39
+ postcss: 8.5.6
- '@csstools/postcss-font-format-keywords@3.0.2(postcss@8.4.39)':
+ '@csstools/postcss-font-format-keywords@3.0.2(postcss@8.5.6)':
dependencies:
- '@csstools/utilities': 1.0.0(postcss@8.4.39)
- postcss: 8.4.39
+ '@csstools/utilities': 1.0.0(postcss@8.5.6)
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- '@csstools/postcss-gamut-mapping@1.0.10(postcss@8.4.39)':
+ '@csstools/postcss-gamut-mapping@1.0.10(postcss@8.5.6)':
dependencies:
'@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2)
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2)
'@csstools/css-tokenizer': 2.3.2
- postcss: 8.4.39
+ postcss: 8.5.6
- '@csstools/postcss-gradients-interpolation-method@4.0.18(postcss@8.4.39)':
+ '@csstools/postcss-gradients-interpolation-method@4.0.18(postcss@8.5.6)':
dependencies:
'@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2)
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2)
'@csstools/css-tokenizer': 2.3.2
- '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39)
- '@csstools/utilities': 1.0.0(postcss@8.4.39)
- postcss: 8.4.39
+ '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.5.6)
+ '@csstools/utilities': 1.0.0(postcss@8.5.6)
+ postcss: 8.5.6
- '@csstools/postcss-hwb-function@3.0.16(postcss@8.4.39)':
+ '@csstools/postcss-hwb-function@3.0.16(postcss@8.5.6)':
dependencies:
'@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2)
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2)
'@csstools/css-tokenizer': 2.3.2
- '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39)
- '@csstools/utilities': 1.0.0(postcss@8.4.39)
- postcss: 8.4.39
+ '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.5.6)
+ '@csstools/utilities': 1.0.0(postcss@8.5.6)
+ postcss: 8.5.6
- '@csstools/postcss-ic-unit@3.0.6(postcss@8.4.39)':
+ '@csstools/postcss-ic-unit@3.0.6(postcss@8.5.6)':
dependencies:
- '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39)
- '@csstools/utilities': 1.0.0(postcss@8.4.39)
- postcss: 8.4.39
+ '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.5.6)
+ '@csstools/utilities': 1.0.0(postcss@8.5.6)
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- '@csstools/postcss-initial@1.0.1(postcss@8.4.39)':
+ '@csstools/postcss-initial@1.0.1(postcss@8.5.6)':
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
- '@csstools/postcss-is-pseudo-class@4.0.8(postcss@8.4.39)':
+ '@csstools/postcss-is-pseudo-class@4.0.8(postcss@8.5.6)':
dependencies:
'@csstools/selector-specificity': 3.1.1(postcss-selector-parser@6.1.2)
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-selector-parser: 6.1.2
- '@csstools/postcss-light-dark-function@1.0.6(postcss@8.4.39)':
+ '@csstools/postcss-light-dark-function@1.0.6(postcss@8.5.6)':
dependencies:
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2)
'@csstools/css-tokenizer': 2.3.2
- '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39)
- '@csstools/utilities': 1.0.0(postcss@8.4.39)
- postcss: 8.4.39
+ '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.5.6)
+ '@csstools/utilities': 1.0.0(postcss@8.5.6)
+ postcss: 8.5.6
- '@csstools/postcss-logical-float-and-clear@2.0.1(postcss@8.4.39)':
+ '@csstools/postcss-logical-float-and-clear@2.0.1(postcss@8.5.6)':
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
- '@csstools/postcss-logical-overflow@1.0.1(postcss@8.4.39)':
+ '@csstools/postcss-logical-overflow@1.0.1(postcss@8.5.6)':
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
- '@csstools/postcss-logical-overscroll-behavior@1.0.1(postcss@8.4.39)':
+ '@csstools/postcss-logical-overscroll-behavior@1.0.1(postcss@8.5.6)':
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
- '@csstools/postcss-logical-resize@2.0.1(postcss@8.4.39)':
+ '@csstools/postcss-logical-resize@2.0.1(postcss@8.5.6)':
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- '@csstools/postcss-logical-viewport-units@2.0.10(postcss@8.4.39)':
+ '@csstools/postcss-logical-viewport-units@2.0.10(postcss@8.5.6)':
dependencies:
'@csstools/css-tokenizer': 2.3.2
- '@csstools/utilities': 1.0.0(postcss@8.4.39)
- postcss: 8.4.39
+ '@csstools/utilities': 1.0.0(postcss@8.5.6)
+ postcss: 8.5.6
- '@csstools/postcss-media-minmax@1.1.7(postcss@8.4.39)':
+ '@csstools/postcss-media-minmax@1.1.7(postcss@8.5.6)':
dependencies:
'@csstools/css-calc': 1.2.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2)
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2)
'@csstools/css-tokenizer': 2.3.2
'@csstools/media-query-list-parser': 2.1.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2)
- postcss: 8.4.39
+ postcss: 8.5.6
- '@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.10(postcss@8.4.39)':
+ '@csstools/postcss-media-queries-aspect-ratio-number-values@2.0.10(postcss@8.5.6)':
dependencies:
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2)
'@csstools/css-tokenizer': 2.3.2
'@csstools/media-query-list-parser': 2.1.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2)
- postcss: 8.4.39
+ postcss: 8.5.6
- '@csstools/postcss-nested-calc@3.0.2(postcss@8.4.39)':
+ '@csstools/postcss-nested-calc@3.0.2(postcss@8.5.6)':
dependencies:
- '@csstools/utilities': 1.0.0(postcss@8.4.39)
- postcss: 8.4.39
+ '@csstools/utilities': 1.0.0(postcss@8.5.6)
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- '@csstools/postcss-normalize-display-values@3.0.2(postcss@8.4.39)':
+ '@csstools/postcss-normalize-display-values@3.0.2(postcss@8.5.6)':
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- '@csstools/postcss-oklab-function@3.0.17(postcss@8.4.39)':
+ '@csstools/postcss-oklab-function@3.0.17(postcss@8.5.6)':
dependencies:
'@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2)
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2)
'@csstools/css-tokenizer': 2.3.2
- '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39)
- '@csstools/utilities': 1.0.0(postcss@8.4.39)
- postcss: 8.4.39
+ '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.5.6)
+ '@csstools/utilities': 1.0.0(postcss@8.5.6)
+ postcss: 8.5.6
- '@csstools/postcss-progressive-custom-properties@3.2.0(postcss@8.4.39)':
+ '@csstools/postcss-progressive-custom-properties@3.2.0(postcss@8.5.6)':
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- '@csstools/postcss-relative-color-syntax@2.0.17(postcss@8.4.39)':
+ '@csstools/postcss-relative-color-syntax@2.0.17(postcss@8.5.6)':
dependencies:
'@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2)
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2)
'@csstools/css-tokenizer': 2.3.2
- '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39)
- '@csstools/utilities': 1.0.0(postcss@8.4.39)
- postcss: 8.4.39
+ '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.5.6)
+ '@csstools/utilities': 1.0.0(postcss@8.5.6)
+ postcss: 8.5.6
- '@csstools/postcss-scope-pseudo-class@3.0.1(postcss@8.4.39)':
+ '@csstools/postcss-scope-pseudo-class@3.0.1(postcss@8.5.6)':
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-selector-parser: 6.1.2
- '@csstools/postcss-stepped-value-functions@3.0.9(postcss@8.4.39)':
+ '@csstools/postcss-stepped-value-functions@3.0.9(postcss@8.5.6)':
dependencies:
'@csstools/css-calc': 1.2.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2)
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2)
'@csstools/css-tokenizer': 2.3.2
- postcss: 8.4.39
+ postcss: 8.5.6
- '@csstools/postcss-text-decoration-shorthand@3.0.7(postcss@8.4.39)':
+ '@csstools/postcss-text-decoration-shorthand@3.0.7(postcss@8.5.6)':
dependencies:
'@csstools/color-helpers': 4.2.1
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- '@csstools/postcss-trigonometric-functions@3.0.9(postcss@8.4.39)':
+ '@csstools/postcss-trigonometric-functions@3.0.9(postcss@8.5.6)':
dependencies:
'@csstools/css-calc': 1.2.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2)
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2)
'@csstools/css-tokenizer': 2.3.2
- postcss: 8.4.39
+ postcss: 8.5.6
- '@csstools/postcss-unset-value@3.0.1(postcss@8.4.39)':
+ '@csstools/postcss-unset-value@3.0.1(postcss@8.5.6)':
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
'@csstools/selector-resolve-nested@1.1.0(postcss-selector-parser@6.1.2)':
dependencies:
@@ -10706,9 +10694,9 @@ snapshots:
dependencies:
postcss-selector-parser: 6.1.2
- '@csstools/utilities@1.0.0(postcss@8.4.39)':
+ '@csstools/utilities@1.0.0(postcss@8.5.6)':
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
'@discoveryjs/json-ext@0.5.7': {}
@@ -12038,7 +12026,7 @@ snapshots:
caniuse-lite: 1.0.30001639
consola: 3.2.3
css-loader: 5.2.7(webpack@4.47.0)
- cssnano: 7.0.3(postcss@8.4.39)
+ cssnano: 7.0.3(postcss@8.5.6)
eventsource-polyfill: 0.9.6
extract-css-chunks-webpack-plugin: 4.10.0(webpack@4.47.0)
file-loader: 6.2.0(webpack@4.47.0)
@@ -12052,12 +12040,12 @@ snapshots:
optimize-css-assets-webpack-plugin: 6.0.1(webpack@4.47.0)
pify: 5.0.0
pnp-webpack-plugin: 1.7.0(typescript@4.9.5)
- postcss: 8.4.39
- postcss-import: 15.1.0(postcss@8.4.39)
+ postcss: 8.5.6
+ postcss-import: 15.1.0(postcss@8.5.6)
postcss-import-resolver: 2.0.0
- postcss-loader: 4.3.0(postcss@8.4.39)(webpack@4.47.0)
- postcss-preset-env: 9.5.15(postcss@8.4.39)
- postcss-url: 10.1.3(postcss@8.4.39)
+ postcss-loader: 4.3.0(postcss@8.5.6)(webpack@4.47.0)
+ postcss-preset-env: 9.5.15(postcss@8.5.6)
+ postcss-url: 10.1.3(postcss@8.5.6)
semver: 7.7.3
std-env: 3.7.0
style-resources-loader: 1.5.0(webpack@4.47.0)
@@ -12216,14 +12204,14 @@ snapshots:
minimatch: 3.1.2
sitemap: 4.1.1
- '@nuxtjs/stylelint-module@5.2.0(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@25.1.0)(sass@1.32.13)(terser@5.44.1))(webpack@5.104.1)':
+ '@nuxtjs/stylelint-module@5.2.0(postcss@8.5.6)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@25.1.0)(sass@1.32.13)(terser@5.44.1))(webpack@5.104.1)':
dependencies:
'@nuxt/kit': 3.12.2(rollup@3.29.5)
chokidar: 3.6.0
pathe: 1.1.2
stylelint: 15.11.0(typescript@4.9.5)
stylelint-webpack-plugin: 5.0.1(stylelint@15.11.0(typescript@4.9.5))(webpack@5.104.1)
- vite-plugin-stylelint: 5.3.1(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@25.1.0)(sass@1.32.13)(terser@5.44.1))
+ vite-plugin-stylelint: 5.3.1(postcss@8.5.6)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@25.1.0)(sass@1.32.13)(terser@5.44.1))
transitivePeerDependencies:
- '@types/stylelint'
- magicast
@@ -12772,7 +12760,7 @@ snapshots:
'@vue/compiler-sfc@2.7.16':
dependencies:
'@babel/parser': 7.24.0
- postcss: 8.4.35
+ postcss: 8.5.6
source-map: 0.6.1
optionalDependencies:
prettier: 2.8.8
@@ -13266,14 +13254,14 @@ snapshots:
atob@2.1.2: {}
- autoprefixer@10.4.19(postcss@8.4.39):
+ autoprefixer@10.4.19(postcss@8.5.6):
dependencies:
browserslist: 4.28.1
caniuse-lite: 1.0.30001762
fraction.js: 4.3.7
normalize-range: 0.1.2
picocolors: 1.1.1
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
available-typed-arrays@1.0.5: {}
@@ -14157,37 +14145,37 @@ snapshots:
crypto-random-string@2.0.0:
optional: true
- css-blank-pseudo@6.0.2(postcss@8.4.39):
+ css-blank-pseudo@6.0.2(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-selector-parser: 6.1.2
- css-declaration-sorter@6.4.1(postcss@8.4.39):
+ css-declaration-sorter@6.4.1(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
- css-declaration-sorter@7.2.0(postcss@8.4.39):
+ css-declaration-sorter@7.2.0(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
css-functions-list@3.2.1: {}
- css-has-pseudo@6.0.5(postcss@8.4.39):
+ css-has-pseudo@6.0.5(postcss@8.5.6):
dependencies:
'@csstools/selector-specificity': 3.1.1(postcss-selector-parser@6.1.2)
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-selector-parser: 6.1.2
postcss-value-parser: 4.2.0
css-loader@5.2.7(webpack@4.47.0):
dependencies:
- icss-utils: 5.1.0(postcss@8.4.39)
+ icss-utils: 5.1.0(postcss@8.5.6)
loader-utils: 2.0.4
- postcss: 8.4.39
- postcss-modules-extract-imports: 3.0.0(postcss@8.4.39)
- postcss-modules-local-by-default: 4.0.3(postcss@8.4.39)
- postcss-modules-scope: 3.0.0(postcss@8.4.39)
- postcss-modules-values: 4.0.0(postcss@8.4.39)
+ postcss: 8.5.6
+ postcss-modules-extract-imports: 3.0.0(postcss@8.5.6)
+ postcss-modules-local-by-default: 4.0.3(postcss@8.5.6)
+ postcss-modules-scope: 3.0.0(postcss@8.5.6)
+ postcss-modules-values: 4.0.0(postcss@8.5.6)
postcss-value-parser: 4.2.0
schema-utils: 3.3.0
semver: 7.7.3
@@ -14195,21 +14183,21 @@ snapshots:
css-loader@5.2.7(webpack@5.104.1):
dependencies:
- icss-utils: 5.1.0(postcss@8.4.39)
+ icss-utils: 5.1.0(postcss@8.5.6)
loader-utils: 2.0.4
- postcss: 8.4.39
- postcss-modules-extract-imports: 3.0.0(postcss@8.4.39)
- postcss-modules-local-by-default: 4.0.3(postcss@8.4.39)
- postcss-modules-scope: 3.0.0(postcss@8.4.39)
- postcss-modules-values: 4.0.0(postcss@8.4.39)
+ postcss: 8.5.6
+ postcss-modules-extract-imports: 3.0.0(postcss@8.5.6)
+ postcss-modules-local-by-default: 4.0.3(postcss@8.5.6)
+ postcss-modules-scope: 3.0.0(postcss@8.5.6)
+ postcss-modules-values: 4.0.0(postcss@8.5.6)
postcss-value-parser: 4.2.0
schema-utils: 3.3.0
semver: 7.7.3
webpack: 5.104.1
- css-prefers-color-scheme@9.0.1(postcss@8.4.39):
+ css-prefers-color-scheme@9.0.1(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
css-select@4.3.0:
dependencies:
@@ -14224,7 +14212,7 @@ snapshots:
boolbase: 1.0.0
css-what: 6.1.0
domhandler: 5.0.3
- domutils: 3.1.0
+ domutils: 3.2.2
nth-check: 2.1.1
css-tree@1.1.3:
@@ -14235,7 +14223,7 @@ snapshots:
css-tree@2.2.1:
dependencies:
mdn-data: 2.0.28
- source-map-js: 1.0.2
+ source-map-js: 1.2.1
css-tree@2.3.1:
dependencies:
@@ -14255,93 +14243,93 @@ snapshots:
cssesc@3.0.0: {}
- cssnano-preset-default@5.2.14(postcss@8.4.39):
- dependencies:
- css-declaration-sorter: 6.4.1(postcss@8.4.39)
- cssnano-utils: 3.1.0(postcss@8.4.39)
- postcss: 8.4.39
- postcss-calc: 8.2.4(postcss@8.4.39)
- postcss-colormin: 5.3.1(postcss@8.4.39)
- postcss-convert-values: 5.1.3(postcss@8.4.39)
- postcss-discard-comments: 5.1.2(postcss@8.4.39)
- postcss-discard-duplicates: 5.1.0(postcss@8.4.39)
- postcss-discard-empty: 5.1.1(postcss@8.4.39)
- postcss-discard-overridden: 5.1.0(postcss@8.4.39)
- postcss-merge-longhand: 5.1.7(postcss@8.4.39)
- postcss-merge-rules: 5.1.4(postcss@8.4.39)
- postcss-minify-font-values: 5.1.0(postcss@8.4.39)
- postcss-minify-gradients: 5.1.1(postcss@8.4.39)
- postcss-minify-params: 5.1.4(postcss@8.4.39)
- postcss-minify-selectors: 5.2.1(postcss@8.4.39)
- postcss-normalize-charset: 5.1.0(postcss@8.4.39)
- postcss-normalize-display-values: 5.1.0(postcss@8.4.39)
- postcss-normalize-positions: 5.1.1(postcss@8.4.39)
- postcss-normalize-repeat-style: 5.1.1(postcss@8.4.39)
- postcss-normalize-string: 5.1.0(postcss@8.4.39)
- postcss-normalize-timing-functions: 5.1.0(postcss@8.4.39)
- postcss-normalize-unicode: 5.1.1(postcss@8.4.39)
- postcss-normalize-url: 5.1.0(postcss@8.4.39)
- postcss-normalize-whitespace: 5.1.1(postcss@8.4.39)
- postcss-ordered-values: 5.1.3(postcss@8.4.39)
- postcss-reduce-initial: 5.1.2(postcss@8.4.39)
- postcss-reduce-transforms: 5.1.0(postcss@8.4.39)
- postcss-svgo: 5.1.0(postcss@8.4.39)
- postcss-unique-selectors: 5.1.1(postcss@8.4.39)
-
- cssnano-preset-default@7.0.3(postcss@8.4.39):
+ cssnano-preset-default@5.2.14(postcss@8.5.6):
+ dependencies:
+ css-declaration-sorter: 6.4.1(postcss@8.5.6)
+ cssnano-utils: 3.1.0(postcss@8.5.6)
+ postcss: 8.5.6
+ postcss-calc: 8.2.4(postcss@8.5.6)
+ postcss-colormin: 5.3.1(postcss@8.5.6)
+ postcss-convert-values: 5.1.3(postcss@8.5.6)
+ postcss-discard-comments: 5.1.2(postcss@8.5.6)
+ postcss-discard-duplicates: 5.1.0(postcss@8.5.6)
+ postcss-discard-empty: 5.1.1(postcss@8.5.6)
+ postcss-discard-overridden: 5.1.0(postcss@8.5.6)
+ postcss-merge-longhand: 5.1.7(postcss@8.5.6)
+ postcss-merge-rules: 5.1.4(postcss@8.5.6)
+ postcss-minify-font-values: 5.1.0(postcss@8.5.6)
+ postcss-minify-gradients: 5.1.1(postcss@8.5.6)
+ postcss-minify-params: 5.1.4(postcss@8.5.6)
+ postcss-minify-selectors: 5.2.1(postcss@8.5.6)
+ postcss-normalize-charset: 5.1.0(postcss@8.5.6)
+ postcss-normalize-display-values: 5.1.0(postcss@8.5.6)
+ postcss-normalize-positions: 5.1.1(postcss@8.5.6)
+ postcss-normalize-repeat-style: 5.1.1(postcss@8.5.6)
+ postcss-normalize-string: 5.1.0(postcss@8.5.6)
+ postcss-normalize-timing-functions: 5.1.0(postcss@8.5.6)
+ postcss-normalize-unicode: 5.1.1(postcss@8.5.6)
+ postcss-normalize-url: 5.1.0(postcss@8.5.6)
+ postcss-normalize-whitespace: 5.1.1(postcss@8.5.6)
+ postcss-ordered-values: 5.1.3(postcss@8.5.6)
+ postcss-reduce-initial: 5.1.2(postcss@8.5.6)
+ postcss-reduce-transforms: 5.1.0(postcss@8.5.6)
+ postcss-svgo: 5.1.0(postcss@8.5.6)
+ postcss-unique-selectors: 5.1.1(postcss@8.5.6)
+
+ cssnano-preset-default@7.0.3(postcss@8.5.6):
dependencies:
browserslist: 4.28.1
- css-declaration-sorter: 7.2.0(postcss@8.4.39)
- cssnano-utils: 5.0.0(postcss@8.4.39)
- postcss: 8.4.39
- postcss-calc: 10.0.0(postcss@8.4.39)
- postcss-colormin: 7.0.1(postcss@8.4.39)
- postcss-convert-values: 7.0.1(postcss@8.4.39)
- postcss-discard-comments: 7.0.1(postcss@8.4.39)
- postcss-discard-duplicates: 7.0.0(postcss@8.4.39)
- postcss-discard-empty: 7.0.0(postcss@8.4.39)
- postcss-discard-overridden: 7.0.0(postcss@8.4.39)
- postcss-merge-longhand: 7.0.2(postcss@8.4.39)
- postcss-merge-rules: 7.0.2(postcss@8.4.39)
- postcss-minify-font-values: 7.0.0(postcss@8.4.39)
- postcss-minify-gradients: 7.0.0(postcss@8.4.39)
- postcss-minify-params: 7.0.1(postcss@8.4.39)
- postcss-minify-selectors: 7.0.2(postcss@8.4.39)
- postcss-normalize-charset: 7.0.0(postcss@8.4.39)
- postcss-normalize-display-values: 7.0.0(postcss@8.4.39)
- postcss-normalize-positions: 7.0.0(postcss@8.4.39)
- postcss-normalize-repeat-style: 7.0.0(postcss@8.4.39)
- postcss-normalize-string: 7.0.0(postcss@8.4.39)
- postcss-normalize-timing-functions: 7.0.0(postcss@8.4.39)
- postcss-normalize-unicode: 7.0.1(postcss@8.4.39)
- postcss-normalize-url: 7.0.0(postcss@8.4.39)
- postcss-normalize-whitespace: 7.0.0(postcss@8.4.39)
- postcss-ordered-values: 7.0.1(postcss@8.4.39)
- postcss-reduce-initial: 7.0.1(postcss@8.4.39)
- postcss-reduce-transforms: 7.0.0(postcss@8.4.39)
- postcss-svgo: 7.0.1(postcss@8.4.39)
- postcss-unique-selectors: 7.0.1(postcss@8.4.39)
-
- cssnano-utils@3.1.0(postcss@8.4.39):
- dependencies:
- postcss: 8.4.39
-
- cssnano-utils@5.0.0(postcss@8.4.39):
- dependencies:
- postcss: 8.4.39
-
- cssnano@5.1.15(postcss@8.4.39):
- dependencies:
- cssnano-preset-default: 5.2.14(postcss@8.4.39)
+ css-declaration-sorter: 7.2.0(postcss@8.5.6)
+ cssnano-utils: 5.0.0(postcss@8.5.6)
+ postcss: 8.5.6
+ postcss-calc: 10.0.0(postcss@8.5.6)
+ postcss-colormin: 7.0.1(postcss@8.5.6)
+ postcss-convert-values: 7.0.1(postcss@8.5.6)
+ postcss-discard-comments: 7.0.1(postcss@8.5.6)
+ postcss-discard-duplicates: 7.0.0(postcss@8.5.6)
+ postcss-discard-empty: 7.0.0(postcss@8.5.6)
+ postcss-discard-overridden: 7.0.0(postcss@8.5.6)
+ postcss-merge-longhand: 7.0.2(postcss@8.5.6)
+ postcss-merge-rules: 7.0.2(postcss@8.5.6)
+ postcss-minify-font-values: 7.0.0(postcss@8.5.6)
+ postcss-minify-gradients: 7.0.0(postcss@8.5.6)
+ postcss-minify-params: 7.0.1(postcss@8.5.6)
+ postcss-minify-selectors: 7.0.2(postcss@8.5.6)
+ postcss-normalize-charset: 7.0.0(postcss@8.5.6)
+ postcss-normalize-display-values: 7.0.0(postcss@8.5.6)
+ postcss-normalize-positions: 7.0.0(postcss@8.5.6)
+ postcss-normalize-repeat-style: 7.0.0(postcss@8.5.6)
+ postcss-normalize-string: 7.0.0(postcss@8.5.6)
+ postcss-normalize-timing-functions: 7.0.0(postcss@8.5.6)
+ postcss-normalize-unicode: 7.0.1(postcss@8.5.6)
+ postcss-normalize-url: 7.0.0(postcss@8.5.6)
+ postcss-normalize-whitespace: 7.0.0(postcss@8.5.6)
+ postcss-ordered-values: 7.0.1(postcss@8.5.6)
+ postcss-reduce-initial: 7.0.1(postcss@8.5.6)
+ postcss-reduce-transforms: 7.0.0(postcss@8.5.6)
+ postcss-svgo: 7.0.1(postcss@8.5.6)
+ postcss-unique-selectors: 7.0.1(postcss@8.5.6)
+
+ cssnano-utils@3.1.0(postcss@8.5.6):
+ dependencies:
+ postcss: 8.5.6
+
+ cssnano-utils@5.0.0(postcss@8.5.6):
+ dependencies:
+ postcss: 8.5.6
+
+ cssnano@5.1.15(postcss@8.5.6):
+ dependencies:
+ cssnano-preset-default: 5.2.14(postcss@8.5.6)
lilconfig: 2.1.0
- postcss: 8.4.39
+ postcss: 8.5.6
yaml: 1.10.2
- cssnano@7.0.3(postcss@8.4.39):
+ cssnano@7.0.3(postcss@8.5.6):
dependencies:
- cssnano-preset-default: 7.0.3(postcss@8.4.39)
+ cssnano-preset-default: 7.0.3(postcss@8.5.6)
lilconfig: 3.1.3
- postcss: 8.4.39
+ postcss: 8.5.6
csso@4.2.0:
dependencies:
@@ -14537,7 +14525,7 @@ snapshots:
domelementtype: 2.3.0
domhandler: 4.3.1
- domutils@3.1.0:
+ domutils@3.2.2:
dependencies:
dom-serializer: 2.0.0
domelementtype: 2.3.0
@@ -15922,7 +15910,7 @@ snapshots:
dependencies:
domelementtype: 2.3.0
domhandler: 5.0.3
- domutils: 3.1.0
+ domutils: 3.2.2
entities: 4.5.0
http-errors@2.0.0:
@@ -15981,9 +15969,9 @@ snapshots:
dependencies:
safer-buffer: 2.1.2
- icss-utils@5.1.0(postcss@8.4.39):
+ icss-utils@5.1.0(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
idb@7.1.1: {}
@@ -16666,7 +16654,7 @@ snapshots:
js-tokens@4.0.0: {}
- js-tokens@9.0.0: {}
+ js-tokens@9.0.1: {}
js-yaml@3.14.1:
dependencies:
@@ -17653,9 +17641,9 @@ snapshots:
optimize-css-assets-webpack-plugin@6.0.1(webpack@4.47.0):
dependencies:
- cssnano: 5.1.15(postcss@8.4.39)
+ cssnano: 5.1.15(postcss@8.5.6)
last-call-webpack-plugin: 3.0.0
- postcss: 8.4.39
+ postcss: 8.5.6
webpack: 4.47.0
optionator@0.9.3:
@@ -17856,533 +17844,533 @@ snapshots:
posix-character-classes@0.1.1: {}
- postcss-attribute-case-insensitive@6.0.3(postcss@8.4.39):
+ postcss-attribute-case-insensitive@6.0.3(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-selector-parser: 6.1.2
- postcss-calc@10.0.0(postcss@8.4.39):
+ postcss-calc@10.0.0(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-selector-parser: 6.1.2
postcss-value-parser: 4.2.0
- postcss-calc@8.2.4(postcss@8.4.39):
+ postcss-calc@8.2.4(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-selector-parser: 6.1.2
postcss-value-parser: 4.2.0
- postcss-clamp@4.1.0(postcss@8.4.39):
+ postcss-clamp@4.1.0(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-color-functional-notation@6.0.12(postcss@8.4.39):
+ postcss-color-functional-notation@6.0.12(postcss@8.5.6):
dependencies:
'@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2)
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2)
'@csstools/css-tokenizer': 2.3.2
- '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39)
- '@csstools/utilities': 1.0.0(postcss@8.4.39)
- postcss: 8.4.39
+ '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.5.6)
+ '@csstools/utilities': 1.0.0(postcss@8.5.6)
+ postcss: 8.5.6
- postcss-color-hex-alpha@9.0.4(postcss@8.4.39):
+ postcss-color-hex-alpha@9.0.4(postcss@8.5.6):
dependencies:
- '@csstools/utilities': 1.0.0(postcss@8.4.39)
- postcss: 8.4.39
+ '@csstools/utilities': 1.0.0(postcss@8.5.6)
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-color-rebeccapurple@9.0.3(postcss@8.4.39):
+ postcss-color-rebeccapurple@9.0.3(postcss@8.5.6):
dependencies:
- '@csstools/utilities': 1.0.0(postcss@8.4.39)
- postcss: 8.4.39
+ '@csstools/utilities': 1.0.0(postcss@8.5.6)
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-colormin@5.3.1(postcss@8.4.39):
+ postcss-colormin@5.3.1(postcss@8.5.6):
dependencies:
browserslist: 4.28.1
caniuse-api: 3.0.0
colord: 2.9.3
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-colormin@7.0.1(postcss@8.4.39):
+ postcss-colormin@7.0.1(postcss@8.5.6):
dependencies:
browserslist: 4.28.1
caniuse-api: 3.0.0
colord: 2.9.3
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-convert-values@5.1.3(postcss@8.4.39):
+ postcss-convert-values@5.1.3(postcss@8.5.6):
dependencies:
browserslist: 4.28.1
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-convert-values@7.0.1(postcss@8.4.39):
+ postcss-convert-values@7.0.1(postcss@8.5.6):
dependencies:
browserslist: 4.28.1
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-custom-media@10.0.7(postcss@8.4.39):
+ postcss-custom-media@10.0.7(postcss@8.5.6):
dependencies:
'@csstools/cascade-layer-name-parser': 1.0.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2)
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2)
'@csstools/css-tokenizer': 2.3.2
'@csstools/media-query-list-parser': 2.1.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2)
- postcss: 8.4.39
+ postcss: 8.5.6
- postcss-custom-properties@13.3.11(postcss@8.4.39):
+ postcss-custom-properties@13.3.11(postcss@8.5.6):
dependencies:
'@csstools/cascade-layer-name-parser': 1.0.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2)
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2)
'@csstools/css-tokenizer': 2.3.2
- '@csstools/utilities': 1.0.0(postcss@8.4.39)
- postcss: 8.4.39
+ '@csstools/utilities': 1.0.0(postcss@8.5.6)
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-custom-selectors@7.1.11(postcss@8.4.39):
+ postcss-custom-selectors@7.1.11(postcss@8.5.6):
dependencies:
'@csstools/cascade-layer-name-parser': 1.0.12(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2)
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2)
'@csstools/css-tokenizer': 2.3.2
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-selector-parser: 6.1.2
- postcss-dir-pseudo-class@8.0.1(postcss@8.4.39):
+ postcss-dir-pseudo-class@8.0.1(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-selector-parser: 6.1.2
- postcss-discard-comments@5.1.2(postcss@8.4.39):
+ postcss-discard-comments@5.1.2(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
- postcss-discard-comments@7.0.1(postcss@8.4.39):
+ postcss-discard-comments@7.0.1(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-selector-parser: 6.1.2
- postcss-discard-duplicates@5.1.0(postcss@8.4.39):
+ postcss-discard-duplicates@5.1.0(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
- postcss-discard-duplicates@7.0.0(postcss@8.4.39):
+ postcss-discard-duplicates@7.0.0(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
- postcss-discard-empty@5.1.1(postcss@8.4.39):
+ postcss-discard-empty@5.1.1(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
- postcss-discard-empty@7.0.0(postcss@8.4.39):
+ postcss-discard-empty@7.0.0(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
- postcss-discard-overridden@5.1.0(postcss@8.4.39):
+ postcss-discard-overridden@5.1.0(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
- postcss-discard-overridden@7.0.0(postcss@8.4.39):
+ postcss-discard-overridden@7.0.0(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
- postcss-double-position-gradients@5.0.6(postcss@8.4.39):
+ postcss-double-position-gradients@5.0.6(postcss@8.5.6):
dependencies:
- '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39)
- '@csstools/utilities': 1.0.0(postcss@8.4.39)
- postcss: 8.4.39
+ '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.5.6)
+ '@csstools/utilities': 1.0.0(postcss@8.5.6)
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-focus-visible@9.0.1(postcss@8.4.39):
+ postcss-focus-visible@9.0.1(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-selector-parser: 6.1.2
- postcss-focus-within@8.0.1(postcss@8.4.39):
+ postcss-focus-within@8.0.1(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-selector-parser: 6.1.2
- postcss-font-variant@5.0.0(postcss@8.4.39):
+ postcss-font-variant@5.0.0(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
- postcss-gap-properties@5.0.1(postcss@8.4.39):
+ postcss-gap-properties@5.0.1(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
- postcss-html@1.7.0:
+ postcss-html@1.8.1:
dependencies:
htmlparser2: 8.0.2
- js-tokens: 9.0.0
- postcss: 8.4.35
- postcss-safe-parser: 6.0.0(postcss@8.4.35)
+ js-tokens: 9.0.1
+ postcss: 8.5.6
+ postcss-safe-parser: 6.0.0(postcss@8.5.6)
- postcss-image-set-function@6.0.3(postcss@8.4.39):
+ postcss-image-set-function@6.0.3(postcss@8.5.6):
dependencies:
- '@csstools/utilities': 1.0.0(postcss@8.4.39)
- postcss: 8.4.39
+ '@csstools/utilities': 1.0.0(postcss@8.5.6)
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
postcss-import-resolver@2.0.0:
dependencies:
enhanced-resolve: 4.5.0
- postcss-import@15.1.0(postcss@8.4.39):
+ postcss-import@15.1.0(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
read-cache: 1.0.0
resolve: 1.22.6
- postcss-lab-function@6.0.17(postcss@8.4.39):
+ postcss-lab-function@6.0.17(postcss@8.5.6):
dependencies:
'@csstools/css-color-parser': 2.0.3(@csstools/css-parser-algorithms@2.7.0(@csstools/css-tokenizer@2.3.2))(@csstools/css-tokenizer@2.3.2)
'@csstools/css-parser-algorithms': 2.7.0(@csstools/css-tokenizer@2.3.2)
'@csstools/css-tokenizer': 2.3.2
- '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39)
- '@csstools/utilities': 1.0.0(postcss@8.4.39)
- postcss: 8.4.39
+ '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.5.6)
+ '@csstools/utilities': 1.0.0(postcss@8.5.6)
+ postcss: 8.5.6
- postcss-loader@4.3.0(postcss@8.4.39)(webpack@4.47.0):
+ postcss-loader@4.3.0(postcss@8.5.6)(webpack@4.47.0):
dependencies:
cosmiconfig: 7.1.0
klona: 2.0.6
loader-utils: 2.0.4
- postcss: 8.4.39
+ postcss: 8.5.6
schema-utils: 3.3.0
semver: 7.7.3
webpack: 4.47.0
- postcss-logical@7.0.1(postcss@8.4.39):
+ postcss-logical@7.0.1(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-merge-longhand@5.1.7(postcss@8.4.39):
+ postcss-merge-longhand@5.1.7(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- stylehacks: 5.1.1(postcss@8.4.39)
+ stylehacks: 5.1.1(postcss@8.5.6)
- postcss-merge-longhand@7.0.2(postcss@8.4.39):
+ postcss-merge-longhand@7.0.2(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- stylehacks: 7.0.2(postcss@8.4.39)
+ stylehacks: 7.0.2(postcss@8.5.6)
- postcss-merge-rules@5.1.4(postcss@8.4.39):
+ postcss-merge-rules@5.1.4(postcss@8.5.6):
dependencies:
browserslist: 4.28.1
caniuse-api: 3.0.0
- cssnano-utils: 3.1.0(postcss@8.4.39)
- postcss: 8.4.39
+ cssnano-utils: 3.1.0(postcss@8.5.6)
+ postcss: 8.5.6
postcss-selector-parser: 6.1.2
- postcss-merge-rules@7.0.2(postcss@8.4.39):
+ postcss-merge-rules@7.0.2(postcss@8.5.6):
dependencies:
browserslist: 4.28.1
caniuse-api: 3.0.0
- cssnano-utils: 5.0.0(postcss@8.4.39)
- postcss: 8.4.39
+ cssnano-utils: 5.0.0(postcss@8.5.6)
+ postcss: 8.5.6
postcss-selector-parser: 6.1.2
- postcss-minify-font-values@5.1.0(postcss@8.4.39):
+ postcss-minify-font-values@5.1.0(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-minify-font-values@7.0.0(postcss@8.4.39):
+ postcss-minify-font-values@7.0.0(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-minify-gradients@5.1.1(postcss@8.4.39):
+ postcss-minify-gradients@5.1.1(postcss@8.5.6):
dependencies:
colord: 2.9.3
- cssnano-utils: 3.1.0(postcss@8.4.39)
- postcss: 8.4.39
+ cssnano-utils: 3.1.0(postcss@8.5.6)
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-minify-gradients@7.0.0(postcss@8.4.39):
+ postcss-minify-gradients@7.0.0(postcss@8.5.6):
dependencies:
colord: 2.9.3
- cssnano-utils: 5.0.0(postcss@8.4.39)
- postcss: 8.4.39
+ cssnano-utils: 5.0.0(postcss@8.5.6)
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-minify-params@5.1.4(postcss@8.4.39):
+ postcss-minify-params@5.1.4(postcss@8.5.6):
dependencies:
browserslist: 4.28.1
- cssnano-utils: 3.1.0(postcss@8.4.39)
- postcss: 8.4.39
+ cssnano-utils: 3.1.0(postcss@8.5.6)
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-minify-params@7.0.1(postcss@8.4.39):
+ postcss-minify-params@7.0.1(postcss@8.5.6):
dependencies:
browserslist: 4.28.1
- cssnano-utils: 5.0.0(postcss@8.4.39)
- postcss: 8.4.39
+ cssnano-utils: 5.0.0(postcss@8.5.6)
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-minify-selectors@5.2.1(postcss@8.4.39):
+ postcss-minify-selectors@5.2.1(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-selector-parser: 6.1.2
- postcss-minify-selectors@7.0.2(postcss@8.4.39):
+ postcss-minify-selectors@7.0.2(postcss@8.5.6):
dependencies:
cssesc: 3.0.0
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-selector-parser: 6.1.2
- postcss-modules-extract-imports@3.0.0(postcss@8.4.39):
+ postcss-modules-extract-imports@3.0.0(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
- postcss-modules-local-by-default@4.0.3(postcss@8.4.39):
+ postcss-modules-local-by-default@4.0.3(postcss@8.5.6):
dependencies:
- icss-utils: 5.1.0(postcss@8.4.39)
- postcss: 8.4.39
+ icss-utils: 5.1.0(postcss@8.5.6)
+ postcss: 8.5.6
postcss-selector-parser: 6.1.2
postcss-value-parser: 4.2.0
- postcss-modules-scope@3.0.0(postcss@8.4.39):
+ postcss-modules-scope@3.0.0(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-selector-parser: 6.1.2
- postcss-modules-values@4.0.0(postcss@8.4.39):
+ postcss-modules-values@4.0.0(postcss@8.5.6):
dependencies:
- icss-utils: 5.1.0(postcss@8.4.39)
- postcss: 8.4.39
+ icss-utils: 5.1.0(postcss@8.5.6)
+ postcss: 8.5.6
- postcss-nesting@12.1.5(postcss@8.4.39):
+ postcss-nesting@12.1.5(postcss@8.5.6):
dependencies:
'@csstools/selector-resolve-nested': 1.1.0(postcss-selector-parser@6.1.2)
'@csstools/selector-specificity': 3.1.1(postcss-selector-parser@6.1.2)
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-selector-parser: 6.1.2
- postcss-normalize-charset@5.1.0(postcss@8.4.39):
+ postcss-normalize-charset@5.1.0(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
- postcss-normalize-charset@7.0.0(postcss@8.4.39):
+ postcss-normalize-charset@7.0.0(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
- postcss-normalize-display-values@5.1.0(postcss@8.4.39):
+ postcss-normalize-display-values@5.1.0(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-normalize-display-values@7.0.0(postcss@8.4.39):
+ postcss-normalize-display-values@7.0.0(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-normalize-positions@5.1.1(postcss@8.4.39):
+ postcss-normalize-positions@5.1.1(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-normalize-positions@7.0.0(postcss@8.4.39):
+ postcss-normalize-positions@7.0.0(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-normalize-repeat-style@5.1.1(postcss@8.4.39):
+ postcss-normalize-repeat-style@5.1.1(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-normalize-repeat-style@7.0.0(postcss@8.4.39):
+ postcss-normalize-repeat-style@7.0.0(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-normalize-string@5.1.0(postcss@8.4.39):
+ postcss-normalize-string@5.1.0(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-normalize-string@7.0.0(postcss@8.4.39):
+ postcss-normalize-string@7.0.0(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-normalize-timing-functions@5.1.0(postcss@8.4.39):
+ postcss-normalize-timing-functions@5.1.0(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-normalize-timing-functions@7.0.0(postcss@8.4.39):
+ postcss-normalize-timing-functions@7.0.0(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-normalize-unicode@5.1.1(postcss@8.4.39):
+ postcss-normalize-unicode@5.1.1(postcss@8.5.6):
dependencies:
browserslist: 4.28.1
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-normalize-unicode@7.0.1(postcss@8.4.39):
+ postcss-normalize-unicode@7.0.1(postcss@8.5.6):
dependencies:
browserslist: 4.28.1
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-normalize-url@5.1.0(postcss@8.4.39):
+ postcss-normalize-url@5.1.0(postcss@8.5.6):
dependencies:
normalize-url: 6.1.0
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-normalize-url@7.0.0(postcss@8.4.39):
+ postcss-normalize-url@7.0.0(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-normalize-whitespace@5.1.1(postcss@8.4.39):
+ postcss-normalize-whitespace@5.1.1(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-normalize-whitespace@7.0.0(postcss@8.4.39):
+ postcss-normalize-whitespace@7.0.0(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-opacity-percentage@2.0.0(postcss@8.4.39):
+ postcss-opacity-percentage@2.0.0(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
- postcss-ordered-values@5.1.3(postcss@8.4.39):
+ postcss-ordered-values@5.1.3(postcss@8.5.6):
dependencies:
- cssnano-utils: 3.1.0(postcss@8.4.39)
- postcss: 8.4.39
+ cssnano-utils: 3.1.0(postcss@8.5.6)
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-ordered-values@7.0.1(postcss@8.4.39):
+ postcss-ordered-values@7.0.1(postcss@8.5.6):
dependencies:
- cssnano-utils: 5.0.0(postcss@8.4.39)
- postcss: 8.4.39
+ cssnano-utils: 5.0.0(postcss@8.5.6)
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-overflow-shorthand@5.0.1(postcss@8.4.39):
+ postcss-overflow-shorthand@5.0.1(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-page-break@3.0.4(postcss@8.4.39):
+ postcss-page-break@3.0.4(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
- postcss-place@9.0.1(postcss@8.4.39):
+ postcss-place@9.0.1(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-preset-env@9.5.15(postcss@8.4.39):
- dependencies:
- '@csstools/postcss-cascade-layers': 4.0.6(postcss@8.4.39)
- '@csstools/postcss-color-function': 3.0.17(postcss@8.4.39)
- '@csstools/postcss-color-mix-function': 2.0.17(postcss@8.4.39)
- '@csstools/postcss-exponential-functions': 1.0.8(postcss@8.4.39)
- '@csstools/postcss-font-format-keywords': 3.0.2(postcss@8.4.39)
- '@csstools/postcss-gamut-mapping': 1.0.10(postcss@8.4.39)
- '@csstools/postcss-gradients-interpolation-method': 4.0.18(postcss@8.4.39)
- '@csstools/postcss-hwb-function': 3.0.16(postcss@8.4.39)
- '@csstools/postcss-ic-unit': 3.0.6(postcss@8.4.39)
- '@csstools/postcss-initial': 1.0.1(postcss@8.4.39)
- '@csstools/postcss-is-pseudo-class': 4.0.8(postcss@8.4.39)
- '@csstools/postcss-light-dark-function': 1.0.6(postcss@8.4.39)
- '@csstools/postcss-logical-float-and-clear': 2.0.1(postcss@8.4.39)
- '@csstools/postcss-logical-overflow': 1.0.1(postcss@8.4.39)
- '@csstools/postcss-logical-overscroll-behavior': 1.0.1(postcss@8.4.39)
- '@csstools/postcss-logical-resize': 2.0.1(postcss@8.4.39)
- '@csstools/postcss-logical-viewport-units': 2.0.10(postcss@8.4.39)
- '@csstools/postcss-media-minmax': 1.1.7(postcss@8.4.39)
- '@csstools/postcss-media-queries-aspect-ratio-number-values': 2.0.10(postcss@8.4.39)
- '@csstools/postcss-nested-calc': 3.0.2(postcss@8.4.39)
- '@csstools/postcss-normalize-display-values': 3.0.2(postcss@8.4.39)
- '@csstools/postcss-oklab-function': 3.0.17(postcss@8.4.39)
- '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.4.39)
- '@csstools/postcss-relative-color-syntax': 2.0.17(postcss@8.4.39)
- '@csstools/postcss-scope-pseudo-class': 3.0.1(postcss@8.4.39)
- '@csstools/postcss-stepped-value-functions': 3.0.9(postcss@8.4.39)
- '@csstools/postcss-text-decoration-shorthand': 3.0.7(postcss@8.4.39)
- '@csstools/postcss-trigonometric-functions': 3.0.9(postcss@8.4.39)
- '@csstools/postcss-unset-value': 3.0.1(postcss@8.4.39)
- autoprefixer: 10.4.19(postcss@8.4.39)
+ postcss-preset-env@9.5.15(postcss@8.5.6):
+ dependencies:
+ '@csstools/postcss-cascade-layers': 4.0.6(postcss@8.5.6)
+ '@csstools/postcss-color-function': 3.0.17(postcss@8.5.6)
+ '@csstools/postcss-color-mix-function': 2.0.17(postcss@8.5.6)
+ '@csstools/postcss-exponential-functions': 1.0.8(postcss@8.5.6)
+ '@csstools/postcss-font-format-keywords': 3.0.2(postcss@8.5.6)
+ '@csstools/postcss-gamut-mapping': 1.0.10(postcss@8.5.6)
+ '@csstools/postcss-gradients-interpolation-method': 4.0.18(postcss@8.5.6)
+ '@csstools/postcss-hwb-function': 3.0.16(postcss@8.5.6)
+ '@csstools/postcss-ic-unit': 3.0.6(postcss@8.5.6)
+ '@csstools/postcss-initial': 1.0.1(postcss@8.5.6)
+ '@csstools/postcss-is-pseudo-class': 4.0.8(postcss@8.5.6)
+ '@csstools/postcss-light-dark-function': 1.0.6(postcss@8.5.6)
+ '@csstools/postcss-logical-float-and-clear': 2.0.1(postcss@8.5.6)
+ '@csstools/postcss-logical-overflow': 1.0.1(postcss@8.5.6)
+ '@csstools/postcss-logical-overscroll-behavior': 1.0.1(postcss@8.5.6)
+ '@csstools/postcss-logical-resize': 2.0.1(postcss@8.5.6)
+ '@csstools/postcss-logical-viewport-units': 2.0.10(postcss@8.5.6)
+ '@csstools/postcss-media-minmax': 1.1.7(postcss@8.5.6)
+ '@csstools/postcss-media-queries-aspect-ratio-number-values': 2.0.10(postcss@8.5.6)
+ '@csstools/postcss-nested-calc': 3.0.2(postcss@8.5.6)
+ '@csstools/postcss-normalize-display-values': 3.0.2(postcss@8.5.6)
+ '@csstools/postcss-oklab-function': 3.0.17(postcss@8.5.6)
+ '@csstools/postcss-progressive-custom-properties': 3.2.0(postcss@8.5.6)
+ '@csstools/postcss-relative-color-syntax': 2.0.17(postcss@8.5.6)
+ '@csstools/postcss-scope-pseudo-class': 3.0.1(postcss@8.5.6)
+ '@csstools/postcss-stepped-value-functions': 3.0.9(postcss@8.5.6)
+ '@csstools/postcss-text-decoration-shorthand': 3.0.7(postcss@8.5.6)
+ '@csstools/postcss-trigonometric-functions': 3.0.9(postcss@8.5.6)
+ '@csstools/postcss-unset-value': 3.0.1(postcss@8.5.6)
+ autoprefixer: 10.4.19(postcss@8.5.6)
browserslist: 4.28.1
- css-blank-pseudo: 6.0.2(postcss@8.4.39)
- css-has-pseudo: 6.0.5(postcss@8.4.39)
- css-prefers-color-scheme: 9.0.1(postcss@8.4.39)
+ css-blank-pseudo: 6.0.2(postcss@8.5.6)
+ css-has-pseudo: 6.0.5(postcss@8.5.6)
+ css-prefers-color-scheme: 9.0.1(postcss@8.5.6)
cssdb: 8.0.2
- postcss: 8.4.39
- postcss-attribute-case-insensitive: 6.0.3(postcss@8.4.39)
- postcss-clamp: 4.1.0(postcss@8.4.39)
- postcss-color-functional-notation: 6.0.12(postcss@8.4.39)
- postcss-color-hex-alpha: 9.0.4(postcss@8.4.39)
- postcss-color-rebeccapurple: 9.0.3(postcss@8.4.39)
- postcss-custom-media: 10.0.7(postcss@8.4.39)
- postcss-custom-properties: 13.3.11(postcss@8.4.39)
- postcss-custom-selectors: 7.1.11(postcss@8.4.39)
- postcss-dir-pseudo-class: 8.0.1(postcss@8.4.39)
- postcss-double-position-gradients: 5.0.6(postcss@8.4.39)
- postcss-focus-visible: 9.0.1(postcss@8.4.39)
- postcss-focus-within: 8.0.1(postcss@8.4.39)
- postcss-font-variant: 5.0.0(postcss@8.4.39)
- postcss-gap-properties: 5.0.1(postcss@8.4.39)
- postcss-image-set-function: 6.0.3(postcss@8.4.39)
- postcss-lab-function: 6.0.17(postcss@8.4.39)
- postcss-logical: 7.0.1(postcss@8.4.39)
- postcss-nesting: 12.1.5(postcss@8.4.39)
- postcss-opacity-percentage: 2.0.0(postcss@8.4.39)
- postcss-overflow-shorthand: 5.0.1(postcss@8.4.39)
- postcss-page-break: 3.0.4(postcss@8.4.39)
- postcss-place: 9.0.1(postcss@8.4.39)
- postcss-pseudo-class-any-link: 9.0.2(postcss@8.4.39)
- postcss-replace-overflow-wrap: 4.0.0(postcss@8.4.39)
- postcss-selector-not: 7.0.2(postcss@8.4.39)
-
- postcss-pseudo-class-any-link@9.0.2(postcss@8.4.39):
- dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
+ postcss-attribute-case-insensitive: 6.0.3(postcss@8.5.6)
+ postcss-clamp: 4.1.0(postcss@8.5.6)
+ postcss-color-functional-notation: 6.0.12(postcss@8.5.6)
+ postcss-color-hex-alpha: 9.0.4(postcss@8.5.6)
+ postcss-color-rebeccapurple: 9.0.3(postcss@8.5.6)
+ postcss-custom-media: 10.0.7(postcss@8.5.6)
+ postcss-custom-properties: 13.3.11(postcss@8.5.6)
+ postcss-custom-selectors: 7.1.11(postcss@8.5.6)
+ postcss-dir-pseudo-class: 8.0.1(postcss@8.5.6)
+ postcss-double-position-gradients: 5.0.6(postcss@8.5.6)
+ postcss-focus-visible: 9.0.1(postcss@8.5.6)
+ postcss-focus-within: 8.0.1(postcss@8.5.6)
+ postcss-font-variant: 5.0.0(postcss@8.5.6)
+ postcss-gap-properties: 5.0.1(postcss@8.5.6)
+ postcss-image-set-function: 6.0.3(postcss@8.5.6)
+ postcss-lab-function: 6.0.17(postcss@8.5.6)
+ postcss-logical: 7.0.1(postcss@8.5.6)
+ postcss-nesting: 12.1.5(postcss@8.5.6)
+ postcss-opacity-percentage: 2.0.0(postcss@8.5.6)
+ postcss-overflow-shorthand: 5.0.1(postcss@8.5.6)
+ postcss-page-break: 3.0.4(postcss@8.5.6)
+ postcss-place: 9.0.1(postcss@8.5.6)
+ postcss-pseudo-class-any-link: 9.0.2(postcss@8.5.6)
+ postcss-replace-overflow-wrap: 4.0.0(postcss@8.5.6)
+ postcss-selector-not: 7.0.2(postcss@8.5.6)
+
+ postcss-pseudo-class-any-link@9.0.2(postcss@8.5.6):
+ dependencies:
+ postcss: 8.5.6
postcss-selector-parser: 6.1.2
- postcss-reduce-initial@5.1.2(postcss@8.4.39):
+ postcss-reduce-initial@5.1.2(postcss@8.5.6):
dependencies:
browserslist: 4.28.1
caniuse-api: 3.0.0
- postcss: 8.4.39
+ postcss: 8.5.6
- postcss-reduce-initial@7.0.1(postcss@8.4.39):
+ postcss-reduce-initial@7.0.1(postcss@8.5.6):
dependencies:
browserslist: 4.28.1
caniuse-api: 3.0.0
- postcss: 8.4.39
+ postcss: 8.5.6
- postcss-reduce-transforms@5.1.0(postcss@8.4.39):
+ postcss-reduce-transforms@5.1.0(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-reduce-transforms@7.0.0(postcss@8.4.39):
+ postcss-reduce-transforms@7.0.0(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
- postcss-replace-overflow-wrap@4.0.0(postcss@8.4.39):
+ postcss-replace-overflow-wrap@4.0.0(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-resolve-nested-selector@0.1.1: {}
@@ -18390,13 +18378,13 @@ snapshots:
dependencies:
postcss: 8.4.31
- postcss-safe-parser@6.0.0(postcss@8.4.35):
+ postcss-safe-parser@6.0.0(postcss@8.5.6):
dependencies:
- postcss: 8.4.35
+ postcss: 8.5.6
- postcss-selector-not@7.0.2(postcss@8.4.39):
+ postcss-selector-not@7.0.2(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-selector-parser: 6.1.2
postcss-selector-parser@6.0.13:
@@ -18409,34 +18397,34 @@ snapshots:
cssesc: 3.0.0
util-deprecate: 1.0.2
- postcss-svgo@5.1.0(postcss@8.4.39):
+ postcss-svgo@5.1.0(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
svgo: 2.8.0
- postcss-svgo@7.0.1(postcss@8.4.39):
+ postcss-svgo@7.0.1(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-value-parser: 4.2.0
svgo: 3.3.2
- postcss-unique-selectors@5.1.1(postcss@8.4.39):
+ postcss-unique-selectors@5.1.1(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-selector-parser: 6.1.2
- postcss-unique-selectors@7.0.1(postcss@8.4.39):
+ postcss-unique-selectors@7.0.1(postcss@8.5.6):
dependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-selector-parser: 6.1.2
- postcss-url@10.1.3(postcss@8.4.39):
+ postcss-url@10.1.3(postcss@8.5.6):
dependencies:
make-dir: 3.1.0
mime: 2.5.2
minimatch: 3.0.8
- postcss: 8.4.39
+ postcss: 8.5.6
xxhashjs: 0.2.2
postcss-value-parser@4.2.0: {}
@@ -18452,18 +18440,6 @@ snapshots:
picocolors: 1.0.0
source-map-js: 1.0.2
- postcss@8.4.35:
- dependencies:
- nanoid: 3.3.8
- picocolors: 1.0.0
- source-map-js: 1.0.2
-
- postcss@8.4.39:
- dependencies:
- nanoid: 3.3.8
- picocolors: 1.1.1
- source-map-js: 1.2.0
-
postcss@8.5.6:
dependencies:
nanoid: 3.3.11
@@ -19139,8 +19115,6 @@ snapshots:
source-map-js@1.0.2: {}
- source-map-js@1.2.0: {}
-
source-map-js@1.2.1: {}
source-map-resolve@0.5.3:
@@ -19342,7 +19316,7 @@ snapshots:
strip-literal@2.1.0:
dependencies:
- js-tokens: 9.0.0
+ js-tokens: 9.0.1
stubs@3.0.0:
optional: true
@@ -19357,33 +19331,33 @@ snapshots:
style-search@0.1.0: {}
- stylehacks@5.1.1(postcss@8.4.39):
+ stylehacks@5.1.1(postcss@8.5.6):
dependencies:
browserslist: 4.28.1
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-selector-parser: 6.1.2
- stylehacks@7.0.2(postcss@8.4.39):
+ stylehacks@7.0.2(postcss@8.5.6):
dependencies:
browserslist: 4.28.1
- postcss: 8.4.39
+ postcss: 8.5.6
postcss-selector-parser: 6.1.2
- stylelint-config-html@1.1.0(postcss-html@1.7.0)(stylelint@15.11.0(typescript@4.9.5)):
+ stylelint-config-html@1.1.0(postcss-html@1.8.1)(stylelint@15.11.0(typescript@4.9.5)):
dependencies:
- postcss-html: 1.7.0
+ postcss-html: 1.8.1
stylelint: 15.11.0(typescript@4.9.5)
stylelint-config-prettier@9.0.5(stylelint@15.11.0(typescript@4.9.5)):
dependencies:
stylelint: 15.11.0(typescript@4.9.5)
- stylelint-config-recommended-vue@1.5.0(postcss-html@1.7.0)(stylelint@15.11.0(typescript@4.9.5)):
+ stylelint-config-recommended-vue@1.5.0(postcss-html@1.8.1)(stylelint@15.11.0(typescript@4.9.5)):
dependencies:
- postcss-html: 1.7.0
+ postcss-html: 1.8.1
semver: 7.5.4
stylelint: 15.11.0(typescript@4.9.5)
- stylelint-config-html: 1.1.0(postcss-html@1.7.0)(stylelint@15.11.0(typescript@4.9.5))
+ stylelint-config-html: 1.1.0(postcss-html@1.8.1)(stylelint@15.11.0(typescript@4.9.5))
stylelint-config-recommended: 13.0.0(stylelint@15.11.0(typescript@4.9.5))
stylelint-config-recommended@13.0.0(stylelint@15.11.0(typescript@4.9.5)):
@@ -20045,7 +20019,7 @@ snapshots:
rollup: 2.79.2
vite: 4.5.3(@types/node@25.1.0)(sass@1.32.13)(terser@5.44.1)
- vite-plugin-stylelint@5.3.1(postcss@8.4.39)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@25.1.0)(sass@1.32.13)(terser@5.44.1)):
+ vite-plugin-stylelint@5.3.1(postcss@8.5.6)(rollup@3.29.5)(stylelint@15.11.0(typescript@4.9.5))(vite@4.5.3(@types/node@25.1.0)(sass@1.32.13)(terser@5.44.1)):
dependencies:
'@rollup/pluginutils': 5.1.0(rollup@3.29.5)
chokidar: 3.6.0
@@ -20053,7 +20027,7 @@ snapshots:
stylelint: 15.11.0(typescript@4.9.5)
vite: 4.5.3(@types/node@25.1.0)(sass@1.32.13)(terser@5.44.1)
optionalDependencies:
- postcss: 8.4.39
+ postcss: 8.5.6
rollup: 3.29.5
transitivePeerDependencies:
- supports-color
From b42b993a9748faa86379ef1f91d628c1b25aa54c Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Sun, 1 Feb 2026 18:02:41 +0200
Subject: [PATCH 116/215] Reload messages on received
---
web/layouts/default.vue | 4 ----
web/pages/threads/_id/index.vue | 5 +++++
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/web/layouts/default.vue b/web/layouts/default.vue
index 69d2407e..cff2bd34 100644
--- a/web/layouts/default.vue
+++ b/web/layouts/default.vue
@@ -50,9 +50,6 @@ export default class DefaultLayout extends Vue {
channel.bind('phone.updated', () => {
this.canPoll = true
})
- channel.bind('message.phone.received', () => {
- this.canPoll = true
- })
this.startPoller()
}, 10_000) // delay so that the auth user is present
@@ -78,7 +75,6 @@ export default class DefaultLayout extends Vue {
promises.push(
this.$store.dispatch('loadPhones', true),
this.$store.dispatch('loadThreads'),
- this.$store.dispatch('loadMessages'),
this.$store.dispatch('getHeartbeat'),
)
}
diff --git a/web/pages/threads/_id/index.vue b/web/pages/threads/_id/index.vue
index a9216a9f..06042a45 100644
--- a/web/pages/threads/_id/index.vue
+++ b/web/pages/threads/_id/index.vue
@@ -427,6 +427,11 @@ export default Vue.extend({
this.loadMessages(false)
}
})
+ this.webhookChannel.bind('message.phone.received', () => {
+ if (!this.loadingMessages) {
+ this.loadMessages(false)
+ }
+ })
},
beforeDestroy() {
From 75f93f1a1f41a7fff3386b7ba1be820597df7249 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Sun, 8 Feb 2026 21:52:16 +0200
Subject: [PATCH 117/215] Add support for SQLITE for dedicated DB
---
api/go.mod | 5 +++++
api/go.sum | 6 ++++++
api/main.go | 1 +
api/pkg/di/container.go | 14 +++++++++++++-
4 files changed, 25 insertions(+), 1 deletion(-)
diff --git a/api/go.mod b/api/go.mod
index 51120b96..844b8e14 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -44,6 +44,7 @@ require (
github.com/stretchr/testify v1.11.1
github.com/swaggo/swag v1.16.6
github.com/thedevsaddam/govalidator v1.9.10
+ github.com/tursodatabase/libsql-client-go v0.0.0-20251219100830-236aa1ff8acc
github.com/uptrace/uptrace-go v1.39.0
github.com/xuri/excelize/v2 v2.10.0
go.opentelemetry.io/otel v1.39.0
@@ -54,6 +55,7 @@ require (
google.golang.org/api v0.264.0
google.golang.org/protobuf v1.36.11
gorm.io/driver/postgres v1.6.0
+ gorm.io/driver/sqlite v1.6.0
gorm.io/gorm v1.31.1
gorm.io/plugin/opentelemetry v0.1.16
)
@@ -83,10 +85,12 @@ require (
github.com/PuerkitoBio/goquery v1.10.3 // indirect
github.com/andybalholm/brotli v1.2.0 // indirect
github.com/andybalholm/cascadia v1.3.3 // indirect
+ github.com/antlr4-go/antlr/v4 v4.13.0 // indirect
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/clipperhouse/uax29/v2 v2.2.0 // indirect
github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f // indirect
+ github.com/coder/websocket v1.8.12 // indirect
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
github.com/envoyproxy/go-control-plane/envoy v1.35.0 // indirect
github.com/envoyproxy/protoc-gen-validate v1.2.1 // indirect
@@ -129,6 +133,7 @@ require (
github.com/mattn/go-colorable v0.1.14 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mattn/go-runewidth v0.0.19 // indirect
+ github.com/mattn/go-sqlite3 v1.14.22 // indirect
github.com/mitchellh/copystructure v1.2.0 // indirect
github.com/mitchellh/reflectwalk v1.0.2 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
diff --git a/api/go.sum b/api/go.sum
index f9625a5f..bcef44d0 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -66,6 +66,8 @@ github.com/andybalholm/brotli v1.2.0 h1:ukwgCxwYrmACq68yiUqwIWnGY0cTPox/M94sVwTo
github.com/andybalholm/brotli v1.2.0/go.mod h1:rzTDkvFWvIrjDXZHkuS16NPggd91W3kUSvPlQ1pLaKY=
github.com/andybalholm/cascadia v1.3.3 h1:AG2YHrzJIm4BZ19iwJ/DAua6Btl3IwJX+VI4kktS1LM=
github.com/andybalholm/cascadia v1.3.3/go.mod h1:xNd9bqTn98Ln4DwST8/nG+H0yuB8Hmgu1YHNnWw0GeA=
+github.com/antlr4-go/antlr/v4 v4.13.0 h1:lxCg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8TVTI=
+github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g=
github.com/avast/retry-go v3.0.0+incompatible h1:4SOWQ7Qs+oroOTQOYnAHqelpCO0biHSxpiH9JdtuBj0=
github.com/avast/retry-go v3.0.0+incompatible/go.mod h1:XtSnn+n/sHqQIpZ10K1qAevBhOOCWBLXXy3hyiqqBrY=
github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs=
@@ -86,6 +88,8 @@ github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f h1:Y8xYupdHxryycyPlc9Y
github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f/go.mod h1:HlzOvOjVBOfTGSRXRyY0OiCS/3J1akRGQQpRO/7zyF4=
github.com/cockroachdb/cockroach-go/v2 v2.4.3 h1:LJO3K3jC5WXvMePRQSJE1NsIGoFGcEx1LW83W6RAlhw=
github.com/cockroachdb/cockroach-go/v2 v2.4.3/go.mod h1:9U179XbCx4qFWtNhc7BiWLPfuyMVQ7qdAhfrwLz1vH0=
+github.com/coder/websocket v1.8.12 h1:5bUXkEPPIbewrnkU8LTCLVaxi4N4J8ahufH2vlo4NAo=
+github.com/coder/websocket v1.8.12/go.mod h1:LNVeNrXQZfe5qhS9ALED3uA+l5pPqvwXg3CKoDBB2gs=
github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -323,6 +327,8 @@ github.com/thedevsaddam/govalidator v1.9.10/go.mod h1:Ilx8u7cg5g3LXbSS943cx5kczy
github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
github.com/tiendc/go-deepcopy v1.7.1 h1:LnubftI6nYaaMOcaz0LphzwraqN8jiWTwm416sitff4=
github.com/tiendc/go-deepcopy v1.7.1/go.mod h1:4bKjNC2r7boYOkD2IOuZpYjmlDdzjbpTRyCx+goBCJQ=
+github.com/tursodatabase/libsql-client-go v0.0.0-20251219100830-236aa1ff8acc h1:lzi/5fg2EfinRlh3v//YyIhnc4tY7BTqazQGwb1ar+0=
+github.com/tursodatabase/libsql-client-go v0.0.0-20251219100830-236aa1ff8acc/go.mod h1:08inkKyguB6CGGssc/JzhmQWwBgFQBgjlYFjxjRh7nU=
github.com/uptrace/uptrace-go v1.39.0 h1:MszuE3eX/z86xzYywN2JBtYcmsS4ofdo1VMDhRvkWrI=
github.com/uptrace/uptrace-go v1.39.0/go.mod h1:FquipEqgTMXPbhdhenjbiLHG1R5WYdxVH6zgwHeMzzA=
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
diff --git a/api/main.go b/api/main.go
index 5b7539c9..b85c9d66 100644
--- a/api/main.go
+++ b/api/main.go
@@ -7,6 +7,7 @@ import (
"github.com/NdoleStudio/httpsms/docs"
"github.com/NdoleStudio/httpsms/pkg/di"
+ _ "github.com/tursodatabase/libsql-client-go/libsql"
)
// Version is injected at runtime
diff --git a/api/pkg/di/container.go b/api/pkg/di/container.go
index d9a912f4..0025cecb 100644
--- a/api/pkg/di/container.go
+++ b/api/pkg/di/container.go
@@ -7,10 +7,12 @@ import (
"net/http"
"os"
"strconv"
+ "strings"
"time"
plunk "github.com/NdoleStudio/plunk-go"
"github.com/pusher/pusher-http-go/v5"
+ "gorm.io/driver/sqlite"
"github.com/NdoleStudio/httpsms/docs"
@@ -228,6 +230,16 @@ func (container *Container) GormLogger() gormLogger.Interface {
)
}
+func (container *Container) connect(dsn string, config *gorm.Config) (db *gorm.DB, err error) {
+ if strings.HasPrefix(dsn, "postgres://") {
+ return gorm.Open(postgres.Open(dsn), config)
+ }
+ return gorm.Open(sqlite.New(sqlite.Config{
+ DriverName: "libsql",
+ DSN: dsn,
+ }), config)
+}
+
// DedicatedDB creates an instance of gorm.DB if it has not been created already
func (container *Container) DedicatedDB() (db *gorm.DB) {
container.logger.Debug(fmt.Sprintf("creating %T", db))
@@ -242,7 +254,7 @@ func (container *Container) DedicatedDB() (db *gorm.DB) {
config = &gorm.Config{Logger: container.GormLogger()}
}
- db, err := gorm.Open(postgres.Open(os.Getenv("DATABASE_URL_DEDICATED")), config)
+ db, err := container.connect(os.Getenv("DATABASE_URL_DEDICATED"), config)
if err != nil {
container.logger.Fatal(err)
}
From d5721b6cf3f4906b25076ce6c035893a325966dd Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Sun, 8 Feb 2026 22:14:08 +0200
Subject: [PATCH 118/215] Upgraded packages
---
api/go.mod | 138 +++++++++++++-------------
api/go.sum | 286 ++++++++++++++++++++++++++++-------------------------
2 files changed, 221 insertions(+), 203 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index 844b8e14..7160e3dc 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -1,8 +1,6 @@
module github.com/NdoleStudio/httpsms
-go 1.24.2
-
-toolchain go1.24.3
+go 1.24.6
require (
cloud.google.com/go/cloudtasks v1.13.7
@@ -47,12 +45,12 @@ require (
github.com/tursodatabase/libsql-client-go v0.0.0-20251219100830-236aa1ff8acc
github.com/uptrace/uptrace-go v1.39.0
github.com/xuri/excelize/v2 v2.10.0
- go.opentelemetry.io/otel v1.39.0
- go.opentelemetry.io/otel/metric v1.39.0
- go.opentelemetry.io/otel/sdk v1.39.0
- go.opentelemetry.io/otel/sdk/metric v1.39.0
- go.opentelemetry.io/otel/trace v1.39.0
- google.golang.org/api v0.264.0
+ go.opentelemetry.io/otel v1.40.0
+ go.opentelemetry.io/otel/metric v1.40.0
+ go.opentelemetry.io/otel/sdk v1.40.0
+ go.opentelemetry.io/otel/sdk/metric v1.40.0
+ go.opentelemetry.io/otel/trace v1.40.0
+ google.golang.org/api v0.265.0
google.golang.org/protobuf v1.36.11
gorm.io/driver/postgres v1.6.0
gorm.io/driver/sqlite v1.6.0
@@ -61,39 +59,41 @@ require (
)
require (
- cel.dev/expr v0.24.0 // indirect
+ cel.dev/expr v0.25.1 // indirect
cloud.google.com/go v0.123.0 // indirect
cloud.google.com/go/auth v0.18.1 // indirect
cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect
cloud.google.com/go/compute/metadata v0.9.0 // indirect
- cloud.google.com/go/firestore v1.20.0 // indirect
+ cloud.google.com/go/firestore v1.21.0 // indirect
cloud.google.com/go/iam v1.5.3 // indirect
- cloud.google.com/go/longrunning v0.7.0 // indirect
+ cloud.google.com/go/longrunning v0.8.0 // indirect
cloud.google.com/go/monitoring v1.24.3 // indirect
- cloud.google.com/go/storage v1.57.0 // indirect
+ cloud.google.com/go/storage v1.59.2 // indirect
cloud.google.com/go/trace v1.11.7 // indirect
dario.cat/mergo v1.0.2 // indirect
filippo.io/edwards25519 v1.1.0 // indirect
- github.com/ClickHouse/ch-go v0.69.0 // indirect
- github.com/ClickHouse/clickhouse-go/v2 v2.40.3 // indirect
- github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.30.0 // indirect
+ github.com/ClickHouse/ch-go v0.71.0 // indirect
+ github.com/ClickHouse/clickhouse-go/v2 v2.43.0 // indirect
+ github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.31.0 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.55.0 // indirect
github.com/KyleBanks/depth v1.2.1 // indirect
github.com/Masterminds/goutils v1.1.1 // indirect
github.com/Masterminds/semver v1.5.0 // indirect
github.com/Masterminds/sprig v2.22.0+incompatible // indirect
- github.com/PuerkitoBio/goquery v1.10.3 // indirect
+ github.com/PuerkitoBio/goquery v1.11.0 // indirect
github.com/andybalholm/brotli v1.2.0 // indirect
github.com/andybalholm/cascadia v1.3.3 // indirect
- github.com/antlr4-go/antlr/v4 v4.13.0 // indirect
+ github.com/antlr4-go/antlr/v4 v4.13.1 // indirect
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect
- github.com/clipperhouse/uax29/v2 v2.2.0 // indirect
- github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f // indirect
- github.com/coder/websocket v1.8.12 // indirect
+ github.com/clipperhouse/displaywidth v0.9.0 // indirect
+ github.com/clipperhouse/stringish v0.1.1 // indirect
+ github.com/clipperhouse/uax29/v2 v2.6.0 // indirect
+ github.com/cncf/xds/go v0.0.0-20260202195803-dba9d589def2 // indirect
+ github.com/coder/websocket v1.8.14 // indirect
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
- github.com/envoyproxy/go-control-plane/envoy v1.35.0 // indirect
- github.com/envoyproxy/protoc-gen-validate v1.2.1 // indirect
+ github.com/envoyproxy/go-control-plane/envoy v1.36.0 // indirect
+ github.com/envoyproxy/protoc-gen-validate v1.3.0 // indirect
github.com/fatih/color v1.18.0 // indirect
github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/go-faster/city v1.0.1 // indirect
@@ -101,95 +101,99 @@ require (
github.com/go-jose/go-jose/v4 v4.1.3 // indirect
github.com/go-logr/logr v1.4.3 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
- github.com/go-openapi/jsonpointer v0.22.1 // indirect
- github.com/go-openapi/jsonreference v0.21.2 // indirect
- github.com/go-openapi/spec v0.22.0 // indirect
- github.com/go-openapi/swag/conv v0.25.1 // indirect
- github.com/go-openapi/swag/jsonname v0.25.1 // indirect
- github.com/go-openapi/swag/jsonutils v0.25.1 // indirect
- github.com/go-openapi/swag/loading v0.25.1 // indirect
- github.com/go-openapi/swag/stringutils v0.25.1 // indirect
- github.com/go-openapi/swag/typeutils v0.25.1 // indirect
- github.com/go-openapi/swag/yamlutils v0.25.1 // indirect
+ github.com/go-openapi/jsonpointer v0.22.4 // indirect
+ github.com/go-openapi/jsonreference v0.21.4 // indirect
+ github.com/go-openapi/spec v0.22.3 // indirect
+ github.com/go-openapi/swag/conv v0.25.4 // indirect
+ github.com/go-openapi/swag/jsonname v0.25.4 // indirect
+ github.com/go-openapi/swag/jsonutils v0.25.4 // indirect
+ github.com/go-openapi/swag/loading v0.25.4 // indirect
+ github.com/go-openapi/swag/stringutils v0.25.4 // indirect
+ github.com/go-openapi/swag/typeutils v0.25.4 // indirect
+ github.com/go-openapi/swag/yamlutils v0.25.4 // indirect
github.com/go-sql-driver/mysql v1.9.3 // indirect
github.com/golang/protobuf v1.5.4 // indirect
github.com/google/s2a-go v0.1.9 // indirect
github.com/googleapis/enterprise-certificate-proxy v0.3.11 // indirect
- github.com/googleapis/gax-go/v2 v2.16.0 // indirect
+ github.com/googleapis/gax-go/v2 v2.17.0 // indirect
github.com/gorilla/css v1.0.1 // indirect
- github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.3 // indirect
+ github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.7 // indirect
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
- github.com/hashicorp/go-version v1.7.0 // indirect
+ github.com/hashicorp/go-version v1.8.0 // indirect
github.com/huandu/xstrings v1.5.0 // indirect
github.com/imdario/mergo v0.3.16 // indirect
+ github.com/inbucket/html2text v1.0.0 // indirect
github.com/jackc/pgpassfile v1.0.0 // indirect
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect
- github.com/jackc/pgx/v5 v5.7.6 // indirect
+ github.com/jackc/pgx/v5 v5.8.0 // indirect
github.com/jackc/puddle/v2 v2.2.2 // indirect
github.com/jaytaylor/html2text v0.0.0-20230321000545-74c2419ad056 // indirect
github.com/jinzhu/inflection v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
- github.com/klauspost/compress v1.18.0 // indirect
+ github.com/klauspost/compress v1.18.3 // indirect
github.com/mattn/go-colorable v0.1.14 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mattn/go-runewidth v0.0.19 // indirect
- github.com/mattn/go-sqlite3 v1.14.22 // indirect
+ github.com/mattn/go-sqlite3 v1.14.33 // indirect
github.com/mitchellh/copystructure v1.2.0 // indirect
github.com/mitchellh/reflectwalk v1.0.2 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
- github.com/olekukonko/tablewriter v0.0.5 // indirect
+ github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 // indirect
+ github.com/olekukonko/errors v1.2.0 // indirect
+ github.com/olekukonko/ll v0.1.4 // indirect
+ github.com/olekukonko/tablewriter v1.1.3 // indirect
github.com/paulmach/orb v0.12.0 // indirect
- github.com/pierrec/lz4/v4 v4.1.22 // indirect
+ github.com/pierrec/lz4/v4 v4.1.25 // indirect
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
github.com/redis/go-redis/extra/rediscmd/v9 v9.17.3 // indirect
- github.com/richardlehane/mscfb v1.0.4 // indirect
- github.com/richardlehane/msoleps v1.0.4 // indirect
+ github.com/richardlehane/mscfb v1.0.6 // indirect
+ github.com/richardlehane/msoleps v1.0.6 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/segmentio/asm v1.2.1 // indirect
github.com/shopspring/decimal v1.4.0 // indirect
github.com/spiffe/go-spiffe/v2 v2.6.0 // indirect
github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf // indirect
github.com/swaggo/files/v2 v2.0.2 // indirect
- github.com/tiendc/go-deepcopy v1.7.1 // indirect
+ github.com/tiendc/go-deepcopy v1.7.2 // indirect
github.com/valyala/bytebufferpool v1.0.0 // indirect
- github.com/valyala/fasthttp v1.67.0 // indirect
+ github.com/valyala/fasthttp v1.69.0 // indirect
github.com/vanng822/css v1.0.1 // indirect
- github.com/vanng822/go-premailer v1.25.0 // indirect
+ github.com/vanng822/go-premailer v1.30.0 // indirect
github.com/xuri/efp v0.0.1 // indirect
github.com/xuri/nfp v0.0.2-0.20250530014748-2ddeb826f9a9 // indirect
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
- go.opentelemetry.io/contrib v1.38.0 // indirect
- go.opentelemetry.io/contrib/detectors/gcp v1.38.0 // indirect
- go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0 // indirect
- go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 // indirect
- go.opentelemetry.io/contrib/instrumentation/runtime v0.64.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.15.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.39.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.39.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.39.0 // indirect
- go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.39.0 // indirect
- go.opentelemetry.io/otel/log v0.15.0 // indirect
- go.opentelemetry.io/otel/sdk/log v0.15.0 // indirect
+ go.opentelemetry.io/contrib v1.40.0 // indirect
+ go.opentelemetry.io/contrib/detectors/gcp v1.40.0 // indirect
+ go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.65.0 // indirect
+ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0 // indirect
+ go.opentelemetry.io/contrib/instrumentation/runtime v0.65.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.16.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.40.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0 // indirect
+ go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.40.0 // indirect
+ go.opentelemetry.io/otel/log v0.16.0 // indirect
+ go.opentelemetry.io/otel/sdk/log v0.16.0 // indirect
go.opentelemetry.io/proto/otlp v1.9.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
- go.uber.org/zap v1.27.0 // indirect
+ go.uber.org/zap v1.27.1 // indirect
go.yaml.in/yaml/v3 v3.0.4 // indirect
golang.org/x/crypto v0.47.0 // indirect
- golang.org/x/exp v0.0.0-20251009144603-d2f985daa21b // indirect
- golang.org/x/mod v0.31.0 // indirect
+ golang.org/x/exp v0.0.0-20260112195511-716be5621a96 // indirect
+ golang.org/x/mod v0.32.0 // indirect
golang.org/x/net v0.49.0 // indirect
- golang.org/x/oauth2 v0.34.0 // indirect
+ golang.org/x/oauth2 v0.35.0 // indirect
golang.org/x/sync v0.19.0 // indirect
- golang.org/x/sys v0.40.0 // indirect
+ golang.org/x/sys v0.41.0 // indirect
golang.org/x/text v0.33.0 // indirect
golang.org/x/time v0.14.0 // indirect
- golang.org/x/tools v0.40.0 // indirect
+ golang.org/x/tools v0.41.0 // indirect
google.golang.org/appengine v1.6.8 // indirect
- google.golang.org/genproto v0.0.0-20251202230838-ff82c1b0f217 // indirect
- google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217 // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20260122232226-8e98ce8d340d // indirect
+ google.golang.org/genproto v0.0.0-20260203192932-546029d2fa20 // indirect
+ google.golang.org/genproto/googleapis/api v0.0.0-20260203192932-546029d2fa20 // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20260203192932-546029d2fa20 // indirect
google.golang.org/grpc v1.78.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
gorm.io/driver/clickhouse v0.7.0 // indirect
diff --git a/api/go.sum b/api/go.sum
index bcef44d0..f09c7cbb 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -1,7 +1,7 @@
bou.ke/monkey v1.0.2 h1:kWcnsrCNUatbxncxR/ThdYqbytgOIArtYWqcQLQzKLI=
bou.ke/monkey v1.0.2/go.mod h1:OqickVX3tNx6t33n1xvtTtu85YN5s6cKwVug+oHMaIA=
-cel.dev/expr v0.24.0 h1:56OvJKSH3hDGL0ml5uSxZmz3/3Pq4tJ+fb1unVLAFcY=
-cel.dev/expr v0.24.0/go.mod h1:hLPLo1W4QUmuYdA72RBX06QTs6MXw941piREPl3Yfiw=
+cel.dev/expr v0.25.1 h1:1KrZg61W6TWSxuNZ37Xy49ps13NUovb66QLprthtwi4=
+cel.dev/expr v0.25.1/go.mod h1:hrXvqGP6G6gyx8UAHSHJ5RGk//1Oj5nXQ2NI02Nrsg4=
cloud.google.com/go v0.123.0 h1:2NAUJwPR47q+E35uaJeYoNhuNEM9kM8SjgRgdeOJUSE=
cloud.google.com/go v0.123.0/go.mod h1:xBoMV08QcqUGuPW65Qfm1o9Y4zKZBpGS+7bImXLTAZU=
cloud.google.com/go/auth v0.18.1 h1:IwTEx92GFUo2pJ6Qea0EU3zYvKnTAeRCODxfA/G5UWs=
@@ -12,18 +12,18 @@ cloud.google.com/go/cloudtasks v1.13.7 h1:H2v8GEolNtMFfYzUpZBaZbydqU7drpyo99GtAg
cloud.google.com/go/cloudtasks v1.13.7/go.mod h1:H0TThOUG+Ml34e2+ZtW6k6nt4i9KuH3nYAJ5mxh7OM4=
cloud.google.com/go/compute/metadata v0.9.0 h1:pDUj4QMoPejqq20dK0Pg2N4yG9zIkYGdBtwLoEkH9Zs=
cloud.google.com/go/compute/metadata v0.9.0/go.mod h1:E0bWwX5wTnLPedCKqk3pJmVgCBSM6qQI1yTBdEb3C10=
-cloud.google.com/go/firestore v1.20.0 h1:JLlT12QP0fM2SJirKVyu2spBCO8leElaW0OOtPm6HEo=
-cloud.google.com/go/firestore v1.20.0/go.mod h1:jqu4yKdBmDN5srneWzx3HlKrHFWFdlkgjgQ6BKIOFQo=
+cloud.google.com/go/firestore v1.21.0 h1:BhopUsx7kh6NFx77ccRsHhrtkbJUmDAxNY3uapWdjcM=
+cloud.google.com/go/firestore v1.21.0/go.mod h1:1xH6HNcnkf/gGyR8udd6pFO4Z7GWJSwLKQMx/u6UrP4=
cloud.google.com/go/iam v1.5.3 h1:+vMINPiDF2ognBJ97ABAYYwRgsaqxPbQDlMnbHMjolc=
cloud.google.com/go/iam v1.5.3/go.mod h1:MR3v9oLkZCTlaqljW6Eb2d3HGDGK5/bDv93jhfISFvU=
cloud.google.com/go/logging v1.13.1 h1:O7LvmO0kGLaHY/gq8cV7T0dyp6zJhYAOtZPX4TF3QtY=
cloud.google.com/go/logging v1.13.1/go.mod h1:XAQkfkMBxQRjQek96WLPNze7vsOmay9H5PqfsNYDqvw=
-cloud.google.com/go/longrunning v0.7.0 h1:FV0+SYF1RIj59gyoWDRi45GiYUMM3K1qO51qoboQT1E=
-cloud.google.com/go/longrunning v0.7.0/go.mod h1:ySn2yXmjbK9Ba0zsQqunhDkYi0+9rlXIwnoAf+h+TPY=
+cloud.google.com/go/longrunning v0.8.0 h1:LiKK77J3bx5gDLi4SMViHixjD2ohlkwBi+mKA7EhfW8=
+cloud.google.com/go/longrunning v0.8.0/go.mod h1:UmErU2Onzi+fKDg2gR7dusz11Pe26aknR4kHmJJqIfk=
cloud.google.com/go/monitoring v1.24.3 h1:dde+gMNc0UhPZD1Azu6at2e79bfdztVDS5lvhOdsgaE=
cloud.google.com/go/monitoring v1.24.3/go.mod h1:nYP6W0tm3N9H/bOw8am7t62YTzZY+zUeQ+Bi6+2eonI=
-cloud.google.com/go/storage v1.57.0 h1:4g7NB7Ta7KetVbOMpCqy89C+Vg5VE8scqlSHUPm7Rds=
-cloud.google.com/go/storage v1.57.0/go.mod h1:329cwlpzALLgJuu8beyJ/uvQznDHpa2U5lGjWednkzg=
+cloud.google.com/go/storage v1.59.2 h1:gmOAuG1opU8YvycMNpP+DvHfT9BfzzK5Cy+arP+Nocw=
+cloud.google.com/go/storage v1.59.2/go.mod h1:cMWbtM+anpC74gn6qjLh+exqYcfmB9Hqe5z6adx+CLI=
cloud.google.com/go/trace v1.11.7 h1:kDNDX8JkaAG3R2nq1lIdkb7FCSi1rCmsEtKVsty7p+U=
cloud.google.com/go/trace v1.11.7/go.mod h1:TNn9d5V3fQVf6s4SCveVMIBS2LJUqo73GACmq/Tky0s=
dario.cat/mergo v1.0.2 h1:85+piFYR1tMbRrLcDwR18y4UKJ3aH1Tbzi24VRW1TK8=
@@ -32,12 +32,12 @@ filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
firebase.google.com/go v3.13.0+incompatible h1:3TdYC3DDi6aHn20qoRkxwGqNgdjtblwVAyRLQwGn/+4=
firebase.google.com/go v3.13.0+incompatible/go.mod h1:xlah6XbEyW6tbfSklcfe5FHJIwjt8toICdV5Wh9ptHs=
-github.com/ClickHouse/ch-go v0.69.0 h1:nO0OJkpxOlN/eaXFj0KzjTz5p7vwP1/y3GN4qc5z/iM=
-github.com/ClickHouse/ch-go v0.69.0/go.mod h1:9XeZpSAT4S0kVjOpaJ5186b7PY/NH/hhF8R6u0WIjwg=
-github.com/ClickHouse/clickhouse-go/v2 v2.40.3 h1:46jB4kKwVDUOnECpStKMVXxvR0Cg9zeV9vdbPjtn6po=
-github.com/ClickHouse/clickhouse-go/v2 v2.40.3/go.mod h1:qO0HwvjCnTB4BPL/k6EE3l4d9f/uF+aoimAhJX70eKA=
-github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.30.0 h1:sBEjpZlNHzK1voKq9695PJSX2o5NEXl7/OL3coiIY0c=
-github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.30.0/go.mod h1:P4WPRUkOhJC13W//jWpyfJNDAIpvRbAUIYLX/4jtlE0=
+github.com/ClickHouse/ch-go v0.71.0 h1:bUdZ/EZj/LcVHsMqaRUP2holqygrPWQKeMjc6nZoyRM=
+github.com/ClickHouse/ch-go v0.71.0/go.mod h1:NwbNc+7jaqfY58dmdDUbG4Jl22vThgx1cYjBw0vtgXw=
+github.com/ClickHouse/clickhouse-go/v2 v2.43.0 h1:fUR05TrF1GyvLDa/mAQjkx7KbgwdLRffs2n9O3WobtE=
+github.com/ClickHouse/clickhouse-go/v2 v2.43.0/go.mod h1:o6jf7JM/zveWC/PP277BLxjHy5KjnGX/jfljhM4s34g=
+github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.31.0 h1:DHa2U07rk8syqvCge0QIGMCE1WxGj9njT44GH7zNJLQ=
+github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.31.0/go.mod h1:P4WPRUkOhJC13W//jWpyfJNDAIpvRbAUIYLX/4jtlE0=
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.55.0 h1:UnDZ/zFfG1JhH/DqxIZYU/1CUAlTUScoXD/LcM2Ykk8=
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.55.0/go.mod h1:IA1C1U7jO/ENqm/vhi7V9YYpBsp+IMyqNrEN94N7tVc=
github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/trace v1.31.0 h1:xQMhkBXPOKe/GzC6TctwlK2aNF+9k5VwFgdE83rBK2Y=
@@ -60,14 +60,14 @@ github.com/NdoleStudio/lemonsqueezy-go v1.3.1 h1:lMUVgdAx2onbOUJIVPR05xAANYuCMXB
github.com/NdoleStudio/lemonsqueezy-go v1.3.1/go.mod h1:xKRsRX1jSI6mLrVXyWh2sF/1isxTioZrSjWy6HpA3xQ=
github.com/NdoleStudio/plunk-go v0.0.2 h1:afPW7MHK4Z3rsybpJBnmTmxKCLKF1M7sPI+BNGPf35A=
github.com/NdoleStudio/plunk-go v0.0.2/go.mod h1:pqG3zKhpn/A2bL1K+WsWzvfTpOeSkYgXhNk5H65uEc8=
-github.com/PuerkitoBio/goquery v1.10.3 h1:pFYcNSqHxBD06Fpj/KsbStFRsgRATgnf3LeXiUkhzPo=
-github.com/PuerkitoBio/goquery v1.10.3/go.mod h1:tMUX0zDMHXYlAQk6p35XxQMqMweEKB7iK7iLNd4RH4Y=
+github.com/PuerkitoBio/goquery v1.11.0 h1:jZ7pwMQXIITcUXNH83LLk+txlaEy6NVOfTuP43xxfqw=
+github.com/PuerkitoBio/goquery v1.11.0/go.mod h1:wQHgxUOU3JGuj3oD/QFfxUdlzW6xPHfqyHre6VMY4DQ=
github.com/andybalholm/brotli v1.2.0 h1:ukwgCxwYrmACq68yiUqwIWnGY0cTPox/M94sVwToPjQ=
github.com/andybalholm/brotli v1.2.0/go.mod h1:rzTDkvFWvIrjDXZHkuS16NPggd91W3kUSvPlQ1pLaKY=
github.com/andybalholm/cascadia v1.3.3 h1:AG2YHrzJIm4BZ19iwJ/DAua6Btl3IwJX+VI4kktS1LM=
github.com/andybalholm/cascadia v1.3.3/go.mod h1:xNd9bqTn98Ln4DwST8/nG+H0yuB8Hmgu1YHNnWw0GeA=
-github.com/antlr4-go/antlr/v4 v4.13.0 h1:lxCg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8TVTI=
-github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g=
+github.com/antlr4-go/antlr/v4 v4.13.1 h1:SqQKkuVZ+zWkMMNkjy5FZe5mr5WURWnlpmOuzYWrPrQ=
+github.com/antlr4-go/antlr/v4 v4.13.1/go.mod h1:GKmUxMtwp6ZgGwZSva4eWPC5mS6vUAmOABFgjdkM7Nw=
github.com/avast/retry-go v3.0.0+incompatible h1:4SOWQ7Qs+oroOTQOYnAHqelpCO0biHSxpiH9JdtuBj0=
github.com/avast/retry-go v3.0.0+incompatible/go.mod h1:XtSnn+n/sHqQIpZ10K1qAevBhOOCWBLXXy3hyiqqBrY=
github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs=
@@ -80,16 +80,20 @@ github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1x
github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw=
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
-github.com/clipperhouse/uax29/v2 v2.2.0 h1:ChwIKnQN3kcZteTXMgb1wztSgaU+ZemkgWdohwgs8tY=
-github.com/clipperhouse/uax29/v2 v2.2.0/go.mod h1:EFJ2TJMRUaplDxHKj1qAEhCtQPW2tJSwu5BF98AuoVM=
+github.com/clipperhouse/displaywidth v0.9.0 h1:Qb4KOhYwRiN3viMv1v/3cTBlz3AcAZX3+y9OLhMtAtA=
+github.com/clipperhouse/displaywidth v0.9.0/go.mod h1:aCAAqTlh4GIVkhQnJpbL0T/WfcrJXHcj8C0yjYcjOZA=
+github.com/clipperhouse/stringish v0.1.1 h1:+NSqMOr3GR6k1FdRhhnXrLfztGzuG+VuFDfatpWHKCs=
+github.com/clipperhouse/stringish v0.1.1/go.mod h1:v/WhFtE1q0ovMta2+m+UbpZ+2/HEXNWYXQgCt4hdOzA=
+github.com/clipperhouse/uax29/v2 v2.6.0 h1:z0cDbUV+aPASdFb2/ndFnS9ts/WNXgTNNGFoKXuhpos=
+github.com/clipperhouse/uax29/v2 v2.6.0/go.mod h1:Wn1g7MK6OoeDT0vL+Q0SQLDz/KpfsVRgg6W7ihQeh4g=
github.com/cloudevents/sdk-go/v2 v2.16.2 h1:ZYDFrYke4FD+jM8TZTJJO6JhKHzOQl2oqpFK1D+NnQM=
github.com/cloudevents/sdk-go/v2 v2.16.2/go.mod h1:laOcGImm4nVJEU+PHnUrKL56CKmRL65RlQF0kRmW/kg=
-github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f h1:Y8xYupdHxryycyPlc9Y+bSQAYZnetRJ70VMVKm5CKI0=
-github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f/go.mod h1:HlzOvOjVBOfTGSRXRyY0OiCS/3J1akRGQQpRO/7zyF4=
+github.com/cncf/xds/go v0.0.0-20260202195803-dba9d589def2 h1:aBangftG7EVZoUb69Os8IaYg++6uMOdKK83QtkkvJik=
+github.com/cncf/xds/go v0.0.0-20260202195803-dba9d589def2/go.mod h1:qwXFYgsP6T7XnJtbKlf1HP8AjxZZyzxMmc+Lq5GjlU4=
github.com/cockroachdb/cockroach-go/v2 v2.4.3 h1:LJO3K3jC5WXvMePRQSJE1NsIGoFGcEx1LW83W6RAlhw=
github.com/cockroachdb/cockroach-go/v2 v2.4.3/go.mod h1:9U179XbCx4qFWtNhc7BiWLPfuyMVQ7qdAhfrwLz1vH0=
-github.com/coder/websocket v1.8.12 h1:5bUXkEPPIbewrnkU8LTCLVaxi4N4J8ahufH2vlo4NAo=
-github.com/coder/websocket v1.8.12/go.mod h1:LNVeNrXQZfe5qhS9ALED3uA+l5pPqvwXg3CKoDBB2gs=
+github.com/coder/websocket v1.8.14 h1:9L0p0iKiNOibykf283eHkKUHHrpG7f65OE3BhhO7v9g=
+github.com/coder/websocket v1.8.14/go.mod h1:NX3SzP+inril6yawo5CQXx8+fk145lPDC6pumgx0mVg=
github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
@@ -105,12 +109,12 @@ github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkp
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
github.com/envoyproxy/go-control-plane v0.13.5-0.20251024222203-75eaa193e329 h1:K+fnvUM0VZ7ZFJf0n4L/BRlnsb9pL/GuDG6FqaH+PwM=
github.com/envoyproxy/go-control-plane v0.13.5-0.20251024222203-75eaa193e329/go.mod h1:Alz8LEClvR7xKsrq3qzoc4N0guvVNSS8KmSChGYr9hs=
-github.com/envoyproxy/go-control-plane/envoy v1.35.0 h1:ixjkELDE+ru6idPxcHLj8LBVc2bFP7iBytj353BoHUo=
-github.com/envoyproxy/go-control-plane/envoy v1.35.0/go.mod h1:09qwbGVuSWWAyN5t/b3iyVfz5+z8QWGrzkoqm/8SbEs=
+github.com/envoyproxy/go-control-plane/envoy v1.36.0 h1:yg/JjO5E7ubRyKX3m07GF3reDNEnfOboJ0QySbH736g=
+github.com/envoyproxy/go-control-plane/envoy v1.36.0/go.mod h1:ty89S1YCCVruQAm9OtKeEkQLTb+Lkz0k8v9W0Oxsv98=
github.com/envoyproxy/go-control-plane/ratelimit v0.1.0 h1:/G9QYbddjL25KvtKTv3an9lx6VBE2cnb8wp1vEGNYGI=
github.com/envoyproxy/go-control-plane/ratelimit v0.1.0/go.mod h1:Wk+tMFAFbCXaJPzVVHnPgRKdUdwW/KdbRt94AzgRee4=
-github.com/envoyproxy/protoc-gen-validate v1.2.1 h1:DEo3O99U8j4hBFwbJfrz9VtgcDfUKS7KJ7spH3d86P8=
-github.com/envoyproxy/protoc-gen-validate v1.2.1/go.mod h1:d/C80l/jxXLdfEIhX1W2TmLfsJ31lvEjwamM4DxlWXU=
+github.com/envoyproxy/protoc-gen-validate v1.3.0 h1:TvGH1wof4H33rezVKWSpqKz5NXWg5VPuZ0uONDT6eb4=
+github.com/envoyproxy/protoc-gen-validate v1.3.0/go.mod h1:HvYl7zwPa5mffgyeTUHA9zHIH36nmrm7oCbo4YKoSWA=
github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=
github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU=
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
@@ -126,29 +130,33 @@ github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
-github.com/go-openapi/jsonpointer v0.22.1 h1:sHYI1He3b9NqJ4wXLoJDKmUmHkWy/L7rtEo92JUxBNk=
-github.com/go-openapi/jsonpointer v0.22.1/go.mod h1:pQT9OsLkfz1yWoMgYFy4x3U5GY5nUlsOn1qSBH5MkCM=
-github.com/go-openapi/jsonreference v0.21.2 h1:Wxjda4M/BBQllegefXrY/9aq1fxBA8sI5M/lFU6tSWU=
-github.com/go-openapi/jsonreference v0.21.2/go.mod h1:pp3PEjIsJ9CZDGCNOyXIQxsNuroxm8FAJ/+quA0yKzQ=
-github.com/go-openapi/spec v0.22.0 h1:xT/EsX4frL3U09QviRIZXvkh80yibxQmtoEvyqug0Tw=
-github.com/go-openapi/spec v0.22.0/go.mod h1:K0FhKxkez8YNS94XzF8YKEMULbFrRw4m15i2YUht4L0=
+github.com/go-openapi/jsonpointer v0.22.4 h1:dZtK82WlNpVLDW2jlA1YCiVJFVqkED1MegOUy9kR5T4=
+github.com/go-openapi/jsonpointer v0.22.4/go.mod h1:elX9+UgznpFhgBuaMQ7iu4lvvX1nvNsesQ3oxmYTw80=
+github.com/go-openapi/jsonreference v0.21.4 h1:24qaE2y9bx/q3uRK/qN+TDwbok1NhbSmGjjySRCHtC8=
+github.com/go-openapi/jsonreference v0.21.4/go.mod h1:rIENPTjDbLpzQmQWCj5kKj3ZlmEh+EFVbz3RTUh30/4=
+github.com/go-openapi/spec v0.22.3 h1:qRSmj6Smz2rEBxMnLRBMeBWxbbOvuOoElvSvObIgwQc=
+github.com/go-openapi/spec v0.22.3/go.mod h1:iIImLODL2loCh3Vnox8TY2YWYJZjMAKYyLH2Mu8lOZs=
github.com/go-openapi/swag v0.19.15 h1:D2NRCBzS9/pEY3gP9Nl8aDqGUcPFrwG2p+CNFrLyrCM=
-github.com/go-openapi/swag/conv v0.25.1 h1:+9o8YUg6QuqqBM5X6rYL/p1dpWeZRhoIt9x7CCP+he0=
-github.com/go-openapi/swag/conv v0.25.1/go.mod h1:Z1mFEGPfyIKPu0806khI3zF+/EUXde+fdeksUl2NiDs=
-github.com/go-openapi/swag/jsonname v0.25.1 h1:Sgx+qbwa4ej6AomWC6pEfXrA6uP2RkaNjA9BR8a1RJU=
-github.com/go-openapi/swag/jsonname v0.25.1/go.mod h1:71Tekow6UOLBD3wS7XhdT98g5J5GR13NOTQ9/6Q11Zo=
-github.com/go-openapi/swag/jsonutils v0.25.1 h1:AihLHaD0brrkJoMqEZOBNzTLnk81Kg9cWr+SPtxtgl8=
-github.com/go-openapi/swag/jsonutils v0.25.1/go.mod h1:JpEkAjxQXpiaHmRO04N1zE4qbUEg3b7Udll7AMGTNOo=
-github.com/go-openapi/swag/jsonutils/fixtures_test v0.25.1 h1:DSQGcdB6G0N9c/KhtpYc71PzzGEIc/fZ1no35x4/XBY=
-github.com/go-openapi/swag/jsonutils/fixtures_test v0.25.1/go.mod h1:kjmweouyPwRUEYMSrbAidoLMGeJ5p6zdHi9BgZiqmsg=
-github.com/go-openapi/swag/loading v0.25.1 h1:6OruqzjWoJyanZOim58iG2vj934TysYVptyaoXS24kw=
-github.com/go-openapi/swag/loading v0.25.1/go.mod h1:xoIe2EG32NOYYbqxvXgPzne989bWvSNoWoyQVWEZicc=
-github.com/go-openapi/swag/stringutils v0.25.1 h1:Xasqgjvk30eUe8VKdmyzKtjkVjeiXx1Iz0zDfMNpPbw=
-github.com/go-openapi/swag/stringutils v0.25.1/go.mod h1:JLdSAq5169HaiDUbTvArA2yQxmgn4D6h4A+4HqVvAYg=
-github.com/go-openapi/swag/typeutils v0.25.1 h1:rD/9HsEQieewNt6/k+JBwkxuAHktFtH3I3ysiFZqukA=
-github.com/go-openapi/swag/typeutils v0.25.1/go.mod h1:9McMC/oCdS4BKwk2shEB7x17P6HmMmA6dQRtAkSnNb8=
-github.com/go-openapi/swag/yamlutils v0.25.1 h1:mry5ez8joJwzvMbaTGLhw8pXUnhDK91oSJLDPF1bmGk=
-github.com/go-openapi/swag/yamlutils v0.25.1/go.mod h1:cm9ywbzncy3y6uPm/97ysW8+wZ09qsks+9RS8fLWKqg=
+github.com/go-openapi/swag/conv v0.25.4 h1:/Dd7p0LZXczgUcC/Ikm1+YqVzkEeCc9LnOWjfkpkfe4=
+github.com/go-openapi/swag/conv v0.25.4/go.mod h1:3LXfie/lwoAv0NHoEuY1hjoFAYkvlqI/Bn5EQDD3PPU=
+github.com/go-openapi/swag/jsonname v0.25.4 h1:bZH0+MsS03MbnwBXYhuTttMOqk+5KcQ9869Vye1bNHI=
+github.com/go-openapi/swag/jsonname v0.25.4/go.mod h1:GPVEk9CWVhNvWhZgrnvRA6utbAltopbKwDu8mXNUMag=
+github.com/go-openapi/swag/jsonutils v0.25.4 h1:VSchfbGhD4UTf4vCdR2F4TLBdLwHyUDTd1/q4i+jGZA=
+github.com/go-openapi/swag/jsonutils v0.25.4/go.mod h1:7OYGXpvVFPn4PpaSdPHJBtF0iGnbEaTk8AvBkoWnaAY=
+github.com/go-openapi/swag/jsonutils/fixtures_test v0.25.4 h1:IACsSvBhiNJwlDix7wq39SS2Fh7lUOCJRmx/4SN4sVo=
+github.com/go-openapi/swag/jsonutils/fixtures_test v0.25.4/go.mod h1:Mt0Ost9l3cUzVv4OEZG+WSeoHwjWLnarzMePNDAOBiM=
+github.com/go-openapi/swag/loading v0.25.4 h1:jN4MvLj0X6yhCDduRsxDDw1aHe+ZWoLjW+9ZQWIKn2s=
+github.com/go-openapi/swag/loading v0.25.4/go.mod h1:rpUM1ZiyEP9+mNLIQUdMiD7dCETXvkkC30z53i+ftTE=
+github.com/go-openapi/swag/stringutils v0.25.4 h1:O6dU1Rd8bej4HPA3/CLPciNBBDwZj9HiEpdVsb8B5A8=
+github.com/go-openapi/swag/stringutils v0.25.4/go.mod h1:GTsRvhJW5xM5gkgiFe0fV3PUlFm0dr8vki6/VSRaZK0=
+github.com/go-openapi/swag/typeutils v0.25.4 h1:1/fbZOUN472NTc39zpa+YGHn3jzHWhv42wAJSN91wRw=
+github.com/go-openapi/swag/typeutils v0.25.4/go.mod h1:Ou7g//Wx8tTLS9vG0UmzfCsjZjKhpjxayRKTHXf2pTE=
+github.com/go-openapi/swag/yamlutils v0.25.4 h1:6jdaeSItEUb7ioS9lFoCZ65Cne1/RZtPBZ9A56h92Sw=
+github.com/go-openapi/swag/yamlutils v0.25.4/go.mod h1:MNzq1ulQu+yd8Kl7wPOut/YHAAU/H6hL91fF+E2RFwc=
+github.com/go-openapi/testify/enable/yaml/v2 v2.0.2 h1:0+Y41Pz1NkbTHz8NngxTuAXxEodtNSI1WG1c/m5Akw4=
+github.com/go-openapi/testify/enable/yaml/v2 v2.0.2/go.mod h1:kme83333GCtJQHXQ8UKX3IBZu6z8T5Dvy5+CW3NLUUg=
+github.com/go-openapi/testify/v2 v2.0.2 h1:X999g3jeLcoY8qctY/c/Z8iBHTbwLz7R2WXd6Ub6wls=
+github.com/go-openapi/testify/v2 v2.0.2/go.mod h1:HCPmvFFnheKK2BuwSA0TbbdxJ3I16pjwMkYkP4Ywn54=
github.com/go-sql-driver/mysql v1.9.3 h1:U/N249h2WzJ3Ukj8SowVFjdtZKfu9vlLZxjPXV1aweo=
github.com/go-sql-driver/mysql v1.9.3/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU=
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
@@ -182,32 +190,34 @@ github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/googleapis/enterprise-certificate-proxy v0.3.11 h1:vAe81Msw+8tKUxi2Dqh/NZMz7475yUvmRIkXr4oN2ao=
github.com/googleapis/enterprise-certificate-proxy v0.3.11/go.mod h1:RFV7MUdlb7AgEq2v7FmMCfeSMCllAzWxFgRdusoGks8=
-github.com/googleapis/gax-go/v2 v2.16.0 h1:iHbQmKLLZrexmb0OSsNGTeSTS0HO4YvFOG8g5E4Zd0Y=
-github.com/googleapis/gax-go/v2 v2.16.0/go.mod h1:o1vfQjjNZn4+dPnRdl/4ZD7S9414Y4xA+a/6Icj6l14=
+github.com/googleapis/gax-go/v2 v2.17.0 h1:RksgfBpxqff0EZkDWYuz9q/uWsTVz+kf43LsZ1J6SMc=
+github.com/googleapis/gax-go/v2 v2.17.0/go.mod h1:mzaqghpQp4JDh3HvADwrat+6M3MOIDp5YKHhb9PAgDY=
github.com/gorilla/css v1.0.1 h1:ntNaBIghp6JmvWnxbZKANoLyuXTPZ4cAMlo6RyhlbO8=
github.com/gorilla/css v1.0.1/go.mod h1:BvnYkspnSzMmwRK+b8/xgNPLiIuNZr6vbZBTPQ2A3b0=
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.3 h1:NmZ1PKzSTQbuGHw9DGPFomqkkLWMC+vZCkfs+FHv1Vg=
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.3/go.mod h1:zQrxl1YP88HQlA6i9c63DSVPFklWpGX4OWAc9bFuaH4=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.7 h1:X+2YciYSxvMQK0UZ7sg45ZVabVZBeBuvMkmuI2V3Fak=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.7/go.mod h1:lW34nIZuQ8UDPdkon5fmfp2l3+ZkQ2me/+oecHYLOII=
github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ=
github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB11/k=
github.com/hashicorp/go-hclog v1.6.3/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M=
github.com/hashicorp/go-retryablehttp v0.7.8 h1:ylXZWnqa7Lhqpk0L1P1LzDtGcCR0rPVUrx/c8Unxc48=
github.com/hashicorp/go-retryablehttp v0.7.8/go.mod h1:rjiScheydd+CxvumBsIrFKlx3iS0jrZ7LvzFGFmuKbw=
-github.com/hashicorp/go-version v1.7.0 h1:5tqGy27NaOTB8yJKUZELlFAS/LTKJkrmONwQKeRZfjY=
-github.com/hashicorp/go-version v1.7.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
+github.com/hashicorp/go-version v1.8.0 h1:KAkNb1HAiZd1ukkxDFGmokVZe1Xy9HG6NUp+bPle2i4=
+github.com/hashicorp/go-version v1.8.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA=
github.com/hirosassa/zerodriver v0.1.4 h1:8bzamKUOHHq03aEk12qi/lnji2dM+IhFOe+RpKpIZFM=
github.com/hirosassa/zerodriver v0.1.4/go.mod h1:hHOOAQvVGwBV1iVVYujM6vwOBBqQcBIFpJxCD9mJU7Y=
github.com/huandu/xstrings v1.5.0 h1:2ag3IFq9ZDANvthTwTiqSSZLjDc+BedvHPAp5tJy2TI=
github.com/huandu/xstrings v1.5.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4=
github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY=
+github.com/inbucket/html2text v1.0.0 h1:N5kza++4uBBDJ2Z3KUnTRyPNoBcW+YfOgNiNmNB+sgs=
+github.com/inbucket/html2text v1.0.0/go.mod h1:5TrhXQKGU+LXurODaSm55Y9eXoPBRnYiOz4x2XfUoJU=
github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM=
github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg=
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 h1:iCEnooe7UlwOQYpKFhBabPMi4aNAfoODPEFNiAnClxo=
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM=
-github.com/jackc/pgx/v5 v5.7.6 h1:rWQc5FwZSPX58r1OQmkuaNicxdmExaEz5A2DO2hUuTk=
-github.com/jackc/pgx/v5 v5.7.6/go.mod h1:aruU7o91Tc2q2cFp5h4uP3f6ztExVpyVv88Xl/8Vl8M=
+github.com/jackc/pgx/v5 v5.8.0 h1:TYPDoleBBme0xGSAX3/+NujXXtpZn9HBONkQC7IEZSo=
+github.com/jackc/pgx/v5 v5.8.0/go.mod h1:QVeDInX2m9VyzvNeiCJVjCkNFqzsNb43204HshNSZKw=
github.com/jackc/puddle/v2 v2.2.2 h1:PR8nw+E/1w0GLuRFSmiioY6UooMp6KJv0/61nB7icHo=
github.com/jackc/puddle/v2 v2.2.2/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4=
github.com/jaswdr/faker/v2 v2.9.1 h1:J0Rjqb2/FquZnoZplzkGVL5LmhNkeIpvsSMoJKzn+8E=
@@ -229,8 +239,8 @@ github.com/jszwec/csvutil v1.10.0/go.mod h1:/E4ONrmGkwmWsk9ae9jpXnv9QT8pLHEPcCir
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
-github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo=
-github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ=
+github.com/klauspost/compress v1.18.3 h1:9PJRvfbmTabkOX8moIpXPbMMbYN60bWImDDU7L+/6zw=
+github.com/klauspost/compress v1.18.3/go.mod h1:R0h/fSBs8DE4ENlcrlib3PsXS61voFxhIs2DeRhCvJ4=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
@@ -249,11 +259,10 @@ github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/
github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
-github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw=
github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs=
-github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU=
-github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
+github.com/mattn/go-sqlite3 v1.14.33 h1:A5blZ5ulQo2AtayQ9/limgHEkFreKj1Dv226a1K73s0=
+github.com/mattn/go-sqlite3 v1.14.33/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw=
github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s=
github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ=
@@ -266,8 +275,14 @@ github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjY
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
github.com/nyaruka/phonenumbers v1.6.8 h1:k7HAJ/LeBkXE0vfbajITzTCZD0z0j+epdBNx43yTygk=
github.com/nyaruka/phonenumbers v1.6.8/go.mod h1:IUu45lj2bSeYXQuxDyyuzOrdV10tyRa1YSsfH8EKN5c=
-github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
-github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
+github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 h1:zrbMGy9YXpIeTnGj4EljqMiZsIcE09mmF8XsD5AYOJc=
+github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6/go.mod h1:rEKTHC9roVVicUIfZK7DYrdIoM0EOr8mK1Hj5s3JjH0=
+github.com/olekukonko/errors v1.2.0 h1:10Zcn4GeV59t/EGqJc8fUjtFT/FuUh5bTMzZ1XwmCRo=
+github.com/olekukonko/errors v1.2.0/go.mod h1:ppzxA5jBKcO1vIpCXQ9ZqgDh8iwODz6OXIGKU8r5m4Y=
+github.com/olekukonko/ll v0.1.4 h1:QcDaO9quz213xqHZr0gElOcYeOSnFeq7HTQ9Wu4O1wE=
+github.com/olekukonko/ll v0.1.4/go.mod h1:b52bVQRRPObe+yyBl0TxNfhesL0nedD4Cht0/zx55Ew=
+github.com/olekukonko/tablewriter v1.1.3 h1:VSHhghXxrP0JHl+0NnKid7WoEmd9/urKRJLysb70nnA=
+github.com/olekukonko/tablewriter v1.1.3/go.mod h1:9VU0knjhmMkXjnMKrZ3+L2JhhtsQ/L38BbL3CRNE8tM=
github.com/palantir/stacktrace v0.0.0-20161112013806-78658fd2d177 h1:nRlQD0u1871kaznCnn1EvYiMbum36v7hw1DLPEjds4o=
github.com/palantir/stacktrace v0.0.0-20161112013806-78658fd2d177/go.mod h1:ao5zGxj8Z4x60IOVYZUbDSmt3R8Ddo080vEgPosHpak=
github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc=
@@ -275,8 +290,8 @@ github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTK
github.com/paulmach/orb v0.12.0 h1:z+zOwjmG3MyEEqzv92UN49Lg1JFYx0L9GpGKNVDKk1s=
github.com/paulmach/orb v0.12.0/go.mod h1:5mULz1xQfs3bmQm63QEJA6lNGujuRafwA5S/EnuLaLU=
github.com/paulmach/protoscan v0.2.1/go.mod h1:SpcSwydNLrxUGSDvXvO0P7g7AuhJ7lcKfDlhJCDw2gY=
-github.com/pierrec/lz4/v4 v4.1.22 h1:cKFw6uJDK+/gfw5BcDL0JL5aBsAFdsIT18eRtLj7VIU=
-github.com/pierrec/lz4/v4 v4.1.22/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
+github.com/pierrec/lz4/v4 v4.1.25 h1:kocOqRffaIbU5djlIBr7Wh+cx82C0vtFb0fOurZHqD0=
+github.com/pierrec/lz4/v4 v4.1.25/go.mod h1:EoQMVJgeeEOMsCqCzqFm2O0cJvljX2nGZjcRIPL34O4=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo=
@@ -292,11 +307,10 @@ github.com/redis/go-redis/extra/redisotel/v9 v9.17.3 h1:bF0e3fV7PL0knd1UHDtMud8w
github.com/redis/go-redis/extra/redisotel/v9 v9.17.3/go.mod h1:gR39sPK/dJZlqgIA9Nm4JFHcQJPyhsISBLj708nrD4w=
github.com/redis/go-redis/v9 v9.17.3 h1:fN29NdNrE17KttK5Ndf20buqfDZwGNgoUr9qjl1DQx4=
github.com/redis/go-redis/v9 v9.17.3/go.mod h1:u410H11HMLoB+TP67dz8rL9s6QW2j76l0//kSOd3370=
-github.com/richardlehane/mscfb v1.0.4 h1:WULscsljNPConisD5hR0+OyZjwK46Pfyr6mPu5ZawpM=
-github.com/richardlehane/mscfb v1.0.4/go.mod h1:YzVpcZg9czvAuhk9T+a3avCpcFPMUWm7gK3DypaEsUk=
-github.com/richardlehane/msoleps v1.0.1/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg=
-github.com/richardlehane/msoleps v1.0.4 h1:WuESlvhX3gH2IHcd8UqyCuFY5yiq/GR/yqaSM/9/g00=
-github.com/richardlehane/msoleps v1.0.4/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg=
+github.com/richardlehane/mscfb v1.0.6 h1:eN3bvvZCp00bs7Zf52bxNwAx5lJDBK1tCuH19qq5aC8=
+github.com/richardlehane/mscfb v1.0.6/go.mod h1:pe0+IUIc0AHh0+teNzBlJCtSyZdFOGgV4ZK9bsoV+Jo=
+github.com/richardlehane/msoleps v1.0.6 h1:9BvkpjvD+iUBalUY4esMwv6uBkfOip/Lzvd93jvR9gg=
+github.com/richardlehane/msoleps v1.0.6/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg=
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0=
@@ -325,20 +339,20 @@ github.com/swaggo/swag v1.16.6/go.mod h1:ngP2etMK5a0P3QBizic5MEwpRmluJZPHjXcMoj4
github.com/thedevsaddam/govalidator v1.9.10 h1:m3dLRbSZ5Hts3VUWYe+vxLMG+FdyQuWOjzTeQRiMCvU=
github.com/thedevsaddam/govalidator v1.9.10/go.mod h1:Ilx8u7cg5g3LXbSS943cx5kczyNuUn7LH/cK5MYuE90=
github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk=
-github.com/tiendc/go-deepcopy v1.7.1 h1:LnubftI6nYaaMOcaz0LphzwraqN8jiWTwm416sitff4=
-github.com/tiendc/go-deepcopy v1.7.1/go.mod h1:4bKjNC2r7boYOkD2IOuZpYjmlDdzjbpTRyCx+goBCJQ=
+github.com/tiendc/go-deepcopy v1.7.2 h1:Ut2yYR7W9tWjTQitganoIue4UGxZwCcJy3orjrrIj44=
+github.com/tiendc/go-deepcopy v1.7.2/go.mod h1:4bKjNC2r7boYOkD2IOuZpYjmlDdzjbpTRyCx+goBCJQ=
github.com/tursodatabase/libsql-client-go v0.0.0-20251219100830-236aa1ff8acc h1:lzi/5fg2EfinRlh3v//YyIhnc4tY7BTqazQGwb1ar+0=
github.com/tursodatabase/libsql-client-go v0.0.0-20251219100830-236aa1ff8acc/go.mod h1:08inkKyguB6CGGssc/JzhmQWwBgFQBgjlYFjxjRh7nU=
github.com/uptrace/uptrace-go v1.39.0 h1:MszuE3eX/z86xzYywN2JBtYcmsS4ofdo1VMDhRvkWrI=
github.com/uptrace/uptrace-go v1.39.0/go.mod h1:FquipEqgTMXPbhdhenjbiLHG1R5WYdxVH6zgwHeMzzA=
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
-github.com/valyala/fasthttp v1.67.0 h1:tqKlJMUP6iuNG8hGjK/s9J4kadH7HLV4ijEcPGsezac=
-github.com/valyala/fasthttp v1.67.0/go.mod h1:qYSIpqt/0XNmShgo/8Aq8E3UYWVVwNS2QYmzd8WIEPM=
+github.com/valyala/fasthttp v1.69.0 h1:fNLLESD2SooWeh2cidsuFtOcrEi4uB4m1mPrkJMZyVI=
+github.com/valyala/fasthttp v1.69.0/go.mod h1:4wA4PfAraPlAsJ5jMSqCE2ug5tqUPwKXxVj8oNECGcw=
github.com/vanng822/css v1.0.1 h1:10yiXc4e8NI8ldU6mSrWmSWMuyWgPr9DZ63RSlsgDw8=
github.com/vanng822/css v1.0.1/go.mod h1:tcnB1voG49QhCrwq1W0w5hhGasvOg+VQp9i9H1rCM1w=
-github.com/vanng822/go-premailer v1.25.0 h1:hGHKfroCXrCDTyGVR8o4HCON5/HWvc7C1uocS+VnaZs=
-github.com/vanng822/go-premailer v1.25.0/go.mod h1:8WJKIPZtegxqSOA8+eDFx7QNesKmMYfGEIodLTJqrtM=
+github.com/vanng822/go-premailer v1.30.0 h1:9oAp2PrJm4rvPnBgP57J/K1sJ1fQvSrU8TxamFvvwGU=
+github.com/vanng822/go-premailer v1.30.0/go.mod h1:1okMIRBIcWIK1g5vJKaXi2ytD1ulsIc9wUGwK7UD3/I=
github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g=
github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8=
@@ -357,56 +371,56 @@ github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5t
go.mongodb.org/mongo-driver v1.11.4/go.mod h1:PTSz5yu21bkT/wXpkS7WR5f0ddqw5quethTUn9WM+2g=
go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64=
go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y=
-go.opentelemetry.io/contrib v1.38.0 h1:msaHYZ13HfLIbqXsGwZZQBg5zgxwumlZ1mCkXn3E7LM=
-go.opentelemetry.io/contrib v1.38.0/go.mod h1:4Vp7Az5Dez02V1lCi9OqLvSmSz0lbZu/O2r4XZsqwB0=
-go.opentelemetry.io/contrib/detectors/gcp v1.38.0 h1:ZoYbqX7OaA/TAikspPl3ozPI6iY6LiIY9I8cUfm+pJs=
-go.opentelemetry.io/contrib/detectors/gcp v1.38.0/go.mod h1:SU+iU7nu5ud4oCb3LQOhIZ3nRLj6FNVrKgtflbaf2ts=
-go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0 h1:YH4g8lQroajqUwWbq/tr2QX1JFmEXaDLgG+ew9bLMWo=
-go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0/go.mod h1:fvPi2qXDqFs8M4B4fmJhE92TyQs9Ydjlg3RvfUp+NbQ=
-go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 h1:RbKq8BG0FI8OiXhBfcRtqqHcZcka+gU3cskNuf05R18=
-go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0/go.mod h1:h06DGIukJOevXaj/xrNjhi/2098RZzcLTbc0jDAUbsg=
-go.opentelemetry.io/contrib/instrumentation/runtime v0.64.0 h1:/+/+UjlXjFcdDlXxKL1PouzX8Z2Vl0OxolRKeBEgYDw=
-go.opentelemetry.io/contrib/instrumentation/runtime v0.64.0/go.mod h1:Ldm/PDuzY2DP7IypudopCR3OCOW42NJlN9+mNEroevo=
+go.opentelemetry.io/contrib v1.40.0 h1:Vv1qG9EIHpJWl2EFxOlhv0WgGNYQD9s0U/z3xkEonl8=
+go.opentelemetry.io/contrib v1.40.0/go.mod h1:8z64gUE9jZgMGFCiGyF7NZnN5N0xaVaxdnV2DXBmTkE=
+go.opentelemetry.io/contrib/detectors/gcp v1.40.0 h1:Awaf8gmW99tZTOWqkLCOl6aw1/rxAWVlHsHIZ3fT2sA=
+go.opentelemetry.io/contrib/detectors/gcp v1.40.0/go.mod h1:99OY9ZCqyLkzJLTh5XhECpLRSxcZl+ZDKBEO+jMBFR4=
+go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.65.0 h1:XmiuHzgJt067+a6kwyAzkhXooYVv3/TOw9cM2VfJgUM=
+go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.65.0/go.mod h1:KDgtbWKTQs4bM+VPUr6WlL9m/WXcmkCcBlIzqxPGzmI=
+go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0 h1:7iP2uCb7sGddAr30RRS6xjKy7AZ2JtTOPA3oolgVSw8=
+go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0/go.mod h1:c7hN3ddxs/z6q9xwvfLPk+UHlWRQyaeR1LdgfL/66l0=
+go.opentelemetry.io/contrib/instrumentation/runtime v0.65.0 h1:n8qdwrebNEHF/zHpueuZ4OacdJ8CdSaP7xef9WRZXTQ=
+go.opentelemetry.io/contrib/instrumentation/runtime v0.65.0/go.mod h1:Z1pjGxUL3nJ/IbDDfL6rBD0Xbz7ZOViRqrIUg4l1CYE=
go.opentelemetry.io/contrib/propagators/b3 v1.19.0 h1:ulz44cpm6V5oAeg5Aw9HyqGFMS6XM7untlMEhD7YzzA=
go.opentelemetry.io/contrib/propagators/b3 v1.19.0/go.mod h1:OzCmE2IVS+asTI+odXQstRGVfXQ4bXv9nMBRK0nNyqQ=
-go.opentelemetry.io/otel v1.39.0 h1:8yPrr/S0ND9QEfTfdP9V+SiwT4E0G7Y5MO7p85nis48=
-go.opentelemetry.io/otel v1.39.0/go.mod h1:kLlFTywNWrFyEdH0oj2xK0bFYZtHRYUdv1NklR/tgc8=
-go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.15.0 h1:EKpiGphOYq3CYnIe2eX9ftUkyU+Y8Dtte8OaWyHJ4+I=
-go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.15.0/go.mod h1:nWFP7C+T8TygkTjJ7mAyEaFaE7wNfms3nV/vexZ6qt0=
-go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.39.0 h1:nKP4Z2ejtHn3yShBb+2KawiXgpn8In5cT7aO2wXuOTE=
-go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.39.0/go.mod h1:NwjeBbNigsO4Aj9WgM0C+cKIrxsZUaRmZUO7A8I7u8o=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.39.0 h1:f0cb2XPmrqn4XMy9PNliTgRKJgS5WcL/u0/WRYGz4t0=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.39.0/go.mod h1:vnakAaFckOMiMtOIhFI2MNH4FYrZzXCYxmb1LlhoGz8=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.39.0 h1:Ckwye2FpXkYgiHX7fyVrN1uA/UYd9ounqqTuSNAv0k4=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.39.0/go.mod h1:teIFJh5pW2y+AN7riv6IBPX2DuesS3HgP39mwOspKwU=
-go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.36.0 h1:rixTyDGXFxRy1xzhKrotaHy3/KXdPhlWARrCgK+eqUY=
-go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.36.0/go.mod h1:dowW6UsM9MKbJq5JTz2AMVp3/5iW5I/TStsk8S+CfHw=
-go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.39.0 h1:8UPA4IbVZxpsD76ihGOQiFml99GPAEZLohDXvqHdi6U=
-go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.39.0/go.mod h1:MZ1T/+51uIVKlRzGw1Fo46KEWThjlCBZKl2LzY5nv4g=
-go.opentelemetry.io/otel/log v0.15.0 h1:0VqVnc3MgyYd7QqNVIldC3dsLFKgazR6P3P3+ypkyDY=
-go.opentelemetry.io/otel/log v0.15.0/go.mod h1:9c/G1zbyZfgu1HmQD7Qj84QMmwTp2QCQsZH1aeoWDE4=
-go.opentelemetry.io/otel/metric v1.39.0 h1:d1UzonvEZriVfpNKEVmHXbdf909uGTOQjA0HF0Ls5Q0=
-go.opentelemetry.io/otel/metric v1.39.0/go.mod h1:jrZSWL33sD7bBxg1xjrqyDjnuzTUB0x1nBERXd7Ftcs=
+go.opentelemetry.io/otel v1.40.0 h1:oA5YeOcpRTXq6NN7frwmwFR0Cn3RhTVZvXsP4duvCms=
+go.opentelemetry.io/otel v1.40.0/go.mod h1:IMb+uXZUKkMXdPddhwAHm6UfOwJyh4ct1ybIlV14J0g=
+go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.16.0 h1:djrxvDxAe44mJUrKataUbOhCKhR3F8QCyWucO16hTQs=
+go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.16.0/go.mod h1:dt3nxpQEiSoKvfTVxp3TUg5fHPLhKtbcnN3Z1I1ePD0=
+go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.40.0 h1:9y5sHvAxWzft1WQ4BwqcvA+IFVUJ1Ya75mSAUnFEVwE=
+go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.40.0/go.mod h1:eQqT90eR3X5Dbs1g9YSM30RavwLF725Ris5/XSXWvqE=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0 h1:QKdN8ly8zEMrByybbQgv8cWBcdAarwmIPZ6FThrWXJs=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0/go.mod h1:bTdK1nhqF76qiPoCCdyFIV+N/sRHYXYCTQc+3VCi3MI=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0 h1:wVZXIWjQSeSmMoxF74LzAnpVQOAFDo3pPji9Y4SOFKc=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0/go.mod h1:khvBS2IggMFNwZK/6lEeHg/W57h/IX6J4URh57fuI40=
+go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.38.0 h1:wm/Q0GAAykXv83wzcKzGGqAnnfLFyFe7RslekZuv+VI=
+go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.38.0/go.mod h1:ra3Pa40+oKjvYh+ZD3EdxFZZB0xdMfuileHAm4nNN7w=
+go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.40.0 h1:MzfofMZN8ulNqobCmCAVbqVL5syHw+eB2qPRkCMA/fQ=
+go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.40.0/go.mod h1:E73G9UFtKRXrxhBsHtG00TB5WxX57lpsQzogDkqBTz8=
+go.opentelemetry.io/otel/log v0.16.0 h1:DeuBPqCi6pQwtCK0pO4fvMB5eBq6sNxEnuTs88pjsN4=
+go.opentelemetry.io/otel/log v0.16.0/go.mod h1:rWsmqNVTLIA8UnwYVOItjyEZDbKIkMxdQunsIhpUMes=
+go.opentelemetry.io/otel/metric v1.40.0 h1:rcZe317KPftE2rstWIBitCdVp89A2HqjkxR3c11+p9g=
+go.opentelemetry.io/otel/metric v1.40.0/go.mod h1:ib/crwQH7N3r5kfiBZQbwrTge743UDc7DTFVZrrXnqc=
go.opentelemetry.io/otel/oteltest v1.0.0-RC3 h1:MjaeegZTaX0Bv9uB9CrdVjOFM/8slRjReoWoV9xDCpY=
go.opentelemetry.io/otel/oteltest v1.0.0-RC3/go.mod h1:xpzajI9JBRr7gX63nO6kAmImmYIAtuQblZ36Z+LfCjE=
-go.opentelemetry.io/otel/sdk v1.39.0 h1:nMLYcjVsvdui1B/4FRkwjzoRVsMK8uL/cj0OyhKzt18=
-go.opentelemetry.io/otel/sdk v1.39.0/go.mod h1:vDojkC4/jsTJsE+kh+LXYQlbL8CgrEcwmt1ENZszdJE=
-go.opentelemetry.io/otel/sdk/log v0.15.0 h1:WgMEHOUt5gjJE93yqfqJOkRflApNif84kxoHWS9VVHE=
-go.opentelemetry.io/otel/sdk/log v0.15.0/go.mod h1:qDC/FlKQCXfH5hokGsNg9aUBGMJQsrUyeOiW5u+dKBQ=
-go.opentelemetry.io/otel/sdk/log/logtest v0.14.0 h1:Ijbtz+JKXl8T2MngiwqBlPaHqc4YCaP/i13Qrow6gAM=
-go.opentelemetry.io/otel/sdk/log/logtest v0.14.0/go.mod h1:dCU8aEL6q+L9cYTqcVOk8rM9Tp8WdnHOPLiBgp0SGOA=
-go.opentelemetry.io/otel/sdk/metric v1.39.0 h1:cXMVVFVgsIf2YL6QkRF4Urbr/aMInf+2WKg+sEJTtB8=
-go.opentelemetry.io/otel/sdk/metric v1.39.0/go.mod h1:xq9HEVH7qeX69/JnwEfp6fVq5wosJsY1mt4lLfYdVew=
-go.opentelemetry.io/otel/trace v1.39.0 h1:2d2vfpEDmCJ5zVYz7ijaJdOF59xLomrvj7bjt6/qCJI=
-go.opentelemetry.io/otel/trace v1.39.0/go.mod h1:88w4/PnZSazkGzz/w84VHpQafiU4EtqqlVdxWy+rNOA=
+go.opentelemetry.io/otel/sdk v1.40.0 h1:KHW/jUzgo6wsPh9At46+h4upjtccTmuZCFAc9OJ71f8=
+go.opentelemetry.io/otel/sdk v1.40.0/go.mod h1:Ph7EFdYvxq72Y8Li9q8KebuYUr2KoeyHx0DRMKrYBUE=
+go.opentelemetry.io/otel/sdk/log v0.16.0 h1:e/b4bdlQwC5fnGtG3dlXUrNOnP7c8YLVSpSfEBIkTnI=
+go.opentelemetry.io/otel/sdk/log v0.16.0/go.mod h1:JKfP3T6ycy7QEuv3Hj8oKDy7KItrEkus8XJE6EoSzw4=
+go.opentelemetry.io/otel/sdk/log/logtest v0.16.0 h1:/XVkpZ41rVRTP4DfMgYv1nEtNmf65XPPyAdqV90TMy4=
+go.opentelemetry.io/otel/sdk/log/logtest v0.16.0/go.mod h1:iOOPgQr5MY9oac/F5W86mXdeyWZGleIx3uXO98X2R6Y=
+go.opentelemetry.io/otel/sdk/metric v1.40.0 h1:mtmdVqgQkeRxHgRv4qhyJduP3fYJRMX4AtAlbuWdCYw=
+go.opentelemetry.io/otel/sdk/metric v1.40.0/go.mod h1:4Z2bGMf0KSK3uRjlczMOeMhKU2rhUqdWNoKcYrtcBPg=
+go.opentelemetry.io/otel/trace v1.40.0 h1:WA4etStDttCSYuhwvEa8OP8I5EWu24lkOzp+ZYblVjw=
+go.opentelemetry.io/otel/trace v1.40.0/go.mod h1:zeAhriXecNGP/s2SEG3+Y8X9ujcJOTqQ5RgdEJcawiA=
go.opentelemetry.io/proto/otlp v1.9.0 h1:l706jCMITVouPOqEnii2fIAuO3IVGBRPV5ICjceRb/A=
go.opentelemetry.io/proto/otlp v1.9.0/go.mod h1:xE+Cx5E/eEHw+ISFkwPLwCZefwVjY+pqKg1qcK03+/4=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
-go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
-go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
+go.uber.org/zap v1.27.1 h1:08RqriUEv8+ArZRYSTXy1LeBScaMpVSTBhCeaZYfMYc=
+go.uber.org/zap v1.27.1/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc=
go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
@@ -421,8 +435,8 @@ golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
golang.org/x/crypto v0.47.0 h1:V6e3FRj+n4dbpw86FJ8Fv7XVOql7TEwpHapKoMJ/GO8=
golang.org/x/crypto v0.47.0/go.mod h1:ff3Y9VzzKbwSSEzWqJsJVBnWmRwRSHt/6Op5n9bQc4A=
-golang.org/x/exp v0.0.0-20251009144603-d2f985daa21b h1:18qgiDvlvH7kk8Ioa8Ov+K6xCi0GMvmGfGW0sgd/SYA=
-golang.org/x/exp v0.0.0-20251009144603-d2f985daa21b/go.mod h1:j/pmGrbnkbPtQfxEe5D0VQhZC6qKbfKifgD0oM7sR70=
+golang.org/x/exp v0.0.0-20260112195511-716be5621a96 h1:Z/6YuSHTLOHfNFdb8zVZomZr7cqNgTJvA8+Qz75D8gU=
+golang.org/x/exp v0.0.0-20260112195511-716be5621a96/go.mod h1:nzimsREAkjBCIEFtHiYkrJyT+2uy9YZJB7H1k68CXZU=
golang.org/x/image v0.25.0 h1:Y6uW6rH1y5y/LK1J8BPWZtr6yZ7hrsy6hFrXjgsc2fQ=
golang.org/x/image v0.25.0/go.mod h1:tCAmOEGthTtkalusGp1g3xa2gke8J6c2N565dTyl9Rs=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
@@ -432,8 +446,8 @@ golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
-golang.org/x/mod v0.31.0 h1:HaW9xtz0+kOcWKwli0ZXy79Ix+UW/vOfmWI5QVd2tgI=
-golang.org/x/mod v0.31.0/go.mod h1:43JraMp9cGx1Rx3AqioxrbrhNsLl2l/iNAvuBkrezpg=
+golang.org/x/mod v0.32.0 h1:9F4d3PHLljb6x//jOyokMv3eX+YDeepZSEo3mFJy93c=
+golang.org/x/mod v0.32.0/go.mod h1:SgipZ/3h2Ci89DlEtEXWUk/HteuRin+HHhN+WbNhguU=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -449,8 +463,8 @@ golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
golang.org/x/net v0.49.0 h1:eeHFmOGUTtaaPSGNmjBKpbng9MulQsJURQUAfUwY++o=
golang.org/x/net v0.49.0/go.mod h1:/ysNB2EvaqvesRkuLAyjI1ycPZlQHM3q01F02UY/MV8=
-golang.org/x/oauth2 v0.34.0 h1:hqK/t4AKgbqWkdkcAeI8XLmbK+4m4G5YeQRrmiotGlw=
-golang.org/x/oauth2 v0.34.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
+golang.org/x/oauth2 v0.35.0 h1:Mv2mzuHuZuY2+bkyWXIHMfhNdJAdwW3FuWeCPYN5GVQ=
+golang.org/x/oauth2 v0.35.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -479,8 +493,8 @@ golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
-golang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ=
-golang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
+golang.org/x/sys v0.41.0 h1:Ivj+2Cp/ylzLiEU89QhWblYnOE9zerudt9Ftecq2C6k=
+golang.org/x/sys v0.41.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
@@ -513,24 +527,24 @@ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
-golang.org/x/tools v0.40.0 h1:yLkxfA+Qnul4cs9QA3KnlFu0lVmd8JJfoq+E41uSutA=
-golang.org/x/tools v0.40.0/go.mod h1:Ik/tzLRlbscWpqqMRjyWYDisX8bG13FrdXp3o4Sr9lc=
+golang.org/x/tools v0.41.0 h1:a9b8iMweWG+S0OBnlU36rzLp20z1Rp10w+IY2czHTQc=
+golang.org/x/tools v0.41.0/go.mod h1:XSY6eDqxVNiYgezAVqqCeihT4j1U2CCsqvH3WhQpnlg=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk=
gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E=
-google.golang.org/api v0.264.0 h1:+Fo3DQXBK8gLdf8rFZ3uLu39JpOnhvzJrLMQSoSYZJM=
-google.golang.org/api v0.264.0/go.mod h1:fAU1xtNNisHgOF5JooAs8rRaTkl2rT3uaoNGo9NS3R8=
+google.golang.org/api v0.265.0 h1:FZvfUdI8nfmuNrE34aOWFPmLC+qRBEiNm3JdivTvAAU=
+google.golang.org/api v0.265.0/go.mod h1:uAvfEl3SLUj/7n6k+lJutcswVojHPp2Sp08jWCu8hLY=
google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM=
google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds=
-google.golang.org/genproto v0.0.0-20251202230838-ff82c1b0f217 h1:GvESR9BIyHUahIb0NcTum6itIWtdoglGX+rnGxm2934=
-google.golang.org/genproto v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:yJ2HH4EHEDTd3JiLmhds6NkJ17ITVYOdV3m3VKOnws0=
-google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217 h1:fCvbg86sFXwdrl5LgVcTEvNC+2txB5mgROGmRL5mrls=
-google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:+rXWjjaukWZun3mLfjmVnQi18E1AsFbDN9QdJ5YXLto=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20260122232226-8e98ce8d340d h1:xXzuihhT3gL/ntduUZwHECzAn57E8dA6l8SOtYWdD8Q=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20260122232226-8e98ce8d340d/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ=
+google.golang.org/genproto v0.0.0-20260203192932-546029d2fa20 h1:/CU1zrxTpGylJJbe3Ru94yy6sZRbzALq2/oxl3pGB3U=
+google.golang.org/genproto v0.0.0-20260203192932-546029d2fa20/go.mod h1:Tt+08/KdKEt3l8x3Pby3HLQxMB3uk/MzaQ4ZIv0ORTs=
+google.golang.org/genproto/googleapis/api v0.0.0-20260203192932-546029d2fa20 h1:7ei4lp52gK1uSejlA8AZl5AJjeLUOHBQscRQZUgAcu0=
+google.golang.org/genproto/googleapis/api v0.0.0-20260203192932-546029d2fa20/go.mod h1:ZdbssH/1SOVnjnDlXzxDHK2MCidiqXtbYccJNzNYPEE=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20260203192932-546029d2fa20 h1:Jr5R2J6F6qWyzINc+4AM8t5pfUz6beZpHp678GNrMbE=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20260203192932-546029d2fa20/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ=
google.golang.org/grpc v1.78.0 h1:K1XZG/yGDJnzMdd/uZHAkVqJE+xIDOcmdSFZkBUicNc=
google.golang.org/grpc v1.78.0/go.mod h1:I47qjTo4OKbMkjA/aOOwxDIiPSBofUtQUI5EfpWvW7U=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
From bb98f3d7b98bace5aa5efd404872a6d19581fe42 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Sun, 8 Feb 2026 22:51:06 +0200
Subject: [PATCH 119/215] Change hermes package
---
api/go.mod | 23 +++++----
api/go.sum | 26 +++++-----
api/pkg/emails/hermes_mailer.go | 2 +-
.../hermes_notification_email_factory.go | 48 +++++++++----------
api/pkg/emails/hermes_theme.go | 6 ++-
api/pkg/emails/hermes_user_email_factory.go | 2 +-
6 files changed, 58 insertions(+), 49 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index 7160e3dc..076b10e5 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -17,6 +17,7 @@ require (
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
github.com/dgraph-io/ristretto/v2 v2.4.0
github.com/dustin/go-humanize v1.0.1
+ github.com/go-hermes/hermes/v2 v2.6.2
github.com/gofiber/contrib/otelfiber v1.0.10
github.com/gofiber/fiber/v2 v2.52.11
github.com/gofiber/swagger v1.1.1
@@ -30,7 +31,6 @@ require (
github.com/jordan-wright/email v4.0.1-0.20210109023952-943e75fe5223+incompatible
github.com/jszwec/csvutil v1.10.0
github.com/lib/pq v1.11.1
- github.com/matcornic/hermes v1.3.0
github.com/nyaruka/phonenumbers v1.6.8
github.com/palantir/stacktrace v0.0.0-20161112013806-78658fd2d177
github.com/patrickmn/go-cache v2.1.0+incompatible
@@ -58,6 +58,18 @@ require (
gorm.io/plugin/opentelemetry v0.1.16
)
+require (
+ github.com/Masterminds/semver/v3 v3.4.0 // indirect
+ github.com/Masterminds/sprig/v3 v3.3.0 // indirect
+ github.com/inbucket/html2text v1.0.0 // indirect
+ github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 // indirect
+ github.com/olekukonko/errors v1.2.0 // indirect
+ github.com/olekukonko/ll v0.1.4 // indirect
+ github.com/sirupsen/logrus v1.9.4 // indirect
+ github.com/spf13/cast v1.10.0 // indirect
+ github.com/yuin/goldmark v1.7.16 // indirect
+)
+
require (
cel.dev/expr v0.25.1 // indirect
cloud.google.com/go v0.123.0 // indirect
@@ -78,8 +90,6 @@ require (
github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.55.0 // indirect
github.com/KyleBanks/depth v1.2.1 // indirect
github.com/Masterminds/goutils v1.1.1 // indirect
- github.com/Masterminds/semver v1.5.0 // indirect
- github.com/Masterminds/sprig v2.22.0+incompatible // indirect
github.com/PuerkitoBio/goquery v1.11.0 // indirect
github.com/andybalholm/brotli v1.2.0 // indirect
github.com/andybalholm/cascadia v1.3.3 // indirect
@@ -121,13 +131,10 @@ require (
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
github.com/hashicorp/go-version v1.8.0 // indirect
github.com/huandu/xstrings v1.5.0 // indirect
- github.com/imdario/mergo v0.3.16 // indirect
- github.com/inbucket/html2text v1.0.0 // indirect
github.com/jackc/pgpassfile v1.0.0 // indirect
github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect
github.com/jackc/pgx/v5 v5.8.0 // indirect
github.com/jackc/puddle/v2 v2.2.2 // indirect
- github.com/jaytaylor/html2text v0.0.0-20230321000545-74c2419ad056 // indirect
github.com/jinzhu/inflection v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/klauspost/compress v1.18.3 // indirect
@@ -139,9 +146,6 @@ require (
github.com/mitchellh/reflectwalk v1.0.2 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
- github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 // indirect
- github.com/olekukonko/errors v1.2.0 // indirect
- github.com/olekukonko/ll v0.1.4 // indirect
github.com/olekukonko/tablewriter v1.1.3 // indirect
github.com/paulmach/orb v0.12.0 // indirect
github.com/pierrec/lz4/v4 v4.1.25 // indirect
@@ -150,7 +154,6 @@ require (
github.com/redis/go-redis/extra/rediscmd/v9 v9.17.3 // indirect
github.com/richardlehane/mscfb v1.0.6 // indirect
github.com/richardlehane/msoleps v1.0.6 // indirect
- github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/segmentio/asm v1.2.1 // indirect
github.com/shopspring/decimal v1.4.0 // indirect
github.com/spiffe/go-spiffe/v2 v2.6.0 // indirect
diff --git a/api/go.sum b/api/go.sum
index f09c7cbb..5da59ad3 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -50,10 +50,10 @@ github.com/KyleBanks/depth v1.2.1 h1:5h8fQADFrWtarTdtDudMmGsC7GPbOAu6RVB3ffsVFHc
github.com/KyleBanks/depth v1.2.1/go.mod h1:jzSb9d0L43HxTQfT+oSA1EEp2q+ne2uh6XgeJcm8brE=
github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI=
github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU=
-github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww=
-github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
-github.com/Masterminds/sprig v2.22.0+incompatible h1:z4yfnGrZ7netVz+0EDJ0Wi+5VZCSYp4Z0m2dk6cEM60=
-github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o=
+github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0=
+github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM=
+github.com/Masterminds/sprig/v3 v3.3.0 h1:mQh0Yrg1XPo6vjYXgtf5OtijNAKJRNcTdOOGZe3tPhs=
+github.com/Masterminds/sprig/v3 v3.3.0/go.mod h1:Zy1iXRYNqNLUolqCpL4uhk6SHUMAOSCzdgBfDb35Lz0=
github.com/NdoleStudio/go-otelroundtripper v0.0.13 h1:fDgdxcNJov4LTrMhXqJnF/E3jO4HJVczj90wkxh5PSc=
github.com/NdoleStudio/go-otelroundtripper v0.0.13/go.mod h1:UIUQ22ErFoBUyLuPDrVNRRKmBHBTfzQO9GF1ztqDvqo=
github.com/NdoleStudio/lemonsqueezy-go v1.3.1 h1:lMUVgdAx2onbOUJIVPR05xAANYuCMXBRaGWpAdA4LiM=
@@ -119,10 +119,14 @@ github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=
github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU=
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
+github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8=
+github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0=
github.com/go-faster/city v1.0.1 h1:4WAxSZ3V2Ws4QRDrscLEDcibJY8uf41H6AhXDrNDcGw=
github.com/go-faster/city v1.0.1/go.mod h1:jKcUJId49qdW3L1qKHH/3wPeUstCVpVSXTM6vO3VcTw=
github.com/go-faster/errors v0.7.1 h1:MkJTnDoEdi9pDabt1dpWf7AA8/BaSYZqibYyhZ20AYg=
github.com/go-faster/errors v0.7.1/go.mod h1:5ySTjWFiphBs07IKuiL69nxdfd5+fzh1u7FPGZP2quo=
+github.com/go-hermes/hermes/v2 v2.6.2 h1:RuGQlICVtIHixfxtYwN7hAoqGyGxr+D3kE42oE6emcw=
+github.com/go-hermes/hermes/v2 v2.6.2/go.mod h1:RLVNk31/1KqF35vK3mAaQVuJvMH+K5//6OTGJk+j/80=
github.com/go-jose/go-jose/v4 v4.1.3 h1:CVLmWDhDVRa6Mi/IgCgaopNosCaHz7zrMeF9MlZRkrs=
github.com/go-jose/go-jose/v4 v4.1.3/go.mod h1:x4oUasVrzR7071A4TnHLGSPpNOm2a21K9Kf04k1rs08=
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
@@ -208,8 +212,6 @@ github.com/hirosassa/zerodriver v0.1.4 h1:8bzamKUOHHq03aEk12qi/lnji2dM+IhFOe+RpK
github.com/hirosassa/zerodriver v0.1.4/go.mod h1:hHOOAQvVGwBV1iVVYujM6vwOBBqQcBIFpJxCD9mJU7Y=
github.com/huandu/xstrings v1.5.0 h1:2ag3IFq9ZDANvthTwTiqSSZLjDc+BedvHPAp5tJy2TI=
github.com/huandu/xstrings v1.5.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
-github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4=
-github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY=
github.com/inbucket/html2text v1.0.0 h1:N5kza++4uBBDJ2Z3KUnTRyPNoBcW+YfOgNiNmNB+sgs=
github.com/inbucket/html2text v1.0.0/go.mod h1:5TrhXQKGU+LXurODaSm55Y9eXoPBRnYiOz4x2XfUoJU=
github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM=
@@ -222,8 +224,6 @@ github.com/jackc/puddle/v2 v2.2.2 h1:PR8nw+E/1w0GLuRFSmiioY6UooMp6KJv0/61nB7icHo
github.com/jackc/puddle/v2 v2.2.2/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4=
github.com/jaswdr/faker/v2 v2.9.1 h1:J0Rjqb2/FquZnoZplzkGVL5LmhNkeIpvsSMoJKzn+8E=
github.com/jaswdr/faker/v2 v2.9.1/go.mod h1:jZq+qzNQr8/P+5fHd9t3txe2GNPnthrTfohtnJ7B+68=
-github.com/jaytaylor/html2text v0.0.0-20230321000545-74c2419ad056 h1:iCHtR9CQyktQ5+f3dMVZfwD2KWJUgm7M0gdL9NGr8KA=
-github.com/jaytaylor/html2text v0.0.0-20230321000545-74c2419ad056/go.mod h1:CVKlgaMiht+LXvHG173ujK6JUhZXKb2u/BQtjPDIvyk=
github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ=
@@ -250,8 +250,6 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/lib/pq v1.11.1 h1:wuChtj2hfsGmmx3nf1m7xC2XpK6OtelS2shMY+bGMtI=
github.com/lib/pq v1.11.1/go.mod h1:/p+8NSbOcwzAEI7wiMXFlgydTwcgTr3OSKMsD2BitpA=
-github.com/matcornic/hermes v1.3.0 h1:k6rih7zpUgfIF/57F3WeBi9n68XkvhC/z8eQTRIsQqc=
-github.com/matcornic/hermes v1.3.0/go.mod h1:X3MXWWBHjKSfgQl0xjv+NQTAGWSiNr/fZTlhAEQJ63Q=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
@@ -316,12 +314,14 @@ github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7
github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0=
github.com/rs/zerolog v1.34.0 h1:k43nTLIwcTVQAncfCw4KZ2VY6ukYoZaBPNOE8txlOeY=
github.com/rs/zerolog v1.34.0/go.mod h1:bJsvje4Z08ROH4Nhs5iH600c3IkWhwp44iRc54W6wYQ=
-github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
-github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/segmentio/asm v1.2.1 h1:DTNbBqs57ioxAD4PrArqftgypG4/qNpXoJx8TVXxPR0=
github.com/segmentio/asm v1.2.1/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr5aAcs=
github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k=
github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME=
+github.com/sirupsen/logrus v1.9.4 h1:TsZE7l11zFCLZnZ+teH4Umoq5BhEIfIzfRDZ1Uzql2w=
+github.com/sirupsen/logrus v1.9.4/go.mod h1:ftWc9WdOfJ0a92nsE2jF5u5ZwH8Bv2zdeOC42RjbV2g=
+github.com/spf13/cast v1.10.0 h1:h2x0u2shc1QuLHfxi+cTJvs30+ZAHOGRic8uyGTDWxY=
+github.com/spf13/cast v1.10.0/go.mod h1:jNfB8QC9IA6ZuY2ZjDp0KtFO2LZZlg4S/7bzP6qqeHo=
github.com/spiffe/go-spiffe/v2 v2.6.0 h1:l+DolpxNWYgruGQVV0xsfeya3CsC7m8iBzDnMpsbLuo=
github.com/spiffe/go-spiffe/v2 v2.6.0/go.mod h1:gm2SeUoMZEtpnzPNs2Csc0D/gX33k1xIx7lEzqblHEs=
github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf h1:pvbZ0lM0XWPBqUKqFU8cmavspvIl9nulOYwdy6IFRRo=
@@ -368,6 +368,8 @@ github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7Jul
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
+github.com/yuin/goldmark v1.7.16 h1:n+CJdUxaFMiDUNnWC3dMWCIQJSkxH4uz3ZwQBkAlVNE=
+github.com/yuin/goldmark v1.7.16/go.mod h1:ip/1k0VRfGynBgxOz0yCqHrbZXhcjxyuS66Brc7iBKg=
go.mongodb.org/mongo-driver v1.11.4/go.mod h1:PTSz5yu21bkT/wXpkS7WR5f0ddqw5quethTUn9WM+2g=
go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64=
go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y=
diff --git a/api/pkg/emails/hermes_mailer.go b/api/pkg/emails/hermes_mailer.go
index 0afce49d..7efe0f8a 100644
--- a/api/pkg/emails/hermes_mailer.go
+++ b/api/pkg/emails/hermes_mailer.go
@@ -5,7 +5,7 @@ import (
"strconv"
"time"
- "github.com/matcornic/hermes"
+ "github.com/go-hermes/hermes/v2"
)
// HermesGeneratorConfig contains details for the generator
diff --git a/api/pkg/emails/hermes_notification_email_factory.go b/api/pkg/emails/hermes_notification_email_factory.go
index 0447997d..7c4b7bc5 100644
--- a/api/pkg/emails/hermes_notification_email_factory.go
+++ b/api/pkg/emails/hermes_notification_email_factory.go
@@ -7,7 +7,7 @@ import (
"github.com/NdoleStudio/httpsms/pkg/events"
"github.com/NdoleStudio/httpsms/pkg/entities"
- "github.com/matcornic/hermes"
+ "github.com/go-hermes/hermes/v2"
"github.com/palantir/stacktrace"
)
@@ -33,11 +33,11 @@ func (factory *hermesNotificationEmailFactory) DiscordSendFailed(user *entities.
fmt.Sprintf("We ran into an error while fowarding an incoming SMS to your discord server at %s", user.UserTimeString(time.Now())),
},
Dictionary: []hermes.Entry{
- {"Discord Channel ID", payload.DiscordChannelID},
- {"Event Name", payload.EventType},
- {"Phone Number", factory.formatPhoneNumber(payload.Owner)},
- {"HTTP Response Code", factory.formatHTTPResponseCode(payload.HTTPResponseStatusCode)},
- {"Error Message / HTTP Response", payload.ErrorMessage},
+ {Key: "Discord Channel ID", Value: payload.DiscordChannelID},
+ {Key: "Event Name", Value: payload.EventType},
+ {Key: "Phone Number", Value: factory.formatPhoneNumber(payload.Owner)},
+ {Key: "HTTP Response Code", Value: factory.formatHTTPResponseCode(payload.HTTPResponseStatusCode)},
+ {Key: "Error Message / HTTP Response", Value: payload.ErrorMessage},
},
Actions: []hermes.Action{
{
@@ -83,13 +83,13 @@ func (factory *hermesNotificationEmailFactory) WebhookSendFailed(user *entities.
fmt.Sprintf("We ran into an error while fowarding a webhook event from httpSMS to your webserver at %s", user.UserTimeString(time.Now())),
},
Dictionary: []hermes.Entry{
- {"Server URL", payload.WebhookURL},
- {"Event Name", payload.EventType},
- {"Event ID", payload.EventID},
- {"Phone Number", factory.formatPhoneNumber(payload.Owner)},
- {"HTTP Response Code", factory.formatHTTPResponseCode(payload.HTTPResponseStatusCode)},
- {"Error Message / HTTP Response", payload.ErrorMessage},
- {"Event Payload", payload.EventPayload},
+ {Key: "Server URL", Value: payload.WebhookURL},
+ {Key: "Event Name", Value: payload.EventType},
+ {Key: "Event ID", Value: payload.EventID},
+ {Key: "Phone Number", Value: factory.formatPhoneNumber(payload.Owner)},
+ {Key: "HTTP Response Code", Value: factory.formatHTTPResponseCode(payload.HTTPResponseStatusCode)},
+ {Key: "Error Message / HTTP Response", Value: payload.ErrorMessage},
+ {Key: "Event Payload", Value: payload.EventPayload},
},
Actions: []hermes.Action{
{
@@ -135,11 +135,11 @@ func (factory *hermesNotificationEmailFactory) MessageExpired(user *entities.Use
fmt.Sprintf("The SMS message which you sent to %s has expired at %s and you will need to resend this message.", factory.formatPhoneNumber(payload.Contact), user.UserTimeString(time.Now())),
},
Dictionary: []hermes.Entry{
- {"ID", payload.MessageID.String()},
- {"From", factory.formatPhoneNumber(payload.Owner)},
- {"To", factory.formatPhoneNumber(payload.Contact)},
- {"Message", payload.Content},
- {"Encrypted", factory.formatBool(payload.Encrypted)},
+ {Key: "ID", Value: payload.MessageID.String()},
+ {Key: "From", Value: factory.formatPhoneNumber(payload.Owner)},
+ {Key: "To", Value: factory.formatPhoneNumber(payload.Contact)},
+ {Key: "Message", Value: payload.Content},
+ {Key: "Encrypted", Value: factory.formatBool(payload.Encrypted)},
},
Actions: []hermes.Action{
{
@@ -185,12 +185,12 @@ func (factory *hermesNotificationEmailFactory) MessageFailed(user *entities.User
fmt.Sprintf("The SMS message which you sent to %s has failed at %s and you will need to resend this message.", factory.formatPhoneNumber(payload.Contact), user.UserTimeString(time.Now())),
},
Dictionary: []hermes.Entry{
- {"ID", payload.ID.String()},
- {"From", factory.formatPhoneNumber(payload.Owner)},
- {"To", factory.formatPhoneNumber(payload.Contact)},
- {"Message", payload.Content},
- {"Encrypted", factory.formatBool(payload.Encrypted)},
- {"Failure Reason", payload.ErrorMessage},
+ {Key: "ID", Value: payload.ID.String()},
+ {Key: "From", Value: factory.formatPhoneNumber(payload.Owner)},
+ {Key: "To", Value: factory.formatPhoneNumber(payload.Contact)},
+ {Key: "Message", Value: payload.Content},
+ {Key: "Encrypted", Value: factory.formatBool(payload.Encrypted)},
+ {Key: "Failure Reason", Value: payload.ErrorMessage},
},
Actions: []hermes.Action{
{
diff --git a/api/pkg/emails/hermes_theme.go b/api/pkg/emails/hermes_theme.go
index 56b49759..9d8cc471 100644
--- a/api/pkg/emails/hermes_theme.go
+++ b/api/pkg/emails/hermes_theme.go
@@ -1,10 +1,14 @@
package emails
-import "github.com/matcornic/hermes"
+import "github.com/go-hermes/hermes/v2"
// hermesTheme is the theme by default
type hermesTheme struct{}
+func (dt *hermesTheme) Styles() hermes.StylesDefinition {
+ return hermes.Default{}.Styles()
+}
+
func newHermesTheme() hermes.Theme {
return &hermesTheme{}
}
diff --git a/api/pkg/emails/hermes_user_email_factory.go b/api/pkg/emails/hermes_user_email_factory.go
index 3d50f6cc..9ec5754a 100644
--- a/api/pkg/emails/hermes_user_email_factory.go
+++ b/api/pkg/emails/hermes_user_email_factory.go
@@ -5,7 +5,7 @@ import (
"time"
"github.com/NdoleStudio/httpsms/pkg/entities"
- "github.com/matcornic/hermes"
+ "github.com/go-hermes/hermes/v2"
"github.com/palantir/stacktrace"
)
From 5a296c210f148860fba549ac6552a2a1c9abbb73 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Mon, 9 Feb 2026 00:15:08 +0200
Subject: [PATCH 120/215] increase max open connection count
---
api/go.mod | 4 ++++
api/go.sum | 10 ++++++++++
api/pkg/di/container.go | 2 +-
3 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/api/go.mod b/api/go.mod
index 076b10e5..32dfa281 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -39,6 +39,7 @@ require (
github.com/redis/go-redis/extra/redisotel/v9 v9.17.3
github.com/redis/go-redis/v9 v9.17.3
github.com/rs/zerolog v1.34.0
+ github.com/schollz/progressbar/v3 v3.19.0
github.com/stretchr/testify v1.11.1
github.com/swaggo/swag v1.16.6
github.com/thedevsaddam/govalidator v1.9.10
@@ -142,6 +143,7 @@ require (
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mattn/go-runewidth v0.0.19 // indirect
github.com/mattn/go-sqlite3 v1.14.33 // indirect
+ github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db // indirect
github.com/mitchellh/copystructure v1.2.0 // indirect
github.com/mitchellh/reflectwalk v1.0.2 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
@@ -154,6 +156,7 @@ require (
github.com/redis/go-redis/extra/rediscmd/v9 v9.17.3 // indirect
github.com/richardlehane/mscfb v1.0.6 // indirect
github.com/richardlehane/msoleps v1.0.6 // indirect
+ github.com/rivo/uniseg v0.4.7 // indirect
github.com/segmentio/asm v1.2.1 // indirect
github.com/shopspring/decimal v1.4.0 // indirect
github.com/spiffe/go-spiffe/v2 v2.6.0 // indirect
@@ -190,6 +193,7 @@ require (
golang.org/x/oauth2 v0.35.0 // indirect
golang.org/x/sync v0.19.0 // indirect
golang.org/x/sys v0.41.0 // indirect
+ golang.org/x/term v0.39.0 // indirect
golang.org/x/text v0.33.0 // indirect
golang.org/x/time v0.14.0 // indirect
golang.org/x/tools v0.41.0 // indirect
diff --git a/api/go.sum b/api/go.sum
index 5da59ad3..6ea97382 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -80,6 +80,8 @@ github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1x
github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw=
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+github.com/chengxilo/virtualterm v1.0.4 h1:Z6IpERbRVlfB8WkOmtbHiDbBANU7cimRIof7mk9/PwM=
+github.com/chengxilo/virtualterm v1.0.4/go.mod h1:DyxxBZz/x1iqJjFxTFcr6/x+jSpqN0iwWCOK1q10rlY=
github.com/clipperhouse/displaywidth v0.9.0 h1:Qb4KOhYwRiN3viMv1v/3cTBlz3AcAZX3+y9OLhMtAtA=
github.com/clipperhouse/displaywidth v0.9.0/go.mod h1:aCAAqTlh4GIVkhQnJpbL0T/WfcrJXHcj8C0yjYcjOZA=
github.com/clipperhouse/stringish v0.1.1 h1:+NSqMOr3GR6k1FdRhhnXrLfztGzuG+VuFDfatpWHKCs=
@@ -261,6 +263,8 @@ github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byF
github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs=
github.com/mattn/go-sqlite3 v1.14.33 h1:A5blZ5ulQo2AtayQ9/limgHEkFreKj1Dv226a1K73s0=
github.com/mattn/go-sqlite3 v1.14.33/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
+github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db h1:62I3jR2EmQ4l5rM/4FEfDWcRD+abF5XlKShorW5LRoQ=
+github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db/go.mod h1:l0dey0ia/Uv7NcFFVbCLtqEBQbrT4OCwCSKTEv6enCw=
github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw=
github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s=
github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ=
@@ -309,11 +313,15 @@ github.com/richardlehane/mscfb v1.0.6 h1:eN3bvvZCp00bs7Zf52bxNwAx5lJDBK1tCuH19qq
github.com/richardlehane/mscfb v1.0.6/go.mod h1:pe0+IUIc0AHh0+teNzBlJCtSyZdFOGgV4ZK9bsoV+Jo=
github.com/richardlehane/msoleps v1.0.6 h1:9BvkpjvD+iUBalUY4esMwv6uBkfOip/Lzvd93jvR9gg=
github.com/richardlehane/msoleps v1.0.6/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg=
+github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
+github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0=
github.com/rs/zerolog v1.34.0 h1:k43nTLIwcTVQAncfCw4KZ2VY6ukYoZaBPNOE8txlOeY=
github.com/rs/zerolog v1.34.0/go.mod h1:bJsvje4Z08ROH4Nhs5iH600c3IkWhwp44iRc54W6wYQ=
+github.com/schollz/progressbar/v3 v3.19.0 h1:Ea18xuIRQXLAUidVDox3AbwfUhD0/1IvohyTutOIFoc=
+github.com/schollz/progressbar/v3 v3.19.0/go.mod h1:IsO3lpbaGuzh8zIMzgY3+J8l4C8GjO0Y9S69eFvNsec=
github.com/segmentio/asm v1.2.1 h1:DTNbBqs57ioxAD4PrArqftgypG4/qNpXoJx8TVXxPR0=
github.com/segmentio/asm v1.2.1/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr5aAcs=
github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k=
@@ -506,6 +514,8 @@ golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU=
golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY=
golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM=
+golang.org/x/term v0.39.0 h1:RclSuaJf32jOqZz74CkPA9qFuVTX7vhLlpfj/IGWlqY=
+golang.org/x/term v0.39.0/go.mod h1:yxzUCTP/U+FzoxfdKmLaA0RV1WgE0VY7hXBwKtY/4ww=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
diff --git a/api/pkg/di/container.go b/api/pkg/di/container.go
index 0025cecb..d5315ed7 100644
--- a/api/pkg/di/container.go
+++ b/api/pkg/di/container.go
@@ -264,7 +264,7 @@ func (container *Container) DedicatedDB() (db *gorm.DB) {
container.logger.Fatal(stacktrace.Propagate(err, "cannot get sql.DB from GORM"))
}
- sqlDB.SetMaxOpenConns(2)
+ sqlDB.SetMaxOpenConns(3)
sqlDB.SetConnMaxLifetime(time.Hour)
if err = db.Use(tracing.NewPlugin()); err != nil {
From c30755b643fdf6084d72147006c579d6aab54d1b Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Tue, 10 Feb 2026 13:08:24 +0200
Subject: [PATCH 121/215] Get a message by ID
---
api/go.mod | 14 +++++-----
api/go.sum | 28 +++++++++----------
api/pkg/handlers/message_handler.go | 43 +++++++++++++++++++++++++++++
3 files changed, 64 insertions(+), 21 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index 32dfa281..6e06d04c 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -186,17 +186,17 @@ require (
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.1 // indirect
go.yaml.in/yaml/v3 v3.0.4 // indirect
- golang.org/x/crypto v0.47.0 // indirect
- golang.org/x/exp v0.0.0-20260112195511-716be5621a96 // indirect
- golang.org/x/mod v0.32.0 // indirect
- golang.org/x/net v0.49.0 // indirect
+ golang.org/x/crypto v0.48.0 // indirect
+ golang.org/x/exp v0.0.0-20260209203927-2842357ff358 // indirect
+ golang.org/x/mod v0.33.0 // indirect
+ golang.org/x/net v0.50.0 // indirect
golang.org/x/oauth2 v0.35.0 // indirect
golang.org/x/sync v0.19.0 // indirect
golang.org/x/sys v0.41.0 // indirect
- golang.org/x/term v0.39.0 // indirect
- golang.org/x/text v0.33.0 // indirect
+ golang.org/x/term v0.40.0 // indirect
+ golang.org/x/text v0.34.0 // indirect
golang.org/x/time v0.14.0 // indirect
- golang.org/x/tools v0.41.0 // indirect
+ golang.org/x/tools v0.42.0 // indirect
google.golang.org/appengine v1.6.8 // indirect
google.golang.org/genproto v0.0.0-20260203192932-546029d2fa20 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20260203192932-546029d2fa20 // indirect
diff --git a/api/go.sum b/api/go.sum
index 6ea97382..b0884184 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -443,10 +443,10 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY
golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
-golang.org/x/crypto v0.47.0 h1:V6e3FRj+n4dbpw86FJ8Fv7XVOql7TEwpHapKoMJ/GO8=
-golang.org/x/crypto v0.47.0/go.mod h1:ff3Y9VzzKbwSSEzWqJsJVBnWmRwRSHt/6Op5n9bQc4A=
-golang.org/x/exp v0.0.0-20260112195511-716be5621a96 h1:Z/6YuSHTLOHfNFdb8zVZomZr7cqNgTJvA8+Qz75D8gU=
-golang.org/x/exp v0.0.0-20260112195511-716be5621a96/go.mod h1:nzimsREAkjBCIEFtHiYkrJyT+2uy9YZJB7H1k68CXZU=
+golang.org/x/crypto v0.48.0 h1:/VRzVqiRSggnhY7gNRxPauEQ5Drw9haKdM0jqfcCFts=
+golang.org/x/crypto v0.48.0/go.mod h1:r0kV5h3qnFPlQnBSrULhlsRfryS2pmewsg+XfMgkVos=
+golang.org/x/exp v0.0.0-20260209203927-2842357ff358 h1:kpfSV7uLwKJbFSEgNhWzGSL47NDSF/5pYYQw1V0ub6c=
+golang.org/x/exp v0.0.0-20260209203927-2842357ff358/go.mod h1:R3t0oliuryB5eenPWl3rrQxwnNM3WTwnsRZZiXLAAW8=
golang.org/x/image v0.25.0 h1:Y6uW6rH1y5y/LK1J8BPWZtr6yZ7hrsy6hFrXjgsc2fQ=
golang.org/x/image v0.25.0/go.mod h1:tCAmOEGthTtkalusGp1g3xa2gke8J6c2N565dTyl9Rs=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
@@ -456,8 +456,8 @@ golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
-golang.org/x/mod v0.32.0 h1:9F4d3PHLljb6x//jOyokMv3eX+YDeepZSEo3mFJy93c=
-golang.org/x/mod v0.32.0/go.mod h1:SgipZ/3h2Ci89DlEtEXWUk/HteuRin+HHhN+WbNhguU=
+golang.org/x/mod v0.33.0 h1:tHFzIWbBifEmbwtGz65eaWyGiGZatSrT9prnU8DbVL8=
+golang.org/x/mod v0.33.0/go.mod h1:swjeQEj+6r7fODbD2cqrnje9PnziFuw4bmLbBZFrQ5w=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -471,8 +471,8 @@ golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
-golang.org/x/net v0.49.0 h1:eeHFmOGUTtaaPSGNmjBKpbng9MulQsJURQUAfUwY++o=
-golang.org/x/net v0.49.0/go.mod h1:/ysNB2EvaqvesRkuLAyjI1ycPZlQHM3q01F02UY/MV8=
+golang.org/x/net v0.50.0 h1:ucWh9eiCGyDR3vtzso0WMQinm2Dnt8cFMuQa9K33J60=
+golang.org/x/net v0.50.0/go.mod h1:UgoSli3F/pBgdJBHCTc+tp3gmrU4XswgGRgtnwWTfyM=
golang.org/x/oauth2 v0.35.0 h1:Mv2mzuHuZuY2+bkyWXIHMfhNdJAdwW3FuWeCPYN5GVQ=
golang.org/x/oauth2 v0.35.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -514,8 +514,8 @@ golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU=
golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY=
golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM=
-golang.org/x/term v0.39.0 h1:RclSuaJf32jOqZz74CkPA9qFuVTX7vhLlpfj/IGWlqY=
-golang.org/x/term v0.39.0/go.mod h1:yxzUCTP/U+FzoxfdKmLaA0RV1WgE0VY7hXBwKtY/4ww=
+golang.org/x/term v0.40.0 h1:36e4zGLqU4yhjlmxEaagx2KuYbJq3EwY8K943ZsHcvg=
+golang.org/x/term v0.40.0/go.mod h1:w2P8uVp06p2iyKKuvXIm7N/y0UCRt3UfJTfZ7oOpglM=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
@@ -527,8 +527,8 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
-golang.org/x/text v0.33.0 h1:B3njUFyqtHDUI5jMn1YIr5B0IE2U0qck04r6d4KPAxE=
-golang.org/x/text v0.33.0/go.mod h1:LuMebE6+rBincTi9+xWTY8TztLzKHc/9C1uBCG27+q8=
+golang.org/x/text v0.34.0 h1:oL/Qq0Kdaqxa1KbNeMKwQq0reLCCaFtqu2eNuSeNHbk=
+golang.org/x/text v0.34.0/go.mod h1:homfLqTYRFyVYemLBFl5GgL/DWEiH5wcsQ5gSh1yziA=
golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI=
golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -539,8 +539,8 @@ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
-golang.org/x/tools v0.41.0 h1:a9b8iMweWG+S0OBnlU36rzLp20z1Rp10w+IY2czHTQc=
-golang.org/x/tools v0.41.0/go.mod h1:XSY6eDqxVNiYgezAVqqCeihT4j1U2CCsqvH3WhQpnlg=
+golang.org/x/tools v0.42.0 h1:uNgphsn75Tdz5Ji2q36v/nsFSfR/9BRFvqhGBaJGd5k=
+golang.org/x/tools v0.42.0/go.mod h1:Ma6lCIwGZvHK6XtgbswSoWroEkhugApmsXyrUmBhfr0=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
diff --git a/api/pkg/handlers/message_handler.go b/api/pkg/handlers/message_handler.go
index f0ec9de2..f3c10895 100644
--- a/api/pkg/handlers/message_handler.go
+++ b/api/pkg/handlers/message_handler.go
@@ -54,6 +54,7 @@ func (h *MessageHandler) RegisterRoutes(router fiber.Router, middlewares ...fibe
router.Post("/v1/messages/bulk-send", h.computeRoute(middlewares, h.BulkSend)...)
router.Get("/v1/messages", h.computeRoute(middlewares, h.Index)...)
router.Get("/v1/messages/search", h.computeRoute(middlewares, h.Search)...)
+ router.Get("/v1/messages/:messageID", h.computeRoute(middlewares, h.Get)...)
router.Delete("/v1/messages/:messageID", h.computeRoute(middlewares, h.Delete)...)
}
@@ -443,6 +444,48 @@ func (h *MessageHandler) Delete(c *fiber.Ctx) error {
return h.responseNoContent(c, "message deleted successfully")
}
+// Get a message
+// @Summary Get a message from the database.
+// @Description Get a message from the database by the message ID.
+// @Security ApiKeyAuth
+// @Tags Messages
+// @Accept json
+// @Produce json
+// @Param messageID path string true "ID of the message" default(32343a19-da5e-4b1b-a767-3298a73703ca)
+// @Success 204 {object} responses.MessageResponse
+// @Failure 400 {object} responses.BadRequest
+// @Failure 401 {object} responses.Unauthorized
+// @Failure 404 {object} responses.NotFound
+// @Failure 422 {object} responses.UnprocessableEntity
+// @Failure 500 {object} responses.InternalServerError
+// @Router /messages/{messageID} [get]
+func (h *MessageHandler) Get(c *fiber.Ctx) error {
+ ctx, span := h.tracer.StartFromFiberCtx(c)
+ defer span.End()
+
+ ctxLogger := h.tracer.CtxLogger(h.logger, span)
+
+ messageID := c.Params("messageID")
+ if errors := h.validator.ValidateUUID(messageID, "messageID"); len(errors) != 0 {
+ msg := fmt.Sprintf("validation errors [%s], while deleting a message with ID [%s]", spew.Sdump(errors), messageID)
+ ctxLogger.Warn(stacktrace.NewError(msg))
+ return h.responseUnprocessableEntity(c, errors, "validation errors while storing event")
+ }
+
+ message, err := h.service.GetMessage(ctx, h.userIDFomContext(c), uuid.MustParse(messageID))
+ if stacktrace.GetCode(err) == repositories.ErrCodeNotFound {
+ return h.responseNotFound(c, fmt.Sprintf("cannot find message with ID [%s]", messageID))
+ }
+
+ if err != nil {
+ msg := fmt.Sprintf("cannot find message with id [%s]", messageID)
+ ctxLogger.Error(h.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg)))
+ return h.responseInternalServerError(c)
+ }
+
+ return h.responseNoContent(c, "message fetched successfully")
+}
+
// PostCallMissed registers a missed phone call
// @Summary Register a missed call event on the mobile phone
// @Description This endpoint is called by the httpSMS android app to register a missed call event on the mobile phone.
From ac51c7c6939c47a71b35c6cc101522ff86e43458 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Tue, 10 Feb 2026 11:29:31 +0000
Subject: [PATCH 122/215] Change response from no content to OK with message
---
api/pkg/handlers/message_handler.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/api/pkg/handlers/message_handler.go b/api/pkg/handlers/message_handler.go
index f3c10895..935e9ba4 100644
--- a/api/pkg/handlers/message_handler.go
+++ b/api/pkg/handlers/message_handler.go
@@ -483,7 +483,7 @@ func (h *MessageHandler) Get(c *fiber.Ctx) error {
return h.responseInternalServerError(c)
}
- return h.responseNoContent(c, "message fetched successfully")
+ return h.responseOK(c, "message fetched successfully", message)
}
// PostCallMissed registers a missed phone call
From d32a7358ad631e3fd0f2477e45e7c5338c8f93d5 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Tue, 10 Feb 2026 14:56:11 +0200
Subject: [PATCH 123/215] Fix route order
---
api/pkg/di/container.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/api/pkg/di/container.go b/api/pkg/di/container.go
index d5315ed7..5d7bec4f 100644
--- a/api/pkg/di/container.go
+++ b/api/pkg/di/container.go
@@ -1449,8 +1449,8 @@ func (container *Container) NotificationService() (service *services.PhoneNotifi
// RegisterMessageRoutes registers routes for the /messages prefix
func (container *Container) RegisterMessageRoutes() {
container.logger.Debug(fmt.Sprintf("registering %T routes", &handlers.MessageHandler{}))
- container.MessageHandler().RegisterRoutes(container.App(), container.AuthenticatedMiddleware())
container.MessageHandler().RegisterPhoneAPIKeyRoutes(container.App(), container.PhoneAPIKeyMiddleware(), container.AuthenticatedMiddleware())
+ container.MessageHandler().RegisterRoutes(container.App(), container.AuthenticatedMiddleware())
}
// RegisterBulkMessageRoutes registers routes for the /bulk-messages prefix
From 50f9cf6d29294a840bdfcc8cb45e4ae2acdfd849 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Sun, 15 Feb 2026 23:43:01 +0200
Subject: [PATCH 124/215] Reduce max connection lifetime to 1 minute
---
api/pkg/di/container.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/api/pkg/di/container.go b/api/pkg/di/container.go
index 5d7bec4f..1b31935a 100644
--- a/api/pkg/di/container.go
+++ b/api/pkg/di/container.go
@@ -265,7 +265,7 @@ func (container *Container) DedicatedDB() (db *gorm.DB) {
}
sqlDB.SetMaxOpenConns(3)
- sqlDB.SetConnMaxLifetime(time.Hour)
+ sqlDB.SetConnMaxLifetime(time.Minute)
if err = db.Use(tracing.NewPlugin()); err != nil {
container.logger.Fatal(stacktrace.Propagate(err, "cannot use GORM tracing plugin"))
From e2d10add403b44d4a8ffc354a018f7300befe5ed Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Tue, 17 Feb 2026 14:19:31 +0200
Subject: [PATCH 125/215] Use only 1 DB connection
---
api/pkg/di/container.go | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/api/pkg/di/container.go b/api/pkg/di/container.go
index 1b31935a..d2b48b33 100644
--- a/api/pkg/di/container.go
+++ b/api/pkg/di/container.go
@@ -264,8 +264,9 @@ func (container *Container) DedicatedDB() (db *gorm.DB) {
container.logger.Fatal(stacktrace.Propagate(err, "cannot get sql.DB from GORM"))
}
- sqlDB.SetMaxOpenConns(3)
- sqlDB.SetConnMaxLifetime(time.Minute)
+ sqlDB.SetMaxOpenConns(1)
+ sqlDB.SetMaxIdleConns(0)
+ sqlDB.SetConnMaxLifetime(-1)
if err = db.Use(tracing.NewPlugin()); err != nil {
container.logger.Fatal(stacktrace.Propagate(err, "cannot use GORM tracing plugin"))
From abf54daa39904aee52b8521785774597925c1003 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Tue, 17 Feb 2026 23:36:40 +0200
Subject: [PATCH 126/215] Add retry for SQLite DB operations
---
api/pkg/di/container.go | 2 +-
.../gorm_heartbeat_monitor_repository.go | 116 ++++++++++--------
.../repositories/gorm_heartbeat_repository.go | 24 ++--
api/pkg/repositories/repository.go | 20 +++
4 files changed, 101 insertions(+), 61 deletions(-)
diff --git a/api/pkg/di/container.go b/api/pkg/di/container.go
index d2b48b33..7f88251a 100644
--- a/api/pkg/di/container.go
+++ b/api/pkg/di/container.go
@@ -266,7 +266,7 @@ func (container *Container) DedicatedDB() (db *gorm.DB) {
sqlDB.SetMaxOpenConns(1)
sqlDB.SetMaxIdleConns(0)
- sqlDB.SetConnMaxLifetime(-1)
+ sqlDB.SetConnMaxLifetime(10 * time.Second)
if err = db.Use(tracing.NewPlugin()); err != nil {
container.logger.Fatal(stacktrace.Propagate(err, "cannot use GORM tracing plugin"))
diff --git a/api/pkg/repositories/gorm_heartbeat_monitor_repository.go b/api/pkg/repositories/gorm_heartbeat_monitor_repository.go
index b88c15e2..fb892d87 100644
--- a/api/pkg/repositories/gorm_heartbeat_monitor_repository.go
+++ b/api/pkg/repositories/gorm_heartbeat_monitor_repository.go
@@ -22,16 +22,30 @@ type gormHeartbeatMonitorRepository struct {
db *gorm.DB
}
+// NewGormHeartbeatMonitorRepository creates the GORM version of the HeartbeatMonitorRepository
+func NewGormHeartbeatMonitorRepository(
+ logger telemetry.Logger,
+ tracer telemetry.Tracer,
+ db *gorm.DB,
+) HeartbeatMonitorRepository {
+ return &gormHeartbeatMonitorRepository{
+ logger: logger.WithService(fmt.Sprintf("%T", &gormHeartbeatRepository{})),
+ tracer: tracer,
+ db: db,
+ }
+}
+
func (repository *gormHeartbeatMonitorRepository) DeleteAllForUser(ctx context.Context, userID entities.UserID) error {
ctx, span := repository.tracer.Start(ctx)
defer span.End()
- if err := repository.db.WithContext(ctx).Where("user_id = ?", userID).Delete(&entities.HeartbeatMonitor{}).Error; err != nil {
- msg := fmt.Sprintf("cannot delete all [%T] for user with ID [%s]", &entities.HeartbeatMonitor{}, userID)
- return repository.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
- }
-
- return nil
+ return executeWithRetry(func() error {
+ if err := repository.db.WithContext(ctx).Where("user_id = ?", userID).Delete(&entities.HeartbeatMonitor{}).Error; err != nil {
+ msg := fmt.Sprintf("cannot delete all [%T] for user with ID [%s]", &entities.HeartbeatMonitor{}, userID)
+ return repository.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
+ }
+ return nil
+ })
}
// UpdatePhoneOnline updates the online status of a phone
@@ -42,14 +56,16 @@ func (repository *gormHeartbeatMonitorRepository) UpdatePhoneOnline(ctx context.
ctx, cancel := context.WithTimeout(ctx, dbOperationDuration)
defer cancel()
- err := repository.db.
- Model(&entities.HeartbeatMonitor{}).
- Where("id = ?", monitorID).
- Where("user_id = ?", userID).
- Updates(map[string]any{
- "phone_online": isOnline,
- "updated_at": time.Now().UTC(),
- }).Error
+ err := executeWithRetry(func() error {
+ return repository.db.
+ Model(&entities.HeartbeatMonitor{}).
+ Where("id = ?", monitorID).
+ Where("user_id = ?", userID).
+ Updates(map[string]any{
+ "phone_online": isOnline,
+ "updated_at": time.Now().UTC(),
+ }).Error
+ })
if err != nil {
msg := fmt.Sprintf("cannot update heartbeat monitor ID [%s] for user [%s]", monitorID, userID)
return repository.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
@@ -65,13 +81,15 @@ func (repository *gormHeartbeatMonitorRepository) UpdateQueueID(ctx context.Cont
ctx, cancel := context.WithTimeout(ctx, dbOperationDuration)
defer cancel()
- err := repository.db.
- Model(&entities.HeartbeatMonitor{}).
- Where("id = ?", monitorID).
- Updates(map[string]any{
- "queue_id": queueID,
- "updated_at": time.Now().UTC(),
- }).Error
+ err := executeWithRetry(func() error {
+ return repository.db.
+ Model(&entities.HeartbeatMonitor{}).
+ Where("id = ?", monitorID).
+ Updates(map[string]any{
+ "queue_id": queueID,
+ "updated_at": time.Now().UTC(),
+ }).Error
+ })
if err != nil {
msg := fmt.Sprintf("cannot update heartbeat monitor ID [%s]", monitorID)
return repository.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
@@ -86,10 +104,12 @@ func (repository *gormHeartbeatMonitorRepository) Delete(ctx context.Context, us
ctx, cancel := context.WithTimeout(ctx, dbOperationDuration)
defer cancel()
- err := repository.db.WithContext(ctx).
- Where("user_id = ?", userID).
- Where("owner = ?", owner).
- Delete(&entities.HeartbeatMonitor{}).Error
+ err := executeWithRetry(func() error {
+ return repository.db.WithContext(ctx).
+ Where("user_id = ?", userID).
+ Where("owner = ?", owner).
+ Delete(&entities.HeartbeatMonitor{}).Error
+ })
if err != nil {
msg := fmt.Sprintf("cannot delete heartbeat monitor with owner [%s] and userID [%s]", owner, userID)
return repository.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
@@ -98,19 +118,6 @@ func (repository *gormHeartbeatMonitorRepository) Delete(ctx context.Context, us
return nil
}
-// NewGormHeartbeatMonitorRepository creates the GORM version of the HeartbeatMonitorRepository
-func NewGormHeartbeatMonitorRepository(
- logger telemetry.Logger,
- tracer telemetry.Tracer,
- db *gorm.DB,
-) HeartbeatMonitorRepository {
- return &gormHeartbeatMonitorRepository{
- logger: logger.WithService(fmt.Sprintf("%T", &gormHeartbeatRepository{})),
- tracer: tracer,
- db: db,
- }
-}
-
// Index entities.Message between 2 parties
func (repository *gormHeartbeatMonitorRepository) Index(ctx context.Context, userID entities.UserID, owner string, params IndexParams) (*[]entities.Heartbeat, error) {
ctx, span := repository.tracer.Start(ctx)
@@ -121,7 +128,9 @@ func (repository *gormHeartbeatMonitorRepository) Index(ctx context.Context, use
query := repository.db.WithContext(ctx).Where("user_id = ?", userID).Where("owner = ?", owner)
heartbeats := new([]entities.Heartbeat)
- if err := query.Order("timestamp DESC").Limit(params.Limit).Offset(params.Skip).Find(&heartbeats).Error; err != nil {
+ if err := executeWithRetry(func() error {
+ return query.Order("timestamp DESC").Limit(params.Limit).Offset(params.Skip).Find(&heartbeats).Error
+ }); err != nil {
msg := fmt.Sprintf("cannot fetch heartbeats with owner [%s] and params [%+#v]", owner, params)
return nil, repository.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
}
@@ -137,7 +146,7 @@ func (repository *gormHeartbeatMonitorRepository) Store(ctx context.Context, hea
ctx, cancel := context.WithTimeout(ctx, dbOperationDuration)
defer cancel()
- if err := repository.db.WithContext(ctx).Create(heartbeatMonitor).Error; err != nil {
+ if err := executeWithRetry(func() error { return repository.db.WithContext(ctx).Create(heartbeatMonitor).Error }); err != nil {
msg := fmt.Sprintf("cannot save heartbeatMonitor monitor with ID [%s]", heartbeatMonitor.ID)
return repository.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
}
@@ -154,11 +163,12 @@ func (repository *gormHeartbeatMonitorRepository) Load(ctx context.Context, user
defer cancel()
phone := new(entities.HeartbeatMonitor)
- err := repository.db.WithContext(ctx).
- Where("user_id = ?", userID).
- Where("owner = ?", owner).
- First(&phone).Error
-
+ err := executeWithRetry(func() error {
+ return repository.db.WithContext(ctx).
+ Where("user_id = ?", userID).
+ Where("owner = ?", owner).
+ First(&phone).Error
+ })
if errors.Is(err, gorm.ErrRecordNotFound) {
msg := fmt.Sprintf("heartbeat monitor with userID [%s] and owner [%s] does not exist", userID, owner)
return nil, repository.tracer.WrapErrorSpan(span, stacktrace.PropagateWithCode(err, ErrCodeNotFound, msg))
@@ -181,14 +191,16 @@ func (repository *gormHeartbeatMonitorRepository) Exists(ctx context.Context, us
defer cancel()
var exists bool
- err := repository.db.WithContext(ctx).
- Model(&entities.HeartbeatMonitor{}).
- Select("count(*) > 0").
- Where("user_id = ?", userID).
- Where("id = ?", monitorID).
- Find(&exists).Error
+ err := executeWithRetry(func() error {
+ return repository.db.WithContext(ctx).
+ Model(&entities.HeartbeatMonitor{}).
+ Select("count(*) > 0").
+ Where("user_id = ?", userID).
+ Where("id = ?", monitorID).
+ Find(&exists).Error
+ })
if err != nil {
- msg := fmt.Sprintf("cannot check if heartbeat monitor exists with userID [%s] and montiorID [%s]", userID, monitorID)
+ msg := fmt.Sprintf("cannot check if heartbeat monitor exists with userID [%s] and montior ID [%s]", userID, monitorID)
return exists, repository.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
}
diff --git a/api/pkg/repositories/gorm_heartbeat_repository.go b/api/pkg/repositories/gorm_heartbeat_repository.go
index 8e763f60..5b7794e9 100644
--- a/api/pkg/repositories/gorm_heartbeat_repository.go
+++ b/api/pkg/repositories/gorm_heartbeat_repository.go
@@ -36,7 +36,10 @@ func (repository *gormHeartbeatRepository) DeleteAllForUser(ctx context.Context,
ctx, span := repository.tracer.Start(ctx)
defer span.End()
- if err := repository.db.WithContext(ctx).Where("user_id = ?", userID).Delete(&entities.Heartbeat{}).Error; err != nil {
+ err := executeWithRetry(func() error {
+ return repository.db.WithContext(ctx).Where("user_id = ?", userID).Delete(&entities.Heartbeat{}).Error
+ })
+ if err != nil {
msg := fmt.Sprintf("cannot delete all [%T] for user with ID [%s]", &entities.Heartbeat{}, userID)
return repository.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
}
@@ -52,11 +55,13 @@ func (repository *gormHeartbeatRepository) Last(ctx context.Context, userID enti
defer cancel()
heartbeat := new(entities.Heartbeat)
- err := repository.db.WithContext(ctx).
- Where("user_id = ?", userID).
- Where("owner = ?", owner).
- Order("timestamp DESC").
- First(&heartbeat).Error
+ err := executeWithRetry(func() error {
+ return repository.db.WithContext(ctx).
+ Where("user_id = ?", userID).
+ Where("owner = ?", owner).
+ Order("timestamp DESC").
+ First(&heartbeat).Error
+ })
if errors.Is(err, gorm.ErrRecordNotFound) {
msg := fmt.Sprintf("heartbeat with userID [%s] and owner [%s] does not exist", userID, owner)
return nil, repository.tracer.WrapErrorSpan(span, stacktrace.PropagateWithCode(err, ErrCodeNotFound, msg))
@@ -85,7 +90,10 @@ func (repository *gormHeartbeatRepository) Index(ctx context.Context, userID ent
}
heartbeats := new([]entities.Heartbeat)
- if err := query.Order("timestamp DESC").Limit(params.Limit).Offset(params.Skip).Find(&heartbeats).Error; err != nil {
+ err := executeWithRetry(func() error {
+ return query.Order("timestamp DESC").Limit(params.Limit).Offset(params.Skip).Find(&heartbeats).Error
+ })
+ if err != nil {
msg := fmt.Sprintf("cannot fetch heartbeats with owner [%s] and params [%+#v]", owner, params)
return nil, repository.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
}
@@ -101,7 +109,7 @@ func (repository *gormHeartbeatRepository) Store(ctx context.Context, heartbeat
ctx, cancel := context.WithTimeout(ctx, dbOperationDuration)
defer cancel()
- if err := repository.db.WithContext(ctx).Create(heartbeat).Error; err != nil {
+ if err := executeWithRetry(func() error { return repository.db.WithContext(ctx).Create(heartbeat).Error }); err != nil {
msg := fmt.Sprintf("cannot save heartbeat with ID [%s]", heartbeat.ID)
return repository.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg))
}
diff --git a/api/pkg/repositories/repository.go b/api/pkg/repositories/repository.go
index 32ba4337..558e5249 100644
--- a/api/pkg/repositories/repository.go
+++ b/api/pkg/repositories/repository.go
@@ -1,8 +1,10 @@
package repositories
import (
+ "strings"
"time"
+ "github.com/avast/retry-go"
"github.com/palantir/stacktrace"
)
@@ -21,3 +23,21 @@ const (
dbOperationDuration = 5 * time.Second
)
+
+// isRetryableError checks if the error is a retryable connection error
+func isRetryableError(err error) bool {
+ msg := err.Error()
+ return strings.Contains(msg, "bad connection") ||
+ strings.Contains(msg, "stream is closed") ||
+ strings.Contains(msg, "driver: bad connection")
+}
+
+// executeWithRetry executes a GORM query with retry logic for transient connection errors
+func executeWithRetry(fn func() error) (err error) {
+ return retry.Do(
+ fn,
+ retry.Attempts(3),
+ retry.Delay(100*time.Millisecond),
+ retry.RetryIf(isRetryableError),
+ )
+}
From d6ec13e21ce39a5308665e3639f1927049d447a0 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Tue, 17 Feb 2026 23:52:55 +0200
Subject: [PATCH 127/215] Returns the last error only
---
api/pkg/repositories/repository.go | 1 +
1 file changed, 1 insertion(+)
diff --git a/api/pkg/repositories/repository.go b/api/pkg/repositories/repository.go
index 558e5249..14285dc4 100644
--- a/api/pkg/repositories/repository.go
+++ b/api/pkg/repositories/repository.go
@@ -36,6 +36,7 @@ func isRetryableError(err error) bool {
func executeWithRetry(fn func() error) (err error) {
return retry.Do(
fn,
+ retry.LastErrorOnly(true),
retry.Attempts(3),
retry.Delay(100*time.Millisecond),
retry.RetryIf(isRetryableError),
From 1ac1dd50b4efd15fb7ab06ff090727f0df508881 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Wed, 18 Feb 2026 00:21:52 +0200
Subject: [PATCH 128/215] Update dependenceis
---
api/go.mod | 54 ++++----
api/go.sum | 120 +++++++++---------
api/pkg/repositories/repository.go | 7 +-
.../google_cloud_push_queue_service.go | 6 +-
api/pkg/services/webhook_service.go | 6 +-
5 files changed, 98 insertions(+), 95 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index 6e06d04c..d342b5e0 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -1,6 +1,6 @@
module github.com/NdoleStudio/httpsms
-go 1.24.6
+go 1.25.0
require (
cloud.google.com/go/cloudtasks v1.13.7
@@ -10,7 +10,7 @@ require (
github.com/NdoleStudio/go-otelroundtripper v0.0.13
github.com/NdoleStudio/lemonsqueezy-go v1.3.1
github.com/NdoleStudio/plunk-go v0.0.2
- github.com/avast/retry-go v3.0.0+incompatible
+ github.com/avast/retry-go/v5 v5.0.0
github.com/carlmjohnson/requests v0.25.1
github.com/cloudevents/sdk-go/v2 v2.16.2
github.com/cockroachdb/cockroach-go/v2 v2.4.3
@@ -30,14 +30,14 @@ require (
github.com/joho/godotenv v1.5.1
github.com/jordan-wright/email v4.0.1-0.20210109023952-943e75fe5223+incompatible
github.com/jszwec/csvutil v1.10.0
- github.com/lib/pq v1.11.1
- github.com/nyaruka/phonenumbers v1.6.8
+ github.com/lib/pq v1.11.2
+ github.com/nyaruka/phonenumbers v1.6.9
github.com/palantir/stacktrace v0.0.0-20161112013806-78658fd2d177
github.com/patrickmn/go-cache v2.1.0+incompatible
github.com/pkg/errors v0.9.1
github.com/pusher/pusher-http-go/v5 v5.1.1
- github.com/redis/go-redis/extra/redisotel/v9 v9.17.3
- github.com/redis/go-redis/v9 v9.17.3
+ github.com/redis/go-redis/extra/redisotel/v9 v9.18.0
+ github.com/redis/go-redis/v9 v9.18.0
github.com/rs/zerolog v1.34.0
github.com/schollz/progressbar/v3 v3.19.0
github.com/stretchr/testify v1.11.1
@@ -51,7 +51,7 @@ require (
go.opentelemetry.io/otel/sdk v1.40.0
go.opentelemetry.io/otel/sdk/metric v1.40.0
go.opentelemetry.io/otel/trace v1.40.0
- google.golang.org/api v0.265.0
+ google.golang.org/api v0.267.0
google.golang.org/protobuf v1.36.11
gorm.io/driver/postgres v1.6.0
gorm.io/driver/sqlite v1.6.0
@@ -65,7 +65,7 @@ require (
github.com/inbucket/html2text v1.0.0 // indirect
github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 // indirect
github.com/olekukonko/errors v1.2.0 // indirect
- github.com/olekukonko/ll v0.1.4 // indirect
+ github.com/olekukonko/ll v0.1.6 // indirect
github.com/sirupsen/logrus v1.9.4 // indirect
github.com/spf13/cast v1.10.0 // indirect
github.com/yuin/goldmark v1.7.16 // indirect
@@ -74,17 +74,17 @@ require (
require (
cel.dev/expr v0.25.1 // indirect
cloud.google.com/go v0.123.0 // indirect
- cloud.google.com/go/auth v0.18.1 // indirect
+ cloud.google.com/go/auth v0.18.2 // indirect
cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect
cloud.google.com/go/compute/metadata v0.9.0 // indirect
cloud.google.com/go/firestore v1.21.0 // indirect
cloud.google.com/go/iam v1.5.3 // indirect
cloud.google.com/go/longrunning v0.8.0 // indirect
cloud.google.com/go/monitoring v1.24.3 // indirect
- cloud.google.com/go/storage v1.59.2 // indirect
+ cloud.google.com/go/storage v1.60.0 // indirect
cloud.google.com/go/trace v1.11.7 // indirect
dario.cat/mergo v1.0.2 // indirect
- filippo.io/edwards25519 v1.1.0 // indirect
+ filippo.io/edwards25519 v1.2.0 // indirect
github.com/ClickHouse/ch-go v0.71.0 // indirect
github.com/ClickHouse/clickhouse-go/v2 v2.43.0 // indirect
github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.31.0 // indirect
@@ -97,13 +97,12 @@ require (
github.com/antlr4-go/antlr/v4 v4.13.1 // indirect
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect
- github.com/clipperhouse/displaywidth v0.9.0 // indirect
- github.com/clipperhouse/stringish v0.1.1 // indirect
- github.com/clipperhouse/uax29/v2 v2.6.0 // indirect
+ github.com/clipperhouse/displaywidth v0.10.0 // indirect
+ github.com/clipperhouse/uax29/v2 v2.7.0 // indirect
github.com/cncf/xds/go v0.0.0-20260202195803-dba9d589def2 // indirect
github.com/coder/websocket v1.8.14 // indirect
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
- github.com/envoyproxy/go-control-plane/envoy v1.36.0 // indirect
+ github.com/envoyproxy/go-control-plane/envoy v1.37.0 // indirect
github.com/envoyproxy/protoc-gen-validate v1.3.0 // indirect
github.com/fatih/color v1.18.0 // indirect
github.com/felixge/httpsnoop v1.0.4 // indirect
@@ -125,10 +124,10 @@ require (
github.com/go-sql-driver/mysql v1.9.3 // indirect
github.com/golang/protobuf v1.5.4 // indirect
github.com/google/s2a-go v0.1.9 // indirect
- github.com/googleapis/enterprise-certificate-proxy v0.3.11 // indirect
+ github.com/googleapis/enterprise-certificate-proxy v0.3.12 // indirect
github.com/googleapis/gax-go/v2 v2.17.0 // indirect
github.com/gorilla/css v1.0.1 // indirect
- github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.7 // indirect
+ github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0 // indirect
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
github.com/hashicorp/go-version v1.8.0 // indirect
github.com/huandu/xstrings v1.5.0 // indirect
@@ -138,11 +137,11 @@ require (
github.com/jackc/puddle/v2 v2.2.2 // indirect
github.com/jinzhu/inflection v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
- github.com/klauspost/compress v1.18.3 // indirect
+ github.com/klauspost/compress v1.18.4 // indirect
github.com/mattn/go-colorable v0.1.14 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
- github.com/mattn/go-runewidth v0.0.19 // indirect
- github.com/mattn/go-sqlite3 v1.14.33 // indirect
+ github.com/mattn/go-runewidth v0.0.20 // indirect
+ github.com/mattn/go-sqlite3 v1.14.34 // indirect
github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db // indirect
github.com/mitchellh/copystructure v1.2.0 // indirect
github.com/mitchellh/reflectwalk v1.0.2 // indirect
@@ -153,7 +152,7 @@ require (
github.com/pierrec/lz4/v4 v4.1.25 // indirect
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
- github.com/redis/go-redis/extra/rediscmd/v9 v9.17.3 // indirect
+ github.com/redis/go-redis/extra/rediscmd/v9 v9.18.0 // indirect
github.com/richardlehane/mscfb v1.0.6 // indirect
github.com/richardlehane/msoleps v1.0.6 // indirect
github.com/rivo/uniseg v0.4.7 // indirect
@@ -166,7 +165,7 @@ require (
github.com/valyala/bytebufferpool v1.0.0 // indirect
github.com/valyala/fasthttp v1.69.0 // indirect
github.com/vanng822/css v1.0.1 // indirect
- github.com/vanng822/go-premailer v1.30.0 // indirect
+ github.com/vanng822/go-premailer v1.31.0 // indirect
github.com/xuri/efp v0.0.1 // indirect
github.com/xuri/nfp v0.0.2-0.20250530014748-2ddeb826f9a9 // indirect
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
@@ -183,11 +182,12 @@ require (
go.opentelemetry.io/otel/log v0.16.0 // indirect
go.opentelemetry.io/otel/sdk/log v0.16.0 // indirect
go.opentelemetry.io/proto/otlp v1.9.0 // indirect
+ go.uber.org/atomic v1.11.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.1 // indirect
go.yaml.in/yaml/v3 v3.0.4 // indirect
golang.org/x/crypto v0.48.0 // indirect
- golang.org/x/exp v0.0.0-20260209203927-2842357ff358 // indirect
+ golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a // indirect
golang.org/x/mod v0.33.0 // indirect
golang.org/x/net v0.50.0 // indirect
golang.org/x/oauth2 v0.35.0 // indirect
@@ -198,10 +198,10 @@ require (
golang.org/x/time v0.14.0 // indirect
golang.org/x/tools v0.42.0 // indirect
google.golang.org/appengine v1.6.8 // indirect
- google.golang.org/genproto v0.0.0-20260203192932-546029d2fa20 // indirect
- google.golang.org/genproto/googleapis/api v0.0.0-20260203192932-546029d2fa20 // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20260203192932-546029d2fa20 // indirect
- google.golang.org/grpc v1.78.0 // indirect
+ google.golang.org/genproto v0.0.0-20260217200457-a2cb2272a1e9 // indirect
+ google.golang.org/genproto/googleapis/api v0.0.0-20260217200457-a2cb2272a1e9 // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20260217215200-42d3e9bedb6d // indirect
+ google.golang.org/grpc v1.79.1 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
gorm.io/driver/clickhouse v0.7.0 // indirect
gorm.io/driver/mysql v1.6.0 // indirect
diff --git a/api/go.sum b/api/go.sum
index b0884184..429077da 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -4,8 +4,8 @@ cel.dev/expr v0.25.1 h1:1KrZg61W6TWSxuNZ37Xy49ps13NUovb66QLprthtwi4=
cel.dev/expr v0.25.1/go.mod h1:hrXvqGP6G6gyx8UAHSHJ5RGk//1Oj5nXQ2NI02Nrsg4=
cloud.google.com/go v0.123.0 h1:2NAUJwPR47q+E35uaJeYoNhuNEM9kM8SjgRgdeOJUSE=
cloud.google.com/go v0.123.0/go.mod h1:xBoMV08QcqUGuPW65Qfm1o9Y4zKZBpGS+7bImXLTAZU=
-cloud.google.com/go/auth v0.18.1 h1:IwTEx92GFUo2pJ6Qea0EU3zYvKnTAeRCODxfA/G5UWs=
-cloud.google.com/go/auth v0.18.1/go.mod h1:GfTYoS9G3CWpRA3Va9doKN9mjPGRS+v41jmZAhBzbrA=
+cloud.google.com/go/auth v0.18.2 h1:+Nbt5Ev0xEqxlNjd6c+yYUeosQ5TtEUaNcN/3FozlaM=
+cloud.google.com/go/auth v0.18.2/go.mod h1:xD+oY7gcahcu7G2SG2DsBerfFxgPAJz17zz2joOFF3M=
cloud.google.com/go/auth/oauth2adapt v0.2.8 h1:keo8NaayQZ6wimpNSmW5OPc283g65QNIiLpZnkHRbnc=
cloud.google.com/go/auth/oauth2adapt v0.2.8/go.mod h1:XQ9y31RkqZCcwJWNSx2Xvric3RrU88hAYYbjDWYDL+c=
cloud.google.com/go/cloudtasks v1.13.7 h1:H2v8GEolNtMFfYzUpZBaZbydqU7drpyo99GtAgA+m4I=
@@ -16,20 +16,20 @@ cloud.google.com/go/firestore v1.21.0 h1:BhopUsx7kh6NFx77ccRsHhrtkbJUmDAxNY3uapW
cloud.google.com/go/firestore v1.21.0/go.mod h1:1xH6HNcnkf/gGyR8udd6pFO4Z7GWJSwLKQMx/u6UrP4=
cloud.google.com/go/iam v1.5.3 h1:+vMINPiDF2ognBJ97ABAYYwRgsaqxPbQDlMnbHMjolc=
cloud.google.com/go/iam v1.5.3/go.mod h1:MR3v9oLkZCTlaqljW6Eb2d3HGDGK5/bDv93jhfISFvU=
-cloud.google.com/go/logging v1.13.1 h1:O7LvmO0kGLaHY/gq8cV7T0dyp6zJhYAOtZPX4TF3QtY=
-cloud.google.com/go/logging v1.13.1/go.mod h1:XAQkfkMBxQRjQek96WLPNze7vsOmay9H5PqfsNYDqvw=
+cloud.google.com/go/logging v1.13.2 h1:qqlHCBvieJT9Cdq4QqYx1KPadCQ2noD4FK02eNqHAjA=
+cloud.google.com/go/logging v1.13.2/go.mod h1:zaybliM3yun1J8mU2dVQ1/qDzjbOqEijZCn6hSBtKak=
cloud.google.com/go/longrunning v0.8.0 h1:LiKK77J3bx5gDLi4SMViHixjD2ohlkwBi+mKA7EhfW8=
cloud.google.com/go/longrunning v0.8.0/go.mod h1:UmErU2Onzi+fKDg2gR7dusz11Pe26aknR4kHmJJqIfk=
cloud.google.com/go/monitoring v1.24.3 h1:dde+gMNc0UhPZD1Azu6at2e79bfdztVDS5lvhOdsgaE=
cloud.google.com/go/monitoring v1.24.3/go.mod h1:nYP6W0tm3N9H/bOw8am7t62YTzZY+zUeQ+Bi6+2eonI=
-cloud.google.com/go/storage v1.59.2 h1:gmOAuG1opU8YvycMNpP+DvHfT9BfzzK5Cy+arP+Nocw=
-cloud.google.com/go/storage v1.59.2/go.mod h1:cMWbtM+anpC74gn6qjLh+exqYcfmB9Hqe5z6adx+CLI=
+cloud.google.com/go/storage v1.60.0 h1:oBfZrSOCimggVNz9Y/bXY35uUcts7OViubeddTTVzQ8=
+cloud.google.com/go/storage v1.60.0/go.mod h1:q+5196hXfejkctrnx+VYU8RKQr/L3c0cBIlrjmiAKE0=
cloud.google.com/go/trace v1.11.7 h1:kDNDX8JkaAG3R2nq1lIdkb7FCSi1rCmsEtKVsty7p+U=
cloud.google.com/go/trace v1.11.7/go.mod h1:TNn9d5V3fQVf6s4SCveVMIBS2LJUqo73GACmq/Tky0s=
dario.cat/mergo v1.0.2 h1:85+piFYR1tMbRrLcDwR18y4UKJ3aH1Tbzi24VRW1TK8=
dario.cat/mergo v1.0.2/go.mod h1:E/hbnu0NxMFBjpMIE34DRGLWqDy0g5FuKDhCb31ngxA=
-filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
-filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
+filippo.io/edwards25519 v1.2.0 h1:crnVqOiS4jqYleHd9vaKZ+HKtHfllngJIiOpNpoJsjo=
+filippo.io/edwards25519 v1.2.0/go.mod h1:xzAOLCNug/yB62zG1bQ8uziwrIqIuxhctzJT18Q77mc=
firebase.google.com/go v3.13.0+incompatible h1:3TdYC3DDi6aHn20qoRkxwGqNgdjtblwVAyRLQwGn/+4=
firebase.google.com/go v3.13.0+incompatible/go.mod h1:xlah6XbEyW6tbfSklcfe5FHJIwjt8toICdV5Wh9ptHs=
github.com/ClickHouse/ch-go v0.71.0 h1:bUdZ/EZj/LcVHsMqaRUP2holqygrPWQKeMjc6nZoyRM=
@@ -68,8 +68,8 @@ github.com/andybalholm/cascadia v1.3.3 h1:AG2YHrzJIm4BZ19iwJ/DAua6Btl3IwJX+VI4kk
github.com/andybalholm/cascadia v1.3.3/go.mod h1:xNd9bqTn98Ln4DwST8/nG+H0yuB8Hmgu1YHNnWw0GeA=
github.com/antlr4-go/antlr/v4 v4.13.1 h1:SqQKkuVZ+zWkMMNkjy5FZe5mr5WURWnlpmOuzYWrPrQ=
github.com/antlr4-go/antlr/v4 v4.13.1/go.mod h1:GKmUxMtwp6ZgGwZSva4eWPC5mS6vUAmOABFgjdkM7Nw=
-github.com/avast/retry-go v3.0.0+incompatible h1:4SOWQ7Qs+oroOTQOYnAHqelpCO0biHSxpiH9JdtuBj0=
-github.com/avast/retry-go v3.0.0+incompatible/go.mod h1:XtSnn+n/sHqQIpZ10K1qAevBhOOCWBLXXy3hyiqqBrY=
+github.com/avast/retry-go/v5 v5.0.0 h1:kf1Qc2UsTZ4qq8elDymqfbISvkyMuhgRxuJqX2NHP7k=
+github.com/avast/retry-go/v5 v5.0.0/go.mod h1://d+usmKWio1agtZfS1H/ltTqwtIfBnRq9zEwjc3eH8=
github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs=
github.com/bsm/ginkgo/v2 v2.12.0/go.mod h1:SwYbGRRDovPVboqFv0tPTcG1sN61LM1Z4ARdbAV9g4c=
github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA=
@@ -82,12 +82,10 @@ github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UF
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/chengxilo/virtualterm v1.0.4 h1:Z6IpERbRVlfB8WkOmtbHiDbBANU7cimRIof7mk9/PwM=
github.com/chengxilo/virtualterm v1.0.4/go.mod h1:DyxxBZz/x1iqJjFxTFcr6/x+jSpqN0iwWCOK1q10rlY=
-github.com/clipperhouse/displaywidth v0.9.0 h1:Qb4KOhYwRiN3viMv1v/3cTBlz3AcAZX3+y9OLhMtAtA=
-github.com/clipperhouse/displaywidth v0.9.0/go.mod h1:aCAAqTlh4GIVkhQnJpbL0T/WfcrJXHcj8C0yjYcjOZA=
-github.com/clipperhouse/stringish v0.1.1 h1:+NSqMOr3GR6k1FdRhhnXrLfztGzuG+VuFDfatpWHKCs=
-github.com/clipperhouse/stringish v0.1.1/go.mod h1:v/WhFtE1q0ovMta2+m+UbpZ+2/HEXNWYXQgCt4hdOzA=
-github.com/clipperhouse/uax29/v2 v2.6.0 h1:z0cDbUV+aPASdFb2/ndFnS9ts/WNXgTNNGFoKXuhpos=
-github.com/clipperhouse/uax29/v2 v2.6.0/go.mod h1:Wn1g7MK6OoeDT0vL+Q0SQLDz/KpfsVRgg6W7ihQeh4g=
+github.com/clipperhouse/displaywidth v0.10.0 h1:GhBG8WuerxjFQQYeuZAeVTuyxuX+UraiZGD4HJQ3Y8g=
+github.com/clipperhouse/displaywidth v0.10.0/go.mod h1:XqJajYsaiEwkxOj4bowCTMcT1SgvHo9flfF3jQasdbs=
+github.com/clipperhouse/uax29/v2 v2.7.0 h1:+gs4oBZ2gPfVrKPthwbMzWZDaAFPGYK72F0NJv2v7Vk=
+github.com/clipperhouse/uax29/v2 v2.7.0/go.mod h1:EFJ2TJMRUaplDxHKj1qAEhCtQPW2tJSwu5BF98AuoVM=
github.com/cloudevents/sdk-go/v2 v2.16.2 h1:ZYDFrYke4FD+jM8TZTJJO6JhKHzOQl2oqpFK1D+NnQM=
github.com/cloudevents/sdk-go/v2 v2.16.2/go.mod h1:laOcGImm4nVJEU+PHnUrKL56CKmRL65RlQF0kRmW/kg=
github.com/cncf/xds/go v0.0.0-20260202195803-dba9d589def2 h1:aBangftG7EVZoUb69Os8IaYg++6uMOdKK83QtkkvJik=
@@ -109,10 +107,10 @@ github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/r
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
-github.com/envoyproxy/go-control-plane v0.13.5-0.20251024222203-75eaa193e329 h1:K+fnvUM0VZ7ZFJf0n4L/BRlnsb9pL/GuDG6FqaH+PwM=
-github.com/envoyproxy/go-control-plane v0.13.5-0.20251024222203-75eaa193e329/go.mod h1:Alz8LEClvR7xKsrq3qzoc4N0guvVNSS8KmSChGYr9hs=
-github.com/envoyproxy/go-control-plane/envoy v1.36.0 h1:yg/JjO5E7ubRyKX3m07GF3reDNEnfOboJ0QySbH736g=
-github.com/envoyproxy/go-control-plane/envoy v1.36.0/go.mod h1:ty89S1YCCVruQAm9OtKeEkQLTb+Lkz0k8v9W0Oxsv98=
+github.com/envoyproxy/go-control-plane v0.14.0 h1:hbG2kr4RuFj222B6+7T83thSPqLjwBIfQawTkC++2HA=
+github.com/envoyproxy/go-control-plane v0.14.0/go.mod h1:NcS5X47pLl/hfqxU70yPwL9ZMkUlwlKxtAohpi2wBEU=
+github.com/envoyproxy/go-control-plane/envoy v1.37.0 h1:u3riX6BoYRfF4Dr7dwSOroNfdSbEPe9Yyl09/B6wBrQ=
+github.com/envoyproxy/go-control-plane/envoy v1.37.0/go.mod h1:DReE9MMrmecPy+YvQOAOHNYMALuowAnbjjEMkkWOi6A=
github.com/envoyproxy/go-control-plane/ratelimit v0.1.0 h1:/G9QYbddjL25KvtKTv3an9lx6VBE2cnb8wp1vEGNYGI=
github.com/envoyproxy/go-control-plane/ratelimit v0.1.0/go.mod h1:Wk+tMFAFbCXaJPzVVHnPgRKdUdwW/KdbRt94AzgRee4=
github.com/envoyproxy/protoc-gen-validate v1.3.0 h1:TvGH1wof4H33rezVKWSpqKz5NXWg5VPuZ0uONDT6eb4=
@@ -194,14 +192,14 @@ github.com/google/s2a-go v0.1.9 h1:LGD7gtMgezd8a/Xak7mEWL0PjoTQFvpRudN895yqKW0=
github.com/google/s2a-go v0.1.9/go.mod h1:YA0Ei2ZQL3acow2O62kdp9UlnvMmU7kA6Eutn0dXayM=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/googleapis/enterprise-certificate-proxy v0.3.11 h1:vAe81Msw+8tKUxi2Dqh/NZMz7475yUvmRIkXr4oN2ao=
-github.com/googleapis/enterprise-certificate-proxy v0.3.11/go.mod h1:RFV7MUdlb7AgEq2v7FmMCfeSMCllAzWxFgRdusoGks8=
+github.com/googleapis/enterprise-certificate-proxy v0.3.12 h1:Fg+zsqzYEs1ZnvmcztTYxhgCBsx3eEhEwQ1W/lHq/sQ=
+github.com/googleapis/enterprise-certificate-proxy v0.3.12/go.mod h1:vqVt9yG9480NtzREnTlmGSBmFrA+bzb0yl0TxoBQXOg=
github.com/googleapis/gax-go/v2 v2.17.0 h1:RksgfBpxqff0EZkDWYuz9q/uWsTVz+kf43LsZ1J6SMc=
github.com/googleapis/gax-go/v2 v2.17.0/go.mod h1:mzaqghpQp4JDh3HvADwrat+6M3MOIDp5YKHhb9PAgDY=
github.com/gorilla/css v1.0.1 h1:ntNaBIghp6JmvWnxbZKANoLyuXTPZ4cAMlo6RyhlbO8=
github.com/gorilla/css v1.0.1/go.mod h1:BvnYkspnSzMmwRK+b8/xgNPLiIuNZr6vbZBTPQ2A3b0=
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.7 h1:X+2YciYSxvMQK0UZ7sg45ZVabVZBeBuvMkmuI2V3Fak=
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.7/go.mod h1:lW34nIZuQ8UDPdkon5fmfp2l3+ZkQ2me/+oecHYLOII=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0 h1:HWRh5R2+9EifMyIHV7ZV+MIZqgz+PMpZ14Jynv3O2Zs=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0/go.mod h1:JfhWUomR1baixubs02l85lZYYOm7LV6om4ceouMv45c=
github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ=
github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB11/k=
@@ -241,8 +239,10 @@ github.com/jszwec/csvutil v1.10.0/go.mod h1:/E4ONrmGkwmWsk9ae9jpXnv9QT8pLHEPcCir
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
-github.com/klauspost/compress v1.18.3 h1:9PJRvfbmTabkOX8moIpXPbMMbYN60bWImDDU7L+/6zw=
-github.com/klauspost/compress v1.18.3/go.mod h1:R0h/fSBs8DE4ENlcrlib3PsXS61voFxhIs2DeRhCvJ4=
+github.com/klauspost/compress v1.18.4 h1:RPhnKRAQ4Fh8zU2FY/6ZFDwTVTxgJ/EMydqSTzE9a2c=
+github.com/klauspost/compress v1.18.4/go.mod h1:R0h/fSBs8DE4ENlcrlib3PsXS61voFxhIs2DeRhCvJ4=
+github.com/klauspost/cpuid/v2 v2.0.9 h1:lgaqFMSdTdQYdZ04uHyN2d/eKdOMyi2YLSvlQIBFYa4=
+github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
@@ -250,8 +250,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
-github.com/lib/pq v1.11.1 h1:wuChtj2hfsGmmx3nf1m7xC2XpK6OtelS2shMY+bGMtI=
-github.com/lib/pq v1.11.1/go.mod h1:/p+8NSbOcwzAEI7wiMXFlgydTwcgTr3OSKMsD2BitpA=
+github.com/lib/pq v1.11.2 h1:x6gxUeu39V0BHZiugWe8LXZYZ+Utk7hSJGThs8sdzfs=
+github.com/lib/pq v1.11.2/go.mod h1:/p+8NSbOcwzAEI7wiMXFlgydTwcgTr3OSKMsD2BitpA=
github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg=
github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
@@ -259,10 +259,10 @@ github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/
github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
-github.com/mattn/go-runewidth v0.0.19 h1:v++JhqYnZuu5jSKrk9RbgF5v4CGUjqRfBm05byFGLdw=
-github.com/mattn/go-runewidth v0.0.19/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs=
-github.com/mattn/go-sqlite3 v1.14.33 h1:A5blZ5ulQo2AtayQ9/limgHEkFreKj1Dv226a1K73s0=
-github.com/mattn/go-sqlite3 v1.14.33/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
+github.com/mattn/go-runewidth v0.0.20 h1:WcT52H91ZUAwy8+HUkdM3THM6gXqXuLJi9O3rjcQQaQ=
+github.com/mattn/go-runewidth v0.0.20/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs=
+github.com/mattn/go-sqlite3 v1.14.34 h1:3NtcvcUnFBPsuRcno8pUtupspG/GM+9nZ88zgJcp6Zk=
+github.com/mattn/go-sqlite3 v1.14.34/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db h1:62I3jR2EmQ4l5rM/4FEfDWcRD+abF5XlKShorW5LRoQ=
github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db/go.mod h1:l0dey0ia/Uv7NcFFVbCLtqEBQbrT4OCwCSKTEv6enCw=
github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw=
@@ -275,14 +275,14 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
-github.com/nyaruka/phonenumbers v1.6.8 h1:k7HAJ/LeBkXE0vfbajITzTCZD0z0j+epdBNx43yTygk=
-github.com/nyaruka/phonenumbers v1.6.8/go.mod h1:IUu45lj2bSeYXQuxDyyuzOrdV10tyRa1YSsfH8EKN5c=
+github.com/nyaruka/phonenumbers v1.6.9 h1:LUmsIr+WKyBhWTzxm/9j+kGC9JclO+hBOHc18PSo9iM=
+github.com/nyaruka/phonenumbers v1.6.9/go.mod h1:IUu45lj2bSeYXQuxDyyuzOrdV10tyRa1YSsfH8EKN5c=
github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 h1:zrbMGy9YXpIeTnGj4EljqMiZsIcE09mmF8XsD5AYOJc=
github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6/go.mod h1:rEKTHC9roVVicUIfZK7DYrdIoM0EOr8mK1Hj5s3JjH0=
github.com/olekukonko/errors v1.2.0 h1:10Zcn4GeV59t/EGqJc8fUjtFT/FuUh5bTMzZ1XwmCRo=
github.com/olekukonko/errors v1.2.0/go.mod h1:ppzxA5jBKcO1vIpCXQ9ZqgDh8iwODz6OXIGKU8r5m4Y=
-github.com/olekukonko/ll v0.1.4 h1:QcDaO9quz213xqHZr0gElOcYeOSnFeq7HTQ9Wu4O1wE=
-github.com/olekukonko/ll v0.1.4/go.mod h1:b52bVQRRPObe+yyBl0TxNfhesL0nedD4Cht0/zx55Ew=
+github.com/olekukonko/ll v0.1.6 h1:lGVTHO+Qc4Qm+fce/2h2m5y9LvqaW+DCN7xW9hsU3uA=
+github.com/olekukonko/ll v0.1.6/go.mod h1:NVUmjBb/aCtUpjKk75BhWrOlARz3dqsM+OtszpY4o88=
github.com/olekukonko/tablewriter v1.1.3 h1:VSHhghXxrP0JHl+0NnKid7WoEmd9/urKRJLysb70nnA=
github.com/olekukonko/tablewriter v1.1.3/go.mod h1:9VU0knjhmMkXjnMKrZ3+L2JhhtsQ/L38BbL3CRNE8tM=
github.com/palantir/stacktrace v0.0.0-20161112013806-78658fd2d177 h1:nRlQD0u1871kaznCnn1EvYiMbum36v7hw1DLPEjds4o=
@@ -303,12 +303,12 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRI
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pusher/pusher-http-go/v5 v5.1.1 h1:ZLUGdLA8yXMvByafIkS47nvuXOHrYmlh4bsQvuZnYVQ=
github.com/pusher/pusher-http-go/v5 v5.1.1/go.mod h1:Ibji4SGoUDtOy7CVRhCiEpgy+n5Xv6hSL/QqYOhmWW8=
-github.com/redis/go-redis/extra/rediscmd/v9 v9.17.3 h1:v9RNP5ynWkruvzscrIoDyyv20c9YeyVn12L9nYnaexw=
-github.com/redis/go-redis/extra/rediscmd/v9 v9.17.3/go.mod h1:gdthSemCkR3WxTmzV2XxYIxClunkUJZAhL0zPHaB0Ww=
-github.com/redis/go-redis/extra/redisotel/v9 v9.17.3 h1:bF0e3fV7PL0knd1UHDtMud8wA7CZt3RSWtyTMhpnWd8=
-github.com/redis/go-redis/extra/redisotel/v9 v9.17.3/go.mod h1:gR39sPK/dJZlqgIA9Nm4JFHcQJPyhsISBLj708nrD4w=
-github.com/redis/go-redis/v9 v9.17.3 h1:fN29NdNrE17KttK5Ndf20buqfDZwGNgoUr9qjl1DQx4=
-github.com/redis/go-redis/v9 v9.17.3/go.mod h1:u410H11HMLoB+TP67dz8rL9s6QW2j76l0//kSOd3370=
+github.com/redis/go-redis/extra/rediscmd/v9 v9.18.0 h1:QY4nmPHLFAJjtT5O4OMUEOxP8WVaRNOFpcbmxT2NLZU=
+github.com/redis/go-redis/extra/rediscmd/v9 v9.18.0/go.mod h1:WH8cY/0fT41Bsf341qzo8v4nx0GCE8FykAA23IVbVmo=
+github.com/redis/go-redis/extra/redisotel/v9 v9.18.0 h1:2dKdoEYBJ0CZCLPiCdvvc7luz3DPwY6hKdzjL6m1eHE=
+github.com/redis/go-redis/extra/redisotel/v9 v9.18.0/go.mod h1:WzkrVG9ro9BwCQD0eJOWn6AGL4Z1CleGflM45w1hu10=
+github.com/redis/go-redis/v9 v9.18.0 h1:pMkxYPkEbMPwRdenAzUNyFNrDgHx9U+DrBabWNfSRQs=
+github.com/redis/go-redis/v9 v9.18.0/go.mod h1:k3ufPphLU5YXwNTUcCRXGxUoF1fqxnhFQmscfkCoDA0=
github.com/richardlehane/mscfb v1.0.6 h1:eN3bvvZCp00bs7Zf52bxNwAx5lJDBK1tCuH19qq5aC8=
github.com/richardlehane/mscfb v1.0.6/go.mod h1:pe0+IUIc0AHh0+teNzBlJCtSyZdFOGgV4ZK9bsoV+Jo=
github.com/richardlehane/msoleps v1.0.6 h1:9BvkpjvD+iUBalUY4esMwv6uBkfOip/Lzvd93jvR9gg=
@@ -359,8 +359,8 @@ github.com/valyala/fasthttp v1.69.0 h1:fNLLESD2SooWeh2cidsuFtOcrEi4uB4m1mPrkJMZy
github.com/valyala/fasthttp v1.69.0/go.mod h1:4wA4PfAraPlAsJ5jMSqCE2ug5tqUPwKXxVj8oNECGcw=
github.com/vanng822/css v1.0.1 h1:10yiXc4e8NI8ldU6mSrWmSWMuyWgPr9DZ63RSlsgDw8=
github.com/vanng822/css v1.0.1/go.mod h1:tcnB1voG49QhCrwq1W0w5hhGasvOg+VQp9i9H1rCM1w=
-github.com/vanng822/go-premailer v1.30.0 h1:9oAp2PrJm4rvPnBgP57J/K1sJ1fQvSrU8TxamFvvwGU=
-github.com/vanng822/go-premailer v1.30.0/go.mod h1:1okMIRBIcWIK1g5vJKaXi2ytD1ulsIc9wUGwK7UD3/I=
+github.com/vanng822/go-premailer v1.31.0 h1:r1a1WH2I5NnGMhrmjVZyYhY0ThvaamKBkS2UuM91Fuo=
+github.com/vanng822/go-premailer v1.31.0/go.mod h1:hzI26/YvzUADrxqifxGLJvNvn3tWBU6VMHRvxsskpuo=
github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23ni57g=
github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8=
@@ -378,6 +378,8 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
github.com/yuin/goldmark v1.7.16 h1:n+CJdUxaFMiDUNnWC3dMWCIQJSkxH4uz3ZwQBkAlVNE=
github.com/yuin/goldmark v1.7.16/go.mod h1:ip/1k0VRfGynBgxOz0yCqHrbZXhcjxyuS66Brc7iBKg=
+github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0=
+github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA=
go.mongodb.org/mongo-driver v1.11.4/go.mod h1:PTSz5yu21bkT/wXpkS7WR5f0ddqw5quethTUn9WM+2g=
go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64=
go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y=
@@ -403,8 +405,8 @@ go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0 h1:QKdN8ly8zEMrByybbQg
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0/go.mod h1:bTdK1nhqF76qiPoCCdyFIV+N/sRHYXYCTQc+3VCi3MI=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0 h1:wVZXIWjQSeSmMoxF74LzAnpVQOAFDo3pPji9Y4SOFKc=
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0/go.mod h1:khvBS2IggMFNwZK/6lEeHg/W57h/IX6J4URh57fuI40=
-go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.38.0 h1:wm/Q0GAAykXv83wzcKzGGqAnnfLFyFe7RslekZuv+VI=
-go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.38.0/go.mod h1:ra3Pa40+oKjvYh+ZD3EdxFZZB0xdMfuileHAm4nNN7w=
+go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.39.0 h1:5gn2urDL/FBnK8OkCfD1j3/ER79rUuTYmCvlXBKeYL8=
+go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.39.0/go.mod h1:0fBG6ZJxhqByfFZDwSwpZGzJU671HkwpWaNe2t4VUPI=
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.40.0 h1:MzfofMZN8ulNqobCmCAVbqVL5syHw+eB2qPRkCMA/fQ=
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.40.0/go.mod h1:E73G9UFtKRXrxhBsHtG00TB5WxX57lpsQzogDkqBTz8=
go.opentelemetry.io/otel/log v0.16.0 h1:DeuBPqCi6pQwtCK0pO4fvMB5eBq6sNxEnuTs88pjsN4=
@@ -425,6 +427,8 @@ go.opentelemetry.io/otel/trace v1.40.0 h1:WA4etStDttCSYuhwvEa8OP8I5EWu24lkOzp+ZY
go.opentelemetry.io/otel/trace v1.40.0/go.mod h1:zeAhriXecNGP/s2SEG3+Y8X9ujcJOTqQ5RgdEJcawiA=
go.opentelemetry.io/proto/otlp v1.9.0 h1:l706jCMITVouPOqEnii2fIAuO3IVGBRPV5ICjceRb/A=
go.opentelemetry.io/proto/otlp v1.9.0/go.mod h1:xE+Cx5E/eEHw+ISFkwPLwCZefwVjY+pqKg1qcK03+/4=
+go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE=
+go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
@@ -445,8 +449,8 @@ golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v
golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk=
golang.org/x/crypto v0.48.0 h1:/VRzVqiRSggnhY7gNRxPauEQ5Drw9haKdM0jqfcCFts=
golang.org/x/crypto v0.48.0/go.mod h1:r0kV5h3qnFPlQnBSrULhlsRfryS2pmewsg+XfMgkVos=
-golang.org/x/exp v0.0.0-20260209203927-2842357ff358 h1:kpfSV7uLwKJbFSEgNhWzGSL47NDSF/5pYYQw1V0ub6c=
-golang.org/x/exp v0.0.0-20260209203927-2842357ff358/go.mod h1:R3t0oliuryB5eenPWl3rrQxwnNM3WTwnsRZZiXLAAW8=
+golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a h1:ovFr6Z0MNmU7nH8VaX5xqw+05ST2uO1exVfZPVqRC5o=
+golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a/go.mod h1:K79w1Vqn7PoiZn+TkNpx3BUWUQksGO3JcVX6qIjytmA=
golang.org/x/image v0.25.0 h1:Y6uW6rH1y5y/LK1J8BPWZtr6yZ7hrsy6hFrXjgsc2fQ=
golang.org/x/image v0.25.0/go.mod h1:tCAmOEGthTtkalusGp1g3xa2gke8J6c2N565dTyl9Rs=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
@@ -547,18 +551,18 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk=
gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E=
-google.golang.org/api v0.265.0 h1:FZvfUdI8nfmuNrE34aOWFPmLC+qRBEiNm3JdivTvAAU=
-google.golang.org/api v0.265.0/go.mod h1:uAvfEl3SLUj/7n6k+lJutcswVojHPp2Sp08jWCu8hLY=
+google.golang.org/api v0.267.0 h1:w+vfWPMPYeRs8qH1aYYsFX68jMls5acWl/jocfLomwE=
+google.golang.org/api v0.267.0/go.mod h1:Jzc0+ZfLnyvXma3UtaTl023TdhZu6OMBP9tJ+0EmFD0=
google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM=
google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds=
-google.golang.org/genproto v0.0.0-20260203192932-546029d2fa20 h1:/CU1zrxTpGylJJbe3Ru94yy6sZRbzALq2/oxl3pGB3U=
-google.golang.org/genproto v0.0.0-20260203192932-546029d2fa20/go.mod h1:Tt+08/KdKEt3l8x3Pby3HLQxMB3uk/MzaQ4ZIv0ORTs=
-google.golang.org/genproto/googleapis/api v0.0.0-20260203192932-546029d2fa20 h1:7ei4lp52gK1uSejlA8AZl5AJjeLUOHBQscRQZUgAcu0=
-google.golang.org/genproto/googleapis/api v0.0.0-20260203192932-546029d2fa20/go.mod h1:ZdbssH/1SOVnjnDlXzxDHK2MCidiqXtbYccJNzNYPEE=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20260203192932-546029d2fa20 h1:Jr5R2J6F6qWyzINc+4AM8t5pfUz6beZpHp678GNrMbE=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20260203192932-546029d2fa20/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ=
-google.golang.org/grpc v1.78.0 h1:K1XZG/yGDJnzMdd/uZHAkVqJE+xIDOcmdSFZkBUicNc=
-google.golang.org/grpc v1.78.0/go.mod h1:I47qjTo4OKbMkjA/aOOwxDIiPSBofUtQUI5EfpWvW7U=
+google.golang.org/genproto v0.0.0-20260217200457-a2cb2272a1e9 h1:MzLVemxGdOBt2uziz9LnuYRQQFw1FDV0s0af4GVYE1A=
+google.golang.org/genproto v0.0.0-20260217200457-a2cb2272a1e9/go.mod h1:9mSgs6f8tLwHSr6EzFWG+naa04gb1Zpt4IumYKsRDs0=
+google.golang.org/genproto/googleapis/api v0.0.0-20260217200457-a2cb2272a1e9 h1:yt1EUx2U7D7a0Myzkt7z+RR5hnl6mCdzcUfYHx7LEls=
+google.golang.org/genproto/googleapis/api v0.0.0-20260217200457-a2cb2272a1e9/go.mod h1:S3ojYC5GRm/7ewOSg8Rh+iqeqxS3BLlLKFhVlbYwHuU=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20260217215200-42d3e9bedb6d h1:t/LOSXPJ9R0B6fnZNyALBRfZBH0Uy0gT+uR+SJ6syqQ=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20260217215200-42d3e9bedb6d/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8=
+google.golang.org/grpc v1.79.1 h1:zGhSi45ODB9/p3VAawt9a+O/MULLl9dpizzNNpq7flY=
+google.golang.org/grpc v1.79.1/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
diff --git a/api/pkg/repositories/repository.go b/api/pkg/repositories/repository.go
index 14285dc4..c63d3fbb 100644
--- a/api/pkg/repositories/repository.go
+++ b/api/pkg/repositories/repository.go
@@ -4,7 +4,7 @@ import (
"strings"
"time"
- "github.com/avast/retry-go"
+ "github.com/avast/retry-go/v5"
"github.com/palantir/stacktrace"
)
@@ -34,11 +34,10 @@ func isRetryableError(err error) bool {
// executeWithRetry executes a GORM query with retry logic for transient connection errors
func executeWithRetry(fn func() error) (err error) {
- return retry.Do(
- fn,
+ return retry.New(
retry.LastErrorOnly(true),
retry.Attempts(3),
retry.Delay(100*time.Millisecond),
retry.RetryIf(isRetryableError),
- )
+ ).Do(fn)
}
diff --git a/api/pkg/services/google_cloud_push_queue_service.go b/api/pkg/services/google_cloud_push_queue_service.go
index 194ab296..d22dac83 100644
--- a/api/pkg/services/google_cloud_push_queue_service.go
+++ b/api/pkg/services/google_cloud_push_queue_service.go
@@ -6,7 +6,7 @@ import (
"net/http"
"time"
- "github.com/avast/retry-go"
+ "github.com/avast/retry-go/v5"
cloudtasks "cloud.google.com/go/cloudtasks/apiv2"
"cloud.google.com/go/cloudtasks/apiv2/cloudtaskspb"
@@ -39,10 +39,10 @@ func NewGooglePushQueue(
// Enqueue a task to the queue
func (queue *googlePushQueue) Enqueue(ctx context.Context, task *PushQueueTask, timeout time.Duration) (queueID string, err error) {
- err = retry.Do(func() error {
+ err = retry.New(retry.Attempts(3)).Do(func() error {
queueID, err = queue.enqueueImpl(ctx, task, timeout)
return err
- }, retry.Attempts(3))
+ })
return queueID, err
}
diff --git a/api/pkg/services/webhook_service.go b/api/pkg/services/webhook_service.go
index 2e94cc06..e4dd0a7b 100644
--- a/api/pkg/services/webhook_service.go
+++ b/api/pkg/services/webhook_service.go
@@ -11,7 +11,7 @@ import (
"sync"
"time"
- "github.com/avast/retry-go"
+ "github.com/avast/retry-go/v5"
"github.com/pkg/errors"
"github.com/gofiber/fiber/v2"
@@ -212,7 +212,7 @@ func (service *WebhookService) sendNotification(ctx context.Context, event cloud
defer span.End()
attempts := 0
- err := retry.Do(func() error {
+ err := retry.New(retry.Attempts(2)).Do(func() error {
attempts++
requestCtx, cancel := context.WithTimeout(ctx, 5*time.Second)
@@ -252,7 +252,7 @@ func (service *WebhookService) sendNotification(ctx context.Context, event cloud
ctxLogger.Info(fmt.Sprintf("sent webhook to url [%s] for event [%s] with ID [%s] and response code [%d]", webhook.URL, event.Type(), event.ID(), response.StatusCode))
return nil
- }, retry.Attempts(2))
+ })
if err != nil {
msg := fmt.Sprintf("cannot handle [%s] event to webhook [%s] for user [%s] after [%d] attempts", event.Type(), webhook.URL, webhook.UserID, attempts)
ctxLogger.Error(service.tracer.WrapErrorSpan(span, stacktrace.Propagate(err, msg)))
From 7f48412ae995c38aed712f7bcdd3d39d34e0e90f Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Thu, 19 Feb 2026 20:01:51 +0200
Subject: [PATCH 129/215] Add logic for skipping migrations
---
api/pkg/di/container.go | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/api/pkg/di/container.go b/api/pkg/di/container.go
index 7f88251a..632e4706 100644
--- a/api/pkg/di/container.go
+++ b/api/pkg/di/container.go
@@ -333,8 +333,12 @@ func (container *Container) DB() (db *gorm.DB) {
container.logger.Fatal(stacktrace.Propagate(err, "cannot use GORM tracing plugin"))
}
- container.logger.Debug(fmt.Sprintf("Running migrations for %T", db))
+ if os.Getenv("DATABASE_MIGRATION_SKIP") != "" {
+ container.logger.Debug(fmt.Sprintf("skipping migrations for [%T]", db))
+ return container.db
+ }
+ container.logger.Debug(fmt.Sprintf("Running migrations for %T", db))
// This prevents a bug in the Gorm AutoMigrate where it tries to delete this no existent constraints
db.Exec(`
ALTER TABLE users ADD CONSTRAINT IF NOT EXISTS uni_users_api_key CHECK (api_key IS NOT NULL);
From 7a6a0c539d91a845b402bb4e74d0e202355d3114 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 20 Feb 2026 19:22:11 +0000
Subject: [PATCH 130/215] chore(deps-dev): bump axios from 0.30.2 to 0.30.3 in
/web
Bumps [axios](https://github.com/axios/axios) from 0.30.2 to 0.30.3.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.30.2...v0.30.3)
---
updated-dependencies:
- dependency-name: axios
dependency-version: 0.30.3
dependency-type: direct:development
...
Signed-off-by: dependabot[bot]
---
web/package.json | 2 +-
web/pnpm-lock.yaml | 33 +++++++++++++++++----------------
2 files changed, 18 insertions(+), 17 deletions(-)
diff --git a/web/package.json b/web/package.json
index c15cbdcb..61cf0770 100644
--- a/web/package.json
+++ b/web/package.json
@@ -65,7 +65,7 @@
"@nuxtjs/vuetify": "^1.12.3",
"@types/qrcode": "^1.5.6",
"@vue/test-utils": "^1.3.6",
- "axios": "^0.30.2",
+ "axios": "^0.30.3",
"babel-core": "7.0.0-bridge.0",
"babel-jest": "^30.2.0",
"eslint": "^8.57.1",
diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml
index 1b0382dc..7c170173 100644
--- a/web/pnpm-lock.yaml
+++ b/web/pnpm-lock.yaml
@@ -133,8 +133,8 @@ importers:
specifier: ^1.3.6
version: 1.3.6(vue-template-compiler@2.7.16)(vue@2.7.16)
axios:
- specifier: ^0.30.2
- version: 0.30.2
+ specifier: ^0.30.3
+ version: 0.30.3
babel-core:
specifier: 7.0.0-bridge.0
version: 7.0.0-bridge.0(@babel/core@7.28.4)
@@ -3009,8 +3009,8 @@ packages:
resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==}
engines: {node: '>= 0.4'}
- axios@0.30.2:
- resolution: {integrity: sha512-0pE4RQ4UQi1jKY6p7u6i1Tkzqmu+d+/tHS7Q7rKunWLB9WyilBTpHHpXzPNMDj5hTbK0B0PTLSz07yqMBiF6xg==}
+ axios@0.30.3:
+ resolution: {integrity: sha512-5/tmEb6TmE/ax3mdXBc/Mi6YdPGxQsv+0p5YlciXWt3PHIn0VamqCXhRMtScnwY3lbgSXLneOuXAKUhgmSRpwg==}
babel-code-frame@6.26.0:
resolution: {integrity: sha512-XqYMR2dfdGMW+hd0IUZ2PwK+fGeFkOxZJ0wY+JaQAHzt1Zx8LcvpiZD2NiGkEG8qx0CfkAOr5xt76d1e8vG90g==}
@@ -4779,8 +4779,8 @@ packages:
vue-template-compiler:
optional: true
- form-data@4.0.4:
- resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==}
+ form-data@4.0.5:
+ resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==}
engines: {node: '>= 6'}
fraction.js@4.3.7:
@@ -4949,16 +4949,17 @@ packages:
glob@10.4.5:
resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
+ deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
hasBin: true
glob@7.2.3:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
- deprecated: Glob versions prior to v9 are no longer supported
+ deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
glob@8.1.0:
resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
engines: {node: '>=12'}
- deprecated: Glob versions prior to v9 are no longer supported
+ deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
global-directory@4.0.1:
resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==}
@@ -8275,7 +8276,7 @@ packages:
tar@6.2.0:
resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==}
engines: {node: '>=10'}
- deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exhorbitant rates) by contacting i@izs.me
+ deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me
teeny-request@7.2.0:
resolution: {integrity: sha512-SyY0pek1zWsi0LRVAALem+avzMLc33MKW/JLLakdP4s9+D7+jHcy5x6P+h94g2QNZsAqQNfX5lsbd3WSeJXrrw==}
@@ -13250,10 +13251,10 @@ snapshots:
available-typed-arrays@1.0.5: {}
- axios@0.30.2:
+ axios@0.30.3:
dependencies:
follow-redirects: 1.15.11
- form-data: 4.0.4
+ form-data: 4.0.5
proxy-from-env: 1.1.0
transitivePeerDependencies:
- debug
@@ -15365,7 +15366,7 @@ snapshots:
eslint: 8.57.1
vue-template-compiler: 2.7.16
- form-data@4.0.4:
+ form-data@4.0.5:
dependencies:
asynckit: 0.4.0
combined-stream: 1.0.8
@@ -17557,7 +17558,7 @@ snapshots:
dependencies:
call-bind: 1.0.2
define-properties: 1.2.1
- has-symbols: 1.0.3
+ has-symbols: 1.1.0
object-keys: 1.1.1
object.fromentries@2.0.7:
@@ -18844,7 +18845,7 @@ snapshots:
dependencies:
call-bind: 1.0.2
get-intrinsic: 1.3.0
- has-symbols: 1.0.3
+ has-symbols: 1.1.0
isarray: 2.0.5
safe-buffer@5.1.2: {}
@@ -19767,7 +19768,7 @@ snapshots:
dependencies:
call-bind: 1.0.2
has-bigints: 1.0.2
- has-symbols: 1.0.3
+ has-symbols: 1.1.0
which-boxed-primitive: 1.0.2
uncrypto@0.1.3: {}
@@ -20412,7 +20413,7 @@ snapshots:
available-typed-arrays: 1.0.5
call-bind: 1.0.2
for-each: 0.3.3
- gopd: 1.0.1
+ gopd: 1.2.0
has-tostringtag: 1.0.2
which@1.3.1:
From eb0a4c9815b9d8134bb029842bb1af29854d961f Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 25 Feb 2026 00:11:52 +0000
Subject: [PATCH 131/215] fix(deps): bump github.com/gofiber/fiber/v2 in /api
Bumps [github.com/gofiber/fiber/v2](https://github.com/gofiber/fiber) from 2.52.11 to 2.52.12.
- [Release notes](https://github.com/gofiber/fiber/releases)
- [Commits](https://github.com/gofiber/fiber/compare/v2.52.11...v2.52.12)
---
updated-dependencies:
- dependency-name: github.com/gofiber/fiber/v2
dependency-version: 2.52.12
dependency-type: direct:production
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 6 +-----
api/go.sum | 14 ++------------
2 files changed, 3 insertions(+), 17 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index d342b5e0..3a1c6701 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -19,7 +19,7 @@ require (
github.com/dustin/go-humanize v1.0.1
github.com/go-hermes/hermes/v2 v2.6.2
github.com/gofiber/contrib/otelfiber v1.0.10
- github.com/gofiber/fiber/v2 v2.52.11
+ github.com/gofiber/fiber/v2 v2.52.12
github.com/gofiber/swagger v1.1.1
github.com/golang-jwt/jwt/v5 v5.3.1
github.com/google/uuid v1.6.0
@@ -39,7 +39,6 @@ require (
github.com/redis/go-redis/extra/redisotel/v9 v9.18.0
github.com/redis/go-redis/v9 v9.18.0
github.com/rs/zerolog v1.34.0
- github.com/schollz/progressbar/v3 v3.19.0
github.com/stretchr/testify v1.11.1
github.com/swaggo/swag v1.16.6
github.com/thedevsaddam/govalidator v1.9.10
@@ -142,7 +141,6 @@ require (
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mattn/go-runewidth v0.0.20 // indirect
github.com/mattn/go-sqlite3 v1.14.34 // indirect
- github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db // indirect
github.com/mitchellh/copystructure v1.2.0 // indirect
github.com/mitchellh/reflectwalk v1.0.2 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
@@ -155,7 +153,6 @@ require (
github.com/redis/go-redis/extra/rediscmd/v9 v9.18.0 // indirect
github.com/richardlehane/mscfb v1.0.6 // indirect
github.com/richardlehane/msoleps v1.0.6 // indirect
- github.com/rivo/uniseg v0.4.7 // indirect
github.com/segmentio/asm v1.2.1 // indirect
github.com/shopspring/decimal v1.4.0 // indirect
github.com/spiffe/go-spiffe/v2 v2.6.0 // indirect
@@ -193,7 +190,6 @@ require (
golang.org/x/oauth2 v0.35.0 // indirect
golang.org/x/sync v0.19.0 // indirect
golang.org/x/sys v0.41.0 // indirect
- golang.org/x/term v0.40.0 // indirect
golang.org/x/text v0.34.0 // indirect
golang.org/x/time v0.14.0 // indirect
golang.org/x/tools v0.42.0 // indirect
diff --git a/api/go.sum b/api/go.sum
index 429077da..26dba3ad 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -80,8 +80,6 @@ github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1x
github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw=
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
-github.com/chengxilo/virtualterm v1.0.4 h1:Z6IpERbRVlfB8WkOmtbHiDbBANU7cimRIof7mk9/PwM=
-github.com/chengxilo/virtualterm v1.0.4/go.mod h1:DyxxBZz/x1iqJjFxTFcr6/x+jSpqN0iwWCOK1q10rlY=
github.com/clipperhouse/displaywidth v0.10.0 h1:GhBG8WuerxjFQQYeuZAeVTuyxuX+UraiZGD4HJQ3Y8g=
github.com/clipperhouse/displaywidth v0.10.0/go.mod h1:XqJajYsaiEwkxOj4bowCTMcT1SgvHo9flfF3jQasdbs=
github.com/clipperhouse/uax29/v2 v2.7.0 h1:+gs4oBZ2gPfVrKPthwbMzWZDaAFPGYK72F0NJv2v7Vk=
@@ -166,8 +164,8 @@ github.com/go-sql-driver/mysql v1.9.3/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI6
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
github.com/gofiber/contrib/otelfiber v1.0.10 h1:Bu28Pi4pfYmGfIc/9+sNaBbFwTHGY/zpSIK5jBxuRtM=
github.com/gofiber/contrib/otelfiber v1.0.10/go.mod h1:jN6AvS1HolDHTQHFURsV+7jSX96FpXYeKH6nmkq8AIw=
-github.com/gofiber/fiber/v2 v2.52.11 h1:5f4yzKLcBcF8ha1GQTWB+mpblWz3Vz6nSAbTL31HkWs=
-github.com/gofiber/fiber/v2 v2.52.11/go.mod h1:YEcBbO/FB+5M1IZNBP9FO3J9281zgPAreiI1oqg8nDw=
+github.com/gofiber/fiber/v2 v2.52.12 h1:0LdToKclcPOj8PktUdIKo9BUohjjwfnQl42Dhw8/WUw=
+github.com/gofiber/fiber/v2 v2.52.12/go.mod h1:YEcBbO/FB+5M1IZNBP9FO3J9281zgPAreiI1oqg8nDw=
github.com/gofiber/swagger v1.1.1 h1:FZVhVQQ9s1ZKLHL/O0loLh49bYB5l1HEAgxDlcTtkRA=
github.com/gofiber/swagger v1.1.1/go.mod h1:vtvY/sQAMc/lGTUCg0lqmBL7Ht9O7uzChpbvJeJQINw=
github.com/gofrs/flock v0.12.1 h1:MTLVXXHf8ekldpJk3AKicLij9MdwOWkZ+a/jHHZby9E=
@@ -263,8 +261,6 @@ github.com/mattn/go-runewidth v0.0.20 h1:WcT52H91ZUAwy8+HUkdM3THM6gXqXuLJi9O3rjc
github.com/mattn/go-runewidth v0.0.20/go.mod h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs=
github.com/mattn/go-sqlite3 v1.14.34 h1:3NtcvcUnFBPsuRcno8pUtupspG/GM+9nZ88zgJcp6Zk=
github.com/mattn/go-sqlite3 v1.14.34/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
-github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db h1:62I3jR2EmQ4l5rM/4FEfDWcRD+abF5XlKShorW5LRoQ=
-github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db/go.mod h1:l0dey0ia/Uv7NcFFVbCLtqEBQbrT4OCwCSKTEv6enCw=
github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw=
github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s=
github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ=
@@ -313,15 +309,11 @@ github.com/richardlehane/mscfb v1.0.6 h1:eN3bvvZCp00bs7Zf52bxNwAx5lJDBK1tCuH19qq
github.com/richardlehane/mscfb v1.0.6/go.mod h1:pe0+IUIc0AHh0+teNzBlJCtSyZdFOGgV4ZK9bsoV+Jo=
github.com/richardlehane/msoleps v1.0.6 h1:9BvkpjvD+iUBalUY4esMwv6uBkfOip/Lzvd93jvR9gg=
github.com/richardlehane/msoleps v1.0.6/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg=
-github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
-github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0=
github.com/rs/zerolog v1.34.0 h1:k43nTLIwcTVQAncfCw4KZ2VY6ukYoZaBPNOE8txlOeY=
github.com/rs/zerolog v1.34.0/go.mod h1:bJsvje4Z08ROH4Nhs5iH600c3IkWhwp44iRc54W6wYQ=
-github.com/schollz/progressbar/v3 v3.19.0 h1:Ea18xuIRQXLAUidVDox3AbwfUhD0/1IvohyTutOIFoc=
-github.com/schollz/progressbar/v3 v3.19.0/go.mod h1:IsO3lpbaGuzh8zIMzgY3+J8l4C8GjO0Y9S69eFvNsec=
github.com/segmentio/asm v1.2.1 h1:DTNbBqs57ioxAD4PrArqftgypG4/qNpXoJx8TVXxPR0=
github.com/segmentio/asm v1.2.1/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr5aAcs=
github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k=
@@ -518,8 +510,6 @@ golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU=
golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY=
golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM=
-golang.org/x/term v0.40.0 h1:36e4zGLqU4yhjlmxEaagx2KuYbJq3EwY8K943ZsHcvg=
-golang.org/x/term v0.40.0/go.mod h1:w2P8uVp06p2iyKKuvXIm7N/y0UCRt3UfJTfZ7oOpglM=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
From 072be0caf97c4eda54660df2cfb97828e07118f5 Mon Sep 17 00:00:00 2001
From: Jake Daynes
Date: Fri, 27 Feb 2026 00:33:50 -0800
Subject: [PATCH 132/215] Added Attachment to Message entity
---
api/pkg/entities/message.go | 24 +++++++++++++++---------
1 file changed, 15 insertions(+), 9 deletions(-)
diff --git a/api/pkg/entities/message.go b/api/pkg/entities/message.go
index bf846c0b..eb71f51b 100644
--- a/api/pkg/entities/message.go
+++ b/api/pkg/entities/message.go
@@ -81,17 +81,23 @@ func (s SIM) String() string {
return string(s)
}
+type MessageAttachment struct {
+ ContentType string `json:"content_type" example:"image/jpeg"`
+ URL string `json:"url" example:"https://example.com/image.jpg"`
+}
+
// Message represents a message sent between 2 phone numbers
type Message struct {
- ID uuid.UUID `json:"id" gorm:"primaryKey;type:uuid;" example:"32343a19-da5e-4b1b-a767-3298a73703cb"`
- RequestID *string `json:"request_id" example:"153554b5-ae44-44a0-8f4f-7bbac5657ad4" validate:"optional"`
- Owner string `json:"owner" example:"+18005550199"`
- UserID UserID `json:"user_id" gorm:"index:idx_messages__user_id" example:"WB7DRDWrJZRGbYrv2CKGkqbzvqdC"`
- Contact string `json:"contact" example:"+18005550100"`
- Content string `json:"content" example:"This is a sample text message"`
- Encrypted bool `json:"encrypted" example:"false" gorm:"default:false"`
- Type MessageType `json:"type" example:"mobile-terminated"`
- Status MessageStatus `json:"status" example:"pending"`
+ ID uuid.UUID `json:"id" gorm:"primaryKey;type:uuid;" example:"32343a19-da5e-4b1b-a767-3298a73703cb"`
+ RequestID *string `json:"request_id" example:"153554b5-ae44-44a0-8f4f-7bbac5657ad4" validate:"optional"`
+ Owner string `json:"owner" example:"+18005550199"`
+ UserID UserID `json:"user_id" gorm:"index:idx_messages__user_id" example:"WB7DRDWrJZRGbYrv2CKGkqbzvqdC"`
+ Contact string `json:"contact" example:"+18005550100"`
+ Content string `json:"content" example:"This is a sample text message"`
+ Attachments []MessageAttachment `json:"attachments,omitempty" gorm:"type:json;serializer:json"`
+ Encrypted bool `json:"encrypted" example:"false" gorm:"default:false"`
+ Type MessageType `json:"type" example:"mobile-terminated"`
+ Status MessageStatus `json:"status" example:"pending"`
// SIM is the SIM card to use to send the message
// * SMS1: use the SIM card in slot 1
// * SMS2: use the SIM card in slot 2
From 09cf30b4812b65141df74c07dd2ab557dbc25030 Mon Sep 17 00:00:00 2001
From: Jake Daynes
Date: Fri, 27 Feb 2026 00:36:53 -0800
Subject: [PATCH 133/215] Added Attachments to APISentPayload & send request
---
api/pkg/events/message_api_sent_event.go | 23 ++++++++++++-----------
api/pkg/requests/message_send_request.go | 8 +++++---
api/pkg/services/message_service.go | 3 +++
3 files changed, 20 insertions(+), 14 deletions(-)
diff --git a/api/pkg/events/message_api_sent_event.go b/api/pkg/events/message_api_sent_event.go
index 7abea843..9aeabd90 100644
--- a/api/pkg/events/message_api_sent_event.go
+++ b/api/pkg/events/message_api_sent_event.go
@@ -13,15 +13,16 @@ const EventTypeMessageAPISent = "message.api.sent"
// MessageAPISentPayload is the payload of the EventTypeMessageSent event
type MessageAPISentPayload struct {
- MessageID uuid.UUID `json:"message_id"`
- UserID entities.UserID `json:"user_id"`
- Owner string `json:"owner"`
- RequestID *string `json:"request_id"`
- MaxSendAttempts uint `json:"max_send_attempts"`
- Contact string `json:"contact"`
- ScheduledSendTime *time.Time `json:"scheduled_send_time"`
- RequestReceivedAt time.Time `json:"request_received_at"`
- Content string `json:"content"`
- Encrypted bool `json:"encrypted"`
- SIM entities.SIM `json:"sim"`
+ MessageID uuid.UUID `json:"message_id"`
+ UserID entities.UserID `json:"user_id"`
+ Owner string `json:"owner"`
+ RequestID *string `json:"request_id"`
+ MaxSendAttempts uint `json:"max_send_attempts"`
+ Contact string `json:"contact"`
+ ScheduledSendTime *time.Time `json:"scheduled_send_time"`
+ RequestReceivedAt time.Time `json:"request_received_at"`
+ Content string `json:"content"`
+ Attachments []entities.MessageAttachment `json:"attachments"`
+ Encrypted bool `json:"encrypted"`
+ SIM entities.SIM `json:"sim"`
}
diff --git a/api/pkg/requests/message_send_request.go b/api/pkg/requests/message_send_request.go
index 3301691d..1a1d6830 100644
--- a/api/pkg/requests/message_send_request.go
+++ b/api/pkg/requests/message_send_request.go
@@ -14,9 +14,10 @@ import (
// MessageSend is the payload for sending and SMS message
type MessageSend struct {
request
- From string `json:"from" example:"+18005550199"`
- To string `json:"to" example:"+18005550100"`
- Content string `json:"content" example:"This is a sample text message"`
+ From string `json:"from" example:"+18005550199"`
+ To string `json:"to" example:"+18005550100"`
+ Content string `json:"content" example:"This is a sample text message"`
+ Attachments []entities.MessageAttachment `json:"attachments" validate:"optional"`
// Encrypted is an optional parameter used to determine if the content is end-to-end encrypted. Make sure to set the encryption key on the httpSMS mobile app
Encrypted bool `json:"encrypted" example:"false" validate:"optional"`
@@ -47,5 +48,6 @@ func (input *MessageSend) ToMessageSendParams(userID entities.UserID, source str
RequestReceivedAt: time.Now().UTC(),
Contact: input.sanitizeAddress(input.To),
Content: input.Content,
+ Attachments: input.Attachments,
}
}
diff --git a/api/pkg/services/message_service.go b/api/pkg/services/message_service.go
index 5a95b265..eca2334c 100644
--- a/api/pkg/services/message_service.go
+++ b/api/pkg/services/message_service.go
@@ -430,6 +430,7 @@ type MessageSendParams struct {
Contact string
Encrypted bool
Content string
+ Attachments []entities.MessageAttachment
Source string
SendAt *time.Time
RequestID *string
@@ -456,6 +457,7 @@ func (service *MessageService) SendMessage(ctx context.Context, params MessageSe
Contact: params.Contact,
RequestReceivedAt: params.RequestReceivedAt,
Content: params.Content,
+ Attachments: params.Attachments,
ScheduledSendTime: params.SendAt,
SIM: sim,
}
@@ -968,6 +970,7 @@ func (service *MessageService) storeSentMessage(ctx context.Context, payload eve
Contact: payload.Contact,
UserID: payload.UserID,
Content: payload.Content,
+ Attachments: payload.Attachments,
RequestID: payload.RequestID,
SIM: payload.SIM,
Encrypted: payload.Encrypted,
From 69ecce11ff420d331765e500ad88f83d56df1e42 Mon Sep 17 00:00:00 2001
From: Jake Daynes
Date: Fri, 27 Feb 2026 00:45:08 -0800
Subject: [PATCH 134/215] Added validator for attachment urls
---
.../validators/message_handler_validator.go | 22 +++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/api/pkg/validators/message_handler_validator.go b/api/pkg/validators/message_handler_validator.go
index 33ab4dfe..fd690e26 100644
--- a/api/pkg/validators/message_handler_validator.go
+++ b/api/pkg/validators/message_handler_validator.go
@@ -106,6 +106,28 @@ func (validator MessageHandlerValidator) ValidateMessageSend(ctx context.Context
return result
}
+ if len(request.Attachments) > 10 {
+ result.Add("attachments", "you cannot attach more than 10 files to a single message")
+ }
+
+ for i, attachment := range request.Attachments {
+ if strings.TrimSpace(attachment.ContentType) == "" {
+ result.Add("attachments", fmt.Sprintf("attachment at index %d is missing content_type", i))
+ }
+
+ if strings.TrimSpace(attachment.URL) == "" {
+ result.Add("attachments", fmt.Sprintf("attachment at index %d is missing url", i))
+ } else {
+ // Basic URL validation
+ parsedURL, err := url.ParseRequestURI(attachment.URL)
+ if err != nil || parsedURL.Scheme == "" || parsedURL.Host == "" {
+ result.Add("attachments", fmt.Sprintf("attachment at index %d has an invalid url format", i))
+ } else if parsedURL.Scheme != "http" && parsedURL.Scheme != "https" {
+ result.Add("attachments", fmt.Sprintf("attachment at index %d must use http or https scheme", i))
+ }
+ }
+ }
+
if request.SendAt != nil && request.SendAt.After(time.Now().Add(480*time.Hour)) {
result.Add("send_at", "the scheduled time cannot be more than 20 days (480 hours) in the future")
}
From b5bfdb45587b6a5d595c397288f21d84d37767bb Mon Sep 17 00:00:00 2001
From: Jake Daynes
Date: Fri, 27 Feb 2026 00:45:48 -0800
Subject: [PATCH 135/215] Added attachment to bulk message struct
---
api/pkg/requests/message_bulk_send_request.go | 2 ++
1 file changed, 2 insertions(+)
diff --git a/api/pkg/requests/message_bulk_send_request.go b/api/pkg/requests/message_bulk_send_request.go
index a21570bb..47c2af7d 100644
--- a/api/pkg/requests/message_bulk_send_request.go
+++ b/api/pkg/requests/message_bulk_send_request.go
@@ -16,6 +16,7 @@ type MessageBulkSend struct {
From string `json:"from" example:"+18005550199"`
To []string `json:"to" example:"+18005550100,+18005550100"`
Content string `json:"content" example:"This is a sample text message"`
+ Attachments []entities.MessageAttachment `json:"attachments" validate:"optional"`
// Encrypted is used to determine if the content is end-to-end encrypted. Make sure to set the encryption key on the httpSMS mobile app
Encrypted bool `json:"encrypted" example:"false"`
@@ -52,6 +53,7 @@ func (input *MessageBulkSend) ToMessageSendParams(userID entities.UserID, source
Contact: to,
SendAt: &sendAt,
Content: input.Content,
+ Attachments: input.Attachments,
})
}
From 53112cbf3d32149b38975e6f873c6e1dc63fa70d Mon Sep 17 00:00:00 2001
From: Jake Daynes
Date: Fri, 27 Feb 2026 00:47:15 -0800
Subject: [PATCH 136/215] Added same validation to bulk message
---
.../validators/message_handler_validator.go | 24 +++++++++++++++++--
1 file changed, 22 insertions(+), 2 deletions(-)
diff --git a/api/pkg/validators/message_handler_validator.go b/api/pkg/validators/message_handler_validator.go
index fd690e26..20a8ed9f 100644
--- a/api/pkg/validators/message_handler_validator.go
+++ b/api/pkg/validators/message_handler_validator.go
@@ -114,11 +114,10 @@ func (validator MessageHandlerValidator) ValidateMessageSend(ctx context.Context
if strings.TrimSpace(attachment.ContentType) == "" {
result.Add("attachments", fmt.Sprintf("attachment at index %d is missing content_type", i))
}
-
+
if strings.TrimSpace(attachment.URL) == "" {
result.Add("attachments", fmt.Sprintf("attachment at index %d is missing url", i))
} else {
- // Basic URL validation
parsedURL, err := url.ParseRequestURI(attachment.URL)
if err != nil || parsedURL.Scheme == "" || parsedURL.Host == "" {
result.Add("attachments", fmt.Sprintf("attachment at index %d has an invalid url format", i))
@@ -178,6 +177,27 @@ func (validator MessageHandlerValidator) ValidateMessageBulkSend(ctx context.Con
return result
}
+ if len(request.Attachments) > 10 {
+ result.Add("attachments", "you cannot attach more than 10 files to a single message")
+ }
+
+ for i, attachment := range request.Attachments {
+ if strings.TrimSpace(attachment.ContentType) == "" {
+ result.Add("attachments", fmt.Sprintf("attachment at index %d is missing content_type", i))
+ }
+
+ if strings.TrimSpace(attachment.URL) == "" {
+ result.Add("attachments", fmt.Sprintf("attachment at index %d is missing url", i))
+ } else {
+ parsedURL, err := url.ParseRequestURI(attachment.URL)
+ if err != nil || parsedURL.Scheme == "" || parsedURL.Host == "" {
+ result.Add("attachments", fmt.Sprintf("attachment at index %d has an invalid url format", i))
+ } else if parsedURL.Scheme != "http" && parsedURL.Scheme != "https" {
+ result.Add("attachments", fmt.Sprintf("attachment at index %d must use http or https scheme", i))
+ }
+ }
+ }
+
_, err := validator.phoneService.Load(ctx, userID, request.From)
if stacktrace.GetCode(err) == repositories.ErrCodeNotFound {
result.Add("from", fmt.Sprintf("no phone found with with 'from' number [%s]. Install the android app on your phone to start sending messages", request.From))
From 34b2cfb5d67ff3913731b2eabf955e520c4b088e Mon Sep 17 00:00:00 2001
From: Jake Daynes
Date: Fri, 27 Feb 2026 00:54:09 -0800
Subject: [PATCH 137/215] Added attachmenturls to the BulkMessage struct for
csv support and a basic file type check
---
api/pkg/requests/bulk_message_request.go | 33 ++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/api/pkg/requests/bulk_message_request.go b/api/pkg/requests/bulk_message_request.go
index ffb3f35c..0ab6c024 100644
--- a/api/pkg/requests/bulk_message_request.go
+++ b/api/pkg/requests/bulk_message_request.go
@@ -18,6 +18,7 @@ type BulkMessage struct {
ToPhoneNumber string `csv:"ToPhoneNumber"`
Content string `csv:"Content"`
SendTime *time.Time `csv:"SendTime(optional)"`
+ AttachmentURLs string `csv:"AttachmentURLs(optional)" validate:"optional"` // Comma separated list of URLs
}
// Sanitize sets defaults to BulkMessage
@@ -25,12 +26,43 @@ func (input *BulkMessage) Sanitize() *BulkMessage {
input.ToPhoneNumber = input.sanitizeAddress(input.ToPhoneNumber)
input.Content = strings.TrimSpace(input.Content)
input.FromPhoneNumber = input.sanitizeAddress(input.FromPhoneNumber)
+ input.AttachmentURLs = strings.TrimSpace(input.AttachmentURLs)
return input
}
// ToMessageSendParams converts BulkMessage to services.MessageSendParams
func (input *BulkMessage) ToMessageSendParams(userID entities.UserID, requestID uuid.UUID, source string) services.MessageSendParams {
from, _ := phonenumbers.Parse(input.FromPhoneNumber, phonenumbers.UNKNOWN_REGION)
+
+ var attachments []entities.MessageAttachment
+ if input.AttachmentURLs != "" {
+ urls := strings.Split(input.AttachmentURLs, ",")
+ for _, u := range urls {
+ cleanURL := strings.TrimSpace(u)
+ if cleanURL == "" {
+ continue
+ }
+
+ // Since there's no easy way to set a type in the CSV, defaulting to octet-stream and then just checking the file extension in the URL
+ contentType := "application/octet-stream"
+ lowerURL := strings.ToLower(cleanURL)
+ if strings.HasSuffix(lowerURL, ".jpg") || strings.HasSuffix(lowerURL, ".jpeg") {
+ contentType = "image/jpeg"
+ } else if strings.HasSuffix(lowerURL, ".png") {
+ contentType = "image/png"
+ } else if strings.HasSuffix(lowerURL, ".gif") {
+ contentType = "image/gif"
+ } else if strings.HasSuffix(lowerURL, ".mp4") {
+ contentType = "video/mp4"
+ }
+
+ attachments = append(attachments, entities.MessageAttachment{
+ ContentType: contentType,
+ URL: cleanURL,
+ })
+ }
+ }
+
return services.MessageSendParams{
Source: source,
Owner: from,
@@ -40,5 +72,6 @@ func (input *BulkMessage) ToMessageSendParams(userID entities.UserID, requestID
RequestReceivedAt: time.Now().UTC(),
Contact: input.sanitizeAddress(input.ToPhoneNumber),
Content: input.Content,
+ Attachments: attachments,
}
}
From bc5faf1c42ccf218378aaebfe63f04ae86940b97 Mon Sep 17 00:00:00 2001
From: Jake Daynes
Date: Fri, 27 Feb 2026 00:56:01 -0800
Subject: [PATCH 138/215] Added attachment parsing to the xlsx parser
---
api/pkg/validators/bulk_message_handler_validator.go | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/api/pkg/validators/bulk_message_handler_validator.go b/api/pkg/validators/bulk_message_handler_validator.go
index 9881c53f..acabcbba 100644
--- a/api/pkg/validators/bulk_message_handler_validator.go
+++ b/api/pkg/validators/bulk_message_handler_validator.go
@@ -143,11 +143,17 @@ func (v *BulkMessageHandlerValidator) parseXlsx(ctxLogger telemetry.Logger, user
}
}
+ var attachmentURLs string
+ if len(row) > 4 && strings.TrimSpace(row[4]) != "" {
+ attachmentURLs = strings.TrimSpace(row[4])
+ }
+
messages = append(messages, &requests.BulkMessage{
FromPhoneNumber: strings.TrimSpace(row[0]),
ToPhoneNumber: strings.TrimSpace(row[1]),
Content: row[2],
SendTime: sendAt,
+ AttachmentURLs: attachmentURLs,
})
}
From 84974984f017cc03fa4af9db1d90aed19e720d39 Mon Sep 17 00:00:00 2001
From: Jake Daynes
Date: Fri, 27 Feb 2026 00:59:10 -0800
Subject: [PATCH 139/215] Added validation to csv based bulk messages
---
.../bulk_message_handler_validator.go | 23 +++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/api/pkg/validators/bulk_message_handler_validator.go b/api/pkg/validators/bulk_message_handler_validator.go
index acabcbba..84844392 100644
--- a/api/pkg/validators/bulk_message_handler_validator.go
+++ b/api/pkg/validators/bulk_message_handler_validator.go
@@ -218,6 +218,29 @@ func (v *BulkMessageHandlerValidator) parseCSV(ctxLogger telemetry.Logger, user
func (v *BulkMessageHandlerValidator) validateMessages(messages []*requests.BulkMessage) url.Values {
result := url.Values{}
for index, message := range messages {
+
+ if message.AttachmentURLs != "" {
+ urls := strings.Split(message.AttachmentURLs, ",")
+
+ if len(urls) > 10 {
+ result.Add("document", fmt.Sprintf("Row [%d]: You cannot attach more than 10 files per message.", index+2))
+ }
+
+ for _, u := range urls {
+ cleanURL := strings.TrimSpace(u)
+ if cleanURL == "" {
+ continue
+ }
+
+ parsedURL, err := url.ParseRequestURI(cleanURL)
+ if err != nil || parsedURL.Scheme == "" || parsedURL.Host == "" {
+ result.Add("document", fmt.Sprintf("Row [%d]: The attachment URL [%s] has an invalid url format.", index+2, cleanURL))
+ } else if parsedURL.Scheme != "http" && parsedURL.Scheme != "https" {
+ result.Add("document", fmt.Sprintf("Row [%d]: The attachment URL [%s] must use http or https.", index+2, cleanURL))
+ }
+ }
+ }
+
if _, err := phonenumbers.Parse(message.FromPhoneNumber, phonenumbers.UNKNOWN_REGION); err != nil {
result.Add("document", fmt.Sprintf("Row [%d]: The FromPhoneNumber [%s] is not a valid E.164 phone number", index+2, message.FromPhoneNumber))
}
From 569b56da2b129e712ce329c12a40cb4bfc6fbfb3 Mon Sep 17 00:00:00 2001
From: Jake Daynes
Date: Fri, 27 Feb 2026 01:02:28 -0800
Subject: [PATCH 140/215] Added attachment_urls to discord slash command
---
api/pkg/services/discord_service.go | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/api/pkg/services/discord_service.go b/api/pkg/services/discord_service.go
index 059231b9..8c608e9f 100644
--- a/api/pkg/services/discord_service.go
+++ b/api/pkg/services/discord_service.go
@@ -169,6 +169,12 @@ func (service *DiscordService) createSlashCommand(ctx context.Context, serverID
Type: 3,
Required: true,
},
+ {
+ Name: "attachment_urls",
+ Description: "Comma-separated list of media URLs to attach",
+ Type: 3,
+ Required: false,
+ },
},
})
if err != nil {
From a0fc868569bca37fd8628993b92a3b19ef866011 Mon Sep 17 00:00:00 2001
From: Jake Daynes
Date: Fri, 27 Feb 2026 01:05:01 -0800
Subject: [PATCH 141/215] Added attachment file type check to CreateRequest
---
api/pkg/handlers/discord_handler.go | 40 ++++++++++++++++++++++++++---
1 file changed, 37 insertions(+), 3 deletions(-)
diff --git a/api/pkg/handlers/discord_handler.go b/api/pkg/handlers/discord_handler.go
index 95591c2b..d556dc45 100644
--- a/api/pkg/handlers/discord_handler.go
+++ b/api/pkg/handlers/discord_handler.go
@@ -8,9 +8,11 @@ import (
"encoding/json"
"fmt"
"os"
+ "strings"
"github.com/google/uuid"
+ "github.com/NdoleStudio/httpsms/pkg/entities"
"github.com/NdoleStudio/httpsms/pkg/repositories"
"github.com/NdoleStudio/httpsms/pkg/requests"
"github.com/NdoleStudio/httpsms/pkg/services"
@@ -290,10 +292,42 @@ func (h *DiscordHandler) createRequest(payload map[string]any) requests.MessageS
}
return ""
}
+ var attachments []entities.MessageAttachment
+ attachmentURLsStr := getOption("attachment_urls")
+
+ if attachmentURLsStr != "" {
+ urls := strings.Split(attachmentURLsStr, ",")
+ for _, u := range urls {
+ cleanURL := strings.TrimSpace(u)
+ if cleanURL == "" {
+ continue
+ }
+
+ // Same as with bulk CSV attachments, can't easily ask for the MIME type so
+ // just inferring based on the file extension
+ contentType := "application/octet-stream"
+ lowerURL := strings.ToLower(cleanURL)
+ if strings.HasSuffix(lowerURL, ".jpg") || strings.HasSuffix(lowerURL, ".jpeg") {
+ contentType = "image/jpeg"
+ } else if strings.HasSuffix(lowerURL, ".png") {
+ contentType = "image/png"
+ } else if strings.HasSuffix(lowerURL, ".gif") {
+ contentType = "image/gif"
+ } else if strings.HasSuffix(lowerURL, ".mp4") {
+ contentType = "video/mp4"
+ }
+
+ attachments = append(attachments, entities.MessageAttachment{
+ ContentType: contentType,
+ URL: cleanURL,
+ })
+ }
+ }
return requests.MessageSend{
- From: getOption("from"),
- To: getOption("to"),
- Content: getOption("message"),
+ From: getOption("from"),
+ To: getOption("to"),
+ Content: getOption("message"),
+ Attachments: attachments,
}
}
From 2f6c94a2406ec9c797cb3498f5b198d8e54ace4d Mon Sep 17 00:00:00 2001
From: Jake Daynes
Date: Fri, 27 Feb 2026 01:08:03 -0800
Subject: [PATCH 142/215] Added embed for discord confirmation
---
api/pkg/handlers/discord_handler.go | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/api/pkg/handlers/discord_handler.go b/api/pkg/handlers/discord_handler.go
index d556dc45..7be60f3b 100644
--- a/api/pkg/handlers/discord_handler.go
+++ b/api/pkg/handlers/discord_handler.go
@@ -375,6 +375,19 @@ func (h *DiscordHandler) sendSMS(ctx context.Context, c *fiber.Ctx, payload map[
},
}
+ if len(request.Attachments) > 0 {
+ var urls []string
+ for _, att := range request.Attachments {
+ urls = append(urls, att.URL)
+ }
+
+ fields := messageEmbed["fields"].([]fiber.Map)
+ messageEmbed["fields"] = append(fields, fiber.Map{
+ "name": "Attachments:",
+ "value": strings.Join(urls, "\n"),
+ })
+ }
+
if errors := h.messageValidator.ValidateMessageSend(ctx, discord.UserID, request.Sanitize()); len(errors) != 0 {
msg := fmt.Sprintf("validation errors [%s], while sending payload [%s]", spew.Sdump(errors), c.Body())
ctxLogger.Warn(stacktrace.NewError(msg))
From 64a40c75298975c10fb1881872aab2dd5e153e3e Mon Sep 17 00:00:00 2001
From: Jake Daynes
Date: Fri, 27 Feb 2026 01:11:13 -0800
Subject: [PATCH 143/215] Defined attachment
---
android/app/src/main/java/com/httpsms/Models.kt | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/android/app/src/main/java/com/httpsms/Models.kt b/android/app/src/main/java/com/httpsms/Models.kt
index ccfe590b..5b718450 100644
--- a/android/app/src/main/java/com/httpsms/Models.kt
+++ b/android/app/src/main/java/com/httpsms/Models.kt
@@ -29,6 +29,13 @@ data class Phone (
val userID: String,
)
+data class Attachment (
+ @Json(name = "content_type")
+ val contentType: String,
+
+ val url: String
+)
+
data class Message (
val contact: String,
val content: String,
@@ -69,4 +76,6 @@ data class Message (
@Json(name = "updated_at")
val updatedAt: String
+
+ val attachments: List? = null
)
From 173a4f1d2076ca0d868bde67a8e9b4d98f450a2d Mon Sep 17 00:00:00 2001
From: Jake Daynes
Date: Fri, 27 Feb 2026 01:14:20 -0800
Subject: [PATCH 144/215] Added a sendMultimediaMessage function
---
.../main/java/com/httpsms/SmsManagerService.kt | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/android/app/src/main/java/com/httpsms/SmsManagerService.kt b/android/app/src/main/java/com/httpsms/SmsManagerService.kt
index 17987b5c..196c3868 100644
--- a/android/app/src/main/java/com/httpsms/SmsManagerService.kt
+++ b/android/app/src/main/java/com/httpsms/SmsManagerService.kt
@@ -76,4 +76,20 @@ class SmsManagerService {
context.getSystemService(SmsManager::class.java).createForSubscriptionId(subscriptionId)
}
}
+
+ fun sendMultimediaMessage(
+ context: Context,
+ pduUri: android.net.Uri,
+ sim: String,
+ sentIntent: PendingIntent
+ ) {
+ val smsManager = getSmsManager(context, sim)
+ smsManager.sendMultimediaMessage(
+ context,
+ pduUri,
+ null,
+ null,
+ sentIntent
+ )
+ }
}
From 8a19b1d9021c564a1bedd2c76285b15f29ad681e Mon Sep 17 00:00:00 2001
From: Jake Daynes
Date: Fri, 27 Feb 2026 01:25:10 -0800
Subject: [PATCH 145/215] Added a filesize validation to make sure we're under
1.5MB
---
.../java/com/httpsms/SmsManagerService.kt | 15 ++-------
.../bulk_message_handler_validator.go | 6 +++-
.../validators/message_handler_validator.go | 4 +++
api/pkg/validators/validator.go | 31 +++++++++++++++++++
4 files changed, 42 insertions(+), 14 deletions(-)
diff --git a/android/app/src/main/java/com/httpsms/SmsManagerService.kt b/android/app/src/main/java/com/httpsms/SmsManagerService.kt
index 196c3868..59fbdad8 100644
--- a/android/app/src/main/java/com/httpsms/SmsManagerService.kt
+++ b/android/app/src/main/java/com/httpsms/SmsManagerService.kt
@@ -77,19 +77,8 @@ class SmsManagerService {
}
}
- fun sendMultimediaMessage(
- context: Context,
- pduUri: android.net.Uri,
- sim: String,
- sentIntent: PendingIntent
- ) {
+ fun sendMultimediaMessage(context: Context, pduUri: android.net.Uri, sim: String, sentIntent: PendingIntent) {
val smsManager = getSmsManager(context, sim)
- smsManager.sendMultimediaMessage(
- context,
- pduUri,
- null,
- null,
- sentIntent
- )
+ smsManager.sendMultimediaMessage(context, pduUri, null, null, sentIntent)
}
}
diff --git a/api/pkg/validators/bulk_message_handler_validator.go b/api/pkg/validators/bulk_message_handler_validator.go
index 84844392..b96829af 100644
--- a/api/pkg/validators/bulk_message_handler_validator.go
+++ b/api/pkg/validators/bulk_message_handler_validator.go
@@ -221,7 +221,7 @@ func (v *BulkMessageHandlerValidator) validateMessages(messages []*requests.Bulk
if message.AttachmentURLs != "" {
urls := strings.Split(message.AttachmentURLs, ",")
-
+
if len(urls) > 10 {
result.Add("document", fmt.Sprintf("Row [%d]: You cannot attach more than 10 files per message.", index+2))
}
@@ -237,6 +237,10 @@ func (v *BulkMessageHandlerValidator) validateMessages(messages []*requests.Bulk
result.Add("document", fmt.Sprintf("Row [%d]: The attachment URL [%s] has an invalid url format.", index+2, cleanURL))
} else if parsedURL.Scheme != "http" && parsedURL.Scheme != "https" {
result.Add("document", fmt.Sprintf("Row [%d]: The attachment URL [%s] must use http or https.", index+2, cleanURL))
+ } else {
+ if err := validateAttachmentURL(cleanURL); err != nil {
+ result.Add("attachments", fmt.Sprintf("Row [%d]: The attachment URL [%s] failed validation: %s", index+2, cleanURL, err.Error()))
+ }
}
}
}
diff --git a/api/pkg/validators/message_handler_validator.go b/api/pkg/validators/message_handler_validator.go
index 20a8ed9f..ffbdd778 100644
--- a/api/pkg/validators/message_handler_validator.go
+++ b/api/pkg/validators/message_handler_validator.go
@@ -123,6 +123,10 @@ func (validator MessageHandlerValidator) ValidateMessageSend(ctx context.Context
result.Add("attachments", fmt.Sprintf("attachment at index %d has an invalid url format", i))
} else if parsedURL.Scheme != "http" && parsedURL.Scheme != "https" {
result.Add("attachments", fmt.Sprintf("attachment at index %d must use http or https scheme", i))
+ } else {
+ if err := validateAttachmentURL(attachment.URL); err != nil {
+ result.Add("attachments", fmt.Sprintf("attachment at index %d failed validation: %s", i, err.Error()))
+ }
}
}
}
diff --git a/api/pkg/validators/validator.go b/api/pkg/validators/validator.go
index bc7111e8..bcef0a9b 100644
--- a/api/pkg/validators/validator.go
+++ b/api/pkg/validators/validator.go
@@ -2,9 +2,11 @@ package validators
import (
"fmt"
+ "net/http"
"net/url"
"regexp"
"strings"
+ "time"
"github.com/NdoleStudio/httpsms/pkg/events"
@@ -160,3 +162,32 @@ func (validator *validator) ValidateUUID(ID string, name string) url.Values {
return v.ValidateStruct()
}
+
+func validateAttachmentURL(attachmentURL string) error {
+ client := &http.Client{
+ Timeout: 5 * time.Second,
+ }
+
+ req, err := http.NewRequest(http.MethodHead, attachmentURL, nil)
+ if err != nil {
+ return fmt.Errorf("invalid url format")
+ }
+
+ resp, err := client.Do(req)
+ if err != nil {
+ return fmt.Errorf("could not reach the url")
+ }
+ defer resp.Body.Close()
+
+ if resp.StatusCode < 200 || resp.StatusCode >= 400 {
+ return fmt.Errorf("url returned an error status code: %d", resp.StatusCode)
+ }
+
+ const maxSizeBytes = 1.5 * 1024 * 1024
+
+ if resp.ContentLength > int64(maxSizeBytes) {
+ return fmt.Errorf("file size (%.2f MB) exceeds the 1.5 MB carrier limit", float64(resp.ContentLength)/(1024*1024))
+ }
+
+ return nil
+}
From 40f718cc5bfd83f77ebea57e64077798be18ac89 Mon Sep 17 00:00:00 2001
From: Jake Daynes
Date: Fri, 27 Feb 2026 01:25:45 -0800
Subject: [PATCH 146/215] Added missing validation to bulk send validator
---
api/pkg/validators/message_handler_validator.go | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/api/pkg/validators/message_handler_validator.go b/api/pkg/validators/message_handler_validator.go
index ffbdd778..ec23ab78 100644
--- a/api/pkg/validators/message_handler_validator.go
+++ b/api/pkg/validators/message_handler_validator.go
@@ -198,6 +198,10 @@ func (validator MessageHandlerValidator) ValidateMessageBulkSend(ctx context.Con
result.Add("attachments", fmt.Sprintf("attachment at index %d has an invalid url format", i))
} else if parsedURL.Scheme != "http" && parsedURL.Scheme != "https" {
result.Add("attachments", fmt.Sprintf("attachment at index %d must use http or https scheme", i))
+ } else {
+ if err := validateAttachmentURL(attachment.URL); err != nil {
+ result.Add("attachments", fmt.Sprintf("attachment at index %d failed validation: %s", i, err.Error()))
+ }
}
}
}
From f2a0ab8a64831856ac92852c117012d6845f7e98 Mon Sep 17 00:00:00 2001
From: Jake Daynes
Date: Fri, 27 Feb 2026 01:35:27 -0800
Subject: [PATCH 147/215] Added cache for csv uploads to avoid 1000s of
duplicate http requests
---
.../bulk_message_handler_validator.go | 10 ++++--
.../validators/message_handler_validator.go | 8 +++--
api/pkg/validators/validator.go | 34 ++++++++++++++++---
3 files changed, 42 insertions(+), 10 deletions(-)
diff --git a/api/pkg/validators/bulk_message_handler_validator.go b/api/pkg/validators/bulk_message_handler_validator.go
index b96829af..137442d0 100644
--- a/api/pkg/validators/bulk_message_handler_validator.go
+++ b/api/pkg/validators/bulk_message_handler_validator.go
@@ -17,6 +17,7 @@ import (
"github.com/NdoleStudio/httpsms/pkg/requests"
"github.com/NdoleStudio/httpsms/pkg/services"
"github.com/NdoleStudio/httpsms/pkg/telemetry"
+ "github.com/NdoleStudio/httpsms/pkg/cache"
"github.com/dustin/go-humanize"
"github.com/jszwec/csvutil"
"github.com/nyaruka/phonenumbers"
@@ -30,6 +31,7 @@ type BulkMessageHandlerValidator struct {
userService *services.UserService
logger telemetry.Logger
tracer telemetry.Tracer
+ cache cache.Cache
}
// NewBulkMessageHandlerValidator creates a new handlers.BulkMessageHandlerValidator validator
@@ -38,12 +40,14 @@ func NewBulkMessageHandlerValidator(
tracer telemetry.Tracer,
phoneService *services.PhoneService,
userService *services.UserService,
+ appCache cache.Cache,
) (v *BulkMessageHandlerValidator) {
return &BulkMessageHandlerValidator{
logger: logger.WithService(fmt.Sprintf("%T", v)),
tracer: tracer,
userService: userService,
phoneService: phoneService,
+ cache: appCache,
}
}
@@ -79,7 +83,7 @@ func (v *BulkMessageHandlerValidator) ValidateStore(ctx context.Context, userID
messages[index] = message.Sanitize()
}
- result = v.validateMessages(messages)
+ result = v.validateMessages(ctx, messages)
if len(result) != 0 {
return messages, result
}
@@ -215,7 +219,7 @@ func (v *BulkMessageHandlerValidator) parseCSV(ctxLogger telemetry.Logger, user
return messages, url.Values{}
}
-func (v *BulkMessageHandlerValidator) validateMessages(messages []*requests.BulkMessage) url.Values {
+func (v *BulkMessageHandlerValidator) validateMessages(ctx context.Context, messages []*requests.BulkMessage) url.Values {
result := url.Values{}
for index, message := range messages {
@@ -238,7 +242,7 @@ func (v *BulkMessageHandlerValidator) validateMessages(messages []*requests.Bulk
} else if parsedURL.Scheme != "http" && parsedURL.Scheme != "https" {
result.Add("document", fmt.Sprintf("Row [%d]: The attachment URL [%s] must use http or https.", index+2, cleanURL))
} else {
- if err := validateAttachmentURL(cleanURL); err != nil {
+ if err := validateAttachmentURL(ctx, v.cache, cleanURL); err != nil {
result.Add("attachments", fmt.Sprintf("Row [%d]: The attachment URL [%s] failed validation: %s", index+2, cleanURL, err.Error()))
}
}
diff --git a/api/pkg/validators/message_handler_validator.go b/api/pkg/validators/message_handler_validator.go
index ec23ab78..52741891 100644
--- a/api/pkg/validators/message_handler_validator.go
+++ b/api/pkg/validators/message_handler_validator.go
@@ -7,6 +7,7 @@ import (
"strings"
"time"
+ "github.com/NdoleStudio/httpsms/pkg/cache"
"github.com/NdoleStudio/httpsms/pkg/repositories"
"github.com/NdoleStudio/httpsms/pkg/services"
"github.com/palantir/stacktrace"
@@ -25,6 +26,7 @@ type MessageHandlerValidator struct {
tracer telemetry.Tracer
phoneService *services.PhoneService
tokenValidator *TurnstileTokenValidator
+ cache cache.Cache
}
// NewMessageHandlerValidator creates a new handlers.MessageHandler validator
@@ -33,12 +35,14 @@ func NewMessageHandlerValidator(
tracer telemetry.Tracer,
phoneService *services.PhoneService,
tokenValidator *TurnstileTokenValidator,
+ appCache cache.Cache,
) (v *MessageHandlerValidator) {
return &MessageHandlerValidator{
logger: logger.WithService(fmt.Sprintf("%T", v)),
tracer: tracer,
phoneService: phoneService,
tokenValidator: tokenValidator,
+ cache: appCache,
}
}
@@ -124,7 +128,7 @@ func (validator MessageHandlerValidator) ValidateMessageSend(ctx context.Context
} else if parsedURL.Scheme != "http" && parsedURL.Scheme != "https" {
result.Add("attachments", fmt.Sprintf("attachment at index %d must use http or https scheme", i))
} else {
- if err := validateAttachmentURL(attachment.URL); err != nil {
+ if err := validateAttachmentURL(ctx, validator.cache, attachment.URL); err != nil {
result.Add("attachments", fmt.Sprintf("attachment at index %d failed validation: %s", i, err.Error()))
}
}
@@ -199,7 +203,7 @@ func (validator MessageHandlerValidator) ValidateMessageBulkSend(ctx context.Con
} else if parsedURL.Scheme != "http" && parsedURL.Scheme != "https" {
result.Add("attachments", fmt.Sprintf("attachment at index %d must use http or https scheme", i))
} else {
- if err := validateAttachmentURL(attachment.URL); err != nil {
+ if err := validateAttachmentURL(ctx, validator.cache, attachment.URL); err != nil {
result.Add("attachments", fmt.Sprintf("attachment at index %d failed validation: %s", i, err.Error()))
}
}
diff --git a/api/pkg/validators/validator.go b/api/pkg/validators/validator.go
index bcef0a9b..850d1e76 100644
--- a/api/pkg/validators/validator.go
+++ b/api/pkg/validators/validator.go
@@ -1,6 +1,7 @@
package validators
import (
+ "context"
"fmt"
"net/http"
"net/url"
@@ -8,6 +9,7 @@ import (
"strings"
"time"
+ "github.com/NdoleStudio/httpsms/pkg/cache"
"github.com/NdoleStudio/httpsms/pkg/events"
"github.com/nyaruka/phonenumbers"
@@ -163,31 +165,53 @@ func (validator *validator) ValidateUUID(ID string, name string) url.Values {
return v.ValidateStruct()
}
-func validateAttachmentURL(attachmentURL string) error {
+func validateAttachmentURL(ctx context.Context, c cache.Cache, attachmentURL string) error {
+ cacheKey := "mms-url-validation:" + attachmentURL
+
+ if cachedVal, err := c.Get(ctx, cacheKey); err == nil {
+ if cachedVal == "valid" {
+ return nil
+ }
+ return fmt.Errorf(cachedVal)
+ }
+
client := &http.Client{
Timeout: 5 * time.Second,
}
req, err := http.NewRequest(http.MethodHead, attachmentURL, nil)
if err != nil {
- return fmt.Errorf("invalid url format")
+ errMsg := fmt.Sprintf("invalid url format")
+ saveToCache(ctx, c, cacheKey, errMsg)
+ return fmt.Errorf(errMsg)
}
resp, err := client.Do(req)
if err != nil {
- return fmt.Errorf("could not reach the url")
+ errMsg := fmt.Sprintf("could not reach the url")
+ saveToCache(ctx, c, cacheKey, errMsg)
+ return fmt.Errorf(errMsg)
}
defer resp.Body.Close()
if resp.StatusCode < 200 || resp.StatusCode >= 400 {
- return fmt.Errorf("url returned an error status code: %d", resp.StatusCode)
+ errMsg := fmt.Sprintf("url returned an error status code: %d", resp.StatusCode)
+ saveToCache(ctx, c, cacheKey, errMsg)
+ return fmt.Errorf(errMsg)
}
const maxSizeBytes = 1.5 * 1024 * 1024
if resp.ContentLength > int64(maxSizeBytes) {
- return fmt.Errorf("file size (%.2f MB) exceeds the 1.5 MB carrier limit", float64(resp.ContentLength)/(1024*1024))
+ errMsg := fmt.Sprintf("file size (%.2f MB) exceeds the 1.5 MB carrier limit", float64(resp.ContentLength)/(1024*1024))
+ saveToCache(ctx, c, cacheKey, errMsg)
+ return fmt.Errorf(errMsg)
}
+ saveToCache(ctx, c, cacheKey, "valid")
return nil
}
+
+func saveToCache(ctx context.Context, c cache.Cache, key string, value string) {
+ _ = c.Set(ctx, key, value, 24*time.Hour)
+}
From 3829d74b7830eae1a8ab301c711ce4719fdd7975 Mon Sep 17 00:00:00 2001
From: Jake Daynes
Date: Fri, 27 Feb 2026 01:40:58 -0800
Subject: [PATCH 148/215] Added provider to manifest
---
android/app/src/main/AndroidManifest.xml | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 6d704ade..409b7140 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -90,6 +90,17 @@
+
+
+
+
+
From 41c7bedea4bd8a811f5cb135165fde819b029d8a Mon Sep 17 00:00:00 2001
From: Jake Daynes
Date: Fri, 27 Feb 2026 01:41:58 -0800
Subject: [PATCH 149/215] File path for mms attachments/cache
---
android/app/src/main/res/xml/file_paths.xml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 android/app/src/main/res/xml/file_paths.xml
diff --git a/android/app/src/main/res/xml/file_paths.xml b/android/app/src/main/res/xml/file_paths.xml
new file mode 100644
index 00000000..0df3af41
--- /dev/null
+++ b/android/app/src/main/res/xml/file_paths.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
From e8140cdf4b84e62a7156af4bf9e28cec5bd2824f Mon Sep 17 00:00:00 2001
From: Jake Daynes
Date: Fri, 27 Feb 2026 01:55:58 -0800
Subject: [PATCH 150/215] added missing cache arguments
---
api/pkg/di/container.go | 2 ++
1 file changed, 2 insertions(+)
diff --git a/api/pkg/di/container.go b/api/pkg/di/container.go
index 632e4706..02d37738 100644
--- a/api/pkg/di/container.go
+++ b/api/pkg/di/container.go
@@ -534,6 +534,7 @@ func (container *Container) MessageHandlerValidator() (validator *validators.Mes
container.Tracer(),
container.PhoneService(),
container.TurnstileTokenValidator(),
+ container.Cache(),
)
}
@@ -556,6 +557,7 @@ func (container *Container) BulkMessageHandlerValidator() (validator *validators
container.Tracer(),
container.PhoneService(),
container.UserService(),
+ container.Cache(),
)
}
From b35f60d7278609ae6c870db844673d124fa33433 Mon Sep 17 00:00:00 2001
From: Jake Daynes
Date: Fri, 27 Feb 2026 02:15:11 -0800
Subject: [PATCH 151/215] Added web support for attachments
---
web/components/MessageThread.vue | 11 +++++++++--
web/models/message.ts | 6 ++++++
web/pages/messages/index.vue | 34 ++++++++++++++++++++++++++++++++
3 files changed, 49 insertions(+), 2 deletions(-)
diff --git a/web/components/MessageThread.vue b/web/components/MessageThread.vue
index 0f0f222b..e2ed4739 100644
--- a/web/components/MessageThread.vue
+++ b/web/components/MessageThread.vue
@@ -95,8 +95,13 @@
{{ thread.contact | phoneNumber }}
-
- {{ thread.last_message_content }}
+
+
+ {{ thread.last_message_content }}
+
+
+ {{ mdiPaperclip }} Multimedia Message
+
@@ -150,6 +155,7 @@ import {
mdiCheck,
mdiAlert,
mdiAccount,
+ mdiPaperclip,
} from '@mdi/js'
@Component
@@ -160,6 +166,7 @@ export default class MessageThread extends Vue {
mdiAlert = mdiAlert
mdiCheck = mdiCheck
mdiCheckAll = mdiCheckAll
+ mdiPaperclip = mdiPaperclip
get threads(): Array {
return this.$store.getters.getThreads
diff --git a/web/models/message.ts b/web/models/message.ts
index 35306648..c0d09f12 100644
--- a/web/models/message.ts
+++ b/web/models/message.ts
@@ -1,6 +1,12 @@
+export interface MessageAttachment {
+ content_type: string
+ url: string
+}
+
export interface Message {
contact: string
content: string
+ attachments?: MessageAttachment[]
created_at: string
failure_reason: string
id: string
diff --git a/web/pages/messages/index.vue b/web/pages/messages/index.vue
index a1a2a154..78a46533 100644
--- a/web/pages/messages/index.vue
+++ b/web/pages/messages/index.vue
@@ -33,6 +33,16 @@
placeholder="Enter your message here"
label="Content"
>
+
{
@@ -113,6 +144,9 @@ export default {
),
)
}
+ if (response.data.data.attachments) {
+ errors.set('attachments', response.data.data.attachments)
+ }
if (response.data.data.from) {
this.$store.dispatch('addNotification', {
message: response.data.data.from[0],
From adfa171d0fdf94431b62f6ae5de6381ec6da4d2d Mon Sep 17 00:00:00 2001
From: Jake Daynes
Date: Fri, 27 Feb 2026 02:52:01 -0800
Subject: [PATCH 152/215] Added PDU generation via android-smsmms and MMS
sender/handler
---
android/app/build.gradle | 1 +
.../com/httpsms/FirebaseMessagingService.kt | 113 ++++++++++++++++++
.../java/com/httpsms/HttpSmsApiService.kt | 47 ++++++++
.../src/main/java/com/httpsms/SentReceiver.kt | 22 ++++
4 files changed, 183 insertions(+)
diff --git a/android/app/build.gradle b/android/app/build.gradle
index f49acb2b..66eb98c1 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -67,6 +67,7 @@ dependencies {
implementation 'com.google.android.material:material:1.12.0'
implementation 'androidx.constraintlayout:constraintlayout:2.2.1'
implementation 'com.googlecode.libphonenumber:libphonenumber:9.0.4'
+ implementation 'com.klinkerapps:android-smsmms:5.2.6'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.2.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1'
diff --git a/android/app/src/main/java/com/httpsms/FirebaseMessagingService.kt b/android/app/src/main/java/com/httpsms/FirebaseMessagingService.kt
index 8f1e448c..dca73a5e 100644
--- a/android/app/src/main/java/com/httpsms/FirebaseMessagingService.kt
+++ b/android/app/src/main/java/com/httpsms/FirebaseMessagingService.kt
@@ -9,6 +9,13 @@ import com.google.firebase.messaging.RemoteMessage
import com.httpsms.SentReceiver.FailedMessageWorker
import timber.log.Timber
+import com.google.android.mms.pdu.CharacterSets
+import com.google.android.mms.pdu.EncodedStringValue
+import com.google.android.mms.pdu.PduBody
+import com.google.android.mms.pdu.PduComposer
+import com.google.android.mms.pdu.PduPart
+import com.google.android.mms.pdu.SendReq
+
class MyFirebaseMessagingService : FirebaseMessagingService() {
// [START receive_message]
override fun onMessageReceived(remoteMessage: RemoteMessage) {
@@ -158,6 +165,11 @@ class MyFirebaseMessagingService : FirebaseMessagingService() {
}
Receiver.register(applicationContext)
+
+ if (message.attachments != null && message.attachments.isNotEmpty()) {
+ return handleMmsMessage(message)
+ }
+
val parts = getMessageParts(applicationContext, message)
if (parts.size == 1) {
return handleSingleMessage(message, parts.first())
@@ -165,6 +177,107 @@ class MyFirebaseMessagingService : FirebaseMessagingService() {
return handleMultipartMessage(message, parts)
}
+ private fun handleMmsMessage(message: Message): Result {
+ Timber.d("Processing MMS for message ID [${message.id}]")
+ val apiService = HttpSmsApiService.create(applicationContext)
+
+ val downloadedFiles = mutableListOf()
+
+ try {
+ for ((index, attachment) in message.attachments!!.withIndex()) {
+ val file = apiService.downloadAttachment(applicationContext, attachment.url, message.id, index)
+ if (file == null) {
+ handleFailed(applicationContext, message.id, "Failed to download attachment or file size exceeded 1.5MB.")
+ return Result.failure()
+ }
+ downloadedFiles.add(file)
+ }
+
+ val sendReq = SendReq()
+
+ val encodedContact = EncodedStringValue(message.contact)
+ sendReq.to = arrayOf(encodedContact)
+
+ val pduBody = PduBody()
+
+ if (message.content.isNotEmpty()) {
+ val textPart = PduPart()
+ textPart.setCharset(CharacterSets.UTF_8)
+ textPart.contentType = "text/plain".toByteArray()
+ textPart.name = "text".toByteArray()
+ textPart.contentId = "text".toByteArray()
+ textPart.contentLocation = "text".toByteArray()
+
+ var messageBody = message.content
+ val encryptionKey = Settings.getEncryptionKey(applicationContext)
+ if (message.encrypted && !encryptionKey.isNullOrEmpty()) {
+ messageBody = Encrypter.decrypt(encryptionKey, messageBody)
+ }
+ textPart.data = messageBody.toByteArray(Charsets.UTF_8)
+
+ pduBody.addPart(textPart)
+ }
+
+ for ((index, file) in downloadedFiles.withIndex()) {
+ val attachment = message.attachments[index]
+ val fileBytes = file.readBytes()
+
+ val mediaPart = PduPart()
+ mediaPart.contentType = attachment.contentType.toByteArray()
+
+ val fileName = "attachment_$index".toByteArray()
+ mediaPart.name = fileName
+ mediaPart.contentId = fileName
+ mediaPart.contentLocation = fileName
+ mediaPart.data = fileBytes
+
+ pduBody.addPart(mediaPart)
+ }
+
+ sendReq.body = pduBody
+
+ val pduComposer = PduComposer(applicationContext, sendReq)
+ val pduBytes = pduComposer.make()
+
+ if (pduBytes == null) {
+ Timber.e("PduComposer failed to generate PDU byte array")
+ handleFailed(applicationContext, message.id, "Failed to compose MMS PDU.")
+ return Result.failure()
+ }
+
+ val mmsDir = java.io.File(applicationContext.cacheDir, "mms_attachments")
+ if (!mmsDir.exists()) {
+ mmsDir.mkdirs()
+ }
+
+ val pduFile = java.io.File(mmsDir, "pdu_${message.id}.dat")
+ java.io.FileOutputStream(pduFile).use { it.write(pduBytes) }
+
+ val pduUri = androidx.core.content.FileProvider.getUriForFile(
+ applicationContext,
+ "${BuildConfig.APPLICATION_ID}.fileprovider",
+ pduFile
+ )
+
+ val sentIntent = createPendingIntent(message.id, SmsManagerService.sentAction())
+ SmsManagerService().sendMultimediaMessage(applicationContext, pduUri, message.sim, sentIntent)
+
+ Timber.d("Successfully dispatched MMS for message ID [${message.id}]")
+ return Result.success()
+
+ } catch (e: Exception) {
+ Timber.e(e, "Failed to send MMS for message ID [${message.id}]")
+ handleFailed(applicationContext, message.id, e.message ?: "Internal error while building or sending MMS.")
+ return Result.failure()
+ } finally {
+ downloadedFiles.forEach { file ->
+ if (file.exists()) {
+ file.delete()
+ }
+ }
+ }
+ }
+
private fun handleMultipartMessage(message:Message, parts: ArrayList): Result {
Timber.d("sending multipart SMS for message with ID [${message.id}]")
return try {
diff --git a/android/app/src/main/java/com/httpsms/HttpSmsApiService.kt b/android/app/src/main/java/com/httpsms/HttpSmsApiService.kt
index 3d813e13..4f1fe5dd 100644
--- a/android/app/src/main/java/com/httpsms/HttpSmsApiService.kt
+++ b/android/app/src/main/java/com/httpsms/HttpSmsApiService.kt
@@ -11,6 +11,8 @@ import java.net.URI
import java.net.URL
import java.util.logging.Level
import java.util.logging.Logger.getLogger
+import java.io.File
+import java.io.FileOutputStream
class HttpSmsApiService(private val apiKey: String, private val baseURL: URI) {
@@ -156,6 +158,51 @@ class HttpSmsApiService(private val apiKey: String, private val baseURL: URI) {
return true
}
+ fun downloadAttachment(context: Context, urlString: String, messageId: String, attachmentIndex: Int): File? {
+ val request = Request.Builder().url(urlString).build()
+
+ try {
+ val response = client.newCall(request).execute()
+ if (!response.isSuccessful) {
+ Timber.e("Failed to download attachment: ${response.code}")
+ response.close()
+ return null
+ }
+
+ val maxSizeBytes = 1.5 * 1024 * 1024 // most (modern?) carriers have a 2MB limit, so targetting 1.5MB should be safe
+ val contentLength = response.body?.contentLength() ?: -1L
+ if (contentLength > maxSizeBytes) {
+ Timber.e("Attachment is too large ($contentLength bytes).")
+ response.close()
+ return null
+ }
+
+ val mmsDir = File(context.cacheDir, "mms_attachments")
+ if (!mmsDir.exists()) {
+ mmsDir.mkdirs()
+ }
+
+ val tempFile = File(mmsDir, "mms_${messageId}_$attachmentIndex")
+ val inputStream = response.body?.byteStream()
+ val outputStream = FileOutputStream(tempFile)
+ inputStream?.copyTo(outputStream)
+
+ outputStream.close()
+ inputStream?.close()
+ response.close()
+
+ if (tempFile.length() > maxSizeBytes) {
+ tempFile.delete()
+ Timber.e("Downloaded file exceeded 1.5MB limit.")
+ return null
+ }
+
+ return tempFile
+ } catch (e: Exception) {
+ Timber.e(e, "Exception while downloading attachment")
+ return null
+ }
+ }
private fun sendEvent(messageId: String, event: String, timestamp: String, reason: String? = null): Boolean {
var reasonString = "null"
diff --git a/android/app/src/main/java/com/httpsms/SentReceiver.kt b/android/app/src/main/java/com/httpsms/SentReceiver.kt
index 7995c35c..00e76c2c 100644
--- a/android/app/src/main/java/com/httpsms/SentReceiver.kt
+++ b/android/app/src/main/java/com/httpsms/SentReceiver.kt
@@ -17,6 +17,8 @@ import timber.log.Timber
internal class SentReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
+ val messageId = intent.getStringExtra(Constants.KEY_MESSAGE_ID)
+ cleanupPduFile(context, messageId)
when (resultCode) {
Activity.RESULT_OK -> handleMessageSent(context, intent.getStringExtra(Constants.KEY_MESSAGE_ID))
SmsManager.RESULT_ERROR_GENERIC_FAILURE -> handleMessageFailed(context, intent.getStringExtra(Constants.KEY_MESSAGE_ID), "GENERIC_FAILURE")
@@ -27,6 +29,26 @@ internal class SentReceiver : BroadcastReceiver() {
}
}
+ private fun cleanupPduFile(context: Context, messageId: String?) {
+ if (messageId == null) return
+
+ try {
+ val baseMessageId = messageId.substringBefore(".")
+ val mmsDir = File(context.cacheDir, "mms_attachments")
+ val pduFile = File(mmsDir, "pdu_$baseMessageId.dat")
+
+ if (pduFile.exists()) {
+ if (pduFile.delete()) {
+ Timber.d("Cleaned up PDU file for message ID [$baseMessageId]")
+ } else {
+ Timber.w("Failed to delete PDU file for message ID [$baseMessageId]")
+ }
+ }
+ } catch (e: Exception) {
+ Timber.e(e, "Error cleaning up PDU file for message ID [$messageId]")
+ }
+ }
+
private fun handleMessageSent(context: Context, messageId: String?) {
if (!Receiver.isValid(context, messageId)) {
return
From 5508157e936e35ee5aa32e74739164c2f5c4fdb7 Mon Sep 17 00:00:00 2001
From: Jake Daynes
Date: Fri, 27 Feb 2026 09:36:36 -0800
Subject: [PATCH 153/215] Added annotations for Codacy
---
android/app/src/main/java/com/httpsms/HttpSmsApiService.kt | 1 +
android/app/src/main/java/com/httpsms/Models.kt | 1 +
android/app/src/main/java/com/httpsms/SmsManagerService.kt | 1 +
3 files changed, 3 insertions(+)
diff --git a/android/app/src/main/java/com/httpsms/HttpSmsApiService.kt b/android/app/src/main/java/com/httpsms/HttpSmsApiService.kt
index 4f1fe5dd..c3ae8e13 100644
--- a/android/app/src/main/java/com/httpsms/HttpSmsApiService.kt
+++ b/android/app/src/main/java/com/httpsms/HttpSmsApiService.kt
@@ -158,6 +158,7 @@ class HttpSmsApiService(private val apiKey: String, private val baseURL: URI) {
return true
}
+ // Downloads the attachment URL content locally
fun downloadAttachment(context: Context, urlString: String, messageId: String, attachmentIndex: Int): File? {
val request = Request.Builder().url(urlString).build()
diff --git a/android/app/src/main/java/com/httpsms/Models.kt b/android/app/src/main/java/com/httpsms/Models.kt
index 5b718450..d2559fb0 100644
--- a/android/app/src/main/java/com/httpsms/Models.kt
+++ b/android/app/src/main/java/com/httpsms/Models.kt
@@ -29,6 +29,7 @@ data class Phone (
val userID: String,
)
+// mms attachment
data class Attachment (
@Json(name = "content_type")
val contentType: String,
diff --git a/android/app/src/main/java/com/httpsms/SmsManagerService.kt b/android/app/src/main/java/com/httpsms/SmsManagerService.kt
index 59fbdad8..5f7ce6f5 100644
--- a/android/app/src/main/java/com/httpsms/SmsManagerService.kt
+++ b/android/app/src/main/java/com/httpsms/SmsManagerService.kt
@@ -77,6 +77,7 @@ class SmsManagerService {
}
}
+ // Wrapper for the smsManager's sendMultimediaMessage
fun sendMultimediaMessage(context: Context, pduUri: android.net.Uri, sim: String, sentIntent: PendingIntent) {
val smsManager = getSmsManager(context, sim)
smsManager.sendMultimediaMessage(context, pduUri, null, null, sentIntent)
From 301540c2eb89097963406a7cf7c07551f597a94a Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 1 Mar 2026 00:03:26 +0000
Subject: [PATCH 154/215] fix(deps): bump google.golang.org/api from 0.267.0 to
0.269.0 in /api
Bumps [google.golang.org/api](https://github.com/googleapis/google-api-go-client) from 0.267.0 to 0.269.0.
- [Release notes](https://github.com/googleapis/google-api-go-client/releases)
- [Changelog](https://github.com/googleapis/google-api-go-client/blob/main/CHANGES.md)
- [Commits](https://github.com/googleapis/google-api-go-client/compare/v0.267.0...v0.269.0)
---
updated-dependencies:
- dependency-name: google.golang.org/api
dependency-version: 0.269.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 2 +-
api/go.sum | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index 3a1c6701..49c3f34f 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -50,7 +50,7 @@ require (
go.opentelemetry.io/otel/sdk v1.40.0
go.opentelemetry.io/otel/sdk/metric v1.40.0
go.opentelemetry.io/otel/trace v1.40.0
- google.golang.org/api v0.267.0
+ google.golang.org/api v0.269.0
google.golang.org/protobuf v1.36.11
gorm.io/driver/postgres v1.6.0
gorm.io/driver/sqlite v1.6.0
diff --git a/api/go.sum b/api/go.sum
index 26dba3ad..a2c97396 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -541,8 +541,8 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk=
gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E=
-google.golang.org/api v0.267.0 h1:w+vfWPMPYeRs8qH1aYYsFX68jMls5acWl/jocfLomwE=
-google.golang.org/api v0.267.0/go.mod h1:Jzc0+ZfLnyvXma3UtaTl023TdhZu6OMBP9tJ+0EmFD0=
+google.golang.org/api v0.269.0 h1:qDrTOxKUQ/P0MveH6a7vZ+DNHxJQjtGm/uvdbdGXCQg=
+google.golang.org/api v0.269.0/go.mod h1:N8Wpcu23Tlccl0zSHEkcAZQKDLdquxK+l9r2LkwAauE=
google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM=
google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds=
google.golang.org/genproto v0.0.0-20260217200457-a2cb2272a1e9 h1:MzLVemxGdOBt2uziz9LnuYRQQFw1FDV0s0af4GVYE1A=
From 42210657c13b711fa8a7ba33da0c6f808d5b7bbd Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 1 Mar 2026 00:03:31 +0000
Subject: [PATCH 155/215] fix(deps): bump github.com/uptrace/uptrace-go in /api
Bumps [github.com/uptrace/uptrace-go](https://github.com/uptrace/uptrace-go) from 1.39.0 to 1.40.0.
- [Release notes](https://github.com/uptrace/uptrace-go/releases)
- [Commits](https://github.com/uptrace/uptrace-go/compare/v1.39.0...v1.40.0)
---
updated-dependencies:
- dependency-name: github.com/uptrace/uptrace-go
dependency-version: 1.40.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 5 +++--
api/go.sum | 10 ++++++----
2 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index 3a1c6701..97626364 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -43,7 +43,7 @@ require (
github.com/swaggo/swag v1.16.6
github.com/thedevsaddam/govalidator v1.9.10
github.com/tursodatabase/libsql-client-go v0.0.0-20251219100830-236aa1ff8acc
- github.com/uptrace/uptrace-go v1.39.0
+ github.com/uptrace/uptrace-go v1.40.0
github.com/xuri/excelize/v2 v2.10.0
go.opentelemetry.io/otel v1.40.0
go.opentelemetry.io/otel/metric v1.40.0
@@ -171,6 +171,7 @@ require (
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.65.0 // indirect
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0 // indirect
go.opentelemetry.io/contrib/instrumentation/runtime v0.65.0 // indirect
+ go.opentelemetry.io/contrib/processors/minsev v0.13.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp v0.16.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.40.0 // indirect
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0 // indirect
@@ -195,7 +196,7 @@ require (
golang.org/x/tools v0.42.0 // indirect
google.golang.org/appengine v1.6.8 // indirect
google.golang.org/genproto v0.0.0-20260217200457-a2cb2272a1e9 // indirect
- google.golang.org/genproto/googleapis/api v0.0.0-20260217200457-a2cb2272a1e9 // indirect
+ google.golang.org/genproto/googleapis/api v0.0.0-20260217215200-42d3e9bedb6d // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20260217215200-42d3e9bedb6d // indirect
google.golang.org/grpc v1.79.1 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
diff --git a/api/go.sum b/api/go.sum
index 26dba3ad..d625f903 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -343,8 +343,8 @@ github.com/tiendc/go-deepcopy v1.7.2 h1:Ut2yYR7W9tWjTQitganoIue4UGxZwCcJy3orjrrI
github.com/tiendc/go-deepcopy v1.7.2/go.mod h1:4bKjNC2r7boYOkD2IOuZpYjmlDdzjbpTRyCx+goBCJQ=
github.com/tursodatabase/libsql-client-go v0.0.0-20251219100830-236aa1ff8acc h1:lzi/5fg2EfinRlh3v//YyIhnc4tY7BTqazQGwb1ar+0=
github.com/tursodatabase/libsql-client-go v0.0.0-20251219100830-236aa1ff8acc/go.mod h1:08inkKyguB6CGGssc/JzhmQWwBgFQBgjlYFjxjRh7nU=
-github.com/uptrace/uptrace-go v1.39.0 h1:MszuE3eX/z86xzYywN2JBtYcmsS4ofdo1VMDhRvkWrI=
-github.com/uptrace/uptrace-go v1.39.0/go.mod h1:FquipEqgTMXPbhdhenjbiLHG1R5WYdxVH6zgwHeMzzA=
+github.com/uptrace/uptrace-go v1.40.0 h1:fMva36FZ/eujU60hq+ke9HdYGkXP5jJXUTNeEuWDI+I=
+github.com/uptrace/uptrace-go v1.40.0/go.mod h1:HJhggr8UMkJ+keR8B9o4KsF7kxT8lKH7Ra8X2DRwqdc=
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
github.com/valyala/fasthttp v1.69.0 h1:fNLLESD2SooWeh2cidsuFtOcrEi4uB4m1mPrkJMZyVI=
@@ -385,6 +385,8 @@ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0 h1:7iP2uCb
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0/go.mod h1:c7hN3ddxs/z6q9xwvfLPk+UHlWRQyaeR1LdgfL/66l0=
go.opentelemetry.io/contrib/instrumentation/runtime v0.65.0 h1:n8qdwrebNEHF/zHpueuZ4OacdJ8CdSaP7xef9WRZXTQ=
go.opentelemetry.io/contrib/instrumentation/runtime v0.65.0/go.mod h1:Z1pjGxUL3nJ/IbDDfL6rBD0Xbz7ZOViRqrIUg4l1CYE=
+go.opentelemetry.io/contrib/processors/minsev v0.13.0 h1:pADh6ro5deXRfNmry136khTZYWVXn9NKZR5nZuEXtXw=
+go.opentelemetry.io/contrib/processors/minsev v0.13.0/go.mod h1:MC0s+ldbPprTztVZQ/pecYqPSxwfjQkdnCeC3u6uGQU=
go.opentelemetry.io/contrib/propagators/b3 v1.19.0 h1:ulz44cpm6V5oAeg5Aw9HyqGFMS6XM7untlMEhD7YzzA=
go.opentelemetry.io/contrib/propagators/b3 v1.19.0/go.mod h1:OzCmE2IVS+asTI+odXQstRGVfXQ4bXv9nMBRK0nNyqQ=
go.opentelemetry.io/otel v1.40.0 h1:oA5YeOcpRTXq6NN7frwmwFR0Cn3RhTVZvXsP4duvCms=
@@ -547,8 +549,8 @@ google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAs
google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds=
google.golang.org/genproto v0.0.0-20260217200457-a2cb2272a1e9 h1:MzLVemxGdOBt2uziz9LnuYRQQFw1FDV0s0af4GVYE1A=
google.golang.org/genproto v0.0.0-20260217200457-a2cb2272a1e9/go.mod h1:9mSgs6f8tLwHSr6EzFWG+naa04gb1Zpt4IumYKsRDs0=
-google.golang.org/genproto/googleapis/api v0.0.0-20260217200457-a2cb2272a1e9 h1:yt1EUx2U7D7a0Myzkt7z+RR5hnl6mCdzcUfYHx7LEls=
-google.golang.org/genproto/googleapis/api v0.0.0-20260217200457-a2cb2272a1e9/go.mod h1:S3ojYC5GRm/7ewOSg8Rh+iqeqxS3BLlLKFhVlbYwHuU=
+google.golang.org/genproto/googleapis/api v0.0.0-20260217215200-42d3e9bedb6d h1:EocjzKLywydp5uZ5tJ79iP6Q0UjDnyiHkGRWxuPBP8s=
+google.golang.org/genproto/googleapis/api v0.0.0-20260217215200-42d3e9bedb6d/go.mod h1:48U2I+QQUYhsFrg2SY6r+nJzeOtjey7j//WBESw+qyQ=
google.golang.org/genproto/googleapis/rpc v0.0.0-20260217215200-42d3e9bedb6d h1:t/LOSXPJ9R0B6fnZNyALBRfZBH0Uy0gT+uR+SJ6syqQ=
google.golang.org/genproto/googleapis/rpc v0.0.0-20260217215200-42d3e9bedb6d/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8=
google.golang.org/grpc v1.79.1 h1:zGhSi45ODB9/p3VAawt9a+O/MULLl9dpizzNNpq7flY=
From 2802cde39710bf628c9d07854156afca99e3e204 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 1 Mar 2026 00:03:42 +0000
Subject: [PATCH 156/215] fix(deps): bump github.com/nyaruka/phonenumbers in
/api
Bumps [github.com/nyaruka/phonenumbers](https://github.com/nyaruka/phonenumbers) from 1.6.9 to 1.6.10.
- [Release notes](https://github.com/nyaruka/phonenumbers/releases)
- [Changelog](https://github.com/nyaruka/phonenumbers/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nyaruka/phonenumbers/compare/v1.6.9...v1.6.10)
---
updated-dependencies:
- dependency-name: github.com/nyaruka/phonenumbers
dependency-version: 1.6.10
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 2 +-
api/go.sum | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index 3a1c6701..e075e3ac 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -31,7 +31,7 @@ require (
github.com/jordan-wright/email v4.0.1-0.20210109023952-943e75fe5223+incompatible
github.com/jszwec/csvutil v1.10.0
github.com/lib/pq v1.11.2
- github.com/nyaruka/phonenumbers v1.6.9
+ github.com/nyaruka/phonenumbers v1.6.10
github.com/palantir/stacktrace v0.0.0-20161112013806-78658fd2d177
github.com/patrickmn/go-cache v2.1.0+incompatible
github.com/pkg/errors v0.9.1
diff --git a/api/go.sum b/api/go.sum
index 26dba3ad..c70fa5ef 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -271,8 +271,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc=
-github.com/nyaruka/phonenumbers v1.6.9 h1:LUmsIr+WKyBhWTzxm/9j+kGC9JclO+hBOHc18PSo9iM=
-github.com/nyaruka/phonenumbers v1.6.9/go.mod h1:IUu45lj2bSeYXQuxDyyuzOrdV10tyRa1YSsfH8EKN5c=
+github.com/nyaruka/phonenumbers v1.6.10 h1:kGTxTzd320dUamRB/MPeZSIwKNLn4vHlysOt5Cp8uoU=
+github.com/nyaruka/phonenumbers v1.6.10/go.mod h1:IUu45lj2bSeYXQuxDyyuzOrdV10tyRa1YSsfH8EKN5c=
github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 h1:zrbMGy9YXpIeTnGj4EljqMiZsIcE09mmF8XsD5AYOJc=
github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6/go.mod h1:rEKTHC9roVVicUIfZK7DYrdIoM0EOr8mK1Hj5s3JjH0=
github.com/olekukonko/errors v1.2.0 h1:10Zcn4GeV59t/EGqJc8fUjtFT/FuUh5bTMzZ1XwmCRo=
From a8c976bb5598f25ccebabab756c4713c55cd85ea Mon Sep 17 00:00:00 2001
From: Jake Daynes
Date: Sat, 28 Feb 2026 20:22:34 -0800
Subject: [PATCH 157/215] Fixed imports and missing comma
---
.../java/com/httpsms/FirebaseMessagingService.kt | 12 ++++++------
android/app/src/main/java/com/httpsms/Models.kt | 2 +-
.../app/src/main/java/com/httpsms/SentReceiver.kt | 1 +
3 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/android/app/src/main/java/com/httpsms/FirebaseMessagingService.kt b/android/app/src/main/java/com/httpsms/FirebaseMessagingService.kt
index dca73a5e..03c99bb4 100644
--- a/android/app/src/main/java/com/httpsms/FirebaseMessagingService.kt
+++ b/android/app/src/main/java/com/httpsms/FirebaseMessagingService.kt
@@ -9,12 +9,12 @@ import com.google.firebase.messaging.RemoteMessage
import com.httpsms.SentReceiver.FailedMessageWorker
import timber.log.Timber
-import com.google.android.mms.pdu.CharacterSets
-import com.google.android.mms.pdu.EncodedStringValue
-import com.google.android.mms.pdu.PduBody
-import com.google.android.mms.pdu.PduComposer
-import com.google.android.mms.pdu.PduPart
-import com.google.android.mms.pdu.SendReq
+import com.google.android.mms.pdu_alt.CharacterSets
+import com.google.android.mms.pdu_alt.EncodedStringValue
+import com.google.android.mms.pdu_alt.PduBody
+import com.google.android.mms.pdu_alt.PduComposer
+import com.google.android.mms.pdu_alt.PduPart
+import com.google.android.mms.pdu_alt.SendReq
class MyFirebaseMessagingService : FirebaseMessagingService() {
// [START receive_message]
diff --git a/android/app/src/main/java/com/httpsms/Models.kt b/android/app/src/main/java/com/httpsms/Models.kt
index d2559fb0..1ee2dbc8 100644
--- a/android/app/src/main/java/com/httpsms/Models.kt
+++ b/android/app/src/main/java/com/httpsms/Models.kt
@@ -76,7 +76,7 @@ data class Message (
val type: String,
@Json(name = "updated_at")
- val updatedAt: String
+ val updatedAt: String,
val attachments: List? = null
)
diff --git a/android/app/src/main/java/com/httpsms/SentReceiver.kt b/android/app/src/main/java/com/httpsms/SentReceiver.kt
index 00e76c2c..8786ba2c 100644
--- a/android/app/src/main/java/com/httpsms/SentReceiver.kt
+++ b/android/app/src/main/java/com/httpsms/SentReceiver.kt
@@ -14,6 +14,7 @@ import androidx.work.Worker
import androidx.work.WorkerParameters
import androidx.work.workDataOf
import timber.log.Timber
+import java.io.File
internal class SentReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
From cafaab90086d37d9158e0306a59a351d75162b0b Mon Sep 17 00:00:00 2001
From: Jake Daynes
Date: Sat, 28 Feb 2026 20:39:51 -0800
Subject: [PATCH 158/215] Updated UI to show attachments
---
web/components/MessageThread.vue | 5 +---
web/pages/threads/_id/index.vue | 40 ++++++++++++++++++++++++++++++++
2 files changed, 41 insertions(+), 4 deletions(-)
diff --git a/web/components/MessageThread.vue b/web/components/MessageThread.vue
index e2ed4739..51676b85 100644
--- a/web/components/MessageThread.vue
+++ b/web/components/MessageThread.vue
@@ -96,12 +96,9 @@
{{ thread.contact | phoneNumber }}
-
+
{{ thread.last_message_content }}
-
- {{ mdiPaperclip }} Multimedia Message
-
diff --git a/web/pages/threads/_id/index.vue b/web/pages/threads/_id/index.vue
index 06042a45..21ff39c7 100644
--- a/web/pages/threads/_id/index.vue
+++ b/web/pages/threads/_id/index.vue
@@ -173,6 +173,46 @@
>
+
+ Message Attachments
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Unsupported file type
+
+
+
+
+
{{ new Date(message.order_timestamp).toLocaleString() }}
From 47dde30802b6bfdad79585c8705f701e0d009440 Mon Sep 17 00:00:00 2001
From: Jake Daynes
Date: Sat, 28 Feb 2026 20:50:16 -0800
Subject: [PATCH 159/215] Updated templates
---
web/static/templates/httpsms-bulk.csv | 6 +++---
web/static/templates/httpsms-bulk.xlsx | Bin 8991 -> 8246 bytes
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/web/static/templates/httpsms-bulk.csv b/web/static/templates/httpsms-bulk.csv
index 38891f63..715ecab4 100644
--- a/web/static/templates/httpsms-bulk.csv
+++ b/web/static/templates/httpsms-bulk.csv
@@ -1,3 +1,3 @@
-FromPhoneNumber,ToPhoneNumber,Content
-+18005550199,+18005550100,This is a sample text message1
-+18005550199,+18005550100,This is a sample text message2
+FromPhoneNumber,ToPhoneNumber,Content,SendTime(optional),AttachmentURLs(optional)
++18005550199,+18005550100,This is a sample text message1,,http://thisisasample.com/attachment.png
++18005550199,+18005550100,This is a sample text message2,2023-11-11T02:10:01,
diff --git a/web/static/templates/httpsms-bulk.xlsx b/web/static/templates/httpsms-bulk.xlsx
index bb713087050c20208ebcbf516a03b162f3514f34..20f2b543d704e8dfcb2836fbb5002e850cfda523 100644
GIT binary patch
literal 8246
zcmd^E2UL_xvL;FzGKd3`ama#zT=#TzNbfgxYT*aqZBwq3+?%p9yh5o!Wzw&~Pcn1Oi7qat
zn_#ZUEl
z|2h*ixB3n{6?=a7Ono@C<|g5RT>8~xQRdLg7RR^;HZw)}cqQ6WS|^z80l|WiSYg6X
zxn8evjw;KaN)m{k(e6!l>NIwLHtn3G>cFJeY~^{Q;N2Nk4l-#>uvYTe463!orVr}r
zd@Xu7KUvPzC0xzH?NDwqRs5lnrPfqS6%QZJ!Y%|C69WSe8v{e@ubI*V;`+eN*4o)!96$D7gY-)df#e(pEDhmj(zk<+j&G$^!Djn!fcpkVFdJKCqlDje~A
z7B+R|&WT60k3W`Mh8XzZ8#1O=rtwqAxty8J3jiw^P!08
zW}{oR;WVPAK6g!oJ*|Gv7y1U`?&C(0JLv5yai52sRO+pvDq~?`VO!hD-s;@shVL7{
zWh<$s6i1KNX(PT(;Y{!P)5D_r@wPVa>fekVWBBxHW282eoLvOYJ#S2t<^>2pA14A1
zY&e|mPfmK&U*CdeA3C~Jj+`|z4riqufD=5{77IJ18zlhqjlG4F$R_UqpWXaJ%TD1<
zFrM49s6M6h8;R$ox%^TDvyV%5){n}!&3mttNKG1wgefw}uq@>wuLqc9W={1^eF#W_
z1T-MM{9OILT|NEIXQm$?h4m(M+&*9&oYpI>J>T#`^B8N(WDulb76GBAeKnQ4gL|v31K!infcHBt6F1Ly;9FDcjmv%Y1-*^XgH@Y@
zRpjoFL*S4R_>#7xIwy;&;kiC%Am66kkcigRqZzlzC2ebh)eNJPhIwi3_mwMAV6Q$O@u!9apSDOp_r
zbsJj&g#@7QixqIHZ-LmNTQ6s(gT|4ATX$}nuJrV?9fGCAKG9s?Zn4EElV;3kaUp?^
z0}}$%0_&hj45lm&|I7-3IDr9g1
zED1R?4tyTmpnRq>YMl1qW2aN2?Z-~_&Ojiow-6#5en->kc|Ra{)+N=56>U7g{VY!ChCM1rwKnO
zo%z@r-=99%G`#t5Y5%wP^e_A;8x-~)5jz5;kWjDyE3X40(wWNz|6ZkkN67Tf%z@;gkWfOw9L%u}c$A)1CP)Q^
zwIKeL%E;2y@seMuGnx%FhRJ+tF;k>;%&)EeG-2y=*3BX*l2o~DPGFpGoE==P-?Mmg+A#?&H*|td*QYh4
zocq=IR~k4y@xSlrv4tY%4AbWsb%w3w96FLHC!w%X)F^7!Z}U52`oO;1m6+q#p#soR?jKLeiW6UYc@_Gy`6)1>C!NfWw)
zgH6Oy`4VGbtQGuG1;_fM7`{-!nYvm#T&&}+qwkC3q?}s$0ZN+v68ICWqrk`);px|S
zW3yD_7y@H$Rm0T@C7E^hr~>-
z%@N!sw+hp>TAfkE9Xf4YO$Q~Wa!S8^!4;~CXTl~$r(2W@eEcNhwFV3hPBi>7z*gmR
zwTmb1%fP}kU>O3pUlZ@VKO8)kPI3B(K8)F5Owk7(v4|j;=jPN5I-rj9VtZrJ7DhoR
z5czy>>1~aRaB@TKazRUvHiw{w*=GIq^TE&7Ck2{^H$ESKtS7l|Tn?sl+kJ9IhqhQW
z(W|Oils$$}b?@)jyp%sI=5A~4XwCQi`+K?DtA8Id#!q#IizIzIJv@PriF22iYQuc+
zWw~7+$c3Wx3FT;x@%iahcCw`*J?wbW3Yv8zk%Vbov(@a?eGjc_Jl}u
z%%wcqW2v_R5>1me8%SdRu~xkOUMNM?Hf^F#%O;ZiAb0A^!Um9H>03|F_9bgzlJ1J2
znBHyRal&po*78EZj+Lx5wWv~7izC@JJdJMReyr^BBrQOx0sSt}e5+31a!Me5h`Do&
z{IDb@_lc|;$7BzCWD}vf+CrkD#I;Y9#qK1YaRufL#ze`^FFOL4c0}S?pBAbOhdZd6bPkMzW2*?MbwnV
z*6;$c-V{G~z;;Pm-}+Mh`*FHpIY(i&Ub-CNA&KjUO#C%zPu};^_kN+Pm#eksoj1-0
zr^`6AcO5gLJx#AF_ZlZ^XXy>eA9)(p4^MNmHFveP(sg%5@7AF=>5{a^Ro=@2PO;9-
z;p~1Rh^pXafejWSBpb`vY2ZjZ^kqW6I@j8?#0zd6EwY{XXKt>pE@=u^K5=WTvnGl6
z73nFfJ4iizH8ouS`IR1zEH5Cg>=UHZTQ^3F3KrNR=Houru1VKYrwY#tR%~>Ho%TcW@wbB2l_2RY>*xN{i@o3dwN7
zP5}KE)&1cVwg^dV`g$96z@
z6n!IvS|-*}r*rs#wiS?_p9&TkIhb|ZY`7}Xu#%)0Ga+v74omn<%UY6>A39}yxKtyG
z4368qtACfaS5VS946>t{zZqgDzZac2O1n2hZ|PBZ0TnjEUMc<4QWIvmBIka`^)|Z)+p_
ztHBuKI(#b3j~LqvoHK@$e8S)>Rejq>3!SrzjE^V}?!`k9pFu!~pA*2#%6Km1!759FkROS155WZ}hn%cUY-byq;u>qQ3bHYR_c%INx_ZUxlX{{mn7G
zRF;?syJ6!8tXk1w#+Hx#M^fbv2Vmo?xI`2j(FaQA-^M>edyqG-data}B&D5HPP92s
zMenr_nGW=P3D`-vLqep@aL08^svowNHe0_vp&Zq%q0HwVMW0X1UwFn;bwx_DT^rdQHKrkn>Gb}O%9=gdNVem_f-{ul|G*H}Ox55Dj1$E%|D_Q_x<4x=~~GEc}A
zt~_!#3H2UhXda=on7wV4CN$BQ5UcpY;YG>GGl=x)xzjXly3kCBt1!DmN<2=Hv(Bil
zMq|^|WxDv#&flv5&ZZ9DShQ?zPxZ1_Dg~AB|q^kNMZ3!Q}T3N53
zM!?3fle4hGl?IoD{IX!&s!pLF`pjQf+{H3Ue|@Fw>!q*Hy%dpJ`QlMRgVHlm6jQkR
z?XR3|n6iSN_Y*EZ684Z+`fx*FB9m_qEAFP@)g-;IV?OF|5IYT|GN>FbRF?`sf};oK
z7oQe?@sg4J^3-W-{eI0EW5lb(a+y5p0N=+)hDK^^f~10{on&zqk>g>xZ6!-#=IbAU
zH{j8Pt9e0ePw9;Op#i`eRdc
z(1`<4#@~D8YTjIau^5An~ZjTvRt5^
zssPSry=W`BMZen~&Ep}FZp)+h(*E0t7WRGbjLtAE4L3No+VVlWz2wMUx;StXnbCxB
zMcAg?`JvmQzN*Gt^og`kxGxj1xKFIja)QvMYO@UwZPFtFIcp-6NrnH=q(mr_{;=nF
z8%FoZkp%OT;r3H{hS}`vIGaahmE8b25HmclQDBzMwJU7d*wBe4N=`W1_0K6v_Oc-T
zX3oU@ywlapmU`tKE#~n4TPX}8Z9`u63J$Y2jEB{ne4<@&CwZCI%@h_PfznDI3zB&Z
zV4#4j?O+b8Ob=WM@;bpj@zT-tzJrM-IxRnV(EyfjHj&xJ>NaCqos*U)%frlpc1CK`
z2sTv+KcNBWj7?@LyqzbjxiCIJ(x3t5v3U3|Az4fnsDW^xhWq;-jON+*6(COT)=uuG
zcfFjg-Hg#*j80rAFFpxAQ&@OFP3N6g5ZRo?+fk#lf_KG7f#oEASoRR2<^
z;(D3cJ(XE){JYc!5fgaMp^4IlDYkU_EXvhSxyd}T2O6}dt~qmR^5UgwWMn1MB~;{|
z`KcQ71B3IE)D~39fITL(SUzbRCMQggwQngY6Uo-avOd-2i7lrU6HMusq}byr$xC&)
z&bi$3l5g`*0*h7yYnL99MHaWv`2`w0IMlp$g+)1
zVKymmu!ESrE~R(9v#6L%2YV_0Jiz2(Jcldy+B;Y+Yr{8xzfUxi=XS@q-|2*f`oewG
zyiDVu=LQpt3ghP?>culb^dah>%kLej{)%$3F8y;9RaCzylnb@!&(p+TQ7+bM=opQHT6iuPB)i}KS3%*|gE)p>`bNwm#C_FUz`jyB2if}PUqY2wj
z`Gx{SBm572`?cxCq=-)9KZTCwd(;1&(tm}x7}L?&^QSESfVddJe{Fm*dZEMqPq71j
z@Bep_z^^zLLjyY2{gk&T*b9;G*M`sw>-Nv5FPH8w#t|)5+)HS5BGhXV3j;%e9)0&;
DfILSV
literal 8991
zcmeHtg;yNe_H_p*0n#`G2=4Aqf(Hp2TpD+1+=IKjYaqA>mk`{7LvV-S?*8lK&3u{3
z%=Z_(SG`u%>a}X0Rdw&)=j?lK$w@)OU;y9%2mkC2{)ag9#{l`Q}b|onCUj>NNuU
zzE2Mtjl95@&e-lEeT@uL)5nb9TcA)jrWt1?+VH#^%kiK|m6c_!Pf&N00#c}V?-wO)
zJWj^0o;~tbY}^=Ib+yAR47}IOxFArtQ7RzGrmjPQO=Lw-vgCycCYFHLTKa5{GU`%y
z15%NC0eA0Q+p>)EA}UvZ;W%(@6n(WEyJ_UW
zGy&0TWW4q!_8FT7$eD*$W0kU44ZrVvg_$EgaMVt;a7(^|j^DY2XV91t8D$`YLt;s{
z{IMrPM3$SA#>XSSx38Y-i|oEWzPnZ4DEvB%=+z^}1?qO==@%hj-xp%C_ksJ%z1zHQ
zdm|efz6Zw%+ny{BZ~(yLBQ!wnZ?ddWVj?|*a7`Mbx@Qnsf@}>f>=+q-oc|}s|6&dP
z<<(1K-pY0`Aq5=1xeM&QoLq}zNhlfyFKMk)X+YwQjRQOlg>8bEP030ps^jGO5T9SaP*ODEHm%Uhu;n3f0U20)ITcB5MZb5amr3hY
zAYnthVi^|iAQ;%8rR*9P@WEs3K9Fijc(s{5n5wvWCkl`~=FeM*#u6+=7gKM{
zTaB>qxnwhoF`Xf!~jt!r@PLf
zR!&=%obc$)oh
z;gXxH0FGbd(SYFOw9E?ke^1U$Fr%;9O<{I)(#14cc@fDZRIs3lb925NqQo0hU%0
zgq@Le=-JPyr}4ipbCFH0uO}D1I8d{Bj4iq2Pk4k2C;^EH6O{_mqLLlPnk;6dmS(0i
zm=YduU3txEJj*
zJk2*s+<6O$kdJ=@u{{V+!a0y!LXA=|u&Lfd$qw34omH-$gY@wt4&8)q1iSMoDFf*p
zQCVe4O$MhTe>fHh)~_|lr6
zAl$i{?su%)dgm8pQ^=w(WLA4tH~cCO@x$^c)r5H;yR*PBLzXJ%6|N*aRH0+~dz2c%
zq4z2$2n(%wGB`b^-*L0`-2y^SrV&`-as4y%m~BJJD)+!Zq|2O`742`lN>p2g2R<+;
z(uvNj>QR{I)vh_mX8R9F?2k-gwO|?@hsOnlDlG7gyp*M#cvDDeek1y8X~wmu8B@M1
z5z19?$1doGO9%I&Tl&Zrmb7xIBcvgd?>yf^_ejMMF;z+6;913N0Gm~CGW*VAVTH9E6SM3sSM$9Ll~Ew>5T?I>5auACdcVT!Y3*Zts%<*8@~@Ea2-E
z(?;O_N+k63EXuqKoz@!-I(tE!tHezYKdasohzW({f&cEKMB%MeClj#c*+U?cQ>r5->Wn=j$)3{g
zbA-NX>NyHxR*$nKJeo!=)o)Ua(BJ@<01aRYPmNJP#W#sb*PhL{{!%+kWcSxf8m9vqPix
zzMjb?$V~q;>2HT9!kk0sQV;P>IFLL3NcwgrhKBZbj6W~TKeB&X>|8`D6ENVA_M9N<
zuq`b%D@sYtajvDR#sRf#QPcpi8RMHE+#bVJGrdzkv@zVC|Z+g$@k(8!9*T1`d3
zLu`HEHi^8c)Wr?Siy+ky<>?Lt@`&}B@gl_(dW{k{!p<;Ww{Y2=Z~bfw6=;kz{83?drHgX@B-*4K8;)d6*<$78EC*#~AmSsdt4@(P1}>)%n^GP~;s*{>I=M7`%oW(FV9r6AS`ba_T%k*sSya};79%gCG{kT*#gKV4
z#?ADr&+sG0IuD46sCj_cfXBz5go%sRdfLu}IC+LoOv5V-%-HLJnyt7*|l9Fmcc_B=n%rjS?0bK;e@Riq@o_vUR0;_xCr
zn=rMYfQHeQ1u`<&u>coTm2ITgr#Wb^i*Xi`qq;_=?daZ<^eyGMRx~4swYmq;(I0VA
z7pb{M`gle3umRl>5-C(yJcHFRHe62l^AUfZs;J*c%bvfblN|m^tK2K`mbOxfWrS5l
zfvR76*sD_NC
zq&AF)9+-2Xy
zg`pZET3tV*yOWyB^sq&>>_h08hQ1cD$W9=X;GUzw>Ou&JuK!}h<-J4^*7K&FG!v@_
zpTKu935)ilLMaYu%$2r}o}Alz7Glypx58%G73OFm!{Dxo0%
zErkOD;@K133})V!t8QbLRA^`(CfDTmo7i=XSfk1mA{%gO!d6+2EDh2+?y949C);gi
zV?+qP>TVxF&;^=3=ezgnt+iwMPfXZ+;`3^!d3NKiqI8kvZYHyvR1TE}uog!^TAvyS
ziX#1|vfg=C1P~%ME{i@Z7o--@>@
zHOyifv~NYAFCzI0w!}~m%SRy>?1M-Zy&L#eoz
zJLky95zxQ^XcRj2@2HU_m9EMKydUyNLu#2=a^tmhf>rSpE}Zo``=o2{XtO3ci5N5Z
z-5!p%PXk-|J9#p*mJ;OUuOH@!|)i$QsS}7bxP~0ROv@ylc
zvMOB>e0BgV_YE2+7q-
z34{Ee0=Eb=JHh8rgLM{L&o*(2GDb2H*AVK{8+|%IsqZ|2=Pv|XpCYZH+`iQ6tz;=(E;T7Q*#+R#Np07i!ZNE1nsfS%R
zONpZlx-lFgsB8{PZXv|B_o)aqoaL*Xt{Dtw<>fgojGt}7QM3>1#&N3?uu~n;WgXaT
z7*!$Bi6_{TETQckQaVr5d14q-Wd4oXHW7i=@bWm$vcec_M7VQrkJKyiQRAnHRD8AtOIu~Yg!NRryd>9BLDtp7+iNV
zT%wD*i$S2gxeuRi0K!uw>;<17%m+=8^kQ|3gSgb`RF3D+7-GsT=&|eJUBkguly^@3
zFP)y)!NEpq9N)(Aq*57fighZS7Xk1&M+;GS|
z`Bc68{Nh~DEV}WrNw1A(E>U
z_9VLbI8ypG8;VzyEVGd#Nb16d3t!Sgq|e_uvr=T~=LR~^VrGt%-pZUhM~08f7&nwO
zrW8Jdjk$KF)(jU;l+4>w=RaI5o!Ir*dgr8;2uC$Dj-xAWgeUKSBM(9m!q7JM)1FCI
z9ko{-mD@?oRu{9`c*R`zr#SmENk_^&!;>gaVv}Nxy@Ff*NU$n?Ba1u`T+rgQB
zH_q##*_p79-45hkM=m}Qo~WYvXmu|`Z(C;0(13zA=_1*@GVwkXx{ZlG^DE0+wPu-)
zkWZiF=c-xh5RhaiIIb)m#JKp6%P3#y6{k37wBs3rARL=BA{7^q{tYUyz)pk9(op3Vi3Qkd0bf?C*%9JaAv3
zx#K|dd|4-2UK3?}_vVSF?ue+PX?f2S!@=4H{h&W;Xs9&kD|XGw&FW{(8F!mQRHF3T
zn*J;`OGh(*qZ)oHm=>9wk-cv`{@SG)hsdrA6{GlkM=hktD6^ARa=V;QYi#Q@5X{I8
zJ#y3v;NvBE3+nLhv+jv#^>sF=-y3`eT$(l2KK^Ta!X?|wA{XLR6(CL(`9I~?&fdks
z(C&vl%~i5ApJM_(2uyndZw~q$*XR&y2gWAkwz{(j_KNief(x|6$c%@&A8utFwefjs
zM?HdNHplIT7wiv!9hvfyj^<1j1jgcQFGXcfS0Ln7TRC@L5UF?1fL``owG
zDpfl7?4sWAE3uaxM~B8{3M_H$Jd4DByj7A9V+}_P&vXiMWw>s2)k72p8A=CrbQ~=o
z5uL&HE25Z`&00iBdc2*hlxGJQ{8(aDn)Bc|4tshpGwin}!Hp(ndK1a|F^jh(k?S8v
zm8TA#S_hYzYgZ-OZyLy$xQIcmPZ5hEBCdtb@}5fOA~IX_w77H0nwO@Dezb~*X7(-s
zx2>ve9~K>DHroaDE8ary7XW1aBr+1zO?>g+z^Cu>he&dW%qz4_1>9DoNHSdb@?Jz}
z?+d4`kGLI@W%TG)S_eI|(Zh6uTJBYh8fMOUI-TWvUkxT|@sYsOxvBRQ0V6Gl+pzGw
zzVUNu{Fdj_Cvds8)vwrQ1}}oVWO2V^58Z0Mk6)0PkC~5GT5$9ciHH)qpE?;B>2cFK
zi9M|q{*Lz9_CYaH2mi@it`xc6HvFT2@E*b(m@m9elQi4j?p+gODBL4?3IZ+8P=t+S{618UJK;T$CVWb&BD4=<`Uto*TH3i)l|S
zaZynrj#~1HsCJlRq`9+MMeVT#71aP%Flpdukcr92GbGg6SBN+}eo$HJ30E%jvcZO;
z=lotS(FNBHIkDCpZ{u^m>Bw`
zdQ~>kvAJRe4{%TM&oQsEmlopPB%Td
zMdgh@dX4{d+vs7}FC`#jV+@fzDx{ZT0M?hY1zX!O>Vs_!|JXuNPVE>ga#BWS$wOXtx<@uvC!2E
z1Ba$SkUP{=z(Oqkq!?CS@b%)Vfo}qnH
zq+8gih4|Wq1{NKzew+e?^N|*pu2VVRndQ(?)n-@OV__F<{r+LXmBGynr1#nv$(@cP
zj*AA|*P&l2;v&6DmP72o$i_(;sbsP)uK82I
zRl-gFCvH89f-8@T<@mJFknLI>P*qM2Lws7DnR$31JN$09GYt6>+|J9d71iN3xHUVb
zlfEC5p4odkTdI7xvIN4VNuE*gq6byN%}s>W$i7i~)pZv}56F(OND9#Bz8o^Y6lD~L
z#@_5E)`8Mp!MEA$g?=#Opcv=v9N<3gWjdDOn)3$p*bQ-NC(GVYx)C%Pv`70Zo_F{g
zyT562Hb>B&auIkp_syW-8dhdk0C|ER%yLU?u#i#_cr$t0%Eb4ucGhuz;wtaKaIIy`
zO1|_^_3-RZ`aXf8hm?|k{}kcR>H72fFCQkzN&P**-#1PF1pc@tLNxK0E!5wEzi%Y{
zf;L0E+i%-Szk~nY!~O*Y06d=l1pj|J+P}y7y|MW#QYF&=dx(FuIe(Axd(Y=rlzB+m
zg1pM_9iZO>{O($R1<=6$8Q_
Date: Sat, 28 Feb 2026 21:33:15 -0800
Subject: [PATCH 160/215] Added a custom copyTo to cancel downloads as soon as
they breach the size limit
---
.../java/com/httpsms/HttpSmsApiService.kt | 34 +++++++++++++++----
1 file changed, 27 insertions(+), 7 deletions(-)
diff --git a/android/app/src/main/java/com/httpsms/HttpSmsApiService.kt b/android/app/src/main/java/com/httpsms/HttpSmsApiService.kt
index c3ae8e13..9581cedc 100644
--- a/android/app/src/main/java/com/httpsms/HttpSmsApiService.kt
+++ b/android/app/src/main/java/com/httpsms/HttpSmsApiService.kt
@@ -13,6 +13,9 @@ import java.util.logging.Level
import java.util.logging.Logger.getLogger
import java.io.File
import java.io.FileOutputStream
+import java.io.IOException
+import java.io.InputStream
+import java.io.OutputStream
class HttpSmsApiService(private val apiKey: String, private val baseURL: URI) {
@@ -158,6 +161,28 @@ class HttpSmsApiService(private val apiKey: String, private val baseURL: URI) {
return true
}
+ fun InputStream.copyToWithLimit(
+ out: OutputStream,
+ limit: Long,
+ bufferSize: Int = DEFAULT_BUFFER_SIZE
+ ): Long {
+ var bytesCopied: Long = 0
+ val buffer = ByteArray(bufferSize)
+ var bytes = read(buffer)
+
+ while (bytes >= 0) {
+ bytesCopied += bytes
+
+ if (bytesCopied > limit) {
+ throw IOException("Download aborted: File exceeded maximum allowed size of $limit bytes.")
+ }
+
+ out.write(buffer, 0, bytes)
+ bytes = read(buffer)
+ }
+ return bytesCopied
+ }
+
// Downloads the attachment URL content locally
fun downloadAttachment(context: Context, urlString: String, messageId: String, attachmentIndex: Int): File? {
val request = Request.Builder().url(urlString).build()
@@ -186,18 +211,13 @@ class HttpSmsApiService(private val apiKey: String, private val baseURL: URI) {
val tempFile = File(mmsDir, "mms_${messageId}_$attachmentIndex")
val inputStream = response.body?.byteStream()
val outputStream = FileOutputStream(tempFile)
- inputStream?.copyTo(outputStream)
+
+ inputStream?.copyToWithLimit(outputStream, maxSizeBytes.toLong())
outputStream.close()
inputStream?.close()
response.close()
- if (tempFile.length() > maxSizeBytes) {
- tempFile.delete()
- Timber.e("Downloaded file exceeded 1.5MB limit.")
- return null
- }
-
return tempFile
} catch (e: Exception) {
Timber.e(e, "Exception while downloading attachment")
From 182d86006e32a24596251ad3f55a75042249268c Mon Sep 17 00:00:00 2001
From: Jake Daynes
Date: Sat, 28 Feb 2026 21:34:17 -0800
Subject: [PATCH 161/215] Changed cache timeout to 15min
---
api/pkg/validators/validator.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/api/pkg/validators/validator.go b/api/pkg/validators/validator.go
index 850d1e76..3cd85de2 100644
--- a/api/pkg/validators/validator.go
+++ b/api/pkg/validators/validator.go
@@ -213,5 +213,5 @@ func validateAttachmentURL(ctx context.Context, c cache.Cache, attachmentURL str
}
func saveToCache(ctx context.Context, c cache.Cache, key string, value string) {
- _ = c.Set(ctx, key, value, 24*time.Hour)
+ _ = c.Set(ctx, key, value, 15*time.Minute)
}
From c4f7e185582a39a8ef4f5283c8cf41e7ee4cb872 Mon Sep 17 00:00:00 2001
From: Jake Daynes
Date: Sat, 28 Feb 2026 21:42:05 -0800
Subject: [PATCH 162/215] Centralised the content type check into message
entities file
---
api/pkg/entities/message.go | 17 +++++++++++++++++
api/pkg/handlers/discord_handler.go | 14 +-------------
api/pkg/requests/bulk_message_request.go | 13 +------------
3 files changed, 19 insertions(+), 25 deletions(-)
diff --git a/api/pkg/entities/message.go b/api/pkg/entities/message.go
index eb71f51b..6f0f75e6 100644
--- a/api/pkg/entities/message.go
+++ b/api/pkg/entities/message.go
@@ -1,6 +1,7 @@
package entities
import (
+ "strings"
"time"
"github.com/google/uuid"
@@ -233,3 +234,19 @@ func (message *Message) updateOrderTimestamp(timestamp time.Time) {
message.OrderTimestamp = timestamp
}
}
+
+func GetAttachmentContentType(url string) string {
+ // Since there's no easy way to set a type in the CSV, defaulting to octet-stream and then just checking the file extension in the URL
+ contentType := "application/octet-stream"
+ lowerURL := strings.ToLower(url)
+ if strings.HasSuffix(lowerURL, ".jpg") || strings.HasSuffix(lowerURL, ".jpeg") {
+ contentType = "image/jpeg"
+ } else if strings.HasSuffix(lowerURL, ".png") {
+ contentType = "image/png"
+ } else if strings.HasSuffix(lowerURL, ".gif") {
+ contentType = "image/gif"
+ } else if strings.HasSuffix(lowerURL, ".mp4") {
+ contentType = "video/mp4"
+ }
+ return contentType
+}
diff --git a/api/pkg/handlers/discord_handler.go b/api/pkg/handlers/discord_handler.go
index 7be60f3b..729c6ce6 100644
--- a/api/pkg/handlers/discord_handler.go
+++ b/api/pkg/handlers/discord_handler.go
@@ -303,19 +303,7 @@ func (h *DiscordHandler) createRequest(payload map[string]any) requests.MessageS
continue
}
- // Same as with bulk CSV attachments, can't easily ask for the MIME type so
- // just inferring based on the file extension
- contentType := "application/octet-stream"
- lowerURL := strings.ToLower(cleanURL)
- if strings.HasSuffix(lowerURL, ".jpg") || strings.HasSuffix(lowerURL, ".jpeg") {
- contentType = "image/jpeg"
- } else if strings.HasSuffix(lowerURL, ".png") {
- contentType = "image/png"
- } else if strings.HasSuffix(lowerURL, ".gif") {
- contentType = "image/gif"
- } else if strings.HasSuffix(lowerURL, ".mp4") {
- contentType = "video/mp4"
- }
+ contentType := entities.GetAttachmentContentType(cleanURL)
attachments = append(attachments, entities.MessageAttachment{
ContentType: contentType,
diff --git a/api/pkg/requests/bulk_message_request.go b/api/pkg/requests/bulk_message_request.go
index 0ab6c024..a5aca7ce 100644
--- a/api/pkg/requests/bulk_message_request.go
+++ b/api/pkg/requests/bulk_message_request.go
@@ -43,18 +43,7 @@ func (input *BulkMessage) ToMessageSendParams(userID entities.UserID, requestID
continue
}
- // Since there's no easy way to set a type in the CSV, defaulting to octet-stream and then just checking the file extension in the URL
- contentType := "application/octet-stream"
- lowerURL := strings.ToLower(cleanURL)
- if strings.HasSuffix(lowerURL, ".jpg") || strings.HasSuffix(lowerURL, ".jpeg") {
- contentType = "image/jpeg"
- } else if strings.HasSuffix(lowerURL, ".png") {
- contentType = "image/png"
- } else if strings.HasSuffix(lowerURL, ".gif") {
- contentType = "image/gif"
- } else if strings.HasSuffix(lowerURL, ".mp4") {
- contentType = "video/mp4"
- }
+ contentType := entities.GetAttachmentContentType(cleanURL)
attachments = append(attachments, entities.MessageAttachment{
ContentType: contentType,
From c4b4f1f5df58f1d9c57f27360cd8760085267272 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 4 Mar 2026 08:35:56 +0000
Subject: [PATCH 163/215] fix(deps): bump github.com/xuri/excelize/v2 in /api
Bumps [github.com/xuri/excelize/v2](https://github.com/xuri/excelize) from 2.10.0 to 2.10.1.
- [Release notes](https://github.com/xuri/excelize/releases)
- [Commits](https://github.com/xuri/excelize/compare/v2.10.0...v2.10.1)
---
updated-dependencies:
- dependency-name: github.com/xuri/excelize/v2
dependency-version: 2.10.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 2 +-
api/go.sum | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index 2d1f8df2..2523c3bd 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -44,7 +44,7 @@ require (
github.com/thedevsaddam/govalidator v1.9.10
github.com/tursodatabase/libsql-client-go v0.0.0-20251219100830-236aa1ff8acc
github.com/uptrace/uptrace-go v1.40.0
- github.com/xuri/excelize/v2 v2.10.0
+ github.com/xuri/excelize/v2 v2.10.1
go.opentelemetry.io/otel v1.40.0
go.opentelemetry.io/otel/metric v1.40.0
go.opentelemetry.io/otel/sdk v1.40.0
diff --git a/api/go.sum b/api/go.sum
index 06c161bf..a35facfe 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -358,8 +358,8 @@ github.com/xdg-go/scram v1.1.1/go.mod h1:RaEWvsqvNKKvBPvcKeFjrG2cJqOkHTiyTpzz23n
github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8=
github.com/xuri/efp v0.0.1 h1:fws5Rv3myXyYni8uwj2qKjVaRP30PdjeYe2Y6FDsCL8=
github.com/xuri/efp v0.0.1/go.mod h1:ybY/Jr0T0GTCnYjKqmdwxyxn2BQf2RcQIIvex5QldPI=
-github.com/xuri/excelize/v2 v2.10.0 h1:8aKsP7JD39iKLc6dH5Tw3dgV3sPRh8uRVXu/fMstfW4=
-github.com/xuri/excelize/v2 v2.10.0/go.mod h1:SC5TzhQkaOsTWpANfm+7bJCldzcnU/jrhqkTi/iBHBU=
+github.com/xuri/excelize/v2 v2.10.1 h1:V62UlqopMqha3kOpnlHy2CcRVw1V8E63jFoWUmMzxN0=
+github.com/xuri/excelize/v2 v2.10.1/go.mod h1:iG5tARpgaEeIhTqt3/fgXCGoBRt4hNXgCp3tfXKoOIc=
github.com/xuri/nfp v0.0.2-0.20250530014748-2ddeb826f9a9 h1:+C0TIdyyYmzadGaL/HBLbf3WdLgC29pgyhTjAT/0nuE=
github.com/xuri/nfp v0.0.2-0.20250530014748-2ddeb826f9a9/go.mod h1:WwHg+CVyzlv/TX9xqBFXEZAuxOPxn2k1GNHwG41IIUQ=
github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU=
From 78092ad9e8771a06db6174b77762171fccc8b40e Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 19 Mar 2026 02:13:24 +0000
Subject: [PATCH 164/215] fix(deps): bump google.golang.org/grpc from 1.79.1 to
1.79.3 in /api
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.79.1 to 1.79.3.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.79.1...v1.79.3)
---
updated-dependencies:
- dependency-name: google.golang.org/grpc
dependency-version: 1.79.3
dependency-type: indirect
...
Signed-off-by: dependabot[bot]
---
api/go.mod | 2 +-
api/go.sum | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/api/go.mod b/api/go.mod
index 2523c3bd..970afcbf 100644
--- a/api/go.mod
+++ b/api/go.mod
@@ -198,7 +198,7 @@ require (
google.golang.org/genproto v0.0.0-20260217200457-a2cb2272a1e9 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20260217215200-42d3e9bedb6d // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20260217215200-42d3e9bedb6d // indirect
- google.golang.org/grpc v1.79.1 // indirect
+ google.golang.org/grpc v1.79.3 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
gorm.io/driver/clickhouse v0.7.0 // indirect
gorm.io/driver/mysql v1.6.0 // indirect
diff --git a/api/go.sum b/api/go.sum
index a35facfe..a5e74ec7 100644
--- a/api/go.sum
+++ b/api/go.sum
@@ -553,8 +553,8 @@ google.golang.org/genproto/googleapis/api v0.0.0-20260217215200-42d3e9bedb6d h1:
google.golang.org/genproto/googleapis/api v0.0.0-20260217215200-42d3e9bedb6d/go.mod h1:48U2I+QQUYhsFrg2SY6r+nJzeOtjey7j//WBESw+qyQ=
google.golang.org/genproto/googleapis/rpc v0.0.0-20260217215200-42d3e9bedb6d h1:t/LOSXPJ9R0B6fnZNyALBRfZBH0Uy0gT+uR+SJ6syqQ=
google.golang.org/genproto/googleapis/rpc v0.0.0-20260217215200-42d3e9bedb6d/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8=
-google.golang.org/grpc v1.79.1 h1:zGhSi45ODB9/p3VAawt9a+O/MULLl9dpizzNNpq7flY=
-google.golang.org/grpc v1.79.1/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ=
+google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE=
+google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
From c41a79983d4eb5095354e08cecacafbe2a5d3697 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Sun, 22 Mar 2026 13:46:51 +0200
Subject: [PATCH 165/215] Fix gradle file
---
android/build.gradle | 4 ++--
android/gradle/wrapper/gradle-wrapper.properties | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/android/build.gradle b/android/build.gradle
index e29386c3..8450dab4 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -17,8 +17,8 @@ buildscript {
}
plugins {
- id 'com.android.application' version '8.9.2' apply false
- id 'com.android.library' version '8.9.2' apply false
+ id 'com.android.application' version '8.13.2' apply false
+ id 'com.android.library' version '8.13.2' apply false
id 'org.jetbrains.kotlin.android' version '1.6.21' apply false
}
diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties
index f40abbca..0d14e6a1 100644
--- a/android/gradle/wrapper/gradle-wrapper.properties
+++ b/android/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
#Thu Jun 23 15:32:32 EEST 2022
distributionBase=GRADLE_USER_HOME
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
From bded0b4a9b135051991c0e606fcd44be7b60192d Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Sun, 22 Mar 2026 14:12:50 +0200
Subject: [PATCH 166/215] ADB upgrade
---
android/app/build.gradle | 17 ++++++-----------
android/build.gradle | 8 ++++----
android/gradle.properties | 10 ++++++++++
.../gradle/wrapper/gradle-wrapper.properties | 2 +-
4 files changed, 21 insertions(+), 16 deletions(-)
diff --git a/android/app/build.gradle b/android/app/build.gradle
index f49acb2b..ae0e8d94 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -2,27 +2,22 @@ plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
id 'com.google.gms.google-services'
- id "io.sentry.android.gradle" version "4.3.1"
+ id "io.sentry.android.gradle" version "6.2.0"
}
-def getGitHash = { ->
- def stdout = new ByteArrayOutputStream()
- exec {
- commandLine 'git', 'rev-parse', '--short', 'HEAD'
- standardOutput = stdout
- }
- return stdout.toString().trim()
-}
+def gitHash = providers.exec {
+ commandLine 'git', 'rev-parse', '--short', 'HEAD'
+}.standardOutput.asText.map { it.trim() }.getOrElse("unknown")
android {
- compileSdk 35
+ compileSdk 36
defaultConfig {
applicationId "com.httpsms"
minSdk 28
targetSdk 35
versionCode 1
- versionName "${getGitHash()}"
+ versionName gitHash
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
diff --git a/android/build.gradle b/android/build.gradle
index 8450dab4..eeed1cc3 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -1,7 +1,7 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext {
- kotlin_version = '2.1.0'
+ kotlin_version = '2.2.10'
}
repositories {
// Check that you have the following line (if not, add it):
@@ -17,9 +17,9 @@ buildscript {
}
plugins {
- id 'com.android.application' version '8.13.2' apply false
- id 'com.android.library' version '8.13.2' apply false
- id 'org.jetbrains.kotlin.android' version '1.6.21' apply false
+ id 'com.android.application' version '9.1.0' apply false
+ id 'com.android.library' version '9.1.0' apply false
+ id 'org.jetbrains.kotlin.android' version '2.3.20' apply false
}
tasks.register('clean', Delete) {
diff --git a/android/gradle.properties b/android/gradle.properties
index cf0008dd..8665be9a 100644
--- a/android/gradle.properties
+++ b/android/gradle.properties
@@ -22,3 +22,13 @@ kotlin.code.style=official
# thereby reducing the size of the R class for that library
android.nonTransitiveRClass=true
android.nonFinalResIds=false
+android.defaults.buildfeatures.resvalues=true
+android.sdk.defaultTargetSdkToCompileSdkIfUnset=false
+android.enableAppCompileTimeRClass=false
+android.usesSdkInManifest.disallowed=false
+android.uniquePackageNames=false
+android.dependency.useConstraints=true
+android.r8.strictFullModeForKeepRules=false
+android.r8.optimizedResourceShrinking=false
+android.builtInKotlin=false
+android.newDsl=false
diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties
index 0d14e6a1..2721b96b 100644
--- a/android/gradle/wrapper/gradle-wrapper.properties
+++ b/android/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
#Thu Jun 23 15:32:32 EEST 2022
distributionBase=GRADLE_USER_HOME
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
From c1dddc36c944d96744559046ee0c2f3b4cd8713f Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Sun, 22 Mar 2026 14:35:00 +0200
Subject: [PATCH 167/215] Update
api/pkg/validators/bulk_message_handler_validator.go
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---
api/pkg/validators/bulk_message_handler_validator.go | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/api/pkg/validators/bulk_message_handler_validator.go b/api/pkg/validators/bulk_message_handler_validator.go
index 137442d0..23b4d48d 100644
--- a/api/pkg/validators/bulk_message_handler_validator.go
+++ b/api/pkg/validators/bulk_message_handler_validator.go
@@ -241,13 +241,10 @@ func (v *BulkMessageHandlerValidator) validateMessages(ctx context.Context, mess
result.Add("document", fmt.Sprintf("Row [%d]: The attachment URL [%s] has an invalid url format.", index+2, cleanURL))
} else if parsedURL.Scheme != "http" && parsedURL.Scheme != "https" {
result.Add("document", fmt.Sprintf("Row [%d]: The attachment URL [%s] must use http or https.", index+2, cleanURL))
- } else {
- if err := validateAttachmentURL(ctx, v.cache, cleanURL); err != nil {
- result.Add("attachments", fmt.Sprintf("Row [%d]: The attachment URL [%s] failed validation: %s", index+2, cleanURL, err.Error()))
- }
}
}
}
+ }
if _, err := phonenumbers.Parse(message.FromPhoneNumber, phonenumbers.UNKNOWN_REGION); err != nil {
result.Add("document", fmt.Sprintf("Row [%d]: The FromPhoneNumber [%s] is not a valid E.164 phone number", index+2, message.FromPhoneNumber))
From 4df5ba425af133359394331f3af16ba45776a427 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Sun, 22 Mar 2026 14:36:36 +0200
Subject: [PATCH 168/215] Apply suggestion from @Copilot
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---
.../java/com/httpsms/FirebaseMessagingService.kt | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/android/app/src/main/java/com/httpsms/FirebaseMessagingService.kt b/android/app/src/main/java/com/httpsms/FirebaseMessagingService.kt
index 03c99bb4..294eb18e 100644
--- a/android/app/src/main/java/com/httpsms/FirebaseMessagingService.kt
+++ b/android/app/src/main/java/com/httpsms/FirebaseMessagingService.kt
@@ -270,11 +270,27 @@ class MyFirebaseMessagingService : FirebaseMessagingService() {
handleFailed(applicationContext, message.id, e.message ?: "Internal error while building or sending MMS.")
return Result.failure()
} finally {
+ // Clean up any downloaded temporary files
downloadedFiles.forEach { file ->
if (file.exists()) {
file.delete()
}
}
+
+ // Also clean up the MMS PDU file to avoid cache buildup in cases where
+ // sendMultimediaMessage fails before the sent broadcast is delivered.
+ try {
+ val pduFile = java.io.File(applicationContext.cacheDir, "pdu_${message.id}.dat")
+ if (pduFile.exists()) {
+ val deleted = pduFile.delete()
+ if (!deleted) {
+ Timber.w("Failed to delete MMS PDU file for message ID [${message.id}] at [${pduFile.absolutePath}]")
+ }
+ }
+ } catch (cleanupException: Exception) {
+ // Best-effort cleanup; log but do not change the original result.
+ Timber.w(cleanupException, "Error while cleaning up MMS PDU file for message ID [${message.id}]")
+ }
}
}
From 1d00212a801a56745b9db18a27a44145e97e6534 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Sun, 22 Mar 2026 14:37:32 +0200
Subject: [PATCH 169/215] Apply suggestion from @Copilot
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---
.../java/com/httpsms/HttpSmsApiService.kt | 57 ++++++++++---------
1 file changed, 30 insertions(+), 27 deletions(-)
diff --git a/android/app/src/main/java/com/httpsms/HttpSmsApiService.kt b/android/app/src/main/java/com/httpsms/HttpSmsApiService.kt
index 9581cedc..b252d1fd 100644
--- a/android/app/src/main/java/com/httpsms/HttpSmsApiService.kt
+++ b/android/app/src/main/java/com/httpsms/HttpSmsApiService.kt
@@ -188,37 +188,40 @@ class HttpSmsApiService(private val apiKey: String, private val baseURL: URI) {
val request = Request.Builder().url(urlString).build()
try {
- val response = client.newCall(request).execute()
- if (!response.isSuccessful) {
- Timber.e("Failed to download attachment: ${response.code}")
- response.close()
- return null
- }
+ client.newCall(request).execute().use { response ->
+ if (!response.isSuccessful) {
+ Timber.e("Failed to download attachment: ${response.code}")
+ return null
+ }
- val maxSizeBytes = 1.5 * 1024 * 1024 // most (modern?) carriers have a 2MB limit, so targetting 1.5MB should be safe
- val contentLength = response.body?.contentLength() ?: -1L
- if (contentLength > maxSizeBytes) {
- Timber.e("Attachment is too large ($contentLength bytes).")
- response.close()
- return null
- }
+ val body = response.body
+ if (body == null) {
+ Timber.e("Failed to download attachment: response body is null")
+ return null
+ }
- val mmsDir = File(context.cacheDir, "mms_attachments")
- if (!mmsDir.exists()) {
- mmsDir.mkdirs()
- }
+ val maxSizeBytes = 1.5 * 1024 * 1024 // most (modern?) carriers have a 2MB limit, so targetting 1.5MB should be safe
+ val contentLength = body.contentLength()
+ if (contentLength > maxSizeBytes) {
+ Timber.e("Attachment is too large ($contentLength bytes).")
+ return null
+ }
- val tempFile = File(mmsDir, "mms_${messageId}_$attachmentIndex")
- val inputStream = response.body?.byteStream()
- val outputStream = FileOutputStream(tempFile)
-
- inputStream?.copyToWithLimit(outputStream, maxSizeBytes.toLong())
-
- outputStream.close()
- inputStream?.close()
- response.close()
+ val mmsDir = File(context.cacheDir, "mms_attachments")
+ if (!mmsDir.exists()) {
+ mmsDir.mkdirs()
+ }
+
+ val tempFile = File(mmsDir, "mms_${messageId}_$attachmentIndex")
+ val inputStream = body.byteStream()
+ FileOutputStream(tempFile).use { outputStream ->
+ inputStream.use { input ->
+ input.copyToWithLimit(outputStream, maxSizeBytes.toLong())
+ }
+ }
- return tempFile
+ return tempFile
+ }
} catch (e: Exception) {
Timber.e(e, "Exception while downloading attachment")
return null
From 12d6d94f52cf66a2d19243196e48a7ef582cba47 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Sun, 22 Mar 2026 14:44:23 +0200
Subject: [PATCH 170/215] Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---
api/pkg/validators/bulk_message_handler_validator.go | 9 ++++++++-
web/pages/threads/_id/index.vue | 6 +++---
2 files changed, 11 insertions(+), 4 deletions(-)
diff --git a/api/pkg/validators/bulk_message_handler_validator.go b/api/pkg/validators/bulk_message_handler_validator.go
index 23b4d48d..d640c648 100644
--- a/api/pkg/validators/bulk_message_handler_validator.go
+++ b/api/pkg/validators/bulk_message_handler_validator.go
@@ -226,7 +226,14 @@ func (v *BulkMessageHandlerValidator) validateMessages(ctx context.Context, mess
if message.AttachmentURLs != "" {
urls := strings.Split(message.AttachmentURLs, ",")
- if len(urls) > 10 {
+ validAttachmentCount := 0
+ for _, u := range urls {
+ if strings.TrimSpace(u) != "" {
+ validAttachmentCount++
+ }
+ }
+
+ if validAttachmentCount > 10 {
result.Add("document", fmt.Sprintf("Row [%d]: You cannot attach more than 10 files per message.", index+2))
}
diff --git a/web/pages/threads/_id/index.vue b/web/pages/threads/_id/index.vue
index 21ff39c7..00636a0f 100644
--- a/web/pages/threads/_id/index.vue
+++ b/web/pages/threads/_id/index.vue
@@ -174,9 +174,9 @@
+ v-if="message.attachments?.length"
+ shaped
+ >
Message Attachments
From 9827ebf2e5f6670011389487c91d76b4daa0bf34 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Sun, 22 Mar 2026 15:02:35 +0200
Subject: [PATCH 171/215] Fix ESLINT warnings
---
.../bulk_message_handler_validator.go | 8 ++---
web/models/api.ts | 2 --
web/pages/messages/index.vue | 5 +--
web/pages/phone-api-keys/index.vue | 2 +-
web/pages/settings/index.vue | 4 +--
web/pages/threads/_id/index.vue | 31 ++++++++++++-------
6 files changed, 30 insertions(+), 22 deletions(-)
diff --git a/api/pkg/validators/bulk_message_handler_validator.go b/api/pkg/validators/bulk_message_handler_validator.go
index d640c648..3fa0c35c 100644
--- a/api/pkg/validators/bulk_message_handler_validator.go
+++ b/api/pkg/validators/bulk_message_handler_validator.go
@@ -12,12 +12,12 @@ import (
"github.com/xuri/excelize/v2"
+ "github.com/NdoleStudio/httpsms/pkg/cache"
"github.com/NdoleStudio/httpsms/pkg/entities"
"github.com/NdoleStudio/httpsms/pkg/repositories"
"github.com/NdoleStudio/httpsms/pkg/requests"
"github.com/NdoleStudio/httpsms/pkg/services"
"github.com/NdoleStudio/httpsms/pkg/telemetry"
- "github.com/NdoleStudio/httpsms/pkg/cache"
"github.com/dustin/go-humanize"
"github.com/jszwec/csvutil"
"github.com/nyaruka/phonenumbers"
@@ -123,6 +123,7 @@ func (v *BulkMessageHandlerValidator) parseXlsx(ctxLogger telemetry.Logger, user
result.Add("document", fmt.Sprintf("Cannot parse the uploaded excel file with name [%s].", header.Filename))
return nil, result
}
+ defer excel.Close()
rows, err := excel.GetRows(excel.GetSheetName(0))
if err != nil {
@@ -212,14 +213,14 @@ func (v *BulkMessageHandlerValidator) parseCSV(ctxLogger telemetry.Logger, user
var messages []*requests.BulkMessage
if err := csvutil.Unmarshal(content, &messages); err != nil {
ctxLogger.Error(stacktrace.Propagate(err, fmt.Sprintf("cannot unmarshall contents [%s] into type [%T] for file [%s] and user [%s]", content, messages, header.Filename, user.ID)))
- result.Add("document", fmt.Sprintf("Cannot read the conents of the uploaded file [%s].", header.Filename))
+ result.Add("document", fmt.Sprintf("Cannot read the contents of the uploaded file [%s].", header.Filename))
return nil, result
}
return messages, url.Values{}
}
-func (v *BulkMessageHandlerValidator) validateMessages(ctx context.Context, messages []*requests.BulkMessage) url.Values {
+func (v *BulkMessageHandlerValidator) validateMessages(_ context.Context, messages []*requests.BulkMessage) url.Values {
result := url.Values{}
for index, message := range messages {
@@ -251,7 +252,6 @@ func (v *BulkMessageHandlerValidator) validateMessages(ctx context.Context, mess
}
}
}
- }
if _, err := phonenumbers.Parse(message.FromPhoneNumber, phonenumbers.UNKNOWN_REGION); err != nil {
result.Add("document", fmt.Sprintf("Row [%d]: The FromPhoneNumber [%s] is not a valid E.164 phone number", index+2, message.FromPhoneNumber))
diff --git a/web/models/api.ts b/web/models/api.ts
index 029b5f01..660e7493 100644
--- a/web/models/api.ts
+++ b/web/models/api.ts
@@ -1,5 +1,3 @@
-/* eslint-disable */
-/* tslint:disable */
// @ts-nocheck
/*
* ---------------------------------------------------------------
diff --git a/web/pages/messages/index.vue b/web/pages/messages/index.vue
index 78a46533..eec128e8 100644
--- a/web/pages/messages/index.vue
+++ b/web/pages/messages/index.vue
@@ -106,7 +106,8 @@ export default {
let contentType = 'application/octet-stream'
const lowerUrl = cleanUrl.toLowerCase()
- if (lowerUrl.endsWith('.jpg') || lowerUrl.endsWith('.jpeg')) contentType = 'image/jpeg'
+ if (lowerUrl.endsWith('.jpg') || lowerUrl.endsWith('.jpeg'))
+ contentType = 'image/jpeg'
else if (lowerUrl.endsWith('.png')) contentType = 'image/png'
else if (lowerUrl.endsWith('.gif')) contentType = 'image/gif'
else if (lowerUrl.endsWith('.mp4')) contentType = 'video/mp4'
@@ -120,7 +121,7 @@ export default {
to: this.formPhoneNumber,
from: this.$store.getters.getOwner,
content: this.formContent,
- attachments: attachments,
+ attachments,
sim: this.simSelected.code,
})
.then(() => {
diff --git a/web/pages/phone-api-keys/index.vue b/web/pages/phone-api-keys/index.vue
index dc19e75c..e83a2d70 100644
--- a/web/pages/phone-api-keys/index.vue
+++ b/web/pages/phone-api-keys/index.vue
@@ -24,9 +24,9 @@
{
+ toCanvas(canvas, text, { errorCorrectionLevel: 'H' }, (err) => {
if (err) {
this.$store.dispatch('addNotification', {
message: 'Failed to generate API key QR code',
diff --git a/web/pages/threads/_id/index.vue b/web/pages/threads/_id/index.vue
index 00636a0f..4ea6504d 100644
--- a/web/pages/threads/_id/index.vue
+++ b/web/pages/threads/_id/index.vue
@@ -173,11 +173,8 @@
>
-
- Message Attachments
+
+ Message Attachments
-
-
+
+
-
-
-
-
Unsupported file type
+
+
+
+
+ Unsupported file type
+
From 8f17198607c00cf80c7ef8e2063a885c679bb26c Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Sun, 22 Mar 2026 15:28:55 +0200
Subject: [PATCH 172/215] MCP related fixes
---
.github/copilot-instructions.md | 141 +++++++++++++++++++++++
.mcp.json | 17 +++
android/app/build.gradle | 22 ++--
android/app/src/main/AndroidManifest.xml | 1 +
api/pkg/handlers/user_handler.go | 13 ++-
api/pkg/requests/message_send_request.go | 8 +-
6 files changed, 182 insertions(+), 20 deletions(-)
create mode 100644 .github/copilot-instructions.md
create mode 100644 .mcp.json
diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md
new file mode 100644
index 00000000..dd234131
--- /dev/null
+++ b/.github/copilot-instructions.md
@@ -0,0 +1,141 @@
+# Copilot Instructions for httpSMS
+
+httpSMS is a service that turns an Android phone into an SMS gateway via an HTTP API. This is a monorepo with three components:
+
+- **`api/`** — Go backend (Fiber, GORM, PostgreSQL)
+- **`web/`** — Nuxt 2 frontend (Vue 2, Vuetify 2, TypeScript)
+- **`android/`** — Native Android app (Kotlin)
+
+## Build, Test, and Lint Commands
+
+### API (Go)
+
+```bash
+cd api
+
+# Development with hot-reload
+air
+
+# Build
+go build -o ./tmp/main.exe .
+
+# Run tests
+go test ./...
+
+# Run a single test
+go test ./pkg/services/ -run TestMessageService
+
+# Generate Swagger docs (required after changing API annotations)
+swag init --requiredByDefault --parseDependency --parseInternal
+
+# Pre-commit hooks run: go-fumpt, go-imports, go-lint, go-mod-tidy
+```
+
+### Web (Nuxt/Vue)
+
+```bash
+cd web
+
+# Install dependencies
+pnpm install
+
+# Development server (port 3000)
+pnpm dev
+
+# Lint (eslint + stylelint + prettier)
+pnpm lint
+
+# Auto-fix lint issues
+pnpm lintfix
+
+# Run tests (Jest)
+pnpm test
+
+# Static site generation (production build)
+pnpm run generate
+
+# Regenerate TypeScript API models from Swagger
+pnpm api:models
+```
+
+### Android (Kotlin)
+
+```bash
+cd android
+
+# Build
+./gradlew build
+
+# Debug APK
+./gradlew assembleDebug
+
+# Release APK
+./gradlew assembleRelease
+```
+
+### Docker (full stack)
+
+```bash
+# Start all services (PostgreSQL, Redis, API, Web)
+docker compose up --build
+# API at localhost:8000, Web at localhost:3000
+```
+
+## Architecture
+
+### API — Layered Architecture with Event-Driven Processing
+
+The API uses a **DI container** (`pkg/di/container.go`) that lazily initializes all services as singletons. The layered architecture flows as:
+
+**Handlers → Services → Repositories → GORM/PostgreSQL**
+
+- **Handlers** (`pkg/handlers/`) — Fiber HTTP handlers. Each has a `RegisterRoutes()` method and embeds a base `handler` struct with standardized response methods (`responseBadRequest`, `responseNotFound`, etc.).
+- **Services** (`pkg/services/`) — Business logic. Orchestrate repositories and dispatch events.
+- **Repositories** (`pkg/repositories/`) — Data access via GORM. Interfaces defined alongside GORM implementations (prefixed `gorm*`).
+- **Validators** (`pkg/validators/`) — One validator per handler, return `url.Values` for field errors.
+- **Entities** (`pkg/entities/`) — Domain models, auto-migrated by GORM.
+
+**Event system**: Uses CloudEvents spec (`cloudevents/sdk-go`). Events defined in `pkg/events/` (31 event types). Listeners in `pkg/listeners/` process events either synchronously or via Google Cloud Tasks queue (emulator mode for local dev).
+
+**Entry point**: `main.go` loads `.env` in local mode, creates the DI container, and starts Fiber on `APP_PORT`.
+
+### Web — Nuxt 2 Static SPA
+
+- **State management**: Single Vuex store (`store/index.ts`) — actions make API calls via Axios, mutations update state, getters expose computed values.
+- **Components**: Use `vue-property-decorator` class syntax with `@Component`, `@Prop`, `@Watch` decorators.
+- **API client**: Axios configured in `plugins/axios.ts` with Firebase bearer token auth and `x-api-key` header support.
+- **API models**: TypeScript types in `models/` are auto-generated from the Swagger spec via `swagger-typescript-api`.
+- **Auth**: Firebase Authentication (Email/Password, Google, GitHub) with `auth` and `guest` middleware for route guards.
+- **Real-time**: Pusher.js for live message updates.
+
+### Android — Task-Oriented, Event-Driven
+
+- **No MVVM/Clean Architecture** — uses a flat package structure with Activities, Services, BroadcastReceivers, and WorkManager tasks.
+- **FCM integration**: `MyFirebaseMessagingService` receives push notifications → schedules `SendSmsWorker` via WorkManager → fetches message from API → sends SMS.
+- **Dual SIM support**: Independent settings per SIM via `Settings` singleton (SharedPreferences).
+- **HTTP client**: OkHttp with `x-api-key` authentication against the API.
+- **Encryption**: AES-256/CFB with SHA-256 key derivation (`Encrypter.kt`).
+
+## Key Conventions
+
+### API (Go)
+
+- **Error handling**: Use `github.com/palantir/stacktrace` — wrap errors with `stacktrace.Propagate(err, "context")` or `stacktrace.PropagateWithCode()`. Never return bare errors.
+- **Database queries**: Always use GORM query builder with context propagation (`repository.db.WithContext(ctx)`). No raw SQL.
+- **Route registration**: Each handler defines `RegisterRoutes()` called from the DI container. Routes follow REST conventions under `/v1/`.
+- **Middleware chain**: HTTP Logger → OpenTelemetry → CORS → Request Logger → Bearer Auth → API Key Auth.
+- **Observability**: All layers are instrumented with OpenTelemetry (Fiber, GORM, Redis). Pass `logger` and `tracer` to constructors.
+- **Code formatting**: `go-fumpt` (not `gofmt`), enforced via pre-commit hooks.
+
+### Web (Vue/TypeScript)
+
+- **Formatting**: No semicolons, single quotes, 2-space indentation (Prettier + ESLint).
+- **Component style**: Class-based with `vue-property-decorator`, not Options API (though some pages use `Vue.extend()`).
+- **Store pattern**: Actions handle async API calls and commit mutations. Access store from components via `this.$store`.
+
+### Android (Kotlin)
+
+- **API calls**: Use `HttpSmsApiService` singleton (static `create()` factory). OkHttp client with `x-api-key` header.
+- **Background work**: Use WorkManager for tasks that must survive process death. Direct `Thread { }` for lightweight background ops.
+- **State**: `Settings` object (SharedPreferences singleton) for all persistent state.
+- **Phone number formatting**: Use `libphonenumber` for E.164 format validation.
diff --git a/.mcp.json b/.mcp.json
new file mode 100644
index 00000000..da367af6
--- /dev/null
+++ b/.mcp.json
@@ -0,0 +1,17 @@
+{
+ "mcpServers": {
+ "playwright": {
+ "type": "stdio",
+ "command": "npx",
+ "args": [
+ "-y",
+ "@modelcontextprotocol/server-playwright",
+ "--base-url",
+ "http://localhost:3000"
+ ],
+ "env": {
+ "BROWSER": "chromium"
+ }
+ }
+ }
+}
diff --git a/android/app/build.gradle b/android/app/build.gradle
index 4436e272..b64e834f 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -10,7 +10,7 @@ def gitHash = providers.exec {
}.standardOutput.asText.map { it.trim() }.getOrElse("unknown")
android {
- compileSdk 36
+ compileSdk = 36
defaultConfig {
applicationId "com.httpsms"
@@ -46,24 +46,24 @@ android {
}
dependencies {
- implementation platform('com.google.firebase:firebase-bom:33.13.0')
+ implementation platform('com.google.firebase:firebase-bom:34.11.0')
implementation 'com.journeyapps:zxing-android-embedded:4.3.0'
implementation 'com.google.firebase:firebase-analytics-ktx'
implementation 'com.google.firebase:firebase-messaging-ktx'
- implementation 'com.squareup.okhttp3:okhttp:4.12.0'
+ implementation 'com.squareup.okhttp3:okhttp:5.3.2'
implementation 'com.jakewharton.timber:timber:5.0.1'
implementation 'androidx.preference:preference-ktx:1.2.1'
- implementation 'androidx.work:work-runtime-ktx:2.10.1'
- implementation 'androidx.core:core-ktx:1.16.0'
+ implementation 'androidx.work:work-runtime-ktx:2.11.1'
+ implementation 'androidx.core:core-ktx:1.18.0'
implementation "androidx.cardview:cardview:1.0.0"
implementation 'com.beust:klaxon:5.6'
- implementation 'androidx.appcompat:appcompat:1.7.0'
- implementation 'org.apache.commons:commons-text:1.12.0'
- implementation 'com.google.android.material:material:1.12.0'
+ implementation 'androidx.appcompat:appcompat:1.7.1'
+ implementation 'org.apache.commons:commons-text:1.15.0'
+ implementation 'com.google.android.material:material:1.13.0'
implementation 'androidx.constraintlayout:constraintlayout:2.2.1'
- implementation 'com.googlecode.libphonenumber:libphonenumber:9.0.4'
+ implementation 'com.googlecode.libphonenumber:libphonenumber:9.0.26'
implementation 'com.klinkerapps:android-smsmms:5.2.6'
testImplementation 'junit:junit:4.13.2'
- androidTestImplementation 'androidx.test.ext:junit:1.2.1'
- androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1'
+ androidTestImplementation 'androidx.test.ext:junit:1.3.0'
+ androidTestImplementation 'androidx.test.espresso:espresso-core:3.7.0'
}
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 409b7140..54fa35c8 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -12,6 +12,7 @@
+
diff --git a/api/pkg/handlers/user_handler.go b/api/pkg/handlers/user_handler.go
index 2d3895da..d63046dc 100644
--- a/api/pkg/handlers/user_handler.go
+++ b/api/pkg/handlers/user_handler.go
@@ -307,12 +307,13 @@ func (h *UserHandler) subscriptionPayments(c *fiber.Ctx) error {
// @Tags Users
// @Accept json
// @Produce application/pdf
-// @Param payload body requests.UserPaymentInvoice true "Generate subscription payment invoice parameters"
-// @Success 200 {file} file
-// @Failure 400 {object} responses.BadRequest
-// @Failure 401 {object} responses.Unauthorized
-// @Failure 422 {object} responses.UnprocessableEntity
-// @Failure 500 {object} responses.InternalServerError
+// @Param payload body requests.UserPaymentInvoice true "Generate subscription payment invoice parameters"
+// @Param subscriptionInvoiceID path string true "ID of the subscription invoice to generate the PDF for"
+// @Success 200 {file} file
+// @Failure 400 {object} responses.BadRequest
+// @Failure 401 {object} responses.Unauthorized
+// @Failure 422 {object} responses.UnprocessableEntity
+// @Failure 500 {object} responses.InternalServerError
// @Router /users/subscription/invoices/{subscriptionInvoiceID} [post]
func (h *UserHandler) subscriptionInvoice(c *fiber.Ctx) error {
ctx, span, ctxLogger := h.tracer.StartFromFiberCtxWithLogger(c, h.logger)
diff --git a/api/pkg/requests/message_send_request.go b/api/pkg/requests/message_send_request.go
index 1a1d6830..d40f0f88 100644
--- a/api/pkg/requests/message_send_request.go
+++ b/api/pkg/requests/message_send_request.go
@@ -14,9 +14,11 @@ import (
// MessageSend is the payload for sending and SMS message
type MessageSend struct {
request
- From string `json:"from" example:"+18005550199"`
- To string `json:"to" example:"+18005550100"`
- Content string `json:"content" example:"This is a sample text message"`
+ From string `json:"from" example:"+18005550199"`
+ To string `json:"to" example:"+18005550100"`
+ Content string `json:"content" example:"This is a sample text message"`
+
+ // Attachments are optional. When you provide a list of attachments, the message will be sent out as an MMS
Attachments []entities.MessageAttachment `json:"attachments" validate:"optional"`
// Encrypted is an optional parameter used to determine if the content is end-to-end encrypted. Make sure to set the encryption key on the httpSMS mobile app
From 6bf738402461e4869aa0670a03ebc8f1e1bfa701 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Sun, 22 Mar 2026 16:04:43 +0200
Subject: [PATCH 173/215] update graddle
---
android/app/build.gradle | 69 -------------------
android/app/build.gradle.kts | 65 +++++++++++++++++
.../src/main/java/com/httpsms/MainActivity.kt | 3 +-
android/build.gradle | 27 --------
android/build.gradle.kts | 19 +++++
android/gradle.properties | 2 -
.../{settings.gradle => settings.gradle.kts} | 2 +-
7 files changed, 86 insertions(+), 101 deletions(-)
delete mode 100644 android/app/build.gradle
create mode 100644 android/app/build.gradle.kts
delete mode 100644 android/build.gradle
create mode 100644 android/build.gradle.kts
rename android/{settings.gradle => settings.gradle.kts} (95%)
diff --git a/android/app/build.gradle b/android/app/build.gradle
deleted file mode 100644
index b64e834f..00000000
--- a/android/app/build.gradle
+++ /dev/null
@@ -1,69 +0,0 @@
-plugins {
- id 'com.android.application'
- id 'org.jetbrains.kotlin.android'
- id 'com.google.gms.google-services'
- id "io.sentry.android.gradle" version "6.2.0"
-}
-
-def gitHash = providers.exec {
- commandLine 'git', 'rev-parse', '--short', 'HEAD'
-}.standardOutput.asText.map { it.trim() }.getOrElse("unknown")
-
-android {
- compileSdk = 36
-
- defaultConfig {
- applicationId "com.httpsms"
- minSdk 28
- targetSdk 35
- versionCode 1
- versionName gitHash
- testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
- }
-
- buildTypes {
- debug {
- manifestPlaceholders["sentryEnvironment"] = "development"
- }
- release {
- manifestPlaceholders["sentryEnvironment"] = "production"
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
- }
- }
- compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
- }
- kotlinOptions {
- jvmTarget = '1.8'
- }
- namespace 'com.httpsms'
-
- buildFeatures {
- buildConfig = true
- }
-}
-
-dependencies {
- implementation platform('com.google.firebase:firebase-bom:34.11.0')
- implementation 'com.journeyapps:zxing-android-embedded:4.3.0'
- implementation 'com.google.firebase:firebase-analytics-ktx'
- implementation 'com.google.firebase:firebase-messaging-ktx'
- implementation 'com.squareup.okhttp3:okhttp:5.3.2'
- implementation 'com.jakewharton.timber:timber:5.0.1'
- implementation 'androidx.preference:preference-ktx:1.2.1'
- implementation 'androidx.work:work-runtime-ktx:2.11.1'
- implementation 'androidx.core:core-ktx:1.18.0'
- implementation "androidx.cardview:cardview:1.0.0"
- implementation 'com.beust:klaxon:5.6'
- implementation 'androidx.appcompat:appcompat:1.7.1'
- implementation 'org.apache.commons:commons-text:1.15.0'
- implementation 'com.google.android.material:material:1.13.0'
- implementation 'androidx.constraintlayout:constraintlayout:2.2.1'
- implementation 'com.googlecode.libphonenumber:libphonenumber:9.0.26'
- implementation 'com.klinkerapps:android-smsmms:5.2.6'
- testImplementation 'junit:junit:4.13.2'
- androidTestImplementation 'androidx.test.ext:junit:1.3.0'
- androidTestImplementation 'androidx.test.espresso:espresso-core:3.7.0'
-}
diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts
new file mode 100644
index 00000000..2069551b
--- /dev/null
+++ b/android/app/build.gradle.kts
@@ -0,0 +1,65 @@
+plugins {
+ id("com.android.application")
+ id("com.google.gms.google-services")
+ id("io.sentry.android.gradle") version "6.2.0"
+}
+
+val gitHash = providers.exec {
+ commandLine("git", "rev-parse", "--short", "HEAD")
+}.standardOutput.asText.map { it.trim() }
+
+android {
+ compileSdk = 36
+
+ defaultConfig {
+ applicationId = "com.httpsms"
+ minSdk = 28
+ targetSdk = 35
+ versionCode = 1
+ versionName = gitHash.getOrElse("unknown")
+ testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
+ }
+
+ buildTypes {
+ getByName("debug") {
+ manifestPlaceholders["sentryEnvironment"] = "development"
+ }
+ getByName("release") {
+ manifestPlaceholders["sentryEnvironment"] = "production"
+ isMinifyEnabled = false
+ proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
+ }
+ }
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
+ }
+ namespace = "com.httpsms"
+
+ buildFeatures {
+ buildConfig = true
+ }
+}
+
+dependencies {
+ implementation(platform("com.google.firebase:firebase-bom:34.11.0"))
+ implementation("com.journeyapps:zxing-android-embedded:4.3.0")
+ implementation("com.google.firebase:firebase-analytics")
+ implementation("com.google.firebase:firebase-messaging")
+ implementation("com.squareup.okhttp3:okhttp:5.3.2")
+ implementation("com.jakewharton.timber:timber:5.0.1")
+ implementation("androidx.preference:preference-ktx:1.2.1")
+ implementation("androidx.work:work-runtime-ktx:2.11.1")
+ implementation("androidx.core:core-ktx:1.18.0")
+ implementation("androidx.cardview:cardview:1.0.0")
+ implementation("com.beust:klaxon:5.6")
+ implementation("androidx.appcompat:appcompat:1.7.1")
+ implementation("org.apache.commons:commons-text:1.15.0")
+ implementation("com.google.android.material:material:1.13.0")
+ implementation("androidx.constraintlayout:constraintlayout:2.2.1")
+ implementation("com.googlecode.libphonenumber:libphonenumber:9.0.26")
+ implementation("com.klinkerapps:android-smsmms:5.2.6")
+ testImplementation("junit:junit:4.13.2")
+ androidTestImplementation("androidx.test.ext:junit:1.3.0")
+ androidTestImplementation("androidx.test.espresso:espresso-core:3.7.0")
+}
diff --git a/android/app/src/main/java/com/httpsms/MainActivity.kt b/android/app/src/main/java/com/httpsms/MainActivity.kt
index 5f76ada8..94332f6f 100644
--- a/android/app/src/main/java/com/httpsms/MainActivity.kt
+++ b/android/app/src/main/java/com/httpsms/MainActivity.kt
@@ -28,7 +28,6 @@ import com.google.android.material.card.MaterialCardView
import com.google.android.material.progressindicator.LinearProgressIndicator
import com.httpsms.services.StickyNotificationService
import com.httpsms.worker.HeartbeatWorker
-import okhttp3.internal.format
import timber.log.Timber
import java.time.Instant
import java.time.ZoneId
@@ -79,7 +78,7 @@ class MainActivity : AppCompatActivity() {
private fun setVersion() {
val appVersionView = findViewById(R.id.mainAppVersion)
- appVersionView.text = format(getString(R.string.app_version), BuildConfig.VERSION_NAME)
+ appVersionView.text = getString(R.string.app_version, BuildConfig.VERSION_NAME)
}
private fun setCardContent(context: Context) {
diff --git a/android/build.gradle b/android/build.gradle
deleted file mode 100644
index eeed1cc3..00000000
--- a/android/build.gradle
+++ /dev/null
@@ -1,27 +0,0 @@
-// Top-level build file where you can add configuration options common to all sub-projects/modules.
-buildscript {
- ext {
- kotlin_version = '2.2.10'
- }
- repositories {
- // Check that you have the following line (if not, add it):
- google()
- mavenCentral() // Google's Maven repository
-
- }
- dependencies {
- // Add this line
- classpath 'com.google.gms:google-services:4.4.2'
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
- }
-}
-
-plugins {
- id 'com.android.application' version '9.1.0' apply false
- id 'com.android.library' version '9.1.0' apply false
- id 'org.jetbrains.kotlin.android' version '2.3.20' apply false
-}
-
-tasks.register('clean', Delete) {
- delete rootProject.buildDir
-}
diff --git a/android/build.gradle.kts b/android/build.gradle.kts
new file mode 100644
index 00000000..095d0884
--- /dev/null
+++ b/android/build.gradle.kts
@@ -0,0 +1,19 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+buildscript {
+ repositories {
+ google()
+ mavenCentral()
+ }
+ dependencies {
+ classpath("com.google.gms:google-services:4.4.2")
+ }
+}
+
+plugins {
+ id("com.android.application") version "9.1.0" apply false
+ id("com.android.library") version "9.1.0" apply false
+}
+
+tasks.register("clean") {
+ delete(rootProject.layout.buildDirectory)
+}
diff --git a/android/gradle.properties b/android/gradle.properties
index 8665be9a..1f124546 100644
--- a/android/gradle.properties
+++ b/android/gradle.properties
@@ -30,5 +30,3 @@ android.uniquePackageNames=false
android.dependency.useConstraints=true
android.r8.strictFullModeForKeepRules=false
android.r8.optimizedResourceShrinking=false
-android.builtInKotlin=false
-android.newDsl=false
diff --git a/android/settings.gradle b/android/settings.gradle.kts
similarity index 95%
rename from android/settings.gradle
rename to android/settings.gradle.kts
index baf72e29..75be430a 100644
--- a/android/settings.gradle
+++ b/android/settings.gradle.kts
@@ -13,4 +13,4 @@ dependencyResolutionManagement {
}
}
rootProject.name = "httpSMS"
-include ':app'
+include(":app")
From bd8133c2c2c372aec448bec16e443ed267a0a523 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Sun, 22 Mar 2026 22:38:44 +0200
Subject: [PATCH 174/215] Fix target api level
---
android/app/build.gradle.kts | 2 +-
android/app/src/main/AndroidManifest.xml | 2 +-
web/pages/messages/index.vue | 8 +++++++-
3 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts
index 2069551b..15857e70 100644
--- a/android/app/build.gradle.kts
+++ b/android/app/build.gradle.kts
@@ -14,7 +14,7 @@ android {
defaultConfig {
applicationId = "com.httpsms"
minSdk = 28
- targetSdk = 35
+ targetSdk = 36
versionCode = 1
versionName = gitHash.getOrElse("unknown")
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 54fa35c8..24c3eb18 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -31,7 +31,7 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.HttpSMS"
- tools:targetApi="31">
+ tools:targetApi="36">
Date: Sun, 22 Mar 2026 23:39:10 +0200
Subject: [PATCH 175/215] Fix bugs with postgresql. Closes #837, Closes #838
---
api/Dockerfile | 2 +-
api/pkg/di/container.go | 18 +++++++++++-------
docker-compose.yml | 4 +---
web/Dockerfile | 2 +-
4 files changed, 14 insertions(+), 12 deletions(-)
diff --git a/api/Dockerfile b/api/Dockerfile
index 34d82403..8e0206a2 100644
--- a/api/Dockerfile
+++ b/api/Dockerfile
@@ -1,4 +1,4 @@
-FROM golang as builder
+FROM golang AS builder
ARG GIT_COMMIT
ENV GIT_COMMIT=$GIT_COMMIT
diff --git a/api/pkg/di/container.go b/api/pkg/di/container.go
index 02d37738..14fc9ea4 100644
--- a/api/pkg/di/container.go
+++ b/api/pkg/di/container.go
@@ -231,13 +231,13 @@ func (container *Container) GormLogger() gormLogger.Interface {
}
func (container *Container) connect(dsn string, config *gorm.Config) (db *gorm.DB, err error) {
- if strings.HasPrefix(dsn, "postgres://") {
- return gorm.Open(postgres.Open(dsn), config)
+ if strings.HasPrefix(dsn, "libsql://") {
+ return gorm.Open(sqlite.New(sqlite.Config{
+ DriverName: "libsql",
+ DSN: dsn,
+ }), config)
}
- return gorm.Open(sqlite.New(sqlite.Config{
- DriverName: "libsql",
- DSN: dsn,
- }), config)
+ return gorm.Open(postgres.Open(dsn), config)
}
// DedicatedDB creates an instance of gorm.DB if it has not been created already
@@ -339,11 +339,15 @@ func (container *Container) DB() (db *gorm.DB) {
}
container.logger.Debug(fmt.Sprintf("Running migrations for %T", db))
+
// This prevents a bug in the Gorm AutoMigrate where it tries to delete this no existent constraints
- db.Exec(`
+ // This is only applicable to PROD on cockroachDB
+ if os.Getenv("DATABASE_MIGRATION_CONSTRAINT_FIX") == "1" {
+ db.Exec(`
ALTER TABLE users ADD CONSTRAINT IF NOT EXISTS uni_users_api_key CHECK (api_key IS NOT NULL);
ALTER TABLE phone_api_keys ADD CONSTRAINT IF NOT EXISTS uni_phone_api_keys_api_key CHECK (api_key IS NOT NULL);
ALTER TABLE discords ADD CONSTRAINT IF NOT EXISTS uni_discords_server_id CHECK (server_id IS NOT NULL);`)
+ }
if err = db.AutoMigrate(&entities.Message{}); err != nil {
container.logger.Fatal(stacktrace.Propagate(err, fmt.Sprintf("cannot migrate %T", &entities.Message{})))
diff --git a/docker-compose.yml b/docker-compose.yml
index 16e885e9..ef63287d 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,5 +1,3 @@
-version: "3.8"
-
services:
postgres:
image: postgres:alpine
@@ -13,7 +11,7 @@ services:
- "5435:5432"
restart: on-failure
healthcheck:
- test: ["CMD-SHELL", "pg_isready", "-U", "dbusername", "-d", "httpsms"]
+ test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 30s
timeout: 60s
retries: 5
diff --git a/web/Dockerfile b/web/Dockerfile
index 169f78cc..813399ea 100644
--- a/web/Dockerfile
+++ b/web/Dockerfile
@@ -1,5 +1,5 @@
# build stage
-FROM node:lts-alpine as build
+FROM node:lts-alpine AS build
WORKDIR /app
From 50fd7aea8c28e51afbd3df1ad8c619b16ff2e508 Mon Sep 17 00:00:00 2001
From: Acho Arnold
Date: Mon, 23 Mar 2026 00:00:00 +0200
Subject: [PATCH 176/215] Fix the template
---
web/static/templates/httpsms-bulk.csv | 4 ++--
web/static/templates/httpsms-bulk.xlsx | Bin 8246 -> 11244 bytes
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/web/static/templates/httpsms-bulk.csv b/web/static/templates/httpsms-bulk.csv
index 715ecab4..c85d6091 100644
--- a/web/static/templates/httpsms-bulk.csv
+++ b/web/static/templates/httpsms-bulk.csv
@@ -1,3 +1,3 @@
FromPhoneNumber,ToPhoneNumber,Content,SendTime(optional),AttachmentURLs(optional)
-+18005550199,+18005550100,This is a sample text message1,,http://thisisasample.com/attachment.png
-+18005550199,+18005550100,This is a sample text message2,2023-11-11T02:10:01,
+18005550199,18005550100,This is a sample text message1,,https://placehold.co/600x400/png
+18005550199,18005550100,This is a sample text message2,2023-11-11T02:10:01,
diff --git a/web/static/templates/httpsms-bulk.xlsx b/web/static/templates/httpsms-bulk.xlsx
index 20f2b543d704e8dfcb2836fbb5002e850cfda523..268a4fafcc0d274cc00ee3487990c6d7be840a7d 100644
GIT binary patch
literal 11244
zcmeHNbySpHw;w`fRJvr41|=OtN>WNfjUq#LAj7zsf@LJ*Yh9O)jq8>B%x1*D{#
zJNkyNyxzOky=&d?`{VtdwVwUV>~r?-Ip;ik?-P5=LohIj0G9z+004jnpt~Mxtc3;u
zgkS;yga9n`r(#x?b_SMq+RDz)4Qw^(T~APVpHLnGYai
zViKVjbFrUVRPm>p%dcmtXWVZctDAnTI*HHQp4pE#*Go8HYQp5IwLQlsjTu1eI!@xC
zl`2mIRbtXrEVns&2dTDYEW0=OOb>mM-6y09XQF%Raz!-{r7S0?Ak%**OT9V7jHSj+
z!_B3JF(_b1{s_rUY^=@pH12^1jc4BoK;A5%h$NfCvIo{EOq~3vW3!%m;+SEE@Mhx_
zxjr&3I7I*P4O$D<>C~1uak=|E%%1M)t!-tzwQ_5EH{C4Ldaul5N*tUM?cpyYw`)c5
z+G=U&VZLkAt;_tbs~;DhdaZwrScY?)T?PQo&oKbP;UK!AKAFX4xl`x(7LEgQ7}n
z**e}@@0;Z5#@X=EI&15j
z*KUhP*ASk%u|1AyRix!4IN<1!Y+*>)g{v2Fe(i{LZsY+rAX+!uJOijQCQ&og-;Kl}
zT?Ic8WguiI6T(G}jFUOo(aOe5*UHN5+q{*cJob2w9S^2$a$dLPDmBiJ&*Z696z-r<
z%(_VcEDsuk@;VGT7~{`QImU3m>?0*fYAiJg?&*w)EZml*>80aQH4cAfL!i@0+#e~A
zz??dXyo~YsLo#!+B1_!#ZOgBRo5!Vv#oV~pvZ?R@jM3BMu1S!b+Jb?!
z1e_8>;!l0gqef$F)mrn2C93igL}%DU&4oM@-$CjQpoLk}?G_@}-wmL_q67N4jV~Qz
zX^3=*sa$?U%J6{In`k}ra#O~$ujZ*miPwOZR#K!E*DD1Nq%g%0<-kXhYQ&yo7Q211
z0J|~<*u1cxs3?wT-uG5Acw2(l|a
z57jpmriPq2uxN^RZ26N2DG|^~XGiPTe`T$MjjV79^RlZrKLG-VhD>S(n`WMaKbL!8
z&!36%SrXa1rG#T-u4TYgRJryThpBaUqR+FvXXN>*X`Wws*shDrvt6-KCX1X_h?#_L
zvRARobg))=B|&mI*ba*k9EnQW_9b~*hRac4MMjm|&=n^IQHAHx)e204cl^#jG8qUx
zqVYC_z$@ITZf({#29kX4riS)33)4^y@8B0;fLa}z_`Np6_NsJm-P-S2>v(({6pP~t
zB-6YcyH`XJ^EmDFh28D!$yYnKDLCBGj2?jvqg3xqF-(fxF2i^t#BrJw-7K0^Mli|}
z_}O?L)7_nivxIab&&s;gGj|OkenMig?%lov(x9ezzLGgw@1ps1U3}374_Ycb5`Q|a
z8;&ud%DL$)e3k{{szj^(?>hvEo02*pR
zhC=ygUmp}@A&u;KRoBjZ*&U-Di1A15z_hC>UvRP7ikQZ3(cE+2nIdOKYC?w~U<@lC
z=Z&rwhkY)bSq#G6I+hH70!$Y|^9}w>R$bd&7+AV%*_57=mk0?~SH2+DuHi)45|#^v
zwz9?%@h%=PGLZQur_qYbC}wGq-aNZz>cE%7f0SotJ$7KrKQwSOoj{R
z!o005+y(EvA4
zHGX%1w#EhqcDCT}kGtPI;fIM)D{^VwE7SXcLn^H5;3gyjvm>C(i6qh&Ai~`y)K6f5
zA0hrSCAd!ae4o?a(~AI^*KVQ8Th(
z6%-ugkWPv~EUXVM8rlm^*jA5fvF-N{t{o>&bU73YRAk%PI}?!xxY!kIX!mTW^G>?U
zkwuDHO5TOI7n$K^U|Dxg!Vlbk*1$7Cq|Er#qZh`3r$!$L~oxWG8d97
z4BUlItT}@s(u3Iqsm>j_2)BA2c1>U-FXUvKrb?v}1xkqHL6Dll{G*W(9eayl;hdhw
zi*U{H^HcU%--fo?<@uTFny#rzp{H_B57@It9qipX&h>cDm>%u-1W#602Yx)yQHyuf
z){I+ww{cd9)QDYIQ{vGP;-}x4Fx;Mz-~7Cs)-C+o$~^rG3`fHi)!U5cpWD*)#snw
z&h`h7PMh43w#eO`Im?=Imr4V5HeU^j_|q+iV*XfkLAC{iGETsAWO>X{^kXBnFAa3I
zSLe4nCd$^2SAt;^#YcJ9_lq}HWa%ohd1B%2AJlAa7MHdx92$0+L{ALGbZ?lY?W|Oo
zE*?kqAHurI4&n@ABR-e3ET2?sX;qr$N4P)};YK05IwAcpkE2dER0NPu%S*`**KBIs
zwp}U?1)?e8{pynwthhafGfpd84u}OcxvKL9Y#xhzF@CrJr`_0ik%Xhtx=_`VN}(gp
zm&-fVjWvQ`e0R;+md^~cxsXbj7VRmrQLYCv-$EeSpFkz)?u1#{+KP)!@zDK-?NWdQ
zlL3D7LDy2v6VtEJ_B(T8nWJ;+tTkj)ntsbW`Qqn$2Wdn#od-DBr*mIng#(3O1>d@;
zA00)rom7e+qY7K10fo7aX)SXQu0gGw%!a3+_M?6z2t2I(e$u6CK=+b6
ztt&`(I^8Gt)2#1|nnl&Kd0cQ8xMW?MeMd*;RQQ~BXOJ%{>G5v58|0MNAZkVKe%g_e
zL+06AwJc$Sw=3s4JT!7+!jGS%oZW@vZ>d-yxK3#Zr~{srM-hhuF2l6bJW
zqm|cU`doU*&dTnk<3V%%+9Mt4v+E6_HNIL)q`lWiU?1nKKhjb33R
zd>`oxUSZ1Wexzsi_s)=h9o6`qG+1#k`pMAItk@>aO370I+v!AL^o${x#Gwh|1Orl@
zw9@hnz;=3(SbD~{nBk!b$^-*4p1RWVY`}H~kt%w|_n5?C3Hk&Bk35s4<+*_Ew?roB
z8DlWR!xHQW1|ECPO3MoZ+i#1U(laJt62DFGCK!cg(&kSVJ|AVXHZI9EhQGr=G<2?SBr^ZT9I*wD>f(%^A6
ztNpD?V}kIJ+V5psLAQSrblxZAifH9e$oMtTFVX+^%ruOmY2Q1)YUwYqR*oANzn0xur2`o<^Xa)FQkp{tprIg$qMo$rpUmaW2q*a)6T$yOm7nDNg14G{
z4`=7x4n3-Oq_o{Kz(PZ$RI35OdriK_KOz4l_CL1aUsm%&bLb$n00dFhYcpki63Bqa
z*XN4(KQjBh;XWmQVjN#U5=g%)msMYwwOPb0l-lh@@u40jNI+qM*lQ%KHDzv=jd8>jb<6<#c*%N4Dwr
z1Olq$^m4aHw#D}Z!UW|Ea{q;m8iZznAS!y9rmQM~sag5TToGB#ivLdL@xP@FN_r-y
ztg?ZrnfaVt5oyhR1JEcC?i++6K@c^)Wm8toz*I#3KaSZUuSaIeDi&yv
zk$;^lBC(lc0O|w!=P|vTHXcSKPc)ep!z;$YQR3x>s28rtv?n7wm}W^8;X+<$v?
z&k5$hF?HrfvRDWnn+x_egU7m5pC0S*b@_%h^|v*^;L%i7&afT(FFYOlh;yjrRBofDn2AJ~B1`khZ>EnLB>ao@RXoRmBDPm#NlwUKtr<*7GbfPKKODr0$
zwI)2-$vw8a;!-o7%QJj?yJKN@bluLm5UKg9Cwk3y48P_O{>v?FS0NK&0tNsOj@rf&
z{fB
z-G_${^MJ2&k`-rO^0o}O>}$lE<>bJPI$cvl)9%L~R|Vv3C{WJpw9l2FZ?_!vr*23~
zI7vafm&f60eKlHcC(k7enG?x&p9#IY$FWbC>i;C24&%nHEm|<6ucN{pj-+XY##s4~
z+pnVYAJ>dgIC6yAOwG}IT@mKcVan9XgV}ZsllNXxpkKJQakru2-lThYA>qd&E&D=wf4Yoze_j6*1Jr3t!L>N
zb(rABMsA#xtcZ!B5JsbTxdw8g3~jX_E!y^SK2=Gw@}4FT0MzV+?%5acjAXVBX>JX%)oDhCh7R1zaLV;qvvz&tsQ?3DH{ki*EN
z%tu7|O0YJp-XGIFLYJ=$iWf8Ir*SHyQXnmb23(!Fn$IfM(#K*0yh7~T3trMPf2;Ej
z)+J_}<|+uw2t*IfFs$UyY7yZy_&6u6)M@WjIP}3o5q7{AIuo3K3J2YJf_sSJI;pA(CGmWEF==mB7Wm1
z%^MYD?Zv91?8Mr&SUu^kiTyg+m%3Do>iWz?XtZZ`C65g?l7%CX7R30}!3^`57QJ>R
zQ0=B$K)*Kb(7kPn)+*`x+g2S8v-}OL60RW>oK4kZ${RgISva>WbInA_M5w;%`qd*D7pJf
z&9+DoX?}bkUfa)2K)AJdvMX_}?mm0R+iS1=5s%fhOBaW$tIVR|Q(=d~yH8|bOx0V>
zl3S|#ue>6iEI#`>AFCk9#qDz&^q&|-Xi-#r8T&VbwzYFMH?aM75LKiyWfjei=Z-REw8L1CRBI^K`-n8-
zu#zlAev@3B_XAmQYCXOJlk?;5%OGUV+K>tOSv>6XM#V<=<4Ffk*HUGkM{PteZ=-Ex
zuqwCB3rWQ1+Q9uPoAI6y>a7}y~jv@H~bcaE82QXVz_z0>~-{P)YZP2
zj3^ms=3A1+TICIEB{P}!W$a`^^cQNA`{VVFDwCqz+zo;7}dNGk+0WSp<
zJ_xU-_UX5vnUZ!(&)Cn1N@}IIh{f#I-S;F`=gQ)^jYo>e(!B)3a(t=wo~T6%@6g~)
z{f#TVg6pyFIw|*ub|Rh}%10>6L^ZQ0v&i}z0tV8a!RQ9nBF7lyokqeLx_CAsp67XE
z8A&IW^~IqrQ`>ga`X!tODbaJZK;ZwbutZeEoP{=i+eDONoMaIwz`)95%S_dn*W7*RI#HjxuSAZUp*2
zv3604c&<*CkTQDq=`1j7rb4Ot0nAXktyN39-eONOSO;Ktwf!)4tp_|PsH(ZpraE8m
z#;AlDYiUpJ`#}H3-q#~wBfOId{d|hwIVIqdD_-;cP1Hw9yYrPL83{H
zQe11#2DuI*6)VIp-<45+6A_K5Xdt#wCwcz}c2Dq*uSM!I1(tFMULwK1CaCbn@`3bWBa!V#
z8(p-ttF!eQlp9rtPD;7^bpdkkTP4i(pBOU%j(K@+l9zue3E*dXg^klJ>HW|ht-%#7?0q{l5bM5Y3A;ks#*B+6SK^%(oa^u^h9+z>m|de5(sJ>>3$o>Z=samPse|Y
zt^7D6{~lTK{#Yl2aTo9Mbj38kcX@@hgnz4{Yo;h}l@#nnNawA@(a4a-0+=fXEfh}x
z=iYW#&+7_%=~>Uzhqth!MLZr9tkODTQ>B;s8sQa_+1$FD=){EGU_C1vgWnT={u5t9DUA6W
z2r9yk=lxrRz0r@3IWJWC(g0z22qW{X;pkW+t$QnX%ISWY32?!>$Z&6L)S7E5Q|J)z
zIklIIx!@*4LOH%-DVK{DxZmvUL2c2qs$ThIK_^bDJ78u@CLSEh*!*cv%y{w8y|-f^
zdm5;J{$~ot#loeJ3ge)3=qtHl-HrotGqf;)c%4fgK$06m0409>ULezfchN=;6`H5s
zl86TmCFv87nkuxIt#h2$?U71td8J>|l*VmKrX{UyHY#IYH?ZrA-EV$%c?`!0j#
zeq^e1BtgNgOI653{XO-WsTYPC+uQG=TL>Esbfsz~bLCYNG$&w;+jY40AqO&+`mm!6!OOPWUU_+v!
zq+&E_VH)~)=B%1f;#m`CSGzkL^n@~VdM`xH(VAWg3CM2~kxR`3?v-FcUqxj^O8b@g
z6xRWBF|4xQ5BZeIvXCL#pOgjd!LU8%t>faQNASD}+LH~97%#Uxft+)(C9fT9I+t7A
zfFe55zIKCVpRQanQfh=MI27hjhu;Jf_p{Yj-mcbcl$
z^pWf0&?5KDUET9FRfxu9XsPOO;E{K{`E)C`O~s=AYCE`VLt?+Lr@?Wkzfjsebek^7
zP{tjuaSHsyBch?Rp=Q@#r$PSliT-&0A}LZH@-x8C30r>%etW({Er$P+zI9RXViL;_
z(MnWW%Y~Gdi^4zW4EzuU0Q^xM{qHjfF5+AaB>zCFy7p%y{uWlgh;nf+{{!U(=sU{A
zo&80Ci+hJ301A}f0ew=i(~N1#luCwpXb>h
wZ~(wIYB}<^S@)v&&wli;;)=KaBL2Hqm4{qHsmr%y!E1nCl;^#~^zGk&0gWB&FaQ7m
literal 8246
zcmd^E2UL_xvL;FzGKd3`ama#zT=#TzNbfgxYT*aqZBwq3+?%p9yh5o!Wzw&~Pcn1Oi7qat
zn_#ZUEl
z|2h*ixB3n{6?=a7Ono@C<|g5RT>8~xQRdLg7RR^;HZw)}cqQ6WS|^z80l|WiSYg6X
zxn8evjw;KaN)m{k(e6!l>NIwLHtn3G>cFJeY~^{Q;N2Nk4l-#>uvYTe463!orVr}r
zd@Xu7KUvPzC0xzH?NDwqRs5lnrPfqS6%QZJ!Y%|C69WSe8v{e@ubI*V;`+eN*4o)!96$D7gY-)df#e(pEDhmj(zk<+j&G$^!Djn!fcpkVFdJKCqlDje~A
z7B+R|&WT60k3W`Mh8XzZ8#1O=rtwqAxty8J3jiw^P!08
zW}{oR;WVPAK6g!oJ*|Gv7y1U`?&C(0JLv5yai52sRO+pvDq~?`VO!hD-s;@shVL7{
zWh<$s6i1KNX(PT(;Y{!P)5D_r@wPVa>fekVWBBxHW282eoLvOYJ#S2t<^>2pA14A1
zY&e|mPfmK&U*CdeA3C~Jj+`|z4riqufD=5{77IJ18zlhqjlG4F$R_UqpWXaJ%TD1<
zFrM49s6M6h8;R$ox%^TDvyV%5){n}!&3mttNKG1wgefw}uq@>wuLqc9W={1^eF#W_
z1T-MM{9OILT|NEIXQm$?h4m(M+&*9&oYpI>J