From cb8c90c2953af4e901a6a864e1a7614f9aa8dad7 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Fri, 5 Jun 2026 14:30:11 +0100 Subject: [PATCH] Remove opendesk module --- modules/opendesk/README.md | 12 - .../opendesk/element-web/e2e/fixture/app1.png | Bin 1588 -> 0 bytes .../opendesk/element-web/e2e/fixture/app2.png | Bin 13818 -> 0 bytes .../opendesk/element-web/e2e/fixture/logo.svg | 50 ---- .../element-web/e2e/fixture/navigation.json | 44 ---- .../element-web/e2e/fixture/silent-login.html | 14 -- .../element-web/e2e/fixture/widget.html | 52 ----- .../opendesk/element-web/e2e/opendesk.spec.ts | 217 ------------------ ...Opendesk-should-render-top-bar-1-linux.yml | 5 - ...Opendesk-should-render-top-bar-2-linux.yml | 15 -- .../snapshots/opendesk.spec.ts/menu-linux.png | Bin 17900 -> 0 bytes .../opendesk.spec.ts/nav-hover-linux.png | Bin 2288 -> 0 bytes .../snapshots/opendesk.spec.ts/nav-linux.png | Bin 2288 -> 0 bytes .../opendesk.spec.ts/nav-loading-linux.png | Bin 2226 -> 0 bytes modules/opendesk/element-web/package.json | 32 --- modules/opendesk/element-web/src/index.ts | 79 ------- modules/opendesk/element-web/tsconfig.json | 7 - modules/opendesk/element-web/vite.config.ts | 59 ----- 18 files changed, 586 deletions(-) delete mode 100644 modules/opendesk/README.md delete mode 100644 modules/opendesk/element-web/e2e/fixture/app1.png delete mode 100644 modules/opendesk/element-web/e2e/fixture/app2.png delete mode 100644 modules/opendesk/element-web/e2e/fixture/logo.svg delete mode 100644 modules/opendesk/element-web/e2e/fixture/navigation.json delete mode 100644 modules/opendesk/element-web/e2e/fixture/silent-login.html delete mode 100644 modules/opendesk/element-web/e2e/fixture/widget.html delete mode 100644 modules/opendesk/element-web/e2e/opendesk.spec.ts delete mode 100644 modules/opendesk/element-web/e2e/snapshots/opendesk.spec.ts/Opendesk-should-render-top-bar-1-linux.yml delete mode 100644 modules/opendesk/element-web/e2e/snapshots/opendesk.spec.ts/Opendesk-should-render-top-bar-2-linux.yml delete mode 100644 modules/opendesk/element-web/e2e/snapshots/opendesk.spec.ts/menu-linux.png delete mode 100644 modules/opendesk/element-web/e2e/snapshots/opendesk.spec.ts/nav-hover-linux.png delete mode 100644 modules/opendesk/element-web/e2e/snapshots/opendesk.spec.ts/nav-linux.png delete mode 100644 modules/opendesk/element-web/e2e/snapshots/opendesk.spec.ts/nav-loading-linux.png delete mode 100644 modules/opendesk/element-web/package.json delete mode 100644 modules/opendesk/element-web/src/index.ts delete mode 100644 modules/opendesk/element-web/tsconfig.json delete mode 100644 modules/opendesk/element-web/vite.config.ts diff --git a/modules/opendesk/README.md b/modules/opendesk/README.md deleted file mode 100644 index d313c219b9..0000000000 --- a/modules/opendesk/README.md +++ /dev/null @@ -1,12 +0,0 @@ -Example module to load all the nordeck opendesk legacy modules & deprecated customisations as a single modern module. - -## Copyright & License - -Copyright (c) 2025 New Vector Ltd - -This software is multi licensed by New Vector Ltd (Element). It can be used either: - -(1) for free under the terms of the GNU Affero General Public License (as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version); OR - -(2) under the terms of a paid-for Element Commercial License agreement between you and Element (the terms of which may vary depending on what you and Element have agreed to). -Unless required by applicable law or agreed to in writing, software distributed under the Licenses is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the Licenses for the specific language governing permissions and limitations under the Licenses. diff --git a/modules/opendesk/element-web/e2e/fixture/app1.png b/modules/opendesk/element-web/e2e/fixture/app1.png deleted file mode 100644 index 2c34416b885b9728da50b3d275652cec6e9d6004..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1588 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 T^B6||yQ} - - - - - - - - - - - - \ No newline at end of file diff --git a/modules/opendesk/element-web/e2e/fixture/navigation.json b/modules/opendesk/element-web/e2e/fixture/navigation.json deleted file mode 100644 index 79bac98d25..0000000000 --- a/modules/opendesk/element-web/e2e/fixture/navigation.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "categories": [ - { - "identifier": "category1", - "display_name": "Category 1", - "entries": [ - { - "identifier": "app1", - "display_name": "App 1", - "icon_url": "http://localhost:8080/app1.png", - "link": "https://example.com/app1", - "target": "_blank" - }, - { - "identifier": "app2", - "display_name": "App 2", - "icon_url": "http://localhost:8080/app2.png", - "link": "https://example.com/app2", - "target": "_blank" - } - ] - }, - { - "identifier": "category2", - "display_name": "Category 2", - "entries": [ - { - "identifier": "app3", - "display_name": "App 3", - "icon_url": "http://localhost:8080/app1.png", - "link": "https://example.com/app3", - "target": "_blank" - }, - { - "identifier": "app4", - "display_name": "App 4", - "icon_url": "http://localhost:8080/app2.png", - "link": "https://example.com/app4", - "target": "_blank" - } - ] - } - ] -} diff --git a/modules/opendesk/element-web/e2e/fixture/silent-login.html b/modules/opendesk/element-web/e2e/fixture/silent-login.html deleted file mode 100644 index ae80633f60..0000000000 --- a/modules/opendesk/element-web/e2e/fixture/silent-login.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - Univention Silent Login - - - - diff --git a/modules/opendesk/element-web/e2e/fixture/widget.html b/modules/opendesk/element-web/e2e/fixture/widget.html deleted file mode 100644 index 3e6a834a73..0000000000 --- a/modules/opendesk/element-web/e2e/fixture/widget.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - Demo Widget - - - -

