Skip to content

Audit tls externs for Node 24 + Haxe 4#270

Closed
kevinresol wants to merge 60 commits into
HaxeFoundation:masterfrom
kevinresol:audit/js-node-tls
Closed

Audit tls externs for Node 24 + Haxe 4#270
kevinresol wants to merge 60 commits into
HaxeFoundation:masterfrom
kevinresol:audit/js-node-tls

Conversation

@kevinresol

Copy link
Copy Markdown
Contributor

Summary

  • Completes the focused js.node.Tls / js.node.tls.* audit against Node.js 24: PSK options, richer PeerCertificate, connect/createServer gaps (allowHalfOpen, highWaterMark, secureContext, ALPN buffer views, etc.).
  • Marks createSecurePair / SecurePair as removed in Node 24 (DEP0064); refreshes docs comments; Haxe 4 arrow callback style; copyrights 2014–2026.
  • Keeps SecurePair APIs available for older targets but deprecated with an explicit replacement message.

Test plan

  • haxe build.hxml succeeds
  • Spot-check TLS examples (TlsConnectPemExample, TlsConnectPfxExample, server samples)
  • Confirm no callers rely on removed server.setOptions (not re-added; EOL in Node 24)

Made with Cursor

kevinresol and others added 30 commits July 13, 2026 22:20
Bind newer Node.js assert APIs for regex string matching and partial deep equality.

Co-authored-by: Cursor <cursoragent@cursor.com>
Expose Node.js Brotli stream classes, create helpers, sync/async buffer APIs, and crc32.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Expose Node stream.finished, stream type helpers, and events module/EventEmitter statics (errorMonitor, getEventListeners, setMaxListeners, etc.).

Co-authored-by: Cursor <cursoragent@cursor.com>
Bring hxnodejs fs externs closer to Node LTS for common sync/callback filesystem helpers.

Co-authored-by: Cursor <cursoragent@cursor.com>
Expose newer Node.js net blocklist/address APIs, buffer module helpers, and cluster primary aliases.

Co-authored-by: Cursor <cursoragent@cursor.com>
Expose newer Node.js APIs: os.availableParallelism/machine/version/devNull,
path.matchesGlob, url.urlToHttpOptions, and tls root/default/CA helpers.

Co-authored-by: Cursor <cursoragent@cursor.com>
These externs were missing from Crypto.hx, so Haxe code could not call
randomFill/randomInt/UUID, scrypt/hkdf, timingSafeEqual, or FIPS/prime/cipher-info APIs without untyped workarounds.

Co-authored-by: Cursor <cursoragent@cursor.com>
Add the documented `info` option and clarify `maxOutputLength` default.

Co-authored-by: Cursor <cursoragent@cursor.com>
Fix finished callback return type and options (signal/cleanup), isReadable/isWritable nullability, document isDestroyed/isDisturbed accurately, add Readable.isDisturbed and events.getMaxListeners.

Co-authored-by: Cursor <cursoragent@cursor.com>
Node fs.readv/writev accept ArrayBufferView arrays, not {buffer,offset,length} descriptors; also match StatFs.frsize docs wording.

Co-authored-by: Cursor <cursoragent@cursor.com>
Add BlockList.isBlockList/fromJSON/toJSON and SocketAddress.parse, fix SocketAddress family typing, widen buffer isUtf8/isAscii inputs, and correct primary alias docs.

Co-authored-by: Cursor <cursoragent@cursor.com>
Fix hkdf/hkdfSync to return ArrayBuffer, add scrypt cost/blockSize/parallelization options, deprecate fips, accept ArrayBuffer on timingSafeEqual/checkPrime, and expose randomUUIDv7.

Co-authored-by: Cursor <cursoragent@cursor.com>
Also sync os.machine doc examples with the Node 24 LTS API docs.

Co-authored-by: Cursor <cursoragent@cursor.com>
Expose Node 24 globalThis and structuredClone on js.Node, and note that global is legacy in favor of globalThis.

Co-authored-by: Cursor <cursoragent@cursor.com>
Add Node 24 web EventTarget API types under js.node.web without wiring them through Node.hx yet.

Co-authored-by: Cursor <cursoragent@cursor.com>
Add Node 24 AbortController/AbortSignal under js.node.web, including shared EventTarget path types so AbortSignal can extend EventTarget independently of the events PR.

Co-authored-by: Cursor <cursoragent@cursor.com>
Add undici-based Node 24 fetch globals surface under js.node.web, with AbortSignal typed via the shared package path.

Co-authored-by: Cursor <cursoragent@cursor.com>
* [ci] Add github actions workflow

* Require haxe 4+ officially

