From 7b51c56169f6454b02540afe9116f72e150a6f3b Mon Sep 17 00:00:00 2001 From: ThatOneCalculator Date: Sat, 21 Jan 2023 11:25:31 -0800 Subject: [PATCH 01/17] docs: :memo: clone depth 1 closes #9501 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b0c21fdab..d15d2fa94 100644 --- a/README.md +++ b/README.md @@ -95,7 +95,7 @@ If you have access to a server that supports one of the sources below, I recomme ## 👀 Get folder ready ```sh -git clone https://codeberg.org/calckey/calckey.git +git clone --depth 1 https://codeberg.org/calckey/calckey.git cd calckey/ # git checkout main # if you want only stable versions ``` From eb14539989e578d1d40518c631570816290159be Mon Sep 17 00:00:00 2001 From: ThatOneCalculator Date: Sat, 21 Jan 2023 11:53:45 -0800 Subject: [PATCH 02/17] refactor: online indicator --- packages/client/src/components/MkUserOnlineIndicator.vue | 8 ++++---- packages/client/src/components/global/MkAvatar.vue | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/client/src/components/MkUserOnlineIndicator.vue b/packages/client/src/components/MkUserOnlineIndicator.vue index a4d4c84bc..35eef94a1 100644 --- a/packages/client/src/components/MkUserOnlineIndicator.vue +++ b/packages/client/src/components/MkUserOnlineIndicator.vue @@ -27,19 +27,19 @@ const text = $computed(() => { border-radius: 120%; // Blinkのバグか知らんけど、100%ぴったりにすると何故か若干楕円でレンダリングされる &.online { - background: #58d4c9; + background: #9ccfd8; } &.active { - background: #e4bc48; + background: #f6c177; } &.offline { - background: #ea5353; + background: #eb6f92; } &.unknown { - background: #888; + background: #6e6a86; } } diff --git a/packages/client/src/components/global/MkAvatar.vue b/packages/client/src/components/global/MkAvatar.vue index c9c4735f0..e391c433d 100644 --- a/packages/client/src/components/global/MkAvatar.vue +++ b/packages/client/src/components/global/MkAvatar.vue @@ -1,11 +1,11 @@ @@ -96,8 +96,8 @@ watch(() => props.user.avatarBlurhash, () => { z-index: 1; bottom: 0; left: 0; - width: 20%; - height: 20%; + width: 18%; + height: 18%; } &.square { From 1c434a23312ef1323ec2d90351ba7d55e56f6e83 Mon Sep 17 00:00:00 2001 From: ThatOneCalculator Date: Sat, 21 Jan 2023 12:29:46 -0800 Subject: [PATCH 03/17] feat: PWA icons --- packages/backend/assets/icons/maskable.png | Bin 0 -> 10653 bytes packages/backend/assets/icons/monochrome.png | Bin 0 -> 6538 bytes packages/backend/src/server/web/manifest.json | 23 +++++++++++++++--- 3 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 packages/backend/assets/icons/maskable.png create mode 100644 packages/backend/assets/icons/monochrome.png diff --git a/packages/backend/assets/icons/maskable.png b/packages/backend/assets/icons/maskable.png new file mode 100644 index 0000000000000000000000000000000000000000..44b214ca7c84e5f581d27e5d1a772613b2cdea5b GIT binary patch literal 10653 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

