Commit Graph

18 Commits

Author SHA1 Message Date
oxmc bc2c72d4e8 release: 5.0.0-beta
CI / infra:
  - Replace azure-pipelines with GitHub Actions (build-asset.yml)
  - Build and publish pre-built assets for windows-x64, mac-arm64,
    linux-x64, and linux-x64-musl on tag push
  - Remove EOL Node 18 and 20 from build matrix; default to lts/*, 22, 24

  Bug fixes:
  - fix: _assembleDeliverable deadlock — bundle.finalize() must be called
    before MultiStream starts consuming; calling it in the Transform's
    first-chunk callback deadlocked because archiver never emits without
    finalize, so the sentinel and trailers were never written
  - fix: ESM realpathSync ENOENT on Node 22.22+ / Node 24 — these versions
    removed the ENOENT catch in finalizeResolution; VFS paths don't exist
    on real FS so binding.lstat throws. Two-pronged fix:
    (1) boot-nexe.ts: install ENOENT-tolerant wrapper before _compile()
    (2) shim.ts: re-apply wrapper after shimFs() overwrites boot-nexe's
        patch, so the ESM resolver captures the tolerant version at first
        ESM load
  - fix: replace got (unmaintained) with axios in download step
  - fix: update default remote to oxmc/nexe releases

  Features:
  - macOS binary signing support (patchMachOExecutable)
  - bundleRules option for fine-grained VFS include/exclude per module
  - Improved SnapshotZipFS path handling and fallback behaviour
2026-05-19 01:16:37 -07:00
oxmc 4072dc6f0a Update to eslint 2025-12-07 01:30:14 -08:00
bruce-one ca657b5b06 feat: use yarn fslib/zip for fs shimming (#1048)
* refactor: compile with esmoudle interop

* Rigidify code replacement by using Lodash templates.

* Generate zip file bundle.

* Use yarn's fslib to implement the fake filesystem.

Leverage the work done by yarn, rather than reimplementing from scratch.

This means the fake fs is now reading from a zip file in the binary.

A few methods need custom implementations as the fake fs is not
writable. These were copied and adjusted from the yarn ZipOpenFS.

* Add test suite using the built artefact.

Smoke tests the different fs methods.

Not perfect in any world, but better than nothing.

* Fix tsc on Windows - globbing doesn't work there.

There's probably a cleaner way to do this...

* Bump version.

* Dep bumps.

* fixup 9d57b32: make fs patch code clearer.

* fixup 3771c720: simplify test to just use require directly.

---------

Co-authored-by: calebboyd <caleb.boyd@gmail.com>
2023-08-20 14:43:06 -05:00
calebboyd 32033b6d15 fix: bring idepotent builds back 2020-06-27 06:46:13 -05:00
calebboyd d6ba5d193f fix: update resolve-dependencies 2020-04-26 09:08:25 -05:00
calebboyd 1e54736fec fix: serialize shims/resources in upstream step
closes #677
2019-10-09 12:20:53 -05:00
calebboyd 0dca0745ee feat(fs): add option to restore all but internal filesystem methods 2019-04-08 22:14:51 -05:00
calebboyd c9c9b5a0a3 fix: mount vfs relative to execPath instead of cwd 2019-04-08 11:10:33 -05:00
António Nuno Monteiro 142338ede6 fix: stringify compiler.entrypoint in shims (#541) 2018-10-21 12:00:06 -05:00
calebboyd 53ef02f87a feat: standalone bundler 2018-09-24 11:28:49 -05:00
calebboyd c70d93b72f chore: setup nexe-fs as a standalone shim 2018-09-24 11:28:49 -05:00
calebboyd 92058b6137 chore(bundling): start alternate bundling strategy 2018-09-24 11:28:49 -05:00
Ishai Jaffe 23f550818b fix(shim): properly serialize path 2017-11-14 14:57:39 -05:00
calebboyd 52b58a107d feat: enable fake-argv by default 2017-10-21 22:48:42 -05:00
calebboyd a4b48611d9 feat: readdir and readdirSync 2017-10-03 00:39:33 -05:00
calebboyd 83d3ccf1c5 feat: support the cluster module 2017-10-02 22:28:04 -05:00
calebboyd 11fa087e9d refactor: move startup scripts to shims, add plugins 2017-09-26 20:16:03 -05:00
calebboyd 2b9a8b1f0e feat: fake-argv option 2017-09-09 02:02:52 -05:00