diff options
feat: more changes
-rw-r--r-- | deno.lock | 69 | ||||
-rw-r--r-- | import_map.json | 5 | ||||
-rw-r--r-- | package.json | 13 | ||||
-rw-r--r-- | pnpm-lock.yaml | 16 | ||||
-rw-r--r-- | src/lib/vendor/lazy-cell/index.ts | 2 | ||||
-rw-r--r-- | src/user/index.ts | 26 |
6 files changed, 93 insertions, 38 deletions
@@ -3,17 +3,23 @@ "specifiers": { "jsr:@memdmp/keyframegen@*": "0.2.1", "jsr:@memdmp/timelinecalc@0.1": "0.1.2", + "npm:@ffmpeg/ffmpeg@0.12.15": "0.12.15", + "npm:@ffmpeg/util@0.12.2": "0.12.2", "npm:@sveltejs/adapter-static@3.0.8": "3.0.8_@sveltejs+kit@2.19.0__@sveltejs+vite-plugin-svelte@5.0.3___svelte@5.23.0____acorn@8.15.0___vite@6.2.1__svelte@5.23.0___acorn@8.15.0__vite@6.2.1_@sveltejs+vite-plugin-svelte@5.0.3__svelte@5.23.0___acorn@8.15.0__vite@6.2.1_svelte@5.23.0__acorn@8.15.0_vite@6.2.1", "npm:@sveltejs/kit@2.19.0": "2.19.0_@sveltejs+vite-plugin-svelte@5.0.3__svelte@5.23.0___acorn@8.15.0__vite@6.2.1_svelte@5.23.0__acorn@8.15.0_vite@6.2.1", "npm:@sveltejs/vite-plugin-svelte@5.0.3": "5.0.3_svelte@5.23.0__acorn@8.15.0_vite@6.2.1", "npm:@tailwindcss/vite@*": "4.1.11_vite@6.2.1", "npm:@tailwindcss/vite@4.1.11": "4.1.11_vite@6.2.1", + "npm:@types/three@0.178.1": "0.178.1", "npm:esbuild@0.25.1": "0.25.1", + "npm:js-lazycell@*": "0.1.1", + "npm:js-lazycell@0.1.1": "0.1.1", "npm:prettier-plugin-svelte@3.3.3": "3.3.3_prettier@3.5.3_svelte@5.23.0__acorn@8.15.0", "npm:prettier@3.5.3": "3.5.3", "npm:svelte-check@4.1.5": "4.1.5_svelte@5.23.0__acorn@8.15.0_typescript@5.8.2", "npm:svelte@5.23.0": "5.23.0_acorn@8.15.0", "npm:tailwindcss@4.0.13": "4.0.13", + "npm:three@0.178.0": "0.178.0", "npm:typescript@5.8.2": "5.8.2", "npm:vite@6.2.1": "6.2.1" }, @@ -36,6 +42,9 @@ "@jridgewell/trace-mapping" ] }, + "@dimforge/rapier3d-compat@0.12.0": { + "integrity": "sha512-uekIGetywIgopfD97oDL5PfeezkFpNhwlzlaEYNOA0N6ghdsOvh/HYjSMek5Q2O1PYvRSDFcqFVJl4r4ZBwOow==" + }, "@emnapi/core@1.4.5": { "integrity": "sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==", "dependencies": [ @@ -310,6 +319,18 @@ "os": ["win32"], "cpu": ["x64"] }, + "@ffmpeg/ffmpeg@0.12.15": { + "integrity": "sha512-1C8Obr4GsN3xw+/1Ww6PFM84wSQAGsdoTuTWPOj2OizsRDLT4CXTaVjPhkw6ARyDus1B9X/L2LiXHqYYsGnRFw==", + "dependencies": [ + "@ffmpeg/types" + ] + }, + "@ffmpeg/types@0.12.4": { + "integrity": "sha512-k9vJQNBGTxE5AhYDtOYR5rO5fKsspbg51gbcwtbkw2lCdoIILzklulcjJfIDwrtn7XhDeF2M+THwJ2FGrLeV6A==" + }, + "@ffmpeg/util@0.12.2": { + "integrity": "sha512-ouyoW+4JB7WxjeZ2y6KpRvB+dLp7Cp4ro8z0HIVpZVCM7AwFlHa0c4R8Y/a4M3wMqATpYKhC7lSFHQ0T11MEDw==" + }, "@isaacs/fs-minipass@4.0.1": { "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", "dependencies": [ @@ -611,6 +632,9 @@ "vite" ] }, + "@tweenjs/tween.js@23.1.3": { + "integrity": "sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA==" + }, "@tybys/wasm-util@0.10.0": { "integrity": "sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==", "dependencies": [ @@ -629,6 +653,27 @@ "@types/estree@1.0.8": { "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==" }, + "@types/stats.js@0.17.4": { + "integrity": "sha512-jIBvWWShCvlBqBNIZt0KAshWpvSjhkwkEu4ZUcASoAvhmrgAUI2t1dXrjSL4xXVLB4FznPrIsX3nKXFl/Dt4vA==" + }, + "@types/three@0.178.1": { + "integrity": "sha512-WSabew1mgWgRx2RfLfKY+9h4wyg6U94JfLbZEGU245j/WY2kXqU0MUfghS+3AYMV5ET1VlILAgpy77cB6a3Itw==", + "dependencies": [ + "@dimforge/rapier3d-compat", + "@tweenjs/tween.js", + "@types/stats.js", + "@types/webxr", + "@webgpu/types", + "fflate", + "meshoptimizer" + ] + }, + "@types/webxr@0.5.22": { + "integrity": "sha512-Vr6Stjv5jPRqH690f5I5GLjVk8GSsoQSYJ2FVd/3jJF7KaqfwPi3ehfBS96mlQ2kPCwZaX6U0rG2+NGHBKkA/A==" + }, + "@webgpu/types@0.1.64": { + "integrity": "sha512-84kRIAGV46LJTlJZWxShiOrNL30A+9KokD7RB3dRCIqODFjodS5tCD5yyiZ8kIReGVZSDfA3XkkwyyOIF6K62A==" + }, "acorn@8.15.0": { "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "bin": true @@ -720,6 +765,9 @@ "fdir@6.4.6": { "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==" }, + "fflate@0.8.2": { + "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==" + }, "fsevents@2.3.3": { "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "os": ["darwin"], @@ -741,6 +789,9 @@ "integrity": "sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==", "bin": true }, + "js-lazycell@0.1.1": { + "integrity": "sha512-E/SV0AQpHuRjhQTvBqHCnv7Nv1bTRaeFDnbh+QEZnPphYh/W5pFA91pxw25LqyWcq+DzI/9m2T76FwI3v3AQWg==" + }, "kleur@4.1.5": { "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==" }, @@ -821,6 +872,9 @@ "@jridgewell/sourcemap-codec" ] }, + "meshoptimizer@0.18.1": { + "integrity": "sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw==" + }, "minipass@7.1.2": { "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==" }, @@ -974,6 +1028,9 @@ "yallist" ] }, + "three@0.178.0": { + "integrity": "sha512-ybFIB0+x8mz0wnZgSGy2MO/WCO6xZhQSZnmfytSPyNpM0sBafGRVhdaj+erYh5U+RhQOAg/eXqw5uVDiM2BjhQ==" + }, "totalist@3.0.1": { "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==" }, @@ -1014,24 +1071,26 @@ }, "workspace": { "dependencies": [ - "npm:@tailwindcss/vite@*" + "npm:@tailwindcss/vite@*", + "npm:js-lazycell@*" ], "packageJson": { "dependencies": [ - "npm:@ffmpeg/ffmpeg@~0.12.15", - "npm:@ffmpeg/util@~0.12.2", + "npm:@ffmpeg/ffmpeg@0.12.15", + "npm:@ffmpeg/util@0.12.2", "npm:@sveltejs/adapter-static@3.0.8", "npm:@sveltejs/kit@2.19.0", "npm:@sveltejs/vite-plugin-svelte@5.0.3", "npm:@tailwindcss/vite@4.1.11", - "npm:@types/three@~0.178.1", + "npm:@types/three@0.178.1", "npm:esbuild@0.25.1", + "npm:js-lazycell@0.1.1", "npm:prettier-plugin-svelte@3.3.3", "npm:prettier@3.5.3", "npm:svelte-check@4.1.5", "npm:svelte@5.23.0", "npm:tailwindcss@4.0.13", - "npm:three@0.178", + "npm:three@0.178.0", "npm:typescript@5.8.2", "npm:vite@6.2.1" ] diff --git a/import_map.json b/import_map.json index 5a5ed87..34aa695 100644 --- a/import_map.json +++ b/import_map.json @@ -4,6 +4,7 @@ "$/": "./src/", "$lib": "./src/lib", "$lib/": "./src/lib/", - "@tailwindcss/vite": "npm:@tailwindcss/vite" + "@tailwindcss/vite": "npm:@tailwindcss/vite", + "js-lazycell": "npm:js-lazycell" } -}
\ No newline at end of file +} diff --git a/package.json b/package.json index 1a48225..12b433c 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "@sveltejs/kit": "2.19.0", "@sveltejs/vite-plugin-svelte": "5.0.3", "@tailwindcss/vite": "4.1.11", - "@types/three": "^0.178.1", + "@types/three": "0.178.1", "esbuild": "0.25.1", "prettier": "3.5.3", "prettier-plugin-svelte": "3.3.3", @@ -16,11 +16,12 @@ "svelte-check": "4.1.5", "tailwindcss": "4.0.13", "typescript": "5.8.2", - "vite": "6.2.1" + "vite": "6.2.1", + "js-lazycell": "0.1.1" }, "dependencies": { - "@ffmpeg/ffmpeg": "^0.12.15", - "@ffmpeg/util": "^0.12.2", - "three": "^0.178.0" + "@ffmpeg/ffmpeg": "0.12.15", + "@ffmpeg/util": "0.12.2", + "three": "0.178.0" } -}
\ No newline at end of file +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7ca5702..9895f75 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,13 +9,13 @@ importers: .: dependencies: '@ffmpeg/ffmpeg': - specifier: ^0.12.15 + specifier: 0.12.15 version: 0.12.15 '@ffmpeg/util': - specifier: ^0.12.2 + specifier: 0.12.2 version: 0.12.2 three: - specifier: ^0.178.0 + specifier: 0.178.0 version: 0.178.0 devDependencies: '@sveltejs/adapter-static': @@ -31,11 +31,14 @@ importers: specifier: 4.1.11 version: 4.1.11(vite@6.2.1(jiti@2.4.2)(lightningcss@1.30.1)) '@types/three': - specifier: ^0.178.1 + specifier: 0.178.1 version: 0.178.1 esbuild: specifier: 0.25.1 version: 0.25.1 + js-lazycell: + specifier: 0.1.1 + version: 0.1.1 prettier: specifier: 3.5.3 version: 3.5.3 @@ -587,6 +590,9 @@ packages: resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} hasBin: true + js-lazycell@0.1.1: + resolution: {integrity: sha512-E/SV0AQpHuRjhQTvBqHCnv7Nv1bTRaeFDnbh+QEZnPphYh/W5pFA91pxw25LqyWcq+DzI/9m2T76FwI3v3AQWg==} + kleur@4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} @@ -1222,6 +1228,8 @@ snapshots: jiti@2.4.2: {} + js-lazycell@0.1.1: {} + kleur@4.1.5: {} lightningcss-darwin-arm64@1.30.1: diff --git a/src/lib/vendor/lazy-cell/index.ts b/src/lib/vendor/lazy-cell/index.ts index c38445c..2b081bf 100644 --- a/src/lib/vendor/lazy-cell/index.ts +++ b/src/lib/vendor/lazy-cell/index.ts @@ -1 +1 @@ -export * from 'https://codeberg.org/dmpmem/js-lazycell/raw/commit/1b68e36e5de94d6202eee41f9cf122bcee196a2e09d8b0cdaf82e1767b1d9328/mod.ts' +export * from 'js-lazycell' diff --git a/src/user/index.ts b/src/user/index.ts index c6969c3..051939b 100644 --- a/src/user/index.ts +++ b/src/user/index.ts @@ -2,7 +2,7 @@ import { type FrameTime, type InitConfig } from '$/lib/Player/Video'; import ThreeVideo from './ThreeVideo'; import AudioURL from './03. Lemaitre, Jennie A. - Closer - 40sec version.flac?url' import * as THREE from 'three'; -import { LazyCell } from '$/lib/vendor/lazy-cell'; +import { LazyCell } from '$/lib/vendor/lazy-cell/index.ts'; type FontInfo = { family: string, size: number, weight?: number @@ -47,20 +47,6 @@ export default class Video extends ThreeVideo { })! const threeInit = super.init(config).catch(e => ([1, e] as const)) - // const v = document.createElement('video') - // v.load() - // await new Promise((rs, rj) => { - // let debounce = false; - // const timeout = setTimeout(() => { - // if (!debounce) rj('Failed to load video - timed out.') - // }, 1000); - // v.addEventListener('load', () => { - // rs(void 0) - // clearTimeout(timeout) - // }, { - // once: true - // }) - // }) const rs = await threeInit if (rs && rs[0] === 1) { console.error(rs[1]); throw new Error('Failed to initialize ThreeJS!'); } } @@ -130,8 +116,8 @@ export default class Video extends ThreeVideo { break; } case beat >= 8.4 && beat < 13: { - const text = `Like${beat >= 9 ? ` has a hyprminimal design` : ''}${beat >= 11 ? ' new' : ''}`; - const longTextWidth = getTextSize(this.ctx, `Like has a hyprminimal design new`, AdDefault) + const text = `Like${beat >= 9 ? ` doesn't have a version number` : ''}${beat >= 11 ? ' new' : ''}`; + const longTextWidth = getTextSize(this.ctx, `Like doesn't have a version number new`, AdDefault) renderText(this.ctx, text, '#646663', AdDefault, { x: center[0] - longTextWidth.width / 2, y: center[1] }, 'start') break; } @@ -157,7 +143,7 @@ export default class Video extends ThreeVideo { this.scene.add(this.lighting) this.scene.add(this.uiDark); - const progress = (beat - 15) + const progress = (beat - 15 - 1 / 30) this.uiDark.rotation.x = bezier(progress, -0.5, -0.5, -0.5, -0.5); this.uiDark.rotation.y = bezier(progress, 0.7, 0.6, 0.4, 0.4); this.camera.position.z = bezier(progress, 4, 5, 5, 8); @@ -206,8 +192,8 @@ export default class Video extends ThreeVideo { this.ctx.fillRect(0, 0, this.w, this.h); // renderText(this.ctx, `Need a new AI assistant?`, '#646663', AdDefault, { x: center[0], y: center[1] }, 'center') } - const text = `Accents ${beat >= 34.5 ? `so ` : ''}${beat >= 34.75 ? 'hyprblue, ' : ''}${beat >= 35.8 ? 'we created them' : ''}${beat >= 37 ? ' hypr' + (beat >= 38.1 ? 'new' : '') : ''}`; - const longTextWidth = getTextSize(this.ctx, `Accents so hyprblue, we created them hyprnew`, AdDefault) + const text = `Responses ${beat >= 34.5 ? `so ` : ''}${beat >= 34.75 ? 'hyprblue, ' : ''}${beat >= 35.8 ? 'we created them' : ''}${beat >= 37 ? ' hypr' + (beat >= 38.1 ? 'new' : '') : ''}`; + const longTextWidth = getTextSize(this.ctx, `Responses so hyprblue, we created them hyprnew`, AdDefault) renderText(this.ctx, text, beat >= 34.75 ? '#ffffff' : '#646663', AdDefault, { x: center[0] - longTextWidth.width / 2, y: center[1] }, 'start') break; } |