Compare commits

...

383 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
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
1803 changed files with 57429 additions and 55330 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@c1e51972afc2121e065aed6d45c65596fe445f3f
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@81f328ec1608a441b4898147a8da7b97a3430d69 # 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@81f328ec1608a441b4898147a8da7b97a3430d69 # 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@81f328ec1608a441b4898147a8da7b97a3430d69 # 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,7 +28,7 @@ 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: |
@ -37,7 +37,7 @@ jobs:
- 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,7 +49,7 @@ 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: |
@ -58,7 +58,7 @@ jobs:
- 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,7 +113,6 @@ 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

View File

@ -8,7 +8,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@09d2acae674a48949e3602304ab46fd20ae0c42f # v4.2.2
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.2.2
- name: Copy backend env file
run: |
@ -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@09d2acae674a48949e3602304ab46fd20ae0c42f # v4.2.2
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,13 +68,16 @@ 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@09d2acae674a48949e3602304ab46fd20ae0c42f # v4.2.2
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.2.2
- name: Setup Node.js
uses: actions/setup-node@08f58d1471bff7f3a07d167b4ad7df25d5fcfcb6 # v4.4.0
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v4.4.0
with:
node-version-file: 'backend/.tool-versions'
node-version-file: 'backend/.nvmrc'
cache: 'yarn'
- name: Copy env files
@ -84,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
@ -93,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
@ -113,17 +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@09d2acae674a48949e3602304ab46fd20ae0c42f # v4.2.2
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4.2.2
- name: Setup Node.js
uses: actions/setup-node@08f58d1471bff7f3a07d167b4ad7df25d5fcfcb6 # v4.4.0
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v4.4.0
with:
node-version-file: 'backend/.tool-versions'
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
@ -133,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
@ -144,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
@ -175,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
@ -187,7 +194,7 @@ jobs:
continue-on-error: true
steps:
- name: Checkout code
uses: actions/checkout@09d2acae674a48949e3602304ab46fd20ae0c42f # v4.2.2
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 @@
v24.2.0
v25.3.0

View File

@ -1 +0,0 @@
nodejs 20.12.1

File diff suppressed because it is too large Load Diff

View File

@ -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
@ -50,3 +48,4 @@ 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
@ -42,3 +40,4 @@ 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 @@
v24.2.0
v25.3.0

View File

@ -1 +0,0 @@
nodejs 24.2.0

View File

@ -1,4 +1,4 @@
FROM node:24.4.1-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
`v24.2.0` 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 v24.2.0
$ nvm use v24.2.0
$ 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.12.0",
"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.859.0",
"@aws-sdk/lib-storage": "^3.850.0",
"@sentry/node": "^5.15.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.1.2",
"cross-env": "~10.0.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,55 +53,56 @@
"graphql-tag": "~2.10.3",
"graphql-upload": "^13.0.0",
"helmet": "~8.1.0",
"ioredis": "^5.7.0",
"ioredis": "^5.9.2",
"jsonwebtoken": "~8.5.1",
"languagedetect": "^2.0.0",
"linkify-html": "^4.3.2",
"linkifyjs": "^4.3.2",
"lodash": "~4.17.21",
"lodash": "~4.17.23",
"merge-graphql-schemas": "^1.7.8",
"metascraper": "^5.49.1",
"metascraper-author": "^5.49.1",
"metascraper-date": "^5.49.1",
"metascraper-description": "^5.49.1",
"metascraper-image": "^5.49.1",
"metascraper-lang": "^5.49.1",
"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.49.1",
"metascraper-publisher": "^5.49.1",
"metascraper-logo": "^5.49.19",
"metascraper-publisher": "^5.49.19",
"metascraper-soundcloud": "^5.34.4",
"metascraper-title": "^5.49.1",
"metascraper-url": "^5.49.1",
"metascraper-video": "^5.49.1",
"metascraper-youtube": "^5.49.1",
"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": "^10.0.3",
"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": "^7.0.5",
"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",
"sanitize-html": "~2.17.0",
"slugify": "^1.6.6",
"trunc-html": "~1.1.2",
"tslog": "^4.9.3",
"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",
"@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": "^30.0.0",
"@types/jsonwebtoken": "~8.5.1",
"@types/lodash": "^4.17.20",
"@types/node": "^24.1.0",
"@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",
@ -110,19 +114,19 @@
"eslint-config-standard": "^17.1.0",
"eslint-import-resolver-typescript": "^4.4.4",
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-jest": "^29.0.1",
"eslint-plugin-jsonc": "^2.20.1",
"eslint-plugin-n": "^17.21.3",
"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.5.3",
"eslint-plugin-prettier": "^5.5.5",
"eslint-plugin-promise": "^7.2.1",
"eslint-plugin-security": "^3.0.1",
"jest": "^30.0.5",
"nodemon": "~3.1.10",
"prettier": "^3.6.2",
"jest": "^30.2.0",
"nodemon": "~3.1.11",
"prettier": "^3.8.1",
"require-json5": "^1.3.0",
"rosie": "^2.1.1",
"ts-jest": "^29.4.1",
"ts-jest": "^29.4.6",
"ts-node": "^10.9.2",
"tsc-alias": "^1.8.16",
"tsconfig-paths": "^4.2.0",
@ -133,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

