Compare commits

...

502 Commits

Author SHA1 Message Date
0e4e72429d
refactor(webapp): vue 2.7.16 (#9160) 2026-02-04 10:32:18 +00:00
a78c25a258
refactor(backend): test roles (#9157) 2026-02-03 16:00:37 +00:00
753a300c3f
refactor(backend): middleware before/after (#9128) 2026-02-03 14:20:19 +01:00
dependabot[bot]
b28cdada6d
build(deps): bump node from 25.4.0-alpine to 25.5.0-alpine in /webapp (#9147)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-31 19:36:31 +00:00
dependabot[bot]
8a04b09fd7
build(deps): bump node from 25.4.0-alpine to 25.5.0-alpine in /backend (#9148)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-31 19:10:07 +00:00
dependabot[bot]
b26a06f0ef
build(deps): bump actions/cache from 5.0.2 to 5.0.3 (#9149)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-31 18:50:29 +00:00
dependabot[bot]
e5231acd4f
build(deps): bump docker/login-action from 3.6.0 to 3.7.0 (#9150)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-31 18:24:21 +00:00
dependabot[bot]
8e8bab6f9d
build(deps): bump @aws-sdk/client-s3 and @aws-sdk/lib-storage in /backend (#9151)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-31 18:04:36 +00:00
dependabot[bot]
71228260e5
build(deps-dev): bump @types/node from 25.0.10 to 25.1.0 in /backend (#9152)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-31 17:41:59 +00:00
d96cb32f11
refactor(backend): properly model group-membership (#9124) 2026-01-30 04:56:03 +01:00
bea7c275e8
fix(webapp): allow internal path for custom button (#9129) 2026-01-29 18:51:53 +01:00
07ff0a6b5e
feat(backend): db script disable notifications (#9131) 2026-01-28 22:14:35 +01:00
6fc3c03860 feat(backend): group pins (#9034)
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2026-01-28 16:53:29 +01:00
524c4caf5e
refactor(backend): lint graphql (#8473) 2026-01-28 14:42:53 +01:00
8136ec1aba
fix(backend): fix bug in notifications settings for currentUser (#9130) 2026-01-28 00:36:51 +01:00
0ee476cfff
fix(backend): fix email url encoding (#9127) 2026-01-27 22:39:40 +00:00
Wolfgang Huß
b39d1c737b
refactor(other): consolidate Node.js versions and fix e2e workflow (#9126)
Co-authored-by: mahula <lenzmath@posteo.de>
2026-01-27 18:23:26 +01:00
dependabot[bot]
dcff378727
build(deps): bump cheerio from 1.1.2 to 1.2.0 in /backend (#9141)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-25 17:12:12 +00:00
dependabot[bot]
6c34da94f4
build(deps-dev): bump @types/node from 25.0.9 to 25.0.10 in /backend (#9142)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-25 15:26:12 +00:00
dependabot[bot]
f5f6ceb2c5
build(deps): bump @aws-sdk/client-s3 and @aws-sdk/lib-storage in /backend (#9144)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-25 15:04:44 +00:00
dependabot[bot]
e109ac29b7
build(deps): bump peter-evans/repository-dispatch from 09094272a794c6105029af051e3831908c649b6c to cf70392543065ca62813db6712a06df1c4f4ae9f (#9145)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-25 14:17:06 +00:00
dependabot[bot]
05aeb1c20d
build(deps): bump the metascraper group in /backend with 12 updates (#9136)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-25 14:47:47 +01:00
dependabot[bot]
003ec2bda0
build(deps-dev): bump sass-embedded from 1.97.2 to 1.97.3 (#9135)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-24 22:24:46 +00:00
dependabot[bot]
208a6dca01
build(deps): bump preview-email from 3.1.0 to 3.1.1 in /backend (#9138)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-24 20:30:49 +00:00
af497deb77
fix(webapp): allow running frontend tests locally (#9125) 2026-01-24 20:09:36 +00:00
dependabot[bot]
ba481547f1
build(deps): bump node from 25.3.0-alpine to 25.4.0-alpine in /webapp (#9133)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-24 19:41:50 +00:00
dependabot[bot]
9f4c105335
build(deps-dev): bump @cucumber/cucumber from 12.5.0 to 12.6.0 in the cypress group (#9134)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-24 18:38:52 +00:00
dependabot[bot]
8012d56dc8
build(deps): bump lodash from 4.17.21 to 4.17.23 in /backend (#9140)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-24 15:02:14 +00:00
dependabot[bot]
9d994a7554
build(deps-dev): bump prettier from 3.8.0 to 3.8.1 in /webapp (#9139)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-24 14:41:41 +00:00
dependabot[bot]
322d2aeb97
build(deps-dev): bump prettier from 3.8.0 to 3.8.1 in /backend (#9143)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-24 14:15:01 +00:00
dependabot[bot]
afee1033af
build(deps): bump actions/checkout from 6.0.1 to 6.0.2 (#9146)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-24 13:48:54 +00:00
dependabot[bot]
d358fdf6b4
build(deps): bump node from 25.3.0-alpine to 25.4.0-alpine in /backend (#9132)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-24 11:55:14 +00:00
150b318aab
feat(backend): admin creation command for production (#9057)
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2026-01-19 18:36:20 +00:00
f0f9b7faec
fix(backend): fix permissions for GroupInviteCodes (#9121)
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2026-01-19 18:14:17 +00:00
b22974031c
fix(backend): fix group-myRole field query (#9102)
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2026-01-19 17:48:25 +00:00
mahula
0ca45dd06e
refactor(e2e): optimize step definitions loading with filepart pairing (#9122) 2026-01-19 15:00:40 +00:00
6a42d12fda
fix(webapp): fix cta-join-group, can crash when group is not defined (#9103) 2026-01-19 12:05:09 +00:00
b7604e9af5
fix(backend): fix active categories when inproperly configured (#9123)
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2026-01-19 11:29:26 +00:00
3d00ae4e25
fix(webapp): fix local webapp tests (#9104)
Co-authored-by: mahula <lenzmath@posteo.de>
2026-01-18 11:55:40 +00:00
dependabot[bot]
fa71b0e189
build(deps-dev): bump the cypress group across 1 directory with 3 updates (#9058)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-18 12:29:03 +01:00
dependabot[bot]
855a049f90
build(deps): bump node from 25.2.1-alpine to 25.3.0-alpine in /webapp (#9105)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-18 00:12:19 +00:00
dependabot[bot]
679e4876bc
build(deps): bump actions/setup-node from 6.1.0 to 6.2.0 (#9107)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-17 23:45:25 +00:00
dependabot[bot]
e84a81bd2f
build(deps): bump node from 25.2.1-alpine to 25.3.0-alpine in /backend (#9106)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-17 23:25:20 +00:00
dependabot[bot]
34e547553e
build(deps): bump actions/cache from 5.0.1 to 5.0.2 (#9108)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-18 00:04:22 +01:00
dependabot[bot]
5aa298b3a2
build(deps-dev): bump eslint-plugin-n from 17.23.1 to 17.23.2 in /backend (#9110)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-17 22:29:23 +00:00
dependabot[bot]
626372a741
build(deps-dev): bump @types/lodash from 4.17.21 to 4.17.23 in /backend (#9111)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-17 22:04:58 +00:00
dependabot[bot]
a0ac5157a1
build(deps): bump @aws-sdk/lib-storage from 3.958.0 to 3.967.0 in /backend (#9113)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-17 21:43:30 +00:00
dependabot[bot]
083d81be89
build(deps-dev): bump eslint-plugin-prettier from 5.5.4 to 5.5.5 in /backend (#9114)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-17 21:22:21 +00:00
dependabot[bot]
721fd75288
build(deps-dev): bump @eslint-community/eslint-plugin-eslint-comments from 4.5.0 to 4.6.0 in /backend (#9120)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-17 20:57:08 +00:00
dependabot[bot]
7e6d79f1dc
build(deps-dev): bump prettier from 3.7.4 to 3.8.0 in /webapp (#9117)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-17 20:35:57 +00:00
dependabot[bot]
bc7e750e83
build(deps): bump ioredis from 5.9.1 to 5.9.2 in /backend (#9119)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-17 20:07:42 +00:00
dependabot[bot]
fbe98aa2b4
build(deps): bump @aws-sdk/client-s3 from 3.967.0 to 3.971.0 in /backend (#9118)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-17 19:46:46 +00:00
dependabot[bot]
7ae516cf85
build(deps-dev): bump eslint-plugin-prettier from 5.5.4 to 5.5.5 in /webapp (#9115)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-17 19:22:19 +00:00
dependabot[bot]
02bf7f0ab8
build(deps-dev): bump prettier from 3.7.4 to 3.8.0 in /backend (#9116)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-17 19:54:52 +01:00
dependabot[bot]
cc8ab95eaf
build(deps-dev): bump @types/node from 25.0.7 to 25.0.9 in /backend (#9112)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-17 17:59:37 +01:00
dependabot[bot]
017bfbc820
build(deps): bump the metascraper group in /backend with 12 updates (#9063)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-14 10:59:59 +00:00
dependabot[bot]
25eeb8d485
build(deps-dev): bump eslint-plugin-jest from 29.12.0 to 29.12.1 in /backend (#9090)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-14 10:32:48 +01:00
dependabot[bot]
eca7f5096e
build(deps): bump ioredis from 5.8.2 to 5.9.1 in /backend (#9095)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-14 09:02:33 +00:00
dependabot[bot]
9f581f4773
build(deps): bump @aws-sdk/client-s3 from 3.958.0 to 3.966.0 in /backend (#9100)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-13 10:43:05 +00:00
dependabot[bot]
b767e02263
build(deps): bump @aws-sdk/lib-storage from 3.933.0 to 3.958.0 in /backend (#9093)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-13 11:20:48 +01:00
dependabot[bot]
b01d5e5a27
build(deps-dev): bump @types/node from 25.0.3 to 25.0.5 in /backend (#9096)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-13 10:54:01 +01:00
dependabot[bot]
06a79225f3
build(deps): bump peter-evans/repository-dispatch from 46fabd2783425293d3f24bc1080da28d046e2dd3 to 09094272a794c6105029af051e3831908c649b6c (#9089)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-13 09:34:38 +01:00
dependabot[bot]
eaa9b34d58
build(deps): bump vue-advanced-chat from 2.0.11 to 2.1.2 in /webapp (#9084)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-01 15:54:02 +00:00
dependabot[bot]
c4fcd558e3
build(deps): bump nginx from 1.29.3-alpine to 1.29.4-alpine in /webapp (#9070)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-01 15:09:57 +00:00
dependabot[bot]
0fef81464f
build(deps): bump @aws-sdk/client-s3 from 3.933.0 to 3.958.0 in /backend (#9086)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-01 12:52:30 +00:00
dependabot[bot]
9c3d3e2fcd
build(deps-dev): bump @types/node from 24.10.1 to 25.0.3 in /backend (#9078)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-01 10:40:44 +00:00
dependabot[bot]
cbb57622f7
build(deps-dev): bump eslint-plugin-jest from 29.1.0 to 29.11.0 in /backend (#9087)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-01 11:19:47 +01:00
dependabot[bot]
861275aeda
build(deps): bump express from 5.1.0 to 5.2.1 in /backend (#9065)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-27 12:08:44 +01:00
dependabot[bot]
c0c396653f
build(deps-dev): bump @types/lodash from 4.17.20 to 4.17.21 in /backend (#9051)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-27 10:42:27 +00:00
dependabot[bot]
5642e0db2c
build(deps-dev): bump ts-jest from 29.4.5 to 29.4.6 in /backend (#9069)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-27 10:20:32 +00:00
dependabot[bot]
49f7118468
build(deps): bump validator from 13.15.23 to 13.15.26 in /webapp (#9083)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-27 09:37:50 +00:00
dependabot[bot]
9a0c97e6ce
build(deps): bump validator from 13.15.23 to 13.15.26 in /backend (#9080)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-27 09:10:01 +00:00
dependabot[bot]
1dd7fc3d75
build(deps): bump nodemailer from 7.0.10 to 7.0.12 in /backend (#9088)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-27 08:48:33 +00:00
dependabot[bot]
0e2d90c634
build(deps): bump actions/upload-artifact from 5.0.0 to 6.0.0 (#9072)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-27 09:26:57 +01:00
dependabot[bot]
56338422a2
build(deps): bump peter-evans/repository-dispatch from d2c43ab06ec1cddd2c2a0aae659681b8465ce87a to 46fabd2783425293d3f24bc1080da28d046e2dd3 (#9060)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-13 15:30:08 +00:00
dependabot[bot]
817ac7226e
build(deps-dev): bump prettier from 3.6.2 to 3.7.4 in /webapp (#9059)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-13 14:05:00 +00:00
dependabot[bot]
eb81c0b7e4
build(deps): bump docker/metadata-action from 5.9.0 to 5.10.0 (#9049)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-13 13:38:02 +00:00
dependabot[bot]
34aa894068
build(deps): bump actions/setup-node from 6.0.0 to 6.1.0 (#9061)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-13 14:17:19 +01:00
dependabot[bot]
d751e7090f
build(deps): bump gaurav-nelson/github-action-markdown-link-check from 1.0.16 to 1.0.17 (#8329)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-13 10:15:30 +00:00
dependabot[bot]
a9949e1147
build(deps): bump actions/cache from 4.3.0 to 5.0.1 (#9071)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-13 09:48:11 +00:00
dependabot[bot]
c78f8deee9
build(deps): bump actions/checkout from 5.0.0 to 6.0.1 (#9062)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-10 10:04:02 +00:00
dependabot[bot]
2cabe0f4d2
build(deps-dev): bump prettier from 3.6.2 to 3.7.4 in /backend (#9067)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-10 10:09:34 +01:00
dependabot[bot]
0ac7bf908c
build(deps): bump mime-types from 3.0.1 to 3.0.2 in /backend (#9044)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-22 14:54:04 +01:00
dependabot[bot]
0368676b26
build(deps): bump cross-env from 10.0.0 to 10.1.0 in /backend (#8943)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-20 16:52:07 +00:00
dependabot[bot]
cd7931b77b
build(deps): bump validator from 13.15.20 to 13.15.23 in /webapp (#9029)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-20 16:09:36 +00:00
dependabot[bot]
801131e351
build(deps-dev): bump nodemon from 3.1.10 to 3.1.11 in /backend (#9028)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-20 15:20:23 +01:00
dependabot[bot]
30d30a2f2d
build(deps): bump node from 25.1.0-alpine to 25.2.0-alpine in /backend (#9024)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-20 14:57:02 +01:00
dependabot[bot]
9dfd5e31ef
build(deps): bump node from 25.1.0-alpine to 25.2.0-alpine in /webapp (#9023)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-20 11:13:03 +00:00
dependabot[bot]
c86d816e56
build(deps): bump docker/metadata-action from 5.8.0 to 5.9.0 (#9014)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-19 17:51:36 +00:00
dependabot[bot]
de89810eae
build(deps-dev): bump cypress from 15.5.0 to 15.6.0 in the cypress group (#9016)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-19 17:13:53 +00:00
dependabot[bot]
9df61a752a
build(deps): bump bcryptjs from 3.0.2 to 3.0.3 in /backend (#9019)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-19 17:04:20 +01:00
dependabot[bot]
2410fa8527
build(deps): bump @aws-sdk/lib-storage from 3.917.0 to 3.922.0 in /backend (#9022)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-18 18:38:28 +00:00
dependabot[bot]
b5b7b5d78c
build(deps): bump peter-evans/repository-dispatch from 2c856c63feddee6147cab2f38801935b6a59a765 to d2c43ab06ec1cddd2c2a0aae659681b8465ce87a (#9025)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-18 18:16:35 +00:00
dependabot[bot]
00d8fd960d
build(deps): bump amannn/action-semantic-pull-request from e49f57ce06c1747542fce2243c7a98682384bc0e to 069817c298f23fab00a8f29a2e556a5eac0f6390 (#9026)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-18 18:56:58 +01:00
dependabot[bot]
caf95664b8
build(deps-dev): bump eslint-plugin-jest from 29.0.1 to 29.1.0 in /backend (#9027)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-18 03:50:46 +00:00
dependabot[bot]
66f35ca51d
build(deps): bump @aws-sdk/client-s3 from 3.922.0 to 3.932.0 in /backend (#9030)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-18 03:52:03 +01:00
dependabot[bot]
c6878f19f9
build(deps-dev): bump @types/node from 24.9.2 to 24.10.1 in /backend (#9031)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-18 01:57:53 +00:00
dependabot[bot]
421bfe6755
build(deps): bump validator from 13.15.20 to 13.15.23 in /backend (#9033)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-18 02:36:41 +01:00
592a8af42c
chore(release): v3.13.1 (#9003) 2025-11-01 15:37:40 +00:00
dependabot[bot]
a48510f349
build(deps): bump nginx from 1.29.2-alpine to 1.29.3-alpine in /webapp (#9005)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-01 15:11:44 +00:00
dependabot[bot]
a03e5d888b
build(deps): bump minimatch from 10.0.3 to 10.1.1 in /backend (#9009)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-01 14:31:33 +00:00
dependabot[bot]
7f7c56cec2
build(deps-dev): bump @types/node from 24.9.1 to 24.9.2 in /backend (#9010)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-01 14:05:19 +00:00
dependabot[bot]
77d8a5092b
build(deps): bump @aws-sdk/client-s3 from 3.917.0 to 3.922.0 in /backend (#9012)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-01 13:44:25 +00:00
60bda5a949
fix(webapp): fix map (#9004) 2025-11-01 13:09:44 +00:00
dependabot[bot]
ff2b6465db
build(deps): bump validator from 13.15.15 to 13.15.20 in /backend (#9007)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-01 09:25:26 +00:00
dependabot[bot]
72b4af395f
build(deps): bump validator from 13.15.15 to 13.15.20 in /webapp (#9011)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-01 10:04:11 +01:00
2130aa0d68
fix(webapp): always link compiled styleguide (#8998) 2025-10-31 16:36:51 +01:00
dependabot[bot]
1c7f2f27b5
build(deps-dev): bump the babel group with 2 updates (#8982)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-31 00:54:02 +00:00
dependabot[bot]
e2ef636cf8
build(deps): bump node from 24.10.0-alpine to 25.0.0-alpine in /backend (#8972)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-31 00:24:33 +00:00
3f69b70820
fix(workflow): cleanup when running e2e jobs aswell (#9001) 2025-10-31 00:02:39 +00:00
dependabot[bot]
e6244c848c
build(deps): bump node from 20.12.1-alpine to 25.0.0-alpine in /webapp (#8974)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-31 00:21:54 +01:00
0280ac7201
fix(workflow): clean up space on workflow runner machines (#9000) 2025-10-30 23:53:11 +01:00
09327ddc01
fix(docker): fix on build copy command failing when branding (#8996) 2025-10-30 21:16:14 +00:00
49e6f0b7e8
fix(backend): fix node25 compatibility (#8995) 2025-10-30 20:47:39 +00:00
c9b5c02862
fix(webapp): update nuxt to v2.15.8 (#8997) 2025-10-30 20:34:48 +01:00
52459b23f1
chore(release): v3.13.0 (#8991) 2025-10-28 12:06:32 +01:00
dependabot[bot]
737f548f38
build(deps-dev): bump cypress from 15.4.0 to 15.5.0 in the cypress group (#8983)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-26 00:47:36 +00:00
dependabot[bot]
1a29167f08
build(deps): bump actions/upload-artifact from 4.6.2 to 5.0.0 (#8981)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-26 02:20:47 +02:00
dependabot[bot]
06bd4f1ea4
build(deps): bump the metascraper group in /backend with 12 updates (#8985)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-26 00:59:20 +02:00
dependabot[bot]
bbb2a189db
build(deps): bump @aws-sdk/lib-storage from 3.908.0 to 3.913.0 in /backend (#8986)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-25 19:23:48 +00:00
dependabot[bot]
a5f720dba1
build(deps-dev): bump @types/node from 24.8.1 to 24.9.1 in /backend (#8987)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-25 19:01:48 +00:00
dependabot[bot]
3b93d255a6
build(deps): bump nodemailer from 7.0.9 to 7.0.10 in /backend (#8988)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-25 18:41:14 +00:00
dependabot[bot]
5b84b93a16
build(deps): bump @aws-sdk/client-s3 from 3.913.0 to 3.917.0 in /backend (#8989)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-25 18:19:49 +00:00
dependabot[bot]
1622c31010
build(deps): bump ioredis from 5.8.1 to 5.8.2 in /backend (#8990)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-25 19:59:53 +02:00
dependabot[bot]
09536ed0e8
build(deps): bump actions/setup-node from 5.0.0 to 6.0.0 (#8973)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-19 13:37:41 +02:00
dependabot[bot]
005e2569a1
build(deps-dev): bump @types/node from 24.7.2 to 24.8.1 in /backend (#8976)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-18 15:28:48 +02:00
dependabot[bot]
ed328e70d8
build(deps): bump @aws-sdk/client-s3 from 3.908.0 to 3.913.0 in /backend (#8978)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-18 14:56:48 +02:00
dependabot[bot]
d96f145e2b
build(deps): bump @aws-sdk/lib-storage from 3.896.0 to 3.905.0 in /backend (#8970)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-12 16:40:02 +00:00
dependabot[bot]
f3d36bb779
build(deps): bump ioredis from 5.8.0 to 5.8.1 in /backend (#8969)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-12 16:19:48 +00:00
dependabot[bot]
5e1d9e280a
build(deps): bump @aws-sdk/client-s3 from 3.901.0 to 3.908.0 in /backend (#8968)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-12 15:37:22 +02:00
dependabot[bot]
5bb8508df9
build(deps-dev): bump @types/node from 24.6.2 to 24.7.1 in /backend (#8967)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-12 12:36:59 +02:00
dependabot[bot]
1b0ef1f81b
build(deps): bump nodemailer from 7.0.6 to 7.0.9 in /backend (#8964)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-11 23:02:08 +00:00
dependabot[bot]
0042914231
build(deps-dev): bump ts-jest from 29.4.4 to 29.4.5 in /backend (#8963)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-11 22:41:30 +00:00
dependabot[bot]
3f216d84d7
build(deps-dev): bump eslint-plugin-jsonc from 2.20.1 to 2.21.0 in /backend (#8962)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-11 22:20:44 +00:00
dependabot[bot]
88ec6fdef0
build(deps-dev): bump the cypress group with 2 updates (#8961)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-11 15:20:31 +00:00
dependabot[bot]
d22479cfa2
build(deps): bump nginx from 1.29.1-alpine to 1.29.2-alpine in /webapp (#8960)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-11 12:45:14 +00:00
dependabot[bot]
ad5108996f
build(deps): bump node from 24.9.0-alpine to 24.10.0-alpine in /backend (#8959)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-11 02:19:54 +00:00
Wolfgang Huß
558e964c83
feat(webapp): add reason and call to action on post view page if commenting is disabled (#8958)
Co-authored-by: Ulf Gebhardt <ulf.gebhardt@webcraft-media.de>
2025-10-10 19:21:07 +02:00
dependabot[bot]
2a7d2f10ed
build(deps-dev): bump dotenv from 17.2.2 to 17.2.3 (#8939)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-07 23:44:45 +00:00
b5895afe3e
refactor(e2e): remove packages not used on root folder (#8954) 2025-10-07 21:16:22 +02:00
1964ff3eb1
refactor(workflow): lint pr title scope e2e (#8955) 2025-10-07 16:40:04 +00:00
9fc2379090
fix(webapp): fix line-height in styleguide when generated (#8952)
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-10-07 09:41:09 +00:00
1e19bd1be7
refactor(workflow): pr titles - allow scope styleguide (#8953)
Co-authored-by: mahula <lenzmath@posteo.de>
2025-10-07 08:13:53 +00:00
dependabot[bot]
98af683277
build(deps): bump peter-evans/repository-dispatch from de78ac1a711fc6f29e77338f843065faf5335227 to 66739071c2122a05106fc2a2c306fdaf33bb9cda (#8936)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-06 19:52:48 +00:00
dependabot[bot]
b40015d408
build(deps): bump @aws-sdk/client-s3 from 3.896.0 to 3.901.0 in /backend (#8942)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-06 19:19:41 +00:00
dependabot[bot]
1512167197
build(deps): bump cross-env from 10.0.0 to 10.1.0 in /webapp (#8944)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-04 09:09:36 +00:00
dependabot[bot]
263f35d2e0
build(deps): bump docker/login-action from 3.5.0 to 3.6.0 (#8937)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-04 10:30:57 +02:00
dependabot[bot]
05ab27e868
build(deps): bump amannn/action-semantic-pull-request from e7d011b07ef37e089bea6539210f6a0d360d8af9 to e49f57ce06c1747542fce2243c7a98682384bc0e (#8938)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-04 08:01:56 +00:00
dependabot[bot]
f49022e94d
build(deps-dev): bump @testing-library/jest-dom from 6.8.0 to 6.9.1 in /webapp (#8945)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-04 07:41:47 +00:00
dependabot[bot]
719457b896
build(deps-dev): bump jest from 30.1.3 to 30.2.0 in /backend (#8946)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-04 09:13:20 +02:00
dependabot[bot]
6d4fd54c30
build(deps-dev): bump @types/node from 24.5.2 to 24.6.2 in /backend (#8951)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-04 06:51:42 +00:00
dependabot[bot]
54aeca0375
build(deps): bump tslog from 4.9.3 to 4.10.2 in /backend (#8949)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-04 08:31:00 +02:00
ffffd9e15f
feat(other): deploy styleguide scripts and description (#8935) 2025-10-02 17:57:40 +02:00
b06b29b858
feat(webapp): bind local styleguide & fix maintenance page (#8933) 2025-09-30 14:54:43 +02:00
ace5e9a89e
refactor(other): include styleguide repo including all commits (#8932) 2025-09-29 19:29:41 +02:00
c6fe18f1f7
Merge branch 'master' into include-styleguide-repo 2025-09-28 19:33:28 +02:00
f9af98da97
included whole styleguide repository including all commits instead of a submodule 2025-09-28 19:28:22 +02:00
d9ed8a42b5
remove styleguide
remove .gitmodule
2025-09-28 18:58:59 +02:00
52da131ee4
Merge pull request #2 from Ocelot-Social-Community/remove-gitattributes
fix(other): remove gitattributes
2025-09-28 18:56:12 +02:00
6d9529a021
remove git attributes 2025-09-28 18:51:53 +02:00
32eca68520
Merge pull request #1 from Ocelot-Social-Community/node24-support
Node24 support
2025-09-27 14:46:06 +02:00
e4717e0d89
fix(backend): fix potential leak in updateOnlineStatus (#8923)
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-09-27 14:37:12 +02:00
33ca59343a
docs(docu): describe current and desired architecture of services (#8850)
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-09-27 12:09:47 +00:00
dependabot[bot]
1044231e4e
build(deps): bump node from 24.8.0-alpine to 24.9.0-alpine in /backend (#8926)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-27 10:10:03 +00:00
dependabot[bot]
2bf39f5ad0
build(deps): bump actions/cache from 4.2.4 to 4.3.0 (#8927)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-27 09:52:41 +00:00
dependabot[bot]
68030dc5ec
build(deps): bump @aws-sdk/lib-storage from 3.888.0 to 3.896.0 in /backend (#8929)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-27 11:30:46 +02:00
dependabot[bot]
ced52e30db
build(deps): bump ioredis from 5.7.0 to 5.8.0 in /backend (#8931)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-27 10:46:45 +02:00
dependabot[bot]
35c3dd3bbc
build(deps-dev): bump the cypress group across 1 directory with 2 updates (#8925)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-26 20:23:30 +00:00
dependabot[bot]
768d80f2a1
build(deps): bump peter-evans/repository-dispatch from 7279ea08e172078316f128ed1118df40d2904f0f to de78ac1a711fc6f29e77338f843065faf5335227 (#8909)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-26 19:01:29 +00:00
dependabot[bot]
f7dc901c2a
build(deps): bump metascraper from 5.49.2 to 5.49.4 in /backend in the metascraper group (#8911)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-26 15:18:44 +00:00
dependabot[bot]
fadc37a49c
build(deps-dev): bump ts-jest from 29.4.1 to 29.4.4 in /backend (#8912)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-26 17:00:40 +02:00
21c253b690
remove docs folder 2025-09-26 15:36:41 +02:00
08c8cfe42c
fix build 2025-09-26 15:31:56 +02:00
59dd435138
update node-sass 2025-09-26 15:01:10 +02:00
dependabot[bot]
158e1ee4e0
build(deps-dev): bump @types/node from 24.4.0 to 24.5.2 in /backend (#8913)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-26 12:54:08 +02:00
dependabot[bot]
2350e594d4
build(deps): bump graphql-middleware from 4.0.2 to 4.0.3 in /backend (#8915)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-25 20:38:57 +00:00
30560bff69
fix(webapp): fix user avatar & post image urls (#8921)
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-09-25 22:19:27 +02:00
dependabot[bot]
4fc71fc495
build(deps): bump @sentry/node from 5.15.4 to 5.30.0 in /backend (#8916)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-25 11:12:44 +00:00
dependabot[bot]
3ca00c83c0
build(deps-dev): bump eslint-plugin-n from 17.21.3 to 17.23.1 in /backend (#8918)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-25 10:52:37 +00:00
dependabot[bot]
9f91ff1124
build(deps): bump @aws-sdk/client-s3 from 3.888.0 to 3.893.0 in /backend (#8919)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-25 10:00:42 +00:00
Moriz Wahl
a15351aa42
feat(webapp): dynamic static pages (#8920)
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-09-25 11:16:07 +02:00
Moriz Wahl
9a4f7326c1
fix(webapp): no distance to me on own profile (#8907)
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-09-22 23:59:18 +02:00
Wolfgang Huß
2ed92c0a78
feat(webapp): post page group link improvement (#8883) 2025-09-20 10:15:04 +00:00
de65a380ab
fix(backend): fix naming of PRIVATEKEY (#8905) 2025-09-20 11:47:29 +02:00
45d2283138
refactor(backend): externalize all remaining queries in spec files (#8902)
* refactor: externalize all remaining queries in spec files

* User with different queries due to permissions

* fix notification:groups

* fix hashtagsmiddleware

* fix blockedUsers

* fix softDeleteMiddleware

* fix shouts.spec

* fix userInteractions spec

* fix mutedUsers spec

* seocialMedia spec

* fix notificationMiddleware.spec

* fix user.spce & fix undefined activeCategories

* fix notifications.spec

* fix userInteractions.spec

* fix blockedUsers & mutedUsers spec

* remove unused comment

* fix locations spec

* fix orderByMiddleware & spec

* fix lint

* fix shout spec
2025-09-18 17:43:15 +02:00
2c285d6bfb
v3.12.2 (#8903) 2025-09-15 10:22:16 +00:00
4ef93e0aad
fix(backend): statistics for admin only (#8887)
* statistics for admin only

* adjust tests
2025-09-15 09:51:00 +00:00
d414b56344
fix(backend): fix minio settings (#8878)
* fix minio settings

* remove port exposure on 9000
2025-09-15 09:20:09 +00:00
c4cd51ee65
fix group images (#8901) 2025-09-15 08:51:06 +00:00
dependabot[bot]
ef5cdbc2cb
build(deps): bump node from 24.7.0-alpine to 24.8.0-alpine in /backend (#8891)
Bumps node from 24.7.0-alpine to 24.8.0-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-version: 24.8.0-alpine
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-14 23:39:23 +00:00
dependabot[bot]
7906a474ca
build(deps-dev): bump the cypress group with 2 updates (#8892)
Bumps the cypress group with 2 updates: [@badeball/cypress-cucumber-preprocessor](https://github.com/badeball/cypress-cucumber-preprocessor) and [cypress](https://github.com/cypress-io/cypress).


Updates `@badeball/cypress-cucumber-preprocessor` from 23.0.0 to 23.1.0
- [Release notes](https://github.com/badeball/cypress-cucumber-preprocessor/releases)
- [Changelog](https://github.com/badeball/cypress-cucumber-preprocessor/blob/master/CHANGELOG.md)
- [Commits](https://github.com/badeball/cypress-cucumber-preprocessor/compare/v23.0.0...v23.1.0)

Updates `cypress` from 15.1.0 to 15.2.0
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v15.1.0...v15.2.0)

---
updated-dependencies:
- dependency-name: "@badeball/cypress-cucumber-preprocessor"
  dependency-version: 23.1.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: cypress
- dependency-name: cypress
  dependency-version: 15.2.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: cypress
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-15 01:15:21 +02:00
dependabot[bot]
b7842dc793
build(deps): bump the metascraper group in /backend with 12 updates (#8894)
Bumps the metascraper group in /backend with 12 updates:

| Package | From | To |
| --- | --- | --- |
| [metascraper](https://github.com/microlinkhq/metascraper) | `5.49.1` | `5.49.2` |
| [metascraper-author](https://github.com/microlinkhq/metascraper) | `5.49.1` | `5.49.2` |
| [metascraper-date](https://github.com/microlinkhq/metascraper/tree/HEAD/packages/metascraper-date) | `5.49.1` | `5.49.2` |
| [metascraper-description](https://github.com/microlinkhq/metascraper/tree/HEAD/packages/metascraper-description) | `5.49.1` | `5.49.2` |
| [metascraper-image](https://github.com/microlinkhq/metascraper/tree/HEAD/packages/metascraper-image) | `5.49.1` | `5.49.2` |
| [metascraper-lang](https://github.com/microlinkhq/metascraper/tree/HEAD/packages/metascraper-lang) | `5.49.1` | `5.49.2` |
| [metascraper-logo](https://github.com/microlinkhq/metascraper/tree/HEAD/packages/metascraper-logo) | `5.49.1` | `5.49.2` |
| [metascraper-publisher](https://github.com/microlinkhq/metascraper/tree/HEAD/packages/metascraper-publisher) | `5.49.1` | `5.49.2` |
| [metascraper-title](https://github.com/microlinkhq/metascraper) | `5.49.1` | `5.49.2` |
| [metascraper-url](https://github.com/microlinkhq/metascraper) | `5.49.1` | `5.49.2` |
| [metascraper-video](https://github.com/microlinkhq/metascraper/tree/HEAD/packages/metascraper-video) | `5.49.1` | `5.49.2` |
| [metascraper-youtube](https://github.com/microlinkhq/metascraper/tree/HEAD/packages/metascraper-youtube) | `5.49.1` | `5.49.2` |


Updates `metascraper` from 5.49.1 to 5.49.2
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/compare/v5.49.1...v5.49.2)

Updates `metascraper-author` from 5.49.1 to 5.49.2
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/compare/v5.49.1...v5.49.2)

Updates `metascraper-date` from 5.49.1 to 5.49.2
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/packages/metascraper-date/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/commits/v5.49.2/packages/metascraper-date)

Updates `metascraper-description` from 5.49.1 to 5.49.2
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/packages/metascraper-description/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/commits/v5.49.2/packages/metascraper-description)

Updates `metascraper-image` from 5.49.1 to 5.49.2
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/packages/metascraper-image/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/commits/v5.49.2/packages/metascraper-image)

Updates `metascraper-lang` from 5.49.1 to 5.49.2
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/packages/metascraper-lang/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/commits/v5.49.2/packages/metascraper-lang)

Updates `metascraper-logo` from 5.49.1 to 5.49.2
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/packages/metascraper-logo/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/commits/v5.49.2/packages/metascraper-logo)

Updates `metascraper-publisher` from 5.49.1 to 5.49.2
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/packages/metascraper-publisher/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/commits/v5.49.2/packages/metascraper-publisher)

Updates `metascraper-title` from 5.49.1 to 5.49.2
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/compare/v5.49.1...v5.49.2)

Updates `metascraper-url` from 5.49.1 to 5.49.2
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/compare/v5.49.1...v5.49.2)

Updates `metascraper-video` from 5.49.1 to 5.49.2
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/packages/metascraper-video/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/commits/v5.49.2/packages/metascraper-video)

Updates `metascraper-youtube` from 5.49.1 to 5.49.2
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/packages/metascraper-youtube/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/commits/v5.49.2/packages/metascraper-youtube)

---
updated-dependencies:
- dependency-name: metascraper
  dependency-version: 5.49.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
- dependency-name: metascraper-author
  dependency-version: 5.49.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
- dependency-name: metascraper-date
  dependency-version: 5.49.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
- dependency-name: metascraper-description
  dependency-version: 5.49.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
- dependency-name: metascraper-image
  dependency-version: 5.49.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
- dependency-name: metascraper-lang
  dependency-version: 5.49.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
- dependency-name: metascraper-logo
  dependency-version: 5.49.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
- dependency-name: metascraper-publisher
  dependency-version: 5.49.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
- dependency-name: metascraper-title
  dependency-version: 5.49.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
- dependency-name: metascraper-url
  dependency-version: 5.49.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
- dependency-name: metascraper-video
  dependency-version: 5.49.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
- dependency-name: metascraper-youtube
  dependency-version: 5.49.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-14 21:07:07 +02:00
dependabot[bot]
f5a5b63fff
build(deps): bump @aws-sdk/lib-storage in /backend (#8895)
Bumps [@aws-sdk/lib-storage](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/lib/lib-storage) from 3.872.0 to 3.883.0.
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/lib/lib-storage/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.883.0/lib/lib-storage)

---
updated-dependencies:
- dependency-name: "@aws-sdk/lib-storage"
  dependency-version: 3.883.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-14 20:09:09 +02:00
dependabot[bot]
b506052277
build(deps): bump @aws-sdk/client-s3 from 3.883.0 to 3.888.0 in /backend (#8897)
Bumps [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) from 3.883.0 to 3.888.0.
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.888.0/clients/client-s3)

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.888.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-14 18:25:38 +02:00
dependabot[bot]
502ae10a15
build(deps-dev): bump @types/node from 24.3.1 to 24.3.3 in /backend (#8898)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 24.3.1 to 24.3.3.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.3.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-14 13:54:18 +00:00
00e718b12f
v3.12.1 (#8900) 2025-09-13 12:02:39 +00:00
Wolfgang Huß
d9a7c1adc5
feat(backend): improve e-mail deliverability with sender name (#8888)
* Avoid early html encoding for the remaining '='

* Make 'EMAIL_DEFAULT_SENDER' required env

* Implement sender and recipient name on send e-mails nodemailer conform

* Fix e-mail snapshots
2025-09-13 11:39:39 +00:00
ebb8ef4f0e
remove PRIVATE_KEY_PASSPHRASE from config and remove its requirement (#8889) 2025-09-13 10:04:45 +00:00
047070c5b3
fix s3 migration (#8890) 2025-09-13 11:48:20 +02:00
Wolfgang Huß
985a8c3720
fix(backend): fix e-mail character encoding (#8886)
* Improve e-mail base design

* Refine e-mail design

* Adjust e-mail snapshots

* Avoid early html encoding for all parameters in locals

* Avoid early html encoding for all '= t()'

* Avoid early html encoding for the remaining '='
2025-09-11 16:18:15 +02:00
Wolfgang Huß
d437c6d7f4
feat(backend): improve e-mail base design (#8884)
* Improve e-mail base design

* Refine e-mail design

* Adjust e-mail snapshots
2025-09-11 13:04:31 +02:00
66b5e61c15
refactor(backend): test block & unblock user (#8879)
* queries

* test block users & small refactor on the resolver

* require 92% coverage (+2%)

* update according to review

* use cypher instead of neode
2025-09-10 18:26:28 +02:00
380d3401c0
update snapshots (#8885) 2025-09-10 15:05:57 +00:00
1e64590099
renamed resolver specs to make it easier to find the resolver (#8880) 2025-09-10 09:32:55 +00:00
74f6c5b329
refactor(backend): externalize gql queries in backend specs (#8881)
* externalize gql queries in backend specs

* externalize all queries & mutations where easily possible

missing change

* rename old queries & remove unnecessary function call

* fix tests - notifications

* fix tests - moderation

* remove _CreatePostMutation file

* remove _filterPosts & _postQuery files
2025-09-08 10:17:01 +00:00
dependabot[bot]
dbae0862f9
build(deps): bump node from 24.6.0-alpine to 24.7.0-alpine in /backend (#8851)
Bumps node from 24.6.0-alpine to 24.7.0-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-version: 24.7.0-alpine
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-06 21:31:49 +02:00
dependabot[bot]
bbd233835e
build(deps): bump peter-evans/repository-dispatch (#8861)
Bumps [peter-evans/repository-dispatch](https://github.com/peter-evans/repository-dispatch) from 0ee9de00feb82e6165438c503f0bc29f628b8317 to 7279ea08e172078316f128ed1118df40d2904f0f.
- [Release notes](https://github.com/peter-evans/repository-dispatch/releases)
- [Commits](0ee9de00fe...7279ea08e1)

---
updated-dependencies:
- dependency-name: peter-evans/repository-dispatch
  dependency-version: 7279ea08e172078316f128ed1118df40d2904f0f
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-06 21:04:32 +02:00
dependabot[bot]
2a8f3f672f
build(deps): bump actions/setup-node from 4.4.0 to 5.0.0 (#8862)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4.4.0 to 5.0.0.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v4.4.0...a0853c24544627f65ddf259abe73b1d18a591444)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-06 20:45:23 +02:00
dependabot[bot]
a6c0044216
build(deps-dev): bump cypress from 15.0.0 to 15.1.0 in the cypress group (#8863)
Bumps the cypress group with 1 update: [cypress](https://github.com/cypress-io/cypress).


Updates `cypress` from 15.0.0 to 15.1.0
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v15.0.0...v15.1.0)

---
updated-dependencies:
- dependency-name: cypress
  dependency-version: 15.1.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: cypress
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-06 20:03:17 +02:00
dependabot[bot]
cfefb4c35c
build(deps-dev): bump dotenv from 17.2.1 to 17.2.2 (#8865)
Bumps [dotenv](https://github.com/motdotla/dotenv) from 17.2.1 to 17.2.2.
- [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md)
- [Commits](https://github.com/motdotla/dotenv/compare/v17.2.1...v17.2.2)

---
updated-dependencies:
- dependency-name: dotenv
  dependency-version: 17.2.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-06 15:42:01 +00:00
dependabot[bot]
f480e7c054
build(deps-dev): bump jest from 30.0.5 to 30.1.3 in /backend (#8866)
Bumps [jest](https://github.com/jestjs/jest/tree/HEAD/packages/jest) from 30.0.5 to 30.1.3.
- [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.1.3/packages/jest)

---
updated-dependencies:
- dependency-name: jest
  dependency-version: 30.1.3
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-06 15:13:03 +00:00
dependabot[bot]
5e9581de84
build(deps-dev): bump @types/node from 24.3.0 to 24.3.1 in /backend (#8867)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 24.3.0 to 24.3.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.3.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-06 14:53:00 +00:00
dependabot[bot]
fc313e2a16
build(deps): bump nodemailer from 7.0.5 to 7.0.6 in /backend (#8868)
Bumps [nodemailer](https://github.com/nodemailer/nodemailer) from 7.0.5 to 7.0.6.
- [Release notes](https://github.com/nodemailer/nodemailer/releases)
- [Changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodemailer/nodemailer/compare/v7.0.5...v7.0.6)

---
updated-dependencies:
- dependency-name: nodemailer
  dependency-version: 7.0.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-06 13:40:27 +00:00
dependabot[bot]
ce52bc951a
build(deps-dev): bump @babel/core in the babel group (#8872)
Bumps the babel group with 1 update: [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core).


Updates `@babel/core` from 7.28.3 to 7.28.4
- [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.4/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-version: 7.28.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: babel
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-06 15:20:03 +02:00
dependabot[bot]
b277382ae3
build(deps): bump @aws-sdk/client-s3 from 3.873.0 to 3.883.0 in /backend (#8876)
Bumps [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) from 3.873.0 to 3.883.0.
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.883.0/clients/client-s3)

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.883.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-09-06 14:23:13 +02:00
9bc327e675
remove frontend and all related services, scripts and code (#8860) 2025-09-05 16:30:08 +02:00
Wolfgang Huß
c1a05bc73b
feat(webapp): add location distance in group profile (#8846)
* Add distance to group profile if location is defined

* Fix snapshot tests in 'webapp/pages/groups/_id/_slug.spec.js'

* Fix prop Vue warning in test 'webapp/pages/groups/_id/_slug.spec.js'

* reuse locationFragement for groups

* use better order on locationFragement parameters

* moved LocationInfo Component to correct place as its used in Group & User related context

* use size prop

* reduce changeset

* update snapshots

* remove computed property & simplify component

* more tests & updated snapshots

---------

Co-authored-by: Ulf Gebhardt <ulf.gebhardt@webcraft-media.de>
2025-08-26 10:34:30 +02:00
dependabot[bot]
f61850980e
build(deps-dev): bump @cucumber/cucumber in the cypress group (#8841)
Bumps the cypress group with 1 update: [@cucumber/cucumber](https://github.com/cucumber/cucumber-js).


Updates `@cucumber/cucumber` from 12.1.0 to 12.2.0
- [Release notes](https://github.com/cucumber/cucumber-js/releases)
- [Changelog](https://github.com/cucumber/cucumber-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/cucumber/cucumber-js/compare/v12.1.0...v12.2.0)

---
updated-dependencies:
- dependency-name: "@cucumber/cucumber"
  dependency-version: 12.2.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: cypress
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-25 22:47:10 +00:00
dependabot[bot]
f7345a2772
build(deps): bump @aws-sdk/client-s3 from 3.872.0 to 3.873.0 in /backend (#8842)
Bumps [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) from 3.872.0 to 3.873.0.
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.873.0/clients/client-s3)

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.873.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-25 23:34:35 +02:00
dependabot[bot]
9aeb619184
build(deps): bump amannn/action-semantic-pull-request (#8843)
Bumps [amannn/action-semantic-pull-request](https://github.com/amannn/action-semantic-pull-request) from 335288255954904a41ddda8947c8f2c844b8bfeb to e7d011b07ef37e089bea6539210f6a0d360d8af9.
- [Release notes](https://github.com/amannn/action-semantic-pull-request/releases)
- [Changelog](https://github.com/amannn/action-semantic-pull-request/blob/main/CHANGELOG.md)
- [Commits](3352882559...e7d011b07e)

---
updated-dependencies:
- dependency-name: amannn/action-semantic-pull-request
  dependency-version: e7d011b07ef37e089bea6539210f6a0d360d8af9
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-25 17:41:40 +00:00
dependabot[bot]
51df143a15
build(deps-dev): bump @testing-library/jest-dom in /webapp (#8845)
Bumps [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) from 6.7.0 to 6.8.0.
- [Release notes](https://github.com/testing-library/jest-dom/releases)
- [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/jest-dom/compare/v6.7.0...v6.8.0)

---
updated-dependencies:
- dependency-name: "@testing-library/jest-dom"
  dependency-version: 6.8.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-25 17:45:52 +02:00
b92dcd3534
location distance in profile (#8835)
remove unused classes

margin bottom

Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-08-23 09:45:33 +00:00
3e58a1016a
fix(backend): fix notification author url (#8837)
* fix notification author url

* updated snapshots
2025-08-22 03:31:56 +02:00
dependabot[bot]
ea080db3f5
build(deps-dev): bump eslint-config-prettier in /webapp (#8775)
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 10.1.2 to 10.1.8.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v10.1.2...v10.1.8)

---
updated-dependencies:
- dependency-name: eslint-config-prettier
  dependency-version: 10.1.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-22 00:32:40 +02:00
30406411f8
revert update semantic-pull-requests-6.0.1 to v5 (#8840) 2025-08-21 16:43:55 +02:00
80ddfdf532
pin v6.0.1 for semantic-pull-requests (#8838) 2025-08-21 13:44:19 +00:00
dependabot[bot]
69bfd90175
build(deps-dev): bump the cypress group across 1 directory with 2 updates (#8839)
Bumps the cypress group with 2 updates in the / directory: [@badeball/cypress-cucumber-preprocessor](https://github.com/badeball/cypress-cucumber-preprocessor) and [cypress](https://github.com/cypress-io/cypress).


Updates `@badeball/cypress-cucumber-preprocessor` from 22.2.0 to 23.0.0
- [Release notes](https://github.com/badeball/cypress-cucumber-preprocessor/releases)
- [Changelog](https://github.com/badeball/cypress-cucumber-preprocessor/blob/master/CHANGELOG.md)
- [Commits](https://github.com/badeball/cypress-cucumber-preprocessor/compare/v22.2.0...v23.0.0)

Updates `cypress` from 14.5.3 to 15.0.0
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v14.5.3...v15.0.0)

---
updated-dependencies:
- dependency-name: "@badeball/cypress-cucumber-preprocessor"
  dependency-version: 23.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: cypress
- dependency-name: cypress
  dependency-version: 15.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: cypress
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-21 10:37:07 +00:00
c0ad753698
revert fed951b3 amannn/action-semantic-pull-request (#8836) 2025-08-21 11:54:41 +02:00
dependabot[bot]
5d42daedd6
build(deps-dev): bump eslint-plugin-prettier in /webapp (#8816)
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 5.5.3 to 5.5.4.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v5.5.3...v5.5.4)

---
updated-dependencies:
- dependency-name: eslint-plugin-prettier
  dependency-version: 5.5.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-21 09:53:33 +00:00
dependabot[bot]
db4a808beb
build(deps): bump actions/cache from 4.2.3 to 4.2.4 (#8818)
Bumps [actions/cache](https://github.com/actions/cache) from 4.2.3 to 4.2.4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](5a3ec84eff...0400d5f644)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: 4.2.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-21 09:21:21 +00:00
dependabot[bot]
86ebeb9a50
build(deps): bump docker/login-action from 3.4.0 to 3.5.0 (#8819)
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.4.0 to 3.5.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](74a5d14239...184bdaa072)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: 3.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-21 08:42:26 +00:00
dependabot[bot]
712afc05a8
build(deps): bump @aws-sdk/lib-storage in /backend (#8821)
Bumps [@aws-sdk/lib-storage](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/lib/lib-storage) from 3.850.0 to 3.859.0.
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/lib/lib-storage/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.859.0/lib/lib-storage)

---
updated-dependencies:
- dependency-name: "@aws-sdk/lib-storage"
  dependency-version: 3.859.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-21 07:49:34 +00:00
dependabot[bot]
b33e1e9236
build(deps): bump @aws-sdk/client-s3 from 3.859.0 to 3.864.0 in /backend (#8823)
Bumps [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) from 3.859.0 to 3.864.0.
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.864.0/clients/client-s3)

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.864.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-21 07:13:59 +00:00
dependabot[bot]
bd1d23dc22
build(deps-dev): bump eslint-plugin-prettier in /backend (#8824)
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 5.5.3 to 5.5.4.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v5.5.3...v5.5.4)

---
updated-dependencies:
- dependency-name: eslint-plugin-prettier
  dependency-version: 5.5.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-21 08:55:12 +02:00
dependabot[bot]
b69ff178ec
build(deps-dev): bump @types/node from 24.1.0 to 24.3.0 in /backend (#8826)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 24.1.0 to 24.3.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.3.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-21 02:17:34 +02:00
dependabot[bot]
3968c9d742
build(deps-dev): bump the babel group with 3 updates (#8827)
Bumps the babel group with 3 updates: [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core), [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) and [@babel/register](https://github.com/babel/babel/tree/HEAD/packages/babel-register).


Updates `@babel/core` from 7.28.0 to 7.28.3
- [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.3/packages/babel-core)

Updates `@babel/preset-env` from 7.28.0 to 7.28.3
- [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.3/packages/babel-preset-env)

Updates `@babel/register` from 7.27.1 to 7.28.3
- [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.3/packages/babel-register)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-version: 7.28.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: babel
- dependency-name: "@babel/preset-env"
  dependency-version: 7.28.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: babel
- dependency-name: "@babel/register"
  dependency-version: 7.28.3
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: babel
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-20 22:50:58 +00:00
dependabot[bot]
7bbcdf4fca
build(deps): bump node from 24.4.1-alpine to 24.6.0-alpine in /backend (#8828)
Bumps node from 24.4.1-alpine to 24.6.0-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-version: 24.6.0-alpine
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-21 00:26:29 +02:00
dependabot[bot]
0fa09080de
build(deps): bump peter-evans/repository-dispatch (#8829)
Bumps [peter-evans/repository-dispatch](https://github.com/peter-evans/repository-dispatch) from 81f328ec1608a441b4898147a8da7b97a3430d69 to 0ee9de00feb82e6165438c503f0bc29f628b8317.
- [Release notes](https://github.com/peter-evans/repository-dispatch/releases)
- [Commits](81f328ec16...0ee9de00fe)

---
updated-dependencies:
- dependency-name: peter-evans/repository-dispatch
  dependency-version: 0ee9de00feb82e6165438c503f0bc29f628b8317
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-20 17:07:57 +00:00
dependabot[bot]
fed951b3d2
build(deps): bump amannn/action-semantic-pull-request (#8830)
Bumps [amannn/action-semantic-pull-request](https://github.com/amannn/action-semantic-pull-request) from 335288255954904a41ddda8947c8f2c844b8bfeb to fdd4d3ddf614fbcd8c29e4b106d3bbe0cb2c605d.
- [Release notes](https://github.com/amannn/action-semantic-pull-request/releases)
- [Changelog](https://github.com/amannn/action-semantic-pull-request/blob/main/CHANGELOG.md)
- [Commits](3352882559...fdd4d3ddf6)

---
updated-dependencies:
- dependency-name: amannn/action-semantic-pull-request
  dependency-version: fdd4d3ddf614fbcd8c29e4b106d3bbe0cb2c605d
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-20 15:01:31 +00:00
dependabot[bot]
5006680a9e
build(deps): bump actions/checkout from 4.2.2 to 5.0.0 (#8831)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.2.2 to 5.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4.2.2...08c6903cd8c0fde910a37f88322edcfb5dd907a8)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-20 14:42:59 +00:00
31c6446a38
v3.12.0 (#8834) 2025-08-20 15:04:55 +02:00
dependabot[bot]
7d1dea2e77
build(deps-dev): bump @testing-library/jest-dom in /webapp (#8833)
Bumps [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) from 6.6.4 to 6.7.0.
- [Release notes](https://github.com/testing-library/jest-dom/releases)
- [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/jest-dom/compare/v6.6.4...v6.7.0)

---
updated-dependencies:
- dependency-name: "@testing-library/jest-dom"
  dependency-version: 6.7.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-20 12:13:01 +00:00
Robert Schäfer
00da9e8ecb
feat(backend): resize images with imagor (#8558)
* feat(backend): resize images with imagor

Open questions:
* Do we have external URLs for images? E.g. we have them for seeds. But
  in production?

* Do we want to apply image transformations on these as well? My current
implementation does not apply image transformations as of now. If we
want to do that, we will also expose internal URLs in the kubernetes
Cluster to the S3 endpoint to the client.

TODOs:
* The chat component is using a fixed size for all avatars at the moment.
Maybe we can pair-program on this how to implement responsive images in
this component library.

Commits:
* do not replace upload domain url in the database

* fix all webapp specs

* refactor: remove behaviour we won't need

We don't want to apply image transformations on files, right?

* refactor: replace the domain on read not on write

* wip: webapp fixes

* refactor(backend): add another url to config

I've given up. There seems to be no nice way to tell the minio to return
a location which differs from it's host name.

* refactor: add test for s3Service

* refactor(backend): proxy minio via backend in local development

Commits:
* provide tests for message attachments
* remove S3_PUBLIC_URL config value

* refactor: follow @ulfgebhardt's review

* add missing environment variable

---------

Co-authored-by: Ulf Gebhardt <ulf.gebhardt@webcraft-media.de>
2025-08-19 10:11:12 +02:00
Wolfgang Huß
abb9d944f2
fix(webapp): fixes console warning by adding profile list filter locales (#8810)
* Fix console warning by adding 'common.filter' to locales

* Make 'common.filter' ident in component 'ProfileList.vue' responsive and remove default value
2025-08-07 14:22:41 +02:00
04dec08d04
fix(backend): delete follow relations for deleted users (#8805)
* delete follows

* migration-deleted-user-follows

---------

Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-08-07 10:20:32 +00:00
1612d03b52
fix(backend): replace slug package with slugify (#8807)
* replace slug with slugify

* replace slug with slugify in root package.json

* remove undocumented characters

---------

Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-08-07 09:44:19 +00:00
e0017bc4dd
fix(backend): update jest packages (#8806)
* update jest & related packages

* fix deprecation errors
2025-08-05 03:57:02 +00:00
dependabot[bot]
f7f3938855
build(deps-dev): bump the babel group across 1 directory with 2 updates (#8629)
Bumps the babel group with 2 updates in the / directory: [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) and [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env).


Updates `@babel/core` from 7.27.1 to 7.27.4
- [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.27.4/packages/babel-core)

Updates `@babel/preset-env` from 7.27.1 to 7.27.2
- [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.27.2/packages/babel-preset-env)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-version: 7.27.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: babel
- dependency-name: "@babel/preset-env"
  dependency-version: 7.27.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: babel
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-05 01:02:59 +00:00
dependabot[bot]
528b9292be
build(deps-dev): bump eslint-plugin-import in /webapp (#8700)
Bumps [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import) from 2.31.0 to 2.32.0.
- [Release notes](https://github.com/import-js/eslint-plugin-import/releases)
- [Changelog](https://github.com/import-js/eslint-plugin-import/blob/main/CHANGELOG.md)
- [Commits](https://github.com/import-js/eslint-plugin-import/compare/v2.31.0...v2.32.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-import
  dependency-version: 2.32.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 22:50:21 +00:00
dependabot[bot]
8fdabd57a3
build(deps-dev): bump prettier from 3.5.3 to 3.6.2 in /webapp (#8734)
Bumps [prettier](https://github.com/prettier/prettier) from 3.5.3 to 3.6.2.
- [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.5.3...3.6.2)

---
updated-dependencies:
- dependency-name: prettier
  dependency-version: 3.6.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 19:22:12 +00:00
dependabot[bot]
3237c2fcb5
build(deps-dev): bump eslint-config-prettier in /backend (#8767)
Bumps [eslint-config-prettier](https://github.com/prettier/eslint-config-prettier) from 10.1.5 to 10.1.8.
- [Release notes](https://github.com/prettier/eslint-config-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-config-prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-config-prettier/compare/v10.1.5...v10.1.8)

---
updated-dependencies:
- dependency-name: eslint-config-prettier
  dependency-version: 10.1.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 18:48:55 +00:00
dependabot[bot]
5e192aef3e
build(deps): bump peter-evans/repository-dispatch (#8797)
Bumps [peter-evans/repository-dispatch](https://github.com/peter-evans/repository-dispatch) from 5a3edc67490343006aa8cc8e4a7c69ef6094d733 to 81f328ec1608a441b4898147a8da7b97a3430d69.
- [Release notes](https://github.com/peter-evans/repository-dispatch/releases)
- [Commits](5a3edc6749...81f328ec16)

---
updated-dependencies:
- dependency-name: peter-evans/repository-dispatch
  dependency-version: 81f328ec1608a441b4898147a8da7b97a3430d69
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 20:26:39 +02:00
dependabot[bot]
77a45810e0
build(deps): bump docker/metadata-action from 5.7.0 to 5.8.0 (#8796)
Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 5.7.0 to 5.8.0.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Commits](902fa8ec7d...c1e51972af)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-version: 5.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 17:06:53 +00:00
daabb4024c
fix(webapp): invalidate cache (#8763)
* invalidate cache by attaching the ocelot version in the js chuck filenames

* petter adjust js chunk name to the nuxt default, also attach version to css files
2025-08-04 16:16:01 +00:00
dependabot[bot]
754efa5197
build(deps-dev): bump @testing-library/jest-dom in /webapp (#8803)
Bumps [@testing-library/jest-dom](https://github.com/testing-library/jest-dom) from 6.6.3 to 6.6.4.
- [Release notes](https://github.com/testing-library/jest-dom/releases)
- [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/jest-dom/compare/v6.6.3...v6.6.4)

---
updated-dependencies:
- dependency-name: "@testing-library/jest-dom"
  dependency-version: 6.6.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 13:37:08 +00:00
dependabot[bot]
32bfacd0d6
build(deps-dev): bump eslint-plugin-n in /backend (#8799)
Bumps [eslint-plugin-n](https://github.com/eslint-community/eslint-plugin-n) from 17.21.0 to 17.21.3.
- [Release notes](https://github.com/eslint-community/eslint-plugin-n/releases)
- [Changelog](https://github.com/eslint-community/eslint-plugin-n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint-community/eslint-plugin-n/compare/v17.21.0...v17.21.3)

---
updated-dependencies:
- dependency-name: eslint-plugin-n
  dependency-version: 17.21.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 15:11:53 +02:00
dependabot[bot]
7a2d9e637d
build(deps): bump ioredis from 5.6.1 to 5.7.0 in /backend (#8798)
Bumps [ioredis](https://github.com/luin/ioredis) from 5.6.1 to 5.7.0.
- [Release notes](https://github.com/luin/ioredis/releases)
- [Changelog](https://github.com/redis/ioredis/blob/main/CHANGELOG.md)
- [Commits](https://github.com/luin/ioredis/compare/v5.6.1...v5.7.0)

---
updated-dependencies:
- dependency-name: ioredis
  dependency-version: 5.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 12:30:12 +02:00
dependabot[bot]
02b348912b
build(deps): bump @aws-sdk/client-s3 from 3.850.0 to 3.859.0 in /backend (#8800)
Bumps [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) from 3.850.0 to 3.859.0.
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.859.0/clients/client-s3)

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.859.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 11:56:17 +02:00
dependabot[bot]
c674fae5e1
build(deps-dev): bump @types/request from 2.48.12 to 2.48.13 in /backend (#8801)
Bumps [@types/request](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/request) from 2.48.12 to 2.48.13.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/request)

---
updated-dependencies:
- dependency-name: "@types/request"
  dependency-version: 2.48.13
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-04 10:48:16 +02:00
dependabot[bot]
3357a331fb
build(deps-dev): bump eslint-plugin-prettier in /backend (#8772)
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 5.5.1 to 5.5.3.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v5.5.1...v5.5.3)

---
updated-dependencies:
- dependency-name: eslint-plugin-prettier
  dependency-version: 5.5.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-31 22:33:13 +00:00
dependabot[bot]
599b8d03e1
build(deps-dev): bump eslint-plugin-prettier in /webapp (#8776)
---
updated-dependencies:
- dependency-name: eslint-plugin-prettier
  dependency-version: 5.5.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-31 12:29:09 +02:00
dependabot[bot]
97f64898d9
build(deps-dev): bump the cypress group with 2 updates (#8777)
Bumps the cypress group with 2 updates: [@cucumber/cucumber](https://github.com/cucumber/cucumber-js) and [cypress](https://github.com/cypress-io/cypress).


Updates `@cucumber/cucumber` from 11.3.0 to 12.0.0
- [Release notes](https://github.com/cucumber/cucumber-js/releases)
- [Changelog](https://github.com/cucumber/cucumber-js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/cucumber/cucumber-js/compare/v11.3.0...v12.0.0)

Updates `cypress` from 14.5.1 to 14.5.2
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v14.5.1...v14.5.2)

---
updated-dependencies:
- dependency-name: "@cucumber/cucumber"
  dependency-version: 12.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: cypress
- dependency-name: cypress
  dependency-version: 14.5.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: cypress
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-31 11:55:57 +02:00
dependabot[bot]
08e35bdc8b
build(deps-dev): bump dotenv from 17.2.0 to 17.2.1 (#8782)
Bumps [dotenv](https://github.com/motdotla/dotenv) from 17.2.0 to 17.2.1.
- [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md)
- [Commits](https://github.com/motdotla/dotenv/compare/v17.2.0...v17.2.1)

---
updated-dependencies:
- dependency-name: dotenv
  dependency-version: 17.2.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-30 12:45:14 +00:00
dependabot[bot]
3f8441c700
build(deps): bump cheerio from 1.1.0 to 1.1.2 in /backend (#8783)
Bumps [cheerio](https://github.com/cheeriojs/cheerio) from 1.1.0 to 1.1.2.
- [Release notes](https://github.com/cheeriojs/cheerio/releases)
- [Commits](https://github.com/cheeriojs/cheerio/compare/v1.1.0...v1.1.2)

---
updated-dependencies:
- dependency-name: cheerio
  dependency-version: 1.1.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-30 14:21:56 +02:00
dependabot[bot]
56aa515bca
build(deps): bump linkifyjs from 4.3.1 to 4.3.2 in /backend (#8786)
Bumps [linkifyjs](https://github.com/nfrasser/linkifyjs/tree/HEAD/packages/linkifyjs) from 4.3.1 to 4.3.2.
- [Release notes](https://github.com/nfrasser/linkifyjs/releases)
- [Changelog](https://github.com/nfrasser/linkifyjs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nfrasser/linkifyjs/commits/v4.3.2/packages/linkifyjs)

---
updated-dependencies:
- dependency-name: linkifyjs
  dependency-version: 4.3.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-30 10:14:26 +00:00
dependabot[bot]
a174600613
build(deps): bump linkify-html from 4.3.1 to 4.3.2 in /backend (#8789)
Bumps [linkify-html](https://github.com/nfrasser/linkifyjs/tree/HEAD/packages/linkify-html) from 4.3.1 to 4.3.2.
- [Release notes](https://github.com/nfrasser/linkifyjs/releases)
- [Changelog](https://github.com/nfrasser/linkifyjs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nfrasser/linkifyjs/commits/v4.3.2/packages/linkify-html)

---
updated-dependencies:
- dependency-name: linkify-html
  dependency-version: 4.3.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-30 09:53:04 +00:00
dependabot[bot]
b5b0dcd9c1
build(deps): bump @aws-sdk/lib-storage in /backend (#8769)
Bumps [@aws-sdk/lib-storage](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/lib/lib-storage) from 3.842.0 to 3.844.0.
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/lib/lib-storage/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.844.0/lib/lib-storage)

---
updated-dependencies:
- dependency-name: "@aws-sdk/lib-storage"
  dependency-version: 3.844.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 21:32:13 +00:00
dependabot[bot]
a725ae7e08
build(deps-dev): bump cross-env from 7.0.3 to 10.0.0 (#8781)
Bumps [cross-env](https://github.com/kentcdodds/cross-env) from 7.0.3 to 10.0.0.
- [Release notes](https://github.com/kentcdodds/cross-env/releases)
- [Changelog](https://github.com/kentcdodds/cross-env/blob/main/CHANGELOG.md)
- [Commits](https://github.com/kentcdodds/cross-env/compare/v7.0.3...v10.0.0)

---
updated-dependencies:
- dependency-name: cross-env
  dependency-version: 10.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 13:33:25 +00:00
dependabot[bot]
0cb4c1f3b7
build(deps): bump node from 24.4.0-alpine to 24.4.1-alpine in /backend (#8778)
Bumps node from 24.4.0-alpine to 24.4.1-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-version: 24.4.1-alpine
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 11:13:16 +00:00
dependabot[bot]
e990b9c8ac
build(deps): bump @aws-sdk/client-s3 from 3.844.0 to 3.850.0 in /backend (#8785)
Bumps [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) from 3.844.0 to 3.850.0.
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.850.0/clients/client-s3)

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.850.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 12:27:38 +02:00
dependabot[bot]
6895a73b15
build(deps): bump cross-env from 7.0.3 to 10.0.0 in /backend (#8787)
Bumps [cross-env](https://github.com/kentcdodds/cross-env) from 7.0.3 to 10.0.0.
- [Release notes](https://github.com/kentcdodds/cross-env/releases)
- [Changelog](https://github.com/kentcdodds/cross-env/blob/main/CHANGELOG.md)
- [Commits](https://github.com/kentcdodds/cross-env/compare/v7.0.3...v10.0.0)

---
updated-dependencies:
- dependency-name: cross-env
  dependency-version: 10.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 11:27:23 +02:00
dependabot[bot]
8ce8825840
build(deps): bump cross-env from 7.0.3 to 10.0.0 in /webapp (#8794)
Bumps [cross-env](https://github.com/kentcdodds/cross-env) from 7.0.3 to 10.0.0.
- [Release notes](https://github.com/kentcdodds/cross-env/releases)
- [Changelog](https://github.com/kentcdodds/cross-env/blob/main/CHANGELOG.md)
- [Commits](https://github.com/kentcdodds/cross-env/compare/v7.0.3...v10.0.0)

---
updated-dependencies:
- dependency-name: cross-env
  dependency-version: 10.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 08:17:49 +00:00
dependabot[bot]
e9213effc1
build(deps-dev): bump @types/node from 24.0.14 to 24.1.0 in /backend (#8788)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 24.0.14 to 24.1.0.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.1.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 07:46:10 +00:00
dependabot[bot]
b9eb2ad91f
build(deps): bump peter-evans/repository-dispatch (#8791)
Bumps [peter-evans/repository-dispatch](https://github.com/peter-evans/repository-dispatch) from 6846232b0e1bfd17c14dce7ac13fd3fcefe22c0c to 5a3edc67490343006aa8cc8e4a7c69ef6094d733.
- [Release notes](https://github.com/peter-evans/repository-dispatch/releases)
- [Commits](6846232b0e...5a3edc6749)

---
updated-dependencies:
- dependency-name: peter-evans/repository-dispatch
  dependency-version: 5a3edc67490343006aa8cc8e4a7c69ef6094d733
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-28 09:14:20 +02:00
dependabot[bot]
572bc5281a
build(deps-dev): bump @types/node from 24.0.10 to 24.0.13 in /backend (#8757)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 24.0.10 to 24.0.13.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.0.13
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-17 11:15:35 +00:00
Robert Schäfer
3b2b3f0014
refactor(backend): remove obsolete code (#8752)
We kept this code for backwards compatibility but since we already deployed S3 to our kubernetes cluster and we're using it locally, let's remove this code. It will also make it easier to implement the image resize service as it reduces the total amount of code to maintain.

Co-authored-by: Ulf Gebhardt <ulf.gebhardt@webcraft-media.de>
2025-07-14 07:28:07 +00:00
dependabot[bot]
588e9bee8d
build(deps): bump node from 24.3.0-alpine to 24.4.0-alpine in /backend (#8756)
Bumps node from 24.3.0-alpine to 24.4.0-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-version: 24.4.0-alpine
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-12 13:15:52 +00:00
dependabot[bot]
66d591404e
build(deps): bump @aws-sdk/client-s3 from 3.842.0 to 3.844.0 in /backend (#8759)
Bumps [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) from 3.842.0 to 3.844.0.
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.844.0/clients/client-s3)

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.844.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-12 12:44:15 +00:00
dependabot[bot]
4fd1ccf5d0
build(deps): bump peter-evans/repository-dispatch (#8760)
Bumps [peter-evans/repository-dispatch](https://github.com/peter-evans/repository-dispatch) from d33623bdcd342b4dcaac3b2e773e0fc060a8d94a to 6846232b0e1bfd17c14dce7ac13fd3fcefe22c0c.
- [Release notes](https://github.com/peter-evans/repository-dispatch/releases)
- [Commits](d33623bdcd...6846232b0e)

---
updated-dependencies:
- dependency-name: peter-evans/repository-dispatch
  dependency-version: 6846232b0e1bfd17c14dce7ac13fd3fcefe22c0c
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-12 12:18:47 +00:00
dependabot[bot]
0a426cbd5e
build(deps-dev): bump dotenv from 17.0.1 to 17.2.0 (#8761)
Bumps [dotenv](https://github.com/motdotla/dotenv) from 17.0.1 to 17.2.0.
- [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md)
- [Commits](https://github.com/motdotla/dotenv/compare/v17.0.1...v17.2.0)

---
updated-dependencies:
- dependency-name: dotenv
  dependency-version: 17.2.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-12 14:02:49 +02:00
dependabot[bot]
46beb2931f
build(deps-dev): bump @faker-js/faker from 9.8.0 to 9.9.0 in /webapp (#8747)
Bumps [@faker-js/faker](https://github.com/faker-js/faker) from 9.8.0 to 9.9.0.
- [Release notes](https://github.com/faker-js/faker/releases)
- [Changelog](https://github.com/faker-js/faker/blob/next/CHANGELOG.md)
- [Commits](https://github.com/faker-js/faker/compare/v9.8.0...v9.9.0)

---
updated-dependencies:
- dependency-name: "@faker-js/faker"
  dependency-version: 9.9.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-10 16:18:24 +00:00
Robert Schäfer
c4a119f9db
refactor(workflow): silence tslog on CI server (#8753)
Follow up of #8751:

I forgot that we `cp backend/.env.template backend/.env` on our CI server. Now the CI is riddled with debug messages.
2025-07-10 20:08:32 +07:00
dependabot[bot]
714b53725f
build(deps-dev): bump the cypress group across 1 directory with 2 updates (#8746)
Bumps the cypress group with 2 updates in the / directory: [@badeball/cypress-cucumber-preprocessor](https://github.com/badeball/cypress-cucumber-preprocessor) and [cypress](https://github.com/cypress-io/cypress).


Updates `@badeball/cypress-cucumber-preprocessor` from 22.1.0 to 22.2.0
- [Release notes](https://github.com/badeball/cypress-cucumber-preprocessor/releases)
- [Changelog](https://github.com/badeball/cypress-cucumber-preprocessor/blob/master/CHANGELOG.md)
- [Commits](https://github.com/badeball/cypress-cucumber-preprocessor/compare/v22.1.0...v22.2.0)

Updates `cypress` from 14.5.0 to 14.5.1
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v14.5.0...v14.5.1)

---
updated-dependencies:
- dependency-name: "@badeball/cypress-cucumber-preprocessor"
  dependency-version: 22.2.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: cypress
- dependency-name: cypress
  dependency-version: 14.5.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: cypress
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-08 13:30:58 +02:00
dependabot[bot]
f5765b61c6
build(deps-dev): bump @faker-js/faker from 9.8.0 to 9.9.0 (#8745)
Bumps [@faker-js/faker](https://github.com/faker-js/faker) from 9.8.0 to 9.9.0.
- [Release notes](https://github.com/faker-js/faker/releases)
- [Changelog](https://github.com/faker-js/faker/blob/next/CHANGELOG.md)
- [Commits](https://github.com/faker-js/faker/compare/v9.8.0...v9.9.0)

---
updated-dependencies:
- dependency-name: "@faker-js/faker"
  dependency-version: 9.9.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-07 22:31:23 +00:00
dependabot[bot]
4e68a88a24
build(deps-dev): bump @types/lodash from 4.17.19 to 4.17.20 in /backend (#8741)
Bumps [@types/lodash](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash) from 4.17.19 to 4.17.20.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/lodash)

---
updated-dependencies:
- dependency-name: "@types/lodash"
  dependency-version: 4.17.20
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-07 22:07:21 +00:00
dependabot[bot]
853f7cd26e
build(deps-dev): bump @faker-js/faker from 9.8.0 to 9.9.0 in /backend (#8740)
Bumps [@faker-js/faker](https://github.com/faker-js/faker) from 9.8.0 to 9.9.0.
- [Release notes](https://github.com/faker-js/faker/releases)
- [Changelog](https://github.com/faker-js/faker/blob/next/CHANGELOG.md)
- [Commits](https://github.com/faker-js/faker/compare/v9.8.0...v9.9.0)

---
updated-dependencies:
- dependency-name: "@faker-js/faker"
  dependency-version: 9.9.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-07 21:47:18 +00:00
dependabot[bot]
e82c023569
build(deps): bump peter-evans/repository-dispatch (#8739)
Bumps [peter-evans/repository-dispatch](https://github.com/peter-evans/repository-dispatch) from 25237563b45ca02acc9f277837f7e17abc0a48a9 to 25b98225d848ef84c218faf938c2e9a7636de1f3.
- [Release notes](https://github.com/peter-evans/repository-dispatch/releases)
- [Commits](25237563b4...25b98225d8)

---
updated-dependencies:
- dependency-name: peter-evans/repository-dispatch
  dependency-version: 25b98225d848ef84c218faf938c2e9a7636de1f3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-07 21:29:32 +00:00
dependabot[bot]
1ebbb1ca62
build(deps-dev): bump eslint-plugin-n in /backend (#8742)
Bumps [eslint-plugin-n](https://github.com/eslint-community/eslint-plugin-n) from 17.20.0 to 17.21.0.
- [Release notes](https://github.com/eslint-community/eslint-plugin-n/releases)
- [Changelog](https://github.com/eslint-community/eslint-plugin-n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint-community/eslint-plugin-n/compare/v17.20.0...v17.21.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-n
  dependency-version: 17.21.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-07 21:02:06 +00:00
dependabot[bot]
747b0d9f94
build(deps): bump nodemailer from 7.0.3 to 7.0.4 in /backend (#8743)
Bumps [nodemailer](https://github.com/nodemailer/nodemailer) from 7.0.3 to 7.0.4.
- [Release notes](https://github.com/nodemailer/nodemailer/releases)
- [Changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodemailer/nodemailer/compare/v7.0.3...v7.0.4)

---
updated-dependencies:
- dependency-name: nodemailer
  dependency-version: 7.0.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-07 22:29:41 +02:00
Robert Schäfer
432ae4a906
refactor(backend): silence neo4j-graphql-js (#8751)
Except if you enable it with:
```
DEBUG=neo4j-graphql-js
```
.. in your `backend/.env`
2025-07-07 14:40:55 +00:00
Robert Schäfer
e0719c405e
refactor(backend): use apollo test setup (#8750)
.. in two more specs.

Apparently this got overlooked. In #8558 these tests will fail.
2025-07-07 20:46:34 +07:00
ee7af8e788
v3.11.0 (#8749) 2025-07-05 17:00:37 +02:00
54cbe3f0cf
remove expect package (#8738) 2025-07-04 16:31:31 +02:00
dependabot[bot]
348598e487
build(deps-dev): bump eslint-plugin-import in /backend (#8705)
Bumps [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import) from 2.31.0 to 2.32.0.
- [Release notes](https://github.com/import-js/eslint-plugin-import/releases)
- [Changelog](https://github.com/import-js/eslint-plugin-import/blob/main/CHANGELOG.md)
- [Commits](https://github.com/import-js/eslint-plugin-import/compare/v2.31.0...v2.32.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-import
  dependency-version: 2.32.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-03 17:59:30 +00:00
dependabot[bot]
1058752b1c
build(deps): bump the metascraper group in /backend with 12 updates (#8717)
Bumps the metascraper group in /backend with 12 updates:

| Package | From | To |
| --- | --- | --- |
| [metascraper](https://github.com/microlinkhq/metascraper) | `5.47.1` | `5.49.0` |
| [metascraper-author](https://github.com/microlinkhq/metascraper) | `5.47.1` | `5.47.2` |
| [metascraper-date](https://github.com/microlinkhq/metascraper/tree/HEAD/packages/metascraper-date) | `5.47.1` | `5.47.2` |
| [metascraper-description](https://github.com/microlinkhq/metascraper/tree/HEAD/packages/metascraper-description) | `5.47.1` | `5.47.2` |
| [metascraper-image](https://github.com/microlinkhq/metascraper/tree/HEAD/packages/metascraper-image) | `5.47.1` | `5.47.2` |
| [metascraper-lang](https://github.com/microlinkhq/metascraper/tree/HEAD/packages/metascraper-lang) | `5.47.1` | `5.47.2` |
| [metascraper-logo](https://github.com/microlinkhq/metascraper/tree/HEAD/packages/metascraper-logo) | `5.47.1` | `5.47.2` |
| [metascraper-publisher](https://github.com/microlinkhq/metascraper/tree/HEAD/packages/metascraper-publisher) | `5.47.1` | `5.47.2` |
| [metascraper-title](https://github.com/microlinkhq/metascraper) | `5.47.1` | `5.47.2` |
| [metascraper-url](https://github.com/microlinkhq/metascraper) | `5.47.1` | `5.47.2` |
| [metascraper-video](https://github.com/microlinkhq/metascraper/tree/HEAD/packages/metascraper-video) | `5.47.1` | `5.47.2` |
| [metascraper-youtube](https://github.com/microlinkhq/metascraper/tree/HEAD/packages/metascraper-youtube) | `5.47.1` | `5.47.2` |


Updates `metascraper` from 5.47.1 to 5.49.0
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/compare/v5.47.1...v5.49.0)

Updates `metascraper-author` from 5.47.1 to 5.47.2
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/compare/v5.47.1...v5.47.2)

Updates `metascraper-date` from 5.47.1 to 5.47.2
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/packages/metascraper-date/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/commits/v5.47.2/packages/metascraper-date)

Updates `metascraper-description` from 5.47.1 to 5.47.2
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/packages/metascraper-description/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/commits/v5.47.2/packages/metascraper-description)

Updates `metascraper-image` from 5.47.1 to 5.47.2
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/packages/metascraper-image/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/commits/v5.47.2/packages/metascraper-image)

Updates `metascraper-lang` from 5.47.1 to 5.47.2
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/packages/metascraper-lang/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/commits/v5.47.2/packages/metascraper-lang)

Updates `metascraper-logo` from 5.47.1 to 5.47.2
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/packages/metascraper-logo/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/commits/v5.47.2/packages/metascraper-logo)

Updates `metascraper-publisher` from 5.47.1 to 5.47.2
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/packages/metascraper-publisher/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/commits/v5.47.2/packages/metascraper-publisher)

Updates `metascraper-title` from 5.47.1 to 5.47.2
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/compare/v5.47.1...v5.47.2)

Updates `metascraper-url` from 5.47.1 to 5.47.2
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/compare/v5.47.1...v5.47.2)

Updates `metascraper-video` from 5.47.1 to 5.47.2
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/packages/metascraper-video/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/commits/v5.47.2/packages/metascraper-video)

Updates `metascraper-youtube` from 5.47.1 to 5.47.2
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/packages/metascraper-youtube/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/commits/v5.47.2/packages/metascraper-youtube)

---
updated-dependencies:
- dependency-name: metascraper
  dependency-version: 5.49.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: metascraper
- dependency-name: metascraper-author
  dependency-version: 5.47.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
- dependency-name: metascraper-date
  dependency-version: 5.47.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
- dependency-name: metascraper-description
  dependency-version: 5.47.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
- dependency-name: metascraper-image
  dependency-version: 5.47.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
- dependency-name: metascraper-lang
  dependency-version: 5.47.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
- dependency-name: metascraper-logo
  dependency-version: 5.47.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
- dependency-name: metascraper-publisher
  dependency-version: 5.47.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
- dependency-name: metascraper-title
  dependency-version: 5.47.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
- dependency-name: metascraper-url
  dependency-version: 5.47.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
- dependency-name: metascraper-video
  dependency-version: 5.47.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
- dependency-name: metascraper-youtube
  dependency-version: 5.47.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-03 19:41:37 +02:00
dependabot[bot]
2558fba8be
build(deps-dev): bump dotenv from 16.5.0 to 17.0.0 (#8720)
Bumps [dotenv](https://github.com/motdotla/dotenv) from 16.5.0 to 17.0.0.
- [Changelog](https://github.com/motdotla/dotenv/blob/master/CHANGELOG.md)
- [Commits](https://github.com/motdotla/dotenv/compare/v16.5.0...v17.0.0)

---
updated-dependencies:
- dependency-name: dotenv
  dependency-version: 17.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-03 18:01:45 +02:00
dependabot[bot]
db4305ee01
build(deps-dev): bump eslint-plugin-jest in /backend (#8706)
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 28.13.5 to 29.0.1.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v28.13.5...v29.0.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-jest
  dependency-version: 29.0.1
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-03 16:15:45 +02:00
dependabot[bot]
3e9e3a7446
build(deps): bump @aws-sdk/lib-storage in /backend (#8723)
Bumps [@aws-sdk/lib-storage](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/lib/lib-storage) from 3.828.0 to 3.832.0.
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/lib/lib-storage/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.832.0/lib/lib-storage)

---
updated-dependencies:
- dependency-name: "@aws-sdk/lib-storage"
  dependency-version: 3.832.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-03 13:17:47 +02:00
dependabot[bot]
fdc4684c2e
build(deps): bump @aws-sdk/client-s3 from 3.832.0 to 3.839.0 in /backend (#8722)
Bumps [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) from 3.832.0 to 3.839.0.
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.839.0/clients/client-s3)

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.839.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-03 10:28:27 +00:00
Robert Schäfer
61813c4eb8
refactor(backend): put config into context (#8603)
This is a side quest of #8558. The motivation is to be able to do dependency injection in the tests without overwriting global data. I saw the first merge conflict from #8551 and voila: It seems @Mogge could have used this already.

refactor: follow @Mogge's review

See: https://github.com/Ocelot-Social-Community/Ocelot-Social/pull/8603#pullrequestreview-2880714796

refactor: better test helper methods

wip: continue refactoring

wip: continue posts

continue

wip: continue groups

continue registration

registration

continue messages

continue observeposts

continue categories

continue posts in groups

continue invite codes

refactor: continue notificationsMiddleware

continue statistics spec

followed-users

online-status

mentions-in-groups

posts-in-groups

email spec

finish all tests

improve typescript

missed one test

remove one more reference of CONFIG

eliminate one more global import of CONFIG

fix language spec test

fix two more test suites

refactor: completely mock out 3rd part API request

refactor test

fixed user_management spec

fixed more locatoin specs

install types for jsonwebtoken

one more fetchmock

fixed one more suite

fix one more spec

yet another spec

fix spec

delete whitespaces

remove beforeAll that the same as the default

fix merge conflict

fix e2e test

refactor: use single callback function for `context` setup

refactor: display logs from backend during CI

Because why not?

fix seeds

fix login

refactor: one unnecessary naming

refactor: better editor support

refactor: fail early

Interestingly, I've had to destructure `context.user` in order to make
typescript happy. Weird.

refactor: undo changes to workflows - no effect

We're running in `--detached` mode on CI, so I guess we won't be able to
see the logs anyways.

refactor: remove fetch from context after review

See:

refactor: found an easier way for required props

Co-authored-by: Max <maxharz@gmail.com>
Co-authored-by: Ulf Gebhardt <ulf.gebhardt@webcraft-media.de>
2025-07-03 11:58:03 +02:00
dependabot[bot]
3c59e08412
build(deps): bump dotenv from 16.5.0 to 17.0.0 in /backend (#8726)
---
updated-dependencies:
- dependency-name: dotenv
  dependency-version: 17.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-03 11:00:19 +02:00
dependabot[bot]
4cd2c45442
build(deps-dev): bump @types/node from 24.0.3 to 24.0.6 in /backend (#8721)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 24.0.3 to 24.0.6.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.0.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-02 18:01:16 +02:00
sebastian2357
a81ec214f1
fix(webapp): added option for slug (#8659) 2025-07-02 12:20:21 +00:00
dependabot[bot]
e606b90ed2
build(deps-dev): bump prettier from 3.5.3 to 3.6.2 in /backend (#8729)
---
updated-dependencies:
- dependency-name: prettier
  dependency-version: 3.6.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-02 10:41:16 +02:00
dependabot[bot]
eb33e6cb08
build(deps-dev): bump eslint-import-resolver-typescript in /backend (#8725)
---
updated-dependencies:
- dependency-name: eslint-import-resolver-typescript
  dependency-version: 4.4.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-01 19:23:53 +00:00
dependabot[bot]
a1dede81c4
build(deps-dev): bump @types/lodash from 4.17.18 to 4.17.19 in /backend (#8727)
---
updated-dependencies:
- dependency-name: "@types/lodash"
  dependency-version: 4.17.19
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-01 19:06:12 +00:00
dependabot[bot]
a6ceedb02d
build(deps-dev): bump eslint-plugin-prettier in /backend (#8728)
---
updated-dependencies:
- dependency-name: eslint-plugin-prettier
  dependency-version: 5.5.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-01 18:29:34 +00:00
dependabot[bot]
eba43c5e9b
build(deps): bump node from 24.2.0-alpine to 24.3.0-alpine in /backend (#8730)
Bumps node from 24.2.0-alpine to 24.3.0-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-version: 24.3.0-alpine
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-01 14:35:02 +00:00
dependabot[bot]
553a64ba76
build(deps): bump peter-evans/repository-dispatch (#8731)
Bumps [peter-evans/repository-dispatch](https://github.com/peter-evans/repository-dispatch) from e58f0e551cf92535579bb196c65d215dc5bbdbc2 to 25237563b45ca02acc9f277837f7e17abc0a48a9.
- [Release notes](https://github.com/peter-evans/repository-dispatch/releases)
- [Commits](e58f0e551c...25237563b4)

---
updated-dependencies:
- dependency-name: peter-evans/repository-dispatch
  dependency-version: 25237563b45ca02acc9f277837f7e17abc0a48a9
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-07-01 16:17:38 +02:00
Moriz Wahl
8ae4e309c3
fix(backend): mask jwt token in log (#8737) 2025-07-01 14:41:45 +02:00
Robert Schäfer
c9b429878a
refactor(backend): fix tests for #8714 (#8716)
This fixes the tests for #8714.

The Images type now has the callbacks only for backwards compatibility with local uploads. Next step is to remove the obsolete code and make S3 configuration parameters required.
2025-06-30 10:18:21 +00:00
Max
32927ea96e
fix(backend): refactor S3 usage and always apply protocol fix (#8714)
- Cleanup s3 code, so we use the same code for uploading files in chat and images in posts.
- Protocol is added to the location, when missing
2025-06-30 11:59:57 +02:00
mahula
3730be6414
refactor(docker): neo4j image naming inconsistency in docker compose files (#8736)
* refactor neo4j image naming inconsistency in docker compose files

* add explicit building of neo4j image to backend preparation e2e test

* fix build target neo4j building job

* fix build target for neo4j building job

* fix naming inconsistenca in backend workflow jobs

* refactor docker compose commands in backend test workflow

* rename custom neo4j docker images according to their naming standards

* rename custom neo4j docker images according to their naming standards
2025-06-30 11:14:21 +02:00
Moriz Wahl
f3788b84a5
feat(backend): all db node properties (#8635)
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-06-25 21:21:41 +02:00
Moriz Wahl
4eff0fb497
fix(webapp): catch possibe errors on request geolocation (#8640)
* catch possibe errors on request geolocation

* proper toast error

* remove deprecated request package, use node fetch instead, set timeout

---------

Co-authored-by: Max <maxharz@gmail.com>
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-06-25 17:45:46 +00:00
Max
a8de785783
Fix video player in Safari (#8711)
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-06-25 15:27:32 +00:00
Max
192bedf95a
fix(webapp): fix property access of possibly undefined objects (#8639)
* Fix property access of possibly undefined objects
2025-06-25 11:58:53 +00:00
Max
2a54dc9664
Build source maps (#8695)
Builds source maps, so we can debug our frontend code on stage and production.
2025-06-25 13:24:46 +02:00
Moriz Wahl
75d106e847
feat(devops): tool versions (#8709) 2025-06-23 11:50:42 +02:00
dependabot[bot]
4a55929deb
build(deps-dev): bump eslint-plugin-prettier in /webapp (#8699)
Bumps [eslint-plugin-prettier](https://github.com/prettier/eslint-plugin-prettier) from 5.4.1 to 5.5.0.
- [Release notes](https://github.com/prettier/eslint-plugin-prettier/releases)
- [Changelog](https://github.com/prettier/eslint-plugin-prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/eslint-plugin-prettier/compare/v5.4.1...v5.5.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-prettier
  dependency-version: 5.5.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-21 21:18:25 +00:00
dependabot[bot]
f651bcb7ec
build(deps): bump peter-evans/repository-dispatch (#8701)
Bumps [peter-evans/repository-dispatch](https://github.com/peter-evans/repository-dispatch) from 0eae9e597ebc81bcc8c2220e34ddff4bc7c769b3 to e58f0e551cf92535579bb196c65d215dc5bbdbc2.
- [Release notes](https://github.com/peter-evans/repository-dispatch/releases)
- [Commits](0eae9e597e...e58f0e551c)

---
updated-dependencies:
- dependency-name: peter-evans/repository-dispatch
  dependency-version: e58f0e551cf92535579bb196c65d215dc5bbdbc2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-21 19:56:52 +02:00
dependabot[bot]
f5253af447
build(deps): bump the metascraper group across 1 directory with 12 updates (#8572)
Bumps the metascraper group with 12 updates in the /backend directory:

| Package | From | To |
| --- | --- | --- |
| [metascraper](https://github.com/microlinkhq/metascraper) | `5.46.11` | `5.46.15` |
| [metascraper-author](https://github.com/microlinkhq/metascraper) | `5.46.11` | `5.46.15` |
| [metascraper-date](https://github.com/microlinkhq/metascraper/tree/HEAD/packages/metascraper-date) | `5.46.11` | `5.46.15` |
| [metascraper-description](https://github.com/microlinkhq/metascraper/tree/HEAD/packages/metascraper-description) | `5.46.11` | `5.46.15` |
| [metascraper-image](https://github.com/microlinkhq/metascraper/tree/HEAD/packages/metascraper-image) | `5.46.11` | `5.46.15` |
| [metascraper-lang](https://github.com/microlinkhq/metascraper/tree/HEAD/packages/metascraper-lang) | `5.46.11` | `5.46.15` |
| [metascraper-logo](https://github.com/microlinkhq/metascraper/tree/HEAD/packages/metascraper-logo) | `5.46.11` | `5.46.15` |
| [metascraper-publisher](https://github.com/microlinkhq/metascraper/tree/HEAD/packages/metascraper-publisher) | `5.46.11` | `5.46.15` |
| [metascraper-title](https://github.com/microlinkhq/metascraper) | `5.46.11` | `5.46.15` |
| [metascraper-url](https://github.com/microlinkhq/metascraper) | `5.46.11` | `5.46.15` |
| [metascraper-video](https://github.com/microlinkhq/metascraper/tree/HEAD/packages/metascraper-video) | `5.46.11` | `5.46.15` |
| [metascraper-youtube](https://github.com/microlinkhq/metascraper/tree/HEAD/packages/metascraper-youtube) | `5.46.11` | `5.46.15` |



Updates `metascraper` from 5.46.11 to 5.46.15
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/compare/v5.46.11...v5.46.15)

Updates `metascraper-author` from 5.46.11 to 5.46.15
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/compare/v5.46.11...v5.46.15)

Updates `metascraper-date` from 5.46.11 to 5.46.15
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/packages/metascraper-date/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/commits/v5.46.15/packages/metascraper-date)

Updates `metascraper-description` from 5.46.11 to 5.46.15
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/packages/metascraper-description/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/commits/v5.46.15/packages/metascraper-description)

Updates `metascraper-image` from 5.46.11 to 5.46.15
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/packages/metascraper-image/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/commits/v5.46.15/packages/metascraper-image)

Updates `metascraper-lang` from 5.46.11 to 5.46.15
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/packages/metascraper-lang/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/commits/v5.46.15/packages/metascraper-lang)

Updates `metascraper-logo` from 5.46.11 to 5.46.15
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/packages/metascraper-logo/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/commits/v5.46.15/packages/metascraper-logo)

Updates `metascraper-publisher` from 5.46.11 to 5.46.15
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/packages/metascraper-publisher/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/commits/v5.46.15/packages/metascraper-publisher)

Updates `metascraper-title` from 5.46.11 to 5.46.15
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/compare/v5.46.11...v5.46.15)

Updates `metascraper-url` from 5.46.11 to 5.46.15
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/compare/v5.46.11...v5.46.15)

Updates `metascraper-video` from 5.46.11 to 5.46.15
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/packages/metascraper-video/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/commits/v5.46.15/packages/metascraper-video)

Updates `metascraper-youtube` from 5.46.11 to 5.46.15
- [Release notes](https://github.com/microlinkhq/metascraper/releases)
- [Changelog](https://github.com/microlinkhq/metascraper/blob/master/packages/metascraper-youtube/CHANGELOG.md)
- [Commits](https://github.com/microlinkhq/metascraper/commits/v5.46.15/packages/metascraper-youtube)

---
updated-dependencies:
- dependency-name: metascraper
  dependency-version: 5.46.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
- dependency-name: metascraper-author
  dependency-version: 5.46.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
- dependency-name: metascraper-date
  dependency-version: 5.46.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
- dependency-name: metascraper-description
  dependency-version: 5.46.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
- dependency-name: metascraper-image
  dependency-version: 5.46.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
- dependency-name: metascraper-lang
  dependency-version: 5.46.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
- dependency-name: metascraper-logo
  dependency-version: 5.46.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
- dependency-name: metascraper-publisher
  dependency-version: 5.46.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
- dependency-name: metascraper-title
  dependency-version: 5.46.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
- dependency-name: metascraper-url
  dependency-version: 5.46.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
- dependency-name: metascraper-video
  dependency-version: 5.46.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
- dependency-name: metascraper-youtube
  dependency-version: 5.46.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: metascraper
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-21 17:31:27 +00:00
dependabot[bot]
6c1113dcbf
build(deps): bump @aws-sdk/client-s3 from 3.828.0 to 3.832.0 in /backend (#8708)
Bumps [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) from 3.828.0 to 3.832.0.
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.832.0/clients/client-s3)

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.832.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-21 07:38:48 +00:00
dependabot[bot]
9458d5113a
build(deps): bump linkifyjs from 4.2.0 to 4.3.1 in /backend (#8531)
Bumps [linkifyjs](https://github.com/nfrasser/linkifyjs/tree/HEAD/packages/linkifyjs) from 4.2.0 to 4.3.1.
- [Release notes](https://github.com/nfrasser/linkifyjs/releases)
- [Changelog](https://github.com/nfrasser/linkifyjs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/nfrasser/linkifyjs/commits/v4.3.1/packages/linkifyjs)

---
updated-dependencies:
- dependency-name: linkifyjs
  dependency-version: 4.3.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-21 07:14:10 +00:00
dependabot[bot]
2c07178c1b
build(deps-dev): bump @types/node from 24.0.1 to 24.0.3 in /backend (#8707)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 24.0.1 to 24.0.3.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.0.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-21 06:47:19 +00:00
dependabot[bot]
48ed8e8064
build(deps-dev): bump @types/lodash from 4.17.17 to 4.17.18 in /backend (#8702)
Bumps [@types/lodash](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/lodash) from 4.17.17 to 4.17.18.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/lodash)

---
updated-dependencies:
- dependency-name: "@types/lodash"
  dependency-version: 4.17.18
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-21 06:21:45 +00:00
dependabot[bot]
57d728a891
build(deps-dev): bump the cypress group across 1 directory with 3 updates (#8698)
Bumps the cypress group with 3 updates in the / directory: [@badeball/cypress-cucumber-preprocessor](https://github.com/badeball/cypress-cucumber-preprocessor), [cypress](https://github.com/cypress-io/cypress) and [multiple-cucumber-html-reporter](https://github.com/WasiqB/multiple-cucumber-html-reporter).


Updates `@badeball/cypress-cucumber-preprocessor` from 22.0.1 to 22.1.0
- [Release notes](https://github.com/badeball/cypress-cucumber-preprocessor/releases)
- [Changelog](https://github.com/badeball/cypress-cucumber-preprocessor/blob/master/CHANGELOG.md)
- [Commits](https://github.com/badeball/cypress-cucumber-preprocessor/compare/v22.0.1...v22.1.0)

Updates `cypress` from 14.4.1 to 14.5.0
- [Release notes](https://github.com/cypress-io/cypress/releases)
- [Changelog](https://github.com/cypress-io/cypress/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/cypress-io/cypress/compare/v14.4.1...v14.5.0)

Updates `multiple-cucumber-html-reporter` from 3.9.2 to 3.9.3
- [Release notes](https://github.com/WasiqB/multiple-cucumber-html-reporter/releases)
- [Changelog](https://github.com/WasiqB/multiple-cucumber-html-reporter/blob/main/CHANGELOG.md)
- [Commits](https://github.com/WasiqB/multiple-cucumber-html-reporter/compare/v3.9.2...v3.9.3)

---
updated-dependencies:
- dependency-name: "@badeball/cypress-cucumber-preprocessor"
  dependency-version: 22.1.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: cypress
- dependency-name: cypress
  dependency-version: 14.5.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: cypress
- dependency-name: multiple-cucumber-html-reporter
  dependency-version: 3.9.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: cypress
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-21 08:01:42 +02:00
Wolfgang Huß
aab14b7aa5
chore(other): set some 'nvm' versions to '24.2.0' (#8691)
* Set some 'nvm' versions to '24.2.0'
2025-06-20 19:55:25 +00:00
Max
cc96698300
Put message creation in a transaction with file uploads to avoid empty messages (#8694)
Co-authored-by: Wolfgang Huß <wolle.huss@pjannto.com>
2025-06-20 18:32:00 +00:00
Max
4a42d22692
fix(webapp): better chat upload ui (#8693)
* Fix date formatting of transmitting message

* Avoid duplicate key; fix formatting
2025-06-20 20:10:23 +02:00
Wolfgang Huß
a912a353e4
Release v3.10.1 (#8692) 2025-06-19 13:44:02 +00:00
Moriz Wahl
3216b50d1a
feat(backend): logger (#8655)
* add logger to context

* add apollo logger

* apollo logger plugin must be set on createServer to avoid spam in unit tests
2025-06-19 12:59:15 +00:00
Max
252b4a037f
fix(webapp): show hint that message is being saved (#8690)
* Show hint that message is being saved

* Translate transmitting message
2025-06-19 14:40:11 +02:00
sebastian2357
2b457a5823
fix(webapp): added timer (#8658) 2025-06-19 11:37:03 +00:00
Max
915091286a
Keep correct file extension for audio captures (voice chat) (#8687)
Problem:
When audio is directly recorded to chat, it has the correct file extension in its name ("audio.mp3"). The file object we get doesn't have an extension property though, so the file name after our modification would be "audio.mp3.undefined". Safari doesn't accept this as audio source, and I hate to say it, but I agree.

So if there is no extension, keep the existing one. Problem solved.
2025-06-19 11:03:22 +00:00
Max
d656ac00a1
Add protocol if missing (#8689)
Apparently Hetzner returns locations without protocol. So we add it if necessary.
2025-06-19 12:43:06 +02:00
Max
b23aecc258
Avoid slider error (#8686) 2025-06-17 12:03:56 +00:00
Moriz Wahl
7de877fef6
fix(webapp): on translation not found must be a function (#8685) 2025-06-16 15:34:05 +00:00
61c1cc965a
v3.10.0 (#8683) 2025-06-16 00:51:57 +02:00
dependabot[bot]
1ddbdce3fc
build(deps): bump nodemailer from 6.10.1 to 7.0.3 in /backend (#8527)
Bumps [nodemailer](https://github.com/nodemailer/nodemailer) from 6.10.1 to 7.0.3.
- [Release notes](https://github.com/nodemailer/nodemailer/releases)
- [Changelog](https://github.com/nodemailer/nodemailer/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodemailer/nodemailer/compare/v6.10.1...v7.0.3)

---
updated-dependencies:
- dependency-name: nodemailer
  dependency-version: 7.0.3
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-15 10:55:37 +00:00
dependabot[bot]
9af7cdb1c9
build(deps): bump cheerio from 1.0.0 to 1.1.0 in /backend (#8669)
Bumps [cheerio](https://github.com/cheeriojs/cheerio) from 1.0.0 to 1.1.0.
- [Release notes](https://github.com/cheeriojs/cheerio/releases)
- [Commits](https://github.com/cheeriojs/cheerio/compare/v1.0.0...v1.1.0)

---
updated-dependencies:
- dependency-name: cheerio
  dependency-version: 1.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-15 10:09:15 +00:00
dependabot[bot]
765838f6bf
build(deps): bump minimatch from 9.0.5 to 10.0.3 in /backend (#8673)
Bumps [minimatch](https://github.com/isaacs/minimatch) from 9.0.5 to 10.0.3.
- [Changelog](https://github.com/isaacs/minimatch/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/minimatch/compare/v9.0.5...v10.0.3)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-version: 10.0.3
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-15 09:32:33 +00:00
6956473ea5
fix(webapp): filenames for chat files (#8680)
* filenames for chat files

* remove console log
2025-06-15 09:13:14 +00:00
dependabot[bot]
7763ca6a7d
build(deps): bump @aws-sdk/lib-storage in /backend (#8667)
Bumps [@aws-sdk/lib-storage](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/lib/lib-storage) from 3.817.0 to 3.826.0.
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/lib/lib-storage/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.826.0/lib/lib-storage)

---
updated-dependencies:
- dependency-name: "@aws-sdk/lib-storage"
  dependency-version: 3.826.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-15 10:52:10 +02:00
dependabot[bot]
5f4be87e82
build(deps-dev): bump ts-jest from 29.3.4 to 29.4.0 in /backend (#8668)
Bumps [ts-jest](https://github.com/kulshekhar/ts-jest) from 29.3.4 to 29.4.0.
- [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.3.4...v29.4.0)

---
updated-dependencies:
- dependency-name: ts-jest
  dependency-version: 29.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-15 08:18:17 +00:00
dependabot[bot]
410d31b3d0
build(deps): bump node from 24.1.0-alpine to 24.2.0-alpine in /backend (#8664)
Bumps node from 24.1.0-alpine to 24.2.0-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-version: 24.2.0-alpine
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-15 00:04:27 +00:00
dependabot[bot]
87cc28f144
build(deps): bump @types/mime-types from 2.1.4 to 3.0.1 in /backend (#8671)
Bumps [@types/mime-types](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mime-types) from 2.1.4 to 3.0.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/mime-types)

---
updated-dependencies:
- dependency-name: "@types/mime-types"
  dependency-version: 3.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-14 23:16:14 +00:00
dependabot[bot]
1092be9edc
build(deps-dev): bump @types/node from 22.15.30 to 24.0.1 in /backend (#8670)
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 22.15.30 to 24.0.1.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 24.0.1
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-14 22:55:43 +00:00
dependabot[bot]
f13822543e
build(deps-dev): bump eslint-plugin-jest in /backend (#8672)
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 28.13.0 to 28.13.5.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v28.13.0...v28.13.5)

---
updated-dependencies:
- dependency-name: eslint-plugin-jest
  dependency-version: 28.13.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-14 22:36:02 +00:00
dependabot[bot]
9674c31fd7
build(deps-dev): bump eslint-plugin-n in /backend (#8674)
Bumps [eslint-plugin-n](https://github.com/eslint-community/eslint-plugin-n) from 17.19.0 to 17.20.0.
- [Release notes](https://github.com/eslint-community/eslint-plugin-n/releases)
- [Changelog](https://github.com/eslint-community/eslint-plugin-n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint-community/eslint-plugin-n/compare/v17.19.0...v17.20.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-n
  dependency-version: 17.20.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-14 09:34:36 +00:00
dependabot[bot]
45ac2de313
build(deps): bump @aws-sdk/client-s3 from 3.826.0 to 3.828.0 in /backend (#8675)
Bumps [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) from 3.826.0 to 3.828.0.
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.828.0/clients/client-s3)

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.828.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-14 11:06:00 +02:00
a0c205b379
feat(backend): file upload chat backend (#8657)
* Prepare image uploads in chat

* files instead of images

* Fix file type and query

* Add dummy data to resolver

* fix graphql types

* Fix file upload, remove unncessary code

* Re-add fetch

* Fix room order after sent message

* Update backend/src/graphql/queries/messageQuery.ts

* Move room to top of list when a message is received

* working prototype chat file upload

* remove console

* allow to upload all kinds of files

* multiple images

* revert changes in S3 Images

* tag mimetype

* accept any file

* lint fix

* remove snapshot flakyness

* remove whitelist test

* fix messages spec

* fix query

* more query fixes

* fix seed

* made message resolver tests independent

* lint

* started specc for attachments

* more tests & fixes

* fix empty room error

* remove console logs

* fix tests

* fix createRoom last Messsage error properly

* lint fixes

* reduce changeset

* simplify config check

* reduce changeset

* missing change

* allow speech capture

* Fix file download

* Implement proper download

---------

Co-authored-by: Maximilian Harz <maxharz@gmail.com>
2025-06-13 19:02:37 +00:00
e6d3e5132e
refactor(backend): reduce seed time (#8662)
* reduce seed time

- only 1000 additional users
- chat only for 100 additional users
- logs to see where its at

* lint
2025-06-13 10:57:49 +00:00
0365cee45e
v3.9.0 (#8661) 2025-06-11 20:19:54 +02:00
sebastian2357
b1c19d0c94
fix(webapp): optimize registration layout (#8630)
* - fixed nowrap for button
- restyled bullets for slider
- relocated back links
- removed icons

* - removed icon from RegistrationSlideEmail too

* - added media query for padding

* - fixed missing constants

* - fixed padding in no-header layout

* - fixed sticky footer in registration flow

* - removed icons from inputs

* - set fixed height for back link

* - fixed invite code placeholder

* - added auto submit to invite and email code forms
- fixed layout password inputs
- added layout to checkboxes (create)
- removed unnecessary texts
- moved backLink for password-reset
- tidied up create layout

* fixed margin

* - fixed nonceLength

* lint fixes

* corrected path

---------

Co-authored-by: Sebastian Stein <sebastian@codepassion.de>
Co-authored-by: Ulf Gebhardt <ulf.gebhardt@webcraft-media.de>
2025-06-11 16:45:03 +00:00
a0e4b49833
fix(webapp): fix group performance (#8656)
* seed more Yoga group members

* implement groupMembers pagination

* load limited amount of group members

* force show all members in group member list

* remove unused import

* - added virtual scrolling to ProfileList

* - fixed linter error

* load all when clicking the button

* seed 3000 users

* cleanup

* lint

* hide search when not all members are visible

* fix email factory

* - increased profileListVisibleCount to 6

---------

Co-authored-by: Sebastian Stein <sebastian@codepassion.de>
2025-06-11 17:46:57 +02:00
dependabot[bot]
6ae392b6e3
build(deps): bump @aws-sdk/client-s3 from 3.817.0 to 3.826.0 in /backend (#8647)
Bumps [@aws-sdk/client-s3](https://github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3) from 3.817.0 to 3.826.0.
- [Release notes](https://github.com/aws/aws-sdk-js-v3/releases)
- [Changelog](https://github.com/aws/aws-sdk-js-v3/blob/main/clients/client-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-js-v3/commits/v3.826.0/clients/client-s3)

---
updated-dependencies:
- dependency-name: "@aws-sdk/client-s3"
  dependency-version: 3.826.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-09 19:53:34 +00:00
dependabot[bot]
2d0361b811
build(deps-dev): bump eslint-plugin-n in /backend (#8646)
Bumps [eslint-plugin-n](https://github.com/eslint-community/eslint-plugin-n) from 17.17.0 to 17.19.0.
- [Release notes](https://github.com/eslint-community/eslint-plugin-n/releases)
- [Changelog](https://github.com/eslint-community/eslint-plugin-n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint-community/eslint-plugin-n/compare/v17.17.0...v17.19.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-n
  dependency-version: 17.19.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-09 21:34:46 +02:00
dependabot[bot]
c40a6f2a0e
build(deps-dev): bump eslint-plugin-jest in /backend (#8648)
Bumps [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) from 28.12.0 to 28.13.0.
- [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases)
- [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v28.12.0...v28.13.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-jest
  dependency-version: 28.13.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-09 18:58:38 +00:00
Robert Schäfer
bdb3c204aa
Merge pull request #194 from Human-Connection/update-version
Update version to 0.5.22
2019-12-09 14:56:04 +01:00
Alina Beck
8be9662987
Update version to 0.5.22 2019-12-09 15:49:33 +03:00
Robert Schäfer
7ef8340500
Merge pull request #190 from Human-Connection/load-svgs-with-babel
Use babel-loader to transpile svgs
2019-12-06 12:33:07 +01:00
Alina Beck
5d6391f505 use babel loader to transpile svgs
IE and Edge had trouble loading the Human Connection network
because object spread operators were left in the minified code
using babel-loader for svgs (as suggested in the vue-svg-loader docs)
hopefully solves this issue
2019-12-05 13:07:45 +03:00
Robert Schäfer
d46fc1570c
Merge pull request #176 from hwilson2563/master
add a xxx-small box to space
2019-10-08 01:48:11 +02:00
Hilary Matusiak
c752e25221 add a xxx-small box to space 2019-10-04 11:46:06 -04:00
Alina Beck
808b3c5a95
Merge pull request #155 from Human-Connection/update_version
Update version to 0.5.21
2019-09-09 18:04:32 +01:00
roschaefer
b05583a8b0 Implement a custom deployment condition via bash 2019-09-09 16:16:29 +02:00
roschaefer
90f747a2a9 Don't deploy if you're not on master
Thank you:
https://github.com/travis-ci/travis-ci/issues/5419#issuecomment-222815942
2019-09-09 15:59:52 +02:00
roschaefer
3d85451aff Update version to 0.5.21 2019-09-09 15:59:52 +02:00
Robert Schäfer
8dafc50286
Merge pull request #154 from Human-Connection/deploy_github_pages_through_travis
Deploy Github pages through Travis CI
2019-09-09 13:02:11 +02:00
roschaefer
0b6360bc0b Deploy Github pages through Travis CI
This solves two problems
* It automatically deploys the documentation
* It deploys the documentation only if the npm package is deployed (ie.
if there is a git tag) and keeps both in sync
2019-09-09 12:59:11 +02:00
Robert Schäfer
2ad4602de3
Merge pull request #153 from Human-Connection/update_all_dependencies
Update all dependencies except `sass-loader`
2019-09-09 12:28:02 +02:00
roschaefer
80eb430460 Update all dependencies except sass-loader
We want to make another release and had a look which dependabot PR was
green. So I just updated the green dependencies manually and had a look
if anything breaks.

Again it would be great to have a build server and a reliable test suite.
2019-09-09 12:22:32 +02:00
Robert Schäfer
aa772ca19f
Merge pull request #149 from Human-Connection/dependabot/npm_and_yarn/sass-loader-8.0.0
Bump sass-loader from 7.2.0 to 8.0.0
2019-09-09 12:20:18 +02:00
Alina Beck
94c0ed83d9 use renamed sass-loader prependData option 2019-09-09 11:16:14 +01:00
Robert Schäfer
ac960d8ecd
Merge pull request #137 from Human-Connection/dependabot/npm_and_yarn/babel-jest-24.9.0
Bump babel-jest from 24.8.0 to 24.9.0
2019-09-09 12:04:12 +02:00
Robert Schäfer
0889e137d9
Merge pull request #144 from Human-Connection/dependabot/npm_and_yarn/vue/cli-plugin-unit-jest-3.11.0
Bump @vue/cli-plugin-unit-jest from 3.10.0 to 3.11.0
2019-09-09 12:03:31 +02:00
Robert Schäfer
66c049544e
Merge pull request #152 from Human-Connection/fix-grid-component
Fix grid component
2019-09-09 11:59:05 +02:00
Alina Beck
dc4ce74b21 add missing )) 2019-09-04 17:45:20 +01:00
dependabot-preview[bot]
e0d3717ca0
Bump sass-loader from 7.2.0 to 8.0.0
Bumps [sass-loader](https://github.com/webpack-contrib/sass-loader) from 7.2.0 to 8.0.0.
- [Release notes](https://github.com/webpack-contrib/sass-loader/releases)
- [Changelog](https://github.com/webpack-contrib/sass-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/sass-loader/compare/v7.2.0...v8.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-30 04:20:00 +00:00
Grzegorz Leoniec
73195606fb Bump version 2019-08-25 12:48:11 +02:00
Grzegorz Leoniec
e6fe9ba4b7 Commit phantom changes 2019-08-25 12:47:49 +02:00
Grzegorz Leoniec
3c65a2426c Updated docs 2019-08-25 12:44:49 +02:00
Grzegorz Leoniec
c9d969afc6 Fixed font issues 2019-08-25 12:20:16 +02:00
dependabot-preview[bot]
573890102f
Bump @vue/cli-plugin-unit-jest from 3.10.0 to 3.11.0
Bumps [@vue/cli-plugin-unit-jest](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-unit-jest) from 3.10.0 to 3.11.0.
- [Release notes](https://github.com/vuejs/vue-cli/releases)
- [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-cli/commits/v3.11.0/packages/@vue/cli-plugin-unit-jest)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-22 04:23:15 +00:00
Robert Schäfer
64389852c4
Merge pull request #140 from Human-Connection/deploy_github_page
Deploy GitHub page
2019-08-21 12:00:15 +02:00
roschaefer
2536542aa9 Rebuild the docs/
Update the deployed docs at https://styleguide.human-connection.org/ via
Github pages.
2019-08-21 00:32:28 +02:00
roschaefer
bcad113682 Add missing http-server to dev dependencies
We cannot assume it to be installed globally.
2019-08-21 00:16:23 +02:00
dependabot-preview[bot]
208bfc1550
Bump babel-jest from 24.8.0 to 24.9.0
Bumps [babel-jest](https://github.com/facebook/jest/tree/HEAD/packages/babel-jest) from 24.8.0 to 24.9.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v24.9.0/packages/babel-jest)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-19 04:28:01 +00:00
Alina Beck
be4d526505 bump version to 0.5.19 2019-08-15 17:12:48 +01:00
Alina Beck
9e49afaac3
Merge pull request #131 from Human-Connection/add-grid-layout
Add grid component
2019-08-15 17:08:24 +01:00
roschaefer
79cbcf2901 Update to 0.5.18
dependency updates
2019-08-15 17:29:48 +02:00
roschaefer
f83a13c7f2 Update transitive dependencies
Should fix our security vulnerabilities
2019-08-15 17:29:04 +02:00
Robert Schäfer
f87d8dacfd
Merge pull request #122 from Human-Connection/dependabot/npm_and_yarn/remarkable-1.7.4
[Security] Bump remarkable from 1.7.1 to 1.7.4
2019-08-15 17:18:59 +02:00
dependabot-preview[bot]
461a762205
[Security] Bump remarkable from 1.7.1 to 1.7.4
Bumps [remarkable](https://github.com/jonschlinkert/remarkable) from 1.7.1 to 1.7.4. **This update includes security fixes.**
- [Release notes](https://github.com/jonschlinkert/remarkable/releases)
- [Changelog](https://github.com/jonschlinkert/remarkable/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jonschlinkert/remarkable/compare/1.7.1...v1.7.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-08-15 15:11:41 +00:00
Robert Schäfer
9d5cb51ed5
Merge pull request #134 from Human-Connection/massive_update
Update all packages with `ncu -u`
2019-08-15 17:10:10 +02:00
roschaefer
e6352cc6fb Update all packages with ncu -u
And fix another bug: require(...).default returns the string content
of the file.
2019-08-15 16:07:16 +02:00
Robert Schäfer
57fe905a96
Merge pull request #133 from Human-Connection/fix_build_errors
Fix build errors
2019-08-15 15:51:39 +02:00
roschaefer
79a8fc5f5f Fix javascript runtime errors
I could see a warning about duplicate keys on the `Chip` page, also
there seems to be a missing check if a param is null (I used a default).
2019-08-15 15:46:29 +02:00
roschaefer
3d41d811d2 Update the minimum of package to get a build
I was not able to build the styleguide on my machine. This commit allows
me to get at least to http://127.0.0.1:8080/ to see some components.

Here are my specs:
```sh
robert@e480 ~> node --version
v12.7.0
robert@e480 ~> yarn --version
1.17.3
robert@e480 ~> cat /proc/version
Linux version 5.2.6-arch1-1-ARCH (builduser@heftig-3961) (gcc version 9.1.0 (GCC)) #1 SMP PREEMPT Sun Aug 4 14:58:49 UTC 2019
```
2019-08-15 15:43:46 +02:00
Alina Beck
df7b736f5d add validator function for grid gap 2019-08-14 15:29:48 +01:00
Alina Beck
3f4a8a543e pass numbers as numbers 2019-08-14 15:22:08 +01:00
Alina Beck
3fa3d6f5c4 use design tokens for grid gap 2019-08-14 12:28:17 +01:00
Alina Beck
4edb8cd541 add grid item to grid docs 2019-08-13 19:08:27 +01:00
Alina Beck
f51890a54f adjust default values, add docs 2019-08-13 18:58:28 +01:00
Alina Beck
b730b91e2c set placeholder height to 100% 2019-08-13 17:54:17 +01:00
Alina Beck
2ccaeb6166 add grid item component 2019-08-13 17:34:35 +01:00
Alina Beck
3a93d9abb3 add grid component 2019-08-13 16:23:44 +01:00
6f1d94610e
Merge pull request #84 from Human-Connection/2019/kw19/fix_form_user_input_event
2019/kw19/fix_form_user_input_event
2019-05-07 20:04:25 +02:00
d70d331e6f
implemented input-valid ad input events to enable notification of every userinput, field match example, fixed console output handling, added ulfgebhardt to the authors, version bump to 0.5.17 2019-05-07 19:59:08 +02:00
396e08127a
Merge pull request #83 from Human-Connection/2019/kw19/fix_form_user_input_event
2019/kw19/fix_form_user_input_event
2019-05-07 14:31:57 +02:00
059072982f
bump version from 0.5.15 to 0.5.16 2019-05-07 13:36:27 +02:00
8da1d99e33
Merge pull request #82 from Human-Connection/2019/kw19/windows_lineendings
2019/kw19/windows_lineendings
2019-05-07 13:21:07 +02:00
bbbf051026
fixed user input event to be fired correctly, added reset event 2019-05-07 13:20:50 +02:00
5e9e55f00e
gitattributes lf 2019-05-06 16:50:22 +02:00
Grzegorz Leoniec
3f7a00b8b9
Use online instead of is-online on avatar 2019-03-15 17:48:16 +01:00
Grzegorz Leoniec
e76fed663c
Fixed some avatar styling 2019-03-15 13:36:35 +01:00
Grzegorz Leoniec
c8002a2b9a
Fixed avatar styling in conjunction with the size values 2019-03-15 13:29:30 +01:00
Grzegorz Leoniec
b3bde1aa2a
Added fixed size to avatar component 2019-03-15 11:24:37 +01:00
Grzegorz Leoniec
9b8ac8f1b3
Fixed avatar and added online status 2019-03-14 21:03:28 +01:00
Grzegorz Leoniec
baf3134f9d
Push 0.5.15 2019-03-12 15:25:32 +01:00
Grzegorz Leoniec
19a6badd55
Upgrade docs 2019-03-12 15:25:07 +01:00
Grzegorz Leoniec
bc3e3875e8
Update browser list 2019-03-12 15:24:53 +01:00
Grzegorz Leoniec
fe536b626f
0.5.14 2019-03-12 10:47:33 +01:00
Grzegorz Leoniec
4e43be4ff6
Merge branch 'master' of github.com:Human-Connection/Nitro-Styleguide 2019-03-12 10:47:02 +01:00
Grzegorz Leoniec
da22c5869a
Try to fix build issue 2019-03-12 10:46:49 +01:00
Grzegorz Leoniec
e77754cb78
Fixed npm badge 2019-03-11 20:48:12 +01:00
Grzegorz Leoniec
319f6a90f7
Try to fix some issues 0.5.12 2019-03-11 20:44:51 +01:00
Grzegorz Leoniec
562fddb1b4
Fixed docs 2019-03-11 11:21:36 +01:00
Grzegorz Leoniec
e7c25e15ed
Updated docs 2019-03-11 11:13:42 +01:00
Grzegorz Leoniec
ce20d5b58e
Update README.md 2019-03-09 08:59:51 +01:00
Grzegorz Leoniec
de26ce29e6
Added npm badge 2019-03-09 08:57:11 +01:00
Grzegorz Leoniec
fd83399e70
Merge pull request #34 from Human-Connection/remove_portal
Remove vue-portal
2019-03-09 08:48:59 +01:00
Grzegorz Leoniec
a100c09ac5
Updated to 0.5.11 2019-03-09 08:47:20 +01:00
Robert Schäfer
f6fbe058f6 Remove occurences of vue-portal
I don't quite get the reason for having `vue-portal`. Maybe to ensure,
the modal get's rendered only once? If yes, then I would suggest to give
the user the responsibility to render only one modal at a time.
2019-03-09 01:41:33 +01:00
Robert Schäfer
02f34f0fcf Run git clean -dfx
deletes ignored but indexed files
2019-03-09 01:39:26 +01:00
Grzegorz Leoniec
ce69fe5cb7
Style fixes 2019-03-07 11:02:29 +01:00
Grzegorz Leoniec
b941bb24d8
Fixed HC Documentation link to point to nitro 2019-03-07 10:41:30 +01:00
Grzegorz Leoniec
58cb1ee096
Try to fix build 0.5.10 2019-03-07 10:35:59 +01:00
Grzegorz Leoniec
c64d6fbb83
Update to 0.5.9 2019-03-07 10:16:22 +01:00
Grzegorz Leoniec
702cd07171
Remove dist folder 2019-03-07 10:15:45 +01:00
Grzegorz Leoniec
ba27f81977
Fixing build and styleguide CNAME 2019-03-07 10:15:22 +01:00
Grzegorz Leoniec
900dad94ae
Updated docs 2019-03-07 10:15:00 +01:00
Grzegorz Leoniec
a98e22dba1
Bumped version to 0.5.8 2019-03-07 09:46:47 +01:00
Grzegorz Leoniec
e9eaafd067
Extend build by also using yarn build beside build:lib 2019-03-07 09:46:33 +01:00
Grzegorz Leoniec
21dd977bec
Fixed some linting issues 2019-03-07 09:46:08 +01:00
Grzegorz Leoniec
23cbd42d3f
Bumped version to 0.5.7 2019-03-06 20:13:19 +01:00
Grzegorz Leoniec
201de94230
Improved select input 2019-03-06 20:13:01 +01:00
Grzegorz Leoniec
273c0ca1a6
Bump version to 0.5.6 2019-03-06 19:05:37 +01:00
Grzegorz Leoniec
4f87a3feec
Bumped version to 0.5.5 2019-03-04 16:43:58 +01:00
Grzegorz Leoniec
dca1ea6c42
Fixed select behavior 2019-03-04 14:24:27 +01:00
Grzegorz Leoniec
01ca0a6d8b
Fixed search input behavior 2019-03-04 11:25:19 +01:00
Grzegorz Leoniec
4a574ee430
Added vue and vue-portal as peed dependencies 0.5.4 2019-03-01 10:35:05 +01:00
Grzegorz Leoniec
83da96f8c8
Bumped version to 0.5.3 2019-03-01 10:11:41 +01:00
Grzegorz Leoniec
b7371582dc
Fixed issue with select filtering 2019-03-01 10:10:56 +01:00
Grzegorz Leoniec
fbc3ee5658
Added .npmignore 2019-02-26 11:08:28 +01:00
Grzegorz Leoniec
4edea10b18
ignore icons _all icons in npm package 2019-02-26 10:47:44 +01:00
Grzegorz Leoniec
0bbaba189f
Missed to bumb version 2019-02-25 11:32:26 +01:00
Grzegorz Leoniec
a0189658a8
Making the package public 2019-02-25 11:31:40 +01:00
Grzegorz Leoniec
f4f16962d9
Merge branch 'master' of github.com:Human-Connection/Nitro-Styleguide 2019-02-25 11:28:23 +01:00
Grzegorz Leoniec
095b1539ad
Added deyplo config for npm 2019-02-25 11:27:38 +01:00
Grzegorz Leoniec
6a7256f0c1
Merge pull request #14 from Human-Connection/dependabot/npm_and_yarn/vue-and-vue-template-compiler-2.6.7
Bump vue and vue-template-compiler
2019-02-25 10:49:56 +01:00
dependabot[bot]
1a82e6edda
Bump vue and vue-template-compiler
Bumps [vue](https://github.com/vuejs/vue) and [vue-template-compiler](https://github.com/vuejs/vue). These dependencies needed to be updated together.

Updates `vue` from 2.6.6 to 2.6.7
- [Release notes](https://github.com/vuejs/vue/releases)
- [Commits](https://github.com/vuejs/vue/compare/v2.6.6...v2.6.7)

Updates `vue-template-compiler` from 2.6.6 to 2.6.7
- [Release notes](https://github.com/vuejs/vue/releases)
- [Commits](https://github.com/vuejs/vue/compare/v2.6.6...v2.6.7)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-25 09:46:00 +00:00
Grzegorz Leoniec
ffe1ceabf1
Fixing build 2019-02-25 10:43:47 +01:00
Grzegorz Leoniec
81bcdc87e3
Disable testing for now 2019-02-25 10:35:57 +01:00
Grzegorz Leoniec
85114b78d6
Added missing Icon 2019-02-25 09:58:29 +01:00
Grzegorz Leoniec
105ab19424
Merge branch 'master' of github.com:Human-Connection/Nitro-Styleguide 2019-02-25 09:55:04 +01:00
Grzegorz Leoniec
7a628d515d
Added editor icons 2019-02-25 09:54:54 +01:00
Grzegorz Leoniec
71258216f2
Update README.md 2019-02-25 08:41:19 +01:00
Grzegorz Leoniec
9c35a70e07
Update README.md 2019-02-25 08:23:56 +01:00
Grzegorz Leoniec
2a8fef8cb6
Try to fix build 2019-02-24 21:00:34 +01:00
Grzegorz Leoniec
3a879a954f
Try to fix build 2019-02-24 20:55:45 +01:00
Grzegorz Leoniec
aea2bb079e
Force yarn on before_install 2019-02-24 20:38:08 +01:00
Grzegorz Leoniec
bdeb23a428
Build as lib 2019-02-24 20:34:05 +01:00
Grzegorz Leoniec
58b3034fc8
Removing yarn service as its invalid 2019-02-24 20:31:50 +01:00
Grzegorz Leoniec
d68357c74d
Merge branch 'master' of github.com:Human-Connection/Nitro-Styleguide 2019-02-24 20:26:45 +01:00
Grzegorz Leoniec
c05e80420f
Fixing travis 2019-02-24 20:26:42 +01:00
Grzegorz Leoniec
2021531ab4
Merge pull request #6 from Human-Connection/dependabot/npm_and_yarn/@babel/standalone-7.3.3
Bump @babel/standalone from 7.3.2 to 7.3.3
2019-02-24 20:25:14 +01:00
Grzegorz Leoniec
fd15352390
Renamed travis.yml 2019-02-24 20:21:16 +01:00
Grzegorz Leoniec
86c8c30bd4
added travis build 2019-02-24 20:19:35 +01:00
dependabot[bot]
0d7fe46cc4
Bump @babel/standalone from 7.3.2 to 7.3.3
Bumps [@babel/standalone](https://github.com/babel/babel-standalone) from 7.3.2 to 7.3.3.
- [Release notes](https://github.com/babel/babel-standalone/releases)
- [Commits](https://github.com/babel/babel-standalone/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-24 19:17:13 +00:00
Grzegorz Leoniec
970613a416
Merge pull request #13 from Human-Connection/dependabot/npm_and_yarn/codemirror-5.44.0
Bump codemirror from 5.43.0 to 5.44.0
2019-02-24 20:14:26 +01:00
Grzegorz Leoniec
2e7acaa68b
Merge pull request #11 from Human-Connection/dependabot/npm_and_yarn/@vue/cli-plugin-unit-jest-3.4.1
Bump @vue/cli-plugin-unit-jest from 3.4.0 to 3.4.1
2019-02-24 20:14:03 +01:00
Grzegorz Leoniec
cc456da586
Merge pull request #16 from Human-Connection/search-input
Search input
2019-02-24 20:11:56 +01:00
Grzegorz Leoniec
47291993d2
Merge pull request #15 from Human-Connection/changes-for-editor
Improve input.js for editor use
2019-02-24 20:14:32 +01:00
Grzegorz Leoniec
58f40fbed8
Improve imput.js for editor use 2019-02-24 20:04:38 +01:00
Grzegorz Leoniec
3975ccfd71
Merge remote-tracking branch 'origin/master' into search-input 2019-02-24 17:22:08 +01:00
Grzegorz Leoniec
05dce9254c
added changes to use select as search input 2019-02-24 17:21:00 +01:00
dependabot[bot]
85c994e94c
Bump codemirror from 5.43.0 to 5.44.0
Bumps [codemirror](https://github.com/codemirror/CodeMirror) from 5.43.0 to 5.44.0.
- [Release notes](https://github.com/codemirror/CodeMirror/releases)
- [Changelog](https://github.com/codemirror/CodeMirror/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codemirror/CodeMirror/compare/5.43.0...5.44.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-22 04:44:32 +00:00
dependabot[bot]
ea16195296
Bump @vue/cli-plugin-unit-jest from 3.4.0 to 3.4.1
Bumps [@vue/cli-plugin-unit-jest](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-unit-jest) from 3.4.0 to 3.4.1.
- [Release notes](https://github.com/vuejs/vue-cli/releases)
- [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-cli/commits/v3.4.1/packages/@vue/cli-plugin-unit-jest)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-21 21:46:27 +00:00
dependabot[bot]
01d0d4819f
Merge pull request #12 from Human-Connection/dependabot/npm_and_yarn/theo-8.1.2 2019-02-21 21:42:59 +00:00
dependabot[bot]
3089f99312
Bump theo from 8.1.1 to 8.1.2
Bumps [theo](https://github.com/salesforce-ux/theo) from 8.1.1 to 8.1.2.
- [Release notes](https://github.com/salesforce-ux/theo/releases)
- [Changelog](https://github.com/salesforce-ux/theo/blob/master/CHANGELOG.md)
- [Commits](https://github.com/salesforce-ux/theo/compare/v8.1.1...v8.1.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-21 05:16:42 +00:00
Grzegorz Leoniec
c141674c65
Merge pull request #2 from Human-Connection/fix-missing-files
[WIP] Fix missing files
2019-02-16 10:33:36 +01:00
Grzegorz Leoniec
1a84af06ff
Reactivate source maps in production 2019-02-16 10:31:22 +01:00
Grzegorz Leoniec
da25934f4c
Remove generated files again 2019-02-16 10:28:54 +01:00
Grzegorz Leoniec
e767ee5870
Fixed build 2019-02-15 21:52:54 +01:00
Grzegorz Leoniec
746c48a35f
Try to fix build issues 2019-02-15 21:36:15 +01:00
Grzegorz Leoniec
8d759834e1
Stop fixing issues 2019-02-15 21:23:32 +01:00
Grzegorz Leoniec
f97029dc07
Do not automatically fix prettiere issues 2019-02-15 20:49:21 +01:00
Grzegorz Leoniec
2212cf70f5
Downgrade prettier 2019-02-15 20:40:03 +01:00
Grzegorz Leoniec
659c8b5106
Fixed missing files 2019-02-15 20:38:21 +01:00
Grzegorz Leoniec
3cdd06b252
Moved Styleguide to its own repo 2019-02-15 19:04:41 +01:00
1914 changed files with 63217 additions and 59142 deletions

View File

@ -126,80 +126,3 @@ updates:
day: "saturday"
timezone: "Europe/Berlin"
time: "03:00"
# frontend
# - package-ecosystem: npm
# open-pull-requests-limit: 99
# directory: "/frontend"
# rebase-strategy: "disabled"
# schedule:
# interval: weekly
# day: "saturday"
# timezone: "Europe/Berlin"
# time: "03:00"
# groups:
# eslint:
# applies-to: version-updates
# patterns:
# - "eslint*"
# - "@eslint*"
# pinia:
# applies-to: version-updates
# patterns:
# - "pinia*"
# react:
# applies-to: version-updates
# patterns:
# - "react*"
# remark:
# applies-to: version-updates
# patterns:
# - "remark*"
# storybook:
# applies-to: version-updates
# patterns:
# - "storybook"
# - "@storybook*"
# stylelint:
# applies-to: version-updates
# patterns:
# - "stylelint*"
# typescript:
# applies-to: version-updates
# patterns:
# - "ts*"
# - "@types*"
# - "typescript"
# vite:
# applies-to: version-updates
# patterns:
# - "vite"
# - "vite-plugin*"
# - "@vitejs/plugin-vue"
# vitest:
# applies-to: version-updates
# patterns:
# - "vitest"
# - "@vitest*"
# vue:
# applies-to: version-updates
# patterns:
# - "*vue?(/)*"
# exclude-patterns:
# - "vuetify"
# - "*vuepress*"
# - "vue-tsc"
# vuepress:
# applies-to: version-updates
# patterns:
# - "vuepress"
# - "@vuepress*"
# - package-ecosystem: docker
# open-pull-requests-limit: 99
# directory: "/frontend"
# rebase-strategy: "disabled"
# schedule:
# interval: weekly
# day: "saturday"
# timezone: "Europe/Berlin"
# time: "03:00"

View File

@ -12,6 +12,7 @@ docker: &docker
webapp: &webapp
- '.github/workflows/test-webapp.yml'
- 'webapp/**/*'
- 'styleguide/**/*'
- 'package.json'
docs-check: &docs-check
@ -30,24 +31,4 @@ vuepress: &vuepress
documentation: &documentation
- *vuepress
- *markdown
# frontend
frontend-test-lint-code: &frontend-test-lint-code
- 'frontend/**/*'
frontend-test-unit-code: &frontend-test-unit-code
- 'frontend/**/*'
frontend-test-build-code: &frontend-test-build-code
- 'frontend/**/*'
frontend-test-build-docker: &frontend-test-build-docker
- 'frontend/**/*'
frontend-test-build-docs: &frontend-test-build-docs
- 'frontend/**/*.md'
- 'frontend/.vuepress/*'
frontend-test-build-storybook: &frontend-test-build-storybook
- 'frontend/**/*'
- *markdown

View File

@ -11,7 +11,7 @@ jobs:
documentation: ${{ steps.changes.outputs.documentation }}
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: Check for markdown file changes
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
@ -28,13 +28,13 @@ jobs:
if: needs.files-changed.outputs.markdown == 'true'
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: Remove uncheckable documentation files
run: rm -rf ./CHANGELOG.md # workaround until https://github.com/gaurav-nelson/github-action-markdown-link-check/pull/183 has been done
- name: Check Markdown Links
uses: gaurav-nelson/github-action-markdown-link-check@1b916f2cf6c36510a6059943104e3c42ce6c16bc # 1.0.15
uses: gaurav-nelson/github-action-markdown-link-check@3c3b66f1f7d0900e37b71eca45b63ea9eedfce31 # 1.0.15
with:
use-quiet-mode: 'yes'
use-verbose-mode: 'no'
@ -51,10 +51,10 @@ jobs:
if: needs.files-changed.outputs.documentation == 'true'
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: Setup Node 20
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.0.3
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v4.0.3
with:
node-version: '20'

View File

@ -22,7 +22,7 @@ jobs:
continue-on-error: true
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: Cleanup
run: |

View File

@ -13,7 +13,7 @@ jobs:
documentation: ${{ steps.changes.outputs.documentation }}
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: Check for file changes
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
@ -27,10 +27,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: Setup Node 20
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.0.3
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v4.0.3
with:
node-version: 20

View File

@ -24,27 +24,27 @@ jobs:
file: backend/Dockerfile
target: production
- name: webapp-base
context: webapp
context: .
file: webapp/Dockerfile
target: base
- name: webapp-build
context: webapp
context: .
file: webapp/Dockerfile
target: build
- name: webapp
context: webapp
context: .
file: webapp/Dockerfile
target: production
- name: maintenance-base
context: webapp
context: .
file: webapp/Dockerfile.maintenance
target: base
- name: maintenance-build
context: webapp
context: .
file: webapp/Dockerfile.maintenance
target: build
- name: maintenance
context: webapp
context: .
file: webapp/Dockerfile.maintenance
target: production
runs-on: ubuntu-latest
@ -59,16 +59,16 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: Log in to the Container registry
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |

View File

@ -1,37 +0,0 @@
name: "frontend:test:build test code"
on: push
jobs:
# only (but most important) job from this workflow required for pull requests
# check results serve as run conditions for all other jobs here
files-changed:
name: Detect File Changes - frontend-test-build-code
runs-on: ubuntu-latest
outputs:
changes: ${{ steps.changes.outputs.frontend-test-build-code }}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
- name: Check for frontend file changes
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
with:
token: ${{ github.token }}
filters: .github/file-filters.yml
list-files: shell
build:
if: needs.files-changed.outputs.changes == 'true'
name: Build - Frontend
needs: files-changed
runs-on: ubuntu-latest
env:
WORKING_DIRECTORY: ./frontend
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
- name: Frontend | Build
run: npm install && npm run build
working-directory: ${{env.WORKING_DIRECTORY}}

View File

@ -1,52 +0,0 @@
name: "frontend:test:build test docker"
on: push
jobs:
# only (but most important) job from this workflow required for pull requests
# check results serve as run conditions for all other jobs here
files-changed:
name: Detect File Changes - frontend-test-build-docker
runs-on: ubuntu-latest
outputs:
changes: ${{ steps.changes.outputs.frontend-test-build-docker }}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
- name: Check for frontend file changes
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
with:
token: ${{ github.token }}
filters: .github/file-filters.yml
list-files: shell
build-production:
if: needs.files-changed.outputs.changes == 'true'
name: Build Docker Production - Frontend
needs: files-changed
runs-on: ubuntu-latest
env:
WORKING_DIRECTORY: ./frontend
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
- name: Frontend | Build Docker Production
run: docker compose -f docker-compose.yml build
working-directory: ${{env.WORKING_DIRECTORY}}
build-development:
if: needs.files-changed.outputs.changes == 'true'
name: Build Docker Development - Frontend
needs: files-changed
runs-on: ubuntu-latest
env:
WORKING_DIRECTORY: ./frontend
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
- name: Frontend | Build Docker Development
run: docker compose build
working-directory: ${{env.WORKING_DIRECTORY}}

View File

@ -1,37 +0,0 @@
name: "frontend:test:build test docs"
on: push
jobs:
# only (but most important) job from this workflow required for pull requests
# check results serve as run conditions for all other jobs here
files-changed:
name: Detect File Changes - frontend-test-build-docs
runs-on: ubuntu-latest
outputs:
changes: ${{ steps.changes.outputs.frontend-test-build-docs }}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
- name: Check for frontend file changes
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
with:
token: ${{ github.token }}
filters: .github/file-filters.yml
list-files: shell
build:
if: needs.files-changed.outputs.changes == 'true'
name: Build Docs - Frontend
needs: files-changed
runs-on: ubuntu-latest
env:
WORKING_DIRECTORY: ./frontend
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
- name: Frontend | Build Docs
run: npm install && npm run docs:build
working-directory: ${{env.WORKING_DIRECTORY}}

View File

@ -1,37 +0,0 @@
name: "frontend:test:build test storybook"
on: push
jobs:
# only (but most important) job from this workflow required for pull requests
# check results serve as run conditions for all other jobs here
files-changed:
name: Detect File Changes - frontend-test-build-storybook
runs-on: ubuntu-latest
outputs:
changes: ${{ steps.changes.outputs.frontend-test-build-storybook }}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
- name: Check for frontend file changes
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
with:
token: ${{ github.token }}
filters: .github/file-filters.yml
list-files: shell
storybook:
if: needs.files-changed.outputs.changes == 'true'
name: Build Storybook - Frontend
needs: files-changed
runs-on: ubuntu-latest
env:
WORKING_DIRECTORY: ./frontend
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
- name: Frontend | Build Storybook
run: npm install && npm run storybook:build
working-directory: ${{env.WORKING_DIRECTORY}}

View File

@ -1,37 +0,0 @@
name: "frontend:test:lint code with defined linters"
on: push
jobs:
# only (but most important) job from this workflow required for pull requests
# check results serve as run conditions for all other jobs here
files-changed:
name: Detect File Changes - frontend-test-lint-code
runs-on: ubuntu-latest
outputs:
changes: ${{ steps.changes.outputs.frontend-test-lint-code }}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
- name: Check for frontend file changes
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
with:
token: ${{ github.token }}
filters: .github/file-filters.yml
list-files: shell
lint:
if: needs.files-changed.outputs.changes == 'true'
name: Lint - Frontend
needs: files-changed
runs-on: ubuntu-latest
env:
WORKING_DIRECTORY: ./frontend
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
- name: Frontend | Lint
run: npm install && npm run test:lint
working-directory: ${{env.WORKING_DIRECTORY}}

View File

@ -1,37 +0,0 @@
name: "frontend:test:unit test code with defined suites"
on: push
jobs:
# only (but most important) job from this workflow required for pull requests
# check results serve as run conditions for all other jobs here
files-changed:
name: Detect File Changes - frontend-test-unit-code
runs-on: ubuntu-latest
outputs:
changes: ${{ steps.changes.outputs.frontend-test-unit-code }}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
- name: Check for frontend file changes
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
id: changes
with:
token: ${{ github.token }}
filters: .github/file-filters.yml
list-files: shell
unit:
if: needs.files-changed.outputs.changes == 'true'
name: Unit - Frontend
needs: files-changed
runs-on: ubuntu-latest
env:
WORKING_DIRECTORY: ./frontend
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
- name: Frontend | Unit
run: npm install && npm run test:unit
working-directory: ${{env.WORKING_DIRECTORY}}

View File

@ -14,9 +14,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
with:
fetch-depth: 0 # Fetch full History for changelog
- name: Setup Node.js
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v4.0.3
with:
node-version-file: '.nvmrc'
- name: Setup env
run: |
echo "VERSION=$(node -p -e "require('./package.json').version")" >> $GITHUB_ENV
@ -54,9 +58,13 @@ jobs:
needs: [github_tag]
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
with:
fetch-depth: 0 # Fetch full History for changelog
- name: Setup Node.js
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v4.0.3
with:
node-version-file: '.nvmrc'
- name: Setup env
run: |
echo "VERSION=$(node -p -e "require('./package.json').version")" >> $GITHUB_ENV
@ -64,7 +72,7 @@ jobs:
echo "BUILD_COMMIT=${GITHUB_SHA}" >> $GITHUB_ENV
- run: echo "BUILD_VERSION=${VERSION}-${GITHUB_RUN_NUMBER}" >> $GITHUB_ENV
#- name: Repository Dispatch
# uses: peter-evans/repository-dispatch@0eae9e597ebc81bcc8c2220e34ddff4bc7c769b3 # v3.0.0
# uses: peter-evans/repository-dispatch@cf70392543065ca62813db6712a06df1c4f4ae9f # v3.0.0
# with:
# token: ${{ github.token }}
# event-type: trigger-ocelot-build-success
@ -72,7 +80,7 @@ jobs:
# client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}", "VERSION": "${VERSION}", "BUILD_DATE": "${BUILD_DATE}", "BUILD_COMMIT": "${BUILD_COMMIT}", "BUILD_VERSION": "${BUILD_VERSION}"}'
- name: Repository Dispatch stage.ocelot.social
uses: peter-evans/repository-dispatch@0eae9e597ebc81bcc8c2220e34ddff4bc7c769b3 # v3.0.0
uses: peter-evans/repository-dispatch@cf70392543065ca62813db6712a06df1c4f4ae9f # v3.0.0
with:
token: ${{ secrets.OCELOT_PUBLISH_EVENT_PAT }} # this token is required to access the other repository
event-type: trigger-ocelot-build-success
@ -80,7 +88,7 @@ jobs:
client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}", "GITHUB_RUN_NUMBER": "${{ env.GITHUB_RUN_NUMBER }}", "VERSION": "${VERSION}", "BUILD_DATE": "${BUILD_DATE}", "BUILD_COMMIT": "${BUILD_COMMIT}", "BUILD_VERSION": "${BUILD_VERSION}"}'
- name: Repository Dispatch stage.yunite.me
uses: peter-evans/repository-dispatch@0eae9e597ebc81bcc8c2220e34ddff4bc7c769b3 # v3.0.0
uses: peter-evans/repository-dispatch@cf70392543065ca62813db6712a06df1c4f4ae9f # v3.0.0
with:
token: ${{ secrets.OCELOT_PUBLISH_EVENT_PAT }} # this token is required to access the other repository
event-type: trigger-ocelot-build-success

View File

@ -11,7 +11,7 @@ jobs:
backend: ${{ steps.changes.outputs.backend }}
docker: ${{ steps.changes.outputs.docker }}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: Check for backend file changes
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
@ -28,16 +28,16 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: Neo4J | Build 'community' image
run: |
docker build --target community -t "ocelotsocialnetwork/neo4j-community:test" neo4j/
docker save "ocelotsocialnetwork/neo4j-community:test" > /tmp/neo4j.tar
docker compose -f docker-compose.yml -f docker-compose.test.yml build neo4j
docker save "ghcr.io/ocelot-social-community/ocelot-social/neo4j:community" > /tmp/neo4j.tar
- name: Cache docker images
id: cache-neo4j
uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.0.2
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v4.0.2
with:
path: /tmp/neo4j.tar
key: ${{ github.run_id }}-backend-neo4j-cache
@ -49,16 +49,16 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: backend | Build 'test' image
run: |
docker build --target test -t "ocelotsocialnetwork/backend:test" backend/
docker save "ocelotsocialnetwork/backend:test" > /tmp/backend.tar
docker compose -f docker-compose.yml -f docker-compose.test.yml build backend
docker save "ghcr.io/ocelot-social-community/ocelot-social/backend:test" > /tmp/backend.tar
- name: Cache docker images
id: cache-backend
uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.0.2
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v4.0.2
with:
path: /tmp/backend.tar
key: ${{ github.run_id }}-backend-cache
@ -70,7 +70,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: Setup Node.js
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v4.0.3
with:
node-version-file: 'backend/.nvmrc'
- name: backend | Lint
run: cd backend && yarn && yarn run lint
@ -84,17 +89,17 @@ jobs:
checks: write
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: Restore Neo4J cache
uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.0.2
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v4.0.2
with:
path: /tmp/neo4j.tar
key: ${{ github.run_id }}-backend-neo4j-cache
fail-on-cache-miss: true
- name: Restore Backend cache
uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.0.2
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v4.0.2
with:
path: /tmp/backend.tar
key: ${{ github.run_id }}-backend-cache
@ -108,12 +113,10 @@ jobs:
- name: backend | copy env files
run: |
cp webapp/.env.template webapp/.env
cp frontend/.env.dist frontend/.env
cp backend/.env.template backend/.env
- name: backend | docker compose
# doesn't work without the --build flag - this either means we should not load the cached images or cache the correct image
run: docker compose -f docker-compose.yml -f docker-compose.test.yml up --detach backend --build
run: docker compose -f docker-compose.yml -f docker-compose.test.yml up --detach backend
- name: backend | Initialize Database
run: docker compose exec -T backend yarn db:migrate init

View File

@ -8,7 +8,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.2.2
- name: Copy backend env file
run: |
@ -18,11 +18,11 @@ jobs:
- name: Build backend and dependencies
run: |
# Build and start all required images for backend
docker compose -f docker-compose.yml -f docker-compose.test.yml up --detach backend --build
docker compose -f docker-compose.yml -f docker-compose.test.yml up --detach neo4j backend --build
# Save the build images
docker save "ghcr.io/ocelot-social-community/ocelot-social/backend:test" > /tmp/backend.tar
docker save "ghcr.io/ocelot-social-community/ocelot-social/neo4j-community:test" > /tmp/neo4j.tar
docker save "ghcr.io/ocelot-social-community/ocelot-social/neo4j:community" > /tmp/neo4j.tar
docker save "quay.io/minio/minio:latest" > /tmp/minio.tar
docker save "quay.io/minio/mc:latest" > /tmp/minio-mc.tar
docker save "maildev/maildev:latest" > /tmp/mailserver.tar
@ -31,7 +31,7 @@ jobs:
docker compose -f docker-compose.yml -f docker-compose.test.yml down
- name: Cache docker images
uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.0.2
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v4.0.2
with:
path: |
/tmp/backend.tar
@ -46,7 +46,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.2.2
- name: Copy backend env file
run: |
@ -59,7 +59,7 @@ jobs:
docker save "ghcr.io/ocelot-social-community/ocelot-social/webapp:test" > /tmp/webapp.tar
- name: Cache docker image
uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.0.2
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v4.0.2
with:
path: /tmp/webapp.tar
key: ${{ github.run_id }}-e2e-webapp-cache
@ -68,8 +68,17 @@ jobs:
name: Fullstack | prepare cypress
runs-on: ubuntu-latest
steps:
- name: Delete huge unnecessary tools folder
run: rm -rf /opt/hostedtoolcache
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.2.2
- name: Setup Node.js
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v4.4.0
with:
node-version-file: 'backend/.nvmrc'
cache: 'yarn'
- name: Copy env files
run: |
@ -78,7 +87,8 @@ jobs:
- name: Install cypress requirements
run: |
wget --no-verbose -O /opt/cucumber-json-formatter "https://github.com/cucumber/json-formatter/releases/download/v19.0.0/cucumber-json-formatter-linux-386"
sudo wget --no-verbose -O /opt/cucumber-json-formatter "https://github.com/cucumber/json-formatter/releases/download/v19.0.0/cucumber-json-formatter-linux-386"
sudo chmod +x /opt/cucumber-json-formatter
cd backend
yarn install
yarn build
@ -87,7 +97,7 @@ jobs:
- name: Cache docker image
uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.0.2
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v4.0.2
with:
path: |
/opt/cucumber-json-formatter
@ -107,8 +117,20 @@ jobs:
# run copies of the current job in parallel
job: [1, 2, 3, 4, 5, 6, 7, 8]
steps:
- name: Delete huge unnecessary tools folder
run: rm -rf /opt/hostedtoolcache
- name: Checkout code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.2.2
- name: Setup Node.js
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v4.4.0
with:
node-version-file: 'backend/.nvmrc'
cache: 'yarn'
- name: Restore cypress cache
uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.0.2
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v4.0.2
with:
path: |
/opt/cucumber-json-formatter
@ -118,7 +140,7 @@ jobs:
restore-keys: ${{ github.run_id }}-e2e-cypress
- name: Restore backend environment cache
uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.0.2
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v4.0.2
with:
path: |
/tmp/backend.tar
@ -129,7 +151,7 @@ jobs:
key: ${{ github.run_id }}-e2e-backend-environment-cache
- name: Restore webapp cache
uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.0.2
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v4.0.2
with:
path: /tmp/webapp.tar
key: ${{ github.run_id }}-e2e-webapp-cache
@ -160,7 +182,7 @@ jobs:
- name: Full stack tests | if tests failed, upload report
id: e2e-report
if: ${{ failure() && steps.e2e-tests.conclusion == 'failure' }}
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: ocelot-e2e-test-report-pr${{ needs.docker_preparation.outputs.pr-number }}
path: /home/runner/work/Ocelot-Social/Ocelot-Social/cypress/reports/cucumber_html_report
@ -172,7 +194,7 @@ jobs:
continue-on-error: true
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.2.2
- name: Full stack tests | cleanup cache
run: |

View File

@ -11,7 +11,7 @@ jobs:
docker: ${{ steps.changes.outputs.docker }}
webapp: ${{ steps.changes.outputs.webapp }}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: Check for frontend file changes
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2
@ -28,7 +28,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: Setup Node.js
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v4.0.3
with:
node-version-file: 'webapp/.nvmrc'
- name: Check translation files
run: |
@ -42,15 +47,15 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: Webapp | Build 'test' image
run: |
docker build --target test -t "ocelotsocialnetwork/webapp:test" webapp/
docker build --target test -f webapp/Dockerfile -t "ocelotsocialnetwork/webapp:test" .
docker save "ocelotsocialnetwork/webapp:test" > /tmp/webapp.tar
- name: Cache docker image
uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.0.2
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v4.0.2
with:
path: /tmp/webapp.tar
key: ${{ github.run_id }}-webapp-cache
@ -62,7 +67,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: Setup Node.js
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v4.0.3
with:
node-version-file: 'webapp/.nvmrc'
- name: webapp | Lint
run: cd webapp && yarn && yarn run lint
@ -76,10 +86,10 @@ jobs:
checks: write
steps:
- name: Checkout code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.1.7
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.1.7
- name: Restore webapp cache
uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.0.2
uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v4.0.2
with:
path: /tmp/webapp.tar
key: ${{ github.run_id }}-webapp-cache
@ -90,7 +100,6 @@ jobs:
- name: Copy env files
run: |
cp webapp/.env.template webapp/.env
cp frontend/.env.dist frontend/.env
cp backend/.env.template backend/.env
- name: backend | docker compose

View File

@ -17,7 +17,7 @@ jobs:
runs-on: ubuntu-latest
if: ${{ github.actor != 'dependabot[bot]' }}
steps:
- uses: amannn/action-semantic-pull-request@335288255954904a41ddda8947c8f2c844b8bfeb # v5.5.3
- uses: amannn/action-semantic-pull-request@069817c298f23fab00a8f29a2e556a5eac0f6390 # v5.5.3
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
@ -30,9 +30,9 @@ jobs:
scopes: |
backend
webapp
frontend
maintenance
database
e2e
docu
docker
release

3
.gitmodules vendored
View File

@ -1,6 +1,3 @@
[submodule "styleguide"]
path = styleguide
url = https://github.com/Human-Connection/Nitro-Styleguide.git
[submodule "deployment/configurations/stage.ocelot.social"]
path = deployment/configurations/stage.ocelot.social
url = git@github.com:Ocelot-Social-Community/stage.ocelot.social.git

2
.nvmrc
View File

@ -1 +1 @@
v20.12.1
v25.3.0

View File

@ -1 +0,0 @@
nodejs 20.12.1

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
DEBUG=true
DEBUG=neo4j-graphql-js
NEO4J_URI=bolt://localhost:7687
NEO4J_USERNAME=neo4j
@ -19,7 +19,7 @@ SMTP_PASSWORD=
SMTP_SECURE="false" # true for 465, false for other ports
SMTP_DKIM_DOMAINNAME=
SMTP_DKIM_KEYSELECTOR=
SMTP_DKIM_PRIVATKEY=
SMTP_DKIM_PRIVATEKEY=
# E-Mail settings for our 'docker compose up mailserver'
# SMTP_HOST=localhost
# SMTP_PORT=1025
@ -33,8 +33,6 @@ JWT_SECRET="b/&&7b78BF&fv/Vd"
JWT_EXPIRES="2y"
MAPBOX_TOKEN="pk.eyJ1IjoiYnVzZmFrdG9yIiwiYSI6ImNraDNiM3JxcDBhaWQydG1uczhpZWtpOW4ifQ.7TNRTO-o9aK1Y6MyW_Nd4g"
PRIVATE_KEY_PASSPHRASE="a7dsf78sadg87ad87sfagsadg78"
SENTRY_DSN_BACKEND=
COMMIT=
PUBLIC_REGISTRATION=false
@ -45,7 +43,9 @@ AWS_SECRET_ACCESS_KEY=12341234
AWS_ENDPOINT=http://localhost:9000
AWS_REGION=local
AWS_BUCKET=ocelot
S3_PUBLIC_GATEWAY=http://localhost:8000
IMAGOR_PUBLIC_URL=http://localhost:8000
IMAGOR_SECRET=mysecret
CATEGORIES_ACTIVE=false
MAX_PINNED_POSTS=1
MAX_GROUP_PINNED_POSTS=1

View File

@ -19,14 +19,12 @@ SMTP_PASSWORD=
SMTP_SECURE="false" # true for 465, false for other ports
SMTP_DKIM_DOMAINNAME=
SMTP_DKIM_KEYSELECTOR=
SMTP_DKIM_PRIVATKEY=
SMTP_DKIM_PRIVATEKEY=
JWT_SECRET="b/&&7b78BF&fv/Vd"
JWT_EXPIRES="2y"
MAPBOX_TOKEN="pk.eyJ1IjoiYnVzZmFrdG9yIiwiYSI6ImNraDNiM3JxcDBhaWQydG1uczhpZWtpOW4ifQ.7TNRTO-o9aK1Y6MyW_Nd4g"
PRIVATE_KEY_PASSPHRASE="a7dsf78sadg87ad87sfagsadg78"
SENTRY_DSN_BACKEND=
COMMIT=
PUBLIC_REGISTRATION=false
@ -37,7 +35,9 @@ AWS_SECRET_ACCESS_KEY=12341234
AWS_ENDPOINT=http://localhost:9000
AWS_REGION=local
AWS_BUCKET=ocelot
S3_PUBLIC_GATEWAY=http://localhost:8000
IMAGOR_PUBLIC_URL=http://localhost:8000
IMAGOR_SECRET=mysecret
CATEGORIES_ACTIVE=false
MAX_PINNED_POSTS=1
MAX_GROUP_PINNED_POSTS=1

View File

@ -14,7 +14,6 @@ module.exports = {
'plugin:import/recommended',
'plugin:import/typescript',
'plugin:promise/recommended',
'plugin:security/recommended-legacy',
'plugin:@eslint-community/eslint-comments/recommended',
'prettier',
],
@ -175,6 +174,10 @@ module.exports = {
'@eslint-community/eslint-comments/require-description': 'off',
},
overrides: [
{
files: ['*.js', '*.cjs', '*.ts', '*.tsx'],
extends: ['plugin:security/recommended-legacy'],
},
// only for ts files
{
files: ['*.ts', '*.tsx'],
@ -228,5 +231,33 @@ module.exports = {
files: ['*.json', '*.json5', '*.jsonc'],
parser: 'jsonc-eslint-parser',
},
{
files: ['*.graphql', '*.gql'],
parser: '@graphql-eslint/eslint-plugin',
plugins: ['@graphql-eslint'],
extends: ['plugin:@graphql-eslint/schema-recommended'],
rules: {
'@graphql-eslint/description-style': ['error', { style: 'inline' }],
'@graphql-eslint/require-description': 'off',
'@graphql-eslint/naming-convention': 'off',
'@graphql-eslint/strict-id-in-types': 'off',
'@graphql-eslint/no-typename-prefix': 'off',
// incompatible: `depends on a GraphQL validation rule "XXX" but it's not available in the "graphql" version you are using. Skipping…`
'@graphql-eslint/known-directives': 'off',
'@graphql-eslint/known-argument-names': 'off',
'@graphql-eslint/known-type-names': 'off',
'@graphql-eslint/lone-schema-definition': 'off',
'@graphql-eslint/provided-required-arguments': 'off',
'@graphql-eslint/unique-directive-names': 'off',
'@graphql-eslint/unique-directive-names-per-location': 'off',
'@graphql-eslint/unique-field-definition-names': 'off',
'@graphql-eslint/unique-operation-types': 'off',
'@graphql-eslint/unique-type-names': 'off',
},
parserOptions: {
schema: './src/graphql/types/**/*.gql',
assumeValid: true,
},
},
],
}

View File

@ -1 +1 @@
v20.12.1
v25.3.0

View File

@ -1,4 +1,4 @@
FROM node:24.1.0-alpine AS base
FROM node:25.5.0-alpine AS base
LABEL org.label-schema.name="ocelot.social:backend"
LABEL org.label-schema.description="Backend of the Social Network Software ocelot.social"
LABEL org.label-schema.usage="https://github.com/Ocelot-Social-Community/Ocelot-Social/blob/master/README.md"

View File

@ -19,18 +19,16 @@ Wait a little until your backend is up and running at [http://localhost:4000/](h
## Installation without Docker
For the local installation you need a recent version of
[Node](https://nodejs.org/en/) (&gt;= `v16.19.0`). We are using
`v20.12.1` and therefore we recommend to use the same version
([see](https://github.com/Ocelot-Social-Community/Ocelot-Social/issues/4082)
some known problems with more recent node versions). You can use the
[Node](https://nodejs.org/en/). We are using
`v25.3.0` and therefore we recommend to use the same version. You can use the
[node version manager](https://github.com/nvm-sh/nvm) `nvm` to switch
between different local Node versions:
```sh
# install Node
# install Node using '.nvmrc' file
$ cd backend
$ nvm install v20.12.1
$ nvm use v20.12.1
$ nvm install
$ nvm use
```
Install node dependencies with [yarn](https://yarnpkg.com/en/):

View File

@ -18,7 +18,7 @@ module.exports = {
],
coverageThreshold: {
global: {
lines: 90,
lines: 92,
},
},
testMatch: ['**/src/**/?(*.)+(spec|test).ts?(x)'],

View File

@ -1,6 +1,6 @@
{
"name": "ocelot-social-backend",
"version": "3.8.2",
"version": "3.13.1",
"description": "GraphQL Backend for ocelot.social",
"repository": "https://github.com/Ocelot-Social-Community/Ocelot-Social",
"author": "ocelot.social Community",
@ -12,7 +12,7 @@
"build": "tsc && tsc-alias && ./scripts/build.copy.files.sh",
"dev": "nodemon --exec ts-node --require tsconfig-paths/register src/index.ts -e js,ts,gql",
"dev:debug": "nodemon --exec node --inspect=0.0.0.0:9229 build/src/index.js -e js,ts,gql",
"lint": "eslint --max-warnings=0 --report-unused-disable-directives --ext .js,.ts,.cjs,.json,.json5,.jsonc .",
"lint": "eslint --max-warnings=0 --report-unused-disable-directives --ext .js,.ts,.cjs,.json,.json5,.jsonc,.graphql,.gql .",
"test": "cross-env NODE_ENV=test NODE_OPTIONS=--max-old-space-size=8192 jest --runInBand --coverage --forceExit --detectOpenHandles",
"db:reset": "ts-node --require tsconfig-paths/register src/db/reset.ts",
"db:reset:withmigrations": "ts-node --require tsconfig-paths/register src/db/reset-with-migrations.ts",
@ -23,26 +23,29 @@
"db:data:categories": "ts-node --require tsconfig-paths/register src/db/categories.ts",
"db:migrate": "migrate --compiler 'ts:./src/db/compiler.ts' --migrations-dir ./src/db/migrations --store ./src/db/migrate/store.ts",
"db:migrate:create": "migrate --compiler 'ts:./src/db/compiler.ts' --migrations-dir ./src/db/migrations --template-file ./src/db/migrate/template.ts --date-format 'yyyymmddHHmmss' create",
"db:func:disable:notifications": "ts-node --require tsconfig-paths/register src/db/disable-notifications.ts",
"prod:migrate": "migrate --migrations-dir ./build/src/db/migrations --store ./build/src/db/migrate/store.js",
"prod:db:data:branding": "node build/src/db/data-branding.js",
"prod:db:data:categories": "node build/src/db/categories.js"
"prod:db:data:categories": "node build/src/db/categories.js",
"prod:db:data:admin": "node build/src/db/admin.js",
"prod:db:func:disable:notifications": "node build/src/db/disable-notifications.js"
},
"dependencies": {
"@aws-sdk/client-s3": "^3.817.0",
"@aws-sdk/lib-storage": "^3.817.0",
"@sentry/node": "^5.15.4",
"@types/mime-types": "^2.1.4",
"@aws-sdk/client-s3": "^3.980.0",
"@aws-sdk/lib-storage": "^3.980.0",
"@sentry/node": "^5.30.0",
"@types/mime-types": "^3.0.1",
"apollo-server": "~2.14.2",
"apollo-server-express": "^2.14.2",
"bcryptjs": "~3.0.2",
"bcryptjs": "~3.0.3",
"body-parser": "^1.20.3",
"cheerio": "~1.0.0",
"cross-env": "~7.0.3",
"dotenv": "~16.5.0",
"cheerio": "~1.2.0",
"cross-env": "~10.1.0",
"dotenv": "~17.0.1",
"email-templates": "^12.0.3",
"express": "^5.1.0",
"express": "^4.22.1",
"graphql": "^14.6.0",
"graphql-middleware": "~4.0.2",
"graphql-middleware": "~6.1.35",
"graphql-middleware-sentry": "^3.2.1",
"graphql-redis-subscriptions": "^2.7.0",
"graphql-shield": "~7.2.2",
@ -50,77 +53,80 @@
"graphql-tag": "~2.10.3",
"graphql-upload": "^13.0.0",
"helmet": "~8.1.0",
"ioredis": "^5.6.1",
"ioredis": "^5.9.2",
"jsonwebtoken": "~8.5.1",
"languagedetect": "^2.0.0",
"linkify-html": "^4.3.1",
"linkifyjs": "^4.2.0",
"lodash": "~4.17.21",
"linkify-html": "^4.3.2",
"linkifyjs": "^4.3.2",
"lodash": "~4.17.23",
"merge-graphql-schemas": "^1.7.8",
"metascraper": "^5.46.11",
"metascraper-author": "^5.46.11",
"metascraper-date": "^5.46.11",
"metascraper-description": "^5.46.11",
"metascraper-image": "^5.46.11",
"metascraper-lang": "^5.46.11",
"metascraper": "^5.49.19",
"metascraper-author": "^5.49.19",
"metascraper-date": "^5.49.19",
"metascraper-description": "^5.49.19",
"metascraper-image": "^5.49.19",
"metascraper-lang": "^5.49.19",
"metascraper-lang-detector": "^4.10.2",
"metascraper-logo": "^5.46.11",
"metascraper-publisher": "^5.46.11",
"metascraper-logo": "^5.49.19",
"metascraper-publisher": "^5.49.19",
"metascraper-soundcloud": "^5.34.4",
"metascraper-title": "^5.46.11",
"metascraper-url": "^5.46.11",
"metascraper-video": "^5.46.11",
"metascraper-youtube": "^5.46.11",
"metascraper-title": "^5.49.19",
"metascraper-url": "^5.49.19",
"metascraper-video": "^5.49.19",
"metascraper-youtube": "^5.49.20",
"migrate": "^2.1.0",
"mime-types": "^3.0.1",
"minimatch": "^9.0.4",
"mime-types": "^3.0.2",
"minimatch": "^10.1.1",
"mustache": "^4.2.0",
"neo4j-driver": "^4.4.11",
"neo4j-graphql-js": "^2.11.5",
"neo4j-graphql-js": "2.11.5",
"neode": "^0.4.9",
"node-fetch": "^2.7.0",
"nodemailer": "^6.10.1",
"nodemailer": "^7.0.12",
"nodemailer-html-to-text": "^3.2.0",
"preview-email": "^3.1.0",
"preview-email": "^3.1.1",
"pug": "^3.0.3",
"request": "~2.88.2",
"sanitize-html": "~2.17.0",
"slug": "~9.1.0",
"slugify": "^1.6.6",
"trunc-html": "~1.1.2",
"tslog": "^4.10.2",
"uuid": "~9.0.1",
"validator": "^13.15.15",
"validator": "^13.15.26",
"xregexp": "^5.1.2"
},
"devDependencies": {
"@eslint-community/eslint-plugin-eslint-comments": "^4.5.0",
"@faker-js/faker": "9.8.0",
"@eslint-community/eslint-plugin-eslint-comments": "^4.6.0",
"@faker-js/faker": "9.9.0",
"@graphql-eslint/eslint-plugin": "^3.20.1",
"@types/email-templates": "^10.0.4",
"@types/jest": "^29.5.14",
"@types/lodash": "^4.17.17",
"@types/node": "^22.15.30",
"@types/jest": "^30.0.0",
"@types/jsonwebtoken": "~8.5.1",
"@types/lodash": "^4.17.23",
"@types/node": "^25.1.0",
"@types/request": "^2.48.13",
"@types/slug": "^5.0.9",
"@types/uuid": "~9.0.1",
"@typescript-eslint/eslint-plugin": "^5.62.0",
"@typescript-eslint/parser": "^5.62.0",
"apollo-server-testing": "~2.11.0",
"eslint": "^8.57.1",
"eslint-config-prettier": "^10.1.5",
"eslint-config-prettier": "^10.1.8",
"eslint-config-standard": "^17.1.0",
"eslint-import-resolver-typescript": "^4.4.3",
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-jest": "^28.12.0",
"eslint-plugin-jsonc": "^2.20.1",
"eslint-plugin-n": "^17.17.0",
"eslint-import-resolver-typescript": "^4.4.4",
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-jest": "^29.12.1",
"eslint-plugin-jsonc": "^2.21.0",
"eslint-plugin-n": "^17.23.2",
"eslint-plugin-no-catch-all": "^1.1.0",
"eslint-plugin-prettier": "^5.4.1",
"eslint-plugin-prettier": "^5.5.5",
"eslint-plugin-promise": "^7.2.1",
"eslint-plugin-security": "^3.0.1",
"jest": "^29.7.0",
"nodemon": "~3.1.10",
"prettier": "^3.5.3",
"jest": "^30.2.0",
"nodemon": "~3.1.11",
"prettier": "^3.8.1",
"require-json5": "^1.3.0",
"rosie": "^2.1.1",
"ts-jest": "^29.3.4",
"ts-jest": "^29.4.6",
"ts-node": "^10.9.2",
"tsc-alias": "^1.8.16",
"tsconfig-paths": "^4.2.0",
@ -131,7 +137,9 @@
"**/graphql-upload": "^11.0.0",
"**/strip-ansi": "6.0.1",
"**/string-width": "4.2.0",
"**/wrap-ansi": "7.0.0"
"**/wrap-ansi": "7.0.0",
"**/jwa": "^2.0.1",
"**/@types/express": "4.17.25"
},
"engines": {
"node": ">=20.12.1"

View File

@ -29,12 +29,8 @@ const environment = {
? (env.DISABLED_MIDDLEWARES?.split(',') ?? [])
: [],
SEND_MAIL: env.NODE_ENV !== 'test',
}
const required = {
MAPBOX_TOKEN: env.MAPBOX_TOKEN,
JWT_SECRET: env.JWT_SECRET,
PRIVATE_KEY_PASSPHRASE: env.PRIVATE_KEY_PASSPHRASE,
LOG_LEVEL: 'DEBUG',
PROXY_S3: env.PROXY_S3,
}
const server = {
@ -52,7 +48,7 @@ const SMTP_PASSWORD = env.SMTP_PASSWORD
const SMTP_DKIM_DOMAINNAME = env.SMTP_DKIM_DOMAINNAME
const SMTP_DKIM_KEYSELECTOR = env.SMTP_DKIM_KEYSELECTOR
// PEM format = https://docs.progress.com/bundle/datadirect-hybrid-data-pipeline-installation-46/page/PEM-file-format.html
const SMTP_DKIM_PRIVATKEY = env.SMTP_DKIM_PRIVATKEY?.replace(/\\n/g, '\n') // replace all "\n" in .env string by real line break
const SMTP_DKIM_PRIVATEKEY = env.SMTP_DKIM_PRIVATEKEY?.replace(/\\n/g, '\n') // replace all "\n" in .env string by real line break
const SMTP_MAX_CONNECTIONS = (env.SMTP_MAX_CONNECTIONS && parseInt(env.SMTP_MAX_CONNECTIONS)) || 5
const SMTP_MAX_MESSAGES = (env.SMTP_MAX_MESSAGES && parseInt(env.SMTP_MAX_MESSAGES)) || 100
@ -71,11 +67,11 @@ if (SMTP_USERNAME && SMTP_PASSWORD) {
pass: SMTP_PASSWORD,
}
}
if (SMTP_DKIM_DOMAINNAME && SMTP_DKIM_KEYSELECTOR && SMTP_DKIM_PRIVATKEY) {
if (SMTP_DKIM_DOMAINNAME && SMTP_DKIM_KEYSELECTOR && SMTP_DKIM_PRIVATEKEY) {
nodemailerTransportOptions.dkim = {
domainName: SMTP_DKIM_DOMAINNAME,
keySelector: SMTP_DKIM_KEYSELECTOR,
privateKey: SMTP_DKIM_PRIVATKEY,
privateKey: SMTP_DKIM_PRIVATEKEY,
}
}
@ -96,36 +92,38 @@ const redis = {
REDIS_PASSWORD: env.REDIS_PASSWORD,
}
const s3 = {
const required = {
EMAIL_DEFAULT_SENDER: env.EMAIL_DEFAULT_SENDER,
AWS_ACCESS_KEY_ID: env.AWS_ACCESS_KEY_ID,
AWS_SECRET_ACCESS_KEY: env.AWS_SECRET_ACCESS_KEY,
AWS_ENDPOINT: env.AWS_ENDPOINT,
AWS_REGION: env.AWS_REGION,
AWS_BUCKET: env.AWS_BUCKET,
S3_PUBLIC_GATEWAY: env.S3_PUBLIC_GATEWAY,
IMAGOR_PUBLIC_URL: env.IMAGOR_PUBLIC_URL,
IMAGOR_SECRET: env.IMAGOR_SECRET,
MAPBOX_TOKEN: env.MAPBOX_TOKEN,
JWT_SECRET: env.JWT_SECRET,
}
export interface S3Configured {
AWS_ACCESS_KEY_ID: string
AWS_SECRET_ACCESS_KEY: string
AWS_ENDPOINT: string
AWS_REGION: string
AWS_BUCKET: string
S3_PUBLIC_GATEWAY: string | undefined
// https://stackoverflow.com/a/53050575
type NoUndefinedField<T> = { [P in keyof T]-?: NoUndefinedField<NonNullable<T[P]>> }
function assertRequiredConfig(
conf: typeof required,
): asserts conf is NoUndefinedField<typeof required> {
Object.entries(conf).forEach(([key, value]) => {
if (!value) {
throw new Error(`ERROR: "${key}" env variable is missing.`)
}
})
}
export const isS3configured = (config: typeof s3): config is S3Configured => {
return !!(
config.AWS_ACCESS_KEY_ID &&
config.AWS_SECRET_ACCESS_KEY &&
config.AWS_ENDPOINT &&
config.AWS_REGION &&
config.AWS_BUCKET
)
}
assertRequiredConfig(required)
const options = {
EMAIL_DEFAULT_SENDER: env.EMAIL_DEFAULT_SENDER,
SUPPORT_EMAIL: env.SUPPORT_EMAIL,
SUPPORT_URL: emails.SUPPORT_LINK,
APPLICATION_NAME: metadata.APPLICATION_NAME,
@ -140,30 +138,37 @@ const options = {
MAX_PINNED_POSTS: Number.isNaN(Number(process.env.MAX_PINNED_POSTS))
? 1
: Number(process.env.MAX_PINNED_POSTS),
MAX_GROUP_PINNED_POSTS: Number.isNaN(Number(process.env.MAX_GROUP_PINNED_POSTS))
? 1
: Number(process.env.MAX_GROUP_PINNED_POSTS),
}
const language = {
LANGUAGE_DEFAULT: process.env.LANGUAGE_DEFAULT ?? 'en',
}
// Check if all required configs are present
Object.entries(required).map((entry) => {
if (!entry[1]) {
throw new Error(`ERROR: "${entry[0]}" env variable is missing.`)
}
return entry
})
export default {
const CONFIG = {
...environment,
...server,
...required,
...neo4j,
...sentry,
...redis,
...s3,
...options,
...language,
}
export type Config = typeof CONFIG
export type S3Config = Pick<
Config,
| 'AWS_ACCESS_KEY_ID'
| 'AWS_SECRET_ACCESS_KEY'
| 'AWS_ENDPOINT'
| 'AWS_REGION'
| 'AWS_BUCKET'
| 'IMAGOR_SECRET'
| 'IMAGOR_PUBLIC_URL'
>
export default CONFIG
export { nodemailerTransportOptions }

View File

@ -0,0 +1,61 @@
/* eslint-disable @typescript-eslint/no-unsafe-return */
import databaseContext from '@context/database'
import pubsubContext from '@context/pubsub'
import CONFIG from '@src/config'
import type { DecodedUser } from '@src/jwt/decode'
import { decode } from '@src/jwt/decode'
import ocelotLogger from '@src/logger'
import type OcelotLogger from '@src/logger'
import type { ApolloServerExpressConfig } from 'apollo-server-express'
const serverDatabase = databaseContext()
const serverPubsub = pubsubContext()
export const getContext =
(opts?: {
database?: ReturnType<typeof databaseContext>
pubsub?: ReturnType<typeof pubsubContext>
authenticatedUser: DecodedUser | null | undefined
logger?: typeof OcelotLogger
config: typeof CONFIG
}) =>
async (req: { headers: { authorization?: string } }) => {
const {
database = serverDatabase,
pubsub = serverPubsub,
authenticatedUser = undefined,
logger = ocelotLogger,
config = CONFIG,
} = opts ?? {}
const { driver } = database
const user =
authenticatedUser === null
? null
: (authenticatedUser ?? (await decode({ driver, config })(req.headers.authorization)))
const result = {
database,
driver,
neode: database.neode,
pubsub,
logger,
user,
req,
cypherParams: {
currentUserId: user ? user.id : null,
},
config,
}
return result
}
export const context: ApolloServerExpressConfig['context'] = async (options) => {
const { connection, req } = options
if (connection) {
return connection.context
} else {
return getContext()(req)
}
}
export type Context = Awaited<ReturnType<ReturnType<typeof getContext>>>

View File

@ -0,0 +1,61 @@
import databaseContext from '@context/database'
const run = async () => {
const args = process.argv.slice(2)
if (args.length !== 1) {
// eslint-disable-next-line no-console
console.error('Usage: yarn run db:func:disable-notifications <email>')
// eslint-disable-next-line n/no-process-exit
process.exit(1)
}
const email = args[0]
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/
if (!emailRegex.test(email)) {
// eslint-disable-next-line no-console
console.error('Error: Invalid email address format')
// eslint-disable-next-line n/no-process-exit
process.exit(1)
}
const { write } = databaseContext()
const result = (
await write({
query: `
MATCH (:EmailAddress {email: $email})-[:BELONGS_TO]->(user:User)
SET user.emailNotificationsFollowingUsers = false
SET user.emailNotificationsPostInGroup = false
SET user.emailNotificationsCommentOnObservedPost = false
SET user.emailNotificationsMention = false
SET user.emailNotificationsChatMessage = false
SET user.emailNotificationsGroupMemberJoined = false
SET user.emailNotificationsGroupMemberLeft = false
SET user.emailNotificationsGroupMemberRemoved = false
SET user.emailNotificationsGroupMemberRoleChanged = false
RETURN toString(count(user)) as count
`,
variables: {
email,
},
})
).records[0].get('count') as string
if (result !== '1') {
// eslint-disable-next-line no-console
console.error(`User with email address ${email} not found`)
// eslint-disable-next-line n/no-process-exit
process.exit(1)
}
// eslint-disable-next-line no-console
console.log(`Notifications for User with email address ${email} disabled`)
// eslint-disable-next-line n/no-process-exit
process.exit(0)
}
void (async function () {
await run()
})()

View File

@ -7,10 +7,13 @@
import { faker } from '@faker-js/faker'
import { hashSync } from 'bcryptjs'
import { Factory } from 'rosie'
import slugify from 'slug'
import slugify from 'slugify'
import { v4 as uuid } from 'uuid'
import { generateInviteCode } from '@graphql/resolvers/inviteCodes'
import { isUniqueFor } from '@middleware/sluggifyMiddleware'
import uniqueSlug from '@middleware/slugify/uniqueSlug'
import { Context } from '@src/context'
import { getDriver, getNeode } from './neo4j'
@ -22,8 +25,9 @@ const uniqueImageUrl = (imageUrl) => {
return newUrl.toString()
}
const driver = getDriver()
export const cleanDatabase = async ({ withMigrations } = { withMigrations: false }) => {
const driver = getDriver()
const session = driver.session()
const clean = `
@ -76,6 +80,18 @@ Factory.define('image')
return neode.create('Image', buildObject)
})
Factory.define('file')
.attr('name', faker.lorem.slug)
.attr('type', 'image/jpeg')
.attr('url', null)
.after((buildObject, _options) => {
if (!buildObject.url) {
buildObject.url = faker.image.urlPicsumPhotos()
}
buildObject.url = uniqueImageUrl(buildObject.url)
return neode.create('File', buildObject)
})
Factory.define('basicUser')
.option('password', '1234')
.attrs({
@ -89,9 +105,7 @@ Factory.define('basicUser')
showShoutsPublicly: false,
locale: 'en',
})
.attr('slug', ['slug', 'name'], (slug, name) => {
return slug || slugify(name, { lower: true })
})
.attr('slug', null)
.attr('encryptedPassword', ['password'], (password) => {
// eslint-disable-next-line n/no-sync
return hashSync(password, 10)
@ -121,13 +135,24 @@ Factory.define('userWithAboutEmpty')
Factory.define('user')
.extend('basicUser')
.option('about', faker.lorem.paragraph)
.option('email', faker.internet.exampleEmail)
.option('email', null)
.option('avatar', () =>
Factory.build('image', {
url: faker.image.avatar(),
}),
)
.after(async (buildObject, options) => {
// Ensure unique slug
if (!buildObject.slug) {
buildObject.slug = await uniqueSlug(
buildObject.name,
isUniqueFor({ driver } as unknown as Context, 'User'),
)
}
// Ensure unique email
if (!options.email) {
options.email = `${buildObject.slug as string}@example.org`
}
const [user, email, avatar] = await Promise.all([
neode.create('User', buildObject),
neode.create('EmailAddress', { email: options.email }),

View File

@ -37,42 +37,38 @@ export async function up(_next) {
urls = urls.filter((url) => url.startsWith('/uploads'))
// eslint-disable-next-line no-console
console.log('URLS uploaded:')
await Promise.all(
urls
.map((url) => async () => {
const { pathname } = new URL(url, 'http://example.org')
// TODO: find a better way to do this - this is quite a hack
const fileLocation =
CONFIG.NODE_ENV === 'production'
? path.join(__dirname, `../../../../public/${pathname}`) // we're in the /build folder
: path.join(__dirname, `../../../public/${pathname}`)
const s3Location = `original${pathname}`
const mimeType = lookup(fileLocation)
// eslint-disable-next-line security/detect-non-literal-fs-filename
const fileHandle = await open(fileLocation)
const params = {
Bucket: AWS_BUCKET,
Key: s3Location,
ACL: ObjectCannedACL.public_read,
ContentType: mimeType || 'image/jpeg',
Body: fileHandle.createReadStream(),
}
const command = new Upload({ client: s3, params })
for await (const url of urls) {
const { pathname } = new URL(url, 'http://example.org')
// TODO: find a better way to do this - this is quite a hack
const fileLocation =
CONFIG.NODE_ENV === 'production'
? path.join(__dirname, `../../../../public/${pathname}`) // we're in the /build folder
: path.join(__dirname, `../../../public/${pathname}`)
const s3Location = `original${pathname}`
const mimeType = lookup(fileLocation)
// eslint-disable-next-line security/detect-non-literal-fs-filename
const fileHandle = await open(fileLocation)
const params = {
Bucket: AWS_BUCKET,
Key: s3Location,
ACL: ObjectCannedACL.public_read,
ContentType: mimeType || 'image/jpeg',
Body: fileHandle.createReadStream(),
}
const command = new Upload({ client: s3, params })
const data = await command.done()
const { Location: spacesUrl } = data
const data = await command.done()
const { Location: spacesUrl } = data
const updatedRecord = await transaction.run(
'MATCH (image:Image {url: $url}) SET image.url = $spacesUrl RETURN image.url as url',
{ url, spacesUrl },
)
const [updatedUrl] = updatedRecord.records.map((record) => record.get('url') as string)
// eslint-disable-next-line no-console
console.log(updatedUrl)
return updatedUrl
})
.map((p) => p()),
)
const updatedRecord = await transaction.run(
'MATCH (image:Image {url: $url}) SET image.url = $spacesUrl RETURN image.url as url',
{ url, spacesUrl },
)
const [updatedUrl] = updatedRecord.records.map((record) => record.get('url') as string)
// eslint-disable-next-line no-console
console.log(updatedUrl)
// return updatedUrl
}
await transaction.commit()
} catch (error) {
// eslint-disable-next-line no-console

View File

@ -0,0 +1,51 @@
/* eslint-disable @typescript-eslint/no-unsafe-argument */
import { getDriver } from '@db/neo4j'
export const description = 'Delete follow relation for deleted users'
export async function up(_next) {
const driver = getDriver()
const session = driver.session()
const transaction = session.beginTransaction()
try {
// Implement your migration here.
await transaction.run(`
MATCH (:User {deleted: true})-[follow:FOLLOWS]-(:User)
DELETE follow;
`)
await transaction.commit()
} catch (error) {
// eslint-disable-next-line no-console
console.log(error)
await transaction.rollback()
// eslint-disable-next-line no-console
console.log('rolled back')
throw new Error(error)
} finally {
await session.close()
}
}
export async function down(_next) {
const driver = getDriver()
const session = driver.session()
const transaction = session.beginTransaction()
try {
// cannot be rolled back
// Implement your migration here.
// await transaction.run(``)
// await transaction.commit()
} catch (error) {
// eslint-disable-next-line no-console
console.log(error)
await transaction.rollback()
// eslint-disable-next-line no-console
console.log('rolled back')
throw new Error(error)
} finally {
await session.close()
}
}

View File

@ -0,0 +1,7 @@
export default {
url: { primary: true, type: 'string', uri: { allowRelative: true } },
name: { type: 'string' },
type: { type: 'string' },
createdAt: { type: 'string', isoDate: true, default: () => new Date().toISOString() },
updatedAt: { type: 'string', isoDate: true, default: () => new Date().toISOString() },
}

View File

@ -5,4 +5,5 @@ export default {
aspectRatio: { type: 'float', default: 1.0 },
type: { type: 'string' },
createdAt: { type: 'string', isoDate: true, default: () => new Date().toISOString() },
updatedAt: { type: 'string', isoDate: true, default: () => new Date().toISOString() },
}

View File

@ -18,7 +18,7 @@ export default {
},
title: { type: 'string', disallow: [null], min: 3 },
slug: { type: 'string', allow: [null], unique: 'true' },
content: { type: 'string', disallow: [null], min: 3 },
content: { type: 'string', disallow: [null], required: true, min: 3 },
contentExcerpt: { type: 'string', allow: [null] },
deleted: { type: 'boolean', default: false },
disabled: { type: 'boolean', default: false },
@ -58,6 +58,7 @@ export default {
},
},
pinned: { type: 'boolean', default: null, valid: [null, true] },
groupPinned: { type: 'boolean', default: null, valid: [null, true] },
postType: { type: 'string', default: 'Article', valid: ['Article', 'Event'] },
observes: {
type: 'relationship',

View File

@ -1,35 +1,49 @@
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
/* eslint-disable @typescript-eslint/no-var-requires */
/* eslint-disable n/no-missing-require */
/* eslint-disable n/global-require */
// NOTE: We cannot use `fs` here to clean up the code. Cypress breaks on any npm
// module that is not browser-compatible. Node's `fs` module is server-side only
// eslint-disable-next-line @typescript-eslint/no-explicit-any
declare let Cypress: any | undefined
//
// We use static imports instead of dynamic require() to ensure compatibility
// with both Node.js and Webpack (used by Cypress cucumber preprocessor).
import Badge from './Badge'
import Category from './Category'
import Comment from './Comment'
import Donations from './Donations'
import EmailAddress from './EmailAddress'
import File from './File'
import Group from './Group'
import Image from './Image'
import InviteCode from './InviteCode'
import Location from './Location'
import Migration from './Migration'
import Post from './Post'
import Report from './Report'
import SocialMedia from './SocialMedia'
import Tag from './Tag'
import UnverifiedEmailAddress from './UnverifiedEmailAddress'
import User from './User'
import type Neode from 'neode'
// Type assertion needed because TypeScript infers literal types from the model
// objects (e.g., type: 'string' as literal), but Neode expects the broader
// SchemaObject type with PropertyTypes union. The Neode type definitions are
// incomplete/incorrect, so we use double assertion to bypass the check.
export default {
Image: typeof Cypress !== 'undefined' ? require('./Image') : require('./Image').default,
Badge: typeof Cypress !== 'undefined' ? require('./Badge') : require('./Badge').default,
User: typeof Cypress !== 'undefined' ? require('./User') : require('./User').default,
Group: typeof Cypress !== 'undefined' ? require('./Group') : require('./Group').default,
EmailAddress:
typeof Cypress !== 'undefined' ? require('./EmailAddress') : require('./EmailAddress').default,
UnverifiedEmailAddress:
typeof Cypress !== 'undefined'
? require('./UnverifiedEmailAddress')
: require('./UnverifiedEmailAddress').default,
SocialMedia:
typeof Cypress !== 'undefined' ? require('./SocialMedia') : require('./SocialMedia').default,
Post: typeof Cypress !== 'undefined' ? require('./Post') : require('./Post').default,
Comment: typeof Cypress !== 'undefined' ? require('./Comment') : require('./Comment').default,
Category: typeof Cypress !== 'undefined' ? require('./Category') : require('./Category').default,
Tag: typeof Cypress !== 'undefined' ? require('./Tag') : require('./Tag').default,
Location: typeof Cypress !== 'undefined' ? require('./Location') : require('./Location').default,
Donations:
typeof Cypress !== 'undefined' ? require('./Donations') : require('./Donations').default,
Report: typeof Cypress !== 'undefined' ? require('./Report') : require('./Report').default,
Migration:
typeof Cypress !== 'undefined' ? require('./Migration') : require('./Migration').default,
InviteCode:
typeof Cypress !== 'undefined' ? require('./InviteCode') : require('./InviteCode').default,
}
Badge,
Category,
Comment,
Donations,
EmailAddress,
File,
Group,
Image,
InviteCode,
Location,
Migration,
Post,
Report,
SocialMedia,
Tag,
UnverifiedEmailAddress,
User,
} as unknown as Record<string, Neode.SchemaObject>

View File

@ -4,22 +4,20 @@
/* eslint-disable @typescript-eslint/no-floating-promises */
/* eslint-disable n/no-process-exit */
import { faker } from '@faker-js/faker'
import { createTestClient } from 'apollo-server-testing'
import sample from 'lodash/sample'
import CONFIG from '@config/index'
import { categories } from '@constants/categories'
import { changeGroupMemberRoleMutation } from '@graphql/queries/changeGroupMemberRoleMutation'
import { createCommentMutation } from '@graphql/queries/createCommentMutation'
import { createGroupMutation } from '@graphql/queries/createGroupMutation'
import { createMessageMutation } from '@graphql/queries/createMessageMutation'
import { createPostMutation } from '@graphql/queries/createPostMutation'
import { createRoomMutation } from '@graphql/queries/createRoomMutation'
import { joinGroupMutation } from '@graphql/queries/joinGroupMutation'
import createServer from '@src/server'
import { ChangeGroupMemberRole } from '@graphql/queries/ChangeGroupMemberRole'
import { CreateComment } from '@graphql/queries/CreateComment'
import { CreateGroup } from '@graphql/queries/CreateGroup'
import { CreateMessage } from '@graphql/queries/CreateMessage'
import { CreatePost } from '@graphql/queries/CreatePost'
import { CreateRoom } from '@graphql/queries/CreateRoom'
import { JoinGroup } from '@graphql/queries/JoinGroup'
import { createApolloTestSetup } from '@root/test/helpers'
import Factory from './factories'
import { getNeode, getDriver } from './neo4j'
import { trophies, verification } from './seed/badges'
if (CONFIG.PRODUCTION && !CONFIG.PRODUCTION_DB_CLEAN_ALLOW) {
@ -31,21 +29,23 @@ CONFIG.SEND_MAIL = true
const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
;(async function () {
/* eslint-disable-next-line no-console */
console.log('Seeded Data...')
let authenticatedUser = null
const driver = getDriver()
const neode = getNeode()
// locations
const context = () => ({
authenticatedUser,
config: CONFIG,
})
const apolloSetup = createApolloTestSetup({ context })
const { mutate, server, database } = apolloSetup
const { neode } = database
try {
const { server } = createServer({
context: () => {
return {
driver,
neode,
user: authenticatedUser,
}
},
})
const { mutate } = createTestClient(server)
// eslint-disable-next-line no-console
console.log('seed', 'locations')
// locations
const Hamburg = await Factory.build('location', {
@ -150,7 +150,9 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
} = await trophies()
const { verificationAdmin, verificationModerator, verificationDeveloper } = await verification()
// users
// eslint-disable-next-line no-console
console.log('seed', 'users')
const peterLustig = await Factory.build(
'user',
{
@ -243,7 +245,8 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
await jennyRostock.relateTo(Paris, 'isIn')
await huey.relateTo(Paris, 'isIn')
// badges
// eslint-disable-next-line no-console
console.log('seed', 'badges')
await peterLustig.relateTo(trophyRacoon, 'rewarded')
await peterLustig.relateTo(trophyRhino, 'rewarded')
await peterLustig.relateTo(trophyWolf, 'rewarded')
@ -286,7 +289,8 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
await louie.relateTo(trophyRabbit, 'rewarded')
await louie.relateTo(trophyRabbit, 'selected', { slot: 4 })
// Friends
// eslint-disable-next-line no-console
console.log('seed', 'friends')
await peterLustig.relateTo(bobDerBaumeister, 'friends')
await peterLustig.relateTo(jennyRostock, 'friends')
await bobDerBaumeister.relateTo(jennyRostock, 'friends')
@ -307,7 +311,8 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
await dagobert.relateTo(dewey, 'blocked')
await dagobert.relateTo(louie, 'blocked')
// categories
// eslint-disable-next-line no-console
console.log('seed', 'categories')
for (const category of categories) {
await Factory.build('category', {
id: category.id,
@ -317,7 +322,8 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
})
}
// tags
// eslint-disable-next-line no-console
console.log('seed', 'tags')
const environment = await Factory.build('tag', {
id: 'Environment',
})
@ -331,10 +337,11 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
id: 'Freedom',
})
// groups
// eslint-disable-next-line no-console
console.log('seed', 'groups')
authenticatedUser = await peterLustig.toJson()
await mutate({
mutation: createGroupMutation(),
mutation: CreateGroup,
variables: {
id: 'g0',
name: 'Investigative Journalism',
@ -347,21 +354,21 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
},
})
await mutate({
mutation: joinGroupMutation(),
mutation: JoinGroup,
variables: {
groupId: 'g0',
userId: 'u2',
},
})
await mutate({
mutation: joinGroupMutation(),
mutation: JoinGroup,
variables: {
groupId: 'g0',
userId: 'u4',
},
})
await mutate({
mutation: joinGroupMutation(),
mutation: JoinGroup,
variables: {
groupId: 'g0',
userId: 'u6',
@ -369,7 +376,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
})
await mutate({
mutation: changeGroupMemberRoleMutation(),
mutation: ChangeGroupMemberRole,
variables: {
groupId: 'g0',
userId: 'u2',
@ -378,7 +385,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
})
await mutate({
mutation: changeGroupMemberRoleMutation(),
mutation: ChangeGroupMemberRole,
variables: {
groupId: 'g0',
userId: 'u4',
@ -386,9 +393,10 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
},
})
// post into group
// eslint-disable-next-line no-console
console.log('seed', 'group posts')
await mutate({
mutation: createPostMutation(),
mutation: CreatePost,
variables: {
id: 'p0-g0',
groupId: 'g0',
@ -400,7 +408,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
authenticatedUser = await bobDerBaumeister.toJson()
await mutate({
mutation: createPostMutation(),
mutation: CreatePost,
variables: {
id: 'p1-g0',
groupId: 'g0',
@ -412,7 +420,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
authenticatedUser = await jennyRostock.toJson()
await mutate({
mutation: createGroupMutation(),
mutation: CreateGroup,
variables: {
id: 'g1',
name: 'School For Citizens',
@ -425,35 +433,35 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
},
})
await mutate({
mutation: joinGroupMutation(),
mutation: JoinGroup,
variables: {
groupId: 'g1',
userId: 'u1',
},
})
await mutate({
mutation: joinGroupMutation(),
mutation: JoinGroup,
variables: {
groupId: 'g1',
userId: 'u2',
},
})
await mutate({
mutation: joinGroupMutation(),
mutation: JoinGroup,
variables: {
groupId: 'g1',
userId: 'u5',
},
})
await mutate({
mutation: joinGroupMutation(),
mutation: JoinGroup,
variables: {
groupId: 'g1',
userId: 'u6',
},
})
await mutate({
mutation: joinGroupMutation(),
mutation: JoinGroup,
variables: {
groupId: 'g1',
userId: 'u7',
@ -461,7 +469,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
})
await mutate({
mutation: changeGroupMemberRoleMutation(),
mutation: ChangeGroupMemberRole,
variables: {
groupId: 'g1',
userId: 'u1',
@ -469,7 +477,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
},
})
await mutate({
mutation: changeGroupMemberRoleMutation(),
mutation: ChangeGroupMemberRole,
variables: {
groupId: 'g1',
userId: 'u5',
@ -477,16 +485,15 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
},
})
await mutate({
mutation: changeGroupMemberRoleMutation(),
mutation: ChangeGroupMemberRole,
variables: {
groupId: 'g1',
userId: 'u6',
roleInGroup: 'owner',
},
})
// post into group
await mutate({
mutation: createPostMutation(),
mutation: CreatePost,
variables: {
id: 'p0-g1',
groupId: 'g1',
@ -497,7 +504,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
})
authenticatedUser = await peterLustig.toJson()
await mutate({
mutation: createPostMutation(),
mutation: CreatePost,
variables: {
id: 'p1-g1',
groupId: 'g1',
@ -509,7 +516,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
authenticatedUser = await bobDerBaumeister.toJson()
await mutate({
mutation: createGroupMutation(),
mutation: CreateGroup,
variables: {
id: 'g2',
name: 'Yoga Practice',
@ -521,35 +528,35 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
},
})
await mutate({
mutation: joinGroupMutation(),
mutation: JoinGroup,
variables: {
groupId: 'g2',
userId: 'u3',
},
})
await mutate({
mutation: joinGroupMutation(),
mutation: JoinGroup,
variables: {
groupId: 'g2',
userId: 'u4',
},
})
await mutate({
mutation: joinGroupMutation(),
mutation: JoinGroup,
variables: {
groupId: 'g2',
userId: 'u5',
},
})
await mutate({
mutation: joinGroupMutation(),
mutation: JoinGroup,
variables: {
groupId: 'g2',
userId: 'u6',
},
})
await mutate({
mutation: joinGroupMutation(),
mutation: JoinGroup,
variables: {
groupId: 'g2',
userId: 'u7',
@ -557,7 +564,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
})
await mutate({
mutation: changeGroupMemberRoleMutation(),
mutation: ChangeGroupMemberRole,
variables: {
groupId: 'g2',
userId: 'u3',
@ -565,7 +572,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
},
})
await mutate({
mutation: changeGroupMemberRoleMutation(),
mutation: ChangeGroupMemberRole,
variables: {
groupId: 'g2',
userId: 'u4',
@ -573,7 +580,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
},
})
await mutate({
mutation: changeGroupMemberRoleMutation(),
mutation: ChangeGroupMemberRole,
variables: {
groupId: 'g2',
userId: 'u5',
@ -581,7 +588,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
},
})
await mutate({
mutation: changeGroupMemberRoleMutation(),
mutation: ChangeGroupMemberRole,
variables: {
groupId: 'g2',
userId: 'u6',
@ -591,7 +598,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
authenticatedUser = await louie.toJson()
await mutate({
mutation: createPostMutation(),
mutation: CreatePost,
variables: {
id: 'p0-g2',
groupId: 'g2',
@ -601,12 +608,13 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
},
})
// Create Events (by peter lustig)
// eslint-disable-next-line no-console
console.log('seed', 'events')
authenticatedUser = await peterLustig.toJson()
const now = new Date()
await mutate({
mutation: createPostMutation(),
mutation: CreatePost,
variables: {
id: 'e0',
title: 'Illegaler Kindergeburtstag',
@ -621,7 +629,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
},
})
await mutate({
mutation: createPostMutation(),
mutation: CreatePost,
variables: {
id: 'e1',
title: 'Wir Schützen den Stuttgarter Schlossgarten',
@ -636,7 +644,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
},
})
await mutate({
mutation: createPostMutation(),
mutation: CreatePost,
variables: {
id: 'e2',
title: 'IT 4 Change Treffen',
@ -659,7 +667,8 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
eventStart: new Date(now.getFullYear(), now.getMonth(), now.getDate() - 3).toISOString(),
})
// posts (articles)
// eslint-disable-next-line no-console
console.log('seed', 'posts')
const p0 = await Factory.build(
'post',
{
@ -816,7 +825,8 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
},
)
// invite code
// eslint-disable-next-line no-console
console.log('seed', 'invitecodes')
await Factory.build(
'inviteCode',
{
@ -838,7 +848,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
'The new physics of <a class="hashtag" data-hashtag-id="QuantenFlussTheorie" href="/?hashtag=QuantenFlussTheorie">#QuantenFlussTheorie</a> can explain <a class="hashtag" data-hashtag-id="QuantumGravity" href="/?hashtag=QuantumGravity">#QuantumGravity</a>! <a class="mention" data-mention-id="u1" href="/profile/u1">@peter-lustig</a> got that already. ;-)'
await mutate({
mutation: createPostMutation(),
mutation: CreatePost,
variables: {
id: 'p2',
title: `Nature Philosophy Yoga`,
@ -847,7 +857,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
},
})
await mutate({
mutation: createPostMutation(),
mutation: CreatePost,
variables: {
id: 'p7',
title: 'This is post #7',
@ -856,7 +866,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
},
})
await mutate({
mutation: createPostMutation(),
mutation: CreatePost,
variables: {
id: 'p8',
title: `Quantum Flow Theory explains Quantum Gravity`,
@ -865,7 +875,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
},
})
await mutate({
mutation: createPostMutation(),
mutation: CreatePost,
variables: {
id: 'p12',
title: 'This is post #12',
@ -881,13 +891,15 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
authenticatedUser = null
// eslint-disable-next-line no-console
console.log('seed', 'comments')
authenticatedUser = await dewey.toJson()
const mentionInComment1 =
'I heard <a class="mention" data-mention-id="u3" href="/profile/u3">@jenny-rostock</a> has practiced it for 3 years now.'
const mentionInComment2 =
'Did <a class="mention" data-mention-id="u1" href="/profile/u1">@peter-lustig</a> tell you?'
await mutate({
mutation: createCommentMutation,
mutation: CreateComment,
variables: {
id: 'c4',
postId: 'p2',
@ -895,7 +907,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
},
})
await mutate({
mutation: createCommentMutation,
mutation: CreateComment,
variables: {
id: 'c4-1',
postId: 'p2',
@ -903,7 +915,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
},
})
await mutate({
mutation: createCommentMutation,
mutation: CreateComment,
variables: {
postId: 'p14',
content: faker.lorem.paragraph(),
@ -1087,6 +1099,8 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
await huey.relateTo(p9, 'shouted')
await louie.relateTo(p10, 'shouted')
// eslint-disable-next-line no-console
console.log('seed', 'reports')
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const reports: any[] = []
reports.push(
@ -1195,13 +1209,26 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
closed: true,
})
// eslint-disable-next-line no-console
console.log('seed', 'users additional')
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const additionalUsers: any[] = []
for (let i = 0; i < 30; i++) {
for (let i = 0; i < 1000; i++) {
const user = await Factory.build('user')
await jennyRostock.relateTo(user, 'following')
await user.relateTo(jennyRostock, 'following')
additionalUsers.push(user)
const userObj = await user.toJson()
authenticatedUser = userObj
await mutate({
mutation: JoinGroup,
variables: {
groupId: 'g2',
userId: userObj.id,
},
})
}
// Jenny users
@ -1499,10 +1526,11 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
await Factory.build('donations')
// Chat
// eslint-disable-next-line no-console
console.log('seed', 'chat')
authenticatedUser = await huey.toJson()
const { data: roomHueyPeter } = await mutate({
mutation: createRoomMutation(),
mutation: CreateRoom,
variables: {
userId: (await peterLustig.toJson()).id,
},
@ -1511,7 +1539,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
for (let i = 0; i < 30; i++) {
authenticatedUser = await huey.toJson()
await mutate({
mutation: createMessageMutation(),
mutation: CreateMessage,
variables: {
roomId: roomHueyPeter?.CreateRoom.id,
content: faker.lorem.sentence(),
@ -1519,7 +1547,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
})
authenticatedUser = await peterLustig.toJson()
await mutate({
mutation: createMessageMutation(),
mutation: CreateMessage,
variables: {
roomId: roomHueyPeter?.CreateRoom.id,
content: faker.lorem.sentence(),
@ -1529,7 +1557,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
authenticatedUser = await huey.toJson()
const { data: roomHueyJenny } = await mutate({
mutation: createRoomMutation(),
mutation: CreateRoom,
variables: {
userId: (await jennyRostock.toJson()).id,
},
@ -1537,7 +1565,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
for (let i = 0; i < 1000; i++) {
authenticatedUser = await huey.toJson()
await mutate({
mutation: createMessageMutation(),
mutation: CreateMessage,
variables: {
roomId: roomHueyJenny?.CreateRoom.id,
content: faker.lorem.sentence(),
@ -1545,7 +1573,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
})
authenticatedUser = await jennyRostock.toJson()
await mutate({
mutation: createMessageMutation(),
mutation: CreateMessage,
variables: {
roomId: roomHueyJenny?.CreateRoom.id,
content: faker.lorem.sentence(),
@ -1553,10 +1581,10 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
})
}
for (const user of additionalUsers) {
for (const user of additionalUsers.slice(0, 99)) {
authenticatedUser = await jennyRostock.toJson()
const { data: room } = await mutate({
mutation: createRoomMutation(),
mutation: CreateRoom,
variables: {
userId: (await user.toJson()).id,
},
@ -1565,7 +1593,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
for (let i = 0; i < 29; i++) {
authenticatedUser = await jennyRostock.toJson()
await mutate({
mutation: createMessageMutation(),
mutation: CreateMessage,
variables: {
roomId: room?.CreateRoom.id,
content: faker.lorem.sentence(),
@ -1573,7 +1601,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
})
authenticatedUser = await user.toJson()
await mutate({
mutation: createMessageMutation(),
mutation: CreateMessage,
variables: {
roomId: room?.CreateRoom.id,
content: faker.lorem.sentence(),
@ -1581,16 +1609,15 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
})
}
}
/* eslint-disable-next-line no-console */
console.log('Seeded Data...')
await driver.close()
neode.close()
process.exit(0)
// eslint-disable-next-line no-catch-all/no-catch-all
} catch (err) {
/* eslint-disable-next-line no-console */
console.error(err)
process.exit(1)
throw err
} finally {
await server.stop()
await database.driver.close()
// eslint-disable-next-line @typescript-eslint/await-thenable
await neode.close()
process.exit(0)
}
})()

View File

@ -0,0 +1,11 @@
import { Integer, Node } from 'neo4j-driver'
export interface CategoryDbProperties {
createdAt: string
icon: string
id: string
name: string
slug: string
}
export type Category = Node<Integer, CategoryDbProperties>

View File

@ -0,0 +1,13 @@
import { Integer, Node } from 'neo4j-driver'
export interface CommentDbProperties {
content: string
contentExcerpt: string
createdAt: string
deleted: boolean
disabled: boolean
id: string
updatedAt: string
}
export type Comment = Node<Integer, CommentDbProperties>

View File

@ -0,0 +1,10 @@
import { Integer, Node } from 'neo4j-driver'
export interface EmailAddressDbProperties {
createdAt: string
email: string
nonce: string
verifiedAt: string
}
export type EmailAddress = Node<Integer, EmailAddressDbProperties>

View File

@ -0,0 +1,12 @@
import { Integer, Node } from 'neo4j-driver'
import { PostDbProperties } from './Post'
export interface EventDbProperties extends PostDbProperties {
eventIsOnline: boolean
eventLocationName: string
eventStart: string
eventVenue: string
}
export type Event = Node<Integer, EventDbProperties>

View File

@ -0,0 +1,19 @@
import { Integer, Node } from 'neo4j-driver'
export interface GroupDbProperties {
about: string
actionRadius: string
createdAt: string
deleted: boolean
description: string
descriptionExcerpt: string
disabled: boolean
groupType: string
id: string
locationName?: string
name: string
slug: string
updatedAt: string
}
export type Group = Node<Integer, GroupDbProperties>

View File

@ -0,0 +1,12 @@
import { Integer, Node } from 'neo4j-driver'
export interface ImageDbProperties {
alt: string
aspectRatio: number
createdAt: string
sensitive: boolean
type: string
url: string
}
export type Image = Node<Integer, ImageDbProperties>

View File

@ -0,0 +1,8 @@
import { Integer, Node } from 'neo4j-driver'
export interface InviteCodeDbProperties {
code: string
createdAt: string
}
export type InviteCode = Node<Integer, InviteCodeDbProperties>

View File

@ -0,0 +1,20 @@
import { Integer, Node } from 'neo4j-driver'
export interface LocationDbProperties {
id: string
lat: number
lng: number
name: string
nameDE: string
nameEN: string
nameES: string
nameFR: string
nameIT: string
nameNL: string
namePL: string
namePT: string
nameRU: string
type: string
}
export type Location = Node<Integer, LocationDbProperties>

View File

@ -0,0 +1,13 @@
import { Integer, Node } from 'neo4j-driver'
export interface MessageDbProperties {
content: string
createdAt: string
distributed: boolean
id: string
indexId: number
saved: boolean
seen: boolean
}
export type Message = Node<Integer, MessageDbProperties>

View File

@ -0,0 +1,21 @@
import { Integer, Node } from 'neo4j-driver'
export interface PostDbProperties {
clickedCount: number
content: string
contentExcerpt: string
createdAt: string
deleted: boolean
disabled: boolean
id: string
language: string
postType: string // this is a PostType[] in the graphql, mapped from the labels
slug: string
sortDate: string
title: string
updatedAt: string
viewedTeaserCount: number
}
export type Post = Node<Integer, PostDbProperties>
export type Article = Node<Integer, PostDbProperties>

View File

@ -0,0 +1,11 @@
import { Integer, Node } from 'neo4j-driver'
export interface ReportDbProperties {
closed: boolean
createdAt: string
id: string
rule: string
updatedAt: string
}
export type Report = Node<Integer, ReportDbProperties>

View File

@ -0,0 +1,10 @@
import { Integer, Node } from 'neo4j-driver'
export interface TagDbProperties {
deleted: boolean
disabled: boolean
id: string
updatedAt: string
}
export type Tag = Node<Integer, TagDbProperties>

View File

@ -1,9 +1,12 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
exports[`sendChatMessageMail English chat_message template 1`] = `
{
"attachments": [],
"from": "ocelot.social <devops@ocelot.social>",
"from": {
"address": "devops@ocelot.social",
"name": "ocelot.social",
},
"html": "<!DOCTYPE html>
<html lang="en">
<head>
@ -13,9 +16,10 @@ exports[`sendChatMessageMail English chat_message template 1`] = `
<style>body{
display: block;
font-family: Lato, sans-serif;
font-size: 17px;
font-size: 16px;
text-align: left;
text-align: -webkit-left;
line-height: 24px;
justify-content: center;
padding: 15px;
margin: 0px;
@ -23,9 +27,10 @@ exports[`sendChatMessageMail English chat_message template 1`] = `
h2 {
margin-top: 25px;
font-size: 25px;
margin-bottom: 30px;
font-size: 24px;
font-weight: normal;
line-height: 22px;
line-height: 24px;
color: #333333;
}
@ -36,11 +41,17 @@ h2 {
}
.head-logo {
width: 60%;
width: 30%;
height: auto;
display: block;
margin-left: auto;
margin-right: auto;
margin-bottom: 50px;
}
p.no-margin-top-bottom {
margin-top: 0;
margin-bottom: 0;
}
a {
@ -51,10 +62,9 @@ a.button {
background: #17b53e;
font-family: Lato, sans-serif;
font-size: 16px;
line-height: 15px;
text-decoration: none;
text-align:center;
padding: 13px 17px;
padding: 9px 18px;
color: #ffffff;
display: table;
margin-left: auto;
@ -62,10 +72,6 @@ a.button {
border-radius: 4px;
}
span {
color: #17b53e;
}
.text-block {
margin-top: 20px;
color: #000000;
@ -74,7 +80,7 @@ span {
footer {
padding: 20px;
font-family: Lato, sans-serif;
font-size: 12px;
font-size: 14px;
line-height: 15px;
text-align: center;
color: #888888;
@ -94,13 +100,13 @@ footer {
<p>you have received a new chat message from <a class="user" href="http://webapp:3000/profile/chatSender/chatsender">chatSender</a>.
</p><a class="button" href="http://webapp:3000/chat">Show Chat</a>
<div class="text-block">
<p>See you soon on <a class="organization" href="https://ocelot.social">ocelot.social</a>!</p>
<p> The ocelot.social Team</p><br>
<p>PS: If you don't want to receive e-mails anymore, change your <a class="settings" href="http://webapp:3000/settings/notifications">notification settings</a>!</p>
<p class="no-margin-top-bottom">See you soon on <a class="organization" href="https://ocelot.social">ocelot.social</a>!</p>
<p class="no-margin-top-bottom"> The ocelot.social Team</p><br>
<p class="no-margin-top-bottom">PS: If you don't want to receive e-mails anymore, change your <a class="settings" href="http://webapp:3000/settings/notifications">notification settings</a>!</p>
</div>
</div>
<div class="support">
<p>If you have questions or problems, feel free to contact our support: <a href="mailto:devops@ocelot.social">devops@ocelot.social</a></p>
<p class="no-margin-top-bottom">If you have questions or problems, feel free to contact our support: <a href="mailto:devops@ocelot.social">devops@ocelot.social</a></p>
</div>
<footer>
<div class="footer"></div><a href="https://ocelot.social">ocelot.social Community</a>
@ -129,14 +135,20 @@ devops@ocelot.social [devops@ocelot.social]
ocelot.social Community [https://ocelot.social]",
"to": "user@example.org",
"to": {
"address": "user@example.org",
"name": "chatReceiver",
},
}
`;
exports[`sendChatMessageMail German chat_message template 1`] = `
{
"attachments": [],
"from": "ocelot.social <devops@ocelot.social>",
"from": {
"address": "devops@ocelot.social",
"name": "ocelot.social",
},
"html": "<!DOCTYPE html>
<html lang="de">
<head>
@ -146,9 +158,10 @@ exports[`sendChatMessageMail German chat_message template 1`] = `
<style>body{
display: block;
font-family: Lato, sans-serif;
font-size: 17px;
font-size: 16px;
text-align: left;
text-align: -webkit-left;
line-height: 24px;
justify-content: center;
padding: 15px;
margin: 0px;
@ -156,9 +169,10 @@ exports[`sendChatMessageMail German chat_message template 1`] = `
h2 {
margin-top: 25px;
font-size: 25px;
margin-bottom: 30px;
font-size: 24px;
font-weight: normal;
line-height: 22px;
line-height: 24px;
color: #333333;
}
@ -169,11 +183,17 @@ h2 {
}
.head-logo {
width: 60%;
width: 30%;
height: auto;
display: block;
margin-left: auto;
margin-right: auto;
margin-bottom: 50px;
}
p.no-margin-top-bottom {
margin-top: 0;
margin-bottom: 0;
}
a {
@ -184,10 +204,9 @@ a.button {
background: #17b53e;
font-family: Lato, sans-serif;
font-size: 16px;
line-height: 15px;
text-decoration: none;
text-align:center;
padding: 13px 17px;
padding: 9px 18px;
color: #ffffff;
display: table;
margin-left: auto;
@ -195,10 +214,6 @@ a.button {
border-radius: 4px;
}
span {
color: #17b53e;
}
.text-block {
margin-top: 20px;
color: #000000;
@ -207,7 +222,7 @@ span {
footer {
padding: 20px;
font-family: Lato, sans-serif;
font-size: 12px;
font-size: 14px;
line-height: 15px;
text-align: center;
color: #888888;
@ -227,13 +242,13 @@ footer {
<p>du hast eine neue Chat-Nachricht von <a class="user" href="http://webapp:3000/profile/chatSender/chatsender">chatSender</a> erhalten.
</p><a class="button" href="http://webapp:3000/chat">Chat anzeigen</a>
<div class="text-block">
<p>Bis bald bei <a class="organization" href="https://ocelot.social">ocelot.social</a>!</p>
<p> Dein ocelot.social Team</p><br>
<p>PS: Möchtest du keine E-Mails mehr erhalten, dann ändere deine <a class="settings" href="http://webapp:3000/settings/notifications">Benachrichtigungseinstellungen</a>!</p>
<p class="no-margin-top-bottom">Bis bald bei <a class="organization" href="https://ocelot.social">ocelot.social</a>!</p>
<p class="no-margin-top-bottom"> Dein ocelot.social Team</p><br>
<p class="no-margin-top-bottom">PS: Möchtest du keine E-Mails mehr erhalten, dann ändere deine <a class="settings" href="http://webapp:3000/settings/notifications">Benachrichtigungseinstellungen</a>!</p>
</div>
</div>
<div class="support">
<p>Wenn du Fragen oder Probleme hast, kannst du dich gerne an den Support wenden: <a href="mailto:devops@ocelot.social">devops@ocelot.social</a></p>
<p class="no-margin-top-bottom">Wenn du Fragen oder Probleme hast, kannst du dich gerne an den Support wenden: <a href="mailto:devops@ocelot.social">devops@ocelot.social</a></p>
</div>
<footer>
<div class="footer"></div><a href="https://ocelot.social">ocelot.social Community</a>
@ -262,6 +277,9 @@ devops@ocelot.social [devops@ocelot.social]
ocelot.social Community [https://ocelot.social]",
"to": "user@example.org",
"to": {
"address": "user@example.org",
"name": "chatReceiver",
},
}
`;

View File

@ -1,9 +1,12 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
exports[`sendEmailVerification English renders correctly 1`] = `
{
"attachments": [],
"from": "ocelot.social <devops@ocelot.social>",
"from": {
"address": "devops@ocelot.social",
"name": "ocelot.social",
},
"html": "<!DOCTYPE html>
<html lang="en">
<head>
@ -13,9 +16,10 @@ exports[`sendEmailVerification English renders correctly 1`] = `
<style>body{
display: block;
font-family: Lato, sans-serif;
font-size: 17px;
font-size: 16px;
text-align: left;
text-align: -webkit-left;
line-height: 24px;
justify-content: center;
padding: 15px;
margin: 0px;
@ -23,9 +27,10 @@ exports[`sendEmailVerification English renders correctly 1`] = `
h2 {
margin-top: 25px;
font-size: 25px;
margin-bottom: 30px;
font-size: 24px;
font-weight: normal;
line-height: 22px;
line-height: 24px;
color: #333333;
}
@ -36,11 +41,17 @@ h2 {
}
.head-logo {
width: 60%;
width: 30%;
height: auto;
display: block;
margin-left: auto;
margin-right: auto;
margin-bottom: 50px;
}
p.no-margin-top-bottom {
margin-top: 0;
margin-bottom: 0;
}
a {
@ -51,10 +62,9 @@ a.button {
background: #17b53e;
font-family: Lato, sans-serif;
font-size: 16px;
line-height: 15px;
text-decoration: none;
text-align:center;
padding: 13px 17px;
padding: 9px 18px;
color: #ffffff;
display: table;
margin-left: auto;
@ -62,10 +72,6 @@ a.button {
border-radius: 4px;
}
span {
color: #17b53e;
}
.text-block {
margin-top: 20px;
color: #000000;
@ -74,7 +80,7 @@ span {
footer {
padding: 20px;
font-family: Lato, sans-serif;
font-size: 12px;
font-size: 14px;
line-height: 15px;
text-align: center;
color: #888888;
@ -95,12 +101,12 @@ footer {
<p>If you don't want to change your e-mail address feel free to ignore this message. </p>
<p>If the above button doesn't work, you can also copy the following code into your browser window: <span>123456</span></p>
<div class="text-block">
<p>See you soon on <a class="organization" href="https://ocelot.social">ocelot.social</a>!</p>
<p> The ocelot.social Team</p>
<p class="no-margin-top-bottom">See you soon on <a class="organization" href="https://ocelot.social">ocelot.social</a>!</p>
<p class="no-margin-top-bottom"> The ocelot.social Team</p>
</div>
</div>
<div class="support">
<p>If you have questions or problems, feel free to contact our support: <a href="mailto:devops@ocelot.social">devops@ocelot.social</a></p>
<p class="no-margin-top-bottom">If you have questions or problems, feel free to contact our support: <a href="mailto:devops@ocelot.social">devops@ocelot.social</a></p>
</div>
<footer>
<div class="footer"></div><a href="https://ocelot.social">ocelot.social Community</a>
@ -132,14 +138,20 @@ devops@ocelot.social [devops@ocelot.social]
ocelot.social Community [https://ocelot.social]",
"to": "user@example.org",
"to": {
"address": "user@example.org",
"name": "User",
},
}
`;
exports[`sendEmailVerification German renders correctly 1`] = `
{
"attachments": [],
"from": "ocelot.social <devops@ocelot.social>",
"from": {
"address": "devops@ocelot.social",
"name": "ocelot.social",
},
"html": "<!DOCTYPE html>
<html lang="de">
<head>
@ -149,9 +161,10 @@ exports[`sendEmailVerification German renders correctly 1`] = `
<style>body{
display: block;
font-family: Lato, sans-serif;
font-size: 17px;
font-size: 16px;
text-align: left;
text-align: -webkit-left;
line-height: 24px;
justify-content: center;
padding: 15px;
margin: 0px;
@ -159,9 +172,10 @@ exports[`sendEmailVerification German renders correctly 1`] = `
h2 {
margin-top: 25px;
font-size: 25px;
margin-bottom: 30px;
font-size: 24px;
font-weight: normal;
line-height: 22px;
line-height: 24px;
color: #333333;
}
@ -172,11 +186,17 @@ h2 {
}
.head-logo {
width: 60%;
width: 30%;
height: auto;
display: block;
margin-left: auto;
margin-right: auto;
margin-bottom: 50px;
}
p.no-margin-top-bottom {
margin-top: 0;
margin-bottom: 0;
}
a {
@ -187,10 +207,9 @@ a.button {
background: #17b53e;
font-family: Lato, sans-serif;
font-size: 16px;
line-height: 15px;
text-decoration: none;
text-align:center;
padding: 13px 17px;
padding: 9px 18px;
color: #ffffff;
display: table;
margin-left: auto;
@ -198,10 +217,6 @@ a.button {
border-radius: 4px;
}
span {
color: #17b53e;
}
.text-block {
margin-top: 20px;
color: #000000;
@ -210,7 +225,7 @@ span {
footer {
padding: 20px;
font-family: Lato, sans-serif;
font-size: 12px;
font-size: 14px;
line-height: 15px;
text-align: center;
color: #888888;
@ -231,12 +246,12 @@ footer {
<p>Falls du deine E-Mail Adresse doch nicht ändern möchtest, kannst du diese Nachricht einfach ignorieren. </p>
<p>Sollte der Button für dich nicht funktionieren, kannst du auch folgenden Code in dein Browserfenster kopieren: <span>123456</span></p>
<div class="text-block">
<p>Bis bald bei <a class="organization" href="https://ocelot.social">ocelot.social</a>!</p>
<p> Dein ocelot.social Team</p>
<p class="no-margin-top-bottom">Bis bald bei <a class="organization" href="https://ocelot.social">ocelot.social</a>!</p>
<p class="no-margin-top-bottom"> Dein ocelot.social Team</p>
</div>
</div>
<div class="support">
<p>Wenn du Fragen oder Probleme hast, kannst du dich gerne an den Support wenden: <a href="mailto:devops@ocelot.social">devops@ocelot.social</a></p>
<p class="no-margin-top-bottom">Wenn du Fragen oder Probleme hast, kannst du dich gerne an den Support wenden: <a href="mailto:devops@ocelot.social">devops@ocelot.social</a></p>
</div>
<footer>
<div class="footer"></div><a href="https://ocelot.social">ocelot.social Community</a>
@ -268,6 +283,9 @@ devops@ocelot.social [devops@ocelot.social]
ocelot.social Community [https://ocelot.social]",
"to": "user@example.org",
"to": {
"address": "user@example.org",
"name": "User",
},
}
`;

View File

@ -1,9 +1,12 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
exports[`sendRegistrationMail with invite code English renders correctly 1`] = `
{
"attachments": [],
"from": "ocelot.social <devops@ocelot.social>",
"from": {
"address": "devops@ocelot.social",
"name": "ocelot.social",
},
"html": "<!DOCTYPE html>
<html lang="en">
<head>
@ -13,9 +16,10 @@ exports[`sendRegistrationMail with invite code English renders correctly 1`] = `
<style>body{
display: block;
font-family: Lato, sans-serif;
font-size: 17px;
font-size: 16px;
text-align: left;
text-align: -webkit-left;
line-height: 24px;
justify-content: center;
padding: 15px;
margin: 0px;
@ -23,9 +27,10 @@ exports[`sendRegistrationMail with invite code English renders correctly 1`] = `
h2 {
margin-top: 25px;
font-size: 25px;
margin-bottom: 30px;
font-size: 24px;
font-weight: normal;
line-height: 22px;
line-height: 24px;
color: #333333;
}
@ -36,11 +41,17 @@ h2 {
}
.head-logo {
width: 60%;
width: 30%;
height: auto;
display: block;
margin-left: auto;
margin-right: auto;
margin-bottom: 50px;
}
p.no-margin-top-bottom {
margin-top: 0;
margin-bottom: 0;
}
a {
@ -51,10 +62,9 @@ a.button {
background: #17b53e;
font-family: Lato, sans-serif;
font-size: 16px;
line-height: 15px;
text-decoration: none;
text-align:center;
padding: 13px 17px;
padding: 9px 18px;
color: #ffffff;
display: table;
margin-left: auto;
@ -62,10 +72,6 @@ a.button {
border-radius: 4px;
}
span {
color: #17b53e;
}
.text-block {
margin-top: 20px;
color: #000000;
@ -74,7 +80,7 @@ span {
footer {
padding: 20px;
font-family: Lato, sans-serif;
font-size: 12px;
font-size: 14px;
line-height: 15px;
text-align: center;
color: #888888;
@ -91,19 +97,19 @@ footer {
<h2>Welcome to ocelot.social!</h2>
<div class="wrapper">
<div class="content"></div>
<p>Thank you for joining our cause it's awesome to have you on board. There's just one tiny step missing before we can start shaping the world together … Please confirm your e-mail address by clicking the button below:</p><a class="button" href="http://webapp:3000/registration?email=user%40example.org&amp;nonce=123456&amp;inviteCode=welcome&amp;method=invite-code">Confirm your e-mail address</a>
<p>Thank you for joining our cause it's awesome to have you on board. There's just one tiny step missing before we can start shaping the world together … Please confirm your e-mail address by clicking the button below:</p><a class="button" href="http://webapp:3000/registration?email=moderator%40example.org&amp;nonce=123456&amp;inviteCode=welcome&amp;method=invite-code">Confirm your e-mail address</a>
<p>If the above button doesn't work, you can also copy the following code into your browser window: <span>123456</span></p>
<p>However, this only works if you have registered through our website.</p>
<p>If you didn't sign up for <a>ocelot.social</a> we recommend you to check it out! It's a social network from people for people who want to connect and change the world together.
</p>
<p>PS: If you ignore this e-mail we will not create an account for you. ;)</p>
<div class="text-block">
<p>See you soon on <a class="organization" href="https://ocelot.social">ocelot.social</a>!</p>
<p> The ocelot.social Team</p>
<p class="no-margin-top-bottom">See you soon on <a class="organization" href="https://ocelot.social">ocelot.social</a>!</p>
<p class="no-margin-top-bottom"> The ocelot.social Team</p>
</div>
</div>
<div class="support">
<p>If you have questions or problems, feel free to contact our support: <a href="mailto:devops@ocelot.social">devops@ocelot.social</a></p>
<p class="no-margin-top-bottom">If you have questions or problems, feel free to contact our support: <a href="mailto:devops@ocelot.social">devops@ocelot.social</a></p>
</div>
<footer>
<div class="footer"></div><a href="https://ocelot.social">ocelot.social Community</a>
@ -119,7 +125,7 @@ just one tiny step missing before we can start shaping the world together …
Please confirm your e-mail address by clicking the button below:
Confirm your e-mail address
[http://webapp:3000/registration?email=user%40example.org&nonce=123456&inviteCode=welcome&method=invite-code]
[http://webapp:3000/registration?email=moderator%40example.org&nonce=123456&inviteCode=welcome&method=invite-code]
If the above button doesn't work, you can also copy the following code into your
browser window: 123456
@ -141,14 +147,20 @@ devops@ocelot.social [devops@ocelot.social]
ocelot.social Community [https://ocelot.social]",
"to": "user@example.org",
"to": {
"address": "moderator@example.org",
"name": "Bob &"?@\\ Baumeister",
},
}
`;
exports[`sendRegistrationMail with invite code German renders correctly 1`] = `
{
"attachments": [],
"from": "ocelot.social <devops@ocelot.social>",
"from": {
"address": "devops@ocelot.social",
"name": "ocelot.social",
},
"html": "<!DOCTYPE html>
<html lang="de">
<head>
@ -158,9 +170,10 @@ exports[`sendRegistrationMail with invite code German renders correctly 1`] = `
<style>body{
display: block;
font-family: Lato, sans-serif;
font-size: 17px;
font-size: 16px;
text-align: left;
text-align: -webkit-left;
line-height: 24px;
justify-content: center;
padding: 15px;
margin: 0px;
@ -168,9 +181,10 @@ exports[`sendRegistrationMail with invite code German renders correctly 1`] = `
h2 {
margin-top: 25px;
font-size: 25px;
margin-bottom: 30px;
font-size: 24px;
font-weight: normal;
line-height: 22px;
line-height: 24px;
color: #333333;
}
@ -181,11 +195,17 @@ h2 {
}
.head-logo {
width: 60%;
width: 30%;
height: auto;
display: block;
margin-left: auto;
margin-right: auto;
margin-bottom: 50px;
}
p.no-margin-top-bottom {
margin-top: 0;
margin-bottom: 0;
}
a {
@ -196,10 +216,9 @@ a.button {
background: #17b53e;
font-family: Lato, sans-serif;
font-size: 16px;
line-height: 15px;
text-decoration: none;
text-align:center;
padding: 13px 17px;
padding: 9px 18px;
color: #ffffff;
display: table;
margin-left: auto;
@ -207,10 +226,6 @@ a.button {
border-radius: 4px;
}
span {
color: #17b53e;
}
.text-block {
margin-top: 20px;
color: #000000;
@ -219,7 +234,7 @@ span {
footer {
padding: 20px;
font-family: Lato, sans-serif;
font-size: 12px;
font-size: 14px;
line-height: 15px;
text-align: center;
color: #888888;
@ -236,19 +251,19 @@ footer {
<h2>Willkommen bei ocelot.social!</h2>
<div class="wrapper">
<div class="content"></div>
<p>Danke, dass du dich angemeldet hast wir freuen uns, dich dabei zu haben. Jetzt fehlt nur noch eine Kleinigkeit, bevor wir gemeinsam die Welt verbessern können … Bitte bestätige deine E-Mail Adresse:</p><a class="button" href="http://webapp:3000/registration?email=user%40example.org&amp;nonce=123456&amp;inviteCode=welcome&amp;method=invite-code">Bestätige deine E-Mail Adresse</a>
<p>Danke, dass du dich angemeldet hast wir freuen uns, dich dabei zu haben. Jetzt fehlt nur noch eine Kleinigkeit, bevor wir gemeinsam die Welt verbessern können … Bitte bestätige deine E-Mail Adresse:</p><a class="button" href="http://webapp:3000/registration?email=moderator%40example.org&amp;nonce=123456&amp;inviteCode=welcome&amp;method=invite-code">Bestätige deine E-Mail Adresse</a>
<p>Sollte der Button für dich nicht funktionieren, kannst du auch folgenden Code in dein Browserfenster kopieren: <span>123456</span></p>
<p>Das funktioniert allerdings nur, wenn du dich über unsere Website registriert hast.</p>
<p>Falls du dich nicht selbst bei <a>ocelot.social</a> angemeldet hast, schau doch mal vorbei! Wir sind ein gemeinnütziges Aktionsnetzwerk von Menschen für Menschen.
</p>
<p>PS: Wenn du keinen Account bei uns möchtest, kannst du diese E-Mail einfach ignorieren. ;)</p>
<div class="text-block">
<p>Bis bald bei <a class="organization" href="https://ocelot.social">ocelot.social</a>!</p>
<p> Dein ocelot.social Team</p>
<p class="no-margin-top-bottom">Bis bald bei <a class="organization" href="https://ocelot.social">ocelot.social</a>!</p>
<p class="no-margin-top-bottom"> Dein ocelot.social Team</p>
</div>
</div>
<div class="support">
<p>Wenn du Fragen oder Probleme hast, kannst du dich gerne an den Support wenden: <a href="mailto:devops@ocelot.social">devops@ocelot.social</a></p>
<p class="no-margin-top-bottom">Wenn du Fragen oder Probleme hast, kannst du dich gerne an den Support wenden: <a href="mailto:devops@ocelot.social">devops@ocelot.social</a></p>
</div>
<footer>
<div class="footer"></div><a href="https://ocelot.social">ocelot.social Community</a>
@ -264,7 +279,7 @@ fehlt nur noch eine Kleinigkeit, bevor wir gemeinsam die Welt verbessern können
… Bitte bestätige deine E-Mail Adresse:
Bestätige deine E-Mail Adresse
[http://webapp:3000/registration?email=user%40example.org&nonce=123456&inviteCode=welcome&method=invite-code]
[http://webapp:3000/registration?email=moderator%40example.org&nonce=123456&inviteCode=welcome&method=invite-code]
Sollte der Button für dich nicht funktionieren, kannst du auch folgenden Code in
dein Browserfenster kopieren: 123456
@ -287,14 +302,20 @@ devops@ocelot.social [devops@ocelot.social]
ocelot.social Community [https://ocelot.social]",
"to": "user@example.org",
"to": {
"address": "moderator@example.org",
"name": "Bob &"?@\\ Baumeister",
},
}
`;
exports[`sendRegistrationMail without invite code English renders correctly 1`] = `
{
"attachments": [],
"from": "ocelot.social <devops@ocelot.social>",
"from": {
"address": "devops@ocelot.social",
"name": "ocelot.social",
},
"html": "<!DOCTYPE html>
<html lang="en">
<head>
@ -304,9 +325,10 @@ exports[`sendRegistrationMail without invite code English renders correctly 1`]
<style>body{
display: block;
font-family: Lato, sans-serif;
font-size: 17px;
font-size: 16px;
text-align: left;
text-align: -webkit-left;
line-height: 24px;
justify-content: center;
padding: 15px;
margin: 0px;
@ -314,9 +336,10 @@ exports[`sendRegistrationMail without invite code English renders correctly 1`]
h2 {
margin-top: 25px;
font-size: 25px;
margin-bottom: 30px;
font-size: 24px;
font-weight: normal;
line-height: 22px;
line-height: 24px;
color: #333333;
}
@ -327,11 +350,17 @@ h2 {
}
.head-logo {
width: 60%;
width: 30%;
height: auto;
display: block;
margin-left: auto;
margin-right: auto;
margin-bottom: 50px;
}
p.no-margin-top-bottom {
margin-top: 0;
margin-bottom: 0;
}
a {
@ -342,10 +371,9 @@ a.button {
background: #17b53e;
font-family: Lato, sans-serif;
font-size: 16px;
line-height: 15px;
text-decoration: none;
text-align:center;
padding: 13px 17px;
padding: 9px 18px;
color: #ffffff;
display: table;
margin-left: auto;
@ -353,10 +381,6 @@ a.button {
border-radius: 4px;
}
span {
color: #17b53e;
}
.text-block {
margin-top: 20px;
color: #000000;
@ -365,7 +389,7 @@ span {
footer {
padding: 20px;
font-family: Lato, sans-serif;
font-size: 12px;
font-size: 14px;
line-height: 15px;
text-align: center;
color: #888888;
@ -382,19 +406,19 @@ footer {
<h2>Welcome to ocelot.social!</h2>
<div class="wrapper">
<div class="content"></div>
<p>Thank you for joining our cause it's awesome to have you on board. There's just one tiny step missing before we can start shaping the world together … Please confirm your e-mail address by clicking the button below:</p><a class="button" href="http://webapp:3000/registration?email=user%40example.org&amp;nonce=123456&amp;method=invite-mail">Confirm your e-mail address</a>
<p>Thank you for joining our cause it's awesome to have you on board. There's just one tiny step missing before we can start shaping the world together … Please confirm your e-mail address by clicking the button below:</p><a class="button" href="http://webapp:3000/registration?email=moderator%40example.org&amp;nonce=123456&amp;method=invite-mail">Confirm your e-mail address</a>
<p>If the above button doesn't work, you can also copy the following code into your browser window: <span>123456</span></p>
<p>However, this only works if you have registered through our website.</p>
<p>If you didn't sign up for <a>ocelot.social</a> we recommend you to check it out! It's a social network from people for people who want to connect and change the world together.
</p>
<p>PS: If you ignore this e-mail we will not create an account for you. ;)</p>
<div class="text-block">
<p>See you soon on <a class="organization" href="https://ocelot.social">ocelot.social</a>!</p>
<p> The ocelot.social Team</p>
<p class="no-margin-top-bottom">See you soon on <a class="organization" href="https://ocelot.social">ocelot.social</a>!</p>
<p class="no-margin-top-bottom"> The ocelot.social Team</p>
</div>
</div>
<div class="support">
<p>If you have questions or problems, feel free to contact our support: <a href="mailto:devops@ocelot.social">devops@ocelot.social</a></p>
<p class="no-margin-top-bottom">If you have questions or problems, feel free to contact our support: <a href="mailto:devops@ocelot.social">devops@ocelot.social</a></p>
</div>
<footer>
<div class="footer"></div><a href="https://ocelot.social">ocelot.social Community</a>
@ -410,7 +434,7 @@ just one tiny step missing before we can start shaping the world together …
Please confirm your e-mail address by clicking the button below:
Confirm your e-mail address
[http://webapp:3000/registration?email=user%40example.org&nonce=123456&method=invite-mail]
[http://webapp:3000/registration?email=moderator%40example.org&nonce=123456&method=invite-mail]
If the above button doesn't work, you can also copy the following code into your
browser window: 123456
@ -432,14 +456,20 @@ devops@ocelot.social [devops@ocelot.social]
ocelot.social Community [https://ocelot.social]",
"to": "user@example.org",
"to": {
"address": "moderator@example.org",
"name": "Bob &"?@\\ Baumeister",
},
}
`;
exports[`sendRegistrationMail without invite code German renders correctly 1`] = `
{
"attachments": [],
"from": "ocelot.social <devops@ocelot.social>",
"from": {
"address": "devops@ocelot.social",
"name": "ocelot.social",
},
"html": "<!DOCTYPE html>
<html lang="de">
<head>
@ -449,9 +479,10 @@ exports[`sendRegistrationMail without invite code German renders correctly 1`] =
<style>body{
display: block;
font-family: Lato, sans-serif;
font-size: 17px;
font-size: 16px;
text-align: left;
text-align: -webkit-left;
line-height: 24px;
justify-content: center;
padding: 15px;
margin: 0px;
@ -459,9 +490,10 @@ exports[`sendRegistrationMail without invite code German renders correctly 1`] =
h2 {
margin-top: 25px;
font-size: 25px;
margin-bottom: 30px;
font-size: 24px;
font-weight: normal;
line-height: 22px;
line-height: 24px;
color: #333333;
}
@ -472,11 +504,17 @@ h2 {
}
.head-logo {
width: 60%;
width: 30%;
height: auto;
display: block;
margin-left: auto;
margin-right: auto;
margin-bottom: 50px;
}
p.no-margin-top-bottom {
margin-top: 0;
margin-bottom: 0;
}
a {
@ -487,10 +525,9 @@ a.button {
background: #17b53e;
font-family: Lato, sans-serif;
font-size: 16px;
line-height: 15px;
text-decoration: none;
text-align:center;
padding: 13px 17px;
padding: 9px 18px;
color: #ffffff;
display: table;
margin-left: auto;
@ -498,10 +535,6 @@ a.button {
border-radius: 4px;
}
span {
color: #17b53e;
}
.text-block {
margin-top: 20px;
color: #000000;
@ -510,7 +543,7 @@ span {
footer {
padding: 20px;
font-family: Lato, sans-serif;
font-size: 12px;
font-size: 14px;
line-height: 15px;
text-align: center;
color: #888888;
@ -527,19 +560,19 @@ footer {
<h2>Willkommen bei ocelot.social!</h2>
<div class="wrapper">
<div class="content"></div>
<p>Danke, dass du dich angemeldet hast wir freuen uns, dich dabei zu haben. Jetzt fehlt nur noch eine Kleinigkeit, bevor wir gemeinsam die Welt verbessern können … Bitte bestätige deine E-Mail Adresse:</p><a class="button" href="http://webapp:3000/registration?email=user%40example.org&amp;nonce=123456&amp;method=invite-mail">Bestätige deine E-Mail Adresse</a>
<p>Danke, dass du dich angemeldet hast wir freuen uns, dich dabei zu haben. Jetzt fehlt nur noch eine Kleinigkeit, bevor wir gemeinsam die Welt verbessern können … Bitte bestätige deine E-Mail Adresse:</p><a class="button" href="http://webapp:3000/registration?email=moderator%40example.org&amp;nonce=123456&amp;method=invite-mail">Bestätige deine E-Mail Adresse</a>
<p>Sollte der Button für dich nicht funktionieren, kannst du auch folgenden Code in dein Browserfenster kopieren: <span>123456</span></p>
<p>Das funktioniert allerdings nur, wenn du dich über unsere Website registriert hast.</p>
<p>Falls du dich nicht selbst bei <a>ocelot.social</a> angemeldet hast, schau doch mal vorbei! Wir sind ein gemeinnütziges Aktionsnetzwerk von Menschen für Menschen.
</p>
<p>PS: Wenn du keinen Account bei uns möchtest, kannst du diese E-Mail einfach ignorieren. ;)</p>
<div class="text-block">
<p>Bis bald bei <a class="organization" href="https://ocelot.social">ocelot.social</a>!</p>
<p> Dein ocelot.social Team</p>
<p class="no-margin-top-bottom">Bis bald bei <a class="organization" href="https://ocelot.social">ocelot.social</a>!</p>
<p class="no-margin-top-bottom"> Dein ocelot.social Team</p>
</div>
</div>
<div class="support">
<p>Wenn du Fragen oder Probleme hast, kannst du dich gerne an den Support wenden: <a href="mailto:devops@ocelot.social">devops@ocelot.social</a></p>
<p class="no-margin-top-bottom">Wenn du Fragen oder Probleme hast, kannst du dich gerne an den Support wenden: <a href="mailto:devops@ocelot.social">devops@ocelot.social</a></p>
</div>
<footer>
<div class="footer"></div><a href="https://ocelot.social">ocelot.social Community</a>
@ -555,7 +588,7 @@ fehlt nur noch eine Kleinigkeit, bevor wir gemeinsam die Welt verbessern können
… Bitte bestätige deine E-Mail Adresse:
Bestätige deine E-Mail Adresse
[http://webapp:3000/registration?email=user%40example.org&nonce=123456&method=invite-mail]
[http://webapp:3000/registration?email=moderator%40example.org&nonce=123456&method=invite-mail]
Sollte der Button für dich nicht funktionieren, kannst du auch folgenden Code in
dein Browserfenster kopieren: 123456
@ -578,6 +611,9 @@ devops@ocelot.social [devops@ocelot.social]
ocelot.social Community [https://ocelot.social]",
"to": "user@example.org",
"to": {
"address": "moderator@example.org",
"name": "Bob &"?@\\ Baumeister",
},
}
`;

View File

@ -1,9 +1,12 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
exports[`sendResetPasswordMail English renders correctly 1`] = `
{
"attachments": [],
"from": "ocelot.social <devops@ocelot.social>",
"from": {
"address": "devops@ocelot.social",
"name": "ocelot.social",
},
"html": "<!DOCTYPE html>
<html lang="en">
<head>
@ -13,9 +16,10 @@ exports[`sendResetPasswordMail English renders correctly 1`] = `
<style>body{
display: block;
font-family: Lato, sans-serif;
font-size: 17px;
font-size: 16px;
text-align: left;
text-align: -webkit-left;
line-height: 24px;
justify-content: center;
padding: 15px;
margin: 0px;
@ -23,9 +27,10 @@ exports[`sendResetPasswordMail English renders correctly 1`] = `
h2 {
margin-top: 25px;
font-size: 25px;
margin-bottom: 30px;
font-size: 24px;
font-weight: normal;
line-height: 22px;
line-height: 24px;
color: #333333;
}
@ -36,11 +41,17 @@ h2 {
}
.head-logo {
width: 60%;
width: 30%;
height: auto;
display: block;
margin-left: auto;
margin-right: auto;
margin-bottom: 50px;
}
p.no-margin-top-bottom {
margin-top: 0;
margin-bottom: 0;
}
a {
@ -51,10 +62,9 @@ a.button {
background: #17b53e;
font-family: Lato, sans-serif;
font-size: 16px;
line-height: 15px;
text-decoration: none;
text-align:center;
padding: 13px 17px;
padding: 9px 18px;
color: #ffffff;
display: table;
margin-left: auto;
@ -62,10 +72,6 @@ a.button {
border-radius: 4px;
}
span {
color: #17b53e;
}
.text-block {
margin-top: 20px;
color: #000000;
@ -74,7 +80,7 @@ span {
footer {
padding: 20px;
font-family: Lato, sans-serif;
font-size: 12px;
font-size: 14px;
line-height: 15px;
text-align: center;
color: #888888;
@ -95,12 +101,12 @@ footer {
<p>If you didn't request a new password feel free to ignore this e-mail.</p>
<p>If the above button doesn't work you can also copy the following code into your browser window: <span>123456</span></p>
<div class="text-block">
<p>See you soon on <a class="organization" href="https://ocelot.social">ocelot.social</a>!</p>
<p> The ocelot.social Team</p>
<p class="no-margin-top-bottom">See you soon on <a class="organization" href="https://ocelot.social">ocelot.social</a>!</p>
<p class="no-margin-top-bottom"> The ocelot.social Team</p>
</div>
</div>
<div class="support">
<p>If you have questions or problems, feel free to contact our support: <a href="mailto:devops@ocelot.social">devops@ocelot.social</a></p>
<p class="no-margin-top-bottom">If you have questions or problems, feel free to contact our support: <a href="mailto:devops@ocelot.social">devops@ocelot.social</a></p>
</div>
<footer>
<div class="footer"></div><a href="https://ocelot.social">ocelot.social Community</a>
@ -131,14 +137,20 @@ devops@ocelot.social [devops@ocelot.social]
ocelot.social Community [https://ocelot.social]",
"to": "user@example.org",
"to": {
"address": "user@example.org",
"name": "Jenny Rostock",
},
}
`;
exports[`sendResetPasswordMail German renders correctly 1`] = `
{
"attachments": [],
"from": "ocelot.social <devops@ocelot.social>",
"from": {
"address": "devops@ocelot.social",
"name": "ocelot.social",
},
"html": "<!DOCTYPE html>
<html lang="de">
<head>
@ -148,9 +160,10 @@ exports[`sendResetPasswordMail German renders correctly 1`] = `
<style>body{
display: block;
font-family: Lato, sans-serif;
font-size: 17px;
font-size: 16px;
text-align: left;
text-align: -webkit-left;
line-height: 24px;
justify-content: center;
padding: 15px;
margin: 0px;
@ -158,9 +171,10 @@ exports[`sendResetPasswordMail German renders correctly 1`] = `
h2 {
margin-top: 25px;
font-size: 25px;
margin-bottom: 30px;
font-size: 24px;
font-weight: normal;
line-height: 22px;
line-height: 24px;
color: #333333;
}
@ -171,11 +185,17 @@ h2 {
}
.head-logo {
width: 60%;
width: 30%;
height: auto;
display: block;
margin-left: auto;
margin-right: auto;
margin-bottom: 50px;
}
p.no-margin-top-bottom {
margin-top: 0;
margin-bottom: 0;
}
a {
@ -186,10 +206,9 @@ a.button {
background: #17b53e;
font-family: Lato, sans-serif;
font-size: 16px;
line-height: 15px;
text-decoration: none;
text-align:center;
padding: 13px 17px;
padding: 9px 18px;
color: #ffffff;
display: table;
margin-left: auto;
@ -197,10 +216,6 @@ a.button {
border-radius: 4px;
}
span {
color: #17b53e;
}
.text-block {
margin-top: 20px;
color: #000000;
@ -209,7 +224,7 @@ span {
footer {
padding: 20px;
font-family: Lato, sans-serif;
font-size: 12px;
font-size: 14px;
line-height: 15px;
text-align: center;
color: #888888;
@ -230,12 +245,12 @@ footer {
<p>Falls du kein neues Passwort angefordert hast, kannst du diese E-Mail einfach ignorieren.</p>
<p>Sollte der Button für dich nicht funktionieren, kannst du auch folgenden Code in dein Browserfenster kopieren: <span>123456</span></p>
<div class="text-block">
<p>Bis bald bei <a class="organization" href="https://ocelot.social">ocelot.social</a>!</p>
<p> Dein ocelot.social Team</p>
<p class="no-margin-top-bottom">Bis bald bei <a class="organization" href="https://ocelot.social">ocelot.social</a>!</p>
<p class="no-margin-top-bottom"> Dein ocelot.social Team</p>
</div>
</div>
<div class="support">
<p>Wenn du Fragen oder Probleme hast, kannst du dich gerne an den Support wenden: <a href="mailto:devops@ocelot.social">devops@ocelot.social</a></p>
<p class="no-margin-top-bottom">Wenn du Fragen oder Probleme hast, kannst du dich gerne an den Support wenden: <a href="mailto:devops@ocelot.social">devops@ocelot.social</a></p>
</div>
<footer>
<div class="footer"></div><a href="https://ocelot.social">ocelot.social Community</a>
@ -267,6 +282,9 @@ devops@ocelot.social [devops@ocelot.social]
ocelot.social Community [https://ocelot.social]",
"to": "user@example.org",
"to": {
"address": "user@example.org",
"name": "Jenny Rostock",
},
}
`;

View File

@ -1,9 +1,12 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
exports[`sendWrongEmail English renders correctly 1`] = `
{
"attachments": [],
"from": "ocelot.social <devops@ocelot.social>",
"from": {
"address": "devops@ocelot.social",
"name": "ocelot.social",
},
"html": "<!DOCTYPE html>
<html lang="en">
<head>
@ -13,9 +16,10 @@ exports[`sendWrongEmail English renders correctly 1`] = `
<style>body{
display: block;
font-family: Lato, sans-serif;
font-size: 17px;
font-size: 16px;
text-align: left;
text-align: -webkit-left;
line-height: 24px;
justify-content: center;
padding: 15px;
margin: 0px;
@ -23,9 +27,10 @@ exports[`sendWrongEmail English renders correctly 1`] = `
h2 {
margin-top: 25px;
font-size: 25px;
margin-bottom: 30px;
font-size: 24px;
font-weight: normal;
line-height: 22px;
line-height: 24px;
color: #333333;
}
@ -36,11 +41,17 @@ h2 {
}
.head-logo {
width: 60%;
width: 30%;
height: auto;
display: block;
margin-left: auto;
margin-right: auto;
margin-bottom: 50px;
}
p.no-margin-top-bottom {
margin-top: 0;
margin-bottom: 0;
}
a {
@ -51,10 +62,9 @@ a.button {
background: #17b53e;
font-family: Lato, sans-serif;
font-size: 16px;
line-height: 15px;
text-decoration: none;
text-align:center;
padding: 13px 17px;
padding: 9px 18px;
color: #ffffff;
display: table;
margin-left: auto;
@ -62,10 +72,6 @@ a.button {
border-radius: 4px;
}
span {
color: #17b53e;
}
.text-block {
margin-top: 20px;
color: #000000;
@ -74,7 +80,7 @@ span {
footer {
padding: 20px;
font-family: Lato, sans-serif;
font-size: 12px;
font-size: 14px;
line-height: 15px;
text-align: center;
color: #888888;
@ -95,12 +101,12 @@ footer {
<p>If you don't have an account at <a>ocelot.social</a> yet or if you didn't want to reset your password, please ignore this e-mail.
</p>
<div class="text-block">
<p>See you soon on <a class="organization" href="https://ocelot.social">ocelot.social</a>!</p>
<p> The ocelot.social Team</p>
<p class="no-margin-top-bottom">See you soon on <a class="organization" href="https://ocelot.social">ocelot.social</a>!</p>
<p class="no-margin-top-bottom"> The ocelot.social Team</p>
</div>
</div>
<div class="support">
<p>If you have questions or problems, feel free to contact our support: <a href="mailto:devops@ocelot.social">devops@ocelot.social</a></p>
<p class="no-margin-top-bottom">If you have questions or problems, feel free to contact our support: <a href="mailto:devops@ocelot.social">devops@ocelot.social</a></p>
</div>
<footer>
<div class="footer"></div><a href="https://ocelot.social">ocelot.social Community</a>
@ -129,14 +135,20 @@ devops@ocelot.social [devops@ocelot.social]
ocelot.social Community [https://ocelot.social]",
"to": "user@example.org",
"to": {
"address": "moderator@example.org",
"name": "Bob &"?@\\ Baumeister",
},
}
`;
exports[`sendWrongEmail German renders correctly 1`] = `
{
"attachments": [],
"from": "ocelot.social <devops@ocelot.social>",
"from": {
"address": "devops@ocelot.social",
"name": "ocelot.social",
},
"html": "<!DOCTYPE html>
<html lang="de">
<head>
@ -146,9 +158,10 @@ exports[`sendWrongEmail German renders correctly 1`] = `
<style>body{
display: block;
font-family: Lato, sans-serif;
font-size: 17px;
font-size: 16px;
text-align: left;
text-align: -webkit-left;
line-height: 24px;
justify-content: center;
padding: 15px;
margin: 0px;
@ -156,9 +169,10 @@ exports[`sendWrongEmail German renders correctly 1`] = `
h2 {
margin-top: 25px;
font-size: 25px;
margin-bottom: 30px;
font-size: 24px;
font-weight: normal;
line-height: 22px;
line-height: 24px;
color: #333333;
}
@ -169,11 +183,17 @@ h2 {
}
.head-logo {
width: 60%;
width: 30%;
height: auto;
display: block;
margin-left: auto;
margin-right: auto;
margin-bottom: 50px;
}
p.no-margin-top-bottom {
margin-top: 0;
margin-bottom: 0;
}
a {
@ -184,10 +204,9 @@ a.button {
background: #17b53e;
font-family: Lato, sans-serif;
font-size: 16px;
line-height: 15px;
text-decoration: none;
text-align:center;
padding: 13px 17px;
padding: 9px 18px;
color: #ffffff;
display: table;
margin-left: auto;
@ -195,10 +214,6 @@ a.button {
border-radius: 4px;
}
span {
color: #17b53e;
}
.text-block {
margin-top: 20px;
color: #000000;
@ -207,7 +222,7 @@ span {
footer {
padding: 20px;
font-family: Lato, sans-serif;
font-size: 12px;
font-size: 14px;
line-height: 15px;
text-align: center;
color: #888888;
@ -228,12 +243,12 @@ footer {
<p>Wenn du noch keinen Account bei <a>ocelot.social</a> hast oder dein Password gar nicht ändern willst, kannst du diese E-Mail einfach ignorieren!
</p>
<div class="text-block">
<p>Bis bald bei <a class="organization" href="https://ocelot.social">ocelot.social</a>!</p>
<p> Dein ocelot.social Team</p>
<p class="no-margin-top-bottom">Bis bald bei <a class="organization" href="https://ocelot.social">ocelot.social</a>!</p>
<p class="no-margin-top-bottom"> Dein ocelot.social Team</p>
</div>
</div>
<div class="support">
<p>Wenn du Fragen oder Probleme hast, kannst du dich gerne an den Support wenden: <a href="mailto:devops@ocelot.social">devops@ocelot.social</a></p>
<p class="no-margin-top-bottom">Wenn du Fragen oder Probleme hast, kannst du dich gerne an den Support wenden: <a href="mailto:devops@ocelot.social">devops@ocelot.social</a></p>
</div>
<footer>
<div class="footer"></div><a href="https://ocelot.social">ocelot.social Community</a>
@ -262,6 +277,9 @@ devops@ocelot.social [devops@ocelot.social]
ocelot.social Community [https://ocelot.social]",
"to": "user@example.org",
"to": {
"address": "moderator@example.org",
"name": "Bob &"?@\\ Baumeister",
},
}
`;

View File

@ -1,9 +1,12 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
exports[`sendResetPasswordMail with support English renders correctly 1`] = `
{
"attachments": [],
"from": "ocelot.social <devops@ocelot.social>",
"from": {
"address": "devops@ocelot.social",
"name": "ocelot.social",
},
"html": "<!DOCTYPE html>
<html lang="en">
<head>
@ -13,9 +16,10 @@ exports[`sendResetPasswordMail with support English renders correctly 1`] = `
<style>body{
display: block;
font-family: Lato, sans-serif;
font-size: 17px;
font-size: 16px;
text-align: left;
text-align: -webkit-left;
line-height: 24px;
justify-content: center;
padding: 15px;
margin: 0px;
@ -23,9 +27,10 @@ exports[`sendResetPasswordMail with support English renders correctly 1`] = `
h2 {
margin-top: 25px;
font-size: 25px;
margin-bottom: 30px;
font-size: 24px;
font-weight: normal;
line-height: 22px;
line-height: 24px;
color: #333333;
}
@ -36,11 +41,17 @@ h2 {
}
.head-logo {
width: 60%;
width: 30%;
height: auto;
display: block;
margin-left: auto;
margin-right: auto;
margin-bottom: 50px;
}
p.no-margin-top-bottom {
margin-top: 0;
margin-bottom: 0;
}
a {
@ -51,10 +62,9 @@ a.button {
background: #17b53e;
font-family: Lato, sans-serif;
font-size: 16px;
line-height: 15px;
text-decoration: none;
text-align:center;
padding: 13px 17px;
padding: 9px 18px;
color: #ffffff;
display: table;
margin-left: auto;
@ -62,10 +72,6 @@ a.button {
border-radius: 4px;
}
span {
color: #17b53e;
}
.text-block {
margin-top: 20px;
color: #000000;
@ -74,7 +80,7 @@ span {
footer {
padding: 20px;
font-family: Lato, sans-serif;
font-size: 12px;
font-size: 14px;
line-height: 15px;
text-align: center;
color: #888888;
@ -95,12 +101,12 @@ footer {
<p>If you didn't request a new password feel free to ignore this e-mail.</p>
<p>If the above button doesn't work you can also copy the following code into your browser window: <span>123456</span></p>
<div class="text-block">
<p>See you soon on <a class="organization" href="https://ocelot.social">ocelot.social</a>!</p>
<p> The ocelot.social Team</p>
<p class="no-margin-top-bottom">See you soon on <a class="organization" href="https://ocelot.social">ocelot.social</a>!</p>
<p class="no-margin-top-bottom"> The ocelot.social Team</p>
</div>
</div>
<div class="support">
<p>If you have questions or problems, feel free to contact our support: <a href="mailto:support@example.org">support@example.org</a></p>
<p class="no-margin-top-bottom">If you have questions or problems, feel free to contact our support: <a href="mailto:support@example.org">support@example.org</a></p>
</div>
<footer>
<div class="footer"></div><a href="https://ocelot.social">ocelot.social Community</a>
@ -131,14 +137,20 @@ support@example.org [support@example.org]
ocelot.social Community [https://ocelot.social]",
"to": "user@example.org",
"to": {
"address": "user@example.org",
"name": "Jenny Rostock",
},
}
`;
exports[`sendResetPasswordMail with support German renders correctly 1`] = `
{
"attachments": [],
"from": "ocelot.social <devops@ocelot.social>",
"from": {
"address": "devops@ocelot.social",
"name": "ocelot.social",
},
"html": "<!DOCTYPE html>
<html lang="de">
<head>
@ -148,9 +160,10 @@ exports[`sendResetPasswordMail with support German renders correctly 1`] = `
<style>body{
display: block;
font-family: Lato, sans-serif;
font-size: 17px;
font-size: 16px;
text-align: left;
text-align: -webkit-left;
line-height: 24px;
justify-content: center;
padding: 15px;
margin: 0px;
@ -158,9 +171,10 @@ exports[`sendResetPasswordMail with support German renders correctly 1`] = `
h2 {
margin-top: 25px;
font-size: 25px;
margin-bottom: 30px;
font-size: 24px;
font-weight: normal;
line-height: 22px;
line-height: 24px;
color: #333333;
}
@ -171,11 +185,17 @@ h2 {
}
.head-logo {
width: 60%;
width: 30%;
height: auto;
display: block;
margin-left: auto;
margin-right: auto;
margin-bottom: 50px;
}
p.no-margin-top-bottom {
margin-top: 0;
margin-bottom: 0;
}
a {
@ -186,10 +206,9 @@ a.button {
background: #17b53e;
font-family: Lato, sans-serif;
font-size: 16px;
line-height: 15px;
text-decoration: none;
text-align:center;
padding: 13px 17px;
padding: 9px 18px;
color: #ffffff;
display: table;
margin-left: auto;
@ -197,10 +216,6 @@ a.button {
border-radius: 4px;
}
span {
color: #17b53e;
}
.text-block {
margin-top: 20px;
color: #000000;
@ -209,7 +224,7 @@ span {
footer {
padding: 20px;
font-family: Lato, sans-serif;
font-size: 12px;
font-size: 14px;
line-height: 15px;
text-align: center;
color: #888888;
@ -230,12 +245,12 @@ footer {
<p>Falls du kein neues Passwort angefordert hast, kannst du diese E-Mail einfach ignorieren.</p>
<p>Sollte der Button für dich nicht funktionieren, kannst du auch folgenden Code in dein Browserfenster kopieren: <span>123456</span></p>
<div class="text-block">
<p>Bis bald bei <a class="organization" href="https://ocelot.social">ocelot.social</a>!</p>
<p> Dein ocelot.social Team</p>
<p class="no-margin-top-bottom">Bis bald bei <a class="organization" href="https://ocelot.social">ocelot.social</a>!</p>
<p class="no-margin-top-bottom"> Dein ocelot.social Team</p>
</div>
</div>
<div class="support">
<p>Wenn du Fragen oder Probleme hast, kannst du dich gerne an den Support wenden: <a href="mailto:support@example.org">support@example.org</a></p>
<p class="no-margin-top-bottom">Wenn du Fragen oder Probleme hast, kannst du dich gerne an den Support wenden: <a href="mailto:support@example.org">support@example.org</a></p>
</div>
<footer>
<div class="footer"></div><a href="https://ocelot.social">ocelot.social Community</a>
@ -267,14 +282,20 @@ support@example.org [support@example.org]
ocelot.social Community [https://ocelot.social]",
"to": "user@example.org",
"to": {
"address": "user@example.org",
"name": "Jenny Rostock",
},
}
`;
exports[`sendResetPasswordMail without support English renders correctly 1`] = `
{
"attachments": [],
"from": "ocelot.social <devops@ocelot.social>",
"from": {
"address": "devops@ocelot.social",
"name": "ocelot.social",
},
"html": "<!DOCTYPE html>
<html lang="en">
<head>
@ -284,9 +305,10 @@ exports[`sendResetPasswordMail without support English renders correctly 1`] = `
<style>body{
display: block;
font-family: Lato, sans-serif;
font-size: 17px;
font-size: 16px;
text-align: left;
text-align: -webkit-left;
line-height: 24px;
justify-content: center;
padding: 15px;
margin: 0px;
@ -294,9 +316,10 @@ exports[`sendResetPasswordMail without support English renders correctly 1`] = `
h2 {
margin-top: 25px;
font-size: 25px;
margin-bottom: 30px;
font-size: 24px;
font-weight: normal;
line-height: 22px;
line-height: 24px;
color: #333333;
}
@ -307,11 +330,17 @@ h2 {
}
.head-logo {
width: 60%;
width: 30%;
height: auto;
display: block;
margin-left: auto;
margin-right: auto;
margin-bottom: 50px;
}
p.no-margin-top-bottom {
margin-top: 0;
margin-bottom: 0;
}
a {
@ -322,10 +351,9 @@ a.button {
background: #17b53e;
font-family: Lato, sans-serif;
font-size: 16px;
line-height: 15px;
text-decoration: none;
text-align:center;
padding: 13px 17px;
padding: 9px 18px;
color: #ffffff;
display: table;
margin-left: auto;
@ -333,10 +361,6 @@ a.button {
border-radius: 4px;
}
span {
color: #17b53e;
}
.text-block {
margin-top: 20px;
color: #000000;
@ -345,7 +369,7 @@ span {
footer {
padding: 20px;
font-family: Lato, sans-serif;
font-size: 12px;
font-size: 14px;
line-height: 15px;
text-align: center;
color: #888888;
@ -366,8 +390,8 @@ footer {
<p>If you didn't request a new password feel free to ignore this e-mail.</p>
<p>If the above button doesn't work you can also copy the following code into your browser window: <span>123456</span></p>
<div class="text-block">
<p>See you soon on <a class="organization" href="https://ocelot.social">ocelot.social</a>!</p>
<p> The ocelot.social Team</p>
<p class="no-margin-top-bottom">See you soon on <a class="organization" href="https://ocelot.social">ocelot.social</a>!</p>
<p class="no-margin-top-bottom"> The ocelot.social Team</p>
</div>
</div>
<footer>
@ -396,14 +420,20 @@ See you soon on ocelot.social [https://ocelot.social]!
ocelot.social Community [https://ocelot.social]",
"to": "user@example.org",
"to": {
"address": "user@example.org",
"name": "Jenny Rostock",
},
}
`;
exports[`sendResetPasswordMail without support German renders correctly 1`] = `
{
"attachments": [],
"from": "ocelot.social <devops@ocelot.social>",
"from": {
"address": "devops@ocelot.social",
"name": "ocelot.social",
},
"html": "<!DOCTYPE html>
<html lang="de">
<head>
@ -413,9 +443,10 @@ exports[`sendResetPasswordMail without support German renders correctly 1`] = `
<style>body{
display: block;
font-family: Lato, sans-serif;
font-size: 17px;
font-size: 16px;
text-align: left;
text-align: -webkit-left;
line-height: 24px;
justify-content: center;
padding: 15px;
margin: 0px;
@ -423,9 +454,10 @@ exports[`sendResetPasswordMail without support German renders correctly 1`] = `
h2 {
margin-top: 25px;
font-size: 25px;
margin-bottom: 30px;
font-size: 24px;
font-weight: normal;
line-height: 22px;
line-height: 24px;
color: #333333;
}
@ -436,11 +468,17 @@ h2 {
}
.head-logo {
width: 60%;
width: 30%;
height: auto;
display: block;
margin-left: auto;
margin-right: auto;
margin-bottom: 50px;
}
p.no-margin-top-bottom {
margin-top: 0;
margin-bottom: 0;
}
a {
@ -451,10 +489,9 @@ a.button {
background: #17b53e;
font-family: Lato, sans-serif;
font-size: 16px;
line-height: 15px;
text-decoration: none;
text-align:center;
padding: 13px 17px;
padding: 9px 18px;
color: #ffffff;
display: table;
margin-left: auto;
@ -462,10 +499,6 @@ a.button {
border-radius: 4px;
}
span {
color: #17b53e;
}
.text-block {
margin-top: 20px;
color: #000000;
@ -474,7 +507,7 @@ span {
footer {
padding: 20px;
font-family: Lato, sans-serif;
font-size: 12px;
font-size: 14px;
line-height: 15px;
text-align: center;
color: #888888;
@ -495,8 +528,8 @@ footer {
<p>Falls du kein neues Passwort angefordert hast, kannst du diese E-Mail einfach ignorieren.</p>
<p>Sollte der Button für dich nicht funktionieren, kannst du auch folgenden Code in dein Browserfenster kopieren: <span>123456</span></p>
<div class="text-block">
<p>Bis bald bei <a class="organization" href="https://ocelot.social">ocelot.social</a>!</p>
<p> Dein ocelot.social Team</p>
<p class="no-margin-top-bottom">Bis bald bei <a class="organization" href="https://ocelot.social">ocelot.social</a>!</p>
<p class="no-margin-top-bottom"> Dein ocelot.social Team</p>
</div>
</div>
<footer>
@ -526,6 +559,9 @@ Bis bald bei ocelot.social [https://ocelot.social]!
ocelot.social Community [https://ocelot.social]",
"to": "user@example.org",
"to": {
"address": "user@example.org",
"name": "Jenny Rostock",
},
}
`;

View File

@ -1,3 +1,8 @@
import CONFIG from '@config/index'
CONFIG.SUPPORT_EMAIL = 'devops@ocelot.social'
// eslint-disable-next-line import/first
import { sendChatMessageMail } from './sendEmail'
const senderUser = {

View File

@ -2,7 +2,6 @@
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable @typescript-eslint/no-unsafe-argument */
/* eslint-disable @typescript-eslint/restrict-template-expressions */
import path from 'node:path'
import Email from 'email-templates'
@ -29,7 +28,7 @@ export const defaultParams = {
renderSettingsUrl: true,
}
const from = `${CONFIG.APPLICATION_NAME} <${CONFIG.EMAIL_DEFAULT_SENDER}>`
const from = { name: CONFIG.APPLICATION_NAME, address: CONFIG.EMAIL_DEFAULT_SENDER }
const transport = createTransport(nodemailerTransportOptions)
@ -74,8 +73,8 @@ interface OriginalMessage {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export const sendNotificationMail = async (notification: any): Promise<OriginalMessage> => {
const locale = notification?.to?.locale
const to = notification?.email
const name = notification?.to?.name
const to = { name, address: notification?.email }
const template = notification?.reason
try {
@ -94,8 +93,8 @@ export const sendNotificationMail = async (notification: any): Promise<OriginalM
: notification?.from?.title,
postUrl: new URL(
notification?.from?.__typename === 'Comment'
? `/post/${notification?.from?.post?.id}/${notification?.from?.post?.slug}`
: `/post/${notification?.from?.id}/${notification?.from?.slug}`,
? `/post/${encodeURIComponent(notification?.from?.post?.id)}/${encodeURIComponent(notification?.from?.post?.slug)}`
: `/post/${encodeURIComponent(notification?.from?.id)}/${encodeURIComponent(notification?.from?.slug)}`,
CONFIG.CLIENT_URI,
),
postAuthorName:
@ -106,7 +105,7 @@ export const sendNotificationMail = async (notification: any): Promise<OriginalM
notification?.from?.__typename === 'Comment'
? undefined
: new URL(
`user/${notification?.from?.author?.id}/${notification?.from?.author?.slug}`,
`profile/${encodeURIComponent(notification?.from?.author?.id)}/${encodeURIComponent(notification?.from?.author?.slug)}`,
CONFIG.CLIENT_URI,
),
commenterName:
@ -116,14 +115,14 @@ export const sendNotificationMail = async (notification: any): Promise<OriginalM
commenterUrl:
notification?.from?.__typename === 'Comment'
? new URL(
`/profile/${notification?.from?.author?.id}/${notification?.from?.author?.slug}`,
`/profile/${encodeURIComponent(notification?.from?.author?.id)}/${encodeURIComponent(notification?.from?.author?.slug)}`,
CONFIG.CLIENT_URI,
)
: undefined,
commentUrl:
notification?.from?.__typename === 'Comment'
? new URL(
`/post/${notification?.from?.post?.id}/${notification?.from?.post?.slug}#commentId-${notification?.from?.id}`,
`/post/${encodeURIComponent(notification?.from?.post?.id)}/${encodeURIComponent(notification?.from?.post?.slug)}#commentId-${encodeURIComponent(notification?.from?.id)}`,
CONFIG.CLIENT_URI,
)
: undefined,
@ -132,7 +131,7 @@ export const sendNotificationMail = async (notification: any): Promise<OriginalM
groupUrl:
notification?.from?.__typename === 'Group'
? new URL(
`/groups/${notification?.from?.id}/${notification?.from?.slug}`,
`/groups/${encodeURIComponent(notification?.from?.id)}/${encodeURIComponent(notification?.from?.slug)}`,
CONFIG.CLIENT_URI,
)
: undefined,
@ -143,7 +142,7 @@ export const sendNotificationMail = async (notification: any): Promise<OriginalM
groupRelatedUserUrl:
notification?.from?.__typename === 'Group'
? new URL(
`/profile/${notification?.relatedUser?.id}/${notification?.relatedUser?.slug}`,
`/profile/${encodeURIComponent(notification?.relatedUser?.id)}/${encodeURIComponent(notification?.relatedUser?.slug)}`,
CONFIG.CLIENT_URI,
)
: undefined,
@ -165,7 +164,7 @@ export const sendChatMessageMail = async (
data: ChatMessageEmailInput,
): Promise<OriginalMessage> => {
const { senderUser, recipientUser } = data
const to = data.email
const to = { name: recipientUser.name, address: data.email }
try {
const { originalMessage } = await email.send({
template: path.join(__dirname, 'templates', 'chat_message'),
@ -177,7 +176,10 @@ export const sendChatMessageMail = async (
locale: recipientUser.locale,
name: recipientUser.name,
chattingUser: senderUser.name,
chattingUserUrl: new URL(`/profile/${senderUser.id}/${senderUser.slug}`, CONFIG.CLIENT_URI),
chattingUserUrl: new URL(
`/profile/${encodeURIComponent(senderUser.id)}/${encodeURIComponent(senderUser.slug)}`,
CONFIG.CLIENT_URI,
),
chatUrl: new URL('/chat', CONFIG.CLIENT_URI),
},
})
@ -188,6 +190,7 @@ export const sendChatMessageMail = async (
}
interface VerifyMailInput {
name: string
email: string
nonce: string
locale: string
@ -200,10 +203,10 @@ interface RegistrationMailInput extends VerifyMailInput {
export const sendRegistrationMail = async (
data: RegistrationMailInput,
): Promise<OriginalMessage> => {
const { nonce, locale, inviteCode } = data
const to = data.email
const { name, nonce, locale, inviteCode } = data
const to = { name, address: data.email }
const actionUrl = new URL('/registration', CONFIG.CLIENT_URI)
actionUrl.searchParams.set('email', to)
actionUrl.searchParams.set('email', to.address)
actionUrl.searchParams.set('nonce', nonce)
if (inviteCode) {
actionUrl.searchParams.set('inviteCode', inviteCode)
@ -240,9 +243,9 @@ export const sendEmailVerification = async (
data: EmailVerificationInput,
): Promise<OriginalMessage> => {
const { nonce, locale, name } = data
const to = data.email
const to = { name, address: data.email }
const actionUrl = new URL('/settings/my-email-address/verify', CONFIG.CLIENT_URI)
actionUrl.searchParams.set('email', to)
actionUrl.searchParams.set('email', to.address)
actionUrl.searchParams.set('nonce', nonce)
try {
@ -270,9 +273,9 @@ export const sendResetPasswordMail = async (
data: EmailVerificationInput,
): Promise<OriginalMessage> => {
const { nonce, locale, name } = data
const to = data.email
const to = { name, address: data.email }
const actionUrl = new URL('/password-reset/change-password', CONFIG.CLIENT_URI)
actionUrl.searchParams.set('email', to)
actionUrl.searchParams.set('email', to.address)
actionUrl.searchParams.set('nonce', nonce)
try {
const { originalMessage } = await email.send({
@ -296,11 +299,12 @@ export const sendResetPasswordMail = async (
}
export const sendWrongEmail = async (data: {
name: string
locale: string
email: string
}): Promise<OriginalMessage> => {
const { locale } = data
const to = data.email
const { locale, name } = data
const to = { name, address: data.email }
const actionUrl = new URL('/password-reset/request', CONFIG.CLIENT_URI)
try {
const { originalMessage } = await email.send({

View File

@ -1,3 +1,8 @@
import CONFIG from '@config/index'
CONFIG.SUPPORT_EMAIL = 'devops@ocelot.social'
// eslint-disable-next-line import/first
import { sendEmailVerification } from './sendEmail'
describe('sendEmailVerification', () => {

View File

@ -1,3 +1,8 @@
import CONFIG from '@config/index'
CONFIG.SUPPORT_EMAIL = 'devops@ocelot.social'
// eslint-disable-next-line import/first
import { sendNotificationMail } from './sendEmail'
describe('sendNotificationMail', () => {

View File

@ -1,13 +1,20 @@
import CONFIG from '@config/index'
CONFIG.SUPPORT_EMAIL = 'devops@ocelot.social'
// eslint-disable-next-line import/first
import { sendRegistrationMail } from './sendEmail'
describe('sendRegistrationMail', () => {
const data: {
name: string
email: string
nonce: string
locale: string
inviteCode?: string
} = {
email: 'user@example.org',
name: 'Bob &"?@\\ Baumeister',
email: 'moderator@example.org',
nonce: '123456',
locale: 'en',
inviteCode: 'welcome',

View File

@ -1,3 +1,8 @@
import CONFIG from '@config/index'
CONFIG.SUPPORT_EMAIL = 'devops@ocelot.social'
// eslint-disable-next-line import/first
import { sendResetPasswordMail } from './sendEmail'
describe('sendResetPasswordMail', () => {

View File

@ -1,11 +1,18 @@
import CONFIG from '@config/index'
CONFIG.SUPPORT_EMAIL = 'devops@ocelot.social'
// eslint-disable-next-line import/first
import { sendWrongEmail } from './sendEmail'
describe('sendWrongEmail', () => {
const data: {
name: string
email: string
locale: string
} = {
email: 'user@example.org',
name: 'Bob &"?@\\ Baumeister',
email: 'moderator@example.org',
locale: 'en',
}

View File

@ -3,5 +3,5 @@ extend ../layout.pug
block content
.content
- var groupUrl = groupUrl
p= t('changedGroupMemberRole', { groupName })
a.button(href=groupUrl)= t('buttons.viewGroup')
p!= t('changedGroupMemberRole', { groupName })
a.button(href=groupUrl)!= t('buttons.viewGroup')

View File

@ -1 +1 @@
= `${APPLICATION_NAME} ${t('notification')}: ${t('subjects.changedGroupMemberRole')}`
!= `${APPLICATION_NAME} ${t('notification')}: ${t('subjects.changedGroupMemberRole')}`

View File

@ -2,7 +2,7 @@ extend ../layout.pug
block content
.content
p= t('chatMessageStart')
a.user(href=chattingUserUrl)= chattingUser
= t('chatMessageEnd')
a.button(href=chatUrl)= t('buttons.viewChat')
p!= t('chatMessageStart')
a.user(href=chattingUserUrl)!= chattingUser
!= t('chatMessageEnd')
a.button(href=chatUrl)!= t('buttons.viewChat')

View File

@ -1 +1 @@
= `${APPLICATION_NAME} ${t('notification')}: ${t('subjects.chatMessage')}`
!= `${APPLICATION_NAME} ${t('notification')}: ${t('subjects.chatMessage')}`

View File

@ -3,6 +3,6 @@ extend ../layout.pug
block content
.content
p
a.user(href=commenterUrl)= commenterName
= t('commentedOnPost', { postTitle})
a.button(href=commentUrl)= t('buttons.viewComment')
a.user(href=commenterUrl)!= commenterName
!= t('commentedOnPost', { postTitle})
a.button(href=commentUrl)!= t('buttons.viewComment')

View File

@ -1 +1 @@
= `${APPLICATION_NAME} ${t('notification')}: ${t('subjects.commentedOnPost')}`
!= `${APPLICATION_NAME} ${t('notification')}: ${t('subjects.commentedOnPost')}`

View File

@ -2,9 +2,9 @@ extend ../layout.pug
block content
.content
p= t('emailVerification.introduction')
a.button(href=actionUrl)= t('buttons.verifyEmail')
p= t('emailVerification.doNotChange')
p!= t('emailVerification.introduction')
a.button(href=actionUrl)!= t('buttons.verifyEmail')
p!= t('emailVerification.doNotChange')
p= t('emailVerification.codeHint')
span= nonce
p!= t('emailVerification.codeHint')
span!= nonce

View File

@ -1 +1 @@
= `${t('subjects.newEmail')} ${APPLICATION_NAME}`
!= `${t('subjects.newEmail')} ${APPLICATION_NAME}`

View File

@ -3,6 +3,6 @@ extend ../layout.pug
block content
.content
p
a.user(href=postAuthorUrl)= postAuthorName
= t('followedUserPosted', { postTitle })
a.button(href=postUrl)= t('buttons.viewPost')
a.user(href=postAuthorUrl)!= postAuthorName
!= t('followedUserPosted', { postTitle })
a.button(href=postUrl)!= t('buttons.viewPost')

View File

@ -1 +1 @@
= `${APPLICATION_NAME} ${t('notification')}: ${t('subjects.followedUserPosted')}`
!= `${APPLICATION_NAME} ${t('notification')}: ${t('subjects.followedUserPosted')}`

View File

@ -2,4 +2,4 @@ footer
.footer
- var organizationUrl = ORGANIZATION_URL
- var organizationName = ORGANIZATION_NAME
a(href=organizationUrl)= organizationName
a(href=organizationUrl)!= organizationName

View File

@ -4,14 +4,14 @@
- var team = APPLICATION_NAME
- var settingsUrl = settingsUrl
- var renderSettingsUrl = renderSettingsUrl
p= t('general.seeYou')
a.organization(href=organizationUrl)= team
p.no-margin-top-bottom!= t('general.seeYou')
a.organization(href=organizationUrl)!= team
| !
p= t('general.yourTeam', { team })
p.no-margin-top-bottom!= t('general.yourTeam', { team })
if renderSettingsUrl
br
p= t('general.settingsHint')
a.settings(href=settingsUrl)= t('general.settingsName')
p.no-margin-top-bottom!= t('general.settingsHint')
a.settings(href=settingsUrl)!= t('general.settingsName')
| !

View File

@ -1 +1 @@
h2= `${t('general.greeting')} ${name},`
h2!= `${t('general.greeting')} ${name},`

View File

@ -1,2 +1,2 @@
p= t('support')
a(href='mailto:' + supportEmail)= supportEmail
p.no-margin-top-bottom!= t('support')
a(href='mailto:' + supportEmail)!= supportEmail

View File

@ -1,9 +1,10 @@
body{
display: block;
font-family: Lato, sans-serif;
font-size: 17px;
font-size: 16px;
text-align: left;
text-align: -webkit-left;
line-height: 24px;
justify-content: center;
padding: 15px;
margin: 0px;
@ -11,9 +12,10 @@ body{
h2 {
margin-top: 25px;
font-size: 25px;
margin-bottom: 30px;
font-size: 24px;
font-weight: normal;
line-height: 22px;
line-height: 24px;
color: #333333;
}
@ -24,11 +26,17 @@ h2 {
}
.head-logo {
width: 60%;
width: 30%;
height: auto;
display: block;
margin-left: auto;
margin-right: auto;
margin-bottom: 50px;
}
p.no-margin-top-bottom {
margin-top: 0;
margin-bottom: 0;
}
a {
@ -39,10 +47,9 @@ a.button {
background: #17b53e;
font-family: Lato, sans-serif;
font-size: 16px;
line-height: 15px;
text-decoration: none;
text-align:center;
padding: 13px 17px;
padding: 9px 18px;
color: #ffffff;
display: table;
margin-left: auto;
@ -50,10 +57,6 @@ a.button {
border-radius: 4px;
}
span {
color: #17b53e;
}
.text-block {
margin-top: 20px;
color: #000000;
@ -62,7 +65,7 @@ span {
footer {
padding: 20px;
font-family: Lato, sans-serif;
font-size: 12px;
font-size: 14px;
line-height: 15px;
text-align: center;
color: #888888;

View File

@ -1 +1 @@
h2= `${t('general.welcome')} ${APPLICATION_NAME}!`
h2!= `${t('general.welcome')} ${APPLICATION_NAME}!`

View File

@ -3,6 +3,6 @@ extend ../layout.pug
block content
.content
p
a.user(href=commenterUrl)= commenterName
= t('mentionedInComment', { postTitle})
a.button(href=commentUrl)= t('buttons.viewComment')
a.user(href=commenterUrl)!= commenterName
!= t('mentionedInComment', { postTitle})
a.button(href=commentUrl)!= t('buttons.viewComment')

View File

@ -1 +1 @@
= `${APPLICATION_NAME} ${t('notification')}: ${t('subjects.mentionedInComment')}`
!= `${APPLICATION_NAME} ${t('notification')}: ${t('subjects.mentionedInComment')}`

View File

@ -3,6 +3,6 @@ extend ../layout.pug
block content
.content
p
a.user(href=postAuthorUrl)= postAuthorName
= t('mentionedInPost', { postTitle })
a.button(href=postUrl)= t('buttons.viewPost')
a.user(href=postAuthorUrl)!= postAuthorName
!= t('mentionedInPost', { postTitle })
a.button(href=postUrl)!= t('buttons.viewPost')

View File

@ -1 +1 @@
= `${APPLICATION_NAME} ${t('notification')}: ${t('subjects.mentionedInPost')}`
!= `${APPLICATION_NAME} ${t('notification')}: ${t('subjects.mentionedInPost')}`

View File

@ -3,5 +3,5 @@ extend ../layout.pug
block content
.content
- var postUrl = postUrl
p= t('postInGroup', { postTitle})
a.button(href=postUrl)= t('buttons.viewPost')
p!= t('postInGroup', { postTitle})
a.button(href=postUrl)!= t('buttons.viewPost')

View File

@ -1 +1 @@
= `${APPLICATION_NAME} ${t('notification')}: ${t('subjects.postInGroup')}`
!= `${APPLICATION_NAME} ${t('notification')}: ${t('subjects.postInGroup')}`

View File

@ -2,14 +2,14 @@ extend ../layout.pug
block content
.content
p= t('registration.introduction')
a.button(href=actionUrl)= t('buttons.confirmEmail')
p= t('registration.codeHint')
span= nonce
p= t('registration.codeHintException')
p!= t('registration.introduction')
a.button(href=actionUrl)!= t('buttons.confirmEmail')
p!= t('registration.codeHint')
span!= nonce
p!= t('registration.codeHintException')
p= t('registration.notYouStart')
a(href=ORGANIZATION_LINK)= APPLICATION_NAME
= t('registration.notYouEnd')
p!= t('registration.notYouStart')
a(href=ORGANIZATION_LINK)!= APPLICATION_NAME
!= t('registration.notYouEnd')
p= t('registration.ps')
p!= t('registration.ps')

View File

@ -1 +1 @@
= `${t('general.welcome')} ${APPLICATION_NAME}`
!= `${t('general.welcome')} ${APPLICATION_NAME}`

View File

@ -2,4 +2,4 @@ extend ../layout.pug
block content
.content
p= t('removedUserFromGroup', { groupName })
p!= t('removedUserFromGroup', { groupName })

View File

@ -1 +1 @@
= `${APPLICATION_NAME} ${t('notification')}: ${t('subjects.removedUserFromGroup')}`
!= `${APPLICATION_NAME} ${t('notification')}: ${t('subjects.removedUserFromGroup')}`

View File

@ -2,8 +2,8 @@ extend ../layout.pug
block content
.content
p= t('resetPassword.introduction')
a.button(href=actionUrl)= t('buttons.confirmEmail')
p= t('resetPassword.ignore')
p= t('resetPassword.codeHint')
span= nonce
p!= t('resetPassword.introduction')
a.button(href=actionUrl)!= t('buttons.confirmEmail')
p!= t('resetPassword.ignore')
p!= t('resetPassword.codeHint')
span!= nonce

View File

@ -1 +1 @@
= `${t('subjects.resetPassword')} ${APPLICATION_NAME}`
!= `${t('subjects.resetPassword')} ${APPLICATION_NAME}`

View File

@ -3,6 +3,6 @@ extend ../layout.pug
block content
.content
p
a.user(href=groupRelatedUserUrl)= groupRelatedUserName
= t('userJoinedGroup', { groupName })
a.button(href=groupUrl)= t('buttons.viewGroup')
a.user(href=groupRelatedUserUrl)!= groupRelatedUserName
!= t('userJoinedGroup', { groupName })
a.button(href=groupUrl)!= t('buttons.viewGroup')

View File

@ -1 +1 @@
= `${APPLICATION_NAME} ${t('notification')}: ${t('subjects.userJoinedGroup')}`
!= `${APPLICATION_NAME} ${t('notification')}: ${t('subjects.userJoinedGroup')}`

View File

@ -3,6 +3,6 @@ extend ../layout.pug
block content
.content
p
a.user(href=groupRelatedUserUrl)= groupRelatedUserName
= t('userLeftGroup', { groupName })
a.button(href=groupUrl)= t('buttons.viewGroup')
a.user(href=groupRelatedUserUrl)!= groupRelatedUserName
!= t('userLeftGroup', { groupName })
a.button(href=groupUrl)!= t('buttons.viewGroup')

View File

@ -1 +1 @@
= `${APPLICATION_NAME} ${t('notification')}: ${t('subjects.userLeftGroup')}`
!= `${APPLICATION_NAME} ${t('notification')}: ${t('subjects.userLeftGroup')}`

View File

@ -2,9 +2,9 @@ extend ../layout.pug
block content
.content
p= t('wrongEmail.introduction')
a.button(href=actionUrl)= t('buttons.tryAgain')
p!= t('wrongEmail.introduction')
a.button(href=actionUrl)!= t('buttons.tryAgain')
p= t('wrongEmail.ignoreStart')
a(href=ORGANIZATION_LINK)= APPLICATION_NAME
= t('wrongEmail.ignoreEnd')
p!= t('wrongEmail.ignoreStart')
a(href=ORGANIZATION_LINK)!= APPLICATION_NAME
!= t('wrongEmail.ignoreEnd')

View File

@ -1 +1 @@
= `${t('subjects.wrongEmail')} ${APPLICATION_NAME}`
!= `${t('subjects.wrongEmail')} ${APPLICATION_NAME}`

Some files were not shown because too many files have changed in this diff Show More