Copy disabled (too large)
Download .txt
Showing preview only (18,778K chars total). Download the full file to get everything.
Repository: fastly/js-compute-runtime
Branch: main
Commit: b6f41b0bcf42
Files: 9622
Total size: 15.6 MB
Directory structure:
gitextract_lduunf0x/
├── .clang-format
├── .github/
│ ├── dependabot.yml
│ └── workflows/
│ ├── cleanup.yml
│ ├── dependencies.yml
│ ├── main.yml
│ └── release-please.yml
├── .gitignore
├── .gitmodules
├── .prettierrc.json
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── DEVELOPMENT.md
├── LICENSE
├── README.md
├── SECURITY.md
├── ci/
│ ├── build-tarballs.sh
│ ├── clang-format.ignore
│ ├── clang-format.sh
│ ├── format-changelog.js
│ ├── rustfmt.sh
│ └── shellcheck.sh
├── compute-file-server-cli/
│ ├── .gitignore
│ ├── Cargo.toml
│ ├── LICENSE
│ ├── README.md
│ ├── rust-toolchain.toml
│ └── src/
│ └── main.rs
├── documentation/
│ ├── .gitignore
│ ├── LICENSE.md
│ ├── README.md
│ ├── app/
│ │ ├── .gitignore
│ │ ├── c-at-e-file-server.js
│ │ ├── fastly.toml
│ │ ├── package.json
│ │ ├── src/
│ │ │ └── index.js
│ │ └── version-redirects.json
│ ├── docs/
│ │ ├── acl/
│ │ │ └── Acl/
│ │ │ ├── open.mdx
│ │ │ └── prototype/
│ │ │ └── lookup.mdx
│ │ ├── backend/
│ │ │ ├── Backend/
│ │ │ │ ├── Backend.mdx
│ │ │ │ ├── exists.mdx
│ │ │ │ ├── fromName.mdx
│ │ │ │ ├── health.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── betweenBytesTimeout.mdx
│ │ │ │ ├── connectTimeout.mdx
│ │ │ │ ├── firstByteTimeout.mdx
│ │ │ │ ├── health.mdx
│ │ │ │ ├── hostOverride.mdx
│ │ │ │ ├── httpKeepaliveTime.mdx
│ │ │ │ ├── isDynamic.mdx
│ │ │ │ ├── isSSL.mdx
│ │ │ │ ├── name.mdx
│ │ │ │ ├── port.mdx
│ │ │ │ ├── target.mdx
│ │ │ │ ├── tcpKeepalive.mdx
│ │ │ │ ├── tlsMaxVersion.mdx
│ │ │ │ ├── tlsMinVersion.mdx
│ │ │ │ ├── toName.mdx
│ │ │ │ └── toString.mdx
│ │ │ ├── allowDynamicBackends.mdx
│ │ │ ├── enforceExplicitBackends.mdx
│ │ │ └── setDefaultDynamicBackendConfig.mdx
│ │ ├── cache/
│ │ │ ├── CacheEntry/
│ │ │ │ ├── age.mdx
│ │ │ │ ├── body.mdx
│ │ │ │ ├── close.mdx
│ │ │ │ ├── hits.mdx
│ │ │ │ ├── length.mdx
│ │ │ │ ├── maxAge.mdx
│ │ │ │ ├── staleWhileRevalidate.mdx
│ │ │ │ ├── state.mdx
│ │ │ │ └── userMetadata.mdx
│ │ │ ├── CacheState/
│ │ │ │ ├── found.mdx
│ │ │ │ ├── mustInsertOrUpdate.mdx
│ │ │ │ ├── stale.mdx
│ │ │ │ └── usable.mdx
│ │ │ ├── CoreCache/
│ │ │ │ ├── insert.mdx
│ │ │ │ ├── lookup.mdx
│ │ │ │ └── transactionLookup.mdx
│ │ │ ├── SimpleCache/
│ │ │ │ ├── SimpleCache.mdx
│ │ │ │ ├── get.mdx
│ │ │ │ ├── getOrSet.mdx
│ │ │ │ └── purge.mdx
│ │ │ ├── SimpleCacheEntry/
│ │ │ │ ├── arrayBuffer.mdx
│ │ │ │ ├── body.mdx
│ │ │ │ ├── bodyUsed.mdx
│ │ │ │ ├── json.mdx
│ │ │ │ └── text.mdx
│ │ │ └── TransactionCacheEntry/
│ │ │ ├── age.mdx
│ │ │ ├── body.mdx
│ │ │ ├── cancel.mdx
│ │ │ ├── close.mdx
│ │ │ ├── hits.mdx
│ │ │ ├── insert.mdx
│ │ │ ├── insertAndStreamBack.mdx
│ │ │ ├── length.mdx
│ │ │ ├── maxAge.mdx
│ │ │ ├── staleWhileRevalidate.mdx
│ │ │ ├── state.mdx
│ │ │ ├── update.mdx
│ │ │ └── userMetadata.mdx
│ │ ├── cache-override/
│ │ │ └── CacheOverride/
│ │ │ └── CacheOverride.mdx
│ │ ├── compute/
│ │ │ ├── purgeSurrogateKey.mdx
│ │ │ └── vCpuTime.mdx
│ │ ├── config-store/
│ │ │ └── ConfigStore/
│ │ │ ├── ConfigStore.mdx
│ │ │ └── prototype/
│ │ │ └── get.mdx
│ │ ├── device/
│ │ │ └── Device/
│ │ │ ├── lookup.mdx
│ │ │ └── prototype/
│ │ │ ├── brand.mdx
│ │ │ ├── hardwareType.mdx
│ │ │ ├── isBot.mdx
│ │ │ ├── isDesktop.mdx
│ │ │ ├── isGameConsole.mdx
│ │ │ ├── isMediaPlayer.mdx
│ │ │ ├── isMobile.mdx
│ │ │ ├── isSmartTV.mdx
│ │ │ ├── isTablet.mdx
│ │ │ ├── isTouchscreen.mdx
│ │ │ ├── model.mdx
│ │ │ ├── name.mdx
│ │ │ └── toJSON.mdx
│ │ ├── dictionary/
│ │ │ └── Dictionary/
│ │ │ ├── Dictionary.mdx
│ │ │ └── prototype/
│ │ │ └── get.mdx
│ │ ├── edge-rate-limiter/
│ │ │ ├── EdgeRateLimiter/
│ │ │ │ ├── EdgeRateLimiter.mdx
│ │ │ │ └── prototype/
│ │ │ │ └── checkRate.mdx
│ │ │ ├── PenaltyBox/
│ │ │ │ ├── PenaltyBox.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── add.mdx
│ │ │ │ └── has.mdx
│ │ │ └── RateCounter/
│ │ │ ├── RateCounter.mdx
│ │ │ └── prototype/
│ │ │ ├── increment.mdx
│ │ │ ├── lookupCount.mdx
│ │ │ └── lookupRate.mdx
│ │ ├── env/
│ │ │ └── env.mdx
│ │ ├── experimental/
│ │ │ ├── allowDynamicBackends.mdx
│ │ │ ├── includeBytes.mdx
│ │ │ ├── mapAndLogError.mdx
│ │ │ ├── mapError.mdx
│ │ │ ├── sdkVersion.mdx
│ │ │ └── setReusableSandboxOptions.mdx
│ │ ├── fanout/
│ │ │ └── createFanoutHandoff.mdx
│ │ ├── geolocation/
│ │ │ └── getGeolocationForIpAddress.mdx
│ │ ├── globals/
│ │ │ ├── AggregrateError/
│ │ │ │ └── AggregrateError.mdx
│ │ │ ├── Array/
│ │ │ │ ├── @@species.mdx
│ │ │ │ ├── Array.mdx
│ │ │ │ ├── from.mdx
│ │ │ │ ├── isArray.mdx
│ │ │ │ ├── of.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── @@iterator.mdx
│ │ │ │ ├── @@unscopables.mdx
│ │ │ │ ├── at.mdx
│ │ │ │ ├── concat.mdx
│ │ │ │ ├── copyWithin.mdx
│ │ │ │ ├── entries.mdx
│ │ │ │ ├── every.mdx
│ │ │ │ ├── fill.mdx
│ │ │ │ ├── filter.mdx
│ │ │ │ ├── find.mdx
│ │ │ │ ├── findIndex.mdx
│ │ │ │ ├── flat.mdx
│ │ │ │ ├── flatMap.mdx
│ │ │ │ ├── forEach.mdx
│ │ │ │ ├── includes.mdx
│ │ │ │ ├── indexOf.mdx
│ │ │ │ ├── join.mdx
│ │ │ │ ├── keys.mdx
│ │ │ │ ├── lastIndexOf.mdx
│ │ │ │ ├── length.mdx
│ │ │ │ ├── map.mdx
│ │ │ │ ├── pop.mdx
│ │ │ │ ├── push.mdx
│ │ │ │ ├── reduce.mdx
│ │ │ │ ├── reduceRight.mdx
│ │ │ │ ├── reverse.mdx
│ │ │ │ ├── shift.mdx
│ │ │ │ ├── slice.mdx
│ │ │ │ ├── some.mdx
│ │ │ │ ├── sort.mdx
│ │ │ │ ├── splice.mdx
│ │ │ │ ├── toLocaleString.mdx
│ │ │ │ ├── toString.mdx
│ │ │ │ ├── unshift.mdx
│ │ │ │ └── values.mdx
│ │ │ ├── ArrayBuffer/
│ │ │ │ ├── @@species.mdx
│ │ │ │ ├── ArrayBuffer.mdx
│ │ │ │ ├── isView.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── byteLength.mdx
│ │ │ │ └── slice.mdx
│ │ │ ├── BigInt/
│ │ │ │ ├── BigInt.mdx
│ │ │ │ ├── asIntN.mdx
│ │ │ │ ├── asUintN.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── toLocaleString.mdx
│ │ │ │ ├── toString.mdx
│ │ │ │ └── valueOf.mdx
│ │ │ ├── BigInt64Array/
│ │ │ │ └── BigInt64Array.mdx
│ │ │ ├── BigUint64Array/
│ │ │ │ └── BigUint64Array.mdx
│ │ │ ├── Blob/
│ │ │ │ ├── Blob.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── arrayBuffer.mdx
│ │ │ │ ├── size.mdx
│ │ │ │ ├── slice.mdx
│ │ │ │ ├── stream.mdx
│ │ │ │ ├── text.mdx
│ │ │ │ └── type.mdx
│ │ │ ├── Boolean/
│ │ │ │ ├── Boolean.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── toString.mdx
│ │ │ │ └── valueOf.mdx
│ │ │ ├── ByteLengthQueuingStrategy/
│ │ │ │ ├── ByteLengthQueuingStrategy.mdx
│ │ │ │ └── prototype/
│ │ │ │ └── size.mdx
│ │ │ ├── CompressionStream/
│ │ │ │ ├── CompressionStream.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── readable.mdx
│ │ │ │ └── writable.mdx
│ │ │ ├── CryptoKey/
│ │ │ │ ├── CryptoKey.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── algorithm.mdx
│ │ │ │ ├── extractable.mdx
│ │ │ │ ├── type.mdx
│ │ │ │ └── usages.mdx
│ │ │ ├── DOMException/
│ │ │ │ ├── DOMException.mdx
│ │ │ │ ├── code.mdx
│ │ │ │ ├── message.mdx
│ │ │ │ └── name.mdx
│ │ │ ├── DataView/
│ │ │ │ ├── DataView.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── buffer.mdx
│ │ │ │ ├── byteLength.mdx
│ │ │ │ ├── byteOffset.mdx
│ │ │ │ ├── getBigInt64.mdx
│ │ │ │ ├── getBigUint64.mdx
│ │ │ │ ├── getFloat32.mdx
│ │ │ │ ├── getFloat64.mdx
│ │ │ │ ├── getInt16.mdx
│ │ │ │ ├── getInt32.mdx
│ │ │ │ ├── getInt8.mdx
│ │ │ │ ├── getUint16.mdx
│ │ │ │ ├── getUint32.mdx
│ │ │ │ ├── getUint8.mdx
│ │ │ │ ├── setBigInt64.mdx
│ │ │ │ ├── setBigUint64.mdx
│ │ │ │ ├── setFloat32.mdx
│ │ │ │ ├── setFloat64.mdx
│ │ │ │ ├── setInt16.mdx
│ │ │ │ ├── setInt32.mdx
│ │ │ │ ├── setInt8.mdx
│ │ │ │ ├── setUint16.mdx
│ │ │ │ ├── setUint32.mdx
│ │ │ │ └── setUint8.mdx
│ │ │ ├── Date/
│ │ │ │ ├── Date.mdx
│ │ │ │ ├── UTC.mdx
│ │ │ │ ├── now.mdx
│ │ │ │ ├── parse.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── @@toPrimitive.mdx
│ │ │ │ ├── getDate.mdx
│ │ │ │ ├── getDay.mdx
│ │ │ │ ├── getFullYear.mdx
│ │ │ │ ├── getHours.mdx
│ │ │ │ ├── getMilliseconds.mdx
│ │ │ │ ├── getMinutes.mdx
│ │ │ │ ├── getMonth.mdx
│ │ │ │ ├── getSeconds.mdx
│ │ │ │ ├── getTime.mdx
│ │ │ │ ├── getTimezoneOffset.mdx
│ │ │ │ ├── getUTCDate.mdx
│ │ │ │ ├── getUTCDay.mdx
│ │ │ │ ├── getUTCFullYear.mdx
│ │ │ │ ├── getUTCHours.mdx
│ │ │ │ ├── getUTCMilliseconds.mdx
│ │ │ │ ├── getUTCMinutes.mdx
│ │ │ │ ├── getUTCMonth.mdx
│ │ │ │ ├── getUTCSeconds.mdx
│ │ │ │ ├── getYear.mdx
│ │ │ │ ├── setDate.mdx
│ │ │ │ ├── setFullYear.mdx
│ │ │ │ ├── setHours.mdx
│ │ │ │ ├── setMilliseconds.mdx
│ │ │ │ ├── setMinutes.mdx
│ │ │ │ ├── setMonth.mdx
│ │ │ │ ├── setSeconds.mdx
│ │ │ │ ├── setTime.mdx
│ │ │ │ ├── setUTCDate.mdx
│ │ │ │ ├── setUTCFullYear.mdx
│ │ │ │ ├── setUTCHours.mdx
│ │ │ │ ├── setUTCMilliseconds.mdx
│ │ │ │ ├── setUTCMinutes.mdx
│ │ │ │ ├── setUTCMonth.mdx
│ │ │ │ ├── setUTCSeconds.mdx
│ │ │ │ ├── setYear.mdx
│ │ │ │ ├── toDateString.mdx
│ │ │ │ ├── toISOString.mdx
│ │ │ │ ├── toJSON.mdx
│ │ │ │ ├── toLocaleDateString.mdx
│ │ │ │ ├── toLocaleString.mdx
│ │ │ │ ├── toLocaleTimeString.mdx
│ │ │ │ ├── toString.mdx
│ │ │ │ ├── toTimeString.mdx
│ │ │ │ ├── toUTCString.mdx
│ │ │ │ └── valueOf.mdx
│ │ │ ├── DecompressionStream/
│ │ │ │ ├── DecompressionStream.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── readable.mdx
│ │ │ │ └── writable.mdx
│ │ │ ├── EcKeyImportParams/
│ │ │ │ └── EcKeyImportParams.mdx
│ │ │ ├── EcdsaParams/
│ │ │ │ └── EcdsaParams.mdx
│ │ │ ├── Error/
│ │ │ │ ├── Error.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── cause.mdx
│ │ │ │ ├── message.mdx
│ │ │ │ ├── name.mdx
│ │ │ │ └── toString.mdx
│ │ │ ├── EvalError/
│ │ │ │ └── EvalError.mdx
│ │ │ ├── FetchEvent/
│ │ │ │ ├── FetchEvent.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── respondWith.mdx
│ │ │ │ ├── sendEarlyHints.mdx
│ │ │ │ └── waitUntil.mdx
│ │ │ ├── FinalizationRegistry/
│ │ │ │ ├── FinalizationRegistry.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── register.mdx
│ │ │ │ └── unregister.mdx
│ │ │ ├── Float32Array/
│ │ │ │ └── Float32Array.mdx
│ │ │ ├── Float64Array/
│ │ │ │ └── Float64Array.mdx
│ │ │ ├── FormData/
│ │ │ │ ├── FormData.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── append.mdx
│ │ │ │ ├── delete.mdx
│ │ │ │ ├── entries.mdx
│ │ │ │ ├── forEach.mdx
│ │ │ │ ├── get.mdx
│ │ │ │ ├── getAll.mdx
│ │ │ │ ├── has.mdx
│ │ │ │ ├── keys.mdx
│ │ │ │ ├── set.mdx
│ │ │ │ └── values.mdx
│ │ │ ├── Function/
│ │ │ │ ├── Function.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── apply.mdx
│ │ │ │ ├── bind.mdx
│ │ │ │ ├── call.mdx
│ │ │ │ ├── index.mdx
│ │ │ │ ├── length.mdx
│ │ │ │ ├── name.mdx
│ │ │ │ └── toString.mdx
│ │ │ ├── Headers/
│ │ │ │ ├── Headers.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── append.mdx
│ │ │ │ ├── delete.mdx
│ │ │ │ ├── entries.mdx
│ │ │ │ ├── forEach.mdx
│ │ │ │ ├── get.mdx
│ │ │ │ ├── getSetCookie.mdx
│ │ │ │ ├── has.mdx
│ │ │ │ ├── keys.mdx
│ │ │ │ ├── set.mdx
│ │ │ │ └── values.mdx
│ │ │ ├── HmacImportParams/
│ │ │ │ └── HmacImportParams.mdx
│ │ │ ├── Infinity.mdx
│ │ │ ├── Int16Array/
│ │ │ │ └── Int16Array.mdx
│ │ │ ├── Int32Array/
│ │ │ │ └── Int32Array.mdx
│ │ │ ├── Int8Array/
│ │ │ │ └── Int8Array.mdx
│ │ │ ├── JSON/
│ │ │ │ ├── parse.mdx
│ │ │ │ └── stringify.mdx
│ │ │ ├── Map/
│ │ │ │ ├── @@species.mdx
│ │ │ │ ├── Map.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── @@iterator.mdx
│ │ │ │ ├── clear.mdx
│ │ │ │ ├── delete.mdx
│ │ │ │ ├── entries.mdx
│ │ │ │ ├── forEach.mdx
│ │ │ │ ├── get.mdx
│ │ │ │ ├── has.mdx
│ │ │ │ ├── keys.mdx
│ │ │ │ ├── set.mdx
│ │ │ │ ├── size.mdx
│ │ │ │ └── values.mdx
│ │ │ ├── Math/
│ │ │ │ ├── E.mdx
│ │ │ │ ├── LN10.mdx
│ │ │ │ ├── LN2.mdx
│ │ │ │ ├── LOG10e.mdx
│ │ │ │ ├── LOG2e.mdx
│ │ │ │ ├── PI.mdx
│ │ │ │ ├── SQRT1_2.mdx
│ │ │ │ ├── SQRT2.mdx
│ │ │ │ ├── abs.mdx
│ │ │ │ ├── acos.mdx
│ │ │ │ ├── acosh.mdx
│ │ │ │ ├── asin.mdx
│ │ │ │ ├── asinh.mdx
│ │ │ │ ├── atan.mdx
│ │ │ │ ├── atan2.mdx
│ │ │ │ ├── atanh.mdx
│ │ │ │ ├── cbrt.mdx
│ │ │ │ ├── ceil.mdx
│ │ │ │ ├── clz32.mdx
│ │ │ │ ├── cos.mdx
│ │ │ │ ├── cosh.mdx
│ │ │ │ ├── exp.mdx
│ │ │ │ ├── expm1.mdx
│ │ │ │ ├── floor.mdx
│ │ │ │ ├── fround.mdx
│ │ │ │ ├── hypot.mdx
│ │ │ │ ├── imul.mdx
│ │ │ │ ├── log.mdx
│ │ │ │ ├── log10.mdx
│ │ │ │ ├── log1p.mdx
│ │ │ │ ├── log2.mdx
│ │ │ │ ├── max.mdx
│ │ │ │ ├── min.mdx
│ │ │ │ ├── pow.mdx
│ │ │ │ ├── random.mdx
│ │ │ │ ├── round.mdx
│ │ │ │ ├── sign.mdx
│ │ │ │ ├── sin.mdx
│ │ │ │ ├── sinh.mdx
│ │ │ │ ├── sqrt.mdx
│ │ │ │ ├── tan.mdx
│ │ │ │ ├── tanh.mdx
│ │ │ │ └── trunc.mdx
│ │ │ ├── NaN.mdx
│ │ │ ├── Number/
│ │ │ │ ├── MAX_SAFE_INTEGER.mdx
│ │ │ │ ├── MAX_VALUE.mdx
│ │ │ │ ├── MIN_SAFE_INTEGER.mdx
│ │ │ │ ├── MIN_VALUE.mdx
│ │ │ │ ├── NEGATIVE_INFINITY.mdx
│ │ │ │ ├── NaN.mdx
│ │ │ │ ├── Number.mdx
│ │ │ │ ├── POSITIVE_INFINITY.mdx
│ │ │ │ ├── epsilon.mdx
│ │ │ │ ├── isFinite.mdx
│ │ │ │ ├── isInteger.mdx
│ │ │ │ ├── isNaN.mdx
│ │ │ │ ├── isSafeInteger.mdx
│ │ │ │ ├── parseFloat.mdx
│ │ │ │ ├── parseInt.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── toExponential.mdx
│ │ │ │ ├── toFixed.mdx
│ │ │ │ ├── toLocaleString.mdx
│ │ │ │ ├── toPrecision.mdx
│ │ │ │ ├── toString.mdx
│ │ │ │ └── valueOf.mdx
│ │ │ ├── Object/
│ │ │ │ ├── Object.mdx
│ │ │ │ ├── assign.mdx
│ │ │ │ ├── create.mdx
│ │ │ │ ├── defineProperties.mdx
│ │ │ │ ├── defineProperty.mdx
│ │ │ │ ├── entries.mdx
│ │ │ │ ├── freeze.mdx
│ │ │ │ ├── fromEntries.mdx
│ │ │ │ ├── getOwnPropertyDescriptor.mdx
│ │ │ │ ├── getOwnPropertyDescriptors.mdx
│ │ │ │ ├── getOwnPropertyNames.mdx
│ │ │ │ ├── getOwnPropertySymbols.mdx
│ │ │ │ ├── getPrototypeOf.mdx
│ │ │ │ ├── hasOwn.mdx
│ │ │ │ ├── is.mdx
│ │ │ │ ├── isExtensible.mdx
│ │ │ │ ├── isFrozen.mdx
│ │ │ │ ├── isSealed.mdx
│ │ │ │ ├── keys.mdx
│ │ │ │ ├── preventExtensions.mdx
│ │ │ │ ├── prototype/
│ │ │ │ │ ├── constructor.mdx
│ │ │ │ │ ├── hasOwnProperty.mdx
│ │ │ │ │ ├── isPrototypeOf.mdx
│ │ │ │ │ ├── propertyIsEnumerable.mdx
│ │ │ │ │ ├── toLocaleString.mdx
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ └── valueOf.mdx
│ │ │ │ ├── seal.mdx
│ │ │ │ ├── setPrototypeOf.mdx
│ │ │ │ └── values.mdx
│ │ │ ├── Promise/
│ │ │ │ ├── @@species.mdx
│ │ │ │ ├── Promise.mdx
│ │ │ │ ├── all.mdx
│ │ │ │ ├── allSettled.mdx
│ │ │ │ ├── any.mdx
│ │ │ │ ├── prototype/
│ │ │ │ │ ├── catch.mdx
│ │ │ │ │ ├── finally.mdx
│ │ │ │ │ └── then.mdx
│ │ │ │ ├── race.mdx
│ │ │ │ ├── reject.mdx
│ │ │ │ └── resolve.mdx
│ │ │ ├── Proxy/
│ │ │ │ ├── Proxy.mdx
│ │ │ │ ├── proxy/
│ │ │ │ │ ├── apply.mdx
│ │ │ │ │ ├── construct.mdx
│ │ │ │ │ ├── defineProperty.mdx
│ │ │ │ │ ├── deleteProperty.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── getOwnPropertyDescriptor.mdx
│ │ │ │ │ ├── getPrototypeOf.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ ├── isExtensible.mdx
│ │ │ │ │ ├── ownKeys.mdx
│ │ │ │ │ ├── preventExtensions.mdx
│ │ │ │ │ ├── set.mdx
│ │ │ │ │ └── setPrototypeOf.mdx
│ │ │ │ └── revocable.mdx
│ │ │ ├── RangeError/
│ │ │ │ └── RangeError.mdx
│ │ │ ├── ReadableByteStreamController/
│ │ │ │ └── prototype/
│ │ │ │ ├── byobRequest.mdx
│ │ │ │ ├── close.mdx
│ │ │ │ ├── desiredSize.mdx
│ │ │ │ ├── enqueue.mdx
│ │ │ │ └── error.mdx
│ │ │ ├── ReadableStream/
│ │ │ │ ├── ReadableStream.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── cancel.mdx
│ │ │ │ ├── getReader.mdx
│ │ │ │ ├── locked.mdx
│ │ │ │ ├── pipeThrough.mdx
│ │ │ │ ├── pipeTo.mdx
│ │ │ │ └── tee.mdx
│ │ │ ├── ReadableStreamBYOBReader/
│ │ │ │ ├── ReadableStreamBYOBReader.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── cancel.mdx
│ │ │ │ ├── closed.mdx
│ │ │ │ ├── read.mdx
│ │ │ │ └── releaseLock.mdx
│ │ │ ├── ReadableStreamBYOBRequest/
│ │ │ │ └── prototype/
│ │ │ │ ├── respond.mdx
│ │ │ │ ├── respondWithNewView.mdx
│ │ │ │ └── view.mdx
│ │ │ ├── ReadableStreamDefaultController/
│ │ │ │ └── prototype/
│ │ │ │ ├── close.mdx
│ │ │ │ ├── desiredSize.mdx
│ │ │ │ ├── enqueue.mdx
│ │ │ │ └── error.mdx
│ │ │ ├── ReadableStreamDefaultReader/
│ │ │ │ ├── ReadableStreamDefaultReader.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── cancel.mdx
│ │ │ │ ├── closed.mdx
│ │ │ │ ├── read.mdx
│ │ │ │ └── releaseLock.mdx
│ │ │ ├── ReferenceError/
│ │ │ │ └── ReferenceError.mdx
│ │ │ ├── Reflect/
│ │ │ │ ├── apply.mdx
│ │ │ │ ├── construct.mdx
│ │ │ │ ├── defineProperty.mdx
│ │ │ │ ├── deleteProperty.mdx
│ │ │ │ ├── get.mdx
│ │ │ │ ├── getOwnPropertyDescriptor.mdx
│ │ │ │ ├── getPrototypeOf.mdx
│ │ │ │ ├── has.mdx
│ │ │ │ ├── isExtensible.mdx
│ │ │ │ ├── ownKeys.mdx
│ │ │ │ ├── preventExtensions.mdx
│ │ │ │ ├── set.mdx
│ │ │ │ └── setPrototypeOf.mdx
│ │ │ ├── Request/
│ │ │ │ ├── Request.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── arrayBuffer.mdx
│ │ │ │ ├── blob.mdx
│ │ │ │ ├── body.mdx
│ │ │ │ ├── bodyUsed.mdx
│ │ │ │ ├── clone.mdx
│ │ │ │ ├── formData.mdx
│ │ │ │ ├── headers.mdx
│ │ │ │ ├── json.mdx
│ │ │ │ ├── method.mdx
│ │ │ │ ├── setManualFramingHeaders.mdx
│ │ │ │ ├── text.mdx
│ │ │ │ └── url.mdx
│ │ │ ├── Response/
│ │ │ │ ├── Response.mdx
│ │ │ │ ├── prototype/
│ │ │ │ │ ├── arrayBuffer.mdx
│ │ │ │ │ ├── blob.mdx
│ │ │ │ │ ├── body.mdx
│ │ │ │ │ ├── bodyUsed.mdx
│ │ │ │ │ ├── formData.mdx
│ │ │ │ │ ├── headers.mdx
│ │ │ │ │ ├── ip.mdx
│ │ │ │ │ ├── json.mdx
│ │ │ │ │ ├── ok.mdx
│ │ │ │ │ ├── port.mdx
│ │ │ │ │ ├── setManualFramingHeaders.mdx
│ │ │ │ │ ├── status.mdx
│ │ │ │ │ ├── statusText.mdx
│ │ │ │ │ ├── text.mdx
│ │ │ │ │ └── url.mdx
│ │ │ │ └── redirect.mdx
│ │ │ ├── RsaHashedImportParams/
│ │ │ │ └── RsaHashedImportParams.mdx
│ │ │ ├── Set/
│ │ │ │ ├── @@species.mdx
│ │ │ │ ├── Set.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── @@iterator.mdx
│ │ │ │ ├── add.mdx
│ │ │ │ ├── clear.mdx
│ │ │ │ ├── delete.mdx
│ │ │ │ ├── entries.mdx
│ │ │ │ ├── forEach.mdx
│ │ │ │ ├── has.mdx
│ │ │ │ ├── keys.mdx
│ │ │ │ ├── size.mdx
│ │ │ │ └── values.mdx
│ │ │ ├── String/
│ │ │ │ ├── String.mdx
│ │ │ │ ├── fromCharCode.mdx
│ │ │ │ ├── fromCodePoint.mdx
│ │ │ │ ├── prototype/
│ │ │ │ │ ├── @@iterator.mdx
│ │ │ │ │ ├── at.mdx
│ │ │ │ │ ├── charAt.mdx
│ │ │ │ │ ├── charCodeAt.mdx
│ │ │ │ │ ├── codePointAt.mdx
│ │ │ │ │ ├── concat.mdx
│ │ │ │ │ ├── endsWith.mdx
│ │ │ │ │ ├── includes.mdx
│ │ │ │ │ ├── indexOf.mdx
│ │ │ │ │ ├── lastIndexOf.mdx
│ │ │ │ │ ├── length.mdx
│ │ │ │ │ ├── localeCompare.mdx
│ │ │ │ │ ├── match.mdx
│ │ │ │ │ ├── matchAll.mdx
│ │ │ │ │ ├── padEnd.mdx
│ │ │ │ │ ├── padStart.mdx
│ │ │ │ │ ├── repeat.mdx
│ │ │ │ │ ├── replace.mdx
│ │ │ │ │ ├── replaceAll.mdx
│ │ │ │ │ ├── search.mdx
│ │ │ │ │ ├── slice.mdx
│ │ │ │ │ ├── split.mdx
│ │ │ │ │ ├── startsWith.mdx
│ │ │ │ │ ├── substr.mdx
│ │ │ │ │ ├── substring.mdx
│ │ │ │ │ ├── toLocaleLowerCase.mdx
│ │ │ │ │ ├── toLocaleUpperCase.mdx
│ │ │ │ │ ├── toLowerCase.mdx
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ ├── toUpperCase.mdx
│ │ │ │ │ ├── trim.mdx
│ │ │ │ │ ├── trimEnd.mdx
│ │ │ │ │ ├── trimStart.mdx
│ │ │ │ │ └── valueOf.mdx
│ │ │ │ └── raw.mdx
│ │ │ ├── SubtleCrypto/
│ │ │ │ ├── SubtleCrypto.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── digest.mdx
│ │ │ │ ├── importKey.mdx
│ │ │ │ ├── sign.mdx
│ │ │ │ └── verify.mdx
│ │ │ ├── Symbol/
│ │ │ │ ├── Symbol.mdx
│ │ │ │ ├── asyncIterator.mdx
│ │ │ │ ├── for.mdx
│ │ │ │ ├── hasInstance.mdx
│ │ │ │ ├── isConcatSpreadable.mdx
│ │ │ │ ├── iterator.mdx
│ │ │ │ ├── keyFor.mdx
│ │ │ │ ├── match.mdx
│ │ │ │ ├── matchAll.mdx
│ │ │ │ ├── prototype/
│ │ │ │ │ ├── @@toPrimitive.mdx
│ │ │ │ │ ├── description.mdx
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ └── valueOf.mdx
│ │ │ │ ├── replace.mdx
│ │ │ │ ├── search.mdx
│ │ │ │ ├── species.mdx
│ │ │ │ ├── split.mdx
│ │ │ │ ├── toPrimitive.mdx
│ │ │ │ ├── toStringTag.mdx
│ │ │ │ └── unscopables.mdx
│ │ │ ├── SyntaxError/
│ │ │ │ └── SyntaxError.mdx
│ │ │ ├── TextDecoder/
│ │ │ │ ├── TextDecoder.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── decode.mdx
│ │ │ │ ├── encoding.mdx
│ │ │ │ ├── fatal.mdx
│ │ │ │ └── ignoreBOM.mdx
│ │ │ ├── TextEncoder/
│ │ │ │ ├── TextEncoder.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── encode.mdx
│ │ │ │ └── encoding.mdx
│ │ │ ├── TransformStream/
│ │ │ │ ├── TransformStream.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── readable.mdx
│ │ │ │ └── writable.mdx
│ │ │ ├── TransformStreamDefaultController/
│ │ │ │ └── prototype/
│ │ │ │ ├── desiredSize.mdx
│ │ │ │ ├── enqueue.mdx
│ │ │ │ ├── error.mdx
│ │ │ │ └── terminate.mdx
│ │ │ ├── TypeError/
│ │ │ │ └── TypeError.mdx
│ │ │ ├── URIError/
│ │ │ │ └── URIError.mdx
│ │ │ ├── URL/
│ │ │ │ ├── URL.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── hash.mdx
│ │ │ │ ├── host.mdx
│ │ │ │ ├── hostname.mdx
│ │ │ │ ├── href.mdx
│ │ │ │ ├── origin.mdx
│ │ │ │ ├── password.mdx
│ │ │ │ ├── pathname.mdx
│ │ │ │ ├── port.mdx
│ │ │ │ ├── protocol.mdx
│ │ │ │ ├── search.mdx
│ │ │ │ ├── searchParams.mdx
│ │ │ │ ├── toJSON.mdx
│ │ │ │ ├── toString.mdx
│ │ │ │ └── username.mdx
│ │ │ ├── URLSearchParams/
│ │ │ │ ├── URLSearchParams.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── append.mdx
│ │ │ │ ├── delete.mdx
│ │ │ │ ├── entries.mdx
│ │ │ │ ├── forEach.mdx
│ │ │ │ ├── get.mdx
│ │ │ │ ├── has.mdx
│ │ │ │ ├── keys.mdx
│ │ │ │ ├── set.mdx
│ │ │ │ ├── sort.mdx
│ │ │ │ ├── toString.mdx
│ │ │ │ └── values.mdx
│ │ │ ├── Uint16Array/
│ │ │ │ └── Uint16Array.mdx
│ │ │ ├── Uint32Array/
│ │ │ │ └── Uint32Array.mdx
│ │ │ ├── Uint8Array/
│ │ │ │ └── Uint8Array.mdx
│ │ │ ├── Uint8ClampedArray/
│ │ │ │ └── Uint8ClampedArray.mdx
│ │ │ ├── WeakMap/
│ │ │ │ ├── WeakMap.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── delete.mdx
│ │ │ │ ├── get.mdx
│ │ │ │ ├── has.mdx
│ │ │ │ └── set.mdx
│ │ │ ├── WeakRef/
│ │ │ │ ├── WeakRef.mdx
│ │ │ │ └── prototype/
│ │ │ │ └── deref.mdx
│ │ │ ├── WeakSet/
│ │ │ │ ├── WeakSet.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── add.mdx
│ │ │ │ ├── delete.mdx
│ │ │ │ └── has.mdx
│ │ │ ├── WorkerLocation/
│ │ │ │ ├── WorkerLocation.mdx
│ │ │ │ ├── hash.mdx
│ │ │ │ ├── host.mdx
│ │ │ │ ├── hostname.mdx
│ │ │ │ ├── href.mdx
│ │ │ │ ├── origin.mdx
│ │ │ │ ├── pathname.mdx
│ │ │ │ ├── port.mdx
│ │ │ │ ├── protocol.mdx
│ │ │ │ ├── search.mdx
│ │ │ │ └── toString.mdx
│ │ │ ├── WritableStream/
│ │ │ │ ├── WritableStream.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── abort.mdx
│ │ │ │ ├── getWriter.mdx
│ │ │ │ └── locked.mdx
│ │ │ ├── WritableStreamDefaultController/
│ │ │ │ └── error.mdx
│ │ │ ├── WritableStreamDefaultWriter/
│ │ │ │ ├── WritableStreamDefaultWriter.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── abort.mdx
│ │ │ │ ├── close.mdx
│ │ │ │ ├── closed.mdx
│ │ │ │ ├── desiredSize.mdx
│ │ │ │ ├── ready.mdx
│ │ │ │ ├── releaseLock.mdx
│ │ │ │ └── write.mdx
│ │ │ ├── atob.mdx
│ │ │ ├── btoa.mdx
│ │ │ ├── clearInterval.mdx
│ │ │ ├── clearTimeout.mdx
│ │ │ ├── console/
│ │ │ │ ├── assert.mdx
│ │ │ │ ├── clear.mdx
│ │ │ │ ├── count.mdx
│ │ │ │ ├── countReset.mdx
│ │ │ │ ├── debug.mdx
│ │ │ │ ├── dir.mdx
│ │ │ │ ├── dirxml.mdx
│ │ │ │ ├── error.mdx
│ │ │ │ ├── group.mdx
│ │ │ │ ├── groupCollapsed.mdx
│ │ │ │ ├── groupEnd.mdx
│ │ │ │ ├── info.mdx
│ │ │ │ ├── log.mdx
│ │ │ │ ├── time.mdx
│ │ │ │ ├── timeEnd.mdx
│ │ │ │ ├── timeLog.mdx
│ │ │ │ ├── trace.mdx
│ │ │ │ └── warn.mdx
│ │ │ ├── crypto/
│ │ │ │ ├── getRandomValues.mdx
│ │ │ │ ├── randomUUID.mdx
│ │ │ │ └── subtle.mdx
│ │ │ ├── decodeURI.mdx
│ │ │ ├── decodeURIComponent.mdx
│ │ │ ├── encodeURI.mdx
│ │ │ ├── encodeURIComponent.mdx
│ │ │ ├── escape.mdx
│ │ │ ├── eval.mdx
│ │ │ ├── fetch.mdx
│ │ │ ├── globalThis.mdx
│ │ │ ├── isFinite.mdx
│ │ │ ├── isNaN.mdx
│ │ │ ├── location.mdx
│ │ │ ├── parseFloat.mdx
│ │ │ ├── parseInt.mdx
│ │ │ ├── performance/
│ │ │ │ ├── now.mdx
│ │ │ │ └── timeOrigin.mdx
│ │ │ ├── setInterval.mdx
│ │ │ ├── setTimeout.mdx
│ │ │ ├── structuredClone.mdx
│ │ │ ├── undefined.mdx
│ │ │ └── unescape.mdx
│ │ ├── html-rewriter/
│ │ │ ├── Element/
│ │ │ │ └── prototype/
│ │ │ │ ├── after.mdx
│ │ │ │ ├── append.mdx
│ │ │ │ ├── before.mdx
│ │ │ │ ├── hasAttribute.mdx
│ │ │ │ ├── prepend.mdx
│ │ │ │ ├── removeAttribute.mdx
│ │ │ │ ├── replaceChildren.mdx
│ │ │ │ ├── replaceWith.mdx
│ │ │ │ ├── selector.mdx
│ │ │ │ ├── setAttribute.mdx
│ │ │ │ └── tag.mdx
│ │ │ └── HTMLRewritingStream/
│ │ │ ├── HTMLRewritingStream.mdx
│ │ │ └── prototype/
│ │ │ └── onElement.mdx
│ │ ├── image-optimizer/
│ │ │ ├── Auto.mdx
│ │ │ ├── BWAlgorithm.mdx
│ │ │ ├── CropMode.mdx
│ │ │ ├── Disable.mdx
│ │ │ ├── Enable.mdx
│ │ │ ├── Fit.mdx
│ │ │ ├── Format.mdx
│ │ │ ├── Metadata.mdx
│ │ │ ├── Optimize.mdx
│ │ │ ├── Orient.mdx
│ │ │ ├── Profile.mdx
│ │ │ ├── Region.mdx
│ │ │ ├── ResizeFilter.mdx
│ │ │ └── imageOptimizerOptions.mdx
│ │ ├── index.mdx
│ │ ├── kv-store/
│ │ │ ├── KVStore/
│ │ │ │ ├── KVStore.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── delete.mdx
│ │ │ │ ├── get.mdx
│ │ │ │ ├── list.mdx
│ │ │ │ └── put.mdx
│ │ │ └── KVStoreEntry/
│ │ │ └── prototype/
│ │ │ ├── arrayBuffer.mdx
│ │ │ ├── body.mdx
│ │ │ ├── bodyUsed.mdx
│ │ │ ├── json.mdx
│ │ │ ├── metadata.mdx
│ │ │ ├── metadataText.mdx
│ │ │ └── text.mdx
│ │ ├── logger/
│ │ │ ├── Logger/
│ │ │ │ ├── Logger.mdx
│ │ │ │ └── prototype/
│ │ │ │ └── log.mdx
│ │ │ └── configureConsole.mdx
│ │ ├── migration-guide/
│ │ │ └── index.mdx
│ │ ├── secret-store/
│ │ │ ├── SecretStore/
│ │ │ │ ├── SecretStore.mdx
│ │ │ │ ├── fromBytes.mdx
│ │ │ │ └── prototype/
│ │ │ │ └── get.mdx
│ │ │ └── SecretStoreEntry/
│ │ │ └── prototype/
│ │ │ ├── plaintext.mdx
│ │ │ └── rawBytes.mdx
│ │ ├── security/
│ │ │ └── inspect.mdx
│ │ ├── shielding/
│ │ │ └── Shield/
│ │ │ ├── Shield.mdx
│ │ │ └── prototype/
│ │ │ ├── encryptedBackend.mdx
│ │ │ ├── runningOn.mdx
│ │ │ └── unencryptedBackend.mdx
│ │ └── websocket/
│ │ └── createWebsocketHandoff.mdx
│ ├── docusaurus.config.js
│ ├── generate-version-redirects.mjs
│ ├── package.json
│ ├── rename-docs.mjs
│ ├── sidebars.js
│ ├── src/
│ │ ├── components/
│ │ │ ├── HomepageFeatures/
│ │ │ │ ├── index.js
│ │ │ │ └── styles.module.css
│ │ │ └── fiddle/
│ │ │ └── index.js
│ │ ├── css/
│ │ │ └── custom.css
│ │ ├── pages/
│ │ │ ├── index.js
│ │ │ └── index.module.css
│ │ └── theme/
│ │ └── MDXComponents.js
│ ├── static/
│ │ └── fiddle.js
│ ├── versioned_docs/
│ │ ├── version-1.13.0/
│ │ │ ├── backend/
│ │ │ │ └── Backend/
│ │ │ │ ├── Backend.mdx
│ │ │ │ └── prototype/
│ │ │ │ └── toString.mdx
│ │ │ ├── cache-override/
│ │ │ │ └── CacheOverride/
│ │ │ │ └── CacheOverride.mdx
│ │ │ ├── config-store/
│ │ │ │ └── ConfigStore/
│ │ │ │ ├── ConfigStore.mdx
│ │ │ │ └── prototype/
│ │ │ │ └── get.mdx
│ │ │ ├── dictionary/
│ │ │ │ └── Dictionary/
│ │ │ │ ├── Dictionary.mdx
│ │ │ │ └── prototype/
│ │ │ │ └── get.mdx
│ │ │ ├── env/
│ │ │ │ └── env.mdx
│ │ │ ├── experimental/
│ │ │ │ ├── allowDynamicBackends.mdx
│ │ │ │ └── includeBytes.mdx
│ │ │ ├── fanout/
│ │ │ │ └── createFanoutHandoff.mdx
│ │ │ ├── geolocation/
│ │ │ │ └── getGeolocationForIpAddress.mdx
│ │ │ ├── globals/
│ │ │ │ ├── AggregrateError/
│ │ │ │ │ └── AggregrateError.mdx
│ │ │ │ ├── Array/
│ │ │ │ │ ├── @@species.mdx
│ │ │ │ │ ├── Array.mdx
│ │ │ │ │ ├── from.mdx
│ │ │ │ │ ├── isArray.mdx
│ │ │ │ │ ├── of.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── @@iterator.mdx
│ │ │ │ │ ├── @@unscopables.mdx
│ │ │ │ │ ├── at.mdx
│ │ │ │ │ ├── concat.mdx
│ │ │ │ │ ├── copyWithin.mdx
│ │ │ │ │ ├── entries.mdx
│ │ │ │ │ ├── every.mdx
│ │ │ │ │ ├── fill.mdx
│ │ │ │ │ ├── filter.mdx
│ │ │ │ │ ├── find.mdx
│ │ │ │ │ ├── findIndex.mdx
│ │ │ │ │ ├── flat.mdx
│ │ │ │ │ ├── flatMap.mdx
│ │ │ │ │ ├── forEach.mdx
│ │ │ │ │ ├── includes.mdx
│ │ │ │ │ ├── indexOf.mdx
│ │ │ │ │ ├── join.mdx
│ │ │ │ │ ├── keys.mdx
│ │ │ │ │ ├── lastIndexOf.mdx
│ │ │ │ │ ├── length.mdx
│ │ │ │ │ ├── map.mdx
│ │ │ │ │ ├── pop.mdx
│ │ │ │ │ ├── push.mdx
│ │ │ │ │ ├── reduce.mdx
│ │ │ │ │ ├── reduceRight.mdx
│ │ │ │ │ ├── reverse.mdx
│ │ │ │ │ ├── shift.mdx
│ │ │ │ │ ├── slice.mdx
│ │ │ │ │ ├── some.mdx
│ │ │ │ │ ├── sort.mdx
│ │ │ │ │ ├── splice.mdx
│ │ │ │ │ ├── toLocaleString.mdx
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ ├── unshift.mdx
│ │ │ │ │ └── values.mdx
│ │ │ │ ├── ArrayBuffer/
│ │ │ │ │ ├── @@species.mdx
│ │ │ │ │ ├── ArrayBuffer.mdx
│ │ │ │ │ ├── isView.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── byteLength.mdx
│ │ │ │ │ └── slice.mdx
│ │ │ │ ├── BigInt/
│ │ │ │ │ ├── BigInt.mdx
│ │ │ │ │ ├── asIntN.mdx
│ │ │ │ │ ├── asUintN.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── toLocaleString.mdx
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ └── valueOf.mdx
│ │ │ │ ├── BigInt64Array/
│ │ │ │ │ └── BigInt64Array.mdx
│ │ │ │ ├── BigUint64Array/
│ │ │ │ │ └── BigUint64Array.mdx
│ │ │ │ ├── Boolean/
│ │ │ │ │ ├── Boolean.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ └── valueOf.mdx
│ │ │ │ ├── ByteLengthQueuingStrategy/
│ │ │ │ │ ├── ByteLengthQueuingStrategy.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ └── size.mdx
│ │ │ │ ├── CompressionStream/
│ │ │ │ │ ├── CompressionStream.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── readable.mdx
│ │ │ │ │ └── writable.mdx
│ │ │ │ ├── CryptoKey/
│ │ │ │ │ ├── CryptoKey.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── algorithm.mdx
│ │ │ │ │ ├── extractable.mdx
│ │ │ │ │ ├── type.mdx
│ │ │ │ │ └── usages.mdx
│ │ │ │ ├── DataView/
│ │ │ │ │ ├── DataView.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── buffer.mdx
│ │ │ │ │ ├── byteLength.mdx
│ │ │ │ │ ├── byteOffset.mdx
│ │ │ │ │ ├── getBigInt64.mdx
│ │ │ │ │ ├── getBigUint64.mdx
│ │ │ │ │ ├── getFloat32.mdx
│ │ │ │ │ ├── getFloat64.mdx
│ │ │ │ │ ├── getInt16.mdx
│ │ │ │ │ ├── getInt32.mdx
│ │ │ │ │ ├── getInt8.mdx
│ │ │ │ │ ├── getUint16.mdx
│ │ │ │ │ ├── getUint32.mdx
│ │ │ │ │ ├── getUint8.mdx
│ │ │ │ │ ├── setBigInt64.mdx
│ │ │ │ │ ├── setBigUint64.mdx
│ │ │ │ │ ├── setFloat32.mdx
│ │ │ │ │ ├── setFloat64.mdx
│ │ │ │ │ ├── setInt16.mdx
│ │ │ │ │ ├── setInt32.mdx
│ │ │ │ │ ├── setInt8.mdx
│ │ │ │ │ ├── setUint16.mdx
│ │ │ │ │ ├── setUint32.mdx
│ │ │ │ │ └── setUint8.mdx
│ │ │ │ ├── Date/
│ │ │ │ │ ├── Date.mdx
│ │ │ │ │ ├── UTC.mdx
│ │ │ │ │ ├── now.mdx
│ │ │ │ │ ├── parse.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── @@toPrimitive.mdx
│ │ │ │ │ ├── getDate.mdx
│ │ │ │ │ ├── getDay.mdx
│ │ │ │ │ ├── getFullYear.mdx
│ │ │ │ │ ├── getHours.mdx
│ │ │ │ │ ├── getMilliseconds.mdx
│ │ │ │ │ ├── getMinutes.mdx
│ │ │ │ │ ├── getMonth.mdx
│ │ │ │ │ ├── getSeconds.mdx
│ │ │ │ │ ├── getTime.mdx
│ │ │ │ │ ├── getTimezoneOffset.mdx
│ │ │ │ │ ├── getUTCDate.mdx
│ │ │ │ │ ├── getUTCDay.mdx
│ │ │ │ │ ├── getUTCFullYear.mdx
│ │ │ │ │ ├── getUTCHours.mdx
│ │ │ │ │ ├── getUTCMilliseconds.mdx
│ │ │ │ │ ├── getUTCMinutes.mdx
│ │ │ │ │ ├── getUTCMonth.mdx
│ │ │ │ │ ├── getUTCSeconds.mdx
│ │ │ │ │ ├── getYear.mdx
│ │ │ │ │ ├── setDate.mdx
│ │ │ │ │ ├── setFullYear.mdx
│ │ │ │ │ ├── setHours.mdx
│ │ │ │ │ ├── setMilliseconds.mdx
│ │ │ │ │ ├── setMinutes.mdx
│ │ │ │ │ ├── setMonth.mdx
│ │ │ │ │ ├── setSeconds.mdx
│ │ │ │ │ ├── setTime.mdx
│ │ │ │ │ ├── setUTCDate.mdx
│ │ │ │ │ ├── setUTCFullYear.mdx
│ │ │ │ │ ├── setUTCHours.mdx
│ │ │ │ │ ├── setUTCMilliseconds.mdx
│ │ │ │ │ ├── setUTCMinutes.mdx
│ │ │ │ │ ├── setUTCMonth.mdx
│ │ │ │ │ ├── setUTCSeconds.mdx
│ │ │ │ │ ├── setYear.mdx
│ │ │ │ │ ├── toDateString.mdx
│ │ │ │ │ ├── toISOString.mdx
│ │ │ │ │ ├── toJSON.mdx
│ │ │ │ │ ├── toLocaleDateString.mdx
│ │ │ │ │ ├── toLocaleString.mdx
│ │ │ │ │ ├── toLocaleTimeString.mdx
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ ├── toTimeString.mdx
│ │ │ │ │ ├── toUTCString.mdx
│ │ │ │ │ └── valueOf.mdx
│ │ │ │ ├── DecompressionStream/
│ │ │ │ │ ├── DecompressionStream.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── readable.mdx
│ │ │ │ │ └── writable.mdx
│ │ │ │ ├── Error/
│ │ │ │ │ ├── Error.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── cause.mdx
│ │ │ │ │ ├── message.mdx
│ │ │ │ │ ├── name.mdx
│ │ │ │ │ └── toString.mdx
│ │ │ │ ├── EvalError/
│ │ │ │ │ └── EvalError.mdx
│ │ │ │ ├── FetchEvent/
│ │ │ │ │ ├── FetchEvent.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── respondWith.mdx
│ │ │ │ │ └── waitUntil.mdx
│ │ │ │ ├── FinalizationRegistry/
│ │ │ │ │ ├── FinalizationRegistry.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── register.mdx
│ │ │ │ │ └── unregister.mdx
│ │ │ │ ├── Float32Array/
│ │ │ │ │ └── Float32Array.mdx
│ │ │ │ ├── Float64Array/
│ │ │ │ │ └── Float64Array.mdx
│ │ │ │ ├── Function/
│ │ │ │ │ ├── Function.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── apply.mdx
│ │ │ │ │ ├── bind.mdx
│ │ │ │ │ ├── call.mdx
│ │ │ │ │ ├── index.mdx
│ │ │ │ │ ├── length.mdx
│ │ │ │ │ ├── name.mdx
│ │ │ │ │ └── toString.mdx
│ │ │ │ ├── Headers/
│ │ │ │ │ ├── Headers.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── append.mdx
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ ├── entries.mdx
│ │ │ │ │ ├── forEach.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ ├── keys.mdx
│ │ │ │ │ ├── set.mdx
│ │ │ │ │ └── values.mdx
│ │ │ │ ├── Infinity.mdx
│ │ │ │ ├── Int16Array/
│ │ │ │ │ └── Int16Array.mdx
│ │ │ │ ├── Int32Array/
│ │ │ │ │ └── Int32Array.mdx
│ │ │ │ ├── Int8Array/
│ │ │ │ │ └── Int8Array.mdx
│ │ │ │ ├── JSON/
│ │ │ │ │ ├── parse.mdx
│ │ │ │ │ └── stringify.mdx
│ │ │ │ ├── Map/
│ │ │ │ │ ├── @@species.mdx
│ │ │ │ │ ├── Map.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── @@iterator.mdx
│ │ │ │ │ ├── clear.mdx
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ ├── entries.mdx
│ │ │ │ │ ├── forEach.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ ├── keys.mdx
│ │ │ │ │ ├── set.mdx
│ │ │ │ │ ├── size.mdx
│ │ │ │ │ └── values.mdx
│ │ │ │ ├── Math/
│ │ │ │ │ ├── E.mdx
│ │ │ │ │ ├── LN10.mdx
│ │ │ │ │ ├── LN2.mdx
│ │ │ │ │ ├── LOG10e.mdx
│ │ │ │ │ ├── LOG2e.mdx
│ │ │ │ │ ├── PI.mdx
│ │ │ │ │ ├── SQRT1_2.mdx
│ │ │ │ │ ├── SQRT2.mdx
│ │ │ │ │ ├── abs.mdx
│ │ │ │ │ ├── acos.mdx
│ │ │ │ │ ├── acosh.mdx
│ │ │ │ │ ├── asin.mdx
│ │ │ │ │ ├── asinh.mdx
│ │ │ │ │ ├── atan.mdx
│ │ │ │ │ ├── atan2.mdx
│ │ │ │ │ ├── atanh.mdx
│ │ │ │ │ ├── cbrt.mdx
│ │ │ │ │ ├── ceil.mdx
│ │ │ │ │ ├── clz32.mdx
│ │ │ │ │ ├── cos.mdx
│ │ │ │ │ ├── cosh.mdx
│ │ │ │ │ ├── exp.mdx
│ │ │ │ │ ├── expm1.mdx
│ │ │ │ │ ├── floor.mdx
│ │ │ │ │ ├── fround.mdx
│ │ │ │ │ ├── hypot.mdx
│ │ │ │ │ ├── imul.mdx
│ │ │ │ │ ├── log.mdx
│ │ │ │ │ ├── log10.mdx
│ │ │ │ │ ├── log1p.mdx
│ │ │ │ │ ├── log2.mdx
│ │ │ │ │ ├── max.mdx
│ │ │ │ │ ├── min.mdx
│ │ │ │ │ ├── pow.mdx
│ │ │ │ │ ├── random.mdx
│ │ │ │ │ ├── round.mdx
│ │ │ │ │ ├── sign.mdx
│ │ │ │ │ ├── sin.mdx
│ │ │ │ │ ├── sinh.mdx
│ │ │ │ │ ├── sqrt.mdx
│ │ │ │ │ ├── tan.mdx
│ │ │ │ │ ├── tanh.mdx
│ │ │ │ │ └── trunc.mdx
│ │ │ │ ├── NaN.mdx
│ │ │ │ ├── Number/
│ │ │ │ │ ├── MAX_SAFE_INTEGER.mdx
│ │ │ │ │ ├── MAX_VALUE.mdx
│ │ │ │ │ ├── MIN_SAFE_INTEGER.mdx
│ │ │ │ │ ├── MIN_VALUE.mdx
│ │ │ │ │ ├── NEGATIVE_INFINITY.mdx
│ │ │ │ │ ├── NaN.mdx
│ │ │ │ │ ├── Number.mdx
│ │ │ │ │ ├── POSITIVE_INFINITY.mdx
│ │ │ │ │ ├── epsilon.mdx
│ │ │ │ │ ├── isFinite.mdx
│ │ │ │ │ ├── isInteger.mdx
│ │ │ │ │ ├── isNaN.mdx
│ │ │ │ │ ├── isSafeInteger.mdx
│ │ │ │ │ ├── parseFloat.mdx
│ │ │ │ │ ├── parseInt.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── toExponential.mdx
│ │ │ │ │ ├── toFixed.mdx
│ │ │ │ │ ├── toLocaleString.mdx
│ │ │ │ │ ├── toPrecision.mdx
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ └── valueOf.mdx
│ │ │ │ ├── Object/
│ │ │ │ │ ├── Object.mdx
│ │ │ │ │ ├── assign.mdx
│ │ │ │ │ ├── create.mdx
│ │ │ │ │ ├── defineProperties.mdx
│ │ │ │ │ ├── defineProperty.mdx
│ │ │ │ │ ├── entries.mdx
│ │ │ │ │ ├── freeze.mdx
│ │ │ │ │ ├── fromEntries.mdx
│ │ │ │ │ ├── getOwnPropertyDescriptor.mdx
│ │ │ │ │ ├── getOwnPropertyDescriptors.mdx
│ │ │ │ │ ├── getOwnPropertyNames.mdx
│ │ │ │ │ ├── getOwnPropertySymbols.mdx
│ │ │ │ │ ├── getPrototypeOf.mdx
│ │ │ │ │ ├── hasOwn.mdx
│ │ │ │ │ ├── is.mdx
│ │ │ │ │ ├── isExtensible.mdx
│ │ │ │ │ ├── isFrozen.mdx
│ │ │ │ │ ├── isSealed.mdx
│ │ │ │ │ ├── keys.mdx
│ │ │ │ │ ├── preventExtensions.mdx
│ │ │ │ │ ├── prototype/
│ │ │ │ │ │ ├── constructor.mdx
│ │ │ │ │ │ ├── hasOwnProperty.mdx
│ │ │ │ │ │ ├── isPrototypeOf.mdx
│ │ │ │ │ │ ├── propertyIsEnumerable.mdx
│ │ │ │ │ │ ├── toLocaleString.mdx
│ │ │ │ │ │ ├── toString.mdx
│ │ │ │ │ │ └── valueOf.mdx
│ │ │ │ │ ├── seal.mdx
│ │ │ │ │ ├── setPrototypeOf.mdx
│ │ │ │ │ └── values.mdx
│ │ │ │ ├── Promise/
│ │ │ │ │ ├── @@species.mdx
│ │ │ │ │ ├── Promise.mdx
│ │ │ │ │ ├── all.mdx
│ │ │ │ │ ├── allSettled.mdx
│ │ │ │ │ ├── any.mdx
│ │ │ │ │ ├── prototype/
│ │ │ │ │ │ ├── catch.mdx
│ │ │ │ │ │ ├── finally.mdx
│ │ │ │ │ │ └── then.mdx
│ │ │ │ │ ├── race.mdx
│ │ │ │ │ ├── reject.mdx
│ │ │ │ │ └── resolve.mdx
│ │ │ │ ├── Proxy/
│ │ │ │ │ ├── Proxy.mdx
│ │ │ │ │ ├── proxy/
│ │ │ │ │ │ ├── apply.mdx
│ │ │ │ │ │ ├── construct.mdx
│ │ │ │ │ │ ├── defineProperty.mdx
│ │ │ │ │ │ ├── deleteProperty.mdx
│ │ │ │ │ │ ├── get.mdx
│ │ │ │ │ │ ├── getOwnPropertyDescriptor.mdx
│ │ │ │ │ │ ├── getPrototypeOf.mdx
│ │ │ │ │ │ ├── has.mdx
│ │ │ │ │ │ ├── isExtensible.mdx
│ │ │ │ │ │ ├── ownKeys.mdx
│ │ │ │ │ │ ├── preventExtensions.mdx
│ │ │ │ │ │ ├── set.mdx
│ │ │ │ │ │ └── setPrototypeOf.mdx
│ │ │ │ │ └── revocable.mdx
│ │ │ │ ├── RangeError/
│ │ │ │ │ └── RangeError.mdx
│ │ │ │ ├── ReadableByteStreamController/
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── byobRequest.mdx
│ │ │ │ │ ├── close.mdx
│ │ │ │ │ ├── desiredSize.mdx
│ │ │ │ │ ├── enqueue.mdx
│ │ │ │ │ └── error.mdx
│ │ │ │ ├── ReadableStream/
│ │ │ │ │ ├── ReadableStream.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── cancel.mdx
│ │ │ │ │ ├── getReader.mdx
│ │ │ │ │ ├── locked.mdx
│ │ │ │ │ ├── pipeThrough.mdx
│ │ │ │ │ ├── pipeTo.mdx
│ │ │ │ │ └── tee.mdx
│ │ │ │ ├── ReadableStreamBYOBReader/
│ │ │ │ │ ├── ReadableStreamBYOBReader.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── cancel.mdx
│ │ │ │ │ ├── closed.mdx
│ │ │ │ │ ├── read.mdx
│ │ │ │ │ └── releaseLock.mdx
│ │ │ │ ├── ReadableStreamBYOBRequest/
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── respond.mdx
│ │ │ │ │ ├── respondWithNewView.mdx
│ │ │ │ │ └── view.mdx
│ │ │ │ ├── ReadableStreamDefaultController/
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── close.mdx
│ │ │ │ │ ├── desiredSize.mdx
│ │ │ │ │ ├── enqueue.mdx
│ │ │ │ │ └── error.mdx
│ │ │ │ ├── ReadableStreamDefaultReader/
│ │ │ │ │ ├── ReadableStreamDefaultReader.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── cancel.mdx
│ │ │ │ │ ├── closed.mdx
│ │ │ │ │ ├── read.mdx
│ │ │ │ │ └── releaseLock.mdx
│ │ │ │ ├── ReferenceError/
│ │ │ │ │ └── ReferenceError.mdx
│ │ │ │ ├── Reflect/
│ │ │ │ │ ├── apply.mdx
│ │ │ │ │ ├── construct.mdx
│ │ │ │ │ ├── defineProperty.mdx
│ │ │ │ │ ├── deleteProperty.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── getOwnPropertyDescriptor.mdx
│ │ │ │ │ ├── getPrototypeOf.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ ├── isExtensible.mdx
│ │ │ │ │ ├── ownKeys.mdx
│ │ │ │ │ ├── preventExtensions.mdx
│ │ │ │ │ ├── set.mdx
│ │ │ │ │ └── setPrototypeOf.mdx
│ │ │ │ ├── Request/
│ │ │ │ │ ├── Request.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── arrayBuffer.mdx
│ │ │ │ │ ├── body.mdx
│ │ │ │ │ ├── bodyUsed.mdx
│ │ │ │ │ ├── headers.mdx
│ │ │ │ │ ├── json.mdx
│ │ │ │ │ ├── method.mdx
│ │ │ │ │ ├── text.mdx
│ │ │ │ │ └── url.mdx
│ │ │ │ ├── Response/
│ │ │ │ │ ├── Response.mdx
│ │ │ │ │ ├── prototype/
│ │ │ │ │ │ ├── arrayBuffer.mdx
│ │ │ │ │ │ ├── body.mdx
│ │ │ │ │ │ ├── bodyUsed.mdx
│ │ │ │ │ │ ├── headers.mdx
│ │ │ │ │ │ ├── json.mdx
│ │ │ │ │ │ ├── ok.mdx
│ │ │ │ │ │ ├── status.mdx
│ │ │ │ │ │ ├── statusText.mdx
│ │ │ │ │ │ ├── text.mdx
│ │ │ │ │ │ └── url.mdx
│ │ │ │ │ └── redirect.mdx
│ │ │ │ ├── RsaHashedImportParams/
│ │ │ │ │ └── RsaHashedImportParams.mdx
│ │ │ │ ├── Set/
│ │ │ │ │ ├── @@species.mdx
│ │ │ │ │ ├── Set.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── @@iterator.mdx
│ │ │ │ │ ├── add.mdx
│ │ │ │ │ ├── clear.mdx
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ ├── entries.mdx
│ │ │ │ │ ├── forEach.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ ├── keys.mdx
│ │ │ │ │ ├── size.mdx
│ │ │ │ │ └── values.mdx
│ │ │ │ ├── String/
│ │ │ │ │ ├── String.mdx
│ │ │ │ │ ├── fromCharCode.mdx
│ │ │ │ │ ├── fromCodePoint.mdx
│ │ │ │ │ ├── prototype/
│ │ │ │ │ │ ├── @@iterator.mdx
│ │ │ │ │ │ ├── at.mdx
│ │ │ │ │ │ ├── charAt.mdx
│ │ │ │ │ │ ├── charCodeAt.mdx
│ │ │ │ │ │ ├── codePointAt.mdx
│ │ │ │ │ │ ├── concat.mdx
│ │ │ │ │ │ ├── endsWith.mdx
│ │ │ │ │ │ ├── includes.mdx
│ │ │ │ │ │ ├── indexOf.mdx
│ │ │ │ │ │ ├── lastIndexOf.mdx
│ │ │ │ │ │ ├── length.mdx
│ │ │ │ │ │ ├── localeCompare.mdx
│ │ │ │ │ │ ├── match.mdx
│ │ │ │ │ │ ├── matchAll.mdx
│ │ │ │ │ │ ├── padEnd.mdx
│ │ │ │ │ │ ├── padStart.mdx
│ │ │ │ │ │ ├── repeat.mdx
│ │ │ │ │ │ ├── replace.mdx
│ │ │ │ │ │ ├── replaceAll.mdx
│ │ │ │ │ │ ├── search.mdx
│ │ │ │ │ │ ├── slice.mdx
│ │ │ │ │ │ ├── split.mdx
│ │ │ │ │ │ ├── startsWith.mdx
│ │ │ │ │ │ ├── substr.mdx
│ │ │ │ │ │ ├── substring.mdx
│ │ │ │ │ │ ├── toLocaleLowerCase.mdx
│ │ │ │ │ │ ├── toLocaleUpperCase.mdx
│ │ │ │ │ │ ├── toLowerCase.mdx
│ │ │ │ │ │ ├── toString.mdx
│ │ │ │ │ │ ├── toUpperCase.mdx
│ │ │ │ │ │ ├── trim.mdx
│ │ │ │ │ │ ├── trimEnd.mdx
│ │ │ │ │ │ ├── trimStart.mdx
│ │ │ │ │ │ └── valueOf.mdx
│ │ │ │ │ └── raw.mdx
│ │ │ │ ├── SubtleCrypto/
│ │ │ │ │ ├── SubtleCrypto.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── digest.mdx
│ │ │ │ │ ├── importKey.mdx
│ │ │ │ │ ├── sign.mdx
│ │ │ │ │ └── verify.mdx
│ │ │ │ ├── Symbol/
│ │ │ │ │ ├── Symbol.mdx
│ │ │ │ │ ├── asyncIterator.mdx
│ │ │ │ │ ├── for.mdx
│ │ │ │ │ ├── hasInstance.mdx
│ │ │ │ │ ├── isConcatSpreadable.mdx
│ │ │ │ │ ├── iterator.mdx
│ │ │ │ │ ├── keyFor.mdx
│ │ │ │ │ ├── match.mdx
│ │ │ │ │ ├── matchAll.mdx
│ │ │ │ │ ├── prototype/
│ │ │ │ │ │ ├── @@toPrimitive.mdx
│ │ │ │ │ │ ├── description.mdx
│ │ │ │ │ │ ├── toString.mdx
│ │ │ │ │ │ └── valueOf.mdx
│ │ │ │ │ ├── replace.mdx
│ │ │ │ │ ├── search.mdx
│ │ │ │ │ ├── species.mdx
│ │ │ │ │ ├── split.mdx
│ │ │ │ │ ├── toPrimitive.mdx
│ │ │ │ │ ├── toStringTag.mdx
│ │ │ │ │ └── unscopables.mdx
│ │ │ │ ├── SyntaxError/
│ │ │ │ │ └── SyntaxError.mdx
│ │ │ │ ├── TextDecoder/
│ │ │ │ │ ├── TextDecoder.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── decode.mdx
│ │ │ │ │ ├── encoding.mdx
│ │ │ │ │ ├── fatal.mdx
│ │ │ │ │ └── ignoreBOM.mdx
│ │ │ │ ├── TextEncoder/
│ │ │ │ │ ├── TextEncoder.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── encode.mdx
│ │ │ │ │ └── encoding.mdx
│ │ │ │ ├── TransformStream/
│ │ │ │ │ ├── TransformStream.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── readable.mdx
│ │ │ │ │ └── writable.mdx
│ │ │ │ ├── TransformStreamDefaultController/
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── desiredSize.mdx
│ │ │ │ │ ├── enqueue.mdx
│ │ │ │ │ ├── error.mdx
│ │ │ │ │ └── terminate.mdx
│ │ │ │ ├── TypeError/
│ │ │ │ │ └── TypeError.mdx
│ │ │ │ ├── URIError/
│ │ │ │ │ └── URIError.mdx
│ │ │ │ ├── URL/
│ │ │ │ │ ├── URL.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── hash.mdx
│ │ │ │ │ ├── host.mdx
│ │ │ │ │ ├── hostname.mdx
│ │ │ │ │ ├── href.mdx
│ │ │ │ │ ├── origin.mdx
│ │ │ │ │ ├── password.mdx
│ │ │ │ │ ├── pathname.mdx
│ │ │ │ │ ├── port.mdx
│ │ │ │ │ ├── protocol.mdx
│ │ │ │ │ ├── search.mdx
│ │ │ │ │ ├── searchParams.mdx
│ │ │ │ │ ├── toJSON.mdx
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ └── username.mdx
│ │ │ │ ├── URLSearchParams/
│ │ │ │ │ ├── URLSearchParams.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── append.mdx
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ ├── entries.mdx
│ │ │ │ │ ├── forEach.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ ├── keys.mdx
│ │ │ │ │ ├── set.mdx
│ │ │ │ │ ├── sort.mdx
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ └── values.mdx
│ │ │ │ ├── Uint16Array/
│ │ │ │ │ └── Uint16Array.mdx
│ │ │ │ ├── Uint32Array/
│ │ │ │ │ └── Uint32Array.mdx
│ │ │ │ ├── Uint8Array/
│ │ │ │ │ └── Uint8Array.mdx
│ │ │ │ ├── Uint8ClampedArray/
│ │ │ │ │ └── Uint8ClampedArray.mdx
│ │ │ │ ├── WeakMap/
│ │ │ │ │ ├── WeakMap.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ └── set.mdx
│ │ │ │ ├── WeakRef/
│ │ │ │ │ ├── WeakRef.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ └── deref.mdx
│ │ │ │ ├── WeakSet/
│ │ │ │ │ ├── WeakSet.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── add.mdx
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ └── has.mdx
│ │ │ │ ├── WorkerLocation/
│ │ │ │ │ ├── WorkerLocation.mdx
│ │ │ │ │ ├── hash.mdx
│ │ │ │ │ ├── host.mdx
│ │ │ │ │ ├── hostname.mdx
│ │ │ │ │ ├── href.mdx
│ │ │ │ │ ├── origin.mdx
│ │ │ │ │ ├── pathname.mdx
│ │ │ │ │ ├── port.mdx
│ │ │ │ │ ├── protocol.mdx
│ │ │ │ │ ├── search.mdx
│ │ │ │ │ └── toString.mdx
│ │ │ │ ├── WritableStream/
│ │ │ │ │ ├── WritableStream.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── abort.mdx
│ │ │ │ │ ├── getWriter.mdx
│ │ │ │ │ └── locked.mdx
│ │ │ │ ├── WritableStreamDefaultController/
│ │ │ │ │ └── error.mdx
│ │ │ │ ├── WritableStreamDefaultWriter/
│ │ │ │ │ ├── WritableStreamDefaultWriter.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── abort.mdx
│ │ │ │ │ ├── close.mdx
│ │ │ │ │ ├── closed.mdx
│ │ │ │ │ ├── desiredSize.mdx
│ │ │ │ │ ├── ready.mdx
│ │ │ │ │ ├── releaseLock.mdx
│ │ │ │ │ └── write.mdx
│ │ │ │ ├── atob.mdx
│ │ │ │ ├── btoa.mdx
│ │ │ │ ├── clearInterval.mdx
│ │ │ │ ├── clearTimeout.mdx
│ │ │ │ ├── console/
│ │ │ │ │ ├── assert.mdx
│ │ │ │ │ ├── clear.mdx
│ │ │ │ │ ├── count.mdx
│ │ │ │ │ ├── countReset.mdx
│ │ │ │ │ ├── debug.mdx
│ │ │ │ │ ├── dir.mdx
│ │ │ │ │ ├── dirxml.mdx
│ │ │ │ │ ├── error.mdx
│ │ │ │ │ ├── group.mdx
│ │ │ │ │ ├── groupCollapsed.mdx
│ │ │ │ │ ├── groupEnd.mdx
│ │ │ │ │ ├── info.mdx
│ │ │ │ │ ├── log.mdx
│ │ │ │ │ ├── time.mdx
│ │ │ │ │ ├── timeEnd.mdx
│ │ │ │ │ ├── timeLog.mdx
│ │ │ │ │ ├── trace.mdx
│ │ │ │ │ └── warn.mdx
│ │ │ │ ├── crypto/
│ │ │ │ │ ├── getRandomValues.mdx
│ │ │ │ │ ├── randomUUID.mdx
│ │ │ │ │ └── subtle.mdx
│ │ │ │ ├── decodeURI.mdx
│ │ │ │ ├── decodeURIComponent.mdx
│ │ │ │ ├── encodeURI.mdx
│ │ │ │ ├── encodeURIComponent.mdx
│ │ │ │ ├── escape.mdx
│ │ │ │ ├── eval.mdx
│ │ │ │ ├── fetch.mdx
│ │ │ │ ├── globalThis.mdx
│ │ │ │ ├── isFinite.mdx
│ │ │ │ ├── isNaN.mdx
│ │ │ │ ├── location.mdx
│ │ │ │ ├── parseFloat.mdx
│ │ │ │ ├── parseInt.mdx
│ │ │ │ ├── setInterval.mdx
│ │ │ │ ├── setTimeout.mdx
│ │ │ │ ├── structuredClone.mdx
│ │ │ │ ├── undefined.mdx
│ │ │ │ └── unescape.mdx
│ │ │ ├── index.mdx
│ │ │ ├── logger/
│ │ │ │ └── Logger/
│ │ │ │ ├── Logger.mdx
│ │ │ │ └── prototype/
│ │ │ │ └── log.mdx
│ │ │ ├── object-store/
│ │ │ │ └── ObjectStore/
│ │ │ │ ├── ObjectStore.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── get.mdx
│ │ │ │ └── put.mdx
│ │ │ └── secret-store/
│ │ │ ├── SecretStore/
│ │ │ │ ├── SecretStore.mdx
│ │ │ │ └── prototype/
│ │ │ │ └── get.mdx
│ │ │ └── SecretStoreEntry/
│ │ │ └── prototype/
│ │ │ └── plaintext.mdx
│ │ ├── version-2.5.0/
│ │ │ ├── backend/
│ │ │ │ └── Backend/
│ │ │ │ ├── Backend.mdx
│ │ │ │ └── prototype/
│ │ │ │ └── toString.mdx
│ │ │ ├── cache/
│ │ │ │ ├── SimpleCache/
│ │ │ │ │ ├── SimpleCache.mdx
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── getOrSet.mdx
│ │ │ │ │ └── set.mdx
│ │ │ │ └── SimpleCacheEntry/
│ │ │ │ ├── arrayBuffer.mdx
│ │ │ │ ├── body.mdx
│ │ │ │ ├── bodyUsed.mdx
│ │ │ │ ├── json.mdx
│ │ │ │ └── text.mdx
│ │ │ ├── cache-override/
│ │ │ │ └── CacheOverride/
│ │ │ │ └── CacheOverride.mdx
│ │ │ ├── config-store/
│ │ │ │ └── ConfigStore/
│ │ │ │ ├── ConfigStore.mdx
│ │ │ │ └── prototype/
│ │ │ │ └── get.mdx
│ │ │ ├── dictionary/
│ │ │ │ └── Dictionary/
│ │ │ │ ├── Dictionary.mdx
│ │ │ │ └── prototype/
│ │ │ │ └── get.mdx
│ │ │ ├── env/
│ │ │ │ └── env.mdx
│ │ │ ├── experimental/
│ │ │ │ ├── allowDynamicBackends.mdx
│ │ │ │ └── includeBytes.mdx
│ │ │ ├── fanout/
│ │ │ │ └── createFanoutHandoff.mdx
│ │ │ ├── geolocation/
│ │ │ │ └── getGeolocationForIpAddress.mdx
│ │ │ ├── globals/
│ │ │ │ ├── AggregrateError/
│ │ │ │ │ └── AggregrateError.mdx
│ │ │ │ ├── Array/
│ │ │ │ │ ├── @@species.mdx
│ │ │ │ │ ├── Array.mdx
│ │ │ │ │ ├── from.mdx
│ │ │ │ │ ├── isArray.mdx
│ │ │ │ │ ├── of.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── @@iterator.mdx
│ │ │ │ │ ├── @@unscopables.mdx
│ │ │ │ │ ├── at.mdx
│ │ │ │ │ ├── concat.mdx
│ │ │ │ │ ├── copyWithin.mdx
│ │ │ │ │ ├── entries.mdx
│ │ │ │ │ ├── every.mdx
│ │ │ │ │ ├── fill.mdx
│ │ │ │ │ ├── filter.mdx
│ │ │ │ │ ├── find.mdx
│ │ │ │ │ ├── findIndex.mdx
│ │ │ │ │ ├── flat.mdx
│ │ │ │ │ ├── flatMap.mdx
│ │ │ │ │ ├── forEach.mdx
│ │ │ │ │ ├── includes.mdx
│ │ │ │ │ ├── indexOf.mdx
│ │ │ │ │ ├── join.mdx
│ │ │ │ │ ├── keys.mdx
│ │ │ │ │ ├── lastIndexOf.mdx
│ │ │ │ │ ├── length.mdx
│ │ │ │ │ ├── map.mdx
│ │ │ │ │ ├── pop.mdx
│ │ │ │ │ ├── push.mdx
│ │ │ │ │ ├── reduce.mdx
│ │ │ │ │ ├── reduceRight.mdx
│ │ │ │ │ ├── reverse.mdx
│ │ │ │ │ ├── shift.mdx
│ │ │ │ │ ├── slice.mdx
│ │ │ │ │ ├── some.mdx
│ │ │ │ │ ├── sort.mdx
│ │ │ │ │ ├── splice.mdx
│ │ │ │ │ ├── toLocaleString.mdx
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ ├── unshift.mdx
│ │ │ │ │ └── values.mdx
│ │ │ │ ├── ArrayBuffer/
│ │ │ │ │ ├── @@species.mdx
│ │ │ │ │ ├── ArrayBuffer.mdx
│ │ │ │ │ ├── isView.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── byteLength.mdx
│ │ │ │ │ └── slice.mdx
│ │ │ │ ├── BigInt/
│ │ │ │ │ ├── BigInt.mdx
│ │ │ │ │ ├── asIntN.mdx
│ │ │ │ │ ├── asUintN.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── toLocaleString.mdx
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ └── valueOf.mdx
│ │ │ │ ├── BigInt64Array/
│ │ │ │ │ └── BigInt64Array.mdx
│ │ │ │ ├── BigUint64Array/
│ │ │ │ │ └── BigUint64Array.mdx
│ │ │ │ ├── Boolean/
│ │ │ │ │ ├── Boolean.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ └── valueOf.mdx
│ │ │ │ ├── ByteLengthQueuingStrategy/
│ │ │ │ │ ├── ByteLengthQueuingStrategy.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ └── size.mdx
│ │ │ │ ├── CompressionStream/
│ │ │ │ │ ├── CompressionStream.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── readable.mdx
│ │ │ │ │ └── writable.mdx
│ │ │ │ ├── CryptoKey/
│ │ │ │ │ ├── CryptoKey.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── algorithm.mdx
│ │ │ │ │ ├── extractable.mdx
│ │ │ │ │ ├── type.mdx
│ │ │ │ │ └── usages.mdx
│ │ │ │ ├── DOMException/
│ │ │ │ │ ├── DOMException.mdx
│ │ │ │ │ ├── code.mdx
│ │ │ │ │ ├── message.mdx
│ │ │ │ │ └── name.mdx
│ │ │ │ ├── DataView/
│ │ │ │ │ ├── DataView.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── buffer.mdx
│ │ │ │ │ ├── byteLength.mdx
│ │ │ │ │ ├── byteOffset.mdx
│ │ │ │ │ ├── getBigInt64.mdx
│ │ │ │ │ ├── getBigUint64.mdx
│ │ │ │ │ ├── getFloat32.mdx
│ │ │ │ │ ├── getFloat64.mdx
│ │ │ │ │ ├── getInt16.mdx
│ │ │ │ │ ├── getInt32.mdx
│ │ │ │ │ ├── getInt8.mdx
│ │ │ │ │ ├── getUint16.mdx
│ │ │ │ │ ├── getUint32.mdx
│ │ │ │ │ ├── getUint8.mdx
│ │ │ │ │ ├── setBigInt64.mdx
│ │ │ │ │ ├── setBigUint64.mdx
│ │ │ │ │ ├── setFloat32.mdx
│ │ │ │ │ ├── setFloat64.mdx
│ │ │ │ │ ├── setInt16.mdx
│ │ │ │ │ ├── setInt32.mdx
│ │ │ │ │ ├── setInt8.mdx
│ │ │ │ │ ├── setUint16.mdx
│ │ │ │ │ ├── setUint32.mdx
│ │ │ │ │ └── setUint8.mdx
│ │ │ │ ├── Date/
│ │ │ │ │ ├── Date.mdx
│ │ │ │ │ ├── UTC.mdx
│ │ │ │ │ ├── now.mdx
│ │ │ │ │ ├── parse.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── @@toPrimitive.mdx
│ │ │ │ │ ├── getDate.mdx
│ │ │ │ │ ├── getDay.mdx
│ │ │ │ │ ├── getFullYear.mdx
│ │ │ │ │ ├── getHours.mdx
│ │ │ │ │ ├── getMilliseconds.mdx
│ │ │ │ │ ├── getMinutes.mdx
│ │ │ │ │ ├── getMonth.mdx
│ │ │ │ │ ├── getSeconds.mdx
│ │ │ │ │ ├── getTime.mdx
│ │ │ │ │ ├── getTimezoneOffset.mdx
│ │ │ │ │ ├── getUTCDate.mdx
│ │ │ │ │ ├── getUTCDay.mdx
│ │ │ │ │ ├── getUTCFullYear.mdx
│ │ │ │ │ ├── getUTCHours.mdx
│ │ │ │ │ ├── getUTCMilliseconds.mdx
│ │ │ │ │ ├── getUTCMinutes.mdx
│ │ │ │ │ ├── getUTCMonth.mdx
│ │ │ │ │ ├── getUTCSeconds.mdx
│ │ │ │ │ ├── getYear.mdx
│ │ │ │ │ ├── setDate.mdx
│ │ │ │ │ ├── setFullYear.mdx
│ │ │ │ │ ├── setHours.mdx
│ │ │ │ │ ├── setMilliseconds.mdx
│ │ │ │ │ ├── setMinutes.mdx
│ │ │ │ │ ├── setMonth.mdx
│ │ │ │ │ ├── setSeconds.mdx
│ │ │ │ │ ├── setTime.mdx
│ │ │ │ │ ├── setUTCDate.mdx
│ │ │ │ │ ├── setUTCFullYear.mdx
│ │ │ │ │ ├── setUTCHours.mdx
│ │ │ │ │ ├── setUTCMilliseconds.mdx
│ │ │ │ │ ├── setUTCMinutes.mdx
│ │ │ │ │ ├── setUTCMonth.mdx
│ │ │ │ │ ├── setUTCSeconds.mdx
│ │ │ │ │ ├── setYear.mdx
│ │ │ │ │ ├── toDateString.mdx
│ │ │ │ │ ├── toISOString.mdx
│ │ │ │ │ ├── toJSON.mdx
│ │ │ │ │ ├── toLocaleDateString.mdx
│ │ │ │ │ ├── toLocaleString.mdx
│ │ │ │ │ ├── toLocaleTimeString.mdx
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ ├── toTimeString.mdx
│ │ │ │ │ ├── toUTCString.mdx
│ │ │ │ │ └── valueOf.mdx
│ │ │ │ ├── DecompressionStream/
│ │ │ │ │ ├── DecompressionStream.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── readable.mdx
│ │ │ │ │ └── writable.mdx
│ │ │ │ ├── Error/
│ │ │ │ │ ├── Error.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── cause.mdx
│ │ │ │ │ ├── message.mdx
│ │ │ │ │ ├── name.mdx
│ │ │ │ │ └── toString.mdx
│ │ │ │ ├── EvalError/
│ │ │ │ │ └── EvalError.mdx
│ │ │ │ ├── FetchEvent/
│ │ │ │ │ ├── FetchEvent.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── respondWith.mdx
│ │ │ │ │ └── waitUntil.mdx
│ │ │ │ ├── FinalizationRegistry/
│ │ │ │ │ ├── FinalizationRegistry.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── register.mdx
│ │ │ │ │ └── unregister.mdx
│ │ │ │ ├── Float32Array/
│ │ │ │ │ └── Float32Array.mdx
│ │ │ │ ├── Float64Array/
│ │ │ │ │ └── Float64Array.mdx
│ │ │ │ ├── Function/
│ │ │ │ │ ├── Function.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── apply.mdx
│ │ │ │ │ ├── bind.mdx
│ │ │ │ │ ├── call.mdx
│ │ │ │ │ ├── index.mdx
│ │ │ │ │ ├── length.mdx
│ │ │ │ │ ├── name.mdx
│ │ │ │ │ └── toString.mdx
│ │ │ │ ├── Headers/
│ │ │ │ │ ├── Headers.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── append.mdx
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ ├── entries.mdx
│ │ │ │ │ ├── forEach.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ ├── keys.mdx
│ │ │ │ │ ├── set.mdx
│ │ │ │ │ └── values.mdx
│ │ │ │ ├── HmacImportParams/
│ │ │ │ │ └── HmacImportParams.mdx
│ │ │ │ ├── Infinity.mdx
│ │ │ │ ├── Int16Array/
│ │ │ │ │ └── Int16Array.mdx
│ │ │ │ ├── Int32Array/
│ │ │ │ │ └── Int32Array.mdx
│ │ │ │ ├── Int8Array/
│ │ │ │ │ └── Int8Array.mdx
│ │ │ │ ├── JSON/
│ │ │ │ │ ├── parse.mdx
│ │ │ │ │ └── stringify.mdx
│ │ │ │ ├── Map/
│ │ │ │ │ ├── @@species.mdx
│ │ │ │ │ ├── Map.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── @@iterator.mdx
│ │ │ │ │ ├── clear.mdx
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ ├── entries.mdx
│ │ │ │ │ ├── forEach.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ ├── keys.mdx
│ │ │ │ │ ├── set.mdx
│ │ │ │ │ ├── size.mdx
│ │ │ │ │ └── values.mdx
│ │ │ │ ├── Math/
│ │ │ │ │ ├── E.mdx
│ │ │ │ │ ├── LN10.mdx
│ │ │ │ │ ├── LN2.mdx
│ │ │ │ │ ├── LOG10e.mdx
│ │ │ │ │ ├── LOG2e.mdx
│ │ │ │ │ ├── PI.mdx
│ │ │ │ │ ├── SQRT1_2.mdx
│ │ │ │ │ ├── SQRT2.mdx
│ │ │ │ │ ├── abs.mdx
│ │ │ │ │ ├── acos.mdx
│ │ │ │ │ ├── acosh.mdx
│ │ │ │ │ ├── asin.mdx
│ │ │ │ │ ├── asinh.mdx
│ │ │ │ │ ├── atan.mdx
│ │ │ │ │ ├── atan2.mdx
│ │ │ │ │ ├── atanh.mdx
│ │ │ │ │ ├── cbrt.mdx
│ │ │ │ │ ├── ceil.mdx
│ │ │ │ │ ├── clz32.mdx
│ │ │ │ │ ├── cos.mdx
│ │ │ │ │ ├── cosh.mdx
│ │ │ │ │ ├── exp.mdx
│ │ │ │ │ ├── expm1.mdx
│ │ │ │ │ ├── floor.mdx
│ │ │ │ │ ├── fround.mdx
│ │ │ │ │ ├── hypot.mdx
│ │ │ │ │ ├── imul.mdx
│ │ │ │ │ ├── log.mdx
│ │ │ │ │ ├── log10.mdx
│ │ │ │ │ ├── log1p.mdx
│ │ │ │ │ ├── log2.mdx
│ │ │ │ │ ├── max.mdx
│ │ │ │ │ ├── min.mdx
│ │ │ │ │ ├── pow.mdx
│ │ │ │ │ ├── random.mdx
│ │ │ │ │ ├── round.mdx
│ │ │ │ │ ├── sign.mdx
│ │ │ │ │ ├── sin.mdx
│ │ │ │ │ ├── sinh.mdx
│ │ │ │ │ ├── sqrt.mdx
│ │ │ │ │ ├── tan.mdx
│ │ │ │ │ ├── tanh.mdx
│ │ │ │ │ └── trunc.mdx
│ │ │ │ ├── NaN.mdx
│ │ │ │ ├── Number/
│ │ │ │ │ ├── MAX_SAFE_INTEGER.mdx
│ │ │ │ │ ├── MAX_VALUE.mdx
│ │ │ │ │ ├── MIN_SAFE_INTEGER.mdx
│ │ │ │ │ ├── MIN_VALUE.mdx
│ │ │ │ │ ├── NEGATIVE_INFINITY.mdx
│ │ │ │ │ ├── NaN.mdx
│ │ │ │ │ ├── Number.mdx
│ │ │ │ │ ├── POSITIVE_INFINITY.mdx
│ │ │ │ │ ├── epsilon.mdx
│ │ │ │ │ ├── isFinite.mdx
│ │ │ │ │ ├── isInteger.mdx
│ │ │ │ │ ├── isNaN.mdx
│ │ │ │ │ ├── isSafeInteger.mdx
│ │ │ │ │ ├── parseFloat.mdx
│ │ │ │ │ ├── parseInt.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── toExponential.mdx
│ │ │ │ │ ├── toFixed.mdx
│ │ │ │ │ ├── toLocaleString.mdx
│ │ │ │ │ ├── toPrecision.mdx
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ └── valueOf.mdx
│ │ │ │ ├── Object/
│ │ │ │ │ ├── Object.mdx
│ │ │ │ │ ├── assign.mdx
│ │ │ │ │ ├── create.mdx
│ │ │ │ │ ├── defineProperties.mdx
│ │ │ │ │ ├── defineProperty.mdx
│ │ │ │ │ ├── entries.mdx
│ │ │ │ │ ├── freeze.mdx
│ │ │ │ │ ├── fromEntries.mdx
│ │ │ │ │ ├── getOwnPropertyDescriptor.mdx
│ │ │ │ │ ├── getOwnPropertyDescriptors.mdx
│ │ │ │ │ ├── getOwnPropertyNames.mdx
│ │ │ │ │ ├── getOwnPropertySymbols.mdx
│ │ │ │ │ ├── getPrototypeOf.mdx
│ │ │ │ │ ├── hasOwn.mdx
│ │ │ │ │ ├── is.mdx
│ │ │ │ │ ├── isExtensible.mdx
│ │ │ │ │ ├── isFrozen.mdx
│ │ │ │ │ ├── isSealed.mdx
│ │ │ │ │ ├── keys.mdx
│ │ │ │ │ ├── preventExtensions.mdx
│ │ │ │ │ ├── prototype/
│ │ │ │ │ │ ├── constructor.mdx
│ │ │ │ │ │ ├── hasOwnProperty.mdx
│ │ │ │ │ │ ├── isPrototypeOf.mdx
│ │ │ │ │ │ ├── propertyIsEnumerable.mdx
│ │ │ │ │ │ ├── toLocaleString.mdx
│ │ │ │ │ │ ├── toString.mdx
│ │ │ │ │ │ └── valueOf.mdx
│ │ │ │ │ ├── seal.mdx
│ │ │ │ │ ├── setPrototypeOf.mdx
│ │ │ │ │ └── values.mdx
│ │ │ │ ├── Promise/
│ │ │ │ │ ├── @@species.mdx
│ │ │ │ │ ├── Promise.mdx
│ │ │ │ │ ├── all.mdx
│ │ │ │ │ ├── allSettled.mdx
│ │ │ │ │ ├── any.mdx
│ │ │ │ │ ├── prototype/
│ │ │ │ │ │ ├── catch.mdx
│ │ │ │ │ │ ├── finally.mdx
│ │ │ │ │ │ └── then.mdx
│ │ │ │ │ ├── race.mdx
│ │ │ │ │ ├── reject.mdx
│ │ │ │ │ └── resolve.mdx
│ │ │ │ ├── Proxy/
│ │ │ │ │ ├── Proxy.mdx
│ │ │ │ │ ├── proxy/
│ │ │ │ │ │ ├── apply.mdx
│ │ │ │ │ │ ├── construct.mdx
│ │ │ │ │ │ ├── defineProperty.mdx
│ │ │ │ │ │ ├── deleteProperty.mdx
│ │ │ │ │ │ ├── get.mdx
│ │ │ │ │ │ ├── getOwnPropertyDescriptor.mdx
│ │ │ │ │ │ ├── getPrototypeOf.mdx
│ │ │ │ │ │ ├── has.mdx
│ │ │ │ │ │ ├── isExtensible.mdx
│ │ │ │ │ │ ├── ownKeys.mdx
│ │ │ │ │ │ ├── preventExtensions.mdx
│ │ │ │ │ │ ├── set.mdx
│ │ │ │ │ │ └── setPrototypeOf.mdx
│ │ │ │ │ └── revocable.mdx
│ │ │ │ ├── RangeError/
│ │ │ │ │ └── RangeError.mdx
│ │ │ │ ├── ReadableByteStreamController/
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── byobRequest.mdx
│ │ │ │ │ ├── close.mdx
│ │ │ │ │ ├── desiredSize.mdx
│ │ │ │ │ ├── enqueue.mdx
│ │ │ │ │ └── error.mdx
│ │ │ │ ├── ReadableStream/
│ │ │ │ │ ├── ReadableStream.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── cancel.mdx
│ │ │ │ │ ├── getReader.mdx
│ │ │ │ │ ├── locked.mdx
│ │ │ │ │ ├── pipeThrough.mdx
│ │ │ │ │ ├── pipeTo.mdx
│ │ │ │ │ └── tee.mdx
│ │ │ │ ├── ReadableStreamBYOBReader/
│ │ │ │ │ ├── ReadableStreamBYOBReader.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── cancel.mdx
│ │ │ │ │ ├── closed.mdx
│ │ │ │ │ ├── read.mdx
│ │ │ │ │ └── releaseLock.mdx
│ │ │ │ ├── ReadableStreamBYOBRequest/
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── respond.mdx
│ │ │ │ │ ├── respondWithNewView.mdx
│ │ │ │ │ └── view.mdx
│ │ │ │ ├── ReadableStreamDefaultController/
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── close.mdx
│ │ │ │ │ ├── desiredSize.mdx
│ │ │ │ │ ├── enqueue.mdx
│ │ │ │ │ └── error.mdx
│ │ │ │ ├── ReadableStreamDefaultReader/
│ │ │ │ │ ├── ReadableStreamDefaultReader.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── cancel.mdx
│ │ │ │ │ ├── closed.mdx
│ │ │ │ │ ├── read.mdx
│ │ │ │ │ └── releaseLock.mdx
│ │ │ │ ├── ReferenceError/
│ │ │ │ │ └── ReferenceError.mdx
│ │ │ │ ├── Reflect/
│ │ │ │ │ ├── apply.mdx
│ │ │ │ │ ├── construct.mdx
│ │ │ │ │ ├── defineProperty.mdx
│ │ │ │ │ ├── deleteProperty.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── getOwnPropertyDescriptor.mdx
│ │ │ │ │ ├── getPrototypeOf.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ ├── isExtensible.mdx
│ │ │ │ │ ├── ownKeys.mdx
│ │ │ │ │ ├── preventExtensions.mdx
│ │ │ │ │ ├── set.mdx
│ │ │ │ │ └── setPrototypeOf.mdx
│ │ │ │ ├── Request/
│ │ │ │ │ ├── Request.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── arrayBuffer.mdx
│ │ │ │ │ ├── body.mdx
│ │ │ │ │ ├── bodyUsed.mdx
│ │ │ │ │ ├── headers.mdx
│ │ │ │ │ ├── json.mdx
│ │ │ │ │ ├── method.mdx
│ │ │ │ │ ├── text.mdx
│ │ │ │ │ └── url.mdx
│ │ │ │ ├── Response/
│ │ │ │ │ ├── Response.mdx
│ │ │ │ │ ├── prototype/
│ │ │ │ │ │ ├── arrayBuffer.mdx
│ │ │ │ │ │ ├── body.mdx
│ │ │ │ │ │ ├── bodyUsed.mdx
│ │ │ │ │ │ ├── headers.mdx
│ │ │ │ │ │ ├── json.mdx
│ │ │ │ │ │ ├── ok.mdx
│ │ │ │ │ │ ├── status.mdx
│ │ │ │ │ │ ├── statusText.mdx
│ │ │ │ │ │ ├── text.mdx
│ │ │ │ │ │ └── url.mdx
│ │ │ │ │ └── redirect.mdx
│ │ │ │ ├── RsaHashedImportParams/
│ │ │ │ │ └── RsaHashedImportParams.mdx
│ │ │ │ ├── Set/
│ │ │ │ │ ├── @@species.mdx
│ │ │ │ │ ├── Set.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── @@iterator.mdx
│ │ │ │ │ ├── add.mdx
│ │ │ │ │ ├── clear.mdx
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ ├── entries.mdx
│ │ │ │ │ ├── forEach.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ ├── keys.mdx
│ │ │ │ │ ├── size.mdx
│ │ │ │ │ └── values.mdx
│ │ │ │ ├── String/
│ │ │ │ │ ├── String.mdx
│ │ │ │ │ ├── fromCharCode.mdx
│ │ │ │ │ ├── fromCodePoint.mdx
│ │ │ │ │ ├── prototype/
│ │ │ │ │ │ ├── @@iterator.mdx
│ │ │ │ │ │ ├── at.mdx
│ │ │ │ │ │ ├── charAt.mdx
│ │ │ │ │ │ ├── charCodeAt.mdx
│ │ │ │ │ │ ├── codePointAt.mdx
│ │ │ │ │ │ ├── concat.mdx
│ │ │ │ │ │ ├── endsWith.mdx
│ │ │ │ │ │ ├── includes.mdx
│ │ │ │ │ │ ├── indexOf.mdx
│ │ │ │ │ │ ├── lastIndexOf.mdx
│ │ │ │ │ │ ├── length.mdx
│ │ │ │ │ │ ├── localeCompare.mdx
│ │ │ │ │ │ ├── match.mdx
│ │ │ │ │ │ ├── matchAll.mdx
│ │ │ │ │ │ ├── padEnd.mdx
│ │ │ │ │ │ ├── padStart.mdx
│ │ │ │ │ │ ├── repeat.mdx
│ │ │ │ │ │ ├── replace.mdx
│ │ │ │ │ │ ├── replaceAll.mdx
│ │ │ │ │ │ ├── search.mdx
│ │ │ │ │ │ ├── slice.mdx
│ │ │ │ │ │ ├── split.mdx
│ │ │ │ │ │ ├── startsWith.mdx
│ │ │ │ │ │ ├── substr.mdx
│ │ │ │ │ │ ├── substring.mdx
│ │ │ │ │ │ ├── toLocaleLowerCase.mdx
│ │ │ │ │ │ ├── toLocaleUpperCase.mdx
│ │ │ │ │ │ ├── toLowerCase.mdx
│ │ │ │ │ │ ├── toString.mdx
│ │ │ │ │ │ ├── toUpperCase.mdx
│ │ │ │ │ │ ├── trim.mdx
│ │ │ │ │ │ ├── trimEnd.mdx
│ │ │ │ │ │ ├── trimStart.mdx
│ │ │ │ │ │ └── valueOf.mdx
│ │ │ │ │ └── raw.mdx
│ │ │ │ ├── SubtleCrypto/
│ │ │ │ │ ├── SubtleCrypto.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── digest.mdx
│ │ │ │ │ ├── importKey.mdx
│ │ │ │ │ ├── sign.mdx
│ │ │ │ │ └── verify.mdx
│ │ │ │ ├── Symbol/
│ │ │ │ │ ├── Symbol.mdx
│ │ │ │ │ ├── asyncIterator.mdx
│ │ │ │ │ ├── for.mdx
│ │ │ │ │ ├── hasInstance.mdx
│ │ │ │ │ ├── isConcatSpreadable.mdx
│ │ │ │ │ ├── iterator.mdx
│ │ │ │ │ ├── keyFor.mdx
│ │ │ │ │ ├── match.mdx
│ │ │ │ │ ├── matchAll.mdx
│ │ │ │ │ ├── prototype/
│ │ │ │ │ │ ├── @@toPrimitive.mdx
│ │ │ │ │ │ ├── description.mdx
│ │ │ │ │ │ ├── toString.mdx
│ │ │ │ │ │ └── valueOf.mdx
│ │ │ │ │ ├── replace.mdx
│ │ │ │ │ ├── search.mdx
│ │ │ │ │ ├── species.mdx
│ │ │ │ │ ├── split.mdx
│ │ │ │ │ ├── toPrimitive.mdx
│ │ │ │ │ ├── toStringTag.mdx
│ │ │ │ │ └── unscopables.mdx
│ │ │ │ ├── SyntaxError/
│ │ │ │ │ └── SyntaxError.mdx
│ │ │ │ ├── TextDecoder/
│ │ │ │ │ ├── TextDecoder.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── decode.mdx
│ │ │ │ │ ├── encoding.mdx
│ │ │ │ │ ├── fatal.mdx
│ │ │ │ │ └── ignoreBOM.mdx
│ │ │ │ ├── TextEncoder/
│ │ │ │ │ ├── TextEncoder.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── encode.mdx
│ │ │ │ │ └── encoding.mdx
│ │ │ │ ├── TransformStream/
│ │ │ │ │ ├── TransformStream.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── readable.mdx
│ │ │ │ │ └── writable.mdx
│ │ │ │ ├── TransformStreamDefaultController/
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── desiredSize.mdx
│ │ │ │ │ ├── enqueue.mdx
│ │ │ │ │ ├── error.mdx
│ │ │ │ │ └── terminate.mdx
│ │ │ │ ├── TypeError/
│ │ │ │ │ └── TypeError.mdx
│ │ │ │ ├── URIError/
│ │ │ │ │ └── URIError.mdx
│ │ │ │ ├── URL/
│ │ │ │ │ ├── URL.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── hash.mdx
│ │ │ │ │ ├── host.mdx
│ │ │ │ │ ├── hostname.mdx
│ │ │ │ │ ├── href.mdx
│ │ │ │ │ ├── origin.mdx
│ │ │ │ │ ├── password.mdx
│ │ │ │ │ ├── pathname.mdx
│ │ │ │ │ ├── port.mdx
│ │ │ │ │ ├── protocol.mdx
│ │ │ │ │ ├── search.mdx
│ │ │ │ │ ├── searchParams.mdx
│ │ │ │ │ ├── toJSON.mdx
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ └── username.mdx
│ │ │ │ ├── URLSearchParams/
│ │ │ │ │ ├── URLSearchParams.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── append.mdx
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ ├── entries.mdx
│ │ │ │ │ ├── forEach.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ ├── keys.mdx
│ │ │ │ │ ├── set.mdx
│ │ │ │ │ ├── sort.mdx
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ └── values.mdx
│ │ │ │ ├── Uint16Array/
│ │ │ │ │ └── Uint16Array.mdx
│ │ │ │ ├── Uint32Array/
│ │ │ │ │ └── Uint32Array.mdx
│ │ │ │ ├── Uint8Array/
│ │ │ │ │ └── Uint8Array.mdx
│ │ │ │ ├── Uint8ClampedArray/
│ │ │ │ │ └── Uint8ClampedArray.mdx
│ │ │ │ ├── WeakMap/
│ │ │ │ │ ├── WeakMap.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ └── set.mdx
│ │ │ │ ├── WeakRef/
│ │ │ │ │ ├── WeakRef.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ └── deref.mdx
│ │ │ │ ├── WeakSet/
│ │ │ │ │ ├── WeakSet.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── add.mdx
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ └── has.mdx
│ │ │ │ ├── WorkerLocation/
│ │ │ │ │ ├── WorkerLocation.mdx
│ │ │ │ │ ├── hash.mdx
│ │ │ │ │ ├── host.mdx
│ │ │ │ │ ├── hostname.mdx
│ │ │ │ │ ├── href.mdx
│ │ │ │ │ ├── origin.mdx
│ │ │ │ │ ├── pathname.mdx
│ │ │ │ │ ├── port.mdx
│ │ │ │ │ ├── protocol.mdx
│ │ │ │ │ ├── search.mdx
│ │ │ │ │ └── toString.mdx
│ │ │ │ ├── WritableStream/
│ │ │ │ │ ├── WritableStream.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── abort.mdx
│ │ │ │ │ ├── getWriter.mdx
│ │ │ │ │ └── locked.mdx
│ │ │ │ ├── WritableStreamDefaultController/
│ │ │ │ │ └── error.mdx
│ │ │ │ ├── WritableStreamDefaultWriter/
│ │ │ │ │ ├── WritableStreamDefaultWriter.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── abort.mdx
│ │ │ │ │ ├── close.mdx
│ │ │ │ │ ├── closed.mdx
│ │ │ │ │ ├── desiredSize.mdx
│ │ │ │ │ ├── ready.mdx
│ │ │ │ │ ├── releaseLock.mdx
│ │ │ │ │ └── write.mdx
│ │ │ │ ├── atob.mdx
│ │ │ │ ├── btoa.mdx
│ │ │ │ ├── clearInterval.mdx
│ │ │ │ ├── clearTimeout.mdx
│ │ │ │ ├── console/
│ │ │ │ │ ├── assert.mdx
│ │ │ │ │ ├── clear.mdx
│ │ │ │ │ ├── count.mdx
│ │ │ │ │ ├── countReset.mdx
│ │ │ │ │ ├── debug.mdx
│ │ │ │ │ ├── dir.mdx
│ │ │ │ │ ├── dirxml.mdx
│ │ │ │ │ ├── error.mdx
│ │ │ │ │ ├── group.mdx
│ │ │ │ │ ├── groupCollapsed.mdx
│ │ │ │ │ ├── groupEnd.mdx
│ │ │ │ │ ├── info.mdx
│ │ │ │ │ ├── log.mdx
│ │ │ │ │ ├── time.mdx
│ │ │ │ │ ├── timeEnd.mdx
│ │ │ │ │ ├── timeLog.mdx
│ │ │ │ │ ├── trace.mdx
│ │ │ │ │ └── warn.mdx
│ │ │ │ ├── crypto/
│ │ │ │ │ ├── getRandomValues.mdx
│ │ │ │ │ ├── randomUUID.mdx
│ │ │ │ │ └── subtle.mdx
│ │ │ │ ├── decodeURI.mdx
│ │ │ │ ├── decodeURIComponent.mdx
│ │ │ │ ├── encodeURI.mdx
│ │ │ │ ├── encodeURIComponent.mdx
│ │ │ │ ├── escape.mdx
│ │ │ │ ├── eval.mdx
│ │ │ │ ├── fetch.mdx
│ │ │ │ ├── globalThis.mdx
│ │ │ │ ├── isFinite.mdx
│ │ │ │ ├── isNaN.mdx
│ │ │ │ ├── location.mdx
│ │ │ │ ├── parseFloat.mdx
│ │ │ │ ├── parseInt.mdx
│ │ │ │ ├── performance/
│ │ │ │ │ ├── now.mdx
│ │ │ │ │ └── timeOrigin.mdx
│ │ │ │ ├── setInterval.mdx
│ │ │ │ ├── setTimeout.mdx
│ │ │ │ ├── structuredClone.mdx
│ │ │ │ ├── undefined.mdx
│ │ │ │ └── unescape.mdx
│ │ │ ├── index.mdx
│ │ │ ├── kv-store/
│ │ │ │ ├── KVStore/
│ │ │ │ │ ├── KVStore.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ └── put.mdx
│ │ │ │ └── KVStoreEntry/
│ │ │ │ └── prototype/
│ │ │ │ ├── arrayBuffer.mdx
│ │ │ │ ├── body.mdx
│ │ │ │ ├── bodyUsed.mdx
│ │ │ │ ├── json.mdx
│ │ │ │ └── text.mdx
│ │ │ ├── logger/
│ │ │ │ └── Logger/
│ │ │ │ ├── Logger.mdx
│ │ │ │ └── prototype/
│ │ │ │ └── log.mdx
│ │ │ ├── migration-guide/
│ │ │ │ └── index.mdx
│ │ │ └── secret-store/
│ │ │ ├── SecretStore/
│ │ │ │ ├── SecretStore.mdx
│ │ │ │ └── prototype/
│ │ │ │ └── get.mdx
│ │ │ └── SecretStoreEntry/
│ │ │ └── prototype/
│ │ │ └── plaintext.mdx
│ │ ├── version-3.38.4/
│ │ │ ├── acl/
│ │ │ │ └── Acl/
│ │ │ │ ├── open.mdx
│ │ │ │ └── prototype/
│ │ │ │ └── lookup.mdx
│ │ │ ├── backend/
│ │ │ │ ├── Backend/
│ │ │ │ │ ├── Backend.mdx
│ │ │ │ │ ├── exists.mdx
│ │ │ │ │ ├── fromName.mdx
│ │ │ │ │ ├── health.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── betweenBytesTimeout.mdx
│ │ │ │ │ ├── connectTimeout.mdx
│ │ │ │ │ ├── firstByteTimeout.mdx
│ │ │ │ │ ├── health.mdx
│ │ │ │ │ ├── hostOverride.mdx
│ │ │ │ │ ├── httpKeepaliveTime.mdx
│ │ │ │ │ ├── isDynamic.mdx
│ │ │ │ │ ├── isSSL.mdx
│ │ │ │ │ ├── name.mdx
│ │ │ │ │ ├── port.mdx
│ │ │ │ │ ├── target.mdx
│ │ │ │ │ ├── tcpKeepalive.mdx
│ │ │ │ │ ├── tlsMaxVersion.mdx
│ │ │ │ │ ├── tlsMinVersion.mdx
│ │ │ │ │ ├── toName.mdx
│ │ │ │ │ └── toString.mdx
│ │ │ │ ├── allowDynamicBackends.mdx
│ │ │ │ ├── enforceExplicitBackends.mdx
│ │ │ │ └── setDefaultDynamicBackendConfig.mdx
│ │ │ ├── cache/
│ │ │ │ ├── CacheEntry/
│ │ │ │ │ ├── age.mdx
│ │ │ │ │ ├── body.mdx
│ │ │ │ │ ├── close.mdx
│ │ │ │ │ ├── hits.mdx
│ │ │ │ │ ├── length.mdx
│ │ │ │ │ ├── maxAge.mdx
│ │ │ │ │ ├── staleWhileRevalidate.mdx
│ │ │ │ │ ├── state.mdx
│ │ │ │ │ └── userMetadata.mdx
│ │ │ │ ├── CacheState/
│ │ │ │ │ ├── found.mdx
│ │ │ │ │ ├── mustInsertOrUpdate.mdx
│ │ │ │ │ ├── stale.mdx
│ │ │ │ │ └── usable.mdx
│ │ │ │ ├── CoreCache/
│ │ │ │ │ ├── insert.mdx
│ │ │ │ │ ├── lookup.mdx
│ │ │ │ │ └── transactionLookup.mdx
│ │ │ │ ├── SimpleCache/
│ │ │ │ │ ├── SimpleCache.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── getOrSet.mdx
│ │ │ │ │ └── purge.mdx
│ │ │ │ ├── SimpleCacheEntry/
│ │ │ │ │ ├── arrayBuffer.mdx
│ │ │ │ │ ├── body.mdx
│ │ │ │ │ ├── bodyUsed.mdx
│ │ │ │ │ ├── json.mdx
│ │ │ │ │ └── text.mdx
│ │ │ │ └── TransactionCacheEntry/
│ │ │ │ ├── age.mdx
│ │ │ │ ├── body.mdx
│ │ │ │ ├── cancel.mdx
│ │ │ │ ├── close.mdx
│ │ │ │ ├── hits.mdx
│ │ │ │ ├── insert.mdx
│ │ │ │ ├── insertAndStreamBack.mdx
│ │ │ │ ├── length.mdx
│ │ │ │ ├── maxAge.mdx
│ │ │ │ ├── staleWhileRevalidate.mdx
│ │ │ │ ├── state.mdx
│ │ │ │ ├── update.mdx
│ │ │ │ └── userMetadata.mdx
│ │ │ ├── cache-override/
│ │ │ │ └── CacheOverride/
│ │ │ │ └── CacheOverride.mdx
│ │ │ ├── compute/
│ │ │ │ ├── purgeSurrogateKey.mdx
│ │ │ │ └── vCpuTime.mdx
│ │ │ ├── config-store/
│ │ │ │ └── ConfigStore/
│ │ │ │ ├── ConfigStore.mdx
│ │ │ │ └── prototype/
│ │ │ │ └── get.mdx
│ │ │ ├── device/
│ │ │ │ └── Device/
│ │ │ │ ├── lookup.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── brand.mdx
│ │ │ │ ├── hardwareType.mdx
│ │ │ │ ├── isDesktop.mdx
│ │ │ │ ├── isGameConsole.mdx
│ │ │ │ ├── isMediaPlayer.mdx
│ │ │ │ ├── isMobile.mdx
│ │ │ │ ├── isSmartTV.mdx
│ │ │ │ ├── isTablet.mdx
│ │ │ │ ├── isTouchscreen.mdx
│ │ │ │ ├── model.mdx
│ │ │ │ ├── name.mdx
│ │ │ │ └── toJSON.mdx
│ │ │ ├── dictionary/
│ │ │ │ └── Dictionary/
│ │ │ │ ├── Dictionary.mdx
│ │ │ │ └── prototype/
│ │ │ │ └── get.mdx
│ │ │ ├── edge-rate-limiter/
│ │ │ │ ├── EdgeRateLimiter/
│ │ │ │ │ ├── EdgeRateLimiter.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ └── checkRate.mdx
│ │ │ │ ├── PenaltyBox/
│ │ │ │ │ ├── PenaltyBox.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── add.mdx
│ │ │ │ │ └── has.mdx
│ │ │ │ └── RateCounter/
│ │ │ │ ├── RateCounter.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── increment.mdx
│ │ │ │ ├── lookupCount.mdx
│ │ │ │ └── lookupRate.mdx
│ │ │ ├── env/
│ │ │ │ └── env.mdx
│ │ │ ├── experimental/
│ │ │ │ ├── allowDynamicBackends.mdx
│ │ │ │ ├── includeBytes.mdx
│ │ │ │ ├── mapAndLogError.mdx
│ │ │ │ ├── mapError.mdx
│ │ │ │ └── sdkVersion.mdx
│ │ │ ├── fanout/
│ │ │ │ └── createFanoutHandoff.mdx
│ │ │ ├── geolocation/
│ │ │ │ └── getGeolocationForIpAddress.mdx
│ │ │ ├── globals/
│ │ │ │ ├── AggregrateError/
│ │ │ │ │ └── AggregrateError.mdx
│ │ │ │ ├── Array/
│ │ │ │ │ ├── @@species.mdx
│ │ │ │ │ ├── Array.mdx
│ │ │ │ │ ├── from.mdx
│ │ │ │ │ ├── isArray.mdx
│ │ │ │ │ ├── of.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── @@iterator.mdx
│ │ │ │ │ ├── @@unscopables.mdx
│ │ │ │ │ ├── at.mdx
│ │ │ │ │ ├── concat.mdx
│ │ │ │ │ ├── copyWithin.mdx
│ │ │ │ │ ├── entries.mdx
│ │ │ │ │ ├── every.mdx
│ │ │ │ │ ├── fill.mdx
│ │ │ │ │ ├── filter.mdx
│ │ │ │ │ ├── find.mdx
│ │ │ │ │ ├── findIndex.mdx
│ │ │ │ │ ├── flat.mdx
│ │ │ │ │ ├── flatMap.mdx
│ │ │ │ │ ├── forEach.mdx
│ │ │ │ │ ├── includes.mdx
│ │ │ │ │ ├── indexOf.mdx
│ │ │ │ │ ├── join.mdx
│ │ │ │ │ ├── keys.mdx
│ │ │ │ │ ├── lastIndexOf.mdx
│ │ │ │ │ ├── length.mdx
│ │ │ │ │ ├── map.mdx
│ │ │ │ │ ├── pop.mdx
│ │ │ │ │ ├── push.mdx
│ │ │ │ │ ├── reduce.mdx
│ │ │ │ │ ├── reduceRight.mdx
│ │ │ │ │ ├── reverse.mdx
│ │ │ │ │ ├── shift.mdx
│ │ │ │ │ ├── slice.mdx
│ │ │ │ │ ├── some.mdx
│ │ │ │ │ ├── sort.mdx
│ │ │ │ │ ├── splice.mdx
│ │ │ │ │ ├── toLocaleString.mdx
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ ├── unshift.mdx
│ │ │ │ │ └── values.mdx
│ │ │ │ ├── ArrayBuffer/
│ │ │ │ │ ├── @@species.mdx
│ │ │ │ │ ├── ArrayBuffer.mdx
│ │ │ │ │ ├── isView.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── byteLength.mdx
│ │ │ │ │ └── slice.mdx
│ │ │ │ ├── BigInt/
│ │ │ │ │ ├── BigInt.mdx
│ │ │ │ │ ├── asIntN.mdx
│ │ │ │ │ ├── asUintN.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── toLocaleString.mdx
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ └── valueOf.mdx
│ │ │ │ ├── BigInt64Array/
│ │ │ │ │ └── BigInt64Array.mdx
│ │ │ │ ├── BigUint64Array/
│ │ │ │ │ └── BigUint64Array.mdx
│ │ │ │ ├── Blob/
│ │ │ │ │ ├── Blob.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── arrayBuffer.mdx
│ │ │ │ │ ├── size.mdx
│ │ │ │ │ ├── slice.mdx
│ │ │ │ │ ├── stream.mdx
│ │ │ │ │ ├── text.mdx
│ │ │ │ │ └── type.mdx
│ │ │ │ ├── Boolean/
│ │ │ │ │ ├── Boolean.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ └── valueOf.mdx
│ │ │ │ ├── ByteLengthQueuingStrategy/
│ │ │ │ │ ├── ByteLengthQueuingStrategy.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ └── size.mdx
│ │ │ │ ├── CompressionStream/
│ │ │ │ │ ├── CompressionStream.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── readable.mdx
│ │ │ │ │ └── writable.mdx
│ │ │ │ ├── CryptoKey/
│ │ │ │ │ ├── CryptoKey.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── algorithm.mdx
│ │ │ │ │ ├── extractable.mdx
│ │ │ │ │ ├── type.mdx
│ │ │ │ │ └── usages.mdx
│ │ │ │ ├── DOMException/
│ │ │ │ │ ├── DOMException.mdx
│ │ │ │ │ ├── code.mdx
│ │ │ │ │ ├── message.mdx
│ │ │ │ │ └── name.mdx
│ │ │ │ ├── DataView/
│ │ │ │ │ ├── DataView.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── buffer.mdx
│ │ │ │ │ ├── byteLength.mdx
│ │ │ │ │ ├── byteOffset.mdx
│ │ │ │ │ ├── getBigInt64.mdx
│ │ │ │ │ ├── getBigUint64.mdx
│ │ │ │ │ ├── getFloat32.mdx
│ │ │ │ │ ├── getFloat64.mdx
│ │ │ │ │ ├── getInt16.mdx
│ │ │ │ │ ├── getInt32.mdx
│ │ │ │ │ ├── getInt8.mdx
│ │ │ │ │ ├── getUint16.mdx
│ │ │ │ │ ├── getUint32.mdx
│ │ │ │ │ ├── getUint8.mdx
│ │ │ │ │ ├── setBigInt64.mdx
│ │ │ │ │ ├── setBigUint64.mdx
│ │ │ │ │ ├── setFloat32.mdx
│ │ │ │ │ ├── setFloat64.mdx
│ │ │ │ │ ├── setInt16.mdx
│ │ │ │ │ ├── setInt32.mdx
│ │ │ │ │ ├── setInt8.mdx
│ │ │ │ │ ├── setUint16.mdx
│ │ │ │ │ ├── setUint32.mdx
│ │ │ │ │ └── setUint8.mdx
│ │ │ │ ├── Date/
│ │ │ │ │ ├── Date.mdx
│ │ │ │ │ ├── UTC.mdx
│ │ │ │ │ ├── now.mdx
│ │ │ │ │ ├── parse.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── @@toPrimitive.mdx
│ │ │ │ │ ├── getDate.mdx
│ │ │ │ │ ├── getDay.mdx
│ │ │ │ │ ├── getFullYear.mdx
│ │ │ │ │ ├── getHours.mdx
│ │ │ │ │ ├── getMilliseconds.mdx
│ │ │ │ │ ├── getMinutes.mdx
│ │ │ │ │ ├── getMonth.mdx
│ │ │ │ │ ├── getSeconds.mdx
│ │ │ │ │ ├── getTime.mdx
│ │ │ │ │ ├── getTimezoneOffset.mdx
│ │ │ │ │ ├── getUTCDate.mdx
│ │ │ │ │ ├── getUTCDay.mdx
│ │ │ │ │ ├── getUTCFullYear.mdx
│ │ │ │ │ ├── getUTCHours.mdx
│ │ │ │ │ ├── getUTCMilliseconds.mdx
│ │ │ │ │ ├── getUTCMinutes.mdx
│ │ │ │ │ ├── getUTCMonth.mdx
│ │ │ │ │ ├── getUTCSeconds.mdx
│ │ │ │ │ ├── getYear.mdx
│ │ │ │ │ ├── setDate.mdx
│ │ │ │ │ ├── setFullYear.mdx
│ │ │ │ │ ├── setHours.mdx
│ │ │ │ │ ├── setMilliseconds.mdx
│ │ │ │ │ ├── setMinutes.mdx
│ │ │ │ │ ├── setMonth.mdx
│ │ │ │ │ ├── setSeconds.mdx
│ │ │ │ │ ├── setTime.mdx
│ │ │ │ │ ├── setUTCDate.mdx
│ │ │ │ │ ├── setUTCFullYear.mdx
│ │ │ │ │ ├── setUTCHours.mdx
│ │ │ │ │ ├── setUTCMilliseconds.mdx
│ │ │ │ │ ├── setUTCMinutes.mdx
│ │ │ │ │ ├── setUTCMonth.mdx
│ │ │ │ │ ├── setUTCSeconds.mdx
│ │ │ │ │ ├── setYear.mdx
│ │ │ │ │ ├── toDateString.mdx
│ │ │ │ │ ├── toISOString.mdx
│ │ │ │ │ ├── toJSON.mdx
│ │ │ │ │ ├── toLocaleDateString.mdx
│ │ │ │ │ ├── toLocaleString.mdx
│ │ │ │ │ ├── toLocaleTimeString.mdx
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ ├── toTimeString.mdx
│ │ │ │ │ ├── toUTCString.mdx
│ │ │ │ │ └── valueOf.mdx
│ │ │ │ ├── DecompressionStream/
│ │ │ │ │ ├── DecompressionStream.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── readable.mdx
│ │ │ │ │ └── writable.mdx
│ │ │ │ ├── EcKeyImportParams/
│ │ │ │ │ └── EcKeyImportParams.mdx
│ │ │ │ ├── EcdsaParams/
│ │ │ │ │ └── EcdsaParams.mdx
│ │ │ │ ├── Error/
│ │ │ │ │ ├── Error.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── cause.mdx
│ │ │ │ │ ├── message.mdx
│ │ │ │ │ ├── name.mdx
│ │ │ │ │ └── toString.mdx
│ │ │ │ ├── EvalError/
│ │ │ │ │ └── EvalError.mdx
│ │ │ │ ├── FetchEvent/
│ │ │ │ │ ├── FetchEvent.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── respondWith.mdx
│ │ │ │ │ ├── sendEarlyHints.mdx
│ │ │ │ │ └── waitUntil.mdx
│ │ │ │ ├── FinalizationRegistry/
│ │ │ │ │ ├── FinalizationRegistry.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── register.mdx
│ │ │ │ │ └── unregister.mdx
│ │ │ │ ├── Float32Array/
│ │ │ │ │ └── Float32Array.mdx
│ │ │ │ ├── Float64Array/
│ │ │ │ │ └── Float64Array.mdx
│ │ │ │ ├── FormData/
│ │ │ │ │ ├── FormData.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── append.mdx
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ ├── entries.mdx
│ │ │ │ │ ├── forEach.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── getAll.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ ├── keys.mdx
│ │ │ │ │ ├── set.mdx
│ │ │ │ │ └── values.mdx
│ │ │ │ ├── Function/
│ │ │ │ │ ├── Function.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── apply.mdx
│ │ │ │ │ ├── bind.mdx
│ │ │ │ │ ├── call.mdx
│ │ │ │ │ ├── index.mdx
│ │ │ │ │ ├── length.mdx
│ │ │ │ │ ├── name.mdx
│ │ │ │ │ └── toString.mdx
│ │ │ │ ├── Headers/
│ │ │ │ │ ├── Headers.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── append.mdx
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ ├── entries.mdx
│ │ │ │ │ ├── forEach.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── getSetCookie.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ ├── keys.mdx
│ │ │ │ │ ├── set.mdx
│ │ │ │ │ └── values.mdx
│ │ │ │ ├── HmacImportParams/
│ │ │ │ │ └── HmacImportParams.mdx
│ │ │ │ ├── Infinity.mdx
│ │ │ │ ├── Int16Array/
│ │ │ │ │ └── Int16Array.mdx
│ │ │ │ ├── Int32Array/
│ │ │ │ │ └── Int32Array.mdx
│ │ │ │ ├── Int8Array/
│ │ │ │ │ └── Int8Array.mdx
│ │ │ │ ├── JSON/
│ │ │ │ │ ├── parse.mdx
│ │ │ │ │ └── stringify.mdx
│ │ │ │ ├── Map/
│ │ │ │ │ ├── @@species.mdx
│ │ │ │ │ ├── Map.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── @@iterator.mdx
│ │ │ │ │ ├── clear.mdx
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ ├── entries.mdx
│ │ │ │ │ ├── forEach.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ ├── keys.mdx
│ │ │ │ │ ├── set.mdx
│ │ │ │ │ ├── size.mdx
│ │ │ │ │ └── values.mdx
│ │ │ │ ├── Math/
│ │ │ │ │ ├── E.mdx
│ │ │ │ │ ├── LN10.mdx
│ │ │ │ │ ├── LN2.mdx
│ │ │ │ │ ├── LOG10e.mdx
│ │ │ │ │ ├── LOG2e.mdx
│ │ │ │ │ ├── PI.mdx
│ │ │ │ │ ├── SQRT1_2.mdx
│ │ │ │ │ ├── SQRT2.mdx
│ │ │ │ │ ├── abs.mdx
│ │ │ │ │ ├── acos.mdx
│ │ │ │ │ ├── acosh.mdx
│ │ │ │ │ ├── asin.mdx
│ │ │ │ │ ├── asinh.mdx
│ │ │ │ │ ├── atan.mdx
│ │ │ │ │ ├── atan2.mdx
│ │ │ │ │ ├── atanh.mdx
│ │ │ │ │ ├── cbrt.mdx
│ │ │ │ │ ├── ceil.mdx
│ │ │ │ │ ├── clz32.mdx
│ │ │ │ │ ├── cos.mdx
│ │ │ │ │ ├── cosh.mdx
│ │ │ │ │ ├── exp.mdx
│ │ │ │ │ ├── expm1.mdx
│ │ │ │ │ ├── floor.mdx
│ │ │ │ │ ├── fround.mdx
│ │ │ │ │ ├── hypot.mdx
│ │ │ │ │ ├── imul.mdx
│ │ │ │ │ ├── log.mdx
│ │ │ │ │ ├── log10.mdx
│ │ │ │ │ ├── log1p.mdx
│ │ │ │ │ ├── log2.mdx
│ │ │ │ │ ├── max.mdx
│ │ │ │ │ ├── min.mdx
│ │ │ │ │ ├── pow.mdx
│ │ │ │ │ ├── random.mdx
│ │ │ │ │ ├── round.mdx
│ │ │ │ │ ├── sign.mdx
│ │ │ │ │ ├── sin.mdx
│ │ │ │ │ ├── sinh.mdx
│ │ │ │ │ ├── sqrt.mdx
│ │ │ │ │ ├── tan.mdx
│ │ │ │ │ ├── tanh.mdx
│ │ │ │ │ └── trunc.mdx
│ │ │ │ ├── NaN.mdx
│ │ │ │ ├── Number/
│ │ │ │ │ ├── MAX_SAFE_INTEGER.mdx
│ │ │ │ │ ├── MAX_VALUE.mdx
│ │ │ │ │ ├── MIN_SAFE_INTEGER.mdx
│ │ │ │ │ ├── MIN_VALUE.mdx
│ │ │ │ │ ├── NEGATIVE_INFINITY.mdx
│ │ │ │ │ ├── NaN.mdx
│ │ │ │ │ ├── Number.mdx
│ │ │ │ │ ├── POSITIVE_INFINITY.mdx
│ │ │ │ │ ├── epsilon.mdx
│ │ │ │ │ ├── isFinite.mdx
│ │ │ │ │ ├── isInteger.mdx
│ │ │ │ │ ├── isNaN.mdx
│ │ │ │ │ ├── isSafeInteger.mdx
│ │ │ │ │ ├── parseFloat.mdx
│ │ │ │ │ ├── parseInt.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── toExponential.mdx
│ │ │ │ │ ├── toFixed.mdx
│ │ │ │ │ ├── toLocaleString.mdx
│ │ │ │ │ ├── toPrecision.mdx
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ └── valueOf.mdx
│ │ │ │ ├── Object/
│ │ │ │ │ ├── Object.mdx
│ │ │ │ │ ├── assign.mdx
│ │ │ │ │ ├── create.mdx
│ │ │ │ │ ├── defineProperties.mdx
│ │ │ │ │ ├── defineProperty.mdx
│ │ │ │ │ ├── entries.mdx
│ │ │ │ │ ├── freeze.mdx
│ │ │ │ │ ├── fromEntries.mdx
│ │ │ │ │ ├── getOwnPropertyDescriptor.mdx
│ │ │ │ │ ├── getOwnPropertyDescriptors.mdx
│ │ │ │ │ ├── getOwnPropertyNames.mdx
│ │ │ │ │ ├── getOwnPropertySymbols.mdx
│ │ │ │ │ ├── getPrototypeOf.mdx
│ │ │ │ │ ├── hasOwn.mdx
│ │ │ │ │ ├── is.mdx
│ │ │ │ │ ├── isExtensible.mdx
│ │ │ │ │ ├── isFrozen.mdx
│ │ │ │ │ ├── isSealed.mdx
│ │ │ │ │ ├── keys.mdx
│ │ │ │ │ ├── preventExtensions.mdx
│ │ │ │ │ ├── prototype/
│ │ │ │ │ │ ├── constructor.mdx
│ │ │ │ │ │ ├── hasOwnProperty.mdx
│ │ │ │ │ │ ├── isPrototypeOf.mdx
│ │ │ │ │ │ ├── propertyIsEnumerable.mdx
│ │ │ │ │ │ ├── toLocaleString.mdx
│ │ │ │ │ │ ├── toString.mdx
│ │ │ │ │ │ └── valueOf.mdx
│ │ │ │ │ ├── seal.mdx
│ │ │ │ │ ├── setPrototypeOf.mdx
│ │ │ │ │ └── values.mdx
│ │ │ │ ├── Promise/
│ │ │ │ │ ├── @@species.mdx
│ │ │ │ │ ├── Promise.mdx
│ │ │ │ │ ├── all.mdx
│ │ │ │ │ ├── allSettled.mdx
│ │ │ │ │ ├── any.mdx
│ │ │ │ │ ├── prototype/
│ │ │ │ │ │ ├── catch.mdx
│ │ │ │ │ │ ├── finally.mdx
│ │ │ │ │ │ └── then.mdx
│ │ │ │ │ ├── race.mdx
│ │ │ │ │ ├── reject.mdx
│ │ │ │ │ └── resolve.mdx
│ │ │ │ ├── Proxy/
│ │ │ │ │ ├── Proxy.mdx
│ │ │ │ │ ├── proxy/
│ │ │ │ │ │ ├── apply.mdx
│ │ │ │ │ │ ├── construct.mdx
│ │ │ │ │ │ ├── defineProperty.mdx
│ │ │ │ │ │ ├── deleteProperty.mdx
│ │ │ │ │ │ ├── get.mdx
│ │ │ │ │ │ ├── getOwnPropertyDescriptor.mdx
│ │ │ │ │ │ ├── getPrototypeOf.mdx
│ │ │ │ │ │ ├── has.mdx
│ │ │ │ │ │ ├── isExtensible.mdx
│ │ │ │ │ │ ├── ownKeys.mdx
│ │ │ │ │ │ ├── preventExtensions.mdx
│ │ │ │ │ │ ├── set.mdx
│ │ │ │ │ │ └── setPrototypeOf.mdx
│ │ │ │ │ └── revocable.mdx
│ │ │ │ ├── RangeError/
│ │ │ │ │ └── RangeError.mdx
│ │ │ │ ├── ReadableByteStreamController/
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── byobRequest.mdx
│ │ │ │ │ ├── close.mdx
│ │ │ │ │ ├── desiredSize.mdx
│ │ │ │ │ ├── enqueue.mdx
│ │ │ │ │ └── error.mdx
│ │ │ │ ├── ReadableStream/
│ │ │ │ │ ├── ReadableStream.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── cancel.mdx
│ │ │ │ │ ├── getReader.mdx
│ │ │ │ │ ├── locked.mdx
│ │ │ │ │ ├── pipeThrough.mdx
│ │ │ │ │ ├── pipeTo.mdx
│ │ │ │ │ └── tee.mdx
│ │ │ │ ├── ReadableStreamBYOBReader/
│ │ │ │ │ ├── ReadableStreamBYOBReader.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── cancel.mdx
│ │ │ │ │ ├── closed.mdx
│ │ │ │ │ ├── read.mdx
│ │ │ │ │ └── releaseLock.mdx
│ │ │ │ ├── ReadableStreamBYOBRequest/
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── respond.mdx
│ │ │ │ │ ├── respondWithNewView.mdx
│ │ │ │ │ └── view.mdx
│ │ │ │ ├── ReadableStreamDefaultController/
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── close.mdx
│ │ │ │ │ ├── desiredSize.mdx
│ │ │ │ │ ├── enqueue.mdx
│ │ │ │ │ └── error.mdx
│ │ │ │ ├── ReadableStreamDefaultReader/
│ │ │ │ │ ├── ReadableStreamDefaultReader.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── cancel.mdx
│ │ │ │ │ ├── closed.mdx
│ │ │ │ │ ├── read.mdx
│ │ │ │ │ └── releaseLock.mdx
│ │ │ │ ├── ReferenceError/
│ │ │ │ │ └── ReferenceError.mdx
│ │ │ │ ├── Reflect/
│ │ │ │ │ ├── apply.mdx
│ │ │ │ │ ├── construct.mdx
│ │ │ │ │ ├── defineProperty.mdx
│ │ │ │ │ ├── deleteProperty.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── getOwnPropertyDescriptor.mdx
│ │ │ │ │ ├── getPrototypeOf.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ ├── isExtensible.mdx
│ │ │ │ │ ├── ownKeys.mdx
│ │ │ │ │ ├── preventExtensions.mdx
│ │ │ │ │ ├── set.mdx
│ │ │ │ │ └── setPrototypeOf.mdx
│ │ │ │ ├── Request/
│ │ │ │ │ ├── Request.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── arrayBuffer.mdx
│ │ │ │ │ ├── blob.mdx
│ │ │ │ │ ├── body.mdx
│ │ │ │ │ ├── bodyUsed.mdx
│ │ │ │ │ ├── clone.mdx
│ │ │ │ │ ├── formData.mdx
│ │ │ │ │ ├── headers.mdx
│ │ │ │ │ ├── json.mdx
│ │ │ │ │ ├── method.mdx
│ │ │ │ │ ├── setManualFramingHeaders.mdx
│ │ │ │ │ ├── text.mdx
│ │ │ │ │ └── url.mdx
│ │ │ │ ├── Response/
│ │ │ │ │ ├── Response.mdx
│ │ │ │ │ ├── prototype/
│ │ │ │ │ │ ├── arrayBuffer.mdx
│ │ │ │ │ │ ├── blob.mdx
│ │ │ │ │ │ ├── body.mdx
│ │ │ │ │ │ ├── bodyUsed.mdx
│ │ │ │ │ │ ├── formData.mdx
│ │ │ │ │ │ ├── headers.mdx
│ │ │ │ │ │ ├── ip.mdx
│ │ │ │ │ │ ├── json.mdx
│ │ │ │ │ │ ├── ok.mdx
│ │ │ │ │ │ ├── port.mdx
│ │ │ │ │ │ ├── setManualFramingHeaders.mdx
│ │ │ │ │ │ ├── status.mdx
│ │ │ │ │ │ ├── statusText.mdx
│ │ │ │ │ │ ├── text.mdx
│ │ │ │ │ │ └── url.mdx
│ │ │ │ │ └── redirect.mdx
│ │ │ │ ├── RsaHashedImportParams/
│ │ │ │ │ └── RsaHashedImportParams.mdx
│ │ │ │ ├── Set/
│ │ │ │ │ ├── @@species.mdx
│ │ │ │ │ ├── Set.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── @@iterator.mdx
│ │ │ │ │ ├── add.mdx
│ │ │ │ │ ├── clear.mdx
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ ├── entries.mdx
│ │ │ │ │ ├── forEach.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ ├── keys.mdx
│ │ │ │ │ ├── size.mdx
│ │ │ │ │ └── values.mdx
│ │ │ │ ├── String/
│ │ │ │ │ ├── String.mdx
│ │ │ │ │ ├── fromCharCode.mdx
│ │ │ │ │ ├── fromCodePoint.mdx
│ │ │ │ │ ├── prototype/
│ │ │ │ │ │ ├── @@iterator.mdx
│ │ │ │ │ │ ├── at.mdx
│ │ │ │ │ │ ├── charAt.mdx
│ │ │ │ │ │ ├── charCodeAt.mdx
│ │ │ │ │ │ ├── codePointAt.mdx
│ │ │ │ │ │ ├── concat.mdx
│ │ │ │ │ │ ├── endsWith.mdx
│ │ │ │ │ │ ├── includes.mdx
│ │ │ │ │ │ ├── indexOf.mdx
│ │ │ │ │ │ ├── lastIndexOf.mdx
│ │ │ │ │ │ ├── length.mdx
│ │ │ │ │ │ ├── localeCompare.mdx
│ │ │ │ │ │ ├── match.mdx
│ │ │ │ │ │ ├── matchAll.mdx
│ │ │ │ │ │ ├── padEnd.mdx
│ │ │ │ │ │ ├── padStart.mdx
│ │ │ │ │ │ ├── repeat.mdx
│ │ │ │ │ │ ├── replace.mdx
│ │ │ │ │ │ ├── replaceAll.mdx
│ │ │ │ │ │ ├── search.mdx
│ │ │ │ │ │ ├── slice.mdx
│ │ │ │ │ │ ├── split.mdx
│ │ │ │ │ │ ├── startsWith.mdx
│ │ │ │ │ │ ├── substr.mdx
│ │ │ │ │ │ ├── substring.mdx
│ │ │ │ │ │ ├── toLocaleLowerCase.mdx
│ │ │ │ │ │ ├── toLocaleUpperCase.mdx
│ │ │ │ │ │ ├── toLowerCase.mdx
│ │ │ │ │ │ ├── toString.mdx
│ │ │ │ │ │ ├── toUpperCase.mdx
│ │ │ │ │ │ ├── trim.mdx
│ │ │ │ │ │ ├── trimEnd.mdx
│ │ │ │ │ │ ├── trimStart.mdx
│ │ │ │ │ │ └── valueOf.mdx
│ │ │ │ │ └── raw.mdx
│ │ │ │ ├── SubtleCrypto/
│ │ │ │ │ ├── SubtleCrypto.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── digest.mdx
│ │ │ │ │ ├── importKey.mdx
│ │ │ │ │ ├── sign.mdx
│ │ │ │ │ └── verify.mdx
│ │ │ │ ├── Symbol/
│ │ │ │ │ ├── Symbol.mdx
│ │ │ │ │ ├── asyncIterator.mdx
│ │ │ │ │ ├── for.mdx
│ │ │ │ │ ├── hasInstance.mdx
│ │ │ │ │ ├── isConcatSpreadable.mdx
│ │ │ │ │ ├── iterator.mdx
│ │ │ │ │ ├── keyFor.mdx
│ │ │ │ │ ├── match.mdx
│ │ │ │ │ ├── matchAll.mdx
│ │ │ │ │ ├── prototype/
│ │ │ │ │ │ ├── @@toPrimitive.mdx
│ │ │ │ │ │ ├── description.mdx
│ │ │ │ │ │ ├── toString.mdx
│ │ │ │ │ │ └── valueOf.mdx
│ │ │ │ │ ├── replace.mdx
│ │ │ │ │ ├── search.mdx
│ │ │ │ │ ├── species.mdx
│ │ │ │ │ ├── split.mdx
│ │ │ │ │ ├── toPrimitive.mdx
│ │ │ │ │ ├── toStringTag.mdx
│ │ │ │ │ └── unscopables.mdx
│ │ │ │ ├── SyntaxError/
│ │ │ │ │ └── SyntaxError.mdx
│ │ │ │ ├── TextDecoder/
│ │ │ │ │ ├── TextDecoder.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── decode.mdx
│ │ │ │ │ ├── encoding.mdx
│ │ │ │ │ ├── fatal.mdx
│ │ │ │ │ └── ignoreBOM.mdx
│ │ │ │ ├── TextEncoder/
│ │ │ │ │ ├── TextEncoder.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── encode.mdx
│ │ │ │ │ └── encoding.mdx
│ │ │ │ ├── TransformStream/
│ │ │ │ │ ├── TransformStream.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── readable.mdx
│ │ │ │ │ └── writable.mdx
│ │ │ │ ├── TransformStreamDefaultController/
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── desiredSize.mdx
│ │ │ │ │ ├── enqueue.mdx
│ │ │ │ │ ├── error.mdx
│ │ │ │ │ └── terminate.mdx
│ │ │ │ ├── TypeError/
│ │ │ │ │ └── TypeError.mdx
│ │ │ │ ├── URIError/
│ │ │ │ │ └── URIError.mdx
│ │ │ │ ├── URL/
│ │ │ │ │ ├── URL.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── hash.mdx
│ │ │ │ │ ├── host.mdx
│ │ │ │ │ ├── hostname.mdx
│ │ │ │ │ ├── href.mdx
│ │ │ │ │ ├── origin.mdx
│ │ │ │ │ ├── password.mdx
│ │ │ │ │ ├── pathname.mdx
│ │ │ │ │ ├── port.mdx
│ │ │ │ │ ├── protocol.mdx
│ │ │ │ │ ├── search.mdx
│ │ │ │ │ ├── searchParams.mdx
│ │ │ │ │ ├── toJSON.mdx
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ └── username.mdx
│ │ │ │ ├── URLSearchParams/
│ │ │ │ │ ├── URLSearchParams.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── append.mdx
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ ├── entries.mdx
│ │ │ │ │ ├── forEach.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ ├── keys.mdx
│ │ │ │ │ ├── set.mdx
│ │ │ │ │ ├── sort.mdx
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ └── values.mdx
│ │ │ │ ├── Uint16Array/
│ │ │ │ │ └── Uint16Array.mdx
│ │ │ │ ├── Uint32Array/
│ │ │ │ │ └── Uint32Array.mdx
│ │ │ │ ├── Uint8Array/
│ │ │ │ │ └── Uint8Array.mdx
│ │ │ │ ├── Uint8ClampedArray/
│ │ │ │ │ └── Uint8ClampedArray.mdx
│ │ │ │ ├── WeakMap/
│ │ │ │ │ ├── WeakMap.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ └── set.mdx
│ │ │ │ ├── WeakRef/
│ │ │ │ │ ├── WeakRef.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ └── deref.mdx
│ │ │ │ ├── WeakSet/
│ │ │ │ │ ├── WeakSet.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── add.mdx
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ └── has.mdx
│ │ │ │ ├── WorkerLocation/
│ │ │ │ │ ├── WorkerLocation.mdx
│ │ │ │ │ ├── hash.mdx
│ │ │ │ │ ├── host.mdx
│ │ │ │ │ ├── hostname.mdx
│ │ │ │ │ ├── href.mdx
│ │ │ │ │ ├── origin.mdx
│ │ │ │ │ ├── pathname.mdx
│ │ │ │ │ ├── port.mdx
│ │ │ │ │ ├── protocol.mdx
│ │ │ │ │ ├── search.mdx
│ │ │ │ │ └── toString.mdx
│ │ │ │ ├── WritableStream/
│ │ │ │ │ ├── WritableStream.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── abort.mdx
│ │ │ │ │ ├── getWriter.mdx
│ │ │ │ │ └── locked.mdx
│ │ │ │ ├── WritableStreamDefaultController/
│ │ │ │ │ └── error.mdx
│ │ │ │ ├── WritableStreamDefaultWriter/
│ │ │ │ │ ├── WritableStreamDefaultWriter.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── abort.mdx
│ │ │ │ │ ├── close.mdx
│ │ │ │ │ ├── closed.mdx
│ │ │ │ │ ├── desiredSize.mdx
│ │ │ │ │ ├── ready.mdx
│ │ │ │ │ ├── releaseLock.mdx
│ │ │ │ │ └── write.mdx
│ │ │ │ ├── atob.mdx
│ │ │ │ ├── btoa.mdx
│ │ │ │ ├── clearInterval.mdx
│ │ │ │ ├── clearTimeout.mdx
│ │ │ │ ├── console/
│ │ │ │ │ ├── assert.mdx
│ │ │ │ │ ├── clear.mdx
│ │ │ │ │ ├── count.mdx
│ │ │ │ │ ├── countReset.mdx
│ │ │ │ │ ├── debug.mdx
│ │ │ │ │ ├── dir.mdx
│ │ │ │ │ ├── dirxml.mdx
│ │ │ │ │ ├── error.mdx
│ │ │ │ │ ├── group.mdx
│ │ │ │ │ ├── groupCollapsed.mdx
│ │ │ │ │ ├── groupEnd.mdx
│ │ │ │ │ ├── info.mdx
│ │ │ │ │ ├── log.mdx
│ │ │ │ │ ├── time.mdx
│ │ │ │ │ ├── timeEnd.mdx
│ │ │ │ │ ├── timeLog.mdx
│ │ │ │ │ ├── trace.mdx
│ │ │ │ │ └── warn.mdx
│ │ │ │ ├── crypto/
│ │ │ │ │ ├── getRandomValues.mdx
│ │ │ │ │ ├── randomUUID.mdx
│ │ │ │ │ └── subtle.mdx
│ │ │ │ ├── decodeURI.mdx
│ │ │ │ ├── decodeURIComponent.mdx
│ │ │ │ ├── encodeURI.mdx
│ │ │ │ ├── encodeURIComponent.mdx
│ │ │ │ ├── escape.mdx
│ │ │ │ ├── eval.mdx
│ │ │ │ ├── fetch.mdx
│ │ │ │ ├── globalThis.mdx
│ │ │ │ ├── isFinite.mdx
│ │ │ │ ├── isNaN.mdx
│ │ │ │ ├── location.mdx
│ │ │ │ ├── parseFloat.mdx
│ │ │ │ ├── parseInt.mdx
│ │ │ │ ├── performance/
│ │ │ │ │ ├── now.mdx
│ │ │ │ │ └── timeOrigin.mdx
│ │ │ │ ├── setInterval.mdx
│ │ │ │ ├── setTimeout.mdx
│ │ │ │ ├── structuredClone.mdx
│ │ │ │ ├── undefined.mdx
│ │ │ │ └── unescape.mdx
│ │ │ ├── html-rewriter/
│ │ │ │ ├── Element/
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── after.mdx
│ │ │ │ │ ├── append.mdx
│ │ │ │ │ ├── before.mdx
│ │ │ │ │ ├── hasAttribute.mdx
│ │ │ │ │ ├── prepend.mdx
│ │ │ │ │ ├── removeAttribute.mdx
│ │ │ │ │ ├── replaceChildren.mdx
│ │ │ │ │ ├── replaceWith.mdx
│ │ │ │ │ ├── selector.mdx
│ │ │ │ │ ├── setAttribute.mdx
│ │ │ │ │ └── tag.mdx
│ │ │ │ └── HTMLRewritingStream/
│ │ │ │ ├── HTMLRewritingStream.mdx
│ │ │ │ └── prototype/
│ │ │ │ └── onElement.mdx
│ │ │ ├── image-optimizer/
│ │ │ │ ├── Auto.mdx
│ │ │ │ ├── BWAlgorithm.mdx
│ │ │ │ ├── CropMode.mdx
│ │ │ │ ├── Disable.mdx
│ │ │ │ ├── Enable.mdx
│ │ │ │ ├── Fit.mdx
│ │ │ │ ├── Format.mdx
│ │ │ │ ├── Metadata.mdx
│ │ │ │ ├── Optimize.mdx
│ │ │ │ ├── Orient.mdx
│ │ │ │ ├── Profile.mdx
│ │ │ │ ├── Region.mdx
│ │ │ │ ├── ResizeFilter.mdx
│ │ │ │ └── imageOptimizerOptions.mdx
│ │ │ ├── index.mdx
│ │ │ ├── kv-store/
│ │ │ │ ├── KVStore/
│ │ │ │ │ ├── KVStore.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── list.mdx
│ │ │ │ │ └── put.mdx
│ │ │ │ └── KVStoreEntry/
│ │ │ │ └── prototype/
│ │ │ │ ├── arrayBuffer.mdx
│ │ │ │ ├── body.mdx
│ │ │ │ ├── bodyUsed.mdx
│ │ │ │ ├── json.mdx
│ │ │ │ ├── metadata.mdx
│ │ │ │ ├── metadataText.mdx
│ │ │ │ └── text.mdx
│ │ │ ├── logger/
│ │ │ │ ├── Logger/
│ │ │ │ │ ├── Logger.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ └── log.mdx
│ │ │ │ └── configureConsole.mdx
│ │ │ ├── migration-guide/
│ │ │ │ └── index.mdx
│ │ │ ├── secret-store/
│ │ │ │ ├── SecretStore/
│ │ │ │ │ ├── SecretStore.mdx
│ │ │ │ │ ├── fromBytes.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ └── get.mdx
│ │ │ │ └── SecretStoreEntry/
│ │ │ │ └── prototype/
│ │ │ │ ├── plaintext.mdx
│ │ │ │ └── rawBytes.mdx
│ │ │ ├── security/
│ │ │ │ └── inspect.mdx
│ │ │ ├── shielding/
│ │ │ │ └── Shield/
│ │ │ │ ├── Shield.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── encryptedBackend.mdx
│ │ │ │ ├── runningOn.mdx
│ │ │ │ └── unencryptedBackend.mdx
│ │ │ └── websocket/
│ │ │ └── createWebsocketHandoff.mdx
│ │ ├── version-3.39.0/
│ │ │ ├── acl/
│ │ │ │ └── Acl/
│ │ │ │ ├── open.mdx
│ │ │ │ └── prototype/
│ │ │ │ └── lookup.mdx
│ │ │ ├── backend/
│ │ │ │ ├── Backend/
│ │ │ │ │ ├── Backend.mdx
│ │ │ │ │ ├── exists.mdx
│ │ │ │ │ ├── fromName.mdx
│ │ │ │ │ ├── health.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── betweenBytesTimeout.mdx
│ │ │ │ │ ├── connectTimeout.mdx
│ │ │ │ │ ├── firstByteTimeout.mdx
│ │ │ │ │ ├── health.mdx
│ │ │ │ │ ├── hostOverride.mdx
│ │ │ │ │ ├── httpKeepaliveTime.mdx
│ │ │ │ │ ├── isDynamic.mdx
│ │ │ │ │ ├── isSSL.mdx
│ │ │ │ │ ├── name.mdx
│ │ │ │ │ ├── port.mdx
│ │ │ │ │ ├── target.mdx
│ │ │ │ │ ├── tcpKeepalive.mdx
│ │ │ │ │ ├── tlsMaxVersion.mdx
│ │ │ │ │ ├── tlsMinVersion.mdx
│ │ │ │ │ ├── toName.mdx
│ │ │ │ │ └── toString.mdx
│ │ │ │ ├── allowDynamicBackends.mdx
│ │ │ │ ├── enforceExplicitBackends.mdx
│ │ │ │ └── setDefaultDynamicBackendConfig.mdx
│ │ │ ├── cache/
│ │ │ │ ├── CacheEntry/
│ │ │ │ │ ├── age.mdx
│ │ │ │ │ ├── body.mdx
│ │ │ │ │ ├── close.mdx
│ │ │ │ │ ├── hits.mdx
│ │ │ │ │ ├── length.mdx
│ │ │ │ │ ├── maxAge.mdx
│ │ │ │ │ ├── staleWhileRevalidate.mdx
│ │ │ │ │ ├── state.mdx
│ │ │ │ │ └── userMetadata.mdx
│ │ │ │ ├── CacheState/
│ │ │ │ │ ├── found.mdx
│ │ │ │ │ ├── mustInsertOrUpdate.mdx
│ │ │ │ │ ├── stale.mdx
│ │ │ │ │ └── usable.mdx
│ │ │ │ ├── CoreCache/
│ │ │ │ │ ├── insert.mdx
│ │ │ │ │ ├── lookup.mdx
│ │ │ │ │ └── transactionLookup.mdx
│ │ │ │ ├── SimpleCache/
│ │ │ │ │ ├── SimpleCache.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── getOrSet.mdx
│ │ │ │ │ └── purge.mdx
│ │ │ │ ├── SimpleCacheEntry/
│ │ │ │ │ ├── arrayBuffer.mdx
│ │ │ │ │ ├── body.mdx
│ │ │ │ │ ├── bodyUsed.mdx
│ │ │ │ │ ├── json.mdx
│ │ │ │ │ └── text.mdx
│ │ │ │ └── TransactionCacheEntry/
│ │ │ │ ├── age.mdx
│ │ │ │ ├── body.mdx
│ │ │ │ ├── cancel.mdx
│ │ │ │ ├── close.mdx
│ │ │ │ ├── hits.mdx
│ │ │ │ ├── insert.mdx
│ │ │ │ ├── insertAndStreamBack.mdx
│ │ │ │ ├── length.mdx
│ │ │ │ ├── maxAge.mdx
│ │ │ │ ├── staleWhileRevalidate.mdx
│ │ │ │ ├── state.mdx
│ │ │ │ ├── update.mdx
│ │ │ │ └── userMetadata.mdx
│ │ │ ├── cache-override/
│ │ │ │ └── CacheOverride/
│ │ │ │ └── CacheOverride.mdx
│ │ │ ├── compute/
│ │ │ │ ├── purgeSurrogateKey.mdx
│ │ │ │ └── vCpuTime.mdx
│ │ │ ├── config-store/
│ │ │ │ └── ConfigStore/
│ │ │ │ ├── ConfigStore.mdx
│ │ │ │ └── prototype/
│ │ │ │ └── get.mdx
│ │ │ ├── device/
│ │ │ │ └── Device/
│ │ │ │ ├── lookup.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── brand.mdx
│ │ │ │ ├── hardwareType.mdx
│ │ │ │ ├── isBot.mdx
│ │ │ │ ├── isDesktop.mdx
│ │ │ │ ├── isGameConsole.mdx
│ │ │ │ ├── isMediaPlayer.mdx
│ │ │ │ ├── isMobile.mdx
│ │ │ │ ├── isSmartTV.mdx
│ │ │ │ ├── isTablet.mdx
│ │ │ │ ├── isTouchscreen.mdx
│ │ │ │ ├── model.mdx
│ │ │ │ ├── name.mdx
│ │ │ │ └── toJSON.mdx
│ │ │ ├── dictionary/
│ │ │ │ └── Dictionary/
│ │ │ │ ├── Dictionary.mdx
│ │ │ │ └── prototype/
│ │ │ │ └── get.mdx
│ │ │ ├── edge-rate-limiter/
│ │ │ │ ├── EdgeRateLimiter/
│ │ │ │ │ ├── EdgeRateLimiter.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ └── checkRate.mdx
│ │ │ │ ├── PenaltyBox/
│ │ │ │ │ ├── PenaltyBox.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── add.mdx
│ │ │ │ │ └── has.mdx
│ │ │ │ └── RateCounter/
│ │ │ │ ├── RateCounter.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── increment.mdx
│ │ │ │ ├── lookupCount.mdx
│ │ │ │ └── lookupRate.mdx
│ │ │ ├── env/
│ │ │ │ └── env.mdx
│ │ │ ├── experimental/
│ │ │ │ ├── allowDynamicBackends.mdx
│ │ │ │ ├── includeBytes.mdx
│ │ │ │ ├── mapAndLogError.mdx
│ │ │ │ ├── mapError.mdx
│ │ │ │ └── sdkVersion.mdx
│ │ │ ├── fanout/
│ │ │ │ └── createFanoutHandoff.mdx
│ │ │ ├── geolocation/
│ │ │ │ └── getGeolocationForIpAddress.mdx
│ │ │ ├── globals/
│ │ │ │ ├── AggregrateError/
│ │ │ │ │ └── AggregrateError.mdx
│ │ │ │ ├── Array/
│ │ │ │ │ ├── @@species.mdx
│ │ │ │ │ ├── Array.mdx
│ │ │ │ │ ├── from.mdx
│ │ │ │ │ ├── isArray.mdx
│ │ │ │ │ ├── of.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── @@iterator.mdx
│ │ │ │ │ ├── @@unscopables.mdx
│ │ │ │ │ ├── at.mdx
│ │ │ │ │ ├── concat.mdx
│ │ │ │ │ ├── copyWithin.mdx
│ │ │ │ │ ├── entries.mdx
│ │ │ │ │ ├── every.mdx
│ │ │ │ │ ├── fill.mdx
│ │ │ │ │ ├── filter.mdx
│ │ │ │ │ ├── find.mdx
│ │ │ │ │ ├── findIndex.mdx
│ │ │ │ │ ├── flat.mdx
│ │ │ │ │ ├── flatMap.mdx
│ │ │ │ │ ├── forEach.mdx
│ │ │ │ │ ├── includes.mdx
│ │ │ │ │ ├── indexOf.mdx
│ │ │ │ │ ├── join.mdx
│ │ │ │ │ ├── keys.mdx
│ │ │ │ │ ├── lastIndexOf.mdx
│ │ │ │ │ ├── length.mdx
│ │ │ │ │ ├── map.mdx
│ │ │ │ │ ├── pop.mdx
│ │ │ │ │ ├── push.mdx
│ │ │ │ │ ├── reduce.mdx
│ │ │ │ │ ├── reduceRight.mdx
│ │ │ │ │ ├── reverse.mdx
│ │ │ │ │ ├── shift.mdx
│ │ │ │ │ ├── slice.mdx
│ │ │ │ │ ├── some.mdx
│ │ │ │ │ ├── sort.mdx
│ │ │ │ │ ├── splice.mdx
│ │ │ │ │ ├── toLocaleString.mdx
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ ├── unshift.mdx
│ │ │ │ │ └── values.mdx
│ │ │ │ ├── ArrayBuffer/
│ │ │ │ │ ├── @@species.mdx
│ │ │ │ │ ├── ArrayBuffer.mdx
│ │ │ │ │ ├── isView.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── byteLength.mdx
│ │ │ │ │ └── slice.mdx
│ │ │ │ ├── BigInt/
│ │ │ │ │ ├── BigInt.mdx
│ │ │ │ │ ├── asIntN.mdx
│ │ │ │ │ ├── asUintN.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── toLocaleString.mdx
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ └── valueOf.mdx
│ │ │ │ ├── BigInt64Array/
│ │ │ │ │ └── BigInt64Array.mdx
│ │ │ │ ├── BigUint64Array/
│ │ │ │ │ └── BigUint64Array.mdx
│ │ │ │ ├── Blob/
│ │ │ │ │ ├── Blob.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── arrayBuffer.mdx
│ │ │ │ │ ├── size.mdx
│ │ │ │ │ ├── slice.mdx
│ │ │ │ │ ├── stream.mdx
│ │ │ │ │ ├── text.mdx
│ │ │ │ │ └── type.mdx
│ │ │ │ ├── Boolean/
│ │ │ │ │ ├── Boolean.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ └── valueOf.mdx
│ │ │ │ ├── ByteLengthQueuingStrategy/
│ │ │ │ │ ├── ByteLengthQueuingStrategy.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ └── size.mdx
│ │ │ │ ├── CompressionStream/
│ │ │ │ │ ├── CompressionStream.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── readable.mdx
│ │ │ │ │ └── writable.mdx
│ │ │ │ ├── CryptoKey/
│ │ │ │ │ ├── CryptoKey.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── algorithm.mdx
│ │ │ │ │ ├── extractable.mdx
│ │ │ │ │ ├── type.mdx
│ │ │ │ │ └── usages.mdx
│ │ │ │ ├── DOMException/
│ │ │ │ │ ├── DOMException.mdx
│ │ │ │ │ ├── code.mdx
│ │ │ │ │ ├── message.mdx
│ │ │ │ │ └── name.mdx
│ │ │ │ ├── DataView/
│ │ │ │ │ ├── DataView.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── buffer.mdx
│ │ │ │ │ ├── byteLength.mdx
│ │ │ │ │ ├── byteOffset.mdx
│ │ │ │ │ ├── getBigInt64.mdx
│ │ │ │ │ ├── getBigUint64.mdx
│ │ │ │ │ ├── getFloat32.mdx
│ │ │ │ │ ├── getFloat64.mdx
│ │ │ │ │ ├── getInt16.mdx
│ │ │ │ │ ├── getInt32.mdx
│ │ │ │ │ ├── getInt8.mdx
│ │ │ │ │ ├── getUint16.mdx
│ │ │ │ │ ├── getUint32.mdx
│ │ │ │ │ ├── getUint8.mdx
│ │ │ │ │ ├── setBigInt64.mdx
│ │ │ │ │ ├── setBigUint64.mdx
│ │ │ │ │ ├── setFloat32.mdx
│ │ │ │ │ ├── setFloat64.mdx
│ │ │ │ │ ├── setInt16.mdx
│ │ │ │ │ ├── setInt32.mdx
│ │ │ │ │ ├── setInt8.mdx
│ │ │ │ │ ├── setUint16.mdx
│ │ │ │ │ ├── setUint32.mdx
│ │ │ │ │ └── setUint8.mdx
│ │ │ │ ├── Date/
│ │ │ │ │ ├── Date.mdx
│ │ │ │ │ ├── UTC.mdx
│ │ │ │ │ ├── now.mdx
│ │ │ │ │ ├── parse.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── @@toPrimitive.mdx
│ │ │ │ │ ├── getDate.mdx
│ │ │ │ │ ├── getDay.mdx
│ │ │ │ │ ├── getFullYear.mdx
│ │ │ │ │ ├── getHours.mdx
│ │ │ │ │ ├── getMilliseconds.mdx
│ │ │ │ │ ├── getMinutes.mdx
│ │ │ │ │ ├── getMonth.mdx
│ │ │ │ │ ├── getSeconds.mdx
│ │ │ │ │ ├── getTime.mdx
│ │ │ │ │ ├── getTimezoneOffset.mdx
│ │ │ │ │ ├── getUTCDate.mdx
│ │ │ │ │ ├── getUTCDay.mdx
│ │ │ │ │ ├── getUTCFullYear.mdx
│ │ │ │ │ ├── getUTCHours.mdx
│ │ │ │ │ ├── getUTCMilliseconds.mdx
│ │ │ │ │ ├── getUTCMinutes.mdx
│ │ │ │ │ ├── getUTCMonth.mdx
│ │ │ │ │ ├── getUTCSeconds.mdx
│ │ │ │ │ ├── getYear.mdx
│ │ │ │ │ ├── setDate.mdx
│ │ │ │ │ ├── setFullYear.mdx
│ │ │ │ │ ├── setHours.mdx
│ │ │ │ │ ├── setMilliseconds.mdx
│ │ │ │ │ ├── setMinutes.mdx
│ │ │ │ │ ├── setMonth.mdx
│ │ │ │ │ ├── setSeconds.mdx
│ │ │ │ │ ├── setTime.mdx
│ │ │ │ │ ├── setUTCDate.mdx
│ │ │ │ │ ├── setUTCFullYear.mdx
│ │ │ │ │ ├── setUTCHours.mdx
│ │ │ │ │ ├── setUTCMilliseconds.mdx
│ │ │ │ │ ├── setUTCMinutes.mdx
│ │ │ │ │ ├── setUTCMonth.mdx
│ │ │ │ │ ├── setUTCSeconds.mdx
│ │ │ │ │ ├── setYear.mdx
│ │ │ │ │ ├── toDateString.mdx
│ │ │ │ │ ├── toISOString.mdx
│ │ │ │ │ ├── toJSON.mdx
│ │ │ │ │ ├── toLocaleDateString.mdx
│ │ │ │ │ ├── toLocaleString.mdx
│ │ │ │ │ ├── toLocaleTimeString.mdx
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ ├── toTimeString.mdx
│ │ │ │ │ ├── toUTCString.mdx
│ │ │ │ │ └── valueOf.mdx
│ │ │ │ ├── DecompressionStream/
│ │ │ │ │ ├── DecompressionStream.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── readable.mdx
│ │ │ │ │ └── writable.mdx
│ │ │ │ ├── EcKeyImportParams/
│ │ │ │ │ └── EcKeyImportParams.mdx
│ │ │ │ ├── EcdsaParams/
│ │ │ │ │ └── EcdsaParams.mdx
│ │ │ │ ├── Error/
│ │ │ │ │ ├── Error.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── cause.mdx
│ │ │ │ │ ├── message.mdx
│ │ │ │ │ ├── name.mdx
│ │ │ │ │ └── toString.mdx
│ │ │ │ ├── EvalError/
│ │ │ │ │ └── EvalError.mdx
│ │ │ │ ├── FetchEvent/
│ │ │ │ │ ├── FetchEvent.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── respondWith.mdx
│ │ │ │ │ ├── sendEarlyHints.mdx
│ │ │ │ │ └── waitUntil.mdx
│ │ │ │ ├── FinalizationRegistry/
│ │ │ │ │ ├── FinalizationRegistry.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── register.mdx
│ │ │ │ │ └── unregister.mdx
│ │ │ │ ├── Float32Array/
│ │ │ │ │ └── Float32Array.mdx
│ │ │ │ ├── Float64Array/
│ │ │ │ │ └── Float64Array.mdx
│ │ │ │ ├── FormData/
│ │ │ │ │ ├── FormData.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── append.mdx
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ ├── entries.mdx
│ │ │ │ │ ├── forEach.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── getAll.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ ├── keys.mdx
│ │ │ │ │ ├── set.mdx
│ │ │ │ │ └── values.mdx
│ │ │ │ ├── Function/
│ │ │ │ │ ├── Function.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── apply.mdx
│ │ │ │ │ ├── bind.mdx
│ │ │ │ │ ├── call.mdx
│ │ │ │ │ ├── index.mdx
│ │ │ │ │ ├── length.mdx
│ │ │ │ │ ├── name.mdx
│ │ │ │ │ └── toString.mdx
│ │ │ │ ├── Headers/
│ │ │ │ │ ├── Headers.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── append.mdx
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ ├── entries.mdx
│ │ │ │ │ ├── forEach.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── getSetCookie.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ ├── keys.mdx
│ │ │ │ │ ├── set.mdx
│ │ │ │ │ └── values.mdx
│ │ │ │ ├── HmacImportParams/
│ │ │ │ │ └── HmacImportParams.mdx
│ │ │ │ ├── Infinity.mdx
│ │ │ │ ├── Int16Array/
│ │ │ │ │ └── Int16Array.mdx
│ │ │ │ ├── Int32Array/
│ │ │ │ │ └── Int32Array.mdx
│ │ │ │ ├── Int8Array/
│ │ │ │ │ └── Int8Array.mdx
│ │ │ │ ├── JSON/
│ │ │ │ │ ├── parse.mdx
│ │ │ │ │ └── stringify.mdx
│ │ │ │ ├── Map/
│ │ │ │ │ ├── @@species.mdx
│ │ │ │ │ ├── Map.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── @@iterator.mdx
│ │ │ │ │ ├── clear.mdx
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ ├── entries.mdx
│ │ │ │ │ ├── forEach.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ ├── keys.mdx
│ │ │ │ │ ├── set.mdx
│ │ │ │ │ ├── size.mdx
│ │ │ │ │ └── values.mdx
│ │ │ │ ├── Math/
│ │ │ │ │ ├── E.mdx
│ │ │ │ │ ├── LN10.mdx
│ │ │ │ │ ├── LN2.mdx
│ │ │ │ │ ├── LOG10e.mdx
│ │ │ │ │ ├── LOG2e.mdx
│ │ │ │ │ ├── PI.mdx
│ │ │ │ │ ├── SQRT1_2.mdx
│ │ │ │ │ ├── SQRT2.mdx
│ │ │ │ │ ├── abs.mdx
│ │ │ │ │ ├── acos.mdx
│ │ │ │ │ ├── acosh.mdx
│ │ │ │ │ ├── asin.mdx
│ │ │ │ │ ├── asinh.mdx
│ │ │ │ │ ├── atan.mdx
│ │ │ │ │ ├── atan2.mdx
│ │ │ │ │ ├── atanh.mdx
│ │ │ │ │ ├── cbrt.mdx
│ │ │ │ │ ├── ceil.mdx
│ │ │ │ │ ├── clz32.mdx
│ │ │ │ │ ├── cos.mdx
│ │ │ │ │ ├── cosh.mdx
│ │ │ │ │ ├── exp.mdx
│ │ │ │ │ ├── expm1.mdx
│ │ │ │ │ ├── floor.mdx
│ │ │ │ │ ├── fround.mdx
│ │ │ │ │ ├── hypot.mdx
│ │ │ │ │ ├── imul.mdx
│ │ │ │ │ ├── log.mdx
│ │ │ │ │ ├── log10.mdx
│ │ │ │ │ ├── log1p.mdx
│ │ │ │ │ ├── log2.mdx
│ │ │ │ │ ├── max.mdx
│ │ │ │ │ ├── min.mdx
│ │ │ │ │ ├── pow.mdx
│ │ │ │ │ ├── random.mdx
│ │ │ │ │ ├── round.mdx
│ │ │ │ │ ├── sign.mdx
│ │ │ │ │ ├── sin.mdx
│ │ │ │ │ ├── sinh.mdx
│ │ │ │ │ ├── sqrt.mdx
│ │ │ │ │ ├── tan.mdx
│ │ │ │ │ ├── tanh.mdx
│ │ │ │ │ └── trunc.mdx
│ │ │ │ ├── NaN.mdx
│ │ │ │ ├── Number/
│ │ │ │ │ ├── MAX_SAFE_INTEGER.mdx
│ │ │ │ │ ├── MAX_VALUE.mdx
│ │ │ │ │ ├── MIN_SAFE_INTEGER.mdx
│ │ │ │ │ ├── MIN_VALUE.mdx
│ │ │ │ │ ├── NEGATIVE_INFINITY.mdx
│ │ │ │ │ ├── NaN.mdx
│ │ │ │ │ ├── Number.mdx
│ │ │ │ │ ├── POSITIVE_INFINITY.mdx
│ │ │ │ │ ├── epsilon.mdx
│ │ │ │ │ ├── isFinite.mdx
│ │ │ │ │ ├── isInteger.mdx
│ │ │ │ │ ├── isNaN.mdx
│ │ │ │ │ ├── isSafeInteger.mdx
│ │ │ │ │ ├── parseFloat.mdx
│ │ │ │ │ ├── parseInt.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── toExponential.mdx
│ │ │ │ │ ├── toFixed.mdx
│ │ │ │ │ ├── toLocaleString.mdx
│ │ │ │ │ ├── toPrecision.mdx
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ └── valueOf.mdx
│ │ │ │ ├── Object/
│ │ │ │ │ ├── Object.mdx
│ │ │ │ │ ├── assign.mdx
│ │ │ │ │ ├── create.mdx
│ │ │ │ │ ├── defineProperties.mdx
│ │ │ │ │ ├── defineProperty.mdx
│ │ │ │ │ ├── entries.mdx
│ │ │ │ │ ├── freeze.mdx
│ │ │ │ │ ├── fromEntries.mdx
│ │ │ │ │ ├── getOwnPropertyDescriptor.mdx
│ │ │ │ │ ├── getOwnPropertyDescriptors.mdx
│ │ │ │ │ ├── getOwnPropertyNames.mdx
│ │ │ │ │ ├── getOwnPropertySymbols.mdx
│ │ │ │ │ ├── getPrototypeOf.mdx
│ │ │ │ │ ├── hasOwn.mdx
│ │ │ │ │ ├── is.mdx
│ │ │ │ │ ├── isExtensible.mdx
│ │ │ │ │ ├── isFrozen.mdx
│ │ │ │ │ ├── isSealed.mdx
│ │ │ │ │ ├── keys.mdx
│ │ │ │ │ ├── preventExtensions.mdx
│ │ │ │ │ ├── prototype/
│ │ │ │ │ │ ├── constructor.mdx
│ │ │ │ │ │ ├── hasOwnProperty.mdx
│ │ │ │ │ │ ├── isPrototypeOf.mdx
│ │ │ │ │ │ ├── propertyIsEnumerable.mdx
│ │ │ │ │ │ ├── toLocaleString.mdx
│ │ │ │ │ │ ├── toString.mdx
│ │ │ │ │ │ └── valueOf.mdx
│ │ │ │ │ ├── seal.mdx
│ │ │ │ │ ├── setPrototypeOf.mdx
│ │ │ │ │ └── values.mdx
│ │ │ │ ├── Promise/
│ │ │ │ │ ├── @@species.mdx
│ │ │ │ │ ├── Promise.mdx
│ │ │ │ │ ├── all.mdx
│ │ │ │ │ ├── allSettled.mdx
│ │ │ │ │ ├── any.mdx
│ │ │ │ │ ├── prototype/
│ │ │ │ │ │ ├── catch.mdx
│ │ │ │ │ │ ├── finally.mdx
│ │ │ │ │ │ └── then.mdx
│ │ │ │ │ ├── race.mdx
│ │ │ │ │ ├── reject.mdx
│ │ │ │ │ └── resolve.mdx
│ │ │ │ ├── Proxy/
│ │ │ │ │ ├── Proxy.mdx
│ │ │ │ │ ├── proxy/
│ │ │ │ │ │ ├── apply.mdx
│ │ │ │ │ │ ├── construct.mdx
│ │ │ │ │ │ ├── defineProperty.mdx
│ │ │ │ │ │ ├── deleteProperty.mdx
│ │ │ │ │ │ ├── get.mdx
│ │ │ │ │ │ ├── getOwnPropertyDescriptor.mdx
│ │ │ │ │ │ ├── getPrototypeOf.mdx
│ │ │ │ │ │ ├── has.mdx
│ │ │ │ │ │ ├── isExtensible.mdx
│ │ │ │ │ │ ├── ownKeys.mdx
│ │ │ │ │ │ ├── preventExtensions.mdx
│ │ │ │ │ │ ├── set.mdx
│ │ │ │ │ │ └── setPrototypeOf.mdx
│ │ │ │ │ └── revocable.mdx
│ │ │ │ ├── RangeError/
│ │ │ │ │ └── RangeError.mdx
│ │ │ │ ├── ReadableByteStreamController/
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── byobRequest.mdx
│ │ │ │ │ ├── close.mdx
│ │ │ │ │ ├── desiredSize.mdx
│ │ │ │ │ ├── enqueue.mdx
│ │ │ │ │ └── error.mdx
│ │ │ │ ├── ReadableStream/
│ │ │ │ │ ├── ReadableStream.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── cancel.mdx
│ │ │ │ │ ├── getReader.mdx
│ │ │ │ │ ├── locked.mdx
│ │ │ │ │ ├── pipeThrough.mdx
│ │ │ │ │ ├── pipeTo.mdx
│ │ │ │ │ └── tee.mdx
│ │ │ │ ├── ReadableStreamBYOBReader/
│ │ │ │ │ ├── ReadableStreamBYOBReader.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── cancel.mdx
│ │ │ │ │ ├── closed.mdx
│ │ │ │ │ ├── read.mdx
│ │ │ │ │ └── releaseLock.mdx
│ │ │ │ ├── ReadableStreamBYOBRequest/
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── respond.mdx
│ │ │ │ │ ├── respondWithNewView.mdx
│ │ │ │ │ └── view.mdx
│ │ │ │ ├── ReadableStreamDefaultController/
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── close.mdx
│ │ │ │ │ ├── desiredSize.mdx
│ │ │ │ │ ├── enqueue.mdx
│ │ │ │ │ └── error.mdx
│ │ │ │ ├── ReadableStreamDefaultReader/
│ │ │ │ │ ├── ReadableStreamDefaultReader.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── cancel.mdx
│ │ │ │ │ ├── closed.mdx
│ │ │ │ │ ├── read.mdx
│ │ │ │ │ └── releaseLock.mdx
│ │ │ │ ├── ReferenceError/
│ │ │ │ │ └── ReferenceError.mdx
│ │ │ │ ├── Reflect/
│ │ │ │ │ ├── apply.mdx
│ │ │ │ │ ├── construct.mdx
│ │ │ │ │ ├── defineProperty.mdx
│ │ │ │ │ ├── deleteProperty.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── getOwnPropertyDescriptor.mdx
│ │ │ │ │ ├── getPrototypeOf.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ ├── isExtensible.mdx
│ │ │ │ │ ├── ownKeys.mdx
│ │ │ │ │ ├── preventExtensions.mdx
│ │ │ │ │ ├── set.mdx
│ │ │ │ │ └── setPrototypeOf.mdx
│ │ │ │ ├── Request/
│ │ │ │ │ ├── Request.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── arrayBuffer.mdx
│ │ │ │ │ ├── blob.mdx
│ │ │ │ │ ├── body.mdx
│ │ │ │ │ ├── bodyUsed.mdx
│ │ │ │ │ ├── clone.mdx
│ │ │ │ │ ├── formData.mdx
│ │ │ │ │ ├── headers.mdx
│ │ │ │ │ ├── json.mdx
│ │ │ │ │ ├── method.mdx
│ │ │ │ │ ├── setManualFramingHeaders.mdx
│ │ │ │ │ ├── text.mdx
│ │ │ │ │ └── url.mdx
│ │ │ │ ├── Response/
│ │ │ │ │ ├── Response.mdx
│ │ │ │ │ ├── prototype/
│ │ │ │ │ │ ├── arrayBuffer.mdx
│ │ │ │ │ │ ├── blob.mdx
│ │ │ │ │ │ ├── body.mdx
│ │ │ │ │ │ ├── bodyUsed.mdx
│ │ │ │ │ │ ├── formData.mdx
│ │ │ │ │ │ ├── headers.mdx
│ │ │ │ │ │ ├── ip.mdx
│ │ │ │ │ │ ├── json.mdx
│ │ │ │ │ │ ├── ok.mdx
│ │ │ │ │ │ ├── port.mdx
│ │ │ │ │ │ ├── setManualFramingHeaders.mdx
│ │ │ │ │ │ ├── status.mdx
│ │ │ │ │ │ ├── statusText.mdx
│ │ │ │ │ │ ├── text.mdx
│ │ │ │ │ │ └── url.mdx
│ │ │ │ │ └── redirect.mdx
│ │ │ │ ├── RsaHashedImportParams/
│ │ │ │ │ └── RsaHashedImportParams.mdx
│ │ │ │ ├── Set/
│ │ │ │ │ ├── @@species.mdx
│ │ │ │ │ ├── Set.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── @@iterator.mdx
│ │ │ │ │ ├── add.mdx
│ │ │ │ │ ├── clear.mdx
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ ├── entries.mdx
│ │ │ │ │ ├── forEach.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ ├── keys.mdx
│ │ │ │ │ ├── size.mdx
│ │ │ │ │ └── values.mdx
│ │ │ │ ├── String/
│ │ │ │ │ ├── String.mdx
│ │ │ │ │ ├── fromCharCode.mdx
│ │ │ │ │ ├── fromCodePoint.mdx
│ │ │ │ │ ├── prototype/
│ │ │ │ │ │ ├── @@iterator.mdx
│ │ │ │ │ │ ├── at.mdx
│ │ │ │ │ │ ├── charAt.mdx
│ │ │ │ │ │ ├── charCodeAt.mdx
│ │ │ │ │ │ ├── codePointAt.mdx
│ │ │ │ │ │ ├── concat.mdx
│ │ │ │ │ │ ├── endsWith.mdx
│ │ │ │ │ │ ├── includes.mdx
│ │ │ │ │ │ ├── indexOf.mdx
│ │ │ │ │ │ ├── lastIndexOf.mdx
│ │ │ │ │ │ ├── length.mdx
│ │ │ │ │ │ ├── localeCompare.mdx
│ │ │ │ │ │ ├── match.mdx
│ │ │ │ │ │ ├── matchAll.mdx
│ │ │ │ │ │ ├── padEnd.mdx
│ │ │ │ │ │ ├── padStart.mdx
│ │ │ │ │ │ ├── repeat.mdx
│ │ │ │ │ │ ├── replace.mdx
│ │ │ │ │ │ ├── replaceAll.mdx
│ │ │ │ │ │ ├── search.mdx
│ │ │ │ │ │ ├── slice.mdx
│ │ │ │ │ │ ├── split.mdx
│ │ │ │ │ │ ├── startsWith.mdx
│ │ │ │ │ │ ├── substr.mdx
│ │ │ │ │ │ ├── substring.mdx
│ │ │ │ │ │ ├── toLocaleLowerCase.mdx
│ │ │ │ │ │ ├── toLocaleUpperCase.mdx
│ │ │ │ │ │ ├── toLowerCase.mdx
│ │ │ │ │ │ ├── toString.mdx
│ │ │ │ │ │ ├── toUpperCase.mdx
│ │ │ │ │ │ ├── trim.mdx
│ │ │ │ │ │ ├── trimEnd.mdx
│ │ │ │ │ │ ├── trimStart.mdx
│ │ │ │ │ │ └── valueOf.mdx
│ │ │ │ │ └── raw.mdx
│ │ │ │ ├── SubtleCrypto/
│ │ │ │ │ ├── SubtleCrypto.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── digest.mdx
│ │ │ │ │ ├── importKey.mdx
│ │ │ │ │ ├── sign.mdx
│ │ │ │ │ └── verify.mdx
│ │ │ │ ├── Symbol/
│ │ │ │ │ ├── Symbol.mdx
│ │ │ │ │ ├── asyncIterator.mdx
│ │ │ │ │ ├── for.mdx
│ │ │ │ │ ├── hasInstance.mdx
│ │ │ │ │ ├── isConcatSpreadable.mdx
│ │ │ │ │ ├── iterator.mdx
│ │ │ │ │ ├── keyFor.mdx
│ │ │ │ │ ├── match.mdx
│ │ │ │ │ ├── matchAll.mdx
│ │ │ │ │ ├── prototype/
│ │ │ │ │ │ ├── @@toPrimitive.mdx
│ │ │ │ │ │ ├── description.mdx
│ │ │ │ │ │ ├── toString.mdx
│ │ │ │ │ │ └── valueOf.mdx
│ │ │ │ │ ├── replace.mdx
│ │ │ │ │ ├── search.mdx
│ │ │ │ │ ├── species.mdx
│ │ │ │ │ ├── split.mdx
│ │ │ │ │ ├── toPrimitive.mdx
│ │ │ │ │ ├── toStringTag.mdx
│ │ │ │ │ └── unscopables.mdx
│ │ │ │ ├── SyntaxError/
│ │ │ │ │ └── SyntaxError.mdx
│ │ │ │ ├── TextDecoder/
│ │ │ │ │ ├── TextDecoder.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── decode.mdx
│ │ │ │ │ ├── encoding.mdx
│ │ │ │ │ ├── fatal.mdx
│ │ │ │ │ └── ignoreBOM.mdx
│ │ │ │ ├── TextEncoder/
│ │ │ │ │ ├── TextEncoder.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── encode.mdx
│ │ │ │ │ └── encoding.mdx
│ │ │ │ ├── TransformStream/
│ │ │ │ │ ├── TransformStream.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── readable.mdx
│ │ │ │ │ └── writable.mdx
│ │ │ │ ├── TransformStreamDefaultController/
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── desiredSize.mdx
│ │ │ │ │ ├── enqueue.mdx
│ │ │ │ │ ├── error.mdx
│ │ │ │ │ └── terminate.mdx
│ │ │ │ ├── TypeError/
│ │ │ │ │ └── TypeError.mdx
│ │ │ │ ├── URIError/
│ │ │ │ │ └── URIError.mdx
│ │ │ │ ├── URL/
│ │ │ │ │ ├── URL.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── hash.mdx
│ │ │ │ │ ├── host.mdx
│ │ │ │ │ ├── hostname.mdx
│ │ │ │ │ ├── href.mdx
│ │ │ │ │ ├── origin.mdx
│ │ │ │ │ ├── password.mdx
│ │ │ │ │ ├── pathname.mdx
│ │ │ │ │ ├── port.mdx
│ │ │ │ │ ├── protocol.mdx
│ │ │ │ │ ├── search.mdx
│ │ │ │ │ ├── searchParams.mdx
│ │ │ │ │ ├── toJSON.mdx
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ └── username.mdx
│ │ │ │ ├── URLSearchParams/
│ │ │ │ │ ├── URLSearchParams.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── append.mdx
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ ├── entries.mdx
│ │ │ │ │ ├── forEach.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ ├── keys.mdx
│ │ │ │ │ ├── set.mdx
│ │ │ │ │ ├── sort.mdx
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ └── values.mdx
│ │ │ │ ├── Uint16Array/
│ │ │ │ │ └── Uint16Array.mdx
│ │ │ │ ├── Uint32Array/
│ │ │ │ │ └── Uint32Array.mdx
│ │ │ │ ├── Uint8Array/
│ │ │ │ │ └── Uint8Array.mdx
│ │ │ │ ├── Uint8ClampedArray/
│ │ │ │ │ └── Uint8ClampedArray.mdx
│ │ │ │ ├── WeakMap/
│ │ │ │ │ ├── WeakMap.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ └── set.mdx
│ │ │ │ ├── WeakRef/
│ │ │ │ │ ├── WeakRef.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ └── deref.mdx
│ │ │ │ ├── WeakSet/
│ │ │ │ │ ├── WeakSet.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── add.mdx
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ └── has.mdx
│ │ │ │ ├── WorkerLocation/
│ │ │ │ │ ├── WorkerLocation.mdx
│ │ │ │ │ ├── hash.mdx
│ │ │ │ │ ├── host.mdx
│ │ │ │ │ ├── hostname.mdx
│ │ │ │ │ ├── href.mdx
│ │ │ │ │ ├── origin.mdx
│ │ │ │ │ ├── pathname.mdx
│ │ │ │ │ ├── port.mdx
│ │ │ │ │ ├── protocol.mdx
│ │ │ │ │ ├── search.mdx
│ │ │ │ │ └── toString.mdx
│ │ │ │ ├── WritableStream/
│ │ │ │ │ ├── WritableStream.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── abort.mdx
│ │ │ │ │ ├── getWriter.mdx
│ │ │ │ │ └── locked.mdx
│ │ │ │ ├── WritableStreamDefaultController/
│ │ │ │ │ └── error.mdx
│ │ │ │ ├── WritableStreamDefaultWriter/
│ │ │ │ │ ├── WritableStreamDefaultWriter.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── abort.mdx
│ │ │ │ │ ├── close.mdx
│ │ │ │ │ ├── closed.mdx
│ │ │ │ │ ├── desiredSize.mdx
│ │ │ │ │ ├── ready.mdx
│ │ │ │ │ ├── releaseLock.mdx
│ │ │ │ │ └── write.mdx
│ │ │ │ ├── atob.mdx
│ │ │ │ ├── btoa.mdx
│ │ │ │ ├── clearInterval.mdx
│ │ │ │ ├── clearTimeout.mdx
│ │ │ │ ├── console/
│ │ │ │ │ ├── assert.mdx
│ │ │ │ │ ├── clear.mdx
│ │ │ │ │ ├── count.mdx
│ │ │ │ │ ├── countReset.mdx
│ │ │ │ │ ├── debug.mdx
│ │ │ │ │ ├── dir.mdx
│ │ │ │ │ ├── dirxml.mdx
│ │ │ │ │ ├── error.mdx
│ │ │ │ │ ├── group.mdx
│ │ │ │ │ ├── groupCollapsed.mdx
│ │ │ │ │ ├── groupEnd.mdx
│ │ │ │ │ ├── info.mdx
│ │ │ │ │ ├── log.mdx
│ │ │ │ │ ├── time.mdx
│ │ │ │ │ ├── timeEnd.mdx
│ │ │ │ │ ├── timeLog.mdx
│ │ │ │ │ ├── trace.mdx
│ │ │ │ │ └── warn.mdx
│ │ │ │ ├── crypto/
│ │ │ │ │ ├── getRandomValues.mdx
│ │ │ │ │ ├── randomUUID.mdx
│ │ │ │ │ └── subtle.mdx
│ │ │ │ ├── decodeURI.mdx
│ │ │ │ ├── decodeURIComponent.mdx
│ │ │ │ ├── encodeURI.mdx
│ │ │ │ ├── encodeURIComponent.mdx
│ │ │ │ ├── escape.mdx
│ │ │ │ ├── eval.mdx
│ │ │ │ ├── fetch.mdx
│ │ │ │ ├── globalThis.mdx
│ │ │ │ ├── isFinite.mdx
│ │ │ │ ├── isNaN.mdx
│ │ │ │ ├── location.mdx
│ │ │ │ ├── parseFloat.mdx
│ │ │ │ ├── parseInt.mdx
│ │ │ │ ├── performance/
│ │ │ │ │ ├── now.mdx
│ │ │ │ │ └── timeOrigin.mdx
│ │ │ │ ├── setInterval.mdx
│ │ │ │ ├── setTimeout.mdx
│ │ │ │ ├── structuredClone.mdx
│ │ │ │ ├── undefined.mdx
│ │ │ │ └── unescape.mdx
│ │ │ ├── html-rewriter/
│ │ │ │ ├── Element/
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── after.mdx
│ │ │ │ │ ├── append.mdx
│ │ │ │ │ ├── before.mdx
│ │ │ │ │ ├── hasAttribute.mdx
│ │ │ │ │ ├── prepend.mdx
│ │ │ │ │ ├── removeAttribute.mdx
│ │ │ │ │ ├── replaceChildren.mdx
│ │ │ │ │ ├── replaceWith.mdx
│ │ │ │ │ ├── selector.mdx
│ │ │ │ │ ├── setAttribute.mdx
│ │ │ │ │ └── tag.mdx
│ │ │ │ └── HTMLRewritingStream/
│ │ │ │ ├── HTMLRewritingStream.mdx
│ │ │ │ └── prototype/
│ │ │ │ └── onElement.mdx
│ │ │ ├── image-optimizer/
│ │ │ │ ├── Auto.mdx
│ │ │ │ ├── BWAlgorithm.mdx
│ │ │ │ ├── CropMode.mdx
│ │ │ │ ├── Disable.mdx
│ │ │ │ ├── Enable.mdx
│ │ │ │ ├── Fit.mdx
│ │ │ │ ├── Format.mdx
│ │ │ │ ├── Metadata.mdx
│ │ │ │ ├── Optimize.mdx
│ │ │ │ ├── Orient.mdx
│ │ │ │ ├── Profile.mdx
│ │ │ │ ├── Region.mdx
│ │ │ │ ├── ResizeFilter.mdx
│ │ │ │ └── imageOptimizerOptions.mdx
│ │ │ ├── index.mdx
│ │ │ ├── kv-store/
│ │ │ │ ├── KVStore/
│ │ │ │ │ ├── KVStore.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── list.mdx
│ │ │ │ │ └── put.mdx
│ │ │ │ └── KVStoreEntry/
│ │ │ │ └── prototype/
│ │ │ │ ├── arrayBuffer.mdx
│ │ │ │ ├── body.mdx
│ │ │ │ ├── bodyUsed.mdx
│ │ │ │ ├── json.mdx
│ │ │ │ ├── metadata.mdx
│ │ │ │ ├── metadataText.mdx
│ │ │ │ └── text.mdx
│ │ │ ├── logger/
│ │ │ │ ├── Logger/
│ │ │ │ │ ├── Logger.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ └── log.mdx
│ │ │ │ └── configureConsole.mdx
│ │ │ ├── migration-guide/
│ │ │ │ └── index.mdx
│ │ │ ├── secret-store/
│ │ │ │ ├── SecretStore/
│ │ │ │ │ ├── SecretStore.mdx
│ │ │ │ │ ├── fromBytes.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ └── get.mdx
│ │ │ │ └── SecretStoreEntry/
│ │ │ │ └── prototype/
│ │ │ │ ├── plaintext.mdx
│ │ │ │ └── rawBytes.mdx
│ │ │ ├── security/
│ │ │ │ └── inspect.mdx
│ │ │ ├── shielding/
│ │ │ │ └── Shield/
│ │ │ │ ├── Shield.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── encryptedBackend.mdx
│ │ │ │ ├── runningOn.mdx
│ │ │ │ └── unencryptedBackend.mdx
│ │ │ └── websocket/
│ │ │ └── createWebsocketHandoff.mdx
│ │ ├── version-3.39.1/
│ │ │ ├── acl/
│ │ │ │ └── Acl/
│ │ │ │ ├── open.mdx
│ │ │ │ └── prototype/
│ │ │ │ └── lookup.mdx
│ │ │ ├── backend/
│ │ │ │ ├── Backend/
│ │ │ │ │ ├── Backend.mdx
│ │ │ │ │ ├── exists.mdx
│ │ │ │ │ ├── fromName.mdx
│ │ │ │ │ ├── health.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── betweenBytesTimeout.mdx
│ │ │ │ │ ├── connectTimeout.mdx
│ │ │ │ │ ├── firstByteTimeout.mdx
│ │ │ │ │ ├── health.mdx
│ │ │ │ │ ├── hostOverride.mdx
│ │ │ │ │ ├── httpKeepaliveTime.mdx
│ │ │ │ │ ├── isDynamic.mdx
│ │ │ │ │ ├── isSSL.mdx
│ │ │ │ │ ├── name.mdx
│ │ │ │ │ ├── port.mdx
│ │ │ │ │ ├── target.mdx
│ │ │ │ │ ├── tcpKeepalive.mdx
│ │ │ │ │ ├── tlsMaxVersion.mdx
│ │ │ │ │ ├── tlsMinVersion.mdx
│ │ │ │ │ ├── toName.mdx
│ │ │ │ │ └── toString.mdx
│ │ │ │ ├── allowDynamicBackends.mdx
│ │ │ │ ├── enforceExplicitBackends.mdx
│ │ │ │ └── setDefaultDynamicBackendConfig.mdx
│ │ │ ├── cache/
│ │ │ │ ├── CacheEntry/
│ │ │ │ │ ├── age.mdx
│ │ │ │ │ ├── body.mdx
│ │ │ │ │ ├── close.mdx
│ │ │ │ │ ├── hits.mdx
│ │ │ │ │ ├── length.mdx
│ │ │ │ │ ├── maxAge.mdx
│ │ │ │ │ ├── staleWhileRevalidate.mdx
│ │ │ │ │ ├── state.mdx
│ │ │ │ │ └── userMetadata.mdx
│ │ │ │ ├── CacheState/
│ │ │ │ │ ├── found.mdx
│ │ │ │ │ ├── mustInsertOrUpdate.mdx
│ │ │ │ │ ├── stale.mdx
│ │ │ │ │ └── usable.mdx
│ │ │ │ ├── CoreCache/
│ │ │ │ │ ├── insert.mdx
│ │ │ │ │ ├── lookup.mdx
│ │ │ │ │ └── transactionLookup.mdx
│ │ │ │ ├── SimpleCache/
│ │ │ │ │ ├── SimpleCache.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── getOrSet.mdx
│ │ │ │ │ └── purge.mdx
│ │ │ │ ├── SimpleCacheEntry/
│ │ │ │ │ ├── arrayBuffer.mdx
│ │ │ │ │ ├── body.mdx
│ │ │ │ │ ├── bodyUsed.mdx
│ │ │ │ │ ├── json.mdx
│ │ │ │ │ └── text.mdx
│ │ │ │ └── TransactionCacheEntry/
│ │ │ │ ├── age.mdx
│ │ │ │ ├── body.mdx
│ │ │ │ ├── cancel.mdx
│ │ │ │ ├── close.mdx
│ │ │ │ ├── hits.mdx
│ │ │ │ ├── insert.mdx
│ │ │ │ ├── insertAndStreamBack.mdx
│ │ │ │ ├── length.mdx
│ │ │ │ ├── maxAge.mdx
│ │ │ │ ├── staleWhileRevalidate.mdx
│ │ │ │ ├── state.mdx
│ │ │ │ ├── update.mdx
│ │ │ │ └── userMetadata.mdx
│ │ │ ├── cache-override/
│ │ │ │ └── CacheOverride/
│ │ │ │ └── CacheOverride.mdx
│ │ │ ├── compute/
│ │ │ │ ├── purgeSurrogateKey.mdx
│ │ │ │ └── vCpuTime.mdx
│ │ │ ├── config-store/
│ │ │ │ └── ConfigStore/
│ │ │ │ ├── ConfigStore.mdx
│ │ │ │ └── prototype/
│ │ │ │ └── get.mdx
│ │ │ ├── device/
│ │ │ │ └── Device/
│ │ │ │ ├── lookup.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── brand.mdx
│ │ │ │ ├── hardwareType.mdx
│ │ │ │ ├── isBot.mdx
│ │ │ │ ├── isDesktop.mdx
│ │ │ │ ├── isGameConsole.mdx
│ │ │ │ ├── isMediaPlayer.mdx
│ │ │ │ ├── isMobile.mdx
│ │ │ │ ├── isSmartTV.mdx
│ │ │ │ ├── isTablet.mdx
│ │ │ │ ├── isTouchscreen.mdx
│ │ │ │ ├── model.mdx
│ │ │ │ ├── name.mdx
│ │ │ │ └── toJSON.mdx
│ │ │ ├── dictionary/
│ │ │ │ └── Dictionary/
│ │ │ │ ├── Dictionary.mdx
│ │ │ │ └── prototype/
│ │ │ │ └── get.mdx
│ │ │ ├── edge-rate-limiter/
│ │ │ │ ├── EdgeRateLimiter/
│ │ │ │ │ ├── EdgeRateLimiter.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ └── checkRate.mdx
│ │ │ │ ├── PenaltyBox/
│ │ │ │ │ ├── PenaltyBox.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── add.mdx
│ │ │ │ │ └── has.mdx
│ │ │ │ └── RateCounter/
│ │ │ │ ├── RateCounter.mdx
│ │ │ │ └── prototype/
│ │ │ │ ├── increment.mdx
│ │ │ │ ├── lookupCount.mdx
│ │ │ │ └── lookupRate.mdx
│ │ │ ├── env/
│ │ │ │ └── env.mdx
│ │ │ ├── experimental/
│ │ │ │ ├── allowDynamicBackends.mdx
│ │ │ │ ├── includeBytes.mdx
│ │ │ │ ├── mapAndLogError.mdx
│ │ │ │ ├── mapError.mdx
│ │ │ │ └── sdkVersion.mdx
│ │ │ ├── fanout/
│ │ │ │ └── createFanoutHandoff.mdx
│ │ │ ├── geolocation/
│ │ │ │ └── getGeolocationForIpAddress.mdx
│ │ │ ├── globals/
│ │ │ │ ├── AggregrateError/
│ │ │ │ │ └── AggregrateError.mdx
│ │ │ │ ├── Array/
│ │ │ │ │ ├── @@species.mdx
│ │ │ │ │ ├── Array.mdx
│ │ │ │ │ ├── from.mdx
│ │ │ │ │ ├── isArray.mdx
│ │ │ │ │ ├── of.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── @@iterator.mdx
│ │ │ │ │ ├── @@unscopables.mdx
│ │ │ │ │ ├── at.mdx
│ │ │ │ │ ├── concat.mdx
│ │ │ │ │ ├── copyWithin.mdx
│ │ │ │ │ ├── entries.mdx
│ │ │ │ │ ├── every.mdx
│ │ │ │ │ ├── fill.mdx
│ │ │ │ │ ├── filter.mdx
│ │ │ │ │ ├── find.mdx
│ │ │ │ │ ├── findIndex.mdx
│ │ │ │ │ ├── flat.mdx
│ │ │ │ │ ├── flatMap.mdx
│ │ │ │ │ ├── forEach.mdx
│ │ │ │ │ ├── includes.mdx
│ │ │ │ │ ├── indexOf.mdx
│ │ │ │ │ ├── join.mdx
│ │ │ │ │ ├── keys.mdx
│ │ │ │ │ ├── lastIndexOf.mdx
│ │ │ │ │ ├── length.mdx
│ │ │ │ │ ├── map.mdx
│ │ │ │ │ ├── pop.mdx
│ │ │ │ │ ├── push.mdx
│ │ │ │ │ ├── reduce.mdx
│ │ │ │ │ ├── reduceRight.mdx
│ │ │ │ │ ├── reverse.mdx
│ │ │ │ │ ├── shift.mdx
│ │ │ │ │ ├── slice.mdx
│ │ │ │ │ ├── some.mdx
│ │ │ │ │ ├── sort.mdx
│ │ │ │ │ ├── splice.mdx
│ │ │ │ │ ├── toLocaleString.mdx
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ ├── unshift.mdx
│ │ │ │ │ └── values.mdx
│ │ │ │ ├── ArrayBuffer/
│ │ │ │ │ ├── @@species.mdx
│ │ │ │ │ ├── ArrayBuffer.mdx
│ │ │ │ │ ├── isView.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── byteLength.mdx
│ │ │ │ │ └── slice.mdx
│ │ │ │ ├── BigInt/
│ │ │ │ │ ├── BigInt.mdx
│ │ │ │ │ ├── asIntN.mdx
│ │ │ │ │ ├── asUintN.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── toLocaleString.mdx
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ └── valueOf.mdx
│ │ │ │ ├── BigInt64Array/
│ │ │ │ │ └── BigInt64Array.mdx
│ │ │ │ ├── BigUint64Array/
│ │ │ │ │ └── BigUint64Array.mdx
│ │ │ │ ├── Blob/
│ │ │ │ │ ├── Blob.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── arrayBuffer.mdx
│ │ │ │ │ ├── size.mdx
│ │ │ │ │ ├── slice.mdx
│ │ │ │ │ ├── stream.mdx
│ │ │ │ │ ├── text.mdx
│ │ │ │ │ └── type.mdx
│ │ │ │ ├── Boolean/
│ │ │ │ │ ├── Boolean.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ └── valueOf.mdx
│ │ │ │ ├── ByteLengthQueuingStrategy/
│ │ │ │ │ ├── ByteLengthQueuingStrategy.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ └── size.mdx
│ │ │ │ ├── CompressionStream/
│ │ │ │ │ ├── CompressionStream.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── readable.mdx
│ │ │ │ │ └── writable.mdx
│ │ │ │ ├── CryptoKey/
│ │ │ │ │ ├── CryptoKey.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── algorithm.mdx
│ │ │ │ │ ├── extractable.mdx
│ │ │ │ │ ├── type.mdx
│ │ │ │ │ └── usages.mdx
│ │ │ │ ├── DOMException/
│ │ │ │ │ ├── DOMException.mdx
│ │ │ │ │ ├── code.mdx
│ │ │ │ │ ├── message.mdx
│ │ │ │ │ └── name.mdx
│ │ │ │ ├── DataView/
│ │ │ │ │ ├── DataView.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── buffer.mdx
│ │ │ │ │ ├── byteLength.mdx
│ │ │ │ │ ├── byteOffset.mdx
│ │ │ │ │ ├── getBigInt64.mdx
│ │ │ │ │ ├── getBigUint64.mdx
│ │ │ │ │ ├── getFloat32.mdx
│ │ │ │ │ ├── getFloat64.mdx
│ │ │ │ │ ├── getInt16.mdx
│ │ │ │ │ ├── getInt32.mdx
│ │ │ │ │ ├── getInt8.mdx
│ │ │ │ │ ├── getUint16.mdx
│ │ │ │ │ ├── getUint32.mdx
│ │ │ │ │ ├── getUint8.mdx
│ │ │ │ │ ├── setBigInt64.mdx
│ │ │ │ │ ├── setBigUint64.mdx
│ │ │ │ │ ├── setFloat32.mdx
│ │ │ │ │ ├── setFloat64.mdx
│ │ │ │ │ ├── setInt16.mdx
│ │ │ │ │ ├── setInt32.mdx
│ │ │ │ │ ├── setInt8.mdx
│ │ │ │ │ ├── setUint16.mdx
│ │ │ │ │ ├── setUint32.mdx
│ │ │ │ │ └── setUint8.mdx
│ │ │ │ ├── Date/
│ │ │ │ │ ├── Date.mdx
│ │ │ │ │ ├── UTC.mdx
│ │ │ │ │ ├── now.mdx
│ │ │ │ │ ├── parse.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── @@toPrimitive.mdx
│ │ │ │ │ ├── getDate.mdx
│ │ │ │ │ ├── getDay.mdx
│ │ │ │ │ ├── getFullYear.mdx
│ │ │ │ │ ├── getHours.mdx
│ │ │ │ │ ├── getMilliseconds.mdx
│ │ │ │ │ ├── getMinutes.mdx
│ │ │ │ │ ├── getMonth.mdx
│ │ │ │ │ ├── getSeconds.mdx
│ │ │ │ │ ├── getTime.mdx
│ │ │ │ │ ├── getTimezoneOffset.mdx
│ │ │ │ │ ├── getUTCDate.mdx
│ │ │ │ │ ├── getUTCDay.mdx
│ │ │ │ │ ├── getUTCFullYear.mdx
│ │ │ │ │ ├── getUTCHours.mdx
│ │ │ │ │ ├── getUTCMilliseconds.mdx
│ │ │ │ │ ├── getUTCMinutes.mdx
│ │ │ │ │ ├── getUTCMonth.mdx
│ │ │ │ │ ├── getUTCSeconds.mdx
│ │ │ │ │ ├── getYear.mdx
│ │ │ │ │ ├── setDate.mdx
│ │ │ │ │ ├── setFullYear.mdx
│ │ │ │ │ ├── setHours.mdx
│ │ │ │ │ ├── setMilliseconds.mdx
│ │ │ │ │ ├── setMinutes.mdx
│ │ │ │ │ ├── setMonth.mdx
│ │ │ │ │ ├── setSeconds.mdx
│ │ │ │ │ ├── setTime.mdx
│ │ │ │ │ ├── setUTCDate.mdx
│ │ │ │ │ ├── setUTCFullYear.mdx
│ │ │ │ │ ├── setUTCHours.mdx
│ │ │ │ │ ├── setUTCMilliseconds.mdx
│ │ │ │ │ ├── setUTCMinutes.mdx
│ │ │ │ │ ├── setUTCMonth.mdx
│ │ │ │ │ ├── setUTCSeconds.mdx
│ │ │ │ │ ├── setYear.mdx
│ │ │ │ │ ├── toDateString.mdx
│ │ │ │ │ ├── toISOString.mdx
│ │ │ │ │ ├── toJSON.mdx
│ │ │ │ │ ├── toLocaleDateString.mdx
│ │ │ │ │ ├── toLocaleString.mdx
│ │ │ │ │ ├── toLocaleTimeString.mdx
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ ├── toTimeString.mdx
│ │ │ │ │ ├── toUTCString.mdx
│ │ │ │ │ └── valueOf.mdx
│ │ │ │ ├── DecompressionStream/
│ │ │ │ │ ├── DecompressionStream.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── readable.mdx
│ │ │ │ │ └── writable.mdx
│ │ │ │ ├── EcKeyImportParams/
│ │ │ │ │ └── EcKeyImportParams.mdx
│ │ │ │ ├── EcdsaParams/
│ │ │ │ │ └── EcdsaParams.mdx
│ │ │ │ ├── Error/
│ │ │ │ │ ├── Error.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── cause.mdx
│ │ │ │ │ ├── message.mdx
│ │ │ │ │ ├── name.mdx
│ │ │ │ │ └── toString.mdx
│ │ │ │ ├── EvalError/
│ │ │ │ │ └── EvalError.mdx
│ │ │ │ ├── FetchEvent/
│ │ │ │ │ ├── FetchEvent.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── respondWith.mdx
│ │ │ │ │ ├── sendEarlyHints.mdx
│ │ │ │ │ └── waitUntil.mdx
│ │ │ │ ├── FinalizationRegistry/
│ │ │ │ │ ├── FinalizationRegistry.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── register.mdx
│ │ │ │ │ └── unregister.mdx
│ │ │ │ ├── Float32Array/
│ │ │ │ │ └── Float32Array.mdx
│ │ │ │ ├── Float64Array/
│ │ │ │ │ └── Float64Array.mdx
│ │ │ │ ├── FormData/
│ │ │ │ │ ├── FormData.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── append.mdx
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ ├── entries.mdx
│ │ │ │ │ ├── forEach.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── getAll.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ ├── keys.mdx
│ │ │ │ │ ├── set.mdx
│ │ │ │ │ └── values.mdx
│ │ │ │ ├── Function/
│ │ │ │ │ ├── Function.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── apply.mdx
│ │ │ │ │ ├── bind.mdx
│ │ │ │ │ ├── call.mdx
│ │ │ │ │ ├── index.mdx
│ │ │ │ │ ├── length.mdx
│ │ │ │ │ ├── name.mdx
│ │ │ │ │ └── toString.mdx
│ │ │ │ ├── Headers/
│ │ │ │ │ ├── Headers.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── append.mdx
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ ├── entries.mdx
│ │ │ │ │ ├── forEach.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── getSetCookie.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ ├── keys.mdx
│ │ │ │ │ ├── set.mdx
│ │ │ │ │ └── values.mdx
│ │ │ │ ├── HmacImportParams/
│ │ │ │ │ └── HmacImportParams.mdx
│ │ │ │ ├── Infinity.mdx
│ │ │ │ ├── Int16Array/
│ │ │ │ │ └── Int16Array.mdx
│ │ │ │ ├── Int32Array/
│ │ │ │ │ └── Int32Array.mdx
│ │ │ │ ├── Int8Array/
│ │ │ │ │ └── Int8Array.mdx
│ │ │ │ ├── JSON/
│ │ │ │ │ ├── parse.mdx
│ │ │ │ │ └── stringify.mdx
│ │ │ │ ├── Map/
│ │ │ │ │ ├── @@species.mdx
│ │ │ │ │ ├── Map.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── @@iterator.mdx
│ │ │ │ │ ├── clear.mdx
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ ├── entries.mdx
│ │ │ │ │ ├── forEach.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ ├── keys.mdx
│ │ │ │ │ ├── set.mdx
│ │ │ │ │ ├── size.mdx
│ │ │ │ │ └── values.mdx
│ │ │ │ ├── Math/
│ │ │ │ │ ├── E.mdx
│ │ │ │ │ ├── LN10.mdx
│ │ │ │ │ ├── LN2.mdx
│ │ │ │ │ ├── LOG10e.mdx
│ │ │ │ │ ├── LOG2e.mdx
│ │ │ │ │ ├── PI.mdx
│ │ │ │ │ ├── SQRT1_2.mdx
│ │ │ │ │ ├── SQRT2.mdx
│ │ │ │ │ ├── abs.mdx
│ │ │ │ │ ├── acos.mdx
│ │ │ │ │ ├── acosh.mdx
│ │ │ │ │ ├── asin.mdx
│ │ │ │ │ ├── asinh.mdx
│ │ │ │ │ ├── atan.mdx
│ │ │ │ │ ├── atan2.mdx
│ │ │ │ │ ├── atanh.mdx
│ │ │ │ │ ├── cbrt.mdx
│ │ │ │ │ ├── ceil.mdx
│ │ │ │ │ ├── clz32.mdx
│ │ │ │ │ ├── cos.mdx
│ │ │ │ │ ├── cosh.mdx
│ │ │ │ │ ├── exp.mdx
│ │ │ │ │ ├── expm1.mdx
│ │ │ │ │ ├── floor.mdx
│ │ │ │ │ ├── fround.mdx
│ │ │ │ │ ├── hypot.mdx
│ │ │ │ │ ├── imul.mdx
│ │ │ │ │ ├── log.mdx
│ │ │ │ │ ├── log10.mdx
│ │ │ │ │ ├── log1p.mdx
│ │ │ │ │ ├── log2.mdx
│ │ │ │ │ ├── max.mdx
│ │ │ │ │ ├── min.mdx
│ │ │ │ │ ├── pow.mdx
│ │ │ │ │ ├── random.mdx
│ │ │ │ │ ├── round.mdx
│ │ │ │ │ ├── sign.mdx
│ │ │ │ │ ├── sin.mdx
│ │ │ │ │ ├── sinh.mdx
│ │ │ │ │ ├── sqrt.mdx
│ │ │ │ │ ├── tan.mdx
│ │ │ │ │ ├── tanh.mdx
│ │ │ │ │ └── trunc.mdx
│ │ │ │ ├── NaN.mdx
│ │ │ │ ├── Number/
│ │ │ │ │ ├── MAX_SAFE_INTEGER.mdx
│ │ │ │ │ ├── MAX_VALUE.mdx
│ │ │ │ │ ├── MIN_SAFE_INTEGER.mdx
│ │ │ │ │ ├── MIN_VALUE.mdx
│ │ │ │ │ ├── NEGATIVE_INFINITY.mdx
│ │ │ │ │ ├── NaN.mdx
│ │ │ │ │ ├── Number.mdx
│ │ │ │ │ ├── POSITIVE_INFINITY.mdx
│ │ │ │ │ ├── epsilon.mdx
│ │ │ │ │ ├── isFinite.mdx
│ │ │ │ │ ├── isInteger.mdx
│ │ │ │ │ ├── isNaN.mdx
│ │ │ │ │ ├── isSafeInteger.mdx
│ │ │ │ │ ├── parseFloat.mdx
│ │ │ │ │ ├── parseInt.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── toExponential.mdx
│ │ │ │ │ ├── toFixed.mdx
│ │ │ │ │ ├── toLocaleString.mdx
│ │ │ │ │ ├── toPrecision.mdx
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ └── valueOf.mdx
│ │ │ │ ├── Object/
│ │ │ │ │ ├── Object.mdx
│ │ │ │ │ ├── assign.mdx
│ │ │ │ │ ├── create.mdx
│ │ │ │ │ ├── defineProperties.mdx
│ │ │ │ │ ├── defineProperty.mdx
│ │ │ │ │ ├── entries.mdx
│ │ │ │ │ ├── freeze.mdx
│ │ │ │ │ ├── fromEntries.mdx
│ │ │ │ │ ├── getOwnPropertyDescriptor.mdx
│ │ │ │ │ ├── getOwnPropertyDescriptors.mdx
│ │ │ │ │ ├── getOwnPropertyNames.mdx
│ │ │ │ │ ├── getOwnPropertySymbols.mdx
│ │ │ │ │ ├── getPrototypeOf.mdx
│ │ │ │ │ ├── hasOwn.mdx
│ │ │ │ │ ├── is.mdx
│ │ │ │ │ ├── isExtensible.mdx
│ │ │ │ │ ├── isFrozen.mdx
│ │ │ │ │ ├── isSealed.mdx
│ │ │ │ │ ├── keys.mdx
│ │ │ │ │ ├── preventExtensions.mdx
│ │ │ │ │ ├── prototype/
│ │ │ │ │ │ ├── constructor.mdx
│ │ │ │ │ │ ├── hasOwnProperty.mdx
│ │ │ │ │ │ ├── isPrototypeOf.mdx
│ │ │ │ │ │ ├── propertyIsEnumerable.mdx
│ │ │ │ │ │ ├── toLocaleString.mdx
│ │ │ │ │ │ ├── toString.mdx
│ │ │ │ │ │ └── valueOf.mdx
│ │ │ │ │ ├── seal.mdx
│ │ │ │ │ ├── setPrototypeOf.mdx
│ │ │ │ │ └── values.mdx
│ │ │ │ ├── Promise/
│ │ │ │ │ ├── @@species.mdx
│ │ │ │ │ ├── Promise.mdx
│ │ │ │ │ ├── all.mdx
│ │ │ │ │ ├── allSettled.mdx
│ │ │ │ │ ├── any.mdx
│ │ │ │ │ ├── prototype/
│ │ │ │ │ │ ├── catch.mdx
│ │ │ │ │ │ ├── finally.mdx
│ │ │ │ │ │ └── then.mdx
│ │ │ │ │ ├── race.mdx
│ │ │ │ │ ├── reject.mdx
│ │ │ │ │ └── resolve.mdx
│ │ │ │ ├── Proxy/
│ │ │ │ │ ├── Proxy.mdx
│ │ │ │ │ ├── proxy/
│ │ │ │ │ │ ├── apply.mdx
│ │ │ │ │ │ ├── construct.mdx
│ │ │ │ │ │ ├── defineProperty.mdx
│ │ │ │ │ │ ├── deleteProperty.mdx
│ │ │ │ │ │ ├── get.mdx
│ │ │ │ │ │ ├── getOwnPropertyDescriptor.mdx
│ │ │ │ │ │ ├── getPrototypeOf.mdx
│ │ │ │ │ │ ├── has.mdx
│ │ │ │ │ │ ├── isExtensible.mdx
│ │ │ │ │ │ ├── ownKeys.mdx
│ │ │ │ │ │ ├── preventExtensions.mdx
│ │ │ │ │ │ ├── set.mdx
│ │ │ │ │ │ └── setPrototypeOf.mdx
│ │ │ │ │ └── revocable.mdx
│ │ │ │ ├── RangeError/
│ │ │ │ │ └── RangeError.mdx
│ │ │ │ ├── ReadableByteStreamController/
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── byobRequest.mdx
│ │ │ │ │ ├── close.mdx
│ │ │ │ │ ├── desiredSize.mdx
│ │ │ │ │ ├── enqueue.mdx
│ │ │ │ │ └── error.mdx
│ │ │ │ ├── ReadableStream/
│ │ │ │ │ ├── ReadableStream.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── cancel.mdx
│ │ │ │ │ ├── getReader.mdx
│ │ │ │ │ ├── locked.mdx
│ │ │ │ │ ├── pipeThrough.mdx
│ │ │ │ │ ├── pipeTo.mdx
│ │ │ │ │ └── tee.mdx
│ │ │ │ ├── ReadableStreamBYOBReader/
│ │ │ │ │ ├── ReadableStreamBYOBReader.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── cancel.mdx
│ │ │ │ │ ├── closed.mdx
│ │ │ │ │ ├── read.mdx
│ │ │ │ │ └── releaseLock.mdx
│ │ │ │ ├── ReadableStreamBYOBRequest/
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── respond.mdx
│ │ │ │ │ ├── respondWithNewView.mdx
│ │ │ │ │ └── view.mdx
│ │ │ │ ├── ReadableStreamDefaultController/
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── close.mdx
│ │ │ │ │ ├── desiredSize.mdx
│ │ │ │ │ ├── enqueue.mdx
│ │ │ │ │ └── error.mdx
│ │ │ │ ├── ReadableStreamDefaultReader/
│ │ │ │ │ ├── ReadableStreamDefaultReader.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── cancel.mdx
│ │ │ │ │ ├── closed.mdx
│ │ │ │ │ ├── read.mdx
│ │ │ │ │ └── releaseLock.mdx
│ │ │ │ ├── ReferenceError/
│ │ │ │ │ └── ReferenceError.mdx
│ │ │ │ ├── Reflect/
│ │ │ │ │ ├── apply.mdx
│ │ │ │ │ ├── construct.mdx
│ │ │ │ │ ├── defineProperty.mdx
│ │ │ │ │ ├── deleteProperty.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── getOwnPropertyDescriptor.mdx
│ │ │ │ │ ├── getPrototypeOf.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ ├── isExtensible.mdx
│ │ │ │ │ ├── ownKeys.mdx
│ │ │ │ │ ├── preventExtensions.mdx
│ │ │ │ │ ├── set.mdx
│ │ │ │ │ └── setPrototypeOf.mdx
│ │ │ │ ├── Request/
│ │ │ │ │ ├── Request.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── arrayBuffer.mdx
│ │ │ │ │ ├── blob.mdx
│ │ │ │ │ ├── body.mdx
│ │ │ │ │ ├── bodyUsed.mdx
│ │ │ │ │ ├── clone.mdx
│ │ │ │ │ ├── formData.mdx
│ │ │ │ │ ├── headers.mdx
│ │ │ │ │ ├── json.mdx
│ │ │ │ │ ├── method.mdx
│ │ │ │ │ ├── setManualFramingHeaders.mdx
│ │ │ │ │ ├── text.mdx
│ │ │ │ │ └── url.mdx
│ │ │ │ ├── Response/
│ │ │ │ │ ├── Response.mdx
│ │ │ │ │ ├── prototype/
│ │ │ │ │ │ ├── arrayBuffer.mdx
│ │ │ │ │ │ ├── blob.mdx
│ │ │ │ │ │ ├── body.mdx
│ │ │ │ │ │ ├── bodyUsed.mdx
│ │ │ │ │ │ ├── formData.mdx
│ │ │ │ │ │ ├── headers.mdx
│ │ │ │ │ │ ├── ip.mdx
│ │ │ │ │ │ ├── json.mdx
│ │ │ │ │ │ ├── ok.mdx
│ │ │ │ │ │ ├── port.mdx
│ │ │ │ │ │ ├── setManualFramingHeaders.mdx
│ │ │ │ │ │ ├── status.mdx
│ │ │ │ │ │ ├── statusText.mdx
│ │ │ │ │ │ ├── text.mdx
│ │ │ │ │ │ └── url.mdx
│ │ │ │ │ └── redirect.mdx
│ │ │ │ ├── RsaHashedImportParams/
│ │ │ │ │ └── RsaHashedImportParams.mdx
│ │ │ │ ├── Set/
│ │ │ │ │ ├── @@species.mdx
│ │ │ │ │ ├── Set.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── @@iterator.mdx
│ │ │ │ │ ├── add.mdx
│ │ │ │ │ ├── clear.mdx
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ ├── entries.mdx
│ │ │ │ │ ├── forEach.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ ├── keys.mdx
│ │ │ │ │ ├── size.mdx
│ │ │ │ │ └── values.mdx
│ │ │ │ ├── String/
│ │ │ │ │ ├── String.mdx
│ │ │ │ │ ├── fromCharCode.mdx
│ │ │ │ │ ├── fromCodePoint.mdx
│ │ │ │ │ ├── prototype/
│ │ │ │ │ │ ├── @@iterator.mdx
│ │ │ │ │ │ ├── at.mdx
│ │ │ │ │ │ ├── charAt.mdx
│ │ │ │ │ │ ├── charCodeAt.mdx
│ │ │ │ │ │ ├── codePointAt.mdx
│ │ │ │ │ │ ├── concat.mdx
│ │ │ │ │ │ ├── endsWith.mdx
│ │ │ │ │ │ ├── includes.mdx
│ │ │ │ │ │ ├── indexOf.mdx
│ │ │ │ │ │ ├── lastIndexOf.mdx
│ │ │ │ │ │ ├── length.mdx
│ │ │ │ │ │ ├── localeCompare.mdx
│ │ │ │ │ │ ├── match.mdx
│ │ │ │ │ │ ├── matchAll.mdx
│ │ │ │ │ │ ├── padEnd.mdx
│ │ │ │ │ │ ├── padStart.mdx
│ │ │ │ │ │ ├── repeat.mdx
│ │ │ │ │ │ ├── replace.mdx
│ │ │ │ │ │ ├── replaceAll.mdx
│ │ │ │ │ │ ├── search.mdx
│ │ │ │ │ │ ├── slice.mdx
│ │ │ │ │ │ ├── split.mdx
│ │ │ │ │ │ ├── startsWith.mdx
│ │ │ │ │ │ ├── substr.mdx
│ │ │ │ │ │ ├── substring.mdx
│ │ │ │ │ │ ├── toLocaleLowerCase.mdx
│ │ │ │ │ │ ├── toLocaleUpperCase.mdx
│ │ │ │ │ │ ├── toLowerCase.mdx
│ │ │ │ │ │ ├── toString.mdx
│ │ │ │ │ │ ├── toUpperCase.mdx
│ │ │ │ │ │ ├── trim.mdx
│ │ │ │ │ │ ├── trimEnd.mdx
│ │ │ │ │ │ ├── trimStart.mdx
│ │ │ │ │ │ └── valueOf.mdx
│ │ │ │ │ └── raw.mdx
│ │ │ │ ├── SubtleCrypto/
│ │ │ │ │ ├── SubtleCrypto.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── digest.mdx
│ │ │ │ │ ├── importKey.mdx
│ │ │ │ │ ├── sign.mdx
│ │ │ │ │ └── verify.mdx
│ │ │ │ ├── Symbol/
│ │ │ │ │ ├── Symbol.mdx
│ │ │ │ │ ├── asyncIterator.mdx
│ │ │ │ │ ├── for.mdx
│ │ │ │ │ ├── hasInstance.mdx
│ │ │ │ │ ├── isConcatSpreadable.mdx
│ │ │ │ │ ├── iterator.mdx
│ │ │ │ │ ├── keyFor.mdx
│ │ │ │ │ ├── match.mdx
│ │ │ │ │ ├── matchAll.mdx
│ │ │ │ │ ├── prototype/
│ │ │ │ │ │ ├── @@toPrimitive.mdx
│ │ │ │ │ │ ├── description.mdx
│ │ │ │ │ │ ├── toString.mdx
│ │ │ │ │ │ └── valueOf.mdx
│ │ │ │ │ ├── replace.mdx
│ │ │ │ │ ├── search.mdx
│ │ │ │ │ ├── species.mdx
│ │ │ │ │ ├── split.mdx
│ │ │ │ │ ├── toPrimitive.mdx
│ │ │ │ │ ├── toStringTag.mdx
│ │ │ │ │ └── unscopables.mdx
│ │ │ │ ├── SyntaxError/
│ │ │ │ │ └── SyntaxError.mdx
│ │ │ │ ├── TextDecoder/
│ │ │ │ │ ├── TextDecoder.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── decode.mdx
│ │ │ │ │ ├── encoding.mdx
│ │ │ │ │ ├── fatal.mdx
│ │ │ │ │ └── ignoreBOM.mdx
│ │ │ │ ├── TextEncoder/
│ │ │ │ │ ├── TextEncoder.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── encode.mdx
│ │ │ │ │ └── encoding.mdx
│ │ │ │ ├── TransformStream/
│ │ │ │ │ ├── TransformStream.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── readable.mdx
│ │ │ │ │ └── writable.mdx
│ │ │ │ ├── TransformStreamDefaultController/
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── desiredSize.mdx
│ │ │ │ │ ├── enqueue.mdx
│ │ │ │ │ ├── error.mdx
│ │ │ │ │ └── terminate.mdx
│ │ │ │ ├── TypeError/
│ │ │ │ │ └── TypeError.mdx
│ │ │ │ ├── URIError/
│ │ │ │ │ └── URIError.mdx
│ │ │ │ ├── URL/
│ │ │ │ │ ├── URL.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── hash.mdx
│ │ │ │ │ ├── host.mdx
│ │ │ │ │ ├── hostname.mdx
│ │ │ │ │ ├── href.mdx
│ │ │ │ │ ├── origin.mdx
│ │ │ │ │ ├── password.mdx
│ │ │ │ │ ├── pathname.mdx
│ │ │ │ │ ├── port.mdx
│ │ │ │ │ ├── protocol.mdx
│ │ │ │ │ ├── search.mdx
│ │ │ │ │ ├── searchParams.mdx
│ │ │ │ │ ├── toJSON.mdx
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ └── username.mdx
│ │ │ │ ├── URLSearchParams/
│ │ │ │ │ ├── URLSearchParams.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── append.mdx
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ ├── entries.mdx
│ │ │ │ │ ├── forEach.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ ├── keys.mdx
│ │ │ │ │ ├── set.mdx
│ │ │ │ │ ├── sort.mdx
│ │ │ │ │ ├── toString.mdx
│ │ │ │ │ └── values.mdx
│ │ │ │ ├── Uint16Array/
│ │ │ │ │ └── Uint16Array.mdx
│ │ │ │ ├── Uint32Array/
│ │ │ │ │ └── Uint32Array.mdx
│ │ │ │ ├── Uint8Array/
│ │ │ │ │ └── Uint8Array.mdx
│ │ │ │ ├── Uint8ClampedArray/
│ │ │ │ │ └── Uint8ClampedArray.mdx
│ │ │ │ ├── WeakMap/
│ │ │ │ │ ├── WeakMap.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ ├── get.mdx
│ │ │ │ │ ├── has.mdx
│ │ │ │ │ └── set.mdx
│ │ │ │ ├── WeakRef/
│ │ │ │ │ ├── WeakRef.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ └── deref.mdx
│ │ │ │ ├── WeakSet/
│ │ │ │ │ ├── WeakSet.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── add.mdx
│ │ │ │ │ ├── delete.mdx
│ │ │ │ │ └── has.mdx
│ │ │ │ ├── WorkerLocation/
│ │ │ │ │ ├── WorkerLocation.mdx
│ │ │ │ │ ├── hash.mdx
│ │ │ │ │ ├── host.mdx
│ │ │ │ │ ├── hostname.mdx
│ │ │ │ │ ├── href.mdx
│ │ │ │ │ ├── origin.mdx
│ │ │ │ │ ├── pathname.mdx
│ │ │ │ │ ├── port.mdx
│ │ │ │ │ ├── protocol.mdx
│ │ │ │ │ ├── search.mdx
│ │ │ │ │ └── toString.mdx
│ │ │ │ ├── WritableStream/
│ │ │ │ │ ├── WritableStream.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── abort.mdx
│ │ │ │ │ ├── getWriter.mdx
│ │ │ │ │ └── locked.mdx
│ │ │ │ ├── WritableStreamDefaultController/
│ │ │ │ │ └── error.mdx
│ │ │ │ ├── WritableStreamDefaultWriter/
│ │ │ │ │ ├── WritableStreamDefaultWriter.mdx
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── abort.mdx
│ │ │ │ │ ├── close.mdx
│ │ │ │ │ ├── closed.mdx
│ │ │ │ │ ├── desiredSize.mdx
│ │ │ │ │ ├── ready.mdx
│ │ │ │ │ ├── releaseLock.mdx
│ │ │ │ │ └── write.mdx
│ │ │ │ ├── atob.mdx
│ │ │ │ ├── btoa.mdx
│ │ │ │ ├── clearInterval.mdx
│ │ │ │ ├── clearTimeout.mdx
│ │ │ │ ├── console/
│ │ │ │ │ ├── assert.mdx
│ │ │ │ │ ├── clear.mdx
│ │ │ │ │ ├── count.mdx
│ │ │ │ │ ├── countReset.mdx
│ │ │ │ │ ├── debug.mdx
│ │ │ │ │ ├── dir.mdx
│ │ │ │ │ ├── dirxml.mdx
│ │ │ │ │ ├── error.mdx
│ │ │ │ │ ├── group.mdx
│ │ │ │ │ ├── groupCollapsed.mdx
│ │ │ │ │ ├── groupEnd.mdx
│ │ │ │ │ ├── info.mdx
│ │ │ │ │ ├── log.mdx
│ │ │ │ │ ├── time.mdx
│ │ │ │ │ ├── timeEnd.mdx
│ │ │ │ │ ├── timeLog.mdx
│ │ │ │ │ ├── trace.mdx
│ │ │ │ │ └── warn.mdx
│ │ │ │ ├── crypto/
│ │ │ │ │ ├── getRandomValues.mdx
│ │ │ │ │ ├── randomUUID.mdx
│ │ │ │ │ └── subtle.mdx
│ │ │ │ ├── decodeURI.mdx
│ │ │ │ ├── decodeURIComponent.mdx
│ │ │ │ ├── encodeURI.mdx
│ │ │ │ ├── encodeURIComponent.mdx
│ │ │ │ ├── escape.mdx
│ │ │ │ ├── eval.mdx
│ │ │ │ ├── fetch.mdx
│ │ │ │ ├── globalThis.mdx
│ │ │ │ ├── isFinite.mdx
│ │ │ │ ├── isNaN.mdx
│ │ │ │ ├── location.mdx
│ │ │ │ ├── parseFloat.mdx
│ │ │ │ ├── parseInt.mdx
│ │ │ │ ├── performance/
│ │ │ │ │ ├── now.mdx
│ │ │ │ │ └── timeOrigin.mdx
│ │ │ │ ├── setInterval.mdx
│ │ │ │ ├── setTimeout.mdx
│ │ │ │ ├── structuredClone.mdx
│ │ │ │ ├── undefined.mdx
│ │ │ │ └── unescape.mdx
│ │ │ ├── html-rewriter/
│ │ │ │ ├── Element/
│ │ │ │ │ └── prototype/
│ │ │ │ │ ├── after.mdx
│ │ │ │ │ ├── append.mdx
│ │ │ │ │ ├── before.mdx
│ │ │ │ │ ├── hasAttribute.mdx
│ │ │ │ │ ├── prepend.mdx
│ │ │ │ │ ├── removeAttribute.mdx
│ │ │ │ │ ├── replaceChildren.mdx
│ │ │ │ │ ├── replaceWith.mdx
│ │ │ │ │ ├── selector.mdx
│ │ │ │ │ ├── setAttribute.mdx
│ │ │ │ │ └── tag.mdx
│ │ │ │ └── HTMLRewritingStream/
│ │ │ │ ├── HTMLRewritingStream.mdx
│ │ │ │ └── prototype/
│ │ │ │ └── onElement.mdx
│ │ │ ├── image-optimizer/
│ │ │ │ ├── Auto.mdx
│ │ │ │ ├── BWAlgorithm.mdx
│ │ │ │ ├── CropMode.mdx
│ │ │ │ ├── Disable.mdx
│ │ │ │ ├── En
================================================
FILE CONTENTS
================================================
================================================
FILE: .clang-format
================================================
---
Language: Cpp
# BasedOnStyle: LLVM
AccessModifierOffset: -2
AlignAfterOpenBracket: Align
AlignConsecutiveMacros: false
AlignConsecutiveAssignments: false
AlignConsecutiveBitFields: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: Right
AlignOperands: Align
AlignTrailingComments: true
AllowAllArgumentsOnNextLine: true
AllowAllConstructorInitializersOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortEnumsOnASingleLine: true
AllowShortBlocksOnASingleLine: Never
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: All
AllowShortLambdasOnASingleLine: All
AllowShortIfStatementsOnASingleLine: Never
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: MultiLine
BinPackArguments: true
BinPackParameters: true
BraceWrapping:
AfterCaseLabel: false
AfterClass: false
AfterControlStatement: Never
AfterEnum: false
AfterFunction: false
AfterNamespace: false
AfterObjCDeclaration: false
AfterStruct: false
AfterUnion: false
AfterExternBlock: false
BeforeCatch: false
BeforeElse: false
BeforeLambdaBody: false
BeforeWhile: false
IndentBraces: false
SplitEmptyFunction: true
SplitEmptyRecord: true
SplitEmptyNamespace: true
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Attach
BreakBeforeInheritanceComma: false
BreakInheritanceList: BeforeColon
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: BeforeColon
BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: true
ColumnLimit: 100
CommentPragmas: '^ IWYU pragma:'
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DeriveLineEnding: true
DerivePointerAlignment: false
DisableFormat: false
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: true
ForEachMacros:
- foreach
- Q_FOREACH
- BOOST_FOREACH
IncludeBlocks: Preserve
IncludeCategories:
- Regex: '^"(llvm|llvm-c|clang|clang-c)/'
Priority: 2
SortPriority: 0
- Regex: '^(<|"(gtest|gmock|isl|json)/)'
Priority: 3
SortPriority: 0
- Regex: '.*'
Priority: 1
SortPriority: 0
IncludeIsMainRegex: '(Test)?$'
IncludeIsMainSourceRegex: ''
IndentCaseLabels: false
IndentCaseBlocks: false
IndentGotoLabels: true
IndentPPDirectives: None
IndentExternBlock: AfterExternBlock
IndentWidth: 2
IndentWrappedFunctionNames: false
InsertTrailingCommas: None
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: true
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBinPackProtocolList: Auto
ObjCBlockIndentWidth: 2
ObjCBreakBeforeNestedBlockParam: true
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: true
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60
PointerAlignment: Right
ReflowComments: true
SortIncludes: true
SortUsingDeclarations: true
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true
SpaceInEmptyBlock: false
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInConditionalStatement: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
SpaceBeforeSquareBrackets: false
Standard: Latest
StatementMacros:
- Q_UNUSED
- QT_REQUIRE_VERSION
TabWidth: 8
UseCRLF: false
UseTab: Never
WhitespaceSensitiveMacros:
- STRINGIZE
- PP_STRINGIZE
- BOOST_PP_STRINGIZE
...
================================================
FILE: .github/dependabot.yml
================================================
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
version: 2
updates:
- package-ecosystem: "cargo"
directory: "/"
schedule:
interval: "daily"
groups:
cargo:
patterns:
- "*"
open-pull-requests-limit: 1
- package-ecosystem: "npm"
directory: "/integration-tests/js-compute"
schedule:
interval: "daily"
groups:
npm:
patterns:
- "*"
open-pull-requests-limit: 1
================================================
FILE: .github/workflows/cleanup.yml
================================================
name: 'Cleanup'
on: workflow_dispatch
permissions:
contents: read
env:
fastly-cli_version: 14.2.0
jobs:
cleanup:
name: Cleanup
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
with:
node-version: 'lts/*'
- run: cd ./integration-tests/js-compute && npm install
- name: Set up Fastly CLI
uses: fastly/compute-actions/setup@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
cli_version: ${{ env.fastly-cli_version }}
- run: node integration-tests/js-compute/cleanupAll.js
env:
FASTLY_API_TOKEN: ${{ secrets.FASTLY_API_TOKEN }}
================================================
FILE: .github/workflows/dependencies.yml
================================================
name: 'Dependency Review'
on: [pull_request]
permissions:
contents: read
jobs:
dependency-review:
name: Dependency Review
runs-on: ubuntu-latest
steps:
- uses: actions/dependency-review-action@v2.2.0
with:
allow-licenses: Apache-2.0, MIT, BSD-3-Clause, ISC, BSD-2-Clause, MIT OR (CC0-1.0 AND MIT), CC0-1.0 OR MIT OR (CC0-1.0 AND MIT), CC-BY-3.0, CC0-1.0, MIT OR Apache-2.0, MIT AND Apache-2.0, MIT OR WTFPL, BSD-2-Clause OR (MIT OR Apache-2.0), Python-2.0, ISC AND MIT, Apache-2.0 AND MIT, MIT/Apache-2.0, Apache-2.0 OR MIT, (Apache-2.0 OR MIT) AND BSD-3-Clause, Zlib OR Apache-2.0 OR MIT, MIT OR Apache-2.0 OR Zlib, MIT OR (Apache-2.0 OR Zlib), (Apache-2.0 WITH LLVM-exception), 0BSD, CC-BY-4.0, Unlicense, MPL-1.1, LicenseRef-scancode-unicode AND MIT, Unlicense OR MIT
fail-on-scopes: runtime
================================================
FILE: .github/workflows/main.yml
================================================
name: CI
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
on:
pull_request:
push:
branches: [main]
defaults:
run:
shell: bash
env:
# Note: when updated, also update version in ensure-cargo-installs
viceroy_version: 0.16.5
# Note: when updated, also update version in ensure-cargo-installs ! AND ! release-please.yml
wasm-tools_version: 1.216.0
fastly-cli_version: 14.2.0
jobs:
check-changelog:
if: github.ref != 'refs/heads/main'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
with:
node-version: 'lts/*'
- run: npm ci
- run: npm run format-changelog
check-docusaurus:
if: github.ref != 'refs/heads/main'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
with:
node-version: 'lts/*'
- run: cd documentation && npm run add-fastly-prefix
- run: cd documentation && npm ci
- run: cd documentation && npm run build
ensure-cargo-installs:
name: Ensure that all required "cargo install" commands are run, or we have a cache hit
strategy:
matrix:
include:
- crate: viceroy
version: 0.16.5 # Note: workflow-level env vars can't be used in matrix definitions
options: ""
- crate: wasm-tools
version: 1.216.0 # Note: workflow-level env vars can't be used in matrix definitions
options: ""
runs-on: ubuntu-latest
steps:
- name: Cache ${{ matrix.crate }} ${{ matrix.version }}
id: cache-crate
uses: actions/cache@v3
with:
path: "/home/runner/.cargo/bin/${{ matrix.crate }}"
key: crate-cache-${{ matrix.crate }}-${{ matrix.version }}
- name: Install ${{ matrix.crate }} ${{ matrix.version }}
if: steps.cache-crate.outputs.cache-hit != 'true'
run: cargo install ${{ matrix.crate }} ${{ matrix.options }} --version ${{ matrix.version }} --force
shellcheck:
env:
SHELLCHECK_VERSION: v0.8.0
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v3
id: cache-shellcheck
with:
path: ${{ runner.tool_cache }}/shellcheck
key: shellcheck-${{ runner.os }}-${{ env.SHELLCHECK_VERSION }}
- name: Download shellcheck
if: steps.cache-shellcheck.output.cache-hit != 'true'
run: |
version="${{ env.SHELLCHECK_VERSION }}"
baseurl="https://github.com/koalaman/shellcheck/releases/download"
curl -Lso "shellcheck.tar.xz" \
"${baseurl}/${version}/shellcheck-${version}.linux.x86_64.tar.xz"
mkdir -p "${{ runner.tool_cache }}/shellcheck/bin"
tar -xf shellcheck.tar.xz -C "${{ runner.tool_cache }}/shellcheck/bin"
- name: Add shellcheck to path
run: echo "${{ runner.tool_cache }}/shellcheck/bin" >> $GITHUB_PATH
- name: Run shellcheck
run: ci/shellcheck.sh
format:
if: github.ref != 'refs/heads/main'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: "Install wasi-sdk-20 (linux)"
run: |
set -x
curl -sS -L -O https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-linux.tar.gz
tar xf wasi-sdk-20.0-linux.tar.gz
sudo mkdir -p /opt/wasi-sdk
sudo mv wasi-sdk-20.0/* /opt/wasi-sdk/
ls /opt/wasi-sdk/
- run: |
/opt/wasi-sdk/bin/clang-format --version
ci/clang-format.sh
- run: |
ci/rustfmt.sh
- run: npm install
- run: npm run format:check
test-npm-package:
if: github.ref != 'refs/heads/main'
needs: [build]
strategy:
matrix:
node-version: [18, 22]
os: [
ubuntu-latest,
windows-latest,
macos-latest
]
exclude:
- os: macos-latest
node-version: 18
- os: windows-latest
node-version: 18
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Download Engine
uses: actions/download-artifact@v4
with:
name: fastly-release
- name: Download Engine
uses: actions/download-artifact@v4
with:
name: fastly-debug
- name: Download Engine
uses: actions/download-artifact@v4
with:
name: fastly-weval
- name: Download Engine Weval Cache
uses: actions/download-artifact@v4
with:
name: fastly-weval-ic-cache
- run: npm install
- name: Build CLI
run: npm run build:cli
- run: npm test
build-debug:
name: Debug Build
needs: [ensure-cargo-installs]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Set up Node LTS
uses: actions/setup-node@v3
with:
node-version: 'lts/*'
- run: npm ci
- name: Install Rust 1.81.0
run: |
rustup toolchain install 1.81.0
rustup target add wasm32-wasip1 --toolchain 1.81.0
- name: Restore wasm-tools from cache
uses: actions/cache@v3
id: wasm-tools
with:
path: "/home/runner/.cargo/bin/wasm-tools"
key: crate-cache-wasm-tools-${{ env.wasm-tools_version }}
- name: Build CLI
run: npm run build:cli
- name: Build with full debug info
run: npm run build:debug:info
- uses: actions/upload-artifact@v4
with:
if-no-files-found: error
name: fastly-debug
path: fastly.debug.wasm
build:
name: Build
needs: [ensure-cargo-installs]
runs-on: ubuntu-latest
strategy:
matrix:
profile: [release, weval]
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Set up Node LTS
uses: actions/setup-node@v3
with:
node-version: 'lts/*'
- run: npm ci
- name: Install Rust 1.81.0
run: |
rustup toolchain install 1.81.0
rustup target add wasm32-wasip1 --toolchain 1.81.0
- name: Restore wasm-tools from cache
uses: actions/cache@v3
id: wasm-tools
with:
path: "/home/runner/.cargo/bin/wasm-tools"
key: crate-cache-wasm-tools-${{ env.wasm-tools_version }}
- name: Build CLI
run: npm run build:cli
- name: Build
if: matrix.profile == 'release'
run: npm run build:release
- name: Build
if: matrix.profile == 'weval'
run: npm run build:weval
- uses: actions/upload-artifact@v4
with:
if-no-files-found: error
name: fastly-${{ matrix.profile }}
path: fastly${{ matrix.profile == 'debug' && '.debug.wasm' || (matrix.profile == 'weval' && '-weval.wasm' || '.wasm') }}
- uses: actions/upload-artifact@v4
if: matrix.profile == 'weval'
with:
name: fastly-${{ matrix.profile }}-ic-cache
path: fastly-ics.wevalcache
run-wpt-debug:
if: github.ref != 'refs/heads/main'
name: Run Web Platform Tests Debug
needs: [build-debug, ensure-cargo-installs]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Set up Node LTS
uses: actions/setup-node@v3
with:
node-version: 'lts/*'
- run: npm ci
- name: Download Engine
uses: actions/download-artifact@v4
with:
name: fastly-debug
- name: Restore Viceroy from cache
uses: actions/cache@v3
with:
path: "/home/runner/.cargo/bin/viceroy"
key: crate-cache-viceroy-${{ env.viceroy_version }}
- name: Restore wasm-tools from cache
uses: actions/cache@v3
id: wasm-tools
with:
path: "/home/runner/.cargo/bin/wasm-tools"
key: crate-cache-wasm-tools-${{ env.wasm-tools_version }}
- name: Build CLI
run: npm run build:cli
- name: Build WPT runtime
run: tests/wpt-harness/build-wpt-runtime.sh --debug-build
- name: Prepare WPT hosts
run: |
cd tests/wpt-harness/wpt
./wpt make-hosts-file | sudo tee -a /etc/hosts
- name: Run tests
timeout-minutes: 20
run: node ./tests/wpt-harness/run-wpt.mjs -vv
run-wpt:
strategy:
matrix:
profile: [release, weval]
if: github.ref != 'refs/heads/main'
name: Run Web Platform Tests
needs: [build, ensure-cargo-installs]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Set up Node LTS
uses: actions/setup-node@v3
with:
node-version: 'lts/*'
- run: npm ci
- name: Download Engine
uses: actions/download-artifact@v4
with:
name: fastly-${{ matrix.profile }}
- name: Download Engine Weval Cache
if: matrix.profile == 'weval'
uses: actions/download-artifact@v4
with:
name: fastly-weval-ic-cache
- name: Restore Viceroy from cache
uses: actions/cache@v3
with:
path: "/home/runner/.cargo/bin/viceroy"
key: crate-cache-viceroy-${{ env.viceroy_version }}
- name: Restore wasm-tools from cache
uses: actions/cache@v3
id: wasm-tools
with:
path: "/home/runner/.cargo/bin/wasm-tools"
key: crate-cache-wasm-tools-${{ env.wasm-tools_version }}
- name: Build CLI
run: npm run build:cli
- name: Build WPT runtime
run: tests/wpt-harness/build-wpt-runtime.sh ${{matrix.profile == 'weval' && '--enable-experimental-aot' || matrix.profile == 'debug' && '--debug-build' || ''}}
- name: Prepare WPT hosts
run: |
cd tests/wpt-harness/wpt
./wpt make-hosts-file | sudo tee -a /etc/hosts
- name: Run tests
timeout-minutes: 20
run: node ./tests/wpt-harness/run-wpt.mjs -vv
sdktest:
concurrency:
group: ${{ github.head_ref }}--sdktest-${{matrix.profile}}-${{matrix.platform}}
if: github.ref != 'refs/heads/main'
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
platform: [viceroy, compute]
profile: [release, weval]
features: [none, http-cache]
exclude:
- platform: viceroy
features: http-cache
needs: [build, ensure-cargo-installs]
steps:
- name: Checkout fastly/js-compute-runtime
uses: actions/checkout@v6
with:
submodules: false
- uses: actions/setup-node@v3
with:
node-version: 'lts/*'
- name: Set up Fastly CLI
uses: fastly/compute-actions/setup@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
cli_version: ${{ env.fastly-cli_version }}
- name: Restore Viceroy from cache
if: matrix.platform == 'viceroy'
uses: actions/cache@v3
id: viceroy
with:
path: "/home/runner/.cargo/bin/viceroy"
key: crate-cache-viceroy-${{ env.viceroy_version }}
- name: Restore wasm-tools from cache
uses: actions/cache@v3
id: wasm-tools
with:
path: "/home/runner/.cargo/bin/wasm-tools"
key: crate-cache-wasm-tools-${{ env.wasm-tools_version }}
- name: Download Engine
uses: actions/download-artifact@v4
with:
name: fastly-${{ matrix.profile }}
- name: Download Engine (AOT weval cache)
uses: actions/download-artifact@v4
if: matrix.profile == 'weval'
with:
name: fastly-${{ matrix.profile }}-ic-cache
- name: Npm install
run: npm install && cd ./integration-tests/js-compute && npm install
- name: Build CLI
run: npm run build:cli
- name: Run Tests
run: SUFFIX_STRING=${{matrix.profile}}-${{ github.run_id }}-${{ github.run_attempt }} node integration-tests/js-compute/test.js --ci --skip-teardown${{ matrix.platform == 'viceroy' && ' --local' || '' }}${{ matrix.profile == 'weval' && ' --aot' || '' }}${{ matrix.features == 'http-cache' && ' --http-cache' || '' }}
env:
FASTLY_API_TOKEN: ${{ secrets.FASTLY_API_TOKEN }}
- name: Run Module Mode Tests
run: SUFFIX_STRING=${{matrix.profile}}-${{ github.run_id }}-${{ github.run_attempt }} node integration-tests/js-compute/test.js --ci --fixture=module-mode${{ matrix.platform == 'viceroy' && ' --local' || '' }}${{ matrix.profile == 'weval' && ' --aot' || '' }}${{ matrix.features == 'http-cache' && ' --http-cache' || '' }}
env:
FASTLY_API_TOKEN: ${{ secrets.FASTLY_API_TOKEN }}
- name: Run Reusable Sandbox Tests
if: matrix.platform == 'viceroy'
run: SUFFIX_STRING=${{matrix.profile}}-${{ github.run_id }}-${{ github.run_attempt }} node integration-tests/js-compute/test.js --ci --serial --fixture=reusable-sandboxes --local${{ matrix.profile == 'weval' && ' --aot' || '' }}${{ matrix.features == 'http-cache' && ' --http-cache' || '' }}
env:
FASTLY_API_TOKEN: ${{ secrets.FASTLY_API_TOKEN }}
sdktest-debug:
concurrency:
group: ${{ github.head_ref }}--sdktest-debug-${{matrix.platform}}
if: github.ref != 'refs/heads/main'
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
platform: [viceroy, compute]
features: [none, http-cache]
exclude:
- platform: viceroy
features: http-cache
needs: [build-debug, ensure-cargo-installs]
steps:
- name: Checkout fastly/js-compute-runtime
uses: actions/checkout@v4
with:
submodules: false
- uses: actions/setup-node@v3
with:
node-version: 'lts/*'
- name: Set up Fastly CLI
uses: fastly/compute-actions/setup@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
cli_version: ${{ env.fastly-cli_version }}
- name: Restore Viceroy from cache
if: matrix.platform == 'viceroy'
uses: actions/cache@v3
id: viceroy
with:
path: "/home/runner/.cargo/bin/viceroy"
key: crate-cache-viceroy-${{ env.viceroy_version }}
- name: Restore wasm-tools from cache
uses: actions/cache@v3
id: wasm-tools
with:
path: "/home/runner/.cargo/bin/wasm-tools"
key: crate-cache-wasm-tools-${{ env.wasm-tools_version }}
- name: Download Engine
uses: actions/download-artifact@v4
with:
name: fastly-debug
- name: Strip debug sections (compute only)
if: matrix.platform == 'compute'
run: wasm-tools strip fastly.debug.wasm -d ".debug_(info|loc|ranges|abbrev|line|str)" -o fastly.debug.wasm
- name: Npm install
run: npm install && cd ./integration-tests/js-compute && npm install
- name: Build CLI
run: npm run build:cli
- name: Run Tests
run: SUFFIX_STRING=debug-${{ github.run_id }}-${{ github.run_attempt }} node integration-tests/js-compute/test.js --ci --skip-teardown --debug-build${{ matrix.platform == 'viceroy' && ' --local' || '' }}${{ matrix.features == 'http-cache' && ' --http-cache' || '' }}
env:
FASTLY_API_TOKEN: ${{ secrets.FASTLY_API_TOKEN }}
- name: Run Module Mode Tests
run: SUFFIX_STRING=debug-${{ github.run_id }}-${{ github.run_attempt }} node integration-tests/js-compute/test.js --ci --fixture=module-mode --debug-build${{ matrix.platform == 'viceroy' && ' --local' || '' }}${{ matrix.features == 'http-cache' && ' --http-cache' || '' }}
env:
FASTLY_API_TOKEN: ${{ secrets.FASTLY_API_TOKEN }}
- name: Run Reusable Sandbox Tests
if: matrix.platform == 'viceroy'
run: SUFFIX_STRING=debug-${{ github.run_id }}-${{ github.run_attempt }} node integration-tests/js-compute/test.js --ci --serial --fixture=reusable-sandboxes --debug-build${{ matrix.platform == 'viceroy' && ' --local' || '' }}${{ matrix.features == 'http-cache' && ' --http-cache' || '' }}
env:
FASTLY_API_TOKEN: ${{ secrets.FASTLY_API_TOKEN }}
================================================
FILE: .github/workflows/release-please.yml
================================================
on:
push:
branches:
- main
permissions:
id-token: write
contents: write
issues: write
pull-requests: write
packages: write
env:
wasm-tools_version: 1.216.0
name: release-please
jobs:
release:
runs-on: ubuntu-latest
outputs:
releases_created: ${{ steps.release.outputs.releases_created }}
pr: ${{ steps.release.outputs.pr }}
steps:
- uses: google-github-actions/release-please-action@v3
id: release
with:
release-type: node
package-name: "@fastly/js-compute"
changelog-path: "CHANGELOG.md"
bump-minor-pre-major: true
bump-patch-for-minor-pre-major: true
draft: false
prerelease: false
token: ${{ secrets.GITHUB_TOKEN }}
update-lock-and-docs:
runs-on: ubuntu-latest
needs: release
if: ${{ needs.release.outputs.pr && !needs.release.outputs.releases_created }}
steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: true
ref: release-please--branches--main--components--js-compute
fetch-depth: 2
token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 'lts/*'
- name: Cache Compute File Server CLI
id: cache-compute-file-server-cli
uses: actions/cache@v3
with:
path: "/home/runner/.cargo/bin/compute-file-server-cli"
key: crate-cache-compute-file-server-cli
- name: Install Compute File Server CLI
if: steps.cache-compute-file-server-cli.outputs.cache-hit != 'true'
run: cd compute-file-server-cli && cargo install --path .
- run: npm update
working-directory: ./documentation
- run: npm run add-fastly-prefix
working-directory: ./documentation
- run: npm run docusaurus docs:version "$(npm pkg get version --json --prefix=../ | jq -r)"
working-directory: ./documentation
- run: npm update
working-directory: ./documentation/app
- run: npm run build:files
working-directory: ./documentation/app
- run: npm install && npm run format-changelog
- run: npm run remove-fastly-prefix
working-directory: ./documentation
- name: Committing and push changes
run: |
git config user.name "${GITHUB_ACTOR}"
git config user.email "${GITHUB_ACTOR}@users.noreply.github.com"
git add .
git commit -m "chore: add docs for $(npm pkg get version --json | jq -r)"
git push --force
build:
name: Build
runs-on: ubuntu-latest
needs: release
if: ${{ needs.release.outputs.releases_created }}
strategy:
matrix:
profile: [debug, release, weval]
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Set up Node LTS
uses: actions/setup-node@v3
with:
node-version: 'lts/*'
- run: npm ci
- name: Install Rust 1.81.0
run: |
rustup toolchain install 1.81.0
rustup target add wasm32-wasip1 --toolchain 1.81.0
- name: Restore wasm-tools from cache
uses: actions/cache@v3
id: wasm-tools
with:
path: "/home/runner/.cargo/bin/wasm-tools"
key: crate-cache-wasm-tools-${{ env.wasm-tools_version }}
- name: Build CLI
run: npm run build:cli
- name: Build
if: ${{ matrix.profile == 'release' }}
run: npm run build:release
- name: Build
if: ${{ matrix.profile == 'debug' }}
run: npm run build:debug
- name: Build
if: ${{ matrix.profile == 'weval' }}
run: npm run build:weval
- uses: actions/upload-artifact@v4
with:
if-no-files-found: error
name: fastly-${{ matrix.profile }}
path: fastly${{ matrix.profile == 'debug' && '.debug.wasm' || (matrix.profile == 'weval' && '-weval.wasm' || '.wasm') }}
- uses: actions/upload-artifact@v4
if: ${{ matrix.profile == 'weval' }}
with:
name: fastly-${{ matrix.profile }}-ic-cache
path: fastly-ics.wevalcache
publish:
runs-on: ubuntu-latest
needs: [release, build]
if: ${{ needs.release.outputs.releases_created }}
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 'lts/*'
registry-url: 'https://registry.npmjs.org'
- name: Restore wasm-tools from cache
uses: actions/cache@v3
id: wasm-tools
with:
path: "/home/runner/.cargo/bin/wasm-tools"
key: crate-cache-wasm-tools-${{ env.wasm-tools_version }}
- name: Cache Compute File Server CLI
id: cache-compute-file-server-cli
uses: actions/cache@v3
with:
path: "/home/runner/.cargo/bin/compute-file-server-cli"
key: crate-cache-compute-file-server-cli
- name: Install Compute File Server CLI
if: steps.cache-compute-file-server-cli.outputs.cache-hit != 'true'
run: cd compute-file-server-cli && cargo install --path .
- run: npm install --immutable
- name: Download Engine Release
uses: actions/download-artifact@v4
with:
name: fastly-release
- name: Download Engine Debug
uses: actions/download-artifact@v4
with:
name: fastly-debug
- name: Download Engine Weval
uses: actions/download-artifact@v4
with:
name: fastly-weval
- name: Download Engine Weval Cache
uses: actions/download-artifact@v4
with:
name: fastly-weval-ic-cache
- name: Build CLI
run: npm run build:cli
- name: npmjs publish
run: npm publish
- name: github package registry publish
run: |
cat << EOF > .npmrc
//npm.pkg.github.com/:_authToken=${GITHUB_TOKEN}
@fastly:registry=https://npm.pkg.github.com
registry=https://registry.npmjs.org/
always-auth=true
EOF
npm publish
rm .npmrc
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: npm run add-fastly-prefix
working-directory: ./documentation
- run: npm ci
working-directory: ./documentation
- name: Set up Fastly CLI
uses: fastly/compute-actions/setup@v2
with:
token: ${{ secrets.GITHUB_TOKEN }}
cli_version: '14.2.0'
- run: npm run deploy
timeout-minutes: 120
env:
FASTLY_API_TOKEN: ${{secrets.FASTLY_API_TOKEN}}
working-directory: ./documentation
================================================
FILE: .gitignore
================================================
# TypeScript build output
dist/
# Integration Tests build output
/integration-tests/**/fixtures/**/*.tar.gz
/integration-tests/**/fixtures/**/fastly.toml
/integration-tests/**/fixtures/**/*.wasm
/integration-tests/**/fixtures/**/*.js.map
/runtime/fastly/build-*/
node_modules/
.DS_Store
# compiler_flags
/fastly-weval.wasm
/fastly.debug.wasm
/fastly.wasm
/fastly-ics.wevalcache
tests/wpt-harness/wpt-test-runner.js
wpt-runtime.wasm
docs-app/bin/main.wasm
docs-app/pkg/*.tar.gz
yarn-error.log
.vscode
================================================
FILE: .gitmodules
================================================
[submodule "tests/wpt-harness/wpt"]
path = tests/wpt-harness/wpt
url = https://github.com/web-platform-tests/wpt.git
shallow = true
[submodule "runtime/StarlingMonkey"]
path = runtime/StarlingMonkey
url = git@github.com:bytecodealliance/StarlingMonkey
================================================
FILE: .prettierrc.json
================================================
{
"singleQuote": true
}
================================================
FILE: CHANGELOG.md
================================================
# Changelog
## 3.41.2 (2026-05-04)
### Fixed
* `HttpBody::read_all` for large bodies ([#1444](https://github.com/fastly/js-compute-runtime/issues/1444)) ([99f45b5](https://github.com/fastly/js-compute-runtime/commit/99f45b53253d1109202c24cddc3357752873ca90))
* Check pending exceptions between requests in reusable sandbox mode ([#1425](https://github.com/fastly/js-compute-runtime/issues/1425)) ([64a6b21](https://github.com/fastly/js-compute-runtime/commit/64a6b213c605d2ae714b8a49faad9893284998a5))
* Memory issues exposed by high GC zeal ([#1442](https://github.com/fastly/js-compute-runtime/issues/1442)) ([f406308](https://github.com/fastly/js-compute-runtime/commit/f406308ce6ced5b8475839ce43736fb588d3e4b5))
* Memory leak in normalize\_http\_method ([#1449](https://github.com/fastly/js-compute-runtime/issues/1449)) ([669b58a](https://github.com/fastly/js-compute-runtime/commit/669b58a0f34a03f56571723c442b3fee61c90b3b))
* mislabeled `Response::Slots::URL` slot ([#1445](https://github.com/fastly/js-compute-runtime/issues/1445)) ([6d4d268](https://github.com/fastly/js-compute-runtime/commit/6d4d26815acc817365bc41d0784095650847765a))
* Numeric overflow issue in Core Cache API ([#1448](https://github.com/fastly/js-compute-runtime/issues/1448)) ([360c9bf](https://github.com/fastly/js-compute-runtime/commit/360c9bfff611e226c5dbf5fac61d98e993feded3))
* Potential buffer size issues in shielding ([#1443](https://github.com/fastly/js-compute-runtime/issues/1443)) ([4bf9d72](https://github.com/fastly/js-compute-runtime/commit/4bf9d722b68893f188a89c1e6019c9a7699a023b))
* Reset StarlingMonkey engine between requests ([#1426](https://github.com/fastly/js-compute-runtime/issues/1426)) ([238cf70](https://github.com/fastly/js-compute-runtime/commit/238cf70ecd743f73c662ae3757244859d4d2aaad))
* SSL string cipher intersection ([#1446](https://github.com/fastly/js-compute-runtime/issues/1446)) ([13ef2d5](https://github.com/fastly/js-compute-runtime/commit/13ef2d59a4a0c2e93cc0faa8cd98387e3bdee731))
* Use length rather than NUL-terminator when copying `HostString`s ([#1429](https://github.com/fastly/js-compute-runtime/issues/1429)) ([8aa3f4c](https://github.com/fastly/js-compute-runtime/commit/8aa3f4c2cfa441585ac5d3ee1a0ac4d58196162a))
## 3.41.1 (2026-04-10)
### Fixed
* Deal with bodyless statuses in CandidateResponse situations ([#1414](https://github.com/fastly/js-compute-runtime/issues/1414)) ([cfd6c4b](https://github.com/fastly/js-compute-runtime/commit/cfd6c4bd0ac41bb3037bbcdfb7ba7c6608ce65e6))
* Mark FetchEvent as done when we redirect to ws/grip proxies ([9831bd4](https://github.com/fastly/js-compute-runtime/commit/9831bd48f34ad6e80c7932a02b6acd5292ee2799))
* Support `setCacheKey` for HTTP cache ([#1411](https://github.com/fastly/js-compute-runtime/issues/1411)) ([a707c3d](https://github.com/fastly/js-compute-runtime/commit/a707c3d1156893f969b02da1fec3807c0d095860))
## 3.41.0 (2026-04-08)
### Added
* Add `--gc-frequency` option to `debug-build.sh` ([#1395](https://github.com/fastly/js-compute-runtime/issues/1395)) ([a6e4a1f](https://github.com/fastly/js-compute-runtime/commit/a6e4a1fd11acc62b7ce409f1aa2e017ff85b347c))
* Allow the use of project-level external config file for js-compute-runtime CLI behavior ([#1405](https://github.com/fastly/js-compute-runtime/issues/1405)) ([9749cab](https://github.com/fastly/js-compute-runtime/commit/9749cab9f87be27a19a3a9c14bbddcfe2c590c1f))
* Support installation in projects that use TypeScript 6 ([e4273a3](https://github.com/fastly/js-compute-runtime/commit/e4273a3f004e9af0a61d21c67a1cb6c5680cde29))
### Fixed
* Allow `--aot-cache` and `--debug-intermediate-files` flags to be specified with equals ([#1403](https://github.com/fastly/js-compute-runtime/issues/1403)) ([81a75f8](https://github.com/fastly/js-compute-runtime/commit/81a75f8704bd2befa899e55f382920f7da13f26f))
* Double free in `convertBodyInit` ([#1387](https://github.com/fastly/js-compute-runtime/issues/1387)) ([72acfc3](https://github.com/fastly/js-compute-runtime/commit/72acfc3dc9077026746faaf323e5b11ecf48a4db))
* GC fixes for edge rate limiter ([#1397](https://github.com/fastly/js-compute-runtime/issues/1397)) ([fd9e322](https://github.com/fastly/js-compute-runtime/commit/fd9e322fd852612f8df5d925b6e3a6c646b56109))
* GC issue in handoffs ([#1396](https://github.com/fastly/js-compute-runtime/issues/1396)) ([b57fc8f](https://github.com/fastly/js-compute-runtime/commit/b57fc8f720cd530543ba8c8738c9dfe7bdff905e))
* Shielding GC ([#1401](https://github.com/fastly/js-compute-runtime/issues/1401)) ([6de2f55](https://github.com/fastly/js-compute-runtime/commit/6de2f55b97c45dcd9aa246b22c7dbdafa883ee42))
## 3.40.1 (2026-02-24)
### Fixed
* **early-hints:** early hints don't need to be sync inside a FetchEve… ([#1323](https://github.com/fastly/js-compute-runtime/issues/1323)) ([22ac0cc](https://github.com/fastly/js-compute-runtime/commit/22ac0ccd3205a0136e39621e2cfe93968a5be9f3))
## 3.40.0 (2026-02-17)
### Added
* Allow custom weval binary ([#1315](https://github.com/fastly/js-compute-runtime/issues/1315)) ([b143150](https://github.com/fastly/js-compute-runtime/commit/b143150df609f217e8160759c0cf1dae2f86afb7))
* Reusable sandboxes ([#1314](https://github.com/fastly/js-compute-runtime/issues/1314)) ([70a9d28](https://github.com/fastly/js-compute-runtime/commit/70a9d282d276176777d3369e164d8f89d3e96209))
### Fixed
* Add `security` to docs rename script ([#1316](https://github.com/fastly/js-compute-runtime/issues/1316)) ([7028c0b](https://github.com/fastly/js-compute-runtime/commit/7028c0bd819c44b870140d1536039f9aad6ddd4e))
## 3.39.4 (2026-02-13)
### Fixed
* Body truncation error in chained extract\_body requests ([#1310](https://github.com/fastly/js-compute-runtime/issues/1310)) ([b929648](https://github.com/fastly/js-compute-runtime/commit/b929648bef34c0d41fe387fc755a2554372bb946))
## 3.39.3 (2026-02-12)
### Fixed
* Don't throw from `event.client.geo` or `event.client.address` on hostcall error ([#1306](https://github.com/fastly/js-compute-runtime/issues/1306)) ([471b112](https://github.com/fastly/js-compute-runtime/commit/471b1128a32b3a2233a95eb14e2887abbb6183c0))
## 3.39.2 (2026-02-09)
### Fixed
* NPM publication ([f80c089](https://github.com/fastly/js-compute-runtime/commit/f80c089fa9a50835955c0b1a1b42bc24b5eceb3d))
## 3.39.1 (2026-02-09)
### Fixed
* For now, go back to old behavior for default exported types. ([#1298](https://github.com/fastly/js-compute-runtime/issues/1298)) ([e6d96d4](https://github.com/fastly/js-compute-runtime/commit/e6d96d47206821855d80d651bfa248a6d7da4453))
* TransformStream shortcutting fixes ([#1301](https://github.com/fastly/js-compute-runtime/issues/1301)) ([51369ae](https://github.com/fastly/js-compute-runtime/commit/51369ae51d721199e0bbc6f6d168f4b8f7aee947))
## 3.39.0 (2026-01-28)
### Added
* Add `isBot` support to device detection ([#1287](https://github.com/fastly/js-compute-runtime/issues/1287)) ([fe079b1](https://github.com/fastly/js-compute-runtime/commit/fe079b16858ff18da3fe9210da0f5cc3c6bee0b0))
* Implement `firstByteTimeout` for shielding ([#1286](https://github.com/fastly/js-compute-runtime/issues/1286)) ([ad445b7](https://github.com/fastly/js-compute-runtime/commit/ad445b70ddd56bcd39d6201ad3f15e860cb85db4))
* Map the FastlyStatus values into KVStoreError values the same way the Rust SDK does ([#1280](https://github.com/fastly/js-compute-runtime/issues/1280)) ([726f4e2](https://github.com/fastly/js-compute-runtime/commit/726f4e285805e91cfcc0c7fdd58f127e4d2e9094))
### Fixed
* Correct default export ([#1269](https://github.com/fastly/js-compute-runtime/issues/1269)) ([58d872e](https://github.com/fastly/js-compute-runtime/commit/58d872e2ff6b6351ac4018f590f3a27a1e015297))
* suppress sourcemap for bundle() step when `--enable-stack-traces` is not set ([#1277](https://github.com/fastly/js-compute-runtime/issues/1277)) ([ab8c12e](https://github.com/fastly/js-compute-runtime/commit/ab8c12e6aaf22dcf52ca74834fb5712a7ed83b42))
## 3.38.4 (2026-01-23)
### Fixed
* Don't shortcut transform too early ([#1281](https://github.com/fastly/js-compute-runtime/issues/1281)) ([291814e](https://github.com/fastly/js-compute-runtime/commit/291814e330ae5e1e894f0a57db0dedc8b27fd9bd))
## 3.38.3 (2026-01-22)
### Fixed
* clean script to include TypeScript output directory ([#1270](https://github.com/fastly/js-compute-runtime/issues/1270)) ([015e40c](https://github.com/fastly/js-compute-runtime/commit/015e40c7f6cf6bf95f5a2ff7c52f4225948146a1))
* pin lol\_html to 2.7.0 ([#1276](https://github.com/fastly/js-compute-runtime/issues/1276)) ([363550a](https://github.com/fastly/js-compute-runtime/commit/363550ae80056fb0e6fda2c7b67ddf4859d67fa8))
* Rename shielding docs ([#1272](https://github.com/fastly/js-compute-runtime/issues/1272)) ([e12ab47](https://github.com/fastly/js-compute-runtime/commit/e12ab476821e9656dcdb5025e6ed54f40daf8da5))
* Try and shortcut transform stream reading before doing a regular read ([#1279](https://github.com/fastly/js-compute-runtime/issues/1279)) ([6b9b939](https://github.com/fastly/js-compute-runtime/commit/6b9b939471e1589091f6cfa2f7864a528df35b1c))
## 3.38.2 (2025-12-19)
### Fixed
* Handle cross-volume renames of intermediate files ([#1264](https://github.com/fastly/js-compute-runtime/issues/1264)) ([94e5671](https://github.com/fastly/js-compute-runtime/commit/94e5671090cbde1c3159032c90aa3f3ad2fdc88a))
## 3.38.1 (2025-12-18)
### Fixed
* Build CLI in npm publish ([#1262](https://github.com/fastly/js-compute-runtime/issues/1262)) ([2fe6e2d](https://github.com/fastly/js-compute-runtime/commit/2fe6e2d5b38c74c4a3f7c4a4941d116ec75b1d88))
## 3.38.0 (2025-12-18)
### Added
* **config:** add support for config store buffers longer than 8k ([#1181](https://github.com/fastly/js-compute-runtime/issues/1181)) ([da4c169](https://github.com/fastly/js-compute-runtime/commit/da4c169f7a302c2e6c2a1796c791b9463c4dc2a8))
* **inspect:** add support for NGWAF inspect api ([#1212](https://github.com/fastly/js-compute-runtime/issues/1212)) ([98f45e4](https://github.com/fastly/js-compute-runtime/commit/98f45e4d678e294301c21be2ddf16c4482683ef7))
### Fixed
* Correct behaviour of chained body proxy streams in some circumstances ([#1259](https://github.com/fastly/js-compute-runtime/issues/1259)) ([11f9a4b](https://github.com/fastly/js-compute-runtime/commit/11f9a4b5b5fc90f9f2eb9f6a6958e971fbd52e19))
* make shielding.d.ts ambient ([#1256](https://github.com/fastly/js-compute-runtime/issues/1256)) ([7a0e987](https://github.com/fastly/js-compute-runtime/commit/7a0e9876d0e001ad6c1b87b3701ecfffddc7b5ad))
## 3.37.0 (2025-12-11)
### Added
* Add client fingerprint properties (tlsJA4, h2Fingerprint, ohFingerprint) ([#1248](https://github.com/fastly/js-compute-runtime/issues/1248)) ([9390e8c](https://github.com/fastly/js-compute-runtime/commit/9390e8cdf37206a570512cf8d36335c70bc5ccde))
* Shielding support ([#1241](https://github.com/fastly/js-compute-runtime/issues/1241)) ([985c55e](https://github.com/fastly/js-compute-runtime/commit/985c55e634227b8dac66aea9b7ba4ca982b41b9c))
## 3.36.0 (2025-11-18)
### Added
* Image Optimizer support ([#1224](https://github.com/fastly/js-compute-runtime/issues/1224)) ([c3dd3de](https://github.com/fastly/js-compute-runtime/commit/c3dd3de7436f999055eb0b3d83a1f59c1c26b5d1))
* Implement 103 Early Hints ([#1217](https://github.com/fastly/js-compute-runtime/issues/1217)) ([fda6ad3](https://github.com/fastly/js-compute-runtime/commit/fda6ad31d6f8ceee16cd950217be770a4f794bb3))
### Fixed
* **fanout:** commit request headers before fanout handoff ([#1222](https://github.com/fastly/js-compute-runtime/issues/1222)) ([8dfefad](https://github.com/fastly/js-compute-runtime/commit/8dfefadec46a2714be010c4a8c7e59cd43537fec))
* Fix broken KVStore test ([#1223](https://github.com/fastly/js-compute-runtime/issues/1223)) ([6055d88](https://github.com/fastly/js-compute-runtime/commit/6055d884f617336d8d6326bf26dcfb49265f5ae2))
## 3.35.2 (2025-11-07)
### Fixed
* **compute-file-server:** bump MSRV to fix ICU build issues ([#1221](https://github.com/fastly/js-compute-runtime/issues/1221)) ([379e511](https://github.com/fastly/js-compute-runtime/commit/379e51153e07962972b8a69e645e0f55912122d0))
* surrogateKeys not being added when using CoreCache ([#1219](https://github.com/fastly/js-compute-runtime/issues/1219)) ([b0efe20](https://github.com/fastly/js-compute-runtime/commit/b0efe20c2f6f96755bb450d139e002797b376802))
* **ws:** commit ws request headers before upgrading ([#1216](https://github.com/fastly/js-compute-runtime/issues/1216)) ([a15fa61](https://github.com/fastly/js-compute-runtime/commit/a15fa6148427801bbaf4d862b9a21884f21758f9))
## 3.35.1 (2025-09-29)
### Fixed
* Root HTML rewriter variables to ensure no GC ([#1202](https://github.com/fastly/js-compute-runtime/issues/1202)) ([6aaf9f3](https://github.com/fastly/js-compute-runtime/commit/6aaf9f391acccfb68c5a012d92bf324df04d4230))
## 3.35.0 (2025-09-26)
### Added
* HTML Rewriter ([0015ff1](https://github.com/fastly/js-compute-runtime/commit/0015ff155b9f57995ccf63671aee8c112b664678))
### Fixed
* Remove broken CI tests ([5b645f7](https://github.com/fastly/js-compute-runtime/commit/5b645f726f7a4f6eb741db3addda4b45be1dd63c))
* Update rust toolchain for compute-file-server-cli ([09d5a6d](https://github.com/fastly/js-compute-runtime/commit/09d5a6dc66b0f1befff7268915f13dc4d7ac0854))
## 3.34.0 (2025-04-11)
### Added
* add support for Websocket passthrough ([#1172](https://github.com/fastly/js-compute-runtime/issues/1172)) ([fcf2a54](https://github.com/fastly/js-compute-runtime/commit/fcf2a54e2935061b4d67ccb430d485d79ee0bd04))
## 3.33.4 (2025-04-04)
### Fixed
* publish workflow ([#1166](https://github.com/fastly/js-compute-runtime/issues/1166)) ([3db857c](https://github.com/fastly/js-compute-runtime/commit/3db857c095aabbb15060694c3c84ae985cee13a1))
## 3.33.3 (2025-04-04)
### Fixed
* config store documentation fix ([#1160](https://github.com/fastly/js-compute-runtime/issues/1160)) ([4047c7b](https://github.com/fastly/js-compute-runtime/commit/4047c7b0862bbaa799053cc341674725425f933a))
* TypeScript declaration for Headers ([#1155](https://github.com/fastly/js-compute-runtime/issues/1155)) ([a6664b9](https://github.com/fastly/js-compute-runtime/commit/a6664b908db4f2f784ddedc53798f7c31474530e))
## 3.33.2 (2025-03-17)
### Fixed
* TypeScript declaration return type of Acl.open() ([#1149](https://github.com/fastly/js-compute-runtime/issues/1149)) ([b9765f6](https://github.com/fastly/js-compute-runtime/commit/b9765f68823529327a8ec75268f4833d308ad6bd))
* TypeScript type definitions for Blob, File, FormData ([#1150](https://github.com/fastly/js-compute-runtime/issues/1150)) ([4c93d79](https://github.com/fastly/js-compute-runtime/commit/4c93d794390e3f2cb98e8e806744620e2cde3b3b))
* TypeScript type definitions for Event and EventTarget ([#1151](https://github.com/fastly/js-compute-runtime/issues/1151)) ([eb1ab0d](https://github.com/fastly/js-compute-runtime/commit/eb1ab0d2f693c199947e8b6ffc4a7c1d758024ad))
## 3.33.1 (2025-03-12)
### Fixed
* documentation fix ([#1147](https://github.com/fastly/js-compute-runtime/issues/1147)) ([15b9ea5](https://github.com/fastly/js-compute-runtime/commit/15b9ea5b3121e779f0873a1562cc51ed710135c7))
## 3.33.0 (2025-03-12)
### Added
* add support for EventTarget ([#1145](https://github.com/fastly/js-compute-runtime/issues/1145)) ([a735993](https://github.com/fastly/js-compute-runtime/commit/a735993e609b5e2405a5223e7bc02ef655a47d68))
* FormData support and Request.formData and Response.formData ([#1144](https://github.com/fastly/js-compute-runtime/issues/1144)) ([0214ae7](https://github.com/fastly/js-compute-runtime/commit/0214ae70b8d5afd1bc66231d779af5b606e89efb))
### Fixed
* Backend.prototype.health method definition ([#1143](https://github.com/fastly/js-compute-runtime/issues/1143)) ([42d429b](https://github.com/fastly/js-compute-runtime/commit/42d429bafdd7ec02854217675bdb58eba1e533a4))
* Weval stack overflow bug ([#1135](https://github.com/fastly/js-compute-runtime/issues/1135)) ([f6947d9](https://github.com/fastly/js-compute-runtime/commit/f6947d9eb9fcd10f91c8c439a8a5cd6db8169d9e))
## 3.32.2 (2025-02-26)
### Fixed
* ready-based immediate task indexing ([#1129](https://github.com/fastly/js-compute-runtime/issues/1129)) ([8cfad4f](https://github.com/fastly/js-compute-runtime/commit/8cfad4f78c137afbdc0281e92c39e31415a1188b))
## 3.32.1 (2025-02-20)
### Fixed
* docs server toolchain fix ([#1124](https://github.com/fastly/js-compute-runtime/issues/1124)) ([c2490d1](https://github.com/fastly/js-compute-runtime/commit/c2490d117754cb53a88cf3d40a1795a7b5177f54))
## 3.32.0 (2025-02-20)
### Added
* Acl Support ([#1073](https://github.com/fastly/js-compute-runtime/issues/1073)) ([0f93f7b](https://github.com/fastly/js-compute-runtime/commit/0f93f7ba72f3a7cdb3de979af8ef677bccc1bd5b))
## 3.31.0 (2025-02-14)
### Added
* KV store generation integer follow up ([#1029](https://github.com/fastly/js-compute-runtime/issues/1029)) ([#1108](https://github.com/fastly/js-compute-runtime/issues/1108)) ([8a076da](https://github.com/fastly/js-compute-runtime/commit/8a076dae5de19cb23cee0569359a6879667d6275))
## 3.30.1 (2025-02-01)
### Fixed
* docs build ([#1104](https://github.com/fastly/js-compute-runtime/issues/1104)) ([49b4758](https://github.com/fastly/js-compute-runtime/commit/49b47580819b0be4718f7156e7ab8d8eb8375143))
## 3.30.0 (2025-01-31)
### Added
* HTTP Cache API ([#1051](https://github.com/fastly/js-compute-runtime/issues/1051)) ([35e7565](https://github.com/fastly/js-compute-runtime/commit/35e7565eaa64a957445fbfd1b8acd9f78b289ba1))
### Fixed
* forbidden KV key special characters to match documentation ([#1097](https://github.com/fastly/js-compute-runtime/issues/1097)) ([fefc024](https://github.com/fastly/js-compute-runtime/commit/fefc024e9b53cc6e0a8bfa6769817a55e2ac154d))
## 3.29.2 (2025-01-23)
### Fixed
* release workflow artifact version ([#1094](https://github.com/fastly/js-compute-runtime/issues/1094)) ([1c46dd6](https://github.com/fastly/js-compute-runtime/commit/1c46dd6f70908ab9f73d6aa890288056004a8498))
## 3.29.1 (2025-01-23)
### Fixed
* to release process, update upload artifact ([#1092](https://github.com/fastly/js-compute-runtime/issues/1092)) ([fb5d25f](https://github.com/fastly/js-compute-runtime/commit/fb5d25ff2276c40a640c6e83ce521379687ce656))
## 3.29.0 (2025-01-23)
### Added
* Blob support for fetch API ([#1070](https://github.com/fastly/js-compute-runtime/issues/1070)) ([56aa96d](https://github.com/fastly/js-compute-runtime/commit/56aa96d5a223d45d79327f0a19bcfd93f1e90363))
* Fanout update to redirect\_to\_grip\_proxy\_v2 passing request handle ([#1079](https://github.com/fastly/js-compute-runtime/issues/1079)) ([baf0a6e](https://github.com/fastly/js-compute-runtime/commit/baf0a6e3f2d655954d7ae73944b7e72709356a2d))
* support --env option for the runtime build ([#1090](https://github.com/fastly/js-compute-runtime/issues/1090)) ([e81d252](https://github.com/fastly/js-compute-runtime/commit/e81d252e0f1c2a76441cef407c7c1dc84ed93dcc))
### Fixed
* reinstate broken wpt tests ([#1071](https://github.com/fastly/js-compute-runtime/issues/1071)) ([5e2c682](https://github.com/fastly/js-compute-runtime/commit/5e2c68228be24ea6bd286fca0ca1ffbe028199c2))
## 3.28.0 (2024-12-09)
### Added
* configureConsole function for configuring log prefixing and stderr ([#1065](https://github.com/fastly/js-compute-runtime/issues/1065)) ([9ed80ee](https://github.com/fastly/js-compute-runtime/commit/9ed80ee349b4178a54b960081fcae622a6406b70))
* StarlingMonkey update ([#1067](https://github.com/fastly/js-compute-runtime/issues/1067)) ([857f6fa](https://github.com/fastly/js-compute-runtime/commit/857f6fa497be5e4ba2b48392dbbdc11ab7e98e34))
### Fixed
* do not throw uninitialized for KV ([#1064](https://github.com/fastly/js-compute-runtime/issues/1064)) ([c160c4a](https://github.com/fastly/js-compute-runtime/commit/c160c4ab5378be20052fed66abc9d194a4329065))
* KVStore lookup fix for if-generation-match option ([#1069](https://github.com/fastly/js-compute-runtime/issues/1069)) ([9e4c795](https://github.com/fastly/js-compute-runtime/commit/9e4c795c3c083a85d36808e1ac26376a3779e0a4))
## 3.27.3 (2024-12-03)
### Fixed
* KVStore error handling ([#1060](https://github.com/fastly/js-compute-runtime/issues/1060)) ([95885d8](https://github.com/fastly/js-compute-runtime/commit/95885d88b471aa17421dc52073df98e055737e40))
## 3.27.2 (2024-11-09)
### Fixed
* docs build, ensuring compute-file-server-cli for publish ([#1044](https://github.com/fastly/js-compute-runtime/issues/1044)) ([40de0b8](https://github.com/fastly/js-compute-runtime/commit/40de0b86a012df7fdba8d764b22ea2893b3d8a0d))
## 3.27.1 (2024-11-09)
### Fixed
* documentation site build ([#1042](https://github.com/fastly/js-compute-runtime/issues/1042)) ([3211ff9](https://github.com/fastly/js-compute-runtime/commit/3211ff989658a4c00bd2198ed32b723d13e7a19c))
## 3.27.0 (2024-11-07)
### Added
* \--enable-aot AOT compilation flag; no longer experimental. ([#1033](https://github.com/fastly/js-compute-runtime/issues/1033)) ([8128c4d](https://github.com/fastly/js-compute-runtime/commit/8128c4dd4b64b5a9979d7dc690d02b2c7bbcc1f7))
### Fixed
* ensure headers are set on first commit ([#1036](https://github.com/fastly/js-compute-runtime/issues/1036)) ([d622799](https://github.com/fastly/js-compute-runtime/commit/d6227994b896b3e31592231db955ddef3e8356bc))
* fixup compute-file-server-cli dependency build ([#1037](https://github.com/fastly/js-compute-runtime/issues/1037)) ([206a60e](https://github.com/fastly/js-compute-runtime/commit/206a60ed49ebb209df04c9337d9703f1c12a3153))
## 3.26.0 (2024-10-31)
### Added
* document AOT optimization flag ([#1023](https://github.com/fastly/js-compute-runtime/issues/1023)) ([9ba14cd](https://github.com/fastly/js-compute-runtime/commit/9ba14cdb263341d80476233424c9c2c7d5276c2c))
* KV Store v2 ([#1004](https://github.com/fastly/js-compute-runtime/issues/1004)) ([fda97cc](https://github.com/fastly/js-compute-runtime/commit/fda97cc423a9eb96bd11ac5a5b9a5d4b6f93b081))
* module mode ([#1021](https://github.com/fastly/js-compute-runtime/issues/1021)) ([9e47649](https://github.com/fastly/js-compute-runtime/commit/9e4764919c678701accd9cef039de5ff2761f7cc))
### Fixed
* typing file for compute builtin ([#1028](https://github.com/fastly/js-compute-runtime/issues/1028)) ([b328546](https://github.com/fastly/js-compute-runtime/commit/b3285467f0e5fedcca6bd23ee414db1e8d92a83a))
## 3.25.0 (2024-10-22)
### Added
* support backend property on both Request and Response, as a Backend instance ([#1019](https://github.com/fastly/js-compute-runtime/issues/1019)) ([4e3b93d](https://github.com/fastly/js-compute-runtime/commit/4e3b93d9de1f0af9eed7c900eedb8a509d7723da))
### Fixed
* set SSL properly for created dynamic backends ([#1016](https://github.com/fastly/js-compute-runtime/issues/1016)) ([616e898](https://github.com/fastly/js-compute-runtime/commit/616e89827087623b8180665591127143532dc309))
## 3.24.3 (2024-10-16)
### Fixed
* docs build, dependency updates ([#1013](https://github.com/fastly/js-compute-runtime/issues/1013)) ([59dc069](https://github.com/fastly/js-compute-runtime/commit/59dc069b97d5b1ef6fba049d592d727dcc409c97))
## 3.24.2 (2024-10-16)
### Fixed
* doc links for deploy ([#1011](https://github.com/fastly/js-compute-runtime/issues/1011)) ([1c55c91](https://github.com/fastly/js-compute-runtime/commit/1c55c91169611a09517bbeecaaa4a55ae9676503))
## 3.24.1 (2024-10-16)
### Fixed
* release workflow versioning ([#1009](https://github.com/fastly/js-compute-runtime/issues/1009)) ([1922c8a](https://github.com/fastly/js-compute-runtime/commit/1922c8affa3085dedf44e7f8adada3be50649118))
## 3.24.0 (2024-10-15)
### Added
* default enable allowDynamicBackends with better unsupported errors ([#995](https://github.com/fastly/js-compute-runtime/issues/995)) ([bb858fe](https://github.com/fastly/js-compute-runtime/commit/bb858fe71ffa20a6be256fa27c1bfa9e44a503e5))
* setDefaultDynamicBackendConfig with all backend configuration options ([#993](https://github.com/fastly/js-compute-runtime/issues/993)) ([1847924](https://github.com/fastly/js-compute-runtime/commit/1847924e223f01679017d7f79658b7601ad5bd7a))
* support backend property hostcalls ([#1002](https://github.com/fastly/js-compute-runtime/issues/1002)) ([1d9f91a](https://github.com/fastly/js-compute-runtime/commit/1d9f91a2cba2b5d2dad8ae03094ed9452fcb0a42))
## 3.23.0 (2024-09-18)
### Added
* grpc backend option ([#971](https://github.com/fastly/js-compute-runtime/issues/971)) ([e10829d](https://github.com/fastly/js-compute-runtime/commit/e10829d73aa0e0ccee20f19ad4c27b79f3c0723e))
### Fixed
* never error for missing client data, return null instead ([#979](https://github.com/fastly/js-compute-runtime/issues/979)) ([7068321](https://github.com/fastly/js-compute-runtime/commit/706832106fce165c5857f9671cb004ce33537225))
* null return instead of an error for missing geo data ([d4c9b69](https://github.com/fastly/js-compute-runtime/commit/d4c9b699a115b5475b5a06b2ba66e259c8d4e952))
* simple cache getOrSet inner rejections to reject outer promise ([#981](https://github.com/fastly/js-compute-runtime/issues/981)) ([c1fdc49](https://github.com/fastly/js-compute-runtime/commit/c1fdc49211b88dbf17a195782ac34a5c226f3f9f))
## 3.22.4 (2024-09-13)
### Fixed
* docs build ([#968](https://github.com/fastly/js-compute-runtime/issues/968)) ([796cdc0](https://github.com/fastly/js-compute-runtime/commit/796cdc03b4a123f2edc9d8fdeb21246cc63669ee))
## 3.22.3 (2024-09-12)
### Fixed
* docs version include ([#966](https://github.com/fastly/js-compute-runtime/issues/966)) ([9be970d](https://github.com/fastly/js-compute-runtime/commit/9be970dc68010e7ee292c0383a0ef58100e384cd))
## 3.22.2 (2024-09-12)
### Fixed
* docs deployment ([#964](https://github.com/fastly/js-compute-runtime/issues/964)) ([510c246](https://github.com/fastly/js-compute-runtime/commit/510c246315cfb247485aed05442be93981e965f2))
## 3.22.1 (2024-09-12)
### Fixed
* fastly:compute type index ([#960](https://github.com/fastly/js-compute-runtime/issues/960)) ([9bd25fd](https://github.com/fastly/js-compute-runtime/commit/9bd25fd5481693394669d814738fb3d05fdf2312))
* windows support & windows ci ([#962](https://github.com/fastly/js-compute-runtime/issues/962)) ([d8e9c5e](https://github.com/fastly/js-compute-runtime/commit/d8e9c5e5a7ec6972ad6018b66a4eb454bef4c8f0))
## 3.22.0 (2024-09-11)
### Added
* Add support for vcpu ms hostcall ([#950](https://github.com/fastly/js-compute-runtime/issues/950)) ([aea826f](https://github.com/fastly/js-compute-runtime/commit/aea826feb65c680f627b9e3b01152bb0534d9fd6))
* expose purgeSurrogateKey hostcall ([#953](https://github.com/fastly/js-compute-runtime/issues/953)) ([4468e3c](https://github.com/fastly/js-compute-runtime/commit/4468e3c2a70d97b3efd1e76a7053b9d1a01227e0))
### Fixed
* passing direct response body to requests in streaming ([#954](https://github.com/fastly/js-compute-runtime/issues/954)) ([6bf90b9](https://github.com/fastly/js-compute-runtime/commit/6bf90b915379ddab5257672b4778c0b81a5523e4))
## 3.21.4 (2024-09-05)
### Fixed
* \--experimental-top-level-await support ([#945](https://github.com/fastly/js-compute-runtime/issues/945)) ([edd8ada](https://github.com/fastly/js-compute-runtime/commit/edd8ada770ae3cd2763ee30bfb15a7a6709a1f37))
## 3.21.3 (2024-09-04)
### Fixed
* Device.toJSON() properties ([#937](https://github.com/fastly/js-compute-runtime/issues/937)) ([c4182d3](https://github.com/fastly/js-compute-runtime/commit/c4182d30e8d22d7720acb9d51bd59763ab8b83e5))
* event loop stall error no longer a panic ([#934](https://github.com/fastly/js-compute-runtime/issues/934)) ([08c9934](https://github.com/fastly/js-compute-runtime/commit/08c9934c59bd00ddd2dde252f6529ee8322be809))
## 3.21.2 (2024-08-27)
### Fixed
* revert documentation website refactoring ([#915](https://github.com/fastly/js-compute-runtime/issues/915)) ([ba1eb66](https://github.com/fastly/js-compute-runtime/commit/ba1eb667cb136c6cdd09938e397ee5cf334561d7))
## 3.21.1 (2024-08-27)
### Fixed
* missing publish file, parallel publish build ([#912](https://github.com/fastly/js-compute-runtime/issues/912)) ([91ae54c](https://github.com/fastly/js-compute-runtime/commit/91ae54cbbd92d83fa9c1896df006b1008a5f8291))
## 3.21.0 (2024-08-27)
### Added
* ship --debug-build CLI flag as public ([#907](https://github.com/fastly/js-compute-runtime/issues/907)) ([2728141](https://github.com/fastly/js-compute-runtime/commit/27281413db682f5e2e87928937456bc1b8345dd7))
* support getSetCookie on new StarlingMonkey headers implementation ([#844](https://github.com/fastly/js-compute-runtime/issues/844)) ([c102521](https://github.com/fastly/js-compute-runtime/commit/c1025210a591fc99fae9c3b921504a6189552a74))
## 3.20.0 (2024-08-08)
### Added
* Add new CLI name of `js-compute` which matches the published package name `@fastly/js-compute` ([#869](https://github.com/fastly/js-compute-runtime/issues/869)) ([60d1d20](https://github.com/fastly/js-compute-runtime/commit/60d1d2067d846aa15a76820e666004cf56d1df99))
### Fixed
* core-cache headers case ([#889](https://github.com/fastly/js-compute-runtime/issues/889)) ([3f2db5c](https://github.com/fastly/js-compute-runtime/commit/3f2db5c466151efddf1731c6be080c2a2875a43d))
* ensure we throw an error if FastlyBody.prototype.read is called with a value which is not coercible to a finite positive integer ([#877](https://github.com/fastly/js-compute-runtime/issues/877)) ([1633e02](https://github.com/fastly/js-compute-runtime/commit/1633e025d92be3a1f8b0616685b48e27dc913841))
* perf: Use wasm-opt -O3 when making a release build ([#870](https://github.com/fastly/js-compute-runtime/issues/870)) ([dd91fa5](https://github.com/fastly/js-compute-runtime/commit/dd91fa506b74487b70dc5bec510e89de95e1c569))
* When constructing an EdgeRateLimiter, retrieve the PenaltyBox instance's name using PenaltyBox::get\_name ([#866](https://github.com/fastly/js-compute-runtime/issues/866)) ([9222f1d](https://github.com/fastly/js-compute-runtime/commit/9222f1d16a9c17b080be575affffbb83c461dd81))
### Changed
* only time the fetch event when debug logging is enabled ([#873](https://github.com/fastly/js-compute-runtime/issues/873)) ([e4ddf8a](https://github.com/fastly/js-compute-runtime/commit/e4ddf8ac3c78bea753e8d9418715d1e703e7e7bc))
* re-order the http methods so the most often requested is first and the least requested is last ([#874](https://github.com/fastly/js-compute-runtime/issues/874)) ([6af7626](https://github.com/fastly/js-compute-runtime/commit/6af7626085af62a14520f14f69a0e64a515fd5ef))
* Use MOZ\_ASSERT instead of MOZ\_RELEASE\_ASSERT as these methods are already guarded correctly where they are being called ([#876](https://github.com/fastly/js-compute-runtime/issues/876)) ([f089616](https://github.com/fastly/js-compute-runtime/commit/f089616e8febc783cc96363f5ce65fc6f1acafb1))
## 3.19.0 (2024-07-29)
### Added
* Add FetchEvent.server object which contains information about the server which received the incoming HTTP request from the client. ([#855](https://github.com/fastly/js-compute-runtime/issues/855)) ([538ed9c](https://github.com/fastly/js-compute-runtime/commit/538ed9c436105caf4bf906355fcf110752870b2b))
* use StarlingMonkey by default, --disable-starlingmonkey flag ([#861](https://github.com/fastly/js-compute-runtime/issues/861)) ([475cdf9](https://github.com/fastly/js-compute-runtime/commit/475cdf910d5690d74ff96dccd14dfefc209ea944))
### Fixed
* Correct Class name for the ClientInfo class ([#854](https://github.com/fastly/js-compute-runtime/issues/854)) ([efb5694](https://github.com/fastly/js-compute-runtime/commit/efb569475a285bdeb2dcc1346d718eb26be4fed9))
* correct spelling in CLI error message ([#849](https://github.com/fastly/js-compute-runtime/issues/849)) ([38b558c](https://github.com/fastly/js-compute-runtime/commit/38b558c3ad7c6871243823a207485ba9cc6282dd))
## 3.18.1 (2024-07-18)
### Fixed
* add type definitions of Performance APIs ([#841](https://github.com/fastly/js-compute-runtime/issues/841)) ([fd95aae](https://github.com/fastly/js-compute-runtime/commit/fd95aaecc5a264860845740a3b60d4a7aa75c578))
## 3.18.0 (2024-07-16)
### Added
* support for Response.prototype.ip and port via get\_addr\_dest\_ip & get\_addr\_dest\_port ([#817](https://github.com/fastly/js-compute-runtime/issues/817)) ([391b3d8](https://github.com/fastly/js-compute-runtime/commit/391b3d8386defe5e1b4ce3c1fb70347a9f0802ca))
* Update to SpiderMonkey v127.0.2 ([#826](https://github.com/fastly/js-compute-runtime/issues/826)) ([5341f67](https://github.com/fastly/js-compute-runtime/commit/5341f674fe0da5ac5057d3415f59ac807d2f96f7))
## 3.17.3 (2024-07-16)
### Fixed
* Remove accidentally commited debug messages which write to stderr ([#838](https://github.com/fastly/js-compute-runtime/issues/838)) ([040ea8b](https://github.com/fastly/js-compute-runtime/commit/040ea8be352884c3536ac7e786663b4596617e6e))
## 3.17.2 (2024-07-13)
### Fixed
* add documentation for the sdkVersion property ([29361ad](https://github.com/fastly/js-compute-runtime/commit/29361ad65965a7a36cb2ced434af7898844dcab7))
* correct the documentation for the fastly:logger module ([#834](https://github.com/fastly/js-compute-runtime/issues/834)) ([2790cb9](https://github.com/fastly/js-compute-runtime/commit/2790cb93f5f298b021f46b9030d0e6e795003a51))
## 3.17.1 (2024-07-11)
### Fixed
* documentation site build ([#831](https://github.com/fastly/js-compute-runtime/issues/831)) ([110f1ff](https://github.com/fastly/js-compute-runtime/commit/110f1ffb4e1b80772b9f9541a58456bedfd4ddec))
## 3.17.0 (2024-07-11)
### Added
* Include in the wasm metadata whether we are using StarlingMonkey and/or PBL ([#828](https://github.com/fastly/js-compute-runtime/issues/828)) ([00b971b](https://github.com/fastly/js-compute-runtime/commit/00b971b857e9c35a08e6fc5c0a84fb3c3bc7984e))
### Fixed
* keep sdkVersion property always up-to-date with the correct version of the SDK ([#829](https://github.com/fastly/js-compute-runtime/issues/829)) ([ae42634](https://github.com/fastly/js-compute-runtime/commit/ae4263418a52dfb62fe240584314948072ff30e7))
## 3.16.2 (2024-07-10)
### Fixed
* use same rust version that StarlingMonkey uses so that we can publish ([#823](https://github.com/fastly/js-compute-runtime/issues/823)) ([f0d9ab0](https://github.com/fastly/js-compute-runtime/commit/f0d9ab07ed5a5470322a3b457cc91e308e3e289f))
## 3.16.1 (2024-07-09)
### Fixed
* CLI to allow commands/args in spawnSync() to contain whitespace ([#821](https://github.com/fastly/js-compute-runtime/issues/821)) ([68d77fb](https://github.com/fastly/js-compute-runtime/commit/68d77fbff9f695f53b30ee63d53b41fd8db87424))
* debug build & tests ([#818](https://github.com/fastly/js-compute-runtime/issues/818)) ([3d9a8da](https://github.com/fastly/js-compute-runtime/commit/3d9a8da2898fffa6b43d005eba3342df4ff67036))
## 3.16.0 (2024-06-21)
### Added
* add out-of-memory callback with stderr log ([#805](https://github.com/fastly/js-compute-runtime/issues/805)) ([a1bd16c](https://github.com/fastly/js-compute-runtime/commit/a1bd16c06924ea1748846d2b8159b9b2939ae61d))
* Allow early logger initialization ([#804](https://github.com/fastly/js-compute-runtime/issues/804)) ([514d014](https://github.com/fastly/js-compute-runtime/commit/514d0145ba88de3a7114e957457a7f9570e17019))
### Fixed
* Fix string formatting for limit-exceeded errors ([#802](https://github.com/fastly/js-compute-runtime/issues/802)) ([56f5214](https://github.com/fastly/js-compute-runtime/commit/56f5214ad9f431845f6b06cb92e0b98169ceffbe))
* Fix uses of cabi\_realloc that were discarding their results ([#811](https://github.com/fastly/js-compute-runtime/issues/811)) ([4e16641](https://github.com/fastly/js-compute-runtime/commit/4e16641ef4e159c4a11b500ac861b8fa8d9ff5d3))
## 3.15.0 (2024-06-03)
### Added
* dynamic backends clientCertificate with SecretStore fromBytes, rawbytes ([#796](https://github.com/fastly/js-compute-runtime/issues/796)) ([7d2b7b7](https://github.com/fastly/js-compute-runtime/commit/7d2b7b781ed808d9bcf1fe9584aa31f788b980a2))
* support default timeout configurations for dynamic backends ([#792](https://github.com/fastly/js-compute-runtime/issues/792)) ([4dfa8d7](https://github.com/fastly/js-compute-runtime/commit/4dfa8d76aeb4364ed5267ed22de0b9a891781589))
## 3.14.2 (2024-05-21)
### Fixed
* changelog formatting ([1473a87](https://github.com/fastly/js-compute-runtime/commit/1473a87092c6c02e37378897eb0a4042da2f90c8))
* revert changelog heading changes ([#784](https://github.com/fastly/js-compute-runtime/issues/784)) ([59195b6](https://github.com/fastly/js-compute-runtime/commit/59195b6aec1353adc6f6ad8322f7414d90adc518))
## 3.14.1 (2024-05-17)
### Fixed
* fix documentation build ([#781](https://github.com/fastly/js-compute-runtime/issues/781)) ([864864e](https://github.com/fastly/js-compute-runtime/commit/864864e05ca3cf286f049d2c692401e708008052))
## 3.14.0 (2024-05-16)
### Added
* fastly.sdkVersion implementation ([#776](https://github.com/fastly/js-compute-runtime/issues/776)) ([3eb5a8f](https://github.com/fastly/js-compute-runtime/commit/3eb5a8ff9aaad279dc17deee1c2e8760fea28a49))
### Fixed
* support cacheKey in Request init ([#770](https://github.com/fastly/js-compute-runtime/issues/770)) ([b64b22e](https://github.com/fastly/js-compute-runtime/commit/b64b22e988d8e3ca20c42c13f6cb89be871a5d61))
## 3.13.1 (2024-04-12)
### Fixed
* remove debugging message which got commited ([4219a0a](https://github.com/fastly/js-compute-runtime/commit/4219a0ac87d68d9a9fc57aaea43994a867f5dd0e))
## 3.13.0 (2024-04-11)
### Added
* Add KVStore.prototype.delete method ([578d858](https://github.com/fastly/js-compute-runtime/commit/578d858b6678c27116ead213f58d2f4fe80f1355))
### Changed
* Update to SpiderMonkey 124.0.2 ([e32632e](https://github.com/fastly/js-compute-runtime/commit/e32632e16ba822770dd9b0637185f7266a7952e2))
This release includes:
\- An optimization for functions that only use `arguments.length` to avoid allocating the `arguments` object.
\- An optimization for `Object.HasOwn` which for small numbers of atoms just unrolls the loop.
### Fixed
* Correct type definition for the global BackendConfiguration type - there is no `checkCertificate` field ([62fd0ea](https://github.com/fastly/js-compute-runtime/commit/62fd0ea36e6aefd4a3cb281a09716a901f111485))
* Improve our console.log output for functions ([9a97fc1](https://github.com/fastly/js-compute-runtime/commit/9a97fc1352926ecad8377d72eca1e18e28aa2173))
* Refactor our async task implementation to be a generic AsyncTask class instead of separate implementations for each async operation ([68dfec7](https://github.com/fastly/js-compute-runtime/commit/68dfec75a0c9c583dc4be39a17cbbf9b70ff8b40))
## 3.12.1 (2024-04-05)
### Changed
* declare support for npm 10 ([#747](https://github.com/fastly/js-compute-runtime/issues/747)) ([1365ee9](https://github.com/fastly/js-compute-runtime/commit/1365ee9b1aa4e830677c840ea43df55bbf19d660))
## 3.12.0 (2024-03-28)
### Changed
* update to SpiderMonkey 123.0.1 ([#744](https://github.com/fastly/js-compute-runtime/issues/744)) ([32bf617](https://github.com/fastly/js-compute-runtime/commit/32bf61707f1133d4a2656913d726d66523398fb1))
This update brings with it the below changes:
* Performance improvements for `JSON.stringify()`
* An optimisation for `Object.keys()` to take advantage of cached for-in iterators if available.
* Optimisations for `Object.assign()`
* RegExp `v` flag support
* Improved JSON parsing to help avoid garbage collection time when parsing very large files
* The `String.prototype.isWellFormed()` and `String.prototype.toWellFormed()` methods respectively can be used to check if a string contains well-formed Unicode text (i.e. contains no lone surrogates) and sanitise an ill-formed string to well-formed Unicode text.
* The `Object.groupBy()` and `Map.groupBy()` static methods for grouping the elements of an iterable are now supported
* `Date.parse()` now accepts several additional date formats:
* Year > 9999 for `YYYY-MMM-DD` format (e.g. `19999-Jan-01`)
* `MMM-DD-YYYY` (e.g. `Jan-01-1970`)
* Milliseconds for non-ISO date formats (e.g. `Jan 1 1970 10:00:00.050`)
* Day of week at the beginning of formats which were being rejected, such as:
* `Wed, 1970-01-01`
* `Wed, 1970-Jan-01`
* The day of week does not need to be correct, or a day of week at all; for example, `foo 1970-01-01` works.
* Numeric dashed dates which do not meet the formal ISO standard are now accepted, including:
* `"01-12-1999"` (month first)
* `"1999-1-5"` (single-digit month or day)
* `"10000-01-12"` (year > 9999)
* `"99-01-05"` or `"01-05-99"` (2-digit year, year must be >31 if it comes first)
* `"1999-01-05 10:00:00"` (space between date and time).
These dates will be parsed with behavior typical of other non-ISO dates, such as local time zone and month rollover (April 31 rolls over to May 1 since April 31 doesn’t exist).
* Requirements for characters directly following numbers have been loosened to accept new formats, including:
* `"DDMonYYYY"`
* `"Mon.DD.YYYY"`
* `"DD.Mon.YYYY"`
* `"YYYY.MM.DD"`
* `"Mon DD YYYY hh:mmXm"` (`am`/`pm` directly following time)
* Timezone `'Z'` is now accepted for non-ISO formats (e.g. `Jan 1 1970 10:00Z`)
* Other `Date.parse()` fixes:
* `YYYY-M-DD` and `YYYY-MM-D` are no longer assumed GMT as an ISO date `YYYY-MM-DD` would be.
* Milliseconds for all formats are truncated after 3 digits, rather than being rounded.
* The `Promise.withResolvers()` static method is now supported. This exposes the `resolve` and `reject` callback functions in the same scope as the returned `Promise`, allowing code that resolves or rejects the promise to be defined after its construction.
* The `ArrayBuffer.prototype.transfer()` and `ArrayBuffer.prototype.transferToFixedLength()` methods can now be used to transfer ownership of memory from one ArrayBuffer to another. After transfer, the original buffer is detached from its original memory and hence unusable; the state can be checked using `ArrayBuffer.prototype.detached`.
## 3.11.0 (2024-03-14)
### Added
* add new flag --experimental-enable-top-level-await ([#742](https://github.com/fastly/js-compute-runtime/issues/742)) ([437a20d](https://github.com/fastly/js-compute-runtime/commit/437a20d5f970c00d382673dbf223149b5b20ed37))
### Fixed
* correct type definition of Headers.prototype.values() to indicate it returns an IterableIterator\<string> ([#740](https://github.com/fastly/js-compute-runtime/issues/740)) ([8959e79](https://github.com/fastly/js-compute-runtime/commit/8959e79a9a7856b0ecc74b33264042c54ac8f867))
## 3.10.0 (2024-03-09)
### Added
* add fastly:device module which allows applications to detect a device based on a user-agent ([#738](https://github.com/fastly/js-compute-runtime/issues/738)) ([5274fd5](https://github.com/fastly/js-compute-runtime/commit/5274fd5280d80b276e6f13d4acbdefc435af6c57))
### Fixed
* correct title for the CoreCache.transactionLookup documentation page ([9892d90](https://github.com/fastly/js-compute-runtime/commit/9892d9074d9a1bd25b9b5db28c12a940f2aac028))
## 3.9.1 (2024-03-04)
### Fixed
* ensure we associate correct memory for the user\_metadata attached to a cache item ([#734](https://github.com/fastly/js-compute-runtime/issues/734)) ([550c4f5](https://github.com/fastly/js-compute-runtime/commit/550c4f5502e710f0b7cf11d0132270bcc91e7235))
## 3.9.0 (2024-03-02)
### Added
* Add a EdgeRateLimiter JavaScript Class which enables edge-rate-limiting by utilising a RateCounter and a PenaltyBox instance ([#732](https://github.com/fastly/js-compute-runtime/issues/732)) ([4e81fc7](https://github.com/fastly/js-compute-runtime/commit/4e81fc7dbec33a5a90743e389642e0ced5294ff1))
* Add a PenaltyBox JavaScript Class which can be used standalone for adding and checking if an entry is in the penalty-box ([#731](https://github.com/fastly/js-compute-runtime/issues/731)) ([bfe1e15](https://github.com/fastly/js-compute-runtime/commit/bfe1e15460cb2aa0da3cfa356fbf23d38f5af5ba))
* Add a RateCounter JavaScript Class which can be used standalone for counting and rate calculations ([#730](https://github.com/fastly/js-compute-runtime/issues/730)) ([0f6036f](https://github.com/fastly/js-compute-runtime/commit/0f6036f02f497345df01dbce731eb502fd406d27))
* implement and expose JavaScript classes for Fastly's Compute Core Cache feature set ([#566](https://github.com/fastly/js-compute-runtime/issues/566)) ([94f4038](https://github.com/fastly/js-compute-runtime/commit/94f4038df7ca2bfd8beef964865eb7f900b1bc04))
### Fixed
* disable the portable-baseline-tier for async functions for now ([#733](https://github.com/fastly/js-compute-runtime/issues/733)) ([4928243](https://github.com/fastly/js-compute-runtime/commit/4928243a380adfb6073a909e41ab7eb4c0d569b4))
## 3.8.3 (2024-02-21)
### Fixed
* do not use colon character in types for windows support ([#726](https://github.com/fastly/js-compute-runtime/issues/726)) ([25bf1a2](https://github.com/fastly/js-compute-runtime/commit/25bf1a2bb40528bf02e0773e6bc624560a12869a))
## 3.8.2 (2024-01-25)
### Fixed
* ensure we honor first-byte-timeout and between-bytes-timeout for dynamically registered backends ([#719](https://github.com/fastly/js-compute-runtime/issues/719)) ([2851507](https://github.com/fastly/js-compute-runtime/commit/2851507f9ca00a3f272a13c174a2906163f95c40))
* If request does not have a static backend defined, return `undefined` for the Request.prototype.backend getter ([#722](https://github.com/fastly/js-compute-runtime/issues/722)) ([251c037](https://github.com/fastly/js-compute-runtime/commit/251c037f424ace09e87ec0a47d7579d7b90626a1))
## 3.8.1 (2024-01-17)
### Fixed
* parse latin-1 encoded field values correctly ([#715](https://github.com/fastly/js-compute-runtime/issues/715)) ([9ebb524](https://github.com/fastly/js-compute-runtime/commit/9ebb524d4eef97ba71ae19ee1c2b1e61f3fd391c))
## 3.8.0 (2024-01-11)
### Added
* Add `manualFramingHeaders` on `RequestInit` and `ResponseInit`, and add `Request.prototype.setManualFramingHeaders` and `Response.prototype.setManualFramingHeaders` ([#705](https://github.com/fastly/js-compute-runtime/pull/705))
* Add `Request.prototype.backend` getter to return the name of the backend assigned to the request ([9c750e5](https://github.com/fastly/js-compute-runtime/commit/9c750e5697bb02676762225e4fdc7589d23e13d9))
* Allow URL as input on fetch() on TypeScript typings for compat with Node.js ([#707](https://github.com/fastly/js-compute-runtime/issues/707)) ([4f39943](https://github.com/fastly/js-compute-runtime/commit/4f399434c0959e902df03262dfceefdc16592afe))
## 3.7.3 (2023-11-02)
### Fixed
* Make the underlying KVStore.prototype.get implementation be async ([a6a5035](https://github.com/fastly/js-compute-runtime/commit/a6a5035fc932be0e47c7c737bd9060d27c18ab05))
## 3.7.2 (2023-10-25)
### Fixed
* Make Response.redirect headers be immutable ([3527eaf](https://github.com/fastly/js-compute-runtime/commit/3527eaf62266a3cf7ea8ea4020bb5980bb7fa615))
* Return correct error type (TypeError or RangeError instead of Error) in Request and Response methods ([4ea7de7](https://github.com/fastly/js-compute-runtime/commit/4ea7de71301d841fdc99f45a3251f85c61710fd6))
## 3.7.1 (2023-10-24)
### Added
* Add type defintions for the recently added Backend methods ([#698](https://github.com/fastly/js-compute-runtime/issues/698)) ([24f1ba7](https://github.com/fastly/js-compute-runtime/commit/24f1ba70e68f35205104eaf583c29d4af9b5039c))
## 3.7.0 (2023-10-14)
### Added
This release of `@fastly/js-compute` includes 4 new methods to the Backend class, which enable the Fastly Service to retrieve information about any backend, this is particularly useful for checking if the backend is “healthy”. ([#523](https://github.com/fastly/js-compute-runtime/issues/523)) ([08f816a](https://github.com/fastly/js-compute-runtime/commit/08f816ae4465316a2316467338e0d33ffbd20e7a))
The new methods are:
* Backend.exists(name) - Check whether a backend with the given name exists for the Fastly Service.
* Backend.fromName(name) - Check whether a backend with the given name exists for the Fastly Service and if it does, then returns an instance of Backend for the given name.
* Backend.health(name) - Returns the health of the backend with the given name.
* Backend.prototype.toName() - Return the name for the Backend instance.
### Fixed
* bring back support for build-time env vars ([#691](https://github.com/fastly/js-compute-runtime/issues/691)) ([c044ac4](https://github.com/fastly/js-compute-runtime/commit/c044ac4bbbd5629bfc879b7593a0bfa9c5e3cfcb))
* raise an error during wizening for async functions given to addEventListener ([#689](https://github.com/fastly/js-compute-runtime/issues/689)) ([e6747a2](https://github.com/fastly/js-compute-runtime/commit/e6747a28d70d71bc71da77c9b6e44848b95ea387))
## 3.6.2 (2023-10-05)
### Fixed
* improve fetch error messages ([58ddb20](https://github.com/fastly/js-compute-runtime/commit/58ddb2012f9bff5ad59fb6420bfa31051109a108))
## 3.6.1 (2023-09-27)
### Fixed
* ensure we throw an error when trying to base64 decode \_ via `atob` ([1b2b2f9](https://github.com/fastly/js-compute-runtime/commit/1b2b2f9d807780cf03964a30801644c8bc3b698b))
## 3.6.0 (2023-09-22)
### Added
* add support for ECDSA keys to be used with SubtleCrypto.prototype.sign and SubtleCrypto.prototype.verify ([#667](https://github.com/fastly/js-compute-runtime/issues/667)) ([51bb170](https://github.com/fastly/js-compute-runtime/commit/51bb1703fb81fddac24b152fc7b1e0f32f976de5))
## 3.5.0 (2023-09-19)
### Added
* implement the "fastly" condition ([#660](https://github.com/fastly/js-compute-runtime/issues/660)) ([db7db46](https://github.com/fastly/js-compute-runtime/commit/db7db46266b022afffd351421f56d5d5f7b98a53))
JavaScript dependencies can now target our JavaScript runtime for Fastly Compute explicitly via the recently added “fastly” WinterCG Runtime Key
This release updates our internal bundling system to include this functionality
Note: If you are using a custom bundling system for your JavaScript projects and want this functionality, you will need to update/configure your bundling system
## 3.4.0 (2023-09-13)
### Added
* add ability to import ECDSA JWK keys via crypto.subtle.importKey ([#639](https://github.com/fastly/js-compute-runtime/issues/639)) ([c16b001](https://github.com/fastly/js-compute-runtime/commit/c16b001bddc2dc122c26837023ab9c53664adf8a))
## 3.3.5 (2023-09-11)
### Changed
* use new host\_api implementation for transactional lookups and inserts ([#651](https://github.com/fastly/js-compute-runtime/issues/651)) ([8c29246](https://github.com/fastly/js-compute-runtime/commit/8c292466e1fef61673ad3d46b747a6c54ed71ddb))
## 3.3.4 (2023-09-07)
### Fixed
* Fix SimpleCache API by reverting host\_api implementation of the underlying cache apis ([4340375](https://github.com/fastly/js-compute-runtime/commit/4340375409be382c2faec657615c187d99d1fc7e))
## 3.3.3 (2023-09-05)
### Fixed
* remove unused lines of code from docs for SimpleCache/get.mdx ([51fd4af](https://github.com/fastly/js-compute-runtime/commit/51fd4af94f72dd9ae112a967ef05bc67d02f202c))
* update to latest version of gecko-dev which fixes a bug with the default ecma262 sorting algorithm ([#643](https://github.com/fastly/js-compute-runtime/issues/643)) ([64323e3](https://github.com/fastly/js-compute-runtime/commit/64323e344bc61d4cc52e34710ab7ae208d56e321))
## 3.3.2 (2023-08-31)
### Added
* Add documentation for Request.prototype.clone() ([9d12321](https://github.com/fastly/js-compute-runtime/commit/9d12321bf3da019f6383389098625ca1314d9fb8))
## 3.3.1 (2023-08-24)
### Changed
* update to spidermonkey which includes async resume support when using pbl ([#634](https://github.com/fastly/js-compute-runtime/issues/634)) ([1dea60f](https://github.com/fastly/js-compute-runtime/commit/1dea60f79fc07828785b12fd8a5bf13b3602f88b))
## 3.3.0 (2023-08-22)
### Added
* Add option to enable PBL. ([#628](https://github.com/fastly/js-compute-runtime/issues/628)) ([6ecda6e](https://github.com/fastly/js-compute-runtime/commit/6ecda6e89971f178f623e242d8dd6a8fd25ab63f))
## 3.2.1 (2023-08-16)
### Fixed
* Add documentation and type definitions for the new event.client.\* fields ([#625](https://github.com/fastly/js-compute-runtime/issues/625)) ([a6f557b](https://github.com/fastly/js-compute-runtime/commit/a6f557ba1b03035869e4c4fb3d9679fb3e28fd1f))
## 3.2.0 (2023-08-10)
### Added
* add ability to automatically decompress gzip responses returned from `fetch` ([#497](https://github.com/fastly/js-compute-runtime/issues/497)) ([e08d060](https://github.com/fastly/js-compute-runtime/commit/e08d060535160b8c934f60f37d8f4a71f412f0c4))
### Changed
* use spidermonkey version 115 ([4a4716d](https://github.com/fastly/js-compute-runtime/commit/4a4716d99fa1e263eae9cf5d7fcc96999519c7fe))
* reduce memory usage by caching client getters when they are first called ([87ee0cb](https://github.com/fastly/js-compute-runtime/commit/87ee0cb54edab82c0b2f6b986458d2552a8dbcba))
* update to latest url crate which passes some more wpt url tests ([f0a42fd](https://github.com/fastly/js-compute-runtime/commit/f0a42fd07821190e1ebf66c95762cb8e26b69e8b))
## 3.1.1 (2023-07-14)
### Fixed
* Request.prototype.clone - Do not create a body on the new request if the request instance being cloned does not contain a body ([5debe80](https://github.com/fastly/js-compute-runtime/commit/5debe806a4a40e0d3b07bdd6b71489aa7d739cff))
## 3.1.0 (2023-07-12)
### Added
* Add ability to disable connection-pooling behavior for Dynamic Backends ([#574](https://github.com/fastly/js-compute-runtime/issues/574)) ([718bea8](https://github.com/fastly/js-compute-runtime/commit/718bea8e2b950bc00c43187e479a7a7de41eaa70))
### Changed
* Deprecate SimpleCache.set and recommend SimpleCache.getOrSet as the alternative ([bff1bf5](https://github.com/fastly/js-compute-runtime/commit/bff1bf587c7de6012c617745b059dea24e6299ad))
## 3.0.0 (2023-07-08)
### Changed
*⚠ BREAKING CHANGE*
* Rename SimpleCache.delete to SimpleCache.purge and require purge options to be supplied as the second parameter
We are renaming because "purge" is already a well-known and documented concept for removing content from Fastly's cache.
The new addition of a second argument allows the caller to decide what scope to purge the content from, currently they can choose to purge from all of Fastly ("global") or from the POP that contains the currently executing instance ("pop"). We do not provide a default option right now, in the future we may provide a default option, if we discover a common pattern is being used.
Here is an example of migrating an application using SimpleCache.delete to SimpleCache.purge with the same behaviour:
```diff
/// <reference types="@fastly/js-compute" />
import { SimpleCache } from 'fastly:cache';
addEventListener('fetch', event => event.respondWith(app(event)));
async function app(event) {
const url = new URL(event.request.url);
const path = url.pathname;
if (url.searchParams.has('delete')) {
- SimpleCache.delete(path);
+ SimpleCache.purge(path, { scope: "global" });
return new Response(page, { status: 204 });
}
let page = SimpleCache.getOrSet(path, async () => {
return {
value: await render(path),
// Store the page in the cache for 1 minute.
ttl: 60
}
});
return new Response(page, {
headers: {
'content-type': 'text/plain;charset=UTF-8'
}
});
}
async function render(path) {
// expensive/slow function which constructs and returns the contents for a given path
await new Promise(resolve => setTimeout(resolve, 10_000));
return path;
}
```
### Added
* add event.client.tlsCipherOpensslName ([49b0c99](https://github.com/fastly/js-compute-runtime/commit/49b0c99523147998304dc559b836bcc79008e8b0))
* add event.client.tlsClientCertificate ([cf93b62](https://github.com/fastly/js-compute-runtime/commit/cf93b6226b01ca653688571ed0db27e0f6d39bc2))
* add event.client.tlsClientHello ([3d87cb2](https://github.com/fastly/js-compute-runtime/commit/3d87cb28a670735441a0d8c6d16291867c8f2244))
* add event.client.tlsJA3MD5 ([2ecf4af](https://github.com/fastly/js-compute-runtime/commit/2ecf4afcc503e60a1aa972c88d47149b22dbf70c))
* add event.client.tlsProtocol ([4c91142](https://github.com/fastly/js-compute-runtime/commit/4c9114213343d4dea2a1ac2955980e19540a4463))
* Rename SimpleCache.delete to SimpleCache.purge and require purge options to be supplied as the second parameter ([20113c1](https://github.com/fastly/js-compute-runtime/commit/20113c1df6ad57a98c5b8c27b06d67117d2029ef))
## 2.5.0 (2023-07-05)
### Added
* add DOMException class ([58b8086](https://github.com/fastly/js-compute-runtime/commit/58b8086edce2d93928743aec462843df369d458b))
* Add support for HMAC within SubtleCrypto implementation ([96ac02d](https://github.com/fastly/js-compute-runtime/commit/96ac02d1e62b6d34f73a18ba3be30266a4b0f27e))
### Changed
* update types for SubtleCrypto to show we support a subset of importKey/sign/verify ([#568](https://github.com/fastly/js-compute-runtime/issues/568)) ([329b733](https://github.com/fastly/js-compute-runtime/commit/329b733e77d4bcb2b341eb1e1b36a5d6a7c999cc))
## 2.4.0 (2023-06-22)
### Changed
* Update to SpiderMonkey version 114.0.1 ([#563](https://github.com/fastly/js-compute-runtime/issues/563)) ([03e2254](https://github.com/fastly/js-compute-runtime/commit/03e22542cd439990ad530eb1958a12ce8ab85120))
## 2.3.0 (2023-06-12)
### Added
* implement web performance api ([ddfe11e](https://github.com/fastly/js-compute-runtime/commit/ddfe11ec92a48495edd920e48ffad3d20e69c159))
## 2.2.1 (2023-06-09)
### Fixed
* only apply our pipeTo/pipeThrough optimisations to TransformStreams who have no transformers (IdentityStreams). ([#556](https://github.com/fastly/js-compute-runtime/issues/556)) ([a88616c](https://github.com/fastly/js-compute-runtime/commit/a88616c7a5aa4e13d3f1eeef259ba7480416f3f0))
## 2.2.0 (2023-06-08)
### Added
* Implement SimpleCache.getOrSet method ([a1f4517](https://github.com/fastly/js-compute-runtime/commit/a1f4517e5e377354254ee2a635f97a562c87e13c))
## 2.1.0 (2023-06-02)
### Added
* Implement a SimpleCache Class ([#548](https://github.com/fastly/js-compute-runtime/issues/548)) ([865382d](https://github.com/fastly/js-compute-runtime/commit/865382df3a74832abce1f0d40e3627d8339b4aeb))
## 2.0.2 (2023-06-01)
### Fixed
* add fastly:secret-store types ([3805238](https://github.com/fastly/js-compute-runtime/commit/38052381331999d00b6f2cc878ae41c51068ff94))
* update to the latest wizer which brings support for prebuilt linux s390x and aarch64 wizer binaries ([69484c2](https://github.com/fastly/js-compute-runtime/commit/69484c25465a2674513f83f8c9674e1857e01cb9))
## 2.0.1 (2023-05-24)
### Fixed
* When using implicit backends with https protocol, use the hostname for the sni hostname value to match `fetch` behaviour in browsers and other runtimes ([84fb6a2](https://github.com/fastly/js-compute-runtime/commit/84fb6a2fa57408fb13e9319da91d6de3533f1e3c))
## 2.0.0 (2023-05-15)
### Changed
* Object Store renamed to KV Store ([#476](https://github.com/fastly/js-compute-runtime/issues/476))
We have renamed the `ObjectStore` class to `KVStore`, and the module name from `fastly:object-store` to `fastly:kv-store`.
You will need to update your code to use the new class name and module name.
Below is the change that would need to be made for the imported module name:
```diff
- import { ObjectStore } from 'fastly:object-store';
+ import { KVStore } from 'fastly:kv-store';
```
And this is the change that would need to be made for constructing an instance of the class:
```diff
- const store = new ObjectStore('my-store');
+ const store = new KVStore('my-store');
```
Here is a full example of migrating an application from ObjectStore to KVStore:
```diff
/// <reference types="@fastly/js-compute" />
- import { ObjectStore } from 'fastly:object-store';
+ import { KVStore } from 'fastly:kv-store';
async function app(event) {
- const files = new ObjectStore('files');
+ const files = new KVStore('files');
await files.put('hello', 'world')
const entry = await files.get('hello')
return new Response(await entry.text())
}
addEventListener("fetch", (event) => event.respondWith(app(event)))
```
## 1.13.0 (2023-05-11)
### Added
* Implement all the web console methods ([#522](https://github.com/fastly/js-compute-runtime/issues/522)) ([a12a1d3](https://github.com/fastly/js-compute-runtime/commit/a12a1d35f0b68c549d802ea2df87eb5bd5a1cd31))
## 1.12.0 (2023-05-11)
### Added
* Implement Fanout for JS SDK ([5198884](https://github.com/fastly/js-compute-runtime/commit/5198884d35c616785399d1702efa2454f9303421))
## 1.11.2 (2023-04-27)
### Fixed
* Add TypeScript definitions for Response.redirect() and Response.json() ([#512](https://github.com/fastly/js-compute-runtime/issues/512)) ([ebe429f](https://github.com/fastly/js-compute-runtime/commit/ebe429fc895f8da837e47393ebc35fe6dec5159a))
## 1.11.1 (2023-04-26)
### Fixed
* **TextDecoder:** add (nearly) full support for TextDecoder and TextEncoder ([#501](https://github.com/fastly/js-compute-runtime/issues/501)) ([a4c312e](https://github.com/fastly/js-compute-runtime/commit/a4c312e62284147da73d82323ac095670d41cdf3))
## 1.11.0 (2023-04-25)
### Added
* implement Response.json static method ([#499](https://github.com/fastly/js-compute-runtime/issues/499)) ([780067d](https://github.com/fastly/js-compute-runtime/commit/780067d429dbd90bd529f42169c2c1af6c139bb7))
## 1.10.1 (2023-04-24)
### Fixed
* Fix for `ReferenceError: pattern is not defined` ([#506](https://github.com/fastly/js-compute-runtime/issues/506)) ([107c9be](https://github.com/fastly/js-compute-runtime/commit/107c9be4c0b0c41c4d630ba556a10b697a1508f4))
## 1.10.0 (2023-04-21)
### Added
* Add MD5 support into crypto.subtle.digest ([9c8efab](https://github.com/fastly/js-compute-runtime/commit/9c8efabc89c20e5e20f8ef429b555c1d85fe0db1))
* implement Response.redirect static method and Response.prototype.redirected getter ([1623d74](https://github.com/fastly/js-compute-runtime/commit/1623d740405dcaaa5a8c946981c6840ab611c36a))
## 1.9.0 (2023-04-15)
### Added
* Implement subset of crypto.subtle.importKey which can import a JSONWebKey using RSASSA-PKCS1-v1\_5 ([b66bf50](https://github.com/fastly/js-compute-runtime/commit/b66bf506a9bf25cf251f7c58a34ba2e1a0e68c5d))
* Implement subset of crypto.subtle.sign which can sign data with a JSONWebKey using RSASSA-PKCS1-v1\_5 ([800fb66](https://github.com/fastly/js-compute-runtime/commit/800fb666aca957a62d79dbf4fefa35aad8212de5))
* Implement subset of crypto.subtle.verify which can verify a signature with a JSONWebKey using RSASSA-PKCS1-v1\_5 ([077adfd](https://github.com/fastly/js-compute-runtime/commit/077adfd16f870564e945d14e4caf0c21762c64f1))
### Fixed
* free `buf` if an error has occured ([bfa84cc](https://github.com/fastly/js-compute-runtime/commit/bfa84cc4fa22c1d2ea860cad597dd25878a24e20))
## 1.8.1 (2023-04-12)
### Fixed
* Mark NodeJS 19 and 20 as supported ([#492](https://github.com/fastly/js-compute-runtime/issues/492)) ([27b3428](https://github.com/fastly/js-compute-runtime/commit/27b34289988b6ef55ea3ce703b878dbd1da68d7a))
## 1.8.0 (2023-04-12)
### Added
* Add high-resolution timing function "fastly.now()" behind feature flag "--enable-experimental-high-resolution-time-methods" ([f090838](https://github.com/fastly/js-compute-runtime/commit/f0908384d48d0bc2e5c29083e8a20bed041d47ed))
### Changed
* replace tree-sitter with acorn + magic string ([08a0695](https://github.com/fastly/js-compute-runtime/commit/08a0695a00088fe51c289ea783a771b4f3b993f8))
## 1.7.1 (2023-04-11)
### Fixed
* Lower the supported NodeJS version from 18 or greater to only 18 ([5cc1cd6](https://github.com/fastly/js-compute-runtime/commit/5cc1cd6e5bfb8926944457e81c045682b0a37e4c))
* When converting a URL to a string, do not add a `?` if there are no query string parameters ([73cdc27](https://github.com/fastly/js-compute-runtime/commit/73cdc279fa8c038a012c050000960577dda21280))
## 1.7.0 (2023-04-11)
### Added
* BYOB streams, basic usage, *pending WPT* ([ab97e75](https://github.com/fastly/js-compute-runtime/commit/ab97e75e3b595911432327b35fcf4716675a0dd0))
* Implement subset of crypto.subtle.importKey which can import a JSONWebKey using RSASSA-PKCS1-v1\_5 ([#472](https://github.com/fastly/js-compute-runtime/issues/472)) ([110e7f4](https://github.com/fastly/js-compute-runtime/commit/110e7f42c1a86c4b4b722ea4b6780bb68f7f4523))
## 1.6.0 (2023-03-28)
### Added
* Implement JS CryptoKey Interface ([adb31f7](https://github.com/fastly/js-compute-runtime/commit/adb31f7197acf869af1852c0656847e4ab240089))
## 1.5.2 (2023-03-23)
### Fixed
* Add documentation for FetchEvent, FetchEvent.prototype.respondWith, and FetchEvent.prototype.waitUntil ([78e6d92](https://github.com/fastly/js-compute-runtime/commit/78e6d925d1ec6cdedd4f2678997e333aba9ebae6))
* fix typo in geolocation example ([f53a06e](https://github.com/fastly/js-compute-runtime/commit/f53a06ecb46c5ad1f91806c1c13ce6215a254192))
## 1.5.1 (2023-03-10)
### Fixed
* handle fallthrough of regex parser bugs ([#447](https://github.com/fastly/js-compute-runtime/issues/447)) ([8f38980](https://github.com/fastly/js-compute-runtime/commit/8f389805d6a88e476f0281df974cb971d7e78896))
## 1.5.0 (2023-03-10)
### Added
* support unicode patterns via precompilation ([87a0dce](https://github.com/fastly/js-compute-runtime/commit/87a0dce62115cfd6d665f1d2aa617cf53a8b6b01))
## 1.4.2 (2023-03-09)
### Fixed
* console logging support improvements ([#434](https://github.com/fastly/js-compute-runtime/issues/434)) ([7a74d76](https://github.com/fastly/js-compute-runtime/commit/7a74d76ed1d03c1c588caf664f471eab226c10a6))
## 1.4.1 (2023-03-01)
### Changed
* modular builtin separation ([#426](https://github.com/fastly/js-compute-runtime/issues/426)) ([c5933ea](https://github.com/fastly/js-compute-runtime/commit/c5933ea2599c0f0952d7314ecbbe93faa8ec9acb))
## 1.4.0 (2023-02-27)
### Added
* implement fastly:secret-store package ([cde22e3](https://github.com/fastly/js-compute-runtime/commit/cde22e3fa232b50e96222301ba40dda5b424bb60))
### Changed
* Bump to spidermonkey 110, and viceroy 0.3.5 ([#420](https://github.com/fastly/js-compute-runtime/issues/420)) ([e17cdfd](https://github.com/fastly/js-compute-runtime/commit/e17cdfda1878fe23a7f331fb20d33c52d580003b))
## 1.3.4 (2023-02-09)
### Changed
* add custom error message when making a request to a backend which does not exist ([#412](https://github.com/fastly/js-compute-runtime/issues/412)) ([486aed1](https://github.com/fastly/js-compute-runtime/commit/486aed1415151a2bba40b736c14555c692bd095a))
## 1.3.3 (2023-02-08)
### Changed
* Remove error codes from external error messaging as these codes are not documented anywhere and subject to change ([8f8f0ef](https://github.com/fastly/js-compute-runtime/commit/8f8f0eff871597b8453fac08b6b114ee5c188ef6))
## 1.3.2 (2023-01-30)
### Changed
* allow a downstream response to contain lots of headers with the same name without crashing ([ba1f0e6](https://github.com/fastly/js-compute-runtime/commit/ba1f0e6699bd0f218fa581b9aad0fdda89a674fc))
## 1.3.1 (2023-01-26)
### Changed
* ensure CacheOverride bitflags are the same value as defined in c-at-e ([#386](https://github.com/fastly/js-compute-runtime/issues/386)) ([8a1c215](https://github.com/fastly/js-compute-runtime/commit/8a1c2158505e8ed1ebb424fc97866da155601d1f))
## 1.3.0 (2023-01-24)
### Added
* implement SubtleCrypto.prototype.digest method ([#372](https://github.com/fastly/js-compute-runtime/issues/372)) ([bbe1754](https://github.com/fastly/js-compute-runtime/commit/bbe1754f0a8018f2124b9a5859a35fde5c4cbb97))
## 1.2.0 (2023-01-17)
### Added
* implement Request.prototype.clone ([3f3a671](https://github.com/fastly/js-compute-runtime/commit/3f3a67199c27ea4500fa861a993163e5d376aafd))
## 1.1.0 (2023-01-06)
### Added
* add crypto.randomUUID function ([2c32b42](https://github.com/fastly/js-compute-runtime/commit/2c32b42d29a1cd2de961a0cef175b96eaab4ae7d))
### Changed
* check that setTimeout/setInterval handler is an object before casting to an object ([62476f5](https://github.com/fastly/js-compute-runtime/commit/62476f5324425c4f4a12ebf4f8ceddb093b753de))
* ensure retrieving the property definitions of ObjectStoreEntry.prototype.body and ObjectStoreEntry.bodyUsed do not cause panics by ensuring we have a valid entry in their Slots ([311b84c](https://github.com/fastly/js-compute-runtime/commit/311b84c80cbc99cf534ed43f4499a291716068fd))
* error message is latin1, we need to use JS\_ReportErrorLatin1 to convert the message from latin1 to UTF8CharsZ, otherwise a panic occurs ([f1a22a4](https://github.com/fastly/js-compute-runtime/commit/f1a22a42c75aea99f47f5f6b44920275735c91e1))
## 1.0.1 (2022-12-16)
### Changed
* do not free the method\_str.ptr as we still require the memory ([17c5049](https://github.com/fastly/js-compute-runtime/commit/17c50492d6247e746daeb65ab1b7fdeeaec0ae91)), closes [#352](https://github.com/fastly/js-compute-runtime/issues/352)
## 1.0.0 (2022-12-14)
### Added
* implement validation for backend cipher definitions ([157be64](https://github.com/fastly/js-compute-runtime/commit/157be64e84956d24259003331cb51a8c5acec040))
## 0.7.0 (2022-12-10)
### Added
* compute runtime component build ([#326](https://github.com/fastly/js-compute-runtime/issues/326)) ([197504c](https://github.com/fastly/js-compute-runtime/commit/197504c4192e019264011d732a7009786a7a38d0))
#### BREAKING CHANGES
* compute runtime component build ([#326](https://github.com/fastly/js-compute-runtime/issues/326))
### Changed
* Limit to node 16/17/18 as some dependencies do not work on node19 yet ([0d48f77](https://github.com/fastly/js-compute-runtime/commit/0d48f77467fc0c85c837c36b2e3991a2f6b35bcf))
## 0.6.0 (2022-12-09)
### Added
* Disable JS iterator helpers as the feature is at Stage 3 and we should only enable by default Stage 4 features ([c90c145](https://github.com/fastly/js-compute-runtime/commit/c90c14570a0375692da62eb11811e01babe28de8))
### Changed
* Throw TypeErrors in config-store if supplied with invalid parameters or the config-store does not exist ([6b70180](https://github.com/fastly/js-compute-runtime/commit/6b70180560b0c28bbc009af49fa7b25bd890d4a2))
### Removed
* Disable JS iterator helpers as the feature is at Stage 3 and we should only enable by default Stage 4 features
## 0.5.15 (2022-12-08)
### Added
* add `allowDynamicBackends` function to `fastly:experimental` module ([83a003e](https://github.com/fastly/js-compute-runtime/commit/83a003e17307c01876751686620a6a1effbfaa99))
* upgrade from SpiderMonkey 96 to SpiderMonkey 107 ([#330](https://github.com/fastly/js-compute-runtime/pull/330))
## 0.5.14 (2022-12-07)
### Changed
* when appending headers, if the set-cookie header is set then make sure that each cookie value is sent as a separate set-cookie header to the host ([f6cf559](https://github.com/fastly/js-compute-runtime/commit/f6cf5597ec646717534b59a1002b6a6364a81065))
## 0.5.13 (2022-12-02)
### Changed
* implement validation for Dictionary names and keys ([c0b0822](https://github.com/fastly/js-compute-runtime/commit/c0b082245d9585d8c3cdbc83c6f8ebf1844e8741))
* fix: When streaming a response to the host, do not close the response body if an error occurs ([8402ecf](https://github.com/fastly/js-compute-runtime/commit/8402ecf93c91bee66217c401a5cc5954e2e71de6))
## 0.5.12 (2022-11-30)
### Added
* add fastly:experimental module which contains all our experimental functions such as includeBytes and enableDebugLogging ([5c6a5d7](https://github.com/fastly/js-compute-runtime/commit/5c6a5d7cf13274f4752fa398d9bc92de658004b8))
## 0.5.11 (2022-11-30)
### Changed
* update nodejs supported versions to 16 - 19 and npm supported version to only 8 ([5ec70b9](https://github.com/fastly/js-compute-runtime/commit/5ec70b95b0d4d3677a522120c9ae5f9a2cea4db6))
## 0.5.10 (2022-11-30)
### Changed
* ensure custom cache keys are uppercased ([f37920d](https://github.com/fastly/js-compute-runtime/commit/f37920d01f5fb9a172ae82a1d6191159be59f561)), closes [#318](https://github.com/fastly/js-compute-runtime/issues/318)
## 0.5.9 (2022-11-29)
### Added
* add fastly:cache-override module ([f433464](https://github.com/fastly/js-compute-runtime/commit/f433464928e70a8f38ecb4dd293cb2ce40098c34))
* add geo ip lookup function to fastly:geolocation ([24601e5](https://github.com/fastly/js-compute-runtime/commit/24601e5738816ce1597f80d054d312c1a95e4398))
* Add Logger constructor to "fastly:logger" module ([b4818a2](https://github.com/fastly/js-compute-runtime/commit/b4818a2623caaab0fe568c35f7636d0d3d9e8bc7))
* expose fastly loggers via fastly:logger module ([2d0bcfe](https://github.com/fastly/js-compute-runtime/commit/2d0bcfe4f4e0fd855f589205eee4316d829fd28c))
* expose the fastly features via 'fastly:' namespaced modules ([c06cd16](https://github.com/fastly/js-compute-runtime/commit/c06cd1677cd96b383284ea6ab6dbcbbc4f6dfcf4))
* move env function into fastly:env ([327b344](https://github.com/fastly/js-compute-runtime/commit/327b344dc943a53ca4a74aeb16207f02cd6d0b3c))
### Changed
* Add types for setTimeout, clearTimeout, setInterval, clearInterval ([c1ed00c](https://github.com/fastly/js-compute-runtime/commit/c1ed00c8933bc45c9ba8dc84e515d31167596aa6))
## 0.5.8 (2022-11-28)
### Changed
* Allow process.execPath to contain whitespace ([caefe51](https://github.com/fastly/js-compute-runtime/commit/caefe512413675f10a7f1e6501249b3ebe7f5d21))
## 0.5.7 (2022-11-24)
### Changed
* add missing shebang and executable bit to the binary file ([3f0cd69](https://github.com/fastly/js-compute-runtime/commit/3f0cd69e3ec39633f747f0346ae3eda5eb3f3685))
## 0.5.6 (2022-11-24)
### Added
* implement setTimeout, setInterval, clearTimeout, and clearInterval ([128bca9](https://github.com/fastly/js-compute-runtime/commit/128bca901c9ad4b6d6c1084bf13c5c474ef63a41))
## 0.5.5 (2022-11-23)
### Added
* implement Request.prototype.setCacheKey ([457eabe](https://github.com/fastly/js-compute-runtime/commit/457eabe392f44eb296ce593bcabebffb68c57371))
* implement support in Response.json/text/arrayBuffer methods for guest provided streams ([50cdc44](https://github.com/fastly/js-compute-runtime/commit/50cdc443d38e53f029fbcc1ad19ee56b5849dff0))
### Changed
* respond with 500 Internal Server Error when an unhandled error has occured and no response has already been sent to the client ([e5982d8](https://github.com/fastly/js-compute-runtime/commit/e5982d879223a8e5940717ab74c9f01a64b35ce2))
## 0.5.4 (2022-09-28)
### Added
* Add ConfigStore class ([#270](https://github.com/fastly/js-compute-runtime/pull/270))
* Add Dynamic Backends support ([#250](https://github.com/fastly/js-compute-runtime/issues/250))
* Improved performance when constructing a ObjectStore instance ([#272](https://github.com/fastly/js-compute-runtime/pull/272)
#### Dynamic Backend support
Note: This feature is disabled by default for Fastly Services. Please contact [Fastly Support](https://support.fastly.com/hc/en-us/requests/new?ticket_form_id=360000269711) to request the feature be enabled on the Fastly Services which require Dynamic Backends.
This feature makes it possible to use the standard `fetch` within JavaScript applications.
Dynamic Backends is a new feature which enables JavaScript applications to dynamically create new backend server definitions without having to deploy a new version of their Fastly Service. These backends function exactly the same as existing backends, and can be configured in all the same ways as existing backends can via the Fastly Service configuration.
By default, Dynamic Backends are disabled within a JavaScript application as it can be a potential avenue for third-party JavaScript code to send requests, potentially including sensitive/secret data, off to destinations that the JavaScript project was not intending, which could be a security issue. To enable Dynamic Backends the application will need to set `fastly.allowDynamicBackends` is to `true`.
There are two ways to make use of Dynamic Backends within JavaScript projects:
The first way is by omitting the `backend` property definition on the Request instance. The JavaScript Runtime will then create a Dynamic Backend definition using default configuration options. This approach is useful for JavaScript applications as it means that a standard `fetch` call will now be possible, which means libraries that use the standard `fetch` will begin to work for applications deployed to Fastly.
Below is as an example JavaScript application using the default Dynamic Backend option:
```js
// Enable dynamic backends -- warning, this is potentially dangerous as third-party dependencies could make requests to their own backends, potentially including your sensitive/secret data
fastly.allowDynamicBackends = true;
// For any request, return the fastly homepage -- without defining a backend!
addEventListener("fetch", event => {
event.respondWith(fetch('https://www.fastly.com/'));
});
```
The second way is by creating a new Dynamic Backend using the new `Backend` class. This approach is useful for JavaScript applications that want to have full control over the configuration of the new backend defintion, such as only allowing TLS 1.3 and disallowing older versions of TLS for requests made to the new backend.
E.G.
```js
// Enable dynamic backends -- warning, this is potentially dangerous as third-party dependencies could make requests to their own backends, potentially including your sensitive/secret data
fastly.allowDynamicBackends = true;
// For any request, return the fastly homepage -- without defining a backend!
addEventListener("fetch", event => {
// We are not defining all the possible fields here, the ones which are not defined will use their default value instead.
const backend = new Backend({
name: 'fastly',
target: 'fastly.com',
hostOverride: "www.fastly.com",
sslMinVersion: 1.3,
sslMaxVersion: 1.3,
sniHostname: "www.fastly.com",
});
event.respondWith(fetch('https://www.fastly.com/', {
backend // Here we are configuring this request to use the newly defined backend from above.
}));
});
```
#### Config-store support and Dictionary deprecated
We have renamed the `Dictionary` class to `ConfigStore`, the old name `Dictionary` still exists but is now deprecated. We recommend replacing `Dictionary` with `ConfigStore` in your code to avoid having to migrate in the future when `Dictionary` is fully removed.
Below is an example application using the `ConfigStore` class:
```js
async function app(event) {
const store = new ConfigStore('example')
// Retrieve the contents of the 'hello' key
const hello = await store.get('hello')
return new Response(hello)
}
addEventListener("fetch", event => {
event.respondWith(app(event))
})
```
## 0.5.3 (2022-09-16)
### Security
* [CVE-2022-39218](https://github.com/fastly/js-compute-runtime/security/advisories/GHSA-cmr8-5w4c-44v8):
Fixed `Math.random` and `crypto.getRandomValues` methods to always use sufficiently random values. The previous versions would use a PRNG (pseudorandom number generator) which we would seed with a random value however due to our use of [Wizer](https://github.com/bytecodealliance/wizer), the initial value to seed the PRNG was baked-in to the final WebAssembly module meaning the sequence of numbers generated was predictable for that specific WebAssembly module. The new implementations of both `Math.random` and `crypto.getRandomValues` do not use a PRNG and instead pull random values from WASI (WebAssembly System Interface) libc’s `random_get` function, which is always a sufficiently random value.
An attacker with access to the same WebAssembly module that calls the affected methods could use the fixed seed to predict random numbers generated by these functions. This information could be used to bypass cryptographic security controls, for example to disclose sensitive data encrypted by functions that use these generators.
Developers should update affected modules after applying this patch. Any secrets generated using affected versions should be rotated. Any sensitive ciphertext generated using affected versions should be considered unsafe, e.g. and be deleted or re-generated.
### Fixed
* Updated the Typescript definitions for the `console` methods to indicate that they now accept any number of objects. ([#258](https://github.com/fastly/js-compute-runtime/pull/258))
* Store the Object-Store key string into a native object to avoid it becoming garbage collected before being used within `ObjectStore.prototype.get` or `ObjectStore.prototype.put` (([381242](https://github.com/fastly/js-compute-runtime/commit/3812425a955e52c2fd7229e762ef3e691cb78745))
## 0.5.2 (2022-09-02)
### Fixed
* Explicitly declare void as the return type for functions which return nothing - this allows our package to work with typescript's `strict:true` option ([#253](https://github.com/fastly/js-compute-runtime/pull/253))
* Declare ambient types for our npm package instead of exports as we do not yet export anything from the package ([#252](https://github.com/fastly/js-compute-runtime/pull/252))
## 0.5.1 (2022-08-31)
### Fixed
* Removed `type: "module"` from the @fastly/js-compute package.json file as the package still uses `require`
## 0.5.0 (2022-08-30)
### Added
* Implemented ObjectStore and ObjectStoreEntry classes for interacting with Fastly ObjectStore ([#110](https://github.com/fastly/js-compute-runtime/issues/110))
* add btoa and atob native implementations ([#227](https://github.com/fastly/js-compute-runtime/issues/227)) ([8b8c31f](https://github.com/fastly/js-compute-runtime/commit/8b8c31fa9ad70337b1060a3242b8e3495ae47df3))
#### Object-store support
This release adds support for Fastly [Object-store](https://developer.fastly.com/reference/api/services/resources/kv-store/), which is globally consistent key-value storage accessible across the Fastly Network. This makes it possible for your Fastly Compute application to read and write from Object-stores.
We've added two classes, `ObjectStore`, and `ObjectStoreEntry`. `ObjectStore` is used to interact with a particular Object-store and `ObjectStoreEntry` is a particular value within an Object-store. We've made `ObjectStoreEntry` have a similar API as `Response` to make it simpler to read and write from Object-stores. I.e. `ObjectStoreEntry` has a `body` property which is a `ReadableStream` and has `arrayBuffer`/`json`/`text` methods - just like `Response`.
The way to use these classes is best shown with an example:
```js
async function app(event) {
// Create a connection the the Object-store named 'example-store'
const store = new ObjectStore('example-store')
// Create or update the 'hello' key with the contents 'world'
await store.put('hello', 'world')
// Retrieve the contents of the 'hello' key
// Note: Object-stores are eventually consistent, this means that the updated contents associated may not be available to read from all
// Fastly edge locations immediately and some edge locations may continue returning the previous contents associated with the key.
const hello = await store.get('hello')
// Read the contents of the `hello` key into a string
const hellotext = await hello.text()
return new Response(hellotext)
}
addEventListener("fetch", event => {
event.respondWith(app(event))
})
```
#### Added `btoa` and `atob` global functions
These two functions enable you to encode to ([btoa](https://developer.mozilla.org/en-US/docs/Web/API/btoa)) and decode from ([atob](https://developer.mozilla.org/en-US/docs/Web/API/atob)) Base64 strings. They follow the same specification as the `atob` and `btoa` functions that exist in web-browsers.
```js
addEventListener("fetch", event => {
event.respondWith(new Response(atob(btoa('hello from fastly'))))
})
```
#### Improved Console Support
Previously our console methods only supported a single argument and would convert the argument to a string via `String(argument)`, this unfortunately made it difficult to log out complex objects such as Request objects or similar.
We've updated our console methods and they now support any number of arguments. As well as supporting any number of arguments, we've also changed the implementation to have better support for logging out complex objects.
This is a before and after example of what happens when logging a Request with our console methods.
Before:
```js
const request = new Request('https://www.fastly.com', {body:'I am the body', method: 'POST'});
console.log(request); // outputs `[object Object]`.
```
After:
```js
const request = new Request('https://www.fastly.com', {body:'I am the body', method: 'POST'});
console.log(request); // outputs `Request: {method: POST, url: https://www.fastly.com/, version: 2, headers: {}, body: null, bodyUsed: false}`.
```
### Changed
* Improved console output for all types ([#204](https://github.com/fastly/js-compute-runtime/issues/204))
## 0.4.0 (2022-07-28)
### Added
* Implement the DecompressionStream builtin [`#160`](https://github.com/fastly/js-compute-runtime/pull/160)
* Improve performace of Regular Expression literals via precompilation [`#146`](https://github.com/fastly/js-compute-runtime/pull/146)
### Fixed
* Calling `tee` on the client request no longer causes the application to hang [`#156`](https://github.com/fastly/js-compute-runtime/pull/156)
## 0.3.0 (2022-06-29)
### Added
* Implement the CompressionStream builtin
[#84](https://github.com/fastly/js-compute-runtime/pull/84)
### Changed
* Removed the requirement for a fastly.toml file to be present when using js-compute-runtimes CLI to compile a WASM file
* **Breaking change:** Removed --skip-pkg argument from js-compute-runtime's CLI
[#108](https://github.com/fastly/js-compute-runtime/pull/108)
* **Breaking change:** Removed `console.trace` method
### Fixed
* Fix the response error message text
* Throw an error if constructors are called as plain functions
* Fix the behavior of `console.debug`
* Allow builtin classes to be extended
## 0.2.5 (2022-04-20)
### Changed
* Updated the js-compute-runtime to 0.2.5 : Increased max uri length to 8k, and properly forwards http headers to upstream requests even if the headers aren't ever read from
## 0.2.4 (2022-02-09)
### Changed
* Support streaming upstream request bodies
## 0.2.2 (2022-02-03)
### Added
* Add full support for TransformStreams
* Support directly piping Request/Response bodies to other Requests/Responses instead of manually copying every chunk
* Add support for the `queueMicrotask` global function
* Add support for the `structuredClone` global function
* Add support for the `location` global object as an instance of `WorkerLocation`
* Support BigUint64Array and BigInt64Array in crypto.getRandomValues
* Enable class static blocks syntax
* Returned the exit code from the JS Compute Runtime, by passing it up through our CLI
### Changed
* Increase max supported header size from 4096 bytes to 69000 bytes
* Update to SpiderMonkey 96 beta
### Fixed
* Avoid waiting for async tasks that weren't passed to `FetchEvent#waitUntil`
* Significantly improve spec-compliance of Request and Response builtins
## 0.2.1 (2021-11-10)
### Added
* Updated the js-compute-runtime to `0.2.2` (Which includes fixes to geoip, a way to get environment variables, improves debugging of exceptions in the request handler, and other updates)
* Added the `Env` namespace for accessing Fastly Compute environment variables.
## 0.2.0 (2021-08-31)
### Added
* Implement the WHATWG URL and URLSearchParam classes
* Enable private class fields and methods, plus ergonomic brand checks
* Breaking change: Implement FetchEvent#waitUntil
* Mark builtins that rely on hostcalls as request-handler-only
* Add support for including binary files, and for using typed arrays as Response bodies
* Improve handling of hostcall errors
### Fixed
* Breaking change: Make FetchEvent handling more spec-compliant
* Normalize HTTP method names when constructing Requests
* Don't trap when trying to delete a non-existent header
* Properly support `base` argument in `URL` constructor
## 0.1.0 (2021-07-28)
### Added
* Initial Release
* Includes TypeScript type definitions for Fastly Compute flavored ServiceWorkers APIs
* Also includes the `js-compute-runtime` CLI for bundling JavaScript applications
================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, caste, color, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
[oss@fastly.com](mailto:oss@fastly.com).
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
[https://www.contributor-covenant.org/version/2/0/code_of_conduct.html][v2.0].
Community Impact Guidelines were inspired by
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
For answers to common questions about this code of conduct, see the FAQ at
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available
at [https://www.contributor-covenant.org/translations][translations].
[homepage]: https://www.contributor-covenant.org
[v2.0]: https://www.contributor-covenant.org/version/2/0/code_of_conduct.html
[Mozilla CoC]: https://github.com/mozilla/diversity
[FAQ]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations
================================================
FILE: CONTRIBUTING.md
================================================
# Contributing to the JS Compute Runtime
First off thank you for wanting to contribute to making the JS Compute Runtime better! We
appreciate you taking time to improve the Fastly Compute experience for developers
everywhere. There are many ways you can contribute that include but aren't
limited to documentation, opening issues, issue triage, and code contributions.
We'll cover some of the ways you can contribute below, but if you don't see
instructions for what you want to do, open up an issue and ask us!
## Table of Contents
1. Documentation
1. Feature Requests
1. Bugs
1. Issue Triage
1. Code Contributions
## Documentation
Was something in our documentation unclear? Does something have no documentation,
but should? This is a perfect way to make an easy contribution to the JS Compute Runtime. If
you're not sure what the documentation should contain, please open up an issue!
We're happy to guide you with the correct information needed or if you already
know what needs to be done, open up a PR and we'll review it for you before
merging your changes.
## Feature Requests
Do you think there's something the JS Compute Runtime should have that would make the
experience better? Feature requests are a great way to let us know. Before
opening up a feature request on the issue tracker first make sure that there is
no currently open issue asking for the same thing. If there's not, open up an
issue asking for what you want and the motivation behind the change.
## Bugs
Sometimes you run into issues and the code is not working properly. If you do
run into a bug and you can't figure it out or if you do figure out the bug, open
up an issue on the issue tracker. Just make sure it's not already an issue that
has been filed yet. If you do open up an issue let us know what you expected to
happen, what actually happened, what your operating system is, as well as a case
we can use to reproduce the issue if you have one!
## Issue Triage
Sometimes issues get stale and are no longer an issue, need to be updated, or
have been fixed by a PR and were never closed. While we try to stay on top of
issues and keep the backlog groomed, we are only human and can miss out on
things. If you find that an issue can be closed,
## Code Contributions
If you want to contribute code to the JS Compute Runtime thank you! A few things before you do
get started adding a change and open up a PR
1. Make sure there's a tracking issue for your code change. We don't want you to
do a lot of work only for us to reject the PR because it's a feature change
we won't accept for instance.
1. Before opening your PR make sure things are working locally.
You can test your resulting `.wasm` files locally using
[Fastly's local testing server](https://developer.fastly.com/learning/compute/testing/#running-a-local-testing-server).
It also helps to understand how we structure the JS Compute Runtime code base.
- Under `src` is the code related to bulding a JS file and the JS runtime iself into a
`.wasm` file.
- Under `runtime/js-compute-runtime` is the code for the actual JS runtime itself.
See below for building the runtime.
- The main logic for initializing the JS runtime, reading the JS source code from `stdin`,
and evaluating the JS top-level code is in `js-compute-runtime.cpp`.
- The various builtins the JS Compute Runtime adds to JS are defined in
`js-compute-builtins.cpp`.
Thanks again for contributing to the JS Compute Runtime. We really do appreciate you wanting to
help out and make it better!
================================================
FILE: DEVELOPMENT.md
================================================
# Fastly Compute JS Runtime
The JS Compute Runtime for Fastly's [Compute platform](https://www.fastly.com/products/edge-compute/serverless) provides the environment JavaScript is executed in when using the [Fastly Compute JavaScript SDK](https://www.npmjs.com/package/@fastly/js-compute).
**Note**: If you just want to use JavaScript on the Fastly Compute Platform, we recommend using the JavaScript Starter Kits provided by the Fastly CLI tool. For more information please see the [JavaScript documentation on the Fastly Developer Hub](https://developer.fastly.com/learning/compute/javascript/).
## Working with the JS Compute Runtime source
Note that this repository uses Git submodules, so you will need to run
```sh
git submodule update --recursive --init
```
to pull down or update submodules.
### Building the JS Compute Runtime
To build from source, you need to have the following tools installed to successfully build, depending on your system.
#### Linux
- Build tools
```sh
sudo apt install build-essential
```
- Rust
```
curl -so rust.sh https://sh.rustup.rs && sh rust.sh -y
restart shell or run source $HOME/.cargo/env
```
- binaryen
```sh
sudo apt install binaryen
```
- rust target wasm32-wasip1
```sh
rustup target add wasm32-wasip1
```
- [cbindgen](https://github.com/eqrion/cbindgen#quick-start)
```sh
cargo install cbindgen
```
- [wasi-sdk, version 20](https://github.com/WebAssembly/wasi-sdk/releases/tag/wasi-sdk-20),
with alternate [install instructions](https://github.com/WebAssembly/wasi-sdk#install)
```sh
curl -sS -L -O https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-linux.tar.gz
tar xf wasi-sdk-20.0-linux.tar.gz
sudo mkdir -p /opt/wasi-sdk
sudo mv wasi-sdk-20.0/* /opt/wasi-sdk/
```
Build the runtime using npm:
```sh
npm run build
```
#### macOS (Apple silicon)
- Build tools
```sh
# First, install Xcode from the Mac App Store. Then:
sudo xcode-select --switch /Applications/Xcode.app
sudo xcodebuild -license
```
- Homebrew
```sh
# From homebrew.sh
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```
- wget
```sh
brew install wget
```
- binaryen
```sh
brew install binaryen
```
- Python
```sh
brew install python@3
```
- Rust
```sh
curl -so rust.sh https://sh.rustup.rs && sh rust.sh -y
# then, restart shell or run:
source $HOME/.cargo/env
```
- rust target wasm32-wasip1
```sh
rustup target add wasm32-wasip1
```
- [cbindgen](https://github.com/eqrion/cbindgen#quick-start)
```sh
cargo install --locked cbindgen
```
- [wasm-tools](https://github.com/bytecodealliance/wasm-tools)
```sh
cargo install --locked wasm-tools
```
- [wasi-sdk, version 20](https://github.com/WebAssembly/wasi-sdk/releases/tag/wasi-sdk-20),
with alternate [install instructions](https://github.com/WebAssembly/wasi-sdk#install)
```sh
curl -sS -L -O https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-20/wasi-sdk-20.0-macos.tar.gz
tar xf wasi-sdk-20.0-macos.tar.gz
sudo mkdir -p /opt/wasi-sdk
sudo mv wasi-sdk-20.0/* /opt/wasi-sdk/
```
Build the runtime using npm:
```sh
npm run build
```
## Testing a Local build in a Compute application
:warning: **You should not use this for production workloads!!!!!!!!**
You can test a local build of the JS Compute runtime by installing it in your JavaScript Compute application and running that locally or by uploading it to your Fastly service.
1. First, follow the directions in [Building the JS Compute Runtime](#building-the-js-compute-runtime) for your platform to obtain a local build. The build outputs are the following files:
- `fastly.wasm`
- `fastly.debug.wasm`
- `fastly-weval.wasm`
- `fastly-ics.wevalcache`
2. Create a local tarball using npm.
```shell
npm pack
```
The resulting tarball will have a filename such as `fastly-js-compute-<version>.tgz`.
3. In your Compute application, install the tarball using `npm`:
```shell
npm install /path/to/fastly-js-compute-<version>.tgz
```
4. Build and test or deploy your application as usual, using `fastly compute serve` or `fastly compute publish`, or an appropriate npm script.
## Testing a Dev Release in a Compute application
:warning: **You should not use this for production workloads!!!!!!!!**
Dev builds are released before production releases to allow for further testing. These are not released upstream to NPM, however you can acquire them from the [Releases](https://github.com/fastly/js-compute-runtime/releases/) section. Download the runtime for your platform, extract the executable and place it in the /node_modules/@fastly/js-compute/bin/PLATFORM folder of your Fastly Compute project. Then you can use the normal [Fastly CLI](https://github.com/fastly/cli) to build your service.
Please submit an [issue](https://github.com/fastly/js-compute-runtime/issues) if you find any problems during testing.
## Tests
All tests are automatically run on pull requests via CI.
### Unit Testing
Unit tests are run via `npm run test`, currently including:
- CLI tests (`npm run test:cli`)
- Typing tests (`npm run test:types`)
### Integration Tests
Complete test applications are tested from the `./integration-tests/js-compute/fixtures/app/src` and `./integration-tests/js-compute/fixtures/module-mode/src` directories.
Tests themselves are listed in the `./integration-tests/js-compute/fixtures/app/tests.json` and `./integration-tests/js-compute/fixtures/module-mode/tests.json` files.
Integration tests can be run via `npm run test:integration`, which defaults to the release build.
In addition the following flags can be added after the command (passed via `npm run test:debug -- ...` after the `--`):
- `--local`: Test locally using Viceroy, instead of publishing to a staging Compute service.
- `--bail`: Immediately stop testing on the first failure, and report the failure.
- `--verbose`: Adds verbose logging to `fastly compute publish` and Viceroy (which provides hostcall logging as well).
- `--debug-build`: Use the debug build
- `--debug-log`: Enable debug logging for the tests (engine-level DEBUG_LOG)
- `--fixture=module-mode`: Run the module mode test suite (`fixtures/module-mode` instead of `fixtures/app`).
- `--fixture=reusable-sandboxes`: Run the reusable sandboxes test suite (`fixtures/reusable-sandboxes`)
- `--http-cache`: Run the HTTP cache test suite
- `--serial`: Run tests serially rather than in concurrent batches (mostly useful for reusable sandbox tests)
- `[...args]`: Additional arguments allow for filtering tests
A typical development test command is therefore something like:
```
npm run build:cli && npm run build:debug && npm run test:integration -- --debug-build --debug-log --local --bail /crypto
```
Which would build the CLI TypeScript to JavaScript, run a debug build, enable debugging logging, and then that build against all the crypto tests locally on Viceroy, throwing an error as soon as one is found.
Some tests can only be run on Compute and not Viceroy and will be automatically skipped. A green tick is always shown for a test that ran successfully - if it is missing that means it did not run.
### Web Platform Tests
The Web Platform tests are included as a submodule, and can be run via `npm run test:wpt` or `npm run test:wpt:debug`.
The WPT test runner supports the following options (passed via `npm run test:wpt -- ...` after the `--`):
- `--update-expectations`: Update the WPT test expectations JSON files based on the current PASS/FAIL test statuses, instead of throwing an error when the current PASS/FAIL lists are not matched.
- `[...args]`: Filter to apply to WPT tests to run
Run `./tests/wpt-harness/run-wpt.mjs --help` for further options information.
================================================
FILE: LICENSE
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright 2020 Fastly, Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
--- LLVM Exceptions to the Apache 2.0 License ----
As an exception, if, as a result of your compiling your source code, portions
of this Software are embedded into an Object form of such source code, you
may redistribute such embedded portions in such Object form without complying
with the conditions of Sections 4(a), 4(b) and 4(d) of the License.
In addition, if you combine or link compiled forms of this Software with
software that is licensed under the GPLv2 ("Combined Software") and if a
court of competent jurisdiction determines that the patent provision (Section
3), the indemnity provision (Section 9) or other Section of the License
conflicts with the conditions of the GPLv2, you may retroactively and
prospectively choose to deem waived or otherwise exclude such Section(s) of
the License, but only in their entirety and only with respect to the Combined
Software.
================================================
FILE: README.md
================================================
# @fastly/js-compute
JavaScript SDK and CLI for building JavaScript applications on [Fastly Compute](https://www.fastly.com/products/edge-compute/serverless).
 
## Getting Started
We recommend using the [Fastly CLI](https://github.com/fastly/cli) to create, build, and deploy JavaScript Fastly Compute services, as [described on the Fastly Developer Hub](https://developer.fastly.com/learning/compute/).
[Detailed documentation for JavaScript Fastly Compute services](https://developer.fastly.com/learning/compute/javascript/) is also available on Fastly Developer Hub.
## Usage
### JavaScript Examples
The Fastly Developer Hub has a collection of [example JavaScript applications](https://developer.fastly.com/solutions/examples/javascript/).
Here is a small example application:
```js
/// <reference types="@fastly/js-compute" />
async function app(event) {
const request = event.request;
return new Response(`You made a request to ${request.url}`)
}
addEventListener("fetch", event => {
event.respondWith(app(event));
});
```
### CLI Flags and configuration
The CLI is typically invoked by the `build` script defined in your project's `package.json` scripts.
```json
{
"scripts": {
"build": "js-compute-runtime src/index.js bin/main.wasm"
}
}
```
The CLI is invoked as follows:
```sh
js-compute-runtime [OPTIONS] <input-js-file> <output-wasm-file>
```
Options can be specified on the command line or added to a persistent configuration file for the project. The CLI will search for a configuration starting from the current directory in the following order:
* A `fastlycompute` property in `package.json`
* `.fastlycomputerc.json`
* `fastlycompute.config.js`
<details>
<summary>Click here to see full list</summary>
The CLI will search for a configuration starting from the current directory in the following order:
- A `fastlycompute` property in `package.json`
- `.fastlycomputerc` (JSON or YAML)
- `.fastlycomputerc.json`, `.fastlycomputerc.yaml`, `.fastlycomputerc.yml`
- `.fastlycomputerc.js`, `.fastlycomputerc.mjs`
- `fastlycompute.config.js`, `fastlycompute.config.mjs`
</details>
If an option is defined in both the command line and the configuration file, the command line option takes precedence.
#### Supported Options
| Config Key | CLI Flag | Type | Description |
|:----------------------------------------------|:-----------------------------------------------------|:----------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------|
| `enableAOT` | `--enable-aot` | `boolean` | Enable AOT compilation for performance |
| `aotCache` | `--aot-cache` | `string` (path) | Specify a path to the AOT cache file |
| `enableHttpCache` | `--enable-http-cache` | `boolean` | Enable the [HTTP cache hook API](https://www.fastly.com/documentation/guides/concepts/cache/#modifying-a-request-as-it-is-forwarded-to-a-backend) |
| `enableExperimentalHighResolutionTimeMethods` | `--enable-experimental-high-resolution-time-methods` | `boolean` | Enable experimental fastly.now() method |
| `enableExperimentalTopLevelAwait` | `--enable-experimental-top-level-await` | `boolean` | Enable experimental top level await |
| `enableStackTraces` | `--enable-stack-traces` | `boolean` | Enable stack traces |
| `excludeSources` | `--exclude-sources` | `boolean` | Don't include sources in stack traces |
| `debugIntermediateFiles` | `--debug-intermediate-files` | `string` (path) | Output intermediate files in directory |
| `debugBuild` | `--debug-build` | `boolean` | Use debug build of the SDK runtime |
| `engineWasm` | `--engine-wasm` | `string` (path) | Specify a custom Wasm engine (advanced) |
| `wevalBin` | `--weval-bin` | `string` (path) | Specify a custom weval binary (advanced) |
| `env` | `--env` | `string \| object \| array` | Set environment variables, possibly inheriting from the current environment. Multiple variables can be comma-separated (e.g., --env ENV_VAR,OVERRIDE=val) |
NOTE: The `env` field is additive. Values defined on the command-line values append to, rather than replace, the values defined in any configuration file.
#### Example command-line options
```sh
js-compute-runtime --enable-aot --enable-stack-traces --enable-top-level-await --env=LOG_LEVEL=debug ./src/index.js ./bin/main.wasm
```
#### Example `.fastlycomputerc.json`
```json
{
"enableAOT": true,
"enableStackTraces": true,
"enableTopLevelAwait": true,
"env": {
"LOG_LEVEL": "debug"
}
}
```
#### Example `package.json`
```json
{
"name": "my-fastly-service",
"type": "module",
"dependencies": {
"@fastly/cli": "^13.0.0"
},
"scripts": {
"build": "js-compute-runtime ./src/index.js ./bin/main.wasm",
"dev": "fastly compute serve",
"deploy": "fastly compute publish"
},
"fastlycompute": {
"enableAOT": true,
"enableStackTraces": true,
"enableTopLevelAwait": true,
"env": {
"LOG_LEVEL": "debug"
}
}
}
```
### API documentation
The API documentation for the JavaScript SDK is located at [https://js-compute-reference-docs.edgecompute.app](https://js-compute-reference-docs.edgecompute.app).
## Security
If you find any security issues, see the [Fastly Security Reporting Page](https://www.fastly.com/security/report-security-issue) or send an email to: `security@fastly.com`
We plan to disclose any found security vulnerabilities per the [GitHub security vulnerability guidance](https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing/about-coordinated-disclosure-of-security-vulnerabilities#best-practices-for-maintainers). Note that communications related to security issues in Fastly-maintained OSS as described here are distinct from [Fastly security advisories](https://www.fastly.com/security-advisories).
## Changelog
The changelog can be found [here](https://github.com/fastly/js-compute-runtime/blob/main/CHANGELOG.md).
## License
[Apache-2.0 WITH LLVM-exception](./LICENSE)
================================================
FILE: SECURITY.md
================================================
## Report a security issue
The js-compute-runtime project team welcomes security reports and is committed to providing prompt attention to security issues. Security issues should be reported privately via [Fastly’s security issue reporting process](https://www.fastly.com/security/report-security-issue).
## Security advisories
Remediation of security vulnerabilities is prioritized by the project team. The project team endeavors to coordinate remediation with third-party stakeholders, and is committed to transparency in the disclosure process. The team announces security issues via the [Fastly Developer Hub Starter Kits](https://developer.fastly.com/solutions/starters/) site on a best-effort basis.
Note that communications related to security issues in Fastly-maintained OSS as described here are distinct from [Fastly Security Advisories](https://www.fastly.com/security-advisories).
================================================
FILE: ci/build-tarballs.sh
================================================
#!/usr/bin/env bash
# A small shell script invoked from CI on the final Linux builder which actually
# assembles the release artifacts for a particular platform. This will take the
# binary artifacts of previous builders and create associated tarballs to
# publish to GitHub.
#
# The first argument of this is the "platform" name to put into the tarball, and
# the second argument is the name of the github actions platform which is where
# we source binaries from. The final third argument is ".exe" on Windows to
# handle executable extensions right.
#
# Usage: build-tarballs.sh PLATFORM [.exe]
# where PLATFORM is e.g. x86_64-linux, aarch64-linux, ...
set -euo pipefail
set -x
platform="$1"
exe="${2:-}"
rm -rf tmp
mkdir tmp
mkdir -p dist
mktarball() {
dir="$1"
if [ "$exe" = "" ]; then
tar -cJf "dist/$dir.tar.xz" -C tmp "$dir"
else
(cd tmp && zip -r "../dist/$dir.zip" "$dir")
fi
}
# Create the main tarball of binaries
bin_pkgname="js-compute-runtime-$TAG-$platform"
mkdir "tmp/$bin_pkgname"
cp README.md "tmp/$bin_pkgname"
mv "bins-$platform/js-compute-runtime$exe" "tmp/$bin_pkgname"
chmod +x "tmp/$bin_pkgname/js-compute-runtime$exe"
mktarball "$bin_pkgname"
================================================
FILE: ci/clang-format.ignore
================================================
runtime/js-compute-runtime/third_party/wizer.h
runtime/js-compute-runtime/rust-url/rust-url.h
runtime/js-compute-runtime/rust-encoding/rust-encoding.h
runtime/js-compute-runtime/host_interface/component/fastly_world.h
================================================
FILE: ci/clang-format.sh
================================================
#!/usr/bin/env bash
set -euo pipefail
usage() {
cat <<EOF
Usage: $0 [-h] [--fix]
Format c/c++ source that's tracked by git. Exits with a non-zero return code
when formatting is applied.
-h Print this message
--fix Format files in-place
EOF
}
fix=
while [ "$#" -gt 0 ] ; do
case $1 in
-h)
usage
exit 1
;;
--fix)
fix=1
;;
*)
echo "Unrecognized option: $1"
echo
usage
exit 1
;;
esac
shift
done
cd "$(dirname "${BASH_SOURCE[0]}")/.."
failure=
for file in $(git ls-files | grep '\.\(cpp\|h\)$'); do
if grep -F -x "$file" ci/clang-format.ignore > /dev/null; then
continue
fi
formatted="${file}.formatted"
/opt/wasi-sdk/bin/clang-format "$file" > "$formatted"
if ! cmp -s "$file" "$formatted"; then
if [ -z "$fix" ]; then
rm "$formatted"
echo "${file} needs formatting"
failure=1
else
echo "${file} formatted"
mv "$formatted" "$file"
fi
fi
rm -f "$formatted"
done
if [ -n "$failure" ]; then
exit 1
fi
================================================
FILE: ci/format-changelog.js
================================================
#!/usr/bin/env node
import { readFileSync, writeFileSync } from "node:fs";
import path from "node:path";
import process from "node:process";
import { unified } from "unified";
import remarkParse from "remark-parse";
import remarkStringify from "remark-stringify";
let markdownString;
const fileFromArgs = process.argv[2];
const filePath = path.join(process.cwd(), fileFromArgs);
try {
markdownString = readFileSync(filePath, "utf-8");
} catch (err) {
console.log(
`Could not read or maybe even find your markdown file. \nCheck your file path, name, extension. \nMake sure you type 'npm run check -- pathtofile.md'\nError from Node.js: ${err}`
);
process.exit(1);
}
let ast;
try {
ast = getAst(markdownString);
} catch (err) {
console.log(`Could not parse the markdown into a syntax tree: ${err}`);
process.exit(1);
}
try {
const result = format(ast, filePath);
if (result.changed) {
console.log("Updated markdown");
}
if (result.correct) {
console.log("Looks like the markdown was good enough");
process.exit(0);
} else {
console.log(`There was a problem with the markdown...\n ${result.reason}`);
process.exit(1);
}
} catch (err) {
console.log(
`I must have made a mistake or not handled an error, soz\n${err}`
);
process.exit(1);
}
function getAst(markdownString) {
const tree = unified().use(remarkParse).parse(markdownString);
return tree;
}
function format(ast, path) {
try {
let changed = false;
const content = ast.children;
if (!content.length) {
return {
correct: false,
reason: "Empty file maybeee",
};
}
// heading 1 is optional so if it's there just get rid of it and check the rest
if (content[0].type === "heading" && content[0].depth === 1) {
content.splice(0, 1);
}
// now we may have removed the h1, the new 'first' item should be a h2
// check first item is a heading
if (content[0].type !== "heading" || content[0].depth !== 2) {
return {
correct: false,
reason:
"There should be a level 2 heading at the top, or immediately after the level 1 heading if you have one. If you have a level 1 heading, make sure there is no text between that and the level 2 heading",
};
}
let changedIdx = -1;
for (let i = 0; i < content.length; i++) {
// checks on all ## headings
const item = content[i];
if (item.type === "heading" && item.depth === 2) {
changedIdx = -1;
// check correct amount of text is at heading 2
if (
item.children.length === 2 &&
item.children[0].type === "link" &&
item.children[0].children.length === 1 &&
item.children[0].children[0].type === "text" &&
item.children[1].type === "text"
) {
const link = item.children[0];
item.children = [item.children[1]];
item.children[0].value =
link.children[0].value + item.children[0].value;
changed = true;
} else if (item.children.length !== 1) {
console.log(
`${path}:${item.position.start.line}:${item.position.start.column}`
);
return {
correct: false,
reason:
"Level 2 headings should say version and date, e.g. 1.9.2 (2023-02-10) and contain no other markdown",
};
}
const heading2 = item.children[0];
const heading2Text = heading2.value;
// check heading 2 text can be split into exactly 2 parts at the point of a space
let textParts;
try {
textParts = heading2Text.split(" ");
} catch (err) {
console.log(
`${path}:${heading2.position.start.line}:${heading2.position.start.column}`
);
return {
correct: false,
reason: `Level 2 headings should contain a space. We expect one between the semantic version number and the date. Error message: ${err}`,
};
}
if (textParts.length > 2) {
console.log(
`${path}:${heading2.position.start.line}:${heading2.position.start.column}`
);
return {
correct: false,
reason:
"Level 2 headings should only contain one space. We expect one between the semantic version number and the date",
};
}
// check first part of header 2 is a semantic version number
const expectedSemanticVersion = textParts[0];
if (
!/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/.test(
expectedSemanticVersion
)
) {
console.log(
`${path}:${heading2.position.start.line}:${heading2.position.start.column}`
);
return {
correct: false,
reason:
"First part of level 2 headings should be a semantic version, e.g. 1.9.2",
};
}
// check second part of header 2 is a date in format YYYY-MM-DD
const expectedDate = textParts[1];
if (
!/^\((\d{4,5}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])\))$/.test(
expectedDate
)
) {
console.log(
`${path}:${heading2.position.start.line}:${heading2.position.start.column}`
);
return {
correct: false,
reason:
"Second part of level 2 headings should be a hypen-separated date in the format YYYY-MM-DD",
};
}
// check it is followed by at least one level 3 heading
if (
!content[i + 1] ||
content[i + 1].type !== "heading" ||
content[i + 1].depth !== 3
) {
console.log(
`${path}:${item.position.start.line}:${item.position.start.column}`
);
return {
correct: false,
reason:
"Level 2 headings must be followed by at least one level 3 heading",
};
}
}
// checks on all ### headings
if (item.type === "heading" && item.depth === 3) {
// check it only uses one of the fixed options for change types
if (item.children.length === 1 && item.children[0].type === "text") {
const val = item.children[0].value;
if (val.toLowerCase().endsWith("breaking changes")) {
item.children[0].value = "Changed";
changed = true;
} else if (val.includes("Bug Fixes")) {
item.children[0].value = "Fixed";
changed = true;
} else if (val.includes("Features")) {
item.children[0].value = "Added";
changed = true;
}
}
if (item.children.length !== 1 || item.children[0].type !== "text") {
console.log(
`${path}:${item.children[0].position.start.line}:${item.children[0].position.start.column}`
);
return {
correct: false,
reason: `Level 3 headings should only be text`,
};
}
if (item.children[0].value === 'Performance Improvements') {
if (i + 1 < content.length && (content[i + 1].type !== 'list' || content[i + 2].type !== 'heading')) {
console.log(
`${path}:${item.children[0].position.start.line}:${item.children[0].position.start.column}`
);
return {
correct: false,
reason: `Performance improvements section must be a single list to fix it`,
};
}
if (changedIdx === -1) {
for (let j = i + 1; j < content.length; j++) {
const curItem = content[j];
if (curItem.type === 'heading') {
if (curItem.depth < 3)
break;
if (curItem.depth === 3 && curItem.children.length === 1 &&
curItem.children[0].type === 'text' && curItem.children[0].value === 'Changed') {
changedIdx = j;
break;
}
}
}
}
if (changedIdx !== -1) {
// Merge it into any already-seen changed section
const toMerge = content[i + 1];
content.splice(i, 2);
content.splice(changedIdx + 1, 0, toMerge);
changed = true;
} else {
// Otherwise rename to Changed
item.children[0].value = 'Changed';
changed = true;
}
continue;
}
if (![
"Added",
"Changed",
"Deprecated",
"Removed",
"Fixed",
"Security",
].includes(item.children[0].value)
) {
console.log(
`${path}:${item.children[0].position.start.line}:${item.children[0].position.start.column}`
);
return {
correct: false,
reason: `Level 3 headings should only be one of 'Added', 'Changed', 'Deprecated', 'Removed', 'Fixed', 'Security'`,
};
}
if (item.children[0].value === 'Changed')
changedIdx = i;
// check that there is something other than a heading following it, which we have to presume describes the change
if (!content[i + 1] || content[i + 1].type === "heading") {
console.log(
`${path}:${item.position.start.line}:${item.position.start.column}`
);
return {
correct: false,
reason:
"Level 3 headings must be followed by something other than a heading to describe the change",
};
}
}
}
if (changed) {
// ...work around convoluted API...
const wat = { data() {} };
remarkStringify.call(wat);
const output = wat.compiler(ast);
writeFileSync(path, `# Changelog\n\n${output}`, "utf8");
}
return { correct: true, changed };
} catch (err) {
console.error("Must be an error in my checks: ", err);
process.exit(1);
}
}
================================================
FILE: ci/rustfmt.sh
================================================
#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "${BASH_SOURCE[0]}")/.."
failed=0
for manifest in $(git ls-files | grep Cargo.toml); do
if ! cargo fmt --manifest-path="$manifest" -- --check; then
failed=1
fi
done
exit "$failed"
================================================
FILE: ci/shellcheck.sh
================================================
#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "${BASH_SOURCE[0]}")/.."
failed=
for file in $(git ls-files | grep '\.sh$'); do
if ! shellcheck "${file}"; then
failed=1
fi
done
if [ -n "${failed}" ]; then
exit 1
fi
================================================
FILE: compute-file-server-cli/.gitignore
================================================
/target
================================================
FILE: compute-file-server-cli/Cargo.toml
================================================
[package]
name = "compute-file-server-cli"
version = "1.1.0"
edition = "2021"
description = "Uploads files to Fastly for serving directly from within Fastly Compute applications. Upload any type of file: images, text, video etc and serve directly from Fastly. It is ideal for serving files built from a static site generator such as 11ty."
license = "MIT"
license-file = "LICENSE"
repository = "https://github.com/jakeChampion/compute-file-server"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
clap = "=4.0.10"
walkdir = "=2.3.2"
reqwest = { version = "=0.11", features = ["json", "stream"] }
openssl = { version = "=0.10.72", features = ["vendored"] }
tokio = { version = "=1", features = ["full"] }
simple-error = "=0.2.3"
serde_derive = "=1.0.145"
serde = "=1.0.145"
phf = { version = "=0.11", features = ["macros"] }
fastly-api = "=1.0.0-beta.0"
indicatif = "=0.17.1"
futures = "=0.3.24"
percent-encoding = "=2.2.0"
toml_edit = "=0.14.4"
httpdate = "=1.0.2"
serde_json = "=1.0.86"
sha2 = "=0.10.6"
base64 = "=0.13.0"
================================================
FILE: compute-file-server-cli/LICENSE
================================================
MIT License
Copyright (c) 2022 Jake Daniel Champion
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: compute-file-server-cli/README.md
================================================
# compute-file-server
Fastly File Server uploads files to Fastly for serving directly from within Fastly Compute applications.
Upload any type of file: images, text, video etc and serve directly from Fastly.
It is ideal for serving files built from a static site generator such as 11ty.
## Install
### Cargo
Compile and install via `cargo`
```sh
git clone https://github.com/JakeChampion/compute-file-server
cd compute-file-server/cli
cargo install --path .
```
## Commands
### Upload
Upload files to a Fastly Object Store, creating the Object Store if it does not exist.
Example: `compute-file-server upload --name website-static-files -- ./folder/of/files`
```sh
compute-file-server upload
Upload files
Usage: compute-file-server upload [OPTIONS] --name <NAME> -- <PATH>
Arguments:
<PATH>
Options:
--name <NAME>
--token <TOKEN>
-h, --help Print help information
```
### Link
Connect a Fastly Object Store to a Fastly Service.
Example: `compute-file-server link --name website-static-files --link-name files --service-id xxyyzz`
```sh
Usage: compute-file-server link [OPTIONS] --name <NAME> --link-name <LINK_NAME> --service-id <SERVICE_ID>
Options:
--name <NAME>
--token <TOKEN>
--link-name <LINK_NAME>
--service-id <SERVICE_ID>
-h, --help Print help information
```
### Local
Update `fastly.toml` to contain a local Object Store containing the specified files.
Example: `compute-file-server local --name files --toml fastly.toml -- ./folder/of/files`
```sh
Usage: compute-file-server local --toml <TOML> --name <NAME> -- <PATH>
Arguments:
<PATH>
Options:
--toml <TOML>
--name <NAME>
-h, --help Print help information
```
================================================
FILE: compute-file-server-cli/rust-toolchain.toml
================================================
[toolchain]
channel = "1.83.0"
targets = ["wasm32-wasi"]
profile = "minimal"
================================================
FILE: compute-file-server-cli/src/main.rs
================================================
use base64;
use clap::{arg, Command};
use fastly_api::apis::configuration::{ApiKey, Configuration};
use fastly_api::apis::version_api::{
activate_service_version, clone_service_version, list_service_versions,
ActivateServiceVersionParams, CloneServiceVersionParams, ListServiceVersionsParams,
};
use futures::{stream, StreamExt};
use httpdate::fmt_http_date;
use reqwest::Client;
use sha2::{Digest, Sha256};
use simple_error::bail;
use std::error::Error;
use std::path::PathBuf;
use tokio;
use tokio::fs::File;
use toml_edit;
use walkdir::WalkDir;
const PARALLEL_REQUESTS: usize = 10;
const RETRY_REQUESTS: usize = 5;
use phf::phf_map;
static MIMES: phf::Map<&'static str, &'static str> = phf_map! {
"ez"=> "application/andrew-inset",
"aw"=> "application/applixware",
"atom"=> "application/atom+xml",
"atomcat"=> "application/atomcat+xml",
"atomdeleted"=> "application/atomdeleted+xml",
"atomsvc"=> "application/atomsvc+xml",
"dwd"=> "application/atsc-dwd+xml",
"held"=> "application/atsc-held+xml",
"rsat"=> "application/atsc-rsat+xml",
"bdoc"=> "application/bdoc",
"xcs"=> "application/calendar+xml",
"ccxml"=> "application/ccxml+xml",
"cdfx"=> "application/cdfx+xml",
"cdmia"=> "application/cdmi-capability",
"cdmic"=> "application/cdmi-container",
"cdmid"=> "application/cdmi-domain",
"cdmio"=> "application/cdmi-object",
"cdmiq"=> "application/cdmi-queue",
"cu"=> "application/cu-seeme",
"mpd"=> "application/dash+xml",
"davmount"=> "application/davmount+xml",
"dbk"=> "application/docbook+xml",
"dssc"=> "application/dssc+der",
"xdssc"=> "application/dssc+xml",
"es"=> "application/ecmascript",
"ecma"=> "application/ecmascript",
"emma"=> "application/emma+xml",
"emotionml"=> "application/emotionml+xml",
"epub"=> "application/epub+zip",
"exi"=> "application/exi",
"fdt"=> "application/fdt+xml",
"pfr"=> "application/font-tdpfr",
"geojson"=> "application/geo+json",
"gml"=> "application/gml+xml",
"gpx"=> "application/gpx+xml",
"gxf"=> "application/gxf",
"gz"=> "application/gzip",
"hjson"=> "application/hjson",
"stk"=> "application/hyperstudio",
"ink"=> "application/inkml+xml",
"inkml"=> "application/inkml+xml",
"ipfix"=> "application/ipfix",
"its"=> "application/its+xml",
"jar"=> "application/java-archive",
"war"=> "application/java-archive",
"ear"=> "application/java-archive",
"ser"=> "application/java-serialized-object",
"class"=> "application/java-vm",
"js"=> "application/javascript",
"mjs"=> "application/javascript",
"json"=> "application/json",
"map"=> "application/json",
"json5"=> "application/json5",
"jsonml"=> "application/jsonml+json",
"jsonld"=> "application/ld+json",
"lgr"=> "application/lgr+xml",
"lostxml"=> "application/lost+xml",
"hqx"=> "application/mac-binhex40",
"cpt"=> "application/mac-compactpro",
"mads"=> "application/mads+xml",
"webmanifest"=> "application/manifest+json",
"mrc"=> "application/marc",
"mrcx"=> "application/marcxml+xml",
"ma"=> "application/mathematica",
"nb"=> "application/mathematica",
"mb"=> "application/mathematica",
"mathml"=> "application/mathml+xml",
"mbox"=> "application/mbox",
"mscml"=> "application/mediaservercontrol+xml",
"metalink"=> "application/metalink+xml",
"meta4"=> "application/metalink4+xml",
"mets"=> "application/mets+xml",
"maei"=> "application/mmt-aei+xml",
"musd"=> "application/mmt-usd+xml",
"mods"=> "application/mods+xml",
"m21"=> "application/mp21",
"mp21"=> "application/mp21",
"mp4s"=> "application/mp4",
"m4p"=> "application/mp4",
"doc"=> "application/msword",
"dot"=> "application/msword",
"mxf"=> "application/mxf",
"nq"=> "application/n-quads",
"nt"=> "application/n-triples",
"cjs"=> "application/node",
"bin"=> "application/octet-stream",
"dms"=> "application/octet-stream",
"lrf"=> "application/octet-stream",
"mar"=> "application/octet-stream",
"so"=> "application/octet-stream",
"dist"=> "application/octet-stream",
"distz"=> "application/octet-stream",
"pkg"=> "application/octet-stream",
"bpk"=> "application/octet-stream",
"dump"=> "application/octet-stream",
"elc"=> "application/octet-stream",
"deploy"=> "application/octet-stream",
"exe"=> "application/octet-stream",
"dll"=> "application/octet-stream",
"deb"=> "application/octet-stream",
"dmg"=> "application/octet-stream",
"iso"=> "application/octet-stream",
"img"=> "application/octet-stream",
"msi"=> "application/octet-stream",
"msp"=> "application/octet-stream",
"msm"=> "application/octet-stream",
"buffer"=> "application/octet-stream",
"oda"=> "application/oda",
"opf"=> "application/oebps-package+xml",
"ogx"=> "application/ogg",
"omdoc"=> "application/omdoc+xml",
"onetoc"=> "application/onenote",
"onetoc2"=> "application/onenote",
"onetmp"=> "application/onenote",
"onepkg"=> "application/onenote",
"oxps"=> "application/oxps",
"relo"=> "application/p2p-overlay+xml",
"xer"=> "application/patch-ops-error+xml",
"pdf"=> "application/pdf",
"pgp"=> "application/pgp-encrypted",
"asc"=> "application/pgp-signature",
"sig"=> "application/pgp-signature",
"prf"=> "application/pics-rules",
"p10"=> "application/pkcs10",
"p7m"=> "application/pkcs7-mime",
"p7c"=> "application/pkcs7-mime",
"p7s"=> "application/pkcs7-signature",
"p8"=> "application/pkcs8",
"ac"=> "application/pkix-attr-cert",
"cer"=> "application/pkix-cert",
"crl"=> "application/pkix-crl",
"pkipath"=> "application/pkix-pkipath",
"pki"=> "application/pkixcmp",
"pls"=> "application/pls+xml",
"ai"=> "application/postscript",
"eps"=> "application/postscript",
"ps"=> "application/postscript",
"provx"=> "application/provenance+xml",
"cww"=> "application/prs.cww",
"pskcxml"=> "application/pskc+xml",
"raml"=> "application/raml+yaml",
"rdf"=> "application/rdf+xml",
"owl"=> "application/rdf+xml",
"rif"=> "application/reginfo+xml",
"rnc"=> "application/relax-ng-compact-syntax",
"rl"=> "application/resource-lists+xml",
"rld"=> "application/resource-lists-diff+xml",
"rs"=> "application/rls-services+xml",
"rapd"=> "application/route-apd+xml",
"sls"=> "application/route-s-tsid+xml",
"rusd"=> "application/route-usd+xml",
"gbr"=> "application/rpki-ghostbusters",
"mft"=> "application/rpki-manifest",
"roa"=> "application/rpki-roa",
"rsd"=> "application/rsd+xml",
"rss"=> "application/rss+xml",
"rtf"=> "application/rtf",
"sbml"=> "application/sbml+xml",
"scq"=> "application/scvp-cv-request",
"scs"=> "application/scvp-cv-response",
"spq"=> "application/scvp-vp-request",
"spp"=> "application/scvp-vp-response",
"sdp"=> "application/sdp",
"senmlx"=> "application/senml+xml",
"sensmlx"=> "application/sensml+xml",
"setpay"=> "application/set-payment-initiation",
"setreg"=> "application/set-registration-initiation",
"shf"=> "application/shf+xml",
"siv"=> "application/sieve",
"sieve"=> "application/sieve",
"smi"=> "application/smil+xml",
"smil"=> "application/smil+xml",
"rq"=> "application/sparql-query",
"srx"=> "application/sparql-results+xml",
"gram"=> "application/srgs",
"grxml"=> "application/srgs+xml",
"sru"=> "application/sru+xml",
"ssdl"=> "application/ssdl+xml",
"ssml"=> "application/ssml+xml",
"swidtag"=> "application/swid+xml",
"tei"=> "application/tei+xml",
"teicorpus"=> "application/tei+xml",
"tfi"=> "application/thraud+xml",
"tsd"=> "application/timestamped-data",
"toml"=> "application/toml",
"trig"=> "application/trig",
"ttml"=> "application/ttml+xml",
"ubj"=> "application/ubjson",
"rsheet"=> "application/urc-ressheet+xml",
"td"=> "application/urc-targetdesc+xml",
"vxml"=> "application/voicexml+xml",
"wasm"=> "application/wasm",
"wgt"=> "application/widget",
"hlp"=> "application/winhlp",
"wsdl"=> "application/wsdl+xml",
"wspolicy"=> "application/wspolicy+xml",
"xaml"=> "application/xaml+xml",
"xav"=> "application/xcap-att+xml",
"xca"=> "application/xcap-caps+xml",
"xdf"=> "application/xcap-diff+xml",
"xel"=> "application/xcap-el+xml",
"xns"=> "application/xcap-ns+xml",
"xenc"=> "application/xenc+xml",
"xhtml"=> "application/xhtml+xml",
"xht"=> "application/xhtml+xml",
"xlf"=> "application/xliff+xml",
"xml"=> "application/xml",
"xsl"=> "application/xml",
"xsd"=> "application/xml",
"rng"=> "application/xml",
"dtd"=> "application/xml-dtd",
"xop"=> "application/xop+xml",
"xpl"=> "application/xproc+xml",
"xslt"=> "application/xml",
"xspf"=> "application/xspf+xml",
"mxml"=> "application/xv+xml",
"xhvml"=> "application/xv+xml",
"xvml"=> "application/xv+xml",
"xvm"=> "application/xv+xml",
"yang"=> "application/yang",
"yin"=> "application/yin+xml",
"zip"=> "application/zip",
"3gpp"=> "video/3gpp",
"adp"=> "audio/adpcm",
"amr"=> "audio/amr",
"au"=> "audio/basic",
"snd"=> "audio/basic",
"mid"=> "audio/midi",
"midi"=> "audio/midi",
"kar"=> "audio/midi",
"rmi"=> "audio/midi",
"mxmf"=> "audio/mobile-xmf",
"mp3"=> "audio/mpeg",
"m4a"=> "audio/mp4",
"mp4a"=> "audio/mp4",
"mpga"=> "audio/mpeg",
"mp2"=> "audio/mpeg",
"mp2a"=> "audio/mpeg",
"m2a"=> "audio/mpeg",
"m3a"=> "audio/mpeg",
"oga"=> "audio/ogg",
"ogg"=> "audio/ogg",
"spx"=> "audio/ogg",
"opus"=> "audio/ogg",
"s3m"=> "audio/s3m",
"sil"=> "audio/silk",
"wav"=> "audio/wav",
"weba"=> "audio/webm",
"xm"=> "audio/xm",
"ttc"=> "font/collection",
"otf"=> "font/otf",
"ttf"=> "font/ttf",
"woff"=> "font/woff",
"woff2"=> "font/woff2",
"exr"=> "image/aces",
"apng"=> "image/apng",
"avif"=> "image/avif",
"bmp"=> "image/bmp",
"cgm"=> "image/cgm",
"drle"=> "image/dicom-rle",
"emf"=> "image/emf",
"fits"=> "image/fits",
"g3"=> "image/g3fax",
"gif"=> "image/gif",
"heic"=> "image/heic",
"heics"=> "image/heic-sequence",
"heif"=> "image/heif",
"heifs"=> "image/heif-sequence",
"hej2"=> "image/hej2k",
"hsj2"=> "image/hsj2",
"ief"=> "image/ief",
"jls"=> "image/jls",
"jp2"=> "image/jp2",
"jpg2"=> "image/jp2",
"jpeg"=> "image/jpeg",
"jpg"=> "image/jpeg",
"jpe"=> "image/jpeg",
"jph"=> "image/jph",
"jhc"=> "image/jphc",
"jpm"=> "image/jpm",
"jpx"=> "image/jpx",
"jpf"=> "image/jpx",
"jxr"=> "image/jxr",
"jxra"=> "image/jxra",
"jxrs"=> "image/jxrs",
"jxs"=> "image/jxs",
"jxsc"=> "image/jxsc",
"jxsi"=> "image/jxsi",
"jxss"=> "image/jxss",
"ktx"=> "image/ktx",
"ktx2"=> "image/ktx2",
"png"=> "image/png",
"btif"=> "image/prs.btif",
"pti"=> "image/prs.pti",
"sgi"=> "image/sgi",
"svg"=> "image/svg+xml",
"svgz"=> "image/svg+xml",
"t38"=> "image/t38",
"tif"=> "image/tiff",
"tiff"=> "image/tiff",
"tfx"=> "image/tiff-fx",
"webp"=> "image/webp",
"wmf"=> "image/wmf",
"disposition-notification"=> "message/disposition-notification",
"u8msg"=> "message/global",
"u8dsn"=> "message/global-delivery-status",
"u8mdn"=> "message/global-disposition-notification",
"u8hdr"=> "message/global-headers",
"eml"=> "message/rfc822",
"mime"=> "message/rfc822",
"3mf"=> "model/3mf",
"gltf"=> "model/gltf+json",
"glb"=> "model/gltf-binary",
"igs"=> "model/iges",
"iges"=> "model/iges",
"msh"=> "model/mesh",
"mesh"=> "model/mesh",
"silo"=> "model/mesh",
"mtl"=> "model/mtl",
"obj"=> "model/obj",
"stpz"=> "model/step+zip",
"stpxz"=> "model/step-xml+zip",
"stl"=> "model/stl",
"wrl"=> "model/vrml",
"vrml"=> "model/vrml",
"x3db"=> "model/x3d+fastinfoset",
"x3dbz"=> "model/x3d+binary",
"x3dv"=> "model/x3d-vrml",
"x3dvz"=> "model/x3d+vrml",
"x3d"=> "model/x3d+xml",
"x3dz"=> "model/x3d+xml",
"appcache"=> "text/cache-manifest",
"manifest"=> "text/cache-manifest",
"ics"=> "text/calendar",
"ifb"=> "text/calendar",
"coffee"=> "text/coffeescript",
"litcoffee"=> "text/coffeescript",
"css"=> "text/css",
"csv"=> "text/csv",
"html"=> "text/html",
"htm"=> "text/html",
"shtml"=> "text/html",
"jade"=> "text/jade",
"jsx"=> "text/jsx",
"less"=> "text/less",
"markdown"=> "text/markdown",
"md"=> "text/markdown",
"mml"=> "text/mathml",
"mdx"=> "text/mdx",
"n3"=> "text/n3",
"txt"=> "text/plain",
"text"=> "text/plain",
"conf"=> "text/plain",
"def"=> "text/plain",
"list"=> "text/plain",
"log"=> "text/plain",
"in"=> "text/plain",
"ini"=> "text/plain",
"dsc"=> "text/prs.lines.tag",
"rtx"=> "text/richtext",
"sgml"=> "text/sgml",
"sgm"=> "text/sgml",
"shex"=> "text/shex",
"slim"=> "text/slim",
"slm"=> "text/slim",
"spdx"=> "text/spdx",
"stylus"=> "text/stylus",
"styl"=> "text/stylus",
"tsv"=> "text/tab-separated-values",
"t"=> "text/troff",
"tr"=> "text/troff",
"roff"=> "text/troff",
"man"=> "text/troff",
"me"=> "text/troff",
"ms"=> "text/troff",
"ttl"=> "text/turtle",
"uri"=> "text/uri-list",
"uris"=> "text/uri-list",
"urls"=> "text/uri-list",
"vcard"=> "text/vcard",
"vtt"=> "text/vtt",
"yaml"=> "text/yaml",
"yml"=> "text/yaml",
"3gp"=> "video/3gpp",
"3g2"=> "video/3gpp2",
"h261"=> "video/h261",
"h263"=> "video/h263",
"h264"=> "video/h264",
"m4s"=> "video/iso.segment",
"jpgv"=> "video/jpeg",
"jpgm"=> "image/jpm",
"mj2"=> "video/mj2",
"mjp2"=> "video/mj2",
"ts"=> "video/mp2t",
"mp4"=> "video/mp4",
"mp4v"=> "video/mp4",
"mpg4"=> "video/mp4",
"mpeg"=> "video/mpeg",
"mpg"=> "video/mpeg",
"mpe"=> "video/mpeg",
"m1v"=> "video/mpeg",
"m2v"=> "video/mpeg",
"ogv"=> "video/ogg",
"qt"=> "video/quicktime",
"mov"=> "video/quicktime",
"webm"=> "video/webm"
};
fn lookup(extn: &str) -> Option<&&str> {
let extn = extn.trim().to_lowercase();
MIMES.get(&extn)
}
use serde_derive::Deserialize;
use serde_derive::Serialize;
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
struct Metadata {
#[serde(rename = "ETag")]
etag: String,
#[serde(rename = "Last-Modified")]
last_modified: String,
#[serde(rename = "Content-Type")]
content_type: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
struct KVStores {
data: Vec<KVStore>,
meta: Meta,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
struct KVStore {
id: String,
name: String,
#[serde(rename = "created_at")]
created_at: String,
#[serde(rename = "updated_at")]
updated_at: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
struct Meta {
limit: i64,
total: i64,
}
async fn create_store(name: &str, token: &str) -> Result<String, Box<dyn std::error::Error>> {
let client = reqwest::Client::new();
let res = client
.post("https://api.fastly.com/resources/stores/kv")
.header("Content-Type", "application/json")
.header("Accept", "application/json")
.header("Fastly-Key", token)
.body(format!("{{\"name\":\"{}\"}}", name))
.send()
.await?;
if res.status() == 201 {
Ok(res.json::<KVStore>().await?.id)
} else {
bail!(format!(
"Failed to create Object Store named `{}`. Response body contained `{}`",
name,
res.text().await?
))
}
}
async fn get_or_create_store(
name: &str,
token: &str,
) -> Result<String, Box<dyn std::error::Error>> {
// get all stores
let client = reqwest::Client::new();
let res = client
.get("https://api.fastly.com/resources/stores/kv")
.header("Content-Type", "application/json")
.header("Accept", "application/json")
.header("Fastly-Key", token)
.send()
.await?;
// if no stores at all, create store
if res.status() == 404 {
create_store(name, token).await
} else {
// check if store already exists
let res = res
.json::<KVStores>()
.await?
.data
.into_iter()
.find_map(|store| {
if store.name == name {
Some(store.id)
} else {
None
}
});
// if store does not exist, create store
if res.is_none() {
create_store(name, token).await
} else {
Ok(res.unwrap())
}
}
}
async fn get_active_version_of_service(
service_id: &str,
token: &str,
) -> Result<i32, Box<dyn std::error::Error>> {
let mut cfg = Configuration {
api_key: Some(ApiKey {
prefix: None,
key: token.to_owned(),
}),
..Default::default()
};
let params = ListServiceVersionsParams {
service_id: service_id.to_owned(),
..Default::default()
};
let result = list_service_versions(&mut cfg, params)
.await?
.into_iter()
.find_map(|v| {
if v.active.unwrap() {
Some(v.number.unwrap())
} else {
None
}
});
return Ok(result.expect("Service should have an active version to clone"));
}
async fn clone_version_of_service(
service_id: &str,
token: &str,
version: i32,
) -> Result<i32, Box<dyn std::error::Error>> {
let mut cfg = Configuration {
api_key: Some(ApiKey {
prefix: None,
key: token.to_owned(),
}),
..Default::default()
};
let params = CloneServiceVersionParams {
service_id: service_id.to_owned(),
version_id: version,
..Default::default()
};
Ok(clone_service_version(&mut cfg, params)
.await?
.number
.unwrap())
}
async fn activate_version_of_service(
service_id: &str,
token: &str,
version: i32,
) -> Result<i32, Box<dyn std::error::Error>> {
let mut cfg = Configuration {
api_key: Some(ApiKey {
prefix: None,
key: token.to_owned(),
}),
..Default::default()
};
let params = ActivateServiceVersionParams {
service_id: service_id.to_string(),
version_id: version,
..Default::default()
};
Ok(activate_service_version(&mut cfg, params)
.await?
.number
.unwrap())
}
fn cli() -> Command {
Command::new("fastly-file-server")
.about("Fastly File Server uploads files to Fastly for serving directly from within Fastly Compute applications. Upload any type of file: images, text, video etc and serve directly from Fastly. It is ideal for serving files built from a static site generator such as 11ty.")
.subcommand_required(true)
.arg_required_else_help(true)
.subcommand(
Command::new("upload")
.about("Upload files")
.arg(
arg!(path: [PATH])
.last(true)
.required(true)
.value_parser(clap::value_parser!(PathBuf)),
)
.arg_required_else_help(true)
.arg(arg!(--name <NAME>).required(true))
.arg(arg!(--token <TOKEN>)),
)
.subcommand(
Command::new("local")
.about("Setup files")
.arg(
arg!(path: [PATH])
.last(true)
.required(true)
.value_parser(clap::value_parser!(PathBuf)),
)
.arg_required_else_help(true)
.arg(arg!(--toml <TOML>).required(true).value_parser(clap::value_parser!(PathBuf)))
.arg(arg!(--name <NAME>).required(true)),
)
.subcommand(
Command::new("link")
.about("link store to service")
.arg(arg!(--name <NAME>).required(true))
.arg(arg!(--token <TOKEN>))
.arg(arg!(--"link-name" <LINK_NAME>).required(true))
.arg(arg!(--"service-id" <SERVICE_ID>).required(true)),
)
.subcommand(
Command::new("unlink")
.about("unlink store to service")
.arg(arg!(--name <NAME>).required(true))
.arg(arg!(--token <TOKEN>))
.arg(arg!(--"link-name" <LINK_NAME>).required(true))
.arg(arg!(--"service-id" <SERVICE_ID>).required(true)),
)
}
async fn link(sub_matches: &clap::ArgMatches) -> Result<(), Box<dyn std::error::Error>> {
let service_id = sub_matches
.get_one::<String>("service-id")
.map(|s| s.as_str())
.expect("required in clap");
let link_name = sub_matches
.get_one::<String>("link-name")
.map(|s| s.as_str())
.expect("required in clap");
let name = sub_matches
.get_one::<String>("name")
.map(|s| s.as_str())
.expect("required in clap");
let token = sub_matches
.get_one::<String>("token")
.map(|s| s.to_owned())
.or_else(|| match std::env::var("FASTLY_API_TOKEN") {
Ok(x) => Some(x),
Err(_) => None,
});
if token.is_none() {
bail!("Missing Fastly API token. Please provide an API token via the --token argument or the FASTLY_API_TOKEN environment variable.")
}
let token = token.unwrap();
let store_id = get_or_create_store(name, &token).await?;
let version = get_active_version_of_service(service_id, &token).await?;
let version = clone_version_of_service(service_id, &token, version).await?;
// link
let client = reqwest::Client::new();
let _res = client
Showing preview only (627K chars total). Download the full file or copy to clipboard to get everything.
gitextract_lduunf0x/ ├── .clang-format ├── .github/ │ ├── dependabot.yml │ └── workflows/ │ ├── cleanup.yml │ ├── dependencies.yml │ ├── main.yml │ └── release-please.yml ├── .gitignore ├── .gitmodules ├── .prettierrc.json ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── DEVELOPMENT.md ├── LICENSE ├── README.md ├── SECURITY.md ├── ci/ │ ├── build-tarballs.sh │ ├── clang-format.ignore │ ├── clang-format.sh │ ├── format-changelog.js │ ├── rustfmt.sh │ └── shellcheck.sh ├── compute-file-server-cli/ │ ├── .gitignore │ ├── Cargo.toml │ ├── LICENSE │ ├── README.md │ ├── rust-toolchain.toml │ └── src/ │ └── main.rs ├── documentation/ │ ├── .gitignore │ ├── LICENSE.md │ ├── README.md │ ├── app/ │ │ ├── .gitignore │ │ ├── c-at-e-file-server.js │ │ ├── fastly.toml │ │ ├── package.json │ │ ├── src/ │ │ │ └── index.js │ │ └── version-redirects.json │ ├── docs/ │ │ ├── acl/ │ │ │ └── Acl/ │ │ │ ├── open.mdx │ │ │ └── prototype/ │ │ │ └── lookup.mdx │ │ ├── backend/ │ │ │ ├── Backend/ │ │ │ │ ├── Backend.mdx │ │ │ │ ├── exists.mdx │ │ │ │ ├── fromName.mdx │ │ │ │ ├── health.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── betweenBytesTimeout.mdx │ │ │ │ ├── connectTimeout.mdx │ │ │ │ ├── firstByteTimeout.mdx │ │ │ │ ├── health.mdx │ │ │ │ ├── hostOverride.mdx │ │ │ │ ├── httpKeepaliveTime.mdx │ │ │ │ ├── isDynamic.mdx │ │ │ │ ├── isSSL.mdx │ │ │ │ ├── name.mdx │ │ │ │ ├── port.mdx │ │ │ │ ├── target.mdx │ │ │ │ ├── tcpKeepalive.mdx │ │ │ │ ├── tlsMaxVersion.mdx │ │ │ │ ├── tlsMinVersion.mdx │ │ │ │ ├── toName.mdx │ │ │ │ └── toString.mdx │ │ │ ├── allowDynamicBackends.mdx │ │ │ ├── enforceExplicitBackends.mdx │ │ │ └── setDefaultDynamicBackendConfig.mdx │ │ ├── cache/ │ │ │ ├── CacheEntry/ │ │ │ │ ├── age.mdx │ │ │ │ ├── body.mdx │ │ │ │ ├── close.mdx │ │ │ │ ├── hits.mdx │ │ │ │ ├── length.mdx │ │ │ │ ├── maxAge.mdx │ │ │ │ ├── staleWhileRevalidate.mdx │ │ │ │ ├── state.mdx │ │ │ │ └── userMetadata.mdx │ │ │ ├── CacheState/ │ │ │ │ ├── found.mdx │ │ │ │ ├── mustInsertOrUpdate.mdx │ │ │ │ ├── stale.mdx │ │ │ │ └── usable.mdx │ │ │ ├── CoreCache/ │ │ │ │ ├── insert.mdx │ │ │ │ ├── lookup.mdx │ │ │ │ └── transactionLookup.mdx │ │ │ ├── SimpleCache/ │ │ │ │ ├── SimpleCache.mdx │ │ │ │ ├── get.mdx │ │ │ │ ├── getOrSet.mdx │ │ │ │ └── purge.mdx │ │ │ ├── SimpleCacheEntry/ │ │ │ │ ├── arrayBuffer.mdx │ │ │ │ ├── body.mdx │ │ │ │ ├── bodyUsed.mdx │ │ │ │ ├── json.mdx │ │ │ │ └── text.mdx │ │ │ └── TransactionCacheEntry/ │ │ │ ├── age.mdx │ │ │ ├── body.mdx │ │ │ ├── cancel.mdx │ │ │ ├── close.mdx │ │ │ ├── hits.mdx │ │ │ ├── insert.mdx │ │ │ ├── insertAndStreamBack.mdx │ │ │ ├── length.mdx │ │ │ ├── maxAge.mdx │ │ │ ├── staleWhileRevalidate.mdx │ │ │ ├── state.mdx │ │ │ ├── update.mdx │ │ │ └── userMetadata.mdx │ │ ├── cache-override/ │ │ │ └── CacheOverride/ │ │ │ └── CacheOverride.mdx │ │ ├── compute/ │ │ │ ├── purgeSurrogateKey.mdx │ │ │ └── vCpuTime.mdx │ │ ├── config-store/ │ │ │ └── ConfigStore/ │ │ │ ├── ConfigStore.mdx │ │ │ └── prototype/ │ │ │ └── get.mdx │ │ ├── device/ │ │ │ └── Device/ │ │ │ ├── lookup.mdx │ │ │ └── prototype/ │ │ │ ├── brand.mdx │ │ │ ├── hardwareType.mdx │ │ │ ├── isBot.mdx │ │ │ ├── isDesktop.mdx │ │ │ ├── isGameConsole.mdx │ │ │ ├── isMediaPlayer.mdx │ │ │ ├── isMobile.mdx │ │ │ ├── isSmartTV.mdx │ │ │ ├── isTablet.mdx │ │ │ ├── isTouchscreen.mdx │ │ │ ├── model.mdx │ │ │ ├── name.mdx │ │ │ └── toJSON.mdx │ │ ├── dictionary/ │ │ │ └── Dictionary/ │ │ │ ├── Dictionary.mdx │ │ │ └── prototype/ │ │ │ └── get.mdx │ │ ├── edge-rate-limiter/ │ │ │ ├── EdgeRateLimiter/ │ │ │ │ ├── EdgeRateLimiter.mdx │ │ │ │ └── prototype/ │ │ │ │ └── checkRate.mdx │ │ │ ├── PenaltyBox/ │ │ │ │ ├── PenaltyBox.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── add.mdx │ │ │ │ └── has.mdx │ │ │ └── RateCounter/ │ │ │ ├── RateCounter.mdx │ │ │ └── prototype/ │ │ │ ├── increment.mdx │ │ │ ├── lookupCount.mdx │ │ │ └── lookupRate.mdx │ │ ├── env/ │ │ │ └── env.mdx │ │ ├── experimental/ │ │ │ ├── allowDynamicBackends.mdx │ │ │ ├── includeBytes.mdx │ │ │ ├── mapAndLogError.mdx │ │ │ ├── mapError.mdx │ │ │ ├── sdkVersion.mdx │ │ │ └── setReusableSandboxOptions.mdx │ │ ├── fanout/ │ │ │ └── createFanoutHandoff.mdx │ │ ├── geolocation/ │ │ │ └── getGeolocationForIpAddress.mdx │ │ ├── globals/ │ │ │ ├── AggregrateError/ │ │ │ │ └── AggregrateError.mdx │ │ │ ├── Array/ │ │ │ │ ├── @@species.mdx │ │ │ │ ├── Array.mdx │ │ │ │ ├── from.mdx │ │ │ │ ├── isArray.mdx │ │ │ │ ├── of.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── @@iterator.mdx │ │ │ │ ├── @@unscopables.mdx │ │ │ │ ├── at.mdx │ │ │ │ ├── concat.mdx │ │ │ │ ├── copyWithin.mdx │ │ │ │ ├── entries.mdx │ │ │ │ ├── every.mdx │ │ │ │ ├── fill.mdx │ │ │ │ ├── filter.mdx │ │ │ │ ├── find.mdx │ │ │ │ ├── findIndex.mdx │ │ │ │ ├── flat.mdx │ │ │ │ ├── flatMap.mdx │ │ │ │ ├── forEach.mdx │ │ │ │ ├── includes.mdx │ │ │ │ ├── indexOf.mdx │ │ │ │ ├── join.mdx │ │ │ │ ├── keys.mdx │ │ │ │ ├── lastIndexOf.mdx │ │ │ │ ├── length.mdx │ │ │ │ ├── map.mdx │ │ │ │ ├── pop.mdx │ │ │ │ ├── push.mdx │ │ │ │ ├── reduce.mdx │ │ │ │ ├── reduceRight.mdx │ │ │ │ ├── reverse.mdx │ │ │ │ ├── shift.mdx │ │ │ │ ├── slice.mdx │ │ │ │ ├── some.mdx │ │ │ │ ├── sort.mdx │ │ │ │ ├── splice.mdx │ │ │ │ ├── toLocaleString.mdx │ │ │ │ ├── toString.mdx │ │ │ │ ├── unshift.mdx │ │ │ │ └── values.mdx │ │ │ ├── ArrayBuffer/ │ │ │ │ ├── @@species.mdx │ │ │ │ ├── ArrayBuffer.mdx │ │ │ │ ├── isView.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── byteLength.mdx │ │ │ │ └── slice.mdx │ │ │ ├── BigInt/ │ │ │ │ ├── BigInt.mdx │ │ │ │ ├── asIntN.mdx │ │ │ │ ├── asUintN.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── toLocaleString.mdx │ │ │ │ ├── toString.mdx │ │ │ │ └── valueOf.mdx │ │ │ ├── BigInt64Array/ │ │ │ │ └── BigInt64Array.mdx │ │ │ ├── BigUint64Array/ │ │ │ │ └── BigUint64Array.mdx │ │ │ ├── Blob/ │ │ │ │ ├── Blob.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── arrayBuffer.mdx │ │ │ │ ├── size.mdx │ │ │ │ ├── slice.mdx │ │ │ │ ├── stream.mdx │ │ │ │ ├── text.mdx │ │ │ │ └── type.mdx │ │ │ ├── Boolean/ │ │ │ │ ├── Boolean.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── toString.mdx │ │ │ │ └── valueOf.mdx │ │ │ ├── ByteLengthQueuingStrategy/ │ │ │ │ ├── ByteLengthQueuingStrategy.mdx │ │ │ │ └── prototype/ │ │ │ │ └── size.mdx │ │ │ ├── CompressionStream/ │ │ │ │ ├── CompressionStream.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── readable.mdx │ │ │ │ └── writable.mdx │ │ │ ├── CryptoKey/ │ │ │ │ ├── CryptoKey.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── algorithm.mdx │ │ │ │ ├── extractable.mdx │ │ │ │ ├── type.mdx │ │ │ │ └── usages.mdx │ │ │ ├── DOMException/ │ │ │ │ ├── DOMException.mdx │ │ │ │ ├── code.mdx │ │ │ │ ├── message.mdx │ │ │ │ └── name.mdx │ │ │ ├── DataView/ │ │ │ │ ├── DataView.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── buffer.mdx │ │ │ │ ├── byteLength.mdx │ │ │ │ ├── byteOffset.mdx │ │ │ │ ├── getBigInt64.mdx │ │ │ │ ├── getBigUint64.mdx │ │ │ │ ├── getFloat32.mdx │ │ │ │ ├── getFloat64.mdx │ │ │ │ ├── getInt16.mdx │ │ │ │ ├── getInt32.mdx │ │ │ │ ├── getInt8.mdx │ │ │ │ ├── getUint16.mdx │ │ │ │ ├── getUint32.mdx │ │ │ │ ├── getUint8.mdx │ │ │ │ ├── setBigInt64.mdx │ │ │ │ ├── setBigUint64.mdx │ │ │ │ ├── setFloat32.mdx │ │ │ │ ├── setFloat64.mdx │ │ │ │ ├── setInt16.mdx │ │ │ │ ├── setInt32.mdx │ │ │ │ ├── setInt8.mdx │ │ │ │ ├── setUint16.mdx │ │ │ │ ├── setUint32.mdx │ │ │ │ └── setUint8.mdx │ │ │ ├── Date/ │ │ │ │ ├── Date.mdx │ │ │ │ ├── UTC.mdx │ │ │ │ ├── now.mdx │ │ │ │ ├── parse.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── @@toPrimitive.mdx │ │ │ │ ├── getDate.mdx │ │ │ │ ├── getDay.mdx │ │ │ │ ├── getFullYear.mdx │ │ │ │ ├── getHours.mdx │ │ │ │ ├── getMilliseconds.mdx │ │ │ │ ├── getMinutes.mdx │ │ │ │ ├── getMonth.mdx │ │ │ │ ├── getSeconds.mdx │ │ │ │ ├── getTime.mdx │ │ │ │ ├── getTimezoneOffset.mdx │ │ │ │ ├── getUTCDate.mdx │ │ │ │ ├── getUTCDay.mdx │ │ │ │ ├── getUTCFullYear.mdx │ │ │ │ ├── getUTCHours.mdx │ │ │ │ ├── getUTCMilliseconds.mdx │ │ │ │ ├── getUTCMinutes.mdx │ │ │ │ ├── getUTCMonth.mdx │ │ │ │ ├── getUTCSeconds.mdx │ │ │ │ ├── getYear.mdx │ │ │ │ ├── setDate.mdx │ │ │ │ ├── setFullYear.mdx │ │ │ │ ├── setHours.mdx │ │ │ │ ├── setMilliseconds.mdx │ │ │ │ ├── setMinutes.mdx │ │ │ │ ├── setMonth.mdx │ │ │ │ ├── setSeconds.mdx │ │ │ │ ├── setTime.mdx │ │ │ │ ├── setUTCDate.mdx │ │ │ │ ├── setUTCFullYear.mdx │ │ │ │ ├── setUTCHours.mdx │ │ │ │ ├── setUTCMilliseconds.mdx │ │ │ │ ├── setUTCMinutes.mdx │ │ │ │ ├── setUTCMonth.mdx │ │ │ │ ├── setUTCSeconds.mdx │ │ │ │ ├── setYear.mdx │ │ │ │ ├── toDateString.mdx │ │ │ │ ├── toISOString.mdx │ │ │ │ ├── toJSON.mdx │ │ │ │ ├── toLocaleDateString.mdx │ │ │ │ ├── toLocaleString.mdx │ │ │ │ ├── toLocaleTimeString.mdx │ │ │ │ ├── toString.mdx │ │ │ │ ├── toTimeString.mdx │ │ │ │ ├── toUTCString.mdx │ │ │ │ └── valueOf.mdx │ │ │ ├── DecompressionStream/ │ │ │ │ ├── DecompressionStream.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── readable.mdx │ │ │ │ └── writable.mdx │ │ │ ├── EcKeyImportParams/ │ │ │ │ └── EcKeyImportParams.mdx │ │ │ ├── EcdsaParams/ │ │ │ │ └── EcdsaParams.mdx │ │ │ ├── Error/ │ │ │ │ ├── Error.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── cause.mdx │ │ │ │ ├── message.mdx │ │ │ │ ├── name.mdx │ │ │ │ └── toString.mdx │ │ │ ├── EvalError/ │ │ │ │ └── EvalError.mdx │ │ │ ├── FetchEvent/ │ │ │ │ ├── FetchEvent.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── respondWith.mdx │ │ │ │ ├── sendEarlyHints.mdx │ │ │ │ └── waitUntil.mdx │ │ │ ├── FinalizationRegistry/ │ │ │ │ ├── FinalizationRegistry.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── register.mdx │ │ │ │ └── unregister.mdx │ │ │ ├── Float32Array/ │ │ │ │ └── Float32Array.mdx │ │ │ ├── Float64Array/ │ │ │ │ └── Float64Array.mdx │ │ │ ├── FormData/ │ │ │ │ ├── FormData.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── append.mdx │ │ │ │ ├── delete.mdx │ │ │ │ ├── entries.mdx │ │ │ │ ├── forEach.mdx │ │ │ │ ├── get.mdx │ │ │ │ ├── getAll.mdx │ │ │ │ ├── has.mdx │ │ │ │ ├── keys.mdx │ │ │ │ ├── set.mdx │ │ │ │ └── values.mdx │ │ │ ├── Function/ │ │ │ │ ├── Function.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── apply.mdx │ │ │ │ ├── bind.mdx │ │ │ │ ├── call.mdx │ │ │ │ ├── index.mdx │ │ │ │ ├── length.mdx │ │ │ │ ├── name.mdx │ │ │ │ └── toString.mdx │ │ │ ├── Headers/ │ │ │ │ ├── Headers.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── append.mdx │ │ │ │ ├── delete.mdx │ │ │ │ ├── entries.mdx │ │ │ │ ├── forEach.mdx │ │ │ │ ├── get.mdx │ │ │ │ ├── getSetCookie.mdx │ │ │ │ ├── has.mdx │ │ │ │ ├── keys.mdx │ │ │ │ ├── set.mdx │ │ │ │ └── values.mdx │ │ │ ├── HmacImportParams/ │ │ │ │ └── HmacImportParams.mdx │ │ │ ├── Infinity.mdx │ │ │ ├── Int16Array/ │ │ │ │ └── Int16Array.mdx │ │ │ ├── Int32Array/ │ │ │ │ └── Int32Array.mdx │ │ │ ├── Int8Array/ │ │ │ │ └── Int8Array.mdx │ │ │ ├── JSON/ │ │ │ │ ├── parse.mdx │ │ │ │ └── stringify.mdx │ │ │ ├── Map/ │ │ │ │ ├── @@species.mdx │ │ │ │ ├── Map.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── @@iterator.mdx │ │ │ │ ├── clear.mdx │ │ │ │ ├── delete.mdx │ │ │ │ ├── entries.mdx │ │ │ │ ├── forEach.mdx │ │ │ │ ├── get.mdx │ │ │ │ ├── has.mdx │ │ │ │ ├── keys.mdx │ │ │ │ ├── set.mdx │ │ │ │ ├── size.mdx │ │ │ │ └── values.mdx │ │ │ ├── Math/ │ │ │ │ ├── E.mdx │ │ │ │ ├── LN10.mdx │ │ │ │ ├── LN2.mdx │ │ │ │ ├── LOG10e.mdx │ │ │ │ ├── LOG2e.mdx │ │ │ │ ├── PI.mdx │ │ │ │ ├── SQRT1_2.mdx │ │ │ │ ├── SQRT2.mdx │ │ │ │ ├── abs.mdx │ │ │ │ ├── acos.mdx │ │ │ │ ├── acosh.mdx │ │ │ │ ├── asin.mdx │ │ │ │ ├── asinh.mdx │ │ │ │ ├── atan.mdx │ │ │ │ ├── atan2.mdx │ │ │ │ ├── atanh.mdx │ │ │ │ ├── cbrt.mdx │ │ │ │ ├── ceil.mdx │ │ │ │ ├── clz32.mdx │ │ │ │ ├── cos.mdx │ │ │ │ ├── cosh.mdx │ │ │ │ ├── exp.mdx │ │ │ │ ├── expm1.mdx │ │ │ │ ├── floor.mdx │ │ │ │ ├── fround.mdx │ │ │ │ ├── hypot.mdx │ │ │ │ ├── imul.mdx │ │ │ │ ├── log.mdx │ │ │ │ ├── log10.mdx │ │ │ │ ├── log1p.mdx │ │ │ │ ├── log2.mdx │ │ │ │ ├── max.mdx │ │ │ │ ├── min.mdx │ │ │ │ ├── pow.mdx │ │ │ │ ├── random.mdx │ │ │ │ ├── round.mdx │ │ │ │ ├── sign.mdx │ │ │ │ ├── sin.mdx │ │ │ │ ├── sinh.mdx │ │ │ │ ├── sqrt.mdx │ │ │ │ ├── tan.mdx │ │ │ │ ├── tanh.mdx │ │ │ │ └── trunc.mdx │ │ │ ├── NaN.mdx │ │ │ ├── Number/ │ │ │ │ ├── MAX_SAFE_INTEGER.mdx │ │ │ │ ├── MAX_VALUE.mdx │ │ │ │ ├── MIN_SAFE_INTEGER.mdx │ │ │ │ ├── MIN_VALUE.mdx │ │ │ │ ├── NEGATIVE_INFINITY.mdx │ │ │ │ ├── NaN.mdx │ │ │ │ ├── Number.mdx │ │ │ │ ├── POSITIVE_INFINITY.mdx │ │ │ │ ├── epsilon.mdx │ │ │ │ ├── isFinite.mdx │ │ │ │ ├── isInteger.mdx │ │ │ │ ├── isNaN.mdx │ │ │ │ ├── isSafeInteger.mdx │ │ │ │ ├── parseFloat.mdx │ │ │ │ ├── parseInt.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── toExponential.mdx │ │ │ │ ├── toFixed.mdx │ │ │ │ ├── toLocaleString.mdx │ │ │ │ ├── toPrecision.mdx │ │ │ │ ├── toString.mdx │ │ │ │ └── valueOf.mdx │ │ │ ├── Object/ │ │ │ │ ├── Object.mdx │ │ │ │ ├── assign.mdx │ │ │ │ ├── create.mdx │ │ │ │ ├── defineProperties.mdx │ │ │ │ ├── defineProperty.mdx │ │ │ │ ├── entries.mdx │ │ │ │ ├── freeze.mdx │ │ │ │ ├── fromEntries.mdx │ │ │ │ ├── getOwnPropertyDescriptor.mdx │ │ │ │ ├── getOwnPropertyDescriptors.mdx │ │ │ │ ├── getOwnPropertyNames.mdx │ │ │ │ ├── getOwnPropertySymbols.mdx │ │ │ │ ├── getPrototypeOf.mdx │ │ │ │ ├── hasOwn.mdx │ │ │ │ ├── is.mdx │ │ │ │ ├── isExtensible.mdx │ │ │ │ ├── isFrozen.mdx │ │ │ │ ├── isSealed.mdx │ │ │ │ ├── keys.mdx │ │ │ │ ├── preventExtensions.mdx │ │ │ │ ├── prototype/ │ │ │ │ │ ├── constructor.mdx │ │ │ │ │ ├── hasOwnProperty.mdx │ │ │ │ │ ├── isPrototypeOf.mdx │ │ │ │ │ ├── propertyIsEnumerable.mdx │ │ │ │ │ ├── toLocaleString.mdx │ │ │ │ │ ├── toString.mdx │ │ │ │ │ └── valueOf.mdx │ │ │ │ ├── seal.mdx │ │ │ │ ├── setPrototypeOf.mdx │ │ │ │ └── values.mdx │ │ │ ├── Promise/ │ │ │ │ ├── @@species.mdx │ │ │ │ ├── Promise.mdx │ │ │ │ ├── all.mdx │ │ │ │ ├── allSettled.mdx │ │ │ │ ├── any.mdx │ │ │ │ ├── prototype/ │ │ │ │ │ ├── catch.mdx │ │ │ │ │ ├── finally.mdx │ │ │ │ │ └── then.mdx │ │ │ │ ├── race.mdx │ │ │ │ ├── reject.mdx │ │ │ │ └── resolve.mdx │ │ │ ├── Proxy/ │ │ │ │ ├── Proxy.mdx │ │ │ │ ├── proxy/ │ │ │ │ │ ├── apply.mdx │ │ │ │ │ ├── construct.mdx │ │ │ │ │ ├── defineProperty.mdx │ │ │ │ │ ├── deleteProperty.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── getOwnPropertyDescriptor.mdx │ │ │ │ │ ├── getPrototypeOf.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ ├── isExtensible.mdx │ │ │ │ │ ├── ownKeys.mdx │ │ │ │ │ ├── preventExtensions.mdx │ │ │ │ │ ├── set.mdx │ │ │ │ │ └── setPrototypeOf.mdx │ │ │ │ └── revocable.mdx │ │ │ ├── RangeError/ │ │ │ │ └── RangeError.mdx │ │ │ ├── ReadableByteStreamController/ │ │ │ │ └── prototype/ │ │ │ │ ├── byobRequest.mdx │ │ │ │ ├── close.mdx │ │ │ │ ├── desiredSize.mdx │ │ │ │ ├── enqueue.mdx │ │ │ │ └── error.mdx │ │ │ ├── ReadableStream/ │ │ │ │ ├── ReadableStream.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── cancel.mdx │ │ │ │ ├── getReader.mdx │ │ │ │ ├── locked.mdx │ │ │ │ ├── pipeThrough.mdx │ │ │ │ ├── pipeTo.mdx │ │ │ │ └── tee.mdx │ │ │ ├── ReadableStreamBYOBReader/ │ │ │ │ ├── ReadableStreamBYOBReader.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── cancel.mdx │ │ │ │ ├── closed.mdx │ │ │ │ ├── read.mdx │ │ │ │ └── releaseLock.mdx │ │ │ ├── ReadableStreamBYOBRequest/ │ │ │ │ └── prototype/ │ │ │ │ ├── respond.mdx │ │ │ │ ├── respondWithNewView.mdx │ │ │ │ └── view.mdx │ │ │ ├── ReadableStreamDefaultController/ │ │ │ │ └── prototype/ │ │ │ │ ├── close.mdx │ │ │ │ ├── desiredSize.mdx │ │ │ │ ├── enqueue.mdx │ │ │ │ └── error.mdx │ │ │ ├── ReadableStreamDefaultReader/ │ │ │ │ ├── ReadableStreamDefaultReader.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── cancel.mdx │ │ │ │ ├── closed.mdx │ │ │ │ ├── read.mdx │ │ │ │ └── releaseLock.mdx │ │ │ ├── ReferenceError/ │ │ │ │ └── ReferenceError.mdx │ │ │ ├── Reflect/ │ │ │ │ ├── apply.mdx │ │ │ │ ├── construct.mdx │ │ │ │ ├── defineProperty.mdx │ │ │ │ ├── deleteProperty.mdx │ │ │ │ ├── get.mdx │ │ │ │ ├── getOwnPropertyDescriptor.mdx │ │ │ │ ├── getPrototypeOf.mdx │ │ │ │ ├── has.mdx │ │ │ │ ├── isExtensible.mdx │ │ │ │ ├── ownKeys.mdx │ │ │ │ ├── preventExtensions.mdx │ │ │ │ ├── set.mdx │ │ │ │ └── setPrototypeOf.mdx │ │ │ ├── Request/ │ │ │ │ ├── Request.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── arrayBuffer.mdx │ │ │ │ ├── blob.mdx │ │ │ │ ├── body.mdx │ │ │ │ ├── bodyUsed.mdx │ │ │ │ ├── clone.mdx │ │ │ │ ├── formData.mdx │ │ │ │ ├── headers.mdx │ │ │ │ ├── json.mdx │ │ │ │ ├── method.mdx │ │ │ │ ├── setManualFramingHeaders.mdx │ │ │ │ ├── text.mdx │ │ │ │ └── url.mdx │ │ │ ├── Response/ │ │ │ │ ├── Response.mdx │ │ │ │ ├── prototype/ │ │ │ │ │ ├── arrayBuffer.mdx │ │ │ │ │ ├── blob.mdx │ │ │ │ │ ├── body.mdx │ │ │ │ │ ├── bodyUsed.mdx │ │ │ │ │ ├── formData.mdx │ │ │ │ │ ├── headers.mdx │ │ │ │ │ ├── ip.mdx │ │ │ │ │ ├── json.mdx │ │ │ │ │ ├── ok.mdx │ │ │ │ │ ├── port.mdx │ │ │ │ │ ├── setManualFramingHeaders.mdx │ │ │ │ │ ├── status.mdx │ │ │ │ │ ├── statusText.mdx │ │ │ │ │ ├── text.mdx │ │ │ │ │ └── url.mdx │ │ │ │ └── redirect.mdx │ │ │ ├── RsaHashedImportParams/ │ │ │ │ └── RsaHashedImportParams.mdx │ │ │ ├── Set/ │ │ │ │ ├── @@species.mdx │ │ │ │ ├── Set.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── @@iterator.mdx │ │ │ │ ├── add.mdx │ │ │ │ ├── clear.mdx │ │ │ │ ├── delete.mdx │ │ │ │ ├── entries.mdx │ │ │ │ ├── forEach.mdx │ │ │ │ ├── has.mdx │ │ │ │ ├── keys.mdx │ │ │ │ ├── size.mdx │ │ │ │ └── values.mdx │ │ │ ├── String/ │ │ │ │ ├── String.mdx │ │ │ │ ├── fromCharCode.mdx │ │ │ │ ├── fromCodePoint.mdx │ │ │ │ ├── prototype/ │ │ │ │ │ ├── @@iterator.mdx │ │ │ │ │ ├── at.mdx │ │ │ │ │ ├── charAt.mdx │ │ │ │ │ ├── charCodeAt.mdx │ │ │ │ │ ├── codePointAt.mdx │ │ │ │ │ ├── concat.mdx │ │ │ │ │ ├── endsWith.mdx │ │ │ │ │ ├── includes.mdx │ │ │ │ │ ├── indexOf.mdx │ │ │ │ │ ├── lastIndexOf.mdx │ │ │ │ │ ├── length.mdx │ │ │ │ │ ├── localeCompare.mdx │ │ │ │ │ ├── match.mdx │ │ │ │ │ ├── matchAll.mdx │ │ │ │ │ ├── padEnd.mdx │ │ │ │ │ ├── padStart.mdx │ │ │ │ │ ├── repeat.mdx │ │ │ │ │ ├── replace.mdx │ │ │ │ │ ├── replaceAll.mdx │ │ │ │ │ ├── search.mdx │ │ │ │ │ ├── slice.mdx │ │ │ │ │ ├── split.mdx │ │ │ │ │ ├── startsWith.mdx │ │ │ │ │ ├── substr.mdx │ │ │ │ │ ├── substring.mdx │ │ │ │ │ ├── toLocaleLowerCase.mdx │ │ │ │ │ ├── toLocaleUpperCase.mdx │ │ │ │ │ ├── toLowerCase.mdx │ │ │ │ │ ├── toString.mdx │ │ │ │ │ ├── toUpperCase.mdx │ │ │ │ │ ├── trim.mdx │ │ │ │ │ ├── trimEnd.mdx │ │ │ │ │ ├── trimStart.mdx │ │ │ │ │ └── valueOf.mdx │ │ │ │ └── raw.mdx │ │ │ ├── SubtleCrypto/ │ │ │ │ ├── SubtleCrypto.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── digest.mdx │ │ │ │ ├── importKey.mdx │ │ │ │ ├── sign.mdx │ │ │ │ └── verify.mdx │ │ │ ├── Symbol/ │ │ │ │ ├── Symbol.mdx │ │ │ │ ├── asyncIterator.mdx │ │ │ │ ├── for.mdx │ │ │ │ ├── hasInstance.mdx │ │ │ │ ├── isConcatSpreadable.mdx │ │ │ │ ├── iterator.mdx │ │ │ │ ├── keyFor.mdx │ │ │ │ ├── match.mdx │ │ │ │ ├── matchAll.mdx │ │ │ │ ├── prototype/ │ │ │ │ │ ├── @@toPrimitive.mdx │ │ │ │ │ ├── description.mdx │ │ │ │ │ ├── toString.mdx │ │ │ │ │ └── valueOf.mdx │ │ │ │ ├── replace.mdx │ │ │ │ ├── search.mdx │ │ │ │ ├── species.mdx │ │ │ │ ├── split.mdx │ │ │ │ ├── toPrimitive.mdx │ │ │ │ ├── toStringTag.mdx │ │ │ │ └── unscopables.mdx │ │ │ ├── SyntaxError/ │ │ │ │ └── SyntaxError.mdx │ │ │ ├── TextDecoder/ │ │ │ │ ├── TextDecoder.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── decode.mdx │ │ │ │ ├── encoding.mdx │ │ │ │ ├── fatal.mdx │ │ │ │ └── ignoreBOM.mdx │ │ │ ├── TextEncoder/ │ │ │ │ ├── TextEncoder.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── encode.mdx │ │ │ │ └── encoding.mdx │ │ │ ├── TransformStream/ │ │ │ │ ├── TransformStream.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── readable.mdx │ │ │ │ └── writable.mdx │ │ │ ├── TransformStreamDefaultController/ │ │ │ │ └── prototype/ │ │ │ │ ├── desiredSize.mdx │ │ │ │ ├── enqueue.mdx │ │ │ │ ├── error.mdx │ │ │ │ └── terminate.mdx │ │ │ ├── TypeError/ │ │ │ │ └── TypeError.mdx │ │ │ ├── URIError/ │ │ │ │ └── URIError.mdx │ │ │ ├── URL/ │ │ │ │ ├── URL.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── hash.mdx │ │ │ │ ├── host.mdx │ │ │ │ ├── hostname.mdx │ │ │ │ ├── href.mdx │ │ │ │ ├── origin.mdx │ │ │ │ ├── password.mdx │ │ │ │ ├── pathname.mdx │ │ │ │ ├── port.mdx │ │ │ │ ├── protocol.mdx │ │ │ │ ├── search.mdx │ │ │ │ ├── searchParams.mdx │ │ │ │ ├── toJSON.mdx │ │ │ │ ├── toString.mdx │ │ │ │ └── username.mdx │ │ │ ├── URLSearchParams/ │ │ │ │ ├── URLSearchParams.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── append.mdx │ │ │ │ ├── delete.mdx │ │ │ │ ├── entries.mdx │ │ │ │ ├── forEach.mdx │ │ │ │ ├── get.mdx │ │ │ │ ├── has.mdx │ │ │ │ ├── keys.mdx │ │ │ │ ├── set.mdx │ │ │ │ ├── sort.mdx │ │ │ │ ├── toString.mdx │ │ │ │ └── values.mdx │ │ │ ├── Uint16Array/ │ │ │ │ └── Uint16Array.mdx │ │ │ ├── Uint32Array/ │ │ │ │ └── Uint32Array.mdx │ │ │ ├── Uint8Array/ │ │ │ │ └── Uint8Array.mdx │ │ │ ├── Uint8ClampedArray/ │ │ │ │ └── Uint8ClampedArray.mdx │ │ │ ├── WeakMap/ │ │ │ │ ├── WeakMap.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── delete.mdx │ │ │ │ ├── get.mdx │ │ │ │ ├── has.mdx │ │ │ │ └── set.mdx │ │ │ ├── WeakRef/ │ │ │ │ ├── WeakRef.mdx │ │ │ │ └── prototype/ │ │ │ │ └── deref.mdx │ │ │ ├── WeakSet/ │ │ │ │ ├── WeakSet.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── add.mdx │ │ │ │ ├── delete.mdx │ │ │ │ └── has.mdx │ │ │ ├── WorkerLocation/ │ │ │ │ ├── WorkerLocation.mdx │ │ │ │ ├── hash.mdx │ │ │ │ ├── host.mdx │ │ │ │ ├── hostname.mdx │ │ │ │ ├── href.mdx │ │ │ │ ├── origin.mdx │ │ │ │ ├── pathname.mdx │ │ │ │ ├── port.mdx │ │ │ │ ├── protocol.mdx │ │ │ │ ├── search.mdx │ │ │ │ └── toString.mdx │ │ │ ├── WritableStream/ │ │ │ │ ├── WritableStream.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── abort.mdx │ │ │ │ ├── getWriter.mdx │ │ │ │ └── locked.mdx │ │ │ ├── WritableStreamDefaultController/ │ │ │ │ └── error.mdx │ │ │ ├── WritableStreamDefaultWriter/ │ │ │ │ ├── WritableStreamDefaultWriter.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── abort.mdx │ │ │ │ ├── close.mdx │ │ │ │ ├── closed.mdx │ │ │ │ ├── desiredSize.mdx │ │ │ │ ├── ready.mdx │ │ │ │ ├── releaseLock.mdx │ │ │ │ └── write.mdx │ │ │ ├── atob.mdx │ │ │ ├── btoa.mdx │ │ │ ├── clearInterval.mdx │ │ │ ├── clearTimeout.mdx │ │ │ ├── console/ │ │ │ │ ├── assert.mdx │ │ │ │ ├── clear.mdx │ │ │ │ ├── count.mdx │ │ │ │ ├── countReset.mdx │ │ │ │ ├── debug.mdx │ │ │ │ ├── dir.mdx │ │ │ │ ├── dirxml.mdx │ │ │ │ ├── error.mdx │ │ │ │ ├── group.mdx │ │ │ │ ├── groupCollapsed.mdx │ │ │ │ ├── groupEnd.mdx │ │ │ │ ├── info.mdx │ │ │ │ ├── log.mdx │ │ │ │ ├── time.mdx │ │ │ │ ├── timeEnd.mdx │ │ │ │ ├── timeLog.mdx │ │ │ │ ├── trace.mdx │ │ │ │ └── warn.mdx │ │ │ ├── crypto/ │ │ │ │ ├── getRandomValues.mdx │ │ │ │ ├── randomUUID.mdx │ │ │ │ └── subtle.mdx │ │ │ ├── decodeURI.mdx │ │ │ ├── decodeURIComponent.mdx │ │ │ ├── encodeURI.mdx │ │ │ ├── encodeURIComponent.mdx │ │ │ ├── escape.mdx │ │ │ ├── eval.mdx │ │ │ ├── fetch.mdx │ │ │ ├── globalThis.mdx │ │ │ ├── isFinite.mdx │ │ │ ├── isNaN.mdx │ │ │ ├── location.mdx │ │ │ ├── parseFloat.mdx │ │ │ ├── parseInt.mdx │ │ │ ├── performance/ │ │ │ │ ├── now.mdx │ │ │ │ └── timeOrigin.mdx │ │ │ ├── setInterval.mdx │ │ │ ├── setTimeout.mdx │ │ │ ├── structuredClone.mdx │ │ │ ├── undefined.mdx │ │ │ └── unescape.mdx │ │ ├── html-rewriter/ │ │ │ ├── Element/ │ │ │ │ └── prototype/ │ │ │ │ ├── after.mdx │ │ │ │ ├── append.mdx │ │ │ │ ├── before.mdx │ │ │ │ ├── hasAttribute.mdx │ │ │ │ ├── prepend.mdx │ │ │ │ ├── removeAttribute.mdx │ │ │ │ ├── replaceChildren.mdx │ │ │ │ ├── replaceWith.mdx │ │ │ │ ├── selector.mdx │ │ │ │ ├── setAttribute.mdx │ │ │ │ └── tag.mdx │ │ │ └── HTMLRewritingStream/ │ │ │ ├── HTMLRewritingStream.mdx │ │ │ └── prototype/ │ │ │ └── onElement.mdx │ │ ├── image-optimizer/ │ │ │ ├── Auto.mdx │ │ │ ├── BWAlgorithm.mdx │ │ │ ├── CropMode.mdx │ │ │ ├── Disable.mdx │ │ │ ├── Enable.mdx │ │ │ ├── Fit.mdx │ │ │ ├── Format.mdx │ │ │ ├── Metadata.mdx │ │ │ ├── Optimize.mdx │ │ │ ├── Orient.mdx │ │ │ ├── Profile.mdx │ │ │ ├── Region.mdx │ │ │ ├── ResizeFilter.mdx │ │ │ └── imageOptimizerOptions.mdx │ │ ├── index.mdx │ │ ├── kv-store/ │ │ │ ├── KVStore/ │ │ │ │ ├── KVStore.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── delete.mdx │ │ │ │ ├── get.mdx │ │ │ │ ├── list.mdx │ │ │ │ └── put.mdx │ │ │ └── KVStoreEntry/ │ │ │ └── prototype/ │ │ │ ├── arrayBuffer.mdx │ │ │ ├── body.mdx │ │ │ ├── bodyUsed.mdx │ │ │ ├── json.mdx │ │ │ ├── metadata.mdx │ │ │ ├── metadataText.mdx │ │ │ └── text.mdx │ │ ├── logger/ │ │ │ ├── Logger/ │ │ │ │ ├── Logger.mdx │ │ │ │ └── prototype/ │ │ │ │ └── log.mdx │ │ │ └── configureConsole.mdx │ │ ├── migration-guide/ │ │ │ └── index.mdx │ │ ├── secret-store/ │ │ │ ├── SecretStore/ │ │ │ │ ├── SecretStore.mdx │ │ │ │ ├── fromBytes.mdx │ │ │ │ └── prototype/ │ │ │ │ └── get.mdx │ │ │ └── SecretStoreEntry/ │ │ │ └── prototype/ │ │ │ ├── plaintext.mdx │ │ │ └── rawBytes.mdx │ │ ├── security/ │ │ │ └── inspect.mdx │ │ ├── shielding/ │ │ │ └── Shield/ │ │ │ ├── Shield.mdx │ │ │ └── prototype/ │ │ │ ├── encryptedBackend.mdx │ │ │ ├── runningOn.mdx │ │ │ └── unencryptedBackend.mdx │ │ └── websocket/ │ │ └── createWebsocketHandoff.mdx │ ├── docusaurus.config.js │ ├── generate-version-redirects.mjs │ ├── package.json │ ├── rename-docs.mjs │ ├── sidebars.js │ ├── src/ │ │ ├── components/ │ │ │ ├── HomepageFeatures/ │ │ │ │ ├── index.js │ │ │ │ └── styles.module.css │ │ │ └── fiddle/ │ │ │ └── index.js │ │ ├── css/ │ │ │ └── custom.css │ │ ├── pages/ │ │ │ ├── index.js │ │ │ └── index.module.css │ │ └── theme/ │ │ └── MDXComponents.js │ ├── static/ │ │ └── fiddle.js │ ├── versioned_docs/ │ │ ├── version-1.13.0/ │ │ │ ├── backend/ │ │ │ │ └── Backend/ │ │ │ │ ├── Backend.mdx │ │ │ │ └── prototype/ │ │ │ │ └── toString.mdx │ │ │ ├── cache-override/ │ │ │ │ └── CacheOverride/ │ │ │ │ └── CacheOverride.mdx │ │ │ ├── config-store/ │ │ │ │ └── ConfigStore/ │ │ │ │ ├── ConfigStore.mdx │ │ │ │ └── prototype/ │ │ │ │ └── get.mdx │ │ │ ├── dictionary/ │ │ │ │ └── Dictionary/ │ │ │ │ ├── Dictionary.mdx │ │ │ │ └── prototype/ │ │ │ │ └── get.mdx │ │ │ ├── env/ │ │ │ │ └── env.mdx │ │ │ ├── experimental/ │ │ │ │ ├── allowDynamicBackends.mdx │ │ │ │ └── includeBytes.mdx │ │ │ ├── fanout/ │ │ │ │ └── createFanoutHandoff.mdx │ │ │ ├── geolocation/ │ │ │ │ └── getGeolocationForIpAddress.mdx │ │ │ ├── globals/ │ │ │ │ ├── AggregrateError/ │ │ │ │ │ └── AggregrateError.mdx │ │ │ │ ├── Array/ │ │ │ │ │ ├── @@species.mdx │ │ │ │ │ ├── Array.mdx │ │ │ │ │ ├── from.mdx │ │ │ │ │ ├── isArray.mdx │ │ │ │ │ ├── of.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── @@iterator.mdx │ │ │ │ │ ├── @@unscopables.mdx │ │ │ │ │ ├── at.mdx │ │ │ │ │ ├── concat.mdx │ │ │ │ │ ├── copyWithin.mdx │ │ │ │ │ ├── entries.mdx │ │ │ │ │ ├── every.mdx │ │ │ │ │ ├── fill.mdx │ │ │ │ │ ├── filter.mdx │ │ │ │ │ ├── find.mdx │ │ │ │ │ ├── findIndex.mdx │ │ │ │ │ ├── flat.mdx │ │ │ │ │ ├── flatMap.mdx │ │ │ │ │ ├── forEach.mdx │ │ │ │ │ ├── includes.mdx │ │ │ │ │ ├── indexOf.mdx │ │ │ │ │ ├── join.mdx │ │ │ │ │ ├── keys.mdx │ │ │ │ │ ├── lastIndexOf.mdx │ │ │ │ │ ├── length.mdx │ │ │ │ │ ├── map.mdx │ │ │ │ │ ├── pop.mdx │ │ │ │ │ ├── push.mdx │ │ │ │ │ ├── reduce.mdx │ │ │ │ │ ├── reduceRight.mdx │ │ │ │ │ ├── reverse.mdx │ │ │ │ │ ├── shift.mdx │ │ │ │ │ ├── slice.mdx │ │ │ │ │ ├── some.mdx │ │ │ │ │ ├── sort.mdx │ │ │ │ │ ├── splice.mdx │ │ │ │ │ ├── toLocaleString.mdx │ │ │ │ │ ├── toString.mdx │ │ │ │ │ ├── unshift.mdx │ │ │ │ │ └── values.mdx │ │ │ │ ├── ArrayBuffer/ │ │ │ │ │ ├── @@species.mdx │ │ │ │ │ ├── ArrayBuffer.mdx │ │ │ │ │ ├── isView.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── byteLength.mdx │ │ │ │ │ └── slice.mdx │ │ │ │ ├── BigInt/ │ │ │ │ │ ├── BigInt.mdx │ │ │ │ │ ├── asIntN.mdx │ │ │ │ │ ├── asUintN.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── toLocaleString.mdx │ │ │ │ │ ├── toString.mdx │ │ │ │ │ └── valueOf.mdx │ │ │ │ ├── BigInt64Array/ │ │ │ │ │ └── BigInt64Array.mdx │ │ │ │ ├── BigUint64Array/ │ │ │ │ │ └── BigUint64Array.mdx │ │ │ │ ├── Boolean/ │ │ │ │ │ ├── Boolean.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── toString.mdx │ │ │ │ │ └── valueOf.mdx │ │ │ │ ├── ByteLengthQueuingStrategy/ │ │ │ │ │ ├── ByteLengthQueuingStrategy.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ └── size.mdx │ │ │ │ ├── CompressionStream/ │ │ │ │ │ ├── CompressionStream.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── readable.mdx │ │ │ │ │ └── writable.mdx │ │ │ │ ├── CryptoKey/ │ │ │ │ │ ├── CryptoKey.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── algorithm.mdx │ │ │ │ │ ├── extractable.mdx │ │ │ │ │ ├── type.mdx │ │ │ │ │ └── usages.mdx │ │ │ │ ├── DataView/ │ │ │ │ │ ├── DataView.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── buffer.mdx │ │ │ │ │ ├── byteLength.mdx │ │ │ │ │ ├── byteOffset.mdx │ │ │ │ │ ├── getBigInt64.mdx │ │ │ │ │ ├── getBigUint64.mdx │ │ │ │ │ ├── getFloat32.mdx │ │ │ │ │ ├── getFloat64.mdx │ │ │ │ │ ├── getInt16.mdx │ │ │ │ │ ├── getInt32.mdx │ │ │ │ │ ├── getInt8.mdx │ │ │ │ │ ├── getUint16.mdx │ │ │ │ │ ├── getUint32.mdx │ │ │ │ │ ├── getUint8.mdx │ │ │ │ │ ├── setBigInt64.mdx │ │ │ │ │ ├── setBigUint64.mdx │ │ │ │ │ ├── setFloat32.mdx │ │ │ │ │ ├── setFloat64.mdx │ │ │ │ │ ├── setInt16.mdx │ │ │ │ │ ├── setInt32.mdx │ │ │ │ │ ├── setInt8.mdx │ │ │ │ │ ├── setUint16.mdx │ │ │ │ │ ├── setUint32.mdx │ │ │ │ │ └── setUint8.mdx │ │ │ │ ├── Date/ │ │ │ │ │ ├── Date.mdx │ │ │ │ │ ├── UTC.mdx │ │ │ │ │ ├── now.mdx │ │ │ │ │ ├── parse.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── @@toPrimitive.mdx │ │ │ │ │ ├── getDate.mdx │ │ │ │ │ ├── getDay.mdx │ │ │ │ │ ├── getFullYear.mdx │ │ │ │ │ ├── getHours.mdx │ │ │ │ │ ├── getMilliseconds.mdx │ │ │ │ │ ├── getMinutes.mdx │ │ │ │ │ ├── getMonth.mdx │ │ │ │ │ ├── getSeconds.mdx │ │ │ │ │ ├── getTime.mdx │ │ │ │ │ ├── getTimezoneOffset.mdx │ │ │ │ │ ├── getUTCDate.mdx │ │ │ │ │ ├── getUTCDay.mdx │ │ │ │ │ ├── getUTCFullYear.mdx │ │ │ │ │ ├── getUTCHours.mdx │ │ │ │ │ ├── getUTCMilliseconds.mdx │ │ │ │ │ ├── getUTCMinutes.mdx │ │ │ │ │ ├── getUTCMonth.mdx │ │ │ │ │ ├── getUTCSeconds.mdx │ │ │ │ │ ├── getYear.mdx │ │ │ │ │ ├── setDate.mdx │ │ │ │ │ ├── setFullYear.mdx │ │ │ │ │ ├── setHours.mdx │ │ │ │ │ ├── setMilliseconds.mdx │ │ │ │ │ ├── setMinutes.mdx │ │ │ │ │ ├── setMonth.mdx │ │ │ │ │ ├── setSeconds.mdx │ │ │ │ │ ├── setTime.mdx │ │ │ │ │ ├── setUTCDate.mdx │ │ │ │ │ ├── setUTCFullYear.mdx │ │ │ │ │ ├── setUTCHours.mdx │ │ │ │ │ ├── setUTCMilliseconds.mdx │ │ │ │ │ ├── setUTCMinutes.mdx │ │ │ │ │ ├── setUTCMonth.mdx │ │ │ │ │ ├── setUTCSeconds.mdx │ │ │ │ │ ├── setYear.mdx │ │ │ │ │ ├── toDateString.mdx │ │ │ │ │ ├── toISOString.mdx │ │ │ │ │ ├── toJSON.mdx │ │ │ │ │ ├── toLocaleDateString.mdx │ │ │ │ │ ├── toLocaleString.mdx │ │ │ │ │ ├── toLocaleTimeString.mdx │ │ │ │ │ ├── toString.mdx │ │ │ │ │ ├── toTimeString.mdx │ │ │ │ │ ├── toUTCString.mdx │ │ │ │ │ └── valueOf.mdx │ │ │ │ ├── DecompressionStream/ │ │ │ │ │ ├── DecompressionStream.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── readable.mdx │ │ │ │ │ └── writable.mdx │ │ │ │ ├── Error/ │ │ │ │ │ ├── Error.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── cause.mdx │ │ │ │ │ ├── message.mdx │ │ │ │ │ ├── name.mdx │ │ │ │ │ └── toString.mdx │ │ │ │ ├── EvalError/ │ │ │ │ │ └── EvalError.mdx │ │ │ │ ├── FetchEvent/ │ │ │ │ │ ├── FetchEvent.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── respondWith.mdx │ │ │ │ │ └── waitUntil.mdx │ │ │ │ ├── FinalizationRegistry/ │ │ │ │ │ ├── FinalizationRegistry.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── register.mdx │ │ │ │ │ └── unregister.mdx │ │ │ │ ├── Float32Array/ │ │ │ │ │ └── Float32Array.mdx │ │ │ │ ├── Float64Array/ │ │ │ │ │ └── Float64Array.mdx │ │ │ │ ├── Function/ │ │ │ │ │ ├── Function.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── apply.mdx │ │ │ │ │ ├── bind.mdx │ │ │ │ │ ├── call.mdx │ │ │ │ │ ├── index.mdx │ │ │ │ │ ├── length.mdx │ │ │ │ │ ├── name.mdx │ │ │ │ │ └── toString.mdx │ │ │ │ ├── Headers/ │ │ │ │ │ ├── Headers.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── append.mdx │ │ │ │ │ ├── delete.mdx │ │ │ │ │ ├── entries.mdx │ │ │ │ │ ├── forEach.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ ├── keys.mdx │ │ │ │ │ ├── set.mdx │ │ │ │ │ └── values.mdx │ │ │ │ ├── Infinity.mdx │ │ │ │ ├── Int16Array/ │ │ │ │ │ └── Int16Array.mdx │ │ │ │ ├── Int32Array/ │ │ │ │ │ └── Int32Array.mdx │ │ │ │ ├── Int8Array/ │ │ │ │ │ └── Int8Array.mdx │ │ │ │ ├── JSON/ │ │ │ │ │ ├── parse.mdx │ │ │ │ │ └── stringify.mdx │ │ │ │ ├── Map/ │ │ │ │ │ ├── @@species.mdx │ │ │ │ │ ├── Map.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── @@iterator.mdx │ │ │ │ │ ├── clear.mdx │ │ │ │ │ ├── delete.mdx │ │ │ │ │ ├── entries.mdx │ │ │ │ │ ├── forEach.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ ├── keys.mdx │ │ │ │ │ ├── set.mdx │ │ │ │ │ ├── size.mdx │ │ │ │ │ └── values.mdx │ │ │ │ ├── Math/ │ │ │ │ │ ├── E.mdx │ │ │ │ │ ├── LN10.mdx │ │ │ │ │ ├── LN2.mdx │ │ │ │ │ ├── LOG10e.mdx │ │ │ │ │ ├── LOG2e.mdx │ │ │ │ │ ├── PI.mdx │ │ │ │ │ ├── SQRT1_2.mdx │ │ │ │ │ ├── SQRT2.mdx │ │ │ │ │ ├── abs.mdx │ │ │ │ │ ├── acos.mdx │ │ │ │ │ ├── acosh.mdx │ │ │ │ │ ├── asin.mdx │ │ │ │ │ ├── asinh.mdx │ │ │ │ │ ├── atan.mdx │ │ │ │ │ ├── atan2.mdx │ │ │ │ │ ├── atanh.mdx │ │ │ │ │ ├── cbrt.mdx │ │ │ │ │ ├── ceil.mdx │ │ │ │ │ ├── clz32.mdx │ │ │ │ │ ├── cos.mdx │ │ │ │ │ ├── cosh.mdx │ │ │ │ │ ├── exp.mdx │ │ │ │ │ ├── expm1.mdx │ │ │ │ │ ├── floor.mdx │ │ │ │ │ ├── fround.mdx │ │ │ │ │ ├── hypot.mdx │ │ │ │ │ ├── imul.mdx │ │ │ │ │ ├── log.mdx │ │ │ │ │ ├── log10.mdx │ │ │ │ │ ├── log1p.mdx │ │ │ │ │ ├── log2.mdx │ │ │ │ │ ├── max.mdx │ │ │ │ │ ├── min.mdx │ │ │ │ │ ├── pow.mdx │ │ │ │ │ ├── random.mdx │ │ │ │ │ ├── round.mdx │ │ │ │ │ ├── sign.mdx │ │ │ │ │ ├── sin.mdx │ │ │ │ │ ├── sinh.mdx │ │ │ │ │ ├── sqrt.mdx │ │ │ │ │ ├── tan.mdx │ │ │ │ │ ├── tanh.mdx │ │ │ │ │ └── trunc.mdx │ │ │ │ ├── NaN.mdx │ │ │ │ ├── Number/ │ │ │ │ │ ├── MAX_SAFE_INTEGER.mdx │ │ │ │ │ ├── MAX_VALUE.mdx │ │ │ │ │ ├── MIN_SAFE_INTEGER.mdx │ │ │ │ │ ├── MIN_VALUE.mdx │ │ │ │ │ ├── NEGATIVE_INFINITY.mdx │ │ │ │ │ ├── NaN.mdx │ │ │ │ │ ├── Number.mdx │ │ │ │ │ ├── POSITIVE_INFINITY.mdx │ │ │ │ │ ├── epsilon.mdx │ │ │ │ │ ├── isFinite.mdx │ │ │ │ │ ├── isInteger.mdx │ │ │ │ │ ├── isNaN.mdx │ │ │ │ │ ├── isSafeInteger.mdx │ │ │ │ │ ├── parseFloat.mdx │ │ │ │ │ ├── parseInt.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── toExponential.mdx │ │ │ │ │ ├── toFixed.mdx │ │ │ │ │ ├── toLocaleString.mdx │ │ │ │ │ ├── toPrecision.mdx │ │ │ │ │ ├── toString.mdx │ │ │ │ │ └── valueOf.mdx │ │ │ │ ├── Object/ │ │ │ │ │ ├── Object.mdx │ │ │ │ │ ├── assign.mdx │ │ │ │ │ ├── create.mdx │ │ │ │ │ ├── defineProperties.mdx │ │ │ │ │ ├── defineProperty.mdx │ │ │ │ │ ├── entries.mdx │ │ │ │ │ ├── freeze.mdx │ │ │ │ │ ├── fromEntries.mdx │ │ │ │ │ ├── getOwnPropertyDescriptor.mdx │ │ │ │ │ ├── getOwnPropertyDescriptors.mdx │ │ │ │ │ ├── getOwnPropertyNames.mdx │ │ │ │ │ ├── getOwnPropertySymbols.mdx │ │ │ │ │ ├── getPrototypeOf.mdx │ │ │ │ │ ├── hasOwn.mdx │ │ │ │ │ ├── is.mdx │ │ │ │ │ ├── isExtensible.mdx │ │ │ │ │ ├── isFrozen.mdx │ │ │ │ │ ├── isSealed.mdx │ │ │ │ │ ├── keys.mdx │ │ │ │ │ ├── preventExtensions.mdx │ │ │ │ │ ├── prototype/ │ │ │ │ │ │ ├── constructor.mdx │ │ │ │ │ │ ├── hasOwnProperty.mdx │ │ │ │ │ │ ├── isPrototypeOf.mdx │ │ │ │ │ │ ├── propertyIsEnumerable.mdx │ │ │ │ │ │ ├── toLocaleString.mdx │ │ │ │ │ │ ├── toString.mdx │ │ │ │ │ │ └── valueOf.mdx │ │ │ │ │ ├── seal.mdx │ │ │ │ │ ├── setPrototypeOf.mdx │ │ │ │ │ └── values.mdx │ │ │ │ ├── Promise/ │ │ │ │ │ ├── @@species.mdx │ │ │ │ │ ├── Promise.mdx │ │ │ │ │ ├── all.mdx │ │ │ │ │ ├── allSettled.mdx │ │ │ │ │ ├── any.mdx │ │ │ │ │ ├── prototype/ │ │ │ │ │ │ ├── catch.mdx │ │ │ │ │ │ ├── finally.mdx │ │ │ │ │ │ └── then.mdx │ │ │ │ │ ├── race.mdx │ │ │ │ │ ├── reject.mdx │ │ │ │ │ └── resolve.mdx │ │ │ │ ├── Proxy/ │ │ │ │ │ ├── Proxy.mdx │ │ │ │ │ ├── proxy/ │ │ │ │ │ │ ├── apply.mdx │ │ │ │ │ │ ├── construct.mdx │ │ │ │ │ │ ├── defineProperty.mdx │ │ │ │ │ │ ├── deleteProperty.mdx │ │ │ │ │ │ ├── get.mdx │ │ │ │ │ │ ├── getOwnPropertyDescriptor.mdx │ │ │ │ │ │ ├── getPrototypeOf.mdx │ │ │ │ │ │ ├── has.mdx │ │ │ │ │ │ ├── isExtensible.mdx │ │ │ │ │ │ ├── ownKeys.mdx │ │ │ │ │ │ ├── preventExtensions.mdx │ │ │ │ │ │ ├── set.mdx │ │ │ │ │ │ └── setPrototypeOf.mdx │ │ │ │ │ └── revocable.mdx │ │ │ │ ├── RangeError/ │ │ │ │ │ └── RangeError.mdx │ │ │ │ ├── ReadableByteStreamController/ │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── byobRequest.mdx │ │ │ │ │ ├── close.mdx │ │ │ │ │ ├── desiredSize.mdx │ │ │ │ │ ├── enqueue.mdx │ │ │ │ │ └── error.mdx │ │ │ │ ├── ReadableStream/ │ │ │ │ │ ├── ReadableStream.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── cancel.mdx │ │ │ │ │ ├── getReader.mdx │ │ │ │ │ ├── locked.mdx │ │ │ │ │ ├── pipeThrough.mdx │ │ │ │ │ ├── pipeTo.mdx │ │ │ │ │ └── tee.mdx │ │ │ │ ├── ReadableStreamBYOBReader/ │ │ │ │ │ ├── ReadableStreamBYOBReader.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── cancel.mdx │ │ │ │ │ ├── closed.mdx │ │ │ │ │ ├── read.mdx │ │ │ │ │ └── releaseLock.mdx │ │ │ │ ├── ReadableStreamBYOBRequest/ │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── respond.mdx │ │ │ │ │ ├── respondWithNewView.mdx │ │ │ │ │ └── view.mdx │ │ │ │ ├── ReadableStreamDefaultController/ │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── close.mdx │ │ │ │ │ ├── desiredSize.mdx │ │ │ │ │ ├── enqueue.mdx │ │ │ │ │ └── error.mdx │ │ │ │ ├── ReadableStreamDefaultReader/ │ │ │ │ │ ├── ReadableStreamDefaultReader.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── cancel.mdx │ │ │ │ │ ├── closed.mdx │ │ │ │ │ ├── read.mdx │ │ │ │ │ └── releaseLock.mdx │ │ │ │ ├── ReferenceError/ │ │ │ │ │ └── ReferenceError.mdx │ │ │ │ ├── Reflect/ │ │ │ │ │ ├── apply.mdx │ │ │ │ │ ├── construct.mdx │ │ │ │ │ ├── defineProperty.mdx │ │ │ │ │ ├── deleteProperty.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── getOwnPropertyDescriptor.mdx │ │ │ │ │ ├── getPrototypeOf.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ ├── isExtensible.mdx │ │ │ │ │ ├── ownKeys.mdx │ │ │ │ │ ├── preventExtensions.mdx │ │ │ │ │ ├── set.mdx │ │ │ │ │ └── setPrototypeOf.mdx │ │ │ │ ├── Request/ │ │ │ │ │ ├── Request.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── arrayBuffer.mdx │ │ │ │ │ ├── body.mdx │ │ │ │ │ ├── bodyUsed.mdx │ │ │ │ │ ├── headers.mdx │ │ │ │ │ ├── json.mdx │ │ │ │ │ ├── method.mdx │ │ │ │ │ ├── text.mdx │ │ │ │ │ └── url.mdx │ │ │ │ ├── Response/ │ │ │ │ │ ├── Response.mdx │ │ │ │ │ ├── prototype/ │ │ │ │ │ │ ├── arrayBuffer.mdx │ │ │ │ │ │ ├── body.mdx │ │ │ │ │ │ ├── bodyUsed.mdx │ │ │ │ │ │ ├── headers.mdx │ │ │ │ │ │ ├── json.mdx │ │ │ │ │ │ ├── ok.mdx │ │ │ │ │ │ ├── status.mdx │ │ │ │ │ │ ├── statusText.mdx │ │ │ │ │ │ ├── text.mdx │ │ │ │ │ │ └── url.mdx │ │ │ │ │ └── redirect.mdx │ │ │ │ ├── RsaHashedImportParams/ │ │ │ │ │ └── RsaHashedImportParams.mdx │ │ │ │ ├── Set/ │ │ │ │ │ ├── @@species.mdx │ │ │ │ │ ├── Set.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── @@iterator.mdx │ │ │ │ │ ├── add.mdx │ │ │ │ │ ├── clear.mdx │ │ │ │ │ ├── delete.mdx │ │ │ │ │ ├── entries.mdx │ │ │ │ │ ├── forEach.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ ├── keys.mdx │ │ │ │ │ ├── size.mdx │ │ │ │ │ └── values.mdx │ │ │ │ ├── String/ │ │ │ │ │ ├── String.mdx │ │ │ │ │ ├── fromCharCode.mdx │ │ │ │ │ ├── fromCodePoint.mdx │ │ │ │ │ ├── prototype/ │ │ │ │ │ │ ├── @@iterator.mdx │ │ │ │ │ │ ├── at.mdx │ │ │ │ │ │ ├── charAt.mdx │ │ │ │ │ │ ├── charCodeAt.mdx │ │ │ │ │ │ ├── codePointAt.mdx │ │ │ │ │ │ ├── concat.mdx │ │ │ │ │ │ ├── endsWith.mdx │ │ │ │ │ │ ├── includes.mdx │ │ │ │ │ │ ├── indexOf.mdx │ │ │ │ │ │ ├── lastIndexOf.mdx │ │ │ │ │ │ ├── length.mdx │ │ │ │ │ │ ├── localeCompare.mdx │ │ │ │ │ │ ├── match.mdx │ │ │ │ │ │ ├── matchAll.mdx │ │ │ │ │ │ ├── padEnd.mdx │ │ │ │ │ │ ├── padStart.mdx │ │ │ │ │ │ ├── repeat.mdx │ │ │ │ │ │ ├── replace.mdx │ │ │ │ │ │ ├── replaceAll.mdx │ │ │ │ │ │ ├── search.mdx │ │ │ │ │ │ ├── slice.mdx │ │ │ │ │ │ ├── split.mdx │ │ │ │ │ │ ├── startsWith.mdx │ │ │ │ │ │ ├── substr.mdx │ │ │ │ │ │ ├── substring.mdx │ │ │ │ │ │ ├── toLocaleLowerCase.mdx │ │ │ │ │ │ ├── toLocaleUpperCase.mdx │ │ │ │ │ │ ├── toLowerCase.mdx │ │ │ │ │ │ ├── toString.mdx │ │ │ │ │ │ ├── toUpperCase.mdx │ │ │ │ │ │ ├── trim.mdx │ │ │ │ │ │ ├── trimEnd.mdx │ │ │ │ │ │ ├── trimStart.mdx │ │ │ │ │ │ └── valueOf.mdx │ │ │ │ │ └── raw.mdx │ │ │ │ ├── SubtleCrypto/ │ │ │ │ │ ├── SubtleCrypto.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── digest.mdx │ │ │ │ │ ├── importKey.mdx │ │ │ │ │ ├── sign.mdx │ │ │ │ │ └── verify.mdx │ │ │ │ ├── Symbol/ │ │ │ │ │ ├── Symbol.mdx │ │ │ │ │ ├── asyncIterator.mdx │ │ │ │ │ ├── for.mdx │ │ │ │ │ ├── hasInstance.mdx │ │ │ │ │ ├── isConcatSpreadable.mdx │ │ │ │ │ ├── iterator.mdx │ │ │ │ │ ├── keyFor.mdx │ │ │ │ │ ├── match.mdx │ │ │ │ │ ├── matchAll.mdx │ │ │ │ │ ├── prototype/ │ │ │ │ │ │ ├── @@toPrimitive.mdx │ │ │ │ │ │ ├── description.mdx │ │ │ │ │ │ ├── toString.mdx │ │ │ │ │ │ └── valueOf.mdx │ │ │ │ │ ├── replace.mdx │ │ │ │ │ ├── search.mdx │ │ │ │ │ ├── species.mdx │ │ │ │ │ ├── split.mdx │ │ │ │ │ ├── toPrimitive.mdx │ │ │ │ │ ├── toStringTag.mdx │ │ │ │ │ └── unscopables.mdx │ │ │ │ ├── SyntaxError/ │ │ │ │ │ └── SyntaxError.mdx │ │ │ │ ├── TextDecoder/ │ │ │ │ │ ├── TextDecoder.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── decode.mdx │ │ │ │ │ ├── encoding.mdx │ │ │ │ │ ├── fatal.mdx │ │ │ │ │ └── ignoreBOM.mdx │ │ │ │ ├── TextEncoder/ │ │ │ │ │ ├── TextEncoder.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── encode.mdx │ │ │ │ │ └── encoding.mdx │ │ │ │ ├── TransformStream/ │ │ │ │ │ ├── TransformStream.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── readable.mdx │ │ │ │ │ └── writable.mdx │ │ │ │ ├── TransformStreamDefaultController/ │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── desiredSize.mdx │ │ │ │ │ ├── enqueue.mdx │ │ │ │ │ ├── error.mdx │ │ │ │ │ └── terminate.mdx │ │ │ │ ├── TypeError/ │ │ │ │ │ └── TypeError.mdx │ │ │ │ ├── URIError/ │ │ │ │ │ └── URIError.mdx │ │ │ │ ├── URL/ │ │ │ │ │ ├── URL.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── hash.mdx │ │ │ │ │ ├── host.mdx │ │ │ │ │ ├── hostname.mdx │ │ │ │ │ ├── href.mdx │ │ │ │ │ ├── origin.mdx │ │ │ │ │ ├── password.mdx │ │ │ │ │ ├── pathname.mdx │ │ │ │ │ ├── port.mdx │ │ │ │ │ ├── protocol.mdx │ │ │ │ │ ├── search.mdx │ │ │ │ │ ├── searchParams.mdx │ │ │ │ │ ├── toJSON.mdx │ │ │ │ │ ├── toString.mdx │ │ │ │ │ └── username.mdx │ │ │ │ ├── URLSearchParams/ │ │ │ │ │ ├── URLSearchParams.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── append.mdx │ │ │ │ │ ├── delete.mdx │ │ │ │ │ ├── entries.mdx │ │ │ │ │ ├── forEach.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ ├── keys.mdx │ │ │ │ │ ├── set.mdx │ │ │ │ │ ├── sort.mdx │ │ │ │ │ ├── toString.mdx │ │ │ │ │ └── values.mdx │ │ │ │ ├── Uint16Array/ │ │ │ │ │ └── Uint16Array.mdx │ │ │ │ ├── Uint32Array/ │ │ │ │ │ └── Uint32Array.mdx │ │ │ │ ├── Uint8Array/ │ │ │ │ │ └── Uint8Array.mdx │ │ │ │ ├── Uint8ClampedArray/ │ │ │ │ │ └── Uint8ClampedArray.mdx │ │ │ │ ├── WeakMap/ │ │ │ │ │ ├── WeakMap.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── delete.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ └── set.mdx │ │ │ │ ├── WeakRef/ │ │ │ │ │ ├── WeakRef.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ └── deref.mdx │ │ │ │ ├── WeakSet/ │ │ │ │ │ ├── WeakSet.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── add.mdx │ │ │ │ │ ├── delete.mdx │ │ │ │ │ └── has.mdx │ │ │ │ ├── WorkerLocation/ │ │ │ │ │ ├── WorkerLocation.mdx │ │ │ │ │ ├── hash.mdx │ │ │ │ │ ├── host.mdx │ │ │ │ │ ├── hostname.mdx │ │ │ │ │ ├── href.mdx │ │ │ │ │ ├── origin.mdx │ │ │ │ │ ├── pathname.mdx │ │ │ │ │ ├── port.mdx │ │ │ │ │ ├── protocol.mdx │ │ │ │ │ ├── search.mdx │ │ │ │ │ └── toString.mdx │ │ │ │ ├── WritableStream/ │ │ │ │ │ ├── WritableStream.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── abort.mdx │ │ │ │ │ ├── getWriter.mdx │ │ │ │ │ └── locked.mdx │ │ │ │ ├── WritableStreamDefaultController/ │ │ │ │ │ └── error.mdx │ │ │ │ ├── WritableStreamDefaultWriter/ │ │ │ │ │ ├── WritableStreamDefaultWriter.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── abort.mdx │ │ │ │ │ ├── close.mdx │ │ │ │ │ ├── closed.mdx │ │ │ │ │ ├── desiredSize.mdx │ │ │ │ │ ├── ready.mdx │ │ │ │ │ ├── releaseLock.mdx │ │ │ │ │ └── write.mdx │ │ │ │ ├── atob.mdx │ │ │ │ ├── btoa.mdx │ │ │ │ ├── clearInterval.mdx │ │ │ │ ├── clearTimeout.mdx │ │ │ │ ├── console/ │ │ │ │ │ ├── assert.mdx │ │ │ │ │ ├── clear.mdx │ │ │ │ │ ├── count.mdx │ │ │ │ │ ├── countReset.mdx │ │ │ │ │ ├── debug.mdx │ │ │ │ │ ├── dir.mdx │ │ │ │ │ ├── dirxml.mdx │ │ │ │ │ ├── error.mdx │ │ │ │ │ ├── group.mdx │ │ │ │ │ ├── groupCollapsed.mdx │ │ │ │ │ ├── groupEnd.mdx │ │ │ │ │ ├── info.mdx │ │ │ │ │ ├── log.mdx │ │ │ │ │ ├── time.mdx │ │ │ │ │ ├── timeEnd.mdx │ │ │ │ │ ├── timeLog.mdx │ │ │ │ │ ├── trace.mdx │ │ │ │ │ └── warn.mdx │ │ │ │ ├── crypto/ │ │ │ │ │ ├── getRandomValues.mdx │ │ │ │ │ ├── randomUUID.mdx │ │ │ │ │ └── subtle.mdx │ │ │ │ ├── decodeURI.mdx │ │ │ │ ├── decodeURIComponent.mdx │ │ │ │ ├── encodeURI.mdx │ │ │ │ ├── encodeURIComponent.mdx │ │ │ │ ├── escape.mdx │ │ │ │ ├── eval.mdx │ │ │ │ ├── fetch.mdx │ │ │ │ ├── globalThis.mdx │ │ │ │ ├── isFinite.mdx │ │ │ │ ├── isNaN.mdx │ │ │ │ ├── location.mdx │ │ │ │ ├── parseFloat.mdx │ │ │ │ ├── parseInt.mdx │ │ │ │ ├── setInterval.mdx │ │ │ │ ├── setTimeout.mdx │ │ │ │ ├── structuredClone.mdx │ │ │ │ ├── undefined.mdx │ │ │ │ └── unescape.mdx │ │ │ ├── index.mdx │ │ │ ├── logger/ │ │ │ │ └── Logger/ │ │ │ │ ├── Logger.mdx │ │ │ │ └── prototype/ │ │ │ │ └── log.mdx │ │ │ ├── object-store/ │ │ │ │ └── ObjectStore/ │ │ │ │ ├── ObjectStore.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── get.mdx │ │ │ │ └── put.mdx │ │ │ └── secret-store/ │ │ │ ├── SecretStore/ │ │ │ │ ├── SecretStore.mdx │ │ │ │ └── prototype/ │ │ │ │ └── get.mdx │ │ │ └── SecretStoreEntry/ │ │ │ └── prototype/ │ │ │ └── plaintext.mdx │ │ ├── version-2.5.0/ │ │ │ ├── backend/ │ │ │ │ └── Backend/ │ │ │ │ ├── Backend.mdx │ │ │ │ └── prototype/ │ │ │ │ └── toString.mdx │ │ │ ├── cache/ │ │ │ │ ├── SimpleCache/ │ │ │ │ │ ├── SimpleCache.mdx │ │ │ │ │ ├── delete.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── getOrSet.mdx │ │ │ │ │ └── set.mdx │ │ │ │ └── SimpleCacheEntry/ │ │ │ │ ├── arrayBuffer.mdx │ │ │ │ ├── body.mdx │ │ │ │ ├── bodyUsed.mdx │ │ │ │ ├── json.mdx │ │ │ │ └── text.mdx │ │ │ ├── cache-override/ │ │ │ │ └── CacheOverride/ │ │ │ │ └── CacheOverride.mdx │ │ │ ├── config-store/ │ │ │ │ └── ConfigStore/ │ │ │ │ ├── ConfigStore.mdx │ │ │ │ └── prototype/ │ │ │ │ └── get.mdx │ │ │ ├── dictionary/ │ │ │ │ └── Dictionary/ │ │ │ │ ├── Dictionary.mdx │ │ │ │ └── prototype/ │ │ │ │ └── get.mdx │ │ │ ├── env/ │ │ │ │ └── env.mdx │ │ │ ├── experimental/ │ │ │ │ ├── allowDynamicBackends.mdx │ │ │ │ └── includeBytes.mdx │ │ │ ├── fanout/ │ │ │ │ └── createFanoutHandoff.mdx │ │ │ ├── geolocation/ │ │ │ │ └── getGeolocationForIpAddress.mdx │ │ │ ├── globals/ │ │ │ │ ├── AggregrateError/ │ │ │ │ │ └── AggregrateError.mdx │ │ │ │ ├── Array/ │ │ │ │ │ ├── @@species.mdx │ │ │ │ │ ├── Array.mdx │ │ │ │ │ ├── from.mdx │ │ │ │ │ ├── isArray.mdx │ │ │ │ │ ├── of.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── @@iterator.mdx │ │ │ │ │ ├── @@unscopables.mdx │ │ │ │ │ ├── at.mdx │ │ │ │ │ ├── concat.mdx │ │ │ │ │ ├── copyWithin.mdx │ │ │ │ │ ├── entries.mdx │ │ │ │ │ ├── every.mdx │ │ │ │ │ ├── fill.mdx │ │ │ │ │ ├── filter.mdx │ │ │ │ │ ├── find.mdx │ │ │ │ │ ├── findIndex.mdx │ │ │ │ │ ├── flat.mdx │ │ │ │ │ ├── flatMap.mdx │ │ │ │ │ ├── forEach.mdx │ │ │ │ │ ├── includes.mdx │ │ │ │ │ ├── indexOf.mdx │ │ │ │ │ ├── join.mdx │ │ │ │ │ ├── keys.mdx │ │ │ │ │ ├── lastIndexOf.mdx │ │ │ │ │ ├── length.mdx │ │ │ │ │ ├── map.mdx │ │ │ │ │ ├── pop.mdx │ │ │ │ │ ├── push.mdx │ │ │ │ │ ├── reduce.mdx │ │ │ │ │ ├── reduceRight.mdx │ │ │ │ │ ├── reverse.mdx │ │ │ │ │ ├── shift.mdx │ │ │ │ │ ├── slice.mdx │ │ │ │ │ ├── some.mdx │ │ │ │ │ ├── sort.mdx │ │ │ │ │ ├── splice.mdx │ │ │ │ │ ├── toLocaleString.mdx │ │ │ │ │ ├── toString.mdx │ │ │ │ │ ├── unshift.mdx │ │ │ │ │ └── values.mdx │ │ │ │ ├── ArrayBuffer/ │ │ │ │ │ ├── @@species.mdx │ │ │ │ │ ├── ArrayBuffer.mdx │ │ │ │ │ ├── isView.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── byteLength.mdx │ │ │ │ │ └── slice.mdx │ │ │ │ ├── BigInt/ │ │ │ │ │ ├── BigInt.mdx │ │ │ │ │ ├── asIntN.mdx │ │ │ │ │ ├── asUintN.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── toLocaleString.mdx │ │ │ │ │ ├── toString.mdx │ │ │ │ │ └── valueOf.mdx │ │ │ │ ├── BigInt64Array/ │ │ │ │ │ └── BigInt64Array.mdx │ │ │ │ ├── BigUint64Array/ │ │ │ │ │ └── BigUint64Array.mdx │ │ │ │ ├── Boolean/ │ │ │ │ │ ├── Boolean.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── toString.mdx │ │ │ │ │ └── valueOf.mdx │ │ │ │ ├── ByteLengthQueuingStrategy/ │ │ │ │ │ ├── ByteLengthQueuingStrategy.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ └── size.mdx │ │ │ │ ├── CompressionStream/ │ │ │ │ │ ├── CompressionStream.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── readable.mdx │ │ │ │ │ └── writable.mdx │ │ │ │ ├── CryptoKey/ │ │ │ │ │ ├── CryptoKey.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── algorithm.mdx │ │ │ │ │ ├── extractable.mdx │ │ │ │ │ ├── type.mdx │ │ │ │ │ └── usages.mdx │ │ │ │ ├── DOMException/ │ │ │ │ │ ├── DOMException.mdx │ │ │ │ │ ├── code.mdx │ │ │ │ │ ├── message.mdx │ │ │ │ │ └── name.mdx │ │ │ │ ├── DataView/ │ │ │ │ │ ├── DataView.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── buffer.mdx │ │ │ │ │ ├── byteLength.mdx │ │ │ │ │ ├── byteOffset.mdx │ │ │ │ │ ├── getBigInt64.mdx │ │ │ │ │ ├── getBigUint64.mdx │ │ │ │ │ ├── getFloat32.mdx │ │ │ │ │ ├── getFloat64.mdx │ │ │ │ │ ├── getInt16.mdx │ │ │ │ │ ├── getInt32.mdx │ │ │ │ │ ├── getInt8.mdx │ │ │ │ │ ├── getUint16.mdx │ │ │ │ │ ├── getUint32.mdx │ │ │ │ │ ├── getUint8.mdx │ │ │ │ │ ├── setBigInt64.mdx │ │ │ │ │ ├── setBigUint64.mdx │ │ │ │ │ ├── setFloat32.mdx │ │ │ │ │ ├── setFloat64.mdx │ │ │ │ │ ├── setInt16.mdx │ │ │ │ │ ├── setInt32.mdx │ │ │ │ │ ├── setInt8.mdx │ │ │ │ │ ├── setUint16.mdx │ │ │ │ │ ├── setUint32.mdx │ │ │ │ │ └── setUint8.mdx │ │ │ │ ├── Date/ │ │ │ │ │ ├── Date.mdx │ │ │ │ │ ├── UTC.mdx │ │ │ │ │ ├── now.mdx │ │ │ │ │ ├── parse.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── @@toPrimitive.mdx │ │ │ │ │ ├── getDate.mdx │ │ │ │ │ ├── getDay.mdx │ │ │ │ │ ├── getFullYear.mdx │ │ │ │ │ ├── getHours.mdx │ │ │ │ │ ├── getMilliseconds.mdx │ │ │ │ │ ├── getMinutes.mdx │ │ │ │ │ ├── getMonth.mdx │ │ │ │ │ ├── getSeconds.mdx │ │ │ │ │ ├── getTime.mdx │ │ │ │ │ ├── getTimezoneOffset.mdx │ │ │ │ │ ├── getUTCDate.mdx │ │ │ │ │ ├── getUTCDay.mdx │ │ │ │ │ ├── getUTCFullYear.mdx │ │ │ │ │ ├── getUTCHours.mdx │ │ │ │ │ ├── getUTCMilliseconds.mdx │ │ │ │ │ ├── getUTCMinutes.mdx │ │ │ │ │ ├── getUTCMonth.mdx │ │ │ │ │ ├── getUTCSeconds.mdx │ │ │ │ │ ├── getYear.mdx │ │ │ │ │ ├── setDate.mdx │ │ │ │ │ ├── setFullYear.mdx │ │ │ │ │ ├── setHours.mdx │ │ │ │ │ ├── setMilliseconds.mdx │ │ │ │ │ ├── setMinutes.mdx │ │ │ │ │ ├── setMonth.mdx │ │ │ │ │ ├── setSeconds.mdx │ │ │ │ │ ├── setTime.mdx │ │ │ │ │ ├── setUTCDate.mdx │ │ │ │ │ ├── setUTCFullYear.mdx │ │ │ │ │ ├── setUTCHours.mdx │ │ │ │ │ ├── setUTCMilliseconds.mdx │ │ │ │ │ ├── setUTCMinutes.mdx │ │ │ │ │ ├── setUTCMonth.mdx │ │ │ │ │ ├── setUTCSeconds.mdx │ │ │ │ │ ├── setYear.mdx │ │ │ │ │ ├── toDateString.mdx │ │ │ │ │ ├── toISOString.mdx │ │ │ │ │ ├── toJSON.mdx │ │ │ │ │ ├── toLocaleDateString.mdx │ │ │ │ │ ├── toLocaleString.mdx │ │ │ │ │ ├── toLocaleTimeString.mdx │ │ │ │ │ ├── toString.mdx │ │ │ │ │ ├── toTimeString.mdx │ │ │ │ │ ├── toUTCString.mdx │ │ │ │ │ └── valueOf.mdx │ │ │ │ ├── DecompressionStream/ │ │ │ │ │ ├── DecompressionStream.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── readable.mdx │ │ │ │ │ └── writable.mdx │ │ │ │ ├── Error/ │ │ │ │ │ ├── Error.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── cause.mdx │ │ │ │ │ ├── message.mdx │ │ │ │ │ ├── name.mdx │ │ │ │ │ └── toString.mdx │ │ │ │ ├── EvalError/ │ │ │ │ │ └── EvalError.mdx │ │ │ │ ├── FetchEvent/ │ │ │ │ │ ├── FetchEvent.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── respondWith.mdx │ │ │ │ │ └── waitUntil.mdx │ │ │ │ ├── FinalizationRegistry/ │ │ │ │ │ ├── FinalizationRegistry.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── register.mdx │ │ │ │ │ └── unregister.mdx │ │ │ │ ├── Float32Array/ │ │ │ │ │ └── Float32Array.mdx │ │ │ │ ├── Float64Array/ │ │ │ │ │ └── Float64Array.mdx │ │ │ │ ├── Function/ │ │ │ │ │ ├── Function.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── apply.mdx │ │ │ │ │ ├── bind.mdx │ │ │ │ │ ├── call.mdx │ │ │ │ │ ├── index.mdx │ │ │ │ │ ├── length.mdx │ │ │ │ │ ├── name.mdx │ │ │ │ │ └── toString.mdx │ │ │ │ ├── Headers/ │ │ │ │ │ ├── Headers.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── append.mdx │ │ │ │ │ ├── delete.mdx │ │ │ │ │ ├── entries.mdx │ │ │ │ │ ├── forEach.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ ├── keys.mdx │ │ │ │ │ ├── set.mdx │ │ │ │ │ └── values.mdx │ │ │ │ ├── HmacImportParams/ │ │ │ │ │ └── HmacImportParams.mdx │ │ │ │ ├── Infinity.mdx │ │ │ │ ├── Int16Array/ │ │ │ │ │ └── Int16Array.mdx │ │ │ │ ├── Int32Array/ │ │ │ │ │ └── Int32Array.mdx │ │ │ │ ├── Int8Array/ │ │ │ │ │ └── Int8Array.mdx │ │ │ │ ├── JSON/ │ │ │ │ │ ├── parse.mdx │ │ │ │ │ └── stringify.mdx │ │ │ │ ├── Map/ │ │ │ │ │ ├── @@species.mdx │ │ │ │ │ ├── Map.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── @@iterator.mdx │ │ │ │ │ ├── clear.mdx │ │ │ │ │ ├── delete.mdx │ │ │ │ │ ├── entries.mdx │ │ │ │ │ ├── forEach.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ ├── keys.mdx │ │ │ │ │ ├── set.mdx │ │ │ │ │ ├── size.mdx │ │ │ │ │ └── values.mdx │ │ │ │ ├── Math/ │ │ │ │ │ ├── E.mdx │ │ │ │ │ ├── LN10.mdx │ │ │ │ │ ├── LN2.mdx │ │ │ │ │ ├── LOG10e.mdx │ │ │ │ │ ├── LOG2e.mdx │ │ │ │ │ ├── PI.mdx │ │ │ │ │ ├── SQRT1_2.mdx │ │ │ │ │ ├── SQRT2.mdx │ │ │ │ │ ├── abs.mdx │ │ │ │ │ ├── acos.mdx │ │ │ │ │ ├── acosh.mdx │ │ │ │ │ ├── asin.mdx │ │ │ │ │ ├── asinh.mdx │ │ │ │ │ ├── atan.mdx │ │ │ │ │ ├── atan2.mdx │ │ │ │ │ ├── atanh.mdx │ │ │ │ │ ├── cbrt.mdx │ │ │ │ │ ├── ceil.mdx │ │ │ │ │ ├── clz32.mdx │ │ │ │ │ ├── cos.mdx │ │ │ │ │ ├── cosh.mdx │ │ │ │ │ ├── exp.mdx │ │ │ │ │ ├── expm1.mdx │ │ │ │ │ ├── floor.mdx │ │ │ │ │ ├── fround.mdx │ │ │ │ │ ├── hypot.mdx │ │ │ │ │ ├── imul.mdx │ │ │ │ │ ├── log.mdx │ │ │ │ │ ├── log10.mdx │ │ │ │ │ ├── log1p.mdx │ │ │ │ │ ├── log2.mdx │ │ │ │ │ ├── max.mdx │ │ │ │ │ ├── min.mdx │ │ │ │ │ ├── pow.mdx │ │ │ │ │ ├── random.mdx │ │ │ │ │ ├── round.mdx │ │ │ │ │ ├── sign.mdx │ │ │ │ │ ├── sin.mdx │ │ │ │ │ ├── sinh.mdx │ │ │ │ │ ├── sqrt.mdx │ │ │ │ │ ├── tan.mdx │ │ │ │ │ ├── tanh.mdx │ │ │ │ │ └── trunc.mdx │ │ │ │ ├── NaN.mdx │ │ │ │ ├── Number/ │ │ │ │ │ ├── MAX_SAFE_INTEGER.mdx │ │ │ │ │ ├── MAX_VALUE.mdx │ │ │ │ │ ├── MIN_SAFE_INTEGER.mdx │ │ │ │ │ ├── MIN_VALUE.mdx │ │ │ │ │ ├── NEGATIVE_INFINITY.mdx │ │ │ │ │ ├── NaN.mdx │ │ │ │ │ ├── Number.mdx │ │ │ │ │ ├── POSITIVE_INFINITY.mdx │ │ │ │ │ ├── epsilon.mdx │ │ │ │ │ ├── isFinite.mdx │ │ │ │ │ ├── isInteger.mdx │ │ │ │ │ ├── isNaN.mdx │ │ │ │ │ ├── isSafeInteger.mdx │ │ │ │ │ ├── parseFloat.mdx │ │ │ │ │ ├── parseInt.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── toExponential.mdx │ │ │ │ │ ├── toFixed.mdx │ │ │ │ │ ├── toLocaleString.mdx │ │ │ │ │ ├── toPrecision.mdx │ │ │ │ │ ├── toString.mdx │ │ │ │ │ └── valueOf.mdx │ │ │ │ ├── Object/ │ │ │ │ │ ├── Object.mdx │ │ │ │ │ ├── assign.mdx │ │ │ │ │ ├── create.mdx │ │ │ │ │ ├── defineProperties.mdx │ │ │ │ │ ├── defineProperty.mdx │ │ │ │ │ ├── entries.mdx │ │ │ │ │ ├── freeze.mdx │ │ │ │ │ ├── fromEntries.mdx │ │ │ │ │ ├── getOwnPropertyDescriptor.mdx │ │ │ │ │ ├── getOwnPropertyDescriptors.mdx │ │ │ │ │ ├── getOwnPropertyNames.mdx │ │ │ │ │ ├── getOwnPropertySymbols.mdx │ │ │ │ │ ├── getPrototypeOf.mdx │ │ │ │ │ ├── hasOwn.mdx │ │ │ │ │ ├── is.mdx │ │ │ │ │ ├── isExtensible.mdx │ │ │ │ │ ├── isFrozen.mdx │ │ │ │ │ ├── isSealed.mdx │ │ │ │ │ ├── keys.mdx │ │ │ │ │ ├── preventExtensions.mdx │ │ │ │ │ ├── prototype/ │ │ │ │ │ │ ├── constructor.mdx │ │ │ │ │ │ ├── hasOwnProperty.mdx │ │ │ │ │ │ ├── isPrototypeOf.mdx │ │ │ │ │ │ ├── propertyIsEnumerable.mdx │ │ │ │ │ │ ├── toLocaleString.mdx │ │ │ │ │ │ ├── toString.mdx │ │ │ │ │ │ └── valueOf.mdx │ │ │ │ │ ├── seal.mdx │ │ │ │ │ ├── setPrototypeOf.mdx │ │ │ │ │ └── values.mdx │ │ │ │ ├── Promise/ │ │ │ │ │ ├── @@species.mdx │ │ │ │ │ ├── Promise.mdx │ │ │ │ │ ├── all.mdx │ │ │ │ │ ├── allSettled.mdx │ │ │ │ │ ├── any.mdx │ │ │ │ │ ├── prototype/ │ │ │ │ │ │ ├── catch.mdx │ │ │ │ │ │ ├── finally.mdx │ │ │ │ │ │ └── then.mdx │ │ │ │ │ ├── race.mdx │ │ │ │ │ ├── reject.mdx │ │ │ │ │ └── resolve.mdx │ │ │ │ ├── Proxy/ │ │ │ │ │ ├── Proxy.mdx │ │ │ │ │ ├── proxy/ │ │ │ │ │ │ ├── apply.mdx │ │ │ │ │ │ ├── construct.mdx │ │ │ │ │ │ ├── defineProperty.mdx │ │ │ │ │ │ ├── deleteProperty.mdx │ │ │ │ │ │ ├── get.mdx │ │ │ │ │ │ ├── getOwnPropertyDescriptor.mdx │ │ │ │ │ │ ├── getPrototypeOf.mdx │ │ │ │ │ │ ├── has.mdx │ │ │ │ │ │ ├── isExtensible.mdx │ │ │ │ │ │ ├── ownKeys.mdx │ │ │ │ │ │ ├── preventExtensions.mdx │ │ │ │ │ │ ├── set.mdx │ │ │ │ │ │ └── setPrototypeOf.mdx │ │ │ │ │ └── revocable.mdx │ │ │ │ ├── RangeError/ │ │ │ │ │ └── RangeError.mdx │ │ │ │ ├── ReadableByteStreamController/ │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── byobRequest.mdx │ │ │ │ │ ├── close.mdx │ │ │ │ │ ├── desiredSize.mdx │ │ │ │ │ ├── enqueue.mdx │ │ │ │ │ └── error.mdx │ │ │ │ ├── ReadableStream/ │ │ │ │ │ ├── ReadableStream.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── cancel.mdx │ │ │ │ │ ├── getReader.mdx │ │ │ │ │ ├── locked.mdx │ │ │ │ │ ├── pipeThrough.mdx │ │ │ │ │ ├── pipeTo.mdx │ │ │ │ │ └── tee.mdx │ │ │ │ ├── ReadableStreamBYOBReader/ │ │ │ │ │ ├── ReadableStreamBYOBReader.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── cancel.mdx │ │ │ │ │ ├── closed.mdx │ │ │ │ │ ├── read.mdx │ │ │ │ │ └── releaseLock.mdx │ │ │ │ ├── ReadableStreamBYOBRequest/ │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── respond.mdx │ │ │ │ │ ├── respondWithNewView.mdx │ │ │ │ │ └── view.mdx │ │ │ │ ├── ReadableStreamDefaultController/ │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── close.mdx │ │ │ │ │ ├── desiredSize.mdx │ │ │ │ │ ├── enqueue.mdx │ │ │ │ │ └── error.mdx │ │ │ │ ├── ReadableStreamDefaultReader/ │ │ │ │ │ ├── ReadableStreamDefaultReader.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── cancel.mdx │ │ │ │ │ ├── closed.mdx │ │ │ │ │ ├── read.mdx │ │ │ │ │ └── releaseLock.mdx │ │ │ │ ├── ReferenceError/ │ │ │ │ │ └── ReferenceError.mdx │ │ │ │ ├── Reflect/ │ │ │ │ │ ├── apply.mdx │ │ │ │ │ ├── construct.mdx │ │ │ │ │ ├── defineProperty.mdx │ │ │ │ │ ├── deleteProperty.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── getOwnPropertyDescriptor.mdx │ │ │ │ │ ├── getPrototypeOf.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ ├── isExtensible.mdx │ │ │ │ │ ├── ownKeys.mdx │ │ │ │ │ ├── preventExtensions.mdx │ │ │ │ │ ├── set.mdx │ │ │ │ │ └── setPrototypeOf.mdx │ │ │ │ ├── Request/ │ │ │ │ │ ├── Request.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── arrayBuffer.mdx │ │ │ │ │ ├── body.mdx │ │ │ │ │ ├── bodyUsed.mdx │ │ │ │ │ ├── headers.mdx │ │ │ │ │ ├── json.mdx │ │ │ │ │ ├── method.mdx │ │ │ │ │ ├── text.mdx │ │ │ │ │ └── url.mdx │ │ │ │ ├── Response/ │ │ │ │ │ ├── Response.mdx │ │ │ │ │ ├── prototype/ │ │ │ │ │ │ ├── arrayBuffer.mdx │ │ │ │ │ │ ├── body.mdx │ │ │ │ │ │ ├── bodyUsed.mdx │ │ │ │ │ │ ├── headers.mdx │ │ │ │ │ │ ├── json.mdx │ │ │ │ │ │ ├── ok.mdx │ │ │ │ │ │ ├── status.mdx │ │ │ │ │ │ ├── statusText.mdx │ │ │ │ │ │ ├── text.mdx │ │ │ │ │ │ └── url.mdx │ │ │ │ │ └── redirect.mdx │ │ │ │ ├── RsaHashedImportParams/ │ │ │ │ │ └── RsaHashedImportParams.mdx │ │ │ │ ├── Set/ │ │ │ │ │ ├── @@species.mdx │ │ │ │ │ ├── Set.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── @@iterator.mdx │ │ │ │ │ ├── add.mdx │ │ │ │ │ ├── clear.mdx │ │ │ │ │ ├── delete.mdx │ │ │ │ │ ├── entries.mdx │ │ │ │ │ ├── forEach.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ ├── keys.mdx │ │ │ │ │ ├── size.mdx │ │ │ │ │ └── values.mdx │ │ │ │ ├── String/ │ │ │ │ │ ├── String.mdx │ │ │ │ │ ├── fromCharCode.mdx │ │ │ │ │ ├── fromCodePoint.mdx │ │ │ │ │ ├── prototype/ │ │ │ │ │ │ ├── @@iterator.mdx │ │ │ │ │ │ ├── at.mdx │ │ │ │ │ │ ├── charAt.mdx │ │ │ │ │ │ ├── charCodeAt.mdx │ │ │ │ │ │ ├── codePointAt.mdx │ │ │ │ │ │ ├── concat.mdx │ │ │ │ │ │ ├── endsWith.mdx │ │ │ │ │ │ ├── includes.mdx │ │ │ │ │ │ ├── indexOf.mdx │ │ │ │ │ │ ├── lastIndexOf.mdx │ │ │ │ │ │ ├── length.mdx │ │ │ │ │ │ ├── localeCompare.mdx │ │ │ │ │ │ ├── match.mdx │ │ │ │ │ │ ├── matchAll.mdx │ │ │ │ │ │ ├── padEnd.mdx │ │ │ │ │ │ ├── padStart.mdx │ │ │ │ │ │ ├── repeat.mdx │ │ │ │ │ │ ├── replace.mdx │ │ │ │ │ │ ├── replaceAll.mdx │ │ │ │ │ │ ├── search.mdx │ │ │ │ │ │ ├── slice.mdx │ │ │ │ │ │ ├── split.mdx │ │ │ │ │ │ ├── startsWith.mdx │ │ │ │ │ │ ├── substr.mdx │ │ │ │ │ │ ├── substring.mdx │ │ │ │ │ │ ├── toLocaleLowerCase.mdx │ │ │ │ │ │ ├── toLocaleUpperCase.mdx │ │ │ │ │ │ ├── toLowerCase.mdx │ │ │ │ │ │ ├── toString.mdx │ │ │ │ │ │ ├── toUpperCase.mdx │ │ │ │ │ │ ├── trim.mdx │ │ │ │ │ │ ├── trimEnd.mdx │ │ │ │ │ │ ├── trimStart.mdx │ │ │ │ │ │ └── valueOf.mdx │ │ │ │ │ └── raw.mdx │ │ │ │ ├── SubtleCrypto/ │ │ │ │ │ ├── SubtleCrypto.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── digest.mdx │ │ │ │ │ ├── importKey.mdx │ │ │ │ │ ├── sign.mdx │ │ │ │ │ └── verify.mdx │ │ │ │ ├── Symbol/ │ │ │ │ │ ├── Symbol.mdx │ │ │ │ │ ├── asyncIterator.mdx │ │ │ │ │ ├── for.mdx │ │ │ │ │ ├── hasInstance.mdx │ │ │ │ │ ├── isConcatSpreadable.mdx │ │ │ │ │ ├── iterator.mdx │ │ │ │ │ ├── keyFor.mdx │ │ │ │ │ ├── match.mdx │ │ │ │ │ ├── matchAll.mdx │ │ │ │ │ ├── prototype/ │ │ │ │ │ │ ├── @@toPrimitive.mdx │ │ │ │ │ │ ├── description.mdx │ │ │ │ │ │ ├── toString.mdx │ │ │ │ │ │ └── valueOf.mdx │ │ │ │ │ ├── replace.mdx │ │ │ │ │ ├── search.mdx │ │ │ │ │ ├── species.mdx │ │ │ │ │ ├── split.mdx │ │ │ │ │ ├── toPrimitive.mdx │ │ │ │ │ ├── toStringTag.mdx │ │ │ │ │ └── unscopables.mdx │ │ │ │ ├── SyntaxError/ │ │ │ │ │ └── SyntaxError.mdx │ │ │ │ ├── TextDecoder/ │ │ │ │ │ ├── TextDecoder.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── decode.mdx │ │ │ │ │ ├── encoding.mdx │ │ │ │ │ ├── fatal.mdx │ │ │ │ │ └── ignoreBOM.mdx │ │ │ │ ├── TextEncoder/ │ │ │ │ │ ├── TextEncoder.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── encode.mdx │ │ │ │ │ └── encoding.mdx │ │ │ │ ├── TransformStream/ │ │ │ │ │ ├── TransformStream.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── readable.mdx │ │ │ │ │ └── writable.mdx │ │ │ │ ├── TransformStreamDefaultController/ │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── desiredSize.mdx │ │ │ │ │ ├── enqueue.mdx │ │ │ │ │ ├── error.mdx │ │ │ │ │ └── terminate.mdx │ │ │ │ ├── TypeError/ │ │ │ │ │ └── TypeError.mdx │ │ │ │ ├── URIError/ │ │ │ │ │ └── URIError.mdx │ │ │ │ ├── URL/ │ │ │ │ │ ├── URL.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── hash.mdx │ │ │ │ │ ├── host.mdx │ │ │ │ │ ├── hostname.mdx │ │ │ │ │ ├── href.mdx │ │ │ │ │ ├── origin.mdx │ │ │ │ │ ├── password.mdx │ │ │ │ │ ├── pathname.mdx │ │ │ │ │ ├── port.mdx │ │ │ │ │ ├── protocol.mdx │ │ │ │ │ ├── search.mdx │ │ │ │ │ ├── searchParams.mdx │ │ │ │ │ ├── toJSON.mdx │ │ │ │ │ ├── toString.mdx │ │ │ │ │ └── username.mdx │ │ │ │ ├── URLSearchParams/ │ │ │ │ │ ├── URLSearchParams.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── append.mdx │ │ │ │ │ ├── delete.mdx │ │ │ │ │ ├── entries.mdx │ │ │ │ │ ├── forEach.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ ├── keys.mdx │ │ │ │ │ ├── set.mdx │ │ │ │ │ ├── sort.mdx │ │ │ │ │ ├── toString.mdx │ │ │ │ │ └── values.mdx │ │ │ │ ├── Uint16Array/ │ │ │ │ │ └── Uint16Array.mdx │ │ │ │ ├── Uint32Array/ │ │ │ │ │ └── Uint32Array.mdx │ │ │ │ ├── Uint8Array/ │ │ │ │ │ └── Uint8Array.mdx │ │ │ │ ├── Uint8ClampedArray/ │ │ │ │ │ └── Uint8ClampedArray.mdx │ │ │ │ ├── WeakMap/ │ │ │ │ │ ├── WeakMap.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── delete.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ └── set.mdx │ │ │ │ ├── WeakRef/ │ │ │ │ │ ├── WeakRef.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ └── deref.mdx │ │ │ │ ├── WeakSet/ │ │ │ │ │ ├── WeakSet.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── add.mdx │ │ │ │ │ ├── delete.mdx │ │ │ │ │ └── has.mdx │ │ │ │ ├── WorkerLocation/ │ │ │ │ │ ├── WorkerLocation.mdx │ │ │ │ │ ├── hash.mdx │ │ │ │ │ ├── host.mdx │ │ │ │ │ ├── hostname.mdx │ │ │ │ │ ├── href.mdx │ │ │ │ │ ├── origin.mdx │ │ │ │ │ ├── pathname.mdx │ │ │ │ │ ├── port.mdx │ │ │ │ │ ├── protocol.mdx │ │ │ │ │ ├── search.mdx │ │ │ │ │ └── toString.mdx │ │ │ │ ├── WritableStream/ │ │ │ │ │ ├── WritableStream.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── abort.mdx │ │ │ │ │ ├── getWriter.mdx │ │ │ │ │ └── locked.mdx │ │ │ │ ├── WritableStreamDefaultController/ │ │ │ │ │ └── error.mdx │ │ │ │ ├── WritableStreamDefaultWriter/ │ │ │ │ │ ├── WritableStreamDefaultWriter.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── abort.mdx │ │ │ │ │ ├── close.mdx │ │ │ │ │ ├── closed.mdx │ │ │ │ │ ├── desiredSize.mdx │ │ │ │ │ ├── ready.mdx │ │ │ │ │ ├── releaseLock.mdx │ │ │ │ │ └── write.mdx │ │ │ │ ├── atob.mdx │ │ │ │ ├── btoa.mdx │ │ │ │ ├── clearInterval.mdx │ │ │ │ ├── clearTimeout.mdx │ │ │ │ ├── console/ │ │ │ │ │ ├── assert.mdx │ │ │ │ │ ├── clear.mdx │ │ │ │ │ ├── count.mdx │ │ │ │ │ ├── countReset.mdx │ │ │ │ │ ├── debug.mdx │ │ │ │ │ ├── dir.mdx │ │ │ │ │ ├── dirxml.mdx │ │ │ │ │ ├── error.mdx │ │ │ │ │ ├── group.mdx │ │ │ │ │ ├── groupCollapsed.mdx │ │ │ │ │ ├── groupEnd.mdx │ │ │ │ │ ├── info.mdx │ │ │ │ │ ├── log.mdx │ │ │ │ │ ├── time.mdx │ │ │ │ │ ├── timeEnd.mdx │ │ │ │ │ ├── timeLog.mdx │ │ │ │ │ ├── trace.mdx │ │ │ │ │ └── warn.mdx │ │ │ │ ├── crypto/ │ │ │ │ │ ├── getRandomValues.mdx │ │ │ │ │ ├── randomUUID.mdx │ │ │ │ │ └── subtle.mdx │ │ │ │ ├── decodeURI.mdx │ │ │ │ ├── decodeURIComponent.mdx │ │ │ │ ├── encodeURI.mdx │ │ │ │ ├── encodeURIComponent.mdx │ │ │ │ ├── escape.mdx │ │ │ │ ├── eval.mdx │ │ │ │ ├── fetch.mdx │ │ │ │ ├── globalThis.mdx │ │ │ │ ├── isFinite.mdx │ │ │ │ ├── isNaN.mdx │ │ │ │ ├── location.mdx │ │ │ │ ├── parseFloat.mdx │ │ │ │ ├── parseInt.mdx │ │ │ │ ├── performance/ │ │ │ │ │ ├── now.mdx │ │ │ │ │ └── timeOrigin.mdx │ │ │ │ ├── setInterval.mdx │ │ │ │ ├── setTimeout.mdx │ │ │ │ ├── structuredClone.mdx │ │ │ │ ├── undefined.mdx │ │ │ │ └── unescape.mdx │ │ │ ├── index.mdx │ │ │ ├── kv-store/ │ │ │ │ ├── KVStore/ │ │ │ │ │ ├── KVStore.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── get.mdx │ │ │ │ │ └── put.mdx │ │ │ │ └── KVStoreEntry/ │ │ │ │ └── prototype/ │ │ │ │ ├── arrayBuffer.mdx │ │ │ │ ├── body.mdx │ │ │ │ ├── bodyUsed.mdx │ │ │ │ ├── json.mdx │ │ │ │ └── text.mdx │ │ │ ├── logger/ │ │ │ │ └── Logger/ │ │ │ │ ├── Logger.mdx │ │ │ │ └── prototype/ │ │ │ │ └── log.mdx │ │ │ ├── migration-guide/ │ │ │ │ └── index.mdx │ │ │ └── secret-store/ │ │ │ ├── SecretStore/ │ │ │ │ ├── SecretStore.mdx │ │ │ │ └── prototype/ │ │ │ │ └── get.mdx │ │ │ └── SecretStoreEntry/ │ │ │ └── prototype/ │ │ │ └── plaintext.mdx │ │ ├── version-3.38.4/ │ │ │ ├── acl/ │ │ │ │ └── Acl/ │ │ │ │ ├── open.mdx │ │ │ │ └── prototype/ │ │ │ │ └── lookup.mdx │ │ │ ├── backend/ │ │ │ │ ├── Backend/ │ │ │ │ │ ├── Backend.mdx │ │ │ │ │ ├── exists.mdx │ │ │ │ │ ├── fromName.mdx │ │ │ │ │ ├── health.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── betweenBytesTimeout.mdx │ │ │ │ │ ├── connectTimeout.mdx │ │ │ │ │ ├── firstByteTimeout.mdx │ │ │ │ │ ├── health.mdx │ │ │ │ │ ├── hostOverride.mdx │ │ │ │ │ ├── httpKeepaliveTime.mdx │ │ │ │ │ ├── isDynamic.mdx │ │ │ │ │ ├── isSSL.mdx │ │ │ │ │ ├── name.mdx │ │ │ │ │ ├── port.mdx │ │ │ │ │ ├── target.mdx │ │ │ │ │ ├── tcpKeepalive.mdx │ │ │ │ │ ├── tlsMaxVersion.mdx │ │ │ │ │ ├── tlsMinVersion.mdx │ │ │ │ │ ├── toName.mdx │ │ │ │ │ └── toString.mdx │ │ │ │ ├── allowDynamicBackends.mdx │ │ │ │ ├── enforceExplicitBackends.mdx │ │ │ │ └── setDefaultDynamicBackendConfig.mdx │ │ │ ├── cache/ │ │ │ │ ├── CacheEntry/ │ │ │ │ │ ├── age.mdx │ │ │ │ │ ├── body.mdx │ │ │ │ │ ├── close.mdx │ │ │ │ │ ├── hits.mdx │ │ │ │ │ ├── length.mdx │ │ │ │ │ ├── maxAge.mdx │ │ │ │ │ ├── staleWhileRevalidate.mdx │ │ │ │ │ ├── state.mdx │ │ │ │ │ └── userMetadata.mdx │ │ │ │ ├── CacheState/ │ │ │ │ │ ├── found.mdx │ │ │ │ │ ├── mustInsertOrUpdate.mdx │ │ │ │ │ ├── stale.mdx │ │ │ │ │ └── usable.mdx │ │ │ │ ├── CoreCache/ │ │ │ │ │ ├── insert.mdx │ │ │ │ │ ├── lookup.mdx │ │ │ │ │ └── transactionLookup.mdx │ │ │ │ ├── SimpleCache/ │ │ │ │ │ ├── SimpleCache.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── getOrSet.mdx │ │ │ │ │ └── purge.mdx │ │ │ │ ├── SimpleCacheEntry/ │ │ │ │ │ ├── arrayBuffer.mdx │ │ │ │ │ ├── body.mdx │ │ │ │ │ ├── bodyUsed.mdx │ │ │ │ │ ├── json.mdx │ │ │ │ │ └── text.mdx │ │ │ │ └── TransactionCacheEntry/ │ │ │ │ ├── age.mdx │ │ │ │ ├── body.mdx │ │ │ │ ├── cancel.mdx │ │ │ │ ├── close.mdx │ │ │ │ ├── hits.mdx │ │ │ │ ├── insert.mdx │ │ │ │ ├── insertAndStreamBack.mdx │ │ │ │ ├── length.mdx │ │ │ │ ├── maxAge.mdx │ │ │ │ ├── staleWhileRevalidate.mdx │ │ │ │ ├── state.mdx │ │ │ │ ├── update.mdx │ │ │ │ └── userMetadata.mdx │ │ │ ├── cache-override/ │ │ │ │ └── CacheOverride/ │ │ │ │ └── CacheOverride.mdx │ │ │ ├── compute/ │ │ │ │ ├── purgeSurrogateKey.mdx │ │ │ │ └── vCpuTime.mdx │ │ │ ├── config-store/ │ │ │ │ └── ConfigStore/ │ │ │ │ ├── ConfigStore.mdx │ │ │ │ └── prototype/ │ │ │ │ └── get.mdx │ │ │ ├── device/ │ │ │ │ └── Device/ │ │ │ │ ├── lookup.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── brand.mdx │ │ │ │ ├── hardwareType.mdx │ │ │ │ ├── isDesktop.mdx │ │ │ │ ├── isGameConsole.mdx │ │ │ │ ├── isMediaPlayer.mdx │ │ │ │ ├── isMobile.mdx │ │ │ │ ├── isSmartTV.mdx │ │ │ │ ├── isTablet.mdx │ │ │ │ ├── isTouchscreen.mdx │ │ │ │ ├── model.mdx │ │ │ │ ├── name.mdx │ │ │ │ └── toJSON.mdx │ │ │ ├── dictionary/ │ │ │ │ └── Dictionary/ │ │ │ │ ├── Dictionary.mdx │ │ │ │ └── prototype/ │ │ │ │ └── get.mdx │ │ │ ├── edge-rate-limiter/ │ │ │ │ ├── EdgeRateLimiter/ │ │ │ │ │ ├── EdgeRateLimiter.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ └── checkRate.mdx │ │ │ │ ├── PenaltyBox/ │ │ │ │ │ ├── PenaltyBox.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── add.mdx │ │ │ │ │ └── has.mdx │ │ │ │ └── RateCounter/ │ │ │ │ ├── RateCounter.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── increment.mdx │ │ │ │ ├── lookupCount.mdx │ │ │ │ └── lookupRate.mdx │ │ │ ├── env/ │ │ │ │ └── env.mdx │ │ │ ├── experimental/ │ │ │ │ ├── allowDynamicBackends.mdx │ │ │ │ ├── includeBytes.mdx │ │ │ │ ├── mapAndLogError.mdx │ │ │ │ ├── mapError.mdx │ │ │ │ └── sdkVersion.mdx │ │ │ ├── fanout/ │ │ │ │ └── createFanoutHandoff.mdx │ │ │ ├── geolocation/ │ │ │ │ └── getGeolocationForIpAddress.mdx │ │ │ ├── globals/ │ │ │ │ ├── AggregrateError/ │ │ │ │ │ └── AggregrateError.mdx │ │ │ │ ├── Array/ │ │ │ │ │ ├── @@species.mdx │ │ │ │ │ ├── Array.mdx │ │ │ │ │ ├── from.mdx │ │ │ │ │ ├── isArray.mdx │ │ │ │ │ ├── of.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── @@iterator.mdx │ │ │ │ │ ├── @@unscopables.mdx │ │ │ │ │ ├── at.mdx │ │ │ │ │ ├── concat.mdx │ │ │ │ │ ├── copyWithin.mdx │ │ │ │ │ ├── entries.mdx │ │ │ │ │ ├── every.mdx │ │ │ │ │ ├── fill.mdx │ │ │ │ │ ├── filter.mdx │ │ │ │ │ ├── find.mdx │ │ │ │ │ ├── findIndex.mdx │ │ │ │ │ ├── flat.mdx │ │ │ │ │ ├── flatMap.mdx │ │ │ │ │ ├── forEach.mdx │ │ │ │ │ ├── includes.mdx │ │ │ │ │ ├── indexOf.mdx │ │ │ │ │ ├── join.mdx │ │ │ │ │ ├── keys.mdx │ │ │ │ │ ├── lastIndexOf.mdx │ │ │ │ │ ├── length.mdx │ │ │ │ │ ├── map.mdx │ │ │ │ │ ├── pop.mdx │ │ │ │ │ ├── push.mdx │ │ │ │ │ ├── reduce.mdx │ │ │ │ │ ├── reduceRight.mdx │ │ │ │ │ ├── reverse.mdx │ │ │ │ │ ├── shift.mdx │ │ │ │ │ ├── slice.mdx │ │ │ │ │ ├── some.mdx │ │ │ │ │ ├── sort.mdx │ │ │ │ │ ├── splice.mdx │ │ │ │ │ ├── toLocaleString.mdx │ │ │ │ │ ├── toString.mdx │ │ │ │ │ ├── unshift.mdx │ │ │ │ │ └── values.mdx │ │ │ │ ├── ArrayBuffer/ │ │ │ │ │ ├── @@species.mdx │ │ │ │ │ ├── ArrayBuffer.mdx │ │ │ │ │ ├── isView.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── byteLength.mdx │ │ │ │ │ └── slice.mdx │ │ │ │ ├── BigInt/ │ │ │ │ │ ├── BigInt.mdx │ │ │ │ │ ├── asIntN.mdx │ │ │ │ │ ├── asUintN.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── toLocaleString.mdx │ │ │ │ │ ├── toString.mdx │ │ │ │ │ └── valueOf.mdx │ │ │ │ ├── BigInt64Array/ │ │ │ │ │ └── BigInt64Array.mdx │ │ │ │ ├── BigUint64Array/ │ │ │ │ │ └── BigUint64Array.mdx │ │ │ │ ├── Blob/ │ │ │ │ │ ├── Blob.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── arrayBuffer.mdx │ │ │ │ │ ├── size.mdx │ │ │ │ │ ├── slice.mdx │ │ │ │ │ ├── stream.mdx │ │ │ │ │ ├── text.mdx │ │ │ │ │ └── type.mdx │ │ │ │ ├── Boolean/ │ │ │ │ │ ├── Boolean.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── toString.mdx │ │ │ │ │ └── valueOf.mdx │ │ │ │ ├── ByteLengthQueuingStrategy/ │ │ │ │ │ ├── ByteLengthQueuingStrategy.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ └── size.mdx │ │ │ │ ├── CompressionStream/ │ │ │ │ │ ├── CompressionStream.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── readable.mdx │ │ │ │ │ └── writable.mdx │ │ │ │ ├── CryptoKey/ │ │ │ │ │ ├── CryptoKey.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── algorithm.mdx │ │ │ │ │ ├── extractable.mdx │ │ │ │ │ ├── type.mdx │ │ │ │ │ └── usages.mdx │ │ │ │ ├── DOMException/ │ │ │ │ │ ├── DOMException.mdx │ │ │ │ │ ├── code.mdx │ │ │ │ │ ├── message.mdx │ │ │ │ │ └── name.mdx │ │ │ │ ├── DataView/ │ │ │ │ │ ├── DataView.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── buffer.mdx │ │ │ │ │ ├── byteLength.mdx │ │ │ │ │ ├── byteOffset.mdx │ │ │ │ │ ├── getBigInt64.mdx │ │ │ │ │ ├── getBigUint64.mdx │ │ │ │ │ ├── getFloat32.mdx │ │ │ │ │ ├── getFloat64.mdx │ │ │ │ │ ├── getInt16.mdx │ │ │ │ │ ├── getInt32.mdx │ │ │ │ │ ├── getInt8.mdx │ │ │ │ │ ├── getUint16.mdx │ │ │ │ │ ├── getUint32.mdx │ │ │ │ │ ├── getUint8.mdx │ │ │ │ │ ├── setBigInt64.mdx │ │ │ │ │ ├── setBigUint64.mdx │ │ │ │ │ ├── setFloat32.mdx │ │ │ │ │ ├── setFloat64.mdx │ │ │ │ │ ├── setInt16.mdx │ │ │ │ │ ├── setInt32.mdx │ │ │ │ │ ├── setInt8.mdx │ │ │ │ │ ├── setUint16.mdx │ │ │ │ │ ├── setUint32.mdx │ │ │ │ │ └── setUint8.mdx │ │ │ │ ├── Date/ │ │ │ │ │ ├── Date.mdx │ │ │ │ │ ├── UTC.mdx │ │ │ │ │ ├── now.mdx │ │ │ │ │ ├── parse.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── @@toPrimitive.mdx │ │ │ │ │ ├── getDate.mdx │ │ │ │ │ ├── getDay.mdx │ │ │ │ │ ├── getFullYear.mdx │ │ │ │ │ ├── getHours.mdx │ │ │ │ │ ├── getMilliseconds.mdx │ │ │ │ │ ├── getMinutes.mdx │ │ │ │ │ ├── getMonth.mdx │ │ │ │ │ ├── getSeconds.mdx │ │ │ │ │ ├── getTime.mdx │ │ │ │ │ ├── getTimezoneOffset.mdx │ │ │ │ │ ├── getUTCDate.mdx │ │ │ │ │ ├── getUTCDay.mdx │ │ │ │ │ ├── getUTCFullYear.mdx │ │ │ │ │ ├── getUTCHours.mdx │ │ │ │ │ ├── getUTCMilliseconds.mdx │ │ │ │ │ ├── getUTCMinutes.mdx │ │ │ │ │ ├── getUTCMonth.mdx │ │ │ │ │ ├── getUTCSeconds.mdx │ │ │ │ │ ├── getYear.mdx │ │ │ │ │ ├── setDate.mdx │ │ │ │ │ ├── setFullYear.mdx │ │ │ │ │ ├── setHours.mdx │ │ │ │ │ ├── setMilliseconds.mdx │ │ │ │ │ ├── setMinutes.mdx │ │ │ │ │ ├── setMonth.mdx │ │ │ │ │ ├── setSeconds.mdx │ │ │ │ │ ├── setTime.mdx │ │ │ │ │ ├── setUTCDate.mdx │ │ │ │ │ ├── setUTCFullYear.mdx │ │ │ │ │ ├── setUTCHours.mdx │ │ │ │ │ ├── setUTCMilliseconds.mdx │ │ │ │ │ ├── setUTCMinutes.mdx │ │ │ │ │ ├── setUTCMonth.mdx │ │ │ │ │ ├── setUTCSeconds.mdx │ │ │ │ │ ├── setYear.mdx │ │ │ │ │ ├── toDateString.mdx │ │ │ │ │ ├── toISOString.mdx │ │ │ │ │ ├── toJSON.mdx │ │ │ │ │ ├── toLocaleDateString.mdx │ │ │ │ │ ├── toLocaleString.mdx │ │ │ │ │ ├── toLocaleTimeString.mdx │ │ │ │ │ ├── toString.mdx │ │ │ │ │ ├── toTimeString.mdx │ │ │ │ │ ├── toUTCString.mdx │ │ │ │ │ └── valueOf.mdx │ │ │ │ ├── DecompressionStream/ │ │ │ │ │ ├── DecompressionStream.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── readable.mdx │ │ │ │ │ └── writable.mdx │ │ │ │ ├── EcKeyImportParams/ │ │ │ │ │ └── EcKeyImportParams.mdx │ │ │ │ ├── EcdsaParams/ │ │ │ │ │ └── EcdsaParams.mdx │ │ │ │ ├── Error/ │ │ │ │ │ ├── Error.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── cause.mdx │ │ │ │ │ ├── message.mdx │ │ │ │ │ ├── name.mdx │ │ │ │ │ └── toString.mdx │ │ │ │ ├── EvalError/ │ │ │ │ │ └── EvalError.mdx │ │ │ │ ├── FetchEvent/ │ │ │ │ │ ├── FetchEvent.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── respondWith.mdx │ │ │ │ │ ├── sendEarlyHints.mdx │ │ │ │ │ └── waitUntil.mdx │ │ │ │ ├── FinalizationRegistry/ │ │ │ │ │ ├── FinalizationRegistry.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── register.mdx │ │ │ │ │ └── unregister.mdx │ │ │ │ ├── Float32Array/ │ │ │ │ │ └── Float32Array.mdx │ │ │ │ ├── Float64Array/ │ │ │ │ │ └── Float64Array.mdx │ │ │ │ ├── FormData/ │ │ │ │ │ ├── FormData.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── append.mdx │ │ │ │ │ ├── delete.mdx │ │ │ │ │ ├── entries.mdx │ │ │ │ │ ├── forEach.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── getAll.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ ├── keys.mdx │ │ │ │ │ ├── set.mdx │ │ │ │ │ └── values.mdx │ │ │ │ ├── Function/ │ │ │ │ │ ├── Function.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── apply.mdx │ │ │ │ │ ├── bind.mdx │ │ │ │ │ ├── call.mdx │ │ │ │ │ ├── index.mdx │ │ │ │ │ ├── length.mdx │ │ │ │ │ ├── name.mdx │ │ │ │ │ └── toString.mdx │ │ │ │ ├── Headers/ │ │ │ │ │ ├── Headers.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── append.mdx │ │ │ │ │ ├── delete.mdx │ │ │ │ │ ├── entries.mdx │ │ │ │ │ ├── forEach.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── getSetCookie.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ ├── keys.mdx │ │ │ │ │ ├── set.mdx │ │ │ │ │ └── values.mdx │ │ │ │ ├── HmacImportParams/ │ │ │ │ │ └── HmacImportParams.mdx │ │ │ │ ├── Infinity.mdx │ │ │ │ ├── Int16Array/ │ │ │ │ │ └── Int16Array.mdx │ │ │ │ ├── Int32Array/ │ │ │ │ │ └── Int32Array.mdx │ │ │ │ ├── Int8Array/ │ │ │ │ │ └── Int8Array.mdx │ │ │ │ ├── JSON/ │ │ │ │ │ ├── parse.mdx │ │ │ │ │ └── stringify.mdx │ │ │ │ ├── Map/ │ │ │ │ │ ├── @@species.mdx │ │ │ │ │ ├── Map.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── @@iterator.mdx │ │ │ │ │ ├── clear.mdx │ │ │ │ │ ├── delete.mdx │ │ │ │ │ ├── entries.mdx │ │ │ │ │ ├── forEach.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ ├── keys.mdx │ │ │ │ │ ├── set.mdx │ │ │ │ │ ├── size.mdx │ │ │ │ │ └── values.mdx │ │ │ │ ├── Math/ │ │ │ │ │ ├── E.mdx │ │ │ │ │ ├── LN10.mdx │ │ │ │ │ ├── LN2.mdx │ │ │ │ │ ├── LOG10e.mdx │ │ │ │ │ ├── LOG2e.mdx │ │ │ │ │ ├── PI.mdx │ │ │ │ │ ├── SQRT1_2.mdx │ │ │ │ │ ├── SQRT2.mdx │ │ │ │ │ ├── abs.mdx │ │ │ │ │ ├── acos.mdx │ │ │ │ │ ├── acosh.mdx │ │ │ │ │ ├── asin.mdx │ │ │ │ │ ├── asinh.mdx │ │ │ │ │ ├── atan.mdx │ │ │ │ │ ├── atan2.mdx │ │ │ │ │ ├── atanh.mdx │ │ │ │ │ ├── cbrt.mdx │ │ │ │ │ ├── ceil.mdx │ │ │ │ │ ├── clz32.mdx │ │ │ │ │ ├── cos.mdx │ │ │ │ │ ├── cosh.mdx │ │ │ │ │ ├── exp.mdx │ │ │ │ │ ├── expm1.mdx │ │ │ │ │ ├── floor.mdx │ │ │ │ │ ├── fround.mdx │ │ │ │ │ ├── hypot.mdx │ │ │ │ │ ├── imul.mdx │ │ │ │ │ ├── log.mdx │ │ │ │ │ ├── log10.mdx │ │ │ │ │ ├── log1p.mdx │ │ │ │ │ ├── log2.mdx │ │ │ │ │ ├── max.mdx │ │ │ │ │ ├── min.mdx │ │ │ │ │ ├── pow.mdx │ │ │ │ │ ├── random.mdx │ │ │ │ │ ├── round.mdx │ │ │ │ │ ├── sign.mdx │ │ │ │ │ ├── sin.mdx │ │ │ │ │ ├── sinh.mdx │ │ │ │ │ ├── sqrt.mdx │ │ │ │ │ ├── tan.mdx │ │ │ │ │ ├── tanh.mdx │ │ │ │ │ └── trunc.mdx │ │ │ │ ├── NaN.mdx │ │ │ │ ├── Number/ │ │ │ │ │ ├── MAX_SAFE_INTEGER.mdx │ │ │ │ │ ├── MAX_VALUE.mdx │ │ │ │ │ ├── MIN_SAFE_INTEGER.mdx │ │ │ │ │ ├── MIN_VALUE.mdx │ │ │ │ │ ├── NEGATIVE_INFINITY.mdx │ │ │ │ │ ├── NaN.mdx │ │ │ │ │ ├── Number.mdx │ │ │ │ │ ├── POSITIVE_INFINITY.mdx │ │ │ │ │ ├── epsilon.mdx │ │ │ │ │ ├── isFinite.mdx │ │ │ │ │ ├── isInteger.mdx │ │ │ │ │ ├── isNaN.mdx │ │ │ │ │ ├── isSafeInteger.mdx │ │ │ │ │ ├── parseFloat.mdx │ │ │ │ │ ├── parseInt.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── toExponential.mdx │ │ │ │ │ ├── toFixed.mdx │ │ │ │ │ ├── toLocaleString.mdx │ │ │ │ │ ├── toPrecision.mdx │ │ │ │ │ ├── toString.mdx │ │ │ │ │ └── valueOf.mdx │ │ │ │ ├── Object/ │ │ │ │ │ ├── Object.mdx │ │ │ │ │ ├── assign.mdx │ │ │ │ │ ├── create.mdx │ │ │ │ │ ├── defineProperties.mdx │ │ │ │ │ ├── defineProperty.mdx │ │ │ │ │ ├── entries.mdx │ │ │ │ │ ├── freeze.mdx │ │ │ │ │ ├── fromEntries.mdx │ │ │ │ │ ├── getOwnPropertyDescriptor.mdx │ │ │ │ │ ├── getOwnPropertyDescriptors.mdx │ │ │ │ │ ├── getOwnPropertyNames.mdx │ │ │ │ │ ├── getOwnPropertySymbols.mdx │ │ │ │ │ ├── getPrototypeOf.mdx │ │ │ │ │ ├── hasOwn.mdx │ │ │ │ │ ├── is.mdx │ │ │ │ │ ├── isExtensible.mdx │ │ │ │ │ ├── isFrozen.mdx │ │ │ │ │ ├── isSealed.mdx │ │ │ │ │ ├── keys.mdx │ │ │ │ │ ├── preventExtensions.mdx │ │ │ │ │ ├── prototype/ │ │ │ │ │ │ ├── constructor.mdx │ │ │ │ │ │ ├── hasOwnProperty.mdx │ │ │ │ │ │ ├── isPrototypeOf.mdx │ │ │ │ │ │ ├── propertyIsEnumerable.mdx │ │ │ │ │ │ ├── toLocaleString.mdx │ │ │ │ │ │ ├── toString.mdx │ │ │ │ │ │ └── valueOf.mdx │ │ │ │ │ ├── seal.mdx │ │ │ │ │ ├── setPrototypeOf.mdx │ │ │ │ │ └── values.mdx │ │ │ │ ├── Promise/ │ │ │ │ │ ├── @@species.mdx │ │ │ │ │ ├── Promise.mdx │ │ │ │ │ ├── all.mdx │ │ │ │ │ ├── allSettled.mdx │ │ │ │ │ ├── any.mdx │ │ │ │ │ ├── prototype/ │ │ │ │ │ │ ├── catch.mdx │ │ │ │ │ │ ├── finally.mdx │ │ │ │ │ │ └── then.mdx │ │ │ │ │ ├── race.mdx │ │ │ │ │ ├── reject.mdx │ │ │ │ │ └── resolve.mdx │ │ │ │ ├── Proxy/ │ │ │ │ │ ├── Proxy.mdx │ │ │ │ │ ├── proxy/ │ │ │ │ │ │ ├── apply.mdx │ │ │ │ │ │ ├── construct.mdx │ │ │ │ │ │ ├── defineProperty.mdx │ │ │ │ │ │ ├── deleteProperty.mdx │ │ │ │ │ │ ├── get.mdx │ │ │ │ │ │ ├── getOwnPropertyDescriptor.mdx │ │ │ │ │ │ ├── getPrototypeOf.mdx │ │ │ │ │ │ ├── has.mdx │ │ │ │ │ │ ├── isExtensible.mdx │ │ │ │ │ │ ├── ownKeys.mdx │ │ │ │ │ │ ├── preventExtensions.mdx │ │ │ │ │ │ ├── set.mdx │ │ │ │ │ │ └── setPrototypeOf.mdx │ │ │ │ │ └── revocable.mdx │ │ │ │ ├── RangeError/ │ │ │ │ │ └── RangeError.mdx │ │ │ │ ├── ReadableByteStreamController/ │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── byobRequest.mdx │ │ │ │ │ ├── close.mdx │ │ │ │ │ ├── desiredSize.mdx │ │ │ │ │ ├── enqueue.mdx │ │ │ │ │ └── error.mdx │ │ │ │ ├── ReadableStream/ │ │ │ │ │ ├── ReadableStream.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── cancel.mdx │ │ │ │ │ ├── getReader.mdx │ │ │ │ │ ├── locked.mdx │ │ │ │ │ ├── pipeThrough.mdx │ │ │ │ │ ├── pipeTo.mdx │ │ │ │ │ └── tee.mdx │ │ │ │ ├── ReadableStreamBYOBReader/ │ │ │ │ │ ├── ReadableStreamBYOBReader.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── cancel.mdx │ │ │ │ │ ├── closed.mdx │ │ │ │ │ ├── read.mdx │ │ │ │ │ └── releaseLock.mdx │ │ │ │ ├── ReadableStreamBYOBRequest/ │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── respond.mdx │ │ │ │ │ ├── respondWithNewView.mdx │ │ │ │ │ └── view.mdx │ │ │ │ ├── ReadableStreamDefaultController/ │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── close.mdx │ │ │ │ │ ├── desiredSize.mdx │ │ │ │ │ ├── enqueue.mdx │ │ │ │ │ └── error.mdx │ │ │ │ ├── ReadableStreamDefaultReader/ │ │ │ │ │ ├── ReadableStreamDefaultReader.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── cancel.mdx │ │ │ │ │ ├── closed.mdx │ │ │ │ │ ├── read.mdx │ │ │ │ │ └── releaseLock.mdx │ │ │ │ ├── ReferenceError/ │ │ │ │ │ └── ReferenceError.mdx │ │ │ │ ├── Reflect/ │ │ │ │ │ ├── apply.mdx │ │ │ │ │ ├── construct.mdx │ │ │ │ │ ├── defineProperty.mdx │ │ │ │ │ ├── deleteProperty.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── getOwnPropertyDescriptor.mdx │ │ │ │ │ ├── getPrototypeOf.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ ├── isExtensible.mdx │ │ │ │ │ ├── ownKeys.mdx │ │ │ │ │ ├── preventExtensions.mdx │ │ │ │ │ ├── set.mdx │ │ │ │ │ └── setPrototypeOf.mdx │ │ │ │ ├── Request/ │ │ │ │ │ ├── Request.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── arrayBuffer.mdx │ │ │ │ │ ├── blob.mdx │ │ │ │ │ ├── body.mdx │ │ │ │ │ ├── bodyUsed.mdx │ │ │ │ │ ├── clone.mdx │ │ │ │ │ ├── formData.mdx │ │ │ │ │ ├── headers.mdx │ │ │ │ │ ├── json.mdx │ │ │ │ │ ├── method.mdx │ │ │ │ │ ├── setManualFramingHeaders.mdx │ │ │ │ │ ├── text.mdx │ │ │ │ │ └── url.mdx │ │ │ │ ├── Response/ │ │ │ │ │ ├── Response.mdx │ │ │ │ │ ├── prototype/ │ │ │ │ │ │ ├── arrayBuffer.mdx │ │ │ │ │ │ ├── blob.mdx │ │ │ │ │ │ ├── body.mdx │ │ │ │ │ │ ├── bodyUsed.mdx │ │ │ │ │ │ ├── formData.mdx │ │ │ │ │ │ ├── headers.mdx │ │ │ │ │ │ ├── ip.mdx │ │ │ │ │ │ ├── json.mdx │ │ │ │ │ │ ├── ok.mdx │ │ │ │ │ │ ├── port.mdx │ │ │ │ │ │ ├── setManualFramingHeaders.mdx │ │ │ │ │ │ ├── status.mdx │ │ │ │ │ │ ├── statusText.mdx │ │ │ │ │ │ ├── text.mdx │ │ │ │ │ │ └── url.mdx │ │ │ │ │ └── redirect.mdx │ │ │ │ ├── RsaHashedImportParams/ │ │ │ │ │ └── RsaHashedImportParams.mdx │ │ │ │ ├── Set/ │ │ │ │ │ ├── @@species.mdx │ │ │ │ │ ├── Set.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── @@iterator.mdx │ │ │ │ │ ├── add.mdx │ │ │ │ │ ├── clear.mdx │ │ │ │ │ ├── delete.mdx │ │ │ │ │ ├── entries.mdx │ │ │ │ │ ├── forEach.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ ├── keys.mdx │ │ │ │ │ ├── size.mdx │ │ │ │ │ └── values.mdx │ │ │ │ ├── String/ │ │ │ │ │ ├── String.mdx │ │ │ │ │ ├── fromCharCode.mdx │ │ │ │ │ ├── fromCodePoint.mdx │ │ │ │ │ ├── prototype/ │ │ │ │ │ │ ├── @@iterator.mdx │ │ │ │ │ │ ├── at.mdx │ │ │ │ │ │ ├── charAt.mdx │ │ │ │ │ │ ├── charCodeAt.mdx │ │ │ │ │ │ ├── codePointAt.mdx │ │ │ │ │ │ ├── concat.mdx │ │ │ │ │ │ ├── endsWith.mdx │ │ │ │ │ │ ├── includes.mdx │ │ │ │ │ │ ├── indexOf.mdx │ │ │ │ │ │ ├── lastIndexOf.mdx │ │ │ │ │ │ ├── length.mdx │ │ │ │ │ │ ├── localeCompare.mdx │ │ │ │ │ │ ├── match.mdx │ │ │ │ │ │ ├── matchAll.mdx │ │ │ │ │ │ ├── padEnd.mdx │ │ │ │ │ │ ├── padStart.mdx │ │ │ │ │ │ ├── repeat.mdx │ │ │ │ │ │ ├── replace.mdx │ │ │ │ │ │ ├── replaceAll.mdx │ │ │ │ │ │ ├── search.mdx │ │ │ │ │ │ ├── slice.mdx │ │ │ │ │ │ ├── split.mdx │ │ │ │ │ │ ├── startsWith.mdx │ │ │ │ │ │ ├── substr.mdx │ │ │ │ │ │ ├── substring.mdx │ │ │ │ │ │ ├── toLocaleLowerCase.mdx │ │ │ │ │ │ ├── toLocaleUpperCase.mdx │ │ │ │ │ │ ├── toLowerCase.mdx │ │ │ │ │ │ ├── toString.mdx │ │ │ │ │ │ ├── toUpperCase.mdx │ │ │ │ │ │ ├── trim.mdx │ │ │ │ │ │ ├── trimEnd.mdx │ │ │ │ │ │ ├── trimStart.mdx │ │ │ │ │ │ └── valueOf.mdx │ │ │ │ │ └── raw.mdx │ │ │ │ ├── SubtleCrypto/ │ │ │ │ │ ├── SubtleCrypto.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── digest.mdx │ │ │ │ │ ├── importKey.mdx │ │ │ │ │ ├── sign.mdx │ │ │ │ │ └── verify.mdx │ │ │ │ ├── Symbol/ │ │ │ │ │ ├── Symbol.mdx │ │ │ │ │ ├── asyncIterator.mdx │ │ │ │ │ ├── for.mdx │ │ │ │ │ ├── hasInstance.mdx │ │ │ │ │ ├── isConcatSpreadable.mdx │ │ │ │ │ ├── iterator.mdx │ │ │ │ │ ├── keyFor.mdx │ │ │ │ │ ├── match.mdx │ │ │ │ │ ├── matchAll.mdx │ │ │ │ │ ├── prototype/ │ │ │ │ │ │ ├── @@toPrimitive.mdx │ │ │ │ │ │ ├── description.mdx │ │ │ │ │ │ ├── toString.mdx │ │ │ │ │ │ └── valueOf.mdx │ │ │ │ │ ├── replace.mdx │ │ │ │ │ ├── search.mdx │ │ │ │ │ ├── species.mdx │ │ │ │ │ ├── split.mdx │ │ │ │ │ ├── toPrimitive.mdx │ │ │ │ │ ├── toStringTag.mdx │ │ │ │ │ └── unscopables.mdx │ │ │ │ ├── SyntaxError/ │ │ │ │ │ └── SyntaxError.mdx │ │ │ │ ├── TextDecoder/ │ │ │ │ │ ├── TextDecoder.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── decode.mdx │ │ │ │ │ ├── encoding.mdx │ │ │ │ │ ├── fatal.mdx │ │ │ │ │ └── ignoreBOM.mdx │ │ │ │ ├── TextEncoder/ │ │ │ │ │ ├── TextEncoder.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── encode.mdx │ │ │ │ │ └── encoding.mdx │ │ │ │ ├── TransformStream/ │ │ │ │ │ ├── TransformStream.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── readable.mdx │ │ │ │ │ └── writable.mdx │ │ │ │ ├── TransformStreamDefaultController/ │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── desiredSize.mdx │ │ │ │ │ ├── enqueue.mdx │ │ │ │ │ ├── error.mdx │ │ │ │ │ └── terminate.mdx │ │ │ │ ├── TypeError/ │ │ │ │ │ └── TypeError.mdx │ │ │ │ ├── URIError/ │ │ │ │ │ └── URIError.mdx │ │ │ │ ├── URL/ │ │ │ │ │ ├── URL.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── hash.mdx │ │ │ │ │ ├── host.mdx │ │ │ │ │ ├── hostname.mdx │ │ │ │ │ ├── href.mdx │ │ │ │ │ ├── origin.mdx │ │ │ │ │ ├── password.mdx │ │ │ │ │ ├── pathname.mdx │ │ │ │ │ ├── port.mdx │ │ │ │ │ ├── protocol.mdx │ │ │ │ │ ├── search.mdx │ │ │ │ │ ├── searchParams.mdx │ │ │ │ │ ├── toJSON.mdx │ │ │ │ │ ├── toString.mdx │ │ │ │ │ └── username.mdx │ │ │ │ ├── URLSearchParams/ │ │ │ │ │ ├── URLSearchParams.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── append.mdx │ │ │ │ │ ├── delete.mdx │ │ │ │ │ ├── entries.mdx │ │ │ │ │ ├── forEach.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ ├── keys.mdx │ │ │ │ │ ├── set.mdx │ │ │ │ │ ├── sort.mdx │ │ │ │ │ ├── toString.mdx │ │ │ │ │ └── values.mdx │ │ │ │ ├── Uint16Array/ │ │ │ │ │ └── Uint16Array.mdx │ │ │ │ ├── Uint32Array/ │ │ │ │ │ └── Uint32Array.mdx │ │ │ │ ├── Uint8Array/ │ │ │ │ │ └── Uint8Array.mdx │ │ │ │ ├── Uint8ClampedArray/ │ │ │ │ │ └── Uint8ClampedArray.mdx │ │ │ │ ├── WeakMap/ │ │ │ │ │ ├── WeakMap.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── delete.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ └── set.mdx │ │ │ │ ├── WeakRef/ │ │ │ │ │ ├── WeakRef.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ └── deref.mdx │ │ │ │ ├── WeakSet/ │ │ │ │ │ ├── WeakSet.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── add.mdx │ │ │ │ │ ├── delete.mdx │ │ │ │ │ └── has.mdx │ │ │ │ ├── WorkerLocation/ │ │ │ │ │ ├── WorkerLocation.mdx │ │ │ │ │ ├── hash.mdx │ │ │ │ │ ├── host.mdx │ │ │ │ │ ├── hostname.mdx │ │ │ │ │ ├── href.mdx │ │ │ │ │ ├── origin.mdx │ │ │ │ │ ├── pathname.mdx │ │ │ │ │ ├── port.mdx │ │ │ │ │ ├── protocol.mdx │ │ │ │ │ ├── search.mdx │ │ │ │ │ └── toString.mdx │ │ │ │ ├── WritableStream/ │ │ │ │ │ ├── WritableStream.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── abort.mdx │ │ │ │ │ ├── getWriter.mdx │ │ │ │ │ └── locked.mdx │ │ │ │ ├── WritableStreamDefaultController/ │ │ │ │ │ └── error.mdx │ │ │ │ ├── WritableStreamDefaultWriter/ │ │ │ │ │ ├── WritableStreamDefaultWriter.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── abort.mdx │ │ │ │ │ ├── close.mdx │ │ │ │ │ ├── closed.mdx │ │ │ │ │ ├── desiredSize.mdx │ │ │ │ │ ├── ready.mdx │ │ │ │ │ ├── releaseLock.mdx │ │ │ │ │ └── write.mdx │ │ │ │ ├── atob.mdx │ │ │ │ ├── btoa.mdx │ │ │ │ ├── clearInterval.mdx │ │ │ │ ├── clearTimeout.mdx │ │ │ │ ├── console/ │ │ │ │ │ ├── assert.mdx │ │ │ │ │ ├── clear.mdx │ │ │ │ │ ├── count.mdx │ │ │ │ │ ├── countReset.mdx │ │ │ │ │ ├── debug.mdx │ │ │ │ │ ├── dir.mdx │ │ │ │ │ ├── dirxml.mdx │ │ │ │ │ ├── error.mdx │ │ │ │ │ ├── group.mdx │ │ │ │ │ ├── groupCollapsed.mdx │ │ │ │ │ ├── groupEnd.mdx │ │ │ │ │ ├── info.mdx │ │ │ │ │ ├── log.mdx │ │ │ │ │ ├── time.mdx │ │ │ │ │ ├── timeEnd.mdx │ │ │ │ │ ├── timeLog.mdx │ │ │ │ │ ├── trace.mdx │ │ │ │ │ └── warn.mdx │ │ │ │ ├── crypto/ │ │ │ │ │ ├── getRandomValues.mdx │ │ │ │ │ ├── randomUUID.mdx │ │ │ │ │ └── subtle.mdx │ │ │ │ ├── decodeURI.mdx │ │ │ │ ├── decodeURIComponent.mdx │ │ │ │ ├── encodeURI.mdx │ │ │ │ ├── encodeURIComponent.mdx │ │ │ │ ├── escape.mdx │ │ │ │ ├── eval.mdx │ │ │ │ ├── fetch.mdx │ │ │ │ ├── globalThis.mdx │ │ │ │ ├── isFinite.mdx │ │ │ │ ├── isNaN.mdx │ │ │ │ ├── location.mdx │ │ │ │ ├── parseFloat.mdx │ │ │ │ ├── parseInt.mdx │ │ │ │ ├── performance/ │ │ │ │ │ ├── now.mdx │ │ │ │ │ └── timeOrigin.mdx │ │ │ │ ├── setInterval.mdx │ │ │ │ ├── setTimeout.mdx │ │ │ │ ├── structuredClone.mdx │ │ │ │ ├── undefined.mdx │ │ │ │ └── unescape.mdx │ │ │ ├── html-rewriter/ │ │ │ │ ├── Element/ │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── after.mdx │ │ │ │ │ ├── append.mdx │ │ │ │ │ ├── before.mdx │ │ │ │ │ ├── hasAttribute.mdx │ │ │ │ │ ├── prepend.mdx │ │ │ │ │ ├── removeAttribute.mdx │ │ │ │ │ ├── replaceChildren.mdx │ │ │ │ │ ├── replaceWith.mdx │ │ │ │ │ ├── selector.mdx │ │ │ │ │ ├── setAttribute.mdx │ │ │ │ │ └── tag.mdx │ │ │ │ └── HTMLRewritingStream/ │ │ │ │ ├── HTMLRewritingStream.mdx │ │ │ │ └── prototype/ │ │ │ │ └── onElement.mdx │ │ │ ├── image-optimizer/ │ │ │ │ ├── Auto.mdx │ │ │ │ ├── BWAlgorithm.mdx │ │ │ │ ├── CropMode.mdx │ │ │ │ ├── Disable.mdx │ │ │ │ ├── Enable.mdx │ │ │ │ ├── Fit.mdx │ │ │ │ ├── Format.mdx │ │ │ │ ├── Metadata.mdx │ │ │ │ ├── Optimize.mdx │ │ │ │ ├── Orient.mdx │ │ │ │ ├── Profile.mdx │ │ │ │ ├── Region.mdx │ │ │ │ ├── ResizeFilter.mdx │ │ │ │ └── imageOptimizerOptions.mdx │ │ │ ├── index.mdx │ │ │ ├── kv-store/ │ │ │ │ ├── KVStore/ │ │ │ │ │ ├── KVStore.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── delete.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── list.mdx │ │ │ │ │ └── put.mdx │ │ │ │ └── KVStoreEntry/ │ │ │ │ └── prototype/ │ │ │ │ ├── arrayBuffer.mdx │ │ │ │ ├── body.mdx │ │ │ │ ├── bodyUsed.mdx │ │ │ │ ├── json.mdx │ │ │ │ ├── metadata.mdx │ │ │ │ ├── metadataText.mdx │ │ │ │ └── text.mdx │ │ │ ├── logger/ │ │ │ │ ├── Logger/ │ │ │ │ │ ├── Logger.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ └── log.mdx │ │ │ │ └── configureConsole.mdx │ │ │ ├── migration-guide/ │ │ │ │ └── index.mdx │ │ │ ├── secret-store/ │ │ │ │ ├── SecretStore/ │ │ │ │ │ ├── SecretStore.mdx │ │ │ │ │ ├── fromBytes.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ └── get.mdx │ │ │ │ └── SecretStoreEntry/ │ │ │ │ └── prototype/ │ │ │ │ ├── plaintext.mdx │ │ │ │ └── rawBytes.mdx │ │ │ ├── security/ │ │ │ │ └── inspect.mdx │ │ │ ├── shielding/ │ │ │ │ └── Shield/ │ │ │ │ ├── Shield.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── encryptedBackend.mdx │ │ │ │ ├── runningOn.mdx │ │ │ │ └── unencryptedBackend.mdx │ │ │ └── websocket/ │ │ │ └── createWebsocketHandoff.mdx │ │ ├── version-3.39.0/ │ │ │ ├── acl/ │ │ │ │ └── Acl/ │ │ │ │ ├── open.mdx │ │ │ │ └── prototype/ │ │ │ │ └── lookup.mdx │ │ │ ├── backend/ │ │ │ │ ├── Backend/ │ │ │ │ │ ├── Backend.mdx │ │ │ │ │ ├── exists.mdx │ │ │ │ │ ├── fromName.mdx │ │ │ │ │ ├── health.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── betweenBytesTimeout.mdx │ │ │ │ │ ├── connectTimeout.mdx │ │ │ │ │ ├── firstByteTimeout.mdx │ │ │ │ │ ├── health.mdx │ │ │ │ │ ├── hostOverride.mdx │ │ │ │ │ ├── httpKeepaliveTime.mdx │ │ │ │ │ ├── isDynamic.mdx │ │ │ │ │ ├── isSSL.mdx │ │ │ │ │ ├── name.mdx │ │ │ │ │ ├── port.mdx │ │ │ │ │ ├── target.mdx │ │ │ │ │ ├── tcpKeepalive.mdx │ │ │ │ │ ├── tlsMaxVersion.mdx │ │ │ │ │ ├── tlsMinVersion.mdx │ │ │ │ │ ├── toName.mdx │ │ │ │ │ └── toString.mdx │ │ │ │ ├── allowDynamicBackends.mdx │ │ │ │ ├── enforceExplicitBackends.mdx │ │ │ │ └── setDefaultDynamicBackendConfig.mdx │ │ │ ├── cache/ │ │ │ │ ├── CacheEntry/ │ │ │ │ │ ├── age.mdx │ │ │ │ │ ├── body.mdx │ │ │ │ │ ├── close.mdx │ │ │ │ │ ├── hits.mdx │ │ │ │ │ ├── length.mdx │ │ │ │ │ ├── maxAge.mdx │ │ │ │ │ ├── staleWhileRevalidate.mdx │ │ │ │ │ ├── state.mdx │ │ │ │ │ └── userMetadata.mdx │ │ │ │ ├── CacheState/ │ │ │ │ │ ├── found.mdx │ │ │ │ │ ├── mustInsertOrUpdate.mdx │ │ │ │ │ ├── stale.mdx │ │ │ │ │ └── usable.mdx │ │ │ │ ├── CoreCache/ │ │ │ │ │ ├── insert.mdx │ │ │ │ │ ├── lookup.mdx │ │ │ │ │ └── transactionLookup.mdx │ │ │ │ ├── SimpleCache/ │ │ │ │ │ ├── SimpleCache.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── getOrSet.mdx │ │ │ │ │ └── purge.mdx │ │ │ │ ├── SimpleCacheEntry/ │ │ │ │ │ ├── arrayBuffer.mdx │ │ │ │ │ ├── body.mdx │ │ │ │ │ ├── bodyUsed.mdx │ │ │ │ │ ├── json.mdx │ │ │ │ │ └── text.mdx │ │ │ │ └── TransactionCacheEntry/ │ │ │ │ ├── age.mdx │ │ │ │ ├── body.mdx │ │ │ │ ├── cancel.mdx │ │ │ │ ├── close.mdx │ │ │ │ ├── hits.mdx │ │ │ │ ├── insert.mdx │ │ │ │ ├── insertAndStreamBack.mdx │ │ │ │ ├── length.mdx │ │ │ │ ├── maxAge.mdx │ │ │ │ ├── staleWhileRevalidate.mdx │ │ │ │ ├── state.mdx │ │ │ │ ├── update.mdx │ │ │ │ └── userMetadata.mdx │ │ │ ├── cache-override/ │ │ │ │ └── CacheOverride/ │ │ │ │ └── CacheOverride.mdx │ │ │ ├── compute/ │ │ │ │ ├── purgeSurrogateKey.mdx │ │ │ │ └── vCpuTime.mdx │ │ │ ├── config-store/ │ │ │ │ └── ConfigStore/ │ │ │ │ ├── ConfigStore.mdx │ │ │ │ └── prototype/ │ │ │ │ └── get.mdx │ │ │ ├── device/ │ │ │ │ └── Device/ │ │ │ │ ├── lookup.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── brand.mdx │ │ │ │ ├── hardwareType.mdx │ │ │ │ ├── isBot.mdx │ │ │ │ ├── isDesktop.mdx │ │ │ │ ├── isGameConsole.mdx │ │ │ │ ├── isMediaPlayer.mdx │ │ │ │ ├── isMobile.mdx │ │ │ │ ├── isSmartTV.mdx │ │ │ │ ├── isTablet.mdx │ │ │ │ ├── isTouchscreen.mdx │ │ │ │ ├── model.mdx │ │ │ │ ├── name.mdx │ │ │ │ └── toJSON.mdx │ │ │ ├── dictionary/ │ │ │ │ └── Dictionary/ │ │ │ │ ├── Dictionary.mdx │ │ │ │ └── prototype/ │ │ │ │ └── get.mdx │ │ │ ├── edge-rate-limiter/ │ │ │ │ ├── EdgeRateLimiter/ │ │ │ │ │ ├── EdgeRateLimiter.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ └── checkRate.mdx │ │ │ │ ├── PenaltyBox/ │ │ │ │ │ ├── PenaltyBox.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── add.mdx │ │ │ │ │ └── has.mdx │ │ │ │ └── RateCounter/ │ │ │ │ ├── RateCounter.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── increment.mdx │ │ │ │ ├── lookupCount.mdx │ │ │ │ └── lookupRate.mdx │ │ │ ├── env/ │ │ │ │ └── env.mdx │ │ │ ├── experimental/ │ │ │ │ ├── allowDynamicBackends.mdx │ │ │ │ ├── includeBytes.mdx │ │ │ │ ├── mapAndLogError.mdx │ │ │ │ ├── mapError.mdx │ │ │ │ └── sdkVersion.mdx │ │ │ ├── fanout/ │ │ │ │ └── createFanoutHandoff.mdx │ │ │ ├── geolocation/ │ │ │ │ └── getGeolocationForIpAddress.mdx │ │ │ ├── globals/ │ │ │ │ ├── AggregrateError/ │ │ │ │ │ └── AggregrateError.mdx │ │ │ │ ├── Array/ │ │ │ │ │ ├── @@species.mdx │ │ │ │ │ ├── Array.mdx │ │ │ │ │ ├── from.mdx │ │ │ │ │ ├── isArray.mdx │ │ │ │ │ ├── of.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── @@iterator.mdx │ │ │ │ │ ├── @@unscopables.mdx │ │ │ │ │ ├── at.mdx │ │ │ │ │ ├── concat.mdx │ │ │ │ │ ├── copyWithin.mdx │ │ │ │ │ ├── entries.mdx │ │ │ │ │ ├── every.mdx │ │ │ │ │ ├── fill.mdx │ │ │ │ │ ├── filter.mdx │ │ │ │ │ ├── find.mdx │ │ │ │ │ ├── findIndex.mdx │ │ │ │ │ ├── flat.mdx │ │ │ │ │ ├── flatMap.mdx │ │ │ │ │ ├── forEach.mdx │ │ │ │ │ ├── includes.mdx │ │ │ │ │ ├── indexOf.mdx │ │ │ │ │ ├── join.mdx │ │ │ │ │ ├── keys.mdx │ │ │ │ │ ├── lastIndexOf.mdx │ │ │ │ │ ├── length.mdx │ │ │ │ │ ├── map.mdx │ │ │ │ │ ├── pop.mdx │ │ │ │ │ ├── push.mdx │ │ │ │ │ ├── reduce.mdx │ │ │ │ │ ├── reduceRight.mdx │ │ │ │ │ ├── reverse.mdx │ │ │ │ │ ├── shift.mdx │ │ │ │ │ ├── slice.mdx │ │ │ │ │ ├── some.mdx │ │ │ │ │ ├── sort.mdx │ │ │ │ │ ├── splice.mdx │ │ │ │ │ ├── toLocaleString.mdx │ │ │ │ │ ├── toString.mdx │ │ │ │ │ ├── unshift.mdx │ │ │ │ │ └── values.mdx │ │ │ │ ├── ArrayBuffer/ │ │ │ │ │ ├── @@species.mdx │ │ │ │ │ ├── ArrayBuffer.mdx │ │ │ │ │ ├── isView.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── byteLength.mdx │ │ │ │ │ └── slice.mdx │ │ │ │ ├── BigInt/ │ │ │ │ │ ├── BigInt.mdx │ │ │ │ │ ├── asIntN.mdx │ │ │ │ │ ├── asUintN.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── toLocaleString.mdx │ │ │ │ │ ├── toString.mdx │ │ │ │ │ └── valueOf.mdx │ │ │ │ ├── BigInt64Array/ │ │ │ │ │ └── BigInt64Array.mdx │ │ │ │ ├── BigUint64Array/ │ │ │ │ │ └── BigUint64Array.mdx │ │ │ │ ├── Blob/ │ │ │ │ │ ├── Blob.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── arrayBuffer.mdx │ │ │ │ │ ├── size.mdx │ │ │ │ │ ├── slice.mdx │ │ │ │ │ ├── stream.mdx │ │ │ │ │ ├── text.mdx │ │ │ │ │ └── type.mdx │ │ │ │ ├── Boolean/ │ │ │ │ │ ├── Boolean.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── toString.mdx │ │ │ │ │ └── valueOf.mdx │ │ │ │ ├── ByteLengthQueuingStrategy/ │ │ │ │ │ ├── ByteLengthQueuingStrategy.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ └── size.mdx │ │ │ │ ├── CompressionStream/ │ │ │ │ │ ├── CompressionStream.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── readable.mdx │ │ │ │ │ └── writable.mdx │ │ │ │ ├── CryptoKey/ │ │ │ │ │ ├── CryptoKey.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── algorithm.mdx │ │ │ │ │ ├── extractable.mdx │ │ │ │ │ ├── type.mdx │ │ │ │ │ └── usages.mdx │ │ │ │ ├── DOMException/ │ │ │ │ │ ├── DOMException.mdx │ │ │ │ │ ├── code.mdx │ │ │ │ │ ├── message.mdx │ │ │ │ │ └── name.mdx │ │ │ │ ├── DataView/ │ │ │ │ │ ├── DataView.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── buffer.mdx │ │ │ │ │ ├── byteLength.mdx │ │ │ │ │ ├── byteOffset.mdx │ │ │ │ │ ├── getBigInt64.mdx │ │ │ │ │ ├── getBigUint64.mdx │ │ │ │ │ ├── getFloat32.mdx │ │ │ │ │ ├── getFloat64.mdx │ │ │ │ │ ├── getInt16.mdx │ │ │ │ │ ├── getInt32.mdx │ │ │ │ │ ├── getInt8.mdx │ │ │ │ │ ├── getUint16.mdx │ │ │ │ │ ├── getUint32.mdx │ │ │ │ │ ├── getUint8.mdx │ │ │ │ │ ├── setBigInt64.mdx │ │ │ │ │ ├── setBigUint64.mdx │ │ │ │ │ ├── setFloat32.mdx │ │ │ │ │ ├── setFloat64.mdx │ │ │ │ │ ├── setInt16.mdx │ │ │ │ │ ├── setInt32.mdx │ │ │ │ │ ├── setInt8.mdx │ │ │ │ │ ├── setUint16.mdx │ │ │ │ │ ├── setUint32.mdx │ │ │ │ │ └── setUint8.mdx │ │ │ │ ├── Date/ │ │ │ │ │ ├── Date.mdx │ │ │ │ │ ├── UTC.mdx │ │ │ │ │ ├── now.mdx │ │ │ │ │ ├── parse.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── @@toPrimitive.mdx │ │ │ │ │ ├── getDate.mdx │ │ │ │ │ ├── getDay.mdx │ │ │ │ │ ├── getFullYear.mdx │ │ │ │ │ ├── getHours.mdx │ │ │ │ │ ├── getMilliseconds.mdx │ │ │ │ │ ├── getMinutes.mdx │ │ │ │ │ ├── getMonth.mdx │ │ │ │ │ ├── getSeconds.mdx │ │ │ │ │ ├── getTime.mdx │ │ │ │ │ ├── getTimezoneOffset.mdx │ │ │ │ │ ├── getUTCDate.mdx │ │ │ │ │ ├── getUTCDay.mdx │ │ │ │ │ ├── getUTCFullYear.mdx │ │ │ │ │ ├── getUTCHours.mdx │ │ │ │ │ ├── getUTCMilliseconds.mdx │ │ │ │ │ ├── getUTCMinutes.mdx │ │ │ │ │ ├── getUTCMonth.mdx │ │ │ │ │ ├── getUTCSeconds.mdx │ │ │ │ │ ├── getYear.mdx │ │ │ │ │ ├── setDate.mdx │ │ │ │ │ ├── setFullYear.mdx │ │ │ │ │ ├── setHours.mdx │ │ │ │ │ ├── setMilliseconds.mdx │ │ │ │ │ ├── setMinutes.mdx │ │ │ │ │ ├── setMonth.mdx │ │ │ │ │ ├── setSeconds.mdx │ │ │ │ │ ├── setTime.mdx │ │ │ │ │ ├── setUTCDate.mdx │ │ │ │ │ ├── setUTCFullYear.mdx │ │ │ │ │ ├── setUTCHours.mdx │ │ │ │ │ ├── setUTCMilliseconds.mdx │ │ │ │ │ ├── setUTCMinutes.mdx │ │ │ │ │ ├── setUTCMonth.mdx │ │ │ │ │ ├── setUTCSeconds.mdx │ │ │ │ │ ├── setYear.mdx │ │ │ │ │ ├── toDateString.mdx │ │ │ │ │ ├── toISOString.mdx │ │ │ │ │ ├── toJSON.mdx │ │ │ │ │ ├── toLocaleDateString.mdx │ │ │ │ │ ├── toLocaleString.mdx │ │ │ │ │ ├── toLocaleTimeString.mdx │ │ │ │ │ ├── toString.mdx │ │ │ │ │ ├── toTimeString.mdx │ │ │ │ │ ├── toUTCString.mdx │ │ │ │ │ └── valueOf.mdx │ │ │ │ ├── DecompressionStream/ │ │ │ │ │ ├── DecompressionStream.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── readable.mdx │ │ │ │ │ └── writable.mdx │ │ │ │ ├── EcKeyImportParams/ │ │ │ │ │ └── EcKeyImportParams.mdx │ │ │ │ ├── EcdsaParams/ │ │ │ │ │ └── EcdsaParams.mdx │ │ │ │ ├── Error/ │ │ │ │ │ ├── Error.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── cause.mdx │ │ │ │ │ ├── message.mdx │ │ │ │ │ ├── name.mdx │ │ │ │ │ └── toString.mdx │ │ │ │ ├── EvalError/ │ │ │ │ │ └── EvalError.mdx │ │ │ │ ├── FetchEvent/ │ │ │ │ │ ├── FetchEvent.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── respondWith.mdx │ │ │ │ │ ├── sendEarlyHints.mdx │ │ │ │ │ └── waitUntil.mdx │ │ │ │ ├── FinalizationRegistry/ │ │ │ │ │ ├── FinalizationRegistry.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── register.mdx │ │ │ │ │ └── unregister.mdx │ │ │ │ ├── Float32Array/ │ │ │ │ │ └── Float32Array.mdx │ │ │ │ ├── Float64Array/ │ │ │ │ │ └── Float64Array.mdx │ │ │ │ ├── FormData/ │ │ │ │ │ ├── FormData.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── append.mdx │ │ │ │ │ ├── delete.mdx │ │ │ │ │ ├── entries.mdx │ │ │ │ │ ├── forEach.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── getAll.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ ├── keys.mdx │ │ │ │ │ ├── set.mdx │ │ │ │ │ └── values.mdx │ │ │ │ ├── Function/ │ │ │ │ │ ├── Function.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── apply.mdx │ │ │ │ │ ├── bind.mdx │ │ │ │ │ ├── call.mdx │ │ │ │ │ ├── index.mdx │ │ │ │ │ ├── length.mdx │ │ │ │ │ ├── name.mdx │ │ │ │ │ └── toString.mdx │ │ │ │ ├── Headers/ │ │ │ │ │ ├── Headers.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── append.mdx │ │ │ │ │ ├── delete.mdx │ │ │ │ │ ├── entries.mdx │ │ │ │ │ ├── forEach.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── getSetCookie.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ ├── keys.mdx │ │ │ │ │ ├── set.mdx │ │ │ │ │ └── values.mdx │ │ │ │ ├── HmacImportParams/ │ │ │ │ │ └── HmacImportParams.mdx │ │ │ │ ├── Infinity.mdx │ │ │ │ ├── Int16Array/ │ │ │ │ │ └── Int16Array.mdx │ │ │ │ ├── Int32Array/ │ │ │ │ │ └── Int32Array.mdx │ │ │ │ ├── Int8Array/ │ │ │ │ │ └── Int8Array.mdx │ │ │ │ ├── JSON/ │ │ │ │ │ ├── parse.mdx │ │ │ │ │ └── stringify.mdx │ │ │ │ ├── Map/ │ │ │ │ │ ├── @@species.mdx │ │ │ │ │ ├── Map.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── @@iterator.mdx │ │ │ │ │ ├── clear.mdx │ │ │ │ │ ├── delete.mdx │ │ │ │ │ ├── entries.mdx │ │ │ │ │ ├── forEach.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ ├── keys.mdx │ │ │ │ │ ├── set.mdx │ │ │ │ │ ├── size.mdx │ │ │ │ │ └── values.mdx │ │ │ │ ├── Math/ │ │ │ │ │ ├── E.mdx │ │ │ │ │ ├── LN10.mdx │ │ │ │ │ ├── LN2.mdx │ │ │ │ │ ├── LOG10e.mdx │ │ │ │ │ ├── LOG2e.mdx │ │ │ │ │ ├── PI.mdx │ │ │ │ │ ├── SQRT1_2.mdx │ │ │ │ │ ├── SQRT2.mdx │ │ │ │ │ ├── abs.mdx │ │ │ │ │ ├── acos.mdx │ │ │ │ │ ├── acosh.mdx │ │ │ │ │ ├── asin.mdx │ │ │ │ │ ├── asinh.mdx │ │ │ │ │ ├── atan.mdx │ │ │ │ │ ├── atan2.mdx │ │ │ │ │ ├── atanh.mdx │ │ │ │ │ ├── cbrt.mdx │ │ │ │ │ ├── ceil.mdx │ │ │ │ │ ├── clz32.mdx │ │ │ │ │ ├── cos.mdx │ │ │ │ │ ├── cosh.mdx │ │ │ │ │ ├── exp.mdx │ │ │ │ │ ├── expm1.mdx │ │ │ │ │ ├── floor.mdx │ │ │ │ │ ├── fround.mdx │ │ │ │ │ ├── hypot.mdx │ │ │ │ │ ├── imul.mdx │ │ │ │ │ ├── log.mdx │ │ │ │ │ ├── log10.mdx │ │ │ │ │ ├── log1p.mdx │ │ │ │ │ ├── log2.mdx │ │ │ │ │ ├── max.mdx │ │ │ │ │ ├── min.mdx │ │ │ │ │ ├── pow.mdx │ │ │ │ │ ├── random.mdx │ │ │ │ │ ├── round.mdx │ │ │ │ │ ├── sign.mdx │ │ │ │ │ ├── sin.mdx │ │ │ │ │ ├── sinh.mdx │ │ │ │ │ ├── sqrt.mdx │ │ │ │ │ ├── tan.mdx │ │ │ │ │ ├── tanh.mdx │ │ │ │ │ └── trunc.mdx │ │ │ │ ├── NaN.mdx │ │ │ │ ├── Number/ │ │ │ │ │ ├── MAX_SAFE_INTEGER.mdx │ │ │ │ │ ├── MAX_VALUE.mdx │ │ │ │ │ ├── MIN_SAFE_INTEGER.mdx │ │ │ │ │ ├── MIN_VALUE.mdx │ │ │ │ │ ├── NEGATIVE_INFINITY.mdx │ │ │ │ │ ├── NaN.mdx │ │ │ │ │ ├── Number.mdx │ │ │ │ │ ├── POSITIVE_INFINITY.mdx │ │ │ │ │ ├── epsilon.mdx │ │ │ │ │ ├── isFinite.mdx │ │ │ │ │ ├── isInteger.mdx │ │ │ │ │ ├── isNaN.mdx │ │ │ │ │ ├── isSafeInteger.mdx │ │ │ │ │ ├── parseFloat.mdx │ │ │ │ │ ├── parseInt.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── toExponential.mdx │ │ │ │ │ ├── toFixed.mdx │ │ │ │ │ ├── toLocaleString.mdx │ │ │ │ │ ├── toPrecision.mdx │ │ │ │ │ ├── toString.mdx │ │ │ │ │ └── valueOf.mdx │ │ │ │ ├── Object/ │ │ │ │ │ ├── Object.mdx │ │ │ │ │ ├── assign.mdx │ │ │ │ │ ├── create.mdx │ │ │ │ │ ├── defineProperties.mdx │ │ │ │ │ ├── defineProperty.mdx │ │ │ │ │ ├── entries.mdx │ │ │ │ │ ├── freeze.mdx │ │ │ │ │ ├── fromEntries.mdx │ │ │ │ │ ├── getOwnPropertyDescriptor.mdx │ │ │ │ │ ├── getOwnPropertyDescriptors.mdx │ │ │ │ │ ├── getOwnPropertyNames.mdx │ │ │ │ │ ├── getOwnPropertySymbols.mdx │ │ │ │ │ ├── getPrototypeOf.mdx │ │ │ │ │ ├── hasOwn.mdx │ │ │ │ │ ├── is.mdx │ │ │ │ │ ├── isExtensible.mdx │ │ │ │ │ ├── isFrozen.mdx │ │ │ │ │ ├── isSealed.mdx │ │ │ │ │ ├── keys.mdx │ │ │ │ │ ├── preventExtensions.mdx │ │ │ │ │ ├── prototype/ │ │ │ │ │ │ ├── constructor.mdx │ │ │ │ │ │ ├── hasOwnProperty.mdx │ │ │ │ │ │ ├── isPrototypeOf.mdx │ │ │ │ │ │ ├── propertyIsEnumerable.mdx │ │ │ │ │ │ ├── toLocaleString.mdx │ │ │ │ │ │ ├── toString.mdx │ │ │ │ │ │ └── valueOf.mdx │ │ │ │ │ ├── seal.mdx │ │ │ │ │ ├── setPrototypeOf.mdx │ │ │ │ │ └── values.mdx │ │ │ │ ├── Promise/ │ │ │ │ │ ├── @@species.mdx │ │ │ │ │ ├── Promise.mdx │ │ │ │ │ ├── all.mdx │ │ │ │ │ ├── allSettled.mdx │ │ │ │ │ ├── any.mdx │ │ │ │ │ ├── prototype/ │ │ │ │ │ │ ├── catch.mdx │ │ │ │ │ │ ├── finally.mdx │ │ │ │ │ │ └── then.mdx │ │ │ │ │ ├── race.mdx │ │ │ │ │ ├── reject.mdx │ │ │ │ │ └── resolve.mdx │ │ │ │ ├── Proxy/ │ │ │ │ │ ├── Proxy.mdx │ │ │ │ │ ├── proxy/ │ │ │ │ │ │ ├── apply.mdx │ │ │ │ │ │ ├── construct.mdx │ │ │ │ │ │ ├── defineProperty.mdx │ │ │ │ │ │ ├── deleteProperty.mdx │ │ │ │ │ │ ├── get.mdx │ │ │ │ │ │ ├── getOwnPropertyDescriptor.mdx │ │ │ │ │ │ ├── getPrototypeOf.mdx │ │ │ │ │ │ ├── has.mdx │ │ │ │ │ │ ├── isExtensible.mdx │ │ │ │ │ │ ├── ownKeys.mdx │ │ │ │ │ │ ├── preventExtensions.mdx │ │ │ │ │ │ ├── set.mdx │ │ │ │ │ │ └── setPrototypeOf.mdx │ │ │ │ │ └── revocable.mdx │ │ │ │ ├── RangeError/ │ │ │ │ │ └── RangeError.mdx │ │ │ │ ├── ReadableByteStreamController/ │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── byobRequest.mdx │ │ │ │ │ ├── close.mdx │ │ │ │ │ ├── desiredSize.mdx │ │ │ │ │ ├── enqueue.mdx │ │ │ │ │ └── error.mdx │ │ │ │ ├── ReadableStream/ │ │ │ │ │ ├── ReadableStream.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── cancel.mdx │ │ │ │ │ ├── getReader.mdx │ │ │ │ │ ├── locked.mdx │ │ │ │ │ ├── pipeThrough.mdx │ │ │ │ │ ├── pipeTo.mdx │ │ │ │ │ └── tee.mdx │ │ │ │ ├── ReadableStreamBYOBReader/ │ │ │ │ │ ├── ReadableStreamBYOBReader.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── cancel.mdx │ │ │ │ │ ├── closed.mdx │ │ │ │ │ ├── read.mdx │ │ │ │ │ └── releaseLock.mdx │ │ │ │ ├── ReadableStreamBYOBRequest/ │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── respond.mdx │ │ │ │ │ ├── respondWithNewView.mdx │ │ │ │ │ └── view.mdx │ │ │ │ ├── ReadableStreamDefaultController/ │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── close.mdx │ │ │ │ │ ├── desiredSize.mdx │ │ │ │ │ ├── enqueue.mdx │ │ │ │ │ └── error.mdx │ │ │ │ ├── ReadableStreamDefaultReader/ │ │ │ │ │ ├── ReadableStreamDefaultReader.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── cancel.mdx │ │ │ │ │ ├── closed.mdx │ │ │ │ │ ├── read.mdx │ │ │ │ │ └── releaseLock.mdx │ │ │ │ ├── ReferenceError/ │ │ │ │ │ └── ReferenceError.mdx │ │ │ │ ├── Reflect/ │ │ │ │ │ ├── apply.mdx │ │ │ │ │ ├── construct.mdx │ │ │ │ │ ├── defineProperty.mdx │ │ │ │ │ ├── deleteProperty.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── getOwnPropertyDescriptor.mdx │ │ │ │ │ ├── getPrototypeOf.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ ├── isExtensible.mdx │ │ │ │ │ ├── ownKeys.mdx │ │ │ │ │ ├── preventExtensions.mdx │ │ │ │ │ ├── set.mdx │ │ │ │ │ └── setPrototypeOf.mdx │ │ │ │ ├── Request/ │ │ │ │ │ ├── Request.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── arrayBuffer.mdx │ │ │ │ │ ├── blob.mdx │ │ │ │ │ ├── body.mdx │ │ │ │ │ ├── bodyUsed.mdx │ │ │ │ │ ├── clone.mdx │ │ │ │ │ ├── formData.mdx │ │ │ │ │ ├── headers.mdx │ │ │ │ │ ├── json.mdx │ │ │ │ │ ├── method.mdx │ │ │ │ │ ├── setManualFramingHeaders.mdx │ │ │ │ │ ├── text.mdx │ │ │ │ │ └── url.mdx │ │ │ │ ├── Response/ │ │ │ │ │ ├── Response.mdx │ │ │ │ │ ├── prototype/ │ │ │ │ │ │ ├── arrayBuffer.mdx │ │ │ │ │ │ ├── blob.mdx │ │ │ │ │ │ ├── body.mdx │ │ │ │ │ │ ├── bodyUsed.mdx │ │ │ │ │ │ ├── formData.mdx │ │ │ │ │ │ ├── headers.mdx │ │ │ │ │ │ ├── ip.mdx │ │ │ │ │ │ ├── json.mdx │ │ │ │ │ │ ├── ok.mdx │ │ │ │ │ │ ├── port.mdx │ │ │ │ │ │ ├── setManualFramingHeaders.mdx │ │ │ │ │ │ ├── status.mdx │ │ │ │ │ │ ├── statusText.mdx │ │ │ │ │ │ ├── text.mdx │ │ │ │ │ │ └── url.mdx │ │ │ │ │ └── redirect.mdx │ │ │ │ ├── RsaHashedImportParams/ │ │ │ │ │ └── RsaHashedImportParams.mdx │ │ │ │ ├── Set/ │ │ │ │ │ ├── @@species.mdx │ │ │ │ │ ├── Set.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── @@iterator.mdx │ │ │ │ │ ├── add.mdx │ │ │ │ │ ├── clear.mdx │ │ │ │ │ ├── delete.mdx │ │ │ │ │ ├── entries.mdx │ │ │ │ │ ├── forEach.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ ├── keys.mdx │ │ │ │ │ ├── size.mdx │ │ │ │ │ └── values.mdx │ │ │ │ ├── String/ │ │ │ │ │ ├── String.mdx │ │ │ │ │ ├── fromCharCode.mdx │ │ │ │ │ ├── fromCodePoint.mdx │ │ │ │ │ ├── prototype/ │ │ │ │ │ │ ├── @@iterator.mdx │ │ │ │ │ │ ├── at.mdx │ │ │ │ │ │ ├── charAt.mdx │ │ │ │ │ │ ├── charCodeAt.mdx │ │ │ │ │ │ ├── codePointAt.mdx │ │ │ │ │ │ ├── concat.mdx │ │ │ │ │ │ ├── endsWith.mdx │ │ │ │ │ │ ├── includes.mdx │ │ │ │ │ │ ├── indexOf.mdx │ │ │ │ │ │ ├── lastIndexOf.mdx │ │ │ │ │ │ ├── length.mdx │ │ │ │ │ │ ├── localeCompare.mdx │ │ │ │ │ │ ├── match.mdx │ │ │ │ │ │ ├── matchAll.mdx │ │ │ │ │ │ ├── padEnd.mdx │ │ │ │ │ │ ├── padStart.mdx │ │ │ │ │ │ ├── repeat.mdx │ │ │ │ │ │ ├── replace.mdx │ │ │ │ │ │ ├── replaceAll.mdx │ │ │ │ │ │ ├── search.mdx │ │ │ │ │ │ ├── slice.mdx │ │ │ │ │ │ ├── split.mdx │ │ │ │ │ │ ├── startsWith.mdx │ │ │ │ │ │ ├── substr.mdx │ │ │ │ │ │ ├── substring.mdx │ │ │ │ │ │ ├── toLocaleLowerCase.mdx │ │ │ │ │ │ ├── toLocaleUpperCase.mdx │ │ │ │ │ │ ├── toLowerCase.mdx │ │ │ │ │ │ ├── toString.mdx │ │ │ │ │ │ ├── toUpperCase.mdx │ │ │ │ │ │ ├── trim.mdx │ │ │ │ │ │ ├── trimEnd.mdx │ │ │ │ │ │ ├── trimStart.mdx │ │ │ │ │ │ └── valueOf.mdx │ │ │ │ │ └── raw.mdx │ │ │ │ ├── SubtleCrypto/ │ │ │ │ │ ├── SubtleCrypto.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── digest.mdx │ │ │ │ │ ├── importKey.mdx │ │ │ │ │ ├── sign.mdx │ │ │ │ │ └── verify.mdx │ │ │ │ ├── Symbol/ │ │ │ │ │ ├── Symbol.mdx │ │ │ │ │ ├── asyncIterator.mdx │ │ │ │ │ ├── for.mdx │ │ │ │ │ ├── hasInstance.mdx │ │ │ │ │ ├── isConcatSpreadable.mdx │ │ │ │ │ ├── iterator.mdx │ │ │ │ │ ├── keyFor.mdx │ │ │ │ │ ├── match.mdx │ │ │ │ │ ├── matchAll.mdx │ │ │ │ │ ├── prototype/ │ │ │ │ │ │ ├── @@toPrimitive.mdx │ │ │ │ │ │ ├── description.mdx │ │ │ │ │ │ ├── toString.mdx │ │ │ │ │ │ └── valueOf.mdx │ │ │ │ │ ├── replace.mdx │ │ │ │ │ ├── search.mdx │ │ │ │ │ ├── species.mdx │ │ │ │ │ ├── split.mdx │ │ │ │ │ ├── toPrimitive.mdx │ │ │ │ │ ├── toStringTag.mdx │ │ │ │ │ └── unscopables.mdx │ │ │ │ ├── SyntaxError/ │ │ │ │ │ └── SyntaxError.mdx │ │ │ │ ├── TextDecoder/ │ │ │ │ │ ├── TextDecoder.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── decode.mdx │ │ │ │ │ ├── encoding.mdx │ │ │ │ │ ├── fatal.mdx │ │ │ │ │ └── ignoreBOM.mdx │ │ │ │ ├── TextEncoder/ │ │ │ │ │ ├── TextEncoder.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── encode.mdx │ │ │ │ │ └── encoding.mdx │ │ │ │ ├── TransformStream/ │ │ │ │ │ ├── TransformStream.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── readable.mdx │ │ │ │ │ └── writable.mdx │ │ │ │ ├── TransformStreamDefaultController/ │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── desiredSize.mdx │ │ │ │ │ ├── enqueue.mdx │ │ │ │ │ ├── error.mdx │ │ │ │ │ └── terminate.mdx │ │ │ │ ├── TypeError/ │ │ │ │ │ └── TypeError.mdx │ │ │ │ ├── URIError/ │ │ │ │ │ └── URIError.mdx │ │ │ │ ├── URL/ │ │ │ │ │ ├── URL.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── hash.mdx │ │ │ │ │ ├── host.mdx │ │ │ │ │ ├── hostname.mdx │ │ │ │ │ ├── href.mdx │ │ │ │ │ ├── origin.mdx │ │ │ │ │ ├── password.mdx │ │ │ │ │ ├── pathname.mdx │ │ │ │ │ ├── port.mdx │ │ │ │ │ ├── protocol.mdx │ │ │ │ │ ├── search.mdx │ │ │ │ │ ├── searchParams.mdx │ │ │ │ │ ├── toJSON.mdx │ │ │ │ │ ├── toString.mdx │ │ │ │ │ └── username.mdx │ │ │ │ ├── URLSearchParams/ │ │ │ │ │ ├── URLSearchParams.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── append.mdx │ │ │ │ │ ├── delete.mdx │ │ │ │ │ ├── entries.mdx │ │ │ │ │ ├── forEach.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ ├── keys.mdx │ │ │ │ │ ├── set.mdx │ │ │ │ │ ├── sort.mdx │ │ │ │ │ ├── toString.mdx │ │ │ │ │ └── values.mdx │ │ │ │ ├── Uint16Array/ │ │ │ │ │ └── Uint16Array.mdx │ │ │ │ ├── Uint32Array/ │ │ │ │ │ └── Uint32Array.mdx │ │ │ │ ├── Uint8Array/ │ │ │ │ │ └── Uint8Array.mdx │ │ │ │ ├── Uint8ClampedArray/ │ │ │ │ │ └── Uint8ClampedArray.mdx │ │ │ │ ├── WeakMap/ │ │ │ │ │ ├── WeakMap.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── delete.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ └── set.mdx │ │ │ │ ├── WeakRef/ │ │ │ │ │ ├── WeakRef.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ └── deref.mdx │ │ │ │ ├── WeakSet/ │ │ │ │ │ ├── WeakSet.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── add.mdx │ │ │ │ │ ├── delete.mdx │ │ │ │ │ └── has.mdx │ │ │ │ ├── WorkerLocation/ │ │ │ │ │ ├── WorkerLocation.mdx │ │ │ │ │ ├── hash.mdx │ │ │ │ │ ├── host.mdx │ │ │ │ │ ├── hostname.mdx │ │ │ │ │ ├── href.mdx │ │ │ │ │ ├── origin.mdx │ │ │ │ │ ├── pathname.mdx │ │ │ │ │ ├── port.mdx │ │ │ │ │ ├── protocol.mdx │ │ │ │ │ ├── search.mdx │ │ │ │ │ └── toString.mdx │ │ │ │ ├── WritableStream/ │ │ │ │ │ ├── WritableStream.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── abort.mdx │ │ │ │ │ ├── getWriter.mdx │ │ │ │ │ └── locked.mdx │ │ │ │ ├── WritableStreamDefaultController/ │ │ │ │ │ └── error.mdx │ │ │ │ ├── WritableStreamDefaultWriter/ │ │ │ │ │ ├── WritableStreamDefaultWriter.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── abort.mdx │ │ │ │ │ ├── close.mdx │ │ │ │ │ ├── closed.mdx │ │ │ │ │ ├── desiredSize.mdx │ │ │ │ │ ├── ready.mdx │ │ │ │ │ ├── releaseLock.mdx │ │ │ │ │ └── write.mdx │ │ │ │ ├── atob.mdx │ │ │ │ ├── btoa.mdx │ │ │ │ ├── clearInterval.mdx │ │ │ │ ├── clearTimeout.mdx │ │ │ │ ├── console/ │ │ │ │ │ ├── assert.mdx │ │ │ │ │ ├── clear.mdx │ │ │ │ │ ├── count.mdx │ │ │ │ │ ├── countReset.mdx │ │ │ │ │ ├── debug.mdx │ │ │ │ │ ├── dir.mdx │ │ │ │ │ ├── dirxml.mdx │ │ │ │ │ ├── error.mdx │ │ │ │ │ ├── group.mdx │ │ │ │ │ ├── groupCollapsed.mdx │ │ │ │ │ ├── groupEnd.mdx │ │ │ │ │ ├── info.mdx │ │ │ │ │ ├── log.mdx │ │ │ │ │ ├── time.mdx │ │ │ │ │ ├── timeEnd.mdx │ │ │ │ │ ├── timeLog.mdx │ │ │ │ │ ├── trace.mdx │ │ │ │ │ └── warn.mdx │ │ │ │ ├── crypto/ │ │ │ │ │ ├── getRandomValues.mdx │ │ │ │ │ ├── randomUUID.mdx │ │ │ │ │ └── subtle.mdx │ │ │ │ ├── decodeURI.mdx │ │ │ │ ├── decodeURIComponent.mdx │ │ │ │ ├── encodeURI.mdx │ │ │ │ ├── encodeURIComponent.mdx │ │ │ │ ├── escape.mdx │ │ │ │ ├── eval.mdx │ │ │ │ ├── fetch.mdx │ │ │ │ ├── globalThis.mdx │ │ │ │ ├── isFinite.mdx │ │ │ │ ├── isNaN.mdx │ │ │ │ ├── location.mdx │ │ │ │ ├── parseFloat.mdx │ │ │ │ ├── parseInt.mdx │ │ │ │ ├── performance/ │ │ │ │ │ ├── now.mdx │ │ │ │ │ └── timeOrigin.mdx │ │ │ │ ├── setInterval.mdx │ │ │ │ ├── setTimeout.mdx │ │ │ │ ├── structuredClone.mdx │ │ │ │ ├── undefined.mdx │ │ │ │ └── unescape.mdx │ │ │ ├── html-rewriter/ │ │ │ │ ├── Element/ │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── after.mdx │ │ │ │ │ ├── append.mdx │ │ │ │ │ ├── before.mdx │ │ │ │ │ ├── hasAttribute.mdx │ │ │ │ │ ├── prepend.mdx │ │ │ │ │ ├── removeAttribute.mdx │ │ │ │ │ ├── replaceChildren.mdx │ │ │ │ │ ├── replaceWith.mdx │ │ │ │ │ ├── selector.mdx │ │ │ │ │ ├── setAttribute.mdx │ │ │ │ │ └── tag.mdx │ │ │ │ └── HTMLRewritingStream/ │ │ │ │ ├── HTMLRewritingStream.mdx │ │ │ │ └── prototype/ │ │ │ │ └── onElement.mdx │ │ │ ├── image-optimizer/ │ │ │ │ ├── Auto.mdx │ │ │ │ ├── BWAlgorithm.mdx │ │ │ │ ├── CropMode.mdx │ │ │ │ ├── Disable.mdx │ │ │ │ ├── Enable.mdx │ │ │ │ ├── Fit.mdx │ │ │ │ ├── Format.mdx │ │ │ │ ├── Metadata.mdx │ │ │ │ ├── Optimize.mdx │ │ │ │ ├── Orient.mdx │ │ │ │ ├── Profile.mdx │ │ │ │ ├── Region.mdx │ │ │ │ ├── ResizeFilter.mdx │ │ │ │ └── imageOptimizerOptions.mdx │ │ │ ├── index.mdx │ │ │ ├── kv-store/ │ │ │ │ ├── KVStore/ │ │ │ │ │ ├── KVStore.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── delete.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── list.mdx │ │ │ │ │ └── put.mdx │ │ │ │ └── KVStoreEntry/ │ │ │ │ └── prototype/ │ │ │ │ ├── arrayBuffer.mdx │ │ │ │ ├── body.mdx │ │ │ │ ├── bodyUsed.mdx │ │ │ │ ├── json.mdx │ │ │ │ ├── metadata.mdx │ │ │ │ ├── metadataText.mdx │ │ │ │ └── text.mdx │ │ │ ├── logger/ │ │ │ │ ├── Logger/ │ │ │ │ │ ├── Logger.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ └── log.mdx │ │ │ │ └── configureConsole.mdx │ │ │ ├── migration-guide/ │ │ │ │ └── index.mdx │ │ │ ├── secret-store/ │ │ │ │ ├── SecretStore/ │ │ │ │ │ ├── SecretStore.mdx │ │ │ │ │ ├── fromBytes.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ └── get.mdx │ │ │ │ └── SecretStoreEntry/ │ │ │ │ └── prototype/ │ │ │ │ ├── plaintext.mdx │ │ │ │ └── rawBytes.mdx │ │ │ ├── security/ │ │ │ │ └── inspect.mdx │ │ │ ├── shielding/ │ │ │ │ └── Shield/ │ │ │ │ ├── Shield.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── encryptedBackend.mdx │ │ │ │ ├── runningOn.mdx │ │ │ │ └── unencryptedBackend.mdx │ │ │ └── websocket/ │ │ │ └── createWebsocketHandoff.mdx │ │ ├── version-3.39.1/ │ │ │ ├── acl/ │ │ │ │ └── Acl/ │ │ │ │ ├── open.mdx │ │ │ │ └── prototype/ │ │ │ │ └── lookup.mdx │ │ │ ├── backend/ │ │ │ │ ├── Backend/ │ │ │ │ │ ├── Backend.mdx │ │ │ │ │ ├── exists.mdx │ │ │ │ │ ├── fromName.mdx │ │ │ │ │ ├── health.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── betweenBytesTimeout.mdx │ │ │ │ │ ├── connectTimeout.mdx │ │ │ │ │ ├── firstByteTimeout.mdx │ │ │ │ │ ├── health.mdx │ │ │ │ │ ├── hostOverride.mdx │ │ │ │ │ ├── httpKeepaliveTime.mdx │ │ │ │ │ ├── isDynamic.mdx │ │ │ │ │ ├── isSSL.mdx │ │ │ │ │ ├── name.mdx │ │ │ │ │ ├── port.mdx │ │ │ │ │ ├── target.mdx │ │ │ │ │ ├── tcpKeepalive.mdx │ │ │ │ │ ├── tlsMaxVersion.mdx │ │ │ │ │ ├── tlsMinVersion.mdx │ │ │ │ │ ├── toName.mdx │ │ │ │ │ └── toString.mdx │ │ │ │ ├── allowDynamicBackends.mdx │ │ │ │ ├── enforceExplicitBackends.mdx │ │ │ │ └── setDefaultDynamicBackendConfig.mdx │ │ │ ├── cache/ │ │ │ │ ├── CacheEntry/ │ │ │ │ │ ├── age.mdx │ │ │ │ │ ├── body.mdx │ │ │ │ │ ├── close.mdx │ │ │ │ │ ├── hits.mdx │ │ │ │ │ ├── length.mdx │ │ │ │ │ ├── maxAge.mdx │ │ │ │ │ ├── staleWhileRevalidate.mdx │ │ │ │ │ ├── state.mdx │ │ │ │ │ └── userMetadata.mdx │ │ │ │ ├── CacheState/ │ │ │ │ │ ├── found.mdx │ │ │ │ │ ├── mustInsertOrUpdate.mdx │ │ │ │ │ ├── stale.mdx │ │ │ │ │ └── usable.mdx │ │ │ │ ├── CoreCache/ │ │ │ │ │ ├── insert.mdx │ │ │ │ │ ├── lookup.mdx │ │ │ │ │ └── transactionLookup.mdx │ │ │ │ ├── SimpleCache/ │ │ │ │ │ ├── SimpleCache.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── getOrSet.mdx │ │ │ │ │ └── purge.mdx │ │ │ │ ├── SimpleCacheEntry/ │ │ │ │ │ ├── arrayBuffer.mdx │ │ │ │ │ ├── body.mdx │ │ │ │ │ ├── bodyUsed.mdx │ │ │ │ │ ├── json.mdx │ │ │ │ │ └── text.mdx │ │ │ │ └── TransactionCacheEntry/ │ │ │ │ ├── age.mdx │ │ │ │ ├── body.mdx │ │ │ │ ├── cancel.mdx │ │ │ │ ├── close.mdx │ │ │ │ ├── hits.mdx │ │ │ │ ├── insert.mdx │ │ │ │ ├── insertAndStreamBack.mdx │ │ │ │ ├── length.mdx │ │ │ │ ├── maxAge.mdx │ │ │ │ ├── staleWhileRevalidate.mdx │ │ │ │ ├── state.mdx │ │ │ │ ├── update.mdx │ │ │ │ └── userMetadata.mdx │ │ │ ├── cache-override/ │ │ │ │ └── CacheOverride/ │ │ │ │ └── CacheOverride.mdx │ │ │ ├── compute/ │ │ │ │ ├── purgeSurrogateKey.mdx │ │ │ │ └── vCpuTime.mdx │ │ │ ├── config-store/ │ │ │ │ └── ConfigStore/ │ │ │ │ ├── ConfigStore.mdx │ │ │ │ └── prototype/ │ │ │ │ └── get.mdx │ │ │ ├── device/ │ │ │ │ └── Device/ │ │ │ │ ├── lookup.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── brand.mdx │ │ │ │ ├── hardwareType.mdx │ │ │ │ ├── isBot.mdx │ │ │ │ ├── isDesktop.mdx │ │ │ │ ├── isGameConsole.mdx │ │ │ │ ├── isMediaPlayer.mdx │ │ │ │ ├── isMobile.mdx │ │ │ │ ├── isSmartTV.mdx │ │ │ │ ├── isTablet.mdx │ │ │ │ ├── isTouchscreen.mdx │ │ │ │ ├── model.mdx │ │ │ │ ├── name.mdx │ │ │ │ └── toJSON.mdx │ │ │ ├── dictionary/ │ │ │ │ └── Dictionary/ │ │ │ │ ├── Dictionary.mdx │ │ │ │ └── prototype/ │ │ │ │ └── get.mdx │ │ │ ├── edge-rate-limiter/ │ │ │ │ ├── EdgeRateLimiter/ │ │ │ │ │ ├── EdgeRateLimiter.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ └── checkRate.mdx │ │ │ │ ├── PenaltyBox/ │ │ │ │ │ ├── PenaltyBox.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── add.mdx │ │ │ │ │ └── has.mdx │ │ │ │ └── RateCounter/ │ │ │ │ ├── RateCounter.mdx │ │ │ │ └── prototype/ │ │ │ │ ├── increment.mdx │ │ │ │ ├── lookupCount.mdx │ │ │ │ └── lookupRate.mdx │ │ │ ├── env/ │ │ │ │ └── env.mdx │ │ │ ├── experimental/ │ │ │ │ ├── allowDynamicBackends.mdx │ │ │ │ ├── includeBytes.mdx │ │ │ │ ├── mapAndLogError.mdx │ │ │ │ ├── mapError.mdx │ │ │ │ └── sdkVersion.mdx │ │ │ ├── fanout/ │ │ │ │ └── createFanoutHandoff.mdx │ │ │ ├── geolocation/ │ │ │ │ └── getGeolocationForIpAddress.mdx │ │ │ ├── globals/ │ │ │ │ ├── AggregrateError/ │ │ │ │ │ └── AggregrateError.mdx │ │ │ │ ├── Array/ │ │ │ │ │ ├── @@species.mdx │ │ │ │ │ ├── Array.mdx │ │ │ │ │ ├── from.mdx │ │ │ │ │ ├── isArray.mdx │ │ │ │ │ ├── of.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── @@iterator.mdx │ │ │ │ │ ├── @@unscopables.mdx │ │ │ │ │ ├── at.mdx │ │ │ │ │ ├── concat.mdx │ │ │ │ │ ├── copyWithin.mdx │ │ │ │ │ ├── entries.mdx │ │ │ │ │ ├── every.mdx │ │ │ │ │ ├── fill.mdx │ │ │ │ │ ├── filter.mdx │ │ │ │ │ ├── find.mdx │ │ │ │ │ ├── findIndex.mdx │ │ │ │ │ ├── flat.mdx │ │ │ │ │ ├── flatMap.mdx │ │ │ │ │ ├── forEach.mdx │ │ │ │ │ ├── includes.mdx │ │ │ │ │ ├── indexOf.mdx │ │ │ │ │ ├── join.mdx │ │ │ │ │ ├── keys.mdx │ │ │ │ │ ├── lastIndexOf.mdx │ │ │ │ │ ├── length.mdx │ │ │ │ │ ├── map.mdx │ │ │ │ │ ├── pop.mdx │ │ │ │ │ ├── push.mdx │ │ │ │ │ ├── reduce.mdx │ │ │ │ │ ├── reduceRight.mdx │ │ │ │ │ ├── reverse.mdx │ │ │ │ │ ├── shift.mdx │ │ │ │ │ ├── slice.mdx │ │ │ │ │ ├── some.mdx │ │ │ │ │ ├── sort.mdx │ │ │ │ │ ├── splice.mdx │ │ │ │ │ ├── toLocaleString.mdx │ │ │ │ │ ├── toString.mdx │ │ │ │ │ ├── unshift.mdx │ │ │ │ │ └── values.mdx │ │ │ │ ├── ArrayBuffer/ │ │ │ │ │ ├── @@species.mdx │ │ │ │ │ ├── ArrayBuffer.mdx │ │ │ │ │ ├── isView.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── byteLength.mdx │ │ │ │ │ └── slice.mdx │ │ │ │ ├── BigInt/ │ │ │ │ │ ├── BigInt.mdx │ │ │ │ │ ├── asIntN.mdx │ │ │ │ │ ├── asUintN.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── toLocaleString.mdx │ │ │ │ │ ├── toString.mdx │ │ │ │ │ └── valueOf.mdx │ │ │ │ ├── BigInt64Array/ │ │ │ │ │ └── BigInt64Array.mdx │ │ │ │ ├── BigUint64Array/ │ │ │ │ │ └── BigUint64Array.mdx │ │ │ │ ├── Blob/ │ │ │ │ │ ├── Blob.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── arrayBuffer.mdx │ │ │ │ │ ├── size.mdx │ │ │ │ │ ├── slice.mdx │ │ │ │ │ ├── stream.mdx │ │ │ │ │ ├── text.mdx │ │ │ │ │ └── type.mdx │ │ │ │ ├── Boolean/ │ │ │ │ │ ├── Boolean.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── toString.mdx │ │ │ │ │ └── valueOf.mdx │ │ │ │ ├── ByteLengthQueuingStrategy/ │ │ │ │ │ ├── ByteLengthQueuingStrategy.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ └── size.mdx │ │ │ │ ├── CompressionStream/ │ │ │ │ │ ├── CompressionStream.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── readable.mdx │ │ │ │ │ └── writable.mdx │ │ │ │ ├── CryptoKey/ │ │ │ │ │ ├── CryptoKey.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── algorithm.mdx │ │ │ │ │ ├── extractable.mdx │ │ │ │ │ ├── type.mdx │ │ │ │ │ └── usages.mdx │ │ │ │ ├── DOMException/ │ │ │ │ │ ├── DOMException.mdx │ │ │ │ │ ├── code.mdx │ │ │ │ │ ├── message.mdx │ │ │ │ │ └── name.mdx │ │ │ │ ├── DataView/ │ │ │ │ │ ├── DataView.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── buffer.mdx │ │ │ │ │ ├── byteLength.mdx │ │ │ │ │ ├── byteOffset.mdx │ │ │ │ │ ├── getBigInt64.mdx │ │ │ │ │ ├── getBigUint64.mdx │ │ │ │ │ ├── getFloat32.mdx │ │ │ │ │ ├── getFloat64.mdx │ │ │ │ │ ├── getInt16.mdx │ │ │ │ │ ├── getInt32.mdx │ │ │ │ │ ├── getInt8.mdx │ │ │ │ │ ├── getUint16.mdx │ │ │ │ │ ├── getUint32.mdx │ │ │ │ │ ├── getUint8.mdx │ │ │ │ │ ├── setBigInt64.mdx │ │ │ │ │ ├── setBigUint64.mdx │ │ │ │ │ ├── setFloat32.mdx │ │ │ │ │ ├── setFloat64.mdx │ │ │ │ │ ├── setInt16.mdx │ │ │ │ │ ├── setInt32.mdx │ │ │ │ │ ├── setInt8.mdx │ │ │ │ │ ├── setUint16.mdx │ │ │ │ │ ├── setUint32.mdx │ │ │ │ │ └── setUint8.mdx │ │ │ │ ├── Date/ │ │ │ │ │ ├── Date.mdx │ │ │ │ │ ├── UTC.mdx │ │ │ │ │ ├── now.mdx │ │ │ │ │ ├── parse.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── @@toPrimitive.mdx │ │ │ │ │ ├── getDate.mdx │ │ │ │ │ ├── getDay.mdx │ │ │ │ │ ├── getFullYear.mdx │ │ │ │ │ ├── getHours.mdx │ │ │ │ │ ├── getMilliseconds.mdx │ │ │ │ │ ├── getMinutes.mdx │ │ │ │ │ ├── getMonth.mdx │ │ │ │ │ ├── getSeconds.mdx │ │ │ │ │ ├── getTime.mdx │ │ │ │ │ ├── getTimezoneOffset.mdx │ │ │ │ │ ├── getUTCDate.mdx │ │ │ │ │ ├── getUTCDay.mdx │ │ │ │ │ ├── getUTCFullYear.mdx │ │ │ │ │ ├── getUTCHours.mdx │ │ │ │ │ ├── getUTCMilliseconds.mdx │ │ │ │ │ ├── getUTCMinutes.mdx │ │ │ │ │ ├── getUTCMonth.mdx │ │ │ │ │ ├── getUTCSeconds.mdx │ │ │ │ │ ├── getYear.mdx │ │ │ │ │ ├── setDate.mdx │ │ │ │ │ ├── setFullYear.mdx │ │ │ │ │ ├── setHours.mdx │ │ │ │ │ ├── setMilliseconds.mdx │ │ │ │ │ ├── setMinutes.mdx │ │ │ │ │ ├── setMonth.mdx │ │ │ │ │ ├── setSeconds.mdx │ │ │ │ │ ├── setTime.mdx │ │ │ │ │ ├── setUTCDate.mdx │ │ │ │ │ ├── setUTCFullYear.mdx │ │ │ │ │ ├── setUTCHours.mdx │ │ │ │ │ ├── setUTCMilliseconds.mdx │ │ │ │ │ ├── setUTCMinutes.mdx │ │ │ │ │ ├── setUTCMonth.mdx │ │ │ │ │ ├── setUTCSeconds.mdx │ │ │ │ │ ├── setYear.mdx │ │ │ │ │ ├── toDateString.mdx │ │ │ │ │ ├── toISOString.mdx │ │ │ │ │ ├── toJSON.mdx │ │ │ │ │ ├── toLocaleDateString.mdx │ │ │ │ │ ├── toLocaleString.mdx │ │ │ │ │ ├── toLocaleTimeString.mdx │ │ │ │ │ ├── toString.mdx │ │ │ │ │ ├── toTimeString.mdx │ │ │ │ │ ├── toUTCString.mdx │ │ │ │ │ └── valueOf.mdx │ │ │ │ ├── DecompressionStream/ │ │ │ │ │ ├── DecompressionStream.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── readable.mdx │ │ │ │ │ └── writable.mdx │ │ │ │ ├── EcKeyImportParams/ │ │ │ │ │ └── EcKeyImportParams.mdx │ │ │ │ ├── EcdsaParams/ │ │ │ │ │ └── EcdsaParams.mdx │ │ │ │ ├── Error/ │ │ │ │ │ ├── Error.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── cause.mdx │ │ │ │ │ ├── message.mdx │ │ │ │ │ ├── name.mdx │ │ │ │ │ └── toString.mdx │ │ │ │ ├── EvalError/ │ │ │ │ │ └── EvalError.mdx │ │ │ │ ├── FetchEvent/ │ │ │ │ │ ├── FetchEvent.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── respondWith.mdx │ │ │ │ │ ├── sendEarlyHints.mdx │ │ │ │ │ └── waitUntil.mdx │ │ │ │ ├── FinalizationRegistry/ │ │ │ │ │ ├── FinalizationRegistry.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── register.mdx │ │ │ │ │ └── unregister.mdx │ │ │ │ ├── Float32Array/ │ │ │ │ │ └── Float32Array.mdx │ │ │ │ ├── Float64Array/ │ │ │ │ │ └── Float64Array.mdx │ │ │ │ ├── FormData/ │ │ │ │ │ ├── FormData.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── append.mdx │ │ │ │ │ ├── delete.mdx │ │ │ │ │ ├── entries.mdx │ │ │ │ │ ├── forEach.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── getAll.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ ├── keys.mdx │ │ │ │ │ ├── set.mdx │ │ │ │ │ └── values.mdx │ │ │ │ ├── Function/ │ │ │ │ │ ├── Function.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── apply.mdx │ │ │ │ │ ├── bind.mdx │ │ │ │ │ ├── call.mdx │ │ │ │ │ ├── index.mdx │ │ │ │ │ ├── length.mdx │ │ │ │ │ ├── name.mdx │ │ │ │ │ └── toString.mdx │ │ │ │ ├── Headers/ │ │ │ │ │ ├── Headers.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── append.mdx │ │ │ │ │ ├── delete.mdx │ │ │ │ │ ├── entries.mdx │ │ │ │ │ ├── forEach.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── getSetCookie.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ ├── keys.mdx │ │ │ │ │ ├── set.mdx │ │ │ │ │ └── values.mdx │ │ │ │ ├── HmacImportParams/ │ │ │ │ │ └── HmacImportParams.mdx │ │ │ │ ├── Infinity.mdx │ │ │ │ ├── Int16Array/ │ │ │ │ │ └── Int16Array.mdx │ │ │ │ ├── Int32Array/ │ │ │ │ │ └── Int32Array.mdx │ │ │ │ ├── Int8Array/ │ │ │ │ │ └── Int8Array.mdx │ │ │ │ ├── JSON/ │ │ │ │ │ ├── parse.mdx │ │ │ │ │ └── stringify.mdx │ │ │ │ ├── Map/ │ │ │ │ │ ├── @@species.mdx │ │ │ │ │ ├── Map.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── @@iterator.mdx │ │ │ │ │ ├── clear.mdx │ │ │ │ │ ├── delete.mdx │ │ │ │ │ ├── entries.mdx │ │ │ │ │ ├── forEach.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ ├── keys.mdx │ │ │ │ │ ├── set.mdx │ │ │ │ │ ├── size.mdx │ │ │ │ │ └── values.mdx │ │ │ │ ├── Math/ │ │ │ │ │ ├── E.mdx │ │ │ │ │ ├── LN10.mdx │ │ │ │ │ ├── LN2.mdx │ │ │ │ │ ├── LOG10e.mdx │ │ │ │ │ ├── LOG2e.mdx │ │ │ │ │ ├── PI.mdx │ │ │ │ │ ├── SQRT1_2.mdx │ │ │ │ │ ├── SQRT2.mdx │ │ │ │ │ ├── abs.mdx │ │ │ │ │ ├── acos.mdx │ │ │ │ │ ├── acosh.mdx │ │ │ │ │ ├── asin.mdx │ │ │ │ │ ├── asinh.mdx │ │ │ │ │ ├── atan.mdx │ │ │ │ │ ├── atan2.mdx │ │ │ │ │ ├── atanh.mdx │ │ │ │ │ ├── cbrt.mdx │ │ │ │ │ ├── ceil.mdx │ │ │ │ │ ├── clz32.mdx │ │ │ │ │ ├── cos.mdx │ │ │ │ │ ├── cosh.mdx │ │ │ │ │ ├── exp.mdx │ │ │ │ │ ├── expm1.mdx │ │ │ │ │ ├── floor.mdx │ │ │ │ │ ├── fround.mdx │ │ │ │ │ ├── hypot.mdx │ │ │ │ │ ├── imul.mdx │ │ │ │ │ ├── log.mdx │ │ │ │ │ ├── log10.mdx │ │ │ │ │ ├── log1p.mdx │ │ │ │ │ ├── log2.mdx │ │ │ │ │ ├── max.mdx │ │ │ │ │ ├── min.mdx │ │ │ │ │ ├── pow.mdx │ │ │ │ │ ├── random.mdx │ │ │ │ │ ├── round.mdx │ │ │ │ │ ├── sign.mdx │ │ │ │ │ ├── sin.mdx │ │ │ │ │ ├── sinh.mdx │ │ │ │ │ ├── sqrt.mdx │ │ │ │ │ ├── tan.mdx │ │ │ │ │ ├── tanh.mdx │ │ │ │ │ └── trunc.mdx │ │ │ │ ├── NaN.mdx │ │ │ │ ├── Number/ │ │ │ │ │ ├── MAX_SAFE_INTEGER.mdx │ │ │ │ │ ├── MAX_VALUE.mdx │ │ │ │ │ ├── MIN_SAFE_INTEGER.mdx │ │ │ │ │ ├── MIN_VALUE.mdx │ │ │ │ │ ├── NEGATIVE_INFINITY.mdx │ │ │ │ │ ├── NaN.mdx │ │ │ │ │ ├── Number.mdx │ │ │ │ │ ├── POSITIVE_INFINITY.mdx │ │ │ │ │ ├── epsilon.mdx │ │ │ │ │ ├── isFinite.mdx │ │ │ │ │ ├── isInteger.mdx │ │ │ │ │ ├── isNaN.mdx │ │ │ │ │ ├── isSafeInteger.mdx │ │ │ │ │ ├── parseFloat.mdx │ │ │ │ │ ├── parseInt.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── toExponential.mdx │ │ │ │ │ ├── toFixed.mdx │ │ │ │ │ ├── toLocaleString.mdx │ │ │ │ │ ├── toPrecision.mdx │ │ │ │ │ ├── toString.mdx │ │ │ │ │ └── valueOf.mdx │ │ │ │ ├── Object/ │ │ │ │ │ ├── Object.mdx │ │ │ │ │ ├── assign.mdx │ │ │ │ │ ├── create.mdx │ │ │ │ │ ├── defineProperties.mdx │ │ │ │ │ ├── defineProperty.mdx │ │ │ │ │ ├── entries.mdx │ │ │ │ │ ├── freeze.mdx │ │ │ │ │ ├── fromEntries.mdx │ │ │ │ │ ├── getOwnPropertyDescriptor.mdx │ │ │ │ │ ├── getOwnPropertyDescriptors.mdx │ │ │ │ │ ├── getOwnPropertyNames.mdx │ │ │ │ │ ├── getOwnPropertySymbols.mdx │ │ │ │ │ ├── getPrototypeOf.mdx │ │ │ │ │ ├── hasOwn.mdx │ │ │ │ │ ├── is.mdx │ │ │ │ │ ├── isExtensible.mdx │ │ │ │ │ ├── isFrozen.mdx │ │ │ │ │ ├── isSealed.mdx │ │ │ │ │ ├── keys.mdx │ │ │ │ │ ├── preventExtensions.mdx │ │ │ │ │ ├── prototype/ │ │ │ │ │ │ ├── constructor.mdx │ │ │ │ │ │ ├── hasOwnProperty.mdx │ │ │ │ │ │ ├── isPrototypeOf.mdx │ │ │ │ │ │ ├── propertyIsEnumerable.mdx │ │ │ │ │ │ ├── toLocaleString.mdx │ │ │ │ │ │ ├── toString.mdx │ │ │ │ │ │ └── valueOf.mdx │ │ │ │ │ ├── seal.mdx │ │ │ │ │ ├── setPrototypeOf.mdx │ │ │ │ │ └── values.mdx │ │ │ │ ├── Promise/ │ │ │ │ │ ├── @@species.mdx │ │ │ │ │ ├── Promise.mdx │ │ │ │ │ ├── all.mdx │ │ │ │ │ ├── allSettled.mdx │ │ │ │ │ ├── any.mdx │ │ │ │ │ ├── prototype/ │ │ │ │ │ │ ├── catch.mdx │ │ │ │ │ │ ├── finally.mdx │ │ │ │ │ │ └── then.mdx │ │ │ │ │ ├── race.mdx │ │ │ │ │ ├── reject.mdx │ │ │ │ │ └── resolve.mdx │ │ │ │ ├── Proxy/ │ │ │ │ │ ├── Proxy.mdx │ │ │ │ │ ├── proxy/ │ │ │ │ │ │ ├── apply.mdx │ │ │ │ │ │ ├── construct.mdx │ │ │ │ │ │ ├── defineProperty.mdx │ │ │ │ │ │ ├── deleteProperty.mdx │ │ │ │ │ │ ├── get.mdx │ │ │ │ │ │ ├── getOwnPropertyDescriptor.mdx │ │ │ │ │ │ ├── getPrototypeOf.mdx │ │ │ │ │ │ ├── has.mdx │ │ │ │ │ │ ├── isExtensible.mdx │ │ │ │ │ │ ├── ownKeys.mdx │ │ │ │ │ │ ├── preventExtensions.mdx │ │ │ │ │ │ ├── set.mdx │ │ │ │ │ │ └── setPrototypeOf.mdx │ │ │ │ │ └── revocable.mdx │ │ │ │ ├── RangeError/ │ │ │ │ │ └── RangeError.mdx │ │ │ │ ├── ReadableByteStreamController/ │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── byobRequest.mdx │ │ │ │ │ ├── close.mdx │ │ │ │ │ ├── desiredSize.mdx │ │ │ │ │ ├── enqueue.mdx │ │ │ │ │ └── error.mdx │ │ │ │ ├── ReadableStream/ │ │ │ │ │ ├── ReadableStream.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── cancel.mdx │ │ │ │ │ ├── getReader.mdx │ │ │ │ │ ├── locked.mdx │ │ │ │ │ ├── pipeThrough.mdx │ │ │ │ │ ├── pipeTo.mdx │ │ │ │ │ └── tee.mdx │ │ │ │ ├── ReadableStreamBYOBReader/ │ │ │ │ │ ├── ReadableStreamBYOBReader.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── cancel.mdx │ │ │ │ │ ├── closed.mdx │ │ │ │ │ ├── read.mdx │ │ │ │ │ └── releaseLock.mdx │ │ │ │ ├── ReadableStreamBYOBRequest/ │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── respond.mdx │ │ │ │ │ ├── respondWithNewView.mdx │ │ │ │ │ └── view.mdx │ │ │ │ ├── ReadableStreamDefaultController/ │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── close.mdx │ │ │ │ │ ├── desiredSize.mdx │ │ │ │ │ ├── enqueue.mdx │ │ │ │ │ └── error.mdx │ │ │ │ ├── ReadableStreamDefaultReader/ │ │ │ │ │ ├── ReadableStreamDefaultReader.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── cancel.mdx │ │ │ │ │ ├── closed.mdx │ │ │ │ │ ├── read.mdx │ │ │ │ │ └── releaseLock.mdx │ │ │ │ ├── ReferenceError/ │ │ │ │ │ └── ReferenceError.mdx │ │ │ │ ├── Reflect/ │ │ │ │ │ ├── apply.mdx │ │ │ │ │ ├── construct.mdx │ │ │ │ │ ├── defineProperty.mdx │ │ │ │ │ ├── deleteProperty.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── getOwnPropertyDescriptor.mdx │ │ │ │ │ ├── getPrototypeOf.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ ├── isExtensible.mdx │ │ │ │ │ ├── ownKeys.mdx │ │ │ │ │ ├── preventExtensions.mdx │ │ │ │ │ ├── set.mdx │ │ │ │ │ └── setPrototypeOf.mdx │ │ │ │ ├── Request/ │ │ │ │ │ ├── Request.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── arrayBuffer.mdx │ │ │ │ │ ├── blob.mdx │ │ │ │ │ ├── body.mdx │ │ │ │ │ ├── bodyUsed.mdx │ │ │ │ │ ├── clone.mdx │ │ │ │ │ ├── formData.mdx │ │ │ │ │ ├── headers.mdx │ │ │ │ │ ├── json.mdx │ │ │ │ │ ├── method.mdx │ │ │ │ │ ├── setManualFramingHeaders.mdx │ │ │ │ │ ├── text.mdx │ │ │ │ │ └── url.mdx │ │ │ │ ├── Response/ │ │ │ │ │ ├── Response.mdx │ │ │ │ │ ├── prototype/ │ │ │ │ │ │ ├── arrayBuffer.mdx │ │ │ │ │ │ ├── blob.mdx │ │ │ │ │ │ ├── body.mdx │ │ │ │ │ │ ├── bodyUsed.mdx │ │ │ │ │ │ ├── formData.mdx │ │ │ │ │ │ ├── headers.mdx │ │ │ │ │ │ ├── ip.mdx │ │ │ │ │ │ ├── json.mdx │ │ │ │ │ │ ├── ok.mdx │ │ │ │ │ │ ├── port.mdx │ │ │ │ │ │ ├── setManualFramingHeaders.mdx │ │ │ │ │ │ ├── status.mdx │ │ │ │ │ │ ├── statusText.mdx │ │ │ │ │ │ ├── text.mdx │ │ │ │ │ │ └── url.mdx │ │ │ │ │ └── redirect.mdx │ │ │ │ ├── RsaHashedImportParams/ │ │ │ │ │ └── RsaHashedImportParams.mdx │ │ │ │ ├── Set/ │ │ │ │ │ ├── @@species.mdx │ │ │ │ │ ├── Set.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── @@iterator.mdx │ │ │ │ │ ├── add.mdx │ │ │ │ │ ├── clear.mdx │ │ │ │ │ ├── delete.mdx │ │ │ │ │ ├── entries.mdx │ │ │ │ │ ├── forEach.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ ├── keys.mdx │ │ │ │ │ ├── size.mdx │ │ │ │ │ └── values.mdx │ │ │ │ ├── String/ │ │ │ │ │ ├── String.mdx │ │ │ │ │ ├── fromCharCode.mdx │ │ │ │ │ ├── fromCodePoint.mdx │ │ │ │ │ ├── prototype/ │ │ │ │ │ │ ├── @@iterator.mdx │ │ │ │ │ │ ├── at.mdx │ │ │ │ │ │ ├── charAt.mdx │ │ │ │ │ │ ├── charCodeAt.mdx │ │ │ │ │ │ ├── codePointAt.mdx │ │ │ │ │ │ ├── concat.mdx │ │ │ │ │ │ ├── endsWith.mdx │ │ │ │ │ │ ├── includes.mdx │ │ │ │ │ │ ├── indexOf.mdx │ │ │ │ │ │ ├── lastIndexOf.mdx │ │ │ │ │ │ ├── length.mdx │ │ │ │ │ │ ├── localeCompare.mdx │ │ │ │ │ │ ├── match.mdx │ │ │ │ │ │ ├── matchAll.mdx │ │ │ │ │ │ ├── padEnd.mdx │ │ │ │ │ │ ├── padStart.mdx │ │ │ │ │ │ ├── repeat.mdx │ │ │ │ │ │ ├── replace.mdx │ │ │ │ │ │ ├── replaceAll.mdx │ │ │ │ │ │ ├── search.mdx │ │ │ │ │ │ ├── slice.mdx │ │ │ │ │ │ ├── split.mdx │ │ │ │ │ │ ├── startsWith.mdx │ │ │ │ │ │ ├── substr.mdx │ │ │ │ │ │ ├── substring.mdx │ │ │ │ │ │ ├── toLocaleLowerCase.mdx │ │ │ │ │ │ ├── toLocaleUpperCase.mdx │ │ │ │ │ │ ├── toLowerCase.mdx │ │ │ │ │ │ ├── toString.mdx │ │ │ │ │ │ ├── toUpperCase.mdx │ │ │ │ │ │ ├── trim.mdx │ │ │ │ │ │ ├── trimEnd.mdx │ │ │ │ │ │ ├── trimStart.mdx │ │ │ │ │ │ └── valueOf.mdx │ │ │ │ │ └── raw.mdx │ │ │ │ ├── SubtleCrypto/ │ │ │ │ │ ├── SubtleCrypto.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── digest.mdx │ │ │ │ │ ├── importKey.mdx │ │ │ │ │ ├── sign.mdx │ │ │ │ │ └── verify.mdx │ │ │ │ ├── Symbol/ │ │ │ │ │ ├── Symbol.mdx │ │ │ │ │ ├── asyncIterator.mdx │ │ │ │ │ ├── for.mdx │ │ │ │ │ ├── hasInstance.mdx │ │ │ │ │ ├── isConcatSpreadable.mdx │ │ │ │ │ ├── iterator.mdx │ │ │ │ │ ├── keyFor.mdx │ │ │ │ │ ├── match.mdx │ │ │ │ │ ├── matchAll.mdx │ │ │ │ │ ├── prototype/ │ │ │ │ │ │ ├── @@toPrimitive.mdx │ │ │ │ │ │ ├── description.mdx │ │ │ │ │ │ ├── toString.mdx │ │ │ │ │ │ └── valueOf.mdx │ │ │ │ │ ├── replace.mdx │ │ │ │ │ ├── search.mdx │ │ │ │ │ ├── species.mdx │ │ │ │ │ ├── split.mdx │ │ │ │ │ ├── toPrimitive.mdx │ │ │ │ │ ├── toStringTag.mdx │ │ │ │ │ └── unscopables.mdx │ │ │ │ ├── SyntaxError/ │ │ │ │ │ └── SyntaxError.mdx │ │ │ │ ├── TextDecoder/ │ │ │ │ │ ├── TextDecoder.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── decode.mdx │ │ │ │ │ ├── encoding.mdx │ │ │ │ │ ├── fatal.mdx │ │ │ │ │ └── ignoreBOM.mdx │ │ │ │ ├── TextEncoder/ │ │ │ │ │ ├── TextEncoder.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── encode.mdx │ │ │ │ │ └── encoding.mdx │ │ │ │ ├── TransformStream/ │ │ │ │ │ ├── TransformStream.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── readable.mdx │ │ │ │ │ └── writable.mdx │ │ │ │ ├── TransformStreamDefaultController/ │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── desiredSize.mdx │ │ │ │ │ ├── enqueue.mdx │ │ │ │ │ ├── error.mdx │ │ │ │ │ └── terminate.mdx │ │ │ │ ├── TypeError/ │ │ │ │ │ └── TypeError.mdx │ │ │ │ ├── URIError/ │ │ │ │ │ └── URIError.mdx │ │ │ │ ├── URL/ │ │ │ │ │ ├── URL.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── hash.mdx │ │ │ │ │ ├── host.mdx │ │ │ │ │ ├── hostname.mdx │ │ │ │ │ ├── href.mdx │ │ │ │ │ ├── origin.mdx │ │ │ │ │ ├── password.mdx │ │ │ │ │ ├── pathname.mdx │ │ │ │ │ ├── port.mdx │ │ │ │ │ ├── protocol.mdx │ │ │ │ │ ├── search.mdx │ │ │ │ │ ├── searchParams.mdx │ │ │ │ │ ├── toJSON.mdx │ │ │ │ │ ├── toString.mdx │ │ │ │ │ └── username.mdx │ │ │ │ ├── URLSearchParams/ │ │ │ │ │ ├── URLSearchParams.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── append.mdx │ │ │ │ │ ├── delete.mdx │ │ │ │ │ ├── entries.mdx │ │ │ │ │ ├── forEach.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ ├── keys.mdx │ │ │ │ │ ├── set.mdx │ │ │ │ │ ├── sort.mdx │ │ │ │ │ ├── toString.mdx │ │ │ │ │ └── values.mdx │ │ │ │ ├── Uint16Array/ │ │ │ │ │ └── Uint16Array.mdx │ │ │ │ ├── Uint32Array/ │ │ │ │ │ └── Uint32Array.mdx │ │ │ │ ├── Uint8Array/ │ │ │ │ │ └── Uint8Array.mdx │ │ │ │ ├── Uint8ClampedArray/ │ │ │ │ │ └── Uint8ClampedArray.mdx │ │ │ │ ├── WeakMap/ │ │ │ │ │ ├── WeakMap.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── delete.mdx │ │ │ │ │ ├── get.mdx │ │ │ │ │ ├── has.mdx │ │ │ │ │ └── set.mdx │ │ │ │ ├── WeakRef/ │ │ │ │ │ ├── WeakRef.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ └── deref.mdx │ │ │ │ ├── WeakSet/ │ │ │ │ │ ├── WeakSet.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── add.mdx │ │ │ │ │ ├── delete.mdx │ │ │ │ │ └── has.mdx │ │ │ │ ├── WorkerLocation/ │ │ │ │ │ ├── WorkerLocation.mdx │ │ │ │ │ ├── hash.mdx │ │ │ │ │ ├── host.mdx │ │ │ │ │ ├── hostname.mdx │ │ │ │ │ ├── href.mdx │ │ │ │ │ ├── origin.mdx │ │ │ │ │ ├── pathname.mdx │ │ │ │ │ ├── port.mdx │ │ │ │ │ ├── protocol.mdx │ │ │ │ │ ├── search.mdx │ │ │ │ │ └── toString.mdx │ │ │ │ ├── WritableStream/ │ │ │ │ │ ├── WritableStream.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── abort.mdx │ │ │ │ │ ├── getWriter.mdx │ │ │ │ │ └── locked.mdx │ │ │ │ ├── WritableStreamDefaultController/ │ │ │ │ │ └── error.mdx │ │ │ │ ├── WritableStreamDefaultWriter/ │ │ │ │ │ ├── WritableStreamDefaultWriter.mdx │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── abort.mdx │ │ │ │ │ ├── close.mdx │ │ │ │ │ ├── closed.mdx │ │ │ │ │ ├── desiredSize.mdx │ │ │ │ │ ├── ready.mdx │ │ │ │ │ ├── releaseLock.mdx │ │ │ │ │ └── write.mdx │ │ │ │ ├── atob.mdx │ │ │ │ ├── btoa.mdx │ │ │ │ ├── clearInterval.mdx │ │ │ │ ├── clearTimeout.mdx │ │ │ │ ├── console/ │ │ │ │ │ ├── assert.mdx │ │ │ │ │ ├── clear.mdx │ │ │ │ │ ├── count.mdx │ │ │ │ │ ├── countReset.mdx │ │ │ │ │ ├── debug.mdx │ │ │ │ │ ├── dir.mdx │ │ │ │ │ ├── dirxml.mdx │ │ │ │ │ ├── error.mdx │ │ │ │ │ ├── group.mdx │ │ │ │ │ ├── groupCollapsed.mdx │ │ │ │ │ ├── groupEnd.mdx │ │ │ │ │ ├── info.mdx │ │ │ │ │ ├── log.mdx │ │ │ │ │ ├── time.mdx │ │ │ │ │ ├── timeEnd.mdx │ │ │ │ │ ├── timeLog.mdx │ │ │ │ │ ├── trace.mdx │ │ │ │ │ └── warn.mdx │ │ │ │ ├── crypto/ │ │ │ │ │ ├── getRandomValues.mdx │ │ │ │ │ ├── randomUUID.mdx │ │ │ │ │ └── subtle.mdx │ │ │ │ ├── decodeURI.mdx │ │ │ │ ├── decodeURIComponent.mdx │ │ │ │ ├── encodeURI.mdx │ │ │ │ ├── encodeURIComponent.mdx │ │ │ │ ├── escape.mdx │ │ │ │ ├── eval.mdx │ │ │ │ ├── fetch.mdx │ │ │ │ ├── globalThis.mdx │ │ │ │ ├── isFinite.mdx │ │ │ │ ├── isNaN.mdx │ │ │ │ ├── location.mdx │ │ │ │ ├── parseFloat.mdx │ │ │ │ ├── parseInt.mdx │ │ │ │ ├── performance/ │ │ │ │ │ ├── now.mdx │ │ │ │ │ └── timeOrigin.mdx │ │ │ │ ├── setInterval.mdx │ │ │ │ ├── setTimeout.mdx │ │ │ │ ├── structuredClone.mdx │ │ │ │ ├── undefined.mdx │ │ │ │ └── unescape.mdx │ │ │ ├── html-rewriter/ │ │ │ │ ├── Element/ │ │ │ │ │ └── prototype/ │ │ │ │ │ ├── after.mdx │ │ │ │ │ ├── append.mdx │ │ │ │ │ ├── before.mdx │ │ │ │ │ ├── hasAttribute.mdx │ │ │ │ │ ├── prepend.mdx │ │ │ │ │ ├── removeAttribute.mdx │ │ │ │ │ ├── replaceChildren.mdx │ │ │ │ │ ├── replaceWith.mdx │ │ │ │ │ ├── selector.mdx │ │ │ │ │ ├── setAttribute.mdx │ │ │ │ │ └── tag.mdx │ │ │ │ └── HTMLRewritingStream/ │ │ │ │ ├── HTMLRewritingStream.mdx │ │ │ │ └── prototype/ │ │ │ │ └── onElement.mdx │ │ │ ├── image-optimizer/ │ │ │ │ ├── Auto.mdx │ │ │ │ ├── BWAlgorithm.mdx │ │ │ │ ├── CropMode.mdx │ │ │ │ ├── Disable.mdx │ │ │ │ ├── Enable.mdx │ │ │ │ ├── Fit.mdx │ │ │ │ ├── Format.mdx │ │ │ │ ├── Metadata.mdx │ │ │ │ ├── Optim
SYMBOL INDEX (1963 symbols across 156 files)
FILE: ci/format-changelog.js
function getAst (line 50) | function getAst(markdownString) {
function format (line 55) | function format(ast, path) {
FILE: compute-file-server-cli/src/main.rs
constant PARALLEL_REQUESTS (line 20) | const PARALLEL_REQUESTS: usize = 10;
constant RETRY_REQUESTS (line 21) | const RETRY_REQUESTS: usize = 5;
function lookup (line 434) | fn lookup(extn: &str) -> Option<&&str> {
type Metadata (line 444) | struct Metadata {
type KVStores (line 455) | struct KVStores {
type KVStore (line 462) | struct KVStore {
type Meta (line 473) | struct Meta {
function create_store (line 478) | async fn create_store(name: &str, token: &str) -> Result<String, Box<dyn...
function get_or_create_store (line 499) | async fn get_or_create_store(
function get_active_version_of_service (line 538) | async fn get_active_version_of_service(
function clone_version_of_service (line 569) | async fn clone_version_of_service(
function activate_version_of_service (line 594) | async fn activate_version_of_service(
function cli (line 619) | fn cli() -> Command {
function link (line 668) | async fn link(sub_matches: &clap::ArgMatches) -> Result<(), Box<dyn std:...
function upload (line 721) | async fn upload(sub_matches: &clap::ArgMatches) -> Result<(), Box<dyn st...
function local (line 864) | async fn local(sub_matches: &clap::ArgMatches) -> Result<(), Box<dyn std...
function main (line 957) | async fn main() -> Result<(), Box<dyn std::error::Error>> {
FILE: documentation/app/c-at-e-file-server.js
function redirectMinorVersions (line 10) | function redirectMinorVersions(request) {
function get (line 51) | async function get(store_name, request) {
function handleRangeRequest (line 102) | async function handleRangeRequest(item, range, headers, isHeadRequest) {
function concat (line 167) | function concat(views, length) {
function checkPreconditions (line 180) | function checkPreconditions(request, responseHeaders) {
function isWeak (line 257) | function isWeak(etag) {
function isStrong (line 261) | function isStrong(etag) {
function opaqueTag (line 265) | function opaqueTag(etag) {
function weakMatch (line 271) | function weakMatch(a, b) {
function strongMatch (line 277) | function strongMatch(a, b) {
function splitList (line 283) | function splitList(value) {
function ifMatch (line 288) | function ifMatch(validationFields, header) {
function ifNoneMatch (line 315) | function ifNoneMatch(validationFields, header) {
function ifModifiedSince (line 334) | function ifModifiedSince(validationFields, header) {
function ifRange (line 366) | function ifRange(validationFields, header) {
FILE: documentation/app/src/index.js
function app (line 9) | async function app(event) {
FILE: documentation/src/components/HomepageFeatures/index.js
function Feature (line 32) | function Feature({Svg, title, description}) {
function HomepageFeatures (line 45) | function HomepageFeatures() {
FILE: documentation/src/components/fiddle/index.js
function hexString (line 3) | function hexString(buffer) {
function compat (line 7) | function compat(data) {
function getFrameUrl (line 44) | async function getFrameUrl(config) {
function Fiddle (line 81) | function Fiddle({config, children}) {
FILE: documentation/src/pages/index.js
function HomepageHeader (line 10) | function HomepageHeader() {
function Home (line 29) | function Home() {
FILE: integration-tests/js-compute/cleanupAll.js
function existingList (line 17) | function existingList(stores, prefix) {
constant FASTLY_API_TOKEN (line 40) | const FASTLY_API_TOKEN = process.env.FASTLY_API_TOKEN;
function removeConfigStores (line 42) | async function removeConfigStores(links, services) {
function removeKVStores (line 67) | async function removeKVStores() {
function removeSecretStores (line 83) | async function removeSecretStores(services) {
function removeAcls (line 101) | async function removeAcls(services) {
function getServices (line 119) | async function getServices() {
function removeServices (line 132) | async function removeServices(services) {
function removeLinks (line 141) | async function removeLinks(services) {
FILE: integration-tests/js-compute/compare-downstream-response.js
function maybeUint8Array (line 16) | function maybeUint8Array(body) {
function concat (line 27) | function concat(buffers) {
function bufferToString (line 38) | function bufferToString(actualBodyChunks) {
function bufferEq (line 46) | function bufferEq(a, b) {
function compareDownstreamResponse (line 53) | async function compareDownstreamResponse(
FILE: integration-tests/js-compute/env.js
constant GLOBAL_PREFIX (line 1) | const GLOBAL_PREFIX = 'js_integration_test_';
function applyGlobalPrefix (line 3) | function applyGlobalPrefix(map) {
function getEnv (line 10) | function getEnv(serviceName) {
function getPrefixes (line 20) | function getPrefixes() {
FILE: integration-tests/js-compute/fixtures/app/src/assertions.js
function sleep (line 3) | async function sleep(milliseconds) {
function streamToString (line 10) | async function streamToString(stream) {
function iteratableToStream (line 24) | function iteratableToStream(iterable) {
function pass (line 35) | function pass(message = '') {
function prettyPrintSymbol (line 39) | function prettyPrintSymbol(a) {
function assert (line 45) | function assert(actual, expected, code) {
function ok (line 55) | function ok(truthy, code) {
function assertResolves (line 63) | async function assertResolves(func) {
function assertRejects (line 73) | async function assertRejects(func, errorClass, errorMessage) {
function assertThrows (line 100) | function assertThrows(func, errorClass, errorMessage) {
function assertDoesNotThrow (line 127) | function assertDoesNotThrow(func) {
function deepStrictEqual (line 137) | function deepStrictEqual(a, b) {
function deepEqual (line 143) | function deepEqual(a, b) {
FILE: integration-tests/js-compute/fixtures/app/src/async-select.js
function processUpstreamRequests (line 25) | async function processUpstreamRequests(requests, requestsData) {
FILE: integration-tests/js-compute/fixtures/app/src/byob.js
method pull (line 7) | async pull(controller) {
FILE: integration-tests/js-compute/fixtures/app/src/cache-core.js
function iteratableToStream (line 21) | function iteratableToStream(iterable) {
function ensureLion (line 33) | function ensureLion() {
method toString (line 571) | toString() {
method toString (line 789) | toString() {
method toString (line 1343) | toString() {
method toString (line 1533) | toString() {
method toString (line 2031) | toString() {
FILE: integration-tests/js-compute/fixtures/app/src/cache-override.js
method afterSend (line 134) | async afterSend(resp) {
FILE: integration-tests/js-compute/fixtures/app/src/cache-simple.js
method toString (line 377) | toString() {
method toString (line 505) | toString() {
method [Symbol.toPrimitive] (line 535) | [Symbol.toPrimitive](type) {
method [Symbol.toPrimitive] (line 743) | [Symbol.toPrimitive](type) {
method toString (line 860) | toString() {
method toString (line 1016) | toString() {
function simpleCacheEntryInterfaceTests (line 1209) | async function simpleCacheEntryInterfaceTests() {
method toString (line 1580) | toString() {
method [Symbol.toPrimitive] (line 1676) | [Symbol.toPrimitive](type) {
method [Symbol.toPrimitive] (line 1905) | [Symbol.toPrimitive](type) {
method toString (line 2040) | toString() {
FILE: integration-tests/js-compute/fixtures/app/src/config-store.js
constant CONFIG_STORE_NAME (line 9) | const CONFIG_STORE_NAME = env('CONFIG_STORE_NAME');
FILE: integration-tests/js-compute/fixtures/app/src/crypto.js
function freshPublicRsaKey (line 63) | function freshPublicRsaKey() {
function freshPublicEcdsaKey (line 66) | function freshPublicEcdsaKey() {
function freshPrivateEcdsaKey (line 69) | function freshPrivateEcdsaKey() {
function freshPrivateRsaKey (line 72) | function freshPrivateRsaKey() {
method toString (line 161) | toString() {
method toString (line 239) | toString() {
method toString (line 406) | toString() {
method toString (line 458) | toString() {
method toString (line 533) | toString() {
method toString (line 601) | toString() {
method toString (line 769) | toString() {
method toString (line 799) | toString() {
method toString (line 877) | toString() {
method toString (line 920) | toString() {
method toString (line 1033) | toString() {
method toString (line 1221) | toString() {
method toString (line 1383) | toString() {
method toString (line 1624) | toString() {
FILE: integration-tests/js-compute/fixtures/app/src/device.js
method toString (line 280) | toString() {
FILE: integration-tests/js-compute/fixtures/app/src/dictionary.js
constant DICTIONARY_NAME (line 8) | const DICTIONARY_NAME = env('DICTIONARY_NAME');
method toString (line 34) | toString() {
method toString (line 123) | toString() {
function dictionaryInterfaceTests (line 200) | function dictionaryInterfaceTests() {
function createValidDictionary (line 347) | function createValidDictionary() {
FILE: integration-tests/js-compute/fixtures/app/src/edge-rate-limiter.js
constant FASTLY_SERVICE_NAME (line 13) | const FASTLY_SERVICE_NAME = env('FASTLY_SERVICE_NAME');
constant PENALTY_BOX_NAME (line 14) | const PENALTY_BOX_NAME = `pb${FASTLY_SERVICE_NAME}`;
constant RATE_COUNTER_NAME (line 15) | const RATE_COUNTER_NAME = `rc${FASTLY_SERVICE_NAME}`;
method toString (line 370) | toString() {
method toString (line 418) | toString() {
method toString (line 515) | toString() {
method toString (line 622) | toString() {
method toString (line 1004) | toString() {
method toString (line 1050) | toString() {
method toString (line 1104) | toString() {
method toString (line 1465) | toString() {
FILE: integration-tests/js-compute/fixtures/app/src/fanout.js
method toString (line 39) | toString() {
FILE: integration-tests/js-compute/fixtures/app/src/fast-check.js
method constructor (line 139) | constructor(interruptExecution = false) {
method isFailure (line 144) | static isFailure(err) {
function pre (line 153) | function pre(expectTruthy) {
method [Symbol.iterator] (line 161) | [Symbol.iterator]() {
method next (line 164) | next(value) {
function nilHelper (line 169) | function nilHelper() {
method nil (line 219) | static nil() {
method of (line 222) | static of(...elements) {
method constructor (line 225) | constructor(g) {
method next (line 228) | next() {
method [safeSymbolIterator] (line 231) | [safeSymbolIterator]() {
method map (line 234) | map(f) {
method flatMap (line 237) | flatMap(f) {
method dropWhile (line 240) | dropWhile(f) {
method drop (line 250) | drop(n) {
method takeWhile (line 260) | takeWhile(f) {
method take (line 263) | take(n) {
method filter (line 266) | filter(f) {
method every (line 269) | every(f) {
method has (line 277) | has(f) {
method join (line 285) | join(...others) {
method getNthOrLast (line 288) | getNthOrLast(nth) {
function stream (line 298) | function stream(g) {
function hasCloneMethod (line 304) | function hasCloneMethod(instance) {
function cloneIfNeeded (line 312) | function cloneIfNeeded(instance) {
method constructor (line 319) | constructor(value_, context2, customGetValue = void 0) {
method getValue (line 332) | getValue() {
method filter (line 347) | filter(refinement) {
method map (line 350) | map(mapper, unmapper) {
method chain (line 353) | chain(chainer) {
method noShrink (line 356) | noShrink() {
method noBias (line 359) | noBias() {
method constructor (line 364) | constructor(arb, chainer) {
method generate (line 369) | generate(mrng, biasFactor) {
method canShrinkWithoutContext (line 374) | canShrinkWithoutContext(value) {
method shrink (line 377) | shrink(value, context2) {
method valueChainer (line 409) | valueChainer(v, generateMrng, clonedMrng, biasFactor) {
method isSafeContext (line 423) | isSafeContext(context2) {
method constructor (line 438) | constructor(arb, mapper, unmapper) {
method generate (line 445) | generate(mrng, biasFactor) {
method canShrinkWithoutContext (line 449) | canShrinkWithoutContext(value) {
method shrink (line 460) | shrink(value, context2) {
method mapperWithCloneIfNeeded (line 472) | mapperWithCloneIfNeeded(v) {
method valueMapper (line 488) | valueMapper(v) {
method isSafeContext (line 493) | isSafeContext(context2) {
method constructor (line 503) | constructor(arb, refinement) {
method generate (line 509) | generate(mrng, biasFactor) {
method canShrinkWithoutContext (line 517) | canShrinkWithoutContext(value) {
method shrink (line 520) | shrink(value, context2) {
method refinementOnValue (line 523) | refinementOnValue(v) {
method constructor (line 528) | constructor(arb) {
method generate (line 532) | generate(mrng, biasFactor) {
method canShrinkWithoutContext (line 535) | canShrinkWithoutContext(value) {
method shrink (line 538) | shrink(_value, _context) {
method noShrink (line 541) | noShrink() {
method constructor (line 546) | constructor(arb) {
method generate (line 550) | generate(mrng, _biasFactor) {
method canShrinkWithoutContext (line 553) | canShrinkWithoutContext(value) {
method shrink (line 556) | shrink(value, context2) {
method noBias (line 559) | noBias() {
function isArbitrary (line 563) | function isArbitrary(instance) {
function assertIsArbitrary (line 572) | function assertIsArbitrary(instance) {
function safeExtractApply (line 581) | function safeExtractApply(f) {
function safeApplyHacky (line 588) | function safeApplyHacky(f, instance, args) {
function safeApply (line 595) | function safeApply(f, instance, args) {
function extractForEach (line 638) | function extractForEach(instance) {
function extractIndexOf (line 645) | function extractIndexOf(instance) {
function extractJoin (line 652) | function extractJoin(instance) {
function extractMap (line 659) | function extractMap(instance) {
function extractFilter (line 666) | function extractFilter(instance) {
function extractPush (line 673) | function extractPush(instance) {
function extractPop (line 680) | function extractPop(instance) {
function extractSplice (line 687) | function extractSplice(instance) {
function extractSlice (line 694) | function extractSlice(instance) {
function extractSort (line 701) | function extractSort(instance) {
function extractEvery (line 708) | function extractEvery(instance) {
function safeForEach (line 715) | function safeForEach(instance, fn) {
function safeIndexOf (line 721) | function safeIndexOf(instance, ...args) {
function safeJoin (line 727) | function safeJoin(instance, ...args) {
function safeMap (line 733) | function safeMap(instance, fn) {
function safeFilter (line 739) | function safeFilter(instance, predicate) {
function safePush (line 745) | function safePush(instance, ...args) {
function safePop (line 751) | function safePop(instance) {
function safeSplice (line 757) | function safeSplice(instance, ...args) {
function safeSlice (line 763) | function safeSlice(instance, ...args) {
function safeSort (line 769) | function safeSort(instance, ...args) {
function safeEvery (line 775) | function safeEvery(instance, ...args) {
function extractGetTime (line 783) | function extractGetTime(instance) {
function extractToISOString (line 790) | function extractToISOString(instance) {
function safeGetTime (line 797) | function safeGetTime(instance) {
function safeToISOString (line 803) | function safeToISOString(instance) {
function extractAdd (line 810) | function extractAdd(instance) {
function safeAdd (line 817) | function safeAdd(instance, value) {
function extractSplit (line 832) | function extractSplit(instance) {
function extractStartsWith (line 839) | function extractStartsWith(instance) {
function extractEndsWith (line 846) | function extractEndsWith(instance) {
function extractSubstring (line 853) | function extractSubstring(instance) {
function extractToLowerCase (line 860) | function extractToLowerCase(instance) {
function extractToUpperCase (line 867) | function extractToUpperCase(instance) {
function extractPadStart (line 874) | function extractPadStart(instance) {
function extractCharCodeAt (line 881) | function extractCharCodeAt(instance) {
function extractReplace (line 888) | function extractReplace(instance) {
function safeSplit (line 895) | function safeSplit(instance, ...args) {
function safeStartsWith (line 901) | function safeStartsWith(instance, ...args) {
function safeEndsWith (line 907) | function safeEndsWith(instance, ...args) {
function safeSubstring (line 913) | function safeSubstring(instance, ...args) {
function safeToLowerCase (line 919) | function safeToLowerCase(instance) {
function safeToUpperCase (line 925) | function safeToUpperCase(instance) {
function safePadStart (line 931) | function safePadStart(instance, ...args) {
function safeCharCodeAt (line 937) | function safeCharCodeAt(instance, index) {
function safeReplace (line 943) | function safeReplace(instance, pattern, replacement) {
function extractNumberToString (line 950) | function extractNumberToString(instance) {
function safeNumberToString (line 957) | function safeNumberToString(instance, ...args) {
function safeHasOwnProperty (line 965) | function safeHasOwnProperty(instance, v) {
function safeToString (line 968) | function safeToString(instance) {
method constructor (line 974) | constructor(producer) {
method [Symbol.iterator] (line 977) | [Symbol.iterator]() {
method next (line 983) | next() {
function makeLazy (line 990) | function makeLazy(producer) {
function tupleMakeItCloneable (line 997) | function tupleMakeItCloneable(vs, values) {
function tupleWrapper (line 1009) | function tupleWrapper(values) {
function tupleShrink (line 1024) | function tupleShrink(arbs, value, context2) {
method constructor (line 1051) | constructor(arbs) {
method generate (line 1062) | generate(mrng, biasFactor) {
method canShrinkWithoutContext (line 1069) | canShrinkWithoutContext(value) {
method shrink (line 1080) | shrink(value, context2) {
function tuple (line 1086) | function tuple(...arbs) {
function runIdToFrequency (line 1092) | function runIdToFrequency(runId) {
function configureGlobal (line 1098) | function configureGlobal(parameters) {
function readConfigureGlobal (line 1101) | function readConfigureGlobal() {
function resetConfigureGlobal (line 1104) | function resetConfigureGlobal() {
function noUndefinedAsContext (line 1110) | function noUndefinedAsContext(value) {
method constructor (line 1126) | constructor(arb, predicate) {
method isAsync (line 1146) | isAsync() {
method generate (line 1149) | generate(mrng, runId) {
method shrink (line 1156) | shrink(value) {
method runBeforeEach (line 1167) | async runBeforeEach() {
method runAfterEach (line 1170) | async runAfterEach() {
method run (line 1173) | async run(v, dontRunHook) {
method beforeEach (line 1197) | beforeEach(hookFunction) {
method afterEach (line 1202) | afterEach(hookFunction) {
method constructor (line 1212) | constructor(arb) {
method generate (line 1216) | generate(mrng, biasFactor) {
method canShrinkWithoutContext (line 1220) | canShrinkWithoutContext(value) {
method shrink (line 1223) | shrink(value, context2) {
function asyncProperty (line 1234) | function asyncProperty(...args) {
method constructor (line 1247) | constructor(arb, predicate) {
method isAsync (line 1269) | isAsync() {
method generate (line 1272) | generate(mrng, runId) {
method shrink (line 1279) | shrink(value) {
method runBeforeEach (line 1290) | runBeforeEach() {
method runAfterEach (line 1293) | runAfterEach() {
method run (line 1296) | run(v, dontRunHook) {
method beforeEach (line 1320) | beforeEach(hookFunction) {
method afterEach (line 1325) | afterEach(hookFunction) {
function property (line 1334) | function property(...args) {
function unsafeGenerateN (line 1368) | function unsafeGenerateN(rng, num) {
function generateN (line 1375) | function generateN(rng, num) {
function unsafeSkipN (line 1380) | function unsafeSkipN(rng, num) {
function skipN (line 1385) | function skipN(rng, num) {
function LinearCongruential322 (line 1403) | function LinearCongruential322(seed) {
function fromState (line 1429) | function fromState(state) {
function MersenneTwister2 (line 1477) | function MersenneTwister2(states, index) {
function fromState2 (line 1577) | function fromState2(state) {
function XorShift128Plus2 (line 1589) | function XorShift128Plus2(s01, s00, s11, s10) {
function fromState3 (line 1651) | function fromState3(state) {
function XoroShiro128Plus2 (line 1669) | function XoroShiro128Plus2(s01, s00, s11, s10) {
function fromState4 (line 1727) | function fromState4(state) {
function addArrayIntToNew (line 1744) | function addArrayIntToNew(arrayIntA, arrayIntB) {
function addOneToPositiveArrayInt (line 1771) | function addOneToPositiveArrayInt(arrayInt) {
function isStrictlySmaller (line 1785) | function isStrictlySmaller(dataA, dataB) {
function substractArrayIntToNew (line 1797) | function substractArrayIntToNew(arrayIntA, arrayIntB) {
function trimArrayIntInplace (line 1826) | function trimArrayIntInplace(arrayInt) {
function fromNumberToArrayInt64 (line 1842) | function fromNumberToArrayInt64(out, n) {
function substractArrayInt64 (line 1855) | function substractArrayInt64(out, arrayIntA, arrayIntB) {
function unsafeUniformIntDistributionInternal (line 1892) | function unsafeUniformIntDistributionInternal(rangeSize, rng) {
function unsafeUniformArrayIntDistributionInternal (line 1903) | function unsafeUniformArrayIntDistributionInternal(out, rangeSize, rng) {
function unsafeUniformArrayIntDistribution (line 1924) | function unsafeUniformArrayIntDistribution(from, to, rng) {
function uniformArrayIntDistribution (line 1938) | function uniformArrayIntDistribution(from, to, rng) {
function unsafeUniformBigIntDistribution (line 1951) | function unsafeUniformBigIntDistribution(from, to, rng) {
function uniformBigIntDistribution (line 1976) | function uniformBigIntDistribution(from, to, rng) {
function uniformLargeIntInternal (line 1993) | function uniformLargeIntInternal(from, to, rangeSize, rng) {
function unsafeUniformIntDistribution (line 2015) | function unsafeUniformIntDistribution(from, to, rng) {
function uniformIntDistribution (line 2025) | function uniformIntDistribution(from, to, rng) {
method constructor (line 2057) | constructor(op) {
method toParameters (line 2104) | toParameters() {
method read (line 2129) | static read(op) {
function interruptAfter (line 2218) | function interruptAfter(timeMs, setTimeoutSafe, clearTimeoutSafe) {
method constructor (line 2232) | constructor(
method isAsync (line 2254) | isAsync() {
method generate (line 2257) | generate(mrng, runId) {
method shrink (line 2260) | shrink(value) {
method run (line 2263) | run(v, dontRunHook) {
method constructor (line 2311) | constructor(property2, timeMs, setTimeoutSafe, clearTimeoutSafe) {
method isAsync (line 2324) | isAsync() {
method generate (line 2327) | generate(mrng, runId) {
method shrink (line 2330) | shrink(value) {
method run (line 2333) | async run(v, dontRunHook) {
method constructor (line 2350) | constructor(property2) {
method isAsync (line 2360) | isAsync() {
method generate (line 2363) | generate(mrng, _runId) {
method shrink (line 2366) | shrink(value) {
method run (line 2369) | run(v, dontRunHook) {
function hasToStringMethod (line 2387) | function hasToStringMethod(instance) {
function hasAsyncToStringMethod (line 2396) | function hasAsyncToStringMethod(instance) {
function getSymbolDescription (line 2405) | function getSymbolDescription(s) {
function stringifyNumber (line 2410) | function stringifyNumber(numValue) {
function isSparseArray (line 2422) | function isSparseArray(arr) {
function stringifyInternal (line 2431) | function stringifyInternal(value, previousValues, getAsyncContent) {
function stringify (line 2605) | function stringify(value) {
function possiblyAsyncStringify (line 2611) | function possiblyAsyncStringify(value) {
function asyncStringify (line 2668) | async function asyncStringify(value) {
function fromSyncCached (line 2673) | function fromSyncCached(cachedValue) {
function fromCached (line 2676) | function fromCached(...data) {
function fromCachedUnsafe (line 2680) | function fromCachedUnsafe(cachedValue, isAsync) {
method constructor (line 2684) | constructor(property2, skipRuns) {
method isAsync (line 2696) | isAsync() {
method generate (line 2699) | generate(mrng, runId) {
method shrink (line 2702) | shrink(value) {
method run (line 2705) | run(v, dontRunHook) {
function decorateProperty (line 2724) | function decorateProperty(rawProperty, qParams) {
method constructor (line 2776) | constructor(verbosity, interruptedAsFailure) {
method appendExecutionTree (line 2791) | appendExecutionTree(status, value) {
method fail (line 2796) | fail(value, id, failure) {
method skip (line 2809) | skip(value) {
method success (line 2817) | success(value) {
method interrupt (line 2825) | interrupt() {
method extractFailures (line 2828) | extractFailures() {
method toRunDetails (line 2844) | toRunDetails(seed, basePath, maxSkips, qParams) {
method constructor (line 2904) | constructor(sourceValues, shrink, verbose, interruptedAsFailure) {
method [Symbol.iterator] (line 2911) | [Symbol.iterator]() {
method next (line 2914) | next() {
method handleResult (line 2923) | handleResult(result) {
method constructor (line 2947) | constructor(initialValues, maxInitialIterations, remainingSkips) {
method [Symbol.iterator] (line 2952) | [Symbol.iterator]() {
method next (line 2955) | next() {
method skippedOne (line 2962) | skippedOne() {
method constructor (line 2970) | constructor(sourceRng) {
method clone (line 2973) | clone() {
method next (line 2976) | next(bits) {
method nextBoolean (line 2979) | nextBoolean() {
method nextInt (line 2982) | nextInt(min, max) {
method nextBigInt (line 2989) | nextBigInt(min, max) {
method nextArrayInt (line 2992) | nextArrayInt(min, max) {
method nextDouble (line 2995) | nextDouble() {
method getState (line 3000) | getState() {
function tossNext (line 3016) | function tossNext(generator, rng, index) {
function lazyGenerate (line 3028) | function lazyGenerate(generator, rng, idx) {
function produce (line 3042) | function produce(producer) {
function pathWalk (line 3045) | function pathWalk(path, initialProducers, shrink) {
function formatHints (line 3067) | function formatHints(hints) {
function formatFailures (line 3073) | function formatFailures(failures, stringifyOne) {
function formatExecutionSummary (line 3077) | function formatExecutionSummary(executionTrees, stringifyOne) {
function preFormatTooManySkipped (line 3104) | function preFormatTooManySkipped(out, stringifyOne) {
function preFormatFailure (line 3125) | function preFormatFailure(out, stringifyOne) {
function preFormatEarlyInterrupted (line 3149) | function preFormatEarlyInterrupted(out, stringifyOne) {
function defaultReportMessageInternal (line 3164) | function defaultReportMessageInternal(out, stringifyOne) {
function defaultReportMessage (line 3183) | function defaultReportMessage(out) {
function asyncDefaultReportMessage (line 3186) | async function asyncDefaultReportMessage(out) {
function buildError (line 3210) | function buildError(errorMessage, out) {
function throwIfFailed (line 3221) | function throwIfFailed(out) {
function asyncThrowIfFailed (line 3225) | async function asyncThrowIfFailed(out) {
function reportRunDetails (line 3229) | function reportRunDetails(out) {
function asyncReportRunDetails (line 3236) | async function asyncReportRunDetails(out) {
function runIt (line 3246) | function runIt(property2, shrink, sourceValues, verbose, interruptedAsFa...
function asyncRunIt (line 3267) | async function asyncRunIt(
function check (line 3294) | function check(rawProperty, params) {
function assert (line 3360) | function assert(property2, params) {
function toProperty (line 3367) | function toProperty(generator, qParams) {
function streamSample (line 3373) | function streamSample(generator, params) {
function sample (line 3407) | function sample(generator, params) {
function round2 (line 3410) | function round2(n) {
function statistics (line 3413) | function statistics(generator, classify, params) {
function buildGeneratorValue (line 3446) | function buildGeneratorValue(
function buildStableArbitraryGeneratorCache (line 3501) | function buildStableArbitraryGeneratorCache(isEqual) {
function naiveIsEqual (line 3521) | function naiveIsEqual(v1, v2) {
method constructor (line 3553) | constructor() {
method generate (line 3557) | generate(mrng, biasFactor) {
method canShrinkWithoutContext (line 3560) | canShrinkWithoutContext(value) {
method shrink (line 3563) | shrink(_value, context2) {
function gen (line 3597) | function gen() {
function integerLogLike (line 3604) | function integerLogLike(v) {
function bigIntLogLike (line 3607) | function bigIntLogLike(v) {
function biasNumericRange (line 3611) | function biasNumericRange(min, max, logLike) {
function halvePosInteger (line 3635) | function halvePosInteger(n) {
function halveNegInteger (line 3638) | function halveNegInteger(n) {
function shrinkInteger (line 3641) | function shrinkInteger(current, target, tryTargetAsap) {
method constructor (line 3677) | constructor(min, max) {
method generate (line 3682) | generate(mrng, biasFactor) {
method canShrinkWithoutContext (line 3686) | canShrinkWithoutContext(value) {
method shrink (line 3695) | shrink(current, context2) {
method defaultTarget (line 3705) | defaultTarget() {
method computeGenerateRange (line 3711) | computeGenerateRange(mrng, biasFactor) {
method isLastChanceTry (line 3722) | isLastChanceTry(current, context2) {
method isValidContext (line 3727) | static isValidContext(current, context2) {
function buildCompleteIntegerConstraints (line 3743) | function buildCompleteIntegerConstraints(constraints) {
function integer (line 3748) | function integer(constraints = {}) {
function getDepthContextFor (line 3766) | function getDepthContextFor(contextMeta) {
function createDepthIdentifier (line 3781) | function createDepthIdentifier() {
method constructor (line 3788) | constructor(arb, mrng, biasFactor) {
method attemptExact (line 3793) | attemptExact() {
method next (line 3796) | next() {
method constructor (line 3805) | constructor(arb, mrng, slices, biasFactor) {
method attemptExact (line 3814) | attemptExact(targetLength) {
method next (line 3832) | next() {
function buildSlicedGenerator (line 3858) | function buildSlicedGenerator(arb, mrng, slices, biasFactor) {
function biasedMaxLength (line 3874) | function biasedMaxLength(minLength, maxLength) {
method constructor (line 3884) | constructor(
method preFilter (line 3903) | preFilter(tab) {
method makeItCloneable (line 3913) | static makeItCloneable(vs, shrinkables) {
method generateNItemsNoDuplicates (line 3924) | generateNItemsNoDuplicates(setBuilder, N, mrng, biasFactorItems) {
method safeGenerateNItemsNoDuplicates (line 3943) | safeGenerateNItemsNoDuplicates(setBuilder, N, mrng, biasFactorItems) {
method generateNItems (line 3960) | generateNItems(N, mrng, biasFactorItems) {
method safeGenerateNItems (line 3975) | safeGenerateNItems(N, mrng, biasFactorItems) {
method wrapper (line 3987) | wrapper(itemsRaw, shrunkOnce, itemsRawLengthContext, startIndex) {
method generate (line 4012) | generate(mrng, biasFactor) {
method applyBias (line 4026) | applyBias(mrng, biasFactor) {
method canShrinkWithoutContext (line 4058) | canShrinkWithoutContext(value) {
method shrinkItemByItem (line 4079) | shrinkItemByItem(value, safeContext, endIndex) {
method shrinkImpl (line 4108) | shrinkImpl(value, context2) {
method shrink (line 4180) | shrink(value, context2) {
function maxLengthFromMinLength (line 4199) | function maxLengthFromMinLength(minLength, size) {
function relativeSizeToSize (line 4217) | function relativeSizeToSize(size, defaultSize) {
function maxGeneratedLengthFromSizeForArbitrary (line 4235) | function maxGeneratedLengthFromSizeForArbitrary(
function depthBiasFromSizeForArbitrary (line 4257) | function depthBiasFromSizeForArbitrary(depthSizeOrSize, specifiedMaxDept...
function resolveSize (line 4288) | function resolveSize(size) {
function array (line 4297) | function array(arb, constraints = {}) {
function halveBigInt (line 4324) | function halveBigInt(n) {
function shrinkBigInt (line 4327) | function shrinkBigInt(current, target, tryTargetAsap) {
method constructor (line 4352) | constructor(min, max) {
method generate (line 4357) | generate(mrng, biasFactor) {
method computeGenerateRange (line 4361) | computeGenerateRange(mrng, biasFactor) {
method canShrinkWithoutContext (line 4372) | canShrinkWithoutContext(value) {
method shrink (line 4375) | shrink(current, context2) {
method defaultTarget (line 4385) | defaultTarget() {
method isLastChanceTry (line 4391) | isLastChanceTry(current, context2) {
method isValidContext (line 4398) | static isValidContext(current, context2) {
function buildCompleteBigIntConstraints (line 4415) | function buildCompleteBigIntConstraints(constraints) {
function extractBigIntConstraints (line 4434) | function extractBigIntConstraints(args) {
function bigInt (line 4444) | function bigInt(...args) {
function bigIntN (line 4455) | function bigIntN(n) {
function computeDefaultMax (line 4467) | function computeDefaultMax() {
function bigUint (line 4470) | function bigUint(constraints) {
function bigUintN (line 4483) | function bigUintN(n) {
function booleanMapper (line 4495) | function booleanMapper(v) {
function booleanUnmapper (line 4498) | function booleanUnmapper(v) {
function boolean (line 4502) | function boolean() {
method constructor (line 4511) | constructor(values) {
method generate (line 4515) | generate(mrng, _biasFactor) {
method canShrinkWithoutContext (line 4524) | canShrinkWithoutContext(value) {
method shrink (line 4532) | shrink(value, context2) {
function constantFrom (line 4541) | function constantFrom(...values) {
function falsy (line 4549) | function falsy(constraints) {
function indexToCharStringUnmapper (line 4558) | function indexToCharStringUnmapper(c) {
function buildCharacterArbitrary (line 4577) | function buildCharacterArbitrary(min, max, mapToCode, unmapFromCode) {
function indexToPrintableIndexMapper (line 4585) | function indexToPrintableIndexMapper(v) {
function indexToPrintableIndexUnmapper (line 4590) | function indexToPrintableIndexUnmapper(v) {
function ascii (line 4597) | function ascii() {
function base64Mapper (line 4607) | function base64Mapper(v) {
function base64Unmapper (line 4613) | function base64Unmapper(v) {
function base64 (line 4619) | function base64() {
function identity (line 4624) | function identity(v) {
function char (line 4627) | function char() {
function char16bits (line 4632) | function char16bits() {
function unicodeMapper (line 4643) | function unicodeMapper(v) {
function unicodeUnmapper (line 4647) | function unicodeUnmapper(v) {
function fullUnicode (line 4652) | function fullUnicode() {
function hexaMapper (line 4662) | function hexaMapper(v) {
function hexaUnmapper (line 4665) | function hexaUnmapper(v) {
function hexa (line 4668) | function hexa() {
function unicodeMapper2 (line 4674) | function unicodeMapper2(v) {
function unicodeUnmapper2 (line 4678) | function unicodeUnmapper2(v) {
function unicode (line 4683) | function unicode() {
function constant (line 4693) | function constant(value) {
method constructor (line 4699) | constructor() {
method log (line 4702) | log(data) {
method size (line 4705) | size() {
method toString (line 4708) | toString() {
method [cloneMethod] (line 4711) | [cloneMethod]() {
function context (line 4715) | function context() {
function timeToDateMapper (line 4722) | function timeToDateMapper(time) {
function timeToDateUnmapper (line 4725) | function timeToDateUnmapper(value) {
function timeToDateMapperWithNaN (line 4731) | function timeToDateMapperWithNaN(valueForNaN) {
function timeToDateUnmapperWithNaN (line 4736) | function timeToDateUnmapperWithNaN(valueForNaN) {
function date (line 4745) | function date(constraints = {}) {
method constructor (line 4776) | constructor(arb, numValues) {
method generate (line 4781) | generate(mrng, biasFactor) {
method canShrinkWithoutContext (line 4792) | canShrinkWithoutContext(value) {
method shrink (line 4806) | shrink(value, context2) {
method shrinkImpl (line 4814) | *shrinkImpl(value, contexts) {
method makeItCloneable (line 4824) | static makeItCloneable(vs, shrinkables) {
method wrapper (line 4835) | wrapper(items) {
function clone (line 4853) | function clone(arb, numValues) {
method constructor (line 4859) | constructor(isEqual) {
method tryAdd (line 4863) | tryAdd(value) {
method size (line 4872) | size() {
method getData (line 4875) | getData() {
method constructor (line 4883) | constructor(selector) {
method tryAdd (line 4888) | tryAdd(value) {
method size (line 4902) | size() {
method getData (line 4905) | getData() {
method constructor (line 4913) | constructor(selector) {
method tryAdd (line 4919) | tryAdd(value) {
method size (line 4937) | size() {
method getData (line 4940) | getData() {
method constructor (line 4947) | constructor(selector) {
method tryAdd (line 4952) | tryAdd(value) {
method size (line 4962) | size() {
method getData (line 4965) | getData() {
function buildUniqueArraySetBuilder (line 4971) | function buildUniqueArraySetBuilder(constraints) {
function uniqueArray (line 4998) | function uniqueArray(arb, constraints = {}) {
function keyValuePairsToObjectMapper (line 5034) | function keyValuePairsToObjectMapper(definition) {
function buildIsValidPropertyNameFilter (line 5046) | function buildIsValidPropertyNameFilter(obj) {
function keyValuePairsToObjectUnmapper (line 5059) | function keyValuePairsToObjectUnmapper(value) {
function dictionaryKeyExtractor (line 5090) | function dictionaryKeyExtractor(entry) {
function dictionary (line 5093) | function dictionary(keyArb, valueArb, constraints = {}) {
method from (line 5115) | static from(warbs, constraints, label) {
method constructor (line 5158) | constructor(warbs, constraints, context2) {
method generate (line 5171) | generate(mrng, biasFactor) {
method canShrinkWithoutContext (line 5186) | canShrinkWithoutContext(value) {
method shrink (line 5189) | shrink(value, context2) {
method defaultShrinkForFirst (line 5221) | defaultShrinkForFirst(selectedIndex) {
method canShrinkWithoutContextIndex (line 5239) | canShrinkWithoutContextIndex(value) {
method mapIntoValue (line 5259) | mapIntoValue(idx, value, clonedMrngForFallbackFirst, biasFactor) {
method safeGenerateForIndex (line 5268) | safeGenerateForIndex(mrng, idx, biasFactor) {
method mustGenerateFirst (line 5285) | mustGenerateFirst() {
method mustFallbackToFirstInShrink (line 5288) | mustFallbackToFirstInShrink(idx) {
method computeNegDepthBenefit (line 5295) | computeNegDepthBenefit() {
function isOneOfContraints (line 5309) | function isOneOfContraints(param) {
function toWeightedArbitrary (line 5318) | function toWeightedArbitrary(maybeWeightedArbitrary) {
function oneof (line 5324) | function oneof(...args) {
function nat (line 5336) | function nat(arg) {
function indexToMappedConstantMapperFor (line 5353) | function indexToMappedConstantMapperFor(entries) {
function buildReverseMapping (line 5363) | function buildReverseMapping(entries) {
function indexToMappedConstantUnmapperFor (line 5383) | function indexToMappedConstantUnmapperFor(entries) {
function computeNumChoices (line 5402) | function computeNumChoices(options) {
function mapToConstant (line 5419) | function mapToConstant(...entries) {
function percentCharArbMapper (line 5432) | function percentCharArbMapper(c) {
function percentCharArbUnmapper (line 5438) | function percentCharArbUnmapper(value) {
function option (line 5471) | function option(arb, constraints = {}) {
function patternsToStringMapper (line 5495) | function patternsToStringMapper(tab) {
function patternsToStringUnmapperFor (line 5498) | function patternsToStringUnmapperFor(patternsArb, constraints) {
function computeCandidateString (line 5571) | function computeCandidateString(dangerous, charArbitrary, stringSplitter) {
function createSlicesForString (line 5585) | function createSlicesForString(charArbitrary, stringSplitter) {
function stringOf (line 5602) | function stringOf(charArb, constraints = {}) {
function filterInvalidSubdomainLabel (line 5618) | function filterInvalidSubdomainLabel(subdomainLabel2) {
function toAdapterValue (line 5633) | function toAdapterValue(rawValue, adapter2) {
method constructor (line 5641) | constructor(sourceArb, adapter2) {
method generate (line 5647) | generate(mrng, biasFactor) {
method canShrinkWithoutContext (line 5651) | canShrinkWithoutContext(value) {
method shrink (line 5657) | shrink(value, context2) {
function adapter (line 5667) | function adapter(sourceArb, adapter2) {
function toSubdomainLabelMapper (line 5672) | function toSubdomainLabelMapper([f, d]) {
function toSubdomainLabelUnmapper (line 5675) | function toSubdomainLabelUnmapper(value) {
function subdomainLabel (line 5687) | function subdomainLabel(size) {
function labelsMapper (line 5702) | function labelsMapper(elements) {
function labelsUnmapper (line 5705) | function labelsUnmapper(value) {
function labelsAdapter (line 5715) | function labelsAdapter(labels) {
function domain (line 5729) | function domain(constraints = {}) {
function dotAdapter (line 5752) | function dotAdapter(a) {
function dotMapper (line 5762) | function dotMapper(a) {
function dotUnmapper (line 5765) | function dotUnmapper(value) {
function atMapper (line 5771) | function atMapper(data) {
function atUnmapper (line 5774) | function atUnmapper(value) {
function emailAddress (line 5780) | function emailAddress(constraints = {}) {
function isZero64 (line 5823) | function isZero64(a) {
function isStrictlyNegative64 (line 5826) | function isStrictlyNegative64(a) {
function isStrictlyPositive64 (line 5829) | function isStrictlyPositive64(a) {
function isEqual64 (line 5832) | function isEqual64(a, b) {
function isStrictlySmaller64Internal (line 5838) | function isStrictlySmaller64Internal(a, b) {
function isStrictlySmaller64 (line 5841) | function isStrictlySmaller64(a, b) {
function clone64 (line 5849) | function clone64(a) {
function substract64DataInternal (line 5852) | function substract64DataInternal(a, b) {
function substract64Internal (line 5861) | function substract64Internal(a, b) {
function substract64 (line 5875) | function substract64(arrayIntA, arrayIntB) {
function negative64 (line 5883) | function negative64(arrayIntA) {
function add64 (line 5889) | function add64(arrayIntA, arrayIntB) {
function halve64 (line 5898) | function halve64(a) {
function logLike64 (line 5907) | function logLike64(a) {
method constructor (line 5919) | constructor(min, max) {
method generate (line 5925) | generate(mrng, biasFactor) {
method computeGenerateRange (line 5933) | computeGenerateRange(mrng, biasFactor) {
method canShrinkWithoutContext (line 5944) | canShrinkWithoutContext(value) {
method shrinkArrayInt64 (line 5958) | shrinkArrayInt64(value, target, tryTargetAsap) {
method shrink (line 5975) | shrink(current, context2) {
method defaultTarget (line 5985) | defaultTarget() {
method isLastChanceTry (line 5991) | isLastChanceTry(current, context2) {
method isValidContext (line 6007) | static isValidContext(_current, context2) {
method retrieveBiasedRanges (line 6023) | retrieveBiasedRanges() {
function arrayInt64 (line 6055) | function arrayInt64(min, max) {
function bitCastDoubleToUInt64 (line 6068) | function bitCastDoubleToUInt64(f) {
function decomposeDouble (line 6072) | function decomposeDouble(d) {
function positiveNumberToInt64 (line 6083) | function positiveNumberToInt64(n) {
function indexInDoubleFromDecomp (line 6086) | function indexInDoubleFromDecomp(exponent, significand) {
function doubleToIndex (line 6097) | function doubleToIndex(d) {
function indexToDouble (line 6120) | function indexToDouble(index) {
function safeDoubleToIndex (line 6150) | function safeDoubleToIndex(d, constraintsLabel) {
function unmapperDoubleToIndex (line 6158) | function unmapperDoubleToIndex(value) {
function double (line 6162) | function double(constraints = {}) {
function bitCastFloatToUInt32 (line 6221) | function bitCastFloatToUInt32(f) {
function decomposeFloat (line 6225) | function decomposeFloat(f) {
function indexInFloatFromDecomp (line 6236) | function indexInFloatFromDecomp(exponent, significand) {
function floatToIndex (line 6242) | function floatToIndex(f) {
function indexToFloat (line 6258) | function indexToFloat(index) {
function safeFloatToIndex (line 6280) | function safeFloatToIndex(f, constraintsLabel) {
function unmapperFloatToIndex (line 6293) | function unmapperFloatToIndex(value) {
function float (line 6297) | function float(constraints = {}) {
function escapeForTemplateString (line 6338) | function escapeForTemplateString(originalText) {
function escapeForMultilineComments (line 6341) | function escapeForMultilineComments(originalText) {
function hash (line 6391) | function hash(repr) {
function buildCompareFunctionArbitrary (line 6429) | function buildCompareFunctionArbitrary(cmp) {
function compareBooleanFunc (line 6473) | function compareBooleanFunc() {
function compareFunc (line 6485) | function compareFunc() {
function func (line 6498) | function func(arb) {
function maxSafeInteger (line 6545) | function maxSafeInteger() {
function maxSafeNat (line 6551) | function maxSafeNat() {
function natToStringifiedNatMapper (line 6557) | function natToStringifiedNatMapper(options) {
function tryParseStringifiedNat (line 6569) | function tryParseStringifiedNat(stringValue, radix) {
function natToStringifiedNatUnmapper (line 6576) | function natToStringifiedNatUnmapper(value) {
function dotJoinerMapper (line 6590) | function dotJoinerMapper(data) {
function dotJoinerUnmapper (line 6593) | function dotJoinerUnmapper(value) {
function ipV4 (line 6599) | function ipV4() {
function buildStringifiedNatArbitrary (line 6607) | function buildStringifiedNatArbitrary(maxValue) {
function dotJoinerMapper2 (line 6615) | function dotJoinerMapper2(data) {
function dotJoinerUnmapper2 (line 6618) | function dotJoinerUnmapper2(value) {
function ipV4Extended (line 6624) | function ipV4Extended() {
function codePointsToStringMapper (line 6646) | function codePointsToStringMapper(tab) {
function codePointsToStringUnmapper (line 6649) | function codePointsToStringUnmapper(value) {
function hexaString (line 6658) | function hexaString(constraints = {}) {
function readBh (line 6677) | function readBh(value) {
function extractEhAndL (line 6681) | function extractEhAndL(value) {
function fullySpecifiedMapper (line 6697) | function fullySpecifiedMapper(data) {
function fullySpecifiedUnmapper (line 6700) | function fullySpecifiedUnmapper(value) {
function onlyTrailingMapper (line 6704) | function onlyTrailingMapper(data) {
function onlyTrailingUnmapper (line 6707) | function onlyTrailingUnmapper(value) {
function multiTrailingMapper (line 6712) | function multiTrailingMapper(data) {
function multiTrailingUnmapper (line 6715) | function multiTrailingUnmapper(value) {
function multiTrailingMapperOne (line 6721) | function multiTrailingMapperOne(data) {
function multiTrailingUnmapperOne (line 6724) | function multiTrailingUnmapperOne(value) {
function singleTrailingMapper (line 6728) | function singleTrailingMapper(data) {
function singleTrailingUnmapper (line 6731) | function singleTrailingUnmapper(value) {
function noTrailingMapper (line 6736) | function noTrailingMapper(data) {
function noTrailingUnmapper (line 6739) | function noTrailingUnmapper(value) {
function h16sTol32Mapper (line 6746) | function h16sTol32Mapper([a, b]) {
function h16sTol32Unmapper (line 6749) | function h16sTol32Unmapper(value) {
function ipV6 (line 6754) | function ipV6() {
method constructor (line 6806) | constructor(name) {
method generate (line 6811) | generate(mrng, biasFactor) {
method canShrinkWithoutContext (line 6819) | canShrinkWithoutContext(value) {
method shrink (line 6827) | shrink(value, context2) {
function letrec (line 6839) | function letrec(builder) {
function wordsToJoinedStringMapper (line 6861) | function wordsToJoinedStringMapper(words) {
function wordsToJoinedStringUnmapperFor (line 6869) | function wordsToJoinedStringUnmapperFor(wordsArbitrary) {
function wordsToSentenceMapper (line 6885) | function wordsToSentenceMapper(words) {
function wordsToSentenceUnmapperFor (line 6892) | function wordsToSentenceUnmapperFor(wordsArbitrary) {
function sentencesToParagraphMapper (line 6923) | function sentencesToParagraphMapper(sentences) {
function sentencesToParagraphUnmapper (line 6926) | function sentencesToParagraphUnmapper(value) {
function loremWord (line 6941) | function loremWord() {
function lorem (line 7095) | function lorem(constraints = {}) {
function memo (line 7124) | function memo(builder) {
function countToggledBits (line 7139) | function countToggledBits(n) {
function computeNextFlags (line 7147) | function computeNextFlags(flags, nextSize) {
function computeTogglePositions (line 7164) | function computeTogglePositions(chars, toggleCase) {
function computeFlagsFromChars (line 7171) | function computeFlagsFromChars(untoggledChars, toggledChars, togglePosit...
function applyFlagsOnChars (line 7187) | function applyFlagsOnChars(chars, flags, togglePositions, toggleCase) {
method constructor (line 7200) | constructor(stringArb, toggleCase, untoggleAll) {
method buildContextFor (line 7206) | buildContextFor(rawStringValue, flagsValue) {
method generate (line 7214) | generate(mrng, biasFactor) {
method canShrinkWithoutContext (line 7231) | canShrinkWithoutContext(value) {
method shrink (line 7239) | shrink(value, context2) {
function defaultToggleCase (line 7319) | function defaultToggleCase(rawChar) {
function mixedCase (line 7324) | function mixedCase(stringArb, constraints) {
function toTypedMapper (line 7335) | function toTypedMapper(data) {
function fromTypedUnmapper (line 7338) | function fromTypedUnmapper(value) {
function float32Array (line 7342) | function float32Array(constraints = {}) {
function toTypedMapper2 (line 7350) | function toTypedMapper2(data) {
function fromTypedUnmapper2 (line 7353) | function fromTypedUnmapper2(value) {
function float64Array (line 7357) | function float64Array(constraints = {}) {
function typedIntArrayArbitraryArbitraryBuilder (line 7380) | function typedIntArrayArbitraryArbitraryBuilder(
function int16Array (line 7415) | function int16Array(constraints = {}) {
function int32Array (line 7426) | function int32Array(constraints = {}) {
function int8Array (line 7437) | function int8Array(constraints = {}) {
function uint16Array (line 7448) | function uint16Array(constraints = {}) {
function uint32Array (line 7459) | function uint32Array(constraints = {}) {
function uint8Array (line 7470) | function uint8Array(constraints = {}) {
function uint8ClampedArray (line 7481) | function uint8ClampedArray(constraints = {}) {
function isSafeContext (line 7492) | function isSafeContext(context2) {
function toGeneratorValue (line 7495) | function toGeneratorValue(value) {
function toShrinkerValue (line 7505) | function toShrinkerValue(value) {
method constructor (line 7516) | constructor(generatorArbitrary, shrinkerArbitrary) {
method generate (line 7521) | generate(mrng, biasFactor) {
method canShrinkWithoutContext (line 7524) | canShrinkWithoutContext(value) {
method shrink (line 7527) | shrink(value, context2) {
function restrictedIntegerArbitraryBuilder (line 7543) | function restrictedIntegerArbitraryBuilder(min, maxGenerated, max) {
function extractMaxIndex (line 7560) | function extractMaxIndex(indexesAndValues) {
function arrayFromItems (line 7567) | function arrayFromItems(length, indexesAndValues) {
function sparseArray (line 7575) | function sparseArray(arb, constraints = {}) {
function arrayToMapMapper (line 7680) | function arrayToMapMapper(data) {
function arrayToMapUnmapper (line 7683) | function arrayToMapUnmapper(value) {
function arrayToSetMapper (line 7698) | function arrayToSetMapper(data) {
function arrayToSetUnmapper (line 7701) | function arrayToSetUnmapper(value) {
function mapOf (line 7716) | function mapOf(ka, va, maxKeys, size, depthIdentifier) {
function dictOf (line 7725) | function dictOf(ka, va, maxKeys, size, depthIdentifier, withNullPrototyp...
function setOf (line 7733) | function setOf(va, maxKeys, size, depthIdentifier) {
function typedArray (line 7741) | function typedArray(constraints) {
function anyArbitraryBuilder (line 7754) | function anyArbitraryBuilder(constraints) {
function string (line 7819) | function string(constraints = {}) {
function unboxedToBoxedMapper (line 7838) | function unboxedToBoxedMapper(value) {
function unboxedToBoxedUnmapper (line 7850) | function unboxedToBoxedUnmapper(value) {
function boxedArbitraryBuilder (line 7866) | function boxedArbitraryBuilder(arb) {
function defaultValues (line 7871) | function defaultValues(constraints) {
function boxArbitraries (line 7880) | function boxArbitraries(arbs) {
function boxArbitrariesIfNeeded (line 7883) | function boxArbitrariesIfNeeded(arbs, boxEnabled) {
function toQualifiedObjectConstraints (line 7886) | function toQualifiedObjectConstraints(settings = {}) {
function objectInternal (line 7913) | function objectInternal(constraints) {
function object (line 7920) | function object(constraints) {
function jsonConstraintsBuilder (line 7925) | function jsonConstraintsBuilder(stringArbitrary, constraints) {
function anything (line 7938) | function anything(constraints) {
function jsonValue (line 7943) | function jsonValue(constraints = {}) {
function json (line 7948) | function json(constraints = {}) {
function unicodeString (line 7955) | function unicodeString(constraints = {}) {
function unicodeJsonValue (line 7974) | function unicodeJsonValue(constraints = {}) {
function unicodeJson (line 7979) | function unicodeJson(constraints = {}) {
function extractEnumerableKeys (line 7988) | function extractEnumerableKeys(instance) {
function buildValuesAndSeparateKeysToObjectMapper (line 8007) | function buildValuesAndSeparateKeysToObjectMapper(keys, noKeyValue2) {
function buildValuesAndSeparateKeysToObjectUnmapper (line 8024) | function buildValuesAndSeparateKeysToObjectUnmapper(keys, noKeyValue2) {
function buildPartialRecordArbitrary (line 8081) | function buildPartialRecordArbitrary(
function record (line 8107) | function record(recordModel, constraints) {
function prettyPrint (line 8153) | function prettyPrint(seenValuesStrings) {
method constructor (line 8157) | constructor(arb) {
method generate (line 8161) | generate(mrng, biasFactor) {
method canShrinkWithoutContext (line 8190) | canShrinkWithoutContext(value) {
method shrink (line 8193) | shrink(_value, _context) {
function infiniteStream (line 8199) | function infiniteStream(arb) {
function asciiString (line 8205) | function asciiString(constraints = {}) {
function stringToBase64Mapper (line 8224) | function stringToBase64Mapper(s) {
function stringToBase64Unmapper (line 8236) | function stringToBase64Unmapper(value) {
function base64String (line 8252) | function base64String(constraints = {}) {
function fullUnicodeString (line 8288) | function fullUnicodeString(constraints = {}) {
function charsToStringMapper (line 8307) | function charsToStringMapper(tab) {
function charsToStringUnmapper (line 8310) | function charsToStringUnmapper(value) {
function string16bits (line 8319) | function string16bits(constraints = {}) {
function isSubarrayOf (line 8338) | function isSubarrayOf(source, small) {
method constructor (line 8371) | constructor(originalArray, isOrdered, minLength, maxLength) {
method generate (line 8401) | generate(mrng, biasFactor) {
method canShrinkWithoutContext (line 8423) | canShrinkWithoutContext(value) {
method shrink (line 8432) | shrink(value, context2) {
function subarray (line 8462) | function subarray(originalArray, constraints = {}) {
function shuffledSubarray (line 8468) | function shuffledSubarray(originalArray, constraints = {}) {
function encodeSymbol (line 8532) | function encodeSymbol(symbol) {
function pad (line 8535) | function pad(value, paddingLength) {
function smallUintToBase32StringMapper (line 8542) | function smallUintToBase32StringMapper(num) {
function uintToBase32StringMapper (line 8552) | function uintToBase32StringMapper(num, paddingLength) {
function paddedUintToBase32StringMapper (line 8560) | function paddedUintToBase32StringMapper(paddingLength) {
function uintToBase32StringUnmapper (line 8565) | function uintToBase32StringUnmapper(value) {
function ulidMapper (line 8586) | function ulidMapper(parts) {
function ulidUnmapper (line 8591) | function ulidUnmapper(value) {
function ulid (line 8601) | function ulid() {
function numberToPaddedEightMapper (line 8613) | function numberToPaddedEightMapper(n) {
function numberToPaddedEightUnmapper (line 8616) | function numberToPaddedEightUnmapper(value) {
function buildPaddedNumberArbitrary (line 8631) | function buildPaddedNumberArbitrary(min, max) {
function paddedEightsToUuidMapper (line 8639) | function paddedEightsToUuidMapper(t) {
function paddedEightsToUuidUnmapper (line 8644) | function paddedEightsToUuidUnmapper(value) {
function uuid (line 8661) | function uuid() {
function uuidV (line 8672) | function uuidV(versionNumber) {
function hostUserInfo (line 8687) | function hostUserInfo(size) {
function userHostPortMapper (line 8708) | function userHostPortMapper([u, h2, p]) {
function userHostPortUnmapper (line 8711) | function userHostPortUnmapper(value) {
function bracketedMapper (line 8726) | function bracketedMapper(s) {
function bracketedUnmapper (line 8729) | function bracketedUnmapper(value) {
function webAuthority (line 8739) | function webAuthority(constraints) {
function buildUriQueryOrFragmentArbitrary (line 8758) | function buildUriQueryOrFragmentArbitrary(size) {
function webFragments (line 8784) | function webFragments(constraints = {}) {
function webSegment (line 8789) | function webSegment(constraints = {}) {
function segmentsToPathMapper (line 8815) | function segmentsToPathMapper(segments) {
function segmentsToPathUnmapper (line 8821) | function segmentsToPathUnmapper(value) {
function sqrtSize (line 8832) | function sqrtSize(size) {
function buildUriPathArbitrary (line 8846) | function buildUriPathArbitrary(resolvedSize) {
function webPath (line 8855) | function webPath(constraints) {
function webQueryParameters (line 8862) | function webQueryParameters(constraints = {}) {
function partsToUrlMapper (line 8867) | function partsToUrlMapper(data) {
function partsToUrlUnmapper (line 8875) | function partsToUrlUnmapper(value) {
function webUrl (line 8899) | function webUrl(constraints) {
method constructor (line 8930) | constructor(commands2, metadataForReplay) {
method [Symbol.iterator] (line 8934) | [Symbol.iterator]() {
method [cloneMethod] (line 8937) | [cloneMethod]() {
method toString (line 8943) | toString() {
method constructor (line 8957) | constructor(cmd) {
method check (line 8973) | check(m) {
method run (line 8976) | run(m, r) {
method clone (line 8980) | clone() {
method toString (line 8985) | toString() {
method parse (line 8992) | static parse(replayPathStr) {
method stringify (line 8998) | static stringify(replayPath) {
method intToB64 (line 9004) | static intToB64(n) {
method b64ToInt (line 9010) | static b64ToInt(c) {
method countOccurences (line 9016) | static countOccurences(replayPath) {
method parseOccurences (line 9028) | static parseOccurences(counts, changes) {
method stringifyChanges (line 9037) | static stringifyChanges(occurences) {
method parseChanges (line 9047) | static parseChanges(serializedChanges) {
method stringifyCounts (line 9058) | static stringifyCounts(occurences) {
method parseCounts (line 9061) | static parseCounts(serializedCount) {
method constructor (line 9068) | constructor(
method metadataForReplay (line 9089) | metadataForReplay() {
method buildValueFor (line 9094) | buildValueFor(items, shrunkOnce) {
method generate (line 9102) | generate(mrng) {
method canShrinkWithoutContext (line 9113) | canShrinkWithoutContext(value) {
method filterOnExecution (line 9116) | filterOnExecution(itemsRaw) {
method filterOnReplay (line 9126) | filterOnReplay(itemsRaw) {
method filterForShrinkImpl (line 9135) | filterForShrinkImpl(itemsRaw) {
method shrink (line 9149) | shrink(_value, context2) {
function commands (line 9197) | function commands(commandArbs, constraints = {}) {
method constructor (line 9222) | constructor(s, cmd) {
method check (line 9226) | async check(m) {
method run (line 9247) | async run(m, r) {
function modelRun (line 9327) | function modelRun(s, cmds) {
function asyncModelRun (line 9330) | async function asyncModelRun(s, cmds) {
function scheduledModelRun (line 9333) | async function scheduledModelRun(scheduler2, s, cmds) {
method constructor (line 9347) | constructor(act, taskSelector) {
method buildLog (line 9356) | static buildLog(reportItem) {
method log (line 9359) | log(schedulingType, taskId, label, metadata, status, data) {
method scheduleInternal (line 9369) | scheduleInternal(
method schedule (line 9411) | schedule(task, label, metadata, customAct) {
method scheduleFunction (line 9420) | scheduleFunction(asyncFunction, customAct) {
method scheduleSequence (line 9430) | scheduleSequence(sequenceBuilders, customAct) {
method count (line 9472) | count() {
method internalWaitOne (line 9475) | internalWaitOne() {
method waitOne (line 9488) | async waitOne(customAct) {
method waitAll (line 9492) | async waitAll(customAct) {
method waitFor (line 9497) | async waitFor(unscheduledTask, customAct) {
method report (line 9552) | report() {
method toString (line 9564) | toString() {
method [cloneMethod] (line 9574) | [cloneMethod]() {
function buildNextTaskIndex (line 9580) | function buildNextTaskIndex(ordering) {
function buildSchedulerFor (line 9603) | function buildSchedulerFor(act, ordering) {
function buildNextTaskIndex2 (line 9608) | function buildNextTaskIndex2(mrng) {
method constructor (line 9618) | constructor(act) {
method generate (line 9622) | generate(mrng, _biasFactor) {
method canShrinkWithoutContext (line 9628) | canShrinkWithoutContext(value) {
method shrink (line 9631) | shrink(_value, _context) {
function scheduler (line 9637) | function scheduler(constraints) {
function schedulerFor (line 9641) | function schedulerFor(customOrderingOrConstraints, constraintsOrUndefine...
function bigInt64Array (line 9654) | function bigInt64Array(constraints = {}) {
function bigUint64Array (line 9665) | function bigUint64Array(constraints = {}) {
function raiseUnsupportedASTNode (line 9676) | function raiseUnsupportedASTNode(astNode) {
function addMissingDotStarTraversalAddMissing (line 9679) | function addMissingDotStarTraversalAddMissing(astNode, isFirst, isLast) {
function addMissingDotStarTraversal (line 9731) | function addMissingDotStarTraversal(
function addMissingDotStar (line 9813) | function addMissingDotStar(astNode) {
function charSizeAt (line 9818) | function charSizeAt(text, pos) {
function isHexaDigit (line 9826) | function isHexaDigit(char2) {
function isDigit (line 9833) | function isDigit(char2) {
function squaredBracketBlockContentEndFrom (line 9836) | function squaredBracketBlockContentEndFrom(text, from) {
function parenthesisBlockContentEndFrom (line 9847) | function parenthesisBlockContentEndFrom(text, from) {
function curlyBracketBlockContentEndFrom (line 9866) | function curlyBracketBlockContentEndFrom(text, from) {
function blockEndFrom (line 9891) | function blockEndFrom(text, from, unicodeMode, mode) {
function readFrom (line 10055) | function readFrom(text, from, unicodeMode, mode) {
function safePop2 (line 10062) | function safePop2(tokens) {
function isDigit2 (line 10071) | function isDigit2(char2) {
function simpleChar (line 10074) | function simpleChar(char2, escaped) {
function metaEscapedChar (line 10084) | function metaEscapedChar(block, symbol) {
function toSingleToken (line 10093) | function toSingleToken(tokens, allowEmpty) {
function blockToCharToken (line 10105) | function blockToCharToken(block) {
function pushTokens (line 10190) | function pushTokens(tokens, regexSource, unicodeMode, groups) {
function tokenizeRegex (line 10473) | function tokenizeRegex(regex) {
function raiseUnsupportedASTNode2 (line 10495) | function raiseUnsupportedASTNode2(astNode) {
function toMatchingArbitrary (line 10498) | function toMatchingArbitrary(astNode, constraints, flags) {
function stringMatching (line 10680) | function stringMatching(regex, constraints = {}) {
FILE: integration-tests/js-compute/fixtures/app/src/geoip.js
method toString (line 83) | toString() {
FILE: integration-tests/js-compute/fixtures/app/src/index.js
function app (line 77) | async function app(event) {
FILE: integration-tests/js-compute/fixtures/app/src/manual-framing-headers.js
function requestInitObjectLiteral (line 8) | async function requestInitObjectLiteral(manualFramingHeaders) {
function requestMethod (line 23) | async function requestMethod(manualFramingHeaders) {
function requestClone (line 38) | async function requestClone(manualFramingHeaders) {
function fetchInitObjectLiteral (line 53) | async function fetchInitObjectLiteral(manualFramingHeaders) {
function responseInitObjectLiteral (line 149) | async function responseInitObjectLiteral(manualFramingHeaders) {
function responseInitresponseInstance (line 167) | async function responseInitresponseInstance(manualFramingHeaders) {
function responseMethod (line 222) | async function responseMethod(setManualFramingHeaders) {
function responseClone (line 241) | async function responseClone(setManualFramingHeaders) {
FILE: integration-tests/js-compute/fixtures/app/src/random.js
function random3Decimals (line 5) | function random3Decimals() {
FILE: integration-tests/js-compute/fixtures/app/src/react-byob.js
function A (line 28) | function A(a) {
function E (line 43) | function E(a, b, e) {
function F (line 60) | function F() {}
function G (line 62) | function G(a, b, e) {
function M (line 76) | function M(a, b, e) {
function N (line 103) | function N(a, b) {
function O (line 113) | function O(a) {
function escape (line 116) | function escape(a) {
function Q (line 126) | function Q(a, b) {
function R (line 131) | function R(a, b, e, d, c) {
function S (line 197) | function S(a, b, e) {
function T (line 206) | function T(a) {
function q (line 410) | function q(c, a, g) {
function k (line 446) | function k(a) {
function p (line 464) | function p(a, b) {
function t (line 484) | function t(a, b) {
function ba (line 488) | function ba(a) {
function u (line 494) | function u(a) {
function w (line 497) | function w(a) {
function da (line 500) | function da(a, b) {
function ia (line 508) | function ia(a) {
function y (line 515) | function y(a, b, c, d, f, e, g) {
function ka (line 569) | function ka(a) {
function C (line 656) | function C(a) {
function ya (line 701) | function ya(a, b, c, d) {
function za (line 704) | function za(a, b, c, d, f) {
function D (line 724) | function D(a, b) {
function Aa (line 727) | function Aa(a) {
function Ba (line 737) | function Ba(a, b, c) {
function Da (line 761) | function Da(a, b, c, d) {
function Ia (line 771) | function Ia(a, b, c) {
function J (line 807) | function J(a, b, c, d) {
function L (line 868) | function L(a, b, c) {
function La (line 876) | function La(a) {
function Na (line 884) | function Na(a, b, c, d) {
function M (line 910) | function M(a) {
function Sa (line 920) | function Sa(a, b, c, d, f) {
function fb (line 1187) | function fb(a, b, c) {
function Bb (line 1214) | function Bb(a, b, c, d) {
function Cb (line 1249) | function Cb(a, b) {
function Sb (line 1290) | function Sb(a) {
function jc (line 1324) | function jc(a) {
function lc (line 1369) | function lc(a, b) {
function P (line 1378) | function P(a, b) {
function mc (line 1392) | function mc(a) {
function nc (line 1397) | function nc(a) {
function oc (line 1402) | function oc(a, b) {
function pc (line 1408) | function pc(a, b) {
function Q (line 1414) | function Q(a) {
function rc (line 1443) | function rc(a, b, c, d) {
function tc (line 1492) | function tc(a, b, c) {
function vc (line 1511) | function vc(a) {
function yc (line 1515) | function yc(a, b) {
function W (line 1528) | function W() {
function Ec (line 1532) | function Ec() {
function Fc (line 1536) | function Fc() {
function Gc (line 1546) | function Gc() {
function Hc (line 1553) | function Hc(a, b) {
function Ic (line 1556) | function Ic(a, b, c) {
function Kc (line 1579) | function Kc(a, b) {
function Jc (line 1603) | function Jc(a, b, c) {
function Lc (line 1619) | function Lc() {
function Mc (line 1622) | function Mc() {}
function Qc (line 1685) | function Qc(a) {
function X (line 1689) | function X() {}
function Rc (line 1690) | function Rc(a, b, c, d, f, e, g, h, m) {
function Tc (line 1720) | function Tc(a, b, c, d, f, e, g, h) {
function Sc (line 1740) | function Sc(a, b, c, d, f, e) {
function Y (line 1754) | function Y(a, b) {
function Vc (line 1764) | function Vc(a, b) {
function Wc (line 1773) | function Wc(a, b, c, d, f) {
function Xc (line 1782) | function Xc(a, b, c, d) {
function Yc (line 1799) | function Yc(a, b) {
function Zc (line 1808) | function Zc(a, b, c, d, f) {
function Z (line 1983) | function Z(a, b, c) {
function bd (line 2043) | function bd(a, b, c) {
function $c (line 2054) | function $c(a, b, c) {
function cd (line 2102) | function cd(a) {
function ed (line 2108) | function ed(a, b, c) {
function ad (line 2128) | function ad(a, b) {
function dd (line 2140) | function dd(a, b, c) {
function Uc (line 2166) | function Uc(a) {
function gd (line 2229) | function gd(a, b, c) {
function hd (line 2259) | function hd(a, b, c) {
function id (line 2292) | function id(a, b, c) {
function jd (line 2297) | function jd(a, b, c) {
function kd (line 2316) | function kd(a, b, c, d) {
function fd (line 2337) | function fd(a, b) {
function ld (line 2432) | function ld(a, b) {
function App (line 2518) | function App() {
FILE: integration-tests/js-compute/fixtures/app/src/request-cache-key.js
method toString (line 27) | toString() {
FILE: integration-tests/js-compute/fixtures/app/src/response-json.js
class CustomError (line 73) | class CustomError extends Error {
method foo (line 78) | get foo() {
FILE: integration-tests/js-compute/fixtures/app/src/response.js
method start (line 12) | start(controller) {
function iteratableToStream (line 77) | function iteratableToStream(iterable) {
FILE: integration-tests/js-compute/fixtures/app/src/routes.js
function isRunningLocally (line 15) | function isRunningLocally() {
FILE: integration-tests/js-compute/fixtures/app/src/secret-store.js
constant SECRET_STORE_NAME (line 8) | const SECRET_STORE_NAME = env('SECRET_STORE_NAME');
method toString (line 35) | toString() {
method toString (line 159) | toString() {
function SecretStoreEntryInterfaceTests (line 359) | function SecretStoreEntryInterfaceTests() {
function SecretStoreInterfaceTests (line 515) | function SecretStoreInterfaceTests() {
function createValidStore (line 665) | function createValidStore() {
FILE: integration-tests/js-compute/fixtures/app/src/timers.js
method [Symbol.toPrimitive] (line 117) | [Symbol.toPrimitive](type) {
method [Symbol.toPrimitive] (line 273) | [Symbol.toPrimitive](type) {
method start (line 334) | start(_controller) {
method [Symbol.toPrimitive] (line 444) | [Symbol.toPrimitive](type) {
method [Symbol.toPrimitive] (line 569) | [Symbol.toPrimitive](type) {
FILE: integration-tests/js-compute/fixtures/app/src/websocket.js
method toString (line 43) | toString() {
FILE: integration-tests/js-compute/fixtures/module-mode/src/acl.js
constant ACL_NAME (line 12) | const ACL_NAME = env('ACL_NAME');
FILE: integration-tests/js-compute/fixtures/module-mode/src/assertions.js
function strictEqual (line 1) | function strictEqual(actual, expected, message) {
function assert (line 9) | function assert(truthy, maybeMessage) {
function assertResolves (line 17) | async function assertResolves(func) {
function assertRejects (line 27) | async function assertRejects(func, errorClass, errorMessage) {
function assertThrows (line 54) | function assertThrows(func, errorClass, errorMessage) {
function assertDoesNotThrow (line 81) | function assertDoesNotThrow(func) {
function deepStrictEqual (line 91) | function deepStrictEqual(a, b) {
function deepEqual (line 99) | function deepEqual(a, b) {
FILE: integration-tests/js-compute/fixtures/module-mode/src/console.js
method d (line 21) | d() {}
method f (line 22) | get f() {
FILE: integration-tests/js-compute/fixtures/module-mode/src/dynamic-backend.js
method toString (line 505) | toString() {
method toString (line 572) | toString() {
method toString (line 1089) | toString() {
method toString (line 1185) | toString() {
method [Symbol.toPrimitive] (line 1271) | [Symbol.toPrimitive](type) {
method [Symbol.toPrimitive] (line 1359) | [Symbol.toPrimitive](type) {
method [Symbol.toPrimitive] (line 1460) | [Symbol.toPrimitive](type) {
method [Symbol.toPrimitive] (line 1614) | [Symbol.toPrimitive](type) {
method [Symbol.toPrimitive] (line 1748) | [Symbol.toPrimitive](type) {
method toString (line 1839) | toString() {
method toString (line 1908) | toString() {
method toString (line 1977) | toString() {
method toString (line 2304) | toString() {
method toString (line 2372) | toString() {
method toString (line 2450) | toString() {
function createValidHttpMeBackend (line 2602) | function createValidHttpMeBackend() {
function createValidFastlyBackend (line 2624) | function createValidFastlyBackend() {
FILE: integration-tests/js-compute/fixtures/module-mode/src/hono.js
function parseFormData (line 58) | async function parseFormData(request, options) {
function convertFormDataToBodyData (line 65) | function convertFormDataToBodyData(formData, options) {
method constructor (line 354) | constructor(request, path = '/', matchResult = [[]]) {
method param (line 360) | param(key) {
method getDecodedParam (line 363) | getDecodedParam(key) {
method getAllDecodedParams (line 372) | getAllDecodedParams() {
method getParamValue (line 385) | getParamValue(paramKey) {
method query (line 388) | query(key) {
method queries (line 391) | queries(key) {
method header (line 394) | header(name) {
method parseBody (line 404) | async parseBody(options) {
method json (line 424) | json() {
method text (line 427) | text() {
method arrayBuffer (line 430) | arrayBuffer() {
method blob (line 433) | blob() {
method formData (line 436) | formData() {
method addValidatedData (line 439) | addValidatedData(target, data) {
method valid (line 442) | valid(target) {
method url (line 445) | get url() {
method method (line 448) | get method() {
method matchedRoutes (line 451) | get matchedRoutes() {
method routePath (line 454) | get routePath() {
method constructor (line 528) | constructor(req, options) {
method req (line 538) | get req() {
method event (line 546) | get event() {
method executionCtx (line 553) | get executionCtx() {
method res (line 560) | get res() {
method res (line 564) | set res(_res) {
method var (line 638) | get var() {
function dispatch (line 766) | async function dispatch(i) {
method constructor (line 848) | constructor(options = {}) {
method clone (line 893) | clone() {
method route (line 903) | route(path, app) {
method basePath (line 919) | basePath(path) {
method mount (line 932) | mount(path, applicationHandler, options) {
method addRoute (line 977) | addRoute(method, path, handler) {
method matchRoute (line 984) | matchRoute(method, path) {
method handleError (line 987) | handleError(err, c) {
method dispatch (line 993) | dispatch(request, executionCtx, env, method) {
function compareKey (line 1079) | function compareKey(a, b) {
method insert (line 1105) | insert(tokens, index, paramMap, context, pathErrorCheckOnly) {
method buildRegExpStr (line 1178) | buildRegExpStr() {
method insert (line 1207) | insert(path, index, pathErrorCheckOnly) {
method buildRegExp (line 1242) | buildRegExp() {
function buildWildcardRegExp (line 1272) | function buildWildcardRegExp(path) {
function clearWildcardRegExpCache (line 1281) | function clearWildcardRegExpCache() {
function buildMatcherFromPreprocessedRoutes (line 1284) | function buildMatcherFromPreprocessedRoutes(routes) {
function findMiddleware (line 1344) | function findMiddleware(middleware, path) {
method constructor (line 1359) | constructor() {
method add (line 1365) | add(method, path, handler) {
method match (line 1428) | match(method, path) {
method buildAllMatchers (line 1446) | buildAllMatchers() {
method buildMatcher (line 1456) | buildMatcher(method) {
method constructor (line 1488) | constructor(init) {
method add (line 1491) | add(method, path, handler) {
method match (line 1497) | match(method, path) {
method activeRouter (line 1529) | get activeRouter() {
method constructor (line 1545) | constructor(method, handler, children) {
method insert (line 1556) | insert(method, path, handler) {
method gHSets (line 1594) | gHSets(node, method, nodeParams, params) {
method search (line 1615) | search(method, path) {
method constructor (line 1725) | constructor() {
method add (line 1728) | add(method, path, handler) {
method match (line 1738) | match(method, path) {
method constructor (line 1745) | constructor(options = {}) {
FILE: integration-tests/js-compute/fixtures/module-mode/src/http-cache.js
method beforeSend (line 24) | beforeSend() {
method afterSend (line 37) | afterSend() {
method afterSend (line 55) | afterSend(res) {
method afterSend (line 67) | afterSend(res) {
method afterSend (line 85) | afterSend(res) {
method afterSend (line 98) | afterSend(res) {
method afterSend (line 111) | afterSend(res) {
method afterSend (line 124) | afterSend(res) {
method afterSend (line 137) | afterSend(res) {
method afterSend (line 150) | afterSend(res) {
method afterSend (line 166) | afterSend(res) {
method afterSend (line 202) | afterSend(res) {
method afterSend (line 236) | afterSend(res) {
method beforeSend (line 274) | beforeSend(_req) {
method beforeSend (line 290) | beforeSend(_req) {
method beforeSend (line 308) | beforeSend(req) {
method afterSend (line 326) | afterSend(res) {
method afterSend (line 347) | afterSend(res) {
method afterSend (line 364) | afterSend(res) {
method afterSend (line 388) | afterSend(res) {
method afterSend (line 404) | afterSend(res) {
method afterSend (line 423) | afterSend(res) {
method afterSend (line 438) | afterSend(res) {
method afterSend (line 457) | async afterSend(res) {
method afterSend (line 479) | afterSend(res) {
method afterSend (line 514) | afterSend(res) {
method afterSend (line 532) | afterSend(res) {
method afterSend (line 550) | afterSend(res) {
method afterSend (line 573) | afterSend() {
method afterSend (line 588) | afterSend(res) {
method afterSend (line 610) | afterSend(res) {
method afterSend (line 635) | afterSend() {
method afterSend (line 657) | afterSend() {
method afterSend (line 680) | afterSend() {
method afterSend (line 702) | afterSend() {
method afterSend (line 714) | afterSend() {
method beforeSend (line 750) | beforeSend(req) {
method beforeSend (line 774) | beforeSend() {
method afterSend (line 777) | afterSend(res) {
method beforeSend (line 806) | beforeSend() {
method afterSend (line 809) | afterSend() {
method beforeSend (line 842) | beforeSend() {
method afterSend (line 845) | afterSend(res) {
method beforeSend (line 877) | beforeSend(req) {
method beforeSend (line 903) | beforeSend() {
method afterSend (line 906) | afterSend(res) {
method beforeSend (line 938) | beforeSend() {
method afterSend (line 941) | afterSend() {
method beforeSend (line 973) | beforeSend() {
method afterSend (line 976) | afterSend(res) {
method beforeSend (line 1011) | beforeSend(req) {
FILE: integration-tests/js-compute/fixtures/module-mode/src/index.js
function app (line 37) | async function app(event) {
FILE: integration-tests/js-compute/fixtures/module-mode/src/kv-store.js
constant KV_STORE_NAME (line 14) | const KV_STORE_NAME = env('KV_STORE_NAME');
method toString (line 242) | toString() {
method toString (line 368) | toString() {
method toString (line 697) | toString() {
method toString (line 865) | toString() {
method toString (line 1100) | toString() {
function kvStoreEntryInterfaceTests (line 1439) | async function kvStoreEntryInterfaceTests() {
function kvStoreInterfaceTests (line 1756) | async function kvStoreInterfaceTests() {
function iteratableToStream (line 2006) | function iteratableToStream(iterable) {
function streamToString (line 2018) | async function streamToString(stream) {
FILE: integration-tests/js-compute/fixtures/module-mode/src/routes.js
function isRunningLocally (line 15) | function isRunningLocally() {
FILE: integration-tests/js-compute/fixtures/module-mode/src/transform-stream.js
function upperCase (line 3) | function upperCase() {
method start (line 43) | start(controller) {}
method transform (line 44) | transform(chunk, controller) {
method flush (line 47) | flush(controller) {}
function concatStreams (line 78) | function concatStreams(streams) {
FILE: integration-tests/js-compute/fixtures/reusable-sandboxes/src/assertions.js
function strictEqual (line 1) | function strictEqual(actual, expected, message) {
function assert (line 9) | function assert(truthy, maybeMessage) {
function assertResolves (line 17) | async function assertResolves(func) {
function assertRejects (line 27) | async function assertRejects(func, errorClass, errorMessage) {
function assertThrows (line 54) | function assertThrows(func, errorClass, errorMessage) {
function assertDoesNotThrow (line 81) | function assertDoesNotThrow(func) {
function deepStrictEqual (line 91) | function deepStrictEqual(a, b) {
function deepEqual (line 99) | function deepEqual(a, b) {
FILE: integration-tests/js-compute/fixtures/reusable-sandboxes/src/index.js
function app (line 38) | async function app(event) {
FILE: integration-tests/js-compute/fixtures/reusable-sandboxes/src/interleave.js
function timeout (line 15) | function timeout(ms) {
FILE: integration-tests/js-compute/fixtures/reusable-sandboxes/src/routes.js
function isRunningLocally (line 15) | function isRunningLocally() {
FILE: integration-tests/js-compute/setup.js
function existingListId (line 23) | function existingListId(stores, existingName) {
function setupConfigStores (line 48) | async function setupConfigStores() {
function setupKVStore (line 86) | async function setupKVStore() {
function setupSecretStore (line 107) | async function setupSecretStore() {
function setupAcl (line 131) | async function setupAcl() {
FILE: integration-tests/js-compute/teardown.js
function existingListId (line 19) | function existingListId(stores, existingName) {
constant FASTLY_API_TOKEN (line 41) | const FASTLY_API_TOKEN = process.env.FASTLY_API_TOKEN;
function removeConfigStores (line 43) | async function removeConfigStores() {
function removeKVStore (line 78) | async function removeKVStore() {
function removeSecretStore (line 91) | async function removeSecretStore() {
function removeAcl (line 114) | async function removeAcl() {
FILE: integration-tests/js-compute/test.js
function killPortProcess (line 19) | async function killPortProcess(port) {
function sleep (line 34) | async function sleep(seconds) {
constant FASTLY_API_TOKEN (line 73) | const FASTLY_API_TOKEN = process.env.FASTLY_API_TOKEN;
function chunks (line 221) | function chunks(arr, size) {
function getBodyChunks (line 284) | async function getBodyChunks(response) {
FILE: integration-tests/js-compute/util.js
function $ (line 3) | async function $(...args) {
FILE: rsrc/trace-mapping.inject.js
function getTraceMap (line 4) | function getTraceMap() {
function buildErrorHeading (line 11) | function buildErrorHeading(e) {
function getSourceContext (line 21) | function getSourceContext(source, line, col, { radius = 3 } = {}) {
function parseStarlingMonkeyFrame (line 50) | function parseStarlingMonkeyFrame(line) {
function mapStack (line 69) | function mapStack(raw) {
function mapError (line 103) | function mapError(e) {
FILE: runtime/fastly/builtins/acl.cpp
type fastly::acl (line 13) | namespace fastly::acl {
function parse_and_validate_name (line 16) | host_api::HostString parse_and_validate_name(JSContext *cx, JS::Handle...
type in6_addr (line 92) | struct in6_addr
function install (line 153) | bool install(api::Engine *engine) {
FILE: runtime/fastly/builtins/acl.h
function namespace (line 7) | namespace fastly::acl {
FILE: runtime/fastly/builtins/backend.cpp
type fastly::backend (line 38) | namespace fastly::backend {
type Authentication (line 42) | enum class Authentication : uint8_t {
type KeyExchange (line 46) | enum class KeyExchange : uint8_t {
type Encryption (line 51) | enum class Encryption : uint8_t {
type EncryptionLevel (line 60) | enum class EncryptionLevel : uint8_t {
type MessageDigest (line 65) | enum class MessageDigest : uint8_t {
type Protocol (line 72) | enum class Protocol : uint8_t {
class Cipher (line 78) | class Cipher {
method Cipher (line 89) | constexpr Cipher(std::string_view open_ssl_alias, KeyExchange kx, Au...
class OpenSSLCipherConfigurationParser (line 106) | class OpenSSLCipherConfigurationParser {
method move_to_end (line 273) | void move_to_end(const AliasMap &aliases, std::vector<Cipher> &ciphers,
method move_to_end (line 278) | void move_to_end(std::vector<Cipher> &ciphers,
method add (line 286) | void add(const AliasMap &aliases, std::vector<Cipher> &ciphers, std:...
method remove (line 291) | void remove(const AliasMap &aliases, std::vector<Cipher> &ciphers, s...
method strength_sort (line 301) | void strength_sort(std::vector<Cipher> &ciphers) const {
method default_sort (line 314) | void default_sort(std::vector<Cipher> &ciphers) const {
method by_protocol (line 335) | std::function<bool(const Cipher &)> by_protocol(Protocol val) const {
method by_key_exchange (line 339) | std::function<bool(const Cipher &)> by_key_exchange(KeyExchange val)...
method by_authentication (line 343) | std::function<bool(const Cipher &)> by_authentication(Authentication...
method by_encryption (line 347) | std::function<bool(const Cipher &)> by_encryption(std::set<Encryptio...
method by_encryption (line 351) | std::function<bool(const Cipher &)> by_encryption(Encryption val) co...
method by_encryption_level (line 355) | std::function<bool(const Cipher &)> by_encryption_level(EncryptionLe...
method by_message_digest (line 359) | std::function<bool(const Cipher &)> by_message_digest(MessageDigest ...
method split_on (line 363) | std::pair<std::string_view, std::string_view> split_on(std::string_v...
method split_cipher_suite_string (line 378) | std::vector<std::string_view> split_cipher_suite_string(std::string_...
method OpenSSLCipherConfigurationParser (line 398) | OpenSSLCipherConfigurationParser() {
method parse (line 539) | std::vector<Cipher> parse(std::string_view expression) const {
function is_valid_ip (line 609) | bool is_valid_ip(std::string_view ip) {
function is_valid_host (line 627) | bool is_valid_host(std::string_view host) {
function is_cipher_suite_supported_by_fastly (line 695) | bool is_cipher_suite_supported_by_fastly(std::string_view cipher_spec) {
function parse_and_validate_name (line 700) | host_api::HostString parse_and_validate_name(JSContext *cx, JS::Handle...
function set_host_override (line 744) | bool set_host_override(JSContext *cx, host_api::BackendConfig &backend...
function set_sni_hostname (line 760) | bool set_sni_hostname(JSContext *cx, host_api::BackendConfig &backend,
function validate_target (line 775) | bool validate_target(JSContext *cx, std::string_view target_string) {
function apply_backend_config (line 798) | bool apply_backend_config(JSContext *cx, host_api::BackendConfig &back...
function JSString (line 1214) | JSString *Backend::name(JSContext *cx, JSObject *self) {
function JSObject (line 1642) | JSObject *Backend::create(JSContext *cx, JS::HandleObject request) {
function set_default_backend_config (line 1809) | bool set_default_backend_config(JSContext *cx, unsigned argc, JS::Valu...
function enforce_explicit_backends (line 1830) | bool enforce_explicit_backends(JSContext *cx, unsigned argc, JS::Value...
function install (line 1850) | bool install(api::Engine *engine) {
FILE: runtime/fastly/builtins/backend.h
function namespace (line 7) | namespace fastly::backend {
FILE: runtime/fastly/builtins/body.cpp
type fastly::body (line 22) | namespace fastly::body {
function host_body (line 24) | host_api::HttpBody host_body(JSObject *obj) {
function JSObject (line 311) | JSObject *FastlyBody::create(JSContext *cx, uint32_t handle) {
function install (line 323) | bool install(api::Engine *engine) {
FILE: runtime/fastly/builtins/body.h
function Slots (line 19) | enum class Slots {
FILE: runtime/fastly/builtins/cache-core.cpp
type fastly::cache_core (line 22) | namespace fastly::cache_core {
function parseLookupOptions (line 31) | JS::Result<host_api::CacheLookupOptions> parseLookupOptions(JSContext ...
function parseTransactionUpdateOptions (line 95) | JS::Result<host_api::CacheWriteOptions> parseTransactionUpdateOptions(...
function parseTransactionInsertOptions (line 304) | JS::Result<host_api::CacheWriteOptions> parseTransactionInsertOptions(...
function parseInsertOptions (line 326) | JS::Result<host_api::CacheWriteOptions> parseInsertOptions(JSContext *cx,
function JSObject (line 437) | JSObject *CacheState::create(JSContext *cx, uint32_t state) {
function JSObject (line 791) | JSObject *CacheEntry::create(JSContext *cx, uint32_t handle) {
function JSObject (line 942) | JSObject *TransactionCacheEntry::create(JSContext *cx, uint32_t handle) {
function install (line 1115) | bool install(api::Engine *engine) {
FILE: runtime/fastly/builtins/cache-core.h
function namespace (line 8) | namespace fastly::cache_core {
FILE: runtime/fastly/builtins/cache-override.cpp
type fastly::cache_override (line 18) | namespace fastly::cache_override {
function parse_mode (line 22) | bool parse_mode(JSContext *cx, JS::HandleValue mode, CacheOverride::Ca...
function JSObject (line 107) | JSObject *CacheOverride::beforeSend(JSObject *self) {
function JSObject (line 121) | JSObject *CacheOverride::afterSend(JSObject *self) {
function JSObject (line 430) | JSObject *CacheOverride::create(JSContext *cx, JS::HandleValue overrid...
function JSObject (line 526) | JSObject *CacheOverride::clone(JSContext *cx, JS::HandleObject self) {
function install (line 541) | bool install(api::Engine *engine) {
FILE: runtime/fastly/builtins/cache-override.h
function class (line 9) | class CacheOverride : public builtins::BuiltinImpl<CacheOverride> {
FILE: runtime/fastly/builtins/cache-simple.cpp
type fastly::cache_simple (line 24) | namespace fastly::cache_simple {
function JSObject (line 72) | JSObject *SimpleCacheEntry::create(JSContext *cx, host_api::HttpBody b...
function createGlobalSurrogateKeyFromCacheKey (line 95) | JS::Result<std::string> createGlobalSurrogateKeyFromCacheKey(JSContext...
function createPopSurrogateKeyFromCacheKey (line 117) | JS::Result<std::string> createPopSurrogateKeyFromCacheKey(JSContext *cx,
function createSurrogateKeysFromCacheKey (line 140) | JS::Result<std::string> createSurrogateKeysFromCacheKey(JSContext *cx,...
class CacheTransaction (line 169) | class CacheTransaction final {
method CacheTransaction (line 178) | CacheTransaction(JSContext *cx, JS::HandleObject promise, host_api::...
method commit (line 198) | void commit() {
function get_or_set_then_handler (line 206) | bool get_or_set_then_handler(JSContext *cx, JS::HandleObject lookup_st...
function get_or_set_catch_handler (line 379) | bool get_or_set_catch_handler(JSContext *cx, JS::HandleObject lookup_s...
function process_pending_cache_lookup (line 401) | bool process_pending_cache_lookup(JSContext *cx, host_api::CacheHandle...
function install (line 840) | bool install(api::Engine *engine) {
FILE: runtime/fastly/builtins/cache-simple.h
function namespace (line 8) | namespace fastly::cache_simple {
function class (line 30) | class SimpleCache : public builtins::BuiltinNoConstructor<SimpleCache> {
FILE: runtime/fastly/builtins/config-store.cpp
type fastly::config_store (line 9) | namespace fastly::config_store {
function install (line 128) | bool install(api::Engine *engine) {
FILE: runtime/fastly/builtins/config-store.h
function namespace (line 8) | namespace fastly::config_store {
FILE: runtime/fastly/builtins/device.cpp
type fastly::device (line 9) | namespace fastly::device {
function write_json_to_buf (line 13) | bool write_json_to_buf(const char16_t *str, uint32_t strlen, void *out) {
function JSObject (line 20) | JSObject *deviceToJSON(JSContext *cx, JS::HandleObject self) {
function JSString (line 175) | JSString *Device::ToSource(JSContext *cx, JS::HandleObject self) {
function JSObject (line 581) | JSObject *Device::create(JSContext *cx, JS::HandleObject device_info) {
function install (line 595) | bool install(api::Engine *engine) {
FILE: runtime/fastly/builtins/device.h
function namespace (line 7) | namespace fastly::device {
FILE: runtime/fastly/builtins/dictionary.cpp
type fastly::dictionary (line 8) | namespace fastly::dictionary {
function install (line 141) | bool install(api::Engine *engine) {
FILE: runtime/fastly/builtins/dictionary.h
function namespace (line 8) | namespace fastly::dictionary {
FILE: runtime/fastly/builtins/edge-rate-limiter.cpp
type fastly::edge_rate_limiter (line 8) | namespace fastly::edge_rate_limiter {
function JSString (line 10) | JSString *PenaltyBox::get_name(JSObject *self) {
function JSString (line 136) | JSString *RateCounter::get_name(JSObject *self) {
function install (line 463) | bool install(api::Engine *engine) {
FILE: runtime/fastly/builtins/edge-rate-limiter.h
function namespace (line 7) | namespace fastly::edge_rate_limiter {
FILE: runtime/fastly/builtins/fastly.cpp
function oom_callback (line 34) | static void oom_callback(JSContext *cx, void *data) {
function debug_logging_enabled (line 45) | bool debug_logging_enabled() { return fastly::fastly::DEBUG_LOGGING_ENAB...
type fastly::fastly (line 47) | namespace fastly::fastly {
function debugLog (line 99) | bool debugLog(JSContext *cx, unsigned argc, JS::Value *vp) {
type in6_addr (line 142) | struct in6_addr
type in6_addr (line 202) | struct in6_addr
type in6_addr (line 202) | struct in6_addr
function compute_get_vcpu_time (line 495) | bool compute_get_vcpu_time(JSContext *cx, unsigned argc, JS::Value *vp) {
function compute_purge_surrogate_key (line 506) | bool compute_purge_surrogate_key(JSContext *cx, unsigned argc, JS::Val...
function JSObject (line 588) | JSObject *Env::create(JSContext *cx) {
function debugMessages_get (line 645) | bool debugMessages_get(JSContext *cx, unsigned argc, JS::Value *vp) {
function install (line 781) | bool install(api::Engine *engine) {
function convertBodyInit (line 1013) | JS::Result<std::tuple<JS::UniqueChars, size_t>> convertBodyInit(JSCont...
function fastly_push_debug_message (line 1061) | void fastly_push_debug_message(std::string msg) {
FILE: runtime/fastly/builtins/fastly.h
function namespace (line 12) | namespace fastly::fastly {
FILE: runtime/fastly/builtins/fetch-event.cpp
type fastly::fetch_event (line 29) | namespace fastly::fetch_event {
function JSString (line 33) | JSString *client_request_id(JSObject *obj) {
function JSString (line 39) | JSString *client_address(JSObject *obj) {
function JSString (line 44) | JSString *geo_info(JSObject *obj) {
function JSString (line 49) | JSString *cipher(JSObject *obj) {
function JSString (line 53) | JSString *ja3(JSObject *obj) {
function JSString (line 57) | JSString *ja4(JSObject *obj) {
function JSString (line 61) | JSString *h2Fingerprint(JSObject *obj) {
function JSString (line 65) | JSString *ohFingerprint(JSObject *obj) {
function JSObject (line 69) | JSObject *clientHello(JSObject *obj) {
function JSObject (line 73) | JSObject *clientCert(JSObject *obj) {
function JSString (line 77) | JSString *protocol(JSObject *obj) {
function JSString (line 84) | JSString *ClientInfo::retrieve_client_address(JSContext *cx, JS::Handl...
type in6_addr (line 170) | struct in6_addr
function JSObject (line 451) | JSObject *ClientInfo::create(JSContext *cx, JS::HandleValue req) {
function JSString (line 462) | JSString *server_address(JSObject *obj) {
function JSString (line 469) | JSString *ServerInfo::retrieve_server_address(JSContext *cx, JS::Handl...
function JSObject (line 522) | JSObject *ServerInfo::create(JSContext *cx, JS::HandleValue req) {
function inc_pending_promise_count (line 537) | void inc_pending_promise_count(JSObject *self) {
function dec_pending_promise_count (line 551) | void dec_pending_promise_count(JSObject *self) {
function add_pending_promise (line 565) | bool add_pending_promise(JSContext *cx, JS::HandleObject self, JS::Han...
function dispatch_fetch_event (line 621) | void dispatch_fetch_event(HandleObject event) {
function dispatch_fetch_event (line 645) | void dispatch_fetch_event(HandleObject event, double *total_compute) {
function JSObject (line 655) | JSObject *FetchEvent::prepare_downstream_request(JSContext *cx) {
function start_response (line 759) | bool start_response(JSContext *cx, JS::HandleObject response_obj, bool...
function response_promise_then_handler (line 777) | bool response_promise_then_handler(JSContext *cx, JS::HandleObject eve...
function response_promise_catch_handler (line 849) | bool response_promise_catch_handler(JSContext *cx, JS::HandleObject ev...
function dec_pending_promise_count (line 999) | bool dec_pending_promise_count(JSContext *cx, JS::HandleObject event, ...
function JSObject (line 1056) | JSObject *FetchEvent::create(JSContext *cx) {
function addEventListener (line 1149) | static bool addEventListener(JSContext *cx, unsigned argc, Value *vp) {
function install (line 1177) | bool install(api::Engine *engine) {
FILE: runtime/fastly/builtins/fetch-event.h
function Slots (line 30) | enum class Slots {
function Slots (line 61) | enum class Slots {
function State (line 88) | enum class State {
FILE: runtime/fastly/builtins/fetch/fetch.cpp
class FetchTask (line 32) | class FetchTask final : public api::AsyncTask {
method FetchTask (line 37) | explicit FetchTask(host_api::HttpPendingReq::Handle handle, JS::Handle...
method run (line 45) | [[nodiscard]] bool run(api::Engine *engine) override {
method cancel (line 54) | [[nodiscard]] bool cancel(api::Engine *engine) override { return false; }
method trace (line 56) | void trace(JSTracer *trc) override {
function JSObject (line 63) | JSObject *internal_method_then(JSContext *cx, JS::HandleObject promise, ...
function JSString (line 82) | JSString *get_backend(JSContext *cx, JS::HandleObject request) {
function must_use_guest_caching (line 113) | bool must_use_guest_caching(JSContext *cx, HandleObject request) {
type CachingMode (line 124) | enum CachingMode { Guest, Host, ImageOptimizer }
function get_caching_mode (line 125) | bool get_caching_mode(JSContext *cx, HandleObject request, CachingMode *...
function fetch_send_body (line 207) | bool fetch_send_body(JSContext *cx, HandleObject request, JS::MutableHan...
function fetch_process_cache_hooks_origin_request (line 328) | bool fetch_process_cache_hooks_origin_request(JSContext *cx, JS::HandleO...
function fetch_process_cache_hooks_before_send_reject (line 395) | bool fetch_process_cache_hooks_before_send_reject(JSContext *cx, JS::Han...
function fetch_send_body_with_cache_hooks (line 406) | bool fetch_send_body_with_cache_hooks(JSContext *cx, HandleObject request,
function apply_body_transform_transform_then (line 490) | bool apply_body_transform_transform_then(JSContext *cx, JS::HandleObject...
function apply_body_transform_response_array_buffer_then (line 525) | bool apply_body_transform_response_array_buffer_then(JSContext *cx, JS::...
function apply_body_transform_catch_handler (line 563) | bool apply_body_transform_catch_handler(JSContext *cx, JS::HandleObject ...
function apply_body_transform (line 574) | bool apply_body_transform(JSContext *cx, JS::HandleValue response, host_...
function background_cleanup_handler (line 714) | bool background_cleanup_handler(JSContext *cx, JS::HandleObject request,
function background_revalidation_then_handler (line 723) | bool background_revalidation_then_handler(JSContext *cx, JS::HandleObjec...
function get_found_response (line 821) | std::optional<JSObject *> get_found_response(JSContext *cx, host_api::Ht...
function stream_back_transform_fulfill (line 897) | bool stream_back_transform_fulfill(JSContext *cx, JS::HandleObject found...
function stream_back_then_handler (line 903) | bool stream_back_then_handler(JSContext *cx, JS::HandleObject request, J...
function stream_back_catch_handler (line 1087) | bool stream_back_catch_handler(JSContext *cx, JS::HandleObject request, ...
type fastly::fetch (line 1101) | namespace fastly::fetch {
function fetch (line 1109) | bool fetch(JSContext *cx, unsigned argc, Value *vp) {
function install (line 1307) | bool install(api::Engine *engine) {
FILE: runtime/fastly/builtins/fetch/fetch.h
function namespace (line 4) | namespace fastly::fetch {
FILE: runtime/fastly/builtins/fetch/request-response.cpp
type builtins::web::streams (line 85) | namespace builtins::web::streams {
type fastly::fetch (line 95) | namespace fastly::fetch {
function error_stream_controller_with_pending_exception (line 98) | bool error_stream_controller_with_pending_exception(JSContext *cx, JS:...
function set_up_shortcutting (line 111) | void set_up_shortcutting(JSContext *cx, JS::HandleObject stream, JS::H...
function maybe_shortcut_transform_stream_read (line 138) | bool maybe_shortcut_transform_stream_read(JSContext *cx, JS::HandleObj...
function process_body_read (line 232) | bool process_body_read(JSContext *cx, host_api::HttpBody::Handle handl...
type StreamState (line 289) | enum StreamState { Complete, Wait, Error }
type ReadResult (line 291) | struct ReadResult {
function ReadResult (line 299) | ReadResult read_from_handle_all(JSContext *cx, host_api::HttpBody body) {
function after_send_then (line 477) | bool after_send_then(JSContext *cx, JS::HandleObject response, JS::Han...
function after_send_catch (line 599) | bool after_send_catch(JSContext *cx, JS::HandleObject response, JS::Ha...
function JSObject (line 825) | JSObject *RequestOrResponse::body_stream(JSObject *obj) {
function JSObject (line 829) | JSObject *RequestOrResponse::body_source(JSContext *cx, JS::HandleObje...
function JSObject (line 1062) | JSObject *RequestOrResponse::maybe_headers(JSObject *obj) {
function JSObject (line 1079) | JSObject *Request::headers(JSContext *cx, JS::HandleObject obj) {
function JSObject (line 1099) | JSObject *Response::headers(JSContext *cx, JS::HandleObject obj) {
function JSObject (line 1957) | JSObject *RequestOrResponse::create_body_stream(JSContext *cx, JS::Han...
function JSString (line 2075) | JSString *RequestOrResponse::backend(JSObject *obj) {
function JSObject (line 2081) | JSObject *Request::response_promise(JSObject *obj) {
function JSString (line 2087) | JSString *Request::method(JSContext *cx, JS::HandleObject obj) {
function JSObject (line 2542) | JSObject *Request::create(JSContext *cx, JS::HandleObject requestInsta...
function JSObject (line 2573) | JSObject *Request::create(JSContext *cx, JS::HandleObject requestInsta...
function JSObject (line 3098) | JSObject *Request::create_instance(JSContext *cx) {
function JSString (line 3170) | JSString *Response::status_message(JSObject *obj) {
function write_json_to_buf (line 3662) | bool write_json_to_buf(const char16_t *str, uint32_t strlen, void *out) {
function JSObject (line 4702) | JSObject *Response::create(JSContext *cx, HandleObject request, host_a...
function JSObject (line 4747) | JSObject *Response::create(JSContext *cx, JS::HandleObject response,
FILE: runtime/fastly/builtins/fetch/request-response.h
type class (line 11) | enum class
function BodyReadResult (line 69) | enum class BodyReadResult {
function Slots (line 165) | enum class Slots {
function Slots (line 257) | enum class Slots {
FILE: runtime/fastly/builtins/html-rewriter.cpp
type fastly::html_rewriter (line 11) | namespace fastly::html_rewriter {
function lol_html_element_t (line 29) | lol_html_element_t *raw_element(JSObject *self) {
function should_escape_html (line 52) | static bool should_escape_html(JSContext *cx, JS::HandleValue options_...
function JSObject (line 212) | static JSObject *create_element(JSContext *cx, lol_html_element_t *ele...
function lol_html_rewriter_builder_t (line 232) | static lol_html_rewriter_builder_t *builder(JSObject *self) {
function set_builder (line 239) | static void set_builder(JSObject *self, lol_html_rewriter_builder_t *b...
function JSObject (line 245) | static JSObject *transform(JSObject *self) {
function lol_html_rewriter_t (line 250) | static lol_html_rewriter_t *raw_rewriter(JSObject *self) {
function set_raw_rewriter (line 256) | static void set_raw_rewriter(JSObject *self, lol_html_rewriter_t *rewr...
class ElementHandlerData (line 265) | class ElementHandlerData {
method ElementHandlerData (line 267) | ElementHandlerData(JSContext *cx, JSObject *handler, JSString *js_se...
method JSContext (line 273) | JSContext *cx() const { return cx_; }
method JSObject (line 274) | JSObject *handler() const { return handler_; }
method JSString (line 275) | JSString *selector() const { return js_selector_; }
method trace (line 277) | void trace(JSTracer *trc) {
function lol_html_rewriter_directive_t (line 290) | static lol_html_rewriter_directive_t handle_element(lol_html_element_t...
type OutputContextData (line 359) | struct OutputContextData {
method OutputContextData (line 364) | OutputContextData(JSContext *cx, JSObject *self) : cx(cx), self(self...
method trace (line 366) | void trace(JSTracer *trc) { TraceEdge(trc, &self, "OutputContextData...
function output_callback (line 421) | static void output_callback(const char *chunk, size_t chunk_len, void ...
function install (line 609) | bool install(api::Engine *engine) {
FILE: runtime/fastly/builtins/html-rewriter.h
function namespace (line 10) | namespace fastly::html_rewriter {
FILE: runtime/fastly/builtins/image-optimizer.cpp
function from_percentage (line 5) | std::optional<double> from_percentage(std::string_view sv) {
function to_number_between_inclusive (line 17) | std::optional<double> to_number_between_inclusive(JS::HandleValue val, d...
function exactly_one_defined (line 28) | bool exactly_one_defined(JS::HandleValue a, JS::HandleValue b) {
type fastly::image_optimizer (line 33) | namespace fastly::image_optimizer {
function install (line 54) | bool install(api::Engine *engine) {
function fastly_image_optimizer_transform_config (line 263) | fastly_image_optimizer_transform_config ImageOptimizerOptions::to_conf...
FILE: runtime/fastly/builtins/image-optimizer.h
function class (line 15) | class EnumOption {
type Blur (line 48) | struct Blur {
type Brightness (line 54) | struct Brightness {
type PixelsOrPercentage (line 59) | struct PixelsOrPercentage {
type Size (line 69) | struct Size {
type Position (line 82) | struct Position {
type Canvas (line 88) | struct Canvas {
type Color (line 94) | struct Color {
type Contrast (line 99) | struct Contrast {
type CropSpec (line 105) | struct CropSpec {
type Crop (line 112) | struct Crop {
function std (line 115) | static std::optional<Crop> to_crop(JSContext *cx, JS::HandleValue val) {
type Dpr (line 122) | struct Dpr {
type Frame (line 127) | struct Frame {
type Height (line 132) | struct Height {
function std (line 135) | static std::optional<Height> to_height(JSContext *cx, JS::HandleValue va...
type Level (line 145) | struct Level {
type Sides (line 150) | struct Sides {
type Pad (line 155) | struct Pad {
function std (line 158) | static std::optional<Pad> to_pad(JSContext *cx, JS::HandleValue val) {
type Precrop (line 170) | struct Precrop {
function std (line 173) | static std::optional<Precrop> to_precrop(JSContext *cx, JS::HandleValue ...
type Quality (line 180) | struct Quality {
type Saturation (line 185) | struct Saturation {
type Sharpen (line 190) | struct Sharpen {
type Trim (line 197) | struct Trim {
function std (line 200) | static std::optional<Trim> to_trim(JSContext *cx, JS::HandleValue val) {
type TrimColor (line 212) | struct TrimColor {
type Viewbox (line 218) | struct Viewbox {
type Width (line 223) | struct Width {
function std (line 226) | static std::optional<Width> to_width(JSContext *cx, JS::HandleValue val) {
type BGColor (line 236) | struct BGColor {
function std (line 239) | static std::optional<BGColor> to_bg_color(JSContext *cx, JS::HandleValue...
function std (line 303) | inline std::string to_string(const ImageOptimizerOptions &opts) { return...
function std (line 318) | inline std::string to_string(const ImageOptimizerOptions::Color &c) {
FILE: runtime/fastly/builtins/kv-store.cpp
type fastly::kv_store (line 36) | namespace fastly::kv_store {
function find_invalid_character_for_kv_store_key (line 44) | std::optional<char> find_invalid_character_for_kv_store_key(const char...
function JSObject (line 142) | JSObject *KVStoreEntry::create(JSContext *cx, host_api::HttpBody body_...
function kv_store (line 177) | host_api::KVStore kv_store(JSObject *obj) {
function parse_and_validate_key (line 182) | bool parse_and_validate_key(JSContext *cx, const char *key, size_t len) {
function process_pending_kv_store_list (line 242) | bool process_pending_kv_store_list(JSContext *cx, host_api::KVStorePen...
function process_pending_kv_store_delete (line 296) | bool process_pending_kv_store_delete(JSContext *cx, host_api::KVStoreP...
function process_pending_kv_store_lookup (line 311) | bool process_pending_kv_store_lookup(JSContext *cx, host_api::KVStoreP...
function install (line 856) | bool install(api::Engine *engine) {
FILE: runtime/fastly/builtins/kv-store.h
function Slots (line 24) | enum class Slots {
function Slots (line 59) | enum class Slots {
FILE: runtime/fastly/builtins/logger.cpp
type builtins::web::console (line 5) | namespace builtins::web::console {
class Console (line 7) | class Console : public BuiltinNoConstructor<Console> {
type LogType (line 11) | enum LogType {
type Slots (line 18) | enum Slots { Count }
function builtin_impl_console_log (line 26) | void builtin_impl_console_log(Console::LogType log_ty, const char *msg) {
type fastly::logger (line 62) | namespace fastly::logger {
function JSObject (line 120) | JSObject *Logger::create(JSContext *cx, JS::HandleValue endpoint_name) {
function configure_console (line 137) | bool configure_console(JSContext *cx, unsigned argc, JS::Value *vp) {
function install (line 181) | bool install(api::Engine *engine) {
FILE: runtime/fastly/builtins/logger.h
function namespace (line 7) | namespace fastly::logger {
FILE: runtime/fastly/builtins/secret-store.cpp
type fastly::secret_store (line 10) | namespace fastly::secret_store {
function JSObject (line 95) | JSObject *SecretStoreEntry::create(JSContext *cx, host_api::Secret sec...
function install (line 277) | bool install(api::Engine *engine) {
FILE: runtime/fastly/builtins/secret-store.h
function namespace (line 8) | namespace fastly::secret_store {
FILE: runtime/fastly/builtins/shielding.cpp
type fastly::shielding (line 8) | namespace fastly::shielding {
function install (line 149) | bool install(api::Engine *engine) {
FILE: runtime/fastly/builtins/shielding.h
function namespace (line 8) | namespace fastly::shielding {
FILE: runtime/fastly/common/ip_octets_to_js_string.cpp
type fastly::common (line 7) | namespace fastly::common {
function JSString (line 9) | JSString *ip_octets_to_js_string(JSContext *cx, host_api::HostBytes oc...
FILE: runtime/fastly/common/ip_octets_to_js_string.h
function namespace (line 10) | namespace fastly::common {
FILE: runtime/fastly/common/normalize_http_method.cpp
type fastly::common (line 5) | namespace fastly::common {
function normalize_http_method (line 10) | bool normalize_http_method(char *method, size_t length) {
FILE: runtime/fastly/common/normalize_http_method.h
function namespace (line 4) | namespace fastly::common {
FILE: runtime/fastly/common/sequence.hpp
type fastly::common (line 12) | namespace fastly::common {
function report_sequence_or_record_arg_error (line 14) | inline bool report_sequence_or_record_arg_error(JSContext *cx, const c...
function maybe_consume_sequence_or_record (line 29) | bool maybe_consume_sequence_or_record(JSContext *cx, JS::HandleValue i...
FILE: runtime/fastly/common/validations.cpp
type fastly::common (line 8) | namespace fastly::common {
function parse_and_validate_timeout (line 9) | std::optional<uint32_t> parse_and_validate_timeout(JSContext *cx, JS::...
function validate_bytes (line 35) | std::optional<std::tuple<const uint8_t *, size_t, std::optional<JS::Au...
FILE: runtime/fastly/common/validations.h
function namespace (line 9) | namespace fastly::common {
FILE: runtime/fastly/crates/rust-lol-html/build.rs
function main (line 2) | fn main() {}
FILE: runtime/fastly/crates/rust-lol-html/include/lol_html.h
type lol_html_rewriter_builder_t (line 22) | typedef struct lol_html_HtmlRewriterBuilder lol_html_rewriter_builder_t;
type lol_html_rewriter_t (line 23) | typedef struct lol_html_HtmlRewriter lol_html_rewriter_t;
type lol_html_doctype_t (line 24) | typedef struct lol_html_Doctype lol_html_doctype_t;
type lol_html_doc_end_t (line 25) | typedef struct lol_html_DocumentEnd lol_html_doc_end_t;
type lol_html_end_tag_t (line 26) | typedef struct lol_html_EndTag lol_html_end_tag_t;
type lol_html_comment_t (line 27) | typedef struct lol_html_Comment lol_html_comment_t;
type lol_html_text_chunk_t (line 28) | typedef struct lol_html_TextChunk lol_html_text_chunk_t;
type lol_html_element_t (line 29) | typedef struct lol_html_Element lol_html_element_t;
type lol_html_attributes_iterator_t (line 30) | typedef struct lol_html_AttributesIterator lol_html_attributes_iterator_t;
type lol_html_attribute_t (line 31) | typedef struct lol_html_Attribute lol_html_attribute_t;
type lol_html_selector_t (line 32) | typedef struct lol_html_Selector lol_html_selector_t;
type lol_html_streaming_sink_t (line 33) | typedef struct lol_html_CStreamingHandlerSink lol_html_streaming_sink_t;
type lol_html_str_t (line 41) | typedef struct {
type lol_html_text_chunk_content_t (line 56) | typedef struct {
type lol_html_rewriter_directive_t (line 85) | typedef enum { LOL_HTML_CONTINUE, LOL_HTML_STOP } lol_html_rewriter_dire...
type lol_html_rewriter_directive_t (line 87) | typedef lol_html_rewriter_directive_t (*lol_html_doctype_handler_t)(lol_...
type lol_html_rewriter_directive_t (line 90) | typedef lol_html_rewriter_directive_t (*lol_html_comment_handler_t)(lol_...
type lol_html_rewriter_directive_t (line 93) | typedef lol_html_rewriter_directive_t (*lol_html_text_handler_handler_t)(
type lol_html_rewriter_directive_t (line 96) | typedef lol_html_rewriter_directive_t (*lol_html_element_handler_t)(lol_...
type lol_html_rewriter_directive_t (line 99) | typedef lol_html_rewriter_directive_t (*lol_html_doc_end_handler_t)(lol_...
type lol_html_rewriter_directive_t (line 102) | typedef lol_html_rewriter_directive_t (*lol_html_end_tag_handler_t)(lol_...
type lol_html_source_location_bytes_t (line 106) | typedef struct lol_html_SourceLocationBytes {
type lol_html_streaming_handler_t (line 118) | typedef struct lol_html_CStreamingHandler {
type lol_html_memory_settings_t (line 218) | typedef struct {
FILE: runtime/fastly/crates/rust-lol-html/src/comment.rs
function lol_html_comment_text_get (line 4) | pub unsafe extern "C" fn lol_html_comment_text_get(comment: *const Comme...
function lol_html_comment_text_set (line 9) | pub unsafe extern "C" fn lol_html_comment_text_set(
function lol_html_comment_user_data_set (line 61) | pub unsafe extern "C" fn lol_html_comment_user_data_set(
function lol_html_comment_user_data_get (line 69) | pub unsafe extern "C" fn lol_html_comment_user_data_get(comment: *const ...
FILE: runtime/fastly/crates/rust-lol-html/src/doctype.rs
function lol_html_doctype_name_get (line 4) | pub unsafe extern "C" fn lol_html_doctype_name_get(doctype: *const Docty...
function lol_html_doctype_public_id_get (line 9) | pub unsafe extern "C" fn lol_html_doctype_public_id_get(doctype: *const ...
function lol_html_doctype_system_id_get (line 14) | pub unsafe extern "C" fn lol_html_doctype_system_id_get(doctype: *const ...
function lol_html_doctype_user_data_set (line 19) | pub unsafe extern "C" fn lol_html_doctype_user_data_set(
function lol_html_doctype_user_data_get (line 27) | pub unsafe extern "C" fn lol_html_doctype_user_data_get(doctype: *const ...
FILE: runtime/fastly/crates/rust-lol-html/src/element.rs
function lol_html_element_tag_name_get (line 6) | pub unsafe extern "C" fn lol_html_element_tag_name_get(element: *const E...
function lol_html_element_tag_name_get_preserve_case (line 14) | pub unsafe extern "C" fn lol_html_element_tag_name_get_preserve_case(
function lol_html_element_tag_name_set (line 29) | pub unsafe extern "C" fn lol_html_element_tag_name_set(
function lol_html_element_namespace_uri_get (line 47) | pub unsafe extern "C" fn lol_html_element_namespace_uri_get(
function lol_html_attributes_iterator_get (line 68) | pub unsafe extern "C" fn lol_html_attributes_iterator_get<'r, 't>(
function lol_html_attributes_iterator_next (line 83) | pub unsafe extern "C" fn lol_html_attributes_iterator_next<'t>(
function lol_html_attributes_iterator_free (line 96) | pub unsafe extern "C" fn lol_html_attributes_iterator_free(iterator: *mu...
function lol_html_attribute_name_get (line 102) | pub unsafe extern "C" fn lol_html_attribute_name_get(attribute: *const A...
function lol_html_attribute_name_get_preserve_case (line 110) | pub unsafe extern "C" fn lol_html_attribute_name_get_preserve_case(
function lol_html_attribute_value_get (line 120) | pub unsafe extern "C" fn lol_html_attribute_value_get(attribute: *const ...
function lol_html_element_get_attribute (line 134) | pub unsafe extern "C" fn lol_html_element_get_attribute(
function lol_html_element_has_attribute (line 150) | pub unsafe extern "C" fn lol_html_element_has_attribute(
function lol_html_element_set_attribute (line 173) | pub unsafe extern "C" fn lol_html_element_set_attribute(
function lol_html_element_remove_attribute (line 196) | pub unsafe extern "C" fn lol_html_element_remove_attribute(
function lol_html_element_user_data_set (line 289) | pub unsafe extern "C" fn lol_html_element_user_data_set(
function lol_html_element_user_data_get (line 298) | pub unsafe extern "C" fn lol_html_element_user_data_get(element: *mut El...
type EndTagHandler (line 302) | type EndTagHandler = unsafe extern "C" fn(*mut EndTag, *mut c_void) -> R...
function lol_html_element_add_end_tag_handler (line 327) | pub unsafe extern "C" fn lol_html_element_add_end_tag_handler(
function lol_html_element_clear_end_tag_handlers (line 350) | pub unsafe extern "C" fn lol_html_element_clear_end_tag_handlers(element...
function lol_html_end_tag_name_get (line 383) | pub unsafe extern "C" fn lol_html_end_tag_name_get(end_tag: *mut EndTag)...
function lol_html_end_tag_name_get_preserve_case (line 390) | pub unsafe extern "C" fn lol_html_end_tag_name_get_preserve_case(end_tag...
function lol_html_end_tag_name_set (line 402) | pub unsafe extern "C" fn lol_html_end_tag_name_set(
FILE: runtime/fastly/crates/rust-lol-html/src/errors.rs
function lol_html_take_last_error (line 9) | pub extern "C" fn lol_html_take_last_error() -> Str {
type CStreamingHandlerError (line 16) | pub enum CStreamingHandlerError {
FILE: runtime/fastly/crates/rust-lol-html/src/lib.rs
function to_ptr_mut (line 12) | fn to_ptr_mut<T>(val: T) -> *mut T {
type SourceLocationBytes (line 255) | pub struct SourceLocationBytes {
type EncodingError (line 269) | pub enum EncodingError {
FILE: runtime/fastly/crates/rust-lol-html/src/rewriter.rs
type ExternOutputSink (line 8) | pub struct ExternOutputSink {
method new (line 19) | fn new(
type HtmlRewriter (line 15) | pub struct HtmlRewriter(Option<lol_html::HtmlRewriter<'static, ExternOut...
method handle_chunk (line 29) | fn handle_chunk(&mut self, chunk: &[u8]) {
function lol_html_rewriter_build (line 38) | pub unsafe extern "C" fn lol_html_rewriter_build(
function unstable_lol_html_rewriter_build_with_esi_tags (line 70) | pub unsafe extern "C" fn unstable_lol_html_rewriter_build_with_esi_tags(
function lol_html_rewriter_write (line 102) | pub unsafe extern "C" fn lol_html_rewriter_write(
function lol_html_rewriter_end (line 119) | pub unsafe extern "C" fn lol_html_rewriter_end(rewriter: *mut HtmlRewrit...
function lol_html_rewriter_free (line 131) | pub unsafe extern "C" fn lol_html_rewriter_free(rewriter: *mut HtmlRewri...
FILE: runtime/fastly/crates/rust-lol-html/src/rewriter_builder.rs
type RewriterDirective (line 6) | pub enum RewriterDirective {
type ElementHandler (line 11) | type ElementHandler = unsafe extern "C" fn(*mut Element, *mut c_void) ->...
type DoctypeHandler (line 12) | type DoctypeHandler = unsafe extern "C" fn(*mut Doctype, *mut c_void) ->...
type CommentsHandler (line 13) | type CommentsHandler = unsafe extern "C" fn(*mut Comment, *mut c_void) -...
type TextHandler (line 14) | type TextHandler = unsafe extern "C" fn(*mut TextChunk, *mut c_void) -> ...
type DocumentEndHandler (line 15) | type DocumentEndHandler = unsafe extern "C" fn(*mut DocumentEnd, *mut c_...
type ExternHandler (line 17) | struct ExternHandler<F> {
function new (line 23) | const fn new(func: Option<F>, user_data: *mut c_void) -> Self {
type ExternDocumentContentHandlers (line 53) | pub struct ExternDocumentContentHandlers {
method as_safe_document_content_handlers (line 62) | pub fn as_safe_document_content_handlers(&self) -> DocumentContentHand...
type ExternElementContentHandlers (line 74) | pub struct ExternElementContentHandlers {
method as_safe_element_content_handlers (line 82) | pub fn as_safe_element_content_handlers(&self) -> ElementContentHandle...
type SafeContentHandlers (line 93) | pub struct SafeContentHandlers<'b> {
type HtmlRewriterBuilder (line 99) | pub struct HtmlRewriterBuilder {
method get_safe_handlers (line 106) | pub fn get_safe_handlers(&self) -> SafeContentHandlers<'_> {
function lol_html_rewriter_builder_new (line 123) | pub unsafe extern "C" fn lol_html_rewriter_builder_new() -> *mut HtmlRew...
function lol_html_rewriter_builder_add_document_content_handlers (line 128) | pub unsafe extern "C" fn lol_html_rewriter_builder_add_document_content_...
function lol_html_rewriter_builder_add_element_content_handlers (line 152) | pub unsafe extern "C" fn lol_html_rewriter_builder_add_element_content_h...
function lol_html_rewriter_builder_free (line 177) | pub unsafe extern "C" fn lol_html_rewriter_builder_free(builder: *mut Ht...
FILE: runtime/fastly/crates/rust-lol-html/src/selector.rs
function lol_html_selector_parse (line 4) | pub unsafe extern "C" fn lol_html_selector_parse(
function lol_html_selector_free (line 15) | pub unsafe extern "C" fn lol_html_selector_free(selector: *mut Selector) {
FILE: runtime/fastly/crates/rust-lol-html/src/streaming.rs
type CStreamingHandlerSink (line 7) | pub type CStreamingHandlerSink<'tmp> = StreamingHandlerSink<'tmp>;
function lol_html_streaming_sink_write_str (line 12) | pub unsafe extern "C" fn lol_html_streaming_sink_write_str(
function lol_html_streaming_sink_write_utf8_chunk (line 43) | pub unsafe extern "C" fn lol_html_streaming_sink_write_utf8_chunk(
type CStreamingHandler (line 67) | pub struct CStreamingHandler {
method write_all (line 90) | fn write_all(
method drop (line 110) | fn drop(&mut self) {
FILE: runtime/fastly/crates/rust-lol-html/src/string.rs
type Str (line 6) | pub struct Str {
method new (line 13) | pub fn new(string: String) -> Self {
method from_opt (line 25) | pub fn from_opt(string: Option<String>) -> Self {
method drop (line 37) | fn drop(&mut self) {
function lol_html_str_free (line 48) | pub unsafe extern "C" fn lol_html_str_free(string: Str) {
FILE: runtime/fastly/crates/rust-lol-html/src/text_chunk.rs
type TextChunkContent (line 4) | pub struct TextChunkContent {
method new (line 10) | fn new(chunk: &TextChunk) -> Self {
function lol_html_text_chunk_content_get (line 27) | pub unsafe extern "C" fn lol_html_text_chunk_content_get(
function lol_html_text_chunk_user_data_set (line 74) | pub unsafe extern "C" fn lol_html_text_chunk_user_data_set(
function lol_html_text_chunk_user_data_get (line 83) | pub unsafe extern "C" fn lol_html_text_chunk_user_data_get(chunk: *const...
FILE: runtime/fastly/handler.cpp
type fastly::runtime (line 16) | namespace fastly::runtime {
function install (line 21) | bool install(api::Engine *engine) {
function handle_incoming (line 29) | bool handle_incoming(host_api::Request req) {
function main (line 108) | int main(int argc, const char *argv[]) {
FILE: runtime/fastly/host-api/fastly.h
function namespace (line 5) | namespace fastly {
FILE: runtime/fastly/host-api/host_api.cpp
function log_hostcall (line 18) | static void log_hostcall(const char *func_name, ...) {
function convert_result (line 52) | static bool convert_result(int res, fastly::fastly_host_error *err) {
function sleep_until (line 104) | void sleep_until(uint64_t time_ns, uint64_t now) {
type host_api (line 262) | namespace host_api {
function span_to_list_u8 (line 266) | fastly::fastly_world_list_u8 span_to_list_u8(std::span<uint8_t> span) {
function string_view_to_world_string (line 273) | fastly::fastly_world_string string_view_to_world_string(std::string_vi...
function HostString (line 280) | HostString make_host_string(fastly::fastly_world_string str) {
function HostString (line 284) | HostString make_host_string(fastly::fastly_world_list_u8 str) {
function HostBytes (line 288) | HostBytes make_host_bytes(uint8_t *ptr, size_t len) {
function Response (line 292) | Response make_response(fastly::fastly_host_http_response &resp) {
function generic_get_header_names (line 297) | Result<std::vector<HostString>> generic_get_header_names(auto handle) {
type Chunk (line 364) | struct Chunk {
method Chunk (line 368) | static Chunk make(std::string_view data) {
function generic_get_header_values (line 376) | Result<std::optional<std::vector<HostString>>> generic_get_header_valu...
function generic_header_op (line 452) | Result<Void> generic_header_op(auto handle, std::string_view name, std...
function generic_header_remove (line 467) | Result<Void> generic_header_remove(auto handle, std::string_view name) {
class HandleState (line 546) | class HandleState {
method HandleState (line 552) | explicit HandleState(api::FastlyAsyncTask::Handle handle, bool is_re...
method handle (line 556) | api::FastlyAsyncTask::Handle handle() { return handle_; }
method is_req (line 557) | bool is_req() { return is_req_; }
method valid (line 558) | bool valid() const { return true; }
function HttpHeaders (line 561) | HttpHeaders *HttpHeadersReadOnly::clone() { return new HttpHeaders(*th...
function write_headers (line 678) | Result<Void>
function FastlySendError (line 745) | FastlySendError
function FastlyKVError (line 864) | FastlyKVError make_fastly_kv_error(fastly::fastly_kv_error kv_error,
function FastlyImageOptimizerError (line 922) | FastlyImageOptimizerError
function FastlyImageOptimizerError (line 943) | FastlyImageOptimizerError make_fastly_image_optimizer_error(fastly::fa...
function TlsVersion (line 1264) | TlsVersion TlsVersion::version_1() { return TlsVersion{fastly::TLS::VE...
function TlsVersion (line 1266) | TlsVersion TlsVersion::version_1_1() { return TlsVersion{fastly::TLS::...
function TlsVersion (line 1268) | TlsVersion TlsVersion::version_1_2() { return TlsVersion{fastly::TLS::...
function TlsVersion (line 1270) | TlsVersion TlsVersion::version_1_3() { return TlsVersion{fastly::TLS::...
function HttpHeadersReadOnly (line 1999) | HttpHeadersReadOnly *HttpReq::headers() {
function HttpHeaders (line 2003) | HttpHeaders *HttpReq::headers_writable() { return headers()->clone(); }
function HttpHeadersReadOnly (line 2152) | HttpHeadersReadOnly *HttpResp::headers() {
function HttpHeaders (line 2157) | HttpHeaders *HttpResp::headers_writable() { return headers()->clone(); }
type FastlyCacheWriteOptionsOwned (line 2231) | struct FastlyCacheWriteOptionsOwned {
function FastlyCacheWriteOptionsOwned (line 2238) | FastlyCacheWriteOptionsOwned to_fastly_cache_write_options(const HttpC...
function HttpCacheWriteOptions (line 2308) | HttpCacheWriteOptions *
function init_write_options (line 3343) | void init_write_options(fastly::fastly_host_cache_write_options &options,
FILE: runtime/fastly/host-api/host_api_fastly.h
type JSErrorFormatString (line 24) | struct JSErrorFormatString
function namespace (line 36) | namespace fastly {
function namespace (line 55) | namespace api {
function run (line 120) | [[nodiscard]] bool run(Engine *engine) override {
function cancel (line 131) | [[nodiscard]] bool cancel(Engine *engine) override {
function Handle (line 136) | Handle handle() { return handle_; }
function trace (line 138) | void trace(JSTracer *trc) override {
function namespace (line 150) | namespace fastly::fetch {
type detail (line 167) | enum detail {
function std (line 237) | const std::optional<std::string> message() const;
type Response (line 336) | struct Response
function class (line 338) | class HttpPendingReq final {
function virtual (line 366) | virtual bool is_valid() const = 0;
type CacheOverrideTag (line 506) | struct CacheOverrideTag
function FramingHeadersMode (line 515) | enum class FramingHeadersMode : uint8_t {
function class (line 540) | class InspectOptions final {
function class (line 713) | class HttpReqPromise final {
function class (line 732) | class GeoIp final {
type HttpCacheLookupOptions (line 740) | struct HttpCacheLookupOptions {
function final (line 745) | struct HttpCacheWriteOptions final {
type CacheState (line 769) | struct CacheState
function state (line 773) | CacheState(uint8_t state) : state{state}
function is_found (line 775) | bool is_found() const;
function class (line 869) | class LogEndpoint final {
function class (line 885) | class Dict final {
function class (line 901) | class ConfigStore final {
function class (line 918) | class ObjectStorePendingLookup final {
function class (line 937) | class ObjectStorePendingDelete final {
function class (line 956) | class ObjectStore final {
function class (line 976) | class Secret final {
function class (line 991) | class SecretStore final {
function final (line 1008) | struct CacheLookupOptions final {
function final (line 1013) | struct CacheGetBodyOptions final {
function final (line 1018) | struct CacheWriteOptions final {
function class (line 1035) | class CacheHandle final {
type BackendHealth (line 1089) | struct BackendHealth
function state (line 1094) | BackendHealth(uint8_t state) : state{state}
function is_unknown (line 1096) | bool is_unknown() const;
function explicit (line 1107) | explicit Backend(HostString name) : name_{std::move(name)} {}
function class (line 1131) | class PenaltyBox final {
function class (line 1137) | class RateCounter final {
function class (line 1146) | class EdgeRateLimiter final {
function class (line 1153) | class DeviceDetection final {
function class (line 1158) | class KVStorePendingLookup final {
function class (line 1177) | class KVStorePendingInsert final {
function class (line 1196) | class KVStorePendingDelete final {
function class (line 1215) | class KVStorePendingList final {
function class (line 1234) | class KVStore final {
function class (line 1266) | class Acl final {
FILE: runtime/fastly/host-api/host_call.cpp
type fastly (line 9) | namespace fastly {
function JSErrorFormatString (line 10) | const JSErrorFormatString *FastlyGetErrorMessage(void *userRef, unsign...
type host_api (line 19) | namespace host_api {
function error_is_generic (line 23) | bool error_is_generic(APIError e) { return e == FASTLY_HOST_ERROR_GENE...
function error_is_invalid_argument (line 25) | bool error_is_invalid_argument(APIError e) { return e == FASTLY_HOST_E...
function error_is_optional_none (line 27) | bool error_is_optional_none(APIError e) { return e == FASTLY_HOST_ERRO...
function error_is_bad_handle (line 29) | bool error_is_bad_handle(APIError e) { return e == FASTLY_HOST_ERROR_B...
function error_is_unsupported (line 31) | bool error_is_unsupported(APIError e) { return e == FASTLY_HOST_ERROR_...
function error_is_buffer_len (line 33) | bool error_is_buffer_len(APIError e) { return e == FASTLY_HOST_ERROR_B...
function error_is_limit_exceeded (line 35) | bool error_is_limit_exceeded(APIError e) { return e == FASTLY_HOST_ERR...
function handle_kv_error (line 37) | void handle_kv_error(JSContext *cx, FastlyKVError err, const unsigned ...
function handle_image_optimizer_error (line 49) | void handle_image_optimizer_error(JSContext *cx, const FastlyImageOpti...
function handle_api_error (line 61) | void handle_api_error(JSContext *cx, APIError err, int line, const cha...
FILE: src/addSdkMetadataField.ts
function addSdkMetadataField (line 7) | async function addSdkMetadataField(wasmPath: string, usingAOT: boolean) {
FILE: src/compileApplicationToWasm.ts
function getTmpDir (line 27) | async function getTmpDir() {
type CompileApplicationToWasmParams (line 31) | type CompileApplicationToWasmParams = {
function compileApplicationToWasm (line 48) | async function compileApplicationToWasm(
FILE: src/compiler-steps/addFastlyHelpers.ts
method fn (line 8) | async fn(ctx, index) {
FILE: src/compiler-steps/addStackMappingHelpers.ts
method fn (line 9) | async fn(ctx, index) {
FILE: src/compiler-steps/bundle.ts
method fn (line 28) | async fn(ctx, index) {
FILE: src/compiler-steps/composeSourcemaps.ts
type ExcludePattern (line 13) | type ExcludePattern = string | ((file: string) => boolean);
method fn (line 26) | async fn(ctx) {
function readSourcemap (line 56) | async function readSourcemap(e: SourceMapInfo) {
function composeSourcemaps (line 61) | async function composeSourcemaps(
function stripSourcesContent (line 91) | function stripSourcesContent(map: SourceMap, excludes: ExcludePattern[]) {
FILE: src/compiler-steps/precompileRegexes.ts
method fn (line 12) | async fn(ctx, index) {
FILE: src/compilerPipeline.ts
type SourceMapInfo (line 6) | type SourceMapInfo = {
class CompilerContext (line 11) | class CompilerContext {
method constructor (line 22) | constructor(
method addCompilerPipelineStep (line 41) | addCompilerPipelineStep(step: CompilerPipelineStep) {
method applyCompilerPipeline (line 45) | async applyCompilerPipeline() {
method magicStringWriter (line 66) | async magicStringWriter(
method maybeWriteDebugIntermediateFile (line 89) | async maybeWriteDebugIntermediateFile(outFilename: string) {
method maybeWriteDebugIntermediateSourceMapFile (line 98) | async maybeWriteDebugIntermediateSourceMapFile(outFilename: string) {
method maybeWriteDebugIntermediateFiles (line 107) | async maybeWriteDebugIntermediateFiles(outFilename: string) {
type CompilerPipelineStep (line 113) | type CompilerPipelineStep = {
FILE: src/config.ts
function readConfigFileAndCliArguments (line 22) | async function readConfigFileAndCliArguments(cliArgs: string[]) {
FILE: src/env.ts
function parseEnvPair (line 2) | function parseEnvPair(pair: string) {
function parseEnvString (line 36) | function parseEnvString(envString: string) {
class EnvParser (line 58) | class EnvParser {
method constructor (line 61) | constructor() {
method parse (line 70) | parse(value: string) {
method getEnv (line 84) | getEnv() {
FILE: src/esbuild-plugins/fastlyPlugin.ts
method setup (line 5) | setup(build) {
FILE: src/esbuild-plugins/swallowTopLevelExportsPlugin.ts
type SwallowTopLevelExportsPluginParams (line 4) | type SwallowTopLevelExportsPluginParams = {
function swallowTopLevelExportsPlugin (line 8) | function swallowTopLevelExportsPlugin(
FILE: src/files.ts
function isFile (line 4) | async function isFile(path: string) {
function isDirectory (line 9) | async function isDirectory(path: string) {
function moveFile (line 14) | async function moveFile(src: string, dest: string): Promise<void> {
function isErrnoException (line 28) | function isErrnoException(err: unknown): err is NodeJS.ErrnoException {
FILE: src/parseInputs.ts
type ParsedInputs (line 6) | type ParsedInputs =
function parseInputs (line 26) | async function parseInputs(cliInputs: string[]): Promise<ParsedInputs> {
FILE: src/pipeline.ts
type PipelineOpts (line 5) | type PipelineOpts<TValue> = {
type PipelineStep (line 18) | type PipelineStep<TValue> = (
function pipeline (line 24) | async function pipeline<TValue>(
FILE: src/printHelp.ts
function printHelp (line 7) | async function printHelp() {
function printVersion (line 41) | async function printVersion() {
function tooManyEngines (line 49) | function tooManyEngines() {
function unknownArgument (line 59) | function unknownArgument(cliInput: string) {
FILE: tests/wpt-harness/post-harness.js
function handleRequest (line 12) | async function handleRequest(event) {
function evalAllScripts (line 49) | function evalAllScripts(wpt_test_scripts) {
function loadMetaScript (line 55) | async function loadMetaScript(path) {
FILE: tests/wpt-harness/run-wpt.mjs
function relativePath (line 14) | function relativePath(path) {
constant SLOW_PREFIX (line 18) | const SLOW_PREFIX = "SLOW ";
function applyConfig (line 115) | function applyConfig(argv) {
function run (line 151) | async function run() {
function formatStats (line 224) | function formatStats(stats) {
function padStart (line 227) | function padStart(value, length) {
function ensureWptServer (line 231) | async function ensureWptServer(config, logLevel) {
function startWptServer (line 243) | async function startWptServer(path, logLevel) {
function ensureViceroy (line 277) | async function ensureViceroy(config, logLevel) {
function timeout (line 293) | async function timeout(millis, message) {
function viceroyReady (line 301) | async function viceroyReady(viceroy, config) {
function startViceroy (line 311) | async function startViceroy(runtime, config, logLevel) {
function stripTrailingNewline (line 338) | function stripTrailingNewline(str) {
function getExpectedResults (line 345) | function getExpectedResults(testPath) {
function getTests (line 359) | function getTests(pattern) {
function runTests (line 378) | async function runTests(testPaths, viceroy, resultCallback, errorCallbac...
function handleRequest (line 473) | async function handleRequest(req, res, viceroy) {
function request (line 510) | async function request(url) {
function renderResultsTable (line 524) | function renderResultsTable(title, results, stats, template) {
function renderStack (line 546) | function renderStack(stack) {
FILE: types/acl.d.ts
class Acl (line 7) | class Acl {
FILE: types/backend.d.ts
type DefaultBackendConfiguration (line 69) | interface DefaultBackendConfiguration {
type BackendConfiguration (line 203) | interface BackendConfiguration extends DefaultBackendConfiguration {
class Backend (line 299) | class Backend {
FILE: types/body.d.ts
class FastlyBody (line 24) | class FastlyBody {
FILE: types/cache-override.d.ts
type CacheOptions (line 10) | interface CacheOptions {
type CacheOverrideMode (line 53) | type CacheOverrideMode = 'none' | 'pass' | 'override';
type ICacheOverride (line 55) | interface ICacheOverride {
class CacheOverride (line 150) | class CacheOverride {
FILE: types/cache.d.ts
type PurgeOptions (line 2) | interface PurgeOptions {
class SimpleCache (line 46) | class SimpleCache {
type SimpleCacheEntry (line 128) | interface SimpleCacheEntry {
type LookupOptions (line 146) | interface LookupOptions {
type InsertOptions (line 161) | interface InsertOptions extends TransactionInsertOptions {
type TransactionInsertOptions (line 176) | interface TransactionInsertOptions {
class CoreCache (line 232) | class CoreCache {
class CacheState (line 293) | class CacheState {
type CacheBodyOptions (line 323) | interface CacheBodyOptions {
class CacheEntry (line 340) | class CacheEntry {
type TransactionUpdateOptions (line 400) | interface TransactionUpdateOptions {
class TransactionCacheEntry (line 449) | class TransactionCacheEntry extends CacheEntry {
FILE: types/config-store.d.ts
class ConfigStore (line 18) | class ConfigStore {
FILE: types/device.d.ts
class Device (line 9) | class Device {
FILE: types/dictionary.d.ts
class Dictionary (line 9) | class Dictionary {
FILE: types/edge-rate-limiter.d.ts
class EdgeRateLimiter (line 10) | class EdgeRateLimiter {
class PenaltyBox (line 55) | class PenaltyBox {
class RateCounter (line 88) | class RateCounter {
FILE: types/experimental.d.ts
type ReusableSandboxOptions (line 116) | interface ReusableSandboxOptions {
FILE: types/geolocation.d.ts
type Geolocation (line 44) | interface Geolocation {
FILE: types/globals.d.ts
type EventMap (line 9) | interface EventMap {
type EventListenerMap (line 16) | interface EventListenerMap {
type FetchEventListener (line 23) | interface FetchEventListener {
type BackendConfiguration (line 46) | interface BackendConfiguration {
class Backend (line 166) | class Backend {
type FetchEvent (line 301) | interface FetchEvent {
type CacheOverrideMode (line 392) | type CacheOverrideMode = 'none' | 'pass' | 'override';
type CacheOverrideInit (line 399) | interface CacheOverrideInit {
type CacheOverride (line 439) | interface CacheOverride extends CacheOverrideInit {
type ClientInfo (line 455) | interface ClientInfo {
type ServerInfo (line 521) | interface ServerInfo {
class ConfigStore (line 536) | class ConfigStore {
class Dictionary (line 554) | class Dictionary {
type Geolocation (line 575) | interface Geolocation {
class KVStore (line 705) | class KVStore {
type KVStoreEntry (line 746) | interface KVStoreEntry {
class URL (line 777) | class URL {
class URLSearchParams (line 825) | class URLSearchParams {
type Console (line 870) | interface Console {
class TextEncoder (line 912) | class TextEncoder {
class TextDecoder (line 958) | class TextDecoder {
type Logger (line 973) | interface Logger {
type Fastly (line 985) | interface Fastly {
class CompressionStream (line 1117) | class CompressionStream {
class DecompressionStream (line 1171) | class DecompressionStream {
type BlobPart (line 1230) | type BlobPart = BufferSource | Blob | string;
type EndingType (line 1231) | type EndingType = 'native' | 'transparent';
type FormDataEntryValue (line 1232) | type FormDataEntryValue = File | string;
type BlobPropertyBag (line 1234) | interface BlobPropertyBag {
type FilePropertyBag (line 1239) | interface FilePropertyBag extends BlobPropertyBag {
type Blob (line 1248) | interface Blob {
type File (line 1273) | interface File extends Blob {
type FormData (line 1292) | interface FormData {
type BodyInit (line 1333) | type BodyInit = ReadableStream | XMLHttpRequestBodyInit;
type XMLHttpRequestBodyInit (line 1334) | type XMLHttpRequestBodyInit =
type Body (line 1347) | interface Body {
type RequestInfo (line 1364) | type RequestInfo = Request | string;
type RequestInit (line 1374) | interface RequestInit {
type Request (line 1437) | interface Request extends Body {
type ResponseInit (line 1523) | interface ResponseInit {
type Response (line 1543) | interface Response extends Body {
type ReadableStreamReader (line 1668) | type ReadableStreamReader<T> = ReadableStreamDefaultReader<T>;
type ReadableStreamController (line 1673) | type ReadableStreamController<T> = ReadableStreamDefaultController<T>;
type UnderlyingSinkAbortCallback (line 1679) | interface UnderlyingSinkAbortCallback {
type UnderlyingSinkCloseCallback (line 1686) | interface UnderlyingSinkCloseCallback {
type UnderlyingSinkStartCallback (line 1693) | interface UnderlyingSinkStartCallback {
type UnderlyingSinkWriteCallback (line 1700) | interface UnderlyingSinkWriteCallback<W> {
type UnderlyingSourceCancelCallback (line 1710) | interface UnderlyingSourceCancelCallback {
type UnderlyingSourcePullCallback (line 1717) | interface UnderlyingSourcePullCallback<R> {
type UnderlyingSourceStartCallback (line 1724) | interface UnderlyingSourceStartCallback<R> {
type UnderlyingSink (line 1731) | interface UnderlyingSink<W = any> {
type UnderlyingSource (line 1742) | interface UnderlyingSource<R = any> {
type ReadableStreamType (line 1753) | type ReadableStreamType = 'bytes';
type StreamPipeOptions (line 1758) | interface StreamPipeOptions {
type QueuingStrategySize (line 1785) | interface QueuingStrategySize<T = any> {
type QueuingStrategy (line 1792) | interface QueuingStrategy<T = any> {
type QueuingStrategyInit (line 1800) | interface QueuingStrategyInit {
type ReadableStreamDefaultReadDoneResult (line 1812) | interface ReadableStreamDefaultReadDoneResult {
type ReadableStreamDefaultReadValueResult (line 1820) | interface ReadableStreamDefaultReadValueResult<T> {
type ReadableStreamDefaultReadResult (line 1828) | type ReadableStreamDefaultReadResult<T> =
type ReadableWritablePair (line 1835) | interface ReadableWritablePair<R = any, W = any> {
type ReadableStream (line 1849) | interface ReadableStream<R = any> {
type ReadableStreamDefaultController (line 1878) | interface ReadableStreamDefaultController<R = any> {
type ReadableStreamDefaultReader (line 1896) | interface ReadableStreamDefaultReader<R = any>
type ReadableStreamGenericReader (line 1913) | interface ReadableStreamGenericReader {
type WritableStream (line 1922) | interface WritableStream<W = any> {
type WritableStreamDefaultController (line 1946) | interface WritableStreamDefaultController {
type WritableStreamDefaultWriter (line 1962) | interface WritableStreamDefaultWriter<W = any> {
type TransformStream (line 1983) | interface TransformStream<I = any, O = any> {
type TransformStreamDefaultController (line 2007) | interface TransformStreamDefaultController<O = any> {
type Transformer (line 2025) | interface Transformer<I = any, O = any> {
type TransformerFlushCallback (line 2036) | interface TransformerFlushCallback<O> {
type TransformerStartCallback (line 2043) | interface TransformerStartCallback<O> {
type TransformerTransformCallback (line 2050) | interface TransformerTransformCallback<I, O> {
type HeadersInit (line 2060) | type HeadersInit = Headers | string[][] | Record<string, string>;
type Headers (line 2068) | interface Headers {
type VoidFunction (line 2191) | interface VoidFunction {
type StructuredSerializeOptions (line 2211) | interface StructuredSerializeOptions {
type Transferable (line 2218) | type Transferable = ArrayBuffer;
type WorkerLocation (line 2229) | interface WorkerLocation {
type Algorithm (line 2268) | interface Algorithm {
type AlgorithmIdentifier (line 2272) | type AlgorithmIdentifier = Algorithm | string;
type BufferSource (line 2274) | type BufferSource = ArrayBufferView | ArrayBuffer;
class SubtleCrypto (line 2276) | class SubtleCrypto {
type HmacImportParams (line 2328) | interface HmacImportParams extends Algorithm {
type RsaHashedImportParams (line 2333) | interface RsaHashedImportParams extends Algorithm {
type HashAlgorithmIdentifier (line 2336) | type HashAlgorithmIdentifier = AlgorithmIdentifier;
type EcKeyImportParams (line 2338) | interface EcKeyImportParams {
type JsonWebKey (line 2343) | interface JsonWebKey {
type RsaOtherPrimesInfo (line 2364) | interface RsaOtherPrimesInfo {
type Crypto (line 2376) | interface Crypto {
type CryptoKey (line 2401) | interface CryptoKey {
type KeyAlgorithm (line 2417) | interface KeyAlgorithm {
type KeyFormat (line 2421) | type KeyFormat =
type KeyType (line 2426) | type KeyType = 'private' | 'public' | 'secret';
type KeyUsage (line 2427) | type KeyUsage =
type EventInit (line 2437) | interface EventInit {
type EventListenerOptions (line 2443) | interface EventListenerOptions {
type AddEventListenerOptions (line 2447) | interface AddEventListenerOptions extends EventListenerOptions {
type Event (line 2457) | interface Event {
type EventListener (line 2581) | interface EventListener {
type EventListenerObject (line 2584) | interface EventListenerObject {
type EventListenerOrEventListenerObject (line 2587) | type EventListenerOrEventListenerObject = EventListener | EventListenerO...
type EventTarget (line 2595) | interface EventTarget {
type Performance (line 2647) | interface Performance extends EventTarget {
type DOMHighResTimeStamp (line 2667) | type DOMHighResTimeStamp = number;
FILE: types/html-rewriter.d.ts
class HTMLRewritingStream (line 33) | class HTMLRewritingStream implements TransformStream {
type ElementRewriterOptions (line 88) | interface ElementRewriterOptions {
class Element (line 101) | class Element {
FILE: types/image-optimizer.d.ts
type Color (line 9) | type Color =
type Percentage (line 21) | type Percentage = string;
type Size (line 26) | interface Size {
type Position (line 46) | interface Position {
type Sides (line 60) | interface Sides {
type ImageOptimizerOptions (line 289) | interface ImageOptimizerOptions {
FILE: types/kv-store.d.ts
class KVStore (line 36) | class KVStore {
type KVStoreEntry (line 169) | interface KVStoreEntry {
FILE: types/logger.d.ts
class Logger (line 28) | class Logger {
type ConsoleLoggingOptions (line 42) | interface ConsoleLoggingOptions {
FILE: types/secret-store.d.ts
class SecretStore (line 34) | class SecretStore {
class SecretStoreEntry (line 69) | class SecretStoreEntry {
FILE: types/security.d.ts
type InspectConfig (line 50) | interface InspectConfig {
type InspectResponse (line 77) | interface InspectResponse {
type InspectVerdict (line 100) | enum InspectVerdict {
FILE: types/shielding.d.ts
type ShieldBackendConfiguration (line 8) | interface ShieldBackendConfiguration {
class Shield (line 42) | class Shield {
Copy disabled (too large)
Download .json
Condensed preview — 9622 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (18,075K chars).
[
{
"path": ".clang-format",
"chars": 4255,
"preview": "---\nLanguage: Cpp\n# BasedOnStyle: LLVM\nAccessModifierOffset: -2\nAlignAfterOpenBracket: Align\nAlignConsecutiveMac"
},
{
"path": ".github/dependabot.yml",
"chars": 726,
"preview": "# To get started with Dependabot version updates, you'll need to specify which\n# package ecosystems to update and where "
},
{
"path": ".github/workflows/cleanup.yml",
"chars": 651,
"preview": "name: 'Cleanup'\non: workflow_dispatch\npermissions:\n contents: read\nenv:\n fastly-cli_version: 14.2.0\njobs:\n cleanup:\n "
},
{
"path": ".github/workflows/dependencies.yml",
"chars": 839,
"preview": "name: 'Dependency Review'\non: [pull_request]\n\npermissions:\n contents: read\n\njobs:\n dependency-review:\n name: Depend"
},
{
"path": ".github/workflows/main.yml",
"chars": 15941,
"preview": "name: CI\nconcurrency:\n group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}\n cancel-in-"
},
{
"path": ".github/workflows/release-please.yml",
"chars": 6745,
"preview": "on:\n push:\n branches:\n - main\npermissions:\n id-token: write\n contents: write\n issues: write\n pull-requests:"
},
{
"path": ".gitignore",
"chars": 503,
"preview": "# TypeScript build output\ndist/\n\n# Integration Tests build output\n/integration-tests/**/fixtures/**/*.tar.gz\n/integratio"
},
{
"path": ".gitmodules",
"chars": 257,
"preview": "[submodule \"tests/wpt-harness/wpt\"]\n\tpath = tests/wpt-harness/wpt\n\turl = https://github.com/web-platform-tests/wpt.git\n\t"
},
{
"path": ".prettierrc.json",
"chars": 26,
"preview": "{\n \"singleQuote\": true\n}\n"
},
{
"path": "CHANGELOG.md",
"chars": 88999,
"preview": "# Changelog\n\n## 3.41.2 (2026-05-04)\n\n### Fixed\n\n* `HttpBody::read_all` for large bodies ([#1444](https://github.com/fast"
},
{
"path": "CODE_OF_CONDUCT.md",
"chars": 5509,
"preview": "\n# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make particip"
},
{
"path": "CONTRIBUTING.md",
"chars": 3541,
"preview": "# Contributing to the JS Compute Runtime\n\nFirst off thank you for wanting to contribute to making the JS Compute Runtime"
},
{
"path": "DEVELOPMENT.md",
"chars": 7849,
"preview": "# Fastly Compute JS Runtime\n\nThe JS Compute Runtime for Fastly's [Compute platform](https://www.fastly.com/products/edge"
},
{
"path": "LICENSE",
"chars": 12248,
"preview": " Apache License\n Version 2.0, January 2004\n "
},
{
"path": "README.md",
"chars": 8497,
"preview": "# @fastly/js-compute\n\nJavaScript SDK and CLI for building JavaScript applications on [Fastly Compute](https://www.fastly"
},
{
"path": "SECURITY.md",
"chars": 897,
"preview": "## Report a security issue\n\nThe js-compute-runtime project team welcomes security reports and is committed to providing "
},
{
"path": "ci/build-tarballs.sh",
"chars": 1193,
"preview": "#!/usr/bin/env bash\n\n# A small shell script invoked from CI on the final Linux builder which actually\n# assembles the re"
},
{
"path": "ci/clang-format.ignore",
"chars": 218,
"preview": "runtime/js-compute-runtime/third_party/wizer.h\nruntime/js-compute-runtime/rust-url/rust-url.h\nruntime/js-compute-runtime"
},
{
"path": "ci/clang-format.sh",
"chars": 1064,
"preview": "#!/usr/bin/env bash\n\nset -euo pipefail\n\nusage() {\n cat <<EOF\nUsage: $0 [-h] [--fix]\n\n Format c/c++ source that's track"
},
{
"path": "ci/format-changelog.js",
"chars": 10243,
"preview": "#!/usr/bin/env node\n\nimport { readFileSync, writeFileSync } from \"node:fs\";\nimport path from \"node:path\";\nimport process"
},
{
"path": "ci/rustfmt.sh",
"chars": 244,
"preview": "#!/usr/bin/env bash\n\nset -euo pipefail\n\ncd \"$(dirname \"${BASH_SOURCE[0]}\")/..\"\n\nfailed=0\nfor manifest in $(git ls-files "
},
{
"path": "ci/shellcheck.sh",
"chars": 233,
"preview": "#!/usr/bin/env bash\n\nset -euo pipefail\n\ncd \"$(dirname \"${BASH_SOURCE[0]}\")/..\"\n\nfailed=\nfor file in $(git ls-files | gre"
},
{
"path": "compute-file-server-cli/.gitignore",
"chars": 8,
"preview": "/target\n"
},
{
"path": "compute-file-server-cli/Cargo.toml",
"chars": 1089,
"preview": "[package]\nname = \"compute-file-server-cli\"\nversion = \"1.1.0\"\nedition = \"2021\"\ndescription = \"Uploads files to Fastly for"
},
{
"path": "compute-file-server-cli/LICENSE",
"chars": 1077,
"preview": "MIT License\n\nCopyright (c) 2022 Jake Daniel Champion\n\nPermission is hereby granted, free of charge, to any person obtain"
},
{
"path": "compute-file-server-cli/README.md",
"chars": 1754,
"preview": "# compute-file-server\n\nFastly File Server uploads files to Fastly for serving directly from within Fastly Compute applic"
},
{
"path": "compute-file-server-cli/rust-toolchain.toml",
"chars": 77,
"preview": "[toolchain]\nchannel = \"1.83.0\"\ntargets = [\"wasm32-wasi\"]\nprofile = \"minimal\"\n"
},
{
"path": "compute-file-server-cli/src/main.rs",
"chars": 31998,
"preview": "use base64;\nuse clap::{arg, Command};\nuse fastly_api::apis::configuration::{ApiKey, Configuration};\nuse fastly_api::apis"
},
{
"path": "documentation/.gitignore",
"chars": 233,
"preview": "# Dependencies\n/node_modules\n\n# Production\n/build\n\n# Generated files\n.docusaurus\n.cache-loader\n\n# Misc\n.DS_Store\n.env.lo"
},
{
"path": "documentation/LICENSE.md",
"chars": 14410,
"preview": "Creative Commons Attribution-ShareAlike 2.5\n\nCREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL S"
},
{
"path": "documentation/README.md",
"chars": 746,
"preview": "# [JS Compute Documentation](https://js-compute-reference-docs.edgecompute.app/)\n\nThis website is built using [Docusauru"
},
{
"path": "documentation/app/.gitignore",
"chars": 243,
"preview": "# Dependencies\n/node_modules\n\n# Production\n/build\n\n# Generated files\n.docusaurus\n.cache-loader\n\n# Misc\n.DS_Store\n.env.lo"
},
{
"path": "documentation/app/c-at-e-file-server.js",
"chars": 16356,
"preview": "import parseRange from 'range-parser'\nimport versionRedirects from './version-redirects.json'\n\n/**\n * Check if the reque"
},
{
"path": "documentation/app/fastly.toml",
"chars": 374,
"preview": "# This file describes a Fastly Compute package. To learn more visit:\n# https://developer.fastly.com/reference/fastly-tom"
},
{
"path": "documentation/app/package.json",
"chars": 586,
"preview": "{\n \"license\": \"MIT\",\n \"devDependencies\": {\n \"@fastly/js-compute\": \"^3\",\n \"range-parser\": \"^1.2.1\"\n },\n \"type\":"
},
{
"path": "documentation/app/src/index.js",
"chars": 748,
"preview": "/// <reference types=\"@fastly/js-compute\" />\n/* eslint-env serviceworker */\n\nimport { get } from \"../c-at-e-file-server."
},
{
"path": "documentation/app/version-redirects.json",
"chars": 79,
"preview": "{\n \"latestByMajor\": {\n \"1\": \"1.13.0\",\n \"2\": \"2.5.0\",\n \"3\": null\n }\n}"
},
{
"path": "documentation/docs/acl/Acl/open.mdx",
"chars": 288,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# Acl.open()\n\nOpens"
},
{
"path": "documentation/docs/acl/Acl/prototype/lookup.mdx",
"chars": 819,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# Acl.prototype.loo"
},
{
"path": "documentation/docs/backend/Backend/Backend.mdx",
"chars": 9823,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# `Backend()`\n\nThe "
},
{
"path": "documentation/docs/backend/Backend/exists.mdx",
"chars": 355,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# Backend.exists()\n"
},
{
"path": "documentation/docs/backend/Backend/fromName.mdx",
"chars": 311,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# Backend.fromName("
},
{
"path": "documentation/docs/backend/Backend/health.mdx",
"chars": 829,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# Backend.health()\n"
},
{
"path": "documentation/docs/backend/Backend/prototype/betweenBytesTimeout.mdx",
"chars": 439,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# Backend.betweenBy"
},
{
"path": "documentation/docs/backend/Backend/prototype/connectTimeout.mdx",
"chars": 423,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# Backend.connectTi"
},
{
"path": "documentation/docs/backend/Backend/prototype/firstByteTimeout.mdx",
"chars": 430,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# Backend.firstByte"
},
{
"path": "documentation/docs/backend/Backend/prototype/health.mdx",
"chars": 726,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# Backend.prototype"
},
{
"path": "documentation/docs/backend/Backend/prototype/hostOverride.mdx",
"chars": 293,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# Backend.hostOverr"
},
{
"path": "documentation/docs/backend/Backend/prototype/httpKeepaliveTime.mdx",
"chars": 314,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# Backend.httpKeepa"
},
{
"path": "documentation/docs/backend/Backend/prototype/isDynamic.mdx",
"chars": 290,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# Backend.isDynamic"
},
{
"path": "documentation/docs/backend/Backend/prototype/isSSL.mdx",
"chars": 268,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# Backend.isSSL\n\nTh"
},
{
"path": "documentation/docs/backend/Backend/prototype/name.mdx",
"chars": 1484,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# name\n\nThe read-on"
},
{
"path": "documentation/docs/backend/Backend/prototype/port.mdx",
"chars": 234,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# Backend.port\n\nThe"
},
{
"path": "documentation/docs/backend/Backend/prototype/target.mdx",
"chars": 256,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# Backend.target\n\nT"
},
{
"path": "documentation/docs/backend/Backend/prototype/tcpKeepalive.mdx",
"chars": 817,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# Backend.tcpKeepal"
},
{
"path": "documentation/docs/backend/Backend/prototype/tlsMaxVersion.mdx",
"chars": 436,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# Backend.tlsMaxVer"
},
{
"path": "documentation/docs/backend/Backend/prototype/tlsMinVersion.mdx",
"chars": 436,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# Backend.tlsMinVer"
},
{
"path": "documentation/docs/backend/Backend/prototype/toName.mdx",
"chars": 407,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# Backend.prototype"
},
{
"path": "documentation/docs/backend/Backend/prototype/toString.mdx",
"chars": 2245,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# toString\n\n:::info"
},
{
"path": "documentation/docs/backend/allowDynamicBackends.mdx",
"chars": 1150,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# allowDynamicBacke"
},
{
"path": "documentation/docs/backend/enforceExplicitBackends.mdx",
"chars": 1899,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# enforceExplicitBa"
},
{
"path": "documentation/docs/backend/setDefaultDynamicBackendConfig.mdx",
"chars": 7810,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# setDefaultDynamic"
},
{
"path": "documentation/docs/cache/CacheEntry/age.mdx",
"chars": 378,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# CacheEntry.age\n\nTh"
},
{
"path": "documentation/docs/cache/CacheEntry/body.mdx",
"chars": 668,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# CacheEntry.body\n\nT"
},
{
"path": "documentation/docs/cache/CacheEntry/close.mdx",
"chars": 315,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# CacheEntry.close\n\n"
},
{
"path": "documentation/docs/cache/CacheEntry/hits.mdx",
"chars": 775,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# CacheEntry.hits\n\nT"
},
{
"path": "documentation/docs/cache/CacheEntry/length.mdx",
"chars": 622,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# CacheEntry.length\n"
},
{
"path": "documentation/docs/cache/CacheEntry/maxAge.mdx",
"chars": 427,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# CacheEntry.maxAge\n"
},
{
"path": "documentation/docs/cache/CacheEntry/staleWhileRevalidate.mdx",
"chars": 525,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# CacheEntry.staleWh"
},
{
"path": "documentation/docs/cache/CacheEntry/state.mdx",
"chars": 428,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# CacheEntry.state\n\n"
},
{
"path": "documentation/docs/cache/CacheEntry/userMetadata.mdx",
"chars": 429,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# CacheEntry.userMet"
},
{
"path": "documentation/docs/cache/CacheState/found.mdx",
"chars": 559,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# CacheState.found\n\n"
},
{
"path": "documentation/docs/cache/CacheState/mustInsertOrUpdate.mdx",
"chars": 494,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# CacheState.mustIns"
},
{
"path": "documentation/docs/cache/CacheState/stale.mdx",
"chars": 431,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# CacheState.stale\n\n"
},
{
"path": "documentation/docs/cache/CacheState/usable.mdx",
"chars": 471,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# CacheState.usable\n"
},
{
"path": "documentation/docs/cache/CoreCache/insert.mdx",
"chars": 5303,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# CoreCache.insert\n\n"
},
{
"path": "documentation/docs/cache/CoreCache/lookup.mdx",
"chars": 2496,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# CoreCache.lookup\n"
},
{
"path": "documentation/docs/cache/CoreCache/transactionLookup.mdx",
"chars": 2877,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# CoreCache.transac"
},
{
"path": "documentation/docs/cache/SimpleCache/SimpleCache.mdx",
"chars": 1247,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# `SimpleCache`\n\nThe"
},
{
"path": "documentation/docs/cache/SimpleCache/get.mdx",
"chars": 1243,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# SimpleCache.get\n\n▸"
},
{
"path": "documentation/docs/cache/SimpleCache/getOrSet.mdx",
"chars": 2483,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# SimpleCache.getOrS"
},
{
"path": "documentation/docs/cache/SimpleCache/purge.mdx",
"chars": 1811,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# SimpleCache.purge"
},
{
"path": "documentation/docs/cache/SimpleCacheEntry/arrayBuffer.mdx",
"chars": 440,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# SimpleCacheEntry.a"
},
{
"path": "documentation/docs/cache/SimpleCacheEntry/body.mdx",
"chars": 277,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# SimpleCacheEntry.b"
},
{
"path": "documentation/docs/cache/SimpleCacheEntry/bodyUsed.mdx",
"chars": 301,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# SimpleCacheEntry.b"
},
{
"path": "documentation/docs/cache/SimpleCacheEntry/json.mdx",
"chars": 733,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# SimpleCacheEntry.j"
},
{
"path": "documentation/docs/cache/SimpleCacheEntry/text.mdx",
"chars": 452,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# SimpleCacheEntry.t"
},
{
"path": "documentation/docs/cache/TransactionCacheEntry/age.mdx",
"chars": 400,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# TransactionCacheEn"
},
{
"path": "documentation/docs/cache/TransactionCacheEntry/body.mdx",
"chars": 712,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# TransactionCacheEn"
},
{
"path": "documentation/docs/cache/TransactionCacheEntry/cancel.mdx",
"chars": 340,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# TransactionCacheEn"
},
{
"path": "documentation/docs/cache/TransactionCacheEntry/close.mdx",
"chars": 348,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# TransactionCacheEn"
},
{
"path": "documentation/docs/cache/TransactionCacheEntry/hits.mdx",
"chars": 797,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# TransactionCacheEn"
},
{
"path": "documentation/docs/cache/TransactionCacheEntry/insert.mdx",
"chars": 3243,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# TransactionCacheEn"
},
{
"path": "documentation/docs/cache/TransactionCacheEntry/insertAndStreamBack.mdx",
"chars": 3656,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# TransactionCacheEn"
},
{
"path": "documentation/docs/cache/TransactionCacheEntry/length.mdx",
"chars": 644,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# TransactionCacheEn"
},
{
"path": "documentation/docs/cache/TransactionCacheEntry/maxAge.mdx",
"chars": 449,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# TransactionCacheEn"
},
{
"path": "documentation/docs/cache/TransactionCacheEntry/staleWhileRevalidate.mdx",
"chars": 547,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# TransactionCacheEn"
},
{
"path": "documentation/docs/cache/TransactionCacheEntry/state.mdx",
"chars": 472,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# TransactionCacheEn"
},
{
"path": "documentation/docs/cache/TransactionCacheEntry/update.mdx",
"chars": 2948,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# TransactionCacheEn"
},
{
"path": "documentation/docs/cache/TransactionCacheEntry/userMetadata.mdx",
"chars": 451,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# TransactionCacheEn"
},
{
"path": "documentation/docs/cache-override/CacheOverride/CacheOverride.mdx",
"chars": 7678,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# `CacheOverride()`"
},
{
"path": "documentation/docs/compute/purgeSurrogateKey.mdx",
"chars": 967,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# purgeSurrogateKey"
},
{
"path": "documentation/docs/compute/vCpuTime.mdx",
"chars": 304,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# vCpuTime\n\nThe **`"
},
{
"path": "documentation/docs/config-store/ConfigStore/ConfigStore.mdx",
"chars": 2535,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# `ConfigStore()`\n\n"
},
{
"path": "documentation/docs/config-store/ConfigStore/prototype/get.mdx",
"chars": 2462,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# ConfigStore.proto"
},
{
"path": "documentation/docs/device/Device/lookup.mdx",
"chars": 358,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# Device.lookup()\n\n"
},
{
"path": "documentation/docs/device/Device/prototype/brand.mdx",
"chars": 421,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Device.prototype.b"
},
{
"path": "documentation/docs/device/Device/prototype/hardwareType.mdx",
"chars": 729,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Device.prototype.h"
},
{
"path": "documentation/docs/device/Device/prototype/isBot.mdx",
"chars": 372,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Device.prototype.i"
},
{
"path": "documentation/docs/device/Device/prototype/isDesktop.mdx",
"chars": 412,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Device.prototype.i"
},
{
"path": "documentation/docs/device/Device/prototype/isGameConsole.mdx",
"chars": 418,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Device.prototype.i"
},
{
"path": "documentation/docs/device/Device/prototype/isMediaPlayer.mdx",
"chars": 560,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Device.prototype.i"
},
{
"path": "documentation/docs/device/Device/prototype/isMobile.mdx",
"chars": 396,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Device.prototype.i"
},
{
"path": "documentation/docs/device/Device/prototype/isSmartTV.mdx",
"chars": 390,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Device.prototype.i"
},
{
"path": "documentation/docs/device/Device/prototype/isTablet.mdx",
"chars": 414,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Device.prototype.i"
},
{
"path": "documentation/docs/device/Device/prototype/isTouchscreen.mdx",
"chars": 426,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Device.prototype.i"
},
{
"path": "documentation/docs/device/Device/prototype/model.mdx",
"chars": 349,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Device.prototype.m"
},
{
"path": "documentation/docs/device/Device/prototype/name.mdx",
"chars": 344,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Device.prototype.n"
},
{
"path": "documentation/docs/device/Device/prototype/toJSON.mdx",
"chars": 450,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# toJSON\n\nThe `toJS"
},
{
"path": "documentation/docs/dictionary/Dictionary/Dictionary.mdx",
"chars": 2596,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# `Dictionary()`\n\n:"
},
{
"path": "documentation/docs/dictionary/Dictionary/prototype/get.mdx",
"chars": 2730,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# Dictionary.protot"
},
{
"path": "documentation/docs/edge-rate-limiter/EdgeRateLimiter/EdgeRateLimiter.mdx",
"chars": 1101,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# `EdgeRateLimiter()"
},
{
"path": "documentation/docs/edge-rate-limiter/EdgeRateLimiter/prototype/checkRate.mdx",
"chars": 1632,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# EdgeRateLimiter.pr"
},
{
"path": "documentation/docs/edge-rate-limiter/PenaltyBox/PenaltyBox.mdx",
"chars": 840,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# `PenaltyBox()`\n\nTh"
},
{
"path": "documentation/docs/edge-rate-limiter/PenaltyBox/prototype/add.mdx",
"chars": 777,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# PenaltyBox.prototy"
},
{
"path": "documentation/docs/edge-rate-limiter/PenaltyBox/prototype/has.mdx",
"chars": 525,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# PenaltyBox.prototy"
},
{
"path": "documentation/docs/edge-rate-limiter/RateCounter/RateCounter.mdx",
"chars": 825,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# `RateCounter()`\n\nT"
},
{
"path": "documentation/docs/edge-rate-limiter/RateCounter/prototype/increment.mdx",
"chars": 624,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# RateCounter.protot"
},
{
"path": "documentation/docs/edge-rate-limiter/RateCounter/prototype/lookupCount.mdx",
"chars": 775,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# RateCounter.protot"
},
{
"path": "documentation/docs/edge-rate-limiter/RateCounter/prototype/lookupRate.mdx",
"chars": 749,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# RateCounter.protot"
},
{
"path": "documentation/docs/env/env.mdx",
"chars": 2343,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# env\n\nThe **`env()"
},
{
"path": "documentation/docs/experimental/allowDynamicBackends.mdx",
"chars": 3766,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# allowDynamicBacke"
},
{
"path": "documentation/docs/experimental/includeBytes.mdx",
"chars": 941,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# includeBytes\n\nThe "
},
{
"path": "documentation/docs/experimental/mapAndLogError.mdx",
"chars": 1538,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# mapAndLogError\n\nTh"
},
{
"path": "documentation/docs/experimental/mapError.mdx",
"chars": 1540,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# mapError\n\nThe **`m"
},
{
"path": "documentation/docs/experimental/sdkVersion.mdx",
"chars": 253,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# sdkVersion\n\nThe r"
},
{
"path": "documentation/docs/experimental/setReusableSandboxOptions.mdx",
"chars": 1240,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# setReusableSandbox"
},
{
"path": "documentation/docs/fanout/createFanoutHandoff.mdx",
"chars": 1528,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# createFanoutHando"
},
{
"path": "documentation/docs/geolocation/getGeolocationForIpAddress.mdx",
"chars": 6322,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n\n# getGeolocationFor"
},
{
"path": "documentation/docs/globals/AggregrateError/AggregrateError.mdx",
"chars": 1116,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# AggregateError()\n\n"
},
{
"path": "documentation/docs/globals/Array/@@species.mdx",
"chars": 2195,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array\\[Symbol.spec"
},
{
"path": "documentation/docs/globals/Array/Array.mdx",
"chars": 1386,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array()\n\nThe **`Ar"
},
{
"path": "documentation/docs/globals/Array/from.mdx",
"chars": 2425,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.from\n\nThe **"
},
{
"path": "documentation/docs/globals/Array/isArray.mdx",
"chars": 1227,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.isArray()\n\nT"
},
{
"path": "documentation/docs/globals/Array/of.mdx",
"chars": 1593,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.of()\nThe **`"
},
{
"path": "documentation/docs/globals/Array/prototype/@@iterator.mdx",
"chars": 1030,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype\\[S"
},
{
"path": "documentation/docs/globals/Array/prototype/@@unscopables.mdx",
"chars": 1699,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype[Sy"
},
{
"path": "documentation/docs/globals/Array/prototype/at.mdx",
"chars": 1649,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype.at"
},
{
"path": "documentation/docs/globals/Array/prototype/concat.mdx",
"chars": 2047,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype.co"
},
{
"path": "documentation/docs/globals/Array/prototype/copyWithin.mdx",
"chars": 2779,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype.co"
},
{
"path": "documentation/docs/globals/Array/prototype/entries.mdx",
"chars": 594,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype.en"
},
{
"path": "documentation/docs/globals/Array/prototype/every.mdx",
"chars": 3268,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype.ev"
},
{
"path": "documentation/docs/globals/Array/prototype/fill.mdx",
"chars": 1907,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype.fi"
},
{
"path": "documentation/docs/globals/Array/prototype/filter.mdx",
"chars": 3325,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype.fi"
},
{
"path": "documentation/docs/globals/Array/prototype/find.mdx",
"chars": 3628,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype.fi"
},
{
"path": "documentation/docs/globals/Array/prototype/findIndex.mdx",
"chars": 3098,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype.fi"
},
{
"path": "documentation/docs/globals/Array/prototype/flat.mdx",
"chars": 1246,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype.fl"
},
{
"path": "documentation/docs/globals/Array/prototype/flatMap.mdx",
"chars": 2314,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype.fl"
},
{
"path": "documentation/docs/globals/Array/prototype/forEach.mdx",
"chars": 3336,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype.fo"
},
{
"path": "documentation/docs/globals/Array/prototype/includes.mdx",
"chars": 1769,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype.in"
},
{
"path": "documentation/docs/globals/Array/prototype/indexOf.mdx",
"chars": 1428,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype.in"
},
{
"path": "documentation/docs/globals/Array/prototype/join.mdx",
"chars": 1674,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype.jo"
},
{
"path": "documentation/docs/globals/Array/prototype/keys.mdx",
"chars": 570,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype.ke"
},
{
"path": "documentation/docs/globals/Array/prototype/lastIndexOf.mdx",
"chars": 1951,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype.la"
},
{
"path": "documentation/docs/globals/Array/prototype/length.mdx",
"chars": 1400,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype.le"
},
{
"path": "documentation/docs/globals/Array/prototype/map.mdx",
"chars": 2665,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype.ma"
},
{
"path": "documentation/docs/globals/Array/prototype/pop.mdx",
"chars": 1236,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype.po"
},
{
"path": "documentation/docs/globals/Array/prototype/push.mdx",
"chars": 1466,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype.pu"
},
{
"path": "documentation/docs/globals/Array/prototype/reduce.mdx",
"chars": 7694,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype.re"
},
{
"path": "documentation/docs/globals/Array/prototype/reduceRight.mdx",
"chars": 3686,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype.re"
},
{
"path": "documentation/docs/globals/Array/prototype/reverse.mdx",
"chars": 1358,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype.re"
},
{
"path": "documentation/docs/globals/Array/prototype/shift.mdx",
"chars": 1333,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype.sh"
},
{
"path": "documentation/docs/globals/Array/prototype/slice.mdx",
"chars": 1943,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype.sl"
},
{
"path": "documentation/docs/globals/Array/prototype/some.mdx",
"chars": 3244,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype.so"
},
{
"path": "documentation/docs/globals/Array/prototype/sort.mdx",
"chars": 4775,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype.so"
},
{
"path": "documentation/docs/globals/Array/prototype/splice.mdx",
"chars": 2885,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype.sp"
},
{
"path": "documentation/docs/globals/Array/prototype/toLocaleString.mdx",
"chars": 2069,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype.to"
},
{
"path": "documentation/docs/globals/Array/prototype/toString.mdx",
"chars": 1151,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype.to"
},
{
"path": "documentation/docs/globals/Array/prototype/unshift.mdx",
"chars": 1615,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype.un"
},
{
"path": "documentation/docs/globals/Array/prototype/values.mdx",
"chars": 878,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Array.prototype.va"
},
{
"path": "documentation/docs/globals/ArrayBuffer/@@species.mdx",
"chars": 1821,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# get ArrayBuffer\\[S"
},
{
"path": "documentation/docs/globals/ArrayBuffer/ArrayBuffer.mdx",
"chars": 759,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# ArrayBuffer()\n\nThe"
},
{
"path": "documentation/docs/globals/ArrayBuffer/isView.mdx",
"chars": 602,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# ArrayBuffer.isView"
},
{
"path": "documentation/docs/globals/ArrayBuffer/prototype/byteLength.mdx",
"chars": 527,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# ArrayBuffer.protot"
},
{
"path": "documentation/docs/globals/ArrayBuffer/prototype/slice.mdx",
"chars": 1173,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# ArrayBuffer.protot"
},
{
"path": "documentation/docs/globals/BigInt/BigInt.mdx",
"chars": 1383,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# BigInt()\n\nThe **`B"
},
{
"path": "documentation/docs/globals/BigInt/asIntN.mdx",
"chars": 1879,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# BigInt.asIntN()\n\nT"
},
{
"path": "documentation/docs/globals/BigInt/asUintN.mdx",
"chars": 1658,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# BigInt.asUintN()\n\n"
},
{
"path": "documentation/docs/globals/BigInt/prototype/toLocaleString.mdx",
"chars": 2636,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# BigInt.prototype.t"
},
{
"path": "documentation/docs/globals/BigInt/prototype/toString.mdx",
"chars": 2398,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# BigInt.prototype.t"
},
{
"path": "documentation/docs/globals/BigInt/prototype/valueOf.mdx",
"chars": 352,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# BigInt.prototype.v"
},
{
"path": "documentation/docs/globals/BigInt64Array/BigInt64Array.mdx",
"chars": 1240,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# BigInt64Array()\n\nT"
},
{
"path": "documentation/docs/globals/BigUint64Array/BigUint64Array.mdx",
"chars": 1243,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# BigUint64Array()\n\n"
},
{
"path": "documentation/docs/globals/Blob/Blob.mdx",
"chars": 1941,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Blob()\n\nThe **`Blo"
},
{
"path": "documentation/docs/globals/Blob/prototype/arrayBuffer.mdx",
"chars": 448,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Blob.arrayBuffer()"
},
{
"path": "documentation/docs/globals/Blob/prototype/size.mdx",
"chars": 278,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Blob.size\n\nThe **`"
},
{
"path": "documentation/docs/globals/Blob/prototype/slice.mdx",
"chars": 989,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Blob.slice()\n\nThe "
},
{
"path": "documentation/docs/globals/Blob/prototype/stream.mdx",
"chars": 391,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Blob.stream()\n\nThe"
},
{
"path": "documentation/docs/globals/Blob/prototype/text.mdx",
"chars": 467,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Blob.text()\n\nThe *"
},
{
"path": "documentation/docs/globals/Blob/prototype/type.mdx",
"chars": 332,
"preview": "---\nhide_title: false\nhide_table_of_contents: false\npagination_next: null\npagination_prev: null\n---\n# Blob.type\n\nThe **`"
}
]
// ... and 9422 more files (download for full content)
About this extraction
This page contains the full source code of the fastly/js-compute-runtime GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 9622 files (15.6 MB), approximately 4.7M tokens, and a symbol index with 1963 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.