fix: repair npm install and the rollup build
Some checks failed
NYX Security Scan / nyx-scan (pull_request) Failing after 5m58s

Three independent breakages, all present on main before this branch:

1. `npm ci` always exited non-zero. The root package.json carried
   "install": "node-gyp-build", but binding.gyp lives in native/, so the
   script ran in a directory with nothing to build:

     gyp: binding.gyp not found (cwd: <repo root>)

   native/package.json already declares that same install script in the
   right place, alongside its binding.gyp and "gypfile": true, so the
   root copy was a duplicate in the wrong package. Removing it also
   clears the now-inaccurate hasInstallScript flag from the lockfile.
   `npm ci` exits 0 again; the addon still builds from native/.

2. `npm run build` failed at the first step. @rollup/plugin-typescript
   requires tslib as a peer, and nothing depended on it directly — it was
   only present transitively as an optional dev dep, so a clean install
   could omit it entirely. Declared explicitly.

3. rollup.config.js used ESM syntax while package.json has no
   "type": "module", so Node parsed it as CommonJS and threw
   "Cannot use import statement outside a module". Node 24 recovers by
   reparsing (with a warning); Node 18 fails outright. Renamed to
   rollup.config.mjs, which is unambiguous on both. Setting
   "type": "module" instead would have broken jest.config.js, which is
   CommonJS.

Verified on Node 18.19.1 and Node 24.18.0: npm ci exits 0, npm run build
produces all three bundles plus declarations, and 76/76 tests pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Alpha Nerd 2026-07-19 11:10:36 +02:00
parent 84eae58317
commit 2495f1e6e8
Signed by: alpha-nerd
SSH key fingerprint: SHA256:QkkAgVoYi9TQ0UKPkiKSfnerZy2h4qhi3SVPXJmBN+M
3 changed files with 4 additions and 5 deletions

7
package-lock.json generated
View file

@ -7,7 +7,6 @@
"": {
"name": "nomyo-js",
"version": "0.1.0",
"hasInstallScript": true,
"license": "Apache-2.0",
"devDependencies": {
"@rollup/plugin-commonjs": "^29.0.0",
@ -22,6 +21,7 @@
"node-gyp-build": "^4.8.0",
"rollup": "^4.0.0",
"ts-jest": "^29.4.6",
"tslib": "^2.8.1",
"typescript": "^6.0.0"
},
"engines": {
@ -5975,7 +5975,7 @@
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
"dev": true,
"optional": true
"license": "0BSD"
},
"node_modules/type-detect": {
"version": "4.0.8",
@ -10642,8 +10642,7 @@
"version": "2.8.1",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
"dev": true,
"optional": true
"dev": true
},
"type-detect": {
"version": "4.0.8",

View file

@ -32,7 +32,6 @@
"build:types": "tsc --emitDeclarationOnly",
"test": "jest",
"test:browser": "karma start",
"install": "node-gyp-build",
"prepublishOnly": "npm run build && npm test"
},
"keywords": [
@ -62,6 +61,7 @@
"node-gyp-build": "^4.8.0",
"rollup": "^4.0.0",
"ts-jest": "^29.4.6",
"tslib": "^2.8.1",
"typescript": "^6.0.0"
},
"optionalDependencies": {