@atproto/oauth-provider-ui 0.7.2 → 0.7.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/account-page-BWtTrJit.js +24 -0
- package/dist/account-page-BWtTrJit.js.map +1 -0
- package/dist/admonition-PcOMNxHc.js +59 -0
- package/dist/admonition-PcOMNxHc.js.map +1 -0
- package/dist/authorization-page-BrCP1UEq.js +2 -0
- package/dist/authorization-page-BrCP1UEq.js.map +1 -0
- package/dist/bundle-manifest.json +39 -39
- package/dist/button-cooldown-Cek48u1l.js +64 -0
- package/dist/button-cooldown-Cek48u1l.js.map +1 -0
- package/dist/{cookie-error-page-DNM0z2Cb.js → cookie-error-page-QWOGgXmH.js} +2 -2
- package/dist/{cookie-error-page-DNM0z2Cb.js.map → cookie-error-page-QWOGgXmH.js.map} +1 -1
- package/dist/error-page-BEjdpIQ7.js +2 -0
- package/dist/error-page-BEjdpIQ7.js.map +1 -0
- package/dist/error-view-BzJJuW_V.js +2 -0
- package/dist/error-view-BzJJuW_V.js.map +1 -0
- package/dist/messages--aCokQ6a.js +2 -0
- package/dist/messages--aCokQ6a.js.map +1 -0
- package/dist/messages-BaWkJYfB.js +2 -0
- package/dist/messages-BaWkJYfB.js.map +1 -0
- package/package.json +7 -8
- package/dist/account-page-DEDJt1AQ.js +0 -24
- package/dist/account-page-DEDJt1AQ.js.map +0 -1
- package/dist/admonition-D93KEqWM.js +0 -59
- package/dist/admonition-D93KEqWM.js.map +0 -1
- package/dist/authorization-page-BCJINyL_.js +0 -2
- package/dist/authorization-page-BCJINyL_.js.map +0 -1
- package/dist/error-page-Wul5BkHY.js +0 -2
- package/dist/error-page-Wul5BkHY.js.map +0 -1
- package/dist/error-view-DTevFrK5.js +0 -2
- package/dist/error-view-DTevFrK5.js.map +0 -1
- package/dist/index-DrKxiTaW.js +0 -64
- package/dist/index-DrKxiTaW.js.map +0 -1
- package/dist/messages-B-lnG-tF.js +0 -2
- package/dist/messages-B-lnG-tF.js.map +0 -1
- package/dist/messages-DwlQkdxq.js +0 -2
- package/dist/messages-DwlQkdxq.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{f as a,j as e,r as o,C as s,g as c,L as l,A as d,T as r,B as x}from"./admonition-
|
|
2
|
-
//# sourceMappingURL=cookie-error-page-
|
|
1
|
+
import{f as a,j as e,r as o,C as s,g as c,L as l,A as d,T as r,B as x}from"./admonition-PcOMNxHc.js";const{__continueUrl:m,__customizationData:u}=window,j=document.getElementById("root");a.createRoot(j).render(e.jsx(o.StrictMode,{children:e.jsx(s,{value:u,children:e.jsx(c,{children:e.jsx(p,{})})})}));function p(){const t=new URL(m);return e.jsx(l,{title:{id:"MLyLW8"},children:e.jsxs("form",{action:t.origin,method:"GET",className:"w-xl flex flex-col gap-4",children:[Array.from(new Map(t.searchParams)).map(([i,n])=>e.jsx("input",{type:"hidden",name:i,value:n},i)),e.jsx(d,{role:"alert",variant:"warning",title:e.jsx(r,{id:"MLyLW8"}),children:e.jsx(r,{id:"D2aJ64",values:{0:t.hostname}})}),e.jsx("div",{className:"flex flex-wrap items-center justify-end",children:e.jsx(x,{type:"submit",color:"primary",children:e.jsx(r,{id:"xGVfLh"})})})]})})}
|
|
2
|
+
//# sourceMappingURL=cookie-error-page-QWOGgXmH.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookie-error-page-
|
|
1
|
+
{"version":3,"file":"cookie-error-page-QWOGgXmH.js","sources":["../src/cookie-error-page.tsx"],"sourcesContent":["import './style.css'\n\nimport { msg } from '@lingui/core/macro'\nimport { Trans } from '@lingui/react/macro'\nimport { StrictMode } from 'react'\nimport { createRoot } from 'react-dom/client'\nimport { Button } from '#/components/forms/button.tsx'\nimport { Admonition } from '#/components/utils/admonition.tsx'\nimport { CustomizationProvider } from '#/contexts/customization.tsx'\nimport type { HydrationData } from '#/hydration-data.d.ts'\nimport { LocaleProvider } from '#/locales/locale-provider.tsx'\nimport { LayoutApp } from './components/layouts/layout-app.js'\n\nconst {\n //\n __continueUrl: continueUrl,\n __customizationData: customizationData,\n} = window as typeof window & HydrationData['cookie-error-page']\n\nconst container = document.getElementById('root')!\n\ncreateRoot(container).render(\n <StrictMode>\n <CustomizationProvider value={customizationData}>\n <LocaleProvider>\n <CookieErrorView />\n </LocaleProvider>\n </CustomizationProvider>\n </StrictMode>,\n)\n\nfunction CookieErrorView() {\n const url = new URL(continueUrl)\n\n return (\n <LayoutApp title={msg`Cookie Error`}>\n <form\n action={url.origin}\n method=\"GET\"\n className=\"w-xl flex flex-col gap-4\"\n >\n {Array.from(new Map(url.searchParams)).map(([key, value]) => (\n <input key={key} type=\"hidden\" name={key} value={value} />\n ))}\n\n <Admonition\n role=\"alert\"\n variant=\"warning\"\n title={<Trans>Cookie Error</Trans>}\n >\n <Trans>\n It seems that your browser is not accepting cookies. Press\n \"Continue\" to try again. If the error persists, please ensure that\n your privacy settings allow cookies for the \"{url.hostname}\"\n website.\n </Trans>\n </Admonition>\n\n <div className=\"flex flex-wrap items-center justify-end\">\n <Button type=\"submit\" color=\"primary\">\n <Trans>Continue</Trans>\n </Button>\n </div>\n </form>\n </LayoutApp>\n )\n}\n"],"names":["__continueUrl","continueUrl","__customizationData","customizationData","window","container","document","getElementById","createRoot","render","_jsx","StrictMode","CustomizationProvider","value","LocaleProvider","CookieErrorView","url","URL","LayoutApp","title","form","action","origin","method","className","Array","from","Map","searchParams","map","key","input","type","name","Admonition","role","variant","Trans_","hostname","div","Button","color"],"mappings":"qGAaA,KAAM,CAEJA,cAAeC,EACfC,oBAAqBC,GACnBC,OAEEC,EAAYC,SAASC,eAAe,MAAA,EAE1CC,EAAAA,WAAWH,CAAAA,EAAWI,OACpBC,EAAAA,IAACC,EAAAA,WAAAA,CACC,eAACC,EAAAA,CAAsBC,MAAOV,EAC5B,eAACW,EAAAA,CACC,SAAAJ,EAAAA,IAACK,EAAAA,CAAAA,CAAAA,SAMT,SAASA,GAAAA,CACDC,MAAAA,EAAM,IAAIC,IAAIhB,CAAAA,EAEpB,aACGiB,EAAAA,CAAUC,MAAK,cACd,gBAACC,OAAAA,CACCC,OAAQL,EAAIM,OACZC,OAAO,MACPC,UAAU,qCAETC,MAAMC,KAAK,IAAIC,IAAIX,EAAIY,YAAY,CAAA,EAAGC,IAAI,CAAC,CAACC,EAAKjB,CAAAA,UAC/CkB,QAAAA,CAAgBC,KAAK,SAASC,KAAMH,EAAKjB,MAAAA,CAA9BiB,EAAAA,CAAAA,CAAAA,QAGbI,EAAAA,CACCC,KAAK,QACLC,QAAQ,UACRjB,YAAOkB,EAAA,8BAEPA,EAAA,qBAGgDrB,EAAAA,EAAIsB,QAAAA,YAKrDC,MAAAA,CAAIf,UAAU,0CACb,eAACgB,EAAAA,CAAOR,KAAK,SAASS,MAAM,yBAC1BJ,EAAA,uBAMZ"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{f as t,j as r,r as a,C as e,g as s}from"./admonition-PcOMNxHc.js";import{p as i,E as n}from"./error-view-BzJJuW_V.js";const{__errorData:o,__customizationData:c}=window,d=i(o),m=document.getElementById("root");t.createRoot(m).render(r.jsx(a.StrictMode,{children:r.jsx(e,{value:c,children:r.jsx(s,{children:r.jsx(n,{error:d??o})})})}));
|
|
2
|
+
//# sourceMappingURL=error-page-BEjdpIQ7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-page-BEjdpIQ7.js","sources":["../src/error-page.tsx"],"sourcesContent":["import './style.css'\n\nimport { StrictMode } from 'react'\nimport { createRoot } from 'react-dom/client'\nimport { ErrorView } from '#/components/error-view.tsx'\nimport { CustomizationProvider } from '#/contexts/customization'\nimport type { HydrationData } from '#/hydration-data.d.ts'\nimport { parseApiErrorPayload } from '#/lib/api.ts'\nimport { LocaleProvider } from '#/locales/locale-provider.tsx'\n\nconst {\n //\n __errorData: errorData,\n __customizationData: customizationData,\n} = window as typeof window & HydrationData['error-page']\n\n// Attempt to turn the error data into an actual error instance if the error\n// data has the shape of an API error response. This will allow the ErrorView to\n// display the right error details and messages for known API errors.\nconst error = parseApiErrorPayload(errorData)\n\nconst container = document.getElementById('root')!\n\ncreateRoot(container).render(\n <StrictMode>\n <CustomizationProvider value={customizationData}>\n <LocaleProvider>\n <ErrorView error={error ?? errorData} />\n </LocaleProvider>\n </CustomizationProvider>\n </StrictMode>,\n)\n"],"names":["__errorData","errorData","__customizationData","customizationData","window","error","parseApiErrorPayload","container","document","getElementById","createRoot","render","_jsx","StrictMode","CustomizationProvider","value","LocaleProvider","ErrorView"],"mappings":"6HAUA,KAAM,CAEJA,YAAaC,EACbC,oBAAqBC,GACnBC,OAKEC,EAAQC,EAAqBL,CAAAA,EAE7BM,EAAYC,SAASC,eAAe,MAAA,EAE1CC,EAAAA,WAAWH,CAAAA,EAAWI,OACpBC,EAAAA,IAACC,EAAAA,WAAAA,CACC,eAACC,EAAAA,CAAsBC,MAAOZ,EAC5B,eAACa,EAAAA,CACC,eAACC,EAAAA,CAAUZ,MAAOA,GAASJ"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as i,c as q,T as f,u as I,r as S,A as N,e as U,L as F}from"./admonition-PcOMNxHc.js";const D=Object.freeze(["syntax","domain","slur","taken","reserved","resolution","unsupported"]),J=s=>D.includes(s),V=(s=document.cookie)=>Object.fromEntries(s.split(";").filter(Boolean).map(e=>e.split("=",2).map(r=>decodeURIComponent(r.trim()))));function M(s,e=document.cookie){return V(e)[s]}class K{constructor(e,r){this.baseUrl=e,this.options=r}async fetch(e,r,t,n){var a,o,l,p,E,c,y,_,j;try{const h=new URL(`${this.baseUrl}${r}`);if(e==="GET"&&t)for(const[k,C]of Object.entries(t))h.searchParams.set(k,C);const m=e==="POST"?JSON.stringify(t):void 0,O=new Headers(await((o=(a=this.options)==null?void 0:a.headers)==null?void 0:o.call(a)));m&&!O.has("content-type")&&O.set("content-type","application/json");const d=await fetch(h,{method:e,headers:O,mode:"same-origin",body:m,signal:n==null?void 0:n.signal});if(d.status===204)return;const T=d.headers.get("content-type");if(T!=="application/json")throw await((l=d.body)==null?void 0:l.cancel()),new Error(`Invalid content type "${T}"`,{cause:d});const w=await d.json();if(!d.ok)throw((p=n==null?void 0:n.parseError)==null?void 0:p.call(n,d,w))||this.parseError(d,w);return(y=(c=(E=this.options)==null?void 0:E.onFetchSuccess)==null?void 0:c[r])==null||y.call(null,{payload:w,method:e,input:t,options:n}),w}catch(h){const m={method:e,path:r,input:t,options:n};throw console.warn("API request failed",h,m),(j=(_=this.options)==null?void 0:_.onFetchError)==null||j.call(null,h,m),h}}parseError(e,r){return new v(r)}}class v extends Error{constructor(e,r="Unknown JSON error response",t){super(r,t),this.name="JsonErrorResponse",this.msg={id:"Jja+Vn"},this.payload=e}}const L="csrf-token",z="x-csrf-token",$="/@atproto/oauth-provider/~api";class de extends K{constructor(e){const r=new URL($,window.origin).toString();super(r,{...e,headers:async function(){var a;const t=new Headers(await((a=e==null?void 0:e.headers)==null?void 0:a.call(this))),n=M(L);return n&&t.set(z,n),t}}),this.locale=e.locale}async signIn({username:e,password:r,emailOtp:t,remember:n,locale:a=this.locale},o){return this.fetch("POST","/sign-in",{username:e,password:r,emailOtp:t,remember:n,locale:a},o)}async initiatePasswordReset({email:e,locale:r=this.locale},t){await this.fetch("POST","/reset-password-request",{email:e,locale:r},t)}async accountSessions({sub:e},r){return this.fetch("GET","/account-sessions",{sub:e},r)}async revokeAccountSession({sub:e,deviceId:r},t){return this.fetch("POST","/revoke-account-session",{sub:e,deviceId:r},t)}async oauthSessions({sub:e},r){return this.fetch("GET","/oauth-sessions",{sub:e},r)}async revokeOAuthSession({sub:e,tokenId:r},t){return this.fetch("POST","/revoke-oauth-session",{sub:e,tokenId:r},t)}async confirmResetPassword({token:e,password:r},t){await this.fetch("POST","/reset-password-confirm",{token:e,password:r},t)}async validateHandleAvailability({handle:e},r){await this.fetch("POST","/verify-handle-availability",{handle:e},r)}async updateEmailRequest({sub:e,locale:r=this.locale},t){return this.fetch("POST","/update-email-request",{sub:e,locale:r},t)}async updateEmailConfirm({sub:e,token:r,email:t,locale:n=this.locale},a){await this.fetch("POST","/update-email-confirm",{sub:e,token:r,email:t,locale:n},a)}async verifyEmailRequest({sub:e,locale:r=this.locale},t){await this.fetch("POST","/verify-email-request",{sub:e,locale:r},t)}async verifyEmailConfirm({sub:e,token:r,email:t},n){await this.fetch("POST","/verify-email-confirm",{sub:e,token:r,email:t},n)}async updateHandle({sub:e,handle:r},t){return this.fetch("POST","/update-handle",{sub:e,handle:r},t)}async signUp({locale:e=this.locale,handle:r,email:t,password:n,inviteCode:a,hcaptchaToken:o},l){return this.fetch("POST","/sign-up",{locale:e,handle:r,email:t,password:n,inviteCode:a,hcaptchaToken:o},l)}async signOut({sub:e},r){return this.fetch("POST","/sign-out",{sub:e},r)}async consent(e,r,t){return this.fetch("POST","/consent",{sub:e,scope:r},t)}async reject(e){return this.fetch("POST","/reject",{},e)}parseError(e,r){return H(r)??super.parseError(e,r)}}function H(s){if(B(s)){for(const e of[se,W,ee,X,A,re,Y,G,g,P])if(e.is(s))return new e(s);return new u(s)}}function B(s,e){return s!=null&&typeof s=="object"&&typeof s.error=="string"&&e===void 0&&(s.error_description===void 0||typeof s.error_description=="string")}class u extends v{constructor(e,r=e.error_description,t){super(e,r||`OAuth Error "${e.error}"`,t),this.name="OAuthErrorResponse",this.msg=u.getMessageForError(e.error)}static getMessageForError(e){switch(e){case"server_error":return{id:"BJ8t7d"};default:return{id:"byKna+"}}}}class G extends u{constructor(e){super(e,e.error_description||"Unauthorized"),this.msg={id:"5OVfoe"}}static is(e){return e.error==="unauthorized"}}class P extends u{constructor(e,r=e.error_description){super(e,r||"Access denied"),this.msg={id:"oYKcFO"}}static is(e){return e.error==="access_denied"}}class g extends u{constructor(e,r=e.error_description){super(e,r||"Invalid request"),this.msg={id:"qrCiCk"}}static is(e){return e.error==="invalid_request"}}class A extends u{constructor(e,r=e.error_description){super(e,r||"Handle unavailable"),this.msg=A.getMessageForReason(e.reason)}static getMessageForReason(e){switch(e){case"syntax":return{id:"C24/JK"};case"domain":return{id:"qDdKKD"};case"slur":return{id:"AQ3Zbm"};case"reserved":return{id:"3j7n8v"};case"taken":return{id:"AXlE0K"};case"resolution":return{id:"E/Pt37"};case"unsupported":return{id:"qfnQHD"}}}static is(e){return e.error==="handle_unavailable"&&J(e.reason)}}const Z=Object.freeze(["emailOtp"]),Q=s=>Z.includes(s);class W extends u{constructor(e,r=e.error_description){const{type:t,hint:n}=e;super(e,r||`${t} auth factor required (hint: ${n})`),this.msg={id:"HJQIko",values:{hint:n}}}get type(){return this.payload.type}get hint(){return this.payload.hint}static is(e){return e.error==="second_authentication_factor_required"&&Q(e.type)&&typeof e.hint=="string"}}class X extends g{constructor(e){super(e),this.msg={id:"+lWheC"}}static is(e){return super.is(e)&&e.error_description!=null&&e.error_description.startsWith("This invite code is invalid.")}}class Y extends P{constructor(){super(...arguments),this.msg={id:"5OVfoe"}}static is(e){return super.is(e)&&e.error_description==="This request has expired"}}class ee extends g{constructor(){super(...arguments),this.msg={id:"jSVjfa"}}static is(e){return super.is(e)&&e.error_description==="Invalid identifier or password"}}class se extends g{constructor(){super(...arguments),this.msg={id:"5OVfoe"}}static is(e){return super.is(e)&&e.error_description==="Unknown request_uri"}}class re extends g{constructor(){super(...arguments),this.msg={id:"SZKM0t"}}static is(e){return super.is(e)&&e.error_description==="Email already taken"}}function le(s,e,r){if(!s)return[e];const t=s.findIndex(r);return t===-1?[...s,e]:[...s.slice(0,t),e,...s.slice(t+1)]}function R(s){try{return JSON.stringify(s,null,2)}catch{return}}function te(s){if(s instanceof u)return{name:s.name,code:s.payload.error,message:s.payload.error_description,payload:R(s.payload),description:ne(s)}}function ne(s){if(s instanceof v)return s.msg}function ie(s,e,{checkForDefaultPrevented:r=!0}={}){return function(n){if(s==null||s(n),r===!1||!n.defaultPrevented)return e==null?void 0:e(n)}}function ae(s){return s instanceof Error?{name:s.name,message:s.message,stack:s.stack}:typeof s=="string"?{message:s}:{payload:R(s)}}function ce({name:s,code:e,message:r,payload:t,stack:n,className:a,...o}){return i.jsxs("dl",{className:q("mt-2 grid max-w-full grid-cols-[auto_1fr] gap-x-2 text-sm",a),...o,children:[s&&i.jsx(x,{label:i.jsx(f,{id:"Aw7BNz"}),children:i.jsx("code",{children:s})}),e&&i.jsx(x,{label:i.jsx(f,{id:"Gt+Z/D"}),children:i.jsx("code",{children:e})}),r&&i.jsx(x,{label:i.jsx(f,{id:"FTdsAu"}),children:r}),t&&i.jsx(x,{label:i.jsx(f,{id:"IHV30b"}),children:i.jsx("code",{className:"max-h-[200px] overflow-auto",children:i.jsx("pre",{children:t})})}),n&&i.jsx(x,{label:i.jsx(f,{id:"ZJUDum"}),children:i.jsx("code",{className:"max-h-[200px] overflow-auto",children:i.jsx("pre",{children:n})})})]})}function x({children:s,label:e}){return i.jsxs(i.Fragment,{children:[i.jsx("dt",{className:"font-semibold",children:e}),i.jsx("dd",{children:s})]})}function b({error:s,reset:e,parser:r,children:t,onClick:n,...a}){const{_:o}=I(),[l,p]=S.useState(0),E=(l/5|0)%2===1,c=S.useMemo(()=>(r==null?void 0:r(s))??ae(s),[r,s]);return S.useEffect(()=>{console.warn("Displayed error:",c),p(0)},[c]),i.jsx(N,{...a,role:"alert",onClick:ie(n,()=>{p(y=>y+1)}),append:i.jsxs(i.Fragment,{children:[t,E&&i.jsx(ce,{name:c.name,code:c.code,message:c.message,payload:c.payload,stack:c.stack})]}),action:e!=null&&i.jsx(U,{onClick:()=>e(),children:i.jsx(f,{id:"6gRgw8"})}),children:o(c.description??{id:"vW+T+d"})})}const he=s=>i.jsx(b,{...s});function oe({error:s,reset:e,title:r={id:"Vw8l6h"},...t}){return i.jsx(F,{title:r,...t,children:i.jsx("div",{className:"w-[500px] max-w-full",children:i.jsx(b,{className:"mx-5",error:s,reset:e,parser:te})})})}const fe=s=>i.jsx(oe,{...s});export{de as A,oe as E,ee as I,W as S,se as U,ne as a,G as b,ie as c,he as d,fe as e,te as f,H as p,le as u};
|
|
2
|
+
//# sourceMappingURL=error-view-BzJJuW_V.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-view-BzJJuW_V.js","sources":["../../oauth-provider-api/dist/errors.js","../src/lib/cookies.ts","../src/lib/json-client.ts","../src/lib/api.ts","../src/lib/util.ts","../src/lib/api-error-parser.ts","../../../../node_modules/.pnpm/@radix-ui+primitive@1.1.3/node_modules/@radix-ui/primitive/dist/index.mjs","../src/lib/error-parser.ts","../src/components/utils/error-details.tsx","../src/components/utils/error-card.tsx","../src/components/error-view.tsx"],"sourcesContent":["export const HANDLE_UNAVAILABLE_REASON = Object.freeze([\n 'syntax',\n 'domain',\n 'slur',\n 'taken',\n 'reserved',\n 'resolution',\n 'unsupported',\n]);\nexport const isHandleUnavailableReason = (value) => {\n return HANDLE_UNAVAILABLE_REASON.includes(value);\n};\n// @TODO consider moving JsonErrorResponse & sub-classes here (or only the\n// schemas?), allowing the same code to be used on both the server and client\n// for error handling/parsing/formatting.\n//# sourceMappingURL=errors.js.map","export const parseCookieString = (\n cookie: string = document.cookie,\n): Record<string, string | undefined> =>\n Object.fromEntries(\n cookie\n .split(';')\n .filter(Boolean)\n .map((str) => str.split('=', 2).map((s) => decodeURIComponent(s.trim()))),\n )\n\nexport function readCookie(\n name: string,\n cookie: string = document.cookie,\n): string | undefined {\n const cookies = parseCookieString(cookie)\n return cookies[name]\n}\n","import { MessageDescriptor } from '@lingui/core'\nimport { msg } from '@lingui/core/macro'\n\nexport type JsonScalar = string | number | boolean | null\nexport type Json = JsonScalar | Json[] | { [key: string]: undefined | Json }\n\ntype Awaitable<T> = T | PromiseLike<T>\n\nexport type Options = {\n signal?: AbortSignal\n parseError?: (response: Response, payload: Json) => undefined | Error\n}\n\nexport type EndpointPath = `/${string}`\nexport type EndpointDefinition =\n | {\n method: 'POST'\n input: Json\n output: Json | void\n }\n | {\n method: 'GET'\n params?: Record<string, string | undefined>\n output: Json | void\n }\nexport type EndpointDefinitions = { [path: EndpointPath]: EndpointDefinition }\n\nexport type JsonClientOptions<Endpoints extends EndpointDefinitions> = {\n onFetchError?: (\n err: unknown,\n context: {\n method: string\n path: string\n input: unknown\n options?: Options\n },\n ) => void\n onFetchSuccess?: {\n [Path in keyof Endpoints & string]?: (data: {\n payload: Endpoints[Path] extends { output: infer Output } ? Output : never\n method: string\n input: Endpoints[Path] extends { method: 'GET'; params: infer Params }\n ? Params\n : Endpoints[Path] extends { method: 'POST'; input: infer Input }\n ? Input\n : undefined\n options?: Options\n }) => void\n }\n headers?: () => Awaitable<HeadersInit>\n}\n\nexport class JsonClient<Endpoints extends EndpointDefinitions> {\n constructor(\n protected readonly baseUrl: string,\n protected readonly options?: JsonClientOptions<Endpoints>,\n ) {}\n\n protected async fetch<Path extends EndpointPath & keyof Endpoints>(\n method: Endpoints[Path]['method'],\n path: Path,\n input: Endpoints[Path] extends { method: 'GET' }\n ? Endpoints[Path]['params']\n : Endpoints[Path] extends { method: 'POST' }\n ? Endpoints[Path]['input']\n : undefined,\n options?: Options,\n ): Promise<Endpoints[Path]['output']> {\n try {\n const url = new URL(`${this.baseUrl}${path}`)\n if (method === 'GET') {\n if (input) {\n for (const [key, value] of Object.entries(input)) {\n url.searchParams.set(key, value)\n }\n }\n }\n\n const body = method === 'POST' ? JSON.stringify(input) : undefined\n\n const headers = new Headers(await this.options?.headers?.())\n\n if (body && !headers.has('content-type')) {\n headers.set('content-type', 'application/json')\n }\n\n const response = await fetch(url, {\n method,\n headers,\n mode: 'same-origin',\n body,\n signal: options?.signal,\n })\n\n if (response.status === 204) {\n return undefined\n }\n\n const responseType = response.headers.get('content-type')\n if (responseType !== 'application/json') {\n await response.body?.cancel()\n throw new Error(`Invalid content type \"${responseType}\"`, {\n cause: response,\n })\n }\n\n const payload = await response.json()\n\n if (!response.ok) {\n const error =\n options?.parseError?.(response, payload) ||\n this.parseError(response, payload)\n throw error\n }\n\n this.options?.onFetchSuccess?.[path]?.call(null, {\n payload,\n method,\n input,\n options,\n } as any)\n\n return payload as Endpoints[Path]['output']\n } catch (err) {\n const context = { method, path, input, options }\n console.warn('API request failed', err, context)\n this.options?.onFetchError?.call(null, err, context)\n throw err\n }\n }\n\n protected parseError(response: Response, payload: Json): Error {\n return new JsonErrorResponse(payload)\n }\n}\n\nexport class JsonErrorResponse<P = unknown> extends Error {\n name = 'JsonErrorResponse'\n\n msg: MessageDescriptor = msg`Unexpected server response`\n\n constructor(\n public readonly payload: P,\n message: string = 'Unknown JSON error response',\n options?: ErrorOptions,\n ) {\n super(message, options)\n }\n}\n","import { MessageDescriptor } from '@lingui/core'\nimport { msg } from '@lingui/core/macro'\nimport {\n AccountSessionsInput,\n type ApiEndpoints,\n ConfirmEmailUpdateInput,\n ConfirmEmailVerificationInput,\n type ConfirmResetPasswordInput,\n type HandleUnavailableReason,\n InitiateEmailUpdateInput,\n InitiateEmailVerificationInput,\n type InitiatePasswordResetInput,\n OAuthSessionsInput,\n RevokeAccountSessionInput,\n RevokeOAuthSessionInput,\n type SignInInput,\n SignOutInput,\n type SignUpInput,\n type UpdateHandleInput,\n type VerifyHandleAvailabilityInput,\n isHandleUnavailableReason,\n} from '@atproto/oauth-provider-api'\nimport { readCookie } from './cookies.ts'\nimport {\n Json,\n JsonClient,\n JsonClientOptions,\n JsonErrorResponse,\n Options,\n} from './json-client.ts'\n\nexport type { Options } from './json-client.ts'\nconst CSRF_COOKIE_NAME = 'csrf-token'\nconst CSRF_HEADER_NAME = 'x-csrf-token'\n\nconst API_ENDPOINT_PREFIX = '/@atproto/oauth-provider/~api'\n\nexport type ApiOptions = JsonClientOptions<ApiEndpoints> & {\n locale: string\n}\n\nexport type WithOptionalLocale<T extends { locale?: unknown }> = Omit<\n T,\n 'locale'\n> & { locale?: T['locale'] }\n\nexport class Api extends JsonClient<ApiEndpoints> {\n locale: string\n\n constructor(options: ApiOptions) {\n const baseUrl = new URL(API_ENDPOINT_PREFIX, window.origin).toString()\n super(baseUrl, {\n ...options,\n headers: async function () {\n const headers = new Headers(await options?.headers?.call(this))\n const csrfToken = readCookie(CSRF_COOKIE_NAME)\n if (csrfToken) headers.set(CSRF_HEADER_NAME, csrfToken)\n return headers\n },\n })\n this.locale = options.locale\n }\n\n async signIn(\n {\n username,\n password,\n emailOtp,\n remember,\n locale = this.locale,\n }: WithOptionalLocale<SignInInput>,\n options?: Options,\n ) {\n return this.fetch(\n 'POST',\n '/sign-in',\n { username, password, emailOtp, remember, locale },\n options,\n )\n }\n\n async initiatePasswordReset(\n {\n email,\n locale = this.locale,\n }: WithOptionalLocale<InitiatePasswordResetInput>,\n options?: Options,\n ) {\n await this.fetch(\n 'POST',\n '/reset-password-request',\n { email, locale },\n options,\n )\n }\n\n // Account sessions\n\n async accountSessions({ sub }: AccountSessionsInput, options?: Options) {\n return this.fetch('GET', '/account-sessions', { sub }, options)\n }\n\n async revokeAccountSession(\n { sub, deviceId }: RevokeAccountSessionInput,\n options?: Options,\n ) {\n return this.fetch(\n 'POST',\n '/revoke-account-session',\n { sub, deviceId },\n options,\n )\n }\n\n // OAuth sessions\n\n async oauthSessions({ sub }: OAuthSessionsInput, options?: Options) {\n return this.fetch('GET', '/oauth-sessions', { sub }, options)\n }\n\n async revokeOAuthSession(\n { sub, tokenId }: RevokeOAuthSessionInput,\n options?: Options,\n ) {\n return this.fetch(\n 'POST',\n '/revoke-oauth-session',\n { sub, tokenId },\n options,\n )\n }\n\n //\n\n async confirmResetPassword(\n { token, password }: ConfirmResetPasswordInput,\n options?: Options,\n ) {\n await this.fetch(\n 'POST',\n '/reset-password-confirm',\n { token, password },\n options,\n )\n }\n\n async validateHandleAvailability(\n { handle }: VerifyHandleAvailabilityInput,\n options?: Options,\n ) {\n await this.fetch('POST', '/verify-handle-availability', { handle }, options)\n }\n\n async updateEmailRequest(\n { sub, locale = this.locale }: WithOptionalLocale<InitiateEmailUpdateInput>,\n options?: Options,\n ) {\n return this.fetch('POST', '/update-email-request', { sub, locale }, options)\n }\n\n async updateEmailConfirm(\n {\n sub,\n token,\n email,\n locale = this.locale,\n }: WithOptionalLocale<ConfirmEmailUpdateInput>,\n options?: Options,\n ) {\n await this.fetch(\n 'POST',\n '/update-email-confirm',\n { sub, token, email, locale },\n options,\n )\n }\n\n async verifyEmailRequest(\n {\n sub,\n locale = this.locale,\n }: WithOptionalLocale<InitiateEmailVerificationInput>,\n options?: Options,\n ) {\n await this.fetch('POST', '/verify-email-request', { sub, locale }, options)\n }\n\n async verifyEmailConfirm(\n { sub, token, email }: ConfirmEmailVerificationInput,\n options?: Options,\n ) {\n await this.fetch(\n 'POST',\n '/verify-email-confirm',\n { sub, token, email },\n options,\n )\n }\n\n async updateHandle({ sub, handle }: UpdateHandleInput, options?: Options) {\n return this.fetch('POST', '/update-handle', { sub, handle }, options)\n }\n\n async signUp(\n {\n locale = this.locale,\n handle,\n email,\n password,\n inviteCode,\n hcaptchaToken,\n }: WithOptionalLocale<SignUpInput>,\n options?: Options,\n ) {\n return this.fetch(\n 'POST',\n '/sign-up',\n { locale, handle, email, password, inviteCode, hcaptchaToken },\n options,\n )\n }\n\n async signOut({ sub }: SignOutInput, options?: Options) {\n return this.fetch('POST', '/sign-out', { sub }, options)\n }\n\n async consent(sub: string, scope?: string, options?: Options) {\n return this.fetch('POST', '/consent', { sub, scope }, options)\n }\n\n async reject(options?: Options) {\n return this.fetch('POST', '/reject', {}, options)\n }\n\n // and transform them into instances of the corresponding error classes.\n protected override parseError(response: Response, payload: Json): Error {\n return parseApiErrorPayload(payload) ?? super.parseError(response, payload)\n }\n}\n\nexport function parseApiErrorPayload(\n payload: unknown,\n): OAuthErrorResponse | undefined {\n if (isOAuthErrorPayload(payload)) {\n for (const ErrorClass of [\n // @NOTE Most specific errors must come first!\n UnknownRequestUriError,\n SecondAuthenticationFactorRequiredError,\n InvalidCredentialsError,\n InvalidInviteCodeError,\n HandleUnavailableError,\n EmailTakenError,\n RequestExpiredError,\n UnauthorizedError,\n InvalidRequestError,\n AccessDeniedError,\n ] as Array<{\n is(payload: OAuthErrorPayload): boolean\n new (payload: any): OAuthErrorResponse\n }>) {\n if (ErrorClass.is(payload)) {\n return new ErrorClass(payload)\n }\n }\n\n return new OAuthErrorResponse(payload)\n }\n}\n\nexport type OAuthErrorPayload<E extends string = string> = {\n error: E\n error_description?: string\n} & Record<string, Json>\n\nexport function isOAuthErrorPayload<E extends string = string>(\n json: unknown,\n error: E,\n): json is OAuthErrorPayload<E>\nexport function isOAuthErrorPayload(json: unknown): json is OAuthErrorPayload\nexport function isOAuthErrorPayload(json: unknown, error?: string): boolean {\n return (\n json != null &&\n typeof json === 'object' &&\n typeof json['error'] === 'string' &&\n (error === undefined || json['error'] === error) &&\n (json['error_description'] === undefined ||\n typeof json['error_description'] === 'string')\n )\n}\n\nexport class OAuthErrorResponse<\n P extends OAuthErrorPayload = OAuthErrorPayload,\n> extends JsonErrorResponse<P> {\n name = 'OAuthErrorResponse'\n\n constructor(\n payload: P,\n message = payload.error_description,\n options?: ErrorOptions,\n ) {\n super(payload, message || `OAuth Error \"${payload.error}\"`, options)\n this.msg = OAuthErrorResponse.getMessageForError(payload.error)\n }\n\n protected static getMessageForError(error: string): MessageDescriptor {\n switch (error) {\n // @NOTE This only needs value that are not already covered by more\n // specific error classes with their own messages (e.g.\n // InvalidCredentialsError). The base OAuthErrorResponse message is a\n // generic fallback for any unrecognized error codes.\n case 'server_error':\n return msg`The server encountered an unexpected error. Please try again.`\n default:\n return msg`An unexpected error occurred. Please try again.`\n }\n }\n}\n\nexport type UnauthorizedPayload = OAuthErrorPayload<'unauthorized'>\nexport class UnauthorizedError<\n P extends UnauthorizedPayload = UnauthorizedPayload,\n> extends OAuthErrorResponse<P> {\n override msg = msg`This sign-in session has expired`\n\n constructor(payload: P) {\n super(payload, payload.error_description || 'Unauthorized')\n }\n\n static is(json: OAuthErrorPayload): json is UnauthorizedPayload {\n return json.error === 'unauthorized'\n }\n}\n\nexport type AccessDeniedPayload = OAuthErrorPayload<'access_denied'>\nexport class AccessDeniedError<\n P extends AccessDeniedPayload = AccessDeniedPayload,\n> extends OAuthErrorResponse<P> {\n override msg = msg`This authorization request has been denied. Please try again.`\n\n constructor(payload: P, message = payload.error_description) {\n super(payload, message || 'Access denied')\n }\n\n static is(json: OAuthErrorPayload): json is AccessDeniedPayload {\n return json.error === 'access_denied'\n }\n}\n\nexport type InvalidRequestPayload = OAuthErrorPayload<'invalid_request'>\nexport class InvalidRequestError<\n P extends InvalidRequestPayload = InvalidRequestPayload,\n> extends OAuthErrorResponse<P> {\n override msg = msg`The data you submitted is invalid. Please check the form and try again.`\n\n constructor(payload: P, message = payload.error_description) {\n super(payload, message || 'Invalid request')\n }\n\n static is(json: OAuthErrorPayload): json is InvalidRequestPayload {\n return json.error === 'invalid_request'\n }\n}\n\nexport type HandleUnavailablePayload =\n OAuthErrorPayload<'handle_unavailable'> & {\n reason: HandleUnavailableReason\n }\nexport class HandleUnavailableError<\n P extends HandleUnavailablePayload = HandleUnavailablePayload,\n> extends OAuthErrorResponse<P> {\n constructor(payload: P, message = payload.error_description) {\n super(payload, message || 'Handle unavailable')\n this.msg = HandleUnavailableError.getMessageForReason(payload.reason)\n }\n\n static getMessageForReason(\n reason: HandleUnavailableReason,\n ): MessageDescriptor {\n switch (reason) {\n case 'syntax':\n return msg`The username is invalid`\n case 'domain':\n return msg`The domain name is not allowed`\n case 'slur':\n return msg`The username contains inappropriate language`\n case 'reserved':\n return msg`This username is reserved`\n case 'taken':\n return msg`The username is already in use`\n case 'resolution':\n return msg`The username could not be resolved`\n case 'unsupported':\n // @NOTE Only happens during account creation: should never happen since\n // the UI doesn't allow entering custom handles during account creation.\n return msg`Custom domains are not supported`\n }\n }\n\n static is(json: OAuthErrorPayload): json is HandleUnavailablePayload {\n return (\n json.error === 'handle_unavailable' &&\n isHandleUnavailableReason(json['reason'])\n )\n }\n}\n\nexport const SECOND_AUTH_FACTOR_TYPES = Object.freeze(['emailOtp'] as const)\nexport type SecondAuthFactorType = (typeof SECOND_AUTH_FACTOR_TYPES)[number]\nexport const isSecondAuthFactorType = (\n value: unknown,\n): value is SecondAuthFactorType =>\n (SECOND_AUTH_FACTOR_TYPES as readonly unknown[]).includes(value)\n\nexport type SecondAuthenticationFactorRequiredPayload =\n OAuthErrorPayload<'second_authentication_factor_required'> & {\n type: SecondAuthFactorType\n hint: string\n }\nexport class SecondAuthenticationFactorRequiredError<\n P extends\n SecondAuthenticationFactorRequiredPayload = SecondAuthenticationFactorRequiredPayload,\n> extends OAuthErrorResponse<P> {\n constructor(payload: P, message = payload.error_description) {\n const { type, hint } = payload\n super(payload, message || `${type} auth factor required (hint: ${hint})`)\n this.msg = msg`A second authentication factor is required (${hint})`\n }\n\n get type() {\n return this.payload.type\n }\n get hint() {\n return this.payload.hint\n }\n\n static is(\n json: OAuthErrorPayload,\n ): json is SecondAuthenticationFactorRequiredPayload {\n return (\n json.error === 'second_authentication_factor_required' &&\n isSecondAuthFactorType(json['type']) &&\n typeof json['hint'] === 'string'\n )\n }\n}\n\nexport type InvalidInviteCodePayload = InvalidRequestPayload & {\n error_description: `This invite code is invalid.${string}`\n}\nexport class InvalidInviteCodeError<\n P extends InvalidInviteCodePayload = InvalidInviteCodePayload,\n> extends InvalidRequestError<P> {\n msg = msg`The invite code is not valid`\n\n constructor(payload: P) {\n super(payload)\n }\n\n static is(json: OAuthErrorPayload): json is InvalidInviteCodePayload {\n return (\n super.is(json) &&\n json.error_description != null &&\n json.error_description.startsWith('This invite code is invalid.')\n )\n }\n}\n\nexport type RequestExpiredPayload = AccessDeniedPayload & {\n error_description: 'This request has expired'\n}\nexport class RequestExpiredError<\n P extends RequestExpiredPayload = RequestExpiredPayload,\n> extends AccessDeniedError<P> {\n override msg = msg`This sign-in session has expired`\n\n static is(json: OAuthErrorPayload): json is RequestExpiredPayload {\n return (\n super.is(json) && json.error_description === 'This request has expired'\n )\n }\n}\n\nexport type InvalidCredentialsPayload = InvalidRequestPayload & {\n error_description: 'Invalid identifier or password'\n}\nexport class InvalidCredentialsError<\n P extends InvalidCredentialsPayload = InvalidCredentialsPayload,\n> extends InvalidRequestError<P> {\n override msg = msg`Wrong identifier or password`\n\n static is(json: OAuthErrorPayload): json is InvalidCredentialsPayload {\n return (\n super.is(json) &&\n json.error_description === 'Invalid identifier or password'\n )\n }\n}\n\nexport type UnknownRequestPayload = InvalidRequestPayload & {\n error_description: 'Unknown request_uri'\n}\nexport class UnknownRequestUriError<\n P extends UnknownRequestPayload = UnknownRequestPayload,\n> extends InvalidRequestError<P> {\n override msg = msg`This sign-in session has expired`\n\n static is(json: OAuthErrorPayload): json is UnknownRequestPayload {\n return super.is(json) && json.error_description === 'Unknown request_uri'\n }\n}\nexport type EmailTakenPayload = InvalidRequestPayload & {\n error_description: 'Email already taken'\n}\nexport class EmailTakenError<\n P extends EmailTakenPayload = EmailTakenPayload,\n> extends InvalidRequestError<P> {\n override msg = msg`This email is already used`\n\n static is(json: OAuthErrorPayload): json is EmailTakenPayload {\n return super.is(json) && json.error_description === 'Email already taken'\n }\n}\n","export function upsert<T>(\n arr: undefined | readonly T[],\n item: T,\n predicate: (value: T, index: number, obj: readonly T[]) => boolean,\n): T[] {\n if (!arr) return [item]\n const idx = arr.findIndex(predicate)\n return idx === -1\n ? [...arr, item]\n : [...arr.slice(0, idx), item, ...arr.slice(idx + 1)]\n}\n\nexport type Explicit<T> = { [K in keyof T & string]: T[K] }\nexport type Simplify<T> = { [K in keyof T]: T[K] } & NonNullable<unknown>\nexport type Override<T, U> = Simplify<Omit<T, keyof U> & U>\n\nexport function toJsonSafe(value: unknown): string | undefined {\n try {\n return JSON.stringify(value, null, 2)\n } catch {\n return undefined\n }\n}\n","import { MessageDescriptor } from '@lingui/core'\nimport { ParsedError } from '#/components/utils/error-card.tsx'\nimport { OAuthErrorResponse } from '#/lib/api.ts'\nimport { JsonErrorResponse } from './json-client.ts'\nimport { toJsonSafe } from './util.ts'\n\nexport function apiErrorParser(error: unknown): ParsedError | void {\n if (error instanceof OAuthErrorResponse) {\n return {\n name: error.name,\n code: error.payload.error,\n message: error.payload.error_description,\n payload: toJsonSafe(error.payload),\n description: apiErrorMessage(error),\n }\n }\n}\n\nexport function apiErrorMessage(error: unknown): MessageDescriptor | undefined {\n if (error instanceof JsonErrorResponse) {\n return error.msg\n }\n}\n","// src/primitive.tsx\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nfunction getOwnerWindow(element) {\n if (!canUseDOM) {\n throw new Error(\"Cannot access window outside of the DOM\");\n }\n return element?.ownerDocument?.defaultView ?? window;\n}\nfunction getOwnerDocument(element) {\n if (!canUseDOM) {\n throw new Error(\"Cannot access document outside of the DOM\");\n }\n return element?.ownerDocument ?? document;\n}\nfunction getActiveElement(node, activeDescendant = false) {\n const { activeElement } = getOwnerDocument(node);\n if (!activeElement?.nodeName) {\n return null;\n }\n if (isFrame(activeElement) && activeElement.contentDocument) {\n return getActiveElement(activeElement.contentDocument.body, activeDescendant);\n }\n if (activeDescendant) {\n const id = activeElement.getAttribute(\"aria-activedescendant\");\n if (id) {\n const element = getOwnerDocument(activeElement).getElementById(id);\n if (element) {\n return element;\n }\n }\n }\n return activeElement;\n}\nfunction isFrame(element) {\n return element.tagName === \"IFRAME\";\n}\nexport {\n canUseDOM,\n composeEventHandlers,\n getActiveElement,\n getOwnerDocument,\n getOwnerWindow,\n isFrame\n};\n//# sourceMappingURL=index.mjs.map\n","import { MessageDescriptor } from '@lingui/core'\nimport { toJsonSafe } from './util'\n\nexport type ParsedError = {\n name?: string\n code?: string\n message?: string\n payload?: string\n stack?: string\n\n /**\n * A user-friendly description of the error, suitable for display in the UI.\n */\n description?: MessageDescriptor\n}\n\nexport type ErrorParser = (error: unknown) => ParsedError | void\n\nexport function parseError(error: unknown): ParsedError {\n if (error instanceof Error) {\n return {\n name: error.name,\n message: error.message,\n stack: error.stack,\n }\n }\n\n if (typeof error === 'string') {\n return {\n message: error,\n }\n }\n\n return {\n payload: toJsonSafe(error),\n }\n}\n\nexport function composeErrorParsers(\n ...parsers: (ErrorParser | undefined)[]\n): ErrorParser {\n return (error) => {\n for (const parser of parsers) {\n const parsed = parser?.(error)\n if (parsed) return parsed\n }\n }\n}\n","import { Trans } from '@lingui/react/macro'\nimport { ReactNode } from '@tanstack/react-router'\nimport { clsx } from 'clsx'\nimport { JSX } from 'react'\nimport { Override } from '#/lib/util.ts'\n\nexport type ErrorDetailsProps = Override<\n JSX.IntrinsicElements['dl'],\n {\n name?: string\n code?: string\n message?: string\n payload?: string\n stack?: string\n }\n>\n\nexport function ErrorDetails({\n name,\n code,\n message,\n payload,\n stack,\n\n // dl\n className,\n ...props\n}: ErrorDetailsProps) {\n return (\n <dl\n className={clsx(\n 'mt-2 grid max-w-full grid-cols-[auto_1fr] gap-x-2 text-sm',\n className,\n )}\n {...props}\n >\n {name && (\n <DetailRow label={<Trans context=\"Error\">Name</Trans>}>\n <code>{name}</code>\n </DetailRow>\n )}\n\n {code && (\n <DetailRow label={<Trans context=\"Error\">Code</Trans>}>\n <code>{code}</code>\n </DetailRow>\n )}\n\n {message && (\n <DetailRow label={<Trans context=\"Error\">Message</Trans>}>\n {message}\n </DetailRow>\n )}\n\n {payload && (\n <DetailRow label={<Trans context=\"Error\">Payload</Trans>}>\n <code className=\"max-h-[200px] overflow-auto\">\n <pre>{payload}</pre>\n </code>\n </DetailRow>\n )}\n\n {stack && (\n <DetailRow label={<Trans context=\"Error\">Stack</Trans>}>\n <code className=\"max-h-[200px] overflow-auto\">\n <pre>{stack}</pre>\n </code>\n </DetailRow>\n )}\n </dl>\n )\n}\n\nfunction DetailRow({\n children,\n label,\n}: {\n children: ReactNode\n label: ReactNode\n}) {\n return (\n <>\n <dt className=\"font-semibold\">{label}</dt>\n <dd>{children}</dd>\n </>\n )\n}\n","import { msg } from '@lingui/core/macro'\nimport { useLingui } from '@lingui/react'\nimport { Trans } from '@lingui/react/macro'\nimport { composeEventHandlers } from '@radix-ui/primitive'\nimport { useEffect, useMemo, useState } from 'react'\nimport { ErrorParser, ParsedError, parseError } from '#/lib/error-parser.ts'\nimport { Override } from '#/lib/util.ts'\nimport { Admonition, AdmonitionAction, AdmonitionProps } from './admonition.tsx'\nimport { ErrorDetails } from './error-details.tsx'\n\nexport type { ErrorParser, ParsedError }\n\nexport type ErrorCardProps = Override<\n Omit<AdmonitionProps, 'role' | 'append' | 'action'>,\n {\n error: unknown\n reset?: () => void\n parser?: ErrorParser\n }\n>\n\nexport function ErrorCard({\n error,\n reset,\n parser,\n\n // Admonition\n children,\n onClick,\n ...props\n}: ErrorCardProps) {\n const { _ } = useLingui()\n const [clickCount, setClickCount] = useState(0)\n\n // Every 5th click; toggle showing the details\n const showDetails = ((clickCount / 5) | 0) % 2 === 1\n\n const parsed = useMemo<ParsedError>(\n () => parser?.(error) ?? parseError(error),\n [parser, error],\n )\n\n useEffect(() => {\n // For debugging purposes\n console.warn('Displayed error:', parsed)\n\n // Reset the click count when the error changes\n setClickCount(0)\n }, [parsed])\n\n return (\n <Admonition\n {...props}\n role=\"alert\"\n onClick={composeEventHandlers(onClick, () => {\n setClickCount((c) => c + 1)\n })}\n append={\n <>\n {children}\n {showDetails && (\n <ErrorDetails\n name={parsed.name}\n code={parsed.code}\n message={parsed.message}\n payload={parsed.payload}\n stack={parsed.stack}\n />\n )}\n </>\n }\n action={\n reset != null && (\n <AdmonitionAction onClick={() => reset()}>\n <Trans>Retry</Trans>\n </AdmonitionAction>\n )\n }\n >\n {_(parsed.description ?? msg`An unknown error occurred`)}\n </Admonition>\n )\n}\n\nexport const errorCardRender = (props: ErrorCardProps) => (\n <ErrorCard {...props} />\n)\n","import { msg } from '@lingui/core/macro'\nimport { apiErrorParser } from '#/lib/api-error-parser.ts'\nimport { Override } from '#/lib/util.ts'\nimport { LayoutApp, LayoutAppProps } from './layouts/layout-app.tsx'\nimport { ErrorCard } from './utils/error-card.tsx'\n\nexport type ErrorViewProps = Override<\n LayoutAppProps,\n {\n error: unknown\n reset?: () => void\n children?: never\n }\n>\n\nexport function ErrorView({\n // FallbackProps\n error,\n reset,\n // LayoutAppProps\n title = msg`An error occurred`,\n ...props\n}: ErrorViewProps) {\n // @TODO improve error page\n return (\n <LayoutApp title={title} {...props}>\n <div className=\"w-[500px] max-w-full\">\n <ErrorCard\n className=\"mx-5\"\n error={error}\n reset={reset}\n parser={apiErrorParser}\n />\n </div>\n </LayoutApp>\n )\n}\n\nexport const errorViewRender = (props: ErrorViewProps) => (\n <ErrorView {...props} />\n)\n"],"names":["HANDLE_UNAVAILABLE_REASON","isHandleUnavailableReason","value","parseCookieString","cookie","document","Object","fromEntries","split","filter","Boolean","map","str","s","decodeURIComponent","trim","readCookie","name","JsonClient","baseUrl","options","fetch","method","path","input","url","URL","key","entries","searchParams","set","body","JSON","stringify","undefined","headers","Headers","_b","_a","has","response","mode","signal","status","responseType","get","cancel","Error","cause","payload","json","ok","error","parseError","_g","_f","_e","onFetchSuccess","call","err","context","warn","_i","_h","onFetchError","JsonErrorResponse","message","msg","CSRF_COOKIE_NAME","CSRF_HEADER_NAME","API_ENDPOINT_PREFIX","Api","window","origin","toString","csrfToken","locale","signIn","username","password","emailOtp","remember","initiatePasswordReset","email","accountSessions","sub","revokeAccountSession","deviceId","oauthSessions","revokeOAuthSession","tokenId","confirmResetPassword","token","validateHandleAvailability","handle","updateEmailRequest","updateEmailConfirm","verifyEmailRequest","verifyEmailConfirm","updateHandle","signUp","inviteCode","hcaptchaToken","signOut","consent","scope","reject","parseApiErrorPayload","isOAuthErrorPayload","ErrorClass","UnknownRequestUriError","SecondAuthenticationFactorRequiredError","InvalidCredentialsError","InvalidInviteCodeError","HandleUnavailableError","EmailTakenError","RequestExpiredError","UnauthorizedError","InvalidRequestError","AccessDeniedError","is","OAuthErrorResponse","error_description","getMessageForError","getMessageForReason","reason","SECOND_AUTH_FACTOR_TYPES","freeze","isSecondAuthFactorType","includes","type","hint","startsWith","upsert","arr","item","predicate","idx","findIndex","slice","toJsonSafe","apiErrorParser","code","description","apiErrorMessage","composeEventHandlers","originalEventHandler","ourEventHandler","checkForDefaultPrevented","event","stack","ErrorDetails","className","props","dl","clsx","DetailRow","label","Trans_","pre","children","_Fragment","dt","dd","ErrorCard","reset","parser","onClick","_","useLingui","clickCount","setClickCount","useState","showDetails","parsed","useMemo","useEffect","Admonition","role","c","append","action","_jsx","AdmonitionAction","errorCardRender","ErrorView","title","LayoutApp","div","errorViewRender"],"mappings":"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","x_google_ignoreList":[6]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=JSON.parse(`{"cd9Wo5":[["deltaDays"]," days ago"],"69w9p3":[["deltaHours"]," hours ago"],"KtNcea":[["deltaMinutes"]," minutes ago"],"ZWuMKu":["<0>AT Protocol</0> — Technical documentation for developers"],"NS7S2h":["<0>Bluesky Social</0> — General information about the network"],"7+d6kP":["<0>Learn more</0><1>Want to learn more about the technology and network behind your Atmosphere account?</1>"],"bfpG7G":["<0>This website: your account control center</0><1>The website you're on right now is your <2>account management hub</2>. Here you can:</1><3><4>Update your email address and password</4><5>Manage your personal data and security settings</5><6>View and manage active sessions across devices (browsers where you're signed in)</6></3><7>This place is where you control the fundamental aspects of your Atmosphere identity, independently of any app-specific details like the profile you have on the <8>Bluesky social app</8>.</7><9>Your Atmosphere account is currently hosted by <10/>, one of many hosting providers in the Atmosphere network. You can switch to a different one at any time without losing your account, identity, or data.</9>"],"SBs48I":["<0>Use it across multiple apps</0><1>Your Atmosphere account works with the <2>Bluesky Social App</2> and any other social apps built on the same network.</1><3>Just like you can use the same email address to sign into different websites, your Atmosphere account lets you sign into different social apps while keeping the same identity, connections, and content.</3><4>When you see options to log in with an Atmosphere account or \\"internet handle\\" on other apps, you can use your existing account <5><6/></5> instead of creating a new one.</4>"],"/y3yb7":["<0>What is an Atmosphere account?</0><1>An <2>Atmosphere account</2> is your personal identity on the Atmosphere. Think of it as a digital passport that you truly own, not locked to any single app or company.</1>"],"gB0RTR":["<0>What makes it special</0><1>The key difference: your data isn't trapped in any one app. Unlike traditional social media accounts, where your data belongs to the platform, with an Atmosphere account you genuinely own your identity and data:</1><2><3><4>You own your identity</4>: Your username (handle) and permanent ID belong to you</3><5><6>Your data is portable</6>: Posts, follows, and content live in your personal data storage, not locked in an app's database</5><7><8>You can move freely</8>: Switch hosting providers without losing your followers, posts, or connections. This also lets you choose a provider in your country if it matters where your data is stored.</7><9><10>Multiple apps, one identity</10>: Use the same account across different apps built on the same network</9></2>"],"Qy+y0S":["<your-domain>"],"x6/d1l":["1 hour ago"],"kMDavg":["1 minute ago"],"4blS0m":["2要素認証の確認"],"4Yp2r7":["A local app"],"HJQIko":["A second authentication factor is required (",["hint"],")"],"BO3Kuy":["<0>",["domain"],"</0> によって管理されているサービス"],"uyJsf6":["About"],"AeXO77":["アカウント"],"ehmMI/":["Account avatar"],"kce6cL":["Account identifier"],"F9cvwz":["Account name"],"OLYdKb":["Account overview"],"1D3nu5":["Account selector"],"Qo3Cxp":["Account username"],"wIcl4E":["Add the following record to your domain's DNS configuration."],"pC6cwz":["alice.com"],"FTT4a4":["コードをすでに持っていますか?"],"eYNzrj":["デバイス上のアプリ"],"Vw8l6h":["An error occurred"],"byKna+":["An unexpected error occurred. Please try again."],"vW+T+d":["何らかのエラーが発生しました"],"+TaG50":["他のアカウント"],"a6yfpg":["すべてのコレクション"],"P5xSNt":["すべてのメソッド"],"UuQciw":["すべてのサービス"],"VDvaN2":["Apps"],"SLeBc7":["Apps may access your account in the background (to check notifications, sync data, etc.) even when you're not actively using them. This is normal behavior and will update the \\"last accessed\\" time shown above."],"fHQh98":["Authenticate"],"ZJUrL+":["Authenticate"],"Xund1M":["Authorize"],"4hPphw":["Authorized on ",["0"]],"iH8pgl":["戻る"],"4Rgp24":[["minLength"]," 文字以上 ",["maxLength"]," 文字以下"],"4X0Qky":["Blobストレージ"],"3GEYP0":["Blueksyアプリサービス"],"eglFj/":["Blueskyチャットサービス"],"A3MAIm":["Branding"],"K6KMLt":["By clicking <0>Authorize</0>, you will grant this application access to your account in accordance with its <1>terms of service</1> and <2>privacy policy</2>."],"mBUXx0":["アカウントを作成することで、このサービスの ",["0"]," および ",["1"]," に同意したものとみなされます。"],"b4SMYa":["呼び出し"],"dEgA5A":["キャンセル"],"JOalQJ":["Cannot remove current device"],"lbjZdy":["<0>@handle</0> を変更"],"qRxXtM":["Change your password"],"AHZflp":["チャット"],"B+Yy3b":["確認コードが記載されたメール ",["0"]," を確認し、ここに入力してください。"],"rpbuva":["Check your inbox for the verification code."],"lAK2OC":["Check your inbox."],"Bno89U":["Choose a new default username."],"vsqx1t":["Choose a new email address to associate with your account."],"khEQ02":["ユーザー名を選んでください"],"56n0wU":["Click here if you are not automatically redirected"],"x1TXhd":["Click here to resend."],"yz7wBu":["Close"],"NqPBw0":["Close account selector"],"n5fb8M":["Close details"],"Gt+Z/D":["Code"],"UwGV9B":["確認"],"HaGV2g":["続けるにはパスワードを確認してください"],"ioZOzk":["確認コード"],"xGVfLh":["Continue"],"MLyLW8":["Cookie Error"],"6V3Ea3":["Copied"],"/4gGIX":["Copy to clipboard"],"hYgDIe":["作成"],"mpt9T+":["新規アカウントの作成"],"OuTWqr":["Create, update, and delete any public data linked to your account"],"qfnQHD":["Custom domains are not supported"],"HKH+W+":["Data"],"cnGeoo":["削除"],"u0sEZL":["Deny access"],"URmyfc":["Details"],"qavm0B":["Devices"],"5M4Te3":["DNS"],"wadss7":["Don't see an email?"],"2ns2wB":["e.g. <0>alice.com</0>"],"Zhm/NX":["e.g. <0>alice",["0"],"</0>"],"O3oNi5":["メールアドレス"],"ATGYL1":["メールアドレス"],"kbts6J":["Email address successfully updated"],"Y/tbFA":["Email change request sent"],"j/19E8":["Email change successful"],"CzD50V":["Email these instructions"],"PLEl94":["Email verified"],"3tOlz6":["パスワードを入力"],"xg/UcZ":["パスワードをリセットするために受け取ったコードを入力してください。"],"BfIgP6":["Enter the domain you want to use"],"cHrOqs":["アカウントの作成に使用したメールアドレスを入力します。新しいパスワードを設定できるように、「リセットコード」をお送りします。"],"xRPn3U":["メールアドレスを入力してください"],"0StR7t":["新しいパスワードを入力してください"],"NgaR6B":["パスワードを入力"],"T0KLp4":["ユーザー名とパスワードを入力してください"],"jxqcgY":["example-com-xxxxx-xxxxx"],"xAo8pm":["詳細を開く"],"/Ltc/k":["最強"],"PNuvRd":["Failed to change email"],"b9LiEi":["Failed to load connected apps"],"CiwBmN":["Failed to remove device"],"E1zEOj":["Failed to request email change"],"eMlT5s":["Failed to request password reset"],"3DLYmM":["Failed to reset password"],"ginpu1":["Failed to revoke access"],"yI9fD4":["Failed to send verification email"],"DsHRti":["Failed to update username"],"rxy0tG":["Failed to verify email"],"TiHb0n":["File contents"],"dn8X5t":["パスワードを忘れた"],"F4OP4y":["忘れた?"],"i7VT2T":["Grant access to your <0/> account"],"87VTIH":["なにか問題が発生しましたか? <0>サポートに連絡</0>"],"cqWp5F":["Hello,\\n\\nTo associate the domain \\"",["handle"],"\\" with my AT Protocol identity (",["did"],"), one of the following configuration changes is required. Either method is sufficient, only one needs to be applied.\\n\\n",["0"],"\\n\\nThe change can be verified by visiting the following URL: ",["troubleshootHref"],"\\nA detailed tutorial can be found here: ",["tutorialHref"],"\\n\\nThank you."],"c3XJ18":["Help"],"vLyv1R":["隠す"],"i0qMbr":["ホーム"],"Ai2U7L":["Host"],"LUTGt0":["HTTP"],"sJGljQ":["識別子"],"ePYQjq":["識別情報"],"q6Kda8":["If you have access to your domain's DNS configuration panel (e.g. via your domain registrar)"],"Zf0mtN":["If you have access to your domain's web hosting configuration (e.g. via FTP)"],"GNCK6k":["If you have your own domain, you can use that as your handle. This lets you self-verify your identity. <0>Learn more here</0>."],"WV5h6m":["If you update your email address, email 2FA (if enabled) will be disabled."],"vHJQ4A":["言語選択"],"JHB/Ky":["無効"],"AvmoWB":["Invalid Handle"],"6KlkHI":["招待コード"],"pWhWXw":["It appears that you haven’t used this account to sign in to any apps yet."],"D2aJ64":["It seems that your browser is not accepting cookies. Press \\"Continue\\" to try again. If the error persists, please ensure that your privacy settings allow cookies for the \\"",["0"],"\\" website."],"xOTzt5":["just now"],"NNWPjN":["Last accessed <0/>"],"sJZ6K9":["Last seen ",["lastUsedAgo"]],"Q2Fq1L":["Later"],"Esfg1M":["パスワードをリセットしましょう!"],"UCOd1e":["ログイン完了"],"cR9UpQ":["リストにないアカウントにログイン"],"iG7KNr":["ロゴ"],"Ssa5RR":["Looks like you aren't logged in on any other devices."],"u607t5":["loopback"],"OgbFua":["Make a text file with the contents below available at the following URL."],"huXYDE":["表示する"],"xSiaWQ":["Manage applications that have access to your account"],"hqGoYC":["あなたの <1>@handle</1> を含む <0>すべての識別情報</0> を管理する"],"Xu88FC":["Manage your account"],"bdNEzF":["Manage your active sessions"],"YRqkn2":["あなたのプロフィール、投稿、いいね、フォローを管理"],"0ZqxWk":["あなたのプロフィール、投稿、いいね、フォローを管理し、あなたのプライベートな設定を読み取る"],"FTdsAu":["Message"],"VU3Nrn":["無し"],"dvYuhh":["中程度"],"KdxItU":["My Atmosphere Account"],"Aw7BNz":["Name"],"OenGwo":["New email address"],"/nT6AE":["新しいパスワード"],"hXzOVo":["次へ"],"UaXeX3":["OK"],"yDlXDJ":["英数字とハイフンのみ"],"8ZsakT":["パスワード"],"boBFOP":["Password reset email sent"],"D9Jms7":["Password reset successful"],"osAB4a":["パスワード強度"],"xfNKwI":["パスワード強度表示"],"fSy6T1":["パスワードが更新されました"],"DKeVgZ":["パスワードが更新されました!"],"5CqSPX":["パスワードは ",["MIN_PASSWORD_LENGTH"]," 文字以上"],"IHV30b":["Payload"],"RZlEhS":["あなたに代わってアクションを実行する"],"17SnJo":["あなたに代わって認証されたアクションを <0>任意のサービス</0> が実行する"],"azHATD":["Please authenticate to continue"],"JANaVF":["Please check the email address and try again."],"GZC2rQ":["Please check the username and try again."],"q1d4qv":["Please check your reset code and try again."],"78Ju9c":["Please check your verification code and try again."],"jK9hhN":["Please enter the security code that was sent to your email address."],"U/me+u":["Please try again in a moment."],"6gxSCq":["Please wait ",["remainingSeconds"]," seconds before trying again."],"LcET2C":["プライバシーポリシー"],"xs63gu":["公開された変更"],"yZDyOS":["メッセージの読み取りと送信"],"FLm/n9":["あなたのアカウントのメールアドレスを読み取り、更新する"],"fEvm25":["あなたのアカウントのメールアドレスを読み取る"],"1TxdLU":["このアカウントをこのデバイスに記憶する"],"IreQBq":["リポジトリ"],"vJgYMA":["リセットコード"],"KbS2K9":["パスワードをリセット"],"slOprG":["パスワードをリセット"],"6gRgw8":["Retry"],"VA4HpI":["Retry in ",["remainingSeconds"],"s"],"Hwam5t":["Revoke access"],"wLmRnI":["Security code"],"4fWT0G":["Security step required"],"T8poTj":["Select another account"],"HB+TbB":["ドメインを選択"],"o3dwub":["既存のアカウントから選択"],"Qze0/r":["Send verification code"],"1L25jn":["Sign in"],"yKDCQ1":["サインイン"],"N9o7n5":[["0"]," でサインイン"],"FT1MVS":["アカウントの選択"],"MzTcmM":["Sign out"],"fcWrnU":["Sign out"],"e+RpCP":["サインアップ"],"ZJUDum":["Stack"],"BEx8rG":["ステップ ",["currentPosition"]," / ",["count"]],"LLx/nr":["強い"],"hQRttt":["送信"],"jAO4/H":["Successfully removed device"],"AyHABv":["Successfully revoked access"],"XYLcNv":["サポート"],"69Gavs":["技術的な詳細"],"NKHn7N":["一時的にアカウントを有効化または無効化する"],"xowcRf":["利用規約"],"zb3TS0":["アプリは、あなたのネットワーク識別情報を完全に制御することを求めています。つまり、アカウントを <0>永久に壊す</0> ことや、<1>乗っ取る</1> ことさえ可能です。この権限は、本当に信頼できるアプリにのみ付与してください。"],"ZEwA2R":["アプリは、あなたに代わって次のアクションを実行するために必要な権限を要求しています:"],"C94+Ui":["The AT Protocol network uses an authentication mechanism that allows to uniquely identify users when communicating with external services. This is typically used to retrieve or update data linked to your account, such as chat messages, feeds or moderation content. The application requests the permissions necessary to perform the following authenticated actions on your behalf:"],"qrCiCk":["送信データが正しくありません。フォームをチェックしてもう一度お試しください。"],"qDdKKD":["そのドメイン名は許可されていません"],"+lWheC":["招待コードが有効ではありません"],"BJ8t7d":["The server encountered an unexpected error. Please try again."],"AQ3Zbm":["The username contains inappropriate language"],"E/Pt37":["The username could not be resolved"],"AXlE0K":["The username is already in use"],"C24/JK":["The username is invalid"],"kx1Bq7":["These apps have access to your account. An app may appear multiple times if you use it on different devices. You can revoke access to log out the app until you sign in again."],"3g3aq0":["This application is requesting the following permissions (scopes) to access your account:"],"oYKcFO":["この承認リクエストは拒否されました。もう一度お試しください。"],"SZKM0t":["このメールアドレスはすでに使用されています"],"5OVfoe":["このサインインセッションの有効期限が切れました"],"3j7n8v":["This username is reserved"],"ukpmGq":["To change your password, you'll need to enter a security code sent to your email."],"+Qnl3Q":["To verify your email, you'll need to enter a security code sent to <0>",["email"],"</0>."],"nURwxX":["対象"],"et+mIi":["Troubleshoot"],"+zy2Nq":["Type"],"VxXoAs":["Type your domain"],"Vgj5ph":["Type your username"],"dA/8If":["Unauthorized"],"Jja+Vn":["予期しないサーバー応答"],"K80Okk":["Unknown user agent"],"EkH9pt":["更新"],"GmYkFm":["Update your email"],"T6sYqW":["Update your username"],"O78aQm":["Update your username to a domain name you own to self-verify your identity."],"sCtyHQ":["ファイルのアップロード"],"IagCbF":["URL"],"57gCMx":["Use a default username"],"Pahpw8":["Use a domain name I own"],"7sNhEz":["Username"],"nZx9mr":["ユーザー名またはメールアドレス"],"2HQiAC":["Username updated"],"nfagfM":["有効"],"wMHvYH":["Value"],"AdWhjZ":["Verification code"],"I6Q2R9":["Verification email sent"],"2AW+PM":["Verification method"],"NbkAR9":["Verification successful!"],"G7Vcxo":["Verify and Save"],"HFfnZo":["Verify now"],"TePUFC":["Verify the website address before entering your password. Only sign in on sites you recognize and trust."],"aIar4b":["あなたが人間であることを確認"],"/IBv6X":["Verify your email"],"sUabXh":["あなたの <0/> アカウントにアクセスしようとしています"],"AM8FL/":["あなたの <0/> アカウントを通じてあなたを識別しようとしています"],"r6y+jM":["Warning"],"qjBGxf":["私たちはあなたが参加してくれることをとても楽しみにしています!"],"9ls/Vs":["弱い"],"6jfS51":["Welcome"],"z73+hu":["What does this mean?"],"nxn0xR":["What is an Atmosphere Account?"],"jSVjfa":["識別子またはパスワードが間違っています"],"rQRrkB":["yesterday"],"qq6QQ5":["リダイレクトしています…"],"B9VwbO":["アカウントのセットアップ後にユーザー名を自分がコントロールしているドメイン名に変更することができます。"],"YNQVYW":["You can now sign in with your new email."],"67nRLM":["新しいパスワードでサインインできるようになりました。"],"imRJNy":["「リセットコード」が記載されたメールが届きます。ここにコードを入力し、新しいパスワードを入力します。"],"gdRnT7":["あなたのアカウント"],"CbBmBd":["Your account is signed in on the devices listed below. If your account was compromised, sign out all devices, change your password, and check your connected <0>apps</0>."],"Jn0vdi":["Your Atmosphere account is hosted by <0/>."],"W5g73W":["Your email address has been successfully updated and needs to be verified. Please enter the verification code that was sent to <0>",["email"],"</0>."],"HrYlJ7":["Your email address has been verified."],"Eo3tBf":["Your email address needs to be verified."],"r/b/p8":["あなたのフルユーザー名: ",["0"]],"+qGdcW":["パスワードが変更されました!"],"SCnKXT":["Your repository contains all the data publicly available on the AT Protocol network, such as Bluesky posts, likes, and follows. It also contains data created through other apps you've signed into using this account. The application requests the permissions necessary to publish the following changes to your repository:"],"Z3PAZP":["Your session has expired. Please sign in again."],"6Hg1zS":["Your username has been updated."]}`);export{e as messages};
|
|
2
|
+
//# sourceMappingURL=messages--aCokQ6a.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages--aCokQ6a.js","sources":["../src/locales/ja/messages.ts"],"sourcesContent":["/*eslint-disable*/import type{Messages}from\"@lingui/core\";export const messages=JSON.parse(\"{\\\"cd9Wo5\\\":[[\\\"deltaDays\\\"],\\\" days ago\\\"],\\\"69w9p3\\\":[[\\\"deltaHours\\\"],\\\" hours ago\\\"],\\\"KtNcea\\\":[[\\\"deltaMinutes\\\"],\\\" minutes ago\\\"],\\\"ZWuMKu\\\":[\\\"<0>AT Protocol</0> — Technical documentation for developers\\\"],\\\"NS7S2h\\\":[\\\"<0>Bluesky Social</0> — General information about the network\\\"],\\\"7+d6kP\\\":[\\\"<0>Learn more</0><1>Want to learn more about the technology and network behind your Atmosphere account?</1>\\\"],\\\"bfpG7G\\\":[\\\"<0>This website: your account control center</0><1>The website you're on right now is your <2>account management hub</2>. Here you can:</1><3><4>Update your email address and password</4><5>Manage your personal data and security settings</5><6>View and manage active sessions across devices (browsers where you're signed in)</6></3><7>This place is where you control the fundamental aspects of your Atmosphere identity, independently of any app-specific details like the profile you have on the <8>Bluesky social app</8>.</7><9>Your Atmosphere account is currently hosted by <10/>, one of many hosting providers in the Atmosphere network. You can switch to a different one at any time without losing your account, identity, or data.</9>\\\"],\\\"SBs48I\\\":[\\\"<0>Use it across multiple apps</0><1>Your Atmosphere account works with the <2>Bluesky Social App</2> and any other social apps built on the same network.</1><3>Just like you can use the same email address to sign into different websites, your Atmosphere account lets you sign into different social apps while keeping the same identity, connections, and content.</3><4>When you see options to log in with an Atmosphere account or \\\\\\\"internet handle\\\\\\\" on other apps, you can use your existing account <5><6/></5> instead of creating a new one.</4>\\\"],\\\"/y3yb7\\\":[\\\"<0>What is an Atmosphere account?</0><1>An <2>Atmosphere account</2> is your personal identity on the Atmosphere. Think of it as a digital passport that you truly own, not locked to any single app or company.</1>\\\"],\\\"gB0RTR\\\":[\\\"<0>What makes it special</0><1>The key difference: your data isn't trapped in any one app. Unlike traditional social media accounts, where your data belongs to the platform, with an Atmosphere account you genuinely own your identity and data:</1><2><3><4>You own your identity</4>: Your username (handle) and permanent ID belong to you</3><5><6>Your data is portable</6>: Posts, follows, and content live in your personal data storage, not locked in an app's database</5><7><8>You can move freely</8>: Switch hosting providers without losing your followers, posts, or connections. This also lets you choose a provider in your country if it matters where your data is stored.</7><9><10>Multiple apps, one identity</10>: Use the same account across different apps built on the same network</9></2>\\\"],\\\"Qy+y0S\\\":[\\\"<your-domain>\\\"],\\\"x6/d1l\\\":[\\\"1 hour ago\\\"],\\\"kMDavg\\\":[\\\"1 minute ago\\\"],\\\"4blS0m\\\":[\\\"2要素認証の確認\\\"],\\\"4Yp2r7\\\":[\\\"A local app\\\"],\\\"HJQIko\\\":[\\\"A second authentication factor is required (\\\",[\\\"hint\\\"],\\\")\\\"],\\\"BO3Kuy\\\":[\\\"<0>\\\",[\\\"domain\\\"],\\\"</0> によって管理されているサービス\\\"],\\\"uyJsf6\\\":[\\\"About\\\"],\\\"AeXO77\\\":[\\\"アカウント\\\"],\\\"ehmMI/\\\":[\\\"Account avatar\\\"],\\\"kce6cL\\\":[\\\"Account identifier\\\"],\\\"F9cvwz\\\":[\\\"Account name\\\"],\\\"OLYdKb\\\":[\\\"Account overview\\\"],\\\"1D3nu5\\\":[\\\"Account selector\\\"],\\\"Qo3Cxp\\\":[\\\"Account username\\\"],\\\"wIcl4E\\\":[\\\"Add the following record to your domain's DNS configuration.\\\"],\\\"pC6cwz\\\":[\\\"alice.com\\\"],\\\"FTT4a4\\\":[\\\"コードをすでに持っていますか?\\\"],\\\"eYNzrj\\\":[\\\"デバイス上のアプリ\\\"],\\\"Vw8l6h\\\":[\\\"An error occurred\\\"],\\\"byKna+\\\":[\\\"An unexpected error occurred. Please try again.\\\"],\\\"vW+T+d\\\":[\\\"何らかのエラーが発生しました\\\"],\\\"+TaG50\\\":[\\\"他のアカウント\\\"],\\\"a6yfpg\\\":[\\\"すべてのコレクション\\\"],\\\"P5xSNt\\\":[\\\"すべてのメソッド\\\"],\\\"UuQciw\\\":[\\\"すべてのサービス\\\"],\\\"VDvaN2\\\":[\\\"Apps\\\"],\\\"SLeBc7\\\":[\\\"Apps may access your account in the background (to check notifications, sync data, etc.) even when you're not actively using them. This is normal behavior and will update the \\\\\\\"last accessed\\\\\\\" time shown above.\\\"],\\\"fHQh98\\\":[\\\"Authenticate\\\"],\\\"ZJUrL+\\\":[\\\"Authenticate\\\"],\\\"Xund1M\\\":[\\\"Authorize\\\"],\\\"4hPphw\\\":[\\\"Authorized on \\\",[\\\"0\\\"]],\\\"iH8pgl\\\":[\\\"戻る\\\"],\\\"4Rgp24\\\":[[\\\"minLength\\\"],\\\" 文字以上 \\\",[\\\"maxLength\\\"],\\\" 文字以下\\\"],\\\"4X0Qky\\\":[\\\"Blobストレージ\\\"],\\\"3GEYP0\\\":[\\\"Blueksyアプリサービス\\\"],\\\"eglFj/\\\":[\\\"Blueskyチャットサービス\\\"],\\\"A3MAIm\\\":[\\\"Branding\\\"],\\\"K6KMLt\\\":[\\\"By clicking <0>Authorize</0>, you will grant this application access to your account in accordance with its <1>terms of service</1> and <2>privacy policy</2>.\\\"],\\\"mBUXx0\\\":[\\\"アカウントを作成することで、このサービスの \\\",[\\\"0\\\"],\\\" および \\\",[\\\"1\\\"],\\\" に同意したものとみなされます。\\\"],\\\"b4SMYa\\\":[\\\"呼び出し\\\"],\\\"dEgA5A\\\":[\\\"キャンセル\\\"],\\\"JOalQJ\\\":[\\\"Cannot remove current device\\\"],\\\"lbjZdy\\\":[\\\"<0>@handle</0> を変更\\\"],\\\"qRxXtM\\\":[\\\"Change your password\\\"],\\\"AHZflp\\\":[\\\"チャット\\\"],\\\"B+Yy3b\\\":[\\\"確認コードが記載されたメール \\\",[\\\"0\\\"],\\\" を確認し、ここに入力してください。\\\"],\\\"rpbuva\\\":[\\\"Check your inbox for the verification code.\\\"],\\\"lAK2OC\\\":[\\\"Check your inbox.\\\"],\\\"Bno89U\\\":[\\\"Choose a new default username.\\\"],\\\"vsqx1t\\\":[\\\"Choose a new email address to associate with your account.\\\"],\\\"khEQ02\\\":[\\\"ユーザー名を選んでください\\\"],\\\"56n0wU\\\":[\\\"Click here if you are not automatically redirected\\\"],\\\"x1TXhd\\\":[\\\"Click here to resend.\\\"],\\\"yz7wBu\\\":[\\\"Close\\\"],\\\"NqPBw0\\\":[\\\"Close account selector\\\"],\\\"n5fb8M\\\":[\\\"Close details\\\"],\\\"Gt+Z/D\\\":[\\\"Code\\\"],\\\"UwGV9B\\\":[\\\"確認\\\"],\\\"HaGV2g\\\":[\\\"続けるにはパスワードを確認してください\\\"],\\\"ioZOzk\\\":[\\\"確認コード\\\"],\\\"xGVfLh\\\":[\\\"Continue\\\"],\\\"MLyLW8\\\":[\\\"Cookie Error\\\"],\\\"6V3Ea3\\\":[\\\"Copied\\\"],\\\"/4gGIX\\\":[\\\"Copy to clipboard\\\"],\\\"hYgDIe\\\":[\\\"作成\\\"],\\\"mpt9T+\\\":[\\\"新規アカウントの作成\\\"],\\\"OuTWqr\\\":[\\\"Create, update, and delete any public data linked to your account\\\"],\\\"qfnQHD\\\":[\\\"Custom domains are not supported\\\"],\\\"HKH+W+\\\":[\\\"Data\\\"],\\\"cnGeoo\\\":[\\\"削除\\\"],\\\"u0sEZL\\\":[\\\"Deny access\\\"],\\\"URmyfc\\\":[\\\"Details\\\"],\\\"qavm0B\\\":[\\\"Devices\\\"],\\\"5M4Te3\\\":[\\\"DNS\\\"],\\\"wadss7\\\":[\\\"Don't see an email?\\\"],\\\"2ns2wB\\\":[\\\"e.g. <0>alice.com</0>\\\"],\\\"Zhm/NX\\\":[\\\"e.g. <0>alice\\\",[\\\"0\\\"],\\\"</0>\\\"],\\\"O3oNi5\\\":[\\\"メールアドレス\\\"],\\\"ATGYL1\\\":[\\\"メールアドレス\\\"],\\\"kbts6J\\\":[\\\"Email address successfully updated\\\"],\\\"Y/tbFA\\\":[\\\"Email change request sent\\\"],\\\"j/19E8\\\":[\\\"Email change successful\\\"],\\\"CzD50V\\\":[\\\"Email these instructions\\\"],\\\"PLEl94\\\":[\\\"Email verified\\\"],\\\"3tOlz6\\\":[\\\"パスワードを入力\\\"],\\\"xg/UcZ\\\":[\\\"パスワードをリセットするために受け取ったコードを入力してください。\\\"],\\\"BfIgP6\\\":[\\\"Enter the domain you want to use\\\"],\\\"cHrOqs\\\":[\\\"アカウントの作成に使用したメールアドレスを入力します。新しいパスワードを設定できるように、「リセットコード」をお送りします。\\\"],\\\"xRPn3U\\\":[\\\"メールアドレスを入力してください\\\"],\\\"0StR7t\\\":[\\\"新しいパスワードを入力してください\\\"],\\\"NgaR6B\\\":[\\\"パスワードを入力\\\"],\\\"T0KLp4\\\":[\\\"ユーザー名とパスワードを入力してください\\\"],\\\"jxqcgY\\\":[\\\"example-com-xxxxx-xxxxx\\\"],\\\"xAo8pm\\\":[\\\"詳細を開く\\\"],\\\"/Ltc/k\\\":[\\\"最強\\\"],\\\"PNuvRd\\\":[\\\"Failed to change email\\\"],\\\"b9LiEi\\\":[\\\"Failed to load connected apps\\\"],\\\"CiwBmN\\\":[\\\"Failed to remove device\\\"],\\\"E1zEOj\\\":[\\\"Failed to request email change\\\"],\\\"eMlT5s\\\":[\\\"Failed to request password reset\\\"],\\\"3DLYmM\\\":[\\\"Failed to reset password\\\"],\\\"ginpu1\\\":[\\\"Failed to revoke access\\\"],\\\"yI9fD4\\\":[\\\"Failed to send verification email\\\"],\\\"DsHRti\\\":[\\\"Failed to update username\\\"],\\\"rxy0tG\\\":[\\\"Failed to verify email\\\"],\\\"TiHb0n\\\":[\\\"File contents\\\"],\\\"dn8X5t\\\":[\\\"パスワードを忘れた\\\"],\\\"F4OP4y\\\":[\\\"忘れた?\\\"],\\\"i7VT2T\\\":[\\\"Grant access to your <0/> account\\\"],\\\"87VTIH\\\":[\\\"なにか問題が発生しましたか? <0>サポートに連絡</0>\\\"],\\\"cqWp5F\\\":[\\\"Hello,\\\\n\\\\nTo associate the domain \\\\\\\"\\\",[\\\"handle\\\"],\\\"\\\\\\\" with my AT Protocol identity (\\\",[\\\"did\\\"],\\\"), one of the following configuration changes is required. Either method is sufficient, only one needs to be applied.\\\\n\\\\n\\\",[\\\"0\\\"],\\\"\\\\n\\\\nThe change can be verified by visiting the following URL: \\\",[\\\"troubleshootHref\\\"],\\\"\\\\nA detailed tutorial can be found here: \\\",[\\\"tutorialHref\\\"],\\\"\\\\n\\\\nThank you.\\\"],\\\"c3XJ18\\\":[\\\"Help\\\"],\\\"vLyv1R\\\":[\\\"隠す\\\"],\\\"i0qMbr\\\":[\\\"ホーム\\\"],\\\"Ai2U7L\\\":[\\\"Host\\\"],\\\"LUTGt0\\\":[\\\"HTTP\\\"],\\\"sJGljQ\\\":[\\\"識別子\\\"],\\\"ePYQjq\\\":[\\\"識別情報\\\"],\\\"q6Kda8\\\":[\\\"If you have access to your domain's DNS configuration panel (e.g. via your domain registrar)\\\"],\\\"Zf0mtN\\\":[\\\"If you have access to your domain's web hosting configuration (e.g. via FTP)\\\"],\\\"GNCK6k\\\":[\\\"If you have your own domain, you can use that as your handle. This lets you self-verify your identity. <0>Learn more here</0>.\\\"],\\\"WV5h6m\\\":[\\\"If you update your email address, email 2FA (if enabled) will be disabled.\\\"],\\\"vHJQ4A\\\":[\\\"言語選択\\\"],\\\"JHB/Ky\\\":[\\\"無効\\\"],\\\"AvmoWB\\\":[\\\"Invalid Handle\\\"],\\\"6KlkHI\\\":[\\\"招待コード\\\"],\\\"pWhWXw\\\":[\\\"It appears that you haven’t used this account to sign in to any apps yet.\\\"],\\\"D2aJ64\\\":[\\\"It seems that your browser is not accepting cookies. Press \\\\\\\"Continue\\\\\\\" to try again. If the error persists, please ensure that your privacy settings allow cookies for the \\\\\\\"\\\",[\\\"0\\\"],\\\"\\\\\\\" website.\\\"],\\\"xOTzt5\\\":[\\\"just now\\\"],\\\"NNWPjN\\\":[\\\"Last accessed <0/>\\\"],\\\"sJZ6K9\\\":[\\\"Last seen \\\",[\\\"lastUsedAgo\\\"]],\\\"Q2Fq1L\\\":[\\\"Later\\\"],\\\"Esfg1M\\\":[\\\"パスワードをリセットしましょう!\\\"],\\\"UCOd1e\\\":[\\\"ログイン完了\\\"],\\\"cR9UpQ\\\":[\\\"リストにないアカウントにログイン\\\"],\\\"iG7KNr\\\":[\\\"ロゴ\\\"],\\\"Ssa5RR\\\":[\\\"Looks like you aren't logged in on any other devices.\\\"],\\\"u607t5\\\":[\\\"loopback\\\"],\\\"OgbFua\\\":[\\\"Make a text file with the contents below available at the following URL.\\\"],\\\"huXYDE\\\":[\\\"表示する\\\"],\\\"xSiaWQ\\\":[\\\"Manage applications that have access to your account\\\"],\\\"hqGoYC\\\":[\\\"あなたの <1>@handle</1> を含む <0>すべての識別情報</0> を管理する\\\"],\\\"Xu88FC\\\":[\\\"Manage your account\\\"],\\\"bdNEzF\\\":[\\\"Manage your active sessions\\\"],\\\"YRqkn2\\\":[\\\"あなたのプロフィール、投稿、いいね、フォローを管理\\\"],\\\"0ZqxWk\\\":[\\\"あなたのプロフィール、投稿、いいね、フォローを管理し、あなたのプライベートな設定を読み取る\\\"],\\\"FTdsAu\\\":[\\\"Message\\\"],\\\"VU3Nrn\\\":[\\\"無し\\\"],\\\"dvYuhh\\\":[\\\"中程度\\\"],\\\"KdxItU\\\":[\\\"My Atmosphere Account\\\"],\\\"Aw7BNz\\\":[\\\"Name\\\"],\\\"OenGwo\\\":[\\\"New email address\\\"],\\\"/nT6AE\\\":[\\\"新しいパスワード\\\"],\\\"hXzOVo\\\":[\\\"次へ\\\"],\\\"UaXeX3\\\":[\\\"OK\\\"],\\\"yDlXDJ\\\":[\\\"英数字とハイフンのみ\\\"],\\\"8ZsakT\\\":[\\\"パスワード\\\"],\\\"boBFOP\\\":[\\\"Password reset email sent\\\"],\\\"D9Jms7\\\":[\\\"Password reset successful\\\"],\\\"osAB4a\\\":[\\\"パスワード強度\\\"],\\\"xfNKwI\\\":[\\\"パスワード強度表示\\\"],\\\"fSy6T1\\\":[\\\"パスワードが更新されました\\\"],\\\"DKeVgZ\\\":[\\\"パスワードが更新されました!\\\"],\\\"5CqSPX\\\":[\\\"パスワードは \\\",[\\\"MIN_PASSWORD_LENGTH\\\"],\\\" 文字以上\\\"],\\\"IHV30b\\\":[\\\"Payload\\\"],\\\"RZlEhS\\\":[\\\"あなたに代わってアクションを実行する\\\"],\\\"17SnJo\\\":[\\\"あなたに代わって認証されたアクションを <0>任意のサービス</0> が実行する\\\"],\\\"azHATD\\\":[\\\"Please authenticate to continue\\\"],\\\"JANaVF\\\":[\\\"Please check the email address and try again.\\\"],\\\"GZC2rQ\\\":[\\\"Please check the username and try again.\\\"],\\\"q1d4qv\\\":[\\\"Please check your reset code and try again.\\\"],\\\"78Ju9c\\\":[\\\"Please check your verification code and try again.\\\"],\\\"jK9hhN\\\":[\\\"Please enter the security code that was sent to your email address.\\\"],\\\"U/me+u\\\":[\\\"Please try again in a moment.\\\"],\\\"6gxSCq\\\":[\\\"Please wait \\\",[\\\"remainingSeconds\\\"],\\\" seconds before trying again.\\\"],\\\"LcET2C\\\":[\\\"プライバシーポリシー\\\"],\\\"xs63gu\\\":[\\\"公開された変更\\\"],\\\"yZDyOS\\\":[\\\"メッセージの読み取りと送信\\\"],\\\"FLm/n9\\\":[\\\"あなたのアカウントのメールアドレスを読み取り、更新する\\\"],\\\"fEvm25\\\":[\\\"あなたのアカウントのメールアドレスを読み取る\\\"],\\\"1TxdLU\\\":[\\\"このアカウントをこのデバイスに記憶する\\\"],\\\"IreQBq\\\":[\\\"リポジトリ\\\"],\\\"vJgYMA\\\":[\\\"リセットコード\\\"],\\\"KbS2K9\\\":[\\\"パスワードをリセット\\\"],\\\"slOprG\\\":[\\\"パスワードをリセット\\\"],\\\"6gRgw8\\\":[\\\"Retry\\\"],\\\"VA4HpI\\\":[\\\"Retry in \\\",[\\\"remainingSeconds\\\"],\\\"s\\\"],\\\"Hwam5t\\\":[\\\"Revoke access\\\"],\\\"wLmRnI\\\":[\\\"Security code\\\"],\\\"4fWT0G\\\":[\\\"Security step required\\\"],\\\"T8poTj\\\":[\\\"Select another account\\\"],\\\"HB+TbB\\\":[\\\"ドメインを選択\\\"],\\\"o3dwub\\\":[\\\"既存のアカウントから選択\\\"],\\\"Qze0/r\\\":[\\\"Send verification code\\\"],\\\"1L25jn\\\":[\\\"Sign in\\\"],\\\"yKDCQ1\\\":[\\\"サインイン\\\"],\\\"N9o7n5\\\":[[\\\"0\\\"],\\\" でサインイン\\\"],\\\"FT1MVS\\\":[\\\"アカウントの選択\\\"],\\\"MzTcmM\\\":[\\\"Sign out\\\"],\\\"fcWrnU\\\":[\\\"Sign out\\\"],\\\"e+RpCP\\\":[\\\"サインアップ\\\"],\\\"ZJUDum\\\":[\\\"Stack\\\"],\\\"BEx8rG\\\":[\\\"ステップ \\\",[\\\"currentPosition\\\"],\\\" / \\\",[\\\"count\\\"]],\\\"LLx/nr\\\":[\\\"強い\\\"],\\\"hQRttt\\\":[\\\"送信\\\"],\\\"jAO4/H\\\":[\\\"Successfully removed device\\\"],\\\"AyHABv\\\":[\\\"Successfully revoked access\\\"],\\\"XYLcNv\\\":[\\\"サポート\\\"],\\\"69Gavs\\\":[\\\"技術的な詳細\\\"],\\\"NKHn7N\\\":[\\\"一時的にアカウントを有効化または無効化する\\\"],\\\"xowcRf\\\":[\\\"利用規約\\\"],\\\"zb3TS0\\\":[\\\"アプリは、あなたのネットワーク識別情報を完全に制御することを求めています。つまり、アカウントを <0>永久に壊す</0> ことや、<1>乗っ取る</1> ことさえ可能です。この権限は、本当に信頼できるアプリにのみ付与してください。\\\"],\\\"ZEwA2R\\\":[\\\"アプリは、あなたに代わって次のアクションを実行するために必要な権限を要求しています:\\\"],\\\"C94+Ui\\\":[\\\"The AT Protocol network uses an authentication mechanism that allows to uniquely identify users when communicating with external services. This is typically used to retrieve or update data linked to your account, such as chat messages, feeds or moderation content. The application requests the permissions necessary to perform the following authenticated actions on your behalf:\\\"],\\\"qrCiCk\\\":[\\\"送信データが正しくありません。フォームをチェックしてもう一度お試しください。\\\"],\\\"qDdKKD\\\":[\\\"そのドメイン名は許可されていません\\\"],\\\"+lWheC\\\":[\\\"招待コードが有効ではありません\\\"],\\\"BJ8t7d\\\":[\\\"The server encountered an unexpected error. Please try again.\\\"],\\\"AQ3Zbm\\\":[\\\"The username contains inappropriate language\\\"],\\\"E/Pt37\\\":[\\\"The username could not be resolved\\\"],\\\"AXlE0K\\\":[\\\"The username is already in use\\\"],\\\"C24/JK\\\":[\\\"The username is invalid\\\"],\\\"kx1Bq7\\\":[\\\"These apps have access to your account. An app may appear multiple times if you use it on different devices. You can revoke access to log out the app until you sign in again.\\\"],\\\"3g3aq0\\\":[\\\"This application is requesting the following permissions (scopes) to access your account:\\\"],\\\"oYKcFO\\\":[\\\"この承認リクエストは拒否されました。もう一度お試しください。\\\"],\\\"SZKM0t\\\":[\\\"このメールアドレスはすでに使用されています\\\"],\\\"5OVfoe\\\":[\\\"このサインインセッションの有効期限が切れました\\\"],\\\"3j7n8v\\\":[\\\"This username is reserved\\\"],\\\"ukpmGq\\\":[\\\"To change your password, you'll need to enter a security code sent to your email.\\\"],\\\"+Qnl3Q\\\":[\\\"To verify your email, you'll need to enter a security code sent to <0>\\\",[\\\"email\\\"],\\\"</0>.\\\"],\\\"nURwxX\\\":[\\\"対象\\\"],\\\"et+mIi\\\":[\\\"Troubleshoot\\\"],\\\"+zy2Nq\\\":[\\\"Type\\\"],\\\"VxXoAs\\\":[\\\"Type your domain\\\"],\\\"Vgj5ph\\\":[\\\"Type your username\\\"],\\\"dA/8If\\\":[\\\"Unauthorized\\\"],\\\"Jja+Vn\\\":[\\\"予期しないサーバー応答\\\"],\\\"K80Okk\\\":[\\\"Unknown user agent\\\"],\\\"EkH9pt\\\":[\\\"更新\\\"],\\\"GmYkFm\\\":[\\\"Update your email\\\"],\\\"T6sYqW\\\":[\\\"Update your username\\\"],\\\"O78aQm\\\":[\\\"Update your username to a domain name you own to self-verify your identity.\\\"],\\\"sCtyHQ\\\":[\\\"ファイルのアップロード\\\"],\\\"IagCbF\\\":[\\\"URL\\\"],\\\"57gCMx\\\":[\\\"Use a default username\\\"],\\\"Pahpw8\\\":[\\\"Use a domain name I own\\\"],\\\"7sNhEz\\\":[\\\"Username\\\"],\\\"nZx9mr\\\":[\\\"ユーザー名またはメールアドレス\\\"],\\\"2HQiAC\\\":[\\\"Username updated\\\"],\\\"nfagfM\\\":[\\\"有効\\\"],\\\"wMHvYH\\\":[\\\"Value\\\"],\\\"AdWhjZ\\\":[\\\"Verification code\\\"],\\\"I6Q2R9\\\":[\\\"Verification email sent\\\"],\\\"2AW+PM\\\":[\\\"Verification method\\\"],\\\"NbkAR9\\\":[\\\"Verification successful!\\\"],\\\"G7Vcxo\\\":[\\\"Verify and Save\\\"],\\\"HFfnZo\\\":[\\\"Verify now\\\"],\\\"TePUFC\\\":[\\\"Verify the website address before entering your password. Only sign in on sites you recognize and trust.\\\"],\\\"aIar4b\\\":[\\\"あなたが人間であることを確認\\\"],\\\"/IBv6X\\\":[\\\"Verify your email\\\"],\\\"sUabXh\\\":[\\\"あなたの <0/> アカウントにアクセスしようとしています\\\"],\\\"AM8FL/\\\":[\\\"あなたの <0/> アカウントを通じてあなたを識別しようとしています\\\"],\\\"r6y+jM\\\":[\\\"Warning\\\"],\\\"qjBGxf\\\":[\\\"私たちはあなたが参加してくれることをとても楽しみにしています!\\\"],\\\"9ls/Vs\\\":[\\\"弱い\\\"],\\\"6jfS51\\\":[\\\"Welcome\\\"],\\\"z73+hu\\\":[\\\"What does this mean?\\\"],\\\"nxn0xR\\\":[\\\"What is an Atmosphere Account?\\\"],\\\"jSVjfa\\\":[\\\"識別子またはパスワードが間違っています\\\"],\\\"rQRrkB\\\":[\\\"yesterday\\\"],\\\"qq6QQ5\\\":[\\\"リダイレクトしています…\\\"],\\\"B9VwbO\\\":[\\\"アカウントのセットアップ後にユーザー名を自分がコントロールしているドメイン名に変更することができます。\\\"],\\\"YNQVYW\\\":[\\\"You can now sign in with your new email.\\\"],\\\"67nRLM\\\":[\\\"新しいパスワードでサインインできるようになりました。\\\"],\\\"imRJNy\\\":[\\\"「リセットコード」が記載されたメールが届きます。ここにコードを入力し、新しいパスワードを入力します。\\\"],\\\"gdRnT7\\\":[\\\"あなたのアカウント\\\"],\\\"CbBmBd\\\":[\\\"Your account is signed in on the devices listed below. If your account was compromised, sign out all devices, change your password, and check your connected <0>apps</0>.\\\"],\\\"Jn0vdi\\\":[\\\"Your Atmosphere account is hosted by <0/>.\\\"],\\\"W5g73W\\\":[\\\"Your email address has been successfully updated and needs to be verified. Please enter the verification code that was sent to <0>\\\",[\\\"email\\\"],\\\"</0>.\\\"],\\\"HrYlJ7\\\":[\\\"Your email address has been verified.\\\"],\\\"Eo3tBf\\\":[\\\"Your email address needs to be verified.\\\"],\\\"r/b/p8\\\":[\\\"あなたのフルユーザー名: \\\",[\\\"0\\\"]],\\\"+qGdcW\\\":[\\\"パスワードが変更されました!\\\"],\\\"SCnKXT\\\":[\\\"Your repository contains all the data publicly available on the AT Protocol network, such as Bluesky posts, likes, and follows. It also contains data created through other apps you've signed into using this account. The application requests the permissions necessary to publish the following changes to your repository:\\\"],\\\"Z3PAZP\\\":[\\\"Your session has expired. Please sign in again.\\\"],\\\"6Hg1zS\\\":[\\\"Your username has been updated.\\\"]}\")as Messages;"],"names":["messages","JSON","parse"],"mappings":"AAAuEA,MAAAA,EAASC,KAAKC,MAAM,umdAAg4f"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=JSON.parse(`{"cd9Wo5":["il y a ",["deltaDays"]," jours"],"69w9p3":["il y a ",["deltaHours"]," heures"],"KtNcea":["il y a ",["deltaMinutes"]," minutes"],"ZWuMKu":["<0>AT Protocol</0> — Documentation technique pour les développeurs"],"NS7S2h":["<0>Bluesky Social</0> — Informations générales sur le réseau"],"7+d6kP":["<0>En savoir plus</0><1>Vous voulez en savoir plus sur la technologie et le réseau derrière votre compte Atmosphère ?</1>"],"bfpG7G":["<0>Ce site web : le centre de contrôle de votre compte</0><1>Le site web sur lequel vous êtes actuellement est votre <2>centre de gestion de compte</2>. Ici, vous pouvez :</1><3><4>Mettre à jour votre adresse email et votre mot de passe</4><5>Gérer vos données personnelles et les paramètres de sécurité</5><6>Afficher et gérer les sessions actives sur tous les appareils (navigateurs où une session est ouverte)</6></3><7>C'est ici que vous pouvez contrôler les aspects fondamentaux de votre identité Atmosphère, indépendamment des aspects spécifiques liés à une application, comme par exemple le profil que vous avez sur <8>Bluesky</8>.</7><9>Votre compte Atmosphère est actuellement hébergé par <10/>, l'un des nombreux fournisseurs d'hébergement du réseau Atmosphère. Vous pouvez à tout moment changer de fournisseur sans perdre votre compte, votre identité ou vos données.</9>"],"SBs48I":["<0>Utilisez-le avec plusieurs applications</0><1>Votre compte Atmosphère fonctionne avec le réseau social <2>Bluesky</2> ainsi que toutes les autres applications sociales construites sur le même réseau.</1><3>De la même manière que vous pouvez utiliser la même adresse email pour vous connecter à différents sites web, votre compte Atmosphère vous permet de vous connecter à différentes applications sociales tout en conservant la même identité, les mêmes connexions et le même contenu.</3><4>Lorsque vous voyez des options pour vous connecter avec un \\"compte Atmosphère\\" ou un \\"Pseudo Internet\\" sur d'autres applications, vous pouvez utiliser votre compte existant <5><6/></5> plutôt que d'en créer un nouveau.</4>"],"/y3yb7":["<0>Qu'est-ce qu'un compte Atmosphère ?</0><1>Un <2>compte Atmosphère</2> est votre identité personnelle sur l'Atmosphère. Pensez-y comme à un passeport numérique que vous possédez vraiment, pas lié à une seule application ou entreprise.</1>"],"gB0RTR":["<0>Qu'est-ce qui le rend spécial</0><1>La grande différence : vos données ne sont pas enfermées dans une seule application. Contrairement aux comptes de médias sociaux traditionnels, où vos données appartiennent à la plateforme, avec un compte Atmosphère, vous possédez véritablement votre identité et vos données :</1><2><3><4>Vous possédez votre identité</4> : Votre identifiant permanent vous appartient, et vous pouvez utiliser un nom de domaine que vous possédez comme nom d'utilisateur si vous le souhaitez</3><5><6>Vos données sont portables</6> : Vos posts, follows, likes et autres contenus sont stockés dans votre espace de données personnel</5><7><8>Vous pouvez vous déplacer librement</8> : Changez de fournisseur d'hébergement sans perdre vos followers, vos posts ou vos connexions. Cela vous permet également de choisir un fournisseur dans votre pays si l'emplacement de vos données est important.</7><9><10>Plusieurs applications, une identité</10> : Utilisez le même compte sur différentes applications construites sur le même réseau</9></2>"],"Qy+y0S":["<votre-domaine>"],"x6/d1l":["il y a 1 heure"],"kMDavg":["il y a 1 minute"],"4blS0m":["Confirmation 2FA"],"4Yp2r7":["Une application locale"],"HJQIko":["Un second facteur d'authentification est requis (",["hint"],")"],"BO3Kuy":["Un service contrôlé par <0>",["domain"],"</0>"],"uyJsf6":["À propos"],"AeXO77":["Compte utilisateur"],"ehmMI/":["Avatar du compte"],"kce6cL":["Identifiant du compte"],"F9cvwz":["Nom du compte"],"OLYdKb":["Aperçu du compte"],"1D3nu5":["Sélecteur de compte"],"Qo3Cxp":["Nom d'utilisateur du compte"],"wIcl4E":["Ajoutez le champ suivant à la configuration DNS de votre domaine."],"pC6cwz":["alice.com"],"FTT4a4":["Vous avez déjà un code ?"],"eYNzrj":["Une application sur votre appareil"],"Vw8l6h":["Une erreur s'est produite"],"byKna+":["Une erreur inattendue s'est produite. Veuillez réessayer."],"vW+T+d":["Une erreur inconnue s'est produite"],"+TaG50":["Un autre compte"],"a6yfpg":["N'importe quelle collection"],"P5xSNt":["N'importe quelle action"],"UuQciw":["N'importe quel service"],"VDvaN2":["Applications"],"SLeBc7":["Les applications peuvent accéder à votre compte en arrière-plan (pour vérifier les notifications, synchroniser les données, etc.) même lorsque vous ne les utilisez pas activement. C'est un comportement normal qui sera reflété dans l'heure de \\"dernier accès\\" affichée ci-dessus."],"fHQh98":["Se connecter"],"ZJUrL+":["Vous authentifier"],"Xund1M":["Autoriser"],"4hPphw":["Autorisé le ",["0"]],"iH8pgl":["Retour"],"4Rgp24":["Entre ",["minLength"]," et ",["maxLength"]," caractères"],"4X0Qky":["Stockage de fichiers"],"3GEYP0":["Services de l'application Bluesky"],"eglFj/":["Services de messagerie Bluesky"],"A3MAIm":["Personnalisation"],"K6KMLt":["En cliquant sur <0>Autoriser</0>, vous accorderez à cette application l'accès à votre compte conformément à ses <1>conditions d'utilisation</1> et sa <2>politique de confidentialité</2>."],"mBUXx0":["En créant un compte, vous acceptez les ",["0"]," et la ",["1"]," de ce service."],"b4SMYa":["Appeler"],"dEgA5A":["Annuler"],"JOalQJ":["Impossible de supprimer l'appareil en cours d'utilisation"],"lbjZdy":["Modifier votre <0>@pseudo</0>"],"qRxXtM":["Changer votre mot de passe"],"AHZflp":["Messagerie"],"B+Yy3b":["Consultez la boîte de réception de ",["0"]," pour y trouver un code de connexion, et saisissez-le ici."],"rpbuva":["Consultez votre boîte de réception pour obtenir le code de vérification."],"lAK2OC":["Vérifiez votre boîte de réception."],"Bno89U":["Choisissez un nouveau nom d'utilisateur par défaut."],"vsqx1t":["Choisissez une nouvelle adresse email à associer à votre compte."],"khEQ02":["Choisissez un nom d'utilisateur"],"56n0wU":["Cliquez ici si vous n'êtes pas automatiquement redirigé"],"x1TXhd":["Cliquez ici pour renvoyer."],"yz7wBu":["Fermer"],"NqPBw0":["Fermer le sélecteur de compte"],"n5fb8M":["Fermer les détails"],"Gt+Z/D":["Code"],"UwGV9B":["Confirmer"],"HaGV2g":["Confirmez votre mot de passe pour continuer"],"ioZOzk":["Code de confirmation"],"xGVfLh":["Continuer"],"MLyLW8":["Erreur de cookies"],"6V3Ea3":["Copié"],"/4gGIX":["Copier dans le presse-papiers"],"hYgDIe":["Créer"],"mpt9T+":["Créer un nouveau compte"],"OuTWqr":["Créer, mettre à jour et supprimer toutes les données publiques de votre compte"],"qfnQHD":["Les domaines personnalisés ne sont pas pris en charge"],"HKH+W+":["Données"],"cnGeoo":["Supprimer"],"u0sEZL":["Refuser l'accès"],"URmyfc":["Détails"],"qavm0B":["Appareils"],"5M4Te3":["DNS"],"wadss7":["Pas reçu d'email ?"],"2ns2wB":["ex. <0>alice.com</0>"],"Zhm/NX":["ex. <0>alice",["0"],"</0>"],"O3oNi5":["Email"],"ATGYL1":["Adresse email"],"kbts6J":["Adresse email mise à jour avec succès"],"Y/tbFA":["Demande de modification d'adresse email envoyée"],"j/19E8":["Modification de l'adresse email réussie"],"CzD50V":["Envoyer ces instructions par email"],"PLEl94":["Adresse email vérifiée"],"3tOlz6":["Saisissez un mot de passe"],"xg/UcZ":["Saisissez le code que vous avez reçu pour réinitialiser votre mot de passe."],"BfIgP6":["Saisissez le domaine que vous souhaitez utiliser"],"cHrOqs":["Saisissez l'email que vous avez utilisé pour créer votre compte. Nous vous enverrons un \\"code de réinitialisation\\" pour que vous puissiez définir un nouveau mot de passe."],"xRPn3U":["Saisissez votre adresse email"],"0StR7t":["Saisissez votre nouveau mot de passe"],"NgaR6B":["Saisissez votre mot de passe"],"T0KLp4":["Saisissez votre nom d'utilisateur et votre mot de passe"],"jxqcgY":["exemple-com-xxxxx-xxxxx"],"xAo8pm":["Développer les détails"],"/Ltc/k":["Extra"],"PNuvRd":["Échec de la modification de l'adresse email"],"b9LiEi":["Échec du chargement des applications connectées"],"CiwBmN":["Échec de la suppression de l'appareil"],"E1zEOj":["Échec de la demande de modification d'adresse email"],"eMlT5s":["Échec de la demande de réinitialisation du mot de passe"],"3DLYmM":["Échec de la réinitialisation du mot de passe"],"ginpu1":["Échec de la révocation de l'accès"],"yI9fD4":["Échec de l'envoi de l'email de vérification"],"DsHRti":["Échec de la modification du nom d'utilisateur"],"rxy0tG":["Échec de la vérification de l'adresse email"],"TiHb0n":["Contenu du fichier"],"dn8X5t":["Mot de passe oublié"],"F4OP4y":["Oublié ?"],"i7VT2T":["Accorder l'accès à votre compte <0/>"],"87VTIH":["Vous rencontrez des difficultés ? <0>Contactez le support</0>"],"cqWp5F":["Bonjour,\\n\\nPour associer le domaine \\"",["handle"],"\\" à mon identité AT Protocol (",["did"],"), l'une des modifications de configuration suivantes est requise. Chaque méthode est suffisante, une seule doit être appliquée.\\n\\n",["0"],"\\n\\nLa modification peut être vérifiée en visitant l'URL suivante : ",["troubleshootHref"],"\\nUn tutoriel détaillé est disponible ici : ",["tutorialHref"],"\\n\\nMerci."],"c3XJ18":["Aide"],"vLyv1R":["Masquer"],"i0qMbr":["Accueil"],"Ai2U7L":["Hôte"],"LUTGt0":["HTTP"],"sJGljQ":["Identifiant"],"ePYQjq":["Identité"],"q6Kda8":["Si vous avez accès au panneau de configuration DNS de votre domaine (par exemple via votre registraire de domaine)"],"Zf0mtN":["Si vous avez accès à la configuration de l'hébergement web de votre domaine (par exemple via FTP)"],"GNCK6k":["Si vous avez votre propre domaine, vous pouvez l'utiliser comme pseudo. Cela vous permet de vérifier vous-même votre identité. <0>En savoir plus ici</0>."],"WV5h6m":["Si vous mettez à jour votre adresse email, la 2FA par email (si activée) sera désactivée."],"vHJQ4A":["Sélecteur de langue"],"JHB/Ky":["Invalide"],"AvmoWB":["Pseudo invalide"],"6KlkHI":["Code d'invitation"],"pWhWXw":["Il semble que vous n'ayez pas encore utilisé ce compte pour vous connecter à des applications."],"D2aJ64":["Il semble que votre navigateur n'accepte pas les cookies. Appuyez sur \\"Continuer\\" pour réessayer. Si l'erreur persiste, veuillez vous assurer que vos paramètres de confidentialité autorisent les cookies pour le site \\"",["0"],"\\"."],"xOTzt5":["à l'instant"],"NNWPjN":["Dernier accès <0/>"],"sJZ6K9":["Dernière connexion ",["lastUsedAgo"]],"Q2Fq1L":["Plus tard"],"Esfg1M":["Réinitialisons votre mot de passe !"],"UCOd1e":["Connexion terminée"],"cR9UpQ":["Se connecter à un compte qui n'est pas listé"],"iG7KNr":["Logo"],"Ssa5RR":["Il semble que vous n'ayez de session active sur aucun autre appareil."],"u607t5":["loopback"],"OgbFua":["Rendez un fichier texte avec le contenu ci-dessous disponible à l'URL suivante."],"huXYDE":["Rendre visible"],"xSiaWQ":["Gérer les applications qui ont accès à votre compte"],"hqGoYC":["Gérer votre <0>identité complète</0> y compris votre <1>@pseudo</1>"],"Xu88FC":["Gérer votre compte"],"bdNEzF":["Gérer vos sessions actives"],"YRqkn2":["Gérer votre profil, vos posts, vos likes et vos follows"],"0ZqxWk":["Gérer votre profil, vos posts, vos likes et vos follows, ainsi que lire vos préférences privées"],"FTdsAu":["Message d'erreur"],"VU3Nrn":["Manquant"],"dvYuhh":["Modéré"],"KdxItU":["Mon compte Atmosphère"],"Aw7BNz":["Nom"],"OenGwo":["Nouvelle adresse email"],"/nT6AE":["Nouveau mot de passe"],"hXzOVo":["Suivant"],"UaXeX3":["OK"],"yDlXDJ":["Uniquement des lettres, des chiffres et des traits d'union"],"8ZsakT":["Mot de passe"],"boBFOP":["Email de réinitialisation du mot de passe envoyé"],"D9Jms7":["Réinitialisation du mot de passe réussie"],"osAB4a":["Complexité du mot de passe"],"xfNKwI":["Indicateur de complexité du mot de passe"],"fSy6T1":["Mot de passe mis à jour"],"DKeVgZ":["Mot de passe mis à jour !"],"5CqSPX":["Mot de passe d'au moins ",["MIN_PASSWORD_LENGTH"]," caractères"],"IHV30b":["Détails"],"RZlEhS":["Effectuer des actions en votre nom"],"17SnJo":["Effectuer des actions authentifiées vers <0>n'importe quel service</0> en votre nom"],"azHATD":["Veuillez vous connecter pour continuer"],"JANaVF":["Veuillez vérifier l'adresse email et réessayer."],"GZC2rQ":["Veuillez vérifier le nom d'utilisateur et réessayer."],"q1d4qv":["Veuillez vérifier votre code de réinitialisation et réessayer."],"78Ju9c":["Veuillez vérifier votre code de vérification et réessayer."],"jK9hhN":["Veuillez saisir le code de sécurité qui a été envoyé à votre adresse email."],"U/me+u":["Veuillez réessayer dans un instant."],"6gxSCq":["Veuillez attendre ",["remainingSeconds"]," secondes avant de réessayer."],"LcET2C":["Politique de Confidentialité"],"xs63gu":["Publier des modifications"],"yZDyOS":["Lire et envoyer des messages"],"FLm/n9":["Lire et mettre à jour l'adresse email de votre compte"],"fEvm25":["Lire l'adresse email de votre compte"],"1TxdLU":["Se souvenir de ce compte sur cet appareil"],"IreQBq":["Données publiques"],"vJgYMA":["Code de réinitialisation"],"KbS2K9":["Réinitialiser le mot de passe"],"slOprG":["Réinitialisez votre mot de passe"],"6gRgw8":["Réessayer"],"VA4HpI":["Réessayer dans ",["remainingSeconds"],"s"],"Hwam5t":["Révoquer l'accès"],"wLmRnI":["Code de sécurité"],"4fWT0G":["Étape de sécurité requise"],"T8poTj":["Sélectionner un autre compte"],"HB+TbB":["Sélectionner le domaine"],"o3dwub":["Sélectionner un compte"],"Qze0/r":["Envoyer le code de vérification"],"1L25jn":["Connexion"],"yKDCQ1":["Se connecter"],"N9o7n5":["Se connecter en tant que ",["0"]],"FT1MVS":["Se connecter en tant que..."],"MzTcmM":["Déconnecter"],"fcWrnU":["Se déconnecter"],"e+RpCP":["Inscription"],"ZJUDum":["Trace"],"BEx8rG":["Étape ",["currentPosition"]," sur ",["count"]],"LLx/nr":["Fort"],"hQRttt":["Valider"],"jAO4/H":["Appareil supprimé"],"AyHABv":["Accès révoqué"],"XYLcNv":["Support"],"69Gavs":["Détails techniques"],"NKHn7N":["Activer ou désactiver temporairement votre compte"],"xowcRf":["Conditions d'Utilisation"],"zb3TS0":["L'application demande un contrôle total sur votre identité, ce qui signifie qu'elle pourrait <0>casser de façon permanente</0>, ou même <1>usurper</1>, votre compte. N'autorisez l'accès qu'aux applications auxquelles vous faites vraiment confiance."],"ZEwA2R":["L'application demande les autorisations nécessaires pour effectuer les actions suivantes en votre nom :"],"C94+Ui":["Le réseau AT Protocol utilise un mécanisme d'authentification qui permet d'identifier de manière unique les utilisateurs lors de la communication avec des services externes. Cela est généralement utilisé pour récupérer ou mettre à jour des données liées à votre compte, telles que les messages privés, les feeds ou le contenu de modération. L'application demande les autorisations nécessaires pour effectuer les actions authentifiées suivantes en votre nom :"],"qrCiCk":["Les données que vous avez soumises sont invalides. Veuillez vérifier le formulaire et réessayer."],"qDdKKD":["Le nom de domaine n'est pas autorisé"],"+lWheC":["Le code d'invitation n'est pas valide"],"BJ8t7d":["Le serveur a rencontré une erreur inattendue. Veuillez réessayer."],"AQ3Zbm":["Le nom d'utilisateur contient un langage inapproprié"],"E/Pt37":["Le nom d'utilisateur n'a pas pu être résolu"],"AXlE0K":["Le nom d'utilisateur est déjà utilisé"],"C24/JK":["Le nom d'utilisateur est invalide"],"kx1Bq7":["Ces applications ont accès à votre compte. Une application peut apparaître plusieurs fois si vous l'utilisez sur différents appareils. Vous pouvez révoquer l'accès pour déconnecter l'application jusqu'à ce que vous vous reconnectiez."],"3g3aq0":["Cette application demande les autorisations (scopes) suivantes pour accéder à votre compte :"],"oYKcFO":["Cette demande d'autorisation a été refusée. Veuillez réessayer."],"SZKM0t":["Cette adresse email est déjà utilisée"],"5OVfoe":["Cette session de connexion a expiré"],"3j7n8v":["Ce nom d'utilisateur est réservé"],"ukpmGq":["Pour changer votre mot de passe, vous devrez entrer un code de sécurité envoyé à votre adresse email."],"+Qnl3Q":["Pour vérifier votre adresse email, vous devrez entrer un code de sécurité envoyé à <0>",["email"],"</0>."],"nURwxX":["Auprès de"],"et+mIi":["Dépannage"],"+zy2Nq":["Type"],"VxXoAs":["Saisissez votre nom de domaine"],"Vgj5ph":["Saisissez votre nom d'utilisateur"],"dA/8If":["Déconnecté"],"Jja+Vn":["Réponse inattendue du serveur"],"K80Okk":["Agent utilisateur inconnu"],"EkH9pt":["Modifier"],"GmYkFm":["Modifier votre adresse email"],"T6sYqW":["Modifier votre nom d'utilisateur"],"O78aQm":["Modifiez votre nom d'utilisateur pour un nom de domaine que vous possédez afin de vérifier vous-même votre identité."],"sCtyHQ":["Téléverser des fichiers"],"IagCbF":["URL"],"57gCMx":["Utiliser un nom d'utilisateur par défaut"],"Pahpw8":["Utiliser un nom de domaine que je possède"],"7sNhEz":["Nom d'utilisateur"],"nZx9mr":["Nom d'utilisateur ou adresse email"],"2HQiAC":["Nom d'utilisateur modifié"],"nfagfM":["Valide"],"wMHvYH":["Valeur"],"AdWhjZ":["Code de vérification"],"I6Q2R9":["Email de vérification envoyé"],"2AW+PM":["Méthode de vérification"],"NbkAR9":["Vérification réussie !"],"G7Vcxo":["Vérifier et enregistrer"],"HFfnZo":["Vérifier"],"TePUFC":["Vérifiez l'adresse du site avant de saisir votre mot de passe. N'entrez votre mot de passe que sur des sites que vous reconnaissez et en lesquels vous avez confiance."],"aIar4b":["Vérifiez que vous êtes humain"],"/IBv6X":["Vérifier votre adresse email"],"sUabXh":["veut accéder à votre compte <0/>"],"AM8FL/":["veut vous identifier de manière unique via votre compte <0/>"],"r6y+jM":["Avertissement"],"qjBGxf":["Nous sommes ravis de vous accueillir parmi nous !"],"9ls/Vs":["Faible"],"6jfS51":["Bienvenue"],"z73+hu":["Qu'est-ce que ça signifie ?"],"nxn0xR":["Qu'est-ce qu'un compte Atmosphère ?"],"jSVjfa":["Identifiant ou mot de passe incorrect"],"rQRrkB":["hier"],"qq6QQ5":["Redirection en cours..."],"B9VwbO":["Vous pourrez changer ce nom d'utilisateur pour n'importe quel nom de domaine sous votre contrôle une fois votre compte créé."],"YNQVYW":["Vous pouvez maintenant vous connecter avec votre nouvelle adresse email."],"67nRLM":["Vous pouvez maintenant vous connecter avec votre nouveau mot de passe."],"imRJNy":["Vous recevrez un email avec un \\"code de réinitialisation\\". Saisissez ce code ici puis entrez votre nouveau mot de passe."],"gdRnT7":["Votre compte"],"CbBmBd":["Une session est ouverte sur les appareils listés ci-dessous. Si votre compte a été compromis, déconnectez tous les appareils, changez votre mot de passe et vérifiez vos <0>applications</0> connectées."],"Jn0vdi":["Votre compte Atmosphère est hébergé chez <0/>."],"W5g73W":["Votre adresse email a été mise à jour avec succès et doit être vérifiée. Veuillez saisir le code de vérification qui a été envoyé à <0>",["email"],"</0>."],"HrYlJ7":["Votre adresse email a été vérifiée."],"Eo3tBf":["Votre adresse email doit être vérifiée."],"r/b/p8":["Votre nom d'utilisateur complet sera : ",["0"]],"+qGdcW":["Votre mot de passe a été mis à jour !"],"SCnKXT":["Votre dépôt contient toutes les données publiquement disponibles sur le réseau AT Protocol, telles que les posts, les likes et les follows de Bluesky. Il contient également les données créées via d'autres applications utilisées avec ce compte. L'application demande les autorisations nécessaires pour publier les modifications suivantes sur votre dépôt :"],"Z3PAZP":["Votre session a expiré. Veuillez vous reconnecter."],"6Hg1zS":["Votre nom d'utilisateur a été mis à jour."]}`);export{e as messages};
|
|
2
|
+
//# sourceMappingURL=messages-BaWkJYfB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages-BaWkJYfB.js","sources":["../src/locales/fr/messages.ts"],"sourcesContent":["/*eslint-disable*/import type{Messages}from\"@lingui/core\";export const messages=JSON.parse(\"{\\\"cd9Wo5\\\":[\\\"il y a \\\",[\\\"deltaDays\\\"],\\\" jours\\\"],\\\"69w9p3\\\":[\\\"il y a \\\",[\\\"deltaHours\\\"],\\\" heures\\\"],\\\"KtNcea\\\":[\\\"il y a \\\",[\\\"deltaMinutes\\\"],\\\" minutes\\\"],\\\"ZWuMKu\\\":[\\\"<0>AT Protocol</0> — Documentation technique pour les développeurs\\\"],\\\"NS7S2h\\\":[\\\"<0>Bluesky Social</0> — Informations générales sur le réseau\\\"],\\\"7+d6kP\\\":[\\\"<0>En savoir plus</0><1>Vous voulez en savoir plus sur la technologie et le réseau derrière votre compte Atmosphère ?</1>\\\"],\\\"bfpG7G\\\":[\\\"<0>Ce site web : le centre de contrôle de votre compte</0><1>Le site web sur lequel vous êtes actuellement est votre <2>centre de gestion de compte</2>. Ici, vous pouvez :</1><3><4>Mettre à jour votre adresse email et votre mot de passe</4><5>Gérer vos données personnelles et les paramètres de sécurité</5><6>Afficher et gérer les sessions actives sur tous les appareils (navigateurs où une session est ouverte)</6></3><7>C'est ici que vous pouvez contrôler les aspects fondamentaux de votre identité Atmosphère, indépendamment des aspects spécifiques liés à une application, comme par exemple le profil que vous avez sur <8>Bluesky</8>.</7><9>Votre compte Atmosphère est actuellement hébergé par <10/>, l'un des nombreux fournisseurs d'hébergement du réseau Atmosphère. Vous pouvez à tout moment changer de fournisseur sans perdre votre compte, votre identité ou vos données.</9>\\\"],\\\"SBs48I\\\":[\\\"<0>Utilisez-le avec plusieurs applications</0><1>Votre compte Atmosphère fonctionne avec le réseau social <2>Bluesky</2> ainsi que toutes les autres applications sociales construites sur le même réseau.</1><3>De la même manière que vous pouvez utiliser la même adresse email pour vous connecter à différents sites web, votre compte Atmosphère vous permet de vous connecter à différentes applications sociales tout en conservant la même identité, les mêmes connexions et le même contenu.</3><4>Lorsque vous voyez des options pour vous connecter avec un \\\\\\\"compte Atmosphère\\\\\\\" ou un \\\\\\\"Pseudo Internet\\\\\\\" sur d'autres applications, vous pouvez utiliser votre compte existant <5><6/></5> plutôt que d'en créer un nouveau.</4>\\\"],\\\"/y3yb7\\\":[\\\"<0>Qu'est-ce qu'un compte Atmosphère ?</0><1>Un <2>compte Atmosphère</2> est votre identité personnelle sur l'Atmosphère. Pensez-y comme à un passeport numérique que vous possédez vraiment, pas lié à une seule application ou entreprise.</1>\\\"],\\\"gB0RTR\\\":[\\\"<0>Qu'est-ce qui le rend spécial</0><1>La grande différence : vos données ne sont pas enfermées dans une seule application. Contrairement aux comptes de médias sociaux traditionnels, où vos données appartiennent à la plateforme, avec un compte Atmosphère, vous possédez véritablement votre identité et vos données :</1><2><3><4>Vous possédez votre identité</4> : Votre identifiant permanent vous appartient, et vous pouvez utiliser un nom de domaine que vous possédez comme nom d'utilisateur si vous le souhaitez</3><5><6>Vos données sont portables</6> : Vos posts, follows, likes et autres contenus sont stockés dans votre espace de données personnel</5><7><8>Vous pouvez vous déplacer librement</8> : Changez de fournisseur d'hébergement sans perdre vos followers, vos posts ou vos connexions. Cela vous permet également de choisir un fournisseur dans votre pays si l'emplacement de vos données est important.</7><9><10>Plusieurs applications, une identité</10> : Utilisez le même compte sur différentes applications construites sur le même réseau</9></2>\\\"],\\\"Qy+y0S\\\":[\\\"<votre-domaine>\\\"],\\\"x6/d1l\\\":[\\\"il y a 1 heure\\\"],\\\"kMDavg\\\":[\\\"il y a 1 minute\\\"],\\\"4blS0m\\\":[\\\"Confirmation 2FA\\\"],\\\"4Yp2r7\\\":[\\\"Une application locale\\\"],\\\"HJQIko\\\":[\\\"Un second facteur d'authentification est requis (\\\",[\\\"hint\\\"],\\\")\\\"],\\\"BO3Kuy\\\":[\\\"Un service contrôlé par <0>\\\",[\\\"domain\\\"],\\\"</0>\\\"],\\\"uyJsf6\\\":[\\\"À propos\\\"],\\\"AeXO77\\\":[\\\"Compte utilisateur\\\"],\\\"ehmMI/\\\":[\\\"Avatar du compte\\\"],\\\"kce6cL\\\":[\\\"Identifiant du compte\\\"],\\\"F9cvwz\\\":[\\\"Nom du compte\\\"],\\\"OLYdKb\\\":[\\\"Aperçu du compte\\\"],\\\"1D3nu5\\\":[\\\"Sélecteur de compte\\\"],\\\"Qo3Cxp\\\":[\\\"Nom d'utilisateur du compte\\\"],\\\"wIcl4E\\\":[\\\"Ajoutez le champ suivant à la configuration DNS de votre domaine.\\\"],\\\"pC6cwz\\\":[\\\"alice.com\\\"],\\\"FTT4a4\\\":[\\\"Vous avez déjà un code ?\\\"],\\\"eYNzrj\\\":[\\\"Une application sur votre appareil\\\"],\\\"Vw8l6h\\\":[\\\"Une erreur s'est produite\\\"],\\\"byKna+\\\":[\\\"Une erreur inattendue s'est produite. Veuillez réessayer.\\\"],\\\"vW+T+d\\\":[\\\"Une erreur inconnue s'est produite\\\"],\\\"+TaG50\\\":[\\\"Un autre compte\\\"],\\\"a6yfpg\\\":[\\\"N'importe quelle collection\\\"],\\\"P5xSNt\\\":[\\\"N'importe quelle action\\\"],\\\"UuQciw\\\":[\\\"N'importe quel service\\\"],\\\"VDvaN2\\\":[\\\"Applications\\\"],\\\"SLeBc7\\\":[\\\"Les applications peuvent accéder à votre compte en arrière-plan (pour vérifier les notifications, synchroniser les données, etc.) même lorsque vous ne les utilisez pas activement. C'est un comportement normal qui sera reflété dans l'heure de \\\\\\\"dernier accès\\\\\\\" affichée ci-dessus.\\\"],\\\"fHQh98\\\":[\\\"Se connecter\\\"],\\\"ZJUrL+\\\":[\\\"Vous authentifier\\\"],\\\"Xund1M\\\":[\\\"Autoriser\\\"],\\\"4hPphw\\\":[\\\"Autorisé le \\\",[\\\"0\\\"]],\\\"iH8pgl\\\":[\\\"Retour\\\"],\\\"4Rgp24\\\":[\\\"Entre \\\",[\\\"minLength\\\"],\\\" et \\\",[\\\"maxLength\\\"],\\\" caractères\\\"],\\\"4X0Qky\\\":[\\\"Stockage de fichiers\\\"],\\\"3GEYP0\\\":[\\\"Services de l'application Bluesky\\\"],\\\"eglFj/\\\":[\\\"Services de messagerie Bluesky\\\"],\\\"A3MAIm\\\":[\\\"Personnalisation\\\"],\\\"K6KMLt\\\":[\\\"En cliquant sur <0>Autoriser</0>, vous accorderez à cette application l'accès à votre compte conformément à ses <1>conditions d'utilisation</1> et sa <2>politique de confidentialité</2>.\\\"],\\\"mBUXx0\\\":[\\\"En créant un compte, vous acceptez les \\\",[\\\"0\\\"],\\\" et la \\\",[\\\"1\\\"],\\\" de ce service.\\\"],\\\"b4SMYa\\\":[\\\"Appeler\\\"],\\\"dEgA5A\\\":[\\\"Annuler\\\"],\\\"JOalQJ\\\":[\\\"Impossible de supprimer l'appareil en cours d'utilisation\\\"],\\\"lbjZdy\\\":[\\\"Modifier votre <0>@pseudo</0>\\\"],\\\"qRxXtM\\\":[\\\"Changer votre mot de passe\\\"],\\\"AHZflp\\\":[\\\"Messagerie\\\"],\\\"B+Yy3b\\\":[\\\"Consultez la boîte de réception de \\\",[\\\"0\\\"],\\\" pour y trouver un code de connexion, et saisissez-le ici.\\\"],\\\"rpbuva\\\":[\\\"Consultez votre boîte de réception pour obtenir le code de vérification.\\\"],\\\"lAK2OC\\\":[\\\"Vérifiez votre boîte de réception.\\\"],\\\"Bno89U\\\":[\\\"Choisissez un nouveau nom d'utilisateur par défaut.\\\"],\\\"vsqx1t\\\":[\\\"Choisissez une nouvelle adresse email à associer à votre compte.\\\"],\\\"khEQ02\\\":[\\\"Choisissez un nom d'utilisateur\\\"],\\\"56n0wU\\\":[\\\"Cliquez ici si vous n'êtes pas automatiquement redirigé\\\"],\\\"x1TXhd\\\":[\\\"Cliquez ici pour renvoyer.\\\"],\\\"yz7wBu\\\":[\\\"Fermer\\\"],\\\"NqPBw0\\\":[\\\"Fermer le sélecteur de compte\\\"],\\\"n5fb8M\\\":[\\\"Fermer les détails\\\"],\\\"Gt+Z/D\\\":[\\\"Code\\\"],\\\"UwGV9B\\\":[\\\"Confirmer\\\"],\\\"HaGV2g\\\":[\\\"Confirmez votre mot de passe pour continuer\\\"],\\\"ioZOzk\\\":[\\\"Code de confirmation\\\"],\\\"xGVfLh\\\":[\\\"Continuer\\\"],\\\"MLyLW8\\\":[\\\"Erreur de cookies\\\"],\\\"6V3Ea3\\\":[\\\"Copié\\\"],\\\"/4gGIX\\\":[\\\"Copier dans le presse-papiers\\\"],\\\"hYgDIe\\\":[\\\"Créer\\\"],\\\"mpt9T+\\\":[\\\"Créer un nouveau compte\\\"],\\\"OuTWqr\\\":[\\\"Créer, mettre à jour et supprimer toutes les données publiques de votre compte\\\"],\\\"qfnQHD\\\":[\\\"Les domaines personnalisés ne sont pas pris en charge\\\"],\\\"HKH+W+\\\":[\\\"Données\\\"],\\\"cnGeoo\\\":[\\\"Supprimer\\\"],\\\"u0sEZL\\\":[\\\"Refuser l'accès\\\"],\\\"URmyfc\\\":[\\\"Détails\\\"],\\\"qavm0B\\\":[\\\"Appareils\\\"],\\\"5M4Te3\\\":[\\\"DNS\\\"],\\\"wadss7\\\":[\\\"Pas reçu d'email ?\\\"],\\\"2ns2wB\\\":[\\\"ex. <0>alice.com</0>\\\"],\\\"Zhm/NX\\\":[\\\"ex. <0>alice\\\",[\\\"0\\\"],\\\"</0>\\\"],\\\"O3oNi5\\\":[\\\"Email\\\"],\\\"ATGYL1\\\":[\\\"Adresse email\\\"],\\\"kbts6J\\\":[\\\"Adresse email mise à jour avec succès\\\"],\\\"Y/tbFA\\\":[\\\"Demande de modification d'adresse email envoyée\\\"],\\\"j/19E8\\\":[\\\"Modification de l'adresse email réussie\\\"],\\\"CzD50V\\\":[\\\"Envoyer ces instructions par email\\\"],\\\"PLEl94\\\":[\\\"Adresse email vérifiée\\\"],\\\"3tOlz6\\\":[\\\"Saisissez un mot de passe\\\"],\\\"xg/UcZ\\\":[\\\"Saisissez le code que vous avez reçu pour réinitialiser votre mot de passe.\\\"],\\\"BfIgP6\\\":[\\\"Saisissez le domaine que vous souhaitez utiliser\\\"],\\\"cHrOqs\\\":[\\\"Saisissez l'email que vous avez utilisé pour créer votre compte. Nous vous enverrons un \\\\\\\"code de réinitialisation\\\\\\\" pour que vous puissiez définir un nouveau mot de passe.\\\"],\\\"xRPn3U\\\":[\\\"Saisissez votre adresse email\\\"],\\\"0StR7t\\\":[\\\"Saisissez votre nouveau mot de passe\\\"],\\\"NgaR6B\\\":[\\\"Saisissez votre mot de passe\\\"],\\\"T0KLp4\\\":[\\\"Saisissez votre nom d'utilisateur et votre mot de passe\\\"],\\\"jxqcgY\\\":[\\\"exemple-com-xxxxx-xxxxx\\\"],\\\"xAo8pm\\\":[\\\"Développer les détails\\\"],\\\"/Ltc/k\\\":[\\\"Extra\\\"],\\\"PNuvRd\\\":[\\\"Échec de la modification de l'adresse email\\\"],\\\"b9LiEi\\\":[\\\"Échec du chargement des applications connectées\\\"],\\\"CiwBmN\\\":[\\\"Échec de la suppression de l'appareil\\\"],\\\"E1zEOj\\\":[\\\"Échec de la demande de modification d'adresse email\\\"],\\\"eMlT5s\\\":[\\\"Échec de la demande de réinitialisation du mot de passe\\\"],\\\"3DLYmM\\\":[\\\"Échec de la réinitialisation du mot de passe\\\"],\\\"ginpu1\\\":[\\\"Échec de la révocation de l'accès\\\"],\\\"yI9fD4\\\":[\\\"Échec de l'envoi de l'email de vérification\\\"],\\\"DsHRti\\\":[\\\"Échec de la modification du nom d'utilisateur\\\"],\\\"rxy0tG\\\":[\\\"Échec de la vérification de l'adresse email\\\"],\\\"TiHb0n\\\":[\\\"Contenu du fichier\\\"],\\\"dn8X5t\\\":[\\\"Mot de passe oublié\\\"],\\\"F4OP4y\\\":[\\\"Oublié ?\\\"],\\\"i7VT2T\\\":[\\\"Accorder l'accès à votre compte <0/>\\\"],\\\"87VTIH\\\":[\\\"Vous rencontrez des difficultés ? <0>Contactez le support</0>\\\"],\\\"cqWp5F\\\":[\\\"Bonjour,\\\\n\\\\nPour associer le domaine \\\\\\\"\\\",[\\\"handle\\\"],\\\"\\\\\\\" à mon identité AT Protocol (\\\",[\\\"did\\\"],\\\"), l'une des modifications de configuration suivantes est requise. Chaque méthode est suffisante, une seule doit être appliquée.\\\\n\\\\n\\\",[\\\"0\\\"],\\\"\\\\n\\\\nLa modification peut être vérifiée en visitant l'URL suivante : \\\",[\\\"troubleshootHref\\\"],\\\"\\\\nUn tutoriel détaillé est disponible ici : \\\",[\\\"tutorialHref\\\"],\\\"\\\\n\\\\nMerci.\\\"],\\\"c3XJ18\\\":[\\\"Aide\\\"],\\\"vLyv1R\\\":[\\\"Masquer\\\"],\\\"i0qMbr\\\":[\\\"Accueil\\\"],\\\"Ai2U7L\\\":[\\\"Hôte\\\"],\\\"LUTGt0\\\":[\\\"HTTP\\\"],\\\"sJGljQ\\\":[\\\"Identifiant\\\"],\\\"ePYQjq\\\":[\\\"Identité\\\"],\\\"q6Kda8\\\":[\\\"Si vous avez accès au panneau de configuration DNS de votre domaine (par exemple via votre registraire de domaine)\\\"],\\\"Zf0mtN\\\":[\\\"Si vous avez accès à la configuration de l'hébergement web de votre domaine (par exemple via FTP)\\\"],\\\"GNCK6k\\\":[\\\"Si vous avez votre propre domaine, vous pouvez l'utiliser comme pseudo. Cela vous permet de vérifier vous-même votre identité. <0>En savoir plus ici</0>.\\\"],\\\"WV5h6m\\\":[\\\"Si vous mettez à jour votre adresse email, la 2FA par email (si activée) sera désactivée.\\\"],\\\"vHJQ4A\\\":[\\\"Sélecteur de langue\\\"],\\\"JHB/Ky\\\":[\\\"Invalide\\\"],\\\"AvmoWB\\\":[\\\"Pseudo invalide\\\"],\\\"6KlkHI\\\":[\\\"Code d'invitation\\\"],\\\"pWhWXw\\\":[\\\"Il semble que vous n'ayez pas encore utilisé ce compte pour vous connecter à des applications.\\\"],\\\"D2aJ64\\\":[\\\"Il semble que votre navigateur n'accepte pas les cookies. Appuyez sur \\\\\\\"Continuer\\\\\\\" pour réessayer. Si l'erreur persiste, veuillez vous assurer que vos paramètres de confidentialité autorisent les cookies pour le site \\\\\\\"\\\",[\\\"0\\\"],\\\"\\\\\\\".\\\"],\\\"xOTzt5\\\":[\\\"à l'instant\\\"],\\\"NNWPjN\\\":[\\\"Dernier accès <0/>\\\"],\\\"sJZ6K9\\\":[\\\"Dernière connexion \\\",[\\\"lastUsedAgo\\\"]],\\\"Q2Fq1L\\\":[\\\"Plus tard\\\"],\\\"Esfg1M\\\":[\\\"Réinitialisons votre mot de passe !\\\"],\\\"UCOd1e\\\":[\\\"Connexion terminée\\\"],\\\"cR9UpQ\\\":[\\\"Se connecter à un compte qui n'est pas listé\\\"],\\\"iG7KNr\\\":[\\\"Logo\\\"],\\\"Ssa5RR\\\":[\\\"Il semble que vous n'ayez de session active sur aucun autre appareil.\\\"],\\\"u607t5\\\":[\\\"loopback\\\"],\\\"OgbFua\\\":[\\\"Rendez un fichier texte avec le contenu ci-dessous disponible à l'URL suivante.\\\"],\\\"huXYDE\\\":[\\\"Rendre visible\\\"],\\\"xSiaWQ\\\":[\\\"Gérer les applications qui ont accès à votre compte\\\"],\\\"hqGoYC\\\":[\\\"Gérer votre <0>identité complète</0> y compris votre <1>@pseudo</1>\\\"],\\\"Xu88FC\\\":[\\\"Gérer votre compte\\\"],\\\"bdNEzF\\\":[\\\"Gérer vos sessions actives\\\"],\\\"YRqkn2\\\":[\\\"Gérer votre profil, vos posts, vos likes et vos follows\\\"],\\\"0ZqxWk\\\":[\\\"Gérer votre profil, vos posts, vos likes et vos follows, ainsi que lire vos préférences privées\\\"],\\\"FTdsAu\\\":[\\\"Message d'erreur\\\"],\\\"VU3Nrn\\\":[\\\"Manquant\\\"],\\\"dvYuhh\\\":[\\\"Modéré\\\"],\\\"KdxItU\\\":[\\\"Mon compte Atmosphère\\\"],\\\"Aw7BNz\\\":[\\\"Nom\\\"],\\\"OenGwo\\\":[\\\"Nouvelle adresse email\\\"],\\\"/nT6AE\\\":[\\\"Nouveau mot de passe\\\"],\\\"hXzOVo\\\":[\\\"Suivant\\\"],\\\"UaXeX3\\\":[\\\"OK\\\"],\\\"yDlXDJ\\\":[\\\"Uniquement des lettres, des chiffres et des traits d'union\\\"],\\\"8ZsakT\\\":[\\\"Mot de passe\\\"],\\\"boBFOP\\\":[\\\"Email de réinitialisation du mot de passe envoyé\\\"],\\\"D9Jms7\\\":[\\\"Réinitialisation du mot de passe réussie\\\"],\\\"osAB4a\\\":[\\\"Complexité du mot de passe\\\"],\\\"xfNKwI\\\":[\\\"Indicateur de complexité du mot de passe\\\"],\\\"fSy6T1\\\":[\\\"Mot de passe mis à jour\\\"],\\\"DKeVgZ\\\":[\\\"Mot de passe mis à jour !\\\"],\\\"5CqSPX\\\":[\\\"Mot de passe d'au moins \\\",[\\\"MIN_PASSWORD_LENGTH\\\"],\\\" caractères\\\"],\\\"IHV30b\\\":[\\\"Détails\\\"],\\\"RZlEhS\\\":[\\\"Effectuer des actions en votre nom\\\"],\\\"17SnJo\\\":[\\\"Effectuer des actions authentifiées vers <0>n'importe quel service</0> en votre nom\\\"],\\\"azHATD\\\":[\\\"Veuillez vous connecter pour continuer\\\"],\\\"JANaVF\\\":[\\\"Veuillez vérifier l'adresse email et réessayer.\\\"],\\\"GZC2rQ\\\":[\\\"Veuillez vérifier le nom d'utilisateur et réessayer.\\\"],\\\"q1d4qv\\\":[\\\"Veuillez vérifier votre code de réinitialisation et réessayer.\\\"],\\\"78Ju9c\\\":[\\\"Veuillez vérifier votre code de vérification et réessayer.\\\"],\\\"jK9hhN\\\":[\\\"Veuillez saisir le code de sécurité qui a été envoyé à votre adresse email.\\\"],\\\"U/me+u\\\":[\\\"Veuillez réessayer dans un instant.\\\"],\\\"6gxSCq\\\":[\\\"Veuillez attendre \\\",[\\\"remainingSeconds\\\"],\\\" secondes avant de réessayer.\\\"],\\\"LcET2C\\\":[\\\"Politique de Confidentialité\\\"],\\\"xs63gu\\\":[\\\"Publier des modifications\\\"],\\\"yZDyOS\\\":[\\\"Lire et envoyer des messages\\\"],\\\"FLm/n9\\\":[\\\"Lire et mettre à jour l'adresse email de votre compte\\\"],\\\"fEvm25\\\":[\\\"Lire l'adresse email de votre compte\\\"],\\\"1TxdLU\\\":[\\\"Se souvenir de ce compte sur cet appareil\\\"],\\\"IreQBq\\\":[\\\"Données publiques\\\"],\\\"vJgYMA\\\":[\\\"Code de réinitialisation\\\"],\\\"KbS2K9\\\":[\\\"Réinitialiser le mot de passe\\\"],\\\"slOprG\\\":[\\\"Réinitialisez votre mot de passe\\\"],\\\"6gRgw8\\\":[\\\"Réessayer\\\"],\\\"VA4HpI\\\":[\\\"Réessayer dans \\\",[\\\"remainingSeconds\\\"],\\\"s\\\"],\\\"Hwam5t\\\":[\\\"Révoquer l'accès\\\"],\\\"wLmRnI\\\":[\\\"Code de sécurité\\\"],\\\"4fWT0G\\\":[\\\"Étape de sécurité requise\\\"],\\\"T8poTj\\\":[\\\"Sélectionner un autre compte\\\"],\\\"HB+TbB\\\":[\\\"Sélectionner le domaine\\\"],\\\"o3dwub\\\":[\\\"Sélectionner un compte\\\"],\\\"Qze0/r\\\":[\\\"Envoyer le code de vérification\\\"],\\\"1L25jn\\\":[\\\"Connexion\\\"],\\\"yKDCQ1\\\":[\\\"Se connecter\\\"],\\\"N9o7n5\\\":[\\\"Se connecter en tant que \\\",[\\\"0\\\"]],\\\"FT1MVS\\\":[\\\"Se connecter en tant que...\\\"],\\\"MzTcmM\\\":[\\\"Déconnecter\\\"],\\\"fcWrnU\\\":[\\\"Se déconnecter\\\"],\\\"e+RpCP\\\":[\\\"Inscription\\\"],\\\"ZJUDum\\\":[\\\"Trace\\\"],\\\"BEx8rG\\\":[\\\"Étape \\\",[\\\"currentPosition\\\"],\\\" sur \\\",[\\\"count\\\"]],\\\"LLx/nr\\\":[\\\"Fort\\\"],\\\"hQRttt\\\":[\\\"Valider\\\"],\\\"jAO4/H\\\":[\\\"Appareil supprimé\\\"],\\\"AyHABv\\\":[\\\"Accès révoqué\\\"],\\\"XYLcNv\\\":[\\\"Support\\\"],\\\"69Gavs\\\":[\\\"Détails techniques\\\"],\\\"NKHn7N\\\":[\\\"Activer ou désactiver temporairement votre compte\\\"],\\\"xowcRf\\\":[\\\"Conditions d'Utilisation\\\"],\\\"zb3TS0\\\":[\\\"L'application demande un contrôle total sur votre identité, ce qui signifie qu'elle pourrait <0>casser de façon permanente</0>, ou même <1>usurper</1>, votre compte. N'autorisez l'accès qu'aux applications auxquelles vous faites vraiment confiance.\\\"],\\\"ZEwA2R\\\":[\\\"L'application demande les autorisations nécessaires pour effectuer les actions suivantes en votre nom :\\\"],\\\"C94+Ui\\\":[\\\"Le réseau AT Protocol utilise un mécanisme d'authentification qui permet d'identifier de manière unique les utilisateurs lors de la communication avec des services externes. Cela est généralement utilisé pour récupérer ou mettre à jour des données liées à votre compte, telles que les messages privés, les feeds ou le contenu de modération. L'application demande les autorisations nécessaires pour effectuer les actions authentifiées suivantes en votre nom :\\\"],\\\"qrCiCk\\\":[\\\"Les données que vous avez soumises sont invalides. Veuillez vérifier le formulaire et réessayer.\\\"],\\\"qDdKKD\\\":[\\\"Le nom de domaine n'est pas autorisé\\\"],\\\"+lWheC\\\":[\\\"Le code d'invitation n'est pas valide\\\"],\\\"BJ8t7d\\\":[\\\"Le serveur a rencontré une erreur inattendue. Veuillez réessayer.\\\"],\\\"AQ3Zbm\\\":[\\\"Le nom d'utilisateur contient un langage inapproprié\\\"],\\\"E/Pt37\\\":[\\\"Le nom d'utilisateur n'a pas pu être résolu\\\"],\\\"AXlE0K\\\":[\\\"Le nom d'utilisateur est déjà utilisé\\\"],\\\"C24/JK\\\":[\\\"Le nom d'utilisateur est invalide\\\"],\\\"kx1Bq7\\\":[\\\"Ces applications ont accès à votre compte. Une application peut apparaître plusieurs fois si vous l'utilisez sur différents appareils. Vous pouvez révoquer l'accès pour déconnecter l'application jusqu'à ce que vous vous reconnectiez.\\\"],\\\"3g3aq0\\\":[\\\"Cette application demande les autorisations (scopes) suivantes pour accéder à votre compte :\\\"],\\\"oYKcFO\\\":[\\\"Cette demande d'autorisation a été refusée. Veuillez réessayer.\\\"],\\\"SZKM0t\\\":[\\\"Cette adresse email est déjà utilisée\\\"],\\\"5OVfoe\\\":[\\\"Cette session de connexion a expiré\\\"],\\\"3j7n8v\\\":[\\\"Ce nom d'utilisateur est réservé\\\"],\\\"ukpmGq\\\":[\\\"Pour changer votre mot de passe, vous devrez entrer un code de sécurité envoyé à votre adresse email.\\\"],\\\"+Qnl3Q\\\":[\\\"Pour vérifier votre adresse email, vous devrez entrer un code de sécurité envoyé à <0>\\\",[\\\"email\\\"],\\\"</0>.\\\"],\\\"nURwxX\\\":[\\\"Auprès de\\\"],\\\"et+mIi\\\":[\\\"Dépannage\\\"],\\\"+zy2Nq\\\":[\\\"Type\\\"],\\\"VxXoAs\\\":[\\\"Saisissez votre nom de domaine\\\"],\\\"Vgj5ph\\\":[\\\"Saisissez votre nom d'utilisateur\\\"],\\\"dA/8If\\\":[\\\"Déconnecté\\\"],\\\"Jja+Vn\\\":[\\\"Réponse inattendue du serveur\\\"],\\\"K80Okk\\\":[\\\"Agent utilisateur inconnu\\\"],\\\"EkH9pt\\\":[\\\"Modifier\\\"],\\\"GmYkFm\\\":[\\\"Modifier votre adresse email\\\"],\\\"T6sYqW\\\":[\\\"Modifier votre nom d'utilisateur\\\"],\\\"O78aQm\\\":[\\\"Modifiez votre nom d'utilisateur pour un nom de domaine que vous possédez afin de vérifier vous-même votre identité.\\\"],\\\"sCtyHQ\\\":[\\\"Téléverser des fichiers\\\"],\\\"IagCbF\\\":[\\\"URL\\\"],\\\"57gCMx\\\":[\\\"Utiliser un nom d'utilisateur par défaut\\\"],\\\"Pahpw8\\\":[\\\"Utiliser un nom de domaine que je possède\\\"],\\\"7sNhEz\\\":[\\\"Nom d'utilisateur\\\"],\\\"nZx9mr\\\":[\\\"Nom d'utilisateur ou adresse email\\\"],\\\"2HQiAC\\\":[\\\"Nom d'utilisateur modifié\\\"],\\\"nfagfM\\\":[\\\"Valide\\\"],\\\"wMHvYH\\\":[\\\"Valeur\\\"],\\\"AdWhjZ\\\":[\\\"Code de vérification\\\"],\\\"I6Q2R9\\\":[\\\"Email de vérification envoyé\\\"],\\\"2AW+PM\\\":[\\\"Méthode de vérification\\\"],\\\"NbkAR9\\\":[\\\"Vérification réussie !\\\"],\\\"G7Vcxo\\\":[\\\"Vérifier et enregistrer\\\"],\\\"HFfnZo\\\":[\\\"Vérifier\\\"],\\\"TePUFC\\\":[\\\"Vérifiez l'adresse du site avant de saisir votre mot de passe. N'entrez votre mot de passe que sur des sites que vous reconnaissez et en lesquels vous avez confiance.\\\"],\\\"aIar4b\\\":[\\\"Vérifiez que vous êtes humain\\\"],\\\"/IBv6X\\\":[\\\"Vérifier votre adresse email\\\"],\\\"sUabXh\\\":[\\\"veut accéder à votre compte <0/>\\\"],\\\"AM8FL/\\\":[\\\"veut vous identifier de manière unique via votre compte <0/>\\\"],\\\"r6y+jM\\\":[\\\"Avertissement\\\"],\\\"qjBGxf\\\":[\\\"Nous sommes ravis de vous accueillir parmi nous !\\\"],\\\"9ls/Vs\\\":[\\\"Faible\\\"],\\\"6jfS51\\\":[\\\"Bienvenue\\\"],\\\"z73+hu\\\":[\\\"Qu'est-ce que ça signifie ?\\\"],\\\"nxn0xR\\\":[\\\"Qu'est-ce qu'un compte Atmosphère ?\\\"],\\\"jSVjfa\\\":[\\\"Identifiant ou mot de passe incorrect\\\"],\\\"rQRrkB\\\":[\\\"hier\\\"],\\\"qq6QQ5\\\":[\\\"Redirection en cours...\\\"],\\\"B9VwbO\\\":[\\\"Vous pourrez changer ce nom d'utilisateur pour n'importe quel nom de domaine sous votre contrôle une fois votre compte créé.\\\"],\\\"YNQVYW\\\":[\\\"Vous pouvez maintenant vous connecter avec votre nouvelle adresse email.\\\"],\\\"67nRLM\\\":[\\\"Vous pouvez maintenant vous connecter avec votre nouveau mot de passe.\\\"],\\\"imRJNy\\\":[\\\"Vous recevrez un email avec un \\\\\\\"code de réinitialisation\\\\\\\". Saisissez ce code ici puis entrez votre nouveau mot de passe.\\\"],\\\"gdRnT7\\\":[\\\"Votre compte\\\"],\\\"CbBmBd\\\":[\\\"Une session est ouverte sur les appareils listés ci-dessous. Si votre compte a été compromis, déconnectez tous les appareils, changez votre mot de passe et vérifiez vos <0>applications</0> connectées.\\\"],\\\"Jn0vdi\\\":[\\\"Votre compte Atmosphère est hébergé chez <0/>.\\\"],\\\"W5g73W\\\":[\\\"Votre adresse email a été mise à jour avec succès et doit être vérifiée. Veuillez saisir le code de vérification qui a été envoyé à <0>\\\",[\\\"email\\\"],\\\"</0>.\\\"],\\\"HrYlJ7\\\":[\\\"Votre adresse email a été vérifiée.\\\"],\\\"Eo3tBf\\\":[\\\"Votre adresse email doit être vérifiée.\\\"],\\\"r/b/p8\\\":[\\\"Votre nom d'utilisateur complet sera : \\\",[\\\"0\\\"]],\\\"+qGdcW\\\":[\\\"Votre mot de passe a été mis à jour !\\\"],\\\"SCnKXT\\\":[\\\"Votre dépôt contient toutes les données publiquement disponibles sur le réseau AT Protocol, telles que les posts, les likes et les follows de Bluesky. Il contient également les données créées via d'autres applications utilisées avec ce compte. L'application demande les autorisations nécessaires pour publier les modifications suivantes sur votre dépôt :\\\"],\\\"Z3PAZP\\\":[\\\"Votre session a expiré. Veuillez vous reconnecter.\\\"],\\\"6Hg1zS\\\":[\\\"Votre nom d'utilisateur a été mis à jour.\\\"]}\")as Messages;"],"names":["messages","JSON","parse"],"mappings":"AAAuEA,MAAAA,EAASC,KAAKC,MAAM,0+lBAAixoB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atproto/oauth-provider-ui",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.4",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Sign-in & Sign-up UI for the @atproto/oauth-provider",
|
|
6
6
|
"homepage": "https://atproto.com",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"hydration-data.d.ts"
|
|
27
27
|
],
|
|
28
28
|
"optionalDependencies": {
|
|
29
|
-
"@atproto/oauth-provider-api": "0.6.
|
|
29
|
+
"@atproto/oauth-provider-api": "0.6.2"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@hcaptcha/react-hcaptcha": "^1.11.2",
|
|
@@ -54,15 +54,14 @@
|
|
|
54
54
|
"react-dom": "^19.0.0",
|
|
55
55
|
"react-error-boundary": "^5.0.0",
|
|
56
56
|
"tailwindcss": "^4.1.3",
|
|
57
|
-
"typescript": "^6.0.3",
|
|
58
57
|
"ua-parser-js": "^2.0.3",
|
|
59
58
|
"vite": "^6.2.0",
|
|
60
59
|
"zod": "^3.24.2",
|
|
61
|
-
"@atproto-labs/
|
|
62
|
-
"@atproto
|
|
63
|
-
"@atproto/
|
|
64
|
-
"@atproto/
|
|
65
|
-
"@atproto/
|
|
60
|
+
"@atproto-labs/rollup-plugin-bundle-manifest": "^0.3.1",
|
|
61
|
+
"@atproto/oauth-scopes": "^0.5.1",
|
|
62
|
+
"@atproto-labs/fetch": "^0.3.1",
|
|
63
|
+
"@atproto/oauth-types": "^0.7.2",
|
|
64
|
+
"@atproto/syntax": "^0.6.2"
|
|
66
65
|
},
|
|
67
66
|
"scripts": {
|
|
68
67
|
"i18n:extract": "lingui extract --clean",
|