diff options
author | Zhongheng Liu <z.liu@outlook.com.gr> | 2025-01-29 22:21:48 +0200 |
---|---|---|
committer | Zhongheng Liu <z.liu@outlook.com.gr> | 2025-01-29 22:21:48 +0200 |
commit | 3eb9b9225c58f46c43c99e9abc5d903dd55d708b (patch) | |
tree | 2ea50a4e67d4c808f1ed262c4ce363733676b95a | |
parent | 2307c112d788fe698e426dff8921d0e7d74bb47c (diff) | |
download | stvnliu.gitlab.io-3eb9b9225c58f46c43c99e9abc5d903dd55d708b.tar.gz stvnliu.gitlab.io-3eb9b9225c58f46c43c99e9abc5d903dd55d708b.tar.bz2 stvnliu.gitlab.io-3eb9b9225c58f46c43c99e9abc5d903dd55d708b.zip |
Revert "feat: merge 3d of old site"
This reverts commit e23e642996e00d8138ce9035693b59c282babf69.
-rw-r--r-- | .envrc | 4 | ||||
-rw-r--r-- | .gitignore | 9 | ||||
-rw-r--r-- | app/package-lock.json | 67 | ||||
-rw-r--r-- | app/package.json | 4 | ||||
-rw-r--r-- | app/public/assets/resume.pdf | bin | 215517 -> 143718 bytes | |||
-rw-r--r-- | app/src/App.css | 72 | ||||
-rw-r--r-- | app/src/App.test.tsx | 9 | ||||
-rw-r--r-- | app/src/App.tsx | 230 | ||||
-rw-r--r-- | app/src/Topbar/Topbar.tsx | 30 | ||||
-rw-r--r-- | app/src/index.tsx | 7 | ||||
-rw-r--r-- | app/src/texturemap.jpeg | bin | 19208 -> 0 bytes | |||
-rw-r--r-- | devenv.lock | 28 |
12 files changed, 100 insertions, 360 deletions
@@ -1,3 +1,3 @@ -source_url "https://raw.githubusercontent.com/cachix/devenv/82c0147677e510b247d8b9165c54f73d32dfd899/direnvrc" "sha256-7u4iDd1nZpxL4tCzmPG0dQgC5V+/44Ba+tHkPob1v2k=" +source_url "https://raw.githubusercontent.com/cachix/devenv/95f329d49a8a5289d31e0982652f7058a189bfca/direnvrc" "sha256-d+8cBpDfDBj41inrADaJt+bDWhOktwslgoP5YiGJ1v0=" -use devenv +use devenv
\ No newline at end of file @@ -7,12 +7,3 @@ devenv.local.nix # pre-commit .pre-commit-config.yaml -# Devenv -.devenv* -devenv.local.nix - -# direnv -.direnv - -# pre-commit -.pre-commit-config.yaml diff --git a/app/package-lock.json b/app/package-lock.json index 3d47e73..d05e337 100644 --- a/app/package-lock.json +++ b/app/package-lock.json @@ -19,12 +19,8 @@ "react": "^18.3.1", "react-dom": "^18.3.1", "react-scripts": "5.0.1", - "three": "^0.172.0", "typescript": "^4.9.5", "web-vitals": "^2.1.4" - }, - "devDependencies": { - "@types/three": "^0.172.0" } }, "node_modules/@adobe/css-tools": { @@ -3938,13 +3934,6 @@ "node": ">=10.13.0" } }, - "node_modules/@tweenjs/tween.js": { - "version": "23.1.3", - "resolved": "https://registry.npmjs.org/@tweenjs/tween.js/-/tween.js-23.1.3.tgz", - "integrity": "sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/aria-query": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", @@ -4255,13 +4244,6 @@ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==" }, - "node_modules/@types/stats.js": { - "version": "0.17.3", - "resolved": "https://registry.npmjs.org/@types/stats.js/-/stats.js-0.17.3.tgz", - "integrity": "sha512-pXNfAD3KHOdif9EQXZ9deK82HVNaXP5ZIF5RP2QG6OQFNTaY2YIetfrE9t528vEreGQvEPRDDc8muaoYeK0SxQ==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/testing-library__jest-dom": { "version": "5.14.9", "resolved": "https://registry.npmjs.org/@types/testing-library__jest-dom/-/testing-library__jest-dom-5.14.9.tgz", @@ -4270,33 +4252,11 @@ "@types/jest": "*" } }, - "node_modules/@types/three": { - "version": "0.172.0", - "resolved": "https://registry.npmjs.org/@types/three/-/three-0.172.0.tgz", - "integrity": "sha512-LrUtP3FEG26Zg5WiF0nbg8VoXiKokBLTcqM2iLvM9vzcfEiYmmBAPGdBgV0OYx9fvWlY3R/3ERTZcD9X5sc0NA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@tweenjs/tween.js": "~23.1.3", - "@types/stats.js": "*", - "@types/webxr": "*", - "@webgpu/types": "*", - "fflate": "~0.8.2", - "meshoptimizer": "~0.18.1" - } - }, "node_modules/@types/trusted-types": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==" }, - "node_modules/@types/webxr": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.21.tgz", - "integrity": "sha512-geZIAtLzjGmgY2JUi6VxXdCrTb99A7yP49lxLr2Nm/uIK0PkkxcEi4OGhoGDO4pxCf3JwGz2GiJL2Ej4K2bKaA==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/ws": { "version": "8.5.10", "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", @@ -4672,13 +4632,6 @@ "@xtuc/long": "4.2.2" } }, - "node_modules/@webgpu/types": { - "version": "0.1.53", - "resolved": "https://registry.npmjs.org/@webgpu/types/-/types-0.1.53.tgz", - "integrity": "sha512-x+BLw/opaz9LiVyrMsP75nO1Rg0QfrACUYIbVSfGwY/w0DiWIPYYrpte6us//KZXinxFAOJl0+C17L1Vi2vmDw==", - "dev": true, - "license": "BSD-3-Clause" - }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -8238,13 +8191,6 @@ "bser": "2.1.1" } }, - "node_modules/fflate": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", - "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", - "dev": true, - "license": "MIT" - }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -12425,13 +12371,6 @@ "node": ">= 8" } }, - "node_modules/meshoptimizer": { - "version": "0.18.1", - "resolved": "https://registry.npmjs.org/meshoptimizer/-/meshoptimizer-0.18.1.tgz", - "integrity": "sha512-ZhoIoL7TNV4s5B6+rx5mC//fw8/POGyNxS/DZyCJeiZ12ScLfVwRE/GfsxwiTkMYYD5DmK2/JXnEVXqL4rF+Sw==", - "dev": true, - "license": "MIT" - }, "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -16749,12 +16688,6 @@ "node": ">=0.8" } }, - "node_modules/three": { - "version": "0.172.0", - "resolved": "https://registry.npmjs.org/three/-/three-0.172.0.tgz", - "integrity": "sha512-6HMgMlzU97MsV7D/tY8Va38b83kz8YJX+BefKjspMNAv0Vx6dxMogHOrnRl/sbMIs3BPUKijPqDqJ/+UwJbIow==", - "license": "MIT" - }, "node_modules/throat": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/throat/-/throat-6.0.2.tgz", diff --git a/app/package.json b/app/package.json index 83f6d5f..5e5e059 100644 --- a/app/package.json +++ b/app/package.json @@ -14,7 +14,6 @@ "react": "^18.3.1", "react-dom": "^18.3.1", "react-scripts": "5.0.1", - "three": "^0.172.0", "typescript": "^4.9.5", "web-vitals": "^2.1.4" }, @@ -41,8 +40,5 @@ "last 1 firefox version", "last 1 safari version" ] - }, - "devDependencies": { - "@types/three": "^0.172.0" } } diff --git a/app/public/assets/resume.pdf b/app/public/assets/resume.pdf Binary files differindex aa30bcb..7ca0108 100644 --- a/app/public/assets/resume.pdf +++ b/app/public/assets/resume.pdf diff --git a/app/src/App.css b/app/src/App.css index 2fe7db2..74b5e05 100644 --- a/app/src/App.css +++ b/app/src/App.css @@ -1,44 +1,38 @@ -body { - overflow-x: hidden; - margin: 0px; - font-family: monospace; - color: white; -} -canvas { - position: fixed; - top: 0; - left: 0; -} -h1 { - font-size: 50px; -} -main { - width: 100vw; - height: 200vw; - z-index: 99; - position: absolute; - justify-content: center; +.App { text-align: center; - pointer-events: none; } -section { - background: #777b7e; - border-radius: 5px; - border-color: white; - border-width: 5px; - min-height: 50vh; - padding: 25px; - margin-top: 25vh; -} -h2 { - font-size: 4vh; -} -p { - font-size: 2vh; + +.App-logo { + height: 40vmin; + pointer-events: none; } -.left { - margin-right: 55%; + +@media (prefers-reduced-motion: no-preference) { + .App-logo { + animation: App-logo-spin infinite 20s linear; + } +} + +.App-header { + background-color: #282c34; + min-height: 100vh; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + font-size: calc(10px + 2vmin); + color: white; } -.right { - margin-left: 55%; + +.App-link { + color: #61dafb; +} + +@keyframes App-logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } } diff --git a/app/src/App.test.tsx b/app/src/App.test.tsx new file mode 100644 index 0000000..2a68616 --- /dev/null +++ b/app/src/App.test.tsx @@ -0,0 +1,9 @@ +import React from 'react'; +import { render, screen } from '@testing-library/react'; +import App from './App'; + +test('renders learn react link', () => { + render(<App />); + const linkElement = screen.getByText(/learn react/i); + expect(linkElement).toBeInTheDocument(); +}); diff --git a/app/src/App.tsx b/app/src/App.tsx index ea68c78..b800706 100644 --- a/app/src/App.tsx +++ b/app/src/App.tsx @@ -1,206 +1,44 @@ -import { ReactElement, useEffect, useRef } from 'react'; -import * as THREE from 'three'; -import logo from "./texturemap.jpeg"; - import './App.css'; -export const ThreeApp = (): ReactElement => { - const refContainer = useRef<HTMLDivElement>(null); - useEffect(() => { - console.log("effect running...") - const scene = new THREE.Scene(); - scene.background = new THREE.Color(0x000000) - scene.backgroundIntensity = 0.2 - const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000); - const renderer = new THREE.WebGLRenderer(); - renderer.setSize(window.innerWidth, window.innerHeight); - window.onresize = () => { - camera.aspect = window.innerWidth / window.innerHeight - camera.updateProjectionMatrix() - renderer.setSize(window.innerWidth, window.innerHeight) - renderer.render(scene, camera) - } - // render objects - const geometry = new THREE.BoxGeometry(2, 2, 2); - const material = new THREE.MeshStandardMaterial({}); - material.map = new THREE.TextureLoader().load(logo) - const cube = new THREE.Mesh(geometry, material); - const ambientLight = new THREE.AmbientLight(0xffffff, 1); - const directionalLight = new THREE.DirectionalLight(0xffffff, 1) - scene.add(directionalLight) - scene.add(ambientLight) - scene.add(cube); - document.body.appendChild(renderer.domElement); - - camera.position.z = 5; - camera.position.y = 2; - camera.lookAt(cube.position) - - // progressive animation through scrolling - function lerp(x: number, y: number, a: number): number { - return (1 - a) * x + a * y - } - function scalePercent(start: number, end: number) { - return (scrollPercent - start) / (end - start) - } - const animationKeyframes: { start: number; end: number; func: () => void }[] = [] - - animationKeyframes.push({ - start: 0, - end: 15, - func: () => { - camera.lookAt(cube.position.x - 5, cube.position.y, cube.position.z - 10) - cube.rotation.x += 0.01 - cube.rotation.y += 0.01 - cube.position.z = lerp(0, 5, scalePercent(0, 15)) - cube.position.x = lerp(10, -10, scalePercent(0, 15)) - - //console.log(cube.position.z) - }, - }) - animationKeyframes.push({ - start: 15, - end: 30, - func: () => { - cube.rotation.x += 0.01 - cube.rotation.y += 0.01 - camera.lookAt(cube.position.x - 5, cube.position.y, cube.position.z - 10) - //console.log(cube.rotation.z) - }, - }) - animationKeyframes.push({ - start: 30, - end: 45, - func: () => { - cube.rotation.x += 0.01 - cube.rotation.y += 0.01 - camera.position.x = lerp(0, 5, scalePercent(30, 45)) - camera.position.z = lerp(5, -5, scalePercent(30, 45)) - camera.lookAt(lerp(cube.position.x - 5, cube.position.x + 10, scalePercent(30, 45)), cube.position.y, lerp(cube.position.z - 10, cube.position.z + 10, scalePercent(30, 45))) - //console.log(camera.position.x + " " + camera.position.y) - }, - }) - animationKeyframes.push({ - start: 45, - end: 60, - func: () => { - cube.rotation.x += 0.01 - cube.rotation.y += 0.01 - camera.lookAt(cube.position.x + 10, cube.position.y, cube.position.z + 10) - //console.log(cube.rotation.z) - }, - }) - animationKeyframes.push({ - start: 60, - end: 70, - func: () => { - //auto rotate - cube.rotation.x += 0.01 - cube.rotation.y += 0.01 - cube.position.x = lerp(-10, 20, scalePercent(60, 70)) - camera.lookAt(lerp(cube.position.x + 10, cube.position.x - 10, scalePercent(60, 70)), cube.position.y, cube.position.z + 10) - }, - }) - animationKeyframes.push({ - start: 70, - end: 80, - func: () => { - cube.rotation.x += 0.01 - cube.rotation.y += 0.01 - camera.lookAt(cube.position.x - 10, cube.position.y, cube.position.z + 10) - }, - }) - animationKeyframes.push({ - start: 80, - end: 101, - func: () => { - cube.rotation.x += 0.01 - cube.rotation.y += 0.01 - cube.position.x = lerp(20, -5, scalePercent(80, 100)) - camera.lookAt(lerp(cube.position.x - 10, cube.position.x + 10, scalePercent(80, 101)), cube.position.y, cube.position.z + 10) - }, - }) - - function playScrollAnimations() { - animationKeyframes.forEach((a) => { - if (scrollPercent >= a.start && scrollPercent < a.end) { - a.func() - } - }) - } - - let scrollPercent = 0 - window.onscroll = () => { - scrollPercent = - ((document.documentElement.scrollTop || document.body.scrollTop) / - ((document.documentElement.scrollHeight || - document.body.scrollHeight) - - document.documentElement.clientHeight)) * - 100; - } - - function animate() { - requestAnimationFrame(animate); - playScrollAnimations() - renderer.render(scene, camera); - } - window.scrollTo({ top: 0, behavior: 'smooth' }) - animate(); - }, []) +function App() { return ( - <main ref={refContainer}> - <h1>Website Under Construction</h1> - <section className='left'> - <h2>Steven Liu</h2> - <p>Web- and Game-developer and GNU/Linux enthusiast.</p> - <button onClick={() => { window.location.assign("https://gitlab.com/stvnliu"); }}>My GitLab page</button> - <button onClick={() => { window.location.assign("/assets/resume.pdf"); }}>Read my CV</button> - </section> - <section className='right'> - <h2>Extended Project Qualification</h2> - + <div className="App"> + <div className="aboutme"> + <h1>Zhongheng Liu</h1> + <p>-- Web developer and GNU/Linux enthusiast.</p> + <button onClick={() => { window.location.assign("/assets/resume.pdf"); }}>Learn more</button> + <button onClick={() => { window.location.assign("https://gitlab.com/stvnliu"); }}>My GitLab</button> + </div> + <div className="projects"> + <h1>My projects</h1> + <p>These are mostly hobbyist programming projects</p> + <hr></hr> + <h3><a href='https://gitlab.com/stvnliu/proteinpedia-next'> + proteinpedia-next + </a> + </h3> + <p>A content management platform for displaying and managing informatio + n of proteins and other chemical</p> + <hr></hr> <h3><a href="/assets/paper.pdf">How can privacy and web inter-connectivity be enshrined as core principles in self-hosted online chat applications? </a></h3> <p>An Edexcel Level 3 Artifact Extended Project Qualification (EPQ) on the topic of web chat applications, awarded an A* grade by Edexcel</p> <p>You may find the relevant GitLab repositories here:</p> - <span> - GitHub repositories for - <a href="https://github.com/stvnliu/epq-web">web</a> and - <a href="https://github.com/stvnliu/epq-api">backend API</a> - </span><br /> - <span> - GitLab repository for - <a href="https://gitlab.com/stvnliu/epq-web">web</a> and - <a href="https://gitlab.com/stvnliu/epq-api">backend API</a> - </span> - <hr /> - - </section> - - <section className='left'> - <h2><a href='https://gitlab.com/stvnliu/proteinpedia-next'> - Proteinpedia - </a> - </h2> - <p>A content management platform for displaying and managing informatio - n of proteins and other chemical</p> - <hr></hr> - </section> - - <section className='right'> - <h2>Changing Camera Position</h2> - <p>The camera position is now changing</p> - </section> - - <section className='left'> - <h2>You are at the bottom</h2> - <p>The cube will now be auto rotating</p> - <p> - Now you can scroll back to the top to reverse the animation - </p> - </section> - </main> - ) + <span> + GitHub repositories for + <a href="https://github.com/stvnliu/epq-web">web</a> and + <a href="https://github.com/stvnliu/epq-api">backend API</a> + </span><br /> + <span> + GitLab repository for + <a href="https://gitlab.com/stvnliu/epq-web">web</a> and + <a href="https://gitlab.com/stvnliu/epq-api">backend API</a> + </span> + </div> + </div> + ); } + +export default App; diff --git a/app/src/Topbar/Topbar.tsx b/app/src/Topbar/Topbar.tsx deleted file mode 100644 index 14ef0ec..0000000 --- a/app/src/Topbar/Topbar.tsx +++ /dev/null @@ -1,30 +0,0 @@ -export const Topbar = (): React.ReactElement => { - return (<nav className="navbar navbar-expand-sm navbar-light bg-light"> - <a className="navbar-brand" href="#">Navbar</a> - <button className="navbar-toggler d-lg-none" type="button" data-toggle="collapse" data-target="#collapsibleNavId" aria-controls="collapsibleNavId" - aria-expanded="false" aria-label="Toggle navigation"> - <span className="navbar-toggler-icon"></span> - </button> - <div className="collapse navbar-collapse" id="collapsibleNavId"> - <ul className="navbar-nav mr-auto mt-2 mt-lg-0"> - <li className="nav-item active"> - <a className="nav-link" href="#">Home <span className="sr-only">(current)</span></a> - </li> - <li className="nav-item"> - <a className="nav-link" href="#">Link</a> - </li> - <li className="nav-item dropdown"> - <a className="nav-link dropdown-toggle" href="#" id="dropdownId" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dropdown</a> - <div className="dropdown-menu" aria-labelledby="dropdownId"> - <a className="dropdown-item" href="#">Action 1</a> - <a className="dropdown-item" href="#">Action 2</a> - </div> - </li> - </ul> - <form className="form-inline my-2 my-lg-0"> - <input className="form-control mr-sm-2" type="text" placeholder="Search" /> - <button className="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button> - </form> - </div> - </nav>) -};
\ No newline at end of file diff --git a/app/src/index.tsx b/app/src/index.tsx index 6a6998b..032464f 100644 --- a/app/src/index.tsx +++ b/app/src/index.tsx @@ -1,13 +1,16 @@ import React from 'react'; import ReactDOM from 'react-dom/client'; +import './index.css'; +import App from './App'; import reportWebVitals from './reportWebVitals'; -import { ThreeApp } from './App'; const root = ReactDOM.createRoot( document.getElementById('root') as HTMLElement ); root.render( - <ThreeApp /> + <React.StrictMode> + <App /> + </React.StrictMode> ); // If you want to start measuring performance in your app, pass a function diff --git a/app/src/texturemap.jpeg b/app/src/texturemap.jpeg Binary files differdeleted file mode 100644 index c9e65e0..0000000 --- a/app/src/texturemap.jpeg +++ /dev/null diff --git a/devenv.lock b/devenv.lock index 9dd1ef2..47223a6 100644 --- a/devenv.lock +++ b/devenv.lock @@ -3,10 +3,11 @@ "devenv": { "locked": { "dir": "src/modules", - "lastModified": 1733788855, + "lastModified": 1717245169, "owner": "cachix", "repo": "devenv", - "rev": "d59fee8696cd48f69cf79f65992269df9891ba86", + "rev": "c3f9f053c077c6f88a3de5276d9178c62baa3fc3", + "treeHash": "ffc7c20cef5242169763c872296f00a8a8b5416d", "type": "github" }, "original": { @@ -19,10 +20,11 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1733328505, + "lastModified": 1696426674, "owner": "edolstra", "repo": "flake-compat", - "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "treeHash": "2addb7b71a20a25ea74feeaf5c2f6a6b30898ecb", "type": "github" }, "original": { @@ -43,6 +45,7 @@ "owner": "hercules-ci", "repo": "gitignore.nix", "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "treeHash": "ca14199cabdfe1a06a7b1654c76ed49100a689f9", "type": "github" }, "original": { @@ -53,10 +56,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1733477122, + "lastModified": 1716977621, "owner": "cachix", "repo": "devenv-nixpkgs", - "rev": "7bd9e84d0452f6d2e63b6e6da29fe73fac951857", + "rev": "4267e705586473d3e5c8d50299e71503f16a6fb6", + "treeHash": "6d9f1f7ca0faf1bc2eeb397c78a49623260d3412", "type": "github" }, "original": { @@ -68,15 +72,16 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1734017764, + "lastModified": 1716991068, "owner": "NixOS", "repo": "nixpkgs", - "rev": "64e9404f308e0f0a0d8cdd7c358f74e34802494b", + "rev": "25cf937a30bf0801447f6bf544fc7486c6309234", + "treeHash": "67d550c2b5e96c6c1e2b317c54a37b4ca5fef106", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-24.05", + "ref": "nixos-23.11", "repo": "nixpkgs", "type": "github" } @@ -91,10 +96,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1734279981, + "lastModified": 1716213921, "owner": "cachix", "repo": "pre-commit-hooks.nix", - "rev": "aa9f40c906904ebd83da78e7f328cd8aeaeae785", + "rev": "0e8fcc54b842ad8428c9e705cb5994eaf05c26a0", + "treeHash": "17b9f9f9983467bcff247b09761dca9831d3d3be", "type": "github" }, "original": { |