Compare commits

..

8 Commits

Author SHA1 Message Date
renovate db3d6c5d7a fix(deps): update dependency @intlify/unplugin-vue-i18n to v4
continuous-integration/drone/pr Build is failing Details
2024-04-08 11:09:23 +00:00
renovate d2317b9531 fix(deps): update dependency vue-i18n to v9.11.0
continuous-integration/drone/push Build is failing Details
2024-04-08 10:35:09 +00:00
renovate 552f8580a4 fix(deps): update dependency dompurify to v3.1.0
continuous-integration/drone/push Build is failing Details
2024-04-08 10:27:31 +00:00
renovate c842cb27b2 fix(deps): update tiptap to v2.2.6
continuous-integration/drone/push Build is failing Details
2024-04-08 10:19:11 +00:00
kolaente e10cd368bf
feat(migration): notify the user when a migration failed
continuous-integration/drone/push Build is failing Details
This change introduces notifications via mail when a migration fails. It will contain the error message and a hint to post it in the forum when Sentry is disabled, otherwise the error message will be sent directly to sentry and the notification will inform accordingly.
I've tried to balance "this thing failed, go figure it out" with "here is what we know and how you can get help", we'll see how well that approach works.
2024-04-08 12:15:24 +02:00
renovate 61322d2e2e fix(deps): update module github.com/yuin/goldmark to v1.7.1
continuous-integration/drone/push Build is passing Details
2024-04-08 09:28:22 +00:00
renovate a41e248e5f fix(deps): update font awesome to v6.5.2
continuous-integration/drone/push Build is failing Details
2024-04-08 09:10:31 +00:00
kolaente 6e37934b61
chore(deps): update goreleaser/nfpm docker tag to v2.36.1
continuous-integration/drone/push Build is failing Details
2024-04-08 11:09:39 +02:00
7 changed files with 388 additions and 289 deletions

View File

@ -716,7 +716,7 @@ steps:
# Build os packages and push it to our bucket
- name: build-os-packages-unstable
image: goreleaser/nfpm:v2.35.3
image: goreleaser/nfpm:v2.36.1
pull: always
commands:
- apk add git go
@ -732,7 +732,7 @@ steps:
depends_on: [ after-build-compress ]
- name: build-os-packages-version
image: goreleaser/nfpm:v2.35.3
image: goreleaser/nfpm:v2.36.1
pull: always
commands:
- apk add git go
@ -1400,6 +1400,6 @@ steps:
- failure
---
kind: signature
hmac: ad1d7014fb230dd4ced032ea8995b7a7dc18fcc7cf0805ee38dcbcd6413325af
hmac: 2c9cb0483fb346988188515f6423929f46eefb9e14eb26b0f312a0b694d5fe8c
...

View File