Hello unknown!

- - diff --git a/modules/opendesk/element-web/e2e/opendesk.spec.ts b/modules/opendesk/element-web/e2e/opendesk.spec.ts deleted file mode 100644 index 227f59a3b7..0000000000 --- a/modules/opendesk/element-web/e2e/opendesk.spec.ts +++ /dev/null @@ -1,217 +0,0 @@ -/* -Copyright 2025 New Vector Ltd. - -SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial -Please see LICENSE files in the repository root for full details. -*/ - -import { rejectToast } from "@element-hq/element-web-playwright-common"; -import { type SynapseContainer } from "@element-hq/element-web-playwright-common/lib/testcontainers/index.js"; - -import { test, expect } from "../../../../playwright/element-web-test.ts"; - -declare module "@element-hq/element-web-module-api" { - interface Config { - "net.nordeck.element_web.module.opendesk": { - config: { - banner: { - ics_navigation_json_url: string; - ics_silent_url: string; - portal_logo_svg_url: string; - portal_url: string; - }; - custom_css_variables: { - [key: `--cpd-${string}`]: string; - }; - }; - }; - "net.nordeck.element_web.module.widget_toggles": { - config: { - types: string[]; - }; - }; - "net.nordeck.element_web.module.widget_lifecycle": { - widget_permissions: { - [url: string]: { - preload_approved: boolean; - identity_approved: boolean; - capabilities_approved: string[]; - }; - }; - }; - } -} - -test.use({ - displayName: "Timmy", - synapseConfig: async ({ synapseConfig, _homeserver: homeserver }, use) => { - // Required for widget lifecycle test - (homeserver as SynapseContainer).withConfigField("listeners[0].resources[0].names", ["client", "openid"]); - await use(synapseConfig); - }, - page: async ({ context, page, moduleDir }, use) => { - for (const path of ["logo.svg", "app1.png", "app2.png"]) { - await context.route(`/${path}*`, async (route) => { - await route.fulfill({ path: `${moduleDir}/e2e/fixture/${path}` }); - }); - } - await context.route("http://localhost:8080/ics/navigation.json*", async (route) => { - await route.fulfill({ - path: `${moduleDir}/e2e/fixture/navigation.json`, - contentType: "application/json", - }); - }); - await context.route("http://localhost:8080/ics/silent", async (route) => { - await route.fulfill({ path: `${moduleDir}/e2e/fixture/silent-login.html`, contentType: "text/html" }); - }); - await context.route("http://localhost:8080/widget.html*", async (route) => { - await route.fulfill({ path: `${moduleDir}/e2e/fixture/widget.html`, contentType: "text/html" }); - }); - - await page.goto("/"); - await use(page); - }, - config: { - "net.nordeck.element_web.module.opendesk": { - config: { - banner: { - ics_navigation_json_url: "http://localhost:8080/ics/navigation.json", - ics_silent_url: "http://localhost:8080/ics/silent", - portal_logo_svg_url: "http://localhost:8080/logo.svg", - portal_url: "https://example.com/portal", - }, - - custom_css_variables: { - "--cpd-color-text-action-accent": "purple", - }, - }, - }, - "net.nordeck.element_web.module.widget_toggles": { - config: { - types: ["jitsi"], - }, - }, - "net.nordeck.element_web.module.widget_lifecycle": { - widget_permissions: { - "http://localhost:8080/widget.html": { - preload_approved: true, - identity_approved: true, - capabilities_approved: ["org.matrix.msc2762.receive.state_event:m.room.topic"], - }, - }, - }, - "net.nordeck.element_web.module.guest": { - config: { - guest_user_homeserver_url: "https://matrix.local/", - }, - }, - }, - bypassCSP: true, - launchOptions: { - args: ["--disable-web-security"], - }, -}); - -test.describe("Opendesk", () => { - test("should render top-bar", { tag: ["@screenshot"] }, async ({ page }) => { - await expect(page.getByRole("heading", { name: "Be in your element" })).toBeVisible(); - await expect(page.getByLabel("Show portal")).toHaveAttribute("href", "https://example.com/portal"); - - const nav = page.locator("nav"); - await expect(nav).toMatchScreenshot(`nav_loading.png`); - // The stub silent html doesn't seem to work in Playwright so send the postMessage manually - await page.evaluate(() => { - window.postMessage({ - loggedIn: true, - }); - }); - - const trigger = page.getByLabel("Show menu"); - await expect(trigger).toBeVisible(); - - // Assert the banner looks as we expect - await expect(nav).toMatchAriaSnapshot(); - await expect(nav).toMatchScreenshot(`nav.png`); - - // Check hover styles - await trigger.hover(); - await expect(nav).toMatchScreenshot(`nav_hover.png`); - - await test.step("open menu", async () => { - await trigger.click(); - const app1 = page.getByRole("link", { name: "App 1" }); - await expect(app1).toHaveAttribute("href", "https://example.com/app1"); - await app1.hover(); - - // Assert the sidebar looks as we expect - await expect(page.getByTestId("menu-list")).toMatchAriaSnapshot(); - await expect(page).toMatchScreenshot(`menu.png`, { - // We exclude this as we don't want to assert Element's styling, only our own - css: ` - .mx_AuthPage { - opacity: 0; - } - `, - }); - }); - - await test.step("close menu", async () => { - // Assert it closes by clicking the overlay - await page.getByTestId("menu-backdrop").click(); - await expect(page.getByTestId("menu-list")).not.toBeVisible(); - }); - }); - - test("should apply custom_css_variables", async ({ page, user }) => { - await expect(page.getByRole("button", { name: "Send a Direct Message" })).toHaveCSS( - "background-color", - "rgb(128, 0, 128)", - ); // -> purple - }); - - test("should show the widget without any permission requests", async ({ page, user, homeserver }) => { - const bot = await homeserver.registerUser("bot", "password", "Bot"); - const { room_id: roomId } = await homeserver.csApi.request<{ room_id: string }>( - "POST", - "/v3/createRoom", - bot.accessToken, - { - name: "Trusted Widget", - }, - ); - await homeserver.csApi.request<{ - event_id: string; - }>("PUT", `/v3/rooms/${encodeURIComponent(roomId)}/state/im.vector.modular.widgets/1`, bot.accessToken, { - id: "1", - creatorUserId: bot.userId, - type: "custom", - name: "Trusted Widget", - url: `http://localhost:8080/widget.html?hsUrl=${encodeURIComponent(homeserver.baseUrl)}`, - }); - await homeserver.csApi.request( - "PUT", - `/v3/rooms/${encodeURIComponent(roomId)}/state/io.element.widgets.layout/`, - bot.accessToken, - { - widgets: { - "1": { - container: "top", - }, - }, - }, - ); - await homeserver.csApi.request("POST", `/v3/rooms/${encodeURIComponent(roomId)}/invite`, bot.accessToken, { - user_id: user.userId, - }); - - await rejectToast(page, "Verify this device"); - await rejectToast(page, "Notifications"); - - await page.getByText("Trusted Widget").click(); - await page.getByText("Accept").click(); - - await expect( - page.frameLocator(`iframe[title="Trusted Widget"]`).getByRole("heading", { name: `Hello ${user.userId}!` }), - ).toBeVisible(); - }); -}); diff --git a/modules/opendesk/element-web/e2e/snapshots/opendesk.spec.ts/Opendesk-should-render-top-bar-1-linux.yml b/modules/opendesk/element-web/e2e/snapshots/opendesk.spec.ts/Opendesk-should-render-top-bar-1-linux.yml deleted file mode 100644 index f6b58ee014..0000000000 --- a/modules/opendesk/element-web/e2e/snapshots/opendesk.spec.ts/Opendesk-should-render-top-bar-1-linux.yml +++ /dev/null @@ -1,5 +0,0 @@ -- navigation: - - link "Show portal": - - img "Portal logo" - - button "Show menu": - - img diff --git a/modules/opendesk/element-web/e2e/snapshots/opendesk.spec.ts/Opendesk-should-render-top-bar-2-linux.yml b/modules/opendesk/element-web/e2e/snapshots/opendesk.spec.ts/Opendesk-should-render-top-bar-2-linux.yml deleted file mode 100644 index e979e85507..0000000000 --- a/modules/opendesk/element-web/e2e/snapshots/opendesk.spec.ts/Opendesk-should-render-top-bar-2-linux.yml +++ /dev/null @@ -1,15 +0,0 @@ -- list: - - listitem: - - text: Category 1 - - list: - - listitem: - - link "App 1" - - listitem: - - link "App 2" - - listitem: - - text: Category 2 - - list: - - listitem: - - link "App 3" - - listitem: - - link "App 4" diff --git a/modules/opendesk/element-web/e2e/snapshots/opendesk.spec.ts/menu-linux.png b/modules/opendesk/element-web/e2e/snapshots/opendesk.spec.ts/menu-linux.png deleted file mode 100644 index f690835d36c2fbb2a73893973566140e21296c26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17900 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 diff --git a/modules/opendesk/element-web/e2e/snapshots/opendesk.spec.ts/nav-hover-linux.png b/modules/opendesk/element-web/e2e/snapshots/opendesk.spec.ts/nav-hover-linux.png deleted file mode 100644 index c1adf808ab74f4723b83c3f4711bb49cb4c57cea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2288 zcmb_eYgm%m7XHjp8BL`cwWm~K8gs0XtSL#&LpeESmRaOzqiH8C^Ac)gc&7}rGNBpM zN>j$lTZ-m2#Y8hNsio!(0hP=ILBKl*h@M@~{5a=%&cAc^kMG;-dG=m=?X}+bUHi71 ztCOzwCT$3Ube#_$Itf7Fx-vnF^xBb%*W+RNVFx&%6`+CQ}~D?w&5KG%7djZ*dE(qQqy|3gxK;|M!J*d!+x#|p>*@|nEZJmfvTi;#dWD9oi@zc z%ex;P1z}vh7}NJ&XiAK=ea5~fG@ z^))p$<(TS#6IE%c?f#n2o<4cg$O(4AdN27&01bH(;u4_WjmUZ8p1*_H{g#OJy z5(~7f{H4=eqEy6!HyuNd>{$~Oq`wH)>}|khJf=}p%8M8;u;EWXxO!MX06)02-f+r1JMvRL zH9mSg1-1|QAIq{`te1^u+Q(dl*`w3(a|Mz;qxoDantp(-`w2|3=AS7B50mv-;;U<1`JBMRl&?hKL^as z&G|$Na^EEB6Q!&GBx#pl>wcxELQCJ&yX;(xRLn85{Jj!4LVr0Ly`yf8w~r4apgY?> zM%wJk>!xD-TJL%?nM~qri&0s;sI0A(g1|(s0ti4i%*|8V*B*9qbabTAXmMU_HoK%= z%J$sp%UDkH@M&-Dhdac_$NTw>*G)6(qUL!FLhi}JIHhzXf_Vl>x}l}tm5JVI>K;KZ z^J^PqGLL83M)Vh);1j*v+4KkSwcQ}83!U++#Cw_T} zk#try+lDYRGi#$DC`>dOoqw`0Jw2U+s}qBC&Gr=2yk7c5cKq^I+X{jj6Lmi!J#B1k zSc(=S-*=szF8O_6YgukxU5sS7HWMA1ZS_wF+bk3cMHZWwm=t-G>LC{v7X0;tviF65 z0(l}xhUK4AkGFQluc~AL*-_i1k6iQd_*J_qtQ1^qG>V^vB!R3*rBdC^)+BgF zW~Ppg&UnjKC-Qzg@91!@Hx|2Lx?|hS26NYDvtgl7c;e}=XNamrqRm@YMZiv}l>i;^N}>fx}Vqsl--#U7fNC!{%@@ zX#ri2qq;PC4VAI-IfX(o%}}C9FXB~-p&I}8KbLBD16VyMJ-D_pj*4Qaq@0QfZf?H? zHqU9*YZ>)oO1OPtEU zzH()5{&DJxu&7izZRQA{n(t|+IwyN^pcpMWq+Hr|MY4XzgE~$qT-CaY@dnK0uvecbh7<30E+$>!KHhA&QjDCqP~}tKlNBd9B?W!X^9& zJ)*2;oNUKX2#b~q!eZ-s)UcL4%x^=^4td3><4pq+nJemus$y*(P>Zmx&vIXrBF1muv8` zqod>aKjc4TuTj0-O7Z77k&RiSqoxk~;uKea3f@|`)d4oo?_T|QL;sWDv{EXbisAi+ z*}Hcy&AWE@pu4;KJny{@vKWNlMmCuhH|t}TXJlL==Bj8&EoTWq{G9*8ajp{oNBQkpGvOFz~k{QE-urx{A?}L$d8~* zlm{xsR4L%cU2~5J0)aU&kYyiZO|rVgu3UP`((A^wM*-0X>V_mOC42$`2b9b%dv`s! zZRD}-Y0ry_iV6#FBhVp3_hXyotQC?H5kGt2Tz?SDvs)`G{z_prwQ ni{Y>`yTSZsG;j%7O|Gb$(0k5nocnPWn2@uh>!A{dvkCtK7QI_^ diff --git a/modules/opendesk/element-web/e2e/snapshots/opendesk.spec.ts/nav-linux.png b/modules/opendesk/element-web/e2e/snapshots/opendesk.spec.ts/nav-linux.png deleted file mode 100644 index c1adf808ab74f4723b83c3f4711bb49cb4c57cea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2288 zcmb_eYgm%m7XHjp8BL`cwWm~K8gs0XtSL#&LpeESmRaOzqiH8C^Ac)gc&7}rGNBpM zN>j$lTZ-m2#Y8hNsio!(0hP=ILBKl*h@M@~{5a=%&cAc^kMG;-dG=m=?X}+bUHi71 ztCOzwCT$3Ube#_$Itf7Fx-vnF^xBb%*W+RNVFx&%6`+CQ}~D?w&5KG%7djZ*dE(qQqy|3gxK;|M!J*d!+x#|p>*@|nEZJmfvTi;#dWD9oi@zc z%ex;P1z}vh7}NJ&XiAK=ea5~fG@ z^))p$<(TS#6IE%c?f#n2o<4cg$O(4AdN27&01bH(;u4_WjmUZ8p1*_H{g#OJy z5(~7f{H4=eqEy6!HyuNd>{$~Oq`wH)>}|khJf=}p%8M8;u;EWXxO!MX06)02-f+r1JMvRL zH9mSg1-1|QAIq{`te1^u+Q(dl*`w3(a|Mz;qxoDantp(-`w2|3=AS7B50mv-;;U<1`JBMRl&?hKL^as z&G|$Na^EEB6Q!&GBx#pl>wcxELQCJ&yX;(xRLn85{Jj!4LVr0Ly`yf8w~r4apgY?> zM%wJk>!xD-TJL%?nM~qri&0s;sI0A(g1|(s0ti4i%*|8V*B*9qbabTAXmMU_HoK%= z%J$sp%UDkH@M&-Dhdac_$NTw>*G)6(qUL!FLhi}JIHhzXf_Vl>x}l}tm5JVI>K;KZ z^J^PqGLL83M)Vh);1j*v+4KkSwcQ}83!U++#Cw_T} zk#try+lDYRGi#$DC`>dOoqw`0Jw2U+s}qBC&Gr=2yk7c5cKq^I+X{jj6Lmi!J#B1k zSc(=S-*=szF8O_6YgukxU5sS7HWMA1ZS_wF+bk3cMHZWwm=t-G>LC{v7X0;tviF65 z0(l}xhUK4AkGFQluc~AL*-_i1k6iQd_*J_qtQ1^qG>V^vB!R3*rBdC^)+BgF zW~Ppg&UnjKC-Qzg@91!@Hx|2Lx?|hS26NYDvtgl7c;e}=XNamrqRm@YMZiv}l>i;^N}>fx}Vqsl--#U7fNC!{%@@ zX#ri2qq;PC4VAI-IfX(o%}}C9FXB~-p&I}8KbLBD16VyMJ-D_pj*4Qaq@0QfZf?H? zHqU9*YZ>)oO1OPtEU zzH()5{&DJxu&7izZRQA{n(t|+IwyN^pcpMWq+Hr|MY4XzgE~$qT-CaY@dnK0uvecbh7<30E+$>!KHhA&QjDCqP~}tKlNBd9B?W!X^9& zJ)*2;oNUKX2#b~q!eZ-s)UcL4%x^=^4td3><4pq+nJemus$y*(P>Zmx&vIXrBF1muv8` zqod>aKjc4TuTj0-O7Z77k&RiSqoxk~;uKea3f@|`)d4oo?_T|QL;sWDv{EXbisAi+ z*}Hcy&AWE@pu4;KJny{@vKWNlMmCuhH|t}TXJlL==Bj8&EoTWq{G9*8ajp{oNBQkpGvOFz~k{QE-urx{A?}L$d8~* zlm{xsR4L%cU2~5J0)aU&kYyiZO|rVgu3UP`((A^wM*-0X>V_mOC42$`2b9b%dv`s! zZRD}-Y0ry_iV6#FBhVp3_hXyotQC?H5kGt2Tz?SDvs)`G{z_prwQ ni{Y>`yTSZsG;j%7O|Gb$(0k5nocnPWn2@uh>!A{dvkCtK7QI_^ diff --git a/modules/opendesk/element-web/e2e/snapshots/opendesk.spec.ts/nav-loading-linux.png b/modules/opendesk/element-web/e2e/snapshots/opendesk.spec.ts/nav-loading-linux.png deleted file mode 100644 index f79c7ff28bcf87167166f1b0d7c1c3b7d440737f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2226 zcmb_deK^x=AOAU2I~dN@i(Z`8(g`_~bT09PBE399$tsOh5*cQ#OkTE>nn zaQ)5t5Cp-GA3N*|L90Lr9fW-czFiYu7%=JJeUG|96>PI92!cf%KYYk9HgATH4g2^J zu|`%+nkoK$wRN`d{k>hN{b~7zv+NwjvG{G6LvX)cmdZ8$?ti@ev-7E8mu23Q&h742 z2)J(^eqZ^XqPQ2G_xfDh4h=5bFGw|8^AOpEYX2Hh6fuZ-lol^p%8zF)@N%V&LUhLa zD=Xaui1j<-R)T0GtQkx@?m&j1)9wHB;=y^y*2=2n?{N)_MU>mko<^h5uQ~nw{gwF! zpp-cZ^l&7kpsK1$B9WZhG~Kj4sTLHMjf8x^5A5IH2I)dj2JE{%|FLKbc22UZ#*VP; zL)pnD6^)XHYnvDfXceXI>3ZzC83GZ%`{mOk{FU(6*WBbrD zAwcLL`zI$TU9k?Fsf)h8@wQ5-ybw24bk0@YY3{l#Yqe&+mM;lu+BuGo{negWA(b$} zrfzWy3lEQ5;1i6u9?1D;Q8)&3w(Oi8hFd1y){%}Nji))pNIun*w3?Qd7SG*p_EEh@ zZV9PyI6NdIM6Fgc&N7XVa|;U{n#PzJr$ptAQ>Xgyz0QQmKMT`cHT#qI;6A^zpe4wg zlXSsRL1l19f05?^Ge|pxVTRD40WMdYGBIFcm4<0#>R%0IPYJEh?^{Y zpJ^eKAOOhQ2>N>;_xxe#cjgS2&v$-ZM5hZ=tt;*+N>Pjpv17kRoPZAi^akUSuD+6W0#x*x8ySS7ev)eZC6*9`BBO{4V6kQ@hfF8 zM8&yLPPgP&4(!7W*F=&My8-%N%FVXkL7hCAQ4TJ`d;0Y04W~eV|4r!Ct5;9-(waiL zA6cC)e$JVa%jJWD;bDN>kjdN8(Tnp16D6nVlEKPgA)A`+q6`zqhzBbz@?*DC9(&Ub z474P3PO%r+rZu#Gco=>5tSLuItCx3K*GBO-3qO7QsOYipO*WAE}Uc1(``{O-OZenLF-it+O0+`Id0Q7F_1Nt*~m z+ImD`vC`@3)NJf<%?uZfg(Lssa`T;ThL5+WA(Po`HW10+txt70x(|)Q$l9`H%Q%Xs zN1U7NTZ9qbKm2LDBfUvE&Co_a#0%MhH4!`pleO6`cJ_mV57kLAMW?khYohpZOJB2t zGMa!5-Oj5!sIw@Dm!?fQB%cIV(~X9WRd#H(wy}XD17dg~fN|DmD-4nEZgx5dVuLXl zjQ9)+wVqs9SO{8n=IZL|lGM-K-Q9T&4Gqe&RXwDzkEJNUrICbLFW9Bl6nG_WN&Xer zxEJ7|4RkbYZY7w4y$`&&#b%TnowB@l9RX};wqN30bPZXcYyD2hL9UyVEsU?)1m32iVCi1Hd zdl{f34-XG7FE1b|$Am?hEULtBnn{?|jOkU;owVhkGN9D%rsciF*PsNMoT;j^1bC2- z7#X)Hv(KZ^hy+JgZ@P#q#iD5BHcm%sHLMMMt17?X{)s^(|VRaf3?)T&^W>~w*} zi5wGhtsu^t>fK9o)gB;zTXCgn2J`Y8;B|nUD`xd=yy2$EW$8;MiQo>>J}6p-H!Bp1 z%8h1b38P7CcJ0~)#5WQzeS;fsZ=27w@M)*NLM8(bX}=s67A6(E0Sea637wprxMlup zMJXvMs|+?In_M8N6;m8~N4rYeqy<8Ih6`QEo@6G`v9-1JrgJJ;6HhQzGi!IA=&Uhz z%?;wAM$z-9`c2&fFi+n&h)Du0rj z+neXO)-A^oe|5P}d|R0RB_J@6&*%T>c5k<3RCss;FsX4Xj)+@MPV_DD1BMeE9K2iy z?h*lqpk|V13(V&?B^r3Foe!nr#7?|yv_&8g0IL)Z+xa;*gn*{6BS}6<6n%aDBO3i6 zuwJxZYFx7s1V{e$U%imv9dscs#{!Ci5g)G#OM6Tk8XEdcou8X~pa=j7H1I&5+qu>F{x4k-A4SXjDTpPM|_3sOSYC8P^Cla>qUuU0Mz9ry4)T;X={ G&c6YO=sRox diff --git a/modules/opendesk/element-web/package.json b/modules/opendesk/element-web/package.json deleted file mode 100644 index d7b37bb152..0000000000 --- a/modules/opendesk/element-web/package.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "nordeck-plugin", - "private": true, - "version": "0.0.0", - "type": "module", - "sideEffects": [ - "**/*.css" - ], - "license": "SEE LICENSE IN README.md", - "scripts": { - "prepare": "vite build", - "lint:types": "tsc --noEmit", - "lint:codestyle": "echo 'handled by lint:eslint'", - "test": "echo no tests yet" - }, - "devDependencies": { - "@element-hq/element-web-module-api": "^1.0.0", - "@nordeck/element-web-guest-module": "^2.0.0", - "@nordeck/element-web-opendesk-module": "^0.5.0", - "@nordeck/element-web-widget-lifecycle-module": "^1.0.1", - "@nordeck/element-web-widget-toggles-module": "^0.1.0", - "@types/node": "^22.10.7", - "@types/react": "^19", - "@vitejs/plugin-react": "^6.0.0", - "react": "19.2.6", - "react-dom": "19.2.6", - "rollup-plugin-external-globals": "^0.13.0", - "typescript": "^6.0.0", - "vite": "^8.0.0", - "vite-plugin-node-polyfills": "^0.28.0" - } -} diff --git a/modules/opendesk/element-web/src/index.ts b/modules/opendesk/element-web/src/index.ts deleted file mode 100644 index e50aac9ce4..0000000000 --- a/modules/opendesk/element-web/src/index.ts +++ /dev/null @@ -1,79 +0,0 @@ -/* -Copyright 2025 New Vector Ltd. - -SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial -Please see LICENSE files in the repository root for full details. -*/ - -import NordeckOpendeskModule from "@nordeck/element-web-opendesk-module"; -import GuestModule, { - assertValidGuestModuleConfig, - GUEST_MODULE_CONFIG_KEY, - GUEST_MODULE_CONFIG_NAMESPACE, - shouldShowComponent as shouldShowComponentShared, -} from "@nordeck/element-web-guest-module"; -import WidgetLifecycleModule from "@nordeck/element-web-widget-lifecycle-module"; -import WidgetTogglesModule from "@nordeck/element-web-widget-toggles-module"; - -import type { Module, Api, ModuleFactory } from "@element-hq/element-web-module-api"; - -declare module "@element-hq/element-web-module-api" { - interface Config { - [GUEST_MODULE_CONFIG_NAMESPACE]: { - [GUEST_MODULE_CONFIG_KEY]: { - guest_user_homeserver_url: string; - skip_single_sign_on?: boolean; - guest_user_prefix?: string; - }; - }; - } -} - -declare global { - interface Window { - // XXX: temporary hack until we rewrite everything in modern modules - mxMatrixClientPeg: { - safeGet(): { - getSafeUserId(): string; - }; - }; - } -} - -class OpendeskModule implements Module { - public static readonly moduleApiVersion = "^1.0.0"; - - public constructor(private api: Api) {} - - public async load(): Promise { - const { api } = this; - - api._registerLegacyModule(NordeckOpendeskModule); - api._registerLegacyModule(GuestModule); - api._registerLegacyModule(WidgetLifecycleModule); - api._registerLegacyModule(WidgetTogglesModule); - api._registerLegacyComponentVisibilityCustomisations({ - // XXX: the following is cribbed out of `@nordeck/element-web-guest-module` due to - // it making imports incompatible with workspaces - /** - * Determines whether or not the active MatrixClient user should be able to use - * the given UI component. If shown, the user might still not be able to use the - * component depending on their contextual permissions. For example, invite options - * might be shown to the user but they won't have permission to invite users to - * the current room: the button will appear disabled. - * @param {UIComponent} component The component to check visibility for. - * @returns {boolean} True (default) if the user is able to see the component, false - * otherwise. - */ - shouldShowComponent(component): boolean { - const config = api.config.get(GUEST_MODULE_CONFIG_NAMESPACE)?.[GUEST_MODULE_CONFIG_KEY] ?? {}; - assertValidGuestModuleConfig(config); - - const myUserId = window.mxMatrixClientPeg.safeGet().getSafeUserId(); - return shouldShowComponentShared(config, myUserId, component); - }, - }); - } -} - -export default OpendeskModule satisfies ModuleFactory; diff --git a/modules/opendesk/element-web/tsconfig.json b/modules/opendesk/element-web/tsconfig.json deleted file mode 100644 index 8f4f6b8ace..0000000000 --- a/modules/opendesk/element-web/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "extends": "../../../tsconfig.json", - "compilerOptions": { - "outDir": "lib" - }, - "include": ["src"] -} diff --git a/modules/opendesk/element-web/vite.config.ts b/modules/opendesk/element-web/vite.config.ts deleted file mode 100644 index 17dc4d055e..0000000000 --- a/modules/opendesk/element-web/vite.config.ts +++ /dev/null @@ -1,59 +0,0 @@ -/* -Copyright 2025 New Vector Ltd. - -SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial -Please see LICENSE files in the repository root for full details. -*/ - -import { dirname, resolve } from "node:path"; -import { fileURLToPath } from "node:url"; -import { defineConfig, esmExternalRequirePlugin } from "vite"; -import react from "@vitejs/plugin-react"; -import { nodePolyfills } from "vite-plugin-node-polyfills"; -import externalGlobals from "rollup-plugin-external-globals"; - -const __dirname = dirname(fileURLToPath(import.meta.url)); - -export default defineConfig({ - build: { - lib: { - entry: resolve(__dirname, "src/index.ts"), - name: "element-web-plugin-opendesk-nordeck", - fileName: "index", - formats: ["es"], - }, - outDir: "lib", - target: "esnext", - sourcemap: true, - rolldownOptions: { - plugins: [ - esmExternalRequirePlugin({ - external: ["react"], - }), - ], - output: { - globals: { - // Reuse React from the host app - react: "window.React", - }, - }, - }, - minify: false, - }, - plugins: [ - react(), - nodePolyfills({ - include: ["events"], - }), - externalGlobals({ - // Reuse React from the host app - react: "window.React", - }), - ], - define: { - // Use production mode for the build as it is tested against production builds of Element Web, - // this is required for React JSX versions to be compatible. - "process.env.NODE_ENV": "'production'", - "process": { env: { NODE_ENV: "production" } }, - }, -});