From 8bc3ac5c3bf624c094cf8a8a591869ffb02e7fb2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 2 Nov 2019 05:08:11 +0000 Subject: [PATCH 01/30] Bump lodash.mergewith from 4.6.1 to 4.6.2 Bumps [lodash.mergewith](https://github.com/lodash/lodash) from 4.6.1 to 4.6.2. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/commits) Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index e76ec58..abf9e5a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6415,9 +6415,9 @@ "dev": true }, "lodash.mergewith": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", - "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==" + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz", + "integrity": "sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==" }, "lodash.tail": { "version": "4.1.1", From b6bb17282cc6b42dc1e385c3561f9ef445de9947 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 13 Mar 2020 21:21:47 +0000 Subject: [PATCH 02/30] Bump acorn from 6.1.1 to 6.4.1 Bumps [acorn](https://github.com/acornjs/acorn) from 6.1.1 to 6.4.1. - [Release notes](https://github.com/acornjs/acorn/releases) - [Commits](https://github.com/acornjs/acorn/compare/6.1.1...6.4.1) Signed-off-by: dependabot[bot] --- package-lock.json | 47 +++++++++++++++++++++++++++++++++-------------- 1 file changed, 33 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6f6f075..5547e31 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1319,9 +1319,9 @@ } }, "acorn": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.1.1.tgz", - "integrity": "sha512-jPTiwtOxaHNaAPg/dmrJ/beuzLRnXtB0kQPQ8JpotKJgTB6rX6c8mlf315941pyjBSaPg8NHXS9fhP4u17DpGA==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", "dev": true }, "acorn-dynamic-import": { @@ -4557,7 +4557,8 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -4578,12 +4579,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4598,17 +4601,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -4725,7 +4731,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -4737,6 +4744,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -4751,6 +4759,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -4758,12 +4767,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.3.5", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -4782,6 +4793,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -4862,7 +4874,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -4874,6 +4887,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -4959,7 +4973,8 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -4995,6 +5010,7 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -5014,6 +5030,7 @@ "version": "3.0.1", "bundled": true, "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -5057,12 +5074,14 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "yallist": { "version": "3.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true } } }, From f9402f5aaacb3373926d42c5ebc8cbcb16490e89 Mon Sep 17 00:00:00 2001 From: Tony Stipanic Date: Sun, 29 Mar 2020 18:28:39 +0200 Subject: [PATCH 03/30] feat: Sticker pack list in sticker picker widget This allows the user to jump to a specific sticker pack in the sticker picker. The list hides and shows when scrolling so no view size is lost. It also contains a quick shortcut to the sticker settings. --- .../sticker-picker.component.html | 12 +++- .../sticker-picker.component.scss | 29 +++++++++ .../sticker-picker.component.ts | 63 +++++++++++++++++++ 3 files changed, 103 insertions(+), 1 deletion(-) diff --git a/web/app/widget-wrappers/sticker-picker/sticker-picker.component.html b/web/app/widget-wrappers/sticker-picker/sticker-picker.component.html index efe1ad8..9d461af 100644 --- a/web/app/widget-wrappers/sticker-picker/sticker-picker.component.html +++ b/web/app/widget-wrappers/sticker-picker/sticker-picker.component.html @@ -14,7 +14,7 @@
-
+
{{ pack.displayName }}
+
+
+ +
+
+ +
+
\ No newline at end of file diff --git a/web/app/widget-wrappers/sticker-picker/sticker-picker.component.scss b/web/app/widget-wrappers/sticker-picker/sticker-picker.component.scss index aec112a..6ccaaf2 100644 --- a/web/app/widget-wrappers/sticker-picker/sticker-picker.component.scss +++ b/web/app/widget-wrappers/sticker-picker/sticker-picker.component.scss @@ -43,6 +43,7 @@ .sticker-picker { margin: 15px 15px 30px; + padding-bottom: 40px; .sticker-pack { .header { @@ -92,5 +93,33 @@ } } } + + .sticker-pack-list { + position: fixed; + left: 0; + right: 0; + bottom: 0; + background-color: themed(stickerPickerControlBgColor); + border-top: 1px solid themed(stickerPickerShadowColor); + overflow-x: auto; + white-space: nowrap; + padding: 1px 15px; + + .sticker-pack-list-item { + display: inline-block; + cursor: pointer; + padding: 0 3px; + } + + .sticker-pack-list-config { + display: inline-block; + cursor: pointer; + height: 40px; + width: 40px; + padding: 3px; + text-align: center; + vertical-align: middle; + } + } } } \ No newline at end of file diff --git a/web/app/widget-wrappers/sticker-picker/sticker-picker.component.ts b/web/app/widget-wrappers/sticker-picker/sticker-picker.component.ts index 11f705d..c6dde11 100644 --- a/web/app/widget-wrappers/sticker-picker/sticker-picker.component.ts +++ b/web/app/widget-wrappers/sticker-picker/sticker-picker.component.ts @@ -1,6 +1,22 @@ +import { + animate, + state, + style, + transition, + trigger +} from '@angular/animations'; import { ChangeDetectorRef, Component, OnDestroy, OnInit } from "@angular/core"; import { ActivatedRoute } from "@angular/router"; import { CapableWidget, WIDGET_API_VERSION_OPENID } from "../capable-widget"; +import { fromEvent } from 'rxjs'; +import { + distinctUntilChanged, + filter, + map, + pairwise, + share, + throttleTime +} from 'rxjs/operators'; import { Subscription } from "rxjs/Subscription"; import { ScalarWidgetApi } from "../../shared/services/scalar/scalar-widget.api"; import { StickerApiService } from "../../shared/services/integrations/sticker-api.service"; @@ -14,10 +30,25 @@ import { WIDGET_STICKER_PICKER } from "../../shared/models/widget"; selector: "my-generic-widget-wrapper", templateUrl: "sticker-picker.component.html", styleUrls: ["sticker-picker.component.scss"], + animations: [ + trigger('hideList', [ + state( + 'hidden', + style({ opacity: 0, transform: 'translateY(100%)' }) + ), + state( + 'visible', + style({ opacity: 1, transform: 'translateY(0)' }) + ), + transition('* => *', animate('200ms ease-in')) + ]) + ] }) + export class StickerPickerWidgetWrapperComponent extends CapableWidget implements OnInit, OnDestroy { public isLoading = true; + public isListVisible = true; public authError = false; public packs: FE_UserStickerPack[]; @@ -68,6 +99,28 @@ export class StickerPickerWidgetWrapperComponent extends CapableWidget implement if (this.stickerWidgetApiSubscription) this.stickerWidgetApiSubscription.unsubscribe(); } + public ngAfterViewInit() { + const scroll$ = fromEvent(window, 'scroll').pipe( + throttleTime(10), + map(() => window.pageYOffset), + pairwise(), + map(([y1, y2]): string => (y2 < y1 ? 'up' : 'down')), + distinctUntilChanged(), + share() + ); + + const scrollUp$ = scroll$.pipe( + filter(direction => direction === 'up') + ); + + const scrollDown = scroll$.pipe( + filter(direction => direction === 'down') + ); + + scrollUp$.subscribe(() => (this.isListVisible = true)); + scrollDown.subscribe(() => (this.isListVisible = false)); + } + protected onSupportedVersionsFound(): void { super.onSupportedVersionsFound(); @@ -133,6 +186,16 @@ export class StickerPickerWidgetWrapperComponent extends CapableWidget implement } } + public scrollHorizontal(event: WheelEvent): void { + document.getElementsByClassName('sticker-pack-list')[0].scrollLeft += event.deltaY; + event.preventDefault(); + } + + public scrollToPack(id: string) { + const el = document.getElementById(id); + el.scrollIntoView({behavior: 'smooth'}); + } + public sendSticker(sticker: FE_Sticker, pack: FE_UserStickerPack) { ScalarWidgetApi.sendSticker(sticker, pack); } From 2634f58ee517923c33b0a69dddeb6d3535649f95 Mon Sep 17 00:00:00 2001 From: Tim Schumacher Date: Fri, 20 Mar 2020 21:22:41 +0100 Subject: [PATCH 04/30] refactor: reduce the size of the docker container --- Dockerfile | 43 +++-- docker-entrypoint.sh | 5 +- package-lock.json | 320 +++++++++++++++++------------------- package.json | 2 +- scripts/convert-newlines.js | 23 +++ 5 files changed, 193 insertions(+), 200 deletions(-) create mode 100644 scripts/convert-newlines.js diff --git a/Dockerfile b/Dockerfile index 9ae7b47..161371e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,47 +1,44 @@ -FROM node:10.16.0-alpine +FROM node:12.16.1-alpine AS builder LABEL maintainer="Andreas Peters " #Upstream URL: https://git.aventer.biz/AVENTER/docker-matrix-dimension -RUN apk add dos2unix --no-cache --repository http://dl-3.alpinelinux.org/alpine/edge/community/ --allow-untrusted +WORKDIR /home/node/matrix-dimension -RUN apk update && \ - apk add --no-cache bash gcc python make g++ sqlite && \ - mkdir /home/node/.npm-global && \ - mkdir -p /home/node/app +RUN mkdir -p /home/node/matrix-dimension -COPY ./docker-entrypoint.sh / COPY . /home/node/matrix-dimension - -RUN chown -R node:node /home/node/app && \ - chown -R node:node /home/node/.npm-global && \ - chown -R node:node /home/node/matrix-dimension +RUN chown -R node /home/node/matrix-dimension USER node -ENV PATH=/home/node/.npm-global/bin:$PATH -ENV NPM_CONFIG_PREFIX=/home/node/.npm-global +RUN npm clean-install && \ + node /home/node/matrix-dimension/scripts/convert-newlines.js /home/node/matrix-dimension/docker-entrypoint.sh && \ + NODE_ENV=production npm run-script build -RUN cd /home/node/matrix-dimension && \ - npm install -D wd rimraf webpack webpack-command sqlite3 && \ - NODE_ENV=production npm run-script build:web && npm run-script build:app +FROM node:12.16.1-alpine -USER root +WORKDIR /home/node/matrix-dimension -RUN apk del gcc make g++ && \ - rm /home/node/matrix-dimension/Dockerfile && \ - rm /home/node/matrix-dimension/docker-entrypoint.sh && \ - dos2unix /docker-entrypoint.sh +COPY --from=builder /home/node/matrix-dimension/docker-entrypoint.sh / + +COPY --from=builder /home/node/matrix-dimension/build /home/node/matrix-dimension/build +COPY --from=builder /home/node/matrix-dimension/package* /home/node/matrix-dimension/ +COPY --from=builder /home/node/matrix-dimension/config /home/node/matrix-dimension/config + +RUN chown -R node /home/node/matrix-dimension USER node +RUN npm clean-install --production + VOLUME ["/data"] # Ensure the database doesn't get lost to the container ENV DIMENSION_DB_PATH=/data/dimension.db EXPOSE 8184 -#CMD ["/bin/sh"] +# CMD ["/bin/sh"] ENTRYPOINT ["/docker-entrypoint.sh"] - + diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index ef8194b..46a3ba5 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -1,7 +1,4 @@ -#!/bin/bash -set -e - -cd /home/node/matrix-dimension/ +#!/bin/sh if [ -f "/data/config.yaml" ]; then cp /data/config.yaml /home/node/matrix-dimension/config/production.yaml diff --git a/package-lock.json b/package-lock.json index 6f6f075..a3afe40 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1869,45 +1869,12 @@ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "requires": { - "file-uri-to-path": "1.0.0" - } - }, "bl": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", - "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.1.tgz", + "integrity": "sha512-FL/TdvchukRCuWVxT0YMO/7+L5TNeNrVFvRU2IY63aUyv9mpt8splf2NEr6qXtPo5fya5a66YohQKvGNmLrWNA==", "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } + "readable-stream": "^3.4.0" } }, "block-stream": { @@ -2118,25 +2085,6 @@ "isarray": "^1.0.0" } }, - "buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "requires": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" - }, - "buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" - }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", @@ -3331,11 +3279,11 @@ "dev": true }, "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", + "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", "requires": { - "mimic-response": "^1.0.0" + "mimic-response": "^2.0.0" } }, "deep-equal": { @@ -4228,11 +4176,6 @@ "schema-utils": "^1.0.0" } }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -4471,11 +4414,6 @@ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, - "fs-copy-file-sync": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/fs-copy-file-sync/-/fs-copy-file-sync-1.1.1.tgz", - "integrity": "sha512-2QY5eeqVv4m2PfyMiEuy9adxNP+ajf+8AR05cEi+OAzPcOj90hvFImeZhTmKLBgSd9EvG33jsD7ZRxsx9dThkQ==" - }, "fs-extra": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", @@ -4557,7 +4495,8 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -4578,12 +4517,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4598,17 +4539,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -4725,7 +4669,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -4737,6 +4682,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -4751,6 +4697,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -4758,12 +4705,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.3.5", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -4782,6 +4731,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -4862,7 +4812,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -4874,6 +4825,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -4959,7 +4911,8 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -4995,6 +4948,7 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -5014,6 +4968,7 @@ "version": "3.0.1", "bundled": true, "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -5057,12 +5012,14 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "yallist": { "version": "3.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true } } }, @@ -6770,9 +6727,9 @@ "dev": true }, "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", + "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==" }, "mini-css-extract-plugin": { "version": "0.7.0", @@ -7035,9 +6992,9 @@ } }, "napi-build-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.1.tgz", - "integrity": "sha512-boQj1WFgQH3v4clhu3mTNfP+vOBxorDlE8EKiMjUlLG3C4qAESnn9AxIOkFgTR2c9LtzNjPrjS60cT27ZKBhaA==" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" }, "needle": { "version": "2.4.0", @@ -7117,17 +7074,17 @@ } }, "node-abi": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.9.0.tgz", - "integrity": "sha512-jmEOvv0eanWjhX8dX1pmjb7oJl1U1oR4FOh0b2GnvALwSYoOdU7sj+kLDSAyjo4pfC9aj/IxkloxdLJQhSSQBA==", + "version": "2.15.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.15.0.tgz", + "integrity": "sha512-FeLpTS0F39U7hHZU1srAK4Vx+5AHNVOTP+hxBNQknR/54laTHSFIJkDWDqiquY1LeLUgTfPN7sLPhMubx0PLAg==", "requires": { "semver": "^5.4.1" }, "dependencies": { "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" } } }, @@ -9455,9 +9412,9 @@ } }, "prebuild-install": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.0.tgz", - "integrity": "sha512-aaLVANlj4HgZweKttFNUVNRxDukytuIuxeK2boIMHjagNJCiVKWFsKF4tCE3ql3GbrD2tExPQ7/pwtEJcHNZeg==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.3.tgz", + "integrity": "sha512-GV+nsUXuPW2p8Zy7SarF/2W/oiK8bFQgJcncoJ0d7kRpekEA0ftChjfEaF9/Y+QJEc/wFR7RAEa8lYByuUIe2g==", "requires": { "detect-libc": "^1.0.3", "expand-template": "^2.0.3", @@ -9468,23 +9425,21 @@ "node-abi": "^2.7.0", "noop-logger": "^0.1.1", "npmlog": "^4.0.1", - "os-homedir": "^1.0.1", - "pump": "^2.0.1", + "pump": "^3.0.0", "rc": "^1.2.7", - "simple-get": "^2.7.0", - "tar-fs": "^1.13.0", + "simple-get": "^3.0.3", + "tar-fs": "^2.0.0", "tunnel-agent": "^0.6.0", "which-pm-runs": "^1.0.0" }, "dependencies": { - "simple-get": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", - "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "requires": { - "decompress-response": "^3.3.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } } } @@ -9577,6 +9532,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -10666,27 +10622,78 @@ } }, "sharp": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.21.3.tgz", - "integrity": "sha512-5qZk8r+YgfyztLEKkNez20Wynq/Uh1oNyP5T/3gTYwt2lBYGs9iDs5m0yVsZEPm8eVBbAJhS08J1wp/g+Ai1Qw==", + "version": "0.24.1", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.24.1.tgz", + "integrity": "sha512-1Lph6o7D6bU8WrcbG/kT7cVzi2UBi2xrrBfS/WUaD+ZcGd4MZ7+LbtFoGwbMVJH95d5aziBGyExYF4Urm2pjOQ==", "requires": { - "bindings": "^1.3.1", - "color": "^3.1.0", + "color": "^3.1.2", "detect-libc": "^1.0.3", - "fs-copy-file-sync": "^1.1.1", - "nan": "^2.12.1", + "nan": "^2.14.0", "npmlog": "^4.1.2", - "prebuild-install": "^5.2.2", - "semver": "^5.6.0", - "simple-get": "^3.0.3", - "tar": "^4.4.8", + "prebuild-install": "^5.3.3", + "semver": "^7.1.3", + "simple-get": "^3.1.0", + "tar": "^6.0.1", "tunnel-agent": "^0.6.0" }, "dependencies": { + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.1.tgz", + "integrity": "sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w==", + "requires": { + "yallist": "^4.0.0" + } + }, + "minizlib": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.0.tgz", + "integrity": "sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA==", + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mkdirp": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.3.tgz", + "integrity": "sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g==" + }, "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz", + "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==" + }, + "tar": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.1.tgz", + "integrity": "sha512-bKhKrrz2FJJj5s7wynxy/fyxpE0CmCjmOQ1KV4KkgXFWOgoIT/NbTMnB1n+LFNrNk0SSBVGGxcK5AGsyC+pW5Q==", + "requires": { + "chownr": "^1.1.3", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.0", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } } }, @@ -10732,11 +10739,11 @@ "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=" }, "simple-get": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.0.3.tgz", - "integrity": "sha512-Wvre/Jq5vgoz31Z9stYWPLn0PqRqmBDpFSdypAnHu5AvRVCYPRYGnvryNLiXu8GOBNDH82J2FRHUGMjjHUpXFw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", + "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", "requires": { - "decompress-response": "^3.3.0", + "decompress-response": "^4.2.0", "once": "^1.3.1", "simple-concat": "^1.0.0" } @@ -11474,20 +11481,20 @@ } }, "tar-fs": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.3.tgz", - "integrity": "sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.0.tgz", + "integrity": "sha512-vaY0obB6Om/fso8a8vakQBzwholQ7v5+uy+tF3Ozvxv1KNezmVQAiWtcNmMHFSFPqL3dJA8ha6gdtFbfX9mcxA==", "requires": { - "chownr": "^1.0.1", + "chownr": "^1.1.1", "mkdirp": "^0.5.1", - "pump": "^1.0.0", - "tar-stream": "^1.1.2" + "pump": "^3.0.0", + "tar-stream": "^2.0.0" }, "dependencies": { "pump": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", - "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -11496,41 +11503,15 @@ } }, "tar-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", - "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.1.tgz", + "integrity": "sha512-GZjLk64XcE/58qwIc1ZfXGqTSE4OutPMEkfBE/oh9eJ4x1eMRjYkgrLrav7PzddpvIpSJSGi8FgNNYXdB9Vumg==", "requires": { - "bl": "^1.0.0", - "buffer-alloc": "^1.2.0", - "end-of-stream": "^1.0.0", + "bl": "^4.0.1", + "end-of-stream": "^1.4.1", "fs-constants": "^1.0.0", - "readable-stream": "^2.3.0", - "to-buffer": "^1.1.1", - "xtend": "^4.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" } }, "telegraf": { @@ -11663,11 +11644,6 @@ "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", "dev": true }, - "to-buffer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", - "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" - }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", diff --git a/package.json b/package.json index c5fb579..4817d92 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "semver": "^6.0.0", "sequelize": "^5.15.1", "sequelize-typescript": "^1.0.0", - "sharp": "^0.21.1", + "sharp": "^0.24.1", "split-host": "^0.1.1", "spotify-uri": "^1.0.0", "sqlite3": "^4.0.9", diff --git a/scripts/convert-newlines.js b/scripts/convert-newlines.js new file mode 100644 index 0000000..8a837db --- /dev/null +++ b/scripts/convert-newlines.js @@ -0,0 +1,23 @@ +const fs = require('fs'); +const util = require('util'); + +(async function () { + if (process.argv.length !== 3) { + console.error('Wrong number of arguments'); + process.exit(-1); + } + + const filePath = process.argv.pop(); + + const fileExists = await util.promisify(fs.exists)(filePath); + + if (fileExists) { + const file = await fs.promises.readFile(filePath, { encoding: 'utf-8' }); + await fs.promises.writeFile( + filePath, + file + .replace(/\r\n/g, '\n') + .replace(/\r/, '\n'), + ); + } +})(); \ No newline at end of file From 357fdd99dc47ad3fa49f9e3961f7bc014f2312b3 Mon Sep 17 00:00:00 2001 From: Gavin Mogan Date: Fri, 17 Apr 2020 23:08:48 -0700 Subject: [PATCH 05/30] Add support for storing data in postgres --- Dockerfile | 2 +- package-lock.json | 59 ++++++++++++++++++++++++++-------------- package.json | 2 +- src/config.ts | 3 +- src/db/DimensionStore.ts | 22 +++++++++------ 5 files changed, 57 insertions(+), 31 deletions(-) diff --git a/Dockerfile b/Dockerfile index 9ae7b47..b28e470 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,7 +24,7 @@ ENV PATH=/home/node/.npm-global/bin:$PATH ENV NPM_CONFIG_PREFIX=/home/node/.npm-global RUN cd /home/node/matrix-dimension && \ - npm install -D wd rimraf webpack webpack-command sqlite3 && \ + npm install -D wd rimraf webpack webpack-command sqlite3 pg pg-hstore && \ NODE_ENV=production npm run-script build:web && npm run-script build:app USER root diff --git a/package-lock.json b/package-lock.json index 6f6f075..c3384b2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3631,9 +3631,9 @@ } }, "dottie": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/dottie/-/dottie-2.0.1.tgz", - "integrity": "sha512-ch5OQgvGDK2u8pSZeSYAQaV/lczImd7pMJ7BcEPXmnFVjy4yJIzP6CsODJUTH8mg1tyH1Z2abOiuJO3DjZ/GBw==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dottie/-/dottie-2.0.2.tgz", + "integrity": "sha512-fmrwR04lsniq/uSr8yikThDTrM7epXHBAAjH9TbeH3rEA8tdCO7mRzB9hdmdGyJCxF8KERo9CITcm3kGuoyMhg==" }, "duplexify": { "version": "3.7.1", @@ -4557,7 +4557,8 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -4578,12 +4579,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4598,17 +4601,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -4725,7 +4731,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -4737,6 +4744,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -4751,6 +4759,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -4758,12 +4767,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.3.5", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -4782,6 +4793,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -4862,7 +4874,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -4874,6 +4887,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -4959,7 +4973,8 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -4995,6 +5010,7 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -5014,6 +5030,7 @@ "version": "3.0.1", "bundled": true, "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -5057,12 +5074,14 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "yallist": { "version": "3.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true } } }, @@ -6941,9 +6960,9 @@ "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" }, "moment-timezone": { - "version": "0.5.27", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.27.tgz", - "integrity": "sha512-EIKQs7h5sAsjhPCqN6ggx6cEbs94GK050254TIJySD1bzoM5JTYDwAU1IoVOeTOL6Gm27kYJ51/uuvq1kIlrbw==", + "version": "0.5.28", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.28.tgz", + "integrity": "sha512-TDJkZvAyKIVWg5EtVqRzU97w0Rb0YVbfpqyjgu6GwXCAohVRqwZjf4fOzDE6p1Ch98Sro/8hQQi65WDXW5STPw==", "requires": { "moment": ">= 2.9.0" } @@ -10481,9 +10500,9 @@ } }, "sequelize": { - "version": "5.15.1", - "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-5.15.1.tgz", - "integrity": "sha512-DCzzJYvJLMKnyf8G3at2A+yM9M2fSQmTmuOYIpCWM8Gjqx3XfgNTd1NkuyPWFoi1/d1AXQsN2VDPXkPczida8A==", + "version": "5.18.4", + "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-5.18.4.tgz", + "integrity": "sha512-bBmJqpO1H8Z7L0xzITqVo5KHXFI7GmKfGl/5SIPDKsuUMbuZT98s+gyGeaLXpOWGH1ZUO79hvJ8z74vNcxBWHg==", "requires": { "bluebird": "^3.5.0", "cls-bluebird": "^2.1.0", diff --git a/package.json b/package.json index c5fb579..6e7f9d2 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "request-promise": "^4.2.4", "require-dir-all": "^0.4.15", "semver": "^6.0.0", - "sequelize": "^5.15.1", + "sequelize": "^5.18.4", "sequelize-typescript": "^1.0.0", "sharp": "^0.21.1", "split-host": "^0.1.1", diff --git a/src/config.ts b/src/config.ts index 63eb5fd..510342b 100644 --- a/src/config.ts +++ b/src/config.ts @@ -17,6 +17,7 @@ export interface DimensionConfig { database: { file: string; botData: string; + uri: string; }; admins: string[]; goneb: { @@ -38,4 +39,4 @@ export interface DimensionConfig { logging: LogConfig; } -export default config; \ No newline at end of file +export default config; diff --git a/src/db/DimensionStore.ts b/src/db/DimensionStore.ts index b0cda57..9fe4eac 100644 --- a/src/db/DimensionStore.ts +++ b/src/db/DimensionStore.ts @@ -35,14 +35,20 @@ class _DimensionStore { private sequelize: Sequelize; constructor() { - this.sequelize = new Sequelize({ - dialect: 'sqlite', - database: "dimension", - storage: process.env['DIMENSION_DB_PATH'] || config.database.file, - username: "", - password: "", - logging: i => LogService.verbose("DimensionStore [SQL]", i) - }); + if (process.env.DATABASE_URI || config.database.uri ) { + this.sequelize = new Sequelize(process.env.DATABASE_URI || config.database.uri , { + logging: i => LogService.verbose("DimensionStore [SQL]", i) + }); + } else { + this.sequelize = new Sequelize({ + dialect: 'sqlite', + database: "dimension", + storage: process.env['DIMENSION_DB_PATH'] || config.database.file, + username: "", + password: "", + logging: i => LogService.verbose("DimensionStore [SQL]", i) + }); + } this.sequelize.addModels([ User, UserScalarToken, From c864afaf4f026206d3daaa0f6f2ca49ca3954c06 Mon Sep 17 00:00:00 2001 From: Gavin Mogan Date: Fri, 17 Apr 2020 23:09:39 -0700 Subject: [PATCH 06/30] the bulk insert was returning empty array, so switch to selecting the newly inserted row before more bulk inserts --- .../20180617113345-AddLoadingArtistStickerPack.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/db/migrations/20180617113345-AddLoadingArtistStickerPack.ts b/src/db/migrations/20180617113345-AddLoadingArtistStickerPack.ts index a063b15..bd2f780 100644 --- a/src/db/migrations/20180617113345-AddLoadingArtistStickerPack.ts +++ b/src/db/migrations/20180617113345-AddLoadingArtistStickerPack.ts @@ -18,7 +18,9 @@ export default { licensePath: "/licenses/cc_by-nc_4.0.txt", } ])) - .then(packId => { + .then(() => queryInterface.rawSelect('dimension_sticker_packs', { where: { name: "Loading Artist" } }, ['id'])) + .then(packIds => { + const packId = Array.isArray(packIds) ? packIds[0] : packIds; return queryInterface.bulkInsert("dimension_stickers", [ { packId: packId, @@ -446,4 +448,4 @@ export default { down: (_queryInterface: QueryInterface) => { throw new Error("there is no going back"); } -} \ No newline at end of file +} From c2322641dca386e143c1dc66b9684d9a274fc5d4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Apr 2020 23:14:58 +0000 Subject: [PATCH 07/30] Bump jquery from 3.4.1 to 3.5.0 Bumps [jquery](https://github.com/jquery/jquery) from 3.4.1 to 3.5.0. - [Release notes](https://github.com/jquery/jquery/releases) - [Commits](https://github.com/jquery/jquery/compare/3.4.1...3.5.0) Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index c3384b2..d7bfab5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6191,9 +6191,9 @@ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "jquery": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.4.1.tgz", - "integrity": "sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.0.tgz", + "integrity": "sha512-Xb7SVYMvygPxbFMpTFQiHh1J7HClEaThguL15N/Gg37Lri/qKyhRGZYzHRyLH8Stq3Aow0LsHO2O2ci86fCrNQ==", "dev": true }, "js-base64": { diff --git a/package.json b/package.json index 6e7f9d2..9a0644f 100644 --- a/package.json +++ b/package.json @@ -95,7 +95,7 @@ "html-loader": "^0.5.5", "html-webpack-plugin": "^3.2.0", "iso-639-1": "^2.0.5", - "jquery": "^3.4.1", + "jquery": "^3.5.0", "json-loader": "^0.5.7", "mini-css-extract-plugin": "^0.7.0", "ng2-breadcrumbs": "^0.1.281", From a768076c03c912bedad33660569a52a27d2c377b Mon Sep 17 00:00:00 2001 From: Tony Stipanic Date: Sat, 6 Jun 2020 02:09:26 +0200 Subject: [PATCH 08/30] feat: Use height and width from downloaded Telegram sticker --- src/api/admin/AdminStickerService.ts | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/api/admin/AdminStickerService.ts b/src/api/admin/AdminStickerService.ts index b98dc59..8664edc 100644 --- a/src/api/admin/AdminStickerService.ts +++ b/src/api/admin/AdminStickerService.ts @@ -85,16 +85,18 @@ export class AdminStickerService { for (const tgSticker of tgPack.stickers) { LogService.info("AdminStickerService", "Importing sticker from " + tgSticker.url); const buffer = await mx.downloadFromUrl(tgSticker.url); - const png = await sharp(buffer).resize({ - width: 512, - height: 512, + const image = await sharp(buffer); + const metadata = await image.metadata(); + const png = await image.resize({ + width: metadata.width, + height: metadata.height, fit: 'contain', background: 'rgba(0,0,0,0)', }).png().toBuffer(); const mxc = await mx.upload(png, "image/png"); const serverName = mxc.substring("mxc://".length).split("/")[0]; const contentId = mxc.substring("mxc://".length).split("/")[1]; - const thumbMxc = await mx.uploadFromUrl(await mx.getThumbnailUrl(serverName, contentId, 512, 512, "scale", false), "image/png"); + const thumbMxc = await mx.uploadFromUrl(await mx.getThumbnailUrl(serverName, contentId, metadata.width, metadata.height, "scale", false), "image/png"); stickers.push(await Sticker.create({ packId: pack.id, @@ -102,8 +104,8 @@ export class AdminStickerService { description: tgSticker.emoji, imageMxc: mxc, thumbnailMxc: thumbMxc, - thumbnailWidth: 512, - thumbnailHeight: 512, + thumbnailWidth: metadata.width, + thumbnailHeight: metadata.height, mimetype: "image/png", })); From c0d10db1fa708f92a47d400b5771bf5751ec71b3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 6 Jun 2020 08:35:46 +0000 Subject: [PATCH 09/30] Bump websocket-extensions from 0.1.3 to 0.1.4 Bumps [websocket-extensions](https://github.com/faye/websocket-extensions-node) from 0.1.3 to 0.1.4. - [Release notes](https://github.com/faye/websocket-extensions-node/releases) - [Changelog](https://github.com/faye/websocket-extensions-node/blob/master/CHANGELOG.md) - [Commits](https://github.com/faye/websocket-extensions-node/compare/0.1.3...0.1.4) Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index d7bfab5..534113d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12737,9 +12737,9 @@ } }, "websocket-extensions": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", - "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", "dev": true }, "when": { From 64142b5811d72e0e4d8022e39b49d504d9abbcf0 Mon Sep 17 00:00:00 2001 From: Tony Stipanic Date: Sat, 6 Jun 2020 14:34:56 +0200 Subject: [PATCH 10/30] chore: Update sharp and node-sass bumping support for node up to v14 --- docs/installing.md | 2 +- package-lock.json | 605 +++++++++++++++++++++++++-------------------- package.json | 4 +- 3 files changed, 335 insertions(+), 276 deletions(-) diff --git a/docs/installing.md b/docs/installing.md index cb0a549..385ef67 100644 --- a/docs/installing.md +++ b/docs/installing.md @@ -62,7 +62,7 @@ it yourself. If you're using Docker, create a directory at `/etc/dimension` (or wherever you'd like - just remember where it is!). -To build Dimension yourself, you'll need Node 10, npm 6, and 2-4gb of RAM. The following steps are enough +To build Dimension yourself, you'll need Node 10+, npm 6+, and 2-4gb of RAM. The following steps are enough to get you started: ```bash # Download dimension diff --git a/package-lock.json b/package-lock.json index d7bfab5..4ee0723 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1832,8 +1832,7 @@ "base64-js": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", - "dev": true + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" }, "basic-auth": { "version": "2.0.1", @@ -1869,44 +1868,29 @@ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "requires": { - "file-uri-to-path": "1.0.0" - } - }, "bl": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", - "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.2.tgz", + "integrity": "sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ==", "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" }, "dependencies": { - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "buffer": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", + "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" } }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" } } }, @@ -2118,25 +2102,6 @@ "isarray": "^1.0.0" } }, - "buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "requires": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" - }, - "buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" - }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", @@ -2435,14 +2400,59 @@ } }, "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + } } }, "clone": { @@ -3331,11 +3341,11 @@ "dev": true }, "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", + "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", "requires": { - "mimic-response": "^1.0.0" + "mimic-response": "^2.0.0" } }, "deep-equal": { @@ -4228,11 +4238,6 @@ "schema-utils": "^1.0.0" } }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -4471,11 +4476,6 @@ "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" }, - "fs-copy-file-sync": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/fs-copy-file-sync/-/fs-copy-file-sync-1.1.1.tgz", - "integrity": "sha512-2QY5eeqVv4m2PfyMiEuy9adxNP+ajf+8AR05cEi+OAzPcOj90hvFImeZhTmKLBgSd9EvG33jsD7ZRxsx9dThkQ==" - }, "fs-extra": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", @@ -5284,13 +5284,13 @@ } }, "globule": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", - "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.1.tgz", + "integrity": "sha512-OVyWOHgw29yosRHCHo7NncwR1hW5ew0W/UrvtwvjefVJeQ26q4/8r8FmPsSF1hJ93IgWkyv16pCTz6WblMzm/g==", "dev": true, "requires": { "glob": "~7.1.1", - "lodash": "~4.17.10", + "lodash": "~4.17.12", "minimatch": "~3.0.2" } }, @@ -5446,9 +5446,9 @@ } }, "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", "dev": true }, "hpack.js": { @@ -5702,8 +5702,7 @@ "ieee754": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", - "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", - "dev": true + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" }, "iferr": { "version": "0.1.5", @@ -5770,9 +5769,9 @@ "dev": true }, "in-publish": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", - "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz", + "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==", "dev": true }, "indent-string": { @@ -5838,12 +5837,6 @@ "loose-envify": "^1.0.0" } }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true - }, "ip": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", @@ -5995,13 +5988,10 @@ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "dev": true }, "is-fullwidth-code-point": { "version": "1.0.0", @@ -6197,9 +6187,9 @@ "dev": true }, "js-base64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", - "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.2.tgz", + "integrity": "sha512-Vg8czh0Q7sFBSUMWWArX/miJeBWYBPpdU/3M/DKSaekLMqrqVPaedp+5mZhie/r0lgrcaYBfwXatEew6gwgiQQ==", "dev": true }, "js-levenshtein": { @@ -6305,15 +6295,6 @@ "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, - "requires": { - "invert-kv": "^1.0.0" - } - }, "load-json-file": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", @@ -6789,9 +6770,9 @@ "dev": true }, "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", + "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==" }, "mini-css-extract-plugin": { "version": "0.7.0", @@ -6949,6 +6930,11 @@ } } }, + "mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" + }, "module-parent": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/module-parent/-/module-parent-0.0.2.tgz", @@ -7054,9 +7040,9 @@ } }, "napi-build-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.1.tgz", - "integrity": "sha512-boQj1WFgQH3v4clhu3mTNfP+vOBxorDlE8EKiMjUlLG3C4qAESnn9AxIOkFgTR2c9LtzNjPrjS60cT27ZKBhaA==" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==" }, "needle": { "version": "2.4.0", @@ -7136,20 +7122,25 @@ } }, "node-abi": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.9.0.tgz", - "integrity": "sha512-jmEOvv0eanWjhX8dX1pmjb7oJl1U1oR4FOh0b2GnvALwSYoOdU7sj+kLDSAyjo4pfC9aj/IxkloxdLJQhSSQBA==", + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.18.0.tgz", + "integrity": "sha512-yi05ZoiuNNEbyT/xXfSySZE+yVnQW6fxPZuFbLyS1s6b5Kw3HzV2PHOM4XR+nsjzkHxByK+2Wg+yCQbe35l8dw==", "requires": { "semver": "^5.4.1" }, "dependencies": { "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" } } }, + "node-addon-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.0.0.tgz", + "integrity": "sha512-sSHCgWfJ+Lui/u+0msF3oyCgvdkhxDbkCS6Q8uiJquzOimkJBvX6hl5aSSA7DR1XbMpdM8r7phjcF63sF4rkKg==" + }, "node-fetch": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz", @@ -7325,9 +7316,9 @@ } }, "node-sass": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.12.0.tgz", - "integrity": "sha512-A1Iv4oN+Iel6EPv77/HddXErL2a+gZ4uBeZUy+a8O35CFYTXhgA8MgLCWBtwpGZdCvTvQ9d+bQxX/QC36GDPpQ==", + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz", + "integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==", "dev": true, "requires": { "async-foreach": "^0.1.3", @@ -7337,14 +7328,14 @@ "get-stdin": "^4.0.1", "glob": "^7.0.3", "in-publish": "^2.0.0", - "lodash": "^4.17.11", + "lodash": "^4.17.15", "meow": "^3.7.0", "mkdirp": "^0.5.1", "nan": "^2.13.2", "node-gyp": "^3.8.0", "npmlog": "^4.0.0", "request": "^2.88.0", - "sass-graph": "^2.2.4", + "sass-graph": "2.2.5", "stdout-stream": "^1.4.0", "true-case-path": "^1.0.2" }, @@ -7368,6 +7359,12 @@ "supports-color": "^2.0.0" } }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", @@ -7411,9 +7408,9 @@ }, "dependencies": { "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true } } @@ -7651,15 +7648,6 @@ "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true, - "requires": { - "lcid": "^1.0.0" - } - }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -9474,34 +9462,47 @@ } }, "prebuild-install": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.0.tgz", - "integrity": "sha512-aaLVANlj4HgZweKttFNUVNRxDukytuIuxeK2boIMHjagNJCiVKWFsKF4tCE3ql3GbrD2tExPQ7/pwtEJcHNZeg==", + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.4.tgz", + "integrity": "sha512-AkKN+pf4fSEihjapLEEj8n85YIw/tN6BQqkhzbDc0RvEZGdkpJBGMUYx66AAMcPG2KzmPQS7Cm16an4HVBRRMA==", "requires": { "detect-libc": "^1.0.3", "expand-template": "^2.0.3", "github-from-package": "0.0.0", - "minimist": "^1.2.0", + "minimist": "^1.2.3", "mkdirp": "^0.5.1", "napi-build-utils": "^1.0.1", "node-abi": "^2.7.0", "noop-logger": "^0.1.1", "npmlog": "^4.0.1", - "os-homedir": "^1.0.1", - "pump": "^2.0.1", + "pump": "^3.0.0", "rc": "^1.2.7", - "simple-get": "^2.7.0", - "tar-fs": "^1.13.0", + "simple-get": "^3.0.3", + "tar-fs": "^2.0.0", "tunnel-agent": "^0.6.0", "which-pm-runs": "^1.0.0" }, "dependencies": { - "simple-get": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", - "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "requires": { - "decompress-response": "^3.3.0", + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "simple-get": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", + "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", + "requires": { + "decompress-response": "^4.2.0", "once": "^1.3.1", "simple-concat": "^1.0.0" } @@ -9596,6 +9597,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -10354,15 +10356,15 @@ } }, "sass-graph": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", - "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", + "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", "dev": true, "requires": { "glob": "^7.0.0", "lodash": "^4.0.0", "scss-tokenizer": "^0.2.3", - "yargs": "^7.0.0" + "yargs": "^13.3.2" } }, "sass-loader": { @@ -10685,27 +10687,78 @@ } }, "sharp": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.21.3.tgz", - "integrity": "sha512-5qZk8r+YgfyztLEKkNez20Wynq/Uh1oNyP5T/3gTYwt2lBYGs9iDs5m0yVsZEPm8eVBbAJhS08J1wp/g+Ai1Qw==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.25.3.tgz", + "integrity": "sha512-qV3n30NaBEhAjBhFo+d8h5N4X3DHteFdwxXoWUiubk72G0VKT5fX50nlcawGYjPqfFV4Z2e/G9gDPeSGAdn/gg==", "requires": { - "bindings": "^1.3.1", - "color": "^3.1.0", + "color": "^3.1.2", "detect-libc": "^1.0.3", - "fs-copy-file-sync": "^1.1.1", - "nan": "^2.12.1", + "node-addon-api": "^3.0.0", "npmlog": "^4.1.2", - "prebuild-install": "^5.2.2", - "semver": "^5.6.0", - "simple-get": "^3.0.3", - "tar": "^4.4.8", + "prebuild-install": "^5.3.3", + "semver": "^7.3.2", + "simple-get": "^4.0.0", + "tar": "^6.0.2", "tunnel-agent": "^0.6.0" }, "dependencies": { + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "requires": { + "yallist": "^4.0.0" + } + }, + "minizlib": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.0.tgz", + "integrity": "sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA==", + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==" + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" + }, + "tar": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.2.tgz", + "integrity": "sha512-Glo3jkRtPcvpDlAs/0+hozav78yoXKFr+c4wgw62NNMO3oo4AaJdCo21Uu7lcwr55h39W2XD1LMERc64wtbItg==", + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.0", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" } } }, @@ -10751,13 +10804,28 @@ "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY=" }, "simple-get": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.0.3.tgz", - "integrity": "sha512-Wvre/Jq5vgoz31Z9stYWPLn0PqRqmBDpFSdypAnHu5AvRVCYPRYGnvryNLiXu8GOBNDH82J2FRHUGMjjHUpXFw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.0.tgz", + "integrity": "sha512-ZalZGexYr3TA0SwySsr5HlgOOinS4Jsa8YB2GJ6lUNAazyAu4KG/VmzMTwAt2YVXzzVj8QmefmAonZIK2BSGcQ==", "requires": { - "decompress-response": "^3.3.0", + "decompress-response": "^6.0.0", "once": "^1.3.1", "simple-concat": "^1.0.0" + }, + "dependencies": { + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + } + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + } } }, "simple-swizzle": { @@ -10987,9 +11055,9 @@ "dev": true }, "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", @@ -10997,15 +11065,15 @@ } }, "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", "dev": true }, "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "requires": { "spdx-exceptions": "^2.1.0", @@ -11013,9 +11081,9 @@ } }, "spdx-license-ids": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", - "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", "dev": true }, "spdy": { @@ -11200,9 +11268,9 @@ }, "dependencies": { "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -11493,20 +11561,20 @@ } }, "tar-fs": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.3.tgz", - "integrity": "sha512-NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.0.tgz", + "integrity": "sha512-9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg==", "requires": { - "chownr": "^1.0.1", - "mkdirp": "^0.5.1", - "pump": "^1.0.0", - "tar-stream": "^1.1.2" + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.0.0" }, "dependencies": { "pump": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz", - "integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "requires": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -11515,41 +11583,15 @@ } }, "tar-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", - "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.2.tgz", + "integrity": "sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q==", "requires": { - "bl": "^1.0.0", - "buffer-alloc": "^1.2.0", - "end-of-stream": "^1.0.0", + "bl": "^4.0.1", + "end-of-stream": "^1.4.1", "fs-constants": "^1.0.0", - "readable-stream": "^2.3.0", - "to-buffer": "^1.1.1", - "xtend": "^4.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" } }, "telegraf": { @@ -11682,11 +11724,6 @@ "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", "dev": true }, - "to-buffer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", - "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==" - }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -12757,9 +12794,9 @@ } }, "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, "which-pm-runs": { @@ -12846,55 +12883,77 @@ } }, "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "dev": true, "requires": { - "camelcase": "^3.0.0", - "cliui": "^3.2.0", - "decamelize": "^1.1.1", - "get-caller-file": "^1.0.1", - "os-locale": "^1.4.0", - "read-pkg-up": "^1.0.1", + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", + "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^1.0.2", - "which-module": "^1.0.0", - "y18n": "^3.2.1", - "yargs-parser": "^5.0.0" + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" }, "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } } } }, "yargs-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "dev": true, "requires": { - "camelcase": "^3.0.0" - }, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - } + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } }, "zone.js": { diff --git a/package.json b/package.json index 9a0644f..60c1717 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "semver": "^6.0.0", "sequelize": "^5.18.4", "sequelize-typescript": "^1.0.0", - "sharp": "^0.21.1", + "sharp": "^0.25.3", "split-host": "^0.1.1", "spotify-uri": "^1.0.0", "sqlite3": "^4.0.9", @@ -100,7 +100,7 @@ "mini-css-extract-plugin": "^0.7.0", "ng2-breadcrumbs": "^0.1.281", "ngx-modialog": "^5.0.1", - "node-sass": "^4.12.0", + "node-sass": "^4.14.1", "postcss-cssnext": "^3.1.0", "postcss-import": "^12.0.1", "postcss-loader": "^3.0.0", From 25e9dd6477326b13dead3867beb57e8670be617b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Jul 2020 22:46:12 +0000 Subject: [PATCH 11/30] Bump lodash from 4.17.13 to 4.17.19 Bumps [lodash](https://github.com/lodash/lodash) from 4.17.13 to 4.17.19. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.13...4.17.19) Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- package.json | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index d7bfab5..a55f944 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6372,9 +6372,9 @@ } }, "lodash": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.13.tgz", - "integrity": "sha512-vm3/XWXfWtRua0FkUyEHBZy8kCPjErNBT9fJx8Zvs+U6zjqPbTUOpkaoum3O5uiA8sm+yNMHXfYkTUHFoMxFNA==" + "version": "4.17.19", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz", + "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==" }, "lodash._reinterpolate": { "version": "3.0.0", diff --git a/package.json b/package.json index 9a0644f..4c03b98 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "git-rev-sync": "^1.12.0", "isipaddress": "0.0.2", "js-yaml": "^3.13.1", - "lodash": "^4.17.13", + "lodash": "^4.17.19", "matrix-bot-sdk": "^0.3.8", "matrix-js-snippets": "^0.2.8", "memory-cache": "^0.2.0", From 76903e8c8c1ca025df1993e148dbcd7c2f5931b6 Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Wed, 15 Jul 2020 18:24:23 -0600 Subject: [PATCH 12/30] Riot -> Element --- DEVELOPMENT.md | 8 ++++---- README.md | 6 +++--- config/default.yaml | 4 ++-- docs/installing.md | 14 ++++++------- .../{riot_widgets.md => element_widgets.md} | 6 +++--- ...ot_widget_api.md => element_widget_api.md} | 0 docs/reference/scalar_auth.md | 10 +++++----- docs/reference/scalar_client_api.md | 12 +++++------ docs/reference/scalar_server_api.md | 20 ++----------------- package.json | 2 +- src/api/Webserver.ts | 4 ++-- src/api/matrix/MatrixWellknownService.ts | 4 ++-- src/api/scalar/ScalarWidgetService.ts | 4 ++-- web/app/app.routing.ts | 1 + web/app/home/home.component.html | 12 +++++------ web/app/home/home.component.ts | 2 +- web/app/riot/riot-home/home.component.html | 4 ++-- web/app/riot/riot-home/home.component.ts | 8 ++++---- .../services/scalar/scalar-widget.api.ts | 2 +- .../widget-wrappers/jitsi/jitsi.component.ts | 4 ++-- web/style/_riot.scss | 4 ++-- 21 files changed, 58 insertions(+), 73 deletions(-) rename docs/notes/{riot_widgets.md => element_widgets.md} (77%) rename docs/reference/{riot_widget_api.md => element_widget_api.md} (100%) diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index 5199876..2ca79d9 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -1,6 +1,6 @@ # Dimension Development -Dimension is split into two layers: the frontend (web) and backend. The frontend is responsible for interacting with the client (Riot) directly and hands off any complex work to the backend for processing. +Dimension is split into two layers: the frontend (web) and backend. The frontend is responsible for interacting with the client (Element) directly and hands off any complex work to the backend for processing. **For help and support related to Dimension development, please visit:** [![#dimension:t2bot.io](https://img.shields.io/badge/matrix-%23dimension:t2bot.io-brightgreen.svg)](https://matrix.to/#/#dimension:t2bot.io) @@ -33,7 +33,7 @@ Integrations are defined into one of four categories: * Bridges - Application services that bridge the room in some way to an external network (IRC, Webhooks, etc) * Widgets - Added functionality through iframes for rooms/users -The backend further breaks these categories out to redirect traffic to the correct place. For instance, the admin backend +The backend further breaks these categories out to redirect traffic to the correct place. For instance, the admin backend breaks out go-neb specifically as it's configuration is fairly involved. The backend has 3 major layers: @@ -41,13 +41,13 @@ The backend has 3 major layers: * The data stores (where requests normally get routed to) * The proxy (where we flip between using upstream configurations and self-hosted) -Many of the API routes are generic, however many of the integrations require additional structure that the routes cannot +Many of the API routes are generic, however many of the integrations require additional structure that the routes cannot provide. For example, the IRC bridge is complicated in that it needs a dedicated API in order to be configured, however the bots can work well within their constraints. ## Frontend Architecture -The frontend app is split into two major parts: The Riot frontend and the admin section. The components are nested under +The frontend app is split into two major parts: The Element frontend and the admin section. The components are nested under their respective categories and route. For example, the edit page for the Jitsi widget is under the Widgets directory. The frontend is otherwise a fairly basic Angular 5 application: there's components, services, etc. The services should be diff --git a/README.md b/README.md index 91046f4..94ee7ac 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![TravisCI badge](https://travis-ci.org/turt2live/matrix-dimension.svg?branch=master)](https://travis-ci.org/turt2live/matrix-dimension) -An open source integration manager for matrix clients, like Riot. For help and support, please visit +An open source integration manager for matrix clients, like Element. For help and support, please visit us in [#dimension:t2bot.io](https://matrix.to/#/#dimension:t2bot.io) on Matrix. # Installing Dimension / Running your own @@ -22,13 +22,13 @@ port. Dimension will use the first record it sees and will only communicate over 3. **Verify the homeserver information in your configuration.** The name, access token, and client/ server API URL all need to be set to point towards your homeserver. It may also be necessary to set the federation URL if you're running a private server. -4. **Run the troubleshooter.** If you're on Riot 1.1.0 or higher, type `/addwidget https://dimension.t2bot.io/widgets/manager-test` +4. **Run the troubleshooter.** If you're on Element, type `/addwidget https://dimension.t2bot.io/widgets/manager-test` in a private room then click the button. # Do I need an integrations manager? Integration managers aim to ease a user's interaction with the various services a homeserver may -provide. Often times the integrations manager provided by Riot.im, named Modular, is more than suitable. +provide. Often times the integrations manager provided by Element, is more than suitable. However, there are a few cases where running your own makes more sense: * Wanting to self-host all aspects of your services (client, homeserver, and integrations) diff --git a/config/default.yaml b/config/default.yaml index 3b845c9..e77735d 100644 --- a/config/default.yaml +++ b/config/default.yaml @@ -30,7 +30,7 @@ homeserver: accessToken: "something" # These users can modify the integrations this Dimension supports. -# To access the admin interface, open Dimension in Riot and click the settings icon. +# To access the admin interface, open Dimension in Element and click the settings icon. admins: - "@someone:domain.com" @@ -99,4 +99,4 @@ logging: fileLevel: verbose rotate: size: 52428800 # bytes, default is 50mb - count: 5 \ No newline at end of file + count: 5 diff --git a/docs/installing.md b/docs/installing.md index cb0a549..8c0b725 100644 --- a/docs/installing.md +++ b/docs/installing.md @@ -1,22 +1,22 @@ ## Installing Dimension -**Note**: Dimension is currently only capable of running with Riot Web or Desktop. The iOS and Android +**Note**: Dimension is currently only capable of running with Element Web or Desktop. The iOS and Android apps are not directly supported without compiling your own versions. In future, this should be handled by [an integration manager specification](https://github.com/turt2live/matrix-dimension/issues/262). -There are several options for installing Dimension. The easiest is dependent on how you have Riot +There are several options for installing Dimension. The easiest is dependent on how you have Element and your homeserver set up. If you're using [matrix-docker-ansible-deploy](https://github.com/spantaleev/matrix-docker-ansible-deploy), there are already options for configuring Dimension. ### Step 0: Requirements You will need a functioning homeserver (such as [Synapse](https://github.com/matrix-org/synapse)) and -a client to access Dimension with. Currently, that means using [Riot Web or Desktop](https://riot.im). +a client to access Dimension with. Currently, that means using [Element Web or Desktop](https://element.io). Additionally, you will need to be able to host Dimension on a dedicated domain. If your homeserver is set up for example.org, we recommend using dimension.example.org for Dimension. -Finally, this guide assumes you are running nginx as a webserver for Riot, your homeserver, and +Finally, this guide assumes you are running nginx as a webserver for Element, your homeserver, and Dimension. A basic configuration before setting up Dimension would be: ```conf @@ -34,7 +34,7 @@ server { } server { - # Simple configuration for serving Riot + # Simple configuration for serving Element server_name chat.example.org; listen 443 ssl; listen [::]:443 ssl; @@ -134,11 +134,11 @@ Reload or restart nginx after creating the configuration. ### Step 5: Final steps If everything went according to plan, you should be able to visit `https://dimension.example.org` -and see instructions for configuring Riot. If you don't, your configuration isn't working as +and see instructions for configuring Element. If you don't, your configuration isn't working as intended - double check that all the configuration is set up and visit [#dimension:t2bot.io](https://matrix.to/#/#dimension:t2bot.io) for further help. -After configuring Riot, click the integrations button (4 squares in the top right of any room) and +After configuring Element, click the integrations button (4 squares in the top right of any room) and then click the gear icon. If you don't see a gear icon, you're not an admin in the config. This is where you'll configure different integrations as Dimension doesn't ship with anything enabled by default - click around and start enabling things. diff --git a/docs/notes/riot_widgets.md b/docs/notes/element_widgets.md similarity index 77% rename from docs/notes/riot_widgets.md rename to docs/notes/element_widgets.md index 4410f0d..42ab4f1 100644 --- a/docs/notes/riot_widgets.md +++ b/docs/notes/element_widgets.md @@ -1,6 +1,6 @@ -# Riot Widgets +# Element Widgets -Riot uses some special interaction with the integration manager to make for a clean user experience. +Element uses some special interaction with the integration manager to make for a clean user experience. ### Edit Widget button @@ -19,4 +19,4 @@ Ends up calling `$scalar_ui_url?integ_id=...&screen=...` alongside the standard * Creators of widgets do not get prompted for permission to load * Only people with permission to add widgets can remove widgets (otherwise it just revokes permission) -* Only creators of widgets can edit them \ No newline at end of file +* Only creators of widgets can edit them diff --git a/docs/reference/riot_widget_api.md b/docs/reference/element_widget_api.md similarity index 100% rename from docs/reference/riot_widget_api.md rename to docs/reference/element_widget_api.md diff --git a/docs/reference/scalar_auth.md b/docs/reference/scalar_auth.md index eadc622..ddff98d 100644 --- a/docs/reference/scalar_auth.md +++ b/docs/reference/scalar_auth.md @@ -1,13 +1,13 @@ # Scalar Authentication / Registration -When the "Manage Integrations" button is first clicked by a user, Riot will try and register with the Integrations Manager +When the "Manage Integrations" button is first clicked by a user, Element will try and register with the Integrations Manager to get a `scalar_token` that it then uses to authenticate all future requests with the manager. ## `$restUrl/register` -This ends up mapping to `/api/v1/scalar/register` when Dimension is correctly set up for a Riot instance. +This ends up mapping to `/api/v1/scalar/register` when Dimension is correctly set up for a Element instance. -Riot will POST to this endpoint an OpenID object that looks similar to the following: +Element will POST to this endpoint an OpenID object that looks similar to the following: ``` { "access_token": "ABCDEFGH", @@ -17,7 +17,7 @@ Riot will POST to this endpoint an OpenID object that looks similar to the follo } ``` -`expires_in` is given in seconds. +`expires_in` is given in seconds. With this information, we can hit the federation API on the `matrix_server_name` to get ourselves the Matrix User ID (MXID) of the user. This is a GET request to `http://matrix.org/_matrix/federation/v1/openid/userinfo?access_token=ABCDEFGH`. @@ -39,4 +39,4 @@ following JSON is more than enough: } ``` -Riot will now use this token in future requests by hitting the `"integrations_ui_url"` with `?access_token=some_generated_string`. \ No newline at end of file +Element will now use this token in future requests by hitting the `"integrations_ui_url"` with `?access_token=some_generated_string`. diff --git a/docs/reference/scalar_client_api.md b/docs/reference/scalar_client_api.md index df9cf2c..db113c3 100644 --- a/docs/reference/scalar_client_api.md +++ b/docs/reference/scalar_client_api.md @@ -1,10 +1,10 @@ -# Scalar API (Riot) +# Scalar API (Element) -Scalar and Riot communicate using cross-origin messages in a defined format (described in this document). The full source for the messaging layer in Riot can be seen [here](https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/ScalarMessaging.js). With this API, the integrations manager is able to invite users, get some basic state information, and interact with the room in a limited capacity. The API is intentionally restricted to ensure that misbehaving domains don't have full control over Riot. +Scalar and Element communicate using cross-origin messages in a defined format (described in this document). The full source for the messaging layer in Element can be seen [here](https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/ScalarMessaging.js). With this API, the integrations manager is able to invite users, get some basic state information, and interact with the room in a limited capacity. The API is intentionally restricted to ensure that misbehaving domains don't have full control over Element. ## Setting up communications -Riot will automatically open a channel for receiving messages. The integrations manager needs to do the same so it can speak to Riot. Here's some sample JavaScript that will do this for us: +Element will automatically open a channel for receiving messages. The integrations manager needs to do the same so it can speak to Element. Here's some sample JavaScript that will do this for us: ``` window.addEventListener("message", function(event) { @@ -16,7 +16,7 @@ window.addEventListener("message", function(event) { function sendMessage(action, roomId, userId, otherFields) { if (!otherFields) otherFields = {}; - + var request = otherFields; request["user_id"] = userId; request["room_id"] = roomId; @@ -393,7 +393,7 @@ sendMessage("set_widget", "!curbf:matrix.org", null, { ``` *Note*: Widgets are documented by the matrix.org team [on this Google Doc](https://docs.google.com/document/d/1TiWNDcEOULeRYQpkJHQDjgIW32ohIJSi5MKv9oRdzCo/edit). That document is the source of truth for the event structure and usage. -*Note*: `scalar_token` will be appended to the query string if the widget's url matches the API URL of the integration manager (in Riot) +*Note*: `scalar_token` will be appended to the query string if the widget's url matches the API URL of the integration manager (in Element) ### Getting the room's encryption status @@ -432,4 +432,4 @@ sendMessage("close_scalar"); "action": "close_scalar", "response": null } -``` \ No newline at end of file +``` diff --git a/docs/reference/scalar_server_api.md b/docs/reference/scalar_server_api.md index 5ecf0f0..2c73b6a 100644 --- a/docs/reference/scalar_server_api.md +++ b/docs/reference/scalar_server_api.md @@ -709,25 +709,9 @@ None of these are officially documented, and are subject to change. "authenticated": true, "session": { "Repos": [ - { - "name": "riot-welcome-page", - "description": "A welcome page specific for tang.ents.ca (built for Riot)", - "private": false, - "html_url": "https:\/\/github.com\/ENTS-Source\/riot-welcome-page", - "created_at": "2017-06-10T16:54:37Z", - "updated_at": "2017-06-10T19:10:21Z", - "pushed_at": "2017-06-10T18:15:07Z", - "fork": false, - "full_name": "ENTS-Source\/riot-welcome-page", - "permissions": { - "admin": true, - "pull": true, - "push": true - } - }, { "name": "matrix-dimension", - "description": "An alternative integrations manager for Riot", + "description": "An alternative integrations manager for Element", "private": false, "html_url": "https:\/\/github.com\/turt2live\/matrix-dimension", "created_at": "2017-05-25T21:41:55Z", @@ -818,4 +802,4 @@ None of these are officially documented, and are subject to change. }, "cached_response": false } -``` \ No newline at end of file +``` diff --git a/package.json b/package.json index 9a0644f..cc4785f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "matrix-dimension", "version": "1.0.0", - "description": "An alternative integrations manager for Riot", + "description": "An alternative integrations manager for Element", "main": "build/app/index.js", "license": "GPL-3.0", "scripts": { diff --git a/src/api/Webserver.ts b/src/api/Webserver.ts index 79fe588..26550ea 100644 --- a/src/api/Webserver.ts +++ b/src/api/Webserver.ts @@ -40,7 +40,7 @@ export default class Webserver { // We register the default route last to make sure we don't override anything by accident. // We'll pass off all other requests to the web app - this.app.get(/(widgets\/|riot\/|\/)*/, (_req, res) => { + this.app.get(/(widgets\/|riot\/|element\/|\/)*/, (_req, res) => { res.sendFile(path.join(__dirname, "..", "..", "web", "index.html")); }); @@ -93,4 +93,4 @@ export default class Webserver { this.app.listen(config.web.port, config.web.address); LogService.info("Webserver", "API and UI listening on " + config.web.address + ":" + config.web.port); } -} \ No newline at end of file +} diff --git a/src/api/matrix/MatrixWellknownService.ts b/src/api/matrix/MatrixWellknownService.ts index 9a543b9..8fedb06 100644 --- a/src/api/matrix/MatrixWellknownService.ts +++ b/src/api/matrix/MatrixWellknownService.ts @@ -24,7 +24,7 @@ export class MatrixWellknownService { public async getIntegrations(): Promise { const parsed = new URL(config.dimension.publicUrl); - parsed.pathname = '/riot'; + parsed.pathname = '/element'; const uiUrl = parsed.toString(); parsed.pathname = '/api/v1/scalar'; @@ -39,4 +39,4 @@ export class MatrixWellknownService { }, }; } -} \ No newline at end of file +} diff --git a/src/api/scalar/ScalarWidgetService.ts b/src/api/scalar/ScalarWidgetService.ts index 75f2fa2..524296b 100644 --- a/src/api/scalar/ScalarWidgetService.ts +++ b/src/api/scalar/ScalarWidgetService.ts @@ -11,7 +11,7 @@ interface UrlPreviewResponse { page_title_cache_item: { expires: string; // "2017-12-18T04:20:04.001806738Z" cached_response_err: string; - cached_title: string; // the actual thing riot uses + cached_title: string; // the actual thing Element uses }; error: { message: string; @@ -68,4 +68,4 @@ export class ScalarWidgetService { }; } } -} \ No newline at end of file +} diff --git a/web/app/app.routing.ts b/web/app/app.routing.ts index 47816f6..1086ea8 100644 --- a/web/app/app.routing.ts +++ b/web/app/app.routing.ts @@ -51,6 +51,7 @@ import { TermsWidgetWrapperComponent } from "./widget-wrappers/terms/terms.compo const routes: Routes = [ {path: "", component: HomeComponent}, {path: "riot", pathMatch: "full", redirectTo: "riot-app"}, + {path: "element", pathMatch: "full", redirectTo: "riot-app"}, { path: "riot-app", component: RiotComponent, diff --git a/web/app/home/home.component.html b/web/app/home/home.component.html index c5ec4a1..20c63ea 100644 --- a/web/app/home/home.component.html +++ b/web/app/home/home.component.html @@ -16,8 +16,8 @@

