fix: restore build and tests under TypeScript 6
Some checks failed
NYX Security Scan / nyx-scan (pull_request) Failing after 5m55s
Some checks failed
NYX Security Scan / nyx-scan (pull_request) Failing after 5m55s
The dependency bumps on main left `npm test` and `npm run build:types`
broken independently of any feature work; both fail on a clean checkout
of origin/main.
TypeScript 6 no longer auto-includes @types packages the way node10
resolution did, so every test suite failed to compile with "Cannot find
name 'describe'/'expect'". Declare the needed @types explicitly instead:
- tsconfig.json: types: ["node"]
- jest.config.js: types: ["jest", "node"]
TypeScript 6 also errors on two settings this config relied on:
- moduleResolution "node" (node10) is deprecated -> "bundler", which
matches how the package is actually consumed (rollup-bundled, with
"module": "ESNext")
- an implicit rootDir is now an error when outDir/declarationDir are
set -> rootDir: "./src"
Drop three unused imports that noUnusedLocals turns into hard errors,
failing --emitDeclarationOnly.
Finally, NodeSecureMemory logged to stdout unconditionally on
construction. This was dormant while the native addon failed to load;
once it loads, it broke the "no console.log when debug=false" test. A
library must not write to stdout uninvited, and the client already
reports this via getProtectionInfo() behind its own debug flag.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
75867ef85a
commit
84eae58317
5 changed files with 10 additions and 6 deletions
|
|
@ -15,6 +15,7 @@ module.exports = {
|
|||
skipLibCheck: true,
|
||||
moduleResolution: 'node',
|
||||
resolveJsonModule: true,
|
||||
types: ['jest', 'node'],
|
||||
allowSyntheticDefaultImports: true,
|
||||
// Relax unused-var rules in tests
|
||||
noUnusedLocals: false,
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
* Matches the Python implementation using AES-256-GCM with random nonces
|
||||
*/
|
||||
|
||||
import { getCrypto, arrayBufferToBase64, base64ToArrayBuffer, generateRandomBytes } from './utils';
|
||||
import { getCrypto, generateRandomBytes } from './utils';
|
||||
|
||||
export class AESEncryption {
|
||||
private subtle: SubtleCrypto;
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
* Matches the Python implementation using RSA-OAEP with SHA-256
|
||||
*/
|
||||
|
||||
import { getCrypto, pemToArrayBuffer, arrayBufferToPem, stringToArrayBuffer, arrayBufferToString, generateRandomBytes } from './utils';
|
||||
import { getCrypto, pemToArrayBuffer, arrayBufferToPem, stringToArrayBuffer, generateRandomBytes } from './utils';
|
||||
import { SecureByteContext } from '../memory/secure';
|
||||
|
||||
export class RSAOperations {
|
||||
|
|
|
|||
|
|
@ -37,10 +37,9 @@ export class NodeSecureMemory implements SecureMemory {
|
|||
private readonly hasNative: boolean;
|
||||
|
||||
constructor() {
|
||||
// Deliberately silent: a library must not write to stdout on construction.
|
||||
// Callers surface this via getProtectionInfo() under their own debug flag.
|
||||
this.hasNative = nativeAddon !== null;
|
||||
if (this.hasNative) {
|
||||
console.log('nomyo-native addon loaded: mlock + secure-zero available');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -9,11 +9,15 @@
|
|||
"declaration": true,
|
||||
"declarationDir": "./dist/types",
|
||||
"outDir": "./dist",
|
||||
"rootDir": "./src",
|
||||
"strict": true,
|
||||
"esModuleInterop": true,
|
||||
"skipLibCheck": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"moduleResolution": "node",
|
||||
"moduleResolution": "bundler",
|
||||
"types": [
|
||||
"node"
|
||||
],
|
||||
"resolveJsonModule": true,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"noUnusedLocals": true,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue