From 33b4b531bc7a88dcce248bfce18a79064e47023d Mon Sep 17 00:00:00 2001 From: nobkd <44443899+nobkd@users.noreply.github.com> Date: Wed, 12 Feb 2025 17:10:43 +0100 Subject: [PATCH] update contributing, use bun text lockfile --- CONTRIBUTING.md | 12 ++++---- bun.lock | 79 ++++++++++++++++++++++++++++++++++++++++++++++++ bun.lockb | Bin 12056 -> 0 bytes 3 files changed, 85 insertions(+), 6 deletions(-) create mode 100644 bun.lock delete mode 100755 bun.lockb diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d959c143..bc06675d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -25,7 +25,7 @@ When fixing bugs, always include a test case that demonstrates both the issue an ## Feature Proposals -Nue has a clear vision: take modern web standards to their absolute peak. Before implementing any new feature, no matter how small, let's discuss how it aligns with this goal. The framework's power comes from ruthless simplicity - every addition must justify its existence. +Nue has a clear vision: take modern web standards to their absolute peak. Before implementing any new feature, no matter how small, let's discuss how it aligns with this goal. The framework's power comes from ruthless simplicity — every addition must justify its existence. ## Development Philosophy @@ -33,7 +33,7 @@ Nue's development style might surprise those coming from traditional JavaScript While most codebases optimize for type safety, abstraction layers, and "proper engineering practices", Nue pursues radical minimalism. We strive to make each line of code meaningful through its functionality and clarity. The goal is to figure out what's truly needed (and only that) and find out the cleanest way to implement it. -This creates stark contrasts with framework implementations. Consider hot reloading: Nue's implementation is 150 lines of vanilla JavaScript in a single file. At first glance it might look naive - where are the TypeScript interfaces? The dependency injection containers? The state management patterns? But this "naive" implementation consistently outperforms Next.js's equivalent, which spans thousands of lines buried somewhere inside their 2.7MB development bundle. +This creates stark contrasts with framework implementations. Consider hot reloading: Nue's implementation is 150 lines of vanilla JavaScript in a single file. At first glance it might look naive — where are the TypeScript interfaces? The dependency injection containers? The state management patterns? But this "naive" implementation consistently outperforms Next.js's equivalent, which spans thousands of lines buried somewhere inside their 2.7MB development bundle. Or take view transitions: Nue's entire implementation fits in about 250 lines of focused code. A TypeScript purist might cringe at the lack of strict typing and interface definitions. Yet this "simplistic" approach delivers smoother animations and better performance than framework implementations that spread the same functionality across hundreds of files and multiple abstraction layers. @@ -43,10 +43,10 @@ By working directly with web standards rather than building layers of abstractio Maintain the existing minimalist aesthetic: -1. No semicolons - they add visual noise without value +1. No semicolons — they add visual noise without value 2. Single quotes for strings 3. Two-space indentation -4. `==` over `===` - strict equality is rarely necessary +4. `==` over `===` — strict equality is rarely necessary Nue avoids Prettier/ESLint as they would add 40MB of complexity. The `.prettierrc.yaml` provides sufficient consistency. @@ -55,12 +55,12 @@ Nue avoids Prettier/ESLint as they would add 40MB of complexity. The `.prettierr ```sh # Bun (recommended) bun install -bun install --no-save esbuild +bun install --no-save esbuild lightningcss bun test # Node npm install -npm install --no-save jest jest-extended esbuild +npm install --no-save esbuild lightningcss jest jest-extended npm test ``` diff --git a/bun.lock b/bun.lock new file mode 100644 index 00000000..866a0519 --- /dev/null +++ b/bun.lock @@ -0,0 +1,79 @@ +{ + "lockfileVersion": 1, + "workspaces": { + "": { + "name": "nue", + }, + "packages/glow": { + "name": "nue-glow", + "version": "0.2.2", + }, + "packages/nuejs": { + "name": "nuejs-core", + "version": "0.5.2", + "dependencies": { + "htmlparser2": "^9.1.0", + }, + }, + "packages/nuejs.org": { + "name": "nuejs.org", + }, + "packages/nuekit": { + "name": "nuekit", + "version": "1.0.0-RC.2", + "bin": { + "nue": "./src/cli.js" + }, + "dependencies": { + "diff-dom": "^5.1.4", + "es-main": "^1.3.0", + "import-meta-resolve": "^4.1.0", + "js-yaml": "^4.1.0", + "nue-glow": "*", + "nuejs-core": "*", + "nuemark": "*", + }, + }, + "packages/nuemark": { + "name": "nuemark", + "version": "0.6.1", + "dependencies": { + "js-yaml": "^4.1.0", + "nue-glow": "*", + }, + }, + }, + "packages": { + "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], + + "diff-dom": ["diff-dom@5.1.4", "", {}, "sha512-TSEaVdVGictY1KHg7VpVw2nuM02YKC9C8/qBkGiCnkiAybVbu1zQTMj2/dnVLRO7Z62UsqzHGpXweiOj5/jaZg=="], + + "dom-serializer": ["dom-serializer@2.0.0", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", "entities": "^4.2.0" } }, "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg=="], + + "domelementtype": ["domelementtype@2.3.0", "", {}, "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="], + + "domhandler": ["domhandler@5.0.3", "", { "dependencies": { "domelementtype": "^2.3.0" } }, "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w=="], + + "domutils": ["domutils@3.2.2", "", { "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3" } }, "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw=="], + + "entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="], + + "es-main": ["es-main@1.3.0", "", {}, "sha512-AzORKdz1Zt97TzbYQnIrI3ZiibWpRXUfpo/w0xOJ20GpNYd2bd3MU9m31zS/aJ1TJl6JfLTok83Y8HjNunYT0A=="], + + "htmlparser2": ["htmlparser2@9.1.0", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", "domutils": "^3.1.0", "entities": "^4.5.0" } }, "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ=="], + + "import-meta-resolve": ["import-meta-resolve@4.1.0", "", {}, "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw=="], + + "js-yaml": ["js-yaml@4.1.0", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA=="], + + "nue-glow": ["nue-glow@workspace:packages/glow"], + + "nuejs-core": ["nuejs-core@workspace:packages/nuejs"], + + "nuejs.org": ["nuejs.org@workspace:packages/nuejs.org"], + + "nuekit": ["nuekit@workspace:packages/nuekit"], + + "nuemark": ["nuemark@workspace:packages/nuemark"], + } +} diff --git a/bun.lockb b/bun.lockb deleted file mode 100755 index a74bbb3e57d9f94ed98b87099c2999b66d3ae253..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12056 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 S-QXVAy=0ZED*6BC_x}L1DHG%X