Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 14 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,30 @@ jobs:
test:
runs-on: ubuntu-latest
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
node-version:
- "14.18.0"
- "16.20.2"
- "18.0.0"
- "25.2.1"
steps:
- name: Action | Checkout Repository Code
uses: actions/checkout@v6

- name: Setup | Configure Node.js
uses: actions/setup-node@v6
with:
node-version: "25"
node-version: ${{ matrix.node-version }}
cache: "npm"

- name: Setup | Install Dependencies
run: npm ci

- name: Evaluate | Run Tests
- name: Evaluate | Run Compatibility Suite
run: npm run test:compatibility

- name: Evaluate | Run Coverage Suite
if: ${{ matrix.node-version == '25.2.1' }}
run: npm run test:coverage -- --ci --runInBand --verbose
2 changes: 1 addition & 1 deletion .npmrc
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
engine-strict=true
engine-strict=false
access=public
registry=https://registry.npmjs.org/
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
25.2.1
14.18.0
35 changes: 20 additions & 15 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ This repository has enabled GitHub Copilot and any other compatible A.I. code as

Required software for development and CI:

- [Node.js](https://nodejs.org/): `>= 25.2.1`
- [Node.js](https://nodejs.org/): `>= 14.18.0`
- [NPM](https://www.npmjs.com/): `>= 6.14.15`
- [LLVM Clang](https://clang.llvm.org/): `>= 22.1.1`
- [LLVM LLD](https://lld.llvm.org/): `>= 22.1.1`

Expand Down Expand Up @@ -52,20 +53,24 @@ This repository follows a simple [GitHub Flow](https://docs.github.com/en/get-st

[NPM scripts](./package.json) are organized with [ESLint Package.json Conventions](https://eslint.org/docs/latest/contribute/package-json-conventions):

| Command | Purpose |
| ------------------- | --------------------------------------------------------------- |
| `build` | Build WASM binaries, TypeScript output, and WASM assets. |
| `build:clean` | Remove generated build directories. |
| `build:typescript` | Compile TypeScript and rewrite path aliases. |
| `build:wasm` | Compile algorithm `main.c` files to `main.wasm` when available. |
| `build:wasm-assets` | Copy generated WASM binaries to build output tree. |
| `build:wasm:check` | Validate WASM artifacts and execute WASM smoke checks. |
| `build:wasm:strict` | Compile WASM and fail when WASM compilation is unavailable. |
| `release` | Run semantic-release for tags, GitHub release, and npm publish. |
| `start` | Run CLI directly from TypeScript sources. |
| `start:compiled` | Run CLI from compiled build output. |
| `test` | Run Jest test suite with default config. |
| `test:coverage` | Run Jest with coverage output for CI and release validation. |
| Command | Purpose |
| -------------------- | ---------------------------------------------------------------------- |
| `build` | Build WASM binaries, TypeScript output, and WASM assets. |
| `build:clean` | Remove generated build directories. |
| `build:typescript` | Compile TypeScript and rewrite path aliases. |
| `build:wasm` | Compile algorithm `main.c` files to `main.wasm` when available. |
| `build:wasm-assets` | Copy generated WASM binaries to build output tree. |
| `build:wasm:check` | Validate WASM artifacts and execute WASM smoke checks. |
| `build:wasm:strict` | Compile WASM and fail when WASM compilation is unavailable. |
| `release` | Run semantic-release for tags, GitHub release, and npm publish. |
| `start` | Run CLI directly from TypeScript sources. |
| `start:compiled` | Run CLI from compiled build output. |
| `test` | Run the default test suite by chaining test subcommands. |
| `test:cli` | Run the CLI smoke suite across all algorithms and demos. |
| `test:cli:compiled` | Build the project and run the CLI smoke suite against compiled output. |
| `test:compatibility` | Build the project and run the default test suite. |
| `test:coverage` | Run the Jest unit test suite with coverage output. |
| `test:unit` | Run the Jest unit test suite without coverage. |

## WebAssembly Behavior

Expand Down
10 changes: 9 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,15 @@ npm install @siegesailor/cryptography

Required software for this module:

- [Node.js](https://nodejs.org/): `>= 25.2.1`
- [Node.js](https://nodejs.org/): `>= 14.18.0`
- [NPM](https://www.npmjs.com/): `>= 6.14.15`

Tested and compatible Node.js versions:

- `14.18.0`
- `16.20.2`
- `18.0.0`
- `25.2.1`

## Use as a Library

Expand Down
Loading
Loading