Runtime support
| Environment | Status |
|---|---|
| Node.js 22 and 24 | Supported and tested |
| Node.js below 22 | Not tested; no support promise |
| Chromium and Firefox pages | Supported and tested |
| Chromium and Firefox Web Workers | Supported and tested |
Node worker_threads |
Supported |
| esbuild bundles | Tested, including browser and minified output |
AMD define("xlsx") and plain script global |
Supported and tested |
| Safari and other browsers | Not tested |
The package declares Node.js >=22. It is CommonJS. In ESM use
import XLSX from "@agent-sheet/wasm"; Node named imports are not supported.
Required capabilities
Section titled “Required capabilities”The engine is a WebAssembly module embedded in the JavaScript files. The runtime needs:
- Synchronous
WebAssembly.ModuleandWebAssembly.Instance. - Standard WebAssembly 1.0. No additional proposals are required.
Uint8Array,ArrayBuffer, and eitheratoborBuffer.- ES2017 JavaScript features.
TextEncoderandTextDecoderare used when available. - Node
fsfor disk helpers and Node streams forstream.*.
The library is ready when it loads. There is no initialization promise. The engine’s
operations are synchronous; writeFileAsync uses asynchronous file I/O after serialization.
Browser policies must allow WebAssembly compilation. See Browsers and CSP. The ES5 shim does not remove that requirement. Projects that need old JavaScript-only runtimes should stay with the original @sheet/edit package.
Opening generated files in Excel or Apple Numbers was not tested. Format read/write support describes the package API, not validation in those applications.