Support for haxe 3 broke when switching to "enum abstract" instead of
"@:enum abstract"

* Fix macro for haxe 5
…ch-partial

Add assert.match / doesNotMatch / partialDeepStrictEqual
…nts-utils

Add stream.finished/helpers and events utilities
…-cluster

Add net BlockList/SocketAddress, buffer utils, cluster aliases
…l-tls

Add Os/Path/Url/Tls LTS constants and helpers
…ents

Add Event, EventTarget, CustomEvent, DOMException externs
Add AbortController and AbortSignal externs
Add fetch, Request, Response, Headers, FormData, Blob, File externs
tobil4sk and others added 26 commits July 14, 2026 10:21
* [ci] Run haxe repo tests

* [ci] Disable test fail fast

* [ci] Remove 4.0.5 from test matrix

UTest requires 4.1.0 or above

* [ci] Use node 24 for tests on windows

Older versions of node have a buggy libuv that crashes on certain
boundary unicode characters.

* [ci] Wait for tests before deploying
* Add diagnostics_channel module externs for Node.js 24 LTS.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix TracingChannel extern: drop invalid jsRequire and lock channel fields.

TracingChannel is not exported from diagnostics_channel, so treat it like
fs.Stats; mark start/end/asyncStart/asyncEnd/error as (default, never).

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
)

* Add perf_hooks externs and wire global performance.

Expose Node.js performance measurement APIs under js.node.PerfHooks /
js.node.perf_hooks and add the global performance getter on js.Node.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix Performance measure overloads and option typedef imports.

Drop the unused PerformanceObserver module re-export and resolve
PerformanceMarkOptions/PerformanceMeasureOptions across modules.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Document dual-LTS availability of module-level perf_hooks aliases.

Mark eventLoopUtilization and timerify as Added in v24.12.0 and prefer Performance methods on Node 22.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
)

* Add Node.js inspector and inspector/promises externs.

Cover the stable module surface (open/close/url/waitForDebugger/console/Session)
plus pragmatic Network, NetworkResources, and DOMStorage helpers without exhaustive CDP typings.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix inspector LTS review: DebuggerResumed typing and Node 24 notes.

Align SessionEvent.DebuggerResumed with notification message handlers, document webSocket*/DomStorage as Node 24-only, and clarify Disposable open() / promises SessionEvent reuse.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
* Add stream/promises externs

Thin façade around finished/pipeline Promise forms from stream/promises.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Add stream/promises finished and pipeline façade

Thin Promise-only wrappers around stream.finished and stream.pipeline.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix stream/promises pipeline options and finished signature.

Use StreamPipelineOptions for pipeline, drop the invalid single-stream overload, and align finished with optional options like Stream.finished.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Remove duplicate StreamPipelineOptions typedef.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
* Add readline/promises externs

Promise-based Interface.question plus Readline batching helpers.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix readline/promises LTS options and AbortSignal typing.

Add history/tabSize/signal to createInterface options, allow Promise-returning completers, and use js.node.web.AbortSignal.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
* Add timers/promises externs

Promise-based setTimeout/setImmediate/setInterval plus experimental scheduler helpers.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Polish timers/promises docs and AbortSignal import.

Clarify setTimeout/setImmediate fulfill with value, and use js.node.web.AbortSignal.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
* Add http2 module externs for Node.js HTTP/2 API.

Cover the documented Core and Compatibility surfaces (sessions, streams,
servers, settings/constants) using existing http/tls/stream patterns.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix http2 externs for current Node LTS.

Replace removed streamClosed with Duplex close+rstCode, drop @:jsRequire
on non-exported session/stream classes, and document Active-LTS-only APIs.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Drop Haxe 3 conditionals from http2 externs.

CI already targets Haxe 4+, so keep arrow-function typings and js.lib.Error only.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
* Add fs/promises externs and FileHandle

Expose Node's promise-based filesystem API as thin wrappers over existing Fs typedefs, including the FileHandle class returned by open().

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix FileHandle extern after LTS review

Drop invalid @:jsRequire for FileHandle, add readableWebStream, and use js.node.web.AbortSignal for watch options.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
* Add dns/promises externs

Thin Promise wrappers mirroring the existing Dns callback API.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Remove ADDRCONFIG/V4MAPPED from dns/promises externs.

Those flags are undefined on dns/promises; document using Dns.* and note intentional API gaps.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Align Dns and DnsPromises APIs with Node.js 22 LTS.

Add missing resolve helpers, result-order APIs, TTL options, Resolver classes, and shared record typedefs so callback and promise surfaces match.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Point dns extern docs at Node.js 24 LTS.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
* Add node:test runner externs for Node.js 24

