Repository navigation
Conversation
Xaxis
force-pushed
the
renovate/@orangecheck-0.x-minors
branch
from
November 12, 2026 02:18
8394f9a to
4279b91
Compare
Xaxis
force-pushed
the
renovate/@orangecheck-0.x-minors
branch
from
November 12, 2026 03:16
4279b91 to
5e2187a
Compare
Xaxis
force-pushed
the
renovate/@orangecheck-0.x-minors
branch
from
November 12, 2026 03:38
5e2187a to
0ce7a2e
Compare
Contributor
Author
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.
This PR contains the following updates:
^0.56.0→^0.59.0^0.12.0→^0.16.0Release Notes
orangecheck/oc-packages (@orangecheck/me-client)
v0.59.0Compare Source
Added
signInWithOcandsignInWithOcOutcomeanswer the popup'soc-signin-challengewithoc-signin-echoand the same nonce. They answeronly the popup they opened, and only at its origin. me.ochk.io will use it
to check that the page that opened the popup is the one named in
opener_originbefore it signs anything. A nonce that is not 16 to 128base64url characters gets no answer. The sign-in button gets it too.
Changed
OcPopupAccountsays thatdisplay_nameandnostr_npubare null forany site outside orangecheck's own (the family origins auth-core lists),
and
SCOPE_IDSsays that signing in gives such a site no name.v0.58.0Compare Source
Added
bearerTokenonoc.payment.authorize, for that call only, as onoc.event.fire.setBearerTokenholds one token for the whole process, so aserver serving many people passes each person's token per call instead. It
is sent as Authorization and never in the body.
setBearerTokenstill works.oc.scope.requestrefused:cross_integrator_lifetime_sats,cross_integrator_distinct_count,cross_integrator_oldest_event_at,cross_integrator_active_daysandtrust_attestations_bundle.Scopehas all twelve, andSCOPE_IDSexportsthem, frozen, in the order me.ochk.io lists them; a me.ochk.io test fails when
the two lists differ.
Deprecated
attest_tierscope, as me.ochk.io already marks it. ochk.app no longerasks for it, so a request for it asks the person nothing; a backed account
tells your site what backs it at sign-in. Old grants still resolve. The
oc.scopeexample asks foremailandbitcoin_addressinstead.Changed
WebhookPayload.scopesis keyed byScope, so it names the four cross-appscopes a delivery can carry beside the ones it already listed.
v0.57.0Compare Source
Deprecated
display_namescope. Signing in already gives your site the person'sdisplay name, so ochk.app no longer offers the scope and me.ochk.io resolves
it to nothing.
oc.scope.requeststill accepts it, so nothing that asks forit breaks; read the name from the sign-in instead.
Changed
OC_REVOCATION_FEED_TOKENunset, a family session (noaud) is nowunavailablewithreason: 'revocation_feed_unconfigured', and the adaptersanswer it 503 with that reason, where
checkOcSession,getOcSession,withOcAuth,ocAuthExpressandocAuthHonoused to throw (0.44.0). It isstill never read by its signature alone, reads and writes alike, and the
first one logs which setting is missing.
OcSessionUnavailablegains thereason.
Added
event.fireBatch's results can carrycode, aBatchRejectCodeto switch on, besidereasonin words. me.ochk.io sendsone on every rejected entry now; an older server sends
reasonalone, socodeis optional.Fixed
oc.scope.grantedworks for an integrator: call it from your backend withaccountId(the person's did:oc) andsigningSecret, and it signs thequestion the way me.ochk.io's scopes route checks it. With neither, it reads
the session the request carries, which only ochk.app's own pages have, so a
browser on your site gets 401. Either option without the other, or an
accountIdthat is not a did:oc, throws before any request.SessionandSessionPolicysay what me.ochk.io sends and takes:issued_at(the type saidopens_at, which never arrived),refresh'sliding' | 'rolling' | 'fixed'andsensitive_actions're-auth' | 'allow'. Code that readopens_atreadundefined; readissued_at.oc.session.*'s doc and the README say these calls work only fromochk.app's own pages.
detailnow carries them as theMeClientError'smessage: the event routes'project_auth_required401and any route's
row_busy503. The message used to be the bare code.reasonstill comes first, and the code is the fallback when the body hasno words.
family.scopes' doc names its 401 by the code me.ochk.io sends,sign_in_required, not the old words.orangecheck/oc-packages (@orangecheck/site-kit)
v0.16.0Compare Source
New entry
./session-recheck, for the browser.recheckOnSeveralSessions(status, body)says whether a write's answer was 401
several_sessionsand, when it was,asks the page to read its session again.
useSessionRecheck(refresh), mountedonce inside the session provider with its
refresh, does that read. The pagethen shows the account the browser sends now. Nothing sends the write again.
v0.15.0Compare Source
The session reader passes the request's method to auth-core 2.30.0, so a
write that carries more than one
oc_sessioncookie and no per-tab tokenresolves to no session, with reason
several_sessions. Reads, a write withone cookie and a write pinned to a tab read as before. The auth-core peer
range is now
^2.30.0: an older auth-core reads such a write's firstcookie.
A site whose own reader refuses such a write can answer it with a way out.
answerSeveralSessions(req, res)answers 401{ ok: false, reason: 'several_sessions' }, no-store, with a clear for everystray
oc_sessionthe request's path carried: host-only cookies at everyprefix of the path, and cookies at the auth host's domain (
OC_AUTH_ISSUER'shost, when the request's host sits under it) at every prefix but
/. Thecookie at that domain and
/stays, so the same request sent again carriesone cookie. A reader throws
SeveralSessionsandanswersUnverifiedanswersit that way.
severalSessionsRefused(req)says whether a request is one therule refuses, and
strayCookieClears(url, domain)gives the clears alone.After that 401 a page reads the session again and shows it before the person
sends the write again: the cookie left can be another account than the one the
page showed.
v0.14.0Compare Source
A site that holds a person's data can answer every API route the way its
/api/auth/meanswers while the auth host's list of ended sessions can'tvouch for a session. Its session reader throws
SessionUnverified, and aroute exported through
answersUnverified(handler)answers that with 503{ ok: false, error: 'session_unverified' },Retry-After: 60andCache-Control: no-store, private, for a read as for a write; any othererror passes through, and so does
SessionUnverifiedonce the route hasstarted its answer.
answerSessionUnverified(res)writes the same answer,and
createMeHandlernow writes its 503 through it.v0.13.0Compare Source
A site that holds a person's data can refuse reads too while the auth
host's list of ended sessions can't vouch for a session.
createSessionReader({ refuseUnverifiedReads: true })refuses every methodwith reason
unverifiedin that state, andcreateMeHandleranswers thatreason with 503
{ ok: false, error: 'session_unverified' },Retry-After: 60and no-store, for a cookie or a per-tab token alike,without asking the fallback. auth-client reads the 503 as an error and keeps
the account and the tab's pin. A reader made without the option is
unchanged: reads pass, writes are refused.
Configuration
📅 Schedule: (in timezone UTC)
* 2-9 * * *)🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Mend Renovate CLI.