@atproto/oauth-client-browser 0.3.31 → 0.3.33
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/browser-oauth-client.d.ts +7 -6
- package/dist/browser-oauth-client.d.ts.map +1 -1
- package/dist/browser-oauth-client.js +10 -4
- package/dist/browser-oauth-client.js.map +1 -1
- package/dist/browser-oauth-database.js.map +1 -1
- package/dist/browser-runtime-implementation.d.ts.map +1 -1
- package/dist/browser-runtime-implementation.js +1 -1
- package/dist/browser-runtime-implementation.js.map +1 -1
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/indexed-db/db-index.js.map +1 -1
- package/dist/indexed-db/db-object-store.js.map +1 -1
- package/dist/indexed-db/db-transaction.d.ts +1 -0
- package/dist/indexed-db/db-transaction.d.ts.map +1 -1
- package/dist/indexed-db/db-transaction.js +1 -0
- package/dist/indexed-db/db-transaction.js.map +1 -1
- package/dist/indexed-db/db.d.ts +1 -0
- package/dist/indexed-db/db.d.ts.map +1 -1
- package/dist/indexed-db/db.js +1 -0
- package/dist/indexed-db/db.js.map +1 -1
- package/dist/indexed-db/index.d.ts +0 -1
- package/dist/indexed-db/index.d.ts.map +1 -1
- package/dist/indexed-db/index.js +0 -1
- package/dist/indexed-db/index.js.map +1 -1
- package/dist/indexed-db/schema.js.map +1 -1
- package/dist/indexed-db/util.js.map +1 -1
- package/dist/indexed-db-store.js.map +1 -1
- package/dist/util.js.map +1 -1
- package/package.json +9 -8
- package/dist/disposable-polyfill/index.d.ts +0 -1
- package/dist/disposable-polyfill/index.d.ts.map +0 -1
- package/dist/disposable-polyfill/index.js +0 -11
- package/dist/disposable-polyfill/index.js.map +0 -1
|
@@ -29,21 +29,22 @@ export declare class BrowserOAuthClient extends OAuthClient implements Disposabl
|
|
|
29
29
|
*/
|
|
30
30
|
init(refresh?: boolean): Promise<{
|
|
31
31
|
session: OAuthSession;
|
|
32
|
+
state?: never;
|
|
33
|
+
} | {
|
|
34
|
+
session: OAuthSession;
|
|
35
|
+
state: string | null;
|
|
32
36
|
} | undefined>;
|
|
33
37
|
initRestore(refresh?: boolean): Promise<{
|
|
34
38
|
session: OAuthSession;
|
|
35
39
|
} | undefined>;
|
|
36
40
|
restore(sub: string, refresh?: boolean): Promise<OAuthSession>;
|
|
37
41
|
revoke(sub: string): Promise<void>;
|
|
38
|
-
signIn(input: string, options
|
|
39
|
-
display: 'popup';
|
|
40
|
-
}): Promise<OAuthSession>;
|
|
41
|
-
signIn(input: string, options?: AuthorizeOptions): Promise<never>;
|
|
42
|
+
signIn(input: string, options?: AuthorizeOptions): Promise<OAuthSession>;
|
|
42
43
|
signInRedirect(input: string, options?: AuthorizeOptions): Promise<never>;
|
|
43
44
|
signInPopup(input: string, options?: Omit<AuthorizeOptions, 'state'>): Promise<OAuthSession>;
|
|
44
|
-
findRedirectUrl(): `
|
|
45
|
+
findRedirectUrl(): `http://[::1]${string}` | "http://127.0.0.1" | `http://127.0.0.1#${string}` | `http://127.0.0.1?${string}` | `http://127.0.0.1/${string}` | `http://127.0.0.1:${string}` | `https://${string}` | `${string}.${string}:/${string}` | undefined;
|
|
45
46
|
readCallbackParams(): URLSearchParams | null;
|
|
46
|
-
initCallback(params
|
|
47
|
+
initCallback(params?: URLSearchParams | null, redirectUri?: `http://[::1]${string}` | "http://127.0.0.1" | `http://127.0.0.1#${string}` | `http://127.0.0.1?${string}` | `http://127.0.0.1/${string}` | `http://127.0.0.1:${string}` | `https://${string}` | `${string}.${string}:/${string}` | undefined): Promise<{
|
|
47
48
|
session: OAuthSession;
|
|
48
49
|
state: string | null;
|
|
49
50
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-oauth-client.d.ts","sourceRoot":"","sources":["../src/browser-oauth-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAEhB,KAAK,EAEL,WAAW,EACX,kBAAkB,EAClB,YAAY,EAEb,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EAIlB,MAAM,sBAAsB,CAAA;AAI7B,OAAO,EACL,QAAQ,EAGT,MAAM,WAAW,CAAA;AAElB,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAC9C;IACE,cAAc,CAAC,EAAE,QAAQ,CAAC,wBAAwB,CAAC,CAAA;IACnD,YAAY,CAAC,EAAE,OAAO,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAA;IACtD,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,GAAG,IAAI,CACN,kBAAkB,EAEhB,gBAAgB,GAChB,cAAc,GACd,QAAQ,GACR,OAAO,GAEP,uBAAuB,GACvB,cAAc,GACd,YAAY,GACZ,UAAU,GACV,aAAa,GACb,gBAAgB,GAChB,kCAAkC,GAClC,gCAAgC,CACnC,CACF,CAAA;AA8BD,MAAM,MAAM,6BAA6B,GAAG,QAAQ,CAClD;IACE,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GAAG,IAAI,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,CACtD,CAAA;AAED,qBAAa,kBAAmB,SAAQ,WAAY,YAAW,UAAU;WAC1D,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,EAAE,6BAA6B;IAgBzE,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;gBAEzB,EACV,cAEC,EAED,YAAyB,EACzB,GAAG,OAAO,EACX,EAAE,yBAAyB;IAyE5B;;;;;;;;;;;;OAYG;IACG,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO
|
|
1
|
+
{"version":3,"file":"browser-oauth-client.d.ts","sourceRoot":"","sources":["../src/browser-oauth-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAEhB,KAAK,EAEL,WAAW,EACX,kBAAkB,EAClB,YAAY,EAEb,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EAIlB,MAAM,sBAAsB,CAAA;AAI7B,OAAO,EACL,QAAQ,EAGT,MAAM,WAAW,CAAA;AAElB,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAC9C;IACE,cAAc,CAAC,EAAE,QAAQ,CAAC,wBAAwB,CAAC,CAAA;IACnD,YAAY,CAAC,EAAE,OAAO,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAA;IACtD,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,GAAG,IAAI,CACN,kBAAkB,EAEhB,gBAAgB,GAChB,cAAc,GACd,QAAQ,GACR,OAAO,GAEP,uBAAuB,GACvB,cAAc,GACd,YAAY,GACZ,UAAU,GACV,aAAa,GACb,gBAAgB,GAChB,kCAAkC,GAClC,gCAAgC,CACnC,CACF,CAAA;AA8BD,MAAM,MAAM,6BAA6B,GAAG,QAAQ,CAClD;IACE,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB,GAAG,IAAI,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,CACtD,CAAA;AAED,qBAAa,kBAAmB,SAAQ,WAAY,YAAW,UAAU;WAC1D,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,OAAO,EAAE,EAAE,6BAA6B;IAgBzE,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;gBAEzB,EACV,cAEC,EAED,YAAyB,EACzB,GAAG,OAAO,EACX,EAAE,yBAAyB;IAyE5B;;;;;;;;;;;;OAYG;IACG,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAElC;QAAE,OAAO,EAAE,YAAY,CAAC;QAAC,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,GAExC;QAAE,OAAO,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAE/C,SAAS,CACZ;IAYK,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO;;;IAiB7B,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;IAM9D,MAAM,CAAC,GAAG,EAAE,MAAM;IAKlB,MAAM,CACV,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,YAAY,CAAC;IAQlB,cAAc,CAClB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,KAAK,CAAC;IAqBX,WAAW,CACf,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,GACxC,OAAO,CAAC,YAAY,CAAC;IA+EjB,eAAe;IAcf,kBAAkB,IAAI,eAAe,GAAG,IAAI;IActC,YAAY,CACvB,MAAM,yBAA4B,EAClC,WAAW,gPAAyB,GACnC,OAAO,CAAC;QACT,OAAO,EAAE,YAAY,CAAA;QACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KACrB,CAAC;IA0FF,OAAO;CAGR"}
|
|
@@ -25,7 +25,7 @@ class BrowserOAuthClient extends oauth_client_1.OAuthClient {
|
|
|
25
25
|
clientId,
|
|
26
26
|
...options,
|
|
27
27
|
});
|
|
28
|
-
return new BrowserOAuthClient({
|
|
28
|
+
return new BrowserOAuthClient({ ...options, clientMetadata });
|
|
29
29
|
}
|
|
30
30
|
else {
|
|
31
31
|
throw new TypeError(`Invalid client id: ${clientId}`);
|
|
@@ -109,8 +109,11 @@ class BrowserOAuthClient extends oauth_client_1.OAuthClient {
|
|
|
109
109
|
// If the URL currently contains oauth query parameters ("state" + "code" or
|
|
110
110
|
// "state" + "error"), let's automatically process them.
|
|
111
111
|
const params = this.readCallbackParams();
|
|
112
|
-
if (params)
|
|
113
|
-
|
|
112
|
+
if (params) {
|
|
113
|
+
const redirectUri = this.findRedirectUrl();
|
|
114
|
+
if (redirectUri)
|
|
115
|
+
return this.initCallback(params, redirectUri);
|
|
116
|
+
}
|
|
114
117
|
return this.initRestore(refresh);
|
|
115
118
|
}
|
|
116
119
|
async initRestore(refresh) {
|
|
@@ -240,7 +243,10 @@ class BrowserOAuthClient extends oauth_client_1.OAuthClient {
|
|
|
240
243
|
}
|
|
241
244
|
return params;
|
|
242
245
|
}
|
|
243
|
-
async initCallback(params, redirectUri = this.findRedirectUrl()) {
|
|
246
|
+
async initCallback(params = this.readCallbackParams(), redirectUri = this.findRedirectUrl()) {
|
|
247
|
+
if (!params) {
|
|
248
|
+
throw new TypeError('No OAuth callback parameters found in the URL');
|
|
249
|
+
}
|
|
244
250
|
// Replace the current history entry without the params (this will prevent
|
|
245
251
|
// the following code to run again if the user refreshes the page)
|
|
246
252
|
if (this.responseMode === 'fragment') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-oauth-client.js","sourceRoot":"","sources":["../src/browser-oauth-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"browser-oauth-client.js","sourceRoot":"","sources":["../src/browser-oauth-client.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n AuthorizeOptions,\n ClientMetadata,\n Fetch,\n OAuthCallbackError,\n OAuthClient,\n OAuthClientOptions,\n OAuthSession,\n SessionEventMap,\n} from '@atproto/oauth-client'\nimport {\n OAuthClientMetadataInput,\n OAuthResponseMode,\n assertOAuthDiscoverableClientId,\n atprotoLoopbackClientMetadata,\n isOAuthClientIdLoopback,\n} from '@atproto/oauth-types'\nimport { BrowserOAuthDatabase } from './browser-oauth-database.js'\nimport { BrowserRuntimeImplementation } from './browser-runtime-implementation.js'\nimport { LoginContinuedInParentWindowError } from './errors.js'\nimport {\n Simplify,\n TypedBroadcastChannel,\n buildLoopbackClientId,\n} from './util.js'\n\nexport type BrowserOAuthClientOptions = Simplify<\n {\n clientMetadata?: Readonly<OAuthClientMetadataInput>\n responseMode?: Exclude<OAuthResponseMode, 'form_post'>\n fetch?: Fetch\n } & Omit<\n OAuthClientOptions,\n // Overridden by this lib\n | 'clientMetadata'\n | 'responseMode'\n | 'keyset'\n | 'fetch'\n // Provided by this lib\n | 'runtimeImplementation'\n | 'sessionStore'\n | 'stateStore'\n | 'didCache'\n | 'handleCache'\n | 'dpopNonceCache'\n | 'authorizationServerMetadataCache'\n | 'protectedResourceMetadataCache'\n >\n>\n\nconst NAMESPACE = `@@atproto/oauth-client-browser`\n\n//- Popup channel\n\nconst POPUP_CHANNEL_NAME = `${NAMESPACE}(popup-channel)`\nconst POPUP_STATE_PREFIX = `${NAMESPACE}(popup-state):`\n\ntype PopupChannelResultData = {\n key: string\n result: PromiseRejectedResult | PromiseFulfilledResult<string>\n}\n\ntype PopupChannelAckData = {\n key: string\n ack: true\n}\n\ntype PopupChannelData = PopupChannelResultData | PopupChannelAckData\n\n//- State synchronization channel\n\ntype SyncChannelMessage = {\n [K in keyof SessionEventMap]: [K, SessionEventMap[K]]\n}[keyof SessionEventMap]\n\nconst syncChannel: TypedBroadcastChannel<SyncChannelMessage> =\n new BroadcastChannel(`${NAMESPACE}(synchronization-channel)`)\n\nexport type BrowserOAuthClientLoadOptions = Simplify<\n {\n clientId: string\n signal?: AbortSignal\n } & Omit<BrowserOAuthClientOptions, 'clientMetadata'>\n>\n\nexport class BrowserOAuthClient extends OAuthClient implements Disposable {\n static async load({ clientId, ...options }: BrowserOAuthClientLoadOptions) {\n if (clientId.startsWith('http:')) {\n const clientMetadata = atprotoLoopbackClientMetadata(clientId)\n return new BrowserOAuthClient({ clientMetadata, ...options })\n } else if (clientId.startsWith('https:')) {\n assertOAuthDiscoverableClientId(clientId)\n const clientMetadata = await OAuthClient.fetchMetadata({\n clientId,\n ...options,\n })\n return new BrowserOAuthClient({ ...options, clientMetadata })\n } else {\n throw new TypeError(`Invalid client id: ${clientId}`)\n }\n }\n\n readonly [Symbol.dispose]: () => void\n\n constructor({\n clientMetadata = atprotoLoopbackClientMetadata(\n buildLoopbackClientId(window.location),\n ),\n // \"fragment\" is a safer default as the query params will not be sent to the server\n responseMode = 'fragment',\n ...options\n }: BrowserOAuthClientOptions) {\n if (!globalThis.crypto?.subtle) {\n throw new Error('WebCrypto API is required')\n }\n\n if (!['query', 'fragment'].includes(responseMode)) {\n // Make sure \"form_post\" is not used as it is not supported in the browser\n throw new TypeError(`Invalid response mode: ${responseMode}`)\n }\n\n const database = new BrowserOAuthDatabase()\n\n super({\n ...options,\n\n clientMetadata,\n responseMode,\n keyset: undefined,\n\n runtimeImplementation: new BrowserRuntimeImplementation(),\n\n sessionStore: database.getSessionStore(),\n stateStore: database.getStateStore(),\n\n didCache: database.getDidCache(),\n handleCache: database.getHandleCache(),\n dpopNonceCache: database.getDpopNonceCache(),\n authorizationServerMetadataCache:\n database.getAuthorizationServerMetadataCache(),\n protectedResourceMetadataCache:\n database.getProtectedResourceMetadataCache(),\n })\n\n // @TODO replace with AsyncDisposableStack once they are standardized\n const ac = new AbortController()\n const { signal } = ac\n this[Symbol.dispose] = () => ac.abort()\n\n signal.addEventListener('abort', () => database[Symbol.asyncDispose](), {\n once: true,\n })\n\n // Keep track of the current session\n\n this.addEventListener('deleted', ({ detail: { sub } }) => {\n if (localStorage.getItem(`${NAMESPACE}(sub)`) === sub) {\n localStorage.removeItem(`${NAMESPACE}(sub)`)\n }\n })\n\n // Session synchronization across tabs\n\n for (const type of ['deleted', 'updated'] as const) {\n this.sessionGetter.addEventListener(type, ({ detail }) => {\n // Notify other tabs when a session is deleted or updated\n syncChannel.postMessage([type, detail] as SyncChannelMessage)\n })\n }\n\n syncChannel.addEventListener(\n 'message',\n (event) => {\n if (event.source !== window) {\n // Trigger listeners when an event is received from another tab\n const [type, detail] = event.data\n this.dispatchCustomEvent(type, detail)\n }\n },\n // Remove the listener when the client is disposed\n { signal },\n )\n }\n\n /**\n * This method will automatically restore any existing session, or attempt to\n * process login callback if the URL contains oauth parameters.\n *\n * Use {@link BrowserOAuthClient.initCallback} instead of this method if you\n * want to force a login callback. This can be esp. useful if you are using\n * this lib from a framework that has some kind of URL manipulation (like a\n * client side router).\n *\n * Use {@link BrowserOAuthClient.initRestore} instead of this method if you\n * want to only restore existing sessions, and bypass the automatic processing\n * of login callbacks.\n */\n async init(refresh?: boolean): Promise<\n // Session restored\n | { session: OAuthSession; state?: never }\n // Login callback processed\n | { session: OAuthSession; state: string | null }\n // No session or callback\n | undefined\n > {\n // If the URL currently contains oauth query parameters (\"state\" + \"code\" or\n // \"state\" + \"error\"), let's automatically process them.\n const params = this.readCallbackParams()\n if (params) {\n const redirectUri = this.findRedirectUrl()\n if (redirectUri) return this.initCallback(params, redirectUri)\n }\n\n return this.initRestore(refresh)\n }\n\n async initRestore(refresh?: boolean) {\n // @NOTE Fixing the location should not be needed from callback endpoints\n // since callback endpoint are required to use IP based URLs (for localhost)\n await fixLocation(this.clientMetadata)\n\n const sub = localStorage.getItem(`${NAMESPACE}(sub)`)\n if (sub) {\n try {\n const session = await this.restore(sub, refresh)\n return { session }\n } catch (err) {\n localStorage.removeItem(`${NAMESPACE}(sub)`)\n throw err\n }\n }\n }\n\n async restore(sub: string, refresh?: boolean): Promise<OAuthSession> {\n const session = await super.restore(sub, refresh)\n localStorage.setItem(`${NAMESPACE}(sub)`, session.sub)\n return session\n }\n\n async revoke(sub: string) {\n localStorage.removeItem(`${NAMESPACE}(sub)`)\n return super.revoke(sub)\n }\n\n async signIn(\n input: string,\n options?: AuthorizeOptions,\n ): Promise<OAuthSession> {\n if (options?.display === 'popup') {\n return this.signInPopup(input, options)\n } else {\n return this.signInRedirect(input, options)\n }\n }\n\n async signInRedirect(\n input: string,\n options?: AuthorizeOptions,\n ): Promise<never> {\n const url = await this.authorize(input, options)\n\n window.location.href = url.href\n\n // back-forward cache\n return new Promise<never>((resolve, reject) => {\n setTimeout(\n (err: Error) => {\n // Take the opportunity to proactively cancel the pending request\n this.abortRequest(url).then(\n () => reject(err),\n (reason) => reject(new AggregateError([err, reason])),\n )\n },\n 5e3,\n new Error('User navigated back'),\n )\n })\n }\n\n async signInPopup(\n input: string,\n options?: Omit<AuthorizeOptions, 'state'>,\n ): Promise<OAuthSession> {\n // Open new window asap to prevent popup busting by browsers\n const popupFeatures = 'width=600,height=600,menubar=no,toolbar=no'\n let popup: Window | null = window.open(\n 'about:blank',\n '_blank',\n popupFeatures,\n )\n\n const stateKey = `${Math.random().toString(36).slice(2)}`\n\n const url = await this.authorize(input, {\n ...options,\n state: `${POPUP_STATE_PREFIX}${stateKey}`,\n display: options?.display ?? 'popup',\n })\n\n options?.signal?.throwIfAborted()\n\n if (popup) {\n popup.window.location.href = url.href\n } else {\n popup = window.open(url.href, '_blank', popupFeatures)\n }\n\n popup?.focus()\n\n return new Promise<OAuthSession>((resolve, reject) => {\n const popupChannel = new BroadcastChannel(POPUP_CHANNEL_NAME)\n\n const cleanup = () => {\n clearTimeout(timeout)\n popupChannel.removeEventListener('message', onMessage)\n popupChannel.close()\n options?.signal?.removeEventListener('abort', cancel)\n popup?.close()\n }\n\n const cancel = () => {\n // @TODO Store fact that the request was cancelled, allowing any\n // callback (e.g. in the popup) to revoke the session or credentials.\n\n reject(new Error(options?.signal?.aborted ? 'Aborted' : 'Timeout'))\n cleanup()\n }\n\n options?.signal?.addEventListener('abort', cancel)\n\n const timeout = setTimeout(cancel, 5 * 60e3)\n\n const onMessage = async ({ data }: MessageEvent<PopupChannelData>) => {\n if (data.key !== stateKey) return\n if (!('result' in data)) return\n\n // Send acknowledgment to popup window\n popupChannel.postMessage({ key: stateKey, ack: true })\n\n cleanup()\n\n const { result } = data\n if (result.status === 'fulfilled') {\n const sub = result.value\n try {\n options?.signal?.throwIfAborted()\n resolve(await this.restore(sub, false))\n } catch (err) {\n reject(err)\n void this.revoke(sub)\n }\n } else {\n const { message, params } = result.reason\n reject(new OAuthCallbackError(new URLSearchParams(params), message))\n }\n }\n\n popupChannel.addEventListener('message', onMessage)\n })\n }\n\n public findRedirectUrl() {\n for (const uri of this.clientMetadata.redirect_uris) {\n const url = new URL(uri)\n if (\n location.origin === url.origin &&\n location.pathname === url.pathname\n ) {\n return uri\n }\n }\n\n return undefined\n }\n\n public readCallbackParams(): URLSearchParams | null {\n const params =\n this.responseMode === 'fragment'\n ? new URLSearchParams(location.hash.slice(1))\n : new URLSearchParams(location.search)\n\n // Only if the current URL contains a valid oauth response params\n if (!params.has('state') || !(params.has('code') || params.has('error'))) {\n return null\n }\n\n return params\n }\n\n public async initCallback(\n params = this.readCallbackParams(),\n redirectUri = this.findRedirectUrl(),\n ): Promise<{\n session: OAuthSession\n state: string | null\n }> {\n if (!params) {\n throw new TypeError('No OAuth callback parameters found in the URL')\n }\n\n // Replace the current history entry without the params (this will prevent\n // the following code to run again if the user refreshes the page)\n if (this.responseMode === 'fragment') {\n history.replaceState(null, '', location.pathname + location.search)\n } else if (this.responseMode === 'query') {\n history.replaceState(null, '', location.pathname)\n }\n\n // Utility function to send the result of the popup to the parent window\n const sendPopupResult = (message: PopupChannelResultData) => {\n const popupChannel = new BroadcastChannel(POPUP_CHANNEL_NAME)\n\n return new Promise<boolean>((resolve) => {\n const cleanup = (result: boolean) => {\n clearTimeout(timer)\n popupChannel.removeEventListener('message', onMessage)\n popupChannel.close()\n resolve(result)\n }\n\n const onMessage = ({ data }: MessageEvent<PopupChannelData>) => {\n if ('ack' in data && message.key === data.key) cleanup(true)\n }\n\n popupChannel.addEventListener('message', onMessage)\n popupChannel.postMessage(message)\n // Receiving of \"ack\" should be very fast, giving it 500 ms anyway\n const timer = setTimeout(cleanup, 500, false)\n })\n }\n\n return this.callback(params, { redirect_uri: redirectUri })\n .then(async (result) => {\n if (result.state?.startsWith(POPUP_STATE_PREFIX)) {\n const receivedByParent = await sendPopupResult({\n key: result.state.slice(POPUP_STATE_PREFIX.length),\n result: {\n status: 'fulfilled',\n value: result.session.sub,\n },\n })\n\n // Revoke the credentials if the parent window was closed\n if (!receivedByParent) await result.session.signOut()\n\n throw new LoginContinuedInParentWindowError() // signInPopup\n }\n\n localStorage.setItem(`${NAMESPACE}(sub)`, result.session.sub)\n\n return result\n })\n .catch(async (err) => {\n if (\n err instanceof OAuthCallbackError &&\n err.state?.startsWith(POPUP_STATE_PREFIX)\n ) {\n await sendPopupResult({\n key: err.state.slice(POPUP_STATE_PREFIX.length),\n result: {\n status: 'rejected',\n reason: {\n message: err.message,\n params: Array.from(err.params.entries()),\n },\n },\n })\n\n throw new LoginContinuedInParentWindowError() // signInPopup\n }\n\n // Most probable cause at this point is that the \"state\" parameter is\n // invalid.\n throw err\n })\n .catch((err) => {\n if (err instanceof LoginContinuedInParentWindowError) {\n // parent will also try to close the popup\n window.close()\n }\n\n throw err\n })\n }\n\n dispose() {\n this[Symbol.dispose]()\n }\n}\n\n/**\n * Since \"localhost\" is often used either in IP mode or in hostname mode,\n * and because the redirect uris must use the IP mode, we need to make sure\n * that the current location url is not using \"localhost\".\n *\n * This is required for the IndexedDB to work properly. Indeed, the IndexedDB\n * is shared by origin, so we must ensure to be on the same origin as the\n * redirect uris.\n */\nfunction fixLocation(clientMetadata: ClientMetadata) {\n if (!isOAuthClientIdLoopback(clientMetadata.client_id)) return\n if (window.location.hostname !== 'localhost') return\n\n const locationUrl = new URL(window.location.href)\n\n for (const uri of clientMetadata.redirect_uris) {\n const url = new URL(uri)\n if (\n (url.hostname === '127.0.0.1' || url.hostname === '[::1]') &&\n (!url.port || url.port === locationUrl.port) &&\n url.protocol === locationUrl.protocol &&\n url.pathname === locationUrl.pathname\n ) {\n url.port = locationUrl.port\n window.location.href = url.href\n\n // Prevent init() on the wrong origin\n throw new Error('Redirecting to loopback IP...')\n }\n }\n\n throw new Error(\n `Please use the loopback IP address instead of ${locationUrl}`,\n )\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-oauth-database.js","sourceRoot":"","sources":["../src/browser-oauth-database.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"browser-oauth-database.js","sourceRoot":"","sources":["../src/browser-oauth-database.ts"],"names":[],"mappings":"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","sourcesContent":["import { DidDocument } from '@atproto/did'\nimport { Key } from '@atproto/jwk'\nimport { WebcryptoKey } from '@atproto/jwk-webcrypto'\nimport { InternalStateData, Session, TokenSet } from '@atproto/oauth-client'\nimport {\n OAuthAuthorizationServerMetadata,\n OAuthProtectedResourceMetadata,\n} from '@atproto/oauth-types'\nimport { ResolvedHandle } from '@atproto-labs/handle-resolver'\nimport { SimpleStore, Value } from '@atproto-labs/simple-store'\nimport { DB, DBObjectStore } from './indexed-db/index.js'\nimport { TupleUnion } from './util.js'\n\ntype Item<V> = {\n value: V\n expiresAt?: string // ISO Date\n}\n\ntype EncodedKey = {\n keyId: string\n keyPair: CryptoKeyPair\n}\n\nfunction encodeKey(key: Key): EncodedKey {\n if (!(key instanceof WebcryptoKey) || !key.kid) {\n throw new Error('Invalid key object')\n }\n return {\n keyId: key.kid,\n keyPair: key.cryptoKeyPair,\n }\n}\n\nasync function decodeKey(encoded: EncodedKey): Promise<Key> {\n return WebcryptoKey.fromKeypair(encoded.keyPair, encoded.keyId)\n}\n\nexport type Schema = {\n state: Item<{\n dpopKey: EncodedKey\n\n iss: string\n verifier?: string\n appState?: string\n }>\n session: Item<{\n dpopKey: EncodedKey\n\n tokenSet: TokenSet\n }>\n\n didCache: Item<DidDocument>\n dpopNonceCache: Item<string>\n handleCache: Item<ResolvedHandle>\n authorizationServerMetadataCache: Item<OAuthAuthorizationServerMetadata>\n protectedResourceMetadataCache: Item<OAuthProtectedResourceMetadata>\n}\n\nexport type DatabaseStore<V extends Value> = SimpleStore<string, V>\n\nconst STORES: TupleUnion<keyof Schema> = [\n 'state',\n 'session',\n\n 'didCache',\n 'dpopNonceCache',\n 'handleCache',\n 'authorizationServerMetadataCache',\n 'protectedResourceMetadataCache',\n]\n\nexport type BrowserOAuthDatabaseOptions = {\n name?: string\n durability?: 'strict' | 'relaxed'\n cleanupInterval?: number\n}\n\nexport class BrowserOAuthDatabase {\n #dbPromise: Promise<DB<Schema>>\n #cleanupInterval?: ReturnType<typeof setInterval>\n\n constructor(options?: BrowserOAuthDatabaseOptions) {\n this.#dbPromise = DB.open<Schema>(\n options?.name ?? '@atproto-oauth-client',\n [\n (db) => {\n for (const name of STORES) {\n const store = db.createObjectStore(name, { autoIncrement: true })\n store.createIndex('expiresAt', 'expiresAt', { unique: false })\n }\n },\n ],\n { durability: options?.durability ?? 'strict' },\n )\n\n this.#cleanupInterval = setInterval(() => {\n void this.cleanup()\n }, options?.cleanupInterval ?? 30e3)\n }\n\n protected async run<N extends keyof Schema, R>(\n storeName: N,\n mode: 'readonly' | 'readwrite',\n fn: (s: DBObjectStore<Schema[N]>) => R | Promise<R>,\n ): Promise<R> {\n const db = await this.#dbPromise\n return await db.transaction([storeName], mode, (tx) =>\n fn(tx.objectStore(storeName)),\n )\n }\n\n protected createStore<N extends keyof Schema, V extends Value>(\n name: N,\n {\n encode,\n decode,\n expiresAt,\n }: {\n encode: (value: V) => Schema[N]['value'] | PromiseLike<Schema[N]['value']>\n decode: (encoded: Schema[N]['value']) => V | PromiseLike<V>\n expiresAt: (value: V) => null | Date\n },\n ): DatabaseStore<V> {\n return {\n get: async (key) => {\n // Find item in store\n const item = await this.run(name, 'readonly', (store) => store.get(key))\n\n // Not found\n if (item === undefined) return undefined\n\n // Too old (delete)\n if (item.expiresAt != null && new Date(item.expiresAt) < new Date()) {\n await this.run(name, 'readwrite', (store) => store.delete(key))\n return undefined\n }\n\n // Item found and valid. Decode\n return decode(item.value)\n },\n\n set: async (key, value) => {\n // Create encoded item record\n const item = {\n value: await encode(value),\n expiresAt: expiresAt(value)?.toISOString(),\n } as Schema[N]\n\n // Store item record\n await this.run(name, 'readwrite', (store) => store.put(item, key))\n },\n\n del: async (key) => {\n // Delete\n await this.run(name, 'readwrite', (store) => store.delete(key))\n },\n }\n }\n\n getSessionStore(): DatabaseStore<Session> {\n return this.createStore('session', {\n expiresAt: ({ tokenSet }) =>\n tokenSet.refresh_token || tokenSet.expires_at == null\n ? null\n : new Date(tokenSet.expires_at),\n encode: ({ dpopKey, ...session }) => ({\n ...session,\n dpopKey: encodeKey(dpopKey),\n }),\n decode: async ({ dpopKey, ...encoded }) => ({\n ...encoded,\n dpopKey: await decodeKey(dpopKey),\n }),\n })\n }\n\n getStateStore(): DatabaseStore<InternalStateData> {\n return this.createStore('state', {\n expiresAt: (_value) => new Date(Date.now() + 10 * 60e3),\n encode: ({ dpopKey, ...session }) => ({\n ...session,\n dpopKey: encodeKey(dpopKey),\n }),\n decode: async ({ dpopKey, ...encoded }) => ({\n ...encoded,\n dpopKey: await decodeKey(dpopKey),\n }),\n })\n }\n\n getDpopNonceCache(): undefined | DatabaseStore<string> {\n return this.createStore('dpopNonceCache', {\n expiresAt: (_value) => new Date(Date.now() + 600e3),\n encode: (value) => value,\n decode: (encoded) => encoded,\n })\n }\n\n getDidCache(): undefined | DatabaseStore<DidDocument> {\n return this.createStore('didCache', {\n expiresAt: (_value) => new Date(Date.now() + 60e3),\n encode: (value) => value,\n decode: (encoded) => encoded,\n })\n }\n\n getHandleCache(): undefined | DatabaseStore<ResolvedHandle> {\n return this.createStore('handleCache', {\n expiresAt: (_value) => new Date(Date.now() + 60e3),\n encode: (value) => value,\n decode: (encoded) => encoded,\n })\n }\n\n getAuthorizationServerMetadataCache():\n | undefined\n | DatabaseStore<OAuthAuthorizationServerMetadata> {\n return this.createStore('authorizationServerMetadataCache', {\n expiresAt: (_value) => new Date(Date.now() + 60e3),\n encode: (value) => value,\n decode: (encoded) => encoded,\n })\n }\n\n getProtectedResourceMetadataCache():\n | undefined\n | DatabaseStore<OAuthProtectedResourceMetadata> {\n return this.createStore('protectedResourceMetadataCache', {\n expiresAt: (_value) => new Date(Date.now() + 60e3),\n encode: (value) => value,\n decode: (encoded) => encoded,\n })\n }\n\n async cleanup() {\n const db = await this.#dbPromise\n\n for (const name of STORES) {\n await db.transaction([name], 'readwrite', (tx) =>\n tx\n .objectStore(name)\n .index('expiresAt')\n .deleteAll(IDBKeyRange.upperBound(Date.now())),\n )\n }\n }\n\n async [Symbol.asyncDispose]() {\n clearInterval(this.#cleanupInterval)\n this.#cleanupInterval = undefined\n\n const dbPromise = this.#dbPromise\n this.#dbPromise = Promise.reject(new Error('Database has been disposed'))\n\n // Avoid \"unhandled promise rejection\"\n this.#dbPromise.catch(() => null)\n\n // Spec recommends not to throw errors in dispose\n const db = await dbPromise.catch(() => null)\n if (db) await (db[Symbol.asyncDispose] || db[Symbol.dispose]).call(db)\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-runtime-implementation.d.ts","sourceRoot":"","sources":["../src/browser-runtime-implementation.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,GAAG,EACH,qBAAqB,EACrB,WAAW,EACZ,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"browser-runtime-implementation.d.ts","sourceRoot":"","sources":["../src/browser-runtime-implementation.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,GAAG,EACH,qBAAqB,EACrB,WAAW,EACZ,MAAM,uBAAuB,CAAA;AAW9B,qBAAa,4BAA6B,YAAW,qBAAqB;IACxE,WAAW,0BAAoB;;IAmBzB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAI7C,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU;IAIzC,MAAM,CACV,IAAI,EAAE,UAAU,EAChB,EAAE,IAAI,EAAE,EAAE,eAAe,GACxB,OAAO,CAAC,UAAU,CAAC;CAYvB"}
|
|
@@ -5,7 +5,7 @@ const jwk_webcrypto_1 = require("@atproto/jwk-webcrypto");
|
|
|
5
5
|
/**
|
|
6
6
|
* @see {@link // https://developer.mozilla.org/en-US/docs/Web/API/LockManager/request}
|
|
7
7
|
*/
|
|
8
|
-
const nativeRequestLock = navigator.locks?.request
|
|
8
|
+
const nativeRequestLock = typeof navigator !== 'undefined' && navigator.locks?.request
|
|
9
9
|
? (name, fn) => navigator.locks.request(name, { mode: 'exclusive' }, async () => fn())
|
|
10
10
|
: undefined;
|
|
11
11
|
class BrowserRuntimeImplementation {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-runtime-implementation.js","sourceRoot":"","sources":["../src/browser-runtime-implementation.ts"],"names":[],"mappings":";;;AAAA,0DAAqD;AAQrD;;GAEG;AACH,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"browser-runtime-implementation.js","sourceRoot":"","sources":["../src/browser-runtime-implementation.ts"],"names":[],"mappings":";;;AAAA,0DAAqD;AAQrD;;GAEG;AACH,MAAM,iBAAiB,GACrB,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,KAAK,EAAE,OAAO;IAC1D,CAAC,CAAC,CAAI,IAAY,EAAE,EAA4B,EAAc,EAAE,CAC5D,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;IAC1E,CAAC,CAAC,SAAS,CAAA;AAEf,MAAa,4BAA4B;IAGvC;QAFA;;;;mBAAc,iBAAiB;WAAA;QAG7B,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CACb,iHAAiH,CAClH,CAAA;QACH,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,wEAAwE;YACxE,yEAAyE;YACzE,qBAAqB;YACrB,OAAO,CAAC,IAAI,CACV,2EAA2E,CAC5E,CAAA;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAc;QAC5B,OAAO,4BAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IACpC,CAAC;IAED,eAAe,CAAC,UAAkB;QAChC,OAAO,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAA;IAC3D,CAAC;IAED,KAAK,CAAC,MAAM,CACV,IAAgB,EAChB,EAAE,IAAI,EAAmB;QAEzB,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,QAAQ,CAAC;YACd,KAAK,QAAQ,CAAC;YACd,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;gBACpE,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAA;YAC5B,CAAC;YACD;gBACE,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,EAAE,CAAC,CAAA;QAC5D,CAAC;IACH,CAAC;CACF;AA3CD,oEA2CC","sourcesContent":["import { WebcryptoKey } from '@atproto/jwk-webcrypto'\nimport {\n DigestAlgorithm,\n Key,\n RuntimeImplementation,\n RuntimeLock,\n} from '@atproto/oauth-client'\n\n/**\n * @see {@link // https://developer.mozilla.org/en-US/docs/Web/API/LockManager/request}\n */\nconst nativeRequestLock: undefined | RuntimeLock =\n typeof navigator !== 'undefined' && navigator.locks?.request\n ? <T>(name: string, fn: () => T | PromiseLike<T>): Promise<T> =>\n navigator.locks.request(name, { mode: 'exclusive' }, async () => fn())\n : undefined\n\nexport class BrowserRuntimeImplementation implements RuntimeImplementation {\n requestLock = nativeRequestLock\n\n constructor() {\n if (typeof crypto !== 'object' || !crypto?.subtle) {\n throw new Error(\n 'Crypto with CryptoSubtle is required. If running in a browser, make sure the current page is loaded over HTTPS.',\n )\n }\n\n if (!this.requestLock) {\n // There is no real need to polyfill this on older browsers. Indeed, the\n // oauth-client library will try and recover from concurrency issues when\n // refreshing tokens.\n console.warn(\n 'Locks API not available. You should consider using a more recent browser.',\n )\n }\n }\n\n async createKey(algs: string[]): Promise<Key> {\n return WebcryptoKey.generate(algs)\n }\n\n getRandomValues(byteLength: number): Uint8Array {\n return crypto.getRandomValues(new Uint8Array(byteLength))\n }\n\n async digest(\n data: Uint8Array,\n { name }: DigestAlgorithm,\n ): Promise<Uint8Array> {\n switch (name) {\n case 'sha256':\n case 'sha384':\n case 'sha512': {\n const buf = await crypto.subtle.digest(`SHA-${name.slice(3)}`, data)\n return new Uint8Array(buf)\n }\n default:\n throw new Error(`Unsupported digest algorithm: ${name}`)\n }\n }\n}\n"]}
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,MAAa,iCAAkC,SAAQ,KAAK;IAE1D;QACE,KAAK,CAAC,gDAAgD,CAAC,CAAA;QAFzD;;;;mBAAO,kCAAkC;WAAA;IAGzC,CAAC;CACF;AALD,8EAKC"}
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,MAAa,iCAAkC,SAAQ,KAAK;IAE1D;QACE,KAAK,CAAC,gDAAgD,CAAC,CAAA;QAFzD;;;;mBAAO,kCAAkC;WAAA;IAGzC,CAAC;CACF;AALD,8EAKC","sourcesContent":["/**\n * Special error class destined to be thrown when the login process was\n * performed in a popup and should be continued in the parent/initiating window.\n */\nexport class LoginContinuedInParentWindowError extends Error {\n code = 'LOGIN_CONTINUED_IN_PARENT_WINDOW'\n constructor() {\n super('Login complete, please close the popup window.')\n }\n}\n"]}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import '
|
|
1
|
+
import 'core-js/modules/esnext.symbol.async-dispose';
|
|
2
|
+
import 'core-js/modules/esnext.symbol.dispose';
|
|
2
3
|
export * from '@atproto/jwk-webcrypto';
|
|
3
4
|
export * from '@atproto/oauth-client';
|
|
4
5
|
export * from './browser-oauth-client.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,6CAA6C,CAAA;AACpD,OAAO,uCAAuC,CAAA;AAE9C,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AAErC,cAAc,2BAA2B,CAAA;AACzC,cAAc,aAAa,CAAA;AAC3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -15,7 +15,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
exports.buildLoopbackClientId = void 0;
|
|
18
|
-
require("
|
|
18
|
+
require("core-js/modules/esnext.symbol.async-dispose");
|
|
19
|
+
require("core-js/modules/esnext.symbol.dispose");
|
|
19
20
|
__exportStar(require("@atproto/jwk-webcrypto"), exports);
|
|
20
21
|
__exportStar(require("@atproto/oauth-client"), exports);
|
|
21
22
|
__exportStar(require("./browser-oauth-client.js"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uDAAoD;AACpD,iDAA8C;AAE9C,yDAAsC;AACtC,wDAAqC;AAErC,4DAAyC;AACzC,8CAA2B;AAC3B,qCAAiD;AAAxC,gHAAA,qBAAqB,OAAA","sourcesContent":["import 'core-js/modules/esnext.symbol.async-dispose'\nimport 'core-js/modules/esnext.symbol.dispose'\n\nexport * from '@atproto/jwk-webcrypto'\nexport * from '@atproto/oauth-client'\n\nexport * from './browser-oauth-client.js'\nexport * from './errors.js'\nexport { buildLoopbackClientId } from './util.js'\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db-index.js","sourceRoot":"","sources":["../../src/indexed-db/db-index.ts"],"names":[],"mappings":";;;AACA,uCAAqC;AAErC,MAAa,OAAO;IAClB,YAAoB,QAAkB;QAA1B;;;;mBAAQ,QAAQ;WAAU;IAAG,CAAC;IAE1C,KAAK,CAAC,KAAiC;QACrC,OAAO,IAAA,mBAAS,EAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IAC9C,CAAC;IAED,GAAG,CAAC,KAAgC;QAClC,OAAO,IAAA,mBAAS,EAAS,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IACpD,CAAC;IAED,MAAM,CAAC,KAAgC;QACrC,OAAO,IAAA,mBAAS,EAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAC/C,CAAC;IAED,MAAM,CAAC,KAAwC,EAAE,KAAc;QAC7D,OAAO,IAAA,mBAAS,EAAW,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;IAChE,CAAC;IAED,UAAU,CAAC,KAAwC,EAAE,KAAc;QACjE,OAAO,IAAA,mBAAS,EAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;IAC1D,CAAC;IAED,SAAS,CAAC,KAAwC;QAChD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;YAC9C,MAAM,CAAC,SAAS,GAAG,UAAU,KAAK;gBAChC,MAAM,MAAM,GAAI,KAAa,CAAC,MAAM,CAAC,MAA4B,CAAA;gBACjE,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,CAAC,MAAM,EAAE,CAAA;oBACf,MAAM,CAAC,QAAQ,EAAE,CAAA;gBACnB,CAAC;qBAAM,CAAC;oBACN,OAAO,EAAE,CAAA;gBACX,CAAC;YACH,CAAC,CAAA;YACD,MAAM,CAAC,OAAO,GAAG,UAAU,KAAK;gBAC9B,MAAM,CAAE,KAAK,CAAC,MAAc,EAAE,KAAK,IAAI,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAA;YACvE,CAAC,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AAxCD,0BAwCC"}
|
|
1
|
+
{"version":3,"file":"db-index.js","sourceRoot":"","sources":["../../src/indexed-db/db-index.ts"],"names":[],"mappings":";;;AACA,uCAAqC;AAErC,MAAa,OAAO;IAClB,YAAoB,QAAkB;QAA1B;;;;mBAAQ,QAAQ;WAAU;IAAG,CAAC;IAE1C,KAAK,CAAC,KAAiC;QACrC,OAAO,IAAA,mBAAS,EAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;IAC9C,CAAC;IAED,GAAG,CAAC,KAAgC;QAClC,OAAO,IAAA,mBAAS,EAAS,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IACpD,CAAC;IAED,MAAM,CAAC,KAAgC;QACrC,OAAO,IAAA,mBAAS,EAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAC/C,CAAC;IAED,MAAM,CAAC,KAAwC,EAAE,KAAc;QAC7D,OAAO,IAAA,mBAAS,EAAW,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;IAChE,CAAC;IAED,UAAU,CAAC,KAAwC,EAAE,KAAc;QACjE,OAAO,IAAA,mBAAS,EAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;IAC1D,CAAC;IAED,SAAS,CAAC,KAAwC;QAChD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;YAC9C,MAAM,CAAC,SAAS,GAAG,UAAU,KAAK;gBAChC,MAAM,MAAM,GAAI,KAAa,CAAC,MAAM,CAAC,MAA4B,CAAA;gBACjE,IAAI,MAAM,EAAE,CAAC;oBACX,MAAM,CAAC,MAAM,EAAE,CAAA;oBACf,MAAM,CAAC,QAAQ,EAAE,CAAA;gBACnB,CAAC;qBAAM,CAAC;oBACN,OAAO,EAAE,CAAA;gBACX,CAAC;YACH,CAAC,CAAA;YACD,MAAM,CAAC,OAAO,GAAG,UAAU,KAAK;gBAC9B,MAAM,CAAE,KAAK,CAAC,MAAc,EAAE,KAAK,IAAI,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAA;YACvE,CAAC,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;CACF;AAxCD,0BAwCC","sourcesContent":["import { ObjectStoreSchema } from './schema.js'\nimport { promisify } from './util.js'\n\nexport class DBIndex<Schema extends ObjectStoreSchema> {\n constructor(private idbIndex: IDBIndex) {}\n\n count(query?: IDBValidKey | IDBKeyRange) {\n return promisify(this.idbIndex.count(query))\n }\n\n get(query: IDBValidKey | IDBKeyRange) {\n return promisify<Schema>(this.idbIndex.get(query))\n }\n\n getKey(query: IDBValidKey | IDBKeyRange) {\n return promisify(this.idbIndex.getKey(query))\n }\n\n getAll(query?: IDBValidKey | IDBKeyRange | null, count?: number) {\n return promisify<Schema[]>(this.idbIndex.getAll(query, count))\n }\n\n getAllKeys(query?: IDBValidKey | IDBKeyRange | null, count?: number) {\n return promisify(this.idbIndex.getAllKeys(query, count))\n }\n\n deleteAll(query?: IDBValidKey | IDBKeyRange | null): Promise<void> {\n return new Promise((resolve, reject) => {\n const result = this.idbIndex.openCursor(query)\n result.onsuccess = function (event) {\n const cursor = (event as any).target.result as IDBCursorWithValue\n if (cursor) {\n cursor.delete()\n cursor.continue()\n } else {\n resolve()\n }\n }\n result.onerror = function (event) {\n reject((event.target as any)?.error || new Error('Unexpected error'))\n }\n })\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db-object-store.js","sourceRoot":"","sources":["../../src/indexed-db/db-object-store.ts"],"names":[],"mappings":";;;AAAA,+CAAuC;AAEvC,uCAAqC;AAErC,MAAa,aAAa;IACxB,YAAoB,WAA2B;QAAnC;;;;mBAAQ,WAAW;WAAgB;IAAG,CAAC;IAEnD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,IAAY;QAChB,OAAO,IAAI,qBAAO,CAAS,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;IAC1D,CAAC;IAED,GAAG,CAAC,GAA8B;QAChC,OAAO,IAAA,mBAAS,EAAS,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IACrD,CAAC;IAED,MAAM,CAAC,KAAgC;QACrC,OAAO,IAAA,mBAAS,EAA0B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAC3E,CAAC;IAED,MAAM,CAAC,KAAwC,EAAE,KAAc;QAC7D,OAAO,IAAA,mBAAS,EAAW,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;IACnE,CAAC;IAED,UAAU,CAAC,KAAwC,EAAE,KAAc;QACjE,OAAO,IAAA,mBAAS,EAAgB,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;IAC5E,CAAC;IAED,GAAG,CAAC,KAAa,EAAE,GAAiB;QAClC,OAAO,IAAA,mBAAS,EAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAA;IACpD,CAAC;IAED,GAAG,CAAC,KAAa,EAAE,GAAiB;QAClC,OAAO,IAAA,mBAAS,EAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAA;IACpD,CAAC;IAED,MAAM,CAAC,GAA8B;QACnC,OAAO,IAAA,mBAAS,EAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IAChD,CAAC;IAED,KAAK;QACH,OAAO,IAAA,mBAAS,EAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAA;IAC5C,CAAC;CACF;AA1CD,sCA0CC"}
|
|
1
|
+
{"version":3,"file":"db-object-store.js","sourceRoot":"","sources":["../../src/indexed-db/db-object-store.ts"],"names":[],"mappings":";;;AAAA,+CAAuC;AAEvC,uCAAqC;AAErC,MAAa,aAAa;IACxB,YAAoB,WAA2B;QAAnC;;;;mBAAQ,WAAW;WAAgB;IAAG,CAAC;IAEnD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,IAAY;QAChB,OAAO,IAAI,qBAAO,CAAS,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;IAC1D,CAAC;IAED,GAAG,CAAC,GAA8B;QAChC,OAAO,IAAA,mBAAS,EAAS,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IACrD,CAAC;IAED,MAAM,CAAC,KAAgC;QACrC,OAAO,IAAA,mBAAS,EAA0B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IAC3E,CAAC;IAED,MAAM,CAAC,KAAwC,EAAE,KAAc;QAC7D,OAAO,IAAA,mBAAS,EAAW,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;IACnE,CAAC;IAED,UAAU,CAAC,KAAwC,EAAE,KAAc;QACjE,OAAO,IAAA,mBAAS,EAAgB,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;IAC5E,CAAC;IAED,GAAG,CAAC,KAAa,EAAE,GAAiB;QAClC,OAAO,IAAA,mBAAS,EAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAA;IACpD,CAAC;IAED,GAAG,CAAC,KAAa,EAAE,GAAiB;QAClC,OAAO,IAAA,mBAAS,EAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAA;IACpD,CAAC;IAED,MAAM,CAAC,GAA8B;QACnC,OAAO,IAAA,mBAAS,EAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IAChD,CAAC;IAED,KAAK;QACH,OAAO,IAAA,mBAAS,EAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,CAAA;IAC5C,CAAC;CACF;AA1CD,sCA0CC","sourcesContent":["import { DBIndex } from './db-index.js'\nimport { ObjectStoreSchema } from './schema.js'\nimport { promisify } from './util.js'\n\nexport class DBObjectStore<Schema extends ObjectStoreSchema> {\n constructor(private idbObjStore: IDBObjectStore) {}\n\n get name() {\n return this.idbObjStore.name\n }\n\n index(name: string) {\n return new DBIndex<Schema>(this.idbObjStore.index(name))\n }\n\n get(key: IDBValidKey | IDBKeyRange) {\n return promisify<Schema>(this.idbObjStore.get(key))\n }\n\n getKey(query: IDBValidKey | IDBKeyRange) {\n return promisify<IDBValidKey | undefined>(this.idbObjStore.getKey(query))\n }\n\n getAll(query?: IDBValidKey | IDBKeyRange | null, count?: number) {\n return promisify<Schema[]>(this.idbObjStore.getAll(query, count))\n }\n\n getAllKeys(query?: IDBValidKey | IDBKeyRange | null, count?: number) {\n return promisify<IDBValidKey[]>(this.idbObjStore.getAllKeys(query, count))\n }\n\n add(value: Schema, key?: IDBValidKey) {\n return promisify(this.idbObjStore.add(value, key))\n }\n\n put(value: Schema, key?: IDBValidKey) {\n return promisify(this.idbObjStore.put(value, key))\n }\n\n delete(key: IDBValidKey | IDBKeyRange) {\n return promisify(this.idbObjStore.delete(key))\n }\n\n clear() {\n return promisify(this.idbObjStore.clear())\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db-transaction.d.ts","sourceRoot":"","sources":["../../src/indexed-db/db-transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,qBAAa,aAAa,CAAC,MAAM,SAAS,cAAc,CACtD,YAAW,UAAU;;gBAIT,EAAE,EAAE,cAAc;IAkB9B,SAAS,KAAK,EAAE,IAAI,cAAc,CAGjC;IAEK,KAAK;IAML,MAAM;IAMZ,WAAW,CAAC,CAAC,SAAS,MAAM,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC;IAKpD,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;CAGzB"}
|
|
1
|
+
{"version":3,"file":"db-transaction.d.ts","sourceRoot":"","sources":["../../src/indexed-db/db-transaction.ts"],"names":[],"mappings":"AAAA,OAAO,uCAAuC,CAAA;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,qBAAa,aAAa,CAAC,MAAM,SAAS,cAAc,CACtD,YAAW,UAAU;;gBAIT,EAAE,EAAE,cAAc;IAkB9B,SAAS,KAAK,EAAE,IAAI,cAAc,CAGjC;IAEK,KAAK;IAML,MAAM;IAMZ,WAAW,CAAC,CAAC,SAAS,MAAM,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,CAAC;IAKpD,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI;CAGzB"}
|
|
@@ -13,6 +13,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
13
13
|
var _DBTransaction_tx;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.DBTransaction = void 0;
|
|
16
|
+
require("core-js/modules/esnext.symbol.dispose");
|
|
16
17
|
const db_object_store_js_1 = require("./db-object-store.js");
|
|
17
18
|
class DBTransaction {
|
|
18
19
|
constructor(tx) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db-transaction.js","sourceRoot":"","sources":["../../src/indexed-db/db-transaction.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6DAAoD;AAGpD,MAAa,aAAa;IAKxB,YAAY,EAAkB;QAF9B,oCAA0B;QAGxB,uBAAA,IAAI,qBAAO,EAAE,MAAA,CAAA;QAEb,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,OAAO,EAAE,CAAA;QACX,CAAC,CAAA;QACD,MAAM,UAAU,GAAG,GAAG,EAAE;YACtB,OAAO,EAAE,CAAA;QACX,CAAC,CAAA;QACD,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,uBAAA,IAAI,qBAAO,IAAI,MAAA,CAAA;YACf,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YACxC,EAAE,CAAC,mBAAmB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;QAChD,CAAC,CAAA;QACD,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACrC,EAAE,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;IAC7C,CAAC;IAED,IAAc,EAAE;QACd,IAAI,CAAC,uBAAA,IAAI,yBAAI;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;QAC3D,OAAO,uBAAA,IAAI,yBAAI,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAA;QACnB,uBAAA,IAAI,qBAAO,IAAI,MAAA,CAAA;QACf,EAAE,CAAC,KAAK,EAAE,CAAA;IACZ,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAA;QACnB,uBAAA,IAAI,qBAAO,IAAI,MAAA,CAAA;QACf,EAAE,CAAC,MAAM,EAAE,EAAE,CAAA;IACf,CAAC;IAED,WAAW,CAAkC,IAAO;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QACvC,OAAO,IAAI,kCAAa,CAAY,KAAK,CAAC,CAAA;IAC5C,CAAC;IAED,qCAAC,MAAM,CAAC,OAAO,EAAC;QACd,IAAI,uBAAA,IAAI,yBAAI;YAAE,IAAI,CAAC,MAAM,EAAE,CAAA;IAC7B,CAAC;CACF;AAhDD,sCAgDC"}
|
|
1
|
+
{"version":3,"file":"db-transaction.js","sourceRoot":"","sources":["../../src/indexed-db/db-transaction.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,iDAA8C;AAE9C,6DAAoD;AAGpD,MAAa,aAAa;IAKxB,YAAY,EAAkB;QAF9B,oCAA0B;QAGxB,uBAAA,IAAI,qBAAO,EAAE,MAAA,CAAA;QAEb,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,OAAO,EAAE,CAAA;QACX,CAAC,CAAA;QACD,MAAM,UAAU,GAAG,GAAG,EAAE;YACtB,OAAO,EAAE,CAAA;QACX,CAAC,CAAA;QACD,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,uBAAA,IAAI,qBAAO,IAAI,MAAA,CAAA;YACf,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YACxC,EAAE,CAAC,mBAAmB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;QAChD,CAAC,CAAA;QACD,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACrC,EAAE,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;IAC7C,CAAC;IAED,IAAc,EAAE;QACd,IAAI,CAAC,uBAAA,IAAI,yBAAI;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;QAC3D,OAAO,uBAAA,IAAI,yBAAI,CAAA;IACjB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAA;QACnB,uBAAA,IAAI,qBAAO,IAAI,MAAA,CAAA;QACf,EAAE,CAAC,KAAK,EAAE,CAAA;IACZ,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAA;QACnB,uBAAA,IAAI,qBAAO,IAAI,MAAA,CAAA;QACf,EAAE,CAAC,MAAM,EAAE,EAAE,CAAA;IACf,CAAC;IAED,WAAW,CAAkC,IAAO;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;QACvC,OAAO,IAAI,kCAAa,CAAY,KAAK,CAAC,CAAA;IAC5C,CAAC;IAED,qCAAC,MAAM,CAAC,OAAO,EAAC;QACd,IAAI,uBAAA,IAAI,yBAAI;YAAE,IAAI,CAAC,MAAM,EAAE,CAAA;IAC7B,CAAC;CACF;AAhDD,sCAgDC","sourcesContent":["import 'core-js/modules/esnext.symbol.dispose'\n\nimport { DBObjectStore } from './db-object-store.js'\nimport { DatabaseSchema } from './schema.js'\n\nexport class DBTransaction<Schema extends DatabaseSchema>\n implements Disposable\n{\n #tx: IDBTransaction | null\n\n constructor(tx: IDBTransaction) {\n this.#tx = tx\n\n const onAbort = () => {\n cleanup()\n }\n const onComplete = () => {\n cleanup()\n }\n const cleanup = () => {\n this.#tx = null\n tx.removeEventListener('abort', onAbort)\n tx.removeEventListener('complete', onComplete)\n }\n tx.addEventListener('abort', onAbort)\n tx.addEventListener('complete', onComplete)\n }\n\n protected get tx(): IDBTransaction {\n if (!this.#tx) throw new Error('Transaction already ended')\n return this.#tx\n }\n\n async abort() {\n const { tx } = this\n this.#tx = null\n tx.abort()\n }\n\n async commit() {\n const { tx } = this\n this.#tx = null\n tx.commit?.()\n }\n\n objectStore<T extends keyof Schema & string>(name: T) {\n const store = this.tx.objectStore(name)\n return new DBObjectStore<Schema[T]>(store)\n }\n\n [Symbol.dispose](): void {\n if (this.#tx) this.commit()\n }\n}\n"]}
|
package/dist/indexed-db/db.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/indexed-db/db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,qBAAa,EAAE,CAAC,MAAM,SAAS,cAAc,CAAE,YAAW,UAAU;;IAqChE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,qBAAqB;WApCzC,IAAI,CAAC,MAAM,SAAS,cAAc,GAAG,cAAc,EAC9D,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,aAAa,CAAC,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,CAAC,EACpD,SAAS,CAAC,EAAE,qBAAqB;gBAgCjC,EAAE,EAAE,WAAW,EACI,SAAS,CAAC,EAAE,qBAAqB,YAAA;IAetD,SAAS,KAAK,EAAE,IAAI,WAAW,CAG9B;IAED,IAAI,IAAI,WAEP;IAED,IAAI,gBAAgB,kBAEnB;IAED,IAAI,OAAO,WAEV;IAEK,WAAW,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC,EAC/D,UAAU,EAAE,CAAC,EACb,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,CAAC,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GACtE,OAAO,CAAC,CAAC,CAAC;IA4Bb,KAAK;IAML,CAAC,MAAM,CAAC,OAAO,CAAC;CAGjB"}
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/indexed-db/db.ts"],"names":[],"mappings":"AAAA,OAAO,uCAAuC,CAAA;AAE9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,qBAAa,EAAE,CAAC,MAAM,SAAS,cAAc,CAAE,YAAW,UAAU;;IAqChE,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,qBAAqB;WApCzC,IAAI,CAAC,MAAM,SAAS,cAAc,GAAG,cAAc,EAC9D,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,aAAa,CAAC,CAAC,EAAE,EAAE,WAAW,KAAK,IAAI,CAAC,EACpD,SAAS,CAAC,EAAE,qBAAqB;gBAgCjC,EAAE,EAAE,WAAW,EACI,SAAS,CAAC,EAAE,qBAAqB,YAAA;IAetD,SAAS,KAAK,EAAE,IAAI,WAAW,CAG9B;IAED,IAAI,IAAI,WAEP;IAED,IAAI,gBAAgB,kBAEnB;IAED,IAAI,OAAO,WAEV;IAEK,WAAW,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC,EAC/D,UAAU,EAAE,CAAC,EACb,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,CAAC,EAAE,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,GACtE,OAAO,CAAC,CAAC,CAAC;IA4Bb,KAAK;IAML,CAAC,MAAM,CAAC,OAAO,CAAC;CAGjB"}
|
package/dist/indexed-db/db.js
CHANGED
|
@@ -13,6 +13,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
13
13
|
var _DB_db;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.DB = void 0;
|
|
16
|
+
require("core-js/modules/esnext.symbol.dispose");
|
|
16
17
|
const db_transaction_js_1 = require("./db-transaction.js");
|
|
17
18
|
class DB {
|
|
18
19
|
static async open(dbName, migrations, txOptions) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/indexed-db/db.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/indexed-db/db.ts"],"names":[],"mappings":"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","sourcesContent":["import 'core-js/modules/esnext.symbol.dispose'\n\nimport { DBTransaction } from './db-transaction.js'\nimport { DatabaseSchema } from './schema.js'\n\nexport class DB<Schema extends DatabaseSchema> implements Disposable {\n static async open<Schema extends DatabaseSchema = DatabaseSchema>(\n dbName: string,\n migrations: ReadonlyArray<(db: IDBDatabase) => void>,\n txOptions?: IDBTransactionOptions,\n ) {\n const db = await new Promise<IDBDatabase>((resolve, reject) => {\n const request = indexedDB.open(dbName, migrations.length)\n\n request.onerror = () => reject(request.error)\n request.onsuccess = () => resolve(request.result)\n request.onupgradeneeded = ({ oldVersion, newVersion }) => {\n const db = request.result\n try {\n for (\n let version = oldVersion;\n version < (newVersion ?? migrations.length);\n ++version\n ) {\n const migration = migrations[version]\n if (migration) migration(db)\n else throw new Error(`Missing migration for version ${version}`)\n }\n } catch (err) {\n db.close()\n reject(err)\n }\n }\n })\n\n return new DB<Schema>(db, txOptions)\n }\n\n #db: null | IDBDatabase\n\n constructor(\n db: IDBDatabase,\n protected readonly txOptions?: IDBTransactionOptions,\n ) {\n this.#db = db\n\n const cleanup = () => {\n this.#db = null\n db.removeEventListener('versionchange', cleanup)\n db.removeEventListener('close', cleanup)\n db.close() // Can we call close on a \"closed\" database?\n }\n\n db.addEventListener('versionchange', cleanup)\n db.addEventListener('close', cleanup)\n }\n\n protected get db(): IDBDatabase {\n if (!this.#db) throw new Error('Database closed')\n return this.#db\n }\n\n get name() {\n return this.db.name\n }\n\n get objectStoreNames() {\n return this.db.objectStoreNames\n }\n\n get version() {\n return this.db.version\n }\n\n async transaction<T extends readonly (keyof Schema & string)[], R>(\n storeNames: T,\n mode: IDBTransactionMode,\n run: (tx: DBTransaction<Pick<Schema, T[number]>>) => R | PromiseLike<R>,\n ): Promise<R> {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise<R>(async (resolve, reject) => {\n try {\n const tx = this.db.transaction(storeNames, mode, this.txOptions)\n let result: { done: false } | { done: true; value: R } = { done: false }\n\n tx.oncomplete = () => {\n if (result.done) resolve(result.value)\n else reject(new Error('Transaction completed without result'))\n }\n tx.onerror = () => reject(tx.error)\n tx.onabort = () => reject(tx.error || new Error('Transaction aborted'))\n\n try {\n const value = await run(new DBTransaction(tx))\n result = { done: true, value }\n tx.commit()\n } catch (err) {\n tx.abort()\n throw err\n }\n } catch (err) {\n reject(err)\n }\n })\n }\n\n close() {\n const { db } = this\n this.#db = null\n db.close()\n }\n\n [Symbol.dispose]() {\n if (this.#db) return this.close()\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/indexed-db/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/indexed-db/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA"}
|
package/dist/indexed-db/index.js
CHANGED
|
@@ -14,7 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
require("../disposable-polyfill/index.js");
|
|
18
17
|
__exportStar(require("./db.js"), exports);
|
|
19
18
|
__exportStar(require("./db-index.js"), exports);
|
|
20
19
|
__exportStar(require("./db-object-store.js"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/indexed-db/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/indexed-db/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB;AACvB,gDAA6B;AAC7B,uDAAoC;AACpC,sDAAmC","sourcesContent":["export * from './db.js'\nexport * from './db-index.js'\nexport * from './db-object-store.js'\nexport * from './db-transaction.js'\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/indexed-db/schema.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/indexed-db/schema.ts"],"names":[],"mappings":"","sourcesContent":["export type ObjectStoreSchema = NonNullable<unknown>\nexport type DatabaseSchema = Record<string, ObjectStoreSchema>\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/indexed-db/util.ts"],"names":[],"mappings":";;AAAA,sCAmBC;AAED,8BAIC;AAzBD,SAAgB,aAAa,CAC3B,OAAsB,EACtB,SAA8B,EAC9B,OAA+B;IAE/B,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,OAAO,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QAC/C,OAAO,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAC7C,CAAC,CAAA;IACD,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACzB,OAAO,EAAE,CAAA;IACX,CAAC,CAAA;IACD,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAA;QACpD,OAAO,EAAE,CAAA;IACX,CAAC,CAAA;IACD,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAC5C,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AAC1C,CAAC;AAED,SAAgB,SAAS,CAAI,OAAsB;IACjD,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;IACzC,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/indexed-db/util.ts"],"names":[],"mappings":";;AAAA,sCAmBC;AAED,8BAIC;AAzBD,SAAgB,aAAa,CAC3B,OAAsB,EACtB,SAA8B,EAC9B,OAA+B;IAE/B,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,OAAO,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QAC/C,OAAO,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAC7C,CAAC,CAAA;IACD,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACzB,OAAO,EAAE,CAAA;IACX,CAAC,CAAA;IACD,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAA;QACpD,OAAO,EAAE,CAAA;IACX,CAAC,CAAA;IACD,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IAC5C,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;AAC1C,CAAC;AAED,SAAgB,SAAS,CAAI,OAAsB;IACjD,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxC,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;IACzC,CAAC,CAAC,CAAA;AACJ,CAAC","sourcesContent":["export function handleRequest<T>(\n request: IDBRequest<T>,\n onSuccess: (result: T) => void,\n onError: (error: Error) => void,\n) {\n const cleanup = () => {\n request.removeEventListener('success', success)\n request.removeEventListener('error', error)\n }\n const success = () => {\n onSuccess(request.result)\n cleanup()\n }\n const error = () => {\n onError(request.error || new Error('Unknown error'))\n cleanup()\n }\n request.addEventListener('success', success)\n request.addEventListener('error', error)\n}\n\nexport function promisify<T>(request: IDBRequest<T>) {\n return new Promise<T>((resolve, reject) => {\n handleRequest(request, resolve, reject)\n })\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexed-db-store.js","sourceRoot":"","sources":["../src/indexed-db-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"indexed-db-store.js","sourceRoot":"","sources":["../src/indexed-db-store.ts"],"names":[],"mappings":"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","sourcesContent":["import { Key, SimpleStore, Value } from '@atproto-labs/simple-store'\nimport { DB, DBObjectStore } from './indexed-db/index.js'\n\nconst storeName = 'store'\ntype Item<V> = {\n value: V\n createdAt: Date\n}\n\nexport class IndexedDBStore<\n K extends Extract<IDBValidKey, Key>,\n V extends Value,\n> implements SimpleStore<K, V>\n{\n constructor(\n private dbName: string,\n protected maxAge = 600e3,\n ) {}\n\n protected async run<R>(\n mode: 'readonly' | 'readwrite',\n fn: (s: DBObjectStore<Item<V>>) => R | Promise<R>,\n ): Promise<R> {\n const db = await DB.open<{ store: Item<V> }>(\n this.dbName,\n [\n (db) => {\n const store = db.createObjectStore(storeName)\n store.createIndex('createdAt', 'createdAt', { unique: false })\n },\n ],\n { durability: 'strict' },\n )\n try {\n return await db.transaction([storeName], mode, (tx) =>\n fn(tx.objectStore(storeName)),\n )\n } finally {\n await db[Symbol.dispose]()\n }\n }\n\n async get(key: K): Promise<V | undefined> {\n const item = await this.run('readonly', (store) => store.get(key))\n\n if (!item) return undefined\n\n const age = Date.now() - item.createdAt.getTime()\n if (age > this.maxAge) {\n await this.del(key)\n return undefined\n }\n\n return item?.value\n }\n\n async set(key: K, value: V): Promise<void> {\n await this.run('readwrite', (store) => {\n store.put({ value, createdAt: new Date() }, key)\n })\n }\n\n async del(key: K): Promise<void> {\n await this.run('readwrite', (store) => {\n store.delete(key)\n })\n }\n\n async deleteOutdated() {\n const upperBound = new Date(Date.now() - this.maxAge)\n const query = IDBKeyRange.upperBound(upperBound)\n\n await this.run('readwrite', async (store) => {\n const index = store.index('createdAt')\n const keys = await index.getAllKeys(query)\n for (const key of keys) store.delete(key)\n })\n }\n}\n"]}
|
package/dist/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;AAeA,sDAiBC;AAhCD,sDAAqD;AASrD;;;;;GAKG;AACH,SAAgB,qBAAqB,CACnC,QAIC,EACD,SAAS,GAAG,WAAW;IAEvB,IAAI,CAAC,IAAA,4BAAc,EAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,SAAS,CAAC,iCAAiC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC3E,CAAC;IAED,MAAM,WAAW,GAAG,UAAU,QAAQ,CAAC,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAA;IAE7M,OAAO,mBACL,QAAQ,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAC5C,iBAAiB,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAA;AACpD,CAAC"}
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";;AAeA,sDAiBC;AAhCD,sDAAqD;AASrD;;;;;GAKG;AACH,SAAgB,qBAAqB,CACnC,QAIC,EACD,SAAS,GAAG,WAAW;IAEvB,IAAI,CAAC,IAAA,4BAAc,EAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,SAAS,CAAC,iCAAiC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC3E,CAAC;IAED,MAAM,WAAW,GAAG,UAAU,QAAQ,CAAC,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAA;IAE7M,OAAO,mBACL,QAAQ,CAAC,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAC5C,iBAAiB,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAA;AACpD,CAAC","sourcesContent":["import { isLoopbackHost } from '@atproto/oauth-types'\n\nexport type Simplify<T> = { [K in keyof T]: T[K] } & NonNullable<unknown>\nexport type TupleUnion<U extends string, R extends any[] = []> = {\n [S in U]: Exclude<U, S> extends never\n ? [...R, S]\n : TupleUnion<Exclude<U, S>, [...R, S]>\n}[U]\n\n/**\n * @example\n * ```ts\n * const clientId = buildLoopbackClientId(window.location)\n * ```\n */\nexport function buildLoopbackClientId(\n location: {\n hostname: string\n pathname: string\n port: string\n },\n localhost = '127.0.0.1',\n): string {\n if (!isLoopbackHost(location.hostname)) {\n throw new TypeError(`Expected a loopback host, got ${location.hostname}`)\n }\n\n const redirectUri = `http://${location.hostname === 'localhost' ? localhost : location.hostname}${location.port && !location.port.startsWith(':') ? `:${location.port}` : location.port}${location.pathname}`\n\n return `http://localhost${\n location.pathname === '/' ? '' : location.pathname\n }?redirect_uri=${encodeURIComponent(redirectUri)}`\n}\n\ninterface TypedBroadcastChannelEventMap<T> {\n message: MessageEvent<T>\n messageerror: MessageEvent<T>\n}\n\nexport interface TypedBroadcastChannel<T> extends EventTarget {\n readonly name: string\n\n close(): void\n postMessage(message: T): void\n addEventListener<K extends keyof TypedBroadcastChannelEventMap<T>>(\n type: K,\n listener: (\n this: BroadcastChannel,\n ev: TypedBroadcastChannelEventMap<T>[K],\n ) => any,\n options?: boolean | AddEventListenerOptions,\n ): void\n addEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions,\n ): void\n removeEventListener<K extends keyof TypedBroadcastChannelEventMap<T>>(\n type: K,\n listener: (\n this: BroadcastChannel,\n ev: TypedBroadcastChannelEventMap<T>[K],\n ) => any,\n options?: boolean | EventListenerOptions,\n ): void\n removeEventListener(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | EventListenerOptions,\n ): void\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atproto/oauth-client-browser",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.33",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "ATPROTO OAuth client for the browser (relies on WebCrypto & Indexed DB)",
|
|
6
6
|
"keywords": [
|
|
@@ -31,14 +31,15 @@
|
|
|
31
31
|
"dist"
|
|
32
32
|
],
|
|
33
33
|
"dependencies": {
|
|
34
|
+
"core-js": "^3",
|
|
35
|
+
"@atproto-labs/did-resolver": "0.2.2",
|
|
36
|
+
"@atproto-labs/handle-resolver": "0.3.2",
|
|
34
37
|
"@atproto-labs/simple-store": "0.3.0",
|
|
35
|
-
"@atproto
|
|
36
|
-
"@atproto/
|
|
37
|
-
"@atproto/jwk": "0.
|
|
38
|
-
"@atproto
|
|
39
|
-
"@atproto/
|
|
40
|
-
"@atproto/oauth-client": "0.5.5",
|
|
41
|
-
"@atproto/oauth-types": "0.4.1"
|
|
38
|
+
"@atproto/did": "0.2.1",
|
|
39
|
+
"@atproto/jwk": "0.6.0",
|
|
40
|
+
"@atproto/jwk-webcrypto": "0.2.0",
|
|
41
|
+
"@atproto/oauth-client": "0.5.7",
|
|
42
|
+
"@atproto/oauth-types": "0.4.2"
|
|
42
43
|
},
|
|
43
44
|
"devDependencies": {
|
|
44
45
|
"typescript": "^5.6.3"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/disposable-polyfill/index.ts"],"names":[],"mappings":""}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
// Code compiled with tsc supports "using" and "await using" syntax. This
|
|
3
|
-
// features is supported by downleveling the code to ES2017. The downleveling
|
|
4
|
-
// relies on `Symbol.dispose` and `Symbol.asyncDispose` symbols. These symbols
|
|
5
|
-
// might not be available in all environments. This package provides a polyfill
|
|
6
|
-
// for these symbols.
|
|
7
|
-
// @ts-expect-error
|
|
8
|
-
Symbol.dispose ?? (Symbol.dispose = Symbol('@@dispose'));
|
|
9
|
-
// @ts-expect-error
|
|
10
|
-
Symbol.asyncDispose ?? (Symbol.asyncDispose = Symbol('@@asyncDispose'));
|
|
11
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/disposable-polyfill/index.ts"],"names":[],"mappings":";AAAA,yEAAyE;AACzE,6EAA6E;AAC7E,8EAA8E;AAC9E,+EAA+E;AAC/E,qBAAqB;AAErB,mBAAmB;AACnB,MAAM,CAAC,OAAO,KAAd,MAAM,CAAC,OAAO,GAAK,MAAM,CAAC,WAAW,CAAC,EAAA;AACtC,mBAAmB;AACnB,MAAM,CAAC,YAAY,KAAnB,MAAM,CAAC,YAAY,GAAK,MAAM,CAAC,gBAAgB,CAAC,EAAA"}
|