Try it out or run your own

- Visit t2bot.io/riot and log in with your Matrix account - or point your Riot config.json at our servers: + Visit element.t2host.io and log in with your Matrix account + or point your Element config.json at our servers:

{{ integrationsConfig }}
@@ -220,19 +220,19 @@ for news and updates. Don't forget to star the repository on GitHub.

-

Here's the configuration options you'll need to update in your Riot config.json:

+

Here's the configuration options you'll need to update in your Element config.json:

{{ integrationsConfig }}

Configuring integrations

If everything is set up correctly, you'll be able to access the admin area of Dimension by clicking - the 3x3 grid in the top right of any room in Riot. The gear icon () in the + the 3x3 grid in the top right of any room in Element. The gear icon () in the top right is where you can configure your bots, bridges, and widgets.

"Could not connect to integrations server" error

- When Riot cannot reach Dimension or Dimension is unable to reach your homeserver an error saying "Could not + When Element cannot reach Dimension or Dimension is unable to reach your homeserver an error saying "Could not contact integrations server" shows up in every room. Before visiting us in #dimension:t2bot.io on Matrix, here's a few things to check: @@ -261,4 +261,4 @@ #dimension:t2bot.io - \ No newline at end of file + diff --git a/web/app/home/home.component.ts b/web/app/home/home.component.ts index 8536823..e144bed 100644 --- a/web/app/home/home.component.ts +++ b/web/app/home/home.component.ts @@ -11,7 +11,7 @@ export class HomeComponent { public showPromoPage = this.hostname === "https://dimension.t2bot.io"; public integrationsConfig = `` + - `"integrations_ui_url": "${this.hostname}/riot",\n` + + `"integrations_ui_url": "${this.hostname}/element",\n` + `"integrations_rest_url": "${this.hostname}/api/v1/scalar",\n` + `"integrations_widgets_urls": ["${this.hostname}/widgets"],\n` + `"integrations_jitsi_widget_url": "${this.hostname}/widgets/jitsi",\n`; diff --git a/web/app/riot/riot-home/home.component.html b/web/app/riot/riot-home/home.component.html index a96073d..72b42a5 100644 --- a/web/app/riot/riot-home/home.component.html +++ b/web/app/riot/riot-home/home.component.html @@ -18,7 +18,7 @@ Integrations are not encrypted! This means that some information about yourself and the room may be leaked to the bot, bridge, or widget. This information includes the room ID, your display - name, your username, your avatar, information about Riot, and other similar details. Add integrations + name, your username, your avatar, information about Element, and other similar details. Add integrations with caution.