I`DzBzbJTIx&UCQ`2qKk>w<I)OL@ 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 literal 0 HcmV?d00001 diff --git a/packages/backend/src/server/web/manifest.json b/packages/backend/src/server/web/manifest.json index 2f053fdc4..1e662fb20 100644 --- a/packages/backend/src/server/web/manifest.json +++ b/packages/backend/src/server/web/manifest.json @@ -11,12 +11,26 @@ { "src": "/static-assets/icons/192.png", "sizes": "192x192", - "type": "image/png" + "type": "image/png", + "purpose": "any" }, { "src": "/static-assets/icons/512.png", "sizes": "512x512", - "type": "image/png" + "type": "image/png", + "purpose": "any" + }, + { + "src": "/static-assets/icons/maskable.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "/static-assets/icons/monochrome.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "monochrome" } ], "share_target": { @@ -53,5 +67,8 @@ "name": "Chats", "url": "/my/messaging" } - ] + ], + "categories": [ + "social" + ] } From b759ec45391eebccfede75e3e9a0c285963d507f Mon Sep 17 00:00:00 2001 From: ThatOneCalculator Date: Sat, 21 Jan 2023 12:55:38 -0800 Subject: [PATCH 04/17] TWA/assetlinks support --- .config/example.yml | 6 ++++++ package.json | 2 +- packages/backend/src/config/types.ts | 6 ++++++ packages/backend/src/server/well-known.ts | 16 ++++++++++++++++ 4 files changed, 29 insertions(+), 1 deletion(-) diff --git a/.config/example.yml b/.config/example.yml index 29f4a6229..900ac0905 100644 --- a/.config/example.yml +++ b/.config/example.yml @@ -145,6 +145,12 @@ id: 'aid' # '127.0.0.1/32' #] +# TWA +#twa: +# nameSpace: android_app +# packageName: tld.domain.twa +# sha256CertFingerprints: ['AB:CD:EF'] + # Upload or download file size limits (bytes) #maxFileSize: 262144000 diff --git a/package.json b/package.json index b5e3feea0..981c28712 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "calckey", - "version": "13.0.8-rc4", + "version": "13.0.9-rc", "codename": "aqua", "repository": { "type": "git", diff --git a/packages/backend/src/config/types.ts b/packages/backend/src/config/types.ts index 0b9c4e8ba..e9c42c08f 100644 --- a/packages/backend/src/config/types.ts +++ b/packages/backend/src/config/types.ts @@ -64,6 +64,12 @@ export type Source = { mediaProxy?: string; proxyRemoteFiles?: boolean; + twa: { + nameSpace?: string; + packageName?: string; + sha256CertFingerprints?: string[]; + }; + // Managed hosting stuff maxUserSignups?: number; isManagedHosting?: boolean; diff --git a/packages/backend/src/server/well-known.ts b/packages/backend/src/server/well-known.ts index 4b839c879..b617e3809 100644 --- a/packages/backend/src/server/well-known.ts +++ b/packages/backend/src/server/well-known.ts @@ -74,6 +74,22 @@ router.get("/.well-known/host-meta.json", async (ctx) => { }; }); +if (config.twa.nameSpace != null) { + router.get("/.well-known/assetlinks.json", async (ctx) => { + ctx.set("Content-Type", "application/json"); + ctx.body = [ + { + relation: ["delegate_permission/common.handle_all_urls"], + target: { + namespace: config.twa.nameSpace, + package_name: config.twa.packageName, + sha256_cert_fingerprints: config.twa.sha256CertFingerprints, + }, + }, + ]; + }); +} + router.get("/.well-known/nodeinfo", async (ctx) => { ctx.body = { links }; }); From c0ffb1db7f607b41017dbc941eba9d9e9fb598d5 Mon Sep 17 00:00:00 2001 From: ThatOneCalculator Date: Mon, 23 Jan 2023 10:35:51 -0800 Subject: [PATCH 05/17] Fix config --- packages/backend/src/server/well-known.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/backend/src/server/well-known.ts b/packages/backend/src/server/well-known.ts index b617e3809..5af3b2c84 100644 --- a/packages/backend/src/server/well-known.ts +++ b/packages/backend/src/server/well-known.ts @@ -74,7 +74,7 @@ router.get("/.well-known/host-meta.json", async (ctx) => { }; }); -if (config.twa.nameSpace != null) { +if (config.twa != null) { router.get("/.well-known/assetlinks.json", async (ctx) => { ctx.set("Content-Type", "application/json"); ctx.body = [ From 7df330ec296b7c57a4b2a38317e2c00887406c8f Mon Sep 17 00:00:00 2001 From: ThatOneCalculator Date: Mon, 23 Jan 2023 12:12:49 -0800 Subject: [PATCH 06/17] fix: :bug: double name on splash Closes #9500 --- packages/client/src/pages/welcome.entrance.a.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/client/src/pages/welcome.entrance.a.vue b/packages/client/src/pages/welcome.entrance.a.vue index 26f28cd6d..4608ecb38 100644 --- a/packages/client/src/pages/welcome.entrance.a.vue +++ b/packages/client/src/pages/welcome.entrance.a.vue @@ -24,8 +24,8 @@

