UNPKG

@fastly/js-compute

Version:

JavaScript SDK and CLI for building JavaScript applications on [Fastly Compute](https://www.fastly.com/products/edge-compute/serverless).

749 lines (437 loc) 92.7 kB
# Changelog ## 3.42.1 (2026-05-18) ### Fixed * Null body for non-downstream requests with no stream created for them ([#1479](https://github.com/fastly/js-compute-runtime/issues/1479)) ([511c667](https://github.com/fastly/js-compute-runtime/commit/511c6672e18b8872f707a3942a5d53c651e03797)) ## 3.42.0 (2026-05-11) ### Added * Bail out of reusable sandbox if request fails ([#1453](https://github.com/fastly/js-compute-runtime/issues/1453)) ([b6f41b0](https://github.com/fastly/js-compute-runtime/commit/b6f41b0bcf429705f1a70530e39774f3fedd3c07)) ### Fixed * Allocation failure checks ([#1457](https://github.com/fastly/js-compute-runtime/issues/1457)) ([c882105](https://github.com/fastly/js-compute-runtime/commit/c882105b1daf2f16c54e25105a1d6bd45336cba5)) * Avoid dereferencing one-past-the-end iterator in `host_api` ([#1461](https://github.com/fastly/js-compute-runtime/issues/1461)) ([acf2b25](https://github.com/fastly/js-compute-runtime/commit/acf2b25fddda2960a5e5ed7b0e0e9802a2ce21c2)) * Be more defensive in `ip_octets_to_js_string` ([#1468](https://github.com/fastly/js-compute-runtime/issues/1468)) ([60bbec1](https://github.com/fastly/js-compute-runtime/commit/60bbec1f639a47ad3c384f4517aa628a2115507d)) * Cache body range check ([#1463](https://github.com/fastly/js-compute-runtime/issues/1463)) ([f38ce55](https://github.com/fastly/js-compute-runtime/commit/f38ce550419001c09e1337f2b98fd3a0b2fee947)) * Cache override getters for `beforeSend` and `afterSend` ([#1466](https://github.com/fastly/js-compute-runtime/issues/1466)) ([5261936](https://github.com/fastly/js-compute-runtime/commit/52619361172eaaed4493693f309d52e4c4f98386)) * Correct GC guard type in KVStore::put to prevent wasm unreachable crashes and fix some CI issues ([#1475](https://github.com/fastly/js-compute-runtime/issues/1475)) ([15f850d](https://github.com/fastly/js-compute-runtime/commit/15f850d47c2a407d5261f3b46047bb533bcca1dd)) * Ensure nul-termination of string for inet\_pton ([#1462](https://github.com/fastly/js-compute-runtime/issues/1462)) ([0e3afbe](https://github.com/fastly/js-compute-runtime/commit/0e3afbe335a6cc29744d28283880addc780d3a04)) * Find invalid characters after nul bytes in KV store keys ([#1464](https://github.com/fastly/js-compute-runtime/issues/1464)) ([5f0f0f2](https://github.com/fastly/js-compute-runtime/commit/5f0f0f2100dce30fe8163846613d91deec783aba)) * Incorrect catch handler failure check ([#1458](https://github.com/fastly/js-compute-runtime/issues/1458)) ([fb3c01a](https://github.com/fastly/js-compute-runtime/commit/fb3c01acd8a1c696f231b265d78b26bc163adb1a)) * Memory leak in `get_found_response` ([#1456](https://github.com/fastly/js-compute-runtime/issues/1456)) ([17559d3](https://github.com/fastly/js-compute-runtime/commit/17559d350dad3969fc5d0352c1d74e38f617f78f)) * Memory leak on failed inspect hostcall ([#1455](https://github.com/fastly/js-compute-runtime/issues/1455)) ([9b77977](https://github.com/fastly/js-compute-runtime/commit/9b779773849b93d1d1b955aaea068d5e4ae73649)) * Protect against GC from `validate_bytes` ([#1447](https://github.com/fastly/js-compute-runtime/issues/1447)) ([be0867b](https://github.com/fastly/js-compute-runtime/commit/be0867ba1f7632dab107c3db15800db3a52a49ec)) * Shrinking realloc in KVStorePendingLookup ([#1467](https://github.com/fastly/js-compute-runtime/issues/1467)) ([5a72d13](https://github.com/fastly/js-compute-runtime/commit/5a72d13684679f79ff956004ff6f77fa257a6aa3)) * Throw error on negative `ttl` and `swr` ([#1465](https://github.com/fastly/js-compute-runtime/issues/1465)) ([7d29650](https://github.com/fastly/js-compute-runtime/commit/7d2965014d979dcb725b1e0c2dbbe5dcb4a20b78)) ## 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 `manualFramingH