From c32538afeda6fb7dd158904311126baad23af6f2 Mon Sep 17 00:00:00 2001 From: eefano <77832+eefano@users.noreply.github.com> Date: Sat, 5 Jul 2025 15:19:16 +0200 Subject: [PATCH] switched to brotli-compress coz of building problems --- pnpm-lock.yaml | 26 +++++++++++++++++++------- website/package.json | 2 +- website/src/repl/useReplContext.jsx | 8 +++----- website/src/repl/util.mjs | 6 ++---- 4 files changed, 25 insertions(+), 17 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 03c74c06c..bb0bd12e4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -780,9 +780,9 @@ importers: base64url-universal: specifier: ^2.0.0 version: 2.0.0 - brotli-wasm: - specifier: ^3.0.1 - version: 3.0.1 + brotli-compress: + specifier: ^1.3.3 + version: 1.3.3 claviature: specifier: ^0.1.0 version: 0.1.0 @@ -2829,6 +2829,9 @@ packages: '@types/nlcst@2.0.3': resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==} + '@types/node@17.0.45': + resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} + '@types/node@22.10.10': resolution: {integrity: sha512-X47y/mPNzxviAGY5TcYPtYL8JsY3kAq2n8fMmKoRCxq/c4v4pyGNCzM2R6+M5/umG4ZfHuT+sgqDYqWc9rJ6ww==} @@ -3254,9 +3257,11 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - brotli-wasm@3.0.1: - resolution: {integrity: sha512-U3K72/JAi3jITpdhZBqzSUq+DUY697tLxOuFXB+FpAE/Ug+5C3VZrv4uA674EUZHxNAuQ9wETXNqQkxZD6oL4A==} - engines: {node: '>=v18.0.0'} + brotli-compress@1.3.3: + resolution: {integrity: sha512-cwKOmzEuKqUmRxXDdZimiNoXRRr7AQKMSubJSbYA9FXk+LTPT3fBGpHU8VZRZZctAJ5OCeXGK9PzPpZ1vD0pDA==} + + brotli-wasm@1.2.0: + resolution: {integrity: sha512-PdDi7awF36zFujZyFJb9UNrP1l+If7iCgXhLKE1SpwqFQSK2yc7w2dysOmME7p325yQaZNvae7ruzypB3YhFxA==} browserslist@4.24.4: resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} @@ -10295,6 +10300,8 @@ snapshots: dependencies: '@types/unist': 3.0.3 + '@types/node@17.0.45': {} + '@types/node@22.10.10': dependencies: undici-types: 6.20.0 @@ -10874,7 +10881,12 @@ snapshots: dependencies: fill-range: 7.1.1 - brotli-wasm@3.0.1: {} + brotli-compress@1.3.3: + dependencies: + '@types/node': 17.0.45 + brotli-wasm: 1.2.0 + + brotli-wasm@1.2.0: {} browserslist@4.24.4: dependencies: diff --git a/website/package.json b/website/package.json index 9597af9bb..7ce30fbdf 100644 --- a/website/package.json +++ b/website/package.json @@ -55,7 +55,7 @@ "@types/react-dom": "^19.0.3", "astro": "^5.1.9", "base64url-universal": "^2.0.0", - "brotli-wasm": "^3.0.1", + "brotli-compress": "^1.3.3", "claviature": "^0.1.0", "date-fns": "^4.1.0", "hs2js": "0.1.0", diff --git a/website/src/repl/useReplContext.jsx b/website/src/repl/useReplContext.jsx index 0f6a56eee..0b3a22255 100644 --- a/website/src/repl/useReplContext.jsx +++ b/website/src/repl/useReplContext.jsx @@ -35,11 +35,9 @@ import { getRandomTune, initCode, loadModules, shareCode } from './util.mjs'; import './Repl.css'; import { setInterval, clearInterval } from 'worker-timers'; import { getMetadata } from '../metadata_parser'; -import brotliPromise from 'brotli-wasm'; +import { compress as brotlicompress } from 'brotli-compress'; import { encode as base64urlencode } from 'base64url-universal'; -const brotli = await brotliPromise; // Import is async in browsers due to wasm requirements! - const { latestCode, maxPolyphony, audioDeviceName, multiChannelOrbits } = settingsMap.get(); let modulesLoading, presets, drawContext, clearCanvas, audioReady; @@ -97,7 +95,7 @@ export function useReplContext() { } }, beforeEval: () => audioReady, - afterEval: (all) => { + afterEval: async (all) => { const { code } = all; //post to iframe parent (like Udels) if it exists... window.parent?.postMessage(code); @@ -108,7 +106,7 @@ export function useReplContext() { // Compress the script with brotli and encode it with base64url const encoded = new TextEncoder().encode(code); //console.log('encoded',encoded); - const brotlized = brotli.compress(encoded, { mode: 1, quality: 11 }); + const brotlized = await brotlicompress(encoded, { mode: 1, quality: 11 }); //console.log('brotlized',brotlized); const baseurled = base64urlencode(brotlized); //console.log('baseurled',baseurled); diff --git a/website/src/repl/util.mjs b/website/src/repl/util.mjs index a3106a0e5..7fdd12ac6 100644 --- a/website/src/repl/util.mjs +++ b/website/src/repl/util.mjs @@ -8,11 +8,9 @@ import { createClient } from '@supabase/supabase-js'; import { nanoid } from 'nanoid'; import { writeText } from '@tauri-apps/plugin-clipboard-manager'; import { $featuredPatterns /* , loadDBPatterns */ } from '@src/user_pattern_utils.mjs'; -import brotliPromise from 'brotli-wasm'; +import { decompress as brotlidecompress } from 'brotli-compress'; import { decode as base64urldecode } from 'base64url-universal'; -const brotli = await brotliPromise; // Import is async in browsers due to wasm requirements! - // Create a single supabase client for interacting with your database export const supabase = createClient( 'https://pidxdsxphlhzjnzmifth.supabase.co', @@ -38,7 +36,7 @@ export async function initCode() { //console.log('baseurled', baseurled); const brotlized = base64urldecode(baseurled); //console.log('brotlized', brotlized); - const encoded = brotli.decompress(brotlized); + const encoded = await brotlidecompress(brotlized); //console.log('encoded', encoded); const decoded = new TextDecoder().decode(encoded); //console.log('decoded', decoded);