Expose js.node.Test with suite/test/hooks/mock/snapshot/run APIs and
supporting types under js.node.test for contexts, mocks, and TestsStream.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Refine node:test externs: split suite/it helpers and mock APIs.

Separate SuiteFunction/ItFunction modules, keep MockTimers in its own file, and tighten TestsStream/context typing after a full ImportAll build.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix node:test LTS review gaps for expectFailure and waitFor.

Add Test.expectFailure and suite.expectFailure shorthands, allow async waitFor conditions, and document the Node 24+ Active LTS baseline.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Type MockTimers.enable now as number | Date.

Restore JsDate (js.lib.Date) for MockTimersEnableOptions.now to match Node's API instead of Dynamic.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
* Audit fs/path/os/zlib for Node 24 and Haxe 4

Add missing Node 24 fs/zlib APIs (openAsBlob, mkdtempDisposable*, Zstd),
drop Haxe 3 conditionals in this section, and tighten Dynamic where possible.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Complete section-2 Node 24 fs/zlib gap fill

Add StatWatcher/Utf8Stream, Fs.promises, F_OK deprecations, glob URL cwd,
FSWatcher ref/unref, Zlib options polish, and PathModule.toNamespacedPath.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
…#225)

* Audit observability and test externs for Node 24 / Haxe 4.

Drop remaining Haxe 3 conditionals, prefer js.node.web.AbortSignal, and add core node:trace_events, node:sqlite, and node:sea surfaces.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Polish section 7 audit: DomStorage params, sqlite fields, typing.

Fix registerStorage options shape, expose DatabaseSync open/txn/limits,
tighten Network headers typing, and clean MockTracker formatting.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
…n#226)

Fill net/http/https/http2/tls/dgram/dns/tty API gaps against Node 24,
replace Haxe 3 conditionals with Haxe 4 types, and tighten Dynamics
where practical.

Co-authored-by: Cursor <cursoragent@cursor.com>
)

Align child_process, cluster, readline, repl, vm, v8, and domain with Node 24 APIs, drop Haxe 3 conditionals, and add core async_hooks, worker_threads, and wasi stubs.

Co-authored-by: Cursor <cursoragent@cursor.com>
…n#228)

Drop Haxe 3 conditionals across events, stream, buffer, timers, process,
module, and globals; add missing Node 24 public APIs; tighten Dynamics where
types exist; leave cross-section TODOs for web streams and IPC/loader types.

Co-authored-by: Cursor <cursoragent@cursor.com>
Drop Haxe 3 import gates, tighten Dynamic/Any typing for fetch/abort/events,
and add missing Node 24 web-platform externs (streams, messaging, WebSocket,
EventSource, Navigator/locks, Storage, encoding globals).

Co-authored-by: Cursor <cursoragent@cursor.com>
* Audit crypto/util/assert/url for Node 24 and Haxe 4.

Drop Haxe 3 conditionals, add missing Node 24 APIs (KeyObject, X509,
MIMEType, CallTracker, URLPattern, argon2/KEM, parseArgs, etc.), and
narrow avoidable Dynamic usage with remaining gaps marked TODO(section-4).

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix DiffieHellmanGroup typing for Haxe 4.0.5.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Add util.convertProcessSignalToExitCode and setTraceSigInt.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Normalize Promisify.hx to LF line endings.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix AssertThrows.hx

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
HaxeFoundation#231)

Replace Any stubs and section-3 TODOs now that the crypto audit lands the shared type.

Co-authored-by: Cursor <cursoragent@cursor.com>
)

* Audit fs/path/os/zlib for Node 24 and Haxe 4

Add missing Node 24 fs/zlib APIs (openAsBlob, mkdtempDisposable*, Zstd),
drop Haxe 3 conditionals in this section, and tighten Dynamic where possible.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Audit observability and test externs for Node 24 / Haxe 4.

Drop remaining Haxe 3 conditionals, prefer js.node.web.AbortSignal, and add core node:trace_events, node:sqlite, and node:sea surfaces.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Complete section-2 Node 24 fs/zlib gap fill

Add StatWatcher/Utf8Stream, Fs.promises, F_OK deprecations, glob URL cwd,
FSWatcher ref/unref, Zlib options polish, and PathModule.toNamespacedPath.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Align networking externs with Node 24 and drop Haxe 3.

Fill net/http/https/http2/tls/dgram/dns/tty API gaps against Node 24,
replace Haxe 3 conditionals with Haxe 4 types, and tighten Dynamics
where practical.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Audit process/CLI/VM externs for Node 24 and Haxe 4.

