format: 'esm',
outdir: 'dist',
loader: {
+ '.d.ts': 'copy',
'.wasm': 'binary'
},
legalComments: 'inline',
platform: 'browser',
target: 'es2022',
entryPoints: [
- './src/index.ts'
+ './src/index.ts',
+ './src/utils/index.ts'
]
}
...sharedOptions,
platform: 'node',
target: 'node22',
+ bundle: false,
outdir: 'dist/bin',
entryPoints: [
'./src/bin/cli.ts',
".": {
"types": "./dist/index.d.ts",
"default": "./dist/index.js"
+ },
+ "./utils": {
+ "types": "./dist/utils/index.d.ts",
+ "default": "./dist/utils/index.js"
}
},
"types": "./dist/index.d.ts"
//! SPDX-License-Identifier: GPL-3.0-or-later
import { WorkErrorResponse, WorkGenerateResponse, WorkValidateResponse } from '#types'
-import { isHex32, isHex8, Logger, stats } from '#utils'
+import { isHex32, isHex8, Logger, stats } from 'nano-pow/utils'
import { Serializable, spawn } from 'node:child_process'
import { getRandomValues } from 'node:crypto'
import { createInterface } from 'node:readline/promises'
//! SPDX-License-Identifier: GPL-3.0-or-later
import { WorkErrorResponse, WorkGenerateResponse, WorkValidateResponse } from '#types'
-import { isHex32, isHex8, Logger } from '#utils'
+import { isHex32, isHex8, Logger } from 'nano-pow/utils'
import { Serializable } from 'node:child_process'
import { hash } from 'node:crypto'
import { readFile, writeFile } from 'node:fs/promises'
* @param {number} [options.effort=0x4] - GPU load when generating work. Larger values are not necessarily better since they can quickly overwhelm the GPU. Default: 0x4
* @param {bigint} [options.difficulty=0xfffffff800000000] - Minimum value result of `BLAKE2b(nonce||blockhash)`. Default: 0xFFFFFFF800000000
*/
-export async function work_generate (hash: bigint | string, options: NanoPowOptions): Promise<WorkGenerateResponse | WorkErrorResponse> {
+async function work_generate (hash: bigint | string, options: NanoPowOptions): Promise<WorkGenerateResponse | WorkErrorResponse> {
return generate(hash, options)
}
* @param {boolean} [options.debug=false] - Enables additional debug logging to the console. Default: false
* @param {bigint} [options.difficulty=0xfffffff800000000] - Minimum value result of `BLAKE2b(nonce||blockhash)`. Default: 0xFFFFFFF800000000
*/
-export async function work_validate (work: bigint | string, hash: bigint | string, options: NanoPowOptions): Promise<WorkValidateResponse | WorkErrorResponse> {
+async function work_validate (work: bigint | string, hash: bigint | string, options: NanoPowOptions): Promise<WorkValidateResponse | WorkErrorResponse> {
return validate(work, hash, options)
}
-export const NanoPow = { work_generate, work_validate }
+const NanoPow = { work_generate, work_validate }
-export default NanoPow
-
-export { clearCache, stats } from '#utils'
+export { NanoPow as default, NanoPow, work_generate, work_validate }
try {
let NanoPow, stats
try {
- ({ NanoPow, stats } = await import('../dist/main.min.js'))
+ ({ NanoPow } = await import('../dist/index.js'))
} catch (err) {
console.warn(err)
try {
- ({ NanoPow, stats } = await import('https://unpkg.com/nano-pow@5.1/dist/main.min.js'))
+ ({ NanoPow, stats } = await import('https://unpkg.com/nano-pow@5.1/dist/index.js'))
} catch (err) {
console.warn(err)
try {
- ({ NanoPow, stats } = await import('https://cdn.jsdelivr.net/npm/nano-pow@5.1/dist/main.min.js'))
+ ({ NanoPow, stats } = await import('https://cdn.jsdelivr.net/npm/nano-pow@5.1/dist/index.js'))
+ } catch (err) {
+ throw new Error(`Failed to load NanoPow ${err}`)
+ }
+ }
+ }
+
+ try {
+ ({ stats } = await import('../dist/utils/index.js'))
+ } catch (err) {
+ console.warn(err)
+ try {
+ ({ NanoPow, stats } = await import('https://unpkg.com/nano-pow@5.1/dist/utils/index.js'))
+ } catch (err) {
+ console.warn(err)
+ try {
+ ({ NanoPow, stats } = await import('https://cdn.jsdelivr.net/npm/nano-pow@5.1/dist/utils/index.js'))
} catch (err) {
throw new Error(`Failed to load NanoPow ${err}`)
}
"moduleResolution": "bundler",
"declaration": true,
"emitDeclarationOnly": true,
- "declarationDir": "./types",
+ "declarationDir": "./dist",
"alwaysStrict": true,
"downlevelIteration": false,
"esModuleInterop": true,
"./src/lib/*"
],
"#types": [
- "./src/types.d.ts"
+ "./src/index.d.ts"
],
"#utils": [
"./src/utils/index.ts"