@ -48,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
@ -67,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,
}
}
@ -93,6 +93,8 @@ const redis = {
}
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,
@ -104,7 +106,6 @@ const required = {
MAPBOX_TOKEN: env.MAPBOX_TOKEN,
JWT_SECRET: env.JWT_SECRET,
PRIVATE_KEY_PASSPHRASE: env.PRIVATE_KEY_PASSPHRASE,
}
// https://stackoverflow.com/a/53050575
@ -123,7 +124,6 @@ function assertRequiredConfig(
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,
@ -138,6 +138,9 @@ 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 = {

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

@ -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

@ -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,36 +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 {
File: typeof Cypress !== 'undefined' ? require('./File') : require('./File').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

@ -8,13 +8,13 @@ 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 { ChangeGroupMemberRole } from '@graphql/queries/ChangeGroupMemberRole'
import { CreateComment } from '@graphql/queries/CreateComment'
import { CreateGroup } from '@graphql/queries/CreateGroup'
import { CreateMessage } from '@graphql/queries/CreateMessage'
import { createPostMutation } from '@graphql/queries/createPostMutation'
import { createRoomMutation } from '@graphql/queries/createRoomMutation'
import { joinGroupMutation } from '@graphql/queries/joinGroupMutation'
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'
@ -341,7 +341,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
console.log('seed', 'groups')
authenticatedUser = await peterLustig.toJson()
await mutate({
mutation: createGroupMutation(),
mutation: CreateGroup,
variables: {
id: 'g0',
name: 'Investigative Journalism',
@ -354,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',
@ -376,7 +376,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
})
await mutate({
mutation: changeGroupMemberRoleMutation(),
mutation: ChangeGroupMemberRole,
variables: {
groupId: 'g0',
userId: 'u2',
@ -385,7 +385,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
})
await mutate({
mutation: changeGroupMemberRoleMutation(),
mutation: ChangeGroupMemberRole,
variables: {
groupId: 'g0',
userId: 'u4',
@ -396,7 +396,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
// eslint-disable-next-line no-console
console.log('seed', 'group posts')
await mutate({
mutation: createPostMutation(),
mutation: CreatePost,
variables: {
id: 'p0-g0',
groupId: 'g0',
@ -408,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',
@ -420,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',
@ -433,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',
@ -469,7 +469,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
})
await mutate({
mutation: changeGroupMemberRoleMutation(),
mutation: ChangeGroupMemberRole,
variables: {
groupId: 'g1',
userId: 'u1',
@ -477,7 +477,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
},
})
await mutate({
mutation: changeGroupMemberRoleMutation(),
mutation: ChangeGroupMemberRole,
variables: {
groupId: 'g1',
userId: 'u5',
@ -485,7 +485,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
},
})
await mutate({
mutation: changeGroupMemberRoleMutation(),
mutation: ChangeGroupMemberRole,
variables: {
groupId: 'g1',
userId: 'u6',
@ -493,7 +493,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
},
})
await mutate({
mutation: createPostMutation(),
mutation: CreatePost,
variables: {
id: 'p0-g1',
groupId: 'g1',
@ -504,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',
@ -516,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',
@ -528,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',
@ -564,7 +564,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
})
await mutate({
mutation: changeGroupMemberRoleMutation(),
mutation: ChangeGroupMemberRole,
variables: {
groupId: 'g2',
userId: 'u3',
@ -572,7 +572,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
},
})
await mutate({
mutation: changeGroupMemberRoleMutation(),
mutation: ChangeGroupMemberRole,
variables: {
groupId: 'g2',
userId: 'u4',
@ -580,7 +580,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
},
})
await mutate({
mutation: changeGroupMemberRoleMutation(),
mutation: ChangeGroupMemberRole,
variables: {
groupId: 'g2',
userId: 'u5',
@ -588,7 +588,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
},
})
await mutate({
mutation: changeGroupMemberRoleMutation(),
mutation: ChangeGroupMemberRole,
variables: {
groupId: 'g2',
userId: 'u6',
@ -598,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',
@ -614,7 +614,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
const now = new Date()
await mutate({
mutation: createPostMutation(),
mutation: CreatePost,
variables: {
id: 'e0',
title: 'Illegaler Kindergeburtstag',
@ -629,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',
@ -644,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',
@ -848,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`,
@ -857,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',
@ -866,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`,
@ -875,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',
@ -899,7 +899,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
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',
@ -907,7 +907,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
},
})
await mutate({
mutation: createCommentMutation,
mutation: CreateComment,
variables: {
id: 'c4-1',
postId: 'p2',
@ -915,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(),
@ -1223,7 +1223,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
authenticatedUser = userObj
await mutate({
mutation: joinGroupMutation(),
mutation: JoinGroup,
variables: {
groupId: 'g2',
userId: userObj.id,
@ -1530,7 +1530,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
console.log('seed', 'chat')
authenticatedUser = await huey.toJson()
const { data: roomHueyPeter } = await mutate({
mutation: createRoomMutation(),
mutation: CreateRoom,
variables: {
userId: (await peterLustig.toJson()).id,
},
@ -1557,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,
},
@ -1584,7 +1584,7 @@ const languages = ['de', 'en', 'es', 'fr', 'it', 'pt', 'pl']
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,
},

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

@ -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

@ -7,12 +7,14 @@ 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

@ -7,10 +7,12 @@ 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}`

View File

@ -0,0 +1,11 @@
import gql from 'graphql-tag'
export const AddEmailAddress = gql`
mutation ($email: String!) {
AddEmailAddress(email: $email) {
email
verifiedAt
createdAt
}
}
`

View File

@ -0,0 +1,15 @@
import gql from 'graphql-tag'
export const AddPostEmotions = gql`
mutation ($to: _PostInput!, $data: _EMOTEDInput!) {
AddPostEmotions(to: $to, data: $data) {
from {
id
}
to {
id
}
emotion
}
}
`

View File

@ -0,0 +1,12 @@
import gql from 'graphql-tag'
export const Category = gql`
query {
Category {
id
slug
name
icon
}
}
`

View File

@ -0,0 +1,16 @@
import gql from 'graphql-tag'
export const ChangeGroupMemberRole = gql`
mutation ($groupId: ID!, $userId: ID!, $roleInGroup: GroupMemberRole!) {
ChangeGroupMemberRole(groupId: $groupId, userId: $userId, roleInGroup: $roleInGroup) {
user {
id
name
slug
}
membership {
role
}
}
}
`

View File

@ -1,9 +1,15 @@
import gql from 'graphql-tag'
export const createCommentMutation = gql`
export const CreateComment = gql`
mutation ($id: ID, $postId: ID!, $content: String!) {
CreateComment(id: $id, postId: $postId, content: $content) {
id
content
author {
name
}
isPostObservedByMe
postObservingUsersCount
}
}
`

View File

@ -0,0 +1,53 @@
import gql from 'graphql-tag'
export const CreateGroup = gql`
mutation (
$id: ID
$name: String!
$slug: String
$about: String
$description: String!
$groupType: GroupType!
$actionRadius: GroupActionRadius!
$categoryIds: [ID]
$locationName: String # empty string '' sets it to null
) {
CreateGroup(
id: $id
name: $name
slug: $slug
about: $about
description: $description
groupType: $groupType
actionRadius: $actionRadius
categoryIds: $categoryIds
locationName: $locationName
) {
id
name
slug
createdAt
updatedAt
disabled
deleted
about
description
descriptionExcerpt
groupType
actionRadius
categories {
id
slug
name
icon
}
locationName
location {
name
nameDE
nameEN
}
myRole
}
}
`

View File

@ -0,0 +1,51 @@
import gql from 'graphql-tag'
export const CreatePost = gql`
mutation (
$id: ID
$title: String!
$slug: String
$content: String!
$categoryIds: [ID]
$groupId: ID
$postType: PostType
$eventInput: _EventInput
) {
CreatePost(
id: $id
title: $title
slug: $slug
content: $content
categoryIds: $categoryIds
groupId: $groupId
postType: $postType
eventInput: $eventInput
) {
id
slug
title
content
disabled
deleted
postType
author {
name
}
categories {
id
}
eventStart
eventEnd
eventLocationName
eventVenue
eventIsOnline
eventLocation {
lng
lat
}
isObservedByMe
observingUsersCount
language
}
}
`

View File

@ -0,0 +1,22 @@
import gql from 'graphql-tag'
export const CreateRoom = gql`
mutation ($userId: ID!) {
CreateRoom(userId: $userId) {
id
roomId
roomName
lastMessageAt
unreadCount
#avatar
users {
_id
id
name
avatar {
url
}
}
}
}
`

View File

@ -0,0 +1,14 @@
import gql from 'graphql-tag'
export const CreateSocialMedia = gql`
mutation ($url: String!) {
CreateSocialMedia(url: $url) {
id
url
url
ownedBy {
name
}
}
}
`

View File

@ -0,0 +1,12 @@
import gql from 'graphql-tag'
export const DeleteComment = gql`
mutation ($id: ID!) {
DeleteComment(id: $id) {
id
content
contentExcerpt
deleted
}
}
`

View File

@ -0,0 +1,20 @@
import gql from 'graphql-tag'
export const DeletePost = gql`
mutation ($id: ID!) {
DeletePost(id: $id) {
id
deleted
content
contentExcerpt
image {
url
}
comments {
deleted
content
contentExcerpt
}
}
}
`

View File

@ -0,0 +1,10 @@
import gql from 'graphql-tag'
export const DeleteSocialMedia = gql`
mutation ($id: ID!) {
DeleteSocialMedia(id: $id) {
id
url
}
}
`

View File

@ -0,0 +1,30 @@
import gql from 'graphql-tag'
export const DeleteUser = gql`
mutation ($id: ID!, $resource: [Deletable]) {
DeleteUser(id: $id, resource: $resource) {
id
name
about
deleted
contributions {
id
content
contentExcerpt
deleted
comments {
id
content
contentExcerpt
deleted
}
}
comments {
id
content
contentExcerpt
deleted
}
}
}
`

View File

@ -0,0 +1,12 @@
import gql from 'graphql-tag'
export const Donations = gql`
query {
Donations {
id
showDonations
goal
progress
}
}
`

View File

@ -3,10 +3,14 @@ import gql from 'graphql-tag'
export const GroupMembers = gql`
query GroupMembers($id: ID!) {
GroupMembers(id: $id) {
id
name
slug
myRoleInGroup
user {
id
name
slug
}
membership {
role
}
}
}
`

View File

@ -0,0 +1,16 @@
import gql from 'graphql-tag'
export const JoinGroup = gql`
mutation ($groupId: ID!, $userId: ID!) {
JoinGroup(groupId: $groupId, userId: $userId) {
user {
id
name
slug
}
membership {
role
}
}
}
`

View File

@ -0,0 +1,16 @@
import gql from 'graphql-tag'
export const LeaveGroup = gql`
mutation ($groupId: ID!, $userId: ID!) {
LeaveGroup(groupId: $groupId, userId: $userId) {
user {
id
name
slug
}
membership {
role
}
}
}
`

View File

@ -1,12 +1,39 @@
import gql from 'graphql-tag'
export const Post = gql`
query ($orderBy: [_PostOrdering]) {
Post(orderBy: $orderBy) {
query ($id: ID, $filter: _PostFilter, $first: Int, $offset: Int, $orderBy: [_PostOrdering]) {
Post(id: $id, filter: $filter, first: $first, offset: $offset, orderBy: $orderBy) {
id
title
content
contentExcerpt
eventStart
pinned
createdAt
pinnedAt
isObservedByMe
observingUsersCount
clickedCount
emotionsCount
emotions {
emotion
User {
id
}
}
author {
id
name
}
shoutedBy {
id
}
tags {
id
}
comments {
content
}
}
}
`

View File

@ -0,0 +1,7 @@
import gql from 'graphql-tag'
export const PostsEmotionsByCurrentUser = gql`
query ($postId: ID!) {
PostsEmotionsByCurrentUser(postId: $postId)
}
`

View File

@ -0,0 +1,7 @@
import gql from 'graphql-tag'
export const PostsEmotionsCountByEmotion = gql`
query ($postId: ID!, $data: _EMOTEDInput!) {
PostsEmotionsCountByEmotion(postId: $postId, data: $data)
}
`

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