Align child_process, cluster, readline, repl, vm, v8, and domain with Node 24 APIs, drop Haxe 3 conditionals, and add core async_hooks, worker_threads, and wasi stubs.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Audit Section 1 core foundation for Node 24 / Haxe 4+.

Drop Haxe 3 conditionals across events, stream, buffer, timers, process,
module, and globals; add missing Node 24 public APIs; tighten Dynamics where
types exist; leave cross-section TODOs for web streams and IPC/loader types.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Polish section 7 audit: DomStorage params, sqlite fields, typing.

Fix registerStorage options shape, expose DatabaseSync open/txn/limits,
tighten Network headers typing, and clean MockTracker formatting.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Audit crypto/util/assert/url for Node 24 and Haxe 4.

Drop Haxe 3 conditionals, add missing Node 24 APIs (KeyObject, X509,
MIMEType, CallTracker, URLPattern, argon2/KEM, parseArgs, etc.), and
narrow avoidable Dynamic usage with remaining gaps marked TODO(section-4).

Co-authored-by: Cursor <cursoragent@cursor.com>

* Audit js.node.web for Node 24 web globals

Drop Haxe 3 import gates, tighten Dynamic/Any typing for fetch/abort/events,
and add missing Node 24 web-platform externs (streams, messaging, WebSocket,
EventSource, Navigator/locks, Storage, encoding globals).

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix DiffieHellmanGroup typing for Haxe 4.0.5.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Add util.convertProcessSignalToExitCode and setTraceSigInt.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Normalize Promisify.hx to LF line endings.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix AssertThrows.hx

* Wire stream/Blob/WebSocket APIs to js.node.web types.

Connect Readable/Writable/Duplex fromWeb/toWeb, Buffer.resolveObjectURL,
FileHandle.readableWebStream, and http.WebSocket to the section 6 web
externs and drop the resolved TODO(section-6) placeholders.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
…tion#234)

* Audit fs/path/os/zlib for Node 24 and Haxe 4

Add missing Node 24 fs/zlib APIs (openAsBlob, mkdtempDisposable*, Zstd),
drop Haxe 3 conditionals in this section, and tighten Dynamic where possible.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Audit observability and test externs for Node 24 / Haxe 4.

Drop remaining Haxe 3 conditionals, prefer js.node.web.AbortSignal, and add core node:trace_events, node:sqlite, and node:sea surfaces.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Complete section-2 Node 24 fs/zlib gap fill

Add StatWatcher/Utf8Stream, Fs.promises, F_OK deprecations, glob URL cwd,
FSWatcher ref/unref, Zlib options polish, and PathModule.toNamespacedPath.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Align networking externs with Node 24 and drop Haxe 3.

Fill net/http/https/http2/tls/dgram/dns/tty API gaps against Node 24,
replace Haxe 3 conditionals with Haxe 4 types, and tighten Dynamics
where practical.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Audit process/CLI/VM externs for Node 24 and Haxe 4.

Align child_process, cluster, readline, repl, vm, v8, and domain with Node 24 APIs, drop Haxe 3 conditionals, and add core async_hooks, worker_threads, and wasi stubs.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Audit Section 1 core foundation for Node 24 / Haxe 4+.

Drop Haxe 3 conditionals across events, stream, buffer, timers, process,
module, and globals; add missing Node 24 public APIs; tighten Dynamics where
types exist; leave cross-section TODOs for web streams and IPC/loader types.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Polish section 7 audit: DomStorage params, sqlite fields, typing.

Fix registerStorage options shape, expose DatabaseSync open/txn/limits,
tighten Network headers typing, and clean MockTracker formatting.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Audit crypto/util/assert/url for Node 24 and Haxe 4.

Drop Haxe 3 conditionals, add missing Node 24 APIs (KeyObject, X509,
MIMEType, CallTracker, URLPattern, argon2/KEM, parseArgs, etc.), and
narrow avoidable Dynamic usage with remaining gaps marked TODO(section-4).

Co-authored-by: Cursor <cursoragent@cursor.com>

* Audit js.node.web for Node 24 web globals

Drop Haxe 3 import gates, tighten Dynamic/Any typing for fetch/abort/events,
and add missing Node 24 web-platform externs (streams, messaging, WebSocket,
EventSource, Navigator/locks, Storage, encoding globals).

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix DiffieHellmanGroup typing for Haxe 4.0.5.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Add util.convertProcessSignalToExitCode and setTraceSigInt.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Normalize Promisify.hx to LF line endings.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix AssertThrows.hx

* Wire Assert, TextEncoder, and MessagePort transfer typing.

