From 696d328afbd6f065c3cbf13ea51dd2bf15855a79 Mon Sep 17 00:00:00 2001 From: Chris Duncan Date: Sat, 15 Mar 2025 23:22:33 -0700 Subject: [PATCH] Reorganize source directory structure. Put documentation and test files into top-level folders. Divide PoW modules by API instead of by file type. Update file paths accordingly. Replace a duplicate sample blockhash. --- benchmarks.md => docs/benchmarks.md | 0 nano-pow.1 => docs/nano-pow.1 | 0 package.json | 9 +++++---- cli.js => src/bin/cli.js | 2 +- src/{shaders => lib/gl}/gl-downsample.ts | 0 src/{shaders => lib/gl}/gl-draw.ts | 0 src/{shaders => lib/gl}/gl-vertex.ts | 0 src/{classes/gl.ts => lib/gl/index.ts} | 4 +++- src/{shaders => lib/gpu}/compute.wgsl | 0 src/{classes/gpu.ts => lib/gpu/index.ts} | 2 +- src/{classes => lib}/index.ts | 4 ++-- src/{shaders => lib}/shaders.d.ts | 16 ++++++++-------- src/main.ts | 2 +- src/shaders/index.ts | 14 -------------- types.d.ts => src/types.d.ts | 0 test-blockhashes => test/blockhashes.txt | 2 +- test/blockhashes.txt.license | 2 ++ test.html => test/index.html | 4 ++-- tsconfig.json | 4 ++-- 19 files changed, 28 insertions(+), 37 deletions(-) rename benchmarks.md => docs/benchmarks.md (100%) rename nano-pow.1 => docs/nano-pow.1 (100%) rename cli.js => src/bin/cli.js (98%) rename src/{shaders => lib/gl}/gl-downsample.ts (100%) rename src/{shaders => lib/gl}/gl-draw.ts (100%) rename src/{shaders => lib/gl}/gl-vertex.ts (100%) rename src/{classes/gl.ts => lib/gl/index.ts} (99%) rename src/{shaders => lib/gpu}/compute.wgsl (100%) rename src/{classes/gpu.ts => lib/gpu/index.ts} (99%) rename src/{classes => lib}/index.ts (89%) rename src/{shaders => lib}/shaders.d.ts (55%) delete mode 100644 src/shaders/index.ts rename types.d.ts => src/types.d.ts (100%) rename test-blockhashes => test/blockhashes.txt (87%) create mode 100644 test/blockhashes.txt.license rename test.html => test/index.html (97%) diff --git a/benchmarks.md b/docs/benchmarks.md similarity index 100% rename from benchmarks.md rename to docs/benchmarks.md diff --git a/nano-pow.1 b/docs/nano-pow.1 similarity index 100% rename from nano-pow.1 rename to docs/nano-pow.1 diff --git a/package.json b/package.json index ea0c79b..fcab112 100644 --- a/package.json +++ b/package.json @@ -27,22 +27,23 @@ }, "files": [ "/dist", + "/docs", "/LICENSES", "AUTHORS.md", "package.json.license" ], - "main": "dist/main.min.js", + "main": "./dist/main.min.js", "browser": { "./dist/main.min.js": true }, - "bin": "./dist/cli.js", - "man": "./dist/nano-pow.1", + "bin": "./dist/bin/cli.js", + "man": "./docs/nano-pow.1", "repository": { "type": "git", "url": "git+https://zoso.dev/nano-pow.git" }, "scripts": { - "build": "rm -rf {dist,types} && tsc && node esbuild.mjs && npm run fix-copyright && cp cli.js nano-pow.1 types.d.ts dist", + "build": "rm -rf {dist,types} && tsc && node esbuild.mjs && npm run fix-copyright && cp -r src/bin src/types.d.ts dist", "fix-copyright": "sed -i '/\\/\\/ src\\/shaders\\/compute\\.wgsl/a //! SPDX-FileCopyrightText: 2025 Chris Duncan \\n//! SPDX-License-Identifier: GPL-3.0-or-later' dist/main.min.js" }, "devDependencies": { diff --git a/cli.js b/src/bin/cli.js similarity index 98% rename from cli.js rename to src/bin/cli.js index f3dd9b7..4f9b834 100755 --- a/cli.js +++ b/src/bin/cli.js @@ -111,7 +111,7 @@ if (hashes.length === 0) { * Main */ (async () => { - const NanoPow = await fs.readFile(`${import.meta.dirname}/main.min.js`, 'utf-8') + const NanoPow = await fs.readFile(new URL('../main.min.js', import.meta.url), 'utf-8') const browser = await puppeteer.launch({ headless: true, args: [ diff --git a/src/shaders/gl-downsample.ts b/src/lib/gl/gl-downsample.ts similarity index 100% rename from src/shaders/gl-downsample.ts rename to src/lib/gl/gl-downsample.ts diff --git a/src/shaders/gl-draw.ts b/src/lib/gl/gl-draw.ts similarity index 100% rename from src/shaders/gl-draw.ts rename to src/lib/gl/gl-draw.ts diff --git a/src/shaders/gl-vertex.ts b/src/lib/gl/gl-vertex.ts similarity index 100% rename from src/shaders/gl-vertex.ts rename to src/lib/gl/gl-vertex.ts diff --git a/src/classes/gl.ts b/src/lib/gl/index.ts similarity index 99% rename from src/classes/gl.ts rename to src/lib/gl/index.ts index 141add7..91d5e66 100644 --- a/src/classes/gl.ts +++ b/src/lib/gl/index.ts @@ -2,7 +2,9 @@ //! SPDX-FileContributor: Ben Green //! SPDX-License-Identifier: GPL-3.0-or-later AND MIT -import { NanoPowGlDownsampleShader, NanoPowGlDrawShader, NanoPowGlVertexShader } from '../shaders' +import { NanoPowGlDownsampleShader } from './gl-downsample.js' +import { NanoPowGlDrawShader } from './gl-draw.js' +import { NanoPowGlVertexShader } from './gl-vertex.js' import type { FBO, NanoPowOptions } from '../../types.d.ts' export class NanoPowGl { diff --git a/src/shaders/compute.wgsl b/src/lib/gpu/compute.wgsl similarity index 100% rename from src/shaders/compute.wgsl rename to src/lib/gpu/compute.wgsl diff --git a/src/classes/gpu.ts b/src/lib/gpu/index.ts similarity index 99% rename from src/classes/gpu.ts rename to src/lib/gpu/index.ts index a23b900..6f9759b 100644 --- a/src/classes/gpu.ts +++ b/src/lib/gpu/index.ts @@ -2,7 +2,7 @@ //! SPDX-License-Identifier: GPL-3.0-or-later /// -import { NanoPowGpuComputeShader } from '../shaders' +import { default as NanoPowGpuComputeShader } from './compute.wgsl' import type { NanoPowOptions } from '../../types.d.ts' /** * Nano proof-of-work using WebGPU. diff --git a/src/classes/index.ts b/src/lib/index.ts similarity index 89% rename from src/classes/index.ts rename to src/lib/index.ts index 5338fd9..b674851 100644 --- a/src/classes/index.ts +++ b/src/lib/index.ts @@ -1,8 +1,8 @@ //! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-License-Identifier: GPL-3.0-or-later -import { NanoPowGl } from "./gl.js" -import { NanoPowGpu } from "./gpu.js" +import { NanoPowGl } from "./gl" +import { NanoPowGpu } from "./gpu" let isGlSupported, isGpuSupported = false try { diff --git a/src/shaders/shaders.d.ts b/src/lib/shaders.d.ts similarity index 55% rename from src/shaders/shaders.d.ts rename to src/lib/shaders.d.ts index 8d06c90..2897eab 100644 --- a/src/shaders/shaders.d.ts +++ b/src/lib/shaders.d.ts @@ -2,21 +2,21 @@ // SPDX-License-Identifier: GPL-3.0-or-later declare module '*.frag' { - const value: string - export default value + const value: string + export default value } declare module '*.glsl' { - const value: string - export default value + const value: string + export default value } declare module '*.vert' { - const value: string - export default value + const value: string + export default value } declare module '*.wgsl' { - const value: string - export default value + const value: string + export default value } diff --git a/src/main.ts b/src/main.ts index 17aea31..0b9e45c 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,6 +1,6 @@ //! SPDX-FileCopyrightText: 2025 Chris Duncan //! SPDX-License-Identifier: GPL-3.0-or-later -import { NanoPow, NanoPowGl, NanoPowGpu } from "./classes" +import { NanoPow, NanoPowGl, NanoPowGpu } from "./lib" export { NanoPow, NanoPowGl, NanoPowGpu } export default NanoPow diff --git a/src/shaders/index.ts b/src/shaders/index.ts deleted file mode 100644 index 81042f5..0000000 --- a/src/shaders/index.ts +++ /dev/null @@ -1,14 +0,0 @@ -// SPDX-FileCopyrightText: 2025 Chris Duncan -// SPDX-License-Identifier: GPL-3.0-or-later - -import { default as NanoPowGpuComputeShader } from "./compute.wgsl" -import { NanoPowGlDownsampleShader } from "./gl-downsample.js" -import { NanoPowGlDrawShader } from "./gl-draw.js" -import { NanoPowGlVertexShader } from "./gl-vertex.js" - -export { - NanoPowGpuComputeShader, - NanoPowGlDownsampleShader, - NanoPowGlDrawShader, - NanoPowGlVertexShader -} diff --git a/types.d.ts b/src/types.d.ts similarity index 100% rename from types.d.ts rename to src/types.d.ts diff --git a/test-blockhashes b/test/blockhashes.txt similarity index 87% rename from test-blockhashes rename to test/blockhashes.txt index eaee0bc..55ad255 100644 --- a/test-blockhashes +++ b/test/blockhashes.txt @@ -5,4 +5,4 @@ 0000000000000000000000000000000000000000000000000000000000000000 BA1E946BA3D778C2F30A83D44D2132CC6EEF010D8D06FF10A8ABD0100D8FB47E BF41D87DA3057FDC6050D2B00C06531F89F4AA6195D7C6C2EAAF15B6E703F8F6 -92BA74A7D6DC7557F3EDA95ADC6341D51AC777A0A6FF0688A5C492AB2B2CB40D +32721F4BD2AFB6F6A08D41CD0DF3C0D9C0B5294F68D0D12422F52B28F0800B5F diff --git a/test/blockhashes.txt.license b/test/blockhashes.txt.license new file mode 100644 index 0000000..7f56691 --- /dev/null +++ b/test/blockhashes.txt.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: 2025 Chris Duncan +SPDX-License-Identifier: GPL-3.0-or-later diff --git a/test.html b/test/index.html similarity index 97% rename from test.html rename to test/index.html index 718aad9..a78e58b 100644 --- a/test.html +++ b/test/index.html @@ -10,7 +10,7 @@ SPDX-License-Identifier: GPL-3.0-or-later