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.
},
"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 <chris@zoso.dev>\\n//! SPDX-License-Identifier: GPL-3.0-or-later' dist/main.min.js"
},
"devDependencies": {
* 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: [
//! SPDX-FileContributor: Ben Green <ben@latenightsketches.com>
//! 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 {
//! SPDX-License-Identifier: GPL-3.0-or-later
/// <reference types="@webgpu/types" />
-import { NanoPowGpuComputeShader } from '../shaders'
+import { default as NanoPowGpuComputeShader } from './compute.wgsl'
import type { NanoPowOptions } from '../../types.d.ts'
/**
* Nano proof-of-work using WebGPU.
//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
//! 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 {
// 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
}
//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
//! 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
+++ /dev/null
-// SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
-// 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
-}
0000000000000000000000000000000000000000000000000000000000000000
BA1E946BA3D778C2F30A83D44D2132CC6EEF010D8D06FF10A8ABD0100D8FB47E
BF41D87DA3057FDC6050D2B00C06531F89F4AA6195D7C6C2EAAF15B6E703F8F6
-92BA74A7D6DC7557F3EDA95ADC6341D51AC777A0A6FF0688A5C492AB2B2CB40D
+32721F4BD2AFB6F6A08D41CD0DF3C0D9C0B5294F68D0D12422F52B28F0800B5F
--- /dev/null
+SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+SPDX-License-Identifier: GPL-3.0-or-later
<script type="module">
let NanoPow, NanoPowGl, NanoPowGpu
try {
- ({ NanoPow, NanoPowGl, NanoPowGpu } = await import('./dist/main.min.js'))
+ ({ NanoPow, NanoPowGl, NanoPowGpu } = await import('../dist/main.min.js'))
} catch (err) {
console.warn(err)
try {
console.log(`validate() output for bad max threshold nonce is ${result === false ? 'correct' : 'incorrect'}`)
expect.push(result === false)
- result = await NP.validate('47c83266398728ce', '92BA74A7D6DC7557F3EDA95ADC6341D51AC777A0A6FF0688A5C492AB2B2CB40D', { debug: isDebug })
+ result = await NP.validate('29a9ae0236990e2e', '32721F4BD2AFB6F6A08D41CD0DF3C0D9C0B5294F68D0D12422F52B28F0800B5F', { debug: isDebug })
console.log(`validate() output for slightly wrong nonce is ${result === false ? 'correct' : 'incorrect'}`)
expect.push(result === false)
},
"include": [
"src/main.ts",
- "src/*",
- "src/**/*"
+ "src/lib/*",
+ "src/lib/**/*"
]
}