@ -50,9 +50,9 @@
"story:preview": "histoire preview"
},
"dependencies": {
"@fortawesome/fontawesome-svg-core": "6.5.1",
"@fortawesome/free-regular-svg-icons": "6.5.1",
"@fortawesome/free-solid-svg-icons": "6.5.1",
"@fortawesome/fontawesome-svg-core": "6.5.2",
"@fortawesome/free-regular-svg-icons": "6.5.2",
"@fortawesome/free-solid-svg-icons": "6.5.2",
"@fortawesome/vue-fontawesome": "3.0.6",
"@github/hotkey": "3.1.0",
"@infectoone/vue-ganttastic": "2.3.2",
@ -60,39 +60,39 @@
"@kyvg/vue3-notification": "3.2.1",
"@sentry/tracing": "7.109.0",
"@sentry/vue": "7.109.0",
"@tiptap/core": "2.2.4",
"@tiptap/extension-blockquote": "2.2.4",
"@tiptap/extension-bold": "2.2.4",
"@tiptap/extension-bullet-list": "2.2.4",
"@tiptap/extension-code": "2.2.4",
"@tiptap/extension-code-block-lowlight": "2.2.4",
"@tiptap/extension-document": "2.2.4",
"@tiptap/extension-dropcursor": "2.2.4",
"@tiptap/extension-gapcursor": "2.2.4",
"@tiptap/extension-hard-break": "2.2.4",
"@tiptap/extension-heading": "2.2.4",
"@tiptap/extension-history": "2.2.4",
"@tiptap/extension-horizontal-rule": "2.2.4",
"@tiptap/extension-image": "2.2.4",
"@tiptap/extension-italic": "2.2.4",
"@tiptap/extension-link": "2.2.4",
"@tiptap/extension-list-item": "2.2.4",
"@tiptap/extension-ordered-list": "2.2.4",
"@tiptap/extension-paragraph": "2.2.4",
"@tiptap/extension-placeholder": "2.2.4",
"@tiptap/extension-strike": "2.2.4",
"@tiptap/extension-table": "2.2.4",
"@tiptap/extension-table-cell": "2.2.4",
"@tiptap/extension-table-header": "2.2.4",
"@tiptap/extension-table-row": "2.2.4",
"@tiptap/extension-task-item": "2.2.4",
"@tiptap/extension-task-list": "2.2.4",
"@tiptap/extension-text": "2.2.4",
"@tiptap/extension-typography": "2.2.4",
"@tiptap/extension-underline": "2.2.4",
"@tiptap/pm": "2.2.4",
"@tiptap/suggestion": "2.2.4",
"@tiptap/vue-3": "2.2.4",
"@tiptap/core": "2.2.6",
"@tiptap/extension-blockquote": "2.2.6",
"@tiptap/extension-bold": "2.2.6",
"@tiptap/extension-bullet-list": "2.2.6",
"@tiptap/extension-code": "2.2.6",
"@tiptap/extension-code-block-lowlight": "2.2.6",
"@tiptap/extension-document": "2.2.6",
"@tiptap/extension-dropcursor": "2.2.6",
"@tiptap/extension-gapcursor": "2.2.6",
"@tiptap/extension-hard-break": "2.2.6",
"@tiptap/extension-heading": "2.2.6",
"@tiptap/extension-history": "2.2.6",
"@tiptap/extension-horizontal-rule": "2.2.6",
"@tiptap/extension-image": "2.2.6",
"@tiptap/extension-italic": "2.2.6",
"@tiptap/extension-link": "2.2.6",
"@tiptap/extension-list-item": "2.2.6",
"@tiptap/extension-ordered-list": "2.2.6",
"@tiptap/extension-paragraph": "2.2.6",
"@tiptap/extension-placeholder": "2.2.6",
"@tiptap/extension-strike": "2.2.6",
"@tiptap/extension-table": "2.2.6",
"@tiptap/extension-table-cell": "2.2.6",
"@tiptap/extension-table-header": "2.2.6",
"@tiptap/extension-table-row": "2.2.6",
"@tiptap/extension-task-item": "2.2.6",
"@tiptap/extension-task-list": "2.2.6",
"@tiptap/extension-text": "2.2.6",
"@tiptap/extension-typography": "2.2.6",
"@tiptap/extension-underline": "2.2.6",
"@tiptap/pm": "2.2.6",
"@tiptap/suggestion": "2.2.6",
"@tiptap/vue-3": "2.2.6",
"@types/is-touch-device": "1.0.2",
"@types/lodash.clonedeep": "4.5.9",
"@vueuse/core": "10.9.0",
@ -103,7 +103,7 @@
"camel-case": "4.1.2",
"date-fns": "3.6.0",
"dayjs": "1.11.10",
"dompurify": "3.0.11",
"dompurify": "3.1.0",
"fast-deep-equal": "3.1.3",
"flatpickr": "4.6.13",
"flexsearch": "0.7.31",
@ -121,7 +121,7 @@
"vue": "3.4.21",
"vue-advanced-cropper": "2.8.8",
"vue-flatpickr-component": "11.0.5",
"vue-i18n": "9.10.2",
"vue-i18n": "9.11.0",
"vue-router": "4.3.0",
"vuemoji-picker": "0.2.1",
"workbox-precaching": "7.0.0",

View File

@ -14,17 +14,17 @@ patchedDependencies:
dependencies:
'@fortawesome/fontawesome-svg-core':
specifier: 6.5.1
version: 6.5.1
specifier: 6.5.2
version: 6.5.2
'@fortawesome/free-regular-svg-icons':
specifier: 6.5.1
version: 6.5.1
specifier: 6.5.2
version: 6.5.2
'@fortawesome/free-solid-svg-icons':
specifier: 6.5.1
version: 6.5.1
specifier: 6.5.2
version: 6.5.2
'@fortawesome/vue-fontawesome':
specifier: 3.0.6
version: 3.0.6(@fortawesome/fontawesome-svg-core@6.5.1)(vue@3.4.21)
version: 3.0.6(@fortawesome/fontawesome-svg-core@6.5.2)(vue@3.4.21)
'@github/hotkey':
specifier: 3.1.0
version: 3.1.0(patch_hash=c67tdk7qpd5grxd2zj6lsxfbou)
@ -33,7 +33,7 @@ dependencies:
version: 2.3.2(dayjs@1.11.10)(vue@3.4.21)
'@intlify/unplugin-vue-i18n':
specifier: 4.0.0
version: 4.0.0(rollup@4.14.1)(vue-i18n@9.10.2)
version: 4.0.0(rollup@4.14.1)(vue-i18n@9.11.0)
'@kyvg/vue3-notification':
specifier: 3.2.1
version: 3.2.1(vue@3.4.21)
@ -44,104 +44,104 @@ dependencies:
specifier: 7.109.0
version: 7.109.0(vue@3.4.21)
'@tiptap/core':
specifier: 2.2.4
version: 2.2.4(@tiptap/pm@2.2.4)
specifier: 2.2.6
version: 2.2.6(@tiptap/pm@2.2.6)
'@tiptap/extension-blockquote':
specifier: 2.2.4
version: 2.2.4(@tiptap/core@2.2.4)
specifier: 2.2.6
version: 2.2.6(@tiptap/core@2.2.6)
'@tiptap/extension-bold':
specifier: 2.2.4
version: 2.2.4(@tiptap/core@2.2.4)
specifier: 2.2.6
version: 2.2.6(@tiptap/core@2.2.6)
'@tiptap/extension-bullet-list':
specifier: 2.2.4
version: 2.2.4(@tiptap/core@2.2.4)
specifier: 2.2.6
version: 2.2.6(@tiptap/core@2.2.6)
'@tiptap/extension-code':
specifier: 2.2.4
version: 2.2.4(@tiptap/core@2.2.4)
specifier: 2.2.6
version: 2.2.6(@tiptap/core@2.2.6)
'@tiptap/extension-code-block-lowlight':
specifier: 2.2.4
version: 2.2.4(@tiptap/core@2.2.4)(@tiptap/extension-code-block@2.1.12)(@tiptap/pm@2.2.4)
specifier: 2.2.6
version: 2.2.6(@tiptap/core@2.2.6)(@tiptap/extension-code-block@2.1.12)(@tiptap/pm@2.2.6)
'@tiptap/extension-document':
specifier: 2.2.4
version: 2.2.4(@tiptap/core@2.2.4)
specifier: 2.2.6
version: 2.2.6(@tiptap/core@2.2.6)
'@tiptap/extension-dropcursor':
specifier: 2.2.4
version: 2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4)
specifier: 2.2.6
version: 2.2.6(@tiptap/core@2.2.6)(@tiptap/pm@2.2.6)
'@tiptap/extension-gapcursor':
specifier: 2.2.4
version: 2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4)
specifier: 2.2.6
version: 2.2.6(@tiptap/core@2.2.6)(@tiptap/pm@2.2.6)
'@tiptap/extension-hard-break':
specifier: 2.2.4
version: 2.2.4(@tiptap/core@2.2.4)
specifier: 2.2.6
version: 2.2.6(@tiptap/core@2.2.6)
'@tiptap/extension-heading':
specifier: 2.2.4
version: 2.2.4(@tiptap/core@2.2.4)
specifier: 2.2.6
version: 2.2.6(@tiptap/core@2.2.6)
'@tiptap/extension-history':
specifier: 2.2.4
version: 2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4)
specifier: 2.2.6
version: 2.2.6(@tiptap/core@2.2.6)(@tiptap/pm@2.2.6)
'@tiptap/extension-horizontal-rule':
specifier: 2.2.4
version: 2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4)
specifier: 2.2.6
version: 2.2.6(@tiptap/core@2.2.6)(@tiptap/pm@2.2.6)
'@tiptap/extension-image':
specifier: 2.2.4
version: 2.2.4(@tiptap/core@2.2.4)
specifier: 2.2.6
version: 2.2.6(@tiptap/core@2.2.6)
'@tiptap/extension-italic':
specifier: 2.2.4
version: 2.2.4(@tiptap/core@2.2.4)
specifier: 2.2.6
version: 2.2.6(@tiptap/core@2.2.6)
'@tiptap/extension-link':
specifier: 2.2.4
version: 2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4)
specifier: 2.2.6
version: 2.2.6(@tiptap/core@2.2.6)(@tiptap/pm@2.2.6)
'@tiptap/extension-list-item':
specifier: 2.2.4
version: 2.2.4(@tiptap/core@2.2.4)
specifier: 2.2.6
version: 2.2.6(@tiptap/core@2.2.6)
'@tiptap/extension-ordered-list':
specifier: 2.2.4
version: 2.2.4(@tiptap/core@2.2.4)
specifier: 2.2.6
version: 2.2.6(@tiptap/core@2.2.6)
'@tiptap/extension-paragraph':
specifier: 2.2.4
version: 2.2.4(@tiptap/core@2.2.4)
specifier: 2.2.6
version: 2.2.6(@tiptap/core@2.2.6)
'@tiptap/extension-placeholder':
specifier: 2.2.4
version: 2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4)
specifier: 2.2.6
version: 2.2.6(@tiptap/core@2.2.6)(@tiptap/pm@2.2.6)
'@tiptap/extension-strike':
specifier: 2.2.4
version: 2.2.4(@tiptap/core@2.2.4)
specifier: 2.2.6
version: 2.2.6(@tiptap/core@2.2.6)
'@tiptap/extension-table':
specifier: 2.2.4
version: 2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4)
specifier: 2.2.6
version: 2.2.6(@tiptap/core@2.2.6)(@tiptap/pm@2.2.6)
'@tiptap/extension-table-cell':
specifier: 2.2.4
version: 2.2.4(@tiptap/core@2.2.4)
specifier: 2.2.6
version: 2.2.6(@tiptap/core@2.2.6)
'@tiptap/extension-table-header':
specifier: 2.2.4
version: 2.2.4(@tiptap/core@2.2.4)
specifier: 2.2.6
version: 2.2.6(@tiptap/core@2.2.6)
'@tiptap/extension-table-row':
specifier: 2.2.4
version: 2.2.4(@tiptap/core@2.2.4)
specifier: 2.2.6
version: 2.2.6(@tiptap/core@2.2.6)
'@tiptap/extension-task-item':
specifier: 2.2.4
version: 2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4)
specifier: 2.2.6
version: 2.2.6(@tiptap/core@2.2.6)(@tiptap/pm@2.2.6)
'@tiptap/extension-task-list':
specifier: 2.2.4
version: 2.2.4(@tiptap/core@2.2.4)
specifier: 2.2.6
version: 2.2.6(@tiptap/core@2.2.6)
'@tiptap/extension-text':
specifier: 2.2.4
version: 2.2.4(@tiptap/core@2.2.4)
specifier: 2.2.6
version: 2.2.6(@tiptap/core@2.2.6)
'@tiptap/extension-typography':
specifier: 2.2.4
version: 2.2.4(@tiptap/core@2.2.4)
specifier: 2.2.6
version: 2.2.6(@tiptap/core@2.2.6)
'@tiptap/extension-underline':
specifier: 2.2.4
version: 2.2.4(@tiptap/core@2.2.4)
specifier: 2.2.6
version: 2.2.6(@tiptap/core@2.2.6)
'@tiptap/pm':
specifier: 2.2.4
version: 2.2.4
specifier: 2.2.6
version: 2.2.6
'@tiptap/suggestion':
specifier: 2.2.4
version: 2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4)
specifier: 2.2.6
version: 2.2.6(@tiptap/core@2.2.6)(@tiptap/pm@2.2.6)
'@tiptap/vue-3':
specifier: 2.2.4
version: 2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4)(vue@3.4.21)
specifier: 2.2.6
version: 2.2.6(@tiptap/core@2.2.6)(@tiptap/pm@2.2.6)(vue@3.4.21)
'@types/is-touch-device':
specifier: 1.0.2
version: 1.0.2
@ -173,8 +173,8 @@ dependencies:
specifier: 1.11.10
version: 1.11.10
dompurify:
specifier: 3.0.11
version: 3.0.11
specifier: 3.1.0
version: 3.1.0
fast-deep-equal:
specifier: 3.1.3
version: 3.1.3
@ -227,8 +227,8 @@ dependencies:
specifier: 11.0.5
version: 11.0.5(vue@3.4.21)
vue-i18n:
specifier: 9.10.2
version: 9.10.2(vue@3.4.21)
specifier: 9.11.0
version: 9.11.0(vue@3.4.21)
vue-router:
specifier: 4.3.0
version: 4.3.0(vue@3.4.21)
@ -2437,43 +2437,43 @@ packages:
'@floating-ui/core': 1.3.0
dev: false
/@fortawesome/fontawesome-common-types@6.5.1:
resolution: {integrity: sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A==}
/@fortawesome/fontawesome-common-types@6.5.2:
resolution: {integrity: sha512-gBxPg3aVO6J0kpfHNILc+NMhXnqHumFxOmjYCFfOiLZfwhnnfhtsdA2hfJlDnj+8PjAs6kKQPenOTKj3Rf7zHw==}
engines: {node: '>=6'}
requiresBuild: true
dev: false
/@fortawesome/fontawesome-svg-core@6.5.1:
resolution: {integrity: sha512-MfRCYlQPXoLlpem+egxjfkEuP9UQswTrlCOsknus/NcMoblTH2g0jPrapbcIb04KGA7E2GZxbAccGZfWoYgsrQ==}
/@fortawesome/fontawesome-svg-core@6.5.2:
resolution: {integrity: sha512-5CdaCBGl8Rh9ohNdxeeTMxIj8oc3KNBgIeLMvJosBMdslK/UnEB8rzyDRrbKdL1kDweqBPo4GT9wvnakHWucZw==}
engines: {node: '>=6'}
requiresBuild: true
dependencies:
'@fortawesome/fontawesome-common-types': 6.5.1
'@fortawesome/fontawesome-common-types': 6.5.2
dev: false
/@fortawesome/free-regular-svg-icons@6.5.1:
resolution: {integrity: sha512-m6ShXn+wvqEU69wSP84coxLbNl7sGVZb+Ca+XZq6k30SzuP3X4TfPqtycgUh9ASwlNh5OfQCd8pDIWxl+O+LlQ==}
/@fortawesome/free-regular-svg-icons@6.5.2:
resolution: {integrity: sha512-iabw/f5f8Uy2nTRtJ13XZTS1O5+t+anvlamJ3zJGLEVE2pKsAWhPv2lq01uQlfgCX7VaveT3EVs515cCN9jRbw==}
engines: {node: '>=6'}
requiresBuild: true
dependencies:
'@fortawesome/fontawesome-common-types': 6.5.1
'@fortawesome/fontawesome-common-types': 6.5.2
dev: false
/@fortawesome/free-solid-svg-icons@6.5.1:
resolution: {integrity: sha512-S1PPfU3mIJa59biTtXJz1oI0+KAXW6bkAb31XKhxdxtuXDiUIFsih4JR1v5BbxY7hVHsD1RKq+jRkVRaf773NQ==}
/@fortawesome/free-solid-svg-icons@6.5.2:
resolution: {integrity: sha512-QWFZYXFE7O1Gr1dTIp+D6UcFUF0qElOnZptpi7PBUMylJh+vFmIedVe1Ir6RM1t2tEQLLSV1k7bR4o92M+uqlw==}
engines: {node: '>=6'}
requiresBuild: true
dependencies:
'@fortawesome/fontawesome-common-types': 6.5.1
'@fortawesome/fontawesome-common-types': 6.5.2
dev: false
/@fortawesome/vue-fontawesome@3.0.6(@fortawesome/fontawesome-svg-core@6.5.1)(vue@3.4.21):
/@fortawesome/vue-fontawesome@3.0.6(@fortawesome/fontawesome-svg-core@6.5.2)(vue@3.4.21):
resolution: {integrity: sha512-akrL7lTroyNpPkoHtvK2UpsMzJr6jXdHaQ0YdcwqDsB8jdwlpNHZYijpOUd9KJsARr+VB3WXY4EyObepqJ4ytQ==}
peerDependencies:
'@fortawesome/fontawesome-svg-core': ~1 || ~6
vue: '>= 3.0.0 < 4'
dependencies:
'@fortawesome/fontawesome-svg-core': 6.5.1
'@fortawesome/fontawesome-svg-core': 6.5.2
vue: 3.4.21(typescript@5.4.4)
dev: false
@ -2608,7 +2608,7 @@ packages:
- '@vue/composition-api'
dev: false
/@intlify/bundle-utils@8.0.0(vue-i18n@9.10.2):
/@intlify/bundle-utils@8.0.0(vue-i18n@9.11.0):
resolution: {integrity: sha512-1B++zykRnMwQ+20SpsZI1JCnV/YJt9Oq7AGlEurzkWJOFtFAVqaGc/oV36PBRYeiKnTbY9VYfjBimr2Vt42wLQ==}
engines: {node: '>= 14.16'}
peerDependencies:
@ -2620,40 +2620,40 @@ packages:
vue-i18n:
optional: true
dependencies:
'@intlify/message-compiler': 9.10.2
'@intlify/shared': 9.10.2
'@intlify/message-compiler': 9.11.0
'@intlify/shared': 9.11.0
acorn: 8.11.2
escodegen: 2.1.0
estree-walker: 2.0.2
jsonc-eslint-parser: 2.3.0
mlly: 1.4.2
source-map-js: 1.2.0
vue-i18n: 9.10.2(vue@3.4.21)
vue-i18n: 9.11.0(vue@3.4.21)
yaml-eslint-parser: 1.2.2
dev: false
/@intlify/core-base@9.10.2:
resolution: {integrity: sha512-HGStVnKobsJL0DoYIyRCGXBH63DMQqEZxDUGrkNI05FuTcruYUtOAxyL3zoAZu/uDGO6mcUvm3VXBaHG2GdZCg==}
/@intlify/core-base@9.11.0:
resolution: {integrity: sha512-cveOqAstjLZIiyatcP/HrzrQ87cZI8ScPQna3yvoM8zjcjcIRK1MRvmxUNlPdg0rTNJMZw7rixPVM58O5aHVPA==}
engines: {node: '>= 16'}
dependencies:
'@intlify/message-compiler': 9.10.2
'@intlify/shared': 9.10.2
'@intlify/message-compiler': 9.11.0
'@intlify/shared': 9.11.0
dev: false
/@intlify/message-compiler@9.10.2:
resolution: {integrity: sha512-ntY/kfBwQRtX5Zh6wL8cSATujPzWW2ZQd1QwKyWwAy5fMqJyyixHMeovN4fmEyCqSu+hFfYOE63nU94evsy4YA==}
/@intlify/message-compiler@9.11.0:
resolution: {integrity: sha512-x31Gl7cscnoI4UUY1yaIy8e7vVMVW1VVlTXZz4SIHKqoSEUkfmgqK8NAx1e7RcoHEbICR7uyCbud0ZL1s4OGXQ==}
engines: {node: '>= 16'}
dependencies:
'@intlify/shared': 9.10.2
'@intlify/shared': 9.11.0
source-map-js: 1.2.0
dev: false
/@intlify/shared@9.10.2:
resolution: {integrity: sha512-ttHCAJkRy7R5W2S9RVnN9KYQYPIpV2+GiS79T4EE37nrPyH6/1SrOh3bmdCRC1T3ocL8qCDx7x2lBJ0xaITU7Q==}
/@intlify/shared@9.11.0:
resolution: {integrity: sha512-KHSNgi7sRjmSm7aD8QH8WFt9VfKaekJuJ473opbJlkGY3EDnDUU8ikIhG8PbasQbgNvbY3m3tWNGqk2omIdwMA==}
engines: {node: '>= 16'}
dev: false
/@intlify/unplugin-vue-i18n@4.0.0(rollup@4.14.1)(vue-i18n@9.10.2):
/@intlify/unplugin-vue-i18n@4.0.0(rollup@4.14.1)(vue-i18n@9.11.0):
resolution: {integrity: sha512-q2Mhqa/mLi0tulfLFO4fMXXvEbkSZpI5yGhNNsLTNJJ41icEGUuyDe+j5zRZIKSkOJRgX6YbCyibTDJdRsukmw==}
engines: {node: '>= 14.16'}
peerDependencies:
@ -2668,8 +2668,8 @@ packages:
vue-i18n-bridge:
optional: true
dependencies:
'@intlify/bundle-utils': 8.0.0(vue-i18n@9.10.2)
'@intlify/shared': 9.10.2
'@intlify/bundle-utils': 8.0.0(vue-i18n@9.11.0)
'@intlify/shared': 9.11.0
'@rollup/pluginutils': 5.1.0(rollup@4.14.1)
'@vue/compiler-sfc': 3.4.21
debug: 4.3.4(supports-color@8.1.1)
@ -2680,7 +2680,7 @@ packages:
picocolors: 1.0.0
source-map-js: 1.2.0
unplugin: 1.1.0
vue-i18n: 9.10.2(vue@3.4.21)
vue-i18n: 9.11.0(vue@3.4.21)
transitivePeerDependencies:
- rollup
- supports-color
@ -3179,301 +3179,301 @@ packages:
defer-to-connect: 1.1.3
dev: true
/@tiptap/core@2.2.4(@tiptap/pm@2.2.4):
resolution: {integrity: sha512-cRrI8IlLIhCE1hacBQzXIC8dsRvGq6a4lYWQK/BaHuZg21CG7szp3Vd8Ix+ra1f5v0xPOT+Hy+QFNQooRMKMCw==}
/@tiptap/core@2.2.6(@tiptap/pm@2.2.6):
resolution: {integrity: sha512-v7S7RhQhTXQo9KSk2jM/jJlTd3clU2FsJA3Omjz7GbgYtPSy67qSiaTbH/tWq12GzDHbKymx+oQnKmyx+yPucA==}
peerDependencies:
'@tiptap/pm': ^2.0.0
dependencies:
'@tiptap/pm': 2.2.4
'@tiptap/pm': 2.2.6
dev: false
/@tiptap/extension-blockquote@2.2.4(@tiptap/core@2.2.4):
resolution: {integrity: sha512-FrfPnn0VgVrUwWLwja1afX99JGLp6PE9ThVcmri+tLwUZQvTTVcCvHoCdOakav3/nge1+aV4iE3tQdyq1tWI9Q==}
/@tiptap/extension-blockquote@2.2.6(@tiptap/core@2.2.6):
resolution: {integrity: sha512-Qoq4Tl4wyEGfuBrMFth5hWP1SroJtgDYPnyzAZeLiGzF3Yxtu7FFqjGtD1/Bos9ftnFVCAj+nIXnuKsM1YUaGg==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
dev: false
/@tiptap/extension-bold@2.2.4(@tiptap/core@2.2.4):
resolution: {integrity: sha512-v3tTLc8YESFZPOGj5ByFr8VbmQ/PTo49T1vsK50VubxIN/5r9cXlKH8kb3dZlZxCxJa3FrXNO/M8rdGBSWQvSg==}
/@tiptap/extension-bold@2.2.6(@tiptap/core@2.2.6):
resolution: {integrity: sha512-PI/jNH7rmi6hBvWy/z+3KUTYqeaDXBUjidM74gWP6OLV28HTJ5SkIPCriYe4u2j2Wc/nk3gPxs4/hPOAu/YiXA==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
dev: false
/@tiptap/extension-bubble-menu@2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4):
resolution: {integrity: sha512-Nx1fS9jcFlhxaTDYlnayz2UulhK6CMaePc36+7PQIVI+u20RhgTCRNr25zKNemvsiM0RPZZVUjlHkxC0l5as1Q==}
/@tiptap/extension-bubble-menu@2.2.6(@tiptap/core@2.2.6)(@tiptap/pm@2.2.6):
resolution: {integrity: sha512-nRWxbgkInhdGUL+e6iISgALcWh8A1PxeVB66w7yYZHS/WoZO0DXdXYT/BWb/XmEJ8r6B4c9SDZRklCiXT8dSXw==}
peerDependencies:
'@tiptap/core': ^2.0.0
'@tiptap/pm': ^2.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/pm': 2.2.4
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
'@tiptap/pm': 2.2.6
tippy.js: 6.3.7
dev: false
/@tiptap/extension-bullet-list@2.2.4(@tiptap/core@2.2.4):
resolution: {integrity: sha512-z/MPmW8bhRougMuorl6MAQBXeK4rhlP+jBWlNwT+CT8h5IkXqPnDbM1sZeagp2nYfVV6Yc4RWpzimqHHtGnYTA==}
/@tiptap/extension-bullet-list@2.2.6(@tiptap/core@2.2.6):
resolution: {integrity: sha512-bSrmYlWfj/bXXoBMVB+gCTlsficVVzWi1jcAjAn+qNAENkhampmlFIUG4DiKGYtn18ZoTbyLgQGDMCO3SBdeDQ==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
dev: false
/@tiptap/extension-code-block-lowlight@2.2.4(@tiptap/core@2.2.4)(@tiptap/extension-code-block@2.1.12)(@tiptap/pm@2.2.4):
resolution: {integrity: sha512-FxrpY2Lj6kV6pu5LcaeccE3lqOqvOyFSfMGRV6x1OGOMV9TIFJKIVEIcEhqoiqEnuJZzSmQSx7QZqzOvquZo+A==}
/@tiptap/extension-code-block-lowlight@2.2.6(@tiptap/core@2.2.6)(@tiptap/extension-code-block@2.1.12)(@tiptap/pm@2.2.6):
resolution: {integrity: sha512-W/8C5nIwgGLvxjc+PfnCcWkfrUuJsIKjyZGXmq1hVXTTVA9eVGbS7m1YB/fsYTEg1ccwoM2JjKO9yuKCeR2xiQ==}
peerDependencies:
'@tiptap/core': ^2.0.0
'@tiptap/extension-code-block': ^2.0.0
'@tiptap/pm': ^2.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/extension-code-block': 2.1.12(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4)
'@tiptap/pm': 2.2.4
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
'@tiptap/extension-code-block': 2.1.12(@tiptap/core@2.2.6)(@tiptap/pm@2.2.6)
'@tiptap/pm': 2.2.6
dev: false
/@tiptap/extension-code-block@2.1.12(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4):
/@tiptap/extension-code-block@2.1.12(@tiptap/core@2.2.6)(@tiptap/pm@2.2.6):
resolution: {integrity: sha512-RXtSYCVsnk8D+K80uNZShClfZjvv1EgO42JlXLVGWQdIgaNyuOv/6I/Jdf+ZzhnpsBnHufW+6TJjwP5vJPSPHA==}
peerDependencies:
'@tiptap/core': ^2.0.0
'@tiptap/pm': ^2.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/pm': 2.2.4
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
'@tiptap/pm': 2.2.6
dev: false
/@tiptap/extension-code@2.2.4(@tiptap/core@2.2.4):
resolution: {integrity: sha512-JB4SJ2mUU/9qXFUf+K5K9szvovnN9AIcCb0f0UlcVBuddKHSqCl3wO3QJgYt44BfQTLMNuyzr+zVqfFd6BNt/g==}
/@tiptap/extension-code@2.2.6(@tiptap/core@2.2.6):
resolution: {integrity: sha512-UGsSFvVWrWWWQFU4atk+b/qeewTLadOZG/BHZXQDloyP5eJ1SkgUVy9nv3y2cT8QWRbvF6sxkV+SdFoWnvaG3Q==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
dev: false
/@tiptap/extension-document@2.2.4(@tiptap/core@2.2.4):
resolution: {integrity: sha512-z+05xGK0OFoXV1GL+/8bzcZuWMdMA3+EKwk5c+iziG60VZcvGTF7jBRsZidlu9Oaj0cDwWHCeeo6L9SgSh6i2A==}
/@tiptap/extension-document@2.2.6(@tiptap/core@2.2.6):
resolution: {integrity: sha512-yT9m5Oo9U/xAypcylaLiDE8qmVd3SCZSc8s5lqyC1OW+psb1oC0d14+TgKetO2s8K2wAbW2DxYG3yoxWffGYsQ==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
dev: false
/@tiptap/extension-dropcursor@2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4):
resolution: {integrity: sha512-IHwkEKmqpqXyJi16h7871NrcIqeyN7I6XRE2qdqi+MhGigVWI8nWHoYbjRKa7K/1uhs5zeRYyDlq5EuZyL6mgA==}
/@tiptap/extension-dropcursor@2.2.6(@tiptap/core@2.2.6)(@tiptap/pm@2.2.6):
resolution: {integrity: sha512-mCeIbbfe4rl8CuxVQvT7iYSKGVX/ls1LOwALwlHJz5Uw5l3VknAJdjEmHt6hNFdHu162JivL02Il0QYQ8BZwvA==}
peerDependencies:
'@tiptap/core': ^2.0.0
'@tiptap/pm': ^2.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/pm': 2.2.4
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
'@tiptap/pm': 2.2.6
dev: false
/@tiptap/extension-floating-menu@2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4):
resolution: {integrity: sha512-U25l7PEzOmlAPugNRl8t8lqyhQZS6W/+3f92+FdwW9qXju3i62iX/3OGCC3Gv+vybmQ4fbZmMjvl+VDfenNi3A==}
/@tiptap/extension-floating-menu@2.2.6(@tiptap/core@2.2.6)(@tiptap/pm@2.2.6):
resolution: {integrity: sha512-6ONKC6Dx8zCc5YffXpnQ9FxGRoUp5Jm9mOO3losgiDFhdJqaO7SCk1ziOiD7enoWqIc2shZh8ADnqttCfnFVFQ==}
peerDependencies:
'@tiptap/core': ^2.0.0
'@tiptap/pm': ^2.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/pm': 2.2.4
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
'@tiptap/pm': 2.2.6
tippy.js: 6.3.7
dev: false
/@tiptap/extension-gapcursor@2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4):
resolution: {integrity: sha512-Y6htT/RDSqkQ1UwG2Ia+rNVRvxrKPOs3RbqKHPaWr3vbFWwhHyKhMCvi/FqfI3d5pViVHOZQ7jhb5hT/a0BmNw==}
/@tiptap/extension-gapcursor@2.2.6(@tiptap/core@2.2.6)(@tiptap/pm@2.2.6):
resolution: {integrity: sha512-HDYu+FmL9V+khsiT5904Dy2qG6KrAvnXEjZk1+vVul0TabnQvl2rqHjTxmev3P1rOYTgePmaWXazxAWFIvbMBQ==}
peerDependencies:
'@tiptap/core': ^2.0.0
'@tiptap/pm': ^2.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/pm': 2.2.4
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
'@tiptap/pm': 2.2.6
dev: false
/@tiptap/extension-hard-break@2.2.4(@tiptap/core@2.2.4):
resolution: {integrity: sha512-FPvS57GcqHIeLbPKGJa3gnH30Xw+YB1PXXnAWG2MpnMtc2Vtj1l5xaYYBZB+ADdXLAlU0YMbKhFLQO4+pg1Isg==}
/@tiptap/extension-hard-break@2.2.6(@tiptap/core@2.2.6):
resolution: {integrity: sha512-gwavC76sn26XQLyDaDtf28KIcbhMYPP+C5pkbRvAhVSckQB3Ebz3GRttVbm/jp+Uifp3bmoQEzISGCONEdKQoQ==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
dev: false
/@tiptap/extension-heading@2.2.4(@tiptap/core@2.2.4):
resolution: {integrity: sha512-gkq7Ns2FcrOCRq7Q+VRYt5saMt2R9g4REAtWy/jEevJ5UV5vA2AiGnYDmxwAkHutoYU0sAUkjqx37wE0wpamNw==}
/@tiptap/extension-heading@2.2.6(@tiptap/core@2.2.6):
resolution: {integrity: sha512-XOmY+uezm42xSO1ero2bRBMdQxWytpxLJS+2shK0QogZ3sDplnfWfP5KV9Z2juXjTdPgPWG0ZaHzIIaLquEcfA==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
dev: false
/@tiptap/extension-history@2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4):
resolution: {integrity: sha512-FDM32XYF5NU4mzh+fJ8w2CyUqv0l2Nl15sd6fOhQkVxSj8t57z+DUXc9ZR3zkH+1RAagYJo/2Gu3e99KpMr0tg==}
/@tiptap/extension-history@2.2.6(@tiptap/core@2.2.6)(@tiptap/pm@2.2.6):
resolution: {integrity: sha512-c2Aeozc+pHcpqghLjXRX/tGU/C+Gp6hApUWPXdhZw5Y/ARj6ZRwx2/ym2K8MOrJ36/W7gc7Xyxd9ZbG7m7pcjA==}
peerDependencies:
'@tiptap/core': ^2.0.0
'@tiptap/pm': ^2.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/pm': 2.2.4
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
'@tiptap/pm': 2.2.6
dev: false
/@tiptap/extension-horizontal-rule@2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4):
resolution: {integrity: sha512-iCRHjFQQHApWg3R4fkKkJQhWEOdu1Fdc4YEAukdOXPSg3fg36IwjvsMXjt9SYBtVZ+iio3rORCZGXyMvgCH9uw==}
/@tiptap/extension-horizontal-rule@2.2.6(@tiptap/core@2.2.6)(@tiptap/pm@2.2.6):
resolution: {integrity: sha512-zyLU+Xlk8y3yBCblE8pFwqAP2Rju1csyAu45hi3NCJ6HDGQGdjy8oh+Xa8y2kTPxRNMZARxqB+vCiEoW3YZn2A==}
peerDependencies:
'@tiptap/core': ^2.0.0
'@tiptap/pm': ^2.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/pm': 2.2.4
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
'@tiptap/pm': 2.2.6
dev: false
/@tiptap/extension-image@2.2.4(@tiptap/core@2.2.4):
resolution: {integrity: sha512-xOnqZpnP/fAfmK5AKmXplVQdXBtY5AoZ9B+qllH129aLABaDRzl3e14ZRHC8ahQawOmCe6AOCCXYUBXDOlY5Jg==}
/@tiptap/extension-image@2.2.6(@tiptap/core@2.2.6):
resolution: {integrity: sha512-MoDVjvi0AgYYSY9QR3ff2TOKk9IVVfh+BInmLCrwejSE2q8N3p/vSI+N1GKLEfW9mqn1zdI95ev17Z12Avwv7A==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
dev: false
/@tiptap/extension-italic@2.2.4(@tiptap/core@2.2.4):
resolution: {integrity: sha512-qIhGNvWnsQswSgEMRA8jQQjxfkOGNAuNWKEVQX9DPoqAUgknT41hQcAMP8L2+OdACpb2jbVMOO5Cy5Dof2L8/w==}
/@tiptap/extension-italic@2.2.6(@tiptap/core@2.2.6):
resolution: {integrity: sha512-wB+Y6p2gbc1f2hKYeGNXRQ7P2xi3+JzD3PjSyC9Ss/yyujZhxSOtxBF0nzFXdI+7nmN0Qm4inwPDU/DVrIPb+A==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
dev: false
/@tiptap/extension-link@2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4):
resolution: {integrity: sha512-Qsx0cFZm4dxbkToXs5TcXbSoUdicv8db1gV1DYIZdETqjBm4wFjlzCUP7hPHFlvNfeSy1BzAMRt+RpeuiwvxWQ==}
/@tiptap/extension-link@2.2.6(@tiptap/core@2.2.6)(@tiptap/pm@2.2.6):
resolution: {integrity: sha512-Jj0oXSfQ8gZlzzwd669B8sEKBkoK8xV31Lu55tRv9PKHSU6p9CUqBuxY8qR+cquCtO28f3u0cdl5o4HzeIUL5A==}
peerDependencies:
'@tiptap/core': ^2.0.0
'@tiptap/pm': ^2.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/pm': 2.2.4
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
'@tiptap/pm': 2.2.6
linkifyjs: 4.1.1
dev: false
/@tiptap/extension-list-item@2.2.4(@tiptap/core@2.2.4):
resolution: {integrity: sha512-lPLKGKsHpM9ClUa8n7GEUn8pG6HCYU0vFruIy3l2t6jZdHkrgBnYtVGMZ13K8UDnj/hlAlccxku0D0P4mA1Vrg==}
/@tiptap/extension-list-item@2.2.6(@tiptap/core@2.2.6):
resolution: {integrity: sha512-3xig1q0jtOyV49TkAbvxBoOJdNypwq6vLYerfblhj6dK+hIIZUM33S+SmGl2+QaB25VwyeSHjiCvrJjB9PKWHQ==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
dev: false
/@tiptap/extension-ordered-list@2.2.4(@tiptap/core@2.2.4):
resolution: {integrity: sha512-TpFy140O9Af1JciXt+xwqYUXxcJ6YG8zi/B5UDJujp+FH5sCmlYYBBnWxiFMhVaj6yEmA2eafu1qUkic/1X5Aw==}
/@tiptap/extension-ordered-list@2.2.6(@tiptap/core@2.2.6):
resolution: {integrity: sha512-h4HOv+TAMnoueh3CzUY2/Pp2n8eCdEQtKSfiMtHSO3NTTSlst0XEvq+3Z4K81F+ni3baXc+JUALP5dRVpI4apQ==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
dev: false
/@tiptap/extension-paragraph@2.2.4(@tiptap/core@2.2.4):
resolution: {integrity: sha512-m1KwyvTNJxsq7StbspbcOhxO4Wk4YpElDbqOouWi+H4c8azdpI5Pn96ZqhFeE9bSyjByg6OcB/wqoJsLbeFWdQ==}
/@tiptap/extension-paragraph@2.2.6(@tiptap/core@2.2.6):
resolution: {integrity: sha512-M2rM3pfzziUb7xS9x2dANCokO89okbqg5IqU4VPkZhk0Mfq9czyCatt58TYkAsE3ccsGhdTYtFBTDeKBtsHUqg==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
dev: false
/@tiptap/extension-placeholder@2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4):
resolution: {integrity: sha512-UL4Fn9T33SoS7vdI3NnSxBJVeGUIgCIutgXZZ5J8CkcRoDIeS78z492z+6J+qGctHwTd0xUL5NzNJI82HfiTdg==}
/@tiptap/extension-placeholder@2.2.6(@tiptap/core@2.2.6)(@tiptap/pm@2.2.6):
resolution: {integrity: sha512-eHPadx48gneDD8bTZeRnG4hOvRvctBPY5JlA03QQIoarrbmqsyv3zZSW8smBsRai9kwbXLhytdEFGruTKV9PjQ==}
peerDependencies:
'@tiptap/core': ^2.0.0
'@tiptap/pm': ^2.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/pm': 2.2.4
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
'@tiptap/pm': 2.2.6
dev: false
/@tiptap/extension-strike@2.2.4(@tiptap/core@2.2.4):
resolution: {integrity: sha512-/a2EwQgA+PpG17V2tVRspcrIY0SN3blwcgM7lxdW4aucGkqSKnf7+91dkhQEwCZ//o8kv9mBCyRoCUcGy6S5Xg==}
/@tiptap/extension-strike@2.2.6(@tiptap/core@2.2.6):
resolution: {integrity: sha512-0fRh0SwPgqi+ZKD2NpRrmIAHdsgf27ddEUfvlIuFG5b9zqFa6pRZGpXW/6LyBwU0+0bkjW8/Wg3otyaRGjvZGw==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
dev: false
/@tiptap/extension-table-cell@2.2.4(@tiptap/core@2.2.4):
resolution: {integrity: sha512-Dt3FjNjM1Mh2BgEjvx5+s96DiJpC82BdMtqicO3z/Pk0X1bn70ocMuURNR7upfRYI+9YbE3+3wBk/vY1yf7ydw==}
/@tiptap/extension-table-cell@2.2.6(@tiptap/core@2.2.6):
resolution: {integrity: sha512-i/O27W0O2Bp+txeYUz8thZJaIHTb8BvPseYENiYBs9qOjpwiqXgQXVa5wTAm93GtHoK2ifs50a/xp2CIDTYsgw==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
dev: false
/@tiptap/extension-table-header@2.2.4(@tiptap/core@2.2.4):
resolution: {integrity: sha512-epRrB/468yGvKb/n6lW3VXWUpjMp3+mKxGWfsXLQncGb1leRbqkgQgsUUYuIEosk+70bjzz6lbfHKQBz408s3g==}
/@tiptap/extension-table-header@2.2.6(@tiptap/core@2.2.6):
resolution: {integrity: sha512-1IFGBVV/wJwO7aM8u6gN90OmT35ulJoNFQEssoxrx8g+tj+mZy5vXq2JGPqFg7AVjIpek1DJrzzcXGnbtXS57w==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
dev: false
/@tiptap/extension-table-row@2.2.4(@tiptap/core@2.2.4):
resolution: {integrity: sha512-VItZ0byY5CVMrcSRrdBjhElHxIq1JQAAli+o3UNYM5rLKHKx4ezeBCUh80wIKvmaAxWsLMs8h/t4crxUE8dyHA==}
/@tiptap/extension-table-row@2.2.6(@tiptap/core@2.2.6):
resolution: {integrity: sha512-sUTpzzR6zR6iFLXszK4qak0/qd8Gjz9/mnj9sdRJhXtVT+VPssU0iVBMyIfn01nnoUzMPpakcO1Vd5dSJNhoVg==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
dev: false
/@tiptap/extension-table@2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4):
resolution: {integrity: sha512-9aEFitlcSi33I6a8nGXQ2uNBEx0urYw/C9W4Ygl49YiMzLXtXDBTqSIzVpas1KkKOSN8yaOqB2UiQdbtqGV8fw==}
/@tiptap/extension-table@2.2.6(@tiptap/core@2.2.6)(@tiptap/pm@2.2.6):
resolution: {integrity: sha512-O26Uj/A9AR8QJZvjSaTCI6Jpuc7MD8ul0vjqJ9EKulzMaAJbiOJidcBPr7rhVxAIRrXQz+DQW+zFbZvTj5i5mQ==}
peerDependencies:
'@tiptap/core': ^2.0.0
'@tiptap/pm': ^2.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/pm': 2.2.4
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
'@tiptap/pm': 2.2.6
dev: false
/@tiptap/extension-task-item@2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4):
resolution: {integrity: sha512-Ixzv7bPcgrWelSD0Jy6yAlHxmGWpD5lPt6Ey4POYy7u98duyUFOBMHLcsV24ipQsRacuB+htgmuqOrkiL+hg7w==}
/@tiptap/extension-task-item@2.2.6(@tiptap/core@2.2.6)(@tiptap/pm@2.2.6):
resolution: {integrity: sha512-8JJI9JBDdU5optPZVmlpCk5eOXv1p8bsFQYgHmIaHmDvsWvNlRph1LBYEAyiImBwVgZp+M8FI4KD5rNdALhelw==}
peerDependencies:
'@tiptap/core': ^2.0.0
'@tiptap/pm': ^2.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/pm': 2.2.4
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
'@tiptap/pm': 2.2.6
dev: false
/@tiptap/extension-task-list@2.2.4(@tiptap/core@2.2.4):
resolution: {integrity: sha512-URh1Yzj/YZBOMkobK4/U8s1QYwIIqHm4b0YadLPPZx9IzTjyV/2bvIakphCmBtxWxeTXW5TbO9eNod3qatq21w==}
/@tiptap/extension-task-list@2.2.6(@tiptap/core@2.2.6):
resolution: {integrity: sha512-4ofrnm0jwk9OC5QH+b5wR4ck+J5wi+uOq7Qm2234GAqohjOzr4ndae68NSIv2XviDk04askCoZc+yZBxNwkhmQ==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
dev: false
/@tiptap/extension-text@2.2.4(@tiptap/core@2.2.4):
resolution: {integrity: sha512-NlKHMPnRJXB+0AGtDlU0P2Pg+SdesA2lMMd7JzDUgJgL7pX2jOb8eUqSeOjFKuSzFSqYfH6C3o6mQiNhuQMv+g==}
/@tiptap/extension-text@2.2.6(@tiptap/core@2.2.6):
resolution: {integrity: sha512-wVpo0I/2tJsBK/2yNZfRXOsThOfHCdTY+FDNO/USx9MCJaJ3LPs3H1AuGO549zNmZgkD+1MqcZqrYt9n4i03cw==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
dev: false
/@tiptap/extension-typography@2.2.4(@tiptap/core@2.2.4):
resolution: {integrity: sha512-1gmvr74uk44Wzxd6QI+dKz/M//xaD15yYwUtcRc9+ohbfvCqtRl3XDVoxl3MQmDMljcui5kMMaRcFNvW1Kujvg==}
/@tiptap/extension-typography@2.2.6(@tiptap/core@2.2.6):
resolution: {integrity: sha512-S8rvwSLq6IW1pEo/1Gcyez2tnXvUbwFBsAGNKPzcX/0HvlgXYWdE+qcjT3yoY/gAHRdvqfAP1Cd4Up7O3f1//A==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
dev: false
/@tiptap/extension-underline@2.2.4(@tiptap/core@2.2.4):
resolution: {integrity: sha512-jCHgIJMwtXlGHVy/j3L8/QvglHCikkHJw7YS5yf8E/8HlPh1tZfVy/IxdgacDOpUN30X+UPJZQDdVKymafgwdA==}
/@tiptap/extension-underline@2.2.6(@tiptap/core@2.2.6):
resolution: {integrity: sha512-RaYEWuBHS6VQ2KXk+pP2b3xDN4vxmTb7+CF84mumR+CJUK4uAx01IDBUof+h/a4Sa58suNLQ6eHY33NmxPppnQ==}
peerDependencies:
'@tiptap/core': ^2.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
dev: false
/@tiptap/pm@2.2.4:
resolution: {integrity: sha512-Po0klR165zgtinhVp1nwMubjyKx6gAY9kH3IzcniYLCkqhPgiqnAcCr61TBpp4hfK8YURBS4ihvCB1dyfCyY8A==}
/@tiptap/pm@2.2.6:
resolution: {integrity: sha512-gSKJtsaMLiYNwcAdwgnlTVM9zHiHy6/WgJvXFmIoOnUgvMN10Bbr+KO5hoffwgLCCSpIWw6qJoVKMpHBexLm0w==}
dependencies:
prosemirror-changeset: 2.2.1
prosemirror-collab: 1.3.1
@ -3495,27 +3495,27 @@ packages:
prosemirror-view: 1.32.7
dev: false
/@tiptap/suggestion@2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4):
resolution: {integrity: sha512-g6HHsKM6K3asW+ZlwMYyLCRqCRaswoliZOQofY4iZt5ru5HNTSzm3YW4XSyW5RGXJIuc319yyrOFgtJ3Fyu5rQ==}
/@tiptap/suggestion@2.2.6(@tiptap/core@2.2.6)(@tiptap/pm@2.2.6):
resolution: {integrity: sha512-/pooAwvUkUB1gKxe4AHAvaNpAvL3FsZrIBJKYR0PF6BNROOHiu4IZY0Zy27ea4vmj72pYrMVlTmeYtSGPzrICg==}
peerDependencies:
'@tiptap/core': ^2.0.0
'@tiptap/pm': ^2.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/pm': 2.2.4
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
'@tiptap/pm': 2.2.6
dev: false
/@tiptap/vue-3@2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4)(vue@3.4.21):
resolution: {integrity: sha512-6Rue56OUmDl/OT07QcLsH1UvYGUmV8OFSDCrLrUyku/2lAYHwHz6+KhAB5paZt70nEGIw03G1KCT074negj6NQ==}
/@tiptap/vue-3@2.2.6(@tiptap/core@2.2.6)(@tiptap/pm@2.2.6)(vue@3.4.21):
resolution: {integrity: sha512-F8hC133AF/48cvZReJun5TV35NtRcoH8LVEGsuHGNkH7BvJjXAciomvEO4HlSfqz1YT8M/hzRGNg1/R6ixv3bw==}
peerDependencies:
'@tiptap/core': ^2.0.0
'@tiptap/pm': ^2.0.0
vue: ^3.0.0
dependencies:
'@tiptap/core': 2.2.4(@tiptap/pm@2.2.4)
'@tiptap/extension-bubble-menu': 2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4)
'@tiptap/extension-floating-menu': 2.2.4(@tiptap/core@2.2.4)(@tiptap/pm@2.2.4)
'@tiptap/pm': 2.2.4
'@tiptap/core': 2.2.6(@tiptap/pm@2.2.6)
'@tiptap/extension-bubble-menu': 2.2.6(@tiptap/core@2.2.6)(@tiptap/pm@2.2.6)
'@tiptap/extension-floating-menu': 2.2.6(@tiptap/core@2.2.6)(@tiptap/pm@2.2.6)
'@tiptap/pm': 2.2.6
vue: 3.4.21(typescript@5.4.4)
dev: false
@ -3965,7 +3965,7 @@ packages:
'@vue/shared': 3.4.21
entities: 4.5.0
estree-walker: 2.0.2
source-map-js: 1.0.2
source-map-js: 1.2.0
/@vue/compiler-dom@3.4.21:
resolution: {integrity: sha512-IZC6FKowtT1sl0CR5DpXSiEB5ayw75oT2bma1BEhV7RRR1+cfwLrxc2Z8Zq/RGFzJ8w5r9QtCOvTjQgdn0IKmA==}
@ -5307,8 +5307,8 @@ packages:
domelementtype: 2.3.0
dev: true
/dompurify@3.0.11:
resolution: {integrity: sha512-Fan4uMuyB26gFV3ovPoEoQbxRRPfTu3CvImyZnhGq5fsIEO+gEFLp45ISFt+kQBWsK5ulDdT0oV28jS1UrwQLg==}
/dompurify@3.1.0:
resolution: {integrity: sha512-yoU4rhgPKCo+p5UrWWWNKiIq+ToGqmVVhk0PmMYBK4kRsR3/qhemNFL8f6CFmBd4gMwm3F4T7HBoydP5uY07fA==}
dev: false
/domutils@2.8.0:
@ -9000,10 +9000,6 @@ packages:
resolution: {integrity: sha512-FJF5jgdfvoKn1MAKSdGs33bIqLi3LmsgVTliuX6iITj834F+JRQZN90Z93yql8h0K2t0RwDPBmxwlbZfDcxNZA==}
dev: false
/source-map-js@1.0.2:
resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
engines: {node: '>=0.10.0'}
/source-map-js@1.2.0:
resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==}
engines: {node: '>=0.10.0'}
@ -9995,14 +9991,14 @@ packages:
vue: 3.4.21(typescript@5.4.4)
dev: false
/vue-i18n@9.10.2(vue@3.4.21):
resolution: {integrity: sha512-ECJ8RIFd+3c1d3m1pctQ6ywG5Yj8Efy1oYoAKQ9neRdkLbuKLVeW4gaY5HPkD/9ssf1pOnUrmIFjx2/gkGxmEw==}
/vue-i18n@9.11.0(vue@3.4.21):
resolution: {integrity: sha512-vU4gY6lu8Pdfs9BgKGiDAJmFDf88cceR47KcSB0VW4xJzUrXR/7qwqM7A8dQ2nedhoIDxoOm5Ro4pFd2KvJqbA==}
engines: {node: '>= 16'}
peerDependencies:
vue: ^3.0.0
dependencies:
'@intlify/core-base': 9.10.2
'@intlify/shared': 9.10.2
'@intlify/core-base': 9.11.0
'@intlify/shared': 9.11.0
'@vue/devtools-api': 6.6.1
vue: 3.4.21(typescript@5.4.4)
dev: false

4
go.mod
View File

@ -50,6 +50,7 @@ require (
github.com/lib/pq v1.10.9
github.com/magefile/mage v1.15.0
github.com/mattn/go-sqlite3 v1.14.22
github.com/microcosm-cc/bluemonday v1.0.26
github.com/olekukonko/tablewriter v0.0.5
github.com/op/go-logging v0.0.0-20160315200505-970db520ece7
github.com/pquerna/otp v1.4.0
@ -66,7 +67,7 @@ require (
github.com/typesense/typesense-go v1.0.0
github.com/ulule/limiter/v3 v3.11.2
github.com/wneessen/go-mail v0.4.0
github.com/yuin/goldmark v1.7.0
github.com/yuin/goldmark v1.7.1
golang.org/x/crypto v0.22.0
golang.org/x/image v0.15.0
golang.org/x/oauth2 v0.18.0
@ -139,7 +140,6 @@ require (
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mattn/go-runewidth v0.0.15 // indirect
github.com/microcosm-cc/bluemonday v1.0.26 // indirect
github.com/mitchellh/mapstructure v1.5.0 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect

2
go.sum
View File

@ -539,6 +539,8 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
github.com/yuin/goldmark v1.7.0 h1:EfOIvIMZIzHdB/R/zVrikYLPPwJlfMcNczJFMs1m6sA=
github.com/yuin/goldmark v1.7.0/go.mod h1:uzxRWxtg69N339t3louHJ7+O03ezfj6PlliRlaOzY1E=
github.com/yuin/goldmark v1.7.1 h1:3bajkSilaCbjdKVsKdZjZCLBNPL9pYzrCakKaf4U49U=
github.com/yuin/goldmark v1.7.1/go.mod h1:uzxRWxtg69N339t3louHJ7+O03ezfj6PlliRlaOzY1E=
github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q=
github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0=
go.mongodb.org/mongo-driver v1.11.4/go.mod h1:PTSz5yu21bkT/wXpkS7WR5f0ddqw5quethTUn9WM+2g=

View File

@ -17,12 +17,14 @@
package handler
import (
"encoding/json"
"code.vikunja.io/api/pkg/config"
"code.vikunja.io/api/pkg/events"
"code.vikunja.io/api/pkg/log"
"code.vikunja.io/api/pkg/modules/migration"
"code.vikunja.io/api/pkg/notifications"
"encoding/json"
"fmt"
"github.com/getsentry/sentry-go"
"github.com/ThreeDotsLabs/watermill/message"
)
@ -31,6 +33,16 @@ func RegisterListeners() {
events.RegisterListener((&MigrationRequestedEvent{}).Name(), &MigrationListener{})
}
// Only used for sentry
type migrationFailedError struct {
MigratorKind string
OriginalError error
}
func (m *migrationFailedError) Error() string {
return fmt.Sprintf("migration from %s failed, original error message was: %s", m.MigratorKind, m.OriginalError.Error())
}
// MigrationListener represents a listener
type MigrationListener struct {
}
@ -59,13 +71,46 @@ func (s *MigrationListener) Handle(msg *message.Message) (err error) {
ms := event.Migrator.(migration.Migrator)
m, err := migration.StartMigration(ms, event.User)
m, err := migrateInListener(ms, event)
if err != nil {
log.Errorf("[Migration] Migration %d from %s for user %d failed. Error was: %s", m.ID, event.MigratorKind, event.User.ID, err.Error())
var nerr error
if config.SentryEnabled.GetBool() {
nerr = notifications.Notify(event.User, &MigrationFailedReportedNotification{
MigratorName: ms.Name(),
})
sentry.CaptureException(&migrationFailedError{
MigratorKind: event.MigratorKind,
OriginalError: err,
})
} else {
nerr = notifications.Notify(event.User, &MigrationFailedNotification{
MigratorName: ms.Name(),
Error: err,
})
}
if nerr != nil {
log.Errorf("[Migration] Could not sent failed migration notification for migration %d to user %d, error was: %s", m.ID, event.User.ID, err.Error())
}
// Still need to finish the migration, otherwise restarting will not work
err = migration.FinishMigration(m)
if err != nil {
log.Errorf("[Migration] Could not finish migration %d for user %d, error was: %s", m.ID, event.User.ID, err.Error())
}
}
return nil // We do not want the queue to restart this job as we've already handled the error.
}
func migrateInListener(ms migration.Migrator, event *MigrationRequestedEvent) (m *migration.Status, err error) {
m, err = migration.StartMigration(ms, event.User)
if err != nil {
return
}
log.Debugf("[Migration] Starting migration %d from %s for user %d", m.ID, event.MigratorKind, event.User.ID)
err = ms.Migrate(event.User)
if err != nil {
return
@ -73,6 +118,7 @@ func (s *MigrationListener) Handle(msg *message.Message) (err error) {
err = migration.FinishMigration(m)
if err != nil {
log.Errorf("[Migration] Could not finish migration %d for user %d, error was: %s", m.ID, event.User.ID, err.Error())
return
}
@ -80,6 +126,7 @@ func (s *MigrationListener) Handle(msg *message.Message) (err error) {
MigratorName: ms.Name(),
})
if err != nil {
log.Errorf("[Migration] Could not sent migration success notification for migration %d to user %d, error was: %s", m.ID, event.User.ID, err.Error())
return
}

View File

@ -49,3 +49,57 @@ func (n *MigrationDoneNotification) ToDB() interface{} {
func (n *MigrationDoneNotification) Name() string {
return "migration.done"
}
// MigrationFailedReportedNotification represents a MigrationFailedReportedNotification notification
type MigrationFailedReportedNotification struct {
MigratorName string
}
// ToMail returns the mail notification for MigrationFailedReportedNotification
func (n *MigrationFailedReportedNotification) ToMail() *notifications.Mail {
kind := cases.Title(language.English).String(n.MigratorName)
return notifications.NewMail().
Subject("The migration from " + kind + " to Vikunja was has failed").
Line("Looks like the move from " + kind + " didn't go as planned this time.").
Line("No worries, though! Just give it another shot by starting over the same way you did before. Sometimes, these hiccups happen because of glitches on " + kind + "'s end, but trying again often does the trick.").
Line("We've got the error message on our radar and are on it to get it sorted out soon.")
}
// ToDB returns the MigrationFailedReportedNotification notification in a format which can be saved in the db
func (n *MigrationFailedReportedNotification) ToDB() interface{} {
return nil
}
// Name returns the name of the notification
func (n *MigrationFailedReportedNotification) Name() string {
return "migration.failed.reported"
}
// MigrationFailedNotification represents a MigrationFailedNotification notification
type MigrationFailedNotification struct {
MigratorName string
Error error
}
// ToMail returns the mail notification for MigrationFailedNotification
func (n *MigrationFailedNotification) ToMail() *notifications.Mail {
kind := cases.Title(language.English).String(n.MigratorName)
return notifications.NewMail().
Subject("The migration from " + kind + " to Vikunja was has failed").
Line("Looks like the move from " + kind + " didn't go as planned this time.").
Line("No worries, though! Just give it another shot by starting over the same way you did before. Sometimes, these hiccups happen because of glitches on " + kind + "'s end, but trying again often does the trick.").
Line("We bumped into a little error along the way: `" + n.Error.Error() + "`.").
Line("Please drop us a note about this [in the forum](https://community.vikunja.io/) or any of the usual places so that we can take a look at why it failed.")
}
// ToDB returns the MigrationFailedNotification notification in a format which can be saved in the db
func (n *MigrationFailedNotification) ToDB() interface{} {
return nil
}
// Name returns the name of the notification
func (n *MigrationFailedNotification) Name() string {
return "migration.failed"
}