chore(main): release 3.0.0 - #433
Open
github-actions[bot] wants to merge 1 commit into
Open
github-actions[bot] wants to merge 1 commit into
github-actions[bot] wants to merge 1 commit into
Conversation
github-actions
Bot
force-pushed
the
release-please--branches--main--components--b24jssdk-main
branch
from
August 29, 2026 20:18
6699154 to
a4f9a7c
Compare
github-actions
Bot
force-pushed
the
release-please--branches--main--components--b24jssdk-main
branch
5 times, most recently
from
August 31, 2026 13:46
4f7fc0d to
977a44a
Compare
github-actions
Bot
force-pushed
the
release-please--branches--main--components--b24jssdk-main
branch
22 times, most recently
from
September 6, 2026 06:46
35c29b6 to
d3f0c21
Compare
github-actions
Bot
force-pushed
the
release-please--branches--main--components--b24jssdk-main
branch
21 times, most recently
from
September 15, 2026 09:38
e26fe07 to
77831a3
Compare
github-actions
Bot
force-pushed
the
release-please--branches--main--components--b24jssdk-main
branch
8 times, most recently
from
September 18, 2026 10:05
a640c77 to
74d9172
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🤖 I have created a release beep boop
3.0.0 (2026-09-23)
⚠ BREAKING CHANGES
PullClient.sendMessage()andsendMessageToChannels()reject where they used to resolve, and resolvetrueafter the transport accepts the frame rather thanundefinedor a boolean immediately. A caller with nocatchsees a rejection where it previously saw a silent no-op — in a timer that can now end the process under Node 15+. See3.within-2x.md.getEnvironment()gains a fourth member,Environment.WORKER, and returns it for a scope that is a worker scope and reports no Node version — Web, Shared and Service Workers previously fell through toEnvironment.UNKNOWN. Node is tested first, so a runtime that reports a Node version staysEnvironment.NODEeven when it models itself on the Worker API (a Deno worker, a Cloudflare Worker withnodejs_compat): those are servers, and a webhook belongs there. A branch on=== Environment.BROWSEis unaffected — a worker has no DOM and is deliberately notBROWSE— but adefault:or=== Environment.UNKNOWNarm that was catching workers no longer does. For anything that is not the DOM, use the newisBrowserLikeRuntime(), true forBROWSEandWORKERalike.TypeHttpOptionsinstead of forwarded whole. This narrows one surface that did ship:HttpV2andHttpV3are exported and their second constructor argument is typedobject, so a directnew HttpV2(auth, { baseURL, responseType, … })used to reach axios untouched and now loses those keys, with the dropped names logged. Set them ongetHttpClient(version).ajaxClient.defaultsinstead.headersstill merges as before. A refused redirect on a request whose effectivemaxRedirectsis0now fails withJSSDK_HTTP_REDIRECT_BLOCKEDand is not retried.fetchadapter instead of letting it pick XHR by list order. A blocked redirect on arestApi:v3batch from a non-hook transport now fails withJSSDK_HTTP_REDIRECT_BLOCKEDwhere it used to complete the hop silently; a test double stubbingXMLHttpRequestunder jsdom stops intercepting SDK traffic; andonUploadProgresson your own requests throughajaxClientdegrades outside Chromium. PasshttpOptions: { adapter: 'xhr' }at construction to opt out. The SDK also statesContent-Type: application/jsonper request, soajaxClient.defaults.headersno longer changes the encoding of SDK traffic.placement.optionsisReadonly<Record<string, unknown>>instead ofany, andMessageInitData.PLACEMENT_OPTIONSisunknowninstead ofRecord<string, any>. Reading a key still compiles and yieldsunknown; what stops compiling is reaching through it (options.payload.id), assigning it to a concrete type, or passingoptionswhere a narrower record is expected. Narrow before use. One change fails only at run time: a JSON string is parsed for you now, so code that calledJSON.parseon the value itself throws SyntaxError. See docs/getting-started/migration/v3.isSuccess; the streaming walkers (fetchList / fetchTail) throw after yielding every page they read. Pass a highermaxPagesto restore the previous reach. See docs/getting-started/migration/within-2x.classifyV3ErrorsByCategoryis removed fromRestrictionParams, and the classification it enabled is now unconditional. OnrestApi:v3, an error in the v3 error envelope carrying a 4xx other than 401, 408 or 429 is delivered insideAjaxResultinstead of being thrown. If you passed the parameter, delete the line — the behaviour you asked for is the default. If you never passed it, nothing fails to compile and some v3 errors stop throwing: checkisSuccessrather than relying ontry/catch. To keep one code throwing, add it tohardErrorCodes. SeeResult<T>andIResult<T>default tounknownrather thanany, andTypeCallParams's index signature, nestedparamsandfilterare narrowed to match. Code that wroteResultwithout a type argument and then read a field off it no longer compiles — pass the payload type to the action (call.make<T>,batch.make<T>,callList.make<T>) or narrow once at the point of reading. Separately,batch.make's return type is now chosen by overload instead of being the unionCallBatchResult<T>: a cast written to work around that union may need removing, and a generic that named the whole collection has to name one command's payload instead. AreturnAjaxResultthat is not a literal still resolves to the union. Seeengines.nodeis>=22.0.0. On Node 22 or newer nothing changes; on Node 20,npm installprints anEBADENGINEwarning and, underengine-strict=true(pnpm's default inside a workspace), fails outright. This is a packaging floor, not an API change — no source has to change, only the Node version you run on.b24.callMethod,b24.callListMethod,b24.fetchListMethod,b24.callBatch,b24.callBatchByChunk,AbstractB24.batchSize,LoggerBrowserandLoggerTypeare removed. Replace them withb24.actions.v{2,3}.{call,callList,fetchList,batch,batchByChunk}.make(options), the literal50, andLoggerFactory.createForBrowser(title, isDev);LoggerTypehas no replacement — drop the import. Four of the five methods are a mechanical swap.callListMethodis not:callList.makehas noprogresscallback, does not acceptorder, and pages by a keyset cursor, soidKey/cursorIdKeymust match the method. SeerestApi:v3batch changes shape for every transport,B24Hookincluded, where the batch already worked. It is now a bare JSON array[{…},{…}]instead of an object with numeric keys{"0":{…},"1":{…}}, and a server-sideB24OAuthbatch carries anAuthorization: Bearerheader it did not carry before. No caller code changes — the action arguments, the return shape andAjaxError.requestInfo.paramsare all unchanged — but anything that inspects the request rather than making it needs attention: a reverse proxy, a WAF body rule, an egress gateway, a recorded HTTP fixture, or a test asserting on the request body. Re-record fixtures, and letAuthorizationthrough the proxy.Features
Idempotency-KeyonrestApi:v3calls (#475) (d6f81c8), closes #462restApi:v3errors by response category, behind a flag (#478) (db7f7d7), closes #460Bug Fixes
tasks.task.addcalls in recipes 03 and 08 actually work (#477) (f126e34), closes #476Dependencies
Changed
Docs
This PR was generated with Release Please. See documentation.