-# SPDX-FileCopyrightText: 2024 Chris Duncan <chris@zoso.dev>\r
+# SPDX-FileCopyrightText: 2024 Chris Duncan <chris@codecow.com>\r
# SPDX-License-Identifier: GPL-3.0-or-later\r
\r
# Logs\r
<!--
-SPDX-FileCopyrightText: 2022 Miro Metsänheimo <miro@metsanheimo.fi>
-SPDX-License-Identifier: MIT
--->
-<!--
-SPDX-FileCopyrightText: 2024 Chris Duncan <chris@zoso.dev>
+SPDX-FileCopyrightText: 2024 Chris Duncan <chris@codecow.com>
SPDX-License-Identifier: GPL-3.0-or-later
-->
-Miro Metsänheimo <miro@metsanheimo.fi>
-Ben Green <ben@latenightsketches.com> (numtel.github.io)
-Chris Duncan <chris@zoso.dev> (zoso.dev)
+# Authors
+
+[libnemo](https://codecow.com/libnemo.git)
+
+- Chris Duncan <chris@codecow.com> (codecow.com)
+
+---
+
+[nanocurrency-web](https://github.com/numsu/nanocurrency-web-js)
+
+- Miro Metsänheimo <miro@metsanheimo.fi>
+
+---
+
+[nano-webgl-pow](https://github.com/numtel/nano-webgl-pow)
+
+- Ben Green <ben@latenightsketches.com> (numtel.github.io)
<!--
-SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
SPDX-License-Identifier: GPL-3.0-or-later
-->
Improve performance by eliminating some object property lookups.
-
-
## v0.10.3
### Notable Changes
Updated dependencies.
-
-
## v0.10.2
### Notable Changes
myWallet.addEventListener('unlocked', () => { // no other event data... })
```
-
-
## v0.10.1
### Notable Changes
Updated dependencies.
-
-
## v0.10.0
### Notable Changes
Updated tests.
-
-
## v0.9.0
### Notable Changes
Fixed test not cleaning up wallet workers properly.
-
-
## v0.8.1
### Notable Changes
Fix restored wallets with undefined type.
-
-
## v0.8.0
### Notable Changes
Some new tests have been added and some existing ones fixed.
-
-
## v0.7.1
### Notable Changes
Fix restored wallets with undefined type.
-
-
## v0.7.0
### Notable Changes
README and package description updated.
-
-
## v0.6.1
### Notable Changes
Fix restored wallets with undefined type.
-
-
## v0.6.0
### Notable Changes
name mangling and minification while bundling. This also enables other
frameworks like Angular to bundle `libnemo` without further breakage.
-
-
## v0.5.4
### Notable Changes
Fix restored wallets with undefined type.
-
-
## v0.5.3
### Notable Changes
Fix type comparison to undefined when restoring Wallets from database.
-
-
## v0.5.2
### Notable Changes
Remove async-await from new Vault functionality in favor of Promise chaining
(see [v0.4.0](#v040) for details).
-
-
## v0.5.1
### Notable Changes
Fix type definitions for unit denomination `convert()` function overloads.
-
-
## v0.5.0
### Notable Changes
Tests added or updated to accomodate new features.
-
-
## v0.4.3
### Notable Changes
Fix restored wallets with undefined type.
-
-
## v0.4.2
### Notable Changes
Fix type comparison to undefined when restoring Wallets from database.
-
-
## v0.4.1
### Notable Changes
properties and initialize the worker with `new` instead of an `init()` method
which allows it to privatize its properties again.
-
-
## v0.4.0
### Notable Changes
Fixed some erroneous JSdoc comment documentation.
-
-
## v0.3.3
### Notable Changes
Fix restored wallets with undefined type.
-
-
## v0.3.2
### Notable Changes
Fix type comparison to undefined when restoring Wallets from database.
-
-
## v0.3.1
### Notable Changes
Adjust how Vault is stringified and loaded into web worker.
-
-
## v0.3.0
### Notable Changes
and block signing can all be done with the same methods for a 'Ledger'-type
wallet is `libnemo` as its 'BIP-44' and 'BLAKE2b' counterparts.
-
-
## v0.2.1
### Notable Changes
Fixes issue with wallet Safe blocking `update` requests.
-
-
## v0.2.0
### Notable Changes
Pretty much every other component has been refactored or improved to accomodate the new
wallet system.
-
-
## v0.1.0
### Notable Changes
<!--
-SPDX-FileCopyrightText: 2024 Chris Duncan <chris@zoso.dev>
+SPDX-FileCopyrightText: 2024 Chris Duncan <chris@codecow.com>
SPDX-License-Identifier: GPL-3.0-or-later
-->
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
import { browserVaultWorker, nodeVaultWorker } from './vault.mjs'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
import { build } from 'esbuild'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
import buffer from 'buffer/index.js'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
import 'fake-indexeddb/auto'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
import { build } from 'esbuild'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
import { build } from 'esbuild'
<!--
-SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
SPDX-License-Identifier: GPL-3.0-or-later
-->
-SPDX-FileCopyrightText: 2024 Chris Duncan <chris@zoso.dev>
+SPDX-FileCopyrightText: 2024 Chris Duncan <chris@codecow.com>
SPDX-License-Identifier: GPL-3.0-or-later
"decrypt",
"keys"
],
- "homepage": "https://zoso.dev",
- "bugs": "bug-libnemo@zoso.dev",
+ "homepage": "https://codecow.com",
+ "bugs": "bug-libnemo@codecow.com",
"license": "(GPL-3.0-or-later AND MIT AND ISC)",
- "author": "Chris Duncan <chris@zoso.dev>",
+ "author": "Chris Duncan <chris@codecow.com>",
"funding": {
"type": "nano",
"url": "nano:nano_1zosoqs47yt47bnfg7sdf46kj7asn58b7uzm9ek95jw7ccatq37898u1zoso"
},
"repository": {
"type": "git",
- "url": "git+https://zoso.dev/libnemo.git"
+ "url": "git+https://codecow.com/libnemo.git"
},
"scripts": {
"clean": "rm -rf dist types && tsc",
-SPDX-FileCopyrightText: 2024 Chris Duncan <chris@zoso.dev>
+SPDX-FileCopyrightText: 2024 Chris Duncan <chris@codecow.com>
SPDX-License-Identifier: GPL-3.0-or-later
-# SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+# SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
# SPDX-License-Identifier: GPL-3.0-or-later
# Save this file as `.env` and replace the following with real values
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
'use strict'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
import { ACCOUNT_KEY_HEX_LENGTH, ALPHABET, PREFIX, PREFIX_LEGACY } from "../constants"
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>\r
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>\r
//! SPDX-License-Identifier: GPL-3.0-or-later\r
\r
import * as nano25519 from 'nano25519'\r
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
+import { Account } from '.'
import { Block } from '../block'
import { Rpc } from '../rpc'
-import { Account } from '.'
export async function _refresh (account: Account, rpc: Rpc | string | URL): Promise<void>
export async function _refresh (account: Account, rpc: unknown): Promise<void> {
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
import { ALPHABET, PREFIX, PREFIX_LEGACY } from "../constants"
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
import { NanoPow } from 'nano-pow'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
export const ACCOUNT_KEY_BYTE_LENGTH = 32
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>\r
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>\r
//! SPDX-License-Identifier: GPL-3.0-or-later\r
\r
import { ALPHABET } from './constants'\r
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>\r
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>\r
//! SPDX-License-Identifier: GPL-3.0-or-later\r
\r
/**\r
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
import { Secp256k1 } from '.'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later AND ISC
/**
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
import { Bip39 } from './bip39'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>\r
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>\r
//! SPDX-License-Identifier: GPL-3.0-or-later\r
\r
import { Blake2b } from '.'\r
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
export class WalletAesGcm {
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
export type Data = boolean | number | number[] | string | string[] | ArrayBuffer | CryptoKey
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
import { default as TransportBLE } from '@ledgerhq/hw-transport-web-ble'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
import { Account } from './account'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
/**
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
import * as nano25519 from 'nano25519'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
import { Worker as NodeWorker } from 'node:worker_threads'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
export class Passkey {
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
export class VaultTimer {
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
import * as nano25519 from 'nano25519'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
+import { WalletType } from '.'
import { Account } from '../account'
import { Ledger } from '../ledger'
import { Vault } from '../vault'
-import { WalletType } from '.'
export async function _accounts (type: WalletType, accounts: Map<number, Account>, vault: Vault, index: number): Promise<Account>
export async function _accounts (type: WalletType, accounts: Map<number, Account>, vault: Vault, from: number, to: number): Promise<Map<number, Account>>
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
import { Database } from '../database'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
+import { WalletType } from '.'
import { Ledger } from '../ledger'
import { Vault } from '../vault'
-import { WalletType } from '.'
export async function _config (type: WalletType, vault: Vault, settings: { connection: 'hid' | 'ble' | 'usb' } | { timeout: number }): Promise<void>
export async function _config (type: WalletType, vault: Vault, settings: unknown): Promise<void> {
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
import { utf8 } from '../convert'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
import { Database } from '../database'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
import { Database } from '../database'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>\r
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>\r
//! SPDX-License-Identifier: GPL-3.0-or-later\r
\r
import { Account } from '../account'\r
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
import { hex, utf8 } from '../convert'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
import { Ledger } from '../ledger'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
import { Account } from '../account'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
import { _backup } from './backup'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
import { Block } from '../block'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
import { utf8 } from '../convert'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
import { Account } from '../account'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
import { utf8 } from '../convert'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
import { WalletType } from '.'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
import { Account } from './lib/account'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
export { env } from '../env.mjs'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
/**
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
import './perf.wallet.mjs'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
import { failures, passes } from './GLOBALS.mjs'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
'use strict'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
'use strict'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
'use strict'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>\r
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>\r
//! SPDX-License-Identifier: GPL-3.0-or-later\r
\r
'use strict'\r
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>\r
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>\r
//! SPDX-License-Identifier: GPL-3.0-or-later\r
\r
'use strict'\r
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>\r
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>\r
//! SPDX-License-Identifier: GPL-3.0-or-later\r
\r
'use strict'\r
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>\r
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>\r
//! SPDX-License-Identifier: GPL-3.0-or-later\r
\r
'use strict'\r
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>\r
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>\r
//! SPDX-License-Identifier: GPL-3.0-or-later\r
\r
'use strict'\r
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>\r
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>\r
//! SPDX-License-Identifier: GPL-3.0-or-later\r
\r
'use strict'\r
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
'use strict'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>\r
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>\r
//! SPDX-License-Identifier: GPL-3.0-or-later\r
\r
'use strict'\r
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
'use strict'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
'use strict'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>
//! SPDX-License-Identifier: GPL-3.0-or-later
import { failures, isNode, passes, suite, test } from './GLOBALS.mjs'
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>\r
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>\r
//! SPDX-License-Identifier: GPL-3.0-or-later\r
\r
'use strict'\r
-//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>\r
+//! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@codecow.com>\r
//! SPDX-License-Identifier: GPL-3.0-or-later\r
\r
'use strict'\r
-SPDX-FileCopyrightText: 2024 Chris Duncan <chris@zoso.dev>
+SPDX-FileCopyrightText: 2024 Chris Duncan <chris@codecow.com>
SPDX-License-Identifier: GPL-3.0-or-later