{"owner":"awslabs","repo":"llrt","hasSkills":true,"totalSkillsCount":1,"totalTokensCount":7913,"categories":["project-spec"],"hasMcp":false,"mcpConfig":null,"found":["API.md"],"skills":{"API.md":"# API documentation\n\n> [!NOTE]\n> The long term goal for LLRT is to become [WinterTC compliant](https://min-common-api.proposal.wintertc.org/). Not every API from Node.js will be supported.\n\n# Node.js API\n\n## assert\n\n[ok](https://nodejs.org/api/assert.html#assertokvalue-message)\n\n## async_hooks\n\n### Static methods\n\n[createHook](https://nodejs.org/api/async_hooks.html#async_hookscreatehookcallbacks)\n\n[currentId](https://nodejs.org/api/async_hooks.html#async_hooksexecutionasyncid)\n\n[executionAsyncId](https://nodejs.org/api/async_hooks.html#async_hooksexecutionasyncid)\n\n[triggerAsyncId](https://nodejs.org/api/async_hooks.html#async_hookstriggerasyncid)\n\n### Class: AsyncHook\n\n[enable](https://nodejs.org/api/async_hooks.html#asynchookenable)\n\n[disable](https://nodejs.org/api/async_hooks.html#asynchookdisable)\n\n#### Hook callbacks\n\n[init](https://nodejs.org/api/async_hooks.html#initasyncid-type-triggerasyncid-resource)\n\n[before](https://nodejs.org/api/async_hooks.html#beforeasyncid)\n\n[after](https://nodejs.org/api/async_hooks.html#afterasyncid)\n\n[destroy](https://nodejs.org/api/async_hooks.html#destroyasyncid)\n\n[promiseResolve](https://nodejs.org/api/async_hooks.html#promiseresolveasyncid)\n\n## buffer\n\n### Static methods\n\n[alloc](https://nodejs.org/api/buffer.html#static-method-bufferallocsize-fill-encoding)\n\n[allocUnsafe](https://nodejs.org/api/buffer.html#static-method-bufferallocunsafesize)\n\n[allocUnsafeSlow](https://nodejs.org/api/buffer.html#static-method-bufferallocunsafeslowsize)\n\n[byteLength](https://nodejs.org/api/buffer.html#static-method-bufferbytelengthstring-encoding)\n\n[concat](https://nodejs.org/api/buffer.html#static-method-bufferconcatlist-totallength)\n\n[from](https://nodejs.org/api/buffer.html#static-method-bufferfromarray)\n\n[isBuffer](https://nodejs.org/api/buffer.html#static-method-bufferisbufferobj)\n\n[isEncoding](https://nodejs.org/api/buffer.html#static-method-bufferisencodingencoding)\n\n### Prototype methods\n\n[copy](https://nodejs.org/api/buffer.html#bufcopytarget-targetstart-sourcestart-sourceend)\n\n[readBigInt64BE](https://nodejs.org/api/buffer.html#bufreadbigint64beoffset)\n\n[readBigInt64LE](https://nodejs.org/api/buffer.html#bufreadbigint64leoffset)\n\n[readDoubleBE](https://nodejs.org/api/buffer.html#bufreaddoublebeoffset)\n\n[readDoubleLE](https://nodejs.org/api/buffer.html#bufreaddoubleleoffset)\n\n[readFloatBE](https://nodejs.org/api/buffer.html#bufreadfloatbeoffset)\n\n[readFloatLE](https://nodejs.org/api/buffer.html#bufreadfloatleoffset)\n\n[readInt8](https://nodejs.org/api/buffer.html#bufreadint8offset)\n\n[readInt16BE](https://nodejs.org/api/buffer.html#bufreadint16beoffset)\n\n[readInt16LE](https://nodejs.org/api/buffer.html#bufreadint16leoffset)\n\n[readInt32BE](https://nodejs.org/api/buffer.html#bufreadint32beoffset)\n\n[readInt32LE](https://nodejs.org/api/buffer.html#bufreadint32leoffset)\n\n[readUInt8](https://nodejs.org/api/buffer.html#bufreaduint8offset)\n\n[readUInt16BE](https://nodejs.org/api/buffer.html#bufreaduint16beoffset)\n\n[readUInt16LE](https://nodejs.org/api/buffer.html#bufreaduint16leoffset)\n\n[readUInt32BE](https://nodejs.org/api/buffer.html#bufreaduint32beoffset)\n\n[readUInt32LE](https://nodejs.org/api/buffer.html#bufreaduint32leoffset)\n\n[subarray](https://nodejs.org/api/buffer.html#bufsubarraystart-end)\n\n[toString](https://nodejs.org/api/buffer.html#buftostringencoding-start-end)\n\n[write](https://nodejs.org/api/buffer.html#bufwritestring-offset-length-encoding)\n\n[writeBigInt64BE](https://nodejs.org/api/buffer.html#bufwritebigint64bevalue-offset)\n\n[writeBigInt64LE](https://nodejs.org/api/buffer.html#bufwritebigint64levalue-offset)\n\n[writeDoubleBE](https://nodejs.org/api/buffer.html#bufwritedoublebevalue-offset)\n\n[writeDoubleLE](https://nodejs.org/api/buffer.html#bufwritedoublelevalue-offset)\n\n[writeFloatBE](https://nodejs.org/api/buffer.html#bufwritefloatbevalue-offset)\n\n[writeFloatLE](https://nodejs.org/api/buffer.html#bufwritefloatlevalue-offset)\n\n[writeInt8](https://nodejs.org/api/buffer.html#bufwriteint8value-offset)\n\n[writeInt16BE](https://nodejs.org/api/buffer.html#bufwriteint16bevalue-offset)\n\n[writeInt16LE](https://nodejs.org/api/buffer.html#bufwriteint16levalue-offset)\n\n[writeInt32BE](https://nodejs.org/api/buffer.html#bufwriteint32bevalue-offset)\n\n[writeInt32LE](https://nodejs.org/api/buffer.html#bufwriteint32levalue-offset)\n\n[writeUInt8](https://nodejs.org/api/buffer.html#bufwriteuint8value-offset)\n\n[writeUInt16BE](https://nodejs.org/api/buffer.html#bufwriteuint16bevalue-offset)\n\n[writeUInt16LE](https://nodejs.org/api/buffer.html#bufwriteuint16levalue-offset)\n\n[writeUInt32BE](https://nodejs.org/api/buffer.html#bufwriteuint32bevalue-offset)\n\n[writeUInt32LE](https://nodejs.org/api/buffer.html#bufwriteuint32levalue-offset)\n\n### Constants\n\n[constants.MAX_LENGTH](https://nodejs.org/api/buffer.html#bufferconstantsmax_length)\n\n[constants.MAX_STRING_LENGTH](https://nodejs.org/api/buffer.html#bufferconstantsmax_string_length)\n\nEverything else inherited from [Uint8Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array)\n\n## child_process\n\n> [!WARNING]\n> `spawn` uses native streams that is not 100% compatible with the Node.js Streams API.\n\n[spawn](https://nodejs.org/api/child_process.html#child_processspawncommand-args-options)\n\n[execFile](https://nodejs.org/api/child_process.html#child_processexecfilefile-args-options-callback)\n\n## console\n\n[Console](https://nodejs.org/api/console.html#class-console)\n\n## crypto\n\n[createHash](https://nodejs.org/api/crypto.html#cryptocreatehashalgorithm-options)\n\n[createHmac](https://nodejs.org/api/crypto.html#cryptocreatehmacalgorithm-key-options)\n\n[getRandomValues](https://nodejs.org/api/crypto.html#cryptogetrandomvaluestypedarray)\n\n[randomBytes](https://nodejs.org/api/crypto.html#cryptorandombytessize-callback)\n\n[randomFill](https://nodejs.org/api/crypto.html#cryptorandomfillbuffer-offset-size-callback)\n\n[randomFillSync](https://nodejs.org/api/crypto.html#cryptorandomfillsyncbuffer-offset-size)\n\n[randomInt](https://nodejs.org/api/crypto.html#cryptorandomintmin-max-callback)\n\n[randomUUID](https://nodejs.org/api/crypto.html#cryptorandomuuidoptions)\n\n[webcrypto](https://nodejs.org/api/crypto.html#cryptowebcrypto)\n\n### LLRT specific hash classes\n\nLightweight and fast hash classes for LLRT.\n\n- `Md5`\n- `Sha1`\n- `Sha256`\n- `Sha384`\n- `Sha512`\n- `Crc32`\n- `Crc32c`\n\n## crypto.subtle\n\n[subtle.decrypt](https://w3c.github.io/webcrypto/#SubtleCrypto-method-decrypt)\n\n[subtle.decapsulateBits](https://wicg.github.io/webcrypto-modern-algos/#SubtleCrypto-method-decapsulateBits)\n\n[subtle.decapsulateKey](https://wicg.github.io/webcrypto-modern-algos/#SubtleCrypto-method-decapsulateKey)\n\n[subtle.deriveBits](https://w3c.github.io/webcrypto/#SubtleCrypto-method-deriveBits)\n\n[subtle.deriveKey](https://w3c.github.io/webcrypto/#SubtleCrypto-method-deriveKey)\n\n[subtle.digest](https://w3c.github.io/webcrypto/#SubtleCrypto-method-digest)\n\n[subtle.encapsulateBits](https://wicg.github.io/webcrypto-modern-algos/#SubtleCrypto-method-encapsulateBits)\n\n[subtle.encapsulateKey](https://wicg.github.io/webcrypto-modern-algos/#SubtleCrypto-method-encapsulateKey)\n\n[subtle.encrypt](https://w3c.github.io/webcrypto/#SubtleCrypto-method-encrypt)\n\n[subtle.exportKey](https://w3c.github.io/webcrypto/#SubtleCrypto-method-exportKey)\n\n[subtle.generateKey](https://w3c.github.io/webcrypto/#SubtleCrypto-method-generateKey)\n\n[subtle.getPublicKey](https://wicg.github.io/webcrypto-modern-algos/#SubtleCrypto-method-getPublicKey)\n\n[subtle.importKey](https://w3c.github.io/webcrypto/#SubtleCrypto-method-importKey)\n\n[subtle.sign](https://w3c.github.io/webcrypto/#SubtleCrypto-method-sign)\n\n[subtle.unwrapKey](https://w3c.github.io/webcrypto/#SubtleCrypto-method-unwrapKey)\n\n[subtle.verify](https://w3c.github.io/webcrypto/#SubtleCrypto-method-verify)\n\n[subtle.wrapKey](https://w3c.github.io/webcrypto/#SubtleCrypto-method-wrapKey)\n\n[SubtleCrypto.supports](https://wicg.github.io/webcrypto-modern-algos/#SubtleCrypto-method-supports)\n\n## dgram\n\n[createSocket](https://nodejs.org/api/dgram.html#dgramcreatesocketoptions-callback)\n\n### Class: dgram.Socket\n\n[address](https://nodejs.org/api/dgram.html#socketaddress)\n\n[bind](https://nodejs.org/api/dgram.html#socketbindport-address-callback)\n\n[close](https://nodejs.org/api/dgram.html#socketclosecallback)\n\n[ref](https://nodejs.org/api/dgram.html#socketref)\n\n[send](https://nodejs.org/api/dgram.html#socketsendmsg-offset-length-port-address-callback)\n\n[unref](hhttps://nodejs.org/api/dgram.html#socketunref)\n\n## dns\n\n[lookup](https://nodejs.org/api/dns.html#dnslookuphostname-options-callback)\n\n## events\n\n[EventEmitter](https://nodejs.org/api/events.html#class-eventemitter)\n\n## fs\n\n[accessSync](https://nodejs.org/api/fs.html#fsaccesssyncpath-mode)\n\n[constants](https://nodejs.org/api/fs.html#file-access-constants)\n\n[lstatSync](https://nodejs.org/api/fs.html#fslstatsyncpath-options)\n\n[mkdirSync](https://nodejs.org/api/fs.html#fsmkdirsyncpath-options)\n\n[mkdtempSync](https://nodejs.org/api/fs.html#fsmkdtempsyncprefix-options)\n\n[readdirSync](https://nodejs.org/api/fs.html#fsreaddirsyncpath-options)\n\n[readFileSync](https://nodejs.org/api/fs.html#fsreadfilesyncpath-options)\n\n[rmdirSync](https://nodejs.org/api/fs.html#fsrmdirsyncpath-options)\n\n[rmSync](https://nodejs.org/api/fs.html#fsrmsyncpath-options)\n\n[statSync](https://nodejs.org/api/fs.html#fsstatsyncpath-options)\n\n[writeFileSync](https://nodejs.org/api/fs.html#fswritefilesyncfile-data-options)\n\n[chmodSync](https://nodejs.org/api/fs.html#fschmodsyncpath-mode)\n\n[renameSync](https://nodejs.org/api/fs.html#fsrenamesyncoldpath-newpath)\n\n[symlinkSync](https://nodejs.org/api/fs.html#fssymlinksynctarget-path-type)\n\n## fs/promises\n\n[access](https://nodejs.org/api/fs.html#fsstatpath-options-callback)\n\n[constants](https://nodejs.org/api/fs.html#file-access-constants)\n\n[lstat](https://nodejs.org/api/fs.html#fspromiseslstatpath-options)\n\n[mkdir](https://nodejs.org/api/fs.html#fsmkdirpath-options-callback)\n\n[mkdtemp](https://nodejs.org/api/fs.html#fsmkdtempprefix-options-callback)\n\n[open](https://nodejs.org/api/fs.html#fspromisesopenpath-flags-mode)\n\n[readdir](https://nodejs.org/api/fs.html#fspromisesreaddirpath-options)\n\n[readFile](https://nodejs.org/api/fs.html#filehandlereadfileoptions)\n\n[rm](https://nodejs.org/api/fs.html#fsrmpath-options-callback)\n\n[rmdir](https://nodejs.org/api/fs.html#fsrmdirpath-options-callback)\n\n[stat](https://nodejs.org/api/fs.html#fsstatpath-options-callback)\n\n[writeFile](https://nodejs.org/api/fs.html#fspromiseswritefilefile-data-options)\n\n[chmod](https://nodejs.org/api/fs.html#fspromiseschmodpath-mode)\n\n[rename](https://nodejs.org/api/fs.html#fspromisesrenameoldpath-newpath)\n\n[symlink](https://nodejs.org/api/fs.html#fspromisessymlinktarget-path-type)\n\n## https\n\n[Agent](https://nodejs.org/api/https.html#class-httpsagent)\n\n## module\n\n[builtinModules](https://nodejs.org/api/module.html#modulebuiltinmodules)\n\n[createRequire](https://nodejs.org/api/module.html#modulecreaterequirefilename)\n\n> [!NOTE]\n> `require` is available from esm modules natively. This function is just for compatibility\n\n[isBuiltin](https://nodejs.org/api/module.html#moduleisbuiltinmodulename)\n\n[registerHooks](https://nodejs.org/api/module.html#moduleregisterhooksoptions)\n\n## net\n\n> [!WARNING]\n> These APIs uses native streams that is not 100% compatible with the Node.js Streams API. Server APIs like `createSever` provides limited functionality useful for testing purposes. Serverless applications typically don't expose servers. Some server options are not supported:\n> `highWaterMark`, `pauseOnConnect`, `keepAlive`, `noDelay`, `keepAliveInitialDelay`\n\n[connect](https://nodejs.org/api/net.html#netconnect)\n\n[createConnection](https://nodejs.org/api/net.html#netcreateconnection)\n\n[createServer](https://nodejs.org/api/net.html#netcreateserveroptions-connectionlistener)\n\n## os\n\n[arch](https://nodejs.org/api/os.html#osarch)\n\n[availableParallelism](https://nodejs.org/api/os.html#osavailableparallelism)\n\n[cpus](https://nodejs.org/api/os.html#oscpus)\n\n[devNull](https://nodejs.org/api/os.html#osdevnull)\n\n[endianness](https://nodejs.org/api/os.html#osendianness)\n\n[EOL](https://nodejs.org/api/os.html#oseol)\n\n[freemem](https://nodejs.org/api/os.html#osfreemem)\n\n[getPriority](https://nodejs.org/api/os.html#osgetprioritypid)\n\n[homedir](https://nodejs.org/api/os.html#oshomedir)\n\n[hostname](https://nodejs.org/api/os.html#oshostname)\n\n[loadavg](https://nodejs.org/api/os.html#osloadavg)\n\n[machine](https://nodejs.org/api/os.html#osmachine)\n\n[networkInterfaces](https://nodejs.org/api/os.html#osnetworkinterfaces)\n\n[platform](https://nodejs.org/api/os.html#osplatform)\n\n[release](https://nodejs.org/api/os.html#osrelease)\n\n[setPriority](https://nodejs.org/api/os.html#ossetprioritypid-priority)\n\n[tmpdir](https://nodejs.org/api/os.html#osplatform)\n\n[totalmem](https://nodejs.org/api/os.html#ostotalmem)\n\n[type](https://nodejs.org/api/os.html#ostype)\n\n[uptime](https://nodejs.org/api/os.html#osuptime)\n\n[userInfo](https://nodejs.org/api/os.html#osuserinfooptions)\n\n[version](https://nodejs.org/api/os.html#osversion)\n\n## path\n\n[basename](https://nodejs.org/api/path.html#pathbasenamepath-suffix)\n\n[delimiter](https://nodejs.org/api/path.html#pathdelimiter)\n\n[dirname](https://nodejs.org/api/path.html#pathdirnamepath)\n\n[extname](https://nodejs.org/api/path.html#pathextnamepath)\n\n[format](https://nodejs.org/api/path.html#pathformatpathobject)\n\n[isAbsolute](https://nodejs.org/api/path.html#pathisabsolutepath)\n\n[join](https://nodejs.org/api/path.html#pathjoinpaths)\n\n[normalize](https://nodejs.org/api/path.html#pathnormalizepath)\n\n[parse](https://nodejs.org/api/path.html#pathparsepath)\n\n[relative](https://nodejs.org/api/path.html#pathrelativefrom-to)\n\n[resolve](https://nodejs.org/api/path.html#pathresolvepaths)\n\n## perf_hooks\n\n_performance is available globally_\n\n[performance.now](https://nodejs.org/api/perf_hooks.html#performancenow)\n\n## process\n\n_process is available globally_\n\n[arch](https://nodejs.org/api/process.html#processarch)\n\n[argv](https://nodejs.org/api/process.html#processargv)\n\n[argv0](https://nodejs.org/api/process.html#processargv0)\n\n[cwd](https://nodejs.org/api/process.html#processcwd)\n\n[env](https://nodejs.org/api/process.html#processenv)\n\n[exit](https://nodejs.org/api/process.html#processexitcode)\n\n[exitCode](https://nodejs.org/api/process.html#processexitcode-1)\n\n[getegid](https://nodejs.org/api/process.html#processgetegid)\n\n[geteuid](https://nodejs.org/api/process.html#processgeteuid)\n\n[getgid](https://nodejs.org/api/process.html#processgetgid)\n\n[getuid](https://nodejs.org/api/process.html#processgetuid)\n\n[hrtime](https://nodejs.org/api/process.html#processhrtime)\n\n[id](https://nodejs.org/api/process.html#processpid)\n\n[kill](https://nodejs.org/api/process.html#processkillpid-signal)\n\n[platform](https://nodejs.org/api/process.html#processplatform)\n\n[release](https://nodejs.org/api/process.html#processrelease)\n\n[setegid](https://nodejs.org/api/process.html#processsetegidgid)\n\n[seteuid](https://nodejs.org/api/process.html#processseteuiduid)\n\n[setgid](https://nodejs.org/api/process.html#processsetgidgid)\n\n[setuid](https://nodejs.org/api/process.html#processsetuiduid)\n\n[version](https://nodejs.org/api/process.html#processversion)\n\n[versions](https://nodejs.org/api/process.html#processversions)\n\n## stream\n\n[Duplex](https://nodejs.org/api/stream.html#class-streamduplex)\n\n[PassThrough](https://nodejs.org/api/stream.html#class-streampassthrough)\n\n[Readable](https://nodejs.org/api/stream.html#class-streamreadable)\n\n[Stream](https://nodejs.org/api/stream.html#class-stream)\n\n[Transform](https://nodejs.org/api/stream.html#class-streamtransform)\n\n[Writable](https://nodejs.org/api/stream.html#class-streamwritable)\n\n[finished](https://nodejs.org/api/stream.html#streamfinishedstream-options-callback)\n\n[pipeline](https://nodejs.org/api/stream.html#streampipelinestreams-callback)\n\n## stream/promises\n\n[finished](https://nodejs.org/api/stream.html#streamfinishedstream-options-callback)\n\n[pipeline](https://nodejs.org/api/stream.html#streampipelinestreams-callback)\n\n## string_decoder\n\n[StringDecoder](https://nodejs.org/api/string_decoder.html#class-stringdecoder)\n\n## timers\n\n_Also available globally_\n\n[clearImmediate](https://nodejs.org/api/timers.html#clearimmediateimmediate)\n\n[clearInterval](https://nodejs.org/api/timers.html#clearintervaltimeout)\n\n[clearTimeout](https://nodejs.org/api/timers.html#cleartimeouttimeout)\n\n[setImmediate](https://nodejs.org/api/timers.html#setimmediatecallback-args)\n\n[setInterval](https://nodejs.org/api/timers.html#setintervalcallback-delay-args)\n\n[setTimeout](https://nodejs.org/api/timers.html#settimeoutcallback-delay-args)\n\n## tty\n\n[isatty](https://nodejs.org/api/tty.html#ttyisattyfd)\n\n## url\n\n### Class\n\n[URL](https://nodejs.org/api/url.html#class-url)\n\n[URLSearchParams](https://nodejs.org/api/url.html#class-urlsearchparams)\n\n### Prototype methods\n\n[domainToASCII](https://nodejs.org/api/url.html#urldomaintoasciidomain)\n\n[domainToUnicode](https://nodejs.org/api/url.html#urldomaintounicodedomain)\n\n[fileURLToPath](https://nodejs.org/api/url.html#urlfileurltopathurl-options)\n\n[format](https://nodejs.org/api/url.html#urlformaturl-options)\n\n[pathToFileURL](https://nodejs.org/api/url.html#urlpathtofileurlpath-options)\n\n[urlToHttpOptions](https://nodejs.org/api/url.html#urlurltohttpoptionsurl)\n\n## util\n\n> [!IMPORTANT]\n> Supported encodings: hex, base64, utf-8, utf-16le, windows-1252 and their aliases.\n\n[format](https://nodejs.org/api/util.html#utilformatformat-args)\n\n[inherits](https://nodejs.org/api/util.html#utilinheritsconstructor-superconstructor)\n\n[styleText](https://nodejs.org/api/util.html#utilstyletextformat-text)\n\n[inspect](https://nodejs.org/api/util.html#utilinspectobject-options)\n\n[TextDecoder](https://nodejs.org/api/util.html#class-utiltextdecoder)\n\n[TextDecoderStream](https://nodejs.org/api/webstreams.html#class-textdecoderstream)\n\n[TextEncoder](https://nodejs.org/api/util.html#class-utiltextdecoder)\n\n[TextEncoderStream](https://nodejs.org/api/webstreams.html#class-textencoderstream)\n\n## zlib\n\n### Convenience methods\n\n[deflate](https://nodejs.org/api/zlib.html#zlibdeflatebuffer-options-callback)\n\n[deflateSync](https://nodejs.org/api/zlib.html#zlibdeflatesyncbuffer-options)\n\n[deflateRaw](https://nodejs.org/api/zlib.html#zlibdeflaterawbuffer-options-callback)\n\n[deflateRawSync](https://nodejs.org/api/zlib.html#zlibdeflaterawsyncbuffer-options)\n\n[gzip](https://nodejs.org/api/zlib.html#zlibgzipbuffer-options-callback)\n\n[gzipSync](https://nodejs.org/api/zlib.html#zlibgzipsyncbuffer-options)\n\n[inflate](https://nodejs.org/api/zlib.html#zlibinflatebuffer-options-callback)\n\n[inflateSync](https://nodejs.org/api/zlib.html#zlibinflatesyncbuffer-options)\n\n[inflateRaw](https://nodejs.org/api/zlib.html#zlibinflaterawbuffer-options-callback)\n\n[inflateRawSync](https://nodejs.org/api/zlib.html#zlibinflaterawsyncbuffer-options)\n\n[gunzip](https://nodejs.org/api/zlib.html#zlibgunzipbuffer-options-callback)\n\n[gunzipSync](https://nodejs.org/api/zlib.html#zlibgunzipsyncbuffer-options)\n\n[brotliCompress](https://nodejs.org/api/zlib.html#zlibbrotlicompressbuffer-options-callback)\n\n[brotliCompressSync](https://nodejs.org/api/zlib.html#zlibbrotlicompresssyncbuffer-options)\n\n[brotliDecompress](https://nodejs.org/api/zlib.html#zlibbrotlidecompressbuffer-options-callback)\n\n[brotliDecompressSync](https://nodejs.org/api/zlib.html#zlibbrotlidecompresssyncbuffer-options)\n\n[zstdCompress](https://nodejs.org/api/zlib.html#zlibzstdcompressbuffer-options-callback)\n\n[zstdCompressSync](https://nodejs.org/api/zlib.html#zlibzstdcompresssyncbuffer-options)\n\n[zstdDecompress](https://nodejs.org/api/zlib.html#zlibzstddecompressbuffer-options-callback)\n\n[zstdDecompressSync](https://nodejs.org/api/zlib.html#zlibzstddecompresssyncbuffer-options)\n\n# LLRT API\n\n## llrt:codec\n\n```typescript\nexport function decodeFromBase64(value: string): Uint8Array;\nexport function encodeToBase64(\n  value: string | Array | ArrayBuffer | Uint8Array\n): string;\nexport function decodeFromHex(value: string): Uint8Array;\nexport function encodeToHex(\n  value: string | Array | ArrayBuffer | Uint8Array\n): string;\n```\n\n## llrt:timezone\n\nLightweight timezone support for LLRT. Provides timezone offset calculations and a minimal `Intl.DateTimeFormat` implementation for dayjs and similar library compatibility.\n\n```typescript\ninterface Timezone {\n  /**\n   * Get the UTC offset in minutes for a timezone at a given time.\n   * Returns a positive value for timezones ahead of UTC (e.g., 540 for Asia/Tokyo)\n   * and a negative value for timezones behind UTC (e.g., -420 for America/Denver).\n   * Automatically handles DST transitions.\n   */\n  getOffset(timezone: string, epochMs: number): number;\n\n  /**\n   * List all available IANA timezone names.\n   */\n  list(): string[];\n}\n\ndeclare var Timezone: Timezone;\n\nexport { Timezone };\n```\n\n### Example\n\n```javascript\nimport { Timezone } from \"llrt:timezone\";\n\n// Get current offset for Denver (handles DST automatically)\nconst offset = Timezone.getOffset(\"America/Denver\", Date.now());\n// Returns -420 (UTC-7) in winter, -360 (UTC-6) in summer\n\n// Check DST transition\nconst beforeDst = new Date(\"2024-03-09T12:00:00Z\").getTime();\nconst afterDst = new Date(\"2024-03-11T12:00:00Z\").getTime();\nconsole.log(Timezone.getOffset(\"America/Denver\", beforeDst)); // -420\nconsole.log(Timezone.getOffset(\"America/Denver\", afterDst)); // -360\n\n// List all available timezones\nconst zones = Timezone.list();\n```\n\n### Intl.DateTimeFormat\n\nLLRT provides a minimal `Intl.DateTimeFormat` implementation focused on timezone support. This enables libraries like dayjs to work with timezone conversions transparently.\n\n```javascript\n// Create a formatter for a specific timezone\nconst formatter = new Intl.DateTimeFormat(\"en-US\", {\n  timeZone: \"America/Denver\",\n  hour12: false,\n  year: \"numeric\",\n  month: \"2-digit\",\n  day: \"2-digit\",\n  hour: \"2-digit\",\n  minute: \"2-digit\",\n  second: \"2-digit\",\n});\n\n// Format a date\nconst date = new Date(\"2022-03-02T15:45:34Z\");\nconsole.log(formatter.format(date)); // \"03/02/2022, 08:45:34\"\n\n// Get formatted parts\nconst parts = formatter.formatToParts(date);\n// [{ type: \"month\", value: \"03\" }, { type: \"literal\", value: \"/\" }, ...]\n\n// Get resolved options\nconst options = formatter.resolvedOptions();\nconsole.log(options.timeZone); // \"America/Denver\"\n```\n\n### Date.prototype.toLocaleString with timezone\n\n`Date.prototype.toLocaleString` is enhanced to support the `timeZone` option:\n\n```javascript\nconst date = new Date(\"2022-03-02T15:45:34Z\");\n\n// Convert to Denver time\nconsole.log(date.toLocaleString(\"en-US\", { timeZone: \"America/Denver\" }));\n// \"03/02/2022, 8:45:34 AM\"\n\n// Convert to Tokyo time\nconsole.log(date.toLocaleString(\"en-US\", { timeZone: \"Asia/Tokyo\" }));\n// \"03/03/2022, 12:45:34 AM\"\n```\n\n### Using with dayjs\n\nThe timezone module enables dayjs timezone support without polyfills:\n\n```javascript\nconst dayjs = require(\"dayjs\");\nconst utc = require(\"dayjs/plugin/utc\");\nconst timezone = require(\"dayjs/plugin/timezone\");\n\ndayjs.extend(utc);\ndayjs.extend(timezone);\n\n// Convert between timezones\nconst date = dayjs(\"2022-03-02T15:45:34Z\");\nconsole.log(date.tz(\"America/Denver\").format()); // \"2022-03-02T08:45:34-07:00\"\nconsole.log(date.tz(\"Asia/Tokyo\").format()); // \"2022-03-03T00:45:34+09:00\"\n\n// Get start of day in a specific timezone\nconst denver = date.tz(\"America/Denver\");\nconsole.log(denver.startOf(\"day\").format()); // \"2022-03-02T00:00:00-07:00\"\n```\n\n## llrt:qjs\n\n```typescript\ninterface MemoryInfo {\n  malloc_size: number;\n  malloc_limit: number;\n  memory_used_size: number;\n  malloc_count: number;\n  memory_used_count: number;\n  atom_count: number;\n  atom_size: number;\n  str_count: number;\n  str_size: number;\n  obj_count: number;\n  obj_size: number;\n  prop_count: number;\n  prop_size: number;\n  shape_count: number;\n  shape_size: number;\n  js_func_count: number;\n  js_func_size: number;\n  js_func_code_size: number;\n  js_func_pc2line_count: number;\n  js_func_pc2line_size: number;\n  c_func_count: number;\n  array_count: number;\n  fast_array_count: number;\n  fast_array_elements: number;\n  binary_object_count: number;\n  binary_object_size: number;\n}\nexport function ComputeMemoryUsage(): MemoryInfo;\n```\n\n## llrt:xml\n\nA lightweight and fast XML parser and builder\n\n```typescript\nexport class XmlText {\n  constructor(text: string);\n  toString(): string;\n}\n\nexport class XmlNode {\n  constructor(name: string);\n  withName(name: string): this;\n  addAttribute(name: string, value: string): this;\n  addChildNode(node: XmlNode | XmlText): this;\n  removeAttribute(name: string): this;\n  toString(): string;\n}\n\ntype XmlParserOptions = {\n    ignoreAttributes?: boolean;\n    attributeNamePrefix?: string;\n    textNodeName?: string;\n    attributeValueProcessor?: (attrName: string, attrValue: string, jpath: string) => unknown;\n    tagValueProcessor?: (attrName: string, attrValue: string, jpath: string, hasAttributes: boolean) => unknown;\n}\nexport class XMLParser(options?: XmlParserOptions){\n    parse(xml:string):object\n}\n```\n\n## llrt:util\n\n```typescript\nexport function dimensions(): [number, number];\nexport function load(path: string): any;\nexport function print(value: any): void;\n```\n\n# Web Platform API\n\n## CONSOLE\n\n[Console](https://developer.mozilla.org/en-US/docs/Web/API/console)\n\n## DOM\n\n[AbortController](https://developer.mozilla.org/en-US/docs/Web/API/AbortController)\n\n[AbortSignal](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal)\n\n[CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent)\n\n[Event](https://developer.mozilla.org/en-US/docs/Web/API/Event)\n\n[EventTarget](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget)\n\n## ECMASCRIPT\n\n[globalThis](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis)\n\n## ENCODING\n\n[TextDecoder](https://developer.mozilla.org/en-US/docs/Web/API/TextDecoder)\n\n[TextEncoder](https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder)\n\n## FETCH\n\n[Headers](https://developer.mozilla.org/en-US/docs/Web/API/Headers)\n\n[Request](https://developer.mozilla.org/en-US/docs/Web/API/Request)\n\n[Response](https://developer.mozilla.org/en-US/docs/Web/API/Response)\n\n[fetch](https://developer.mozilla.org/en-US/docs/Web/API/Headers)\n\n> [!IMPORTANT]\n> There are some differences with the [WHATWG standard](https://fetch.spec.whatwg.org). Mainly browser specific behavior is removed:\n>\n> - `keepalive` is always true\n> - `request.body` can only be `string`, `Array`, `ArrayBuffer` or `Uint8Array`\n> - `response.body` returns `null`. Use `response.text()`, `response.json()` etc\n> - `mode`, `credentials`, `referrerPolicy`, `priority`, `cache` is not available/applicable\n\n## FILEAPI\n\n[Blob](https://developer.mozilla.org/en-US/docs/Web/API/Blob)\n\n[File](https://developer.mozilla.org/en-US/docs/Web/API/File)\n\n## HR-TIME\n\n[performance.now](https://developer.mozilla.org/en-US/docs/Web/API/Performance/now)\n\n[performance.timeOrigin](https://developer.mozilla.org/en-US/docs/Web/API/Performance/timeOrigin)\n\n## HTML\n\n[atob](https://developer.mozilla.org/en-US/docs/Web/API/atob)\n\n[btoa](https://developer.mozilla.org/en-US/docs/Web/API/btoa)\n\n[clearInterval](https://developer.mozilla.org/en-US/docs/Web/API/Window/clearInterval)\n\n[clearTimeout](https://developer.mozilla.org/en-US/docs/Web/API/Window/clearTimeout)\n\n[navigator](https://developer.mozilla.org/en-US/docs/Web/API/Window/navigator)\n\n[queueMicrotask](https://developer.mozilla.org/en-US/docs/Web/API/Window/queueMicrotask)\n\n[setInterval](https://developer.mozilla.org/en-US/docs/Web/API/Window/setInterval)\n\n[setTimeout](https://developer.mozilla.org/en-US/docs/Web/API/Window/setTimeout)\n\n[structuredClone](https://developer.mozilla.org/en-US/docs/Web/API/Window/structuredClone)\n\n[userAgent](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/userAgent)\n\n## STREAMS\n\n[ByteLengthQueuingStrategy](https://developer.mozilla.org/en-US/docs/Web/API/ByteLengthQueuingStrategy)\n\n[CountQueuingStrategy](https://developer.mozilla.org/en-US/docs/Web/API/CountQueuingStrategy)\n\n[ReadableByteStreamController](https://developer.mozilla.org/en-US/docs/Web/API/ReadableByteStreamController)\n\n[ReadableStream](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream)\n\n[ReadableStreamBYOBReader](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamBYOBReader)\n\n[ReadableStreamBYOBRequest](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamBYOBRequest)\n\n[ReadableStreamDefaultController](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultController)\n\n[ReadableStreamDefaultReader](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultReader)\n\n[TransformStream](https://developer.mozilla.org/en-US/docs/Web/API/TransformStream)\n\n[TransformStreamDefaultController](https://developer.mozilla.org/en-US/docs/Web/API/TransformStreamDefaultController)\n\n[WritableStream](https://developer.mozilla.org/en-US/docs/Web/API/WritableStream)\n\n[WritableStreamDefaultController](https://developer.mozilla.org/en-US/docs/Web/API/WritableStreamDefaultController)\n\n[WritableStreamDefaultWriter](https://developer.mozilla.org/en-US/docs/Web/API/WritableStreamDefaultWriter)\n\n## URL\n\n[URL](https://developer.mozilla.org/en-US/docs/Web/API/URL)\n\n[URLSearchParams](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams)\n\n## WEBCRYPTO\n\n[Crypto](https://developer.mozilla.org/en-US/docs/Web/API/Crypto)\n\n[CryptoKey](https://developer.mozilla.org/en-US/docs/Web/API/CryptoKey)\n\n[SubtleCrypto](https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto)\n\n## WEBIDL\n\n[DOMException](https://developer.mozilla.org/en-US/docs/Web/API/DOMException)\n\n## XHR\n\n[FormData](https://developer.mozilla.org/en-US/docs/Web/API/FormData)\n"},"files":{"API.md":"# API documentation\n\n> [!NOTE]\n> The long term goal for LLRT is to become [WinterTC compliant](https://min-common-api.proposal.wintertc.org/). Not every API from Node.js will be supported.\n\n# Node.js API\n\n## assert\n\n[ok](https://nodejs.org/api/assert.html#assertokvalue-message)\n\n## async_hooks\n\n### Static methods\n\n[createHook](https://nodejs.org/api/async_hooks.html#async_hookscreatehookcallbacks)\n\n[currentId](https://nodejs.org/api/async_hooks.html#async_hooksexecutionasyncid)\n\n[executionAsyncId](https://nodejs.org/api/async_hooks.html#async_hooksexecutionasyncid)\n\n[triggerAsyncId](https://nodejs.org/api/async_hooks.html#async_hookstriggerasyncid)\n\n### Class: AsyncHook\n\n[enable](https://nodejs.org/api/async_hooks.html#asynchookenable)\n\n[disable](https://nodejs.org/api/async_hooks.html#asynchookdisable)\n\n#### Hook callbacks\n\n[init](https://nodejs.org/api/async_hooks.html#initasyncid-type-triggerasyncid-resource)\n\n[before](https://nodejs.org/api/async_hooks.html#beforeasyncid)\n\n[after](https://nodejs.org/api/async_hooks.html#afterasyncid)\n\n[destroy](https://nodejs.org/api/async_hooks.html#destroyasyncid)\n\n[promiseResolve](https://nodejs.org/api/async_hooks.html#promiseresolveasyncid)\n\n## buffer\n\n### Static methods\n\n[alloc](https://nodejs.org/api/buffer.html#static-method-bufferallocsize-fill-encoding)\n\n[allocUnsafe](https://nodejs.org/api/buffer.html#static-method-bufferallocunsafesize)\n\n[allocUnsafeSlow](https://nodejs.org/api/buffer.html#static-method-bufferallocunsafeslowsize)\n\n[byteLength](https://nodejs.org/api/buffer.html#static-method-bufferbytelengthstring-encoding)\n\n[concat](https://nodejs.org/api/buffer.html#static-method-bufferconcatlist-totallength)\n\n[from](https://nodejs.org/api/buffer.html#static-method-bufferfromarray)\n\n[isBuffer](https://nodejs.org/api/buffer.html#static-method-bufferisbufferobj)\n\n[isEncoding](https://nodejs.org/api/buffer.html#static-method-bufferisencodingencoding)\n\n### Prototype methods\n\n[copy](https://nodejs.org/api/buffer.html#bufcopytarget-targetstart-sourcestart-sourceend)\n\n[readBigInt64BE](https://nodejs.org/api/buffer.html#bufreadbigint64beoffset)\n\n[readBigInt64LE](https://nodejs.org/api/buffer.html#bufreadbigint64leoffset)\n\n[readDoubleBE](https://nodejs.org/api/buffer.html#bufreaddoublebeoffset)\n\n[readDoubleLE](https://nodejs.org/api/buffer.html#bufreaddoubleleoffset)\n\n[readFloatBE](https://nodejs.org/api/buffer.html#bufreadfloatbeoffset)\n\n[readFloatLE](https://nodejs.org/api/buffer.html#bufreadfloatleoffset)\n\n[readInt8](https://nodejs.org/api/buffer.html#bufreadint8offset)\n\n[readInt16BE](https://nodejs.org/api/buffer.html#bufreadint16beoffset)\n\n[readInt16LE](https://nodejs.org/api/buffer.html#bufreadint16leoffset)\n\n[readInt32BE](https://nodejs.org/api/buffer.html#bufreadint32beoffset)\n\n[readInt32LE](https://nodejs.org/api/buffer.html#bufreadint32leoffset)\n\n[readUInt8](https://nodejs.org/api/buffer.html#bufreaduint8offset)\n\n[readUInt16BE](https://nodejs.org/api/buffer.html#bufreaduint16beoffset)\n\n[readUInt16LE](https://nodejs.org/api/buffer.html#bufreaduint16leoffset)\n\n[readUInt32BE](https://nodejs.org/api/buffer.html#bufreaduint32beoffset)\n\n[readUInt32LE](https://nodejs.org/api/buffer.html#bufreaduint32leoffset)\n\n[subarray](https://nodejs.org/api/buffer.html#bufsubarraystart-end)\n\n[toString](https://nodejs.org/api/buffer.html#buftostringencoding-start-end)\n\n[write](https://nodejs.org/api/buffer.html#bufwritestring-offset-length-encoding)\n\n[writeBigInt64BE](https://nodejs.org/api/buffer.html#bufwritebigint64bevalue-offset)\n\n[writeBigInt64LE](https://nodejs.org/api/buffer.html#bufwritebigint64levalue-offset)\n\n[writeDoubleBE](https://nodejs.org/api/buffer.html#bufwritedoublebevalue-offset)\n\n[writeDoubleLE](https://nodejs.org/api/buffer.html#bufwritedoublelevalue-offset)\n\n[writeFloatBE](https://nodejs.org/api/buffer.html#bufwritefloatbevalue-offset)\n\n[writeFloatLE](https://nodejs.org/api/buffer.html#bufwritefloatlevalue-offset)\n\n[writeInt8](https://nodejs.org/api/buffer.html#bufwriteint8value-offset)\n\n[writeInt16BE](https://nodejs.org/api/buffer.html#bufwriteint16bevalue-offset)\n\n[writeInt16LE](https://nodejs.org/api/buffer.html#bufwriteint16levalue-offset)\n\n[writeInt32BE](https://nodejs.org/api/buffer.html#bufwriteint32bevalue-offset)\n\n[writeInt32LE](https://nodejs.org/api/buffer.html#bufwriteint32levalue-offset)\n\n[writeUInt8](https://nodejs.org/api/buffer.html#bufwriteuint8value-offset)\n\n[writeUInt16BE](https://nodejs.org/api/buffer.html#bufwriteuint16bevalue-offset)\n\n[writeUInt16LE](https://nodejs.org/api/buffer.html#bufwriteuint16levalue-offset)\n\n[writeUInt32BE](https://nodejs.org/api/buffer.html#bufwriteuint32bevalue-offset)\n\n[writeUInt32LE](https://nodejs.org/api/buffer.html#bufwriteuint32levalue-offset)\n\n### Constants\n\n[constants.MAX_LENGTH](https://nodejs.org/api/buffer.html#bufferconstantsmax_length)\n\n[constants.MAX_STRING_LENGTH](https://nodejs.org/api/buffer.html#bufferconstantsmax_string_length)\n\nEverything else inherited from [Uint8Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array)\n\n## child_process\n\n> [!WARNING]\n> `spawn` uses native streams that is not 100% compatible with the Node.js Streams API.\n\n[spawn](https://nodejs.org/api/child_process.html#child_processspawncommand-args-options)\n\n[execFile](https://nodejs.org/api/child_process.html#child_processexecfilefile-args-options-callback)\n\n## console\n\n[Console](https://nodejs.org/api/console.html#class-console)\n\n## crypto\n\n[createHash](https://nodejs.org/api/crypto.html#cryptocreatehashalgorithm-options)\n\n[createHmac](https://nodejs.org/api/crypto.html#cryptocreatehmacalgorithm-key-options)\n\n[getRandomValues](https://nodejs.org/api/crypto.html#cryptogetrandomvaluestypedarray)\n\n[randomBytes](https://nodejs.org/api/crypto.html#cryptorandombytessize-callback)\n\n[randomFill](https://nodejs.org/api/crypto.html#cryptorandomfillbuffer-offset-size-callback)\n\n[randomFillSync](https://nodejs.org/api/crypto.html#cryptorandomfillsyncbuffer-offset-size)\n\n[randomInt](https://nodejs.org/api/crypto.html#cryptorandomintmin-max-callback)\n\n[randomUUID](https://nodejs.org/api/crypto.html#cryptorandomuuidoptions)\n\n[webcrypto](https://nodejs.org/api/crypto.html#cryptowebcrypto)\n\n### LLRT specific hash classes\n\nLightweight and fast hash classes for LLRT.\n\n- `Md5`\n- `Sha1`\n- `Sha256`\n- `Sha384`\n- `Sha512`\n- `Crc32`\n- `Crc32c`\n\n## crypto.subtle\n\n[subtle.decrypt](https://w3c.github.io/webcrypto/#SubtleCrypto-method-decrypt)\n\n[subtle.decapsulateBits](https://wicg.github.io/webcrypto-modern-algos/#SubtleCrypto-method-decapsulateBits)\n\n[subtle.decapsulateKey](https://wicg.github.io/webcrypto-modern-algos/#SubtleCrypto-method-decapsulateKey)\n\n[subtle.deriveBits](https://w3c.github.io/webcrypto/#SubtleCrypto-method-deriveBits)\n\n[subtle.deriveKey](https://w3c.github.io/webcrypto/#SubtleCrypto-method-deriveKey)\n\n[subtle.digest](https://w3c.github.io/webcrypto/#SubtleCrypto-method-digest)\n\n[subtle.encapsulateBits](https://wicg.github.io/webcrypto-modern-algos/#SubtleCrypto-method-encapsulateBits)\n\n[subtle.encapsulateKey](https://wicg.github.io/webcrypto-modern-algos/#SubtleCrypto-method-encapsulateKey)\n\n[subtle.encrypt](https://w3c.github.io/webcrypto/#SubtleCrypto-method-encrypt)\n\n[subtle.exportKey](https://w3c.github.io/webcrypto/#SubtleCrypto-method-exportKey)\n\n[subtle.generateKey](https://w3c.github.io/webcrypto/#SubtleCrypto-method-generateKey)\n\n[subtle.getPublicKey](https://wicg.github.io/webcrypto-modern-algos/#SubtleCrypto-method-getPublicKey)\n\n[subtle.importKey](https://w3c.github.io/webcrypto/#SubtleCrypto-method-importKey)\n\n[subtle.sign](https://w3c.github.io/webcrypto/#SubtleCrypto-method-sign)\n\n[subtle.unwrapKey](https://w3c.github.io/webcrypto/#SubtleCrypto-method-unwrapKey)\n\n[subtle.verify](https://w3c.github.io/webcrypto/#SubtleCrypto-method-verify)\n\n[subtle.wrapKey](https://w3c.github.io/webcrypto/#SubtleCrypto-method-wrapKey)\n\n[SubtleCrypto.supports](https://wicg.github.io/webcrypto-modern-algos/#SubtleCrypto-method-supports)\n\n## dgram\n\n[createSocket](https://nodejs.org/api/dgram.html#dgramcreatesocketoptions-callback)\n\n### Class: dgram.Socket\n\n[address](https://nodejs.org/api/dgram.html#socketaddress)\n\n[bind](https://nodejs.org/api/dgram.html#socketbindport-address-callback)\n\n[close](https://nodejs.org/api/dgram.html#socketclosecallback)\n\n[ref](https://nodejs.org/api/dgram.html#socketref)\n\n[send](https://nodejs.org/api/dgram.html#socketsendmsg-offset-length-port-address-callback)\n\n[unref](hhttps://nodejs.org/api/dgram.html#socketunref)\n\n## dns\n\n[lookup](https://nodejs.org/api/dns.html#dnslookuphostname-options-callback)\n\n## events\n\n[EventEmitter](https://nodejs.org/api/events.html#class-eventemitter)\n\n## fs\n\n[accessSync](https://nodejs.org/api/fs.html#fsaccesssyncpath-mode)\n\n[constants](https://nodejs.org/api/fs.html#file-access-constants)\n\n[lstatSync](https://nodejs.org/api/fs.html#fslstatsyncpath-options)\n\n[mkdirSync](https://nodejs.org/api/fs.html#fsmkdirsyncpath-options)\n\n[mkdtempSync](https://nodejs.org/api/fs.html#fsmkdtempsyncprefix-options)\n\n[readdirSync](https://nodejs.org/api/fs.html#fsreaddirsyncpath-options)\n\n[readFileSync](https://nodejs.org/api/fs.html#fsreadfilesyncpath-options)\n\n[rmdirSync](https://nodejs.org/api/fs.html#fsrmdirsyncpath-options)\n\n[rmSync](https://nodejs.org/api/fs.html#fsrmsyncpath-options)\n\n[statSync](https://nodejs.org/api/fs.html#fsstatsyncpath-options)\n\n[writeFileSync](https://nodejs.org/api/fs.html#fswritefilesyncfile-data-options)\n\n[chmodSync](https://nodejs.org/api/fs.html#fschmodsyncpath-mode)\n\n[renameSync](https://nodejs.org/api/fs.html#fsrenamesyncoldpath-newpath)\n\n[symlinkSync](https://nodejs.org/api/fs.html#fssymlinksynctarget-path-type)\n\n## fs/promises\n\n[access](https://nodejs.org/api/fs.html#fsstatpath-options-callback)\n\n[constants](https://nodejs.org/api/fs.html#file-access-constants)\n\n[lstat](https://nodejs.org/api/fs.html#fspromiseslstatpath-options)\n\n[mkdir](https://nodejs.org/api/fs.html#fsmkdirpath-options-callback)\n\n[mkdtemp](https://nodejs.org/api/fs.html#fsmkdtempprefix-options-callback)\n\n[open](https://nodejs.org/api/fs.html#fspromisesopenpath-flags-mode)\n\n[readdir](https://nodejs.org/api/fs.html#fspromisesreaddirpath-options)\n\n[readFile](https://nodejs.org/api/fs.html#filehandlereadfileoptions)\n\n[rm](https://nodejs.org/api/fs.html#fsrmpath-options-callback)\n\n[rmdir](https://nodejs.org/api/fs.html#fsrmdirpath-options-callback)\n\n[stat](https://nodejs.org/api/fs.html#fsstatpath-options-callback)\n\n[writeFile](https://nodejs.org/api/fs.html#fspromiseswritefilefile-data-options)\n\n[chmod](https://nodejs.org/api/fs.html#fspromiseschmodpath-mode)\n\n[rename](https://nodejs.org/api/fs.html#fspromisesrenameoldpath-newpath)\n\n[symlink](https://nodejs.org/api/fs.html#fspromisessymlinktarget-path-type)\n\n## https\n\n[Agent](https://nodejs.org/api/https.html#class-httpsagent)\n\n## module\n\n[builtinModules](https://nodejs.org/api/module.html#modulebuiltinmodules)\n\n[createRequire](https://nodejs.org/api/module.html#modulecreaterequirefilename)\n\n> [!NOTE]\n> `require` is available from esm modules natively. This function is just for compatibility\n\n[isBuiltin](https://nodejs.org/api/module.html#moduleisbuiltinmodulename)\n\n[registerHooks](https://nodejs.org/api/module.html#moduleregisterhooksoptions)\n\n## net\n\n> [!WARNING]\n> These APIs uses native streams that is not 100% compatible with the Node.js Streams API. Server APIs like `createSever` provides limited functionality useful for testing purposes. Serverless applications typically don't expose servers. Some server options are not supported:\n> `highWaterMark`, `pauseOnConnect`, `keepAlive`, `noDelay`, `keepAliveInitialDelay`\n\n[connect](https://nodejs.org/api/net.html#netconnect)\n\n[createConnection](https://nodejs.org/api/net.html#netcreateconnection)\n\n[createServer](https://nodejs.org/api/net.html#netcreateserveroptions-connectionlistener)\n\n## os\n\n[arch](https://nodejs.org/api/os.html#osarch)\n\n[availableParallelism](https://nodejs.org/api/os.html#osavailableparallelism)\n\n[cpus](https://nodejs.org/api/os.html#oscpus)\n\n[devNull](https://nodejs.org/api/os.html#osdevnull)\n\n[endianness](https://nodejs.org/api/os.html#osendianness)\n\n[EOL](https://nodejs.org/api/os.html#oseol)\n\n[freemem](https://nodejs.org/api/os.html#osfreemem)\n\n[getPriority](https://nodejs.org/api/os.html#osgetprioritypid)\n\n[homedir](https://nodejs.org/api/os.html#oshomedir)\n\n[hostname](https://nodejs.org/api/os.html#oshostname)\n\n[loadavg](https://nodejs.org/api/os.html#osloadavg)\n\n[machine](https://nodejs.org/api/os.html#osmachine)\n\n[networkInterfaces](https://nodejs.org/api/os.html#osnetworkinterfaces)\n\n[platform](https://nodejs.org/api/os.html#osplatform)\n\n[release](https://nodejs.org/api/os.html#osrelease)\n\n[setPriority](https://nodejs.org/api/os.html#ossetprioritypid-priority)\n\n[tmpdir](https://nodejs.org/api/os.html#osplatform)\n\n[totalmem](https://nodejs.org/api/os.html#ostotalmem)\n\n[type](https://nodejs.org/api/os.html#ostype)\n\n[uptime](https://nodejs.org/api/os.html#osuptime)\n\n[userInfo](https://nodejs.org/api/os.html#osuserinfooptions)\n\n[version](https://nodejs.org/api/os.html#osversion)\n\n## path\n\n[basename](https://nodejs.org/api/path.html#pathbasenamepath-suffix)\n\n[delimiter](https://nodejs.org/api/path.html#pathdelimiter)\n\n[dirname](https://nodejs.org/api/path.html#pathdirnamepath)\n\n[extname](https://nodejs.org/api/path.html#pathextnamepath)\n\n[format](https://nodejs.org/api/path.html#pathformatpathobject)\n\n[isAbsolute](https://nodejs.org/api/path.html#pathisabsolutepath)\n\n[join](https://nodejs.org/api/path.html#pathjoinpaths)\n\n[normalize](https://nodejs.org/api/path.html#pathnormalizepath)\n\n[parse](https://nodejs.org/api/path.html#pathparsepath)\n\n[relative](https://nodejs.org/api/path.html#pathrelativefrom-to)\n\n[resolve](https://nodejs.org/api/path.html#pathresolvepaths)\n\n## perf_hooks\n\n_performance is available globally_\n\n[performance.now](https://nodejs.org/api/perf_hooks.html#performancenow)\n\n## process\n\n_process is available globally_\n\n[arch](https://nodejs.org/api/process.html#processarch)\n\n[argv](https://nodejs.org/api/process.html#processargv)\n\n[argv0](https://nodejs.org/api/process.html#processargv0)\n\n[cwd](https://nodejs.org/api/process.html#processcwd)\n\n[env](https://nodejs.org/api/process.html#processenv)\n\n[exit](https://nodejs.org/api/process.html#processexitcode)\n\n[exitCode](https://nodejs.org/api/process.html#processexitcode-1)\n\n[getegid](https://nodejs.org/api/process.html#processgetegid)\n\n[geteuid](https://nodejs.org/api/process.html#processgeteuid)\n\n[getgid](https://nodejs.org/api/process.html#processgetgid)\n\n[getuid](https://nodejs.org/api/process.html#processgetuid)\n\n[hrtime](https://nodejs.org/api/process.html#processhrtime)\n\n[id](https://nodejs.org/api/process.html#processpid)\n\n[kill](https://nodejs.org/api/process.html#processkillpid-signal)\n\n[platform](https://nodejs.org/api/process.html#processplatform)\n\n[release](https://nodejs.org/api/process.html#processrelease)\n\n[setegid](https://nodejs.org/api/process.html#processsetegidgid)\n\n[seteuid](https://nodejs.org/api/process.html#processseteuiduid)\n\n[setgid](https://nodejs.org/api/process.html#processsetgidgid)\n\n[setuid](https://nodejs.org/api/process.html#processsetuiduid)\n\n[version](https://nodejs.org/api/process.html#processversion)\n\n[versions](https://nodejs.org/api/process.html#processversions)\n\n## stream\n\n[Duplex](https://nodejs.org/api/stream.html#class-streamduplex)\n\n[PassThrough](https://nodejs.org/api/stream.html#class-streampassthrough)\n\n[Readable](https://nodejs.org/api/stream.html#class-streamreadable)\n\n[Stream](https://nodejs.org/api/stream.html#class-stream)\n\n[Transform](https://nodejs.org/api/stream.html#class-streamtransform)\n\n[Writable](https://nodejs.org/api/stream.html#class-streamwritable)\n\n[finished](https://nodejs.org/api/stream.html#streamfinishedstream-options-callback)\n\n[pipeline](https://nodejs.org/api/stream.html#streampipelinestreams-callback)\n\n## stream/promises\n\n[finished](https://nodejs.org/api/stream.html#streamfinishedstream-options-callback)\n\n[pipeline](https://nodejs.org/api/stream.html#streampipelinestreams-callback)\n\n## string_decoder\n\n[StringDecoder](https://nodejs.org/api/string_decoder.html#class-stringdecoder)\n\n## timers\n\n_Also available globally_\n\n[clearImmediate](https://nodejs.org/api/timers.html#clearimmediateimmediate)\n\n[clearInterval](https://nodejs.org/api/timers.html#clearintervaltimeout)\n\n[clearTimeout](https://nodejs.org/api/timers.html#cleartimeouttimeout)\n\n[setImmediate](https://nodejs.org/api/timers.html#setimmediatecallback-args)\n\n[setInterval](https://nodejs.org/api/timers.html#setintervalcallback-delay-args)\n\n[setTimeout](https://nodejs.org/api/timers.html#settimeoutcallback-delay-args)\n\n## tty\n\n[isatty](https://nodejs.org/api/tty.html#ttyisattyfd)\n\n## url\n\n### Class\n\n[URL](https://nodejs.org/api/url.html#class-url)\n\n[URLSearchParams](https://nodejs.org/api/url.html#class-urlsearchparams)\n\n### Prototype methods\n\n[domainToASCII](https://nodejs.org/api/url.html#urldomaintoasciidomain)\n\n[domainToUnicode](https://nodejs.org/api/url.html#urldomaintounicodedomain)\n\n[fileURLToPath](https://nodejs.org/api/url.html#urlfileurltopathurl-options)\n\n[format](https://nodejs.org/api/url.html#urlformaturl-options)\n\n[pathToFileURL](https://nodejs.org/api/url.html#urlpathtofileurlpath-options)\n\n[urlToHttpOptions](https://nodejs.org/api/url.html#urlurltohttpoptionsurl)\n\n## util\n\n> [!IMPORTANT]\n> Supported encodings: hex, base64, utf-8, utf-16le, windows-1252 and their aliases.\n\n[format](https://nodejs.org/api/util.html#utilformatformat-args)\n\n[inherits](https://nodejs.org/api/util.html#utilinheritsconstructor-superconstructor)\n\n[styleText](https://nodejs.org/api/util.html#utilstyletextformat-text)\n\n[inspect](https://nodejs.org/api/util.html#utilinspectobject-options)\n\n[TextDecoder](https://nodejs.org/api/util.html#class-utiltextdecoder)\n\n[TextDecoderStream](https://nodejs.org/api/webstreams.html#class-textdecoderstream)\n\n[TextEncoder](https://nodejs.org/api/util.html#class-utiltextdecoder)\n\n[TextEncoderStream](https://nodejs.org/api/webstreams.html#class-textencoderstream)\n\n## zlib\n\n### Convenience methods\n\n[deflate](https://nodejs.org/api/zlib.html#zlibdeflatebuffer-options-callback)\n\n[deflateSync](https://nodejs.org/api/zlib.html#zlibdeflatesyncbuffer-options)\n\n[deflateRaw](https://nodejs.org/api/zlib.html#zlibdeflaterawbuffer-options-callback)\n\n[deflateRawSync](https://nodejs.org/api/zlib.html#zlibdeflaterawsyncbuffer-options)\n\n[gzip](https://nodejs.org/api/zlib.html#zlibgzipbuffer-options-callback)\n\n[gzipSync](https://nodejs.org/api/zlib.html#zlibgzipsyncbuffer-options)\n\n[inflate](https://nodejs.org/api/zlib.html#zlibinflatebuffer-options-callback)\n\n[inflateSync](https://nodejs.org/api/zlib.html#zlibinflatesyncbuffer-options)\n\n[inflateRaw](https://nodejs.org/api/zlib.html#zlibinflaterawbuffer-options-callback)\n\n[inflateRawSync](https://nodejs.org/api/zlib.html#zlibinflaterawsyncbuffer-options)\n\n[gunzip](https://nodejs.org/api/zlib.html#zlibgunzipbuffer-options-callback)\n\n[gunzipSync](https://nodejs.org/api/zlib.html#zlibgunzipsyncbuffer-options)\n\n[brotliCompress](https://nodejs.org/api/zlib.html#zlibbrotlicompressbuffer-options-callback)\n\n[brotliCompressSync](https://nodejs.org/api/zlib.html#zlibbrotlicompresssyncbuffer-options)\n\n[brotliDecompress](https://nodejs.org/api/zlib.html#zlibbrotlidecompressbuffer-options-callback)\n\n[brotliDecompressSync](https://nodejs.org/api/zlib.html#zlibbrotlidecompresssyncbuffer-options)\n\n[zstdCompress](https://nodejs.org/api/zlib.html#zlibzstdcompressbuffer-options-callback)\n\n[zstdCompressSync](https://nodejs.org/api/zlib.html#zlibzstdcompresssyncbuffer-options)\n\n[zstdDecompress](https://nodejs.org/api/zlib.html#zlibzstddecompressbuffer-options-callback)\n\n[zstdDecompressSync](https://nodejs.org/api/zlib.html#zlibzstddecompresssyncbuffer-options)\n\n# LLRT API\n\n## llrt:codec\n\n```typescript\nexport function decodeFromBase64(value: string): Uint8Array;\nexport function encodeToBase64(\n  value: string | Array | ArrayBuffer | Uint8Array\n): string;\nexport function decodeFromHex(value: string): Uint8Array;\nexport function encodeToHex(\n  value: string | Array | ArrayBuffer | Uint8Array\n): string;\n```\n\n## llrt:timezone\n\nLightweight timezone support for LLRT. Provides timezone offset calculations and a minimal `Intl.DateTimeFormat` implementation for dayjs and similar library compatibility.\n\n```typescript\ninterface Timezone {\n  /**\n   * Get the UTC offset in minutes for a timezone at a given time.\n   * Returns a positive value for timezones ahead of UTC (e.g., 540 for Asia/Tokyo)\n   * and a negative value for timezones behind UTC (e.g., -420 for America/Denver).\n   * Automatically handles DST transitions.\n   */\n  getOffset(timezone: string, epochMs: number): number;\n\n  /**\n   * List all available IANA timezone names.\n   */\n  list(): string[];\n}\n\ndeclare var Timezone: Timezone;\n\nexport { Timezone };\n```\n\n### Example\n\n```javascript\nimport { Timezone } from \"llrt:timezone\";\n\n// Get current offset for Denver (handles DST automatically)\nconst offset = Timezone.getOffset(\"America/Denver\", Date.now());\n// Returns -420 (UTC-7) in winter, -360 (UTC-6) in summer\n\n// Check DST transition\nconst beforeDst = new Date(\"2024-03-09T12:00:00Z\").getTime();\nconst afterDst = new Date(\"2024-03-11T12:00:00Z\").getTime();\nconsole.log(Timezone.getOffset(\"America/Denver\", beforeDst)); // -420\nconsole.log(Timezone.getOffset(\"America/Denver\", afterDst)); // -360\n\n// List all available timezones\nconst zones = Timezone.list();\n```\n\n### Intl.DateTimeFormat\n\nLLRT provides a minimal `Intl.DateTimeFormat` implementation focused on timezone support. This enables libraries like dayjs to work with timezone conversions transparently.\n\n```javascript\n// Create a formatter for a specific timezone\nconst formatter = new Intl.DateTimeFormat(\"en-US\", {\n  timeZone: \"America/Denver\",\n  hour12: false,\n  year: \"numeric\",\n  month: \"2-digit\",\n  day: \"2-digit\",\n  hour: \"2-digit\",\n  minute: \"2-digit\",\n  second: \"2-digit\",\n});\n\n// Format a date\nconst date = new Date(\"2022-03-02T15:45:34Z\");\nconsole.log(formatter.format(date)); // \"03/02/2022, 08:45:34\"\n\n// Get formatted parts\nconst parts = formatter.formatToParts(date);\n// [{ type: \"month\", value: \"03\" }, { type: \"literal\", value: \"/\" }, ...]\n\n// Get resolved options\nconst options = formatter.resolvedOptions();\nconsole.log(options.timeZone); // \"America/Denver\"\n```\n\n### Date.prototype.toLocaleString with timezone\n\n`Date.prototype.toLocaleString` is enhanced to support the `timeZone` option:\n\n```javascript\nconst date = new Date(\"2022-03-02T15:45:34Z\");\n\n// Convert to Denver time\nconsole.log(date.toLocaleString(\"en-US\", { timeZone: \"America/Denver\" }));\n// \"03/02/2022, 8:45:34 AM\"\n\n// Convert to Tokyo time\nconsole.log(date.toLocaleString(\"en-US\", { timeZone: \"Asia/Tokyo\" }));\n// \"03/03/2022, 12:45:34 AM\"\n```\n\n### Using with dayjs\n\nThe timezone module enables dayjs timezone support without polyfills:\n\n```javascript\nconst dayjs = require(\"dayjs\");\nconst utc = require(\"dayjs/plugin/utc\");\nconst timezone = require(\"dayjs/plugin/timezone\");\n\ndayjs.extend(utc);\ndayjs.extend(timezone);\n\n// Convert between timezones\nconst date = dayjs(\"2022-03-02T15:45:34Z\");\nconsole.log(date.tz(\"America/Denver\").format()); // \"2022-03-02T08:45:34-07:00\"\nconsole.log(date.tz(\"Asia/Tokyo\").format()); // \"2022-03-03T00:45:34+09:00\"\n\n// Get start of day in a specific timezone\nconst denver = date.tz(\"America/Denver\");\nconsole.log(denver.startOf(\"day\").format()); // \"2022-03-02T00:00:00-07:00\"\n```\n\n## llrt:qjs\n\n```typescript\ninterface MemoryInfo {\n  malloc_size: number;\n  malloc_limit: number;\n  memory_used_size: number;\n  malloc_count: number;\n  memory_used_count: number;\n  atom_count: number;\n  atom_size: number;\n  str_count: number;\n  str_size: number;\n  obj_count: number;\n  obj_size: number;\n  prop_count: number;\n  prop_size: number;\n  shape_count: number;\n  shape_size: number;\n  js_func_count: number;\n  js_func_size: number;\n  js_func_code_size: number;\n  js_func_pc2line_count: number;\n  js_func_pc2line_size: number;\n  c_func_count: number;\n  array_count: number;\n  fast_array_count: number;\n  fast_array_elements: number;\n  binary_object_count: number;\n  binary_object_size: number;\n}\nexport function ComputeMemoryUsage(): MemoryInfo;\n```\n\n## llrt:xml\n\nA lightweight and fast XML parser and builder\n\n```typescript\nexport class XmlText {\n  constructor(text: string);\n  toString(): string;\n}\n\nexport class XmlNode {\n  constructor(name: string);\n  withName(name: string): this;\n  addAttribute(name: string, value: string): this;\n  addChildNode(node: XmlNode | XmlText): this;\n  removeAttribute(name: string): this;\n  toString(): string;\n}\n\ntype XmlParserOptions = {\n    ignoreAttributes?: boolean;\n    attributeNamePrefix?: string;\n    textNodeName?: string;\n    attributeValueProcessor?: (attrName: string, attrValue: string, jpath: string) => unknown;\n    tagValueProcessor?: (attrName: string, attrValue: string, jpath: string, hasAttributes: boolean) => unknown;\n}\nexport class XMLParser(options?: XmlParserOptions){\n    parse(xml:string):object\n}\n```\n\n## llrt:util\n\n```typescript\nexport function dimensions(): [number, number];\nexport function load(path: string): any;\nexport function print(value: any): void;\n```\n\n# Web Platform API\n\n## CONSOLE\n\n[Console](https://developer.mozilla.org/en-US/docs/Web/API/console)\n\n## DOM\n\n[AbortController](https://developer.mozilla.org/en-US/docs/Web/API/AbortController)\n\n[AbortSignal](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal)\n\n[CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent)\n\n[Event](https://developer.mozilla.org/en-US/docs/Web/API/Event)\n\n[EventTarget](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget)\n\n## ECMASCRIPT\n\n[globalThis](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis)\n\n## ENCODING\n\n[TextDecoder](https://developer.mozilla.org/en-US/docs/Web/API/TextDecoder)\n\n[TextEncoder](https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder)\n\n## FETCH\n\n[Headers](https://developer.mozilla.org/en-US/docs/Web/API/Headers)\n\n[Request](https://developer.mozilla.org/en-US/docs/Web/API/Request)\n\n[Response](https://developer.mozilla.org/en-US/docs/Web/API/Response)\n\n[fetch](https://developer.mozilla.org/en-US/docs/Web/API/Headers)\n\n> [!IMPORTANT]\n> There are some differences with the [WHATWG standard](https://fetch.spec.whatwg.org). Mainly browser specific behavior is removed:\n>\n> - `keepalive` is always true\n> - `request.body` can only be `string`, `Array`, `ArrayBuffer` or `Uint8Array`\n> - `response.body` returns `null`. Use `response.text()`, `response.json()` etc\n> - `mode`, `credentials`, `referrerPolicy`, `priority`, `cache` is not available/applicable\n\n## FILEAPI\n\n[Blob](https://developer.mozilla.org/en-US/docs/Web/API/Blob)\n\n[File](https://developer.mozilla.org/en-US/docs/Web/API/File)\n\n## HR-TIME\n\n[performance.now](https://developer.mozilla.org/en-US/docs/Web/API/Performance/now)\n\n[performance.timeOrigin](https://developer.mozilla.org/en-US/docs/Web/API/Performance/timeOrigin)\n\n## HTML\n\n[atob](https://developer.mozilla.org/en-US/docs/Web/API/atob)\n\n[btoa](https://developer.mozilla.org/en-US/docs/Web/API/btoa)\n\n[clearInterval](https://developer.mozilla.org/en-US/docs/Web/API/Window/clearInterval)\n\n[clearTimeout](https://developer.mozilla.org/en-US/docs/Web/API/Window/clearTimeout)\n\n[navigator](https://developer.mozilla.org/en-US/docs/Web/API/Window/navigator)\n\n[queueMicrotask](https://developer.mozilla.org/en-US/docs/Web/API/Window/queueMicrotask)\n\n[setInterval](https://developer.mozilla.org/en-US/docs/Web/API/Window/setInterval)\n\n[setTimeout](https://developer.mozilla.org/en-US/docs/Web/API/Window/setTimeout)\n\n[structuredClone](https://developer.mozilla.org/en-US/docs/Web/API/Window/structuredClone)\n\n[userAgent](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/userAgent)\n\n## STREAMS\n\n[ByteLengthQueuingStrategy](https://developer.mozilla.org/en-US/docs/Web/API/ByteLengthQueuingStrategy)\n\n[CountQueuingStrategy](https://developer.mozilla.org/en-US/docs/Web/API/CountQueuingStrategy)\n\n[ReadableByteStreamController](https://developer.mozilla.org/en-US/docs/Web/API/ReadableByteStreamController)\n\n[ReadableStream](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream)\n\n[ReadableStreamBYOBReader](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamBYOBReader)\n\n[ReadableStreamBYOBRequest](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamBYOBRequest)\n\n[ReadableStreamDefaultController](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultController)\n\n[ReadableStreamDefaultReader](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultReader)\n\n[TransformStream](https://developer.mozilla.org/en-US/docs/Web/API/TransformStream)\n\n[TransformStreamDefaultController](https://developer.mozilla.org/en-US/docs/Web/API/TransformStreamDefaultController)\n\n[WritableStream](https://developer.mozilla.org/en-US/docs/Web/API/WritableStream)\n\n[WritableStreamDefaultController](https://developer.mozilla.org/en-US/docs/Web/API/WritableStreamDefaultController)\n\n[WritableStreamDefaultWriter](https://developer.mozilla.org/en-US/docs/Web/API/WritableStreamDefaultWriter)\n\n## URL\n\n[URL](https://developer.mozilla.org/en-US/docs/Web/API/URL)\n\n[URLSearchParams](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams)\n\n## WEBCRYPTO\n\n[Crypto](https://developer.mozilla.org/en-US/docs/Web/API/Crypto)\n\n[CryptoKey](https://developer.mozilla.org/en-US/docs/Web/API/CryptoKey)\n\n[SubtleCrypto](https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto)\n\n## WEBIDL\n\n[DOMException](https://developer.mozilla.org/en-US/docs/Web/API/DOMException)\n\n## XHR\n\n[FormData](https://developer.mozilla.org/en-US/docs/Web/API/FormData)\n"},"items":[{"name":"API.md","path":"API.md","rawUrl":"https://raw.githubusercontent.com/awslabs/llrt/HEAD/API.md","title":"API Interface Contract & Specifications","category":"project-spec","format":"markdown","content":"# API documentation\n\n> [!NOTE]\n> The long term goal for LLRT is to become [WinterTC compliant](https://min-common-api.proposal.wintertc.org/). Not every API from Node.js will be supported.\n\n# Node.js API\n\n## assert\n\n[ok](https://nodejs.org/api/assert.html#assertokvalue-message)\n\n## async_hooks\n\n### Static methods\n\n[createHook](https://nodejs.org/api/async_hooks.html#async_hookscreatehookcallbacks)\n\n[currentId](https://nodejs.org/api/async_hooks.html#async_hooksexecutionasyncid)\n\n[executionAsyncId](https://nodejs.org/api/async_hooks.html#async_hooksexecutionasyncid)\n\n[triggerAsyncId](https://nodejs.org/api/async_hooks.html#async_hookstriggerasyncid)\n\n### Class: AsyncHook\n\n[enable](https://nodejs.org/api/async_hooks.html#asynchookenable)\n\n[disable](https://nodejs.org/api/async_hooks.html#asynchookdisable)\n\n#### Hook callbacks\n\n[init](https://nodejs.org/api/async_hooks.html#initasyncid-type-triggerasyncid-resource)\n\n[before](https://nodejs.org/api/async_hooks.html#beforeasyncid)\n\n[after](https://nodejs.org/api/async_hooks.html#afterasyncid)\n\n[destroy](https://nodejs.org/api/async_hooks.html#destroyasyncid)\n\n[promiseResolve](https://nodejs.org/api/async_hooks.html#promiseresolveasyncid)\n\n## buffer\n\n### Static methods\n\n[alloc](https://nodejs.org/api/buffer.html#static-method-bufferallocsize-fill-encoding)\n\n[allocUnsafe](https://nodejs.org/api/buffer.html#static-method-bufferallocunsafesize)\n\n[allocUnsafeSlow](https://nodejs.org/api/buffer.html#static-method-bufferallocunsafeslowsize)\n\n[byteLength](https://nodejs.org/api/buffer.html#static-method-bufferbytelengthstring-encoding)\n\n[concat](https://nodejs.org/api/buffer.html#static-method-bufferconcatlist-totallength)\n\n[from](https://nodejs.org/api/buffer.html#static-method-bufferfromarray)\n\n[isBuffer](https://nodejs.org/api/buffer.html#static-method-bufferisbufferobj)\n\n[isEncoding](https://nodejs.org/api/buffer.html#static-method-bufferisencodingencoding)\n\n### Prototype methods\n\n[copy](https://nodejs.org/api/buffer.html#bufcopytarget-targetstart-sourcestart-sourceend)\n\n[readBigInt64BE](https://nodejs.org/api/buffer.html#bufreadbigint64beoffset)\n\n[readBigInt64LE](https://nodejs.org/api/buffer.html#bufreadbigint64leoffset)\n\n[readDoubleBE](https://nodejs.org/api/buffer.html#bufreaddoublebeoffset)\n\n[readDoubleLE](https://nodejs.org/api/buffer.html#bufreaddoubleleoffset)\n\n[readFloatBE](https://nodejs.org/api/buffer.html#bufreadfloatbeoffset)\n\n[readFloatLE](https://nodejs.org/api/buffer.html#bufreadfloatleoffset)\n\n[readInt8](https://nodejs.org/api/buffer.html#bufreadint8offset)\n\n[readInt16BE](https://nodejs.org/api/buffer.html#bufreadint16beoffset)\n\n[readInt16LE](https://nodejs.org/api/buffer.html#bufreadint16leoffset)\n\n[readInt32BE](https://nodejs.org/api/buffer.html#bufreadint32beoffset)\n\n[readInt32LE](https://nodejs.org/api/buffer.html#bufreadint32leoffset)\n\n[readUInt8](https://nodejs.org/api/buffer.html#bufreaduint8offset)\n\n[readUInt16BE](https://nodejs.org/api/buffer.html#bufreaduint16beoffset)\n\n[readUInt16LE](https://nodejs.org/api/buffer.html#bufreaduint16leoffset)\n\n[readUInt32BE](https://nodejs.org/api/buffer.html#bufreaduint32beoffset)\n\n[readUInt32LE](https://nodejs.org/api/buffer.html#bufreaduint32leoffset)\n\n[subarray](https://nodejs.org/api/buffer.html#bufsubarraystart-end)\n\n[toString](https://nodejs.org/api/buffer.html#buftostringencoding-start-end)\n\n[write](https://nodejs.org/api/buffer.html#bufwritestring-offset-length-encoding)\n\n[writeBigInt64BE](https://nodejs.org/api/buffer.html#bufwritebigint64bevalue-offset)\n\n[writeBigInt64LE](https://nodejs.org/api/buffer.html#bufwritebigint64levalue-offset)\n\n[writeDoubleBE](https://nodejs.org/api/buffer.html#bufwritedoublebevalue-offset)\n\n[writeDoubleLE](https://nodejs.org/api/buffer.html#bufwritedoublelevalue-offset)\n\n[writeFloatBE](https://nodejs.org/api/buffer.html#bufwritefloatbevalue-offset)\n\n[writeFloatLE](https://nodejs.org/api/buffer.html#bufwritefloatlevalue-offset)\n\n[writeInt8](https://nodejs.org/api/buffer.html#bufwriteint8value-offset)\n\n[writeInt16BE](https://nodejs.org/api/buffer.html#bufwriteint16bevalue-offset)\n\n[writeInt16LE](https://nodejs.org/api/buffer.html#bufwriteint16levalue-offset)\n\n[writeInt32BE](https://nodejs.org/api/buffer.html#bufwriteint32bevalue-offset)\n\n[writeInt32LE](https://nodejs.org/api/buffer.html#bufwriteint32levalue-offset)\n\n[writeUInt8](https://nodejs.org/api/buffer.html#bufwriteuint8value-offset)\n\n[writeUInt16BE](https://nodejs.org/api/buffer.html#bufwriteuint16bevalue-offset)\n\n[writeUInt16LE](https://nodejs.org/api/buffer.html#bufwriteuint16levalue-offset)\n\n[writeUInt32BE](https://nodejs.org/api/buffer.html#bufwriteuint32bevalue-offset)\n\n[writeUInt32LE](https://nodejs.org/api/buffer.html#bufwriteuint32levalue-offset)\n\n### Constants\n\n[constants.MAX_LENGTH](https://nodejs.org/api/buffer.html#bufferconstantsmax_length)\n\n[constants.MAX_STRING_LENGTH](https://nodejs.org/api/buffer.html#bufferconstantsmax_string_length)\n\nEverything else inherited from [Uint8Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array)\n\n## child_process\n\n> [!WARNING]\n> `spawn` uses native streams that is not 100% compatible with the Node.js Streams API.\n\n[spawn](https://nodejs.org/api/child_process.html#child_processspawncommand-args-options)\n\n[execFile](https://nodejs.org/api/child_process.html#child_processexecfilefile-args-options-callback)\n\n## console\n\n[Console](https://nodejs.org/api/console.html#class-console)\n\n## crypto\n\n[createHash](https://nodejs.org/api/crypto.html#cryptocreatehashalgorithm-options)\n\n[createHmac](https://nodejs.org/api/crypto.html#cryptocreatehmacalgorithm-key-options)\n\n[getRandomValues](https://nodejs.org/api/crypto.html#cryptogetrandomvaluestypedarray)\n\n[randomBytes](https://nodejs.org/api/crypto.html#cryptorandombytessize-callback)\n\n[randomFill](https://nodejs.org/api/crypto.html#cryptorandomfillbuffer-offset-size-callback)\n\n[randomFillSync](https://nodejs.org/api/crypto.html#cryptorandomfillsyncbuffer-offset-size)\n\n[randomInt](https://nodejs.org/api/crypto.html#cryptorandomintmin-max-callback)\n\n[randomUUID](https://nodejs.org/api/crypto.html#cryptorandomuuidoptions)\n\n[webcrypto](https://nodejs.org/api/crypto.html#cryptowebcrypto)\n\n### LLRT specific hash classes\n\nLightweight and fast hash classes for LLRT.\n\n- `Md5`\n- `Sha1`\n- `Sha256`\n- `Sha384`\n- `Sha512`\n- `Crc32`\n- `Crc32c`\n\n## crypto.subtle\n\n[subtle.decrypt](https://w3c.github.io/webcrypto/#SubtleCrypto-method-decrypt)\n\n[subtle.decapsulateBits](https://wicg.github.io/webcrypto-modern-algos/#SubtleCrypto-method-decapsulateBits)\n\n[subtle.decapsulateKey](https://wicg.github.io/webcrypto-modern-algos/#SubtleCrypto-method-decapsulateKey)\n\n[subtle.deriveBits](https://w3c.github.io/webcrypto/#SubtleCrypto-method-deriveBits)\n\n[subtle.deriveKey](https://w3c.github.io/webcrypto/#SubtleCrypto-method-deriveKey)\n\n[subtle.digest](https://w3c.github.io/webcrypto/#SubtleCrypto-method-digest)\n\n[subtle.encapsulateBits](https://wicg.github.io/webcrypto-modern-algos/#SubtleCrypto-method-encapsulateBits)\n\n[subtle.encapsulateKey](https://wicg.github.io/webcrypto-modern-algos/#SubtleCrypto-method-encapsulateKey)\n\n[subtle.encrypt](https://w3c.github.io/webcrypto/#SubtleCrypto-method-encrypt)\n\n[subtle.exportKey](https://w3c.github.io/webcrypto/#SubtleCrypto-method-exportKey)\n\n[subtle.generateKey](https://w3c.github.io/webcrypto/#SubtleCrypto-method-generateKey)\n\n[subtle.getPublicKey](https://wicg.github.io/webcrypto-modern-algos/#SubtleCrypto-method-getPublicKey)\n\n[subtle.importKey](https://w3c.github.io/webcrypto/#SubtleCrypto-method-importKey)\n\n[subtle.sign](https://w3c.github.io/webcrypto/#SubtleCrypto-method-sign)\n\n[subtle.unwrapKey](https://w3c.github.io/webcrypto/#SubtleCrypto-method-unwrapKey)\n\n[subtle.verify](https://w3c.github.io/webcrypto/#SubtleCrypto-method-verify)\n\n[subtle.wrapKey](https://w3c.github.io/webcrypto/#SubtleCrypto-method-wrapKey)\n\n[SubtleCrypto.supports](https://wicg.github.io/webcrypto-modern-algos/#SubtleCrypto-method-supports)\n\n## dgram\n\n[createSocket](https://nodejs.org/api/dgram.html#dgramcreatesocketoptions-callback)\n\n### Class: dgram.Socket\n\n[address](https://nodejs.org/api/dgram.html#socketaddress)\n\n[bind](https://nodejs.org/api/dgram.html#socketbindport-address-callback)\n\n[close](https://nodejs.org/api/dgram.html#socketclosecallback)\n\n[ref](https://nodejs.org/api/dgram.html#socketref)\n\n[send](https://nodejs.org/api/dgram.html#socketsendmsg-offset-length-port-address-callback)\n\n[unref](hhttps://nodejs.org/api/dgram.html#socketunref)\n\n## dns\n\n[lookup](https://nodejs.org/api/dns.html#dnslookuphostname-options-callback)\n\n## events\n\n[EventEmitter](https://nodejs.org/api/events.html#class-eventemitter)\n\n## fs\n\n[accessSync](https://nodejs.org/api/fs.html#fsaccesssyncpath-mode)\n\n[constants](https://nodejs.org/api/fs.html#file-access-constants)\n\n[lstatSync](https://nodejs.org/api/fs.html#fslstatsyncpath-options)\n\n[mkdirSync](https://nodejs.org/api/fs.html#fsmkdirsyncpath-options)\n\n[mkdtempSync](https://nodejs.org/api/fs.html#fsmkdtempsyncprefix-options)\n\n[readdirSync](https://nodejs.org/api/fs.html#fsreaddirsyncpath-options)\n\n[readFileSync](https://nodejs.org/api/fs.html#fsreadfilesyncpath-options)\n\n[rmdirSync](https://nodejs.org/api/fs.html#fsrmdirsyncpath-options)\n\n[rmSync](https://nodejs.org/api/fs.html#fsrmsyncpath-options)\n\n[statSync](https://nodejs.org/api/fs.html#fsstatsyncpath-options)\n\n[writeFileSync](https://nodejs.org/api/fs.html#fswritefilesyncfile-data-options)\n\n[chmodSync](https://nodejs.org/api/fs.html#fschmodsyncpath-mode)\n\n[renameSync](https://nodejs.org/api/fs.html#fsrenamesyncoldpath-newpath)\n\n[symlinkSync](https://nodejs.org/api/fs.html#fssymlinksynctarget-path-type)\n\n## fs/promises\n\n[access](https://nodejs.org/api/fs.html#fsstatpath-options-callback)\n\n[constants](https://nodejs.org/api/fs.html#file-access-constants)\n\n[lstat](https://nodejs.org/api/fs.html#fspromiseslstatpath-options)\n\n[mkdir](https://nodejs.org/api/fs.html#fsmkdirpath-options-callback)\n\n[mkdtemp](https://nodejs.org/api/fs.html#fsmkdtempprefix-options-callback)\n\n[open](https://nodejs.org/api/fs.html#fspromisesopenpath-flags-mode)\n\n[readdir](https://nodejs.org/api/fs.html#fspromisesreaddirpath-options)\n\n[readFile](https://nodejs.org/api/fs.html#filehandlereadfileoptions)\n\n[rm](https://nodejs.org/api/fs.html#fsrmpath-options-callback)\n\n[rmdir](https://nodejs.org/api/fs.html#fsrmdirpath-options-callback)\n\n[stat](https://nodejs.org/api/fs.html#fsstatpath-options-callback)\n\n[writeFile](https://nodejs.org/api/fs.html#fspromiseswritefilefile-data-options)\n\n[chmod](https://nodejs.org/api/fs.html#fspromiseschmodpath-mode)\n\n[rename](https://nodejs.org/api/fs.html#fspromisesrenameoldpath-newpath)\n\n[symlink](https://nodejs.org/api/fs.html#fspromisessymlinktarget-path-type)\n\n## https\n\n[Agent](https://nodejs.org/api/https.html#class-httpsagent)\n\n## module\n\n[builtinModules](https://nodejs.org/api/module.html#modulebuiltinmodules)\n\n[createRequire](https://nodejs.org/api/module.html#modulecreaterequirefilename)\n\n> [!NOTE]\n> `require` is available from esm modules natively. This function is just for compatibility\n\n[isBuiltin](https://nodejs.org/api/module.html#moduleisbuiltinmodulename)\n\n[registerHooks](https://nodejs.org/api/module.html#moduleregisterhooksoptions)\n\n## net\n\n> [!WARNING]\n> These APIs uses native streams that is not 100% compatible with the Node.js Streams API. Server APIs like `createSever` provides limited functionality useful for testing purposes. Serverless applications typically don't expose servers. Some server options are not supported:\n> `highWaterMark`, `pauseOnConnect`, `keepAlive`, `noDelay`, `keepAliveInitialDelay`\n\n[connect](https://nodejs.org/api/net.html#netconnect)\n\n[createConnection](https://nodejs.org/api/net.html#netcreateconnection)\n\n[createServer](https://nodejs.org/api/net.html#netcreateserveroptions-connectionlistener)\n\n## os\n\n[arch](https://nodejs.org/api/os.html#osarch)\n\n[availableParallelism](https://nodejs.org/api/os.html#osavailableparallelism)\n\n[cpus](https://nodejs.org/api/os.html#oscpus)\n\n[devNull](https://nodejs.org/api/os.html#osdevnull)\n\n[endianness](https://nodejs.org/api/os.html#osendianness)\n\n[EOL](https://nodejs.org/api/os.html#oseol)\n\n[freemem](https://nodejs.org/api/os.html#osfreemem)\n\n[getPriority](https://nodejs.org/api/os.html#osgetprioritypid)\n\n[homedir](https://nodejs.org/api/os.html#oshomedir)\n\n[hostname](https://nodejs.org/api/os.html#oshostname)\n\n[loadavg](https://nodejs.org/api/os.html#osloadavg)\n\n[machine](https://nodejs.org/api/os.html#osmachine)\n\n[networkInterfaces](https://nodejs.org/api/os.html#osnetworkinterfaces)\n\n[platform](https://nodejs.org/api/os.html#osplatform)\n\n[release](https://nodejs.org/api/os.html#osrelease)\n\n[setPriority](https://nodejs.org/api/os.html#ossetprioritypid-priority)\n\n[tmpdir](https://nodejs.org/api/os.html#osplatform)\n\n[totalmem](https://nodejs.org/api/os.html#ostotalmem)\n\n[type](https://nodejs.org/api/os.html#ostype)\n\n[uptime](https://nodejs.org/api/os.html#osuptime)\n\n[userInfo](https://nodejs.org/api/os.html#osuserinfooptions)\n\n[version](https://nodejs.org/api/os.html#osversion)\n\n## path\n\n[basename](https://nodejs.org/api/path.html#pathbasenamepath-suffix)\n\n[delimiter](https://nodejs.org/api/path.html#pathdelimiter)\n\n[dirname](https://nodejs.org/api/path.html#pathdirnamepath)\n\n[extname](https://nodejs.org/api/path.html#pathextnamepath)\n\n[format](https://nodejs.org/api/path.html#pathformatpathobject)\n\n[isAbsolute](https://nodejs.org/api/path.html#pathisabsolutepath)\n\n[join](https://nodejs.org/api/path.html#pathjoinpaths)\n\n[normalize](https://nodejs.org/api/path.html#pathnormalizepath)\n\n[parse](https://nodejs.org/api/path.html#pathparsepath)\n\n[relative](https://nodejs.org/api/path.html#pathrelativefrom-to)\n\n[resolve](https://nodejs.org/api/path.html#pathresolvepaths)\n\n## perf_hooks\n\n_performance is available globally_\n\n[performance.now](https://nodejs.org/api/perf_hooks.html#performancenow)\n\n## process\n\n_process is available globally_\n\n[arch](https://nodejs.org/api/process.html#processarch)\n\n[argv](https://nodejs.org/api/process.html#processargv)\n\n[argv0](https://nodejs.org/api/process.html#processargv0)\n\n[cwd](https://nodejs.org/api/process.html#processcwd)\n\n[env](https://nodejs.org/api/process.html#processenv)\n\n[exit](https://nodejs.org/api/process.html#processexitcode)\n\n[exitCode](https://nodejs.org/api/process.html#processexitcode-1)\n\n[getegid](https://nodejs.org/api/process.html#processgetegid)\n\n[geteuid](https://nodejs.org/api/process.html#processgeteuid)\n\n[getgid](https://nodejs.org/api/process.html#processgetgid)\n\n[getuid](https://nodejs.org/api/process.html#processgetuid)\n\n[hrtime](https://nodejs.org/api/process.html#processhrtime)\n\n[id](https://nodejs.org/api/process.html#processpid)\n\n[kill](https://nodejs.org/api/process.html#processkillpid-signal)\n\n[platform](https://nodejs.org/api/process.html#processplatform)\n\n[release](https://nodejs.org/api/process.html#processrelease)\n\n[setegid](https://nodejs.org/api/process.html#processsetegidgid)\n\n[seteuid](https://nodejs.org/api/process.html#processseteuiduid)\n\n[setgid](https://nodejs.org/api/process.html#processsetgidgid)\n\n[setuid](https://nodejs.org/api/process.html#processsetuiduid)\n\n[version](https://nodejs.org/api/process.html#processversion)\n\n[versions](https://nodejs.org/api/process.html#processversions)\n\n## stream\n\n[Duplex](https://nodejs.org/api/stream.html#class-streamduplex)\n\n[PassThrough](https://nodejs.org/api/stream.html#class-streampassthrough)\n\n[Readable](https://nodejs.org/api/stream.html#class-streamreadable)\n\n[Stream](https://nodejs.org/api/stream.html#class-stream)\n\n[Transform](https://nodejs.org/api/stream.html#class-streamtransform)\n\n[Writable](https://nodejs.org/api/stream.html#class-streamwritable)\n\n[finished](https://nodejs.org/api/stream.html#streamfinishedstream-options-callback)\n\n[pipeline](https://nodejs.org/api/stream.html#streampipelinestreams-callback)\n\n## stream/promises\n\n[finished](https://nodejs.org/api/stream.html#streamfinishedstream-options-callback)\n\n[pipeline](https://nodejs.org/api/stream.html#streampipelinestreams-callback)\n\n## string_decoder\n\n[StringDecoder](https://nodejs.org/api/string_decoder.html#class-stringdecoder)\n\n## timers\n\n_Also available globally_\n\n[clearImmediate](https://nodejs.org/api/timers.html#clearimmediateimmediate)\n\n[clearInterval](https://nodejs.org/api/timers.html#clearintervaltimeout)\n\n[clearTimeout](https://nodejs.org/api/timers.html#cleartimeouttimeout)\n\n[setImmediate](https://nodejs.org/api/timers.html#setimmediatecallback-args)\n\n[setInterval](https://nodejs.org/api/timers.html#setintervalcallback-delay-args)\n\n[setTimeout](https://nodejs.org/api/timers.html#settimeoutcallback-delay-args)\n\n## tty\n\n[isatty](https://nodejs.org/api/tty.html#ttyisattyfd)\n\n## url\n\n### Class\n\n[URL](https://nodejs.org/api/url.html#class-url)\n\n[URLSearchParams](https://nodejs.org/api/url.html#class-urlsearchparams)\n\n### Prototype methods\n\n[domainToASCII](https://nodejs.org/api/url.html#urldomaintoasciidomain)\n\n[domainToUnicode](https://nodejs.org/api/url.html#urldomaintounicodedomain)\n\n[fileURLToPath](https://nodejs.org/api/url.html#urlfileurltopathurl-options)\n\n[format](https://nodejs.org/api/url.html#urlformaturl-options)\n\n[pathToFileURL](https://nodejs.org/api/url.html#urlpathtofileurlpath-options)\n\n[urlToHttpOptions](https://nodejs.org/api/url.html#urlurltohttpoptionsurl)\n\n## util\n\n> [!IMPORTANT]\n> Supported encodings: hex, base64, utf-8, utf-16le, windows-1252 and their aliases.\n\n[format](https://nodejs.org/api/util.html#utilformatformat-args)\n\n[inherits](https://nodejs.org/api/util.html#utilinheritsconstructor-superconstructor)\n\n[styleText](https://nodejs.org/api/util.html#utilstyletextformat-text)\n\n[inspect](https://nodejs.org/api/util.html#utilinspectobject-options)\n\n[TextDecoder](https://nodejs.org/api/util.html#class-utiltextdecoder)\n\n[TextDecoderStream](https://nodejs.org/api/webstreams.html#class-textdecoderstream)\n\n[TextEncoder](https://nodejs.org/api/util.html#class-utiltextdecoder)\n\n[TextEncoderStream](https://nodejs.org/api/webstreams.html#class-textencoderstream)\n\n## zlib\n\n### Convenience methods\n\n[deflate](https://nodejs.org/api/zlib.html#zlibdeflatebuffer-options-callback)\n\n[deflateSync](https://nodejs.org/api/zlib.html#zlibdeflatesyncbuffer-options)\n\n[deflateRaw](https://nodejs.org/api/zlib.html#zlibdeflaterawbuffer-options-callback)\n\n[deflateRawSync](https://nodejs.org/api/zlib.html#zlibdeflaterawsyncbuffer-options)\n\n[gzip](https://nodejs.org/api/zlib.html#zlibgzipbuffer-options-callback)\n\n[gzipSync](https://nodejs.org/api/zlib.html#zlibgzipsyncbuffer-options)\n\n[inflate](https://nodejs.org/api/zlib.html#zlibinflatebuffer-options-callback)\n\n[inflateSync](https://nodejs.org/api/zlib.html#zlibinflatesyncbuffer-options)\n\n[inflateRaw](https://nodejs.org/api/zlib.html#zlibinflaterawbuffer-options-callback)\n\n[inflateRawSync](https://nodejs.org/api/zlib.html#zlibinflaterawsyncbuffer-options)\n\n[gunzip](https://nodejs.org/api/zlib.html#zlibgunzipbuffer-options-callback)\n\n[gunzipSync](https://nodejs.org/api/zlib.html#zlibgunzipsyncbuffer-options)\n\n[brotliCompress](https://nodejs.org/api/zlib.html#zlibbrotlicompressbuffer-options-callback)\n\n[brotliCompressSync](https://nodejs.org/api/zlib.html#zlibbrotlicompresssyncbuffer-options)\n\n[brotliDecompress](https://nodejs.org/api/zlib.html#zlibbrotlidecompressbuffer-options-callback)\n\n[brotliDecompressSync](https://nodejs.org/api/zlib.html#zlibbrotlidecompresssyncbuffer-options)\n\n[zstdCompress](https://nodejs.org/api/zlib.html#zlibzstdcompressbuffer-options-callback)\n\n[zstdCompressSync](https://nodejs.org/api/zlib.html#zlibzstdcompresssyncbuffer-options)\n\n[zstdDecompress](https://nodejs.org/api/zlib.html#zlibzstddecompressbuffer-options-callback)\n\n[zstdDecompressSync](https://nodejs.org/api/zlib.html#zlibzstddecompresssyncbuffer-options)\n\n# LLRT API\n\n## llrt:codec\n\n```typescript\nexport function decodeFromBase64(value: string): Uint8Array;\nexport function encodeToBase64(\n  value: string | Array | ArrayBuffer | Uint8Array\n): string;\nexport function decodeFromHex(value: string): Uint8Array;\nexport function encodeToHex(\n  value: string | Array | ArrayBuffer | Uint8Array\n): string;\n```\n\n## llrt:timezone\n\nLightweight timezone support for LLRT. Provides timezone offset calculations and a minimal `Intl.DateTimeFormat` implementation for dayjs and similar library compatibility.\n\n```typescript\ninterface Timezone {\n  /**\n   * Get the UTC offset in minutes for a timezone at a given time.\n   * Returns a positive value for timezones ahead of UTC (e.g., 540 for Asia/Tokyo)\n   * and a negative value for timezones behind UTC (e.g., -420 for America/Denver).\n   * Automatically handles DST transitions.\n   */\n  getOffset(timezone: string, epochMs: number): number;\n\n  /**\n   * List all available IANA timezone names.\n   */\n  list(): string[];\n}\n\ndeclare var Timezone: Timezone;\n\nexport { Timezone };\n```\n\n### Example\n\n```javascript\nimport { Timezone } from \"llrt:timezone\";\n\n// Get current offset for Denver (handles DST automatically)\nconst offset = Timezone.getOffset(\"America/Denver\", Date.now());\n// Returns -420 (UTC-7) in winter, -360 (UTC-6) in summer\n\n// Check DST transition\nconst beforeDst = new Date(\"2024-03-09T12:00:00Z\").getTime();\nconst afterDst = new Date(\"2024-03-11T12:00:00Z\").getTime();\nconsole.log(Timezone.getOffset(\"America/Denver\", beforeDst)); // -420\nconsole.log(Timezone.getOffset(\"America/Denver\", afterDst)); // -360\n\n// List all available timezones\nconst zones = Timezone.list();\n```\n\n### Intl.DateTimeFormat\n\nLLRT provides a minimal `Intl.DateTimeFormat` implementation focused on timezone support. This enables libraries like dayjs to work with timezone conversions transparently.\n\n```javascript\n// Create a formatter for a specific timezone\nconst formatter = new Intl.DateTimeFormat(\"en-US\", {\n  timeZone: \"America/Denver\",\n  hour12: false,\n  year: \"numeric\",\n  month: \"2-digit\",\n  day: \"2-digit\",\n  hour: \"2-digit\",\n  minute: \"2-digit\",\n  second: \"2-digit\",\n});\n\n// Format a date\nconst date = new Date(\"2022-03-02T15:45:34Z\");\nconsole.log(formatter.format(date)); // \"03/02/2022, 08:45:34\"\n\n// Get formatted parts\nconst parts = formatter.formatToParts(date);\n// [{ type: \"month\", value: \"03\" }, { type: \"literal\", value: \"/\" }, ...]\n\n// Get resolved options\nconst options = formatter.resolvedOptions();\nconsole.log(options.timeZone); // \"America/Denver\"\n```\n\n### Date.prototype.toLocaleString with timezone\n\n`Date.prototype.toLocaleString` is enhanced to support the `timeZone` option:\n\n```javascript\nconst date = new Date(\"2022-03-02T15:45:34Z\");\n\n// Convert to Denver time\nconsole.log(date.toLocaleString(\"en-US\", { timeZone: \"America/Denver\" }));\n// \"03/02/2022, 8:45:34 AM\"\n\n// Convert to Tokyo time\nconsole.log(date.toLocaleString(\"en-US\", { timeZone: \"Asia/Tokyo\" }));\n// \"03/03/2022, 12:45:34 AM\"\n```\n\n### Using with dayjs\n\nThe timezone module enables dayjs timezone support without polyfills:\n\n```javascript\nconst dayjs = require(\"dayjs\");\nconst utc = require(\"dayjs/plugin/utc\");\nconst timezone = require(\"dayjs/plugin/timezone\");\n\ndayjs.extend(utc);\ndayjs.extend(timezone);\n\n// Convert between timezones\nconst date = dayjs(\"2022-03-02T15:45:34Z\");\nconsole.log(date.tz(\"America/Denver\").format()); // \"2022-03-02T08:45:34-07:00\"\nconsole.log(date.tz(\"Asia/Tokyo\").format()); // \"2022-03-03T00:45:34+09:00\"\n\n// Get start of day in a specific timezone\nconst denver = date.tz(\"America/Denver\");\nconsole.log(denver.startOf(\"day\").format()); // \"2022-03-02T00:00:00-07:00\"\n```\n\n## llrt:qjs\n\n```typescript\ninterface MemoryInfo {\n  malloc_size: number;\n  malloc_limit: number;\n  memory_used_size: number;\n  malloc_count: number;\n  memory_used_count: number;\n  atom_count: number;\n  atom_size: number;\n  str_count: number;\n  str_size: number;\n  obj_count: number;\n  obj_size: number;\n  prop_count: number;\n  prop_size: number;\n  shape_count: number;\n  shape_size: number;\n  js_func_count: number;\n  js_func_size: number;\n  js_func_code_size: number;\n  js_func_pc2line_count: number;\n  js_func_pc2line_size: number;\n  c_func_count: number;\n  array_count: number;\n  fast_array_count: number;\n  fast_array_elements: number;\n  binary_object_count: number;\n  binary_object_size: number;\n}\nexport function ComputeMemoryUsage(): MemoryInfo;\n```\n\n## llrt:xml\n\nA lightweight and fast XML parser and builder\n\n```typescript\nexport class XmlText {\n  constructor(text: string);\n  toString(): string;\n}\n\nexport class XmlNode {\n  constructor(name: string);\n  withName(name: string): this;\n  addAttribute(name: string, value: string): this;\n  addChildNode(node: XmlNode | XmlText): this;\n  removeAttribute(name: string): this;\n  toString(): string;\n}\n\ntype XmlParserOptions = {\n    ignoreAttributes?: boolean;\n    attributeNamePrefix?: string;\n    textNodeName?: string;\n    attributeValueProcessor?: (attrName: string, attrValue: string, jpath: string) => unknown;\n    tagValueProcessor?: (attrName: string, attrValue: string, jpath: string, hasAttributes: boolean) => unknown;\n}\nexport class XMLParser(options?: XmlParserOptions){\n    parse(xml:string):object\n}\n```\n\n## llrt:util\n\n```typescript\nexport function dimensions(): [number, number];\nexport function load(path: string): any;\nexport function print(value: any): void;\n```\n\n# Web Platform API\n\n## CONSOLE\n\n[Console](https://developer.mozilla.org/en-US/docs/Web/API/console)\n\n## DOM\n\n[AbortController](https://developer.mozilla.org/en-US/docs/Web/API/AbortController)\n\n[AbortSignal](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal)\n\n[CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent)\n\n[Event](https://developer.mozilla.org/en-US/docs/Web/API/Event)\n\n[EventTarget](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget)\n\n## ECMASCRIPT\n\n[globalThis](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis)\n\n## ENCODING\n\n[TextDecoder](https://developer.mozilla.org/en-US/docs/Web/API/TextDecoder)\n\n[TextEncoder](https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder)\n\n## FETCH\n\n[Headers](https://developer.mozilla.org/en-US/docs/Web/API/Headers)\n\n[Request](https://developer.mozilla.org/en-US/docs/Web/API/Request)\n\n[Response](https://developer.mozilla.org/en-US/docs/Web/API/Response)\n\n[fetch](https://developer.mozilla.org/en-US/docs/Web/API/Headers)\n\n> [!IMPORTANT]\n> There are some differences with the [WHATWG standard](https://fetch.spec.whatwg.org). Mainly browser specific behavior is removed:\n>\n> - `keepalive` is always true\n> - `request.body` can only be `string`, `Array`, `ArrayBuffer` or `Uint8Array`\n> - `response.body` returns `null`. Use `response.text()`, `response.json()` etc\n> - `mode`, `credentials`, `referrerPolicy`, `priority`, `cache` is not available/applicable\n\n## FILEAPI\n\n[Blob](https://developer.mozilla.org/en-US/docs/Web/API/Blob)\n\n[File](https://developer.mozilla.org/en-US/docs/Web/API/File)\n\n## HR-TIME\n\n[performance.now](https://developer.mozilla.org/en-US/docs/Web/API/Performance/now)\n\n[performance.timeOrigin](https://developer.mozilla.org/en-US/docs/Web/API/Performance/timeOrigin)\n\n## HTML\n\n[atob](https://developer.mozilla.org/en-US/docs/Web/API/atob)\n\n[btoa](https://developer.mozilla.org/en-US/docs/Web/API/btoa)\n\n[clearInterval](https://developer.mozilla.org/en-US/docs/Web/API/Window/clearInterval)\n\n[clearTimeout](https://developer.mozilla.org/en-US/docs/Web/API/Window/clearTimeout)\n\n[navigator](https://developer.mozilla.org/en-US/docs/Web/API/Window/navigator)\n\n[queueMicrotask](https://developer.mozilla.org/en-US/docs/Web/API/Window/queueMicrotask)\n\n[setInterval](https://developer.mozilla.org/en-US/docs/Web/API/Window/setInterval)\n\n[setTimeout](https://developer.mozilla.org/en-US/docs/Web/API/Window/setTimeout)\n\n[structuredClone](https://developer.mozilla.org/en-US/docs/Web/API/Window/structuredClone)\n\n[userAgent](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/userAgent)\n\n## STREAMS\n\n[ByteLengthQueuingStrategy](https://developer.mozilla.org/en-US/docs/Web/API/ByteLengthQueuingStrategy)\n\n[CountQueuingStrategy](https://developer.mozilla.org/en-US/docs/Web/API/CountQueuingStrategy)\n\n[ReadableByteStreamController](https://developer.mozilla.org/en-US/docs/Web/API/ReadableByteStreamController)\n\n[ReadableStream](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream)\n\n[ReadableStreamBYOBReader](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamBYOBReader)\n\n[ReadableStreamBYOBRequest](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamBYOBRequest)\n\n[ReadableStreamDefaultController](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultController)\n\n[ReadableStreamDefaultReader](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultReader)\n\n[TransformStream](https://developer.mozilla.org/en-US/docs/Web/API/TransformStream)\n\n[TransformStreamDefaultController](https://developer.mozilla.org/en-US/docs/Web/API/TransformStreamDefaultController)\n\n[WritableStream](https://developer.mozilla.org/en-US/docs/Web/API/WritableStream)\n\n[WritableStreamDefaultController](https://developer.mozilla.org/en-US/docs/Web/API/WritableStreamDefaultController)\n\n[WritableStreamDefaultWriter](https://developer.mozilla.org/en-US/docs/Web/API/WritableStreamDefaultWriter)\n\n## URL\n\n[URL](https://developer.mozilla.org/en-US/docs/Web/API/URL)\n\n[URLSearchParams](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams)\n\n## WEBCRYPTO\n\n[Crypto](https://developer.mozilla.org/en-US/docs/Web/API/Crypto)\n\n[CryptoKey](https://developer.mozilla.org/en-US/docs/Web/API/CryptoKey)\n\n[SubtleCrypto](https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto)\n\n## WEBIDL\n\n[DOMException](https://developer.mozilla.org/en-US/docs/Web/API/DOMException)\n\n## XHR\n\n[FormData](https://developer.mozilla.org/en-US/docs/Web/API/FormData)\n","isInternal":false,"tokens":7913,"sizeBytes":29836}],"systemPromptSnippet":"<yakaai_skills repo=\"awslabs/llrt\">\n<!-- File: API.md (Tokens: ~7913 | Category: project-spec) -->\n# API documentation\n\n> [!NOTE]\n> The long term goal for LLRT is to become [WinterTC compliant](https://min-common-api.proposal.wintertc.org/). Not every API from Node.js will be supported.\n\n# Node.js API\n\n## assert\n\n[ok](https://nodejs.org/api/assert.html#assertokvalue-message)\n\n## async_hooks\n\n### Static methods\n\n[createHook](https://nodejs.org/api/async_hooks.html#async_hookscreatehookcallbacks)\n\n[currentId](https://nodejs.org/api/async_hooks.html#async_hooksexecutionasyncid)\n\n[executionAsyncId](https://nodejs.org/api/async_hooks.html#async_hooksexecutionasyncid)\n\n[triggerAsyncId](https://nodejs.org/api/async_hooks.html#async_hookstriggerasyncid)\n\n### Class: AsyncHook\n\n[enable](https://nodejs.org/api/async_hooks.html#asynchookenable)\n\n[disable](https://nodejs.org/api/async_hooks.html#asynchookdisable)\n\n#### Hook callbacks\n\n[init](https://nodejs.org/api/async_hooks.html#initasyncid-type-triggerasyncid-resource)\n\n[before](https://nodejs.org/api/async_hooks.html#beforeasyncid)\n\n[after](https://nodejs.org/api/async_hooks.html#afterasyncid)\n\n[destroy](https://nodejs.org/api/async_hooks.html#destroyasyncid)\n\n[promiseResolve](https://nodejs.org/api/async_hooks.html#promiseresolveasyncid)\n\n## buffer\n\n### Static methods\n\n[alloc](https://nodejs.org/api/buffer.html#static-method-bufferallocsize-fill-encoding)\n\n[allocUnsafe](https://nodejs.org/api/buffer.html#static-method-bufferallocunsafesize)\n\n[allocUnsafeSlow](https://nodejs.org/api/buffer.html#static-method-bufferallocunsafeslowsize)\n\n[byteLength](https://nodejs.org/api/buffer.html#static-method-bufferbytelengthstring-encoding)\n\n[concat](https://nodejs.org/api/buffer.html#static-method-bufferconcatlist-totallength)\n\n[from](https://nodejs.org/api/buffer.html#static-method-bufferfromarray)\n\n[isBuffer](https://nodejs.org/api/buffer.html#static-method-bufferisbufferobj)\n\n[isEncoding](https://nodejs.org/api/buffer.html#static-method-bufferisencodingencoding)\n\n### Prototype methods\n\n[copy](https://nodejs.org/api/buffer.html#bufcopytarget-targetstart-sourcestart-sourceend)\n\n[readBigInt64BE](https://nodejs.org/api/buffer.html#bufreadbigint64beoffset)\n\n[readBigInt64LE](https://nodejs.org/api/buffer.html#bufreadbigint64leoffset)\n\n[readDoubleBE](https://nodejs.org/api/buffer.html#bufreaddoublebeoffset)\n\n[readDoubleLE](https://nodejs.org/api/buffer.html#bufreaddoubleleoffset)\n\n[readFloatBE](https://nodejs.org/api/buffer.html#bufreadfloatbeoffset)\n\n[readFloatLE](https://nodejs.org/api/buffer.html#bufreadfloatleoffset)\n\n[readInt8](https://nodejs.org/api/buffer.html#bufreadint8offset)\n\n[readInt16BE](https://nodejs.org/api/buffer.html#bufreadint16beoffset)\n\n[readInt16LE](https://nodejs.org/api/buffer.html#bufreadint16leoffset)\n\n[readInt32BE](https://nodejs.org/api/buffer.html#bufreadint32beoffset)\n\n[readInt32LE](https://nodejs.org/api/buffer.html#bufreadint32leoffset)\n\n[readUInt8](https://nodejs.org/api/buffer.html#bufreaduint8offset)\n\n[readUInt16BE](https://nodejs.org/api/buffer.html#bufreaduint16beoffset)\n\n[readUInt16LE](https://nodejs.org/api/buffer.html#bufreaduint16leoffset)\n\n[readUInt32BE](https://nodejs.org/api/buffer.html#bufreaduint32beoffset)\n\n[readUInt32LE](https://nodejs.org/api/buffer.html#bufreaduint32leoffset)\n\n[subarray](https://nodejs.org/api/buffer.html#bufsubarraystart-end)\n\n[toString](https://nodejs.org/api/buffer.html#buftostringencoding-start-end)\n\n[write](https://nodejs.org/api/buffer.html#bufwritestring-offset-length-encoding)\n\n[writeBigInt64BE](https://nodejs.org/api/buffer.html#bufwritebigint64bevalue-offset)\n\n[writeBigInt64LE](https://nodejs.org/api/buffer.html#bufwritebigint64levalue-offset)\n\n[writeDoubleBE](https://nodejs.org/api/buffer.html#bufwritedoublebevalue-offset)\n\n[writeDoubleLE](https://nodejs.org/api/buffer.html#bufwritedoublelevalue-offset)\n\n[writeFloatBE](https://nodejs.org/api/buffer.html#bufwritefloatbevalue-offset)\n\n[writeFloatLE](https://nodejs.org/api/buffer.html#bufwritefloatlevalue-offset)\n\n[writeInt8](https://nodejs.org/api/buffer.html#bufwriteint8value-offset)\n\n[writeInt16BE](https://nodejs.org/api/buffer.html#bufwriteint16bevalue-offset)\n\n[writeInt16LE](https://nodejs.org/api/buffer.html#bufwriteint16levalue-offset)\n\n[writeInt32BE](https://nodejs.org/api/buffer.html#bufwriteint32bevalue-offset)\n\n[writeInt32LE](https://nodejs.org/api/buffer.html#bufwriteint32levalue-offset)\n\n[writeUInt8](https://nodejs.org/api/buffer.html#bufwriteuint8value-offset)\n\n[writeUInt16BE](https://nodejs.org/api/buffer.html#bufwriteuint16bevalue-offset)\n\n[writeUInt16LE](https://nodejs.org/api/buffer.html#bufwriteuint16levalue-offset)\n\n[writeUInt32BE](https://nodejs.org/api/buffer.html#bufwriteuint32bevalue-offset)\n\n[writeUInt32LE](https://nodejs.org/api/buffer.html#bufwriteuint32levalue-offset)\n\n### Constants\n\n[constants.MAX_LENGTH](https://nodejs.org/api/buffer.html#bufferconstantsmax_length)\n\n[constants.MAX_STRING_LENGTH](https://nodejs.org/api/buffer.html#bufferconstantsmax_string_length)\n\nEverything else inherited from [Uint8Array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array)\n\n## child_process\n\n> [!WARNING]\n> `spawn` uses native streams that is not 100% compatible with the Node.js Streams API.\n\n[spawn](https://nodejs.org/api/child_process.html#child_processspawncommand-args-options)\n\n[execFile](https://nodejs.org/api/child_process.html#child_processexecfilefile-args-options-callback)\n\n## console\n\n[Console](https://nodejs.org/api/console.html#class-console)\n\n## crypto\n\n[createHash](https://nodejs.org/api/crypto.html#cryptocreatehashalgorithm-options)\n\n[createHmac](https://nodejs.org/api/crypto.html#cryptocreatehmacalgorithm-key-options)\n\n[getRandomValues](https://nodejs.org/api/crypto.html#cryptogetrandomvaluestypedarray)\n\n[randomBytes](https://nodejs.org/api/crypto.html#cryptorandombytessize-callback)\n\n[randomFill](https://nodejs.org/api/crypto.html#cryptorandomfillbuffer-offset-size-callback)\n\n[randomFillSync](https://nodejs.org/api/crypto.html#cryptorandomfillsyncbuffer-offset-size)\n\n[randomInt](https://nodejs.org/api/crypto.html#cryptorandomintmin-max-callback)\n\n[randomUUID](https://nodejs.org/api/crypto.html#cryptorandomuuidoptions)\n\n[webcrypto](https://nodejs.org/api/crypto.html#cryptowebcrypto)\n\n### LLRT specific hash classes\n\nLightweight and fast hash classes for LLRT.\n\n- `Md5`\n- `Sha1`\n- `Sha256`\n- `Sha384`\n- `Sha512`\n- `Crc32`\n- `Crc32c`\n\n## crypto.subtle\n\n[subtle.decrypt](https://w3c.github.io/webcrypto/#SubtleCrypto-method-decrypt)\n\n[subtle.decapsulateBits](https://wicg.github.io/webcrypto-modern-algos/#SubtleCrypto-method-decapsulateBits)\n\n[subtle.decapsulateKey](https://wicg.github.io/webcrypto-modern-algos/#SubtleCrypto-method-decapsulateKey)\n\n[subtle.deriveBits](https://w3c.github.io/webcrypto/#SubtleCrypto-method-deriveBits)\n\n[subtle.deriveKey](https://w3c.github.io/webcrypto/#SubtleCrypto-method-deriveKey)\n\n[subtle.digest](https://w3c.github.io/webcrypto/#SubtleCrypto-method-digest)\n\n[subtle.encapsulateBits](https://wicg.github.io/webcrypto-modern-algos/#SubtleCrypto-method-encapsulateBits)\n\n[subtle.encapsulateKey](https://wicg.github.io/webcrypto-modern-algos/#SubtleCrypto-method-encapsulateKey)\n\n[subtle.encrypt](https://w3c.github.io/webcrypto/#SubtleCrypto-method-encrypt)\n\n[subtle.exportKey](https://w3c.github.io/webcrypto/#SubtleCrypto-method-exportKey)\n\n[subtle.generateKey](https://w3c.github.io/webcrypto/#SubtleCrypto-method-generateKey)\n\n[subtle.getPublicKey](https://wicg.github.io/webcrypto-modern-algos/#SubtleCrypto-method-getPublicKey)\n\n[subtle.importKey](https://w3c.github.io/webcrypto/#SubtleCrypto-method-importKey)\n\n[subtle.sign](https://w3c.github.io/webcrypto/#SubtleCrypto-method-sign)\n\n[subtle.unwrapKey](https://w3c.github.io/webcrypto/#SubtleCrypto-method-unwrapKey)\n\n[subtle.verify](https://w3c.github.io/webcrypto/#SubtleCrypto-method-verify)\n\n[subtle.wrapKey](https://w3c.github.io/webcrypto/#SubtleCrypto-method-wrapKey)\n\n[SubtleCrypto.supports](https://wicg.github.io/webcrypto-modern-algos/#SubtleCrypto-method-supports)\n\n## dgram\n\n[createSocket](https://nodejs.org/api/dgram.html#dgramcreatesocketoptions-callback)\n\n### Class: dgram.Socket\n\n[address](https://nodejs.org/api/dgram.html#socketaddress)\n\n[bind](https://nodejs.org/api/dgram.html#socketbindport-address-callback)\n\n[close](https://nodejs.org/api/dgram.html#socketclosecallback)\n\n[ref](https://nodejs.org/api/dgram.html#socketref)\n\n[send](https://nodejs.org/api/dgram.html#socketsendmsg-offset-length-port-address-callback)\n\n[unref](hhttps://nodejs.org/api/dgram.html#socketunref)\n\n## dns\n\n[lookup](https://nodejs.org/api/dns.html#dnslookuphostname-options-callback)\n\n## events\n\n[EventEmitter](https://nodejs.org/api/events.html#class-eventemitter)\n\n## fs\n\n[accessSync](https://nodejs.org/api/fs.html#fsaccesssyncpath-mode)\n\n[constants](https://nodejs.org/api/fs.html#file-access-constants)\n\n[lstatSync](https://nodejs.org/api/fs.html#fslstatsyncpath-options)\n\n[mkdirSync](https://nodejs.org/api/fs.html#fsmkdirsyncpath-options)\n\n[mkdtempSync](https://nodejs.org/api/fs.html#fsmkdtempsyncprefix-options)\n\n[readdirSync](https://nodejs.org/api/fs.html#fsreaddirsyncpath-options)\n\n[readFileSync](https://nodejs.org/api/fs.html#fsreadfilesyncpath-options)\n\n[rmdirSync](https://nodejs.org/api/fs.html#fsrmdirsyncpath-options)\n\n[rmSync](https://nodejs.org/api/fs.html#fsrmsyncpath-options)\n\n[statSync](https://nodejs.org/api/fs.html#fsstatsyncpath-options)\n\n[writeFileSync](https://nodejs.org/api/fs.html#fswritefilesyncfile-data-options)\n\n[chmodSync](https://nodejs.org/api/fs.html#fschmodsyncpath-mode)\n\n[renameSync](https://nodejs.org/api/fs.html#fsrenamesyncoldpath-newpath)\n\n[symlinkSync](https://nodejs.org/api/fs.html#fssymlinksynctarget-path-type)\n\n## fs/promises\n\n[access](https://nodejs.org/api/fs.html#fsstatpath-options-callback)\n\n[constants](https://nodejs.org/api/fs.html#file-access-constants)\n\n[lstat](https://nodejs.org/api/fs.html#fspromiseslstatpath-options)\n\n[mkdir](https://nodejs.org/api/fs.html#fsmkdirpath-options-callback)\n\n[mkdtemp](https://nodejs.org/api/fs.html#fsmkdtempprefix-options-callback)\n\n[open](https://nodejs.org/api/fs.html#fspromisesopenpath-flags-mode)\n\n[readdir](https://nodejs.org/api/fs.html#fspromisesreaddirpath-options)\n\n[readFile](https://nodejs.org/api/fs.html#filehandlereadfileoptions)\n\n[rm](https://nodejs.org/api/fs.html#fsrmpath-options-callback)\n\n[rmdir](https://nodejs.org/api/fs.html#fsrmdirpath-options-callback)\n\n[stat](https://nodejs.org/api/fs.html#fsstatpath-options-callback)\n\n[writeFile](https://nodejs.org/api/fs.html#fspromiseswritefilefile-data-options)\n\n[chmod](https://nodejs.org/api/fs.html#fspromiseschmodpath-mode)\n\n[rename](https://nodejs.org/api/fs.html#fspromisesrenameoldpath-newpath)\n\n[symlink](https://nodejs.org/api/fs.html#fspromisessymlinktarget-path-type)\n\n## https\n\n[Agent](https://nodejs.org/api/https.html#class-httpsagent)\n\n## module\n\n[builtinModules](https://nodejs.org/api/module.html#modulebuiltinmodules)\n\n[createRequire](https://nodejs.org/api/module.html#modulecreaterequirefilename)\n\n> [!NOTE]\n> `require` is available from esm modules natively. This function is just for compatibility\n\n[isBuiltin](https://nodejs.org/api/module.html#moduleisbuiltinmodulename)\n\n[registerHooks](https://nodejs.org/api/module.html#moduleregisterhooksoptions)\n\n## net\n\n> [!WARNING]\n> These APIs uses native streams that is not 100% compatible with the Node.js Streams API. Server APIs like `createSever` provides limited functionality useful for testing purposes. Serverless applications typically don't expose servers. Some server options are not supported:\n> `highWaterMark`, `pauseOnConnect`, `keepAlive`, `noDelay`, `keepAliveInitialDelay`\n\n[connect](https://nodejs.org/api/net.html#netconnect)\n\n[createConnection](https://nodejs.org/api/net.html#netcreateconnection)\n\n[createServer](https://nodejs.org/api/net.html#netcreateserveroptions-connectionlistener)\n\n## os\n\n[arch](https://nodejs.org/api/os.html#osarch)\n\n[availableParallelism](https://nodejs.org/api/os.html#osavailableparallelism)\n\n[cpus](https://nodejs.org/api/os.html#oscpus)\n\n[devNull](https://nodejs.org/api/os.html#osdevnull)\n\n[endianness](https://nodejs.org/api/os.html#osendianness)\n\n[EOL](https://nodejs.org/api/os.html#oseol)\n\n[freemem](https://nodejs.org/api/os.html#osfreemem)\n\n[getPriority](https://nodejs.org/api/os.html#osgetprioritypid)\n\n[homedir](https://nodejs.org/api/os.html#oshomedir)\n\n[hostname](https://nodejs.org/api/os.html#oshostname)\n\n[loadavg](https://nodejs.org/api/os.html#osloadavg)\n\n[machine](https://nodejs.org/api/os.html#osmachine)\n\n[networkInterfaces](https://nodejs.org/api/os.html#osnetworkinterfaces)\n\n[platform](https://nodejs.org/api/os.html#osplatform)\n\n[release](https://nodejs.org/api/os.html#osrelease)\n\n[setPriority](https://nodejs.org/api/os.html#ossetprioritypid-priority)\n\n[tmpdir](https://nodejs.org/api/os.html#osplatform)\n\n[totalmem](https://nodejs.org/api/os.html#ostotalmem)\n\n[type](https://nodejs.org/api/os.html#ostype)\n\n[uptime](https://nodejs.org/api/os.html#osuptime)\n\n[userInfo](https://nodejs.org/api/os.html#osuserinfooptions)\n\n[version](https://nodejs.org/api/os.html#osversion)\n\n## path\n\n[basename](https://nodejs.org/api/path.html#pathbasenamepath-suffix)\n\n[delimiter](https://nodejs.org/api/path.html#pathdelimiter)\n\n[dirname](https://nodejs.org/api/path.html#pathdirnamepath)\n\n[extname](https://nodejs.org/api/path.html#pathextnamepath)\n\n[format](https://nodejs.org/api/path.html#pathformatpathobject)\n\n[isAbsolute](https://nodejs.org/api/path.html#pathisabsolutepath)\n\n[join](https://nodejs.org/api/path.html#pathjoinpaths)\n\n[normalize](https://nodejs.org/api/path.html#pathnormalizepath)\n\n[parse](https://nodejs.org/api/path.html#pathparsepath)\n\n[relative](https://nodejs.org/api/path.html#pathrelativefrom-to)\n\n[resolve](https://nodejs.org/api/path.html#pathresolvepaths)\n\n## perf_hooks\n\n_performance is available globally_\n\n[performance.now](https://nodejs.org/api/perf_hooks.html#performancenow)\n\n## process\n\n_process is available globally_\n\n[arch](https://nodejs.org/api/process.html#processarch)\n\n[argv](https://nodejs.org/api/process.html#processargv)\n\n[argv0](https://nodejs.org/api/process.html#processargv0)\n\n[cwd](https://nodejs.org/api/process.html#processcwd)\n\n[env](https://nodejs.org/api/process.html#processenv)\n\n[exit](https://nodejs.org/api/process.html#processexitcode)\n\n[exitCode](https://nodejs.org/api/process.html#processexitcode-1)\n\n[getegid](https://nodejs.org/api/process.html#processgetegid)\n\n[geteuid](https://nodejs.org/api/process.html#processgeteuid)\n\n[getgid](https://nodejs.org/api/process.html#processgetgid)\n\n[getuid](https://nodejs.org/api/process.html#processgetuid)\n\n[hrtime](https://nodejs.org/api/process.html#processhrtime)\n\n[id](https://nodejs.org/api/process.html#processpid)\n\n[kill](https://nodejs.org/api/process.html#processkillpid-signal)\n\n[platform](https://nodejs.org/api/process.html#processplatform)\n\n[release](https://nodejs.org/api/process.html#processrelease)\n\n[setegid](https://nodejs.org/api/process.html#processsetegidgid)\n\n[seteuid](https://nodejs.org/api/process.html#processseteuiduid)\n\n[setgid](https://nodejs.org/api/process.html#processsetgidgid)\n\n[setuid](https://nodejs.org/api/process.html#processsetuiduid)\n\n[version](https://nodejs.org/api/process.html#processversion)\n\n[versions](https://nodejs.org/api/process.html#processversions)\n\n## stream\n\n[Duplex](https://nodejs.org/api/stream.html#class-streamduplex)\n\n[PassThrough](https://nodejs.org/api/stream.html#class-streampassthrough)\n\n[Readable](https://nodejs.org/api/stream.html#class-streamreadable)\n\n[Stream](https://nodejs.org/api/stream.html#class-stream)\n\n[Transform](https://nodejs.org/api/stream.html#class-streamtransform)\n\n[Writable](https://nodejs.org/api/stream.html#class-streamwritable)\n\n[finished](https://nodejs.org/api/stream.html#streamfinishedstream-options-callback)\n\n[pipeline](https://nodejs.org/api/stream.html#streampipelinestreams-callback)\n\n## stream/promises\n\n[finished](https://nodejs.org/api/stream.html#streamfinishedstream-options-callback)\n\n[pipeline](https://nodejs.org/api/stream.html#streampipelinestreams-callback)\n\n## string_decoder\n\n[StringDecoder](https://nodejs.org/api/string_decoder.html#class-stringdecoder)\n\n## timers\n\n_Also available globally_\n\n[clearImmediate](https://nodejs.org/api/timers.html#clearimmediateimmediate)\n\n[clearInterval](https://nodejs.org/api/timers.html#clearintervaltimeout)\n\n[clearTimeout](https://nodejs.org/api/timers.html#cleartimeouttimeout)\n\n[setImmediate](https://nodejs.org/api/timers.html#setimmediatecallback-args)\n\n[setInterval](https://nodejs.org/api/timers.html#setintervalcallback-delay-args)\n\n[setTimeout](https://nodejs.org/api/timers.html#settimeoutcallback-delay-args)\n\n## tty\n\n[isatty](https://nodejs.org/api/tty.html#ttyisattyfd)\n\n## url\n\n### Class\n\n[URL](https://nodejs.org/api/url.html#class-url)\n\n[URLSearchParams](https://nodejs.org/api/url.html#class-urlsearchparams)\n\n### Prototype methods\n\n[domainToASCII](https://nodejs.org/api/url.html#urldomaintoasciidomain)\n\n[domainToUnicode](https://nodejs.org/api/url.html#urldomaintounicodedomain)\n\n[fileURLToPath](https://nodejs.org/api/url.html#urlfileurltopathurl-options)\n\n[format](https://nodejs.org/api/url.html#urlformaturl-options)\n\n[pathToFileURL](https://nodejs.org/api/url.html#urlpathtofileurlpath-options)\n\n[urlToHttpOptions](https://nodejs.org/api/url.html#urlurltohttpoptionsurl)\n\n## util\n\n> [!IMPORTANT]\n> Supported encodings: hex, base64, utf-8, utf-16le, windows-1252 and their aliases.\n\n[format](https://nodejs.org/api/util.html#utilformatformat-args)\n\n[inherits](https://nodejs.org/api/util.html#utilinheritsconstructor-superconstructor)\n\n[styleText](https://nodejs.org/api/util.html#utilstyletextformat-text)\n\n[inspect](https://nodejs.org/api/util.html#utilinspectobject-options)\n\n[TextDecoder](https://nodejs.org/api/util.html#class-utiltextdecoder)\n\n[TextDecoderStream](https://nodejs.org/api/webstreams.html#class-textdecoderstream)\n\n[TextEncoder](https://nodejs.org/api/util.html#class-utiltextdecoder)\n\n[TextEncoderStream](https://nodejs.org/api/webstreams.html#class-textencoderstream)\n\n## zlib\n\n### Convenience methods\n\n[deflate](https://nodejs.org/api/zlib.html#zlibdeflatebuffer-options-callback)\n\n[deflateSync](https://nodejs.org/api/zlib.html#zlibdeflatesyncbuffer-options)\n\n[deflateRaw](https://nodejs.org/api/zlib.html#zlibdeflaterawbuffer-options-callback)\n\n[deflateRawSync](https://nodejs.org/api/zlib.html#zlibdeflaterawsyncbuffer-options)\n\n[gzip](https://nodejs.org/api/zlib.html#zlibgzipbuffer-options-callback)\n\n[gzipSync](https://nodejs.org/api/zlib.html#zlibgzipsyncbuffer-options)\n\n[inflate](https://nodejs.org/api/zlib.html#zlibinflatebuffer-options-callback)\n\n[inflateSync](https://nodejs.org/api/zlib.html#zlibinflatesyncbuffer-options)\n\n[inflateRaw](https://nodejs.org/api/zlib.html#zlibinflaterawbuffer-options-callback)\n\n[inflateRawSync](https://nodejs.org/api/zlib.html#zlibinflaterawsyncbuffer-options)\n\n[gunzip](https://nodejs.org/api/zlib.html#zlibgunzipbuffer-options-callback)\n\n[gunzipSync](https://nodejs.org/api/zlib.html#zlibgunzipsyncbuffer-options)\n\n[brotliCompress](https://nodejs.org/api/zlib.html#zlibbrotlicompressbuffer-options-callback)\n\n[brotliCompressSync](https://nodejs.org/api/zlib.html#zlibbrotlicompresssyncbuffer-options)\n\n[brotliDecompress](https://nodejs.org/api/zlib.html#zlibbrotlidecompressbuffer-options-callback)\n\n[brotliDecompressSync](https://nodejs.org/api/zlib.html#zlibbrotlidecompresssyncbuffer-options)\n\n[zstdCompress](https://nodejs.org/api/zlib.html#zlibzstdcompressbuffer-options-callback)\n\n[zstdCompressSync](https://nodejs.org/api/zlib.html#zlibzstdcompresssyncbuffer-options)\n\n[zstdDecompress](https://nodejs.org/api/zlib.html#zlibzstddecompressbuffer-options-callback)\n\n[zstdDecompressSync](https://nodejs.org/api/zlib.html#zlibzstddecompresssyncbuffer-options)\n\n# LLRT API\n\n## llrt:codec\n\n```typescript\nexport function decodeFromBase64(value: string): Uint8Array;\nexport function encodeToBase64(\n  value: string | Array | ArrayBuffer | Uint8Array\n): string;\nexport function decodeFromHex(value: string): Uint8Array;\nexport function encodeToHex(\n  value: string | Array | ArrayBuffer | Uint8Array\n): string;\n```\n\n## llrt:timezone\n\nLightweight timezone support for LLRT. Provides timezone offset calculations and a minimal `Intl.DateTimeFormat` implementation for dayjs and similar library compatibility.\n\n```typescript\ninterface Timezone {\n  /**\n   * Get the UTC offset in minutes for a timezone at a given time.\n   * Returns a positive value for timezones ahead of UTC (e.g., 540 for Asia/Tokyo)\n   * and a negative value for timezones behind UTC (e.g., -420 for America/Denver).\n   * Automatically handles DST transitions.\n   */\n  getOffset(timezone: string, epochMs: number): number;\n\n  /**\n   * List all available IANA timezone names.\n   */\n  list(): string[];\n}\n\ndeclare var Timezone: Timezone;\n\nexport { Timezone };\n```\n\n### Example\n\n```javascript\nimport { Timezone } from \"llrt:timezone\";\n\n// Get current offset for Denver (handles DST automatically)\nconst offset = Timezone.getOffset(\"America/Denver\", Date.now());\n// Returns -420 (UTC-7) in winter, -360 (UTC-6) in summer\n\n// Check DST transition\nconst beforeDst = new Date(\"2024-03-09T12:00:00Z\").getTime();\nconst afterDst = new Date(\"2024-03-11T12:00:00Z\").getTime();\nconsole.log(Timezone.getOffset(\"America/Denver\", beforeDst)); // -420\nconsole.log(Timezone.getOffset(\"America/Denver\", afterDst)); // -360\n\n// List all available timezones\nconst zones = Timezone.list();\n```\n\n### Intl.DateTimeFormat\n\nLLRT provides a minimal `Intl.DateTimeFormat` implementation focused on timezone support. This enables libraries like dayjs to work with timezone conversions transparently.\n\n```javascript\n// Create a formatter for a specific timezone\nconst formatter = new Intl.DateTimeFormat(\"en-US\", {\n  timeZone: \"America/Denver\",\n  hour12: false,\n  year: \"numeric\",\n  month: \"2-digit\",\n  day: \"2-digit\",\n  hour: \"2-digit\",\n  minute: \"2-digit\",\n  second: \"2-digit\",\n});\n\n// Format a date\nconst date = new Date(\"2022-03-02T15:45:34Z\");\nconsole.log(formatter.format(date)); // \"03/02/2022, 08:45:34\"\n\n// Get formatted parts\nconst parts = formatter.formatToParts(date);\n// [{ type: \"month\", value: \"03\" }, { type: \"literal\", value: \"/\" }, ...]\n\n// Get resolved options\nconst options = formatter.resolvedOptions();\nconsole.log(options.timeZone); // \"America/Denver\"\n```\n\n### Date.prototype.toLocaleString with timezone\n\n`Date.prototype.toLocaleString` is enhanced to support the `timeZone` option:\n\n```javascript\nconst date = new Date(\"2022-03-02T15:45:34Z\");\n\n// Convert to Denver time\nconsole.log(date.toLocaleString(\"en-US\", { timeZone: \"America/Denver\" }));\n// \"03/02/2022, 8:45:34 AM\"\n\n// Convert to Tokyo time\nconsole.log(date.toLocaleString(\"en-US\", { timeZone: \"Asia/Tokyo\" }));\n// \"03/03/2022, 12:45:34 AM\"\n```\n\n### Using with dayjs\n\nThe timezone module enables dayjs timezone support without polyfills:\n\n```javascript\nconst dayjs = require(\"dayjs\");\nconst utc = require(\"dayjs/plugin/utc\");\nconst timezone = require(\"dayjs/plugin/timezone\");\n\ndayjs.extend(utc);\ndayjs.extend(timezone);\n\n// Convert between timezones\nconst date = dayjs(\"2022-03-02T15:45:34Z\");\nconsole.log(date.tz(\"America/Denver\").format()); // \"2022-03-02T08:45:34-07:00\"\nconsole.log(date.tz(\"Asia/Tokyo\").format()); // \"2022-03-03T00:45:34+09:00\"\n\n// Get start of day in a specific timezone\nconst denver = date.tz(\"America/Denver\");\nconsole.log(denver.startOf(\"day\").format()); // \"2022-03-02T00:00:00-07:00\"\n```\n\n## llrt:qjs\n\n```typescript\ninterface MemoryInfo {\n  malloc_size: number;\n  malloc_limit: number;\n  memory_used_size: number;\n  malloc_count: number;\n  memory_used_count: number;\n  atom_count: number;\n  atom_size: number;\n  str_count: number;\n  str_size: number;\n  obj_count: number;\n  obj_size: number;\n  prop_count: number;\n  prop_size: number;\n  shape_count: number;\n  shape_size: number;\n  js_func_count: number;\n  js_func_size: number;\n  js_func_code_size: number;\n  js_func_pc2line_count: number;\n  js_func_pc2line_size: number;\n  c_func_count: number;\n  array_count: number;\n  fast_array_count: number;\n  fast_array_elements: number;\n  binary_object_count: number;\n  binary_object_size: number;\n}\nexport function ComputeMemoryUsage(): MemoryInfo;\n```\n\n## llrt:xml\n\nA lightweight and fast XML parser and builder\n\n```typescript\nexport class XmlText {\n  constructor(text: string);\n  toString(): string;\n}\n\nexport class XmlNode {\n  constructor(name: string);\n  withName(name: string): this;\n  addAttribute(name: string, value: string): this;\n  addChildNode(node: XmlNode | XmlText): this;\n  removeAttribute(name: string): this;\n  toString(): string;\n}\n\ntype XmlParserOptions = {\n    ignoreAttributes?: boolean;\n    attributeNamePrefix?: string;\n    textNodeName?: string;\n    attributeValueProcessor?: (attrName: string, attrValue: string, jpath: string) => unknown;\n    tagValueProcessor?: (attrName: string, attrValue: string, jpath: string, hasAttributes: boolean) => unknown;\n}\nexport class XMLParser(options?: XmlParserOptions){\n    parse(xml:string):object\n}\n```\n\n## llrt:util\n\n```typescript\nexport function dimensions(): [number, number];\nexport function load(path: string): any;\nexport function print(value: any): void;\n```\n\n# Web Platform API\n\n## CONSOLE\n\n[Console](https://developer.mozilla.org/en-US/docs/Web/API/console)\n\n## DOM\n\n[AbortController](https://developer.mozilla.org/en-US/docs/Web/API/AbortController)\n\n[AbortSignal](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal)\n\n[CustomEvent](https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent)\n\n[Event](https://developer.mozilla.org/en-US/docs/Web/API/Event)\n\n[EventTarget](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget)\n\n## ECMASCRIPT\n\n[globalThis](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis)\n\n## ENCODING\n\n[TextDecoder](https://developer.mozilla.org/en-US/docs/Web/API/TextDecoder)\n\n[TextEncoder](https://developer.mozilla.org/en-US/docs/Web/API/TextEncoder)\n\n## FETCH\n\n[Headers](https://developer.mozilla.org/en-US/docs/Web/API/Headers)\n\n[Request](https://developer.mozilla.org/en-US/docs/Web/API/Request)\n\n[Response](https://developer.mozilla.org/en-US/docs/Web/API/Response)\n\n[fetch](https://developer.mozilla.org/en-US/docs/Web/API/Headers)\n\n> [!IMPORTANT]\n> There are some differences with the [WHATWG standard](https://fetch.spec.whatwg.org). Mainly browser specific behavior is removed:\n>\n> - `keepalive` is always true\n> - `request.body` can only be `string`, `Array`, `ArrayBuffer` or `Uint8Array`\n> - `response.body` returns `null`. Use `response.text()`, `response.json()` etc\n> - `mode`, `credentials`, `referrerPolicy`, `priority`, `cache` is not available/applicable\n\n## FILEAPI\n\n[Blob](https://developer.mozilla.org/en-US/docs/Web/API/Blob)\n\n[File](https://developer.mozilla.org/en-US/docs/Web/API/File)\n\n## HR-TIME\n\n[performance.now](https://developer.mozilla.org/en-US/docs/Web/API/Performance/now)\n\n[performance.timeOrigin](https://developer.mozilla.org/en-US/docs/Web/API/Performance/timeOrigin)\n\n## HTML\n\n[atob](https://developer.mozilla.org/en-US/docs/Web/API/atob)\n\n[btoa](https://developer.mozilla.org/en-US/docs/Web/API/btoa)\n\n[clearInterval](https://developer.mozilla.org/en-US/docs/Web/API/Window/clearInterval)\n\n[clearTimeout](https://developer.mozilla.org/en-US/docs/Web/API/Window/clearTimeout)\n\n[navigator](https://developer.mozilla.org/en-US/docs/Web/API/Window/navigator)\n\n[queueMicrotask](https://developer.mozilla.org/en-US/docs/Web/API/Window/queueMicrotask)\n\n[setInterval](https://developer.mozilla.org/en-US/docs/Web/API/Window/setInterval)\n\n[setTimeout](https://developer.mozilla.org/en-US/docs/Web/API/Window/setTimeout)\n\n[structuredClone](https://developer.mozilla.org/en-US/docs/Web/API/Window/structuredClone)\n\n[userAgent](https://developer.mozilla.org/en-US/docs/Web/API/Navigator/userAgent)\n\n## STREAMS\n\n[ByteLengthQueuingStrategy](https://developer.mozilla.org/en-US/docs/Web/API/ByteLengthQueuingStrategy)\n\n[CountQueuingStrategy](https://developer.mozilla.org/en-US/docs/Web/API/CountQueuingStrategy)\n\n[ReadableByteStreamController](https://developer.mozilla.org/en-US/docs/Web/API/ReadableByteStreamController)\n\n[ReadableStream](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream)\n\n[ReadableStreamBYOBReader](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamBYOBReader)\n\n[ReadableStreamBYOBRequest](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamBYOBRequest)\n\n[ReadableStreamDefaultController](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultController)\n\n[ReadableStreamDefaultReader](https://developer.mozilla.org/en-US/docs/Web/API/ReadableStreamDefaultReader)\n\n[TransformStream](https://developer.mozilla.org/en-US/docs/Web/API/TransformStream)\n\n[TransformStreamDefaultController](https://developer.mozilla.org/en-US/docs/Web/API/TransformStreamDefaultController)\n\n[WritableStream](https://developer.mozilla.org/en-US/docs/Web/API/WritableStream)\n\n[WritableStreamDefaultController](https://developer.mozilla.org/en-US/docs/Web/API/WritableStreamDefaultController)\n\n[WritableStreamDefaultWriter](https://developer.mozilla.org/en-US/docs/Web/API/WritableStreamDefaultWriter)\n\n## URL\n\n[URL](https://developer.mozilla.org/en-US/docs/Web/API/URL)\n\n[URLSearchParams](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams)\n\n## WEBCRYPTO\n\n[Crypto](https://developer.mozilla.org/en-US/docs/Web/API/Crypto)\n\n[CryptoKey](https://developer.mozilla.org/en-US/docs/Web/API/CryptoKey)\n\n[SubtleCrypto](https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto)\n\n## WEBIDL\n\n[DOMException](https://developer.mozilla.org/en-US/docs/Web/API/DOMException)\n\n## XHR\n\n[FormData](https://developer.mozilla.org/en-US/docs/Web/API/FormData)\n</yakaai_skills>"}