@@ -42,4 +42,4 @@
- \ No newline at end of file + diff --git a/web/app/riot/riot-home/home.component.ts b/web/app/riot/riot-home/home.component.ts index 064c1b2..45a8579 100644 --- a/web/app/riot/riot-home/home.component.ts +++ b/web/app/riot/riot-home/home.component.ts @@ -77,7 +77,7 @@ export class RiotHomeComponent { console.error("No user returned for token. Is the token registered in Dimension?"); this.isError = true; this.isLoading = false; - this.errorMessage = "Could not verify your token. Please try logging out of Riot and back in. Be sure to back up your encryption keys!"; + this.errorMessage = "Could not verify your token. Please try logging out of Element and back in. Be sure to back up your encryption keys!"; } else { this.userId = userId; console.log("Scalar token belongs to " + userId); @@ -189,7 +189,7 @@ export class RiotHomeComponent { console.error(err); this.isError = true; this.isLoading = false; - this.errorMessage = "Unable to set up Dimension. This version of Riot may not supported or there may be a problem with the server."; + this.errorMessage = "Unable to set up Dimension. This version of Element may not supported or there may be a problem with the server."; }); this.stickerApi.getPacks().then(packs => { @@ -265,7 +265,7 @@ export class RiotHomeComponent { case "publicRoom": return this.scalar.getJoinRule(this.roomId).then(payload => { if (!payload.response) { - return Promise.reject("Could not communicate with Riot"); + return Promise.reject("Could not communicate with Element"); } const isPublic = payload.response.join_rule === "public"; if (isPublic !== requirement.expectedValue) { @@ -278,7 +278,7 @@ export class RiotHomeComponent { if (response === true) return Promise.resolve(); if (response.error || response.error.message) return Promise.reject("You cannot modify widgets in this room"); - return Promise.reject("Error communicating with Riot"); + return Promise.reject("Error communicating with Element"); }; let promiseChain = Promise.resolve(); diff --git a/web/app/shared/services/scalar/scalar-widget.api.ts b/web/app/shared/services/scalar/scalar-widget.api.ts index 5897344..1a96eb4 100644 --- a/web/app/shared/services/scalar/scalar-widget.api.ts +++ b/web/app/shared/services/scalar/scalar-widget.api.ts @@ -68,7 +68,7 @@ export class ScalarWidgetApi { public static sendSetAlwaysOnScreen(alwaysVisible: boolean): void { ScalarWidgetApi.callAction("set_always_on_screen", { - // Send the value here and in data due to a Riot bug. + // Send the value here and in data due to a Element bug. data: { value: alwaysVisible, }, diff --git a/web/app/widget-wrappers/jitsi/jitsi.component.ts b/web/app/widget-wrappers/jitsi/jitsi.component.ts index 78ed54b..605bc5b 100644 --- a/web/app/widget-wrappers/jitsi/jitsi.component.ts +++ b/web/app/widget-wrappers/jitsi/jitsi.component.ts @@ -36,7 +36,7 @@ export class JitsiWidgetWrapperComponent extends CapableWidget implements OnInit this.conferenceId = params.conferenceId || params.confId; this.displayName = params.displayName; this.avatarUrl = params.avatarUrl; - this.userId = params.userId || params.email; // Riot uses `email` when placing a conference call + this.userId = params.userId || params.email; // Element uses `email` when placing a conference call // Set the widget ID if we have it ScalarWidgetApi.widgetId = params.widgetId; @@ -49,7 +49,7 @@ export class JitsiWidgetWrapperComponent extends CapableWidget implements OnInit $.getScript(widget.options.scriptUrl); if (!this.domain) { - // Always fall back to jitsi.riot.im to maintain compatibility with widgets created by Riot. + // Always fall back to jitsi.riot.im to maintain compatibility with widgets created by Element. this.domain = widget.options.useDomainAsDefault ? widget.options.jitsiDomain : "jitsi.riot.im"; } }); diff --git a/web/style/_riot.scss b/web/style/_riot.scss index eb869ec..9ab5198 100644 --- a/web/style/_riot.scss +++ b/web/style/_riot.scss @@ -1,4 +1,4 @@ -// The CSS for the Riot breadcrumb is specified here to ensure that it's style can be overridden. +// The CSS for the Element breadcrumb is specified here to ensure that it's style can be overridden. // In it's current position (as a component), the component-level stylesheet cannot access the // elements, so we specify it in a more generic location. @import "themes/themes"; @@ -59,4 +59,4 @@ color: themed(quickActionHoverColor); } } -} \ No newline at end of file +} From db2298172f8379972567fd298cee1cc1a6e0ae82 Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Wed, 15 Jul 2020 18:27:17 -0600 Subject: [PATCH 13/30] More Riot -> Element --- docs/reference/element_widget_api.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/reference/element_widget_api.md b/docs/reference/element_widget_api.md index 0092ae3..dccf15c 100644 --- a/docs/reference/element_widget_api.md +++ b/docs/reference/element_widget_api.md @@ -1,12 +1,12 @@ -# Riot's Widget API +# Element's Widget API -Widgets and Riot communicate using cross-origin messages in a defined format (described in this document). Widgets have access to the entire Scalar Client API, but generally do not need any of the endpoints there. Riot provides additional APIs available to particular widgets for which the integrations manager can not access. The full source for the widget messaging layer in Riot can be seen [here](https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/WidgetMessaging.js). The API is restricted to ensure rogue widgets cannot take over the Riot instance. +Widgets and Element communicate using cross-origin messages in a defined format (described in this document). Widgets have access to the entire Scalar Client API, but generally do not need any of the endpoints there. Element provides additional APIs available to particular widgets for which the integrations manager can not access. The full source for the widget messaging layer in Element can be seen [here](https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/WidgetMessaging.js). The API is restricted to ensure rogue widgets cannot take over the Element instance. **Note**: This is largely out of date and better documented in the Matrix spec nowadays. See https://github.com/matrix-org/matrix-doc/issues/1236 for more information. ## Setting up communications -Riot will automatically open a channel for receiving messages. The widget needs to do the same so it can speak to Riot. Here's some sample JavaScript that will do this for us: +Element will automatically open a channel for receiving messages. The widget needs to do the same so it can speak to Element. Here's some sample JavaScript that will do this for us: ``` window.addEventListener("message", function(event) { @@ -18,7 +18,7 @@ window.addEventListener("message", function(event) { function sendMessage(action, widgetId, otherFields) { if (!otherFields) otherFields = {}; - + var request = otherFields; request["widgetId"] = widgetId; request["action"] = action; @@ -64,7 +64,7 @@ An error response will always have the following structure under `response`: ### Versions / Changelog -All versions use a semantic versioning scheme. The actions recorded in this document include which version they were implemented in. The changelog here is for convience. +All versions use a semantic versioning scheme. The actions recorded in this document include which version they were implemented in. The changelog here is for convience. **v0.0.1** * Initial release From 401812931a5122e36f936369decec5fb5ed11b36 Mon Sep 17 00:00:00 2001 From: Andrew Morgan Date: Thu, 23 Jul 2020 22:59:48 +0200 Subject: [PATCH 14/30] Add BigBlueButton widget to integration manager This adds the widget and the configuration for it to the integration manager, so that the user can add a BBB widget. The code that will actually run inside of the widget is not yet here. A few CSS things are updated as well to make them more generic, as we reused a few things that were previously jitsi only. --- .../20200630165247-AddBigBlueButtonWidget.ts | 23 ++++++++ web/app/app.module.ts | 2 + web/app/app.routing.ts | 6 ++ .../bigbluebutton.widget.component.html | 11 ++++ .../bigbluebutton.widget.component.scss | 0 .../bigbluebutton.widget.component.ts | 53 ++++++++++++++++++ web/app/home/home.component.html | 4 ++ web/app/shared/models/widget.ts | 1 + .../shared/registry/integrations.registry.ts | 4 ++ .../jitsi/jitsi.component.scss | 4 +- web/public/img/avatars/bigbluebutton.png | Bin 0 -> 13303 bytes web/style/themes/dark.scss | 2 +- web/style/themes/light.scss | 4 +- 13 files changed, 109 insertions(+), 5 deletions(-) create mode 100644 src/db/migrations/20200630165247-AddBigBlueButtonWidget.ts create mode 100644 web/app/configs/widget/bigbluebutton/bigbluebutton.widget.component.html create mode 100644 web/app/configs/widget/bigbluebutton/bigbluebutton.widget.component.scss create mode 100644 web/app/configs/widget/bigbluebutton/bigbluebutton.widget.component.ts create mode 100644 web/public/img/avatars/bigbluebutton.png diff --git a/src/db/migrations/20200630165247-AddBigBlueButtonWidget.ts b/src/db/migrations/20200630165247-AddBigBlueButtonWidget.ts new file mode 100644 index 0000000..27c00ba --- /dev/null +++ b/src/db/migrations/20200630165247-AddBigBlueButtonWidget.ts @@ -0,0 +1,23 @@ +import { QueryInterface } from "sequelize"; + +export default { + up: (queryInterface: QueryInterface) => { + return Promise.resolve() + .then(() => queryInterface.bulkInsert("dimension_widgets", [ + { + type: "bigbluebutton", + name: "BigBlueButton", + avatarUrl: "/img/avatars/bigbluebutton.png", + isEnabled: true, + isPublic: true, + description: "Embed a BigBlueButton conference", + } + ])); + }, + down: (queryInterface: QueryInterface) => { + return Promise.resolve() + .then(() => queryInterface.bulkDelete("dimension_widgets", { + type: "bigbluebutton", + })); + } +} diff --git a/web/app/app.module.ts b/web/app/app.module.ts index 6f5496e..e217674 100644 --- a/web/app/app.module.ts +++ b/web/app/app.module.ts @@ -118,6 +118,7 @@ import { CKEditorModule } from "@ckeditor/ckeditor5-angular"; import { AdminNewEditTermsComponent } from "./admin/terms/new-edit/new-edit.component"; import { AdminTermsNewEditPublishDialogComponent } from "./admin/terms/new-edit/publish/publish.component"; import { TermsWidgetWrapperComponent } from "./widget-wrappers/terms/terms.component"; +import { BigBlueButtonConfigComponent } from "./configs/widget/bigbluebutton/bigbluebutton.widget.component"; @NgModule({ imports: [ @@ -148,6 +149,7 @@ import { TermsWidgetWrapperComponent } from "./widget-wrappers/terms/terms.compo VideoWidgetWrapperComponent, JitsiWidgetWrapperComponent, GCalWidgetWrapperComponent, + BigBlueButtonConfigComponent, RiotHomeComponent, IboxComponent, ConfigScreenWidgetComponent, diff --git a/web/app/app.routing.ts b/web/app/app.routing.ts index 1086ea8..1e36590 100644 --- a/web/app/app.routing.ts +++ b/web/app/app.routing.ts @@ -2,6 +2,7 @@ import { RouterModule, Routes } from "@angular/router"; import { HomeComponent } from "./home/home.component"; import { RiotComponent } from "./riot/riot.component"; import { GenericWidgetWrapperComponent } from "./widget-wrappers/generic/generic.component"; +import { BigBlueButtonConfigComponent } from "./configs/widget/bigbluebutton/bigbluebutton.widget.component"; import { VideoWidgetWrapperComponent } from "./widget-wrappers/video/video.component"; import { JitsiWidgetWrapperComponent } from "./widget-wrappers/jitsi/jitsi.component"; import { GCalWidgetWrapperComponent } from "./widget-wrappers/gcal/gcal.component"; @@ -180,6 +181,11 @@ const routes: Routes = [ component: CustomWidgetConfigComponent, data: {breadcrumb: "Custom Widgets", name: "Custom Widgets"}, }, + { + path: "bigbluebutton", + component: BigBlueButtonConfigComponent, + data: {breadcrumb: "BigBlueButton Widgets", name: "BigBlueButton Widgets"}, + }, { path: "etherpad", component: EtherpadWidgetConfigComponent, diff --git a/web/app/configs/widget/bigbluebutton/bigbluebutton.widget.component.html b/web/app/configs/widget/bigbluebutton/bigbluebutton.widget.component.html new file mode 100644 index 0000000..a0ab995 --- /dev/null +++ b/web/app/configs/widget/bigbluebutton/bigbluebutton.widget.component.html @@ -0,0 +1,11 @@ + + + + + diff --git a/web/app/configs/widget/bigbluebutton/bigbluebutton.widget.component.scss b/web/app/configs/widget/bigbluebutton/bigbluebutton.widget.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/web/app/configs/widget/bigbluebutton/bigbluebutton.widget.component.ts b/web/app/configs/widget/bigbluebutton/bigbluebutton.widget.component.ts new file mode 100644 index 0000000..ac92217 --- /dev/null +++ b/web/app/configs/widget/bigbluebutton/bigbluebutton.widget.component.ts @@ -0,0 +1,53 @@ +import { WidgetComponent, DISABLE_AUTOMATIC_WRAPPING } from "../widget.component"; +import { WIDGET_BIGBLUEBUTTON, EditableWidget } from "../../../shared/models/widget"; +import { Component } from "@angular/core"; +import { FE_BigBlueButtonWidget } from "../../../shared/models/integration"; +import { SessionStorage } from "../../../shared/SessionStorage"; +import * as url from "url"; + +@Component({ + templateUrl: "bigbluebutton.widget.component.html", + styleUrls: ["bigbluebutton.widget.component.scss"], +}) + +// Configuration of BigBlueButton widgets +export class BigBlueButtonConfigComponent extends WidgetComponent { + private bigBlueButtonWidget: FE_BigBlueButtonWidget = SessionStorage.editIntegration; + + constructor() { + super(WIDGET_BIGBLUEBUTTON, "BigBlueButton Conference", DISABLE_AUTOMATIC_WRAPPING); + } + + protected OnWidgetsDiscovered(widgets: EditableWidget[]) { + for (const widget of widgets) { + widget.data.conferenceUrl = this.templateUrl(widget.url, widget.data); + } + } + + protected OnNewWidgetPrepared(widget: EditableWidget): void { + widget.dimension.newData["conferenceUrl"] = this.bigBlueButtonWidget.options.conferenceUrl; + } + + protected OnWidgetBeforeAdd(widget: EditableWidget) { + this.setWidgetOptions(widget); + } + + protected OnWidgetBeforeEdit(widget: EditableWidget) { + this.setWidgetOptions(widget); + } + + private setWidgetOptions(widget: EditableWidget) { + widget.dimension.newData.url = widget.dimension.newData.conferenceUrl; + + let widgetQueryString = url.format({ + query: { + "conferenceUrl": "$conferenceUrl", + "displayName": "$matrix_display_name", + "avatarUrl": "$matrix_avatar_url", + "userId": "$matrix_user_id", + }, + }); + widgetQueryString = this.decodeParams(widgetQueryString, Object.keys(widget.dimension.newData).map(k => "$" + k)); + widget.dimension.newUrl = window.location.origin + "/widgets/bigbluebutton" + widgetQueryString; + } +} diff --git a/web/app/home/home.component.html b/web/app/home/home.component.html index 20c63ea..72a58f1 100644 --- a/web/app/home/home.component.html +++ b/web/app/home/home.component.html @@ -69,6 +69,10 @@ Google Calendar +
+ + BigBlueButton +
Custom Widget diff --git a/web/app/shared/models/widget.ts b/web/app/shared/models/widget.ts index 37d853a..0400c80 100644 --- a/web/app/shared/models/widget.ts +++ b/web/app/shared/models/widget.ts @@ -1,6 +1,7 @@ import { WidgetsResponse } from "./server-client-responses"; export const WIDGET_CUSTOM = ["m.custom", "customwidget", "dimension-customwidget"]; +export const WIDGET_BIGBLUEBUTTON = ["m.bigbluebutton", "bigbluebutton", "dimension-bigbluebutton"]; export const WIDGET_ETHERPAD = ["m.etherpad", "etherpad", "dimension-etherpad"]; export const WIDGET_GOOGLE_DOCS = ["m.googledoc", "googledocs", "dimension-googledocs"]; export const WIDGET_GOOGLE_CALENDAR = ["m.googlecalendar", "googlecalendar", "dimension-googlecalendar"]; diff --git a/web/app/shared/registry/integrations.registry.ts b/web/app/shared/registry/integrations.registry.ts index 3d902b9..673836b 100644 --- a/web/app/shared/registry/integrations.registry.ts +++ b/web/app/shared/registry/integrations.registry.ts @@ -1,6 +1,7 @@ import { Injectable } from "@angular/core"; import { WIDGET_CUSTOM, + WIDGET_BIGBLUEBUTTON, WIDGET_ETHERPAD, WIDGET_GOOGLE_CALENDAR, WIDGET_GOOGLE_DOCS, @@ -35,6 +36,9 @@ export class IntegrationsRegistry { "custom": { types: WIDGET_CUSTOM, }, + "bigbluebutton": { + types: WIDGET_BIGBLUEBUTTON, + }, "youtube": { types: WIDGET_YOUTUBE }, diff --git a/web/app/widget-wrappers/jitsi/jitsi.component.scss b/web/app/widget-wrappers/jitsi/jitsi.component.scss index 553cb6c..38484f6 100644 --- a/web/app/widget-wrappers/jitsi/jitsi.component.scss +++ b/web/app/widget-wrappers/jitsi/jitsi.component.scss @@ -16,7 +16,7 @@ position: absolute; height: 100%; width: 100%; - background-color: themed(jitsiWelcomeBgColor); + background-color: themed(widgetWelcomeBgColor); } .join-conference-boat { @@ -30,4 +30,4 @@ width: 90%; text-align: center; } -} \ No newline at end of file +} diff --git a/web/public/img/avatars/bigbluebutton.png b/web/public/img/avatars/bigbluebutton.png new file mode 100644 index 0000000000000000000000000000000000000000..43f8aa5a79a037f38b201e46cff274f1b991d6c8 GIT binary patch literal 13303 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 Date: Thu, 23 Jul 2020 23:03:32 +0200 Subject: [PATCH 15/30] Add API backend This commit adds the join API endpoint that will be used by the widget to transform a greenlight URL to a BigBlueButton meeting URL. The full flow is defined within the code itself, but it roughly boils down to taking a greenlight URL that the user pastes it, sending it to Dimension, Dimension making some API calls to greenlight to "join" the meeting and retrieving a join link, before passing that back down to the client to load. Unfortunately, while BigBlueButton's server has a nice API, it's useless to us if all we have is a greenlight link, so we need to do this hacky route instead. --- .../DimensionBigBlueButtonService.ts | 207 ++++++++++++++++++ src/models/Widget.ts | 7 + src/models/WidgetResponses.ts | 4 + web/app/app.module.ts | 2 + 4 files changed, 220 insertions(+) create mode 100644 src/api/dimension/DimensionBigBlueButtonService.ts create mode 100644 src/models/Widget.ts create mode 100644 src/models/WidgetResponses.ts diff --git a/src/api/dimension/DimensionBigBlueButtonService.ts b/src/api/dimension/DimensionBigBlueButtonService.ts new file mode 100644 index 0000000..0a4f141 --- /dev/null +++ b/src/api/dimension/DimensionBigBlueButtonService.ts @@ -0,0 +1,207 @@ +import { GET, Path, QueryParam } from "typescript-rest"; +import * as request from "request"; +import { LogService } from "matrix-js-snippets"; +import { URL } from "url"; +import { BigBlueButtonJoinRequest } from "../../models/Widget"; +import { BigBlueButtonJoinResponse } from "../../models/WidgetResponses"; +import { AutoWired } from "typescript-ioc/es6"; +import { ApiError } from "../ApiError"; + +/** + * API for the BigBlueButton widget. + */ +@Path("/api/v1/dimension/bigbluebutton") +@AutoWired +export class DimensionBigBlueButtonService { + + /** + * A regex used for extracting the authenticity token from the HTML of a + * greenlight server response + */ + private authenticityTokenRegexp = new RegExp(`name="authenticity_token" value="([^"]+)".*`); + + // join handles the request from a client to join a BigBlueButton meeting + // + // The client is expected to send a link created by greenlight, the nice UI + // that's recommended to be installed on top of BBB, which is itself a BBB + // client. + // + // This greenlight link is nice, but greenlight unfortunately doesn't have any + // API, and no simple way for us to translate a link from it into a BBB meeting + // URL. It's intended to be loaded by browsers. You enter your preferred name, + // click submit, you potentially wait for the meeting to start, and then you + // finally get the link to join the meeting, and you load that. + // + // As there's no other way to do it, we just reverse-engineer it and pretend + // to be a browser below. We can't do this from the client side as widgets + // run in iframes and browsers can't inspect the content of an iframe if + // it's running on a separate domain. + // + // So the client gets a greenlight URL pasted into it. The flow is then: + // + // + // +---------+ +-----------+ +-------------+ +-----+ + // | Client | | Dimension | | Greenlight | | BBB | + // +---------+ +-----------+ +-------------+ +-----+ + // | | | | + // | | | | + // | | | | + // | | | | + // | /bigbluebutton/join&greenlightUrl=https://.../abc-def-123&fullName=bob | | | + // |---------------------------------------------------------------------------->| | | + // | | | | + // | | GET https://.../abc-def-123 | | + // | |-------------------------------------------------------------------------------------->| | + // | | | | + // | | Have some HTML | | + // | |<--------------------------------------------------------------------------------------| | + // | | | | + // | | Extract authenticity_token from HTML | | + // | |------------------------------------- | | + // | | | | | + // | |<------------------------------------ | | + // | | | | + // | | Extract cookies from HTTP response | | + // | |----------------------------------- | | + // | | | | | + // | |<---------------------------------- | | + // | | | | + // | | POST https://.../abc-def-123&authenticity_token=...&abc-def-123[join_name]=bob | | + // | |-------------------------------------------------------------------------------------->| | + // |===============================================================================================If the meeting has not started yet================================================| + // | | | | + // | | HTML https://.../abc-def-123 Meeting not started | | + // | |<--------------------------------------------------------------------------------------| | + // | | | | + // | 400 MEETING_NOT_STARTED_YET | | | + // |<----------------------------------------------------------------------------| | | + // | | | | + // | | | | + // | Wait a bit and restart the process | | | + // |------------------------------------- | | | + // | | | | | + // |<------------------------------------ | | | + // | | | | + // |=================================================================================================================================================================================| + // | | | | + // | | 302 Location: https://bbb.example.com/join?... | | + // | |<--------------------------------------------------------------------------------------| | + // | | | | + // | | Extract value of Location header | | + // | |--------------------------------- | | + // | | | | | + // | |<-------------------------------- | | + // | | | | + // | https://bbb.example.com/join?... | | | + // |<----------------------------------------------------------------------------| | | + // | | | | + // | GET https://bbb.example.com/join?... | | | + // |-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->| + // | | | | + // | | Send back meeting page HTML | | + // |<--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + // + @GET + @Path("join") + public async join( + joinRequest: BigBlueButtonJoinRequest, + @QueryParam("greenlightUrl") greenlightURL: string, + @QueryParam("fullName") fullName: string, + ): Promise { + // Parse the greenlight url and retrieve the path + const greenlightMeetingID = new URL(greenlightURL).pathname; + + LogService.info("BigBlueButton", "URL from client: " + greenlightURL); + LogService.info("BigBlueButton", "MeetingID: " + greenlightMeetingID); + LogService.info("BigBlueButton", "Name given from client: " + fullName); + LogService.info("BigBlueButton", joinRequest); + + // Query the URL the user has given us + let response = await this.doRequest("GET", greenlightURL); + if (!response || !response.body) { + throw new Error("Invalid response from Greenlight server while joining meeting"); + } + + // Attempt to extract the authenticity token + const matches = response.body.match(this.authenticityTokenRegexp); + if (matches.length < 2) { + throw new Error("Unable to find authenticity token for given 'greenlightUrl' parameter"); + } + const authenticityToken = matches[1]; + + // Give the authenticity token and desired name to greenlight, getting the + // join URL in return. Greenlight will send the URL back as a Location: + // header. We want to extract and return the contents of this header, rather + // than following it ourselves + + // Add authenticity token and full name to the query parameters + let queryParams = {authenticity_token: authenticityToken}; + queryParams[`${greenlightMeetingID}[join_name]`] = fullName; + + // Request the updated URL + response = await this.doRequest("POST", greenlightURL, queryParams, "{}", false); + if (!response || !response.body) { + throw new Error("Invalid response from Greenlight server while joining meeting"); + } + + if (!("location" in response.response.headers)) { + // We didn't get a meeting URL back. This could either happen due to an issue with the parameters + // sent to the server... or the meeting simply hasn't started yet. + + // Assume it hasn't started yet. Send a custom error code back to the client informing them to try + // again in a bit + return new ApiError( + 400, + {error: "Unable to find meeting URL in greenlight response"}, + "WAITING_FOR_MEETING_START", + ); + } + + // Return the join URL for the client to load + const joinUrl = response.response.headers["location"]; + LogService.info("BigBlueButton", "Sending back join URL: " + joinUrl) + return {url: joinUrl}; + } + + private async doRequest( + method: string, + url: string, + qs?: any, + body?: any, + followRedirect: boolean = true, + ): Promise { + // Query a URL, expecting an HTML response in return + return new Promise((resolve, reject) => { + request({ + method: method, + url: url, + qs: qs, + body: body, + followRedirect: followRedirect, + jar: true, // remember cookies between requests + json: false, // expect html + }, (err, res, _body) => { + try { + if (err) { + LogService.error("BigBlueButtonWidget", "Error calling " + url); + LogService.error("BigBlueButtonWidget", err); + reject(err); + } else if (!res) { + LogService.error("BigBlueButtonWidget", "There is no response for " + url); + reject(new Error("No response provided - is the service online?")); + } else if (res.statusCode !== 200 && res.statusCode !== 302) { + LogService.error("BigBlueButtonWidget", "Got status code " + res.statusCode + " when calling " + url); + LogService.error("BigBlueButtonWidget", res.body); + reject({body: res.body, status: res.statusCode}); + } else { + resolve({body: res.body, response: res}); + } + } catch (e) { + LogService.error("BigBlueButtonWidget", e); + reject(e); + } + }); + }); + } + +} diff --git a/src/models/Widget.ts b/src/models/Widget.ts new file mode 100644 index 0000000..3a26ef2 --- /dev/null +++ b/src/models/Widget.ts @@ -0,0 +1,7 @@ +export interface BigBlueButtonJoinRequest { + // A URL supplied by greenlight, BigBlueButton's nice UI project that is itself + // a BigBlueButton client + greenlightUrl: string; + // The name the user wishes to join the meeting with + fullName: string; +} diff --git a/src/models/WidgetResponses.ts b/src/models/WidgetResponses.ts new file mode 100644 index 0000000..854ea31 --- /dev/null +++ b/src/models/WidgetResponses.ts @@ -0,0 +1,4 @@ +export interface BigBlueButtonJoinResponse { + // The meeting URL the client should load to join the meeting + url: string; +} diff --git a/web/app/app.module.ts b/web/app/app.module.ts index e217674..c7a8def 100644 --- a/web/app/app.module.ts +++ b/web/app/app.module.ts @@ -119,6 +119,7 @@ import { AdminNewEditTermsComponent } from "./admin/terms/new-edit/new-edit.comp import { AdminTermsNewEditPublishDialogComponent } from "./admin/terms/new-edit/publish/publish.component"; import { TermsWidgetWrapperComponent } from "./widget-wrappers/terms/terms.component"; import { BigBlueButtonConfigComponent } from "./configs/widget/bigbluebutton/bigbluebutton.widget.component"; +import { BigBlueButtonApiService } from "./shared/services/integrations/bigbluebutton-api.service"; @NgModule({ imports: [ @@ -236,6 +237,7 @@ import { BigBlueButtonConfigComponent } from "./configs/widget/bigbluebutton/big AdminStickersApiService, MediaService, StickerApiService, + BigBlueButtonApiService, AdminTelegramApiService, TelegramApiService, AdminWebhooksApiService, From e3f27156e05de60e4ea19fc64ab93f83a1699c74 Mon Sep 17 00:00:00 2001 From: Andrew Morgan Date: Thu, 23 Jul 2020 23:10:27 +0200 Subject: [PATCH 16/30] Add the client-side widget code Here is where the actual code that runs in the widget's iframe is. This includes the HTML/CSS stuff, the definitions for API request/responses, some routing and the javascript which makes requests to the new /join api endpoint. --- web/app/app.module.ts | 2 + web/app/app.routing.ts | 2 + web/app/shared/models/integration.ts | 13 +- .../integrations/bigbluebutton-api.service.ts | 16 ++ .../bigbluebutton.component.html | 25 +++ .../bigbluebutton.component.scss | 32 ++++ .../bigbluebutton/bigbluebutton.component.ts | 152 ++++++++++++++++++ 7 files changed, 241 insertions(+), 1 deletion(-) create mode 100644 web/app/shared/services/integrations/bigbluebutton-api.service.ts create mode 100644 web/app/widget-wrappers/bigbluebutton/bigbluebutton.component.html create mode 100644 web/app/widget-wrappers/bigbluebutton/bigbluebutton.component.scss create mode 100644 web/app/widget-wrappers/bigbluebutton/bigbluebutton.component.ts diff --git a/web/app/app.module.ts b/web/app/app.module.ts index c7a8def..9d9dbf7 100644 --- a/web/app/app.module.ts +++ b/web/app/app.module.ts @@ -119,6 +119,7 @@ import { AdminNewEditTermsComponent } from "./admin/terms/new-edit/new-edit.comp import { AdminTermsNewEditPublishDialogComponent } from "./admin/terms/new-edit/publish/publish.component"; import { TermsWidgetWrapperComponent } from "./widget-wrappers/terms/terms.component"; import { BigBlueButtonConfigComponent } from "./configs/widget/bigbluebutton/bigbluebutton.widget.component"; +import { BigBlueButtonWidgetWrapperComponent } from "./widget-wrappers/bigbluebutton/bigbluebutton.component"; import { BigBlueButtonApiService } from "./shared/services/integrations/bigbluebutton-api.service"; @NgModule({ @@ -149,6 +150,7 @@ import { BigBlueButtonApiService } from "./shared/services/integrations/bigblueb FullscreenButtonComponent, VideoWidgetWrapperComponent, JitsiWidgetWrapperComponent, + BigBlueButtonWidgetWrapperComponent, GCalWidgetWrapperComponent, BigBlueButtonConfigComponent, RiotHomeComponent, diff --git a/web/app/app.routing.ts b/web/app/app.routing.ts index 1e36590..8bbd11c 100644 --- a/web/app/app.routing.ts +++ b/web/app/app.routing.ts @@ -2,6 +2,7 @@ import { RouterModule, Routes } from "@angular/router"; import { HomeComponent } from "./home/home.component"; import { RiotComponent } from "./riot/riot.component"; import { GenericWidgetWrapperComponent } from "./widget-wrappers/generic/generic.component"; +import { BigBlueButtonWidgetWrapperComponent } from "./widget-wrappers/bigbluebutton/bigbluebutton.component"; import { BigBlueButtonConfigComponent } from "./configs/widget/bigbluebutton/bigbluebutton.widget.component"; import { VideoWidgetWrapperComponent } from "./widget-wrappers/video/video.component"; import { JitsiWidgetWrapperComponent } from "./widget-wrappers/jitsi/jitsi.component"; @@ -292,6 +293,7 @@ const routes: Routes = [ {path: "generic", component: GenericWidgetWrapperComponent}, {path: "video", component: VideoWidgetWrapperComponent}, {path: "jitsi", component: JitsiWidgetWrapperComponent}, + {path: "bigbluebutton", component: BigBlueButtonWidgetWrapperComponent}, {path: "gcal", component: GCalWidgetWrapperComponent}, {path: "stickerpicker", component: StickerPickerWidgetWrapperComponent}, {path: "generic-fullscreen", component: GenericFullscreenWidgetWrapperComponent}, diff --git a/web/app/shared/models/integration.ts b/web/app/shared/models/integration.ts index a841e4d..6d8a444 100644 --- a/web/app/shared/models/integration.ts +++ b/web/app/shared/models/integration.ts @@ -64,6 +64,11 @@ export interface FE_Sticker { }; } +export interface FE_BigBlueButtonJoin { + // The meeting URL the client should load to join the meeting + url: string; +} + export interface FE_StickerConfig { enabled: boolean; stickerBot: string; @@ -88,8 +93,14 @@ export interface FE_JitsiWidget extends FE_Widget { }; } +export interface FE_BigBlueButtonWidget extends FE_Widget { + options: { + conferenceUrl: string; + }; +} + export interface FE_IntegrationRequirement { condition: "publicRoom" | "canSendEventTypes" | "userInRoom"; argument: any; expectedValue: any; -} \ No newline at end of file +} diff --git a/web/app/shared/services/integrations/bigbluebutton-api.service.ts b/web/app/shared/services/integrations/bigbluebutton-api.service.ts new file mode 100644 index 0000000..4a23cfe --- /dev/null +++ b/web/app/shared/services/integrations/bigbluebutton-api.service.ts @@ -0,0 +1,16 @@ +import { Injectable } from "@angular/core"; +import { AuthedApi } from "../authed-api"; +import { FE_BigBlueButtonJoin } from "../../models/integration" +import { HttpClient } from "@angular/common/http"; +import { ApiError } from "../../../../../src/api/ApiError"; + +@Injectable() +export class BigBlueButtonApiService extends AuthedApi { + constructor(http: HttpClient) { + super(http); + } + + public joinMeeting(url: string, name: string): Promise { + return this.authedGet("/api/v1/dimension/bigbluebutton/join", {greenlightUrl: url, fullName: name}).toPromise(); + } +} \ No newline at end of file diff --git a/web/app/widget-wrappers/bigbluebutton/bigbluebutton.component.html b/web/app/widget-wrappers/bigbluebutton/bigbluebutton.component.html new file mode 100644 index 0000000..cf07776 --- /dev/null +++ b/web/app/widget-wrappers/bigbluebutton/bigbluebutton.component.html @@ -0,0 +1,25 @@ + + +
+
+
+

+
+ +
+

BigBlueButton Conference

+ +
+
+
+
diff --git a/web/app/widget-wrappers/bigbluebutton/bigbluebutton.component.scss b/web/app/widget-wrappers/bigbluebutton/bigbluebutton.component.scss new file mode 100644 index 0000000..1918e2a --- /dev/null +++ b/web/app/widget-wrappers/bigbluebutton/bigbluebutton.component.scss @@ -0,0 +1,32 @@ +// component styles are encapsulated and only applied to their components +@import "../../../style/themes/themes"; + +@include themifyComponent() { + #bigBlueButtonContainer { + position: fixed; + top: 0; + bottom: 0; + left: 0; + right: 0; + } + + .join-conference-wrapper { + display: table; + position: absolute; + height: 100%; + width: 100%; + background-color: themed(widgetWelcomeBgColor); + } + + .join-conference-boat { + display: table-cell; + vertical-align: middle; + } + + .join-conference-prompt { + margin-left: auto; + margin-right: auto; + width: 90%; + text-align: center; + } +} diff --git a/web/app/widget-wrappers/bigbluebutton/bigbluebutton.component.ts b/web/app/widget-wrappers/bigbluebutton/bigbluebutton.component.ts new file mode 100644 index 0000000..a423e99 --- /dev/null +++ b/web/app/widget-wrappers/bigbluebutton/bigbluebutton.component.ts @@ -0,0 +1,152 @@ +import { Component, OnDestroy, OnInit } from "@angular/core"; +import { ActivatedRoute } from "@angular/router"; +import { WidgetApiService } from "../../shared/services/integrations/widget-api.service"; +import { Subscription } from "rxjs/Subscription"; +import { ScalarWidgetApi } from "../../shared/services/scalar/scalar-widget.api"; +import { CapableWidget } from "../capable-widget"; +import { DomSanitizer, SafeUrl } from "@angular/platform-browser"; +import { BigBlueButtonApiService } from "../../shared/services/integrations/bigbluebutton-api.service"; +import { FE_BigBlueButtonJoin } from "../../shared/models/integration"; + +@Component({ + selector: "my-bigbluebutton-widget-wrapper", + templateUrl: "bigbluebutton.component.html", + styleUrls: ["bigbluebutton.component.scss"], +}) +export class BigBlueButtonWidgetWrapperComponent extends CapableWidget implements OnInit, OnDestroy { + + public canEmbed = true; + + /** + * User metadata passed to us by the client + */ + private conferenceUrl: string; + private displayName: string; + private userId: string; + + /** + * The poll period in ms while waiting for a meeting to start + */ + private pollIntervalMillis = 5000; + + /** + * Subscriber for messages from the client via the postMessage API + */ + private bigBlueButtonApiSubscription: Subscription; + + /** + * A status message to display to the user in the widget, typically for loading messages + */ + public statusMessage: string; + + /** + * Whether we are currently in a meeting + */ + private inMeeting: boolean = false; + + /** + * The URL to embed into the iframe + */ + public embedUrl: SafeUrl = null; + + constructor(activatedRoute: ActivatedRoute, + private bigBlueButtonApi: BigBlueButtonApiService, + private widgetApi: WidgetApiService, + private sanitizer: DomSanitizer) { + super(); + this.supportsAlwaysOnScreen = true; + + let params: any = activatedRoute.snapshot.queryParams; + + console.log("BigBlueButton: Given greenlight url: " + params.conferenceUrl); + + this.conferenceUrl = params.conferenceUrl; + this.displayName = params.displayName; + this.userId = params.userId || params.email; // Element uses `email` when placing a conference call + + // Set the widget ID if we have it + ScalarWidgetApi.widgetId = params.widgetId; + } + + public ngOnInit() { + super.ngOnInit(); + } + + public onIframeLoad() { + if (this.inMeeting) { + // The meeting has ended and we've come back full circle + this.inMeeting = false; + this.statusMessage = null; + this.embedUrl = null; + + ScalarWidgetApi.sendSetAlwaysOnScreen(false); + return; + } + + // Have a toggle for whether we're in a meeting. We do this as we don't have a method + // of checking which URL was just loaded in the iframe (due to different origin domains + // and browser security), so we have to guess that it'll always be the second load (the + // first being joining the meeting) + this.inMeeting = true; + + // We've successfully joined the meeting + ScalarWidgetApi.sendSetAlwaysOnScreen(true); + } + + public joinConference(updateStatusMessage: boolean = true) { + if (updateStatusMessage) { + // Inform the user that we're loading their meeting + this.statusMessage = "Joining conference..."; + } + + // Generate a nick to display in the meeting + const joinName = `${this.displayName} (${this.userId})`; + + // Make a request to Dimension requesting the join URL + console.log("BigBlueButton: joining via greenlight url:", this.conferenceUrl); + this.bigBlueButtonApi.joinMeeting(this.conferenceUrl, joinName).then((response) => { + if ("errorCode" in response) { + // This is an instance of ApiError + if (response.errorCode == "WAITING_FOR_MEETING_START") { + // The meeting hasn't started yet + this.statusMessage = "Waiting for conference to start..."; + + // Poll until it has + setTimeout(this.joinConference.bind(this), this.pollIntervalMillis, false); + return; + } + + // Otherwise this is a generic error + this.statusMessage = "An error occurred while loading the meeting"; + } + + const joinUrl = (response as FE_BigBlueButtonJoin).url; + + // Check if the given URL is embeddable + this.widgetApi.isEmbeddable(joinUrl).then(result => { + this.canEmbed = result.canEmbed; + this.statusMessage = null; + + // Embed the return meeting URL, joining the meeting + this.embedUrl = this.sanitizer.bypassSecurityTrustResourceUrl(joinUrl); + + // Inform the client that we would like the meeting to remain visible for its duration + ScalarWidgetApi.sendSetAlwaysOnScreen(true); + }).catch(err => { + console.error(err); + this.canEmbed = false; + this.statusMessage = "Unable to embed meeting"; + }); + }); + } + + public ngOnDestroy() { + if (this.bigBlueButtonApiSubscription) this.bigBlueButtonApiSubscription.unsubscribe(); + } + + protected onCapabilitiesSent(): void { + super.onCapabilitiesSent(); + ScalarWidgetApi.sendSetAlwaysOnScreen(false); + } + +} From aed5fde3918c84f7364ae69c3f0444c00966b08b Mon Sep 17 00:00:00 2001 From: Andrew Morgan Date: Thu, 23 Jul 2020 23:48:08 +0200 Subject: [PATCH 17/30] Drop m.bigbluebutton event type --- web/app/shared/models/widget.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/app/shared/models/widget.ts b/web/app/shared/models/widget.ts index 0400c80..795189b 100644 --- a/web/app/shared/models/widget.ts +++ b/web/app/shared/models/widget.ts @@ -1,7 +1,7 @@ import { WidgetsResponse } from "./server-client-responses"; export const WIDGET_CUSTOM = ["m.custom", "customwidget", "dimension-customwidget"]; -export const WIDGET_BIGBLUEBUTTON = ["m.bigbluebutton", "bigbluebutton", "dimension-bigbluebutton"]; +export const WIDGET_BIGBLUEBUTTON = ["bigbluebutton", "dimension-bigbluebutton"]; export const WIDGET_ETHERPAD = ["m.etherpad", "etherpad", "dimension-etherpad"]; export const WIDGET_GOOGLE_DOCS = ["m.googledoc", "googledocs", "dimension-googledocs"]; export const WIDGET_GOOGLE_CALENDAR = ["m.googlecalendar", "googlecalendar", "dimension-googlecalendar"]; From bc36a7b6c373895d50f6066bf8860a080448fc61 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Jul 2020 21:46:32 +0000 Subject: [PATCH 18/30] Bump elliptic from 6.5.0 to 6.5.3 Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.0 to 6.5.3. - [Release notes](https://github.com/indutny/elliptic/releases) - [Commits](https://github.com/indutny/elliptic/compare/v6.5.0...v6.5.3) Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index d7bfab5..944179b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3694,9 +3694,9 @@ "dev": true }, "elliptic": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.0.tgz", - "integrity": "sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", "dev": true, "requires": { "bn.js": "^4.4.0", From 259650ec7e26f13117ff2558b2c63ad0fdac280d Mon Sep 17 00:00:00 2001 From: Andrew Morgan Date: Tue, 18 Aug 2020 11:30:12 +0200 Subject: [PATCH 19/30] Ensure the iframe can request mic/cam permissions Found while fixing the same issue on Scalar: https://github.com/vector-im/element-web/issues/14901 --- .../widget-wrappers/bigbluebutton/bigbluebutton.component.html | 1 + 1 file changed, 1 insertion(+) diff --git a/web/app/widget-wrappers/bigbluebutton/bigbluebutton.component.html b/web/app/widget-wrappers/bigbluebutton/bigbluebutton.component.html index cf07776..c42759f 100644 --- a/web/app/widget-wrappers/bigbluebutton/bigbluebutton.component.html +++ b/web/app/widget-wrappers/bigbluebutton/bigbluebutton.component.html @@ -6,6 +6,7 @@ allowfullscreen width="100%" height="100%" + allow="camera; microphone; encrypted-media; autoplay;" >
From fb8549344691ad31c494c89a5e4f19801d49fb5e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 4 Sep 2020 00:27:55 +0000 Subject: [PATCH 20/30] Bump node-sass from 4.12.0 to 4.13.1 Bumps [node-sass](https://github.com/sass/node-sass) from 4.12.0 to 4.13.1. - [Release notes](https://github.com/sass/node-sass/releases) - [Changelog](https://github.com/sass/node-sass/blob/master/CHANGELOG.md) - [Commits](https://github.com/sass/node-sass/compare/v4.12.0...v4.13.1) Signed-off-by: dependabot[bot] --- package-lock.json | 108 ++++++++++++++++++++++++---------------------- package.json | 2 +- 2 files changed, 57 insertions(+), 53 deletions(-) diff --git a/package-lock.json b/package-lock.json index d7bfab5..94cf17e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5284,9 +5284,9 @@ } }, "globule": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", - "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz", + "integrity": "sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==", "dev": true, "requires": { "glob": "~7.1.1", @@ -5446,9 +5446,9 @@ } }, "hosted-git-info": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", "dev": true }, "hpack.js": { @@ -5770,9 +5770,9 @@ "dev": true }, "in-publish": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", - "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz", + "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==", "dev": true }, "indent-string": { @@ -5995,13 +5995,10 @@ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" }, "is-finite": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "dev": true }, "is-fullwidth-code-point": { "version": "1.0.0", @@ -6197,9 +6194,9 @@ "dev": true }, "js-base64": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", - "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==", + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", "dev": true }, "js-levenshtein": { @@ -7325,9 +7322,9 @@ } }, "node-sass": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.12.0.tgz", - "integrity": "sha512-A1Iv4oN+Iel6EPv77/HddXErL2a+gZ4uBeZUy+a8O35CFYTXhgA8MgLCWBtwpGZdCvTvQ9d+bQxX/QC36GDPpQ==", + "version": "4.13.1", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.13.1.tgz", + "integrity": "sha512-TTWFx+ZhyDx1Biiez2nB0L3YrCZ/8oHagaDalbuBSlqXgUPsdkUSzJsVxeDO9LtPB49+Fh3WQl3slABo6AotNw==", "dev": true, "requires": { "async-foreach": "^0.1.3", @@ -7337,7 +7334,7 @@ "get-stdin": "^4.0.1", "glob": "^7.0.3", "in-publish": "^2.0.0", - "lodash": "^4.17.11", + "lodash": "^4.17.15", "meow": "^3.7.0", "mkdirp": "^0.5.1", "nan": "^2.13.2", @@ -7368,6 +7365,12 @@ "supports-color": "^2.0.0" } }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", @@ -7411,9 +7414,9 @@ }, "dependencies": { "semver": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", - "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true } } @@ -10354,9 +10357,9 @@ } }, "sass-graph": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", - "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.6.tgz", + "integrity": "sha512-MKuEYXFSGuRSi8FZ3A7imN1CeVn9Gpw0/SFJKdL1ejXJneI9a5rwlEZrKejhEFAA3O6yr3eIyl/WuvASvlT36g==", "dev": true, "requires": { "glob": "^7.0.0", @@ -10987,9 +10990,9 @@ "dev": true }, "spdx-correct": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", - "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", @@ -10997,15 +11000,15 @@ } }, "spdx-exceptions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", - "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", "dev": true }, "spdx-expression-parse": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", - "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "requires": { "spdx-exceptions": "^2.1.0", @@ -11013,9 +11016,9 @@ } }, "spdx-license-ids": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", - "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", "dev": true }, "spdy": { @@ -11200,9 +11203,9 @@ }, "dependencies": { "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -12846,9 +12849,9 @@ } }, "yargs": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", - "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.1.tgz", + "integrity": "sha512-huO4Fr1f9PmiJJdll5kwoS2e4GqzGSsMT3PPMpOwoVkOK8ckqAewMTZyA6LXVQWflleb/Z8oPBEvNsMft0XE+g==", "dev": true, "requires": { "camelcase": "^3.0.0", @@ -12863,7 +12866,7 @@ "string-width": "^1.0.2", "which-module": "^1.0.0", "y18n": "^3.2.1", - "yargs-parser": "^5.0.0" + "yargs-parser": "5.0.0-security.0" }, "dependencies": { "camelcase": { @@ -12881,12 +12884,13 @@ } }, "yargs-parser": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", - "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "version": "5.0.0-security.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0-security.0.tgz", + "integrity": "sha512-T69y4Ps64LNesYxeYGYPvfoMTt/7y1XtfpIslUeK4um+9Hu7hlGoRtaDLvdXb7+/tfq4opVa2HRY5xGip022rQ==", "dev": true, "requires": { - "camelcase": "^3.0.0" + "camelcase": "^3.0.0", + "object.assign": "^4.1.0" }, "dependencies": { "camelcase": { diff --git a/package.json b/package.json index cc4785f..aeb2fa3 100644 --- a/package.json +++ b/package.json @@ -100,7 +100,7 @@ "mini-css-extract-plugin": "^0.7.0", "ng2-breadcrumbs": "^0.1.281", "ngx-modialog": "^5.0.1", - "node-sass": "^4.12.0", + "node-sass": "^4.13.1", "postcss-cssnext": "^3.1.0", "postcss-import": "^12.0.1", "postcss-loader": "^3.0.0", From 0a1dbef33983357cc3717b840c20003a7c080446 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 10 Dec 2020 17:46:33 +0000 Subject: [PATCH 21/30] Bump ini from 1.3.5 to 1.3.7 Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.7. - [Release notes](https://github.com/isaacs/ini/releases) - [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.7) Signed-off-by: dependabot[bot] --- package-lock.json | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index d7bfab5..3ce631f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4734,12 +4734,6 @@ "dev": true, "optional": true }, - "ini": { - "version": "1.3.5", - "bundled": true, - "dev": true, - "optional": true - }, "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, @@ -5810,9 +5804,9 @@ "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", + "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==" }, "internal-ip": { "version": "4.3.0", From eaf146839f3acab8fec4a4d2330515d8882737ef Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Mon, 28 Dec 2020 20:15:18 -0700 Subject: [PATCH 22/30] Update lockfile --- package-lock.json | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/package-lock.json b/package-lock.json index c40e35d..dab1eed 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5284,7 +5284,7 @@ "dev": true, "requires": { "glob": "~7.1.1", - "lodash": "~4.17.12", + "lodash": "~4.17.10", "minimatch": "~3.0.2" } }, @@ -7359,6 +7359,18 @@ "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", "dev": true }, + "sass-graph": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", + "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^13.3.2" + } + }, "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", @@ -10349,18 +10361,6 @@ "xtend": "^4.0.1" } }, - "sass-graph": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.6.tgz", - "integrity": "sha512-MKuEYXFSGuRSi8FZ3A7imN1CeVn9Gpw0/SFJKdL1ejXJneI9a5rwlEZrKejhEFAA3O6yr3eIyl/WuvASvlT36g==", - "dev": true, - "requires": { - "glob": "^7.0.0", - "lodash": "^4.0.0", - "scss-tokenizer": "^0.2.3", - "yargs": "^13.3.2" - } - }, "sass-loader": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.1.0.tgz", From 7ceae45ed245c24f7f356b218601b2a2df2717b3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 29 Dec 2020 03:16:29 +0000 Subject: [PATCH 23/30] Bump http-proxy from 1.17.0 to 1.18.1 Bumps [http-proxy](https://github.com/http-party/node-http-proxy) from 1.17.0 to 1.18.1. - [Release notes](https://github.com/http-party/node-http-proxy/releases) - [Changelog](https://github.com/http-party/node-http-proxy/blob/master/CHANGELOG.md) - [Commits](https://github.com/http-party/node-http-proxy/compare/1.17.0...1.18.1) Signed-off-by: dependabot[bot] --- package-lock.json | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index dab1eed..4f5000c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3922,12 +3922,6 @@ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" }, - "eventemitter3": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz", - "integrity": "sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==", - "dev": true - }, "events": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/events/-/events-3.0.0.tgz", @@ -5627,14 +5621,22 @@ "dev": true }, "http-proxy": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz", - "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, "requires": { - "eventemitter3": "^3.0.0", + "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", "requires-port": "^1.0.0" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + } } }, "http-proxy-middleware": { From c2b37564b434a8d6ee00beda3596092e7c2f82c4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 29 Dec 2020 03:16:30 +0000 Subject: [PATCH 24/30] Bump dot-prop from 4.2.0 to 4.2.1 Bumps [dot-prop](https://github.com/sindresorhus/dot-prop) from 4.2.0 to 4.2.1. - [Release notes](https://github.com/sindresorhus/dot-prop/releases) - [Commits](https://github.com/sindresorhus/dot-prop/compare/v4.2.0...v4.2.1) Signed-off-by: dependabot[bot] --- package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index dab1eed..d3e2454 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3632,9 +3632,9 @@ } }, "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz", + "integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==", "dev": true, "requires": { "is-obj": "^1.0.0" From fbad5f7d306976145da57af91a7b60af5325e40b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 29 Dec 2020 03:16:57 +0000 Subject: [PATCH 25/30] Bump bl from 4.0.2 to 4.0.3 Bumps [bl](https://github.com/rvagg/bl) from 4.0.2 to 4.0.3. - [Release notes](https://github.com/rvagg/bl/releases) - [Commits](https://github.com/rvagg/bl/compare/v4.0.2...v4.0.3) Signed-off-by: dependabot[bot] --- package-lock.json | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index dab1eed..a3eb819 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1832,7 +1832,8 @@ "base64-js": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", - "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==" + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", + "dev": true }, "basic-auth": { "version": "2.0.1", @@ -1869,22 +1870,27 @@ "dev": true }, "bl": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.2.tgz", - "integrity": "sha512-j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz", + "integrity": "sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==", "requires": { "buffer": "^5.5.0", "inherits": "^2.0.4", "readable-stream": "^3.4.0" }, "dependencies": { + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, "buffer": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz", - "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4" + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, "inherits": { From 570b6a637072edde05fa258b328c4685c70a270c Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Mon, 28 Dec 2020 20:27:07 -0700 Subject: [PATCH 26/30] Update mobile support message Closes https://github.com/turt2live/matrix-dimension/pull/365 --- docs/installing.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/installing.md b/docs/installing.md index 0e55652..6ae75da 100644 --- a/docs/installing.md +++ b/docs/installing.md @@ -1,8 +1,8 @@ ## Installing Dimension -**Note**: Dimension is currently only capable of running with Element Web or Desktop. The iOS and Android -apps are not directly supported without compiling your own versions. In future, this should be handled -by [an integration manager specification](https://github.com/turt2live/matrix-dimension/issues/262). +**Note**: Dimension is only supported in Element Web and Desktop at the moment. With some effort, +it can be used in other clients or Element iOS/Android, though is not guaranteed to work. In future, +this should be handled by [an integration manager specification](https://github.com/turt2live/matrix-dimension/issues/262). There are several options for installing Dimension. The easiest is dependent on how you have Element and your homeserver set up. If you're using [matrix-docker-ansible-deploy](https://github.com/spantaleev/matrix-docker-ansible-deploy), From 2fd4bf46885e84ddaf898115ae5b65c9b1b95107 Mon Sep 17 00:00:00 2001 From: ImgBotApp Date: Tue, 29 Dec 2020 03:29:26 +0000 Subject: [PATCH 27/30] [ImgBot] Optimize images *Total -- 301.94kb -> 266.35kb (11.79%) /web/public/img/logo/favicon/safari-pinned-tab.svg -- 0.64kb -> 0.40kb (38.05%) /web/public/img/avatars/webhooks.png -- 4.03kb -> 2.82kb (29.91%) /web/public/img/avatars/echo.png -- 4.71kb -> 3.57kb (24.05%) /web/public/img/avatars/rssbot.png -- 7.20kb -> 5.69kb (20.97%) /web/public/img/avatars/github.png -- 4.35kb -> 3.46kb (20.35%) /web/public/img/avatars/etherpad.png -- 5.44kb -> 4.45kb (18.16%) /web/public/img/avatars/spotify.png -- 4.58kb -> 3.76kb (17.9%) /web/public/img/avatars/imgur.png -- 2.65kb -> 2.20kb (17.17%) /web/public/img/avatars/twitch.png -- 2.89kb -> 2.40kb (17%) /web/public/img/avatars/irc.png -- 3.69kb -> 3.16kb (14.41%) /web/public/img/avatars/bigbluebutton.png -- 12.99kb -> 11.31kb (12.95%) /web/public/img/screenshot.png -- 78.18kb -> 68.21kb (12.76%) /web/public/img/avatars/tradingview.png -- 4.26kb -> 3.74kb (12.11%) /web/public/img/logo/banner-sm.png -- 3.46kb -> 3.04kb (12.09%) /web/public/img/avatars/custombots.png -- 1.13kb -> 1.00kb (11.38%) /web/public/img/avatars/telegram.png -- 8.46kb -> 7.51kb (11.23%) /web/public/img/avatars/google.png -- 3.94kb -> 3.54kb (10.21%) /web/public/img/no_stickers.png -- 102.64kb -> 92.38kb (10%) /web/public/img/avatars/slack.png -- 13.48kb -> 12.25kb (9.15%) /web/public/img/avatars/googlecalendar.png -- 4.78kb -> 4.40kb (7.85%) /web/public/img/avatars/grafana.png -- 5.44kb -> 5.02kb (7.73%) /web/public/img/avatars/customwidget.png -- 12.66kb -> 11.76kb (7.1%) /web/public/img/avatars/youtube.png -- 4.01kb -> 3.98kb (0.78%) /web/public/img/logo/made-for-matrix.svg -- 6.33kb -> 6.30kb (0.48%) Signed-off-by: ImgBotApp --- web/public/img/avatars/bigbluebutton.png | Bin 13303 -> 11580 bytes web/public/img/avatars/custombots.png | Bin 1160 -> 1028 bytes web/public/img/avatars/customwidget.png | Bin 12961 -> 12041 bytes web/public/img/avatars/echo.png | Bin 4819 -> 3660 bytes web/public/img/avatars/etherpad.png | Bin 5572 -> 4560 bytes web/public/img/avatars/github.png | Bin 4451 -> 3545 bytes web/public/img/avatars/google.png | Bin 4037 -> 3625 bytes web/public/img/avatars/googlecalendar.png | Bin 4893 -> 4509 bytes web/public/img/avatars/grafana.png | Bin 5575 -> 5144 bytes web/public/img/avatars/imgur.png | Bin 2714 -> 2248 bytes web/public/img/avatars/irc.png | Bin 3776 -> 3232 bytes web/public/img/avatars/rssbot.png | Bin 7369 -> 5824 bytes web/public/img/avatars/slack.png | Bin 13807 -> 12544 bytes web/public/img/avatars/spotify.png | Bin 4687 -> 3848 bytes web/public/img/avatars/telegram.png | Bin 8665 -> 7692 bytes web/public/img/avatars/tradingview.png | Bin 4359 -> 3831 bytes web/public/img/avatars/twitch.png | Bin 2958 -> 2455 bytes web/public/img/avatars/webhooks.png | Bin 4122 -> 2889 bytes web/public/img/avatars/youtube.png | Bin 4105 -> 4073 bytes web/public/img/logo/banner-sm.png | Bin 3540 -> 3112 bytes .../img/logo/favicon/safari-pinned-tab.svg | 16 +--------------- web/public/img/logo/made-for-matrix.svg | 7 +------ web/public/img/no_stickers.png | Bin 105107 -> 94597 bytes web/public/img/screenshot.png | Bin 80061 -> 69846 bytes 24 files changed, 2 insertions(+), 21 deletions(-) diff --git a/web/public/img/avatars/bigbluebutton.png b/web/public/img/avatars/bigbluebutton.png index 43f8aa5a79a037f38b201e46cff274f1b991d6c8..5c6849afb3ef0e6540ea7a4df771f79743ac3aeb 100644 GIT binary patch literal 11580 zcmZ{KWmFtZu=cXJOM*K=7YGi)-F@-J-95N1?(UlK;_echpuu&~AVGr@+%Nb3`+j_9 zPEVcbIaPh8yQjLUo+nyOMHUl{1PuTHV9Lu$f#0R~|27n)_dCA@@7%jUuohPq2LKup z(VtBb-=C?><-p1SfG<4&01X2G9^bp5hX8;FI{ka-k*php=@U$cIet6lDuvkMCZ=Bcb2X&O3(4n2Gh{mp{UU7XvfwQ3q&DiK zzFdyZG+`JXgz8!J0WnZ$gIl$$?rMF{H@JejZhG!2ebv1bflEs_9*b3#ca>-71*cw9 z!kHH&?cL|CrfYaMW)ir4yf~lX&GDmR2N^>dv1Jna5phu2r|}BW=#l$AhL(wC(avz0 zoWO0DgYAxLr@MlVlqg9BKJWv&ry{ zRC@+-Rd`wk4qi1+7Ecy2ZcHpC9t~6uDhIfLTJO6;Dd;cm#QjBWFGuq`{Yu}p<=1^Z zv78B|&MhX-0hcY{WgnUl7}~^Y5Fy*zw22jt`WHi}e2dM4JKF*X#Qc67)(q*#sQEnzE$hEHi>8#*6J7EDFtWg-PCMj*tRjbk=kmJ} zXo@W+iLlPsUUl&B4KB}C2f35@PdDJT8|Nzp>NvdCv65OgF~kr00j`yGc0pIF!bVa7 zbsUdz-*MLgbuEQz`$e~gxVCDm0}X#<=p-&yVKEp?k}y}UX)vK}z<8?f6j9e$Q5uF$ zEl&GA&F^F1Ce+8q<@-V5H#m&%Z9y(PxB)2N^~0O_IPL4TBbt#?Dq6}i-1*T<%&@9D zb7t2yCCnu$F!z8C`VvWRfs->3NhZvim(G9m;V_bFk9*yx#B{KWLAafksTHh$qB`_% zOl$=)VXc{su`o^}90MNC&k*nwH?)rPsw@)8m%_&oxPDdGFO%|b3FSU24K_SlE5ndiGD++@*%8UsCn+sRAAYPAkC0Y^sVh?$$ zhTzW_4i$58{!_y_i<7#&t(f+mYibi~IN&}HLz_K$0|afVY+T)HVvr(43u#6#5&rLi zO$cMjb~}ki6G>A-M3E3_LG#@N1|AT+tTslBxILW?4hmd4>)EN(gFZP?u3}NY0{Z;q zQ6%xX{6I;LG$seYl)`k*Z=?Wb^M6E3 z7OF2g1~Nl%m5>Dl2nyUb+)J9(i{Jo!_g!}>pyzLBkV=W!Q(Y=fud0NnJzFitsV)^= z4J+msYgsvzcD;=fV_&egVLK&B1ja-K4#8^>Po-9ILvj?p zoUeNS#h6dmHXTghXVOh~LJu&c z33T_xBxufJB8}Rb3)7#tb%QKizTd4`v-AnSNG>Vjb%r;$GVKvzrGZI2RsO6uEp0!$ z!-_N~`fnUT_6dFQ*a9Ob)>|k{&cG~y+r82BLkuma=4KE4fig+H4+TEiJjW?+kCPo% zJ~ui>eSTy!`bJp7Uq`EmBm&(ECZx9ptJkJZPd04zMhC#%4fZD7f1CoUN4i`v z&$jKD@ir4J>(m28W=H6l!FU0^@Sk0=T$S_~K?Be}-BY3#d8ASW#xG2ItlU=P@B?-p zl&~;E2Wa}V_23Lp0-`qdK$9gZ#69D8-HhB`_x83gcKb$^LJ7C5_DjKbxpk0^FhBfi zS`V8Ek!%Tb2PQ{{9LncaKH#da3xA>HVL1L*K^aTqC8t%0e!C)THTCPcXcF^BbqBi$ z9Gam~d1mB2ZOR2mkcqd~rh6G{Uw0dJYid$wNwbqShipvtb_a=Ljio`rB3AXO6S`!6 zTD~%dwr6>2{Xiauqum!ZkNm3U94%Lmyb>NWdMV<~@c3!a+v?B8*#%gHe?wG~h9%n? zT@6{YThQ3*OM2n&^S4=BWEbbR{HmzkeDG>-65?6J&1w6-vUO2I;g-Ckl9{B*j|k1- zF1=dP&MEj^C8j#INsy9QwUyZ)-3JP`P?SkWM;kj^-a{3uh&0};8|s=xzxTiX z?V%a2y)LMnl=f9d?ii8}&|!{m@~R$6*Kr87L~XC-)O4fzA<&#iUrxX5UT(l!l4d^l zK|sz|q%Q{qS-L4T$IAogln6OtRm_)WSbeQEvMfKDc`&0et?`X`w|_?g)6hhrEpt!MWb83Yu7^CBFf79Iumj%)w=&;d&`yfG4ZBB)bY9;a$@-{bf zwh?6L3iT7Y4ktt9chGytHEc6WB9!XO-DoGbb~YwmU8B0*W}yd(6D_zWH0H5trT&VM zH;voZWJ(ky&}W`%u5gE|{!%N9*EejesszwsN>h+__}znA0;X09_T^m(fgM>wgIry7 z&Q-NBwtDghO!nXCYSx|Y_QFP5tWe+#0`{;RHd~Pr%p=6~00<)nIs>kifx7rEZD^1m zR~Laz^inW;y;iOPil>Tx??!3_7F0ZUOh5fK-VsVJ-m0^(n#;e~sH!FnQ+ogWDLjH9SZK&TtZXzk4NXNZ>lkG4^_9fH>omOm4`!y>P6Uq&bCLJJ*m(K2~>;t*oFV&i z;fPBS%Vm>%ASK&Nemt-WoB($g;c@CcpS~srJ@9cu>Lw~z71by*Hw|;+fz{bd%lfUf zTbY}G`rL6yBPQtm?-w$))Czz}eQvICSRe=+R+A?F)Dr$c?he zipuFDIVt<%sJN9=<@vp)1!GBzr%AYFN9{ao$0o0(5I>(ho~L(Ue^TGY>?^{wXdChm z1BNVVnOZ)0Inl_8Lg9F&usJL6r{-A>HoXU`p&d*7BwB|8jRt;d;I?8Z`T=|+j3o7g zhK;Rlh~pZEwYDV65BROjJ0bsbbN773iJJ)Q4G|Wi=ScACZ%EZetX+-k_5*3Xl?OW6 zNW4!&!I)3aGPCTF4=_+qrqOfz`_@dD^l(c~DlH6d=kn5fz zutZLb*W2ryOrZ%mXYQ}xgh&4fhW8wxGpr3gr5A7cH`VD9(*cD1W&&^-OJgHI+l zbCsn=TFQHG%T!54B|M>~?582lY)$uzqz)^I2~fmD{>iQ8za%;PVSd4m*;Rvon(lI( zQYj?z4KeazoW-Bg?8q+{uAXN5JeIog!~O9W$8;s~K?9nDy{a%N7cB_Tese`_q&6WN zP@~asnzH8}z18vgw)a`Vjsu#cjnxooQhSBo#S`8##d=ZE&wRymB&0 zG&ka$O$jAUOdL^(+gWZ<*N90+r>;Jx+s=vP-V4ub-%dZG4M8WM**%q3kFJOS9ZF{b5qdeolTM|~Ro1#&MDR7tj7@6)-S9H%xHzyNuN{a?{103q z#SfK>5nX7zQsHOl3lNNq1#IpIu!E}fx-0qJsx>1H$nMgP%LQvvE2lNRuDbOy!p~ZM z&-l`t;{BKQErxO$EjjMIFM?~2UZR4Ez%b_BvRLhew#)UX>nHW?6|+lTF#}G9z6t+y zoPRV{_@%L|O!YqIk+ugIG?JEIz`n2rT-W?HuN|f4VltP$w(|W~@&nLD5-w$RXg=Js5%gAo zl9;AlsG!N=(T&3<(9Xld+uw>)u*P%ZkTJG5IyLoan1_f~Ko~am0oTe3M8waFMlIzX z*8&XQ*zkICu~z=S!-wI&HoF9E8XTy{@0!3BMS+3^dA8NNgil(;iIJgqOrPLzS6ah= zqYcrBktqDYHL2ApJ-+vxcO_0ZW_|cN@J1FPSo`LCK|JzyZaKu*WshkSFC8#ll4)jQ zu`8vEv=?5FCILCly8j))q?XWH; zPEGZJbX=a!!xo%@2Y|_Ht0u?{Wiu#ABD8NdpPQS58$PA$+|pIEmn<6%?G;du%{kzT zTHEL^8>*?~GyuarKOcMhHcRuMy9YWZ+|IG)tO6kacGT__Sbd`X_OK{_t{L$17&d-kG(|%wD zny_JxlxyQV`J68<*Y^ahAbZ)_;mIbD4PUVdC5})8kg2}x;@pxid=WAex5qwA?}(?M zl)PJAtal*R4n(nSYjoSl0}{nCzgHjz>@e9$6c9h6XG{}3h%HpvRX3G0S2?7cpUnJm z$So5f*D>8xl+{7la{B?7%gbXjU&`9Pf5f+w-L1N#zxm2bvFQ$&K523>GmscdH*M=8 zsU>c1<_%BJLV!lsB46l4q)LaiQB6&-&ul<|S?1MREb-c(d`yOWlMkv}etFx5qUz@% zz;8%>H6ZjW@b?)aFOVpN#(wVk=(T=ny8dtD+W=1{E^n=?_8{>m8pe|Mz$(mj-QH?o z>Gl@eBOGsiO>})?!r4kR^Y7vgS~E9+#C}C!w`+GG;SKC+5O(?*&*Yw|gHrgGrnD5q zn0dvF^|e8FP;lenbMK_kGABQOuuhhg#zoC#L)qS>6{7R4%aS{SQt8k^()Jz*i1Kmy0quROc+J zXxQ?ZRw#4p5C|>+-7NN4|nEH2c2!|Z*XRY&q=-txYPP&e)D$}Tbo6`_$ z+x4H6E7JPF_??mYE+sn>7c#;f^VEpRJ4)l5{`>(WK`pB;X|!CLzz>Z0HBxgT%8+t| zBFiuOdf>c{s;tx&Z&d9u#rE^HAdKF(Uw-WTJbq*1J(t5?J6(=IR%J8@Tk7+px3cOq zZ3h7ppji^ma<=Wt30Tj6v~d(rZ!*qKTnApT=sx&$ofpHY1Uk+0vHj8_M|v_jC1$Rh z(RWAbk3{+O!uDry`I-sw;omsh2#-!LuHcj#b(m~5OJWNBgwizq6{^V}C!|co@1)U; z2+QU{DEx{R;8a^IfzFhl%8T-ri*l~s4zqX@>{Cp|eM_&~uFsE=qKVc8em8007{2uj z_vMBb@~SoRpkF7ARB`W-t3ip`k`=UqxbH_uFc98QM%{1&h#QwzI|Zb_6f$h-M=gLX zRcGl6^<65UpZo1z5m5M?NMHZvg|cD1ae?p;(xB@wSOlMu4;{?QUamn1fXt)MHP3}~ z1cu;!=R=D)LvUw8AVSbbV;`wvZ#LfhZdV3(ykPW$cx2w^&(QRiH=H3+(Y|9`g330w z$W2@Oo{rb{@uokS#yqogE?eh`n}fkp7>vH|*3VY_w(|lMZ#N|W1p+iNvc#PqlA=Mj zL3kp*R7vj)-@ zhHeXtMTHAr&)VX)ldT0INI~gFE$Y8^oJ)1U5m|e7qGl+AYBX4}fKbDde&2@P)cx-A z@z!pY3&6#KDwf%F>JuCg0j|}tu%QrY#z9Cw7h0`Rkv7meS>-z7=sa*+V^8o*u2XX) zA?pX1v7iPi$Qwnf=+~7yzMQLtW9NcbG9-ZCYd580N1$#H`c#yxs~yU&Wgg&I^NR29 z_V?!&@@IO_W=GVujEE*)5suh~%WNgtvx+k8tyzX!(+l^uoodW{^bRX)YleRhWDfQu zPST&jAv;@-IR&UDz+@~%?>}@cfDQzxP}GO#TEaFYEo^}wc;aP>PJa*`oK9-Zc}AU1 zZrXKDKj*|6L7X*FLegkF+E}8&OpyU>ltTf=`raQp3_eE=4{wl`%FCzDli>}TWUvj@aX{-!!Alfrs5?7j zYdLXg(7lcY5`1cLbz!<(?__d3BiL7k2&9Y@u?HDVl4>GK`Uh#(^3w--Ro1M zLv=JGk}os~j~Hfv#jv2d?=G=Dqg63gHZgxn;uQ5wJe#86)xhLUv*y|Hr7Ov)mcWr{ zyl>_8%EX4AQy8dN#jY!rJYcY5!wUh^x;d^xrS*L>f_jXcD+>TrA&~a35?hOABc5+T zyHdp%-Kxk|*M%beq9^q38NuAq1{Q$EJ~BY(LsS!4IY|Hs&-4n{ z58n3Jx>%8`k_@|0(zTEC>p@)J6cx5e{jH8{z<;^(K5Mj90|Zf482HL^Et_1vU_{Hh z3RJbuHT_2BJlCmZim*EU^f-+4yz4XYmS4(o`jy|>%TP2HPB0I7Dtd7m4Ne=zfbKzh^`4|soPw!)ha3v2`y{af>OP{wvlN-Pk8C)lx z&3b-N<#y0IPiB>9B)a?<_t7$$099Tk_*9gDL;pnd4&tDutCd~fKf($?M&-u*Z{GwC zS+W>{Ku@PSq|H#=Wo79knX0)YZ*=eBjviPiSH70^K}*uI>`(!k1&|+oAh$CumS_L7 zWbbbt}LcFHQMJT#H<+K^-ak`Xir=@g+eM)gnz}0Xn^*2QqceLUV9UKm;d&< zCEKixCFThYZ+29TF(edF60`7|`XwbI>!?k*MaR~25kSYEqHCQiEue?WmTlgOuP22J z)}zD9EP>BRv$12$o*eEDO2j%lniWrt9H8o=G4rQK1?pv}>k+G-$Qs&wQP^V031xM_ zuu%^^tywiD4kP?sJM%4^45m&8O{g-?!WNzo{)Op_A66xnoix5Odf+(l3UZEZaYn=v zjPSf6gTD}K->jizJU|b}5z|>Zmve6vE(YOysb}Z=tMs+nNEa_RdHs-9!nj@1C1rX* zs7FmFuiPz%lLotF5y$UI=vouR2FU_W(BY5(X6uxboaY&AAG=yaoh(9&z@$cV6yPFr z4fIzfMR#cT(vZlRz|x(;N%5%n)`U6|+veGvPJi3thYn4Hj9?nGSc24KZr zmZpYMJeSX|jAHBxoiPeJ)nhPy7cfg%H?X`#P*Q5h#8a1_)KesJWh~4&a^7JPoJ24Y zM|j8T-*y!-EMwriQsN!BxwPFLH|zSBpHgvue#jH#MOJM%A7<=3LWeFAyYq#JJU6V! zf~C1;K=&bKg5$qXj02W2DxNenQ|U^EJPcsaL9Jo;Dj-Wvq(<*WOzsH@R?zX0R?W_) z@9>ht`MlqfhBXRBR+j#ION6dTYV2`cFWiFxmZ<+BZkN9aun9k*Og?jPAM&2joh`OM zWNt=~uXPam7bKg@UXE>p3>+mjW!~wr&l@Y}wV2yaNLf5}BMj2J5!tNSZ@o$rRZr;Z? zd|OBMwf(!reDWCzP=3$&($Wm+ZwE7ll3#oc;91OoxmFEX6Bm&HE+Z9}#hOV=Nz$aG znXwlUrpuj=eXo&c^J6bW$u^kU7`s=zBqXHlJOSK758#m&Fy1XCQU8Xu@zA0U@8=`3 z9|jbTj?9}qrXu^+=Ui-ChviFd!9W7$Vcqar_>mDl8Fl)F4y*45V?{q2Y@BTV)|}lB zZ&^E|I+hh;TaQ1paEb1o`$tm+EWln_KATQjzrQ4^k4Zf40UOQ(WF#?ILi)4;HZ_>t@wJ50xLpHO;4Rtx4WNA0}9UlCE;4h*!FTU1Q znjyo@n~~Y#3Ce78xyz&+Or-F;Y)R7V%RGA^pz!`mmSO2bMI_W{d_?kzCl2Go$Xx6z z2U7o(-l3gy49bVPboOR#Y}`wDci@R?bf;n4qn$xaNs?|;tG!-HRusFi{t(0KQ}-7U z0Uw!xr z-&=TY+G0yNS9^PO$QlGQ#Qayua_hzJ{L^J;(7mOSvd)y8%eR1ApXVutH;R#w;&T+b z45DaVfuy+v%|U6Izv7rw-qpdk zvnKh)-{K?=aAzEN!7Xw<+j(&kt5NShN6X52T!{x(OeiE`i*;4(9b{2|ENjP; zzW17S8D0H67ry^3`sM(`>-8}axmQwCO;!!2qOP(mC|$e~p9WVBr?vW6ssg8}yWpce z`zA+o=Us&~-1Cm?S$@w&OfG#mPVYx<+sk&nXn&E&9)~A35``vpMCBv0WiGqR2t9Y9)|c3uK6t990gGz{ea>U# z6}t$Dd0HlsgB%05cptgOhJ>bmH?NL9JhpLI8Srt>Xk@FZrx>}wIKwODN{Z7{`B`c`ta3o8ud=@l0*rvsIWZ=c;x?*(7C0#`77mqg3Pmx&iq6C zm%!*A0vUh#l{$uubQcGZ?i_jm)iZ{g60ic+_`xM)RBZU_u+z6nA0-#oZ0aFvPGYbp zA{Vm3d!H%n&b!-8V1oUo#B{(4UKJ&TR=3FfF!-sL3)?B1KGoOu%d`9zjq)Rp9e2-n zSDYaETh@V004JVjYEeC1>pvZ{ z15{rWOC^<3i{??e=J$X+NmF+b{_&F6Cp!gCyYl{t2)aD26iAf?k5OVCV}hjGvrK8E z!(fejxTwKF$A*+9iH#%3bl?bo74>qcmDf)Y-BQ9p>} z$B8}6v(WwqWZqPYzp!N6k||A5Y^Ju5;UL+;G{~IaR3i-;3|7?CurkQR{i4P1V6=9| zVe$@rUUXaCAkx_1NkmxnJ1*S{xt(he8r+^WTJF_eW^~kVI%2(pF<}}WKTk(9jSU%! zwHMF@=S-vcN7MdZyOp4IMgXWIhYsOK&U%3LPhS`4 zvTMeYZ}hwt^3p$6rrqYI>nl4zCcH1hGv8~lqnu%?dI<|;M+AK#us=u@-AdTRwn!kY zU)g)#shesQIMl}0mRoz^_rRY|JaK680C{SVZhP@Ey68g>^cvKKZ#Z#7Q-Ve4UU|PgvVvUBvLZe zk&dJSYM^DLb}1m$M5A^a7UuQKjin+ ze7|dAz*qSkK6i3T*%2k@A0D<`nQs48h>nI#(36a<+Z#~ZNyJ&Kq8j^9zUu?+tB|;| z2r+3`qDy6sEqU!&C8;-6MlZ%0?x3N8qp7s15fR{?dCFv%BxFgqd^af&8P&s598lm! zKFt?bqm!SNH5kiwGP1C{@O!pyi!{iCgtyW4&q+CeAVJtxiDP;UzUq}AkP^^>5#_!Co8r6oU% zGPS5+c}=aX`Qr~}=J}3p{bVI_2@r}4gC)$l05Hz`%rtmvaXBc`K8A3FO^DljQQ9vG za?jlLf&Wlvl57bl`g{Bf84r9o&-TzuY7dc91Gt%Fj_={EuI3h|4PQ@SG|!=$6-Ou+ z#SsLRtK;G#2h+$WDrmp#hKY5g(2S2ySyVH=bepYEvCn9ZnUAk}er@6N#q5_nm`pWh zx|$h#pl*8fl7v4G`dV?Rt6f>q7Id!@eHesBt^c1v<4S^;zXK2%o9yTPJp!Qa*q2_e z{2Z>#Pl%qJiOtexuvMx8->-DZV5ifCQ}Cm851=MkV&i8{0)4d|t0WpOkRnAw0xC9B z{Tf63X6tRTO*_nlysWe0OvNP18s?v>?exnek_U&cKSm@r<-qPjoHd<%*pCg!=?USa z9G%Z!NU=0IfzlIku)&m!wL5XuDv8>t{`Q~Cdpmy`IO=zgdk6n0`ksLK`LE1ZGG|}^ zJ*9l~p?Pk=xwYI-SrjN~?ar^kA0DQ6Iax-HOH}oJ`iCoy(EZFQneCgP$y$+*Y@0la zhL%#zhN!S%|6#OiTtQaf^#V(p_H0VxMSw;5jyKxplvQ2c|C~@PLrBX# zZ`+bTNKjcTHuI*>tiDs}__4DaauwS3n#vM*pln=Ml-QWpXL`RbMJzF^ec#z*GE$VE ze)^S6q^G%IMDy|^s#aQCR}qos4ldt+w6bD$G1z0fzwIZmP>Zkl)27+}L7sDj(9E61 z>{E!N{H{Ae&KP1dH@-S(H>ruW&K>IrFpg&8zX{)ZKw4&&r|J{g`0h5xZgBN#Uw(bX-lB2bZ9=L z?@qtuzxZJ=9KXJV0&z%`K%ei8*`s*G>t^*$_dw_7d0yqEup?yV<_6ms?q?0)H%rN4 zfA#jt-&GGI*OsY?a&5y2O^_*d!8=89=cjA>Qn;+2U^qH8RhW*uqdozPq8OUr3tRBfWI-eSZQ}*RDo8)Z z*`ctvK*A33EM4gxcnFE;fr=qgJF?r?!*m_$#&dpQCDr*N>T+>+eh$Xs z+<~KcY=u4cZ~yN0Q@v{t+*$2=hd1!WyWm)+knbI-1TvwR6S~q;bWEo>v{pgKfL?K3 z?VhEoyr?{u8hqU<5d03p335H*RwVJW;oMgj7q9bVF59lDdy(GrHGUg?ocIYF_PT%5I*9!UlhxgoK4+;^v|=y^t*= z@UQG8@TKB7k=~qhub2rO(0pMikWM}2zWaZ@7Wakp#kpBU;0uqz} literal 13303 zcmVNy)ph25@AbYfQg>@dOG|7*fY=enHaLmx@e;!f zhVC|yi9r(a5D)Xs1UnOx#P-CK%r}nnMH1MVjOlLh287syt zmU>^_{O8JM@L5(P`eSJ z)AJZKVCZ^6`(&!XUU767pY+SP@-J~C-!{qgvmNW&2J;If-ye$FAkp#nshX+S+ z_$Hjwfm0rBU)Qp25|2OSr=BtZx2?}N9D*1g zHADCe4B$6>MsOUn6@RSA&g?1~aHJ+koR5qQAHXT!!bu(N>sy|ka zO<7411I-`~zc=zgf^Tfu=!5fYUi6_zVq!*@FPOpFS7>!?-V! z9(-qEac&1@5>li9QevnF$2^3VzS6P2b@P;=mP11)9N_C(zM3elnsGfk;cn>H3xu&E z3q_Yw2No9DxxV$$Nh6nK11ALF z>u&j4qO7$3(*X4gus&yxTEEikF$N6(uC1vsXDyp;7M{@n5sVIT;#XMB;?w~wI+npv z09&TX03cvu0L&1}5iw0--T`RA&jgrNgOd^fjde7EJe-Cr1weJjTL0Xz*v5Io;QT+P z(<6V{vHny0v&1Ry!=@eJn^w2aPbE`dfl=~Fx=ZSCF;M8iiJ3Jpl+HPOu4!J}WQq%+ zyI7Z6L(4MTid$mphz2+Ulm&eZ)~dk~*1P(6VXhVHq$Z-$LJuASSpF^QfQ_|8fk~%| zAfi(i7-x!mt2n`7rC>2ed|y2MlXvKrxoCqH68Cq%y0vAZ8L`fRZxP&TVYYk zoPFk8bM9I5*eV`&I+ei`aD|O5p2ZR-CObojty^a-iTHL5WIfHsSHMWGmz@D;2MyYe zX@?9pxsI0}exQUU2LmgNW{HHSEi5*vLJEJgpXK48XQQA=8u4!2*_R=e{sy{vS^_20 z25{S&&O7i>e+B(h0sk;8j`8$lG+lDhVpzmg)(Up|RdlTX8|^q}-G;AbMG9n1X* zF(;yvW3A;F*CWm6tDL_KK^Mp=Tp{G~U$- ztYs@Ym0>lW0X431W%ainECN!jk)?GypXWrjQyuzT9vnD6Sx{)I>gr5!DYBXpQzc12 z1{gqwUVamC?oW1X_|)@L1@e>u+`8ue2C(-2RI2cI;!H%HN-S%Yp5^b< zL6HE1x0F3F@j;A$rGb$YHnuW@8QSuWH_QU@OyGGxI4ZK$zqL^oFg_SK9JIlJuLj6f zHPz1kvTUY-j=m#1V=tuM4G`DAmO^ zDFHmQsUak?z44V!cOgd50+4?+S&%0UaO>L6nP}u;#F1Bx4x>l{cVts~HaC0W`HRf? z%jfg&9H<~RkZyLaPkd}R!c+xNpbw+0v~35*69!U5cZTBAY$Q3|8nVtEz+_$fXqaNK zv$&%=IRqyA(Aq$g>$u;rj|O^0b)}gzceW{jYbbizgFHHV2q6Fajty=9IvJ2B1#sKi z&RPKXAd6*yEB-Bw?gXO#m#$n4|8}0WUPD&0bz3ByXhD{Mgy>fVpb9Mp0gix$)PsBABGNjY{p&CBcv7zfLm_=W)Tdk&VqvC>xYL?<>LH2I}(k#;?kw& z%%yX@zGX0#ZySn4MFIvHmTySxW{S!nVEo`GA}kz+f(c^}k{H{W0lW z+34n|6za;$mYJo^vyg=eyFikm$%rMR1IWrA8X9zNmBel-NI{8(OmRGB{McEn;cG;7 zt~Q`z^s!3~dP7VY?JZ@+QUOebM|Fg2EW=Agx{dCQnzHgzvvk=aQwj^4C7?3A5Z&Ae ziT9C?^=*4|1=+>Yay#w3i#~BX45}}3>5B8|Bv*PVf){7Os3J?5Zq(5Km36EwRtYVV zh^;_6u;=L8=D^-p%>KRGO!v_)WMYcoKG3MPq06zYU7ISjpRn)jjhiv7-&p@vj5#0O z3dC`kotEYLH+?-}Fvrwgn{vFwr)|LkN<2|?aICw>RM%9&7!7nXsjh;;;@RlKGgn-E z-9ww6dl>nv?6;f&MoG<8&=3Cyy0?V%sEjmnBUYY|0LD4?QDr+g$F}a zD)6x`Y9&6h)~UK3Jy61|4O`{b$h4cNwE*Nn)7#T)YU^q_2qfx``nDidv=mHEY})wn z6WPNH|2mh0A)4nPkNZ6UJcp7Z0xs#mbIzJ;E?lwD8%~lm_la|7K{MEn8KQ?tJkOs4 zw*g_x0t5r<>t~pA&OO(hb=H|?|Gw>J+nX=p0V}}fau2d3oKU=uCYEcTi40tCCe}R z_^&r@eB||PamyOuwmUjgxX8LxLE-x-kfFhyKeygoaT(Q{Q;BI{AqP6wS*Zjp1Fc0V z00O}C=GK}S_2r@auB@yyD^{$4j2|+uyz(?2usj5^NCt^9d%Y_|%unkp?oZ+(+;4?d@YPq#ABiFetcEgvvUvIPaqC9s!e&W&?8807LKI z4Ca0wIsx}*Z8Peen(8uh^{TVDe8vVbVxmSN!zaQP>I{h9`SWT3a7D&F)2ME4UW&mp zYF_#EQxIKM02+E3=Xl)~s_ck2$m0FhxFAPVe2=AL!){U_`Xko23rUVu#}$2G>D%MS zdf0_3FE3L*@+by)VGaD_`718@#KX|XQad~*)>#3J%+NwyxD%f$(2sQp-8an_S%ug# z#h3})AU7HY(Th_xs)acurm5!XjQO=@=8VcQZ*a(Y zd{Y`gB;ve24O9e&AeDt~4Is%mTVIx$=#vIk0@+NGRSi~0+cx>HGP)$(98DKa#5@}) z8Z`uR4UDeBLJDD8_lXQv5N#O{*a3iFoTx2Zx`Zw?6---F--v>S1M?d;eGY9oq-AA|iYtZ?_ z=u`?CaG`*{j#$@A5phxX(V%uygI~J~uF=4N^n= zJk~HGg$TpfQI+GK^uDR;5P=s)oV}mOylh*kPja|YWBXn&&RBZ zU_`W3vS1!Y(cKfZKQ6#6Ydgxp-g{7NOa>OWMSn|BFLfbuy0no6tUFY*Qdq422FDVs zEVH2$!1+QiT^$G)WpK9Yck2wJ@$& zG`o6aVW(xLuowV(M(FQOJhK~NziSs_+j1BZH>0!~S7QjHaQ_R@2n4}i#V{3o~A~`>OJN|&S{_)Wx-R9sy zlvisOgLs%pfx0*I;hX`6F#dEwLD3>Hti*~t8|C6jPUStZAy|yw$wZp7Zk|CCnVkl`*&H7Z?1{wRrkP39T4mW1Y$b60yL+#x? zdpV>j|8|(b6H4E8^BtXb>SJV!WiZ%VkK=B$L2o-k3A{NltQrw*8p1RV4X%hl_D$VL z=kMe?QAe?!lYQ}jvlY>D|7V=B2m$&8u6GO|6Z4c9c9uBoVq8WP4 ziyPRVqSoUudzM2#OU zmc#Cia;@b27=w%kkQiZ;b$@bsMt!UpT>JJNVE4)A0IYvZEWW*M?fn^XjSL1O-b@u? zw^{lJh38ET)q!CZ=>+fV%J1WdJ1e%8tKyiHD}yQHGJDQ!48A@qC6t(!c(=GZ-i_0) zQN}$eBg$FQfh%VN7=fLYvCSWFrkP>M_-Oe$qG!Z zVD{2h0G+#N!3>wSQ`Vy}He{u0i#2M!3bU2ylpsWwZjye0rp8A2g9Dyj-aul2lu@Ky zAUQ@1rl|W9V!H$SMCsaz;1?DjJkSLLGswd;8IuLb?wQ*r1ekO$7+(-nU!={<`bxx{ zOAJkBw-GC?N0lg6BG-yvtpgp{q~F8}^@f_Qr^xLw?HP|iFZ;APXMM98|jj@Zo~HPU~J7z zC(<9+?SxJ1bo#?6&TbeP4$^^@l_h3IEd@0s%xLvd{0w>PqJ-uUv2K(kKoIB;uNv1b!{6C;NYH zkAS9o9zyJPc!au*B38i?64`(=RmTv>J&0@_J9gYuRZ&Wjc`VKUyKDd3KY#tFU-_t2 zuk!1yfAT{!bhPV()IU0E)qubTEsH=)8w9mc1hB4xwBG|C)Mal7Y|bE2N7_kX%v|nJ ziDKFF@&TCqabDjFZC#0?`nj_Pka?k5UlRo!Y)H{=E(Gi6>xW_B5?{1WQM(?vDZ3Ch z+_CeZInb3hM~)@Tk>fN|kb)7^Z@S&7f-|!n$u=E6bQC#bB>31MCJDom_o`Xl-OV_Q zr@(lChq}8K(@yIexpW}r5j7%(N21MVi}chC0g%KngXTbVX|(WMU6p%vKoc-@bNK>n z({PxV3)|qP8?Ho7ncVm3-FkYCoBjLunQd=vGcUgIl6m#Dy=MFFQM0d$Dj+S;Cu$>r zXU}Ou%@%n_w(9y&Rq4#6}jDdOyEm`ENHSj|P$~a3)D3MRmA_s&pFDAE}S^cQ0 z8XQZ5nxkNHtu2rlz)vr3~w5B4;A;e*F0dI@gak?0YZq+~+UR z;q}nH)bl~qN-SX;q6`8VDzG04_XU=-ge`3_L>5euzxj!19<}%%Rd8;41?9shcq=I> zF)Pl$(A;syXCOg7U{n)Nn5>RmalSrIbf}?k#dGs^xrI^MR(^#VT@OoqI>?ux1l2kcr~6A zy-_Xmhd%rfGjIL^^PTT}$CSKs%)IdqC3+@aP;D~ziuJ@yH>y6!9i_!-EOun-8_X3m z^YG7oj=^a{d!g39MJUH9#teKLPY#$CO)zLSMx#lgWO~TOa#ppECgo>E^8>ja+OlxX2GA2m^NhIihTRp6R_pXn#x+P;X=3mLyDSHO zU--5;a+FpRJbBwi7hMD^`%<&)3`zvpz{+%NWHH%g0 z3$mGXa9n6oGd7w`kJd8D{!mOfRKw-OHh#-jjM2Ezm6T*`{NP_+GN1m;H_YpAygMCz znpK-bl54K{fLXSr-Za&dWj#&$81$ss5JVE$IN*{_&=LY?V{BoLkui;-qPpS&7SlSX z8!CIvC@XbQESFshO$3vSQ(US}rR?$tSXWxu`zXf!Z-iCdcH4UM&CXvSe;Q<7vO;Hy z4ywaa4VPYanVB~m1?yCNJPj0nFHqHE-hUrNG*s>sVcz@U5~Pkho<7*u2y zlNkybV7hoM5Xa#fsHm6@&dFO(VIcZzs76Y#uI1swJ?1aI@=xZbKUilT`|(SrCnCzG z2*+`oS&7o31#_!REp#yfJhdR(K|_QZ#31%D47Q^vjGJyKNTd_z;~%h~$r7-U5RPj) z@bnA>8*3(g;*tgt|JM7pv3{>R*T<%V&?Q^J-r>ou+gU{O^=JwHa0ICUgO~>Hi<{mt zcmCIQ)4Zg~eCT)1H&N^W#+k;pEn1OOmVE5^9D3Mm--+) ztCVMc8dHl{bYe05ri4u7=3Ag_i?g7^Ss#@s2(1z2zzYokIo3_e8fVRld}GmeD2N*p zA5@@GO(L6s-ulK~^V*ij%-?PJ5sLO_bNMeV>2w~ZywVJf61PM#ULz11Wu>SCuf$^G z`E10b#Y>vajGE^Vv$hP*bFxGD@-DzbC=xk_Y1v!q4Ng38z>@envjD+9l&%F2MEeS0 zWQ8JF!a4zvGeVk?V*u>t>2N}U2aKc+!&xO}aGtIN#iF%n8VdwEh8AHXOPjV=U)zoF z=1xv3k-uMv$^ly9sT4~pN+R7lVF@g)P-L1HHJLkZyVfjSGAn1C8yXr>Zd`)O7%DBw zYC6~$*B}{ByI555F(S1FQ3$C4W|f;xG#21bxmFAm-K7Wi#dPe$3Zn(oFgrcV{Q!u} zzokr51YBEFY(@QK7@R8`WH1oe^pTA^r2AOEIohp_6(=LG@72w_%nL7XH|<|vjfrxh zqKOFspE+|Tq(~8}Pf+GNK+FG6cuLFx8eEGpr$u>yQ##WclJb1crfQ_&TudpqV55_) z-^#{|N)<{d(igU?k{c;-ld6BNUUY#EU-#q!9zn^fEtbn=>PkLclg&9C;={xBi&s_I3lJj;(6D3^q#sFiAG5jH#<*$d7 z&CvLz`J8x`L_q+uPAWKts+slnIH{Cy;Y?z(ukHvYOizZv*?>1S$0Q(PQ_Nx=HOi)K z(!-RHutfpcoZ;n45N!A5CDH(i>7XsbOC2o52PM$KR8t$?WHr@bF)t;WBiW*y){qKW z&<<=~J1YM`M=sqp*<)$eeJ={$a@|NePJK_*!bd*o2S~r>&S1IqZ0M_WEuF@%k)bb6jj~lm z{}iyrVvcQ_mL^9DrQUEH=|s}YVR5VtrQqEOcG2v>2n((1rd%oSL%RuEda#h5&o`2F zqEVOHIVm$h0Mlz$ zgIjTtAryo-_b9$XBdUA#vVCDg%7N`H=#b&%^!e$cgR{mfmjk1$)#8_N7Ln{gcUH5% zgbQjEvW^cn7wkAjztYrkwFe>^)qx4WaHiI`fn}^kY-mkJWrS%V~=;M#)v(?vw* zg5CJXav(xc(2_Q+TNRT%M2@)vJQJIOIECDREKX-%lRUDI(nj#?m59dq;kBT`09(;( z#des*qO$|{C#b;+_GMVzPGn~jjhed7J=rZqL^9t_L?nmk7ze&Ju53BKechiWd|-T~ zM-u=T%kl85d|X(LbvWrzN;Zs9KsV6>n;9b7uS6G!Yn!yNp}^lNa5;pi#I1nqehQo# zZ6!N+EP@JpE50dCMWI#=unRvQfE8_C8bzfv>~YlW*ybq@5x3-hwjx(Tmt*T`8hKV~ zN^njY#547=SAq709$RtVaToqbZ$z;)Ea?PW(iUK>a7rwunT24WEMyWF ziPAckS8$c+jEj$EC)vW`((KN$wn^?e)@)nPJkCx>3BQ^y>(;n)6)QbUNysq^xBvhX zok>JNRK&SfqWal4?nF90uREBYol=-p6?VyCJudM51xRO9s?nB6?87;Gf>ITVZNj#O zWfrV&6NG|(P+ zEs}%VV^NG%nRE;7$NyV2~}bqs?sD50M$&Z2X9RlV6w z=K9~i)+}qDoy~29j_Eph!0g#K2vt|eg?HX$a6krm-M~r?#SJW;%xvo^(IPhnGZ)KE zF=EgZj1q!j_9tedC4M0{-~qmW-Hjud_WvXF^)+$=jfe`W285+HFo3s`xy;X0uvYg# z3hnRNbJ!d{(qroD#(r-@T+dR);`;#dm8(`^(QG?NCJU@wM*ya4R8`gF46K~6ckf7aW09<^X#X4`sT7Fp+G@O|Mo9y*p|GssuM#84UuOW!KP1efIN)vs zJ!)yl5Wr-i5y(Bg^!9Pv_+-R!TrZ^%OWnDv%WT>DE?$e58^F?DQBkp}tDF9*D7m6c zeYoZIx6A>|OK0{<6iY>{WFQH+wtt1T!dhan?SC?PXxdFRW?O__Xvqey`C{@!1=5k2ok zOd998A}$PG$_IdO2mR@=lj(RL-B}ae_;s(N6 zVX_+-Za|RlJEPXFaK}8y7tAlCZ$IzY(DKfh0P~J?`Uym}-t@6){6vON)2s$|(Wa}k zhOV)1|50=QgTMTZ!I#+k!1tcUYIw!A=-mZ5DBloreLV%qjcyM@l@LkQ~6hzFdIgQiGV(Nt6{y}rk|9IFOI(+=J#`xLiUNrZ1 zyZ~IVT9I8+(|V|0*Q)rlcYiF976bQTscL^Bay4L8yE3E)eQ1)I&Ihc&e_dO~w2Ro4 z6%nMSd6gX`*QFt1acyl4zxq@MIHnqfBKUQ$Y~E@9^e?{)%RTpLB2#@o`Lwrn>o)WG zFMZz}I!enLk|Cr*ltfAv$yZF?4Su*6tP)nRTyqjb4U4_@}sg z9ee4_g!wzHTluaS2jUvdncK((Ueg6K$Cu%n{qV;xn?L*F_fGnfNVx*M`L%84KYi}o z=B-_Why(&$W}XtsY{)o3JxeufMfV23G4pXw)68m~q%Qe&PCA$b<@3MVzP=?^b>MVi{7QbWo2cip^=vLn9c>hEXWW4^K<62f6~Fm*XgkR@~O?{_PZW1Ti@=1 zu5@8j#xlGHsE1TF=b=nd(O2m)D&YUMV?ok7Bv@b$s5`e)qf=F2bs z#AaA$*MY^g`fcCk$Uh#X*eb2U&G)Y?z9~Y2+9dJz#+&=hQ_s9%&cHh(=sm@!;zlzL z@B8M@%{_np7~^98P3pR% zV?*n!c>(p zqsq*}M~9H{Hdv_1;YV?eFOBye;R&gS_c-8f9_b&T!E1syklNt(J6Kg@&+fhKCr<~9 zH4>EQ7=Xm6tF17XU%bS8E^kH2DG-SVz| zEr45;+ljP5+UmNij2bJFv`YU9%N_Xip5k(ps zjp0pb7eI?VfxDsA(_D#+)xld{dlQRc9y=i*)3wRC8^D4iR4Q75MN<~cn}OHE*P9u2 z6}*%%{hqlIom@4A?nJhBqzlMxi5Nh1Jv?JSiV?bx^)aw-Z9m9=dwT~t9~%PJ0TXyG zO5BR$Dps>LwER7Y7`O5=h4AB6+-tUMeuGy%%{A3G(anvwUyM9{y)9>uoLJN+F@EBPIJN{5(6T3PzvxCc z7_1L#hXU0=@w+0()uHjA7#OTpB&<|}N9$jm*QG-u;B$cjj$b&d&NShb3K`&z3_lIM zd~N&Rw@kPoXY30N<2n{1_-_F2djawX1Y}|py<`52h4ajtZ)~4deH^_fR~m|%B<%=r z&$vz4FQ(q!I2(C@M91U^2bo@`=VjY`Wdxm-aJZ#PoL{FG23In z&2U4a;43;ySkRy2*sZ{~Wi&b(r9Fs&D{p*>gmH-D94bAkttvC~n<#_l zB!@d6{SU!4`rjd%UzoT*>=9W5Oa}wx&A7sy7~ue$=AT+)i$n^AF&mp2SVvB0ygK&5 ztW2{)R7Zx~Pu}8*>OCzQeZz`@{F?<%@XE~D%5~kLG9dhbA(Whe7hq$qOH#oaRYhje zoO&ApbK`-Y&05VP-%KP5He?Gf9hdX6YnwJc{Oa&U0uvSw7ZNR|+w0Hayy!PiRIF-QUF!-lRGIp69eYv7j#!1HgOCQA2;sE@s_3`940 z&>ZPms@Pn%U?$#fPGzu8Q{YRg0Fw|#hMt4h+uFXNC3B^=aS+dm!NDL;+%r5f_)scE zj<+oSVIwSOEShg-&a6KHOpak~$XE%)o+F`9%svL)tRE1LwLWcU_or#$GB1)XC~hrg zCoNo)E)?n8Wy4A9TcvdQx^95DMiK8wSHL)zAK)ZyVDf#`V8$nc;O)mCJa&-(UT@9@ivr`|`7Go(DlY|jKEG4O&y zhLjv5j1xw>6Is`eWg)v`JwqLsp`MJktN*R8g`ZJ&j_gpOX$H9ESWS=m&Z<3|NWgXk zE6IMObA9Wtaso&mC7+Yz9Jo#kaWju1Cc0d^PYg0{aL4vtX5YI9>@0~;$LD!fos0JE zjRBGm0}5LlOEvhyWMQ1cO1nQ+ZOQ;rZTR2Ze$_@uVu-62b6wWC5X;T;XCMqo%niWh zRBgiaBUF5A$NIK!<=JB)4?C|mTGq6miSk;2oLWjRiImZ20Zp6TyY}H@m)4&Y$Si)v zSfR!Q4c){|P} zE)PEl8|O19z_>3jV5Wk>ipeW*Q{Tf{O-tx))B>bf*#{3EGVi>-i>Gho9t_dCR<0P) zX}XjBE@5^=WXl*(th6dr7n&26N{mO_6y{HOT{Sq|btU!Jh{)UgSv6SdUwb3OU=I5Z zz+%1&;Qsw&z*WP2vdwU$>nz;ZcTqTh4!@q(CM`X4=~bw2zqONJi<-4w_99tCV@S~{ zeXGHAY!eWqkA;Euj)L*+NUXCzu_8Gd3<>0LMDJ^f5~vRgEM|+q{h0?JmjI?sTgy)8 z_9E7BC&cnMCXb3TL8hWHi0fvE>uI2;IcYlO1FEE&>n&*1Gl`vqPc8@mL!-hZ4kkqn`5 zV=&c(2RhtMuy#8Ps#Y*Jqi}9AVCNj@nCN1gHa>EE`O4q_K7cI;n=gS*L43`=`qYXf zSdNHa*VR|^A}_steY|9o#FlOQ(N1>2X(TctR&^{u~- zX0-yJ_iG7a+vU0`2%;*mb}=GTR7=GRg7f7>Z%|P~F$FQ6!K!rsp=150vJOE`goEsl zk!{(YI`MIMtLY!$Vg46%OHGhVwjc}Olxp0)Yp?0FZfT|~MV)Tf1EHy^`}Q3~ zH6?{yo!j6=wgN76=Ze`OYj=W(lpR6gj`QG;-KLf>yc{DArRgLyG25>Jz!G~cuz~cp z13Sq!2MnnvFdY7K`?@yN`AqM2LI9RWfGhPo=)W%~lZ7koo2tXQS@bY1+jJD7`{2PN z5Z%Y^d--r8x`#oxwvjN-u`vWx)Q}pBwOZ`!u84x`=(uZ6gvXXTamCg`V73EvKEwo=t2`2nDrs#|vKCt<)y+J6gJ z)|SG2AgUsTKBd~InyOMRU#0LO9q6-_uGtWWZ=wUW3RS?gV=2KvAVULRhys* z60_uvQOz|iWI`pWmgaBk3s}-61uxQKwd+-~# zoZMHDpGp7+jP7hk&t4B?Zv^?47jTq^M6uPqdW-LDeT){M&QM|s%9G2nDt;XiyV?>C zgN#8Uj2;=;jTRn9!}lRX`)?22du#YrpeK<-rwoImebBbLy%ZG{?*Wgl$G-Q1Axk8# zjgVf}U1rG_)s(^Mxuh`JxTAHb&?r))-Du_K`04xj_haqrTk&quQ*S$E0oGjwJv{?- zxePM)eGr;gLANbOSC=4j#fBM)-tj=pz1v0Sljub{k6%A9j2ZNa-N5!q0R2-KcTab2 zXx)-~+b8yn(*j`KCGe$75ptZ5pz^r@^;*d7v+)q~(eVxF_%f~;38QfkO8eO*{11a>zFb{jlt=tw6yoOrH_02f&!LX?!DfsiP6O5ob#Q>_vM`A zbRHCNnGw%K005Z0!n{%%&jdU?n2u4Z8JLEUx*UEE0M~mNo1##G6-{}R7 zj_7k9;RIDVNr8F{NU_5Ts$zm-wz?C$*LHuf8gj<@)cIu~b37sUyx6<8^F8mAau1NA zK!P$_+zH)lRSK#~Nxh+<%CAv~!9eeFxmUD$qtCZNQ4~QCI)h2G0Izu0aKB#AWk zqeZ-{>juPvIow9G&5k+|lU1WbmaG^_k`|l8V#CZ9l%y!rlARz(E9%tfU_D}9gw1~c zrq{cs)tfd6VtHj1Hd$Tn<@p5z=JME3=llZfbT2zxo+T@~{`-c>V%KO56iLEHD~|g~ zlJfcRjF!&>Z-|nW3d#U`#N9!RddAX-4)*Aww9F}b5_GhPn+GX%$!5CPDk-dN0Duu4 z@E|aBg+({RWITR;m^pGs@Q$bN-p5vG%_J``r~FO5bD^?$`jwaqh{#Y96Pl&le)Cmn zQd`^eu88pWjgR3J)&5YBadf)l(kCU}DdAYdTq1vrpEAqJ4JYos{SJ39{o>;2ZGmtw zd!WDivyg%BGc8d?-~AX@UlYbCLWSzq<|Bz1OooeVJ}jQw^)mB;FJ|XlELYL-VCHNz zC$87?f=Jzu8)IPo^uw+CE@^MwMtYsviyPZ+N@SN}(`NPz_s!h+G^K#T8X{Q|F;dIB zzMYqvUn&m@-V*7%=s}0#_Kl3r?^Qqh@%Z@ZQzw6soZx26_Ek#-YWtCH)}!_INz1h? zp{QE@O>j3Z<-8Q3Dv!Uw*x0?xntr&Vq^G#OrMZBZ&CY77=waRYGRAeefH9CXt=J}3 zo@@}#qcWo{YlZ4 z%S>9jh5wB2d#?TRG&YtpTrjd&((Onp^KZK|5xAHI)u{hG{ja2{<3N4YoUCht@>+%uT#YA9-0-X7)h+9DE2@w$`ZMTP?v>?N$c~F-wVY%1wKM=W z#D|W?2nx9s+W9ZRDe>{QPMrOJK_fO5*Z_F>f;?qzP1_%1 CbPV?Z delta 1125 zcmV-r1e*JV2#5)g85#xv0022;Hqrn900v@9M??Vs0RI60puMM)lePgKf8q)k1P>+K zvj_SB00b3DL_t(|+U?!VP8(MMhT-p=@lV4~Fc=DsF>Wg)q;4uj>aNRfk_%wb+bD}l zT~}g3ucH$CCU?+9t7MT~q^Q)vG1!2O!3NvR%;|y>0rs?%7L*yi&kEtAL7LZR=FB*r zNB{r;0000$9GHtARyW;ae@Wj;dMYW$u8E~XNzWwxxVdUxz7M>*>3)#(og~XXN`z3- z`sS+n-uyLle2$q-F4O-j>A0! z{&lOPKlb}qewUv}>Fdv@Mh?G3M* z11AMUzW*5(Bf3c%tj-0^(0XPSPz#uSzL14sj6&*TuLZYvOD_dJ6PVx-y1stV0 z2ZO*MFbE6+gTNp#fk9vp7z9TA0?*~AWi4MqNo3&i;)14gllrV&l*iW;k`vg4PKEhd zWwV*{4O^?F#Ra8Po}A+o$yf(=PAWe7Sd$Z1zciLkrSxgJf2eFG!=8?FU}L0SuOIpP z(&D@xe3WG-$N3O_&}yr(*Bt#vtW~La9vLwWY>ZLssH58Me&m=^abA-XncOQ2NeAj_zrlT)+syhvJyQeIu;(VF(wpvraKe#?MRoUKE zx7#Cb+yfh9wOwoI?99Jtt4g)5{$L>5CS(;IhM|6cThk|t1yy(I3U2&FGov6372fg* zXhFaOf43s{?CUp`58`I*z#uRP3<86|1O|Z-*T6iHJGt6c(sTAh zVm-H#HYA1Yi^K^fZP=CN@(Vew6FFgVoz_>DKg%!PKVI(jo62KJYm%Ny;=e+P={Z-@ rGf5jO%jK8s4gdfE00000ABaBzKOr+yUU+Tm00000NkvXXu0mjfDGC-& diff --git a/web/public/img/avatars/customwidget.png b/web/public/img/avatars/customwidget.png index edadd57314f2599d7d943725af036966e38611ed..b71d0a099f1b0007b9d0624d784b4eb1a045d821 100644 GIT binary patch literal 12041 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 literal 12961 zcmV;SGG5JzP)8+-r&AOJ~3 zK~#9!?VV>}RYlr>pE>2$bh%NS6xuo zw%Gexu#32$A|N1LN2VPNY>tB_J2CC%y;((qPEDX)}L#{UoUA46&# zQp!uEQC@5nzbLKk_ekkmC#C88L`vC9N~!;U04@GVaD@%ct*D=-uPieXmC8xYzCqSo|Eu!0Epu@HX| z!qN2u6xSobk3tBu{!NCSgAi|QpK ztn&ZZ@vjFV0HrBc0%?L4kBB)H;Te#Rt=-GOlR}8%#-6L*{f{!O>c9Cyxu-kztRco-+urRR;K9SeffEM{ zY#m#90`TxBh2H+(msYEnwT&-7I?nkXaF-Bb=e|^9y}_M|S#gWp{qMHYw*<`UI?hzH zo)V-5S{%aF8KZeki|h($&F1wsA{p33!wE_r-YQQYRL z5Me115xK#oDx8?;;@X_#U5UE-kJ6Cw*Ce}c)=favNPiFDRq6e@r!0M4!}K1&E=Uj# zgu6E)<*Evl*cXABz(1-2YesI^afi(p%4=j8C7@u_lE_RPZ?sJuvkkai2=UgzmS%Af zRB|t1&gZ)-`@WQ4qLzltM!%QsvN0(q+3Fqd{10%85MpbcYmNaPk;QY;WaUDTp@X1+ zBA`&?5Xo1DMa(I_O8+nJmHAg`vPt)s2%!__JdVz7X89a?#yp92wIbB=gC))40ITFt zVJZLmOm0c$7rVR!ExF&}bgK#@GvgVS5x+%O#AG4F7gEZ{FiNhm3LkY5+*0$G2j7~B zn7)vF6+6B2*i!T`mJHXZ=KX(HQ5@u?+$1v+M(qS{6+*muFr-a8)ox+yn%#;`=VdCx}@J{IBZ#O0#k($yAEVXC0bKrYyRI&!XrPHRuBH?mfdXkhtZ>;TPvGA zJx*@ukVuE{=UAn0A0(CB)F%`uv1ec<4yT~veF{qdjcHcz`Q5(9%S6*WWT#9aJ#JXO zB5bz;9|$4LmLz@-2;h3^*bbak9yXu)bXR50-2764mW3vwgKJY12ByX`K2s1=`8rm` zcZX+IRT`jYprlNsQkdixKZV!70x6CCL$1l9CB>decFIk-Y#sh3g!T}yMF=5VQ<_C9 z!A%3M+)^ES=*{hA;?qJe4pnLL#cQQD#jZ0V!^5z|T~PW8mTz@UF8MG`nM)Idh7vy* zGqyk5Dn4eH_aj2#!X^!`Wd*S7ZOBf!fuxu-H|ko_UBG8T2ybhtZP5yFj|o`vj+GVu z%bw3GVXZfSTT`M|$=y9JMz?ixqWu@-?l+L39iZ4b{9DZmm9rZnaTMiN3ERrv!s}ax zY5DhSpQSXAn523J(>8GoF^;3=D8lxP5Msq4QPFi$b~x;?#i#4*f)u3`Ec2CNRPjml(_RZIQ4eV0WS$5 zN}>g=MG1FeNyxb6y&V-j=I!$04VzKJ1voF=!^LSTo#lU!#a|
Oocp_=LjTN0WT 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 A@&Et; diff --git a/web/public/img/avatars/etherpad.png b/web/public/img/avatars/etherpad.png index 996bfd1a2bfaee35570641229ede41a42b183506..b76f2fc2a83e5ec65ba64a8628de48ed17bf26ff 100644 GIT binary patch delta 4521 zcmV;a5mxTRE6^j5Bsm0UK}|sb0I`n?{9y$E001CkNK#Dz0D2|>0Dy!50Qvv`0D$NK z0Cg|`0P0`>06Lfe02gqax=}olAuxaB3>^a<7B77EV*mgUzez+vRCwC$oqLcR#d*N@ zq|@WJcY1E8znRb1o2341lT+*frJoxSZMOc?VV=&cIJO}?{-gj zd)-x2s?zQB%zVH8zW(~_?ynPx8Z9O=CXg=?9$X_3{zV|XBoOuq1YaQRvk_ht$i8nO zzeFIkHuXS5LY2{91e#1BY!?Uz1;Vic(7~<`1;PP=aEp@QXa(yr5D0ga2sG~6Z+ZMO zCDG9Zw><{fv4S@57YKU=!n=QkfAZZz zD`}5#u@Qbe5C;35?SVP0dOiL}MIgUxqREuhM-J|$A`tGW*bvKuH3fgqI#~a|D#?#P zY0B}B$Z#zW?yiF4cA7vq8hnoJ!8M9N6^qpg69vMrLV!JZCb20|R~_%1Uncj*Y=bsg zk*Jnw_ShMc!1s=TBPV;;L>?SGJ- zeXSx=dBAsu94nWdF;aieHac}GdDXvGL@E#Xy`c75$ft~)=gua`&K-1$w4zce?>TRs zESbokmf1MkY!4m_#HJsxJie%`I$VCE^bUWa$W$({@g-?!bU_(#|0ya~Z6n)K@;l@W zI8i>pcredTh5BDKL`j;DeCc4*gOiGKWp6#8S-5v*XO~U<6b=9rpQ#v$-=pl z1hRVt!cWXjz2sRP;qrTfFiqF+Etg4v`PTBiYN07Aqe1gMwqXzxeM}%MQIZ;~-gh^f zEIjz%7{EJ}lxlyY5C7o+?-}9SN;0(tISBZul1Oa>KBy#8+kg)!iPSP+7v576scjA3 zt0YoGWyaa_CP;wyD5=y?q36!3mjJ)5q*6oWqdhQ50{n)ON)46it}#W;<<_!;)vl9J z6f0Nyl%pzR!-Kw14po|6>k%@+#N;0(p_o9Eu*(4XvQxY1>aB~K+!pm*t zYp>?;P-DZ1Rm`=9pI%H4 zsZ}0hQhR^-^-^AqCwMMRLx9^2Uu#MF!h`>jJnD@~f}`I&|2|}TyQ~@0(6EC4$J^7s z)Vtxeh%;|q^nHs5C4+Q(klR2Z1oZ@9!DUm=QA31;DyP9xU|RtEAl0 zuPUjIChhfLn*{jDkoiU{lpT++PWNf>>xo1nA=bfUf$*jj-TD(H+0o%OPc7tt?uRpd zou+?>oiB4%ScCfk?-QBcEP0j(Yo$i=yp3E%w@$coh5UrFKA^VDtPH$#cG^cpq)d z4go%{!G~#<%#I6`2xOm9l0E@NUze;G2uFW{v1GHGYsDLaIVS{oRbwCEqclreL;bbK z&XlzHDJAU_GVbO7EKl5Lx-v!ccbLfMMgaDyLzV@9TaT0KrF2QYaMh}h5rzxX(U&^w4P_AEV2EUv5flEA%5fhls(9^_e&_UH>zeSr>Nb4cu@g4KHxT4*VdqEcDyeNqzecgno~6Vj^6 zhXau;pSF?>arc`DljT0$@<5G?D-zVmn{(x;m30oAQYPTVq5C`7KL!EoS#om;b!?W? zK$tz&L`7)$+IzROUh1=DHxhqjOTxSR;kJ+lJLK<5e3##chEyJ?`Ql;0&9PQVYmNxd zfU<{IE?*XEB;Bx80{n1kfLTsD9OOAgX^3T-C+dm>Ep8p66<8hy%&(`}1$rqrrrey5x;kMXVekE;~yOO7O09 za;Wv$E?XgOPq~I>$vpwU?^1`5G5||ynfUJ%wen2reUdYC;jrp+`ATV>)fSp1Ukd>K z19ehmoupz*AyCT&SCM}!N!zSB@_19^MEx)u%qnS7`_(i{ZVUkS={&;AsnbO6N$>fn zqE{M>T~cuWdll%gjb{x=;?}Jd|!FGbWU&I^@wo! z!Xek|u{NpCyfW32%!M@AAsdI#a4weKbCbHM2^`slhuGeGjl9P2g zZBBk72v~Q>m&%Ne>B57%2FxwHaE2mT)N_W85+~^276@0C*>F0fV`VodPf40Vz*;uB zz4ZFncLz)%Mr?djC6P$j9-kl(o|XFEO9jH^@~*$Y^4P}(viT*N($4S>f8)zEoBWw% zqCe1`mS0yQhLy@FXMIZ{XB zexJ!1=S8h!wh&&+RVBF(ot zSrpWx0^up6(=@_?4|b`v-Q{IPw-@j)rG<2Z=Eul%fi7J3#V7z~jy*yh@@gM28L+XO z?$zceds2V%8d8ZwB9U4|rfMz8t&NK`pSK%v{p)|)2p=!@P76C*>IQ75an1Je?Kz{l zQto>*E|ffuY|0s@3WQ%t`8AF&s$1H-s4l&fhX2+Rp5hY-vxEm<6<$$?$u~Qg&(3VT zvjp#Yy>$P>;}&icLcKuP9nMO}&M&u~`lS;m8OwiY^!Pc)d|1)AR|<5j55WCF^o|Jb zrx#P7w)UIvU34BbqMbQ&iX4gK`Lr`WO|!?=N}BgdIrmeC%%xfKZR+&yG16O!&sH=> z4O`^gm79bMUx?bFC=lKX6?xWgbSGs+_!YsKrVjT-ncfj*~s^n4wv61JZ2VqcB(bGhC1YM zk!OBD9dg~k@8j#G$&JUxPf){ydV%np@CttmqiE!(p_xyl4p~aGwfAa?;_0& zW`s7~5wWSePrL5Vcrbgg_fBSc19g&*6nh7)l{}z34fgS&9MA!Q5f?r=E&ylH=qP2E zfZj@0Qir@j9r9re+&`mEa?r^Kfp9?)xKBezagB}b`?I7Y;$1$ZPHIyi`t_&s5KDg) zHl)|CXHR(1AUR!E4d**j4$V-9>?rC3 zIAnWc3z=4ESihB?JEzuz8W$Hk@kDo$Q>a5er8(qiG}z>RnjP5RmGoSfZ8)fY%@(&fx}#s6Ed)FL{+7^hSt^o8lL=mShWEKq{69)RLSm(=~sqvZqL! zm*l}1cwy+~TU|^#r-`3ZW7^BklaIC0T9Pu{AJSH`qAJh#_$Db0!;)%#FLlVD2fvM- zrOVN@oizqHJXZ=U8v8!}Fm=c;Qj2u6s?YbrCy?46tNQ9k>NL!x4tcAv9B5#~%!Ng@ z1o&+^Hf(h<-)u9!F(S`*!;ycp%m{@JQy*_=&>Zr4ZGO^cE5mVetHXGvhC-8U)xa#S z{nxJrGN;N7?9y-_JoF{FEIn0evB6oG78RLIaq*s)}DVnUSw zUltawS@q3gW*3}p_YMn-PI{Q_?8h}ZT(Xca5(p1OfIcJ;uCvzJlPZ4<`0{WcY_wFd zA+Hn&{}wZ`@!w`UyQ1!t`q~a#+Ai-D2>YT=<`!K>D_@(gs}SHTLw#_Lom$Cnflg6p zdd5jM!qYKe_XwAbuOsC}-qZxbXJdr&XvTw&RRC}(WN3E7+=^Kw&uA71kH#z>c+YZK zK7)`-jMu_CO%}5x))#*syIvsIhv7wE6|U2qJ#4VOIjHZBX`HVMgc}m7^pCZ#_*)c2g;u4x60JrcE!OStUQ!iA}dYCMnw5t{LHfv}{! z`uG+pk~MP(-O0%U;csI!_8lAH24fv-Py|Z{eP6_OQePl^bNYX|O;bv&=h|>O2sWeC zcgUbl1;RIDz#g<+_BV>wkiBhKC=hl=dfNy$mH_xVsSj=%bR6p$Dbbt0`2CpetXG)` zmZDS{ZN5Yxyb&Sn=S`0JsQTE1;S4wARHD5H_h&uTps{@ zW2g`APWKn%4t zjVMp)SuQ+m_kgA(eIm_vH%khHEis_}Lm=EK{ogmDG6#PYc3IqRBRfe+cNCQwxkeBO zj|^eEN?;K@e^BK4sY;ro)nwI8Bpc4$-l`gijjgHK=6RHvjkR!p}GSI1<+>AQX; zkS|fv8lz>FmzpG8c&Nyv`zyk=<|+x*iZ*-TSO^amCJ4STp1%G60ifyToIY3$NB{r; zC3HntbYx{=bY(hYa%Ew3WdJfTGB7PMGA%MWR4_9-GC4XiH!CnOIxsK|dO1)jf?{?8YOQjt$M&F>^YeynZLO{K*HWtXRC|tMg?j0+wgQq( z1grJd+SYnGZ3C?ylqx8YOtQ1lEZJOkcfR-hkpyNYyI~WOkSz23f3^G0%s2CW&-Y%w zJ0V9A(0o1#(y1Um3yiY?oC+WapbS8a0G+`*8PbacepU8h*MTiYXReh4j0iX-Oy?WUArc3ZxB(}z};dC&v4-EJyZlZRzT} z5UdUqlgt5TK9zu*0DLaZ^DRttc5`jy9hcx^Lay?20RQR`cLDfSxhPxpcKv(F?1M68 zjs$D~@F~Zo7@It^`Kf4=OYkV7LQ}ReaDl@bHxW@)Q?1c5f8=y){GVs$Upd4d2}mTKWD@kdvKM+m`Xifl?8b~u@x&3@z3 z;eMB18+{!_e>d1F6603i6{UGD!6WstUOp2*l||I1*BW#2Ab2F+r}wmlpR#) z@Z(~;HuD!o>&1yw;u=R(eYs2U@T1zQy&&ne(Ry*Af8=Qgu+t)%qbyTTa0wo+=y`eY zQ~;$G(T?VDqmbN|62PyS@##ZP1B;0H^$N}R)vSXp*<9}sUEvZuT+y>*Ab?qH%S!V#|Cs=m zXHJ*ye+<_6PRc6S+S+OWh*(4uDwZn~U4n-P)2)A+!>xLjO`I!_SO83)8^m{5J6U81 zDsc%O9_+LHer^!Yon`$KC<~%6ugGZ~77U_Me7B`d{zy|e^1)ayIM4Vn(aJnRWHUfs zkxFLo`(uEvRW-YP_G{x4`r8gbFyp!R*mlp zFg-f3d&gON*mxyZ%RtIyf=R-!KzMI}Tb|2ha&umTEls65M@I=5_*rw<_;Rl2{kR~w zmt^aRlc|Rd&+(9N3CAar$4f?!SAvC0a4v&kx&-HTs9IERr)3dxP4bGgx*Fm0V0EHKF>IG2#`z04LwOF-a4-*qm*xr2W5rzDxK zbqUS^sG4#$fEj5n%~V6m%3RNXZjT37Pb_9hY9jlLOe@-$pf=YUU9JX?$J#5=`2&y( z0OiE=S=U65Q!wb^Ebe;9C3t-L-fsgaf6n68U`0r|+V#QX2o=@7e3s~40F@b3+nMv- z1f13sHj=Iej|bB%(Mkuof3aQ{-2!HptuyOnL3EC5qQ?PFTw0O`V56OJy3?8KR9nin zwuzXxxde{`bmteYu@Ogj-Q?7-ohCXJPvwK~u0>j)YW^!-g2%przR6~eQ}V_6e-ahi z`R#GSqBC`q)81uGYg%%(8vBurGi%O);G$`mV!YKUi^*FV7`-tQls(mjTE-%oCn$s%zZ= z07%#yMS`i1=$TDhBb%AA+j4m#e^Sx{m*6pk!ZR00Ao__#lp@9<&6GXqHJE@|y@A;3 z-qvxSkKX7KJcdvn`1}11QG*^f{&t8k_S(BOnEPCD&&tC*{0@M13&bfEA?1rM!D9fb zrWAl-+s4qF*S*MYlG&cm!*rLblR)|=Bf*5L?5-GJuh9Hnm*8Uz0(}d>e*}x@@qL>P zw%N%NYmKL2-$`c{k(loid<;>!A{b=wtq$>>&ig#D`(P$({!QyP z3_o-PW7}PVk0DIcyv0G>W<6}|aNZ{f88sM;Lj>z#<8c6n<<3%7^Ih%|d@KU1ONu-I zR$D|}EYX+Jx1l^~gDmuHf2UkxuOxi2!wIZ$2|gB0qweBO=s8rQ4{e@=H*E)n0B6dl z46=_IM>+Nf*tbiXr-uCJy9AGB-<&a@e*&03=@NgX8d7u+ z?uC6v+dc${%(KU5D`T8tQb?^3lxocK_IHSIqk#D)vAnlWm})oC9qH-6%&*A%KrWCg z9OgbhG$Ji-vvZ_miE9ySQT~e=c=3cmy%AWI061xRae0?0d|tV}HhHYWz2X`TGD0 zGn)JqLl&NSO;0yBq))?lCHV0CY67B7VMB2>c-X5V+ZT`#{cs?1do}RK1e$@KBkTGh zVIC9BCvXTVTc} zT01}JLaM!If1$rA^NayqHsKo7e8+J**wXyMM_Er&XJ%Uu7pKGyHrZkf zFm2%H@sh)*e=1m`EOZGT1_YM}W&)UJD{wD=xyT`y| zfs2B&OYqUUULn2cQ3(>=>k!|s*R~pi zO^d1DV1o&;b=F5|$>}9WE(^iW18B9FhSOBduek&d0bNoe2z!szhkDq!VL0+hf*By| z!5$?NfAbOjsb1gO0dk&~$hS`l1wAgogM@5Kbq>*g4mB-y%;+$Qm;tLFE@95@EM>hm z`ab~vVG+$0a&nGK@L(e6kZ&OYXV^$F%^?#k3HyLQv0!o#OoKZt+dl70$lG0l2NO9H zecjQquqyJ@haE%KU`Wp1XNG+qbV<+dS=m7ke;XSJ=(HqQ5ez9Im*6Z=5el9H;5>_{ z5vJ$iqpLAa4JL+NgFQ%b!C;a!L6_Sr<=E`q8gm3Qna|mk7cc7d`cVzfv13q00D_ry zyOpKsgRC^$0qn6z&I(?r%y$VMPLi~KggQn@WBu%VKc7~%vsO3QZ?U0 z1lkYAW&OU8@FSOCr)jS7OGH@b(5Thuf0;e$9IN#MxF@J7ud14F&QLTs)x{@z^03)q zw$CfCDmp78snx!6Rr6h=h7<ly0cPC18R)ldQXzwWUshFI+rI)TS3{zGe*mpd zKL>_?ZJjKH*d3_$y~G}Rmw;cUe~-DijRjvU zQlc{U*N*QAFDh8@ZIV|)enmbCD)Tdu`vw8?^{{cem0SRrl&V}0>tP?nGt^LE>2a;W zK`n4DK|F8uy%J+qW1W#z$3|uK#E+Sh^a}uU)8!=*Ngx$BAs5TY_gjpDhiddKk+8*z zOatL20RI8*UqT|mFyrPgf1q`N$R;riuu<_aBQiCfs#X}HJ*dtk9mo2#f zaG<{REhF;b83`ltr*zlz{COyvS^zm;vaR?>>hSs_Ra3SAcn6$@ToAhT1iBi#ko+il zd0AEQ`(?AsCT0%TwlU~=-4Z?#~nQY3Nk4qC>q50ou@YKT}!i$>1(H91K=7f3qlrlYjlITHz z(~jPdOv!@E{5VNee?El#nIOJTuZ>=BsYuTNSez!Uy#$)y*3jOZCUES);mP&_z^C=F z@%nM2!D@|it(9DWqTSu%w*x&>Ix|#!Ji(K+i5Cb+*1efu z)5Au;VYc#lf5qoA<1qk%0W8fO0I!QRbaWn}t^H;6U%s*$Q#8EZT>f))AfV9aG@Z9MLp1xdGRlI{4&!cC1 z1?M+L0o<07rP5eK{5wY?x7WWX9D+4^*r*yTxd0H`e-YmvhJ~@~WbI23^F!qsTZnirc~T{n(E9 zy1~AdS&~3(75wdJveDiUYXop!c~!|*8NAL~2^r8>!iD9hmo5ZwH|&!Ip9C-`XEhkW zH*GKXf5`t*R#m)~LGJ)~EbYWMMl*qzfxYTb$nEV_BD(_9u$alVhW5LNFdb~$ArAm# z7UJd3y`77QC~nEiY*kav%}EVbHUDaW53L~JB)7%)w(lC?kv9RlC$^(~Y1vX0Pu?NdV;ZrcqsPQ_=_X+euobx8qpKLV-4|J0Wl4| zbFUMvNjUnsPgX<9Cvz#tDzZ8Lat{ip6re!Oe<;=vKePRfww4inyMS|E^oSqv9&6~_ zD?H*P25yHy&-k-72uq2LxkE7V<*=@;e`SDVf>a<~qiV`dRr8JPh>K%wQi^F*IvWau z<%yCRg}*7DUbM?w=7?uy>Ek&=uwEN|4ur`7|1{0zIRO2+LQ|go%<2*Qo>AA}z=g_u zk2kf4Q}`o*na-g|PV)BL(O>|2t@y9pSWjXxwAX?Ez!-_NA|Xj%37vlH(VIyo4zh znkF|yp8k-Jz74Ki4;&uRkp!RCSRZ|BxbmVbQ%UkBrpYXA<(}Ck>Cg)1>-DSc+gcQTNBkeOFV zz=@+x?lIM1D}2iWKCee?0x}E<5`Pmc-LHouZ9~%FkaClK#esB+9&XuvRK#k^ECOza zeGd^U4gk1c4;yQbW!a92dC}2rEm2RWyvUSzHh_4VX6#x9A5cTSD~4E&f9)L|NDf(p zrz|ZkRW;@J1nfvpE&f8XTyZSfXmmW&v+wMsgWz1aQ(= zC3j4j=*-c!@n-kIGmN`aS8RS#QM&*5&V0M^ssZjnB5gy2pyvdB0B`-ovTa1I_wT#9!!2qDH@D;(N z)kt$FWiMVu&tA{gZI2!RPy-;CzEF4rfOSpb=zHV6e8xS&e|?x*JwZuGp3MLj3^54- z&`XeToxU~lR<4vw&JYX$f$B<ECD7>O3KUQe$d-ee5Qkmow!8X$! zQf>y}JIK6Q3IIF>&^kRFc_mlNA!i8&fN3=)-cC{Q3<5m= z0021atYdr&07At9ASxCBXbe}>G5`dk0N|Gc04QewfPimyy^-oOQ55)-Ll`Q2O1!6D z2LL#_bhR{0@spIC5JOY#Ghg!Jz4H^nHTvL;UwqFUtm311T`e&QF&>$sH>JC-{`e6w zwuakAiYZ=+cf}+w&Geg(xV`CcHr~{U=Eyi~ho9j47Teju+jFyxu)xRh7}_3uw9ySg zqkQm(i@$tGWl~1<_TcWLknK&CbGkZRq)ynMJF%bTuqG!7)+Y(dxc3j>R{gN1ZrDBN z*f;4_-ACrqNA@`fO&|QMo1I*9p#E2om`r$PKTO&o_WLhru2s+tD$<(jUwgKd_18t* zvP8(IsVflSuF0QwEjwYHd@d}kX=v>5Ny2%3X62ML6jol40Gjeth4EQN&*bZmlMPz^|va&7d_2ehE5Gl=L<6#c=cVg*3nH<8V41SNtg-T8{%E4T}bZC4it&$uqEUC znt=_|hE7;gKwz!EAR+je)FX-vGT>=Z+aUruB5{^;vN-YEm<=b@j|mrOP1Vb@VTw&| zT4ZbS@AQ1Nz8d;e-lEq@Bfq~*(%7?B)JgK~Uw%+ROR^UEGpQ~EPvO?YZN#Z)saYWq z)JEriQB|gQTsxwg(a~_kRbiv&L>^wgwM|1T!&XpYlN%g{t19XwDVl`X{pF;|?2dde zS(YIVK0b)~Ye`$=WoAkA3w!;5iCDhff4)mSgPS-w?p!<@xnE)x-19?KW|cJ}Pl%rv zWJ~CTSbKPQv{4O$ob^WdYM?@l><#J@Nd*PsS@RW^QZP;~qgAz#jLfKtk&M`d-k0rm zCsq=8M1+=pJIuRwywS0D*{yvkZChYI3tF&yXIObF?yDX0>5WWG#3Q~KIJEgAY`E59 zm&D0?ALp0X)=V)4O<_ClSLlcW7BUE_63>702J-ZMNeO42b&Xi-z^v=kfSUZ7t);J; zJ5v+mRsI(Ol!ZB1poN8nhSt^zakS8ko8pXx85tv1SM!^hnV|$ZzO4lO8~JJW>*s^I zt&KJL`FlGE@=`K)wbws6D#52u-3SS(%T#we=22T+_!||e)_h2(S80!drM8-WPQ2I{ z&2oqD;Xf%|?GLw>9K97a@4d?Eul1#?s`c!{*q3Clx%t9Uc@dlQ$?9B%whYeHMeG$s zFI-^@et+8PLr+X1NIPjJ-ds_EFfTe`)$37JIJ!P;pq4LAF5*%e>$Uq^D1(coUQ%?8 zoAivf5T4-wa7rI7uXG(uNmGzldZ?Yz=ko%vd%II;0xYr#CVsoF2Na!I5D*c%(AD!K z3*HO$&2RF3w>5rQ4Sq(Zt0z=UHG7O6UVk+zc|-ZMo45B)Xl;Lgzbd!GQ!eK8--*TQ z{)>rYP&NNWj`f?+O7+&0s>!>G#k1r;QJ0HnTlWPOi0Z92h}@fC4!U!d$snigu%Nhu zfBIu1_i}PXVBac}$o{Vk{&Z1|%$D5C-s2Zv4t!F)H~sd|GZSvrRn)#$i?6JyVgK}L za%u`LA~1j`Z@xVJqtRG$ul(8j(o%lYu$5n=q7C7dc6qao4QiA#{t$DgSq~YkK zRBql}1~tkbAAs%w)d5aU&gi$C3K)#T3lNZPRhnVSn;X={g~q+U5``X;$1|ysgi-0J z7oR?%HGF}zw6y!|!FAkY$>}DUDG_tarpp)Pu=639W^s9wlnRqqMHX9-)3S2dVLXPu zkZ#ZB7o_)YcoUK>-W|wh>eEjO2;l(XLDT* zNVU1IB~_kXOwXpUIkiM=Se+Qq0oah5qau#p0mPGvV zMw}&EtyB$a*EAe7~Gpw@MKm}>D;W}kg9R0$XH%sAfDtZCkc>|yvP6*+2DznFZnfm zfLHyljEiXme9{F8lK47rem*`}G*l;lI}WV&de{L=S|I(?Q;A{FTXOTp{P8R1PO-GD zUk+=_a&rnZ$yQcYsGx1Z+^EC#F!S#}N!|2_eP&&u$rc}xF{w?Pp%XjRx(H-;YHc5h z^!@u&#u*QhA)l%Do8=0Ryv9Sxhvtcpg|RfQ-9F_R`L*qI?TM+8k&zDh;jb~^$zVZ3 z@($joC=vo%ERr}(SW?T@(JpS2On%V0;C@4~DsiEWGqZQ`fa zrTSZu@+~I>$k(LN`K(DN6NZM2%VMmpte(7u5`h-D)VWRm8hW5q&goMq|u^J)~dj9T>4SIdxboOYPxu!|#W(1*$ z)2DZ4rw*;E~TPDsw#V2$*y??7byT{F9s6UrDXgv~ zQ=Pu&Z1E`U6`YnrBn`|7EBUB_rR!UZZEaXHP17phbIZ%i*BI1Tu$)#Or#<{4Tz5pt zB@THhI*&?L_}1@X%-|mGR`)MQv9<;QkDr)uuiXkhUCeuam-DVZJZ# zb=!NU_%e*VugQlbWlkg)J028}7%8L>%1 zif<|_N8G=>OqY~xU?b=A8pvVQO=yOPbt{Zkb70U@E-qhD9?#;uyuq)SW7s z0H;BamAOk=Bcr3CV&qWVvR1e7x%KC=$6JG}ANJ$L1mX@DGi({4`kLY#t0qxbBuFTe z$M!=upsqo6X}`~&Wt9i9H<-yXl8&))db#It%k7EZ0u;N`EVsFg;Z za{VoK=!KZv&oJpNNUK1YOXH@v9QF|kyM)GqhG_R$`?@);n-NQ&O(ip3>nK(c*h2vv zt$3gUaDnVy2Cha)07(E9Qr-h9_Sld09?6=}n>YPb+EpFx=&YSgFT5Vw37uyAiOvUH zw+wJ~aSXVl?Cf`ku>oil8YL}hIz?P~@6izhRk8>*f7Fw>uvEc&RRz57Idu-ye{z5K-Os!4Zom7x zps76(rH70ahOBUBKhORN%oTYNNYU1AGm934AI@qD2GT zcBm#`7BCZt@zQJ_e+RY$8wE)eHNeh+jRRf;9s{~}kSAdsum@NzNMeQt_;#p1z>~l- zxwF)fl@GiFY!xK&T9*bagPjd52kz-)Bb0N%f5?yTYh4bo*=U*u{1F)1$%mq6fhB?@ z?(GtQ%|_D@;C*097n^g~4=fTS@oc9AY&M#@%WdpR4-RuYf2|te-+^}oNv!KMfXznJ zFkmw<5={Vkz|(>xp6<|q%|??B_?_I=`f6NnQnma<`->on_6`TwY&7`;>wqMUWsBMg zqzIB&)nNdejixYQH!w`&=adS8-w2Xe?Dc@nM$<$bvpW4XZZ7F38S)V&6V)pWHyOy# z;I>Kqfeg6}e-%?V1>vRu>j58)Rl9gR;cqaUx7w`Vc@1E*(KHWOODAz4@UV2iZ~P4g z(Q31v@Hk+(=C0MaD6VP#2E&i-t;yZm2{&1OENeAa9ZmN)7|vL2)>CfpMa#YA44{X` zK~>cPac%8g>)Hr63^=Csmfbppifzj{S=R=*{y-)Wf1#DTTU7{*b#=x|?;>0s@R0`B zBZ>e%k{PJe$?`WC7641zlgogB0K&t=>DRwMwY9a>)YNopDgglj+#MRqz<~p?*=*F- z*0v|PVL-XnX3bRm5iKwI<=J66ay?T)@RYq_1wOF`*QMB z0o}Vd?JQYYS;@{FJ6XSeJ%y)FcPOw!BO;hHXAU!xX3)EL?Bf9UWbHgDNNR8*ALgB>+$6q~nf;qcdo zNl8s<7A`>d?%kOj7pH{Tk-+a2>13IWrf^_|61f^TF4l#cVKRHa+{cIO)^S%zh}VI= zDuDMbgpfbZ&=x9jsDz&1SQbSqqa{Ip4{WhegYk9v^CQs8_FEN+-G8 zY&7+7r3ODq=i4jPnRO42ZMIGWUaE8sI{TEQD^h8;Zkbbn%|=r^Ds18W@%)b(Sy|^V zoL3{+5i+}0Yw%n(tV^OqRaI4&e}`LDRfQxv9O5>5bod(#DYP(N^u z(Nop37BzY_OO`It#z(RiFIh~~=+SDLc=-AsI{ESJhr=~f@z4r-y`ID0e9e#{Lo~8C zsJOV8Ne?_oeSN(e$=3k=1xd7BufY>gDQ-q;YN`ge35A7)k&>!flhspZ+W3ebuZoqP zJz4nDB8_G(7#h*2M zmPXNYWi%QXg=!C{bkEPV2N@U_-Jt_tNjE|4g$T_Jv7rZiE z)O~s!E+5L@l`%0IInS3>m>$RZ28wHxa_*s>UQz0m)gV;>`}p_}e;gdFk#kZ(!NGLv z)=f3Qfl8-3Fepf^40lTT`1mkjzyLLp4%Fi~c1BV8E9`{c6%^1XK#gR7r3&DH-T@jh z7iBOQR0G^w=~U|*>NR4nmf1B`%B;5@6{6%=tyYbgi>j_s#g(>)Dtka|Hk(GwMO9U* z<8i7A;JVs6jhKsSe`o9t_W~A05xd>4QFBra4Gol+m#YR?@iTqu>gp&fE7Qn1sj{*% zCHD*8sB3!QiW(`GT1qu?PRe3Y?TpJSdZ40%WxCTz#mZ2j2UOW8lb4sPk#kbHx!?`@O+n;N+DZQ@jUQPwc3}z?b@Z0Y({_EwM$L7KM9g}{`yp9wpvzJr>$1Ajp?wucI_Ig z(^ji#;spFMe;56KsRoR@a@v%sigSf6^sO-C?RR1oVx7_o!{Py1JSt zXFf@Gc6OJ8o1LA_(@#C+u0uz5-v(HaL<^1suT)i4RTVRnk~w_naF>Cbk&!|2j3jqO z`pcAA0=Jx-#D7-W!J7<*zI;=V`DuM|Jfa?udnCrx8COEWy`3mbDN*q zJ64u<&qj~GCw;6u#@JwsVV`13Vkp;7qEozV;dm ze-|yh>Agp%PbVfOhNR?Vem8d>1qB7|%K05eBjd)!GG@#eA|ppJG-4=y`t)&Y>0P{d zku!y7$ji$mD>I7|Cr&urb-V?8@tK;?8UMD9z8;ix_?Q`kp zfT2wtt<%!ENppaYowYD{@L90e-*PoM}%{%|~4zIlW%59&83>rjE?srsG zR&xE=Jzrm6f`WoDo6Yp-;RxgP$%ge5oh@R*#0efLT^}DGPr@w+9u*|fWuKomH)dv| zX&jINI6YqZ&$r$pB{hYPs4G{l5FX}{(_^jz@q#3_Y4=H+f2V>3Nj!?Pdz!-qQ*U=KtqXaJrOByo3p z5^48jt{{nJMW}VpFZ^J)eF1b&gIKLQC?ookEK6SSXf9!MFnSzi`?$f z;l^Ro^_r`Q*PdcsLqQTZnT@6^z;;(UUXA17A1qjYa4xo1t#?iOE8U@bQf~Sbk)rEu zf+T(c{2CBdEd}>%|8TcNAWliRiUXD*9|y()S|l{*f0Yl6l}9FcHDDRC1(*nYqOogL z8-VdQ?kDnkz%pd3Ac@Zc&jDHp_}gU#o);wX89@?ND<9Q;UIa<}5QqehYfKw;9EcJm z@vmwda?7?pK@v-F9Cx}H7uS?KVJ~?pFhP*SB6k>c+rCXf66*y?d=H2KKJ9{VKLv&f zlK3Y8G1W9}xhy!xE0NC$<1VIuX7bNiqcN_QE&TByuzXHYpPXUFl z{I;rNgk&m|uWgJViRqrogh#j53zBFTBylTnFOUp4wYQ~jzkY7d>-BwCPIjP@fqMl> z+$u<-N5lN-yzRC(8%?pmT)B{LoASKxzWX?sfBwH7$y;K40{Qt(I({Se&X#Rk^CBZ7U+_epN=r+b{q!tLQBhGaP%l4mHsRP=f7u($ z(Q5&>CcE8kl*iYJ@{JIpf*FfkGYJJ25p0z!eoIQBQ+Ex&gM zG!TGe1??K}GY(&;3&1~c?6EBYzL($oNvG3w_#@o@AJ8S&ABd!}IRF3v07*qoM6N<$ Ef}kXH7ytkO diff --git a/web/public/img/avatars/google.png b/web/public/img/avatars/google.png index 5a23e0e1e64f0f143f9611e9e217f69a42fdee01..640b5cb9b47b28cfa4776a4ec05b1777bd386ec0 100644 GIT binary patch delta 3579 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 BpMC%U delta 3997 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 Doh6s= diff --git a/web/public/img/avatars/googlecalendar.png b/web/public/img/avatars/googlecalendar.png index da64c4c898f1ffee3fa237d39eb28622d95de790..519f885df0d4ce22740c9726a6b0ac28e4f2f2ea 100644 GIT binary patch delta 4470 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 delta 2691 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 VFfeuNy)^&;002ovPDHLkV1fho1)=}| delta 3734 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 diff --git a/web/public/img/avatars/rssbot.png b/web/public/img/avatars/rssbot.png index 3f883ed2d81f9151de30ee8037c495ae8c962177..10f765f271ee6f2c2d36f6845b74ea987aa24b82 100644 GIT binary patch literal 5824 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 delta 7355 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 diff --git a/web/public/img/avatars/slack.png b/web/public/img/avatars/slack.png index 1a95146caf496b8672675ea6ca1cf0eb87ff8777..433b9dae5e2ef94d139dbcf99f6005c12327fdd4 100644 GIT binary patch literal 12544 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

Dca(QtTCmStw5Qo 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 H8wC9it{!g% literal 13807 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 diff --git a/web/public/img/avatars/spotify.png b/web/public/img/avatars/spotify.png index 739778703fe4c70fd81f2a50ae95366c36d264a0..bab9c9c055bb462016019577398f80452ffb92c0 100644 GIT binary patch delta 3804 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 H$06oFfHxnz delta 4652 zcmV+{64UL79?v9@B#~e(f8q)j1tv4nUmy|y01@0tL_t(|+U=crlvLH7$3O4Y-upt+ zfOOH&fIL71MFDlxh`TXhM03=r<#LiZXY^zyqmYTlb)t@=GckJR;J7@K<4$moFd=G0 zMH-OBrJ!kOc&ttDTkY??`QyFDqFJo2t*e{&<<#MDs8{#a{nYO+f4}>?zbh~V<@NjQ zfCq4zFB@Qwdy5XJKn#eOuaF|iv7y!$!Vm#^IxrKM0ZagjfPBCWxJi#Y)I7eFnrYzV*w7z2C`eD3x8 zZagk6*z5NR=8|R^P{GjF4&VY{ncFP+WJUc&wMLocYiX`tDFu>-7YPHoZXH46GDL^DyKem_xT(>z}w%}$? zHNdB-7-A}utdFdvP*yY(c-`ywiCF_|dZ;WXM)q_if8fi?7;O2L2UM3RlDsTqfX!VY z#cJmP(;i^DBFW8}>Y|^q+IT>90`OEu#$a=^-rCO{c>Tod_g$OTF4}ZvY~lEh#KKB03c$ZxaC1r(KtlV-iFDC3fS*`xnsd6#+yh7%@UmR~mclXq90z(Or7_qH zO8=j1f7g11y_5=jF~e=el-dg@5eq1`S4lKlz<+gM+?%ehUn0GXj8jsRl8}4bU*^}%hd3)ZtP zSWj5b>64;1-~nJozb)A7_g$3E?%C_8KypJ@vM;7QNhin7ji}MZ1P1nHbg{0WH3wBHDbC- ze~a45yPdTx>G+Jg$ew|&)^r@pbjP4l*yu^iX=M| zSqEQDlJQlS7oBdw?W5E3Ci3{mTlt{+eqQ%3;v{!cXvQG!~SpcW>iMF?wAqI&EQXGSin(oxEN zmDjPV=07)u;SSQVD2i(9fMZxfc*|1>~L>z*hVlj_l_9BMciy2`rW3;0j zucLx$=ZKt{H*5*-=FWZ3voX|=%E$a!k>mxv|A_y|lwyQwCO=~g*6~r#SIjLqIidG= zr~x|F0PR{g>x0|a7;0c+uz{_Sy;*PE@y?M*9Nxmf8Fc(GPsSV zSO?9qP6B#3=ekcjHcD;zl-ddz=_qA(-XzY>pUPDCn5>k4<<8%+Hn=s}$4^!yc~f7& zj{E zc)+@aEOq_7>|%VS=TmMg!j6LPIldc)>K zMB{HkV3@6#N_z>zf9ypR+43k9J%@OI1O&o*jBYJRml~u+?V>T(MpLYVn69E@gy(4J z9O@d$ydrvxrJbL%wDWUrC^?V&DzC$K1c#8W>pa!+9&3^td*f9FU^g$YC>m&>6P%+M z?;1(9qmnAeFh)4a7=AGDt}taco~CQGsogZIMvz@&tew5le^!)e6Ah6@>LYt;Q@gYB zUH{nrA@6q8a!cuj{GebOCpgLpXkpd|xA9uXNKwmqw*c^NMB< z3Ajg6wX>2thW&`wyo=Z{;Scyq=jK`!-SO+-jOeQ3vxfW{*Dly7wH0uG|n0{GoW?BdM3C=rTjS| zEkd^ze(- z5!PeGbd{JMBc^MpsA#(3k&5?92?&V2FG0YDf6Y93XvZ$ta0zxs*~^*iHX=7p@zgLj z!>2Fi7ti71!kMfJ__=M*(**TMwg88F9UUWp^fbH<2^)B*r;MFx+&9rdu&xW#Rr8c&p_g``h8`uTUiU0+H`7N49hne;tUm^Iy$xabd$fT(aX{?%el0J0huN-d|X; zAmh~r5Y21NJ1vZfOiOi?XcMn@tmK^Si&(JpVO9sW(5?3W1Yv>b&cxA`c@tHh6^438)aoQN%&Ld4r zSQXejAinZ`s#THXgO(HDe?_-qWYbn)>+9U z*J!4?#xTiUmG&RmfmjE>*z*+YL)!-u@L@SCj|BKeKu&kb*O#2fLn97P;?t=H*cEMN zPqdjGkppar?4~Zff0u^H{*0yp9BwN{a#u0UJ(ekMFJm2*)VM|-7MRdq{k3a7k2k-G zKl>p%05>R-{HN~&Tn=o-NXn8{jk1^Vv$9L5at`B*z-E?reMyVjMNE$o(bWN+q4vga z&B>d@jiqxrBVS7Tvs7K<(WW<8+?v&7`2j_e4~ud<5?~SIf6~bxaU9DdIJu(u3@$A^ zm1*vA6x;IpHyCPBE^N3b*%S=P=rKi-?>gM6)JKXWYgiXx5!55R-2O2)?0SM9Y+uB$ z_rFM3OWc3#5*?hCKRH{~4RMt8&qs`lRwVg-U?-N)&}mV-c)9&!Cf5Cof7|~e--Z&q z-7h~&VY)!Qeb5_$rOj!*_^QbZ_9RP*ys@6-Tq)BTlliv1A%*Dz_DKMbR0| zFP=?Ei}J^|zp<=)9T7d2>7t{+Tt$*sCI#4p+<=*}f5lSHX^kSu$4r5h$l-W70%(vP-D|$|mds8%bI zJUiKkQ%$2Z5A&F!rHp7JaCRymka8%X*YC?S7v6;ykF=@_7^z5dN(ZM>PK2gNasW65 zGi89Kw5S0XlPcV_Sa6&rmth<_&bRoaY`J3;e@RZuF~qc`GE^kF6(dtmy~QY{F?VFT z;HK4r<1E>QaRlZxi&y_<%fQ)+B&RhMUMBKHM=-89eI09qBIE1atXpuLC5wO$c+TQ? zOkHVi(5K9MDkKtR+Xkeq5>2IM(@-kpL@S4T+pnea`%rxArSa2U} zf4&y@Z=m8h1-l<(vwlgo3KX;X?G#CV8JG-h5HrzsW7kyxUX;81PgHg zK~KeSe_jk+$iVGAw_>CzT8k%ogKb>5yi=RE*?sOMpN1 zrUx8M8kB(hz|P0G!MqydTJtIlx9A9rD^`m!E^3VL;&ro&?E*T0W{iM^-54QAA_~T) i`&LDgLs+tutNMS5*j9No3`zh10000L=TpTPDGCyW%cNS)s_%Mw^+May#|S1gM`SN=n_Ql(IOHhtGCtr z3c(8Edq02v{`lSJnS1V?dCr`fIp@62nVCcrBOMw_c1jQkM5CvxX$H`s{}pml;H}{N zXc8dAFVqdyL7-2mRM(Cq!2iAHx@LwTP>28s6d4Nw{ROHbcR-*(2@q)S83?492LiFe z3)@VUfd*11eH~4J0?(yJdjvoz;JVfUAP_h3%^g9YV)Jz!s3b$^8ETPjP=krUtXAm3 zGZ2XLN>5YWJZS!~$Q^DwlV4`c$G^$_#T@hYeD+gNYv!7O>6-sxlGoe~FJrr4#jDKW zBLhJsYR25Sy$BJg1cNPEWa@FEa^AeDsCX4dadc&5Kax=+pYtt!W47a-S~M{^;k`#| z8BDD3mHPD}?iP?b{S_oV%LrrptVGu-_&EGRY31?<0S{T|_yg`gDsMJZCmuu;x?VEM zjH+rkger`k)J;9OrFyez>z324)zASnxxd+*am#6*cz|PZW;`lj3E$2+mcx#? zGy0B^>*@|585iOMEvH!W4IzIx`H?y(llWt~TaKz>!*!L+X!GO))m%t%x{RRwjVxB7 zXrAb*qzaY#o{K*?zKD|e#?7T$IN9}bRA%&I{DE(0s)@#kfO0c1&Y$nC|4qQ^up-9x zZZaw@&qfuG(v!lU-BHi^;5UJ4S`(~V*jmwJ_ z`p2-$;*X(y?SWjN<$1w_>>C06K7G^|@|gpudyX;so@36%QOlRlKk?>TD;xXFVVN@` ze+6L7H<{$IXkGPo_ndB{hHDOBJ)1I>xv={IT6N3ZC(v)`*DK;UY5R(uf<~bG`zG08 zndBseu7)2ERGEqoWkwxJtpADccwXm*aUY02)j0@Rcz&FKuIQMVHCy(y6T!*8@0fXc zqQV=ke!hFGv|!K>Dm`|Rn_~V2HeDs?vZO7(k?Ha{{$2JNyZL4(DSq{D)z6nnUrhI@ zszzpXMfsP{c>=mb=N4(5x@NhWXkFe(cWIW%qS}(Wca@=4zvjRA}kB(j#5MIK75OtbpL_c zhj-Z~P^pk4fG08O5Y&g`Fua^g@LmyYQspx*4!W zKZlaH`{O}A?E*$wNTUw3`HH|?q=)Hzg_iqF%Key>4G#@F>{Z%}<%e%J9ezWWQLOLI z`VRBtk+lJ93)_l42Zwm z&#N!mFN}n$tE03)VBt`m^kD9ZzQk-`q~tss8!I%KFY1mokg&FulUq@?lO^FDA7Eh@UhSkW7G&iYK9w#N%PJLL$ScY3m~rpGdtzd7J`v-RitT_M z+4FwuZ&i$LxS%)zzuDwArr5}^e670kHv=jAWF8~muHPP|iaisDgLQVV^g5!RAzinQs3}UN$ba#@dvkz5b~0%%wOZsMa835@24;k zpQm^A=gnu+*`w-9iNL~=Q-g(h12Exz1q8ooDXKyeYXV!85>T^z`@qK{%xtkN8j4jT zqggtnh(0oq-08Pq=+tYt7KV@q3*0?jUz`5@jwX3qK{=00};22;HPX8;~J;a zf6s%613>AqZN&Z9y~33vge%jd)K1e`Wmj=8)4r<5#kPZY^zlagJ7g_zr*i9mXCM0l z9Fq&_A-d|PRyOLVvuAx9)wd&cdSK_=&mH%uyrgiA78MD}dG81%E|Bl-3qy5r7T+U0H&2!_u4H+Z?gAi!z$;UbBv$+Us3Vy-p}czlEq7 z-?7zbhpj_Dg#2n|Z`6hH`_Dg_e#~_P(jV{51s%=Yq))Bovv10MYxp7at^B9VH*6Fq z;UA*CgGnPWJ?EqU!CIz**ZsJt~f$)XB8DgixCd0*Z2YU zTDr!g5Leh^+x!AP+8DJPsPx^Iw%TefVGmO|keE+HCKB@J3dZ1FyHgPAOa{Lheja?r z8xVYE-@~IO$H$HMa11_$=rHA@J{8wFU`n5Kksl^8i?RsjFcPzWq^Y8kGb|9=UtSTo zJyBWr3V!!n(m2CHRnvdpg}?QTcesXI{VkLr?K$ZZo9$L7H~&Pyp-5Js$MO2Y6h3RE zrww!WR5nl{o~|!vEN&&`;rnW(e?Kyb`%r$tb?Iq~A#Qlse>@(i#s5Z2*7ba53MBX#1gb6C~B~)!y zicy*>nEl*d&+OX8ZnPyvCg3V}9Op_9V|p#DGdkKi z(8+x?s$$cd`fd);Jr~2xed;a4YOUY5(=`u;zOyJVRCS7XI=gg|hFRBPiAO5HD%nrv zs8gL^vLh%NK3h==l8ikc_GH%xKV^G+Xt|!fA99UYd@_imZlRmuOmu$)yG*wUJ2?M9l|$hSLuuQ`(lss z?23Z0e06$J2c#rVY_jmDRW{dnI^}tDeTmxnRYco5ZNGiXmZ8$CEiv7*WVZ3|>r`XP z&V&4mwoRJMIX89Ps_R?u5@`y<7|A#sEKO7wc{skW(9}O%K@-b4g7J$?DTSMje^3iA zC7e6+cb-mNYvq#tx3$Ih4|lAr@@}pt9z#;l|2nWr^xtLW>ijM<)nJ)rui*pyYRVf+ ziDuX2JQI>{M~L;Nm3$L+eQ|3kn^#Co$C)bMT$4uka4i^uJe2s{SzHiX8QQiV#^`}+XEAV@4n`TVp(TN)E`TvfApyyxi4aYS=`+yO`sv_wY{h-x$~@dCAt6IMb=mtMeo)HGpom z4ABPM#TM$eNY*0*-&LnN7Jff*n83i?7+;lkh-j57`J6oo0hkLZ1RcuB+x(Tfig-;O z{JIqXj|N<+%>sYnK~yHo@yHvSyWxa+gNbXE<;a@yOxyVmCGVoHnEkzWJRV8nMR?b}C^1579k*R5LoR$-s8Sz1( z37PF|sqdAKVE{;ue8+SW7Qwf$rv7qGtP`~&z*h(jNXUtSp z(d`R2u1&B96aV}b*ac53J?5WoU@FlQUhKI>RwR(IM#k-4V*i=X#e=cNAbA18@4>^j z=(x_XHRIjBs?8A}6Sc%d4Dt>CR{GI}yWm2_k>*hCDCtM=WT(DKzZd8{+J+b=72bifA zMRYB=Z_0u}dFtU%JJHjYu{y_4KaQ#WM=Kn8!^)`Og+#QcrBIpWah#&E)$gx_SyNS3 z%g9)ofqlQovu}r_ZJ1HKO*1>m*i~caqfo4K(g$eb=3R?k5KbulxCka4`^rQ3trK5R zr3bwO&SEX%I(@<%9D0~J}QyqWs~biTn#!> z;O@Z}DDBU)i`)$Bti}|#hB;4|02*X)fV6GH-Fu1gDVI_3Wru3VfyRQ!W_={lZnXW8T+ zDNmjxU_Xa@);od9GJ%RVm%}&Q17cKq|6f_JCahBlvBI}&vBo043XUTJKSb!L4xIGX zW~^4-r|6n4=~-F&wcd%fzWz~9h;@zCd^Go=%J?;8g7>8E7Y(+A$SZ_g;<;p$xOmjbsLkC>BeF@k#R{YAxWKj>*s zZfIBB?+Y(?NJjmHd=DI$C;9kdy1rxcr8wgoGetF&e#Dw4MA&6MiL5@CA0MS z>V5V&PtI%hOZz&?ix`M?fp`KRcIgCniZ1bT-VTdJ#qd`qxPaJ@ccO`8a0FI~a@;ga zb4rupdgEgLv8d)+BFQ57od&L$09HuLopLPk(8p=vPLVAUn1jkHVU#9!l%{;)HEKXw zw!8=`QTdl)d zuJf~)AZeG`iyW3WVH607qKV!6^XjEH2;{D`XXE?S?o||lwHH0dfQkPtG zPr_DLL>A75hHSGJJ$3Lj>Oat)86@-P~`$ohzk1D5YKINxH zqQ8b963_749P2^*Ib0`kV()lk6do1YhCRDk^--`3dhv|iftiLMhlnkUHPYD;@#0eA zFT6B7=Qj{+fI}=2e-|i`>c+aZ0Z_PTZa_w|D818qlbdQWT$Q;d>`MO=_07+)IhLk? z5wu3QA4dhcZlj5~`NU;DcC4-d#`-&+TB!vs`}wg9z@J``C~!f`lSzLc+LOeexjH1C zT$DaVgDxoHx4+{VE}JyENFh)7)a{q(!^PeXZd5XZR{hDyI4CP`)5N^i27LIXJQJQa zyQ_qZhpIQ+Po{_bkafETK`%k7Pb3%XE;x=KjvL62bG=~w^~6u-G2N&7kU#C|!iY

hk4Y4_s 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 diff --git a/web/public/img/avatars/tradingview.png b/web/public/img/avatars/tradingview.png index 4fa6bba55208bc445228fd587eca237185b721ab..e66d7e6fb56770489716227018e942ab5432b966 100644 GIT binary patch literal 3831 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 WKPx(C=qL)h7r4BdT$zkTz<&TYt4F{9 diff --git a/web/public/img/avatars/twitch.png b/web/public/img/avatars/twitch.png index a54f6b5d737e159eac452b410df21b4a26b47a57..9f03767a0aaedee4f876fc2d4e08dd48a1e893e0 100644 GIT binary patch literal 2455 zcmeHHXHb(17X4^a1VoAyX^;8g!ZVRCxH|;@8|y5fBSQ1?mcJjnS18W+_`gKI^4A8;S%El0D#BV#sb3N$A2dW z3j=u@I&lnQ4Kf9r0zgH|d8#iPqn7r!fq(%ZS^)r_z5swzhV*nD03tvDun7eK{VxC@ z9G21GcpU(kTO912Eg21WO!NL9|MLy_o8(1%mS-n-=e+4jhBe;S%i3N)Iy*ZXXj_Vh zR`s^v{ETyJ@#d(X+_B=r!1iT-liVoJ3OfDlu2o^!KT7AuHlsZ&=Ek-nT+nOyef-SM z8gB2dWkCqIWNDVrQ8({nkPW?_<7=2xTQEK~wBFZ>>utq(YNPtw@PpXp+qzi;ZTP(% zVko$zAA>(2kb>=s{fu%cr?dxl#a=on8kP3oM)Bbud2gHOt(Vn@!O`jTgI&_z4rycM zptXGZV3$lfKD}d-SD8JsyG{I_Hh8p8uE`st(defqR9~Zi zrtxc_<0GA=xhuTr3W3``9IF?ow@M2IfAf*$luhjY+&pYdRSsA-G94e0SUc1voyKgZ zxf{*DYb0P6#nTCt!^^ZXPvM4(c94au=c0PnnB}d!MwEXsrZf57u(pWS9Z$H=C^*Ax z+`|DtRrc>>dYo^JV2JE+Td*bj3bzD{glH>v>i_`Q%xx`9o$oGm%mzIXv=nFGlkdsj zKKIsye?^+lkMAbP3}nKm{$kkE49v`Fc(ioJ8lja0H8lYhDQa)?sZ2mM5$cEvWHTue zKff@)5c2g~+P8X|;oR)>Zcu1sP!J-J4XJ53GIH&Dn)|d~j@(PVY4^0u1)aXW+ z`XzmRc3-DcVbR*vN4BcFrUE-|Z`qxWSk_lS&xsi?Xl^Ya3%+p^0=cp9rY_uZj2jk& zUD7KGDJS;!`>y+P1*2NqF6&~9lId0^SEH7}@cL;Eto;Z2r@{HcU$qX}q7*RBy^5zC z?GuTU78Y3(Ijv~mT2wwn`l5L!j!_pR*4T#3T|`1ZM74o@Ms2n_l|mZHZ8homEJBxT z?cwumRnCbN_T9PWsKa2$oP#@J|SnPGZtMGzMR)G9V=KnRA1H@%{rV@wguMh@HrpM! z^o#Herps(b#5+N5^^MNB-@^#^#!{g=6c3eXklqv{J(xK`;~$KR4h)lKQ17`IR4FyHr0YngYbG&R`Qv^O{({&sNZXQa+%;7npLg>NyobZBtb zJ`1}TOgzC`Q@SP*1D*hKNHG1D`yn?jh54_ zEJ+a3?GsdNge=;WIK{^=r$Mmq%cha7WW=T>f}mX)F*xd8FEq<3j2MD0^Q&&VOeCIW zRC#(9x%?i=SWOnH9gf!q#k>{Jd06#aO@3`KH$W#8Mh@wwdWii*usr_}ws|SFvSUj$ z4pAL;5vg1jd~vFyRpgK*apu19*25-P>F1BLMWvJ9SC8ChM@|#1oZ@czo5#Jx==C-A z#ewrb4M51T+OFuk2T{E)@1<6scw_|_d0i>pVSHG5xTPEXjxRhw-yashAV3480lKQL zaaBXl8FWowLr-5_M+F4Z2Z30Bvc3EdL&(EB_X4B-yCGt$S&Lx+Y%OnEpv|Dq{tc0% Bxkdm0 literal 2958 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 Efz>% diff --git a/web/public/img/avatars/webhooks.png b/web/public/img/avatars/webhooks.png index cfb02a7f2c9d7388682dc21a8fe931bf6c7b5249..da3257717a88c7288745fa4c2abdc376997fec00 100644 GIT binary patch delta 2837 zcmZvec{mh$7sr1yjb+MuRg7I3Dr6AKWSeVAwz7=9EHfx#bQz;bGlVu1V#>ZGN=5U^ zGR$DKjI0rbYcMy&EsU&X>-GNiKJW7V=RD_}=X3rz&w0Mj$yIINpRRra7GmjW3BW(n z_G|_S0RU8kPPsS&a764zWM`Tk_~_?A;0nL$qY3VWl~IOmy)a} znY#kO?&Ee=mTsg!=L#;}#J25g`}oA`s-29hnzdJq-z}*nj9aQgiTk6yn%kLDBS+|u z0(W83HHL^BeXg3+rWCEF&NI_3$Hnm06P@gb;_~vYwwdL7Si?wfLt55pt;)t{Rl46+ zJGIUH)*7aH_0tV3vV>w1Wh$rP7x`LG)6$jsV#~n)r??y}u@Ot8V~H&6YB6^833kWHBhaLO``+=&@BYDo%amq^1LqM;nmcu5j)qY+XRLS+zjRL;nG30{UcspQ zFeS^uWml~Y=gRPB*t)}{upcAcdsoa3;i?nJMc7quD4_Iq^aKo;Yi=4vYz@{_ufa>A z32hhf=s?(37M7TRCAuYs(RSmV-!jkLz!LM*PfIZAh?!p(@gBjXQ97l>si)Q_*{xbt z;4jQPVJqJ4AdXJ*WOK~kh|Q+#4jtwUET*SV2rWxghASK_j>Mkn&l5Afr^v$Z7vX8}`V2_jV`F_o7yC?=-R+C5VQHegeU-Be(I?j- zsStt&gco5h^HolOP2h;W6=3Cpa21#hoQ216@-2~m7;9@@~5dm>xuw788W9qz0WsB zw2Wgy$DBiz58@()o)wDT*D&$e`~3cg{Rr=?drE!XLhNO7@vatj3}s~E3J%6Mc^aa4 z_WswXLF>?K_j)&ECig;KM$xxdqULaHxyh zaD&zGFqGoy%>eU{1^nbii7&ef2PDaTnaQ)2{-chtZx)cYRuP<{qU7ZpUAT7Nnl9_L z0FL;D`oD2CxdUCjCRSQ#cP-X|{H*kk>Kc`BL2L%$VAVc z_QiyC*L|_kS?haCG9>u|w*Y5sk{e#}Ahcf5(b z>Dp>%WYVUo@MIC3b`_-ccbvN$_4(Q#_xiVh8Q!Ash}B|(qOq-QJe1=qM>XFsPZ2X1 z>oy*vrNMLZ@Y9~R*S^aOPr5f{JriOma)QAIWD~*ZLwz#a%~z$4f^!g5i#fE?U`)qg zEN;TjV?jkDwB25gs$vHrsZ)v2g*dPVB`I<=z$JJ{$4M$4XsqEGGPGD7L=E*_hi_@{t!u7YFTQdMoP)YT3EV= zyZq5?i^vqpxbc{woM7nItD0&RDFV8-`t?$?2l(|B$@hS;f&bOS^^~L~H*z2bOV4NW z>xNvpEJ_2M%g#hp%F>zV!FgTyA`-N8Fy`aH-8QPP2b`msL#Qv$rfeHS>MQO!YXe)b zY1Fnp?hiG~G3L=6nBz{6ShLcVqt8)%wS7!(pvELEu2l)oX1$_rSap0nc*KvNvE3-O zix2-I7Za?=(z*T zaJB-5Q?N6kaPhjEq0n`*>f2*;F%zQ>!jqk_$;Z{qjQalQ=QY(ai1?^*+XVi+1EhZ7 zn<(dwD2G+e%(*X`Ad5)*@p6Fos($M+asVxda z%5;N9DB%V|@TUQchiCgxEW!36=t5bI@v%gy`a-~aLnW$h&ckFDPhyrlXt8MsLGTpc z+#iDuV2A0C`T1|w-2&`FlEZkW@Pe^ul(P)ABF#Kv?)%0Df?Q0o3*ElP)zO~6JhNrG z9A1XyxvZAA(1jQ5?a*-V;W*fnczlPcMHc$^(CrKRAm(RmDE(#+d2CUR+r#KK1p@v^I`W39FttA$phq|_Z2yF}JvV0p2z?kNiI;?GB8 z{HEm^xsqQGV(IaH$UDCpio$PJ{Oy`jIOqb~zynH!D(`DSxF}@m3*R%}VCaRMKptTd zAt#u3l$$MDK9zpiqlfT}Y*eAnT8^-<~ftL#= z{0iDKv}A;3|14!;Y}m3O)t*ogShSF)w>sPXBBedSE_MBZydYP`x3rsNtZ&J;)o^ee z67z?bZZ~I^mclT(+Gr&%OP3Z~lw3xs)tDHK`oegeU*rU>7n$rotp9nrNE?kzFS5_p z)Cybk>cS>VhR6F(DSEwqm+1~|FtRLXX`3$LLe)$exJIoVJNLlv-nZ%-%Sp z)?3HO*@~KX@##qq!*JKmi_N48q&d?m`6>c=fkaAKZG`!6#M9wMW2W!D=e09sRQ> z+)xH4`X@~EjI~fG6BG(oCv@vSh)a>U3&C;!CjJ|U`PO8(0{}Z~C#x!qf8sv@`SvWS delta 4082 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 diff --git a/web/public/img/avatars/youtube.png b/web/public/img/avatars/youtube.png index 512d0b6b9a9fa51adc8bc858269e8684ef818d11..97559632519e6297d520cd1911e5b6f538c79ab9 100644 GIT binary patch delta 4030 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 delta 4065 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 KcPef_dGRl - - - - Created by potrace 1.11, written by Peter Selinger 2001-2013 - - - - - +Created by potrace 1.11, written by Peter Selinger 2001-2013 \ No newline at end of file diff --git a/web/public/img/logo/made-for-matrix.svg b/web/public/img/logo/made-for-matrix.svg index a246f6b..4b92f3e 100644 --- a/web/public/img/logo/made-for-matrix.svg +++ b/web/public/img/logo/made-for-matrix.svg @@ -1,6 +1 @@ - - made_for_matrix - - - - \ No newline at end of file +made_for_matrix \ No newline at end of file diff --git a/web/public/img/no_stickers.png b/web/public/img/no_stickers.png index f865c1afa6c22769f8b7b7c0240b13aac2354365..e4c47d48821c1d9477909495f40f7d64e61df8ed 100644 GIT binary patch literal 94597 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 literal 105107 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

@Hyugbi@X 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�e2C5p28?tk0h>4h*Qyiu``>@A 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

_zR=hJscgGlGxJY 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 Y$Z2?)~iN*{{F6toV663OpPfob!?r4;686 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 literal 80061 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
;Ta# zNt^r5O^z03$l})7TtnQ0fSsFN98S+rFU)tbt*VXe_c3|maUxDd4d|cano8<;T^&)& zPG5JFtH-4Riu)#boO3(X4|Z*{C3(ygF?0{sL^#=-7Qn()1r-7m$Y{b)e4IQeQRbBz zp3>?xSfaNMS6aR@Q(;O$NT138mUaX^p%yPLJZY~!VV%hPyOOJw;u(al#AcVDZ5B+k zEsWKU>|z}02_G`r10{aVRXqXF;O`HtC_!9%nee9SNWQ7(^$L76wJ+~vB2xE9n#7uG zsi*4x4w6~aUG-)fGY}dFNGphimh)39lSQSR%ITG@eHWDC{^14p)W(Y~GZUQb{|rgO zpV0-#6(oPkm3iT95-SFARCWHZqjLB&qx{d1OvJv=;jRbjg}Pm_RR=Czt zjSoo4?77m7P+!E<_5o!Na2)V#CBtlfE+7Emayt7Ld}w4Y4h8O_7a^-RQDrxt3IG-{ zQW;B3gZ22@=hTmDIU$35XfplVDt)guNPt=~>?5ES@u5omTu!mIY=3K`5K7WvO(mnM<(&i zRRFu~W}3E~N?%SDj$AQ2rT4mp3^(L*N?_N;k_62yEcOdsT<8ib^eV#lW54Z*{@6D? zGqqvkFSfSSNAH{T!Upbr)gQ_B++t4y={7kPVo+dkJ92;nKox#v$oeF@6cFRl From a3b17d1a9f90d9734367b037005753b2d3faa153 Mon Sep 17 00:00:00 2001 From: Tdxdxoz Date: Sat, 1 Aug 2020 21:50:14 +0800 Subject: [PATCH 28/30] able to remove stickerpacks --- src/api/admin/AdminStickerService.ts | 15 ++++++++++++++- .../sticker-packs.component.html | 5 ++++- .../sticker-packs.component.scss | 5 +++++ .../sticker-packs/sticker-packs.component.ts | 19 +++++++++++++++++++ .../admin/admin-stickers-api-service.ts | 4 ++++ 5 files changed, 46 insertions(+), 2 deletions(-) diff --git a/src/api/admin/AdminStickerService.ts b/src/api/admin/AdminStickerService.ts index 8664edc..f06577b 100644 --- a/src/api/admin/AdminStickerService.ts +++ b/src/api/admin/AdminStickerService.ts @@ -1,4 +1,4 @@ -import { Context, GET, Path, PathParam, POST, Security, ServiceContext } from "typescript-rest"; +import { Context, GET, Path, PathParam, POST, DELETE, Security, ServiceContext } from "typescript-rest"; import StickerPack from "../../db/models/StickerPack"; import { ApiError } from "../ApiError"; import { DimensionStickerService, MemoryStickerPack } from "../dimension/DimensionStickerService"; @@ -49,6 +49,19 @@ export class AdminStickerService { return {}; // 200 OK } + @DELETE + @Path("packs/:id") + @Security([ROLE_ADMIN]) + public async removePack(@PathParam("id") packId: number): Promise { + const pack = await StickerPack.findByPk(packId); + if (!pack) throw new ApiError(404, "Sticker pack not found"); + + await pack.destroy(); + Cache.for(CACHE_STICKERS).clear(); + + return {}; // 200 OK + } + @POST @Path("packs/import/telegram") @Security([ROLE_USER, ROLE_ADMIN]) diff --git a/web/app/admin/sticker-packs/sticker-packs.component.html b/web/app/admin/sticker-packs/sticker-packs.component.html index f6c9ca7..bd1cc19 100644 --- a/web/app/admin/sticker-packs/sticker-packs.component.html +++ b/web/app/admin/sticker-packs/sticker-packs.component.html @@ -52,10 +52,13 @@ + + +
-
\ No newline at end of file + diff --git a/web/app/admin/sticker-packs/sticker-packs.component.scss b/web/app/admin/sticker-packs/sticker-packs.component.scss index d92d2a2..9e19650 100644 --- a/web/app/admin/sticker-packs/sticker-packs.component.scss +++ b/web/app/admin/sticker-packs/sticker-packs.component.scss @@ -7,6 +7,11 @@ tr td:last-child { vertical-align: text-bottom; } +.removeButton { + cursor: pointer; + vertical-align: text-bottom; +} + .telegram-import { margin-bottom: 15px; } diff --git a/web/app/admin/sticker-packs/sticker-packs.component.ts b/web/app/admin/sticker-packs/sticker-packs.component.ts index 8078833..e6fbf78 100644 --- a/web/app/admin/sticker-packs/sticker-packs.component.ts +++ b/web/app/admin/sticker-packs/sticker-packs.component.ts @@ -68,4 +68,23 @@ export class AdminStickerPacksComponent implements OnInit { this.toaster.pop("error", "Error importing sticker pack"); }); } + + public removePack(pack: FE_StickerPack) { + //console.log(this.packs) + //console.log(pack) + this.isUpdating = true; + this.adminStickers.removePack(pack.id).then(() => { + for (let i = 0; i < this.packs.length; ++i) + if (this.packs[i].id === pack.id) { + this.packs.splice(i, 1); + break; + } + this.isUpdating = false; + this.toaster.pop("success", "Sticker pack removed"); + }).catch(err => { + console.error(err); + this.isUpdating = false; + this.toaster.pop("error", "Error removing sticker pack"); + }); + } } diff --git a/web/app/shared/services/admin/admin-stickers-api-service.ts b/web/app/shared/services/admin/admin-stickers-api-service.ts index b4ffdb0..b5f2c54 100644 --- a/web/app/shared/services/admin/admin-stickers-api-service.ts +++ b/web/app/shared/services/admin/admin-stickers-api-service.ts @@ -20,4 +20,8 @@ export class AdminStickersApiService extends AuthedApi { public importFromTelegram(packUrl: string): Promise { return this.authedPost("/api/v1/dimension/admin/stickers/packs/import/telegram", {packUrl: packUrl}).toPromise(); } + + public removePack(packId: number): Promise { + return this.authedDelete("/api/v1/dimension/admin/stickers/packs/" + packId).toPromise(); + } } From c79cd46f495f4f9356c53e8ecb85416dac4f4076 Mon Sep 17 00:00:00 2001 From: Tdxdxoz Date: Mon, 3 Aug 2020 11:44:29 +0800 Subject: [PATCH 29/30] clean up comments --- web/app/admin/sticker-packs/sticker-packs.component.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/web/app/admin/sticker-packs/sticker-packs.component.ts b/web/app/admin/sticker-packs/sticker-packs.component.ts index e6fbf78..984b7a1 100644 --- a/web/app/admin/sticker-packs/sticker-packs.component.ts +++ b/web/app/admin/sticker-packs/sticker-packs.component.ts @@ -70,8 +70,6 @@ export class AdminStickerPacksComponent implements OnInit { } public removePack(pack: FE_StickerPack) { - //console.log(this.packs) - //console.log(pack) this.isUpdating = true; this.adminStickers.removePack(pack.id).then(() => { for (let i = 0; i < this.packs.length; ++i) From 290136ff99d9fcd8a3d4a189f61d25277b5cb3bd Mon Sep 17 00:00:00 2001 From: Travis Ralston Date: Mon, 28 Dec 2020 20:31:34 -0700 Subject: [PATCH 30/30] Fix minor lint concerns Closes https://github.com/turt2live/matrix-dimension/pull/369 --- web/app/admin/sticker-packs/sticker-packs.component.html | 6 +++--- web/app/admin/sticker-packs/sticker-packs.component.ts | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/web/app/admin/sticker-packs/sticker-packs.component.html b/web/app/admin/sticker-packs/sticker-packs.component.html index bd1cc19..4813629 100644 --- a/web/app/admin/sticker-packs/sticker-packs.component.html +++ b/web/app/admin/sticker-packs/sticker-packs.component.html @@ -52,9 +52,9 @@ - - - + + + diff --git a/web/app/admin/sticker-packs/sticker-packs.component.ts b/web/app/admin/sticker-packs/sticker-packs.component.ts index 984b7a1..57f7bfb 100644 --- a/web/app/admin/sticker-packs/sticker-packs.component.ts +++ b/web/app/admin/sticker-packs/sticker-packs.component.ts @@ -72,11 +72,12 @@ export class AdminStickerPacksComponent implements OnInit { public removePack(pack: FE_StickerPack) { this.isUpdating = true; this.adminStickers.removePack(pack.id).then(() => { - for (let i = 0; i < this.packs.length; ++i) + for (let i = 0; i < this.packs.length; ++i) { if (this.packs[i].id === pack.id) { this.packs.splice(i, 1); break; } + } this.isUpdating = false; this.toaster.pop("success", "Sticker pack removed"); }).catch(err => {