Repository navigation
v3.13.0
What's Changed
- ci(release): wait for a dependency published earlier in the same tools release by @b3hr4d in #468
- fix(release): sync example versions before a tools release updates the lockfile by @b3hr4d in #467
- feat(react): support @icp-sdk/auth v10 alongside v8 by @b3hr4d in #469
- test(react): run the real-AuthClient suite against @icp-sdk/auth v10 as well as v8 by @b3hr4d in #474
- fix(react): require @tanstack/react-query 5.90.2, and test every package at its peer floors by @b3hr4d in #476
- fix(react): decode Internet Identity's attribute message by its type by @b3hr4d in #487
- fix(react): build one AuthClient when several callers prepare it at once by @b3hr4d in #489
- fix(react): sign out locally when logout fails after the client let go by @b3hr4d in #488
- fix(react): settle login state before a failed sign-in's onError runs by @b3hr4d in #490
- fix(react): keep a sign-in that completed when the attribute request fails by @b3hr4d in #491
- fix(react): ignore an ic_env cookie that is not valid percent-encoding by @b3hr4d in #492
- fix(core): build a recursive type's display codec once instead of once per node by @b3hr4d in #495
- fix(core): display opt opt T's some(none) as null so it differs from none by @b3hr4d in #496
- fix(core): fetch a query from the canister its key names by @b3hr4d in #520
- fix(core): construct a ClientManager where the page has no usable origin by @b3hr4d in #521
- fix(core): invalidate the canister invalidateQueries was asked about by @b3hr4d in #522
- fix(core): treat every loopback address as a local replica by @b3hr4d in #523
- fix(core): let one unsubscribe remove only its own subscription by @b3hr4d in #524
- fix(react): apply getKeyArgs in the infinite-query hooks by @b3hr4d in #532
- fix(react): don't report placeholder data to useActorMethod's onSuccess by @b3hr4d in #533
- fix(react): pass a query factory's networkMode, retry, retryDelay and meta to fetch() and prefetch() by @b3hr4d in #534
- fix(codegen): pass createActorHooks its type arguments for the candid reactor classes by @b3hr4d in #535
- fix(vite-plugin): regenerate every entry that shares a canister name by @b3hr4d in #536
- fix(cli): stop generate --clean deleting a configured canister reached by another path by @b3hr4d in #537
- fix(parser): return service: null from parseDid when the Candid declares none by @b3hr4d in #538
- fix(core): poll an update call whose sync certificate does not list it yet by @b3hr4d in #519
- fix(core): leave the caller's agentOptions untouched by @b3hr4d in #527
- fix(candid): accept only hex text and 0-255 bytes in blob field schemas by @b3hr4d in #551
- fix(candid): resolve display-transformed arrays the way their Candid form resolves by @b3hr4d in #554
- ci(e2e): pin the network launcher so starting the network needs no GitHub API call by @b3hr4d in #556
- fix(candid): read every type declaration before a registerMethod signature by @b3hr4d in #548
- fix(candid): say why neither Candid source could be fetched by @b3hr4d in #549
- fix(candid): reject float text the display codec cannot send by @b3hr4d in #550
- fix(candid): describe empty as a type with no values in both form visitors by @b3hr4d in #552
- fix(core): treat a field named constructor or toString as absent when left out by @b3hr4d in #493
- fix(core): send a one-element opt vec of pairs instead of misreading it as the wrapper by @b3hr4d in #494
- fix(core): retry initializeAgent after a subscriber throws while it starts by @b3hr4d in #525
- fix(core): give query keys one encoding per argument value by @b3hr4d in #526
- fix(core): unwrap only Result variants, not records with an ok or err field by @b3hr4d in #528
- fix(core): build display codecs for a method typed by a recursive func alias by @b3hr4d in #568
- fix(react): fetch an infinite query's pages from the canister its key names by @b3hr4d in #567
- fix(core): serialize CanisterError, CallError and ValidationError with BigInts by @b3hr4d in #529
- fix(react): mount the reactor's QueryClient while a hook uses it by @b3hr4d in #531
- fix(candid): describe func and service references in arguments as values by @b3hr4d in #547
- fix(candid): register a whole service definition however it is spaced by @b3hr4d in #553
- fix(react): key useActorMutation's mutations like the other mutation paths by @b3hr4d in #570
- docs: describe v10's real-client coverage and state the TanStack floor by @b3hr4d in #572
- fix(cli): init -y writes the clientManagerPath that reaches src/clients.ts by @b3hr4d in #573
- fix(react): tell v10 apps to serve the II frontend when local II has none by @b3hr4d in #574
- fix(parser): keep a Candid name spelled proto in didToJs output by @b3hr4d in #575
- fix(react): keep useActorMethod's call stable and report call(ownArgs) once by @b3hr4d in #530
- docs(react): fix the invalidation, getArgs and staleTime docs (#562) by @b3hr4d in #577
- fix(candid): close a quoted name that ends in an escaped backslash (#576) by @b3hr4d in #579
- test(react): clear the signer heartbeat's timers when the fake II provider is restored (#580) by @b3hr4d in #581
- test(e2e): run each reactor class against a typed canister on the replica (#569) by @b3hr4d in #585
- fix(core): run the validator of a method that takes no arguments (#582) by @b3hr4d in #586
- fix(core): observe an async validator's promise when callMethod() refuses it (#583) by @b3hr4d in #587
- fix(react): keep validation issues on fields named like Object.prototype members (#584) by @b3hr4d in #588
- docs: an empty opt displays as undefined, not null (#589) by @b3hr4d in #590
- fix(core): resolve the display type of a type that contains itself, such as Motoko's List (#566) by @b3hr4d in #594
- docs(core): describe fetchQuery as cache-first (#595) by @b3hr4d in #596
- fix(react,core): validation helpers take general options and find root and index issues (#592) by @b3hr4d in #597
- fix(react): honour useActorMethod options in call(args), and skip initialData in onSuccess (#564 items 4, 5) by @b3hr4d in #598
- fix(core): resolve a recursive func alias to its func in getFuncClass (#608) by @b3hr4d in #612
- fix(candid): initialize the metadata reactors when a method is a recursive func alias (#601) by @b3hr4d in #613
- fix(candid): register one method at a time, and give each metadata reactor its own visitors (#602, #607) by @b3hr4d in #614
- fix(candid): wait for the parser a concurrent parse is already loading (#603) by @b3hr4d in #615
- fix(candid): read a value type that ends in a line comment (#604) by @b3hr4d in #616
- fix(candid): offer the members of a recursive result as variable candidates (#605) by @b3hr4d in #617
- fix(candid): accept a request path in a url field's schema (#606) by @b3hr4d in #618
- fix(react): restore the session once per AuthenticationManager, not per useAuth() (#619) by @b3hr4d in #624
- fix(react): give the auth hooks a fixed server snapshot, so late hydration matches (#620) by @b3hr4d in #625
- fix(react): unsubscribe only the registration subscribeAuthState returned (#623) by @b3hr4d in #626
- docs, ci: state TypeScript 5.7 as the floor and check the declarations compile there (#591) by @b3hr4d in #627
- fix(candid): quote the method name in the service registerMethod builds (#635) by @b3hr4d in #636
- fix(core,candid): refuse blob hex with an odd number of digits instead of padding it (#628) by @b3hr4d in #648
- fix(parser): print U+0000 in a name as a \u escape, not an octal one (#629) by @b3hr4d in #649
- fix(candid): keep "export " inside Candid names when evaluating a definition (#630) by @b3hr4d in #650
- fix(core): fetch a local replica's root key before the first call (#637) by @b3hr4d in #651
- fix(core): notify every ClientManager subscriber, and never with a replaced value (#638) by @b3hr4d in #652
- fix(core): clear isInitialized when an initializeAgent attempt fails (#639) by @b3hr4d in #653
- fix(core): recognise errors thrown by another copy of the package (#640) by @b3hr4d in #654
- fix(core): verify synchronous update responses with pollingOptions.blsVerify (#641) by @b3hr4d in #655
- fix(core): pin an anonymous update call's polls before the first sign-in (#645) by @b3hr4d in #656
- docs(candid): make the metadata reactor examples run as written (#609) by @b3hr4d in #657
- fix(candid): metadata lookups return only a method's own entry, and keep a proto field (#610) by @b3hr4d in #658
- fix(vite-plugin): regenerate a saved .did under vite build --watch, without a rebuild loop (#660) by @b3hr4d in #667
- fix(vite-plugin): generate a .did that appears during vite dev, and regenerate with hmr off (#661) by @b3hr4d in #668
- fix(codegen): format the generated reactor files, and stop rewriting them once formatted (#662) by @b3hr4d in #669
- fix(cli): report --canister names like toString as not found (#663) by @b3hr4d in #670
- fix(cli): read an ic-reactor.json saved with a byte order mark (#665) by @b3hr4d in #671
- fix(candid): close the remaining Object.prototype-name gaps (#659) by @b3hr4d in #672
- fix(codegen): don't rewrite generated files whose bytes are unchanged (#666 items 1-3) by @b3hr4d in #673
- docs(ai-context): fix llms-full and skill snippets that throw, mistype or mislabel (#674) by @b3hr4d in #680
- docs(react): fix the server-component SSR example and the v10 idle example (#675) by @b3hr4d in #681
- docs(core): fix the Quick Start reactor and the query-key section (#676) by @b3hr4d in #682
- docs(cli): document the per-canister canisterId the generated reactor needs (#677) by @b3hr4d in #683
- docs(candid, parser): fix validateIDL's contract, a strict-mode snippet and two install lines (#678) by @b3hr4d in #684
- docs: fix docs-site snippets, the v8-only idleOptions JSDoc and stale example headers (#685 items 1-3) by @b3hr4d in #687
- fix(core): type CanisterError.details as the Err type's own details field (#685 item 4) by @b3hr4d in #688
- docs: drop the tanstack-router example's stale CLI config, and fix two descriptions (#689, #691) by @b3hr4d in #692
- docs: make the suspense, useActorMethod and useAuth reference pages match the hooks (#693) by @b3hr4d in #701
- docs: fix the query and mutation factory pages' snippets and claims (#694) by @b3hr4d in #702
- docs: fix snippets and root-key, fallback and size claims in getting-started, guides and framework pages (#695) by @b3hr4d in #703
- docs: describe ClientManager's ic_env trust and root-key fetch as the code does (#696) by @b3hr4d in #704
- docs(candid): fix candid page snippets and JSDoc that fail tsc (#697) by @b3hr4d in #705
- docs: make the example pages match their examples (#698) by @b3hr4d in #706
- docs(react,core): fix JSDoc examples that name functions and hooks that don't exist (#699) by @b3hr4d in #707
- docs: the auth hooks' server snapshot no longer reads a shared manager (#708) by @b3hr4d in #709
- docs: align the Next.js page and the hooks skill with #709's AuthenticationManager wording (#710) by @b3hr4d in #711
- fix(candid): report a rejected query's reject, not a BigInt TypeError (#712) by @b3hr4d in #714
- docs(core): say that initialize() replaces a supplied root key on a local host (#713) by @b3hr4d in #715
- test(candid): retry the mainnet e2e tests (#716) by @b3hr4d in #717
- fix(core): let getIssuesForPath("") find whole-argument issues (#721) by @b3hr4d in #723
- fix(react): notify every auth state subscriber when one of them throws (#725) by @b3hr4d in #730
- fix(react): do not sign with a lapsed session when built over a caller's client (#728) by @b3hr4d in #733
- fix(core): verify query signatures for mainnet in a development build (#718) by @b3hr4d in #722
- fix(core): route a web worker's ClientManager like the page that started it (#720) by @b3hr4d in #724
- fix(codegen): read a .did saved with a UTF-8 byte order mark (#734) by @b3hr4d in #739
- fix(codegen): refuse a didFile inside the generated declarations directory instead of deleting it (#736) by @b3hr4d in #741
- fix(react): keep a signed-out user off the agent when their attribute request resolves (#726) by @b3hr4d in #731
- fix(react): show identity attributes only to the session they belong to (#727) by @b3hr4d in #732
- fix(parser): keep Candid types named like the bindings' imports from breaking them (#735) by @b3hr4d in #740
- fix(core): sweep the cache once per identity switch, not once per canister (#742) by @b3hr4d in #749
- fix(candid): build one result node per recursive type and label, not per value (#743) by @b3hr4d in #750
- fix(react): give the auth hooks a stable subscribe function (#744) by @b3hr4d in #751
- fix(core): call nested display codecs directly, not through zod's parser (#747) by @b3hr4d in #752
- fix(react): end a lapsed v10 session in this tab only (#753) by @b3hr4d in #756
- fix(core): key a blob argument by its bytes, whatever form it is passed in (#748) by @b3hr4d in #757
- fix(parser): rename a service type named like a JavaScript keyword (#738) by @b3hr4d in #758
- fix(react): sign a v8 tab out when its own delegation lapsed, though another tab signed in (#755) by @b3hr4d in #759
- fix(react): do not report a v8 tab signed in as the anonymous principal (#760) by @b3hr4d in #763
- fix(core): key DisplayReactor args by the value they send, not the form given (#761, #762) by @b3hr4d in #764
- fix(core): key a refused argument so it never matches a valid call (#765) by @b3hr4d in #766
- fix(core): give each polled request its own counter, clock and timeout (#563) by @b3hr4d in #578
- fix(react): await useActorMethod's invalidation before onSuccess (#564 item 3, design) by @b3hr4d in #599
- fix(react): run createMutation's execute() in the MutationCache (#564 item 1, design) by @b3hr4d in #600
Full Changelog: v3.12.5...v3.13.0