diff --git a/.release-please-manifest.json b/.release-please-manifest.json index a5d1cf28..d4f6f299 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "2.2.0" + ".": "3.0.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b6b52c5..c070ed20 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,140 @@ # Changelog -## [Unreleased] +## [3.0.0](https://github.com/bitrix24/b24jssdk/compare/v2.2.0...v3.0.0) (2026-09-29) + ### ⚠ BREAKING CHANGES +* **pull:** `PullClient.sendMessage()` and `sendMessageToChannels()` reject where they used to resolve, and resolve `true` after the transport accepts the frame rather than `undefined` or a boolean immediately. A caller with no `catch` sees a rejection where it previously saw a silent no-op — in a timer that can now end the process under Node 15+. See [Migration within 2.x](https://bitrix24.github.io/b24jssdk/docs/getting-started/migration/within-2x/). +* **actions:** stop a walk whose cursor cycles or runs backwards, and check it before calling a short page the end ([#538](https://github.com/bitrix24/b24jssdk/issues/538)) +* **tools:** `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 to `Environment.UNKNOWN`. Node is tested first, so a runtime that reports a Node version stays `Environment.NODE` even when it models itself on the Worker API (a Deno worker, a Cloudflare Worker with `nodejs_compat`): those are servers, and a webhook belongs there. A branch on `=== Environment.BROWSE` is unaffected — a worker has no DOM and is deliberately not `BROWSE` — but a `default:` or `=== Environment.UNKNOWN` arm that was catching workers no longer does. For anything that is not the DOM, use the new `isBrowserLikeRuntime()`, true for `BROWSE` and `WORKER` alike. +* **http:** axios settings passed at construction are filtered against `TypeHttpOptions` instead of forwarded whole. This narrows one surface that did ship: `HttpV2` and `HttpV3` are exported and their second constructor argument is typed `object`, so a direct `new HttpV2(auth, { baseURL, responseType, … })` used to reach axios untouched and now loses those keys, with the dropped names logged. Set them on `getHttpClient(version).ajaxClient.defaults` instead. `headers` still merges as before. A refused redirect on a request whose effective `maxRedirects` is `0` now fails with `JSSDK_HTTP_REDIRECT_BLOCKED` and is not retried. +* **http:** in a browser or worker the SDK asks axios for the `fetch` adapter instead of letting it pick XHR by list order. A blocked redirect on a `restApi:v3` batch from a non-hook transport now fails with `JSSDK_HTTP_REDIRECT_BLOCKED` where it used to complete the hop silently; a test double stubbing `XMLHttpRequest` under jsdom stops intercepting SDK traffic; and `onUploadProgress` on your own requests through `ajaxClient` degrades outside Chromium. Pass `httpOptions: { adapter: 'xhr' }` at construction to opt out. The SDK also states `Content-Type: application/json` per request, so `ajaxClient.defaults.headers` no longer changes the encoding of SDK traffic. +* **frame:** `placement.options` is `Readonly>` instead of `any`, and `MessageInitData.PLACEMENT_OPTIONS` is `unknown` instead of `Record`. Reading a key still compiles and yields `unknown`; what stops compiling is reaching through it (`options.payload.id`), assigning it to a concrete type, or passing `options` where 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 called `JSON.parse` on the value itself throws SyntaxError. See [Migration to v3](https://bitrix24.github.io/b24jssdk/docs/getting-started/migration/v3/). +* **actions:** keyset walks now stop after 10 000 pages by default. A walk that legitimately reads more — 500 000 rows at the default page size of 50 — used to complete and now stops with JSSDK_ACTION_MAX_PAGES_EXCEEDED. The eager walkers (callList / callTail) resolve with the rows they read and the error attached, so check `isSuccess`; the streaming walkers (fetchList / fetchTail) throw after yielding every page they read. Pass a higher `maxPages` to restore the previous reach. See [Migration within 2.x](https://bitrix24.github.io/b24jssdk/docs/getting-started/migration/within-2x/). +* **http:** `classifyV3ErrorsByCategory` is removed from `RestrictionParams`, and the classification it enabled is now unconditional. On `restApi:v3`, an error in the v3 error envelope carrying a 4xx other than 401, 408 or 429 is delivered inside `AjaxResult` instead 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: check `isSuccess` rather than relying on `try` / `catch`. To keep one code throwing, add it to `hardErrorCodes`. See [Migration to v3](https://bitrix24.github.io/b24jssdk/docs/getting-started/migration/v3/). +* **types:** `Result` and `IResult` default to `unknown` rather than `any`, and `TypeCallParams`'s index signature, nested `params` and `filter` are narrowed to match. Code that wrote `Result` without a type argument and then read a field off it no longer compiles — pass the payload type to the action (`call.make`, `batch.make`, `callList.make`) or narrow once at the point of reading. Separately, `batch.make`'s return type is now chosen by overload instead of being the union `CallBatchResult`: 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. A `returnAjaxResult` that is not a literal still resolves to the union. See [Migration to v3](https://bitrix24.github.io/b24jssdk/docs/getting-started/migration/v3/). +* **platform:** Node 20 is no longer supported. `engines.node` is `>=22.0.0`. On Node 22 or newer nothing changes; on Node 20, `npm install` prints an `EBADENGINE` warning and, under `engine-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. +* **core:** `b24.callMethod`, `b24.callListMethod`, `b24.fetchListMethod`, `b24.callBatch`, `b24.callBatchByChunk`, `AbstractB24.batchSize`, `LoggerBrowser` and `LoggerType` are removed. Replace them with `b24.actions.v{2,3}.{call,callList,fetchList,batch,batchByChunk}.make(options)`, the literal `50`, and `LoggerFactory.createForBrowser(title, isDev)`; `LoggerType` has no replacement — drop the import. Four of the five methods are a mechanical swap. `callListMethod` is not: `callList.make` has no `progress` callback, does not accept `order`, and pages by a keyset cursor, so `idKey` / `cursorIdKey` must match the method. See [Migration to v3](https://bitrix24.github.io/b24jssdk/docs/getting-started/migration/v3/). +* **core:** the request body of a `restApi:v3` batch changes shape for every transport, `B24Hook` included, where the batch already worked. It is now a bare JSON array `[{…},{…}]` instead of an object with numeric keys `{"0":{…},"1":{…}}`, and a server-side `B24OAuth` batch carries an `Authorization: Bearer` header it did not carry before. No caller code changes — the action arguments, the return shape and `AjaxError.requestInfo.params` are 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 let `Authorization` through the proxy. +* **frame:** `slider.openSliderAppPage()` takes `params: object` and returns `Promise` instead of `any` / `Promise` (#486). It settles when the slider is **closed**, with `''` on every measured close — so `await` waits for the user; attach `.then()` if you only open it. Code that read a field off the result no longer compiles; there was never a field to read. Separately, `initializeB24Frame()` now builds a new frame after `$b24.destroy()` instead of returning the destroyed one, on which every call hung. + +### Features + +* **actions:** add actions.v3.deferredBatch for background batches ([#572](https://github.com/bitrix24/b24jssdk/issues/572)) ([846562b](https://github.com/bitrix24/b24jssdk/commit/846562ba152ea7ea869d9a2b7f1a3bc2fe58f6f4)) +* **actions:** bound every keyset walk with maxPages, signal and progress ([#522](https://github.com/bitrix24/b24jssdk/issues/522)) ([29a4fad](https://github.com/bitrix24/b24jssdk/commit/29a4fad7a1530f3383c0a83483f2c50b536c4275)), closes [#484](https://github.com/bitrix24/b24jssdk/issues/484) +* **actions:** stop a walk whose cursor cycles or runs backwards, and check it before calling a short page the end ([#538](https://github.com/bitrix24/b24jssdk/issues/538)) ([d445cb7](https://github.com/bitrix24/b24jssdk/commit/d445cb78a226a725bb681b5059f32f9a488553a6)) +* **batch:** warn when a batch command's arguments are lost to an unread key ([#536](https://github.com/bitrix24/b24jssdk/issues/536)) ([55348ab](https://github.com/bitrix24/b24jssdk/commit/55348abe876a9de50ea82c27b967463689d96307)) +* **core:** let a browser batch on v3, with the token in the query string ([#507](https://github.com/bitrix24/b24jssdk/issues/507)) ([e6ef9de](https://github.com/bitrix24/b24jssdk/commit/e6ef9de71e38560c5df72cc7c6aa4f82ccbcb0b5)) +* **core:** remove the deprecated legacy REST surface ([#509](https://github.com/bitrix24/b24jssdk/issues/509)) ([dfb11d1](https://github.com/bitrix24/b24jssdk/commit/dfb11d1b3ade0e90a20f33274a41c0c60cd63cde)) +* **core:** send a v3 batch as a bare array, with the OAuth token in a Bearer header ([#491](https://github.com/bitrix24/b24jssdk/issues/491)) ([487eb40](https://github.com/bitrix24/b24jssdk/commit/487eb404f7d5b13e53e5b700ce6f6e300921d8c0)) +* **core:** support `Idempotency-Key` on `restApi:v3` calls ([#475](https://github.com/bitrix24/b24jssdk/issues/475)) ([d6f81c8](https://github.com/bitrix24/b24jssdk/commit/d6f81c81ba2254fdcb211e8b6a5872958b4e517f)), closes [#462](https://github.com/bitrix24/b24jssdk/issues/462) +* **frame:** add an opt-in token keep-alive and coalesce refreshAuth ([#543](https://github.com/bitrix24/b24jssdk/issues/543)) ([580b87a](https://github.com/bitrix24/b24jssdk/commit/580b87ad50858353dc16fdaa0a8dc55748e5ae9e)), closes [#532](https://github.com/bitrix24/b24jssdk/issues/532) +* **frame:** type placement.options, and normalise the shapes the portal sends ([#528](https://github.com/bitrix24/b24jssdk/issues/528)) ([9f90acf](https://github.com/bitrix24/b24jssdk/commit/9f90acf7c2b78dbed4523224078e92a133e10a22)), closes [#485](https://github.com/bitrix24/b24jssdk/issues/485) +* **http:** carry httpOptions through initializeB24Frame, and enforce the allowlist at runtime ([#535](https://github.com/bitrix24/b24jssdk/issues/535)) ([528a73e](https://github.com/bitrix24/b24jssdk/commit/528a73e1af7d494f0e1836706d7e2ff5de5847ce)) +* **http:** classify `restApi:v3` errors by response category, behind a flag ([#478](https://github.com/bitrix24/b24jssdk/issues/478)) ([db7f7d7](https://github.com/bitrix24/b24jssdk/commit/db7f7d777b30780dbf38507552a58c99e5f48204)), closes [#460](https://github.com/bitrix24/b24jssdk/issues/460) +* **http:** classify restApi:v3 errors by response category, without a flag ([#517](https://github.com/bitrix24/b24jssdk/issues/517)) ([41db85a](https://github.com/bitrix24/b24jssdk/commit/41db85adb0d76489e53d871a9ac59016581783b7)) +* **http:** state the JSON content type, and ask for the fetch adapter in a browser ([#534](https://github.com/bitrix24/b24jssdk/issues/534)) ([a011ea9](https://github.com/bitrix24/b24jssdk/commit/a011ea923ef0e9886dbed7a94abe5bd3e2f0125c)) +* **platform:** drop Node 20, which has been EOL since April ([#512](https://github.com/bitrix24/b24jssdk/issues/512)) ([5023a5b](https://github.com/bitrix24/b24jssdk/commit/5023a5b5fc6990b7d26e9609b8c2ffb29bd1dce1)) +* **playground:** add a Pull lab for exercising the two protobuf codecs against a portal ([#554](https://github.com/bitrix24/b24jssdk/issues/554)) ([282c3b0](https://github.com/bitrix24/b24jssdk/commit/282c3b06dccf03b56786ed9ebc6b5786d72aab43)) +* **pull:** add a hand-written protobuf codec behind an opt-in switch ([#552](https://github.com/bitrix24/b24jssdk/issues/552)) ([d7e5c4e](https://github.com/bitrix24/b24jssdk/commit/d7e5c4e0af7901881273290b08318fb6c45dedaa)) +* **pull:** name the push server's refusal codes, and record them in the lab ([#560](https://github.com/bitrix24/b24jssdk/issues/560)) ([f937c02](https://github.com/bitrix24/b24jssdk/commit/f937c02879c41d7a6a9b11b3b93bdae6716bbf11)) +* **scripts:** check the API Reference index against itself ([#458](https://github.com/bitrix24/b24jssdk/issues/458)) ([5c53c9e](https://github.com/bitrix24/b24jssdk/commit/5c53c9e4698bde7302712636030111c868c9d2ad)), closes [#384](https://github.com/bitrix24/b24jssdk/issues/384) +* **scripts:** compile the ts fences in the contributing guides ([#448](https://github.com/bitrix24/b24jssdk/issues/448)) ([6e8c85f](https://github.com/bitrix24/b24jssdk/commit/6e8c85f4a10cbfea86f8f99f518427a252ac4112)), closes [#435](https://github.com/bitrix24/b24jssdk/issues/435) +* **scripts:** hold v3 method names against a portal's own OpenAPI document ([#471](https://github.com/bitrix24/b24jssdk/issues/471)) ([36dd2e6](https://github.com/bitrix24/b24jssdk/commit/36dd2e6dcaaa2a946305fd62eeb76f244a135bc3)), closes [#463](https://github.com/bitrix24/b24jssdk/issues/463) [#464](https://github.com/bitrix24/b24jssdk/issues/464) +* **scripts:** report how stale a v3 snapshot is, measured per portal kind ([#550](https://github.com/bitrix24/b24jssdk/issues/550)) ([43a4ba1](https://github.com/bitrix24/b24jssdk/commit/43a4ba107423f6451b95d1b3f8d3ca5453a0c965)), closes [#472](https://github.com/bitrix24/b24jssdk/issues/472) +* **scripts:** type-check the JSDoc `@example` blocks in the SDK source ([#443](https://github.com/bitrix24/b24jssdk/issues/443)) ([f5e6a76](https://github.com/bitrix24/b24jssdk/commit/f5e6a76f76848ff995e3ee340645f956bf3e6a00)), closes [#439](https://github.com/bitrix24/b24jssdk/issues/439) +* **tools:** name the worker environment, and treat it as browser-like rather than as a server ([#537](https://github.com/bitrix24/b24jssdk/issues/537)) ([22d9b4c](https://github.com/bitrix24/b24jssdk/commit/22d9b4cb9087fa974c5b3488ce516d73fe849723)) +* **types:** default Result to unknown, and overload batch.make on its arguments ([#516](https://github.com/bitrix24/b24jssdk/issues/516)) ([6069301](https://github.com/bitrix24/b24jssdk/commit/606930169bfb7d6d3307579734cac435742b8587)) + + +### Bug Fixes + +* **actions:** bound the filter walk by work, not only by depth ([#494](https://github.com/bitrix24/b24jssdk/issues/494)) ([e7106bb](https://github.com/bitrix24/b24jssdk/commit/e7106bbf82b7044788760a1d4b5ded150df96c7e)) +* **actions:** measure the v3 aggregate contract and correct the type it returns ([#498](https://github.com/bitrix24/b24jssdk/issues/498)) ([fed0ebb](https://github.com/bitrix24/b24jssdk/commit/fed0ebbfe2d89d1b283006d0875e4c500b085bb0)) +* **actions:** reject the v2 object filter dialect in callTail and fetchTail too ([#489](https://github.com/bitrix24/b24jssdk/issues/489)) ([507d49f](https://github.com/bitrix24/b24jssdk/commit/507d49f220b295ace84f0680cd7c7f03cc5514e8)) +* **actions:** report the v2 list params the cursor injection collides with ([#521](https://github.com/bitrix24/b24jssdk/issues/521)) ([054a330](https://github.com/bitrix24/b24jssdk/commit/054a3303f9d19f291e42f26b224ea99b03f16ec3)), closes [#483](https://github.com/bitrix24/b24jssdk/issues/483) +* **actions:** stop a list or tail walk when the cursor stops advancing ([#493](https://github.com/bitrix24/b24jssdk/issues/493)) ([fc71689](https://github.com/bitrix24/b24jssdk/commit/fc71689ea7360397d96c466ba15e53d911b4a9e1)) +* **core:** keep a response without a time block from throwing ([#456](https://github.com/bitrix24/b24jssdk/issues/456)) ([1f90b2b](https://github.com/bitrix24/b24jssdk/commit/1f90b2b57c24bf218453a5b5249ceabbe7ecefdd)) +* **core:** mask the webhook secret when it appears in a URL path ([#468](https://github.com/bitrix24/b24jssdk/issues/468)) ([4601238](https://github.com/bitrix24/b24jssdk/commit/4601238f7ef5b10153fa55b9e8f626b3d678be7b)) +* **core:** wrap a response body that has no result key into result ([#469](https://github.com/bitrix24/b24jssdk/issues/469)) ([d917cee](https://github.com/bitrix24/b24jssdk/commit/d917ceef40069e383249eee8bf5b3c66e57d30dc)) +* **docs:** stop README-AI.md teaching the removed LoggerBrowser, and gate it ([#446](https://github.com/bitrix24/b24jssdk/issues/446)) ([dfc115a](https://github.com/bitrix24/b24jssdk/commit/dfc115a7e4bedd4cff207acca3bf66bc80d2cb2a)), closes [#277](https://github.com/bitrix24/b24jssdk/issues/277) +* **frame:** new frame after destroy; document openSliderAppPage settling ([#575](https://github.com/bitrix24/b24jssdk/issues/575)) ([18218a9](https://github.com/bitrix24/b24jssdk/commit/18218a998eaecc8eeba35bfe6fe34a5e27b3db75)), closes [#486](https://github.com/bitrix24/b24jssdk/issues/486) +* **http:** keep the OAuth token out of the body of an idempotent v3 call ([#571](https://github.com/bitrix24/b24jssdk/issues/571)) ([5501dbf](https://github.com/bitrix24/b24jssdk/commit/5501dbf34af06b35d999b26644ad981fee864e7d)) +* **http:** refuse idempotencyKey in a browser before sending ([#574](https://github.com/bitrix24/b24jssdk/issues/574)) ([d186d50](https://github.com/bitrix24/b24jssdk/commit/d186d50c10ea83acd92ba6b61d483a1ebd9192a3)), closes [#573](https://github.com/bitrix24/b24jssdk/issues/573) +* **http:** walk a top-level array or string in the redactor ([#488](https://github.com/bitrix24/b24jssdk/issues/488)) ([c4d8306](https://github.com/bitrix24/b24jssdk/commit/c4d8306e501a0069ae5ba21ce729b90613e029eb)), closes [#487](https://github.com/bitrix24/b24jssdk/issues/487) +* **limiters:** charge a batch to the operating budget the portal actually bills ([#539](https://github.com/bitrix24/b24jssdk/issues/539)) ([eb13ee6](https://github.com/bitrix24/b24jssdk/commit/eb13ee606c9538429ac88b8f8fc8baa22ca01555)) +* **limiters:** keep the parameters a partial update does not mention ([#481](https://github.com/bitrix24/b24jssdk/issues/481)) ([66f4554](https://github.com/bitrix24/b24jssdk/commit/66f45546407c51b9808449a80e328c6c4a68f07e)), closes [#479](https://github.com/bitrix24/b24jssdk/issues/479) +* **playground:** show the error CODE in the Pull lab, and drop the credentials that do not exist ([#556](https://github.com/bitrix24/b24jssdk/issues/556)) ([2566ba5](https://github.com/bitrix24/b24jssdk/commit/2566ba5a60e7e29de68ab0f2e0f02fb5c04505cf)) +* **playground:** subscribe the Pull lab to client-published messages ([#557](https://github.com/bitrix24/b24jssdk/issues/557)) ([2f69d47](https://github.com/bitrix24/b24jssdk/commit/2f69d475ef2ee897a703bd426c1fab785d7bb6a5)) +* **pull:** a malformed message no longer drops the rest of its batch ([#565](https://github.com/bitrix24/b24jssdk/issues/565)) ([367a973](https://github.com/bitrix24/b24jssdk/commit/367a9733a770cdcabafbbf2bbdfd2592cf99d5bc)), closes [#564](https://github.com/bitrix24/b24jssdk/issues/564) +* **pull:** fuzz both codecs, and stop one bad message dropping the batch ([#561](https://github.com/bitrix24/b24jssdk/issues/561)) ([4dda2f8](https://github.com/bitrix24/b24jssdk/commit/4dda2f8af87c26c5a85a16e1d8a0e86df321cf4d)) +* **pull:** merge user_params into a non-object params without throwing ([#567](https://github.com/bitrix24/b24jssdk/issues/567)) ([cad9aa8](https://github.com/bitrix24/b24jssdk/commit/cad9aa8e85e610ca47c3a05425f54048aba4b6c8)), closes [#566](https://github.com/bitrix24/b24jssdk/issues/566) +* **pull:** report every way a send can fail, instead of hiding four of them ([#555](https://github.com/bitrix24/b24jssdk/issues/555)) ([2fb18a9](https://github.com/bitrix24/b24jssdk/commit/2fb18a9b3b2affde0ad686c300f978a204d4c3d1)) +* **pull:** skip a message body that is JSON but not an object ([#563](https://github.com/bitrix24/b24jssdk/issues/563)) ([e98dad0](https://github.com/bitrix24/b24jssdk/commit/e98dad0c3f75d74e84f0ab0d05e51562f7e71d8a)), closes [#562](https://github.com/bitrix24/b24jssdk/issues/562) +* **recipes:** make the v3 `tasks.task.add` calls in recipes 03 and 08 actually work ([#477](https://github.com/bitrix24/b24jssdk/issues/477)) ([f126e34](https://github.com/bitrix24/b24jssdk/commit/f126e3479dbba5a4fe86a1b1210701e6650d2efe)), closes [#476](https://github.com/bitrix24/b24jssdk/issues/476) +* **recipes:** treat member_id as the untrusted string it is ([#545](https://github.com/bitrix24/b24jssdk/issues/545)) ([598ac3a](https://github.com/bitrix24/b24jssdk/commit/598ac3af07ff96fcb48a200798b4f9b37150fc26)), closes [#454](https://github.com/bitrix24/b24jssdk/issues/454) +* **recipes:** validate the portal URLs an install event carries ([#452](https://github.com/bitrix24/b24jssdk/issues/452)) ([5b1bf78](https://github.com/bitrix24/b24jssdk/commit/5b1bf78c8f6d0ec866a788a7523810d35e9acffe)), closes [#389](https://github.com/bitrix24/b24jssdk/issues/389) +* **scripts:** anchor the fence pattern, which was miscounting an inline marker ([#442](https://github.com/bitrix24/b24jssdk/issues/442)) ([638c977](https://github.com/bitrix24/b24jssdk/commit/638c977ca97f008a2b6165f7135039908165d5a1)), closes [#441](https://github.com/bitrix24/b24jssdk/issues/441) +* **scripts:** docs-lint must not read a shallow boundary as a file's last change ([#544](https://github.com/bitrix24/b24jssdk/issues/544)) ([503c8c7](https://github.com/bitrix24/b24jssdk/commit/503c8c74e7031889fbb0ced0991ee70287065ec9)), closes [#524](https://github.com/bitrix24/b24jssdk/issues/524) +* **test:** install browser globals by descriptor, so the unit suite stops depending on file order ([#523](https://github.com/bitrix24/b24jssdk/issues/523)) ([9a46fa3](https://github.com/bitrix24/b24jssdk/commit/9a46fa39c68aa9be0bce1b099458018c5e2508ad)) + + +### Dependencies + +* bump dotenv from 17.4.2 to 18.0.4 ([#580](https://github.com/bitrix24/b24jssdk/issues/580)) ([21d9503](https://github.com/bitrix24/b24jssdk/commit/21d95039214407c7cd507d108d76bdf3eb6be574)) +* bump grammy and openai in the recipes package ([#444](https://github.com/bitrix24/b24jssdk/issues/444)) ([5bbfefd](https://github.com/bitrix24/b24jssdk/commit/5bbfefd3715d9b3f827ba26f1f848c8c227bd3e9)) +* bump openai from 7.10.0 to 7.18.0 in /skills/b24jssdk-recipes ([#540](https://github.com/bitrix24/b24jssdk/issues/540)) ([6f1fcf4](https://github.com/bitrix24/b24jssdk/commit/6f1fcf4d743469ead1826c7a1ae6c4fd9a9156b4)) +* bump openai from 7.18.0 to 7.23.0 in the recipes skill ([#576](https://github.com/bitrix24/b24jssdk/issues/576)) ([07e3000](https://github.com/bitrix24/b24jssdk/commit/07e30000c592555c97776671bd9e2bc559c25850)) +* bump openai to 7.10.0 in the recipes skill ([#502](https://github.com/bitrix24/b24jssdk/issues/502)) ([dec071b](https://github.com/bitrix24/b24jssdk/commit/dec071bd3f62843b51920c93856315bf6330f10d)) +* bump the npm-minor-patch group across 1 directory with 13 updates ([#577](https://github.com/bitrix24/b24jssdk/issues/577)) ([24a1bbd](https://github.com/bitrix24/b24jssdk/commit/24a1bbd8916d1bb0bbf093b52b98c4974dd36ded)) +* bump the npm-minor-patch group across 1 directory with 18 updates ([#553](https://github.com/bitrix24/b24jssdk/issues/553)) ([4ad1e15](https://github.com/bitrix24/b24jssdk/commit/4ad1e15154380c6da1bae5d8dfc432942e9eed6f)) +* raise the audit floor that a new smol-toml advisory moved past ([#526](https://github.com/bitrix24/b24jssdk/issues/526)) ([966400d](https://github.com/bitrix24/b24jssdk/commit/966400d36ae8ffd5b0924f6dadbb7e41f9ef805a)) +* raise the audit floors that new advisories moved past ([#453](https://github.com/bitrix24/b24jssdk/issues/453)) ([67a11b9](https://github.com/bitrix24/b24jssdk/commit/67a11b9e5034a6dff6298c8eb8ad97c662af8f0c)) +* raise the audit floors that three new advisories moved past ([#510](https://github.com/bitrix24/b24jssdk/issues/510)) ([7f6aec5](https://github.com/bitrix24/b24jssdk/commit/7f6aec5b514fa0f616351b294fbc24ea957a8235)) +* raise the devalue override floor to the patched line ([#548](https://github.com/bitrix24/b24jssdk/issues/548)) ([369d5eb](https://github.com/bitrix24/b24jssdk/commit/369d5eb612adf224d8a8c842996aacb0fba95d65)) +* raise the js-yaml floor to the version the manifest already asks for ([#529](https://github.com/bitrix24/b24jssdk/issues/529)) ([904ad2f](https://github.com/bitrix24/b24jssdk/commit/904ad2fd13ee0a6e120249150401edefdf78a43a)) +* raise the undici and ip-address floors past three new advisories ([#581](https://github.com/bitrix24/b24jssdk/issues/581)) ([022a202](https://github.com/bitrix24/b24jssdk/commit/022a2026540fab780458c45338f3a85d0849dc91)) +* take the tooling half of the grouped bump, leave the docs app alone ([#470](https://github.com/bitrix24/b24jssdk/issues/470)) ([2abf5fc](https://github.com/bitrix24/b24jssdk/commit/2abf5fc3b05c0f9d07a75b6cbb943ff4d882c676)), closes [#457](https://github.com/bitrix24/b24jssdk/issues/457) + + +### Changed + +* **ci:** drop the typecheck pass the measurement showed was redundant ([#436](https://github.com/bitrix24/b24jssdk/issues/436)) ([778ba82](https://github.com/bitrix24/b24jssdk/commit/778ba829b7efda1517d992f0f07fe9b930d40dad)), closes [#419](https://github.com/bitrix24/b24jssdk/issues/419) +* **config:** extract a shared tsconfig base, and pin the copy that cannot use it ([#547](https://github.com/bitrix24/b24jssdk/issues/547)) ([63a922d](https://github.com/bitrix24/b24jssdk/commit/63a922d7f001da4d1a734046d0076de8cabf4823)), closes [#396](https://github.com/bitrix24/b24jssdk/issues/396) +* **scripts:** one directory walk, with the symlink guard the copies lacked ([#437](https://github.com/bitrix24/b24jssdk/issues/437)) ([576c365](https://github.com/bitrix24/b24jssdk/commit/576c36525b84eb68342ba77f56d1a49ac87a935f)), closes [#418](https://github.com/bitrix24/b24jssdk/issues/418) +* **scripts:** one reporter, and GitHub annotations for every check ([#450](https://github.com/bitrix24/b24jssdk/issues/450)) ([134e820](https://github.com/bitrix24/b24jssdk/commit/134e8208b30b4dcb73ee98a33faa9e784071a160)), closes [#418](https://github.com/bitrix24/b24jssdk/issues/418) + + +### Docs + +* **actions:** add CallTail and FetchTail pages for REST API v3 ([#542](https://github.com/bitrix24/b24jssdk/issues/542)) ([8df5112](https://github.com/bitrix24/b24jssdk/commit/8df51123dc9f08799064b630800610f971c4222c)) +* **actions:** move the list-walker options onto their types ([#546](https://github.com/bitrix24/b24jssdk/issues/546)) ([23809df](https://github.com/bitrix24/b24jssdk/commit/23809dfd2c96a18777709fe606a289165bace6a6)), closes [#420](https://github.com/bitrix24/b24jssdk/issues/420) +* **contributing:** re-measure the typecheck coverage table and point AGENTS.md at it ([#447](https://github.com/bitrix24/b24jssdk/issues/447)) ([33ef7df](https://github.com/bitrix24/b24jssdk/commit/33ef7df3b5f09ca0c70e13cb6c66c015d82d4fff)), closes [#419](https://github.com/bitrix24/b24jssdk/issues/419) +* **contributing:** record what the raw-frame tap measured on the encode side ([#558](https://github.com/bitrix24/b24jssdk/issues/558)) ([931e79d](https://github.com/bitrix24/b24jssdk/commit/931e79d46a55bcb15f3f266b3f2f7da66ea097af)) +* **contributing:** retire the argument [#439](https://github.com/bitrix24/b24jssdk/issues/439) disproved, and refresh the counts ([#451](https://github.com/bitrix24/b24jssdk/issues/451)) ([ea6f38c](https://github.com/bitrix24/b24jssdk/commit/ea6f38ca74ca2102233053783910ad75ce6048b1)) +* **core:** agree where a JSDoc block ends, and cut the two longest ([#440](https://github.com/bitrix24/b24jssdk/issues/440)) ([cbdb6fe](https://github.com/bitrix24/b24jssdk/commit/cbdb6fe2766cc94880c6b97b6820a5fb34784f70)), closes [#420](https://github.com/bitrix24/b24jssdk/issues/420) +* **core:** measure the Filterable rule aggregate needs, and ask the portal about availability ([#525](https://github.com/bitrix24/b24jssdk/issues/525)) ([cfa5038](https://github.com/bitrix24/b24jssdk/commit/cfa503846c14a0c5e3d95186d6b9a8e624a8ff65)), closes [#467](https://github.com/bitrix24/b24jssdk/issues/467) +* **core:** say on getData() that next and total are not in it ([#513](https://github.com/bitrix24/b24jssdk/issues/513)) ([9ec9f45](https://github.com/bitrix24/b24jssdk/commit/9ec9f45f6500ed71461ac20d93dc220f0c4ba92a)) +* **frame:** state the portal-side contract for closing a slider app ([#449](https://github.com/bitrix24/b24jssdk/issues/449)) ([dd04808](https://github.com/bitrix24/b24jssdk/commit/dd04808125ea793805a264fa1270827280dd6bde)), closes [#328](https://github.com/bitrix24/b24jssdk/issues/328) +* give restApi:v3 its own REST error-code table ([#499](https://github.com/bitrix24/b24jssdk/issues/499)) ([527a010](https://github.com/bitrix24/b24jssdk/commit/527a01090487ae432167a66a79e65b4997727c61)) +* **migration:** cover the openSliderAppPage type change and the destroy fix in the v3 guide ([#583](https://github.com/bitrix24/b24jssdk/issues/583)) ([df3954b](https://github.com/bitrix24/b24jssdk/commit/df3954b1c69a61615d2e8d053bf03c4c2d5f48bd)) +* refresh the audited stamps the [#494](https://github.com/bitrix24/b24jssdk/issues/494) merge left behind ([#504](https://github.com/bitrix24/b24jssdk/issues/504)) ([b6c0452](https://github.com/bitrix24/b24jssdk/commit/b6c04527c0b2c36a4eaccfe84a1c59c92d10b950)) +* refresh the audited stamps the [#522](https://github.com/bitrix24/b24jssdk/issues/522) merge left behind ([#527](https://github.com/bitrix24/b24jssdk/issues/527)) ([8271772](https://github.com/bitrix24/b24jssdk/commit/827177251f514f5d758d2d667f5ea6a72741f689)) +* **releasing:** decide the release body does not mirror the changelog ([#434](https://github.com/bitrix24/b24jssdk/issues/434)) ([c339d75](https://github.com/bitrix24/b24jssdk/commit/c339d75f0f25ccebbb67680e33b4763cd7968be9)) +* **releasing:** write the community post about the reader, not about us ([#432](https://github.com/bitrix24/b24jssdk/issues/432)) ([8206b6e](https://github.com/bitrix24/b24jssdk/commit/8206b6ee3fbd490918d264d75e0ee1b901657e1e)) +* **skills:** point the filtering and recipes skills at the field-list guide ([#474](https://github.com/bitrix24/b24jssdk/issues/474)) ([a33d654](https://github.com/bitrix24/b24jssdk/commit/a33d654ecf6f0109cfc0a6111b146ec5502e4dd7)) +* the OpenAPI document follows installed modules, not granted scopes ([#490](https://github.com/bitrix24/b24jssdk/issues/490)) ([5ff774d](https://github.com/bitrix24/b24jssdk/commit/5ff774d2b7eaad0c2fee29846eca708723cf7eb5)) +* **v3:** correct the page-size cap and the batch ceiling, and re-measure the write shape ([#531](https://github.com/bitrix24/b24jssdk/issues/531)) ([75d73d2](https://github.com/bitrix24/b24jssdk/commit/75d73d29434818dfde0c055f0469e576a1285300)), closes [#465](https://github.com/bitrix24/b24jssdk/issues/465) +* **v3:** document *.field.list, and state the camelCase rule once ([#473](https://github.com/bitrix24/b24jssdk/issues/473)) ([9a70742](https://github.com/bitrix24/b24jssdk/commit/9a70742006fbec4376454bcad8ae7141c7780940)), closes [#466](https://github.com/bitrix24/b24jssdk/issues/466) + +### In detail + +The entries above are the commit subjects. What follows explains the ones +that need more than a line. + +#### ⚠ BREAKING CHANGES + * **`restApi:v3` errors are classified by response category, and the `classifyV3ErrorsByCategory` parameter is gone** (#480, completing #460). An error that arrived in the v3 error envelope carrying an HTTP **4xx other than @@ -132,7 +263,7 @@ `getTotal()`, `getNext()` and `fetchNext()`. They were once on this list; that plan was withdrawn in #408 and they stay for as long as `restApi:v2` does. -### Bug Fixes +#### Bug Fixes * **`B24OAuth` no longer builds request URLs with a double slash.** The portal sends `client_endpoint` with a trailing slash — `https:///rest/` — and @@ -231,7 +362,7 @@ Applies to `B24Hook` with a logger wired at `info`. Matching is case-insensitive and covers both API versions. -### Changed +#### Changed * **`AggregateResultV3` values are `string | number | null`, not `number`.** `AggregateV3` is `@experimental`, so this is a correction inside the `2.x` diff --git a/package.json b/package.json index 54ba6d69..56718762 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@bitrix24/b24jssdk-main", "description": "Bitrix24 REST API JS SDK", - "version": "2.2.0", + "version": "3.0.0", "author": "Bitrix", "packageManager": "pnpm@11.22.0", "repository": { diff --git a/packages/jssdk-nuxt/package.json b/packages/jssdk-nuxt/package.json index f3095919..bcd0587c 100644 --- a/packages/jssdk-nuxt/package.json +++ b/packages/jssdk-nuxt/package.json @@ -1,6 +1,6 @@ { "name": "@bitrix24/b24jssdk-nuxt", - "version": "2.2.0", + "version": "3.0.0", "author": "Bitrix", "license": "MIT", "description": "Bitrix24 REST API JS SDK for Nuxt", diff --git a/packages/jssdk/package.json b/packages/jssdk/package.json index 2addc537..cd5bbf24 100644 --- a/packages/jssdk/package.json +++ b/packages/jssdk/package.json @@ -1,6 +1,6 @@ { "name": "@bitrix24/b24jssdk", - "version": "2.2.0", + "version": "3.0.0", "author": "Bitrix", "license": "MIT", "description": "Bitrix24 REST API JavaScript SDK",