dependency management
jsjiit 0.0.22 has zero runtime dependencies. Two devDependencies build and document it. The browser supplies fetch and crypto.subtle.
Split#
flowchart TB runtime[Runtime: none from npm] dev[devDependencies] dev --> esbuild["esbuild 0.24.0"] dev --> jsdoc["jsdoc ^4.0.4"]
Why no HTTP library#
flowchart LR wrap[wrapper.js] --> fetch[window.fetch] enc[encryption.js] --> subtle[window.crypto.subtle]
That is why Node is not a supported runtime.
esbuild#
Pinned exactly 0.24.0. Used only by build.mjs.
flowchart LR npmI[npm install] --> nm[node_modules/esbuild] nm --> build[node build.mjs]
jsdoc#
^4.0.4. npm run docs and the GitHub Action andstor/jsdoc-action@v1 both read jsdoc.conf.json. The Action brings its own jsdoc unless you also install locally.
flowchart TB comments[JSDoc on src/*.js] --> jsdocBin[jsdoc CLI] conf[jsdoc.conf.json] --> jsdocBin jsdocBin --> html[./docs]
Lockfile#
package-lock.json version field 0.0.22, lockfileVersion 3. It pins the jsdoc → @babel/parser tree so docs builds do not drift.
flowchart LR lock[package-lock.json] --> ci[reproducible npm ci]
What you install as an app author#
flowchart TD app[Your app] --> dep[dependency jsjiit] lib[This repo] --> devonly[devDependency esbuild jsdoc]
Do not add esbuild to an app unless you are patching the library.