Compose TestContextAssert with shared AssertMethods, align util.TextEncoder encodeInto with the web surface, and tighten worker/web transfer lists to real Transferable types.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
…s. (HaxeFoundation#235)

Type EventEmitterAsyncResource and Channel stores against AsyncResource/AsyncLocalStorage, add ChildProcess sendHandle/channel typedefs for Process IPC, and refine Module SourceMap/register/hooks surfaces.

Co-authored-by: Cursor <cursoragent@cursor.com>
)

* Audit fs/path/os/zlib for Node 24 and Haxe 4

Add missing Node 24 fs/zlib APIs (openAsBlob, mkdtempDisposable*, Zstd),
drop Haxe 3 conditionals in this section, and tighten Dynamic where possible.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Audit observability and test externs for Node 24 / Haxe 4.

Drop remaining Haxe 3 conditionals, prefer js.node.web.AbortSignal, and add core node:trace_events, node:sqlite, and node:sea surfaces.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Complete section-2 Node 24 fs/zlib gap fill

Add StatWatcher/Utf8Stream, Fs.promises, F_OK deprecations, glob URL cwd,
FSWatcher ref/unref, Zlib options polish, and PathModule.toNamespacedPath.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Align networking externs with Node 24 and drop Haxe 3.

Fill net/http/https/http2/tls/dgram/dns/tty API gaps against Node 24,
replace Haxe 3 conditionals with Haxe 4 types, and tighten Dynamics
where practical.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Audit process/CLI/VM externs for Node 24 and Haxe 4.

Align child_process, cluster, readline, repl, vm, v8, and domain with Node 24 APIs, drop Haxe 3 conditionals, and add core async_hooks, worker_threads, and wasi stubs.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Audit Section 1 core foundation for Node 24 / Haxe 4+.

Drop Haxe 3 conditionals across events, stream, buffer, timers, process,
module, and globals; add missing Node 24 public APIs; tighten Dynamics where
types exist; leave cross-section TODOs for web streams and IPC/loader types.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Polish section 7 audit: DomStorage params, sqlite fields, typing.

Fix registerStorage options shape, expose DatabaseSync open/txn/limits,
tighten Network headers typing, and clean MockTracker formatting.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Audit crypto/util/assert/url for Node 24 and Haxe 4.

Drop Haxe 3 conditionals, add missing Node 24 APIs (KeyObject, X509,
MIMEType, CallTracker, URLPattern, argon2/KEM, parseArgs, etc.), and
narrow avoidable Dynamic usage with remaining gaps marked TODO(section-4).

Co-authored-by: Cursor <cursoragent@cursor.com>

* Audit js.node.web for Node 24 web globals

Drop Haxe 3 import gates, tighten Dynamic/Any typing for fetch/abort/events,
and add missing Node 24 web-platform externs (streams, messaging, WebSocket,
EventSource, Navigator/locks, Storage, encoding globals).

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix DiffieHellmanGroup typing for Haxe 4.0.5.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Add util.convertProcessSignalToExitCode and setTraceSigInt.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Normalize Promisify.hx to LF line endings.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Fix AssertThrows.hx

* Wire js.Node aliases for web globals and confirm performance getter.

Expose fetch, AbortController, Event/EventTarget/CustomEvent, File,
TextEncoder/TextDecoder, DOMException, navigator, and Storage locals on
js.Node; drop the obsolete PerfHooks TODO pointing at Haxe 3 __js__.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Wire js.Node to fetch, navigator, and Storage locals only.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
…ion#236)

* Add replacement strings to bare @:deprecated on Util

Point inherits, type-check helpers, and log at Haxe/Node replacements so callers get actionable compiler warnings.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Add replacement messages to @:deprecated on assert, url, and punycode APIs.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Add replacement messages to bare @:deprecated on Crypto and Buffer.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Add replacement guidance to bare Http2StreamState @:deprecated fields.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Add replacement messages to bare @:deprecated on Node timers, Process, Require, and Vm.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Fill remaining tls API gaps (PSK, PeerCertificate fields, connect/createServer
options), mark createSecurePair as removed in Node 24, refresh comments, and
bump copyrights to 2014-2026.

Co-authored-by: Cursor <cursoragent@cursor.com>
Expand ca/cert/key/pfx/crl/ALPN array forms to accept Array<String>,
Array<Buffer>, and Array<String|Buffer> via @:from abstracts so TLS
examples unify under array invariance.

Co-authored-by: Cursor <cursoragent@cursor.com>
@kevinresol kevinresol closed this Jul 15, 2026
@kevinresol
kevinresol deleted the audit/js-node-tls branch July 15, 2026 01:00
@kevinresol
kevinresol restored the audit/js-node-tls branch July 15, 2026 01:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants