diff --git a/samples/activate_windows/amongus_reveal.wav b/samples/activate_windows/amongus_reveal.wav new file mode 100644 index 0000000..8d3515d Binary files /dev/null and b/samples/activate_windows/amongus_reveal.wav differ diff --git a/samples/activate_windows/bruh.wav b/samples/activate_windows/bruh.wav new file mode 100644 index 0000000..c2a8264 Binary files /dev/null and b/samples/activate_windows/bruh.wav differ diff --git a/samples/activate_windows/discord_call.wav b/samples/activate_windows/discord_call.wav new file mode 100644 index 0000000..a9dcfe4 Binary files /dev/null and b/samples/activate_windows/discord_call.wav differ diff --git a/samples/activate_windows/discord_call_join.wav b/samples/activate_windows/discord_call_join.wav new file mode 100644 index 0000000..e89b648 Binary files /dev/null and b/samples/activate_windows/discord_call_join.wav differ diff --git a/samples/activate_windows/discord_call_leave.wav b/samples/activate_windows/discord_call_leave.wav new file mode 100644 index 0000000..a3574fd Binary files /dev/null and b/samples/activate_windows/discord_call_leave.wav differ diff --git a/samples/activate_windows/fbi_open_up.wav b/samples/activate_windows/fbi_open_up.wav new file mode 100644 index 0000000..36b50cd Binary files /dev/null and b/samples/activate_windows/fbi_open_up.wav differ diff --git a/samples/activate_windows/mario_jump.wav b/samples/activate_windows/mario_jump.wav new file mode 100644 index 0000000..693a192 Binary files /dev/null and b/samples/activate_windows/mario_jump.wav differ diff --git a/samples/activate_windows/mario_mushroom.wav b/samples/activate_windows/mario_mushroom.wav new file mode 100644 index 0000000..bc5a808 Binary files /dev/null and b/samples/activate_windows/mario_mushroom.wav differ diff --git a/samples/activate_windows/metal_pipe.wav b/samples/activate_windows/metal_pipe.wav new file mode 100644 index 0000000..e33ad78 Binary files /dev/null and b/samples/activate_windows/metal_pipe.wav differ diff --git a/samples/activate_windows/minecraft_door_close.wav b/samples/activate_windows/minecraft_door_close.wav new file mode 100644 index 0000000..2b9c478 Binary files /dev/null and b/samples/activate_windows/minecraft_door_close.wav differ diff --git a/samples/activate_windows/minecraft_door_open.wav b/samples/activate_windows/minecraft_door_open.wav new file mode 100644 index 0000000..0d0d259 Binary files /dev/null and b/samples/activate_windows/minecraft_door_open.wav differ diff --git a/samples/activate_windows/minecraft_eat.wav b/samples/activate_windows/minecraft_eat.wav new file mode 100644 index 0000000..bcf40cb Binary files /dev/null and b/samples/activate_windows/minecraft_eat.wav differ diff --git a/samples/activate_windows/minecraft_hurt.wav b/samples/activate_windows/minecraft_hurt.wav new file mode 100644 index 0000000..2997c3d Binary files /dev/null and b/samples/activate_windows/minecraft_hurt.wav differ diff --git a/samples/activate_windows/ns_beste_reizigers.wav b/samples/activate_windows/ns_beste_reizigers.wav new file mode 100644 index 0000000..45fc35e Binary files /dev/null and b/samples/activate_windows/ns_beste_reizigers.wav differ diff --git a/samples/activate_windows/ns_ding_dong.wav b/samples/activate_windows/ns_ding_dong.wav new file mode 100644 index 0000000..cf32b11 Binary files /dev/null and b/samples/activate_windows/ns_ding_dong.wav differ diff --git a/samples/activate_windows/ns_tilted_towers.wav b/samples/activate_windows/ns_tilted_towers.wav new file mode 100644 index 0000000..c58350d Binary files /dev/null and b/samples/activate_windows/ns_tilted_towers.wav differ diff --git a/samples/activate_windows/roblox_oof.wav b/samples/activate_windows/roblox_oof.wav new file mode 100644 index 0000000..6106060 Binary files /dev/null and b/samples/activate_windows/roblox_oof.wav differ diff --git a/samples/activate_windows/spongebob_fail.wav b/samples/activate_windows/spongebob_fail.wav new file mode 100644 index 0000000..58b3224 Binary files /dev/null and b/samples/activate_windows/spongebob_fail.wav differ diff --git a/samples/activate_windows/spongebob_two_hours_later.wav b/samples/activate_windows/spongebob_two_hours_later.wav new file mode 100644 index 0000000..37f5e88 Binary files /dev/null and b/samples/activate_windows/spongebob_two_hours_later.wav differ diff --git a/samples/activate_windows/the_hub_intro.wav b/samples/activate_windows/the_hub_intro.wav new file mode 100644 index 0000000..0a1fd79 Binary files /dev/null and b/samples/activate_windows/the_hub_intro.wav differ diff --git a/samples/activate_windows/vine_boom.wav b/samples/activate_windows/vine_boom.wav new file mode 100644 index 0000000..af537c5 Binary files /dev/null and b/samples/activate_windows/vine_boom.wav differ diff --git a/samples/activate_windows/wilders_doe_eens_normaal_en_rustig_man.wav b/samples/activate_windows/wilders_doe_eens_normaal_en_rustig_man.wav new file mode 100644 index 0000000..5ea0b8a Binary files /dev/null and b/samples/activate_windows/wilders_doe_eens_normaal_en_rustig_man.wav differ diff --git a/samples/activate_windows/wilders_hou_je_fucking_kut_bek.wav b/samples/activate_windows/wilders_hou_je_fucking_kut_bek.wav new file mode 100644 index 0000000..410b070 Binary files /dev/null and b/samples/activate_windows/wilders_hou_je_fucking_kut_bek.wav differ diff --git a/samples/activate_windows/wilders_kanker_huis_in_de_fik.wav b/samples/activate_windows/wilders_kanker_huis_in_de_fik.wav new file mode 100644 index 0000000..e1d4a8f Binary files /dev/null and b/samples/activate_windows/wilders_kanker_huis_in_de_fik.wav differ diff --git a/samples/activate_windows/wilders_kanker_moeder_op_driewieler.wav b/samples/activate_windows/wilders_kanker_moeder_op_driewieler.wav new file mode 100644 index 0000000..0a6575c Binary files /dev/null and b/samples/activate_windows/wilders_kanker_moeder_op_driewieler.wav differ diff --git a/samples/activate_windows/windows_10_error.wav b/samples/activate_windows/windows_10_error.wav new file mode 100644 index 0000000..dea2d9d Binary files /dev/null and b/samples/activate_windows/windows_10_error.wav differ diff --git a/samples/activate_windows/windows_device_connect.wav b/samples/activate_windows/windows_device_connect.wav new file mode 100644 index 0000000..a1a608a Binary files /dev/null and b/samples/activate_windows/windows_device_connect.wav differ diff --git a/samples/activate_windows/windows_xp_error.wav b/samples/activate_windows/windows_xp_error.wav new file mode 100644 index 0000000..9921c43 Binary files /dev/null and b/samples/activate_windows/windows_xp_error.wav differ diff --git a/samples/activate_windows/windows_xp_shutdown.wav b/samples/activate_windows/windows_xp_shutdown.wav new file mode 100644 index 0000000..c66de86 Binary files /dev/null and b/samples/activate_windows/windows_xp_shutdown.wav differ diff --git a/samples/activate_windows/yipee.wav b/samples/activate_windows/yipee.wav new file mode 100644 index 0000000..cceed28 Binary files /dev/null and b/samples/activate_windows/yipee.wav differ diff --git a/samples/duitsland/koen_goeie_spot_ouwe.wav b/samples/duitsland/koen_goeie_spot_ouwe.wav new file mode 100644 index 0000000..ed08e94 Binary files /dev/null and b/samples/duitsland/koen_goeie_spot_ouwe.wav differ diff --git a/samples/duitsland/koen_goeie_spot_ouwe_clean.wav b/samples/duitsland/koen_goeie_spot_ouwe_clean.wav new file mode 100644 index 0000000..48b73b9 Binary files /dev/null and b/samples/duitsland/koen_goeie_spot_ouwe_clean.wav differ diff --git a/samples/duitsland/nikki_doe_de_flippedie_flip.wav b/samples/duitsland/nikki_doe_de_flippedie_flip.wav new file mode 100644 index 0000000..8ed07d4 Binary files /dev/null and b/samples/duitsland/nikki_doe_de_flippedie_flip.wav differ diff --git a/samples/duitsland/nikki_doe_een_flip.wav b/samples/duitsland/nikki_doe_een_flip.wav new file mode 100644 index 0000000..b175d51 Binary files /dev/null and b/samples/duitsland/nikki_doe_een_flip.wav differ diff --git a/samples/duitsland/nikki_doe_een_flip_2.wav b/samples/duitsland/nikki_doe_een_flip_2.wav new file mode 100644 index 0000000..9adb5ad Binary files /dev/null and b/samples/duitsland/nikki_doe_een_flip_2.wav differ diff --git a/samples/duitsland/nikki_wooh.wav b/samples/duitsland/nikki_wooh.wav new file mode 100644 index 0000000..b560f6c Binary files /dev/null and b/samples/duitsland/nikki_wooh.wav differ diff --git a/samples/duitsland/tamo_thats_not_a_knife_clean.wav b/samples/duitsland/tamo_thats_not_a_knife_clean.wav new file mode 100644 index 0000000..3957c59 Binary files /dev/null and b/samples/duitsland/tamo_thats_not_a_knife_clean.wav differ diff --git a/samples/duitsland/tamo_thats_not_a_knife_this_is_a_knife.wav b/samples/duitsland/tamo_thats_not_a_knife_this_is_a_knife.wav new file mode 100644 index 0000000..44311e0 Binary files /dev/null and b/samples/duitsland/tamo_thats_not_a_knife_this_is_a_knife.wav differ diff --git a/samples/duitsland/tamo_thats_not_a_knife_this_is_a_knife_converted.mp3 b/samples/duitsland/tamo_thats_not_a_knife_this_is_a_knife_converted.mp3 new file mode 100644 index 0000000..c97abaf Binary files /dev/null and b/samples/duitsland/tamo_thats_not_a_knife_this_is_a_knife_converted.mp3 differ diff --git a/samples/duitsland/tamo_this_is_a_knife.wav b/samples/duitsland/tamo_this_is_a_knife.wav new file mode 100644 index 0000000..b5829bc Binary files /dev/null and b/samples/duitsland/tamo_this_is_a_knife.wav differ diff --git a/samples/test_sample.mp3 b/samples/test_sample.mp3 deleted file mode 100644 index f476db3..0000000 Binary files a/samples/test_sample.mp3 and /dev/null differ diff --git a/web/package.json b/web/package.json index ac51938..1b43c0a 100644 --- a/web/package.json +++ b/web/package.json @@ -6,7 +6,8 @@ "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "dev": "vite", - "build": "vite build" + "build": "pnpm prebuild && vite build", + "prebuild": "tsx ./src/preprocess.ts" }, "keywords": [], "author": "", @@ -28,6 +29,8 @@ "react-leaflet": "^4.2.1", "swr": "^2.2.5", "tailwindcss": "^3.4.3", + "tsc": "^2.0.4", + "tsx": "^4.17.0", "ua-parser-js": "^1.0.38", "vite": "^5.2.10", "zustand": "^4.5.4" diff --git a/web/pnpm-lock.yaml b/web/pnpm-lock.yaml index d11f88b..7c57355 100644 --- a/web/pnpm-lock.yaml +++ b/web/pnpm-lock.yaml @@ -56,6 +56,12 @@ importers: tailwindcss: specifier: ^3.4.3 version: 3.4.10 + tsc: + specifier: ^2.0.4 + version: 2.0.4 + tsx: + specifier: ^4.17.0 + version: 4.17.0 ua-parser-js: specifier: ^1.0.38 version: 1.0.38 @@ -215,138 +221,282 @@ packages: cpu: [ppc64] os: [aix] + '@esbuild/aix-ppc64@0.23.1': + resolution: {integrity: sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + '@esbuild/android-arm64@0.21.5': resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} engines: {node: '>=12'} cpu: [arm64] os: [android] + '@esbuild/android-arm64@0.23.1': + resolution: {integrity: sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + '@esbuild/android-arm@0.21.5': resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} engines: {node: '>=12'} cpu: [arm] os: [android] + '@esbuild/android-arm@0.23.1': + resolution: {integrity: sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + '@esbuild/android-x64@0.21.5': resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} engines: {node: '>=12'} cpu: [x64] os: [android] + '@esbuild/android-x64@0.23.1': + resolution: {integrity: sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + '@esbuild/darwin-arm64@0.21.5': resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] + '@esbuild/darwin-arm64@0.23.1': + resolution: {integrity: sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + '@esbuild/darwin-x64@0.21.5': resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} engines: {node: '>=12'} cpu: [x64] os: [darwin] + '@esbuild/darwin-x64@0.23.1': + resolution: {integrity: sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + '@esbuild/freebsd-arm64@0.21.5': resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] + '@esbuild/freebsd-arm64@0.23.1': + resolution: {integrity: sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + '@esbuild/freebsd-x64@0.21.5': resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] + '@esbuild/freebsd-x64@0.23.1': + resolution: {integrity: sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + '@esbuild/linux-arm64@0.21.5': resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} engines: {node: '>=12'} cpu: [arm64] os: [linux] + '@esbuild/linux-arm64@0.23.1': + resolution: {integrity: sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + '@esbuild/linux-arm@0.21.5': resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} engines: {node: '>=12'} cpu: [arm] os: [linux] + '@esbuild/linux-arm@0.23.1': + resolution: {integrity: sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + '@esbuild/linux-ia32@0.21.5': resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} engines: {node: '>=12'} cpu: [ia32] os: [linux] + '@esbuild/linux-ia32@0.23.1': + resolution: {integrity: sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + '@esbuild/linux-loong64@0.21.5': resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} engines: {node: '>=12'} cpu: [loong64] os: [linux] + '@esbuild/linux-loong64@0.23.1': + resolution: {integrity: sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + '@esbuild/linux-mips64el@0.21.5': resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] + '@esbuild/linux-mips64el@0.23.1': + resolution: {integrity: sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + '@esbuild/linux-ppc64@0.21.5': resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] + '@esbuild/linux-ppc64@0.23.1': + resolution: {integrity: sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + '@esbuild/linux-riscv64@0.21.5': resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] + '@esbuild/linux-riscv64@0.23.1': + resolution: {integrity: sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + '@esbuild/linux-s390x@0.21.5': resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} engines: {node: '>=12'} cpu: [s390x] os: [linux] + '@esbuild/linux-s390x@0.23.1': + resolution: {integrity: sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + '@esbuild/linux-x64@0.21.5': resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} engines: {node: '>=12'} cpu: [x64] os: [linux] + '@esbuild/linux-x64@0.23.1': + resolution: {integrity: sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + '@esbuild/netbsd-x64@0.21.5': resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] + '@esbuild/netbsd-x64@0.23.1': + resolution: {integrity: sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.23.1': + resolution: {integrity: sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + '@esbuild/openbsd-x64@0.21.5': resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] + '@esbuild/openbsd-x64@0.23.1': + resolution: {integrity: sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + '@esbuild/sunos-x64@0.21.5': resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] + '@esbuild/sunos-x64@0.23.1': + resolution: {integrity: sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + '@esbuild/win32-arm64@0.21.5': resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} engines: {node: '>=12'} cpu: [arm64] os: [win32] + '@esbuild/win32-arm64@0.23.1': + resolution: {integrity: sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + '@esbuild/win32-ia32@0.21.5': resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} engines: {node: '>=12'} cpu: [ia32] os: [win32] + '@esbuild/win32-ia32@0.23.1': + resolution: {integrity: sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + '@esbuild/win32-x64@0.21.5': resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} engines: {node: '>=12'} cpu: [x64] os: [win32] + '@esbuild/win32-x64@0.23.1': + resolution: {integrity: sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.4.0': resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -978,6 +1128,11 @@ packages: engines: {node: '>=12'} hasBin: true + esbuild@0.23.1: + resolution: {integrity: sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==} + engines: {node: '>=18'} + hasBin: true + escalade@3.1.2: resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} @@ -1194,6 +1349,9 @@ packages: resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} engines: {node: '>= 0.4'} + get-tsconfig@4.7.6: + resolution: {integrity: sha512-ZAqrLlu18NbDdRaHq+AKXzAmqIUPswPWKUchfytdAjiRFnCe5ojG2bstg6mRiZabkKfCoL/e98pbBELIV/YCeA==} + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} @@ -1815,6 +1973,9 @@ packages: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} + resolve-pkg-maps@1.0.0: + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + resolve@1.22.8: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true @@ -2009,6 +2170,10 @@ packages: ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + tsc@2.0.4: + resolution: {integrity: sha512-fzoSieZI5KKJVBYGvwbVZs/J5za84f2lSTLPYf6AGiIf43tZ3GNrI1QzTLcjtyDDP4aLxd46RTZq1nQxe7+k5Q==} + hasBin: true + tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} @@ -2018,6 +2183,11 @@ packages: peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' + tsx@4.17.0: + resolution: {integrity: sha512-eN4mnDA5UMKDt4YZixo9tBioibaMBpoxBkD+rIPAjVmYERSG0/dWEY1CEFuV89CgASlKL499q8AhmkMnnjtOJg==} + engines: {node: '>=18.0.0'} + hasBin: true + type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -2337,72 +2507,144 @@ snapshots: '@esbuild/aix-ppc64@0.21.5': optional: true + '@esbuild/aix-ppc64@0.23.1': + optional: true + '@esbuild/android-arm64@0.21.5': optional: true + '@esbuild/android-arm64@0.23.1': + optional: true + '@esbuild/android-arm@0.21.5': optional: true + '@esbuild/android-arm@0.23.1': + optional: true + '@esbuild/android-x64@0.21.5': optional: true + '@esbuild/android-x64@0.23.1': + optional: true + '@esbuild/darwin-arm64@0.21.5': optional: true + '@esbuild/darwin-arm64@0.23.1': + optional: true + '@esbuild/darwin-x64@0.21.5': optional: true + '@esbuild/darwin-x64@0.23.1': + optional: true + '@esbuild/freebsd-arm64@0.21.5': optional: true + '@esbuild/freebsd-arm64@0.23.1': + optional: true + '@esbuild/freebsd-x64@0.21.5': optional: true + '@esbuild/freebsd-x64@0.23.1': + optional: true + '@esbuild/linux-arm64@0.21.5': optional: true + '@esbuild/linux-arm64@0.23.1': + optional: true + '@esbuild/linux-arm@0.21.5': optional: true + '@esbuild/linux-arm@0.23.1': + optional: true + '@esbuild/linux-ia32@0.21.5': optional: true + '@esbuild/linux-ia32@0.23.1': + optional: true + '@esbuild/linux-loong64@0.21.5': optional: true + '@esbuild/linux-loong64@0.23.1': + optional: true + '@esbuild/linux-mips64el@0.21.5': optional: true + '@esbuild/linux-mips64el@0.23.1': + optional: true + '@esbuild/linux-ppc64@0.21.5': optional: true + '@esbuild/linux-ppc64@0.23.1': + optional: true + '@esbuild/linux-riscv64@0.21.5': optional: true + '@esbuild/linux-riscv64@0.23.1': + optional: true + '@esbuild/linux-s390x@0.21.5': optional: true + '@esbuild/linux-s390x@0.23.1': + optional: true + '@esbuild/linux-x64@0.21.5': optional: true + '@esbuild/linux-x64@0.23.1': + optional: true + '@esbuild/netbsd-x64@0.21.5': optional: true + '@esbuild/netbsd-x64@0.23.1': + optional: true + + '@esbuild/openbsd-arm64@0.23.1': + optional: true + '@esbuild/openbsd-x64@0.21.5': optional: true + '@esbuild/openbsd-x64@0.23.1': + optional: true + '@esbuild/sunos-x64@0.21.5': optional: true + '@esbuild/sunos-x64@0.23.1': + optional: true + '@esbuild/win32-arm64@0.21.5': optional: true + '@esbuild/win32-arm64@0.23.1': + optional: true + '@esbuild/win32-ia32@0.21.5': optional: true + '@esbuild/win32-ia32@0.23.1': + optional: true + '@esbuild/win32-x64@0.21.5': optional: true + '@esbuild/win32-x64@0.23.1': + optional: true + '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': dependencies: eslint: 8.57.0 @@ -3178,6 +3420,33 @@ snapshots: '@esbuild/win32-ia32': 0.21.5 '@esbuild/win32-x64': 0.21.5 + esbuild@0.23.1: + optionalDependencies: + '@esbuild/aix-ppc64': 0.23.1 + '@esbuild/android-arm': 0.23.1 + '@esbuild/android-arm64': 0.23.1 + '@esbuild/android-x64': 0.23.1 + '@esbuild/darwin-arm64': 0.23.1 + '@esbuild/darwin-x64': 0.23.1 + '@esbuild/freebsd-arm64': 0.23.1 + '@esbuild/freebsd-x64': 0.23.1 + '@esbuild/linux-arm': 0.23.1 + '@esbuild/linux-arm64': 0.23.1 + '@esbuild/linux-ia32': 0.23.1 + '@esbuild/linux-loong64': 0.23.1 + '@esbuild/linux-mips64el': 0.23.1 + '@esbuild/linux-ppc64': 0.23.1 + '@esbuild/linux-riscv64': 0.23.1 + '@esbuild/linux-s390x': 0.23.1 + '@esbuild/linux-x64': 0.23.1 + '@esbuild/netbsd-x64': 0.23.1 + '@esbuild/openbsd-arm64': 0.23.1 + '@esbuild/openbsd-x64': 0.23.1 + '@esbuild/sunos-x64': 0.23.1 + '@esbuild/win32-arm64': 0.23.1 + '@esbuild/win32-ia32': 0.23.1 + '@esbuild/win32-x64': 0.23.1 + escalade@3.1.2: {} escape-string-regexp@1.0.5: {} @@ -3447,6 +3716,10 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.2.4 + get-tsconfig@4.7.6: + dependencies: + resolve-pkg-maps: 1.0.0 + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -4018,6 +4291,8 @@ snapshots: resolve-from@4.0.0: {} + resolve-pkg-maps@1.0.0: {} + resolve@1.22.8: dependencies: is-core-module: 2.15.1 @@ -4265,6 +4540,8 @@ snapshots: ts-interface-checker@0.1.13: {} + tsc@2.0.4: {} + tslib@1.14.1: {} tsutils@3.21.0(typescript@5.5.4): @@ -4272,6 +4549,13 @@ snapshots: tslib: 1.14.1 typescript: 5.5.4 + tsx@4.17.0: + dependencies: + esbuild: 0.23.1 + get-tsconfig: 4.7.6 + optionalDependencies: + fsevents: 2.3.3 + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 diff --git a/web/src/components/SampleList.tsx b/web/src/components/SampleList.tsx index 999051a..b53d821 100644 --- a/web/src/components/SampleList.tsx +++ b/web/src/components/SampleList.tsx @@ -1,27 +1,23 @@ -import { FaPlay } from 'react-icons/fa'; +import { FC } from 'react'; + +import { SAMPLES_BY_PACK } from '../config.gen'; +import { SampleTray } from './SampleTray'; + +export const SampleList: FC<{ pack: string }> = ({ pack }) => { + // @ts-ignore + const samples = SAMPLES_BY_PACK[pack] as string[]; + + if (!samples) { + return <>No samples sound for {pack}>; + } -export const SampleList = () => { return (