- {{ instanceName }} - {{ instanceName }} + + {{ instanceName }}

From 1540db7af9181b12f1465547756d715eafc42573 Mon Sep 17 00:00:00 2001 From: ThatOneCalculator Date: Tue, 24 Jan 2023 15:09:09 -0800 Subject: [PATCH 07/17] build: :construction_worker: Build service worker with swc --- packages/sw/.swcrc | 24 ++++++++++++++++++++++++ packages/sw/build.js | 37 ------------------------------------- packages/sw/package.json | 6 +++--- 3 files changed, 27 insertions(+), 40 deletions(-) create mode 100644 packages/sw/.swcrc delete mode 100644 packages/sw/build.js diff --git a/packages/sw/.swcrc b/packages/sw/.swcrc new file mode 100644 index 000000000..1d6d3b496 --- /dev/null +++ b/packages/sw/.swcrc @@ -0,0 +1,24 @@ +{ + "$schema": "https://json.schemastore.org/swcrc", + "jsc": { + "parser": { + "syntax": "typescript", + "dynamicImport": true, + "decorators": true + }, + "transform": { + "decoratorMetadata": true + }, + "experimental": { + "keepImportAssertions": true + }, + "baseUrl": ".", + "paths": { + "@/*": [ + "./src/*" + ] + }, + "target": "es2022" + }, + "minify": false +} diff --git a/packages/sw/build.js b/packages/sw/build.js deleted file mode 100644 index c2a72fa4e..000000000 --- a/packages/sw/build.js +++ /dev/null @@ -1,37 +0,0 @@ -const esbuild = require('esbuild'); -const locales = require('../../locales'); -const meta = require('../../package.json'); -const watch = process.argv[2]?.includes('watch'); - -console.log('Starting SW building...'); - -esbuild.build({ - entryPoints: [ `${__dirname}/src/sw.ts` ], - bundle: true, - format: 'esm', - treeShaking: true, - minify: process.env.NODE_ENV === 'production', - absWorkingDir: __dirname, - outbase: `${__dirname}/src`, - outdir: `${__dirname}/../../built/_sw_dist_`, - loader: { - '.ts': 'ts' - }, - tsconfig: `${__dirname}/tsconfig.json`, - define: { - _VERSION_: JSON.stringify(meta.version), - _LANGS_: JSON.stringify(Object.entries(locales).map(([k, v]) => [k, v._lang_])), - _ENV_: JSON.stringify(process.env.NODE_ENV), - _DEV_: process.env.NODE_ENV !== 'production', - _PERF_PREFIX_: JSON.stringify('Calckey:'), - }, - watch: watch ? { - onRebuild(error, result) { - if (error) console.error('SW: watch build failed:', error); - else console.log('SW: watch build succeeded:', result); - }, - } : false, -}).then(result => { - if (watch) console.log('watching...'); - else console.log('done,', JSON.stringify(result)); -}); diff --git a/packages/sw/package.json b/packages/sw/package.json index 41bdb0da8..ab22ca73f 100644 --- a/packages/sw/package.json +++ b/packages/sw/package.json @@ -2,9 +2,9 @@ "name": "sw", "private": true, "scripts": { - "watch": "node build.js watch", - "build": "node build.js", - "lint": "pnpm rome check src/**/*.{ts}" + "build": "pnpm swc src -d built -D", + "watch": "pnpm swc src -d built -D -w", + "lint": "pnpm rome check \"src/**/*.ts\"" }, "dependencies": { "calckey-js": "^0.0.20", From 970b4907f3f7133bce78abce93d99b9ef66a4bd2 Mon Sep 17 00:00:00 2001 From: ThatOneCalculator Date: Tue, 24 Jan 2023 15:11:15 -0800 Subject: [PATCH 08/17] chore: :wrench: remove eslint from service worker, up pnpm --- package.json | 2 +- packages/sw/package.json | 1 - pnpm-lock.yaml | 230 --------------------------------------- 3 files changed, 1 insertion(+), 232 deletions(-) diff --git a/package.json b/package.json index 981c28712..96588b5e8 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "type": "git", "url": "https://codeberg.org/calckey/calckey.git" }, - "packageManager": "pnpm@7.25.0", + "packageManager": "pnpm@7.26.0", "private": true, "scripts": { "rebuild": "pnpm run clean && pnpm -r run build && pnpm run gulp", diff --git a/packages/sw/package.json b/packages/sw/package.json index ab22ca73f..70990abf6 100644 --- a/packages/sw/package.json +++ b/packages/sw/package.json @@ -8,7 +8,6 @@ }, "dependencies": { "calckey-js": "^0.0.20", - "esbuild": "^0.15.18", "idb-keyval": "^6.2.0" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ed3579ea1..7a2c2f869 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -535,11 +535,9 @@ importers: packages/sw: specifiers: calckey-js: ^0.0.20 - esbuild: ^0.15.18 idb-keyval: ^6.2.0 dependencies: calckey-js: 0.0.20 - esbuild: 0.15.18 idb-keyval: 6.2.0 packages: @@ -900,15 +898,6 @@ packages: - supports-color dev: false - /@esbuild/android-arm/0.15.18: - resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: false - optional: true - /@esbuild/android-arm/0.16.17: resolution: {integrity: sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==} engines: {node: '>=12'} @@ -999,15 +988,6 @@ packages: dev: false optional: true - /@esbuild/linux-loong64/0.15.18: - resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: false - optional: true - /@esbuild/linux-loong64/0.16.17: resolution: {integrity: sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==} engines: {node: '>=12'} @@ -5514,216 +5494,6 @@ packages: es6-symbol: 3.1.3 dev: false - /esbuild-android-64/0.15.18: - resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: false - optional: true - - /esbuild-android-arm64/0.15.18: - resolution: {integrity: sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: false - optional: true - - /esbuild-darwin-64/0.15.18: - resolution: {integrity: sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /esbuild-darwin-arm64/0.15.18: - resolution: {integrity: sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: false - optional: true - - /esbuild-freebsd-64/0.15.18: - resolution: {integrity: sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: false - optional: true - - /esbuild-freebsd-arm64/0.15.18: - resolution: {integrity: sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: false - optional: true - - /esbuild-linux-32/0.15.18: - resolution: {integrity: sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /esbuild-linux-64/0.15.18: - resolution: {integrity: sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /esbuild-linux-arm/0.15.18: - resolution: {integrity: sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /esbuild-linux-arm64/0.15.18: - resolution: {integrity: sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /esbuild-linux-mips64le/0.15.18: - resolution: {integrity: sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /esbuild-linux-ppc64le/0.15.18: - resolution: {integrity: sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /esbuild-linux-riscv64/0.15.18: - resolution: {integrity: sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /esbuild-linux-s390x/0.15.18: - resolution: {integrity: sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: false - optional: true - - /esbuild-netbsd-64/0.15.18: - resolution: {integrity: sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: false - optional: true - - /esbuild-openbsd-64/0.15.18: - resolution: {integrity: sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: false - optional: true - - /esbuild-sunos-64/0.15.18: - resolution: {integrity: sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: false - optional: true - - /esbuild-windows-32/0.15.18: - resolution: {integrity: sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /esbuild-windows-64/0.15.18: - resolution: {integrity: sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /esbuild-windows-arm64/0.15.18: - resolution: {integrity: sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: false - optional: true - - /esbuild/0.15.18: - resolution: {integrity: sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.15.18 - '@esbuild/linux-loong64': 0.15.18 - esbuild-android-64: 0.15.18 - esbuild-android-arm64: 0.15.18 - esbuild-darwin-64: 0.15.18 - esbuild-darwin-arm64: 0.15.18 - esbuild-freebsd-64: 0.15.18 - esbuild-freebsd-arm64: 0.15.18 - esbuild-linux-32: 0.15.18 - esbuild-linux-64: 0.15.18 - esbuild-linux-arm: 0.15.18 - esbuild-linux-arm64: 0.15.18 - esbuild-linux-mips64le: 0.15.18 - esbuild-linux-ppc64le: 0.15.18 - esbuild-linux-riscv64: 0.15.18 - esbuild-linux-s390x: 0.15.18 - esbuild-netbsd-64: 0.15.18 - esbuild-openbsd-64: 0.15.18 - esbuild-sunos-64: 0.15.18 - esbuild-windows-32: 0.15.18 - esbuild-windows-64: 0.15.18 - esbuild-windows-arm64: 0.15.18 - dev: false - /esbuild/0.16.17: resolution: {integrity: sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==} engines: {node: '>=12'} From 95595dafcb9e18d3d30cab590d678e9728aeca4c Mon Sep 17 00:00:00 2001 From: ThatOneCalculator Date: Tue, 24 Jan 2023 15:13:25 -0800 Subject: [PATCH 09/17] fix: :bug: signin with ipv6 co-authored-by: Syuilo --- packages/backend/src/misc/get-ip-hash.ts | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/packages/backend/src/misc/get-ip-hash.ts b/packages/backend/src/misc/get-ip-hash.ts index caf832f90..3bafaee5d 100644 --- a/packages/backend/src/misc/get-ip-hash.ts +++ b/packages/backend/src/misc/get-ip-hash.ts @@ -1,9 +1,14 @@ import IPCIDR from "ip-cidr"; export function getIpHash(ip: string) { - // because a single person may control many IPv6 addresses, - // only a /64 subnet prefix of any IP will be taken into account. - // (this means for IPv4 the entire address is used) - const prefix = IPCIDR.createAddress(ip).mask(64); - return `ip-${BigInt(`0b${prefix}`).toString(36)}`; + try { + // because a single person may control many IPv6 addresses, + // only a /64 subnet prefix of any IP will be taken into account. + // (this means for IPv4 the entire address is used) + const prefix = IPCIDR.createAddress(ip).mask(64); + return `ip-${BigInt(`0b${prefix}`).toString(36)}`; + } catch (e) { + const prefix = IPCIDR.createAddress(ip.replace(/:[0-9]+$/, "")).mask(64); + return `ip-${BigInt(`0b${prefix}`).toString(36)}`; + } } From 61e290e32a75d380a027d417da770454f6daf206 Mon Sep 17 00:00:00 2001 From: ThatOneCalculator Date: Tue, 24 Jan 2023 15:18:30 -0800 Subject: [PATCH 10/17] improve MkTab --- packages/client/src/components/MkTab.vue | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/packages/client/src/components/MkTab.vue b/packages/client/src/components/MkTab.vue index 3c2e47ba7..8920e4155 100644 --- a/packages/client/src/components/MkTab.vue +++ b/packages/client/src/components/MkTab.vue @@ -10,20 +10,18 @@ export default defineComponent({ render() { const options = this.$slots.default(); - return withDirectives(h('div', { + return h('div', { class: 'pxhvhrfw', }, options.map(option => withDirectives(h('button', { - class: ['_button', { active: this.modelValue === option.props.value }], + class: ['_button', { active: this.modelValue === option.props?.value }], key: option.key, - disabled: this.modelValue === option.props.value, + disabled: this.modelValue === option.props?.value, onClick: () => { - this.$emit('update:modelValue', option.props.value); + this.$emit('update:modelValue', option.props?.value); }, }, option.children), [ [resolveDirective('click-anime')], - ]))), [ - [resolveDirective('size'), { max: [500] }], - ]); + ]))); }, }); From d19e33485deebf2b6d9977dd757f1552673ff03b Mon Sep 17 00:00:00 2001 From: syuilo Date: Sat, 10 Dec 2022 16:52:05 +0900 Subject: [PATCH 11/17] fix(client): use proxied image for instance icon --- packages/client/src/components/MkInstanceCardMini.vue | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/client/src/components/MkInstanceCardMini.vue b/packages/client/src/components/MkInstanceCardMini.vue index b4ff5bdc3..11952e46c 100644 --- a/packages/client/src/components/MkInstanceCardMini.vue +++ b/packages/client/src/components/MkInstanceCardMini.vue @@ -1,6 +1,6 @@