@sigma-auth/better-auth-plugin 0.0.41 → 0.0.42
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/client/index.d.ts +51 -2
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +87 -6
- package/dist/client/index.js.map +1 -1
- package/dist/client/local-signer.d.ts +107 -0
- package/dist/client/local-signer.d.ts.map +1 -0
- package/dist/client/local-signer.js +295 -0
- package/dist/client/local-signer.js.map +1 -0
- package/dist/server/local.d.ts +106 -0
- package/dist/server/local.d.ts.map +1 -0
- package/dist/server/local.js +93 -0
- package/dist/server/local.js.map +1 -0
- package/package.json +9 -1
package/dist/client/index.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import type { BetterFetchOption } from "@better-fetch/fetch";
|
|
2
2
|
import type { ConnectedWallet, NFTListResponse, NFTOwnershipResponse, OAuthCallbackResult, SubscriptionStatus, SubscriptionTier } from "../types/index.js";
|
|
3
|
+
import { type SigmaSigner } from "./local-signer.js";
|
|
3
4
|
export type { BAPProfile, ConnectedWallet, NFT, NFTListResponse, NFTOwnershipResponse, OAuthCallbackError, OAuthCallbackResult, SigmaJWTPayload, SigmaUserInfo, SubscriptionStatus, SubscriptionTier, WalletNFTs, } from "../types/index.js";
|
|
5
|
+
export { LocalServerSigner, type SigmaSigner } from "./local-signer.js";
|
|
6
|
+
export { SigmaIframeSigner } from "./signer.js";
|
|
4
7
|
/**
|
|
5
8
|
* Options for Sigma sign-in (OAuth redirect mode)
|
|
6
9
|
* When authToken is NOT provided, clientId is REQUIRED for OAuth flow
|
|
@@ -34,6 +37,33 @@ export interface SigmaSignInOptions {
|
|
|
34
37
|
*/
|
|
35
38
|
fetchOptions?: BetterFetchOption;
|
|
36
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Options for the Sigma client plugin
|
|
42
|
+
*/
|
|
43
|
+
export interface SigmaClientOptions {
|
|
44
|
+
/**
|
|
45
|
+
* Prefer local TokenPass server over cloud iframe signer.
|
|
46
|
+
* If true, the client will probe for a local server first
|
|
47
|
+
* and only fall back to cloud if unavailable.
|
|
48
|
+
* Default: false
|
|
49
|
+
*/
|
|
50
|
+
preferLocal?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Local server URL (default: http://localhost:21000)
|
|
53
|
+
* Can also be set via NEXT_PUBLIC_TOKENPASS_URL env var
|
|
54
|
+
*/
|
|
55
|
+
localServerUrl?: string;
|
|
56
|
+
/**
|
|
57
|
+
* Timeout for local server requests in milliseconds (default: 5000)
|
|
58
|
+
*/
|
|
59
|
+
localServerTimeout?: number;
|
|
60
|
+
/**
|
|
61
|
+
* Callback when server type is detected
|
|
62
|
+
* @param url - The server URL being used
|
|
63
|
+
* @param isLocal - True if using local server, false if cloud
|
|
64
|
+
*/
|
|
65
|
+
onServerDetected?: (url: string, isLocal: boolean) => void;
|
|
66
|
+
}
|
|
37
67
|
/**
|
|
38
68
|
* Sigma Auth client plugin for Better Auth
|
|
39
69
|
* Provides browser-side OAuth flow with PKCE
|
|
@@ -67,7 +97,7 @@ export interface SigmaSignInOptions {
|
|
|
67
97
|
*
|
|
68
98
|
* export const authClient = createAuthClient({
|
|
69
99
|
* baseURL: "https://auth.sigmaidentity.com",
|
|
70
|
-
* plugins: [sigmaClient()],
|
|
100
|
+
* plugins: [sigmaClient({ preferLocal: true })],
|
|
71
101
|
* });
|
|
72
102
|
*
|
|
73
103
|
* // Sign in with Sigma
|
|
@@ -77,7 +107,7 @@ export interface SigmaSignInOptions {
|
|
|
77
107
|
* });
|
|
78
108
|
* ```
|
|
79
109
|
*/
|
|
80
|
-
export declare const sigmaClient: () => {
|
|
110
|
+
export declare const sigmaClient: (options?: SigmaClientOptions) => {
|
|
81
111
|
id: "sigma";
|
|
82
112
|
getActions: ($fetch: import("@better-fetch/fetch").BetterFetch, $store: import("better-auth").ClientStore) => {
|
|
83
113
|
subscription: {
|
|
@@ -268,6 +298,25 @@ export declare const sigmaClient: () => {
|
|
|
268
298
|
* Call this on logout
|
|
269
299
|
*/
|
|
270
300
|
clearIdentity: () => void;
|
|
301
|
+
/**
|
|
302
|
+
* Detect which server to use (local vs cloud)
|
|
303
|
+
* Call this to explicitly probe for local server
|
|
304
|
+
* @returns Promise resolving to { url: string, isLocal: boolean }
|
|
305
|
+
*/
|
|
306
|
+
detectServer: () => Promise<{
|
|
307
|
+
url: string;
|
|
308
|
+
isLocal: boolean;
|
|
309
|
+
}>;
|
|
310
|
+
/**
|
|
311
|
+
* Get the current signer type being used
|
|
312
|
+
* @returns 'local' | 'iframe' | null
|
|
313
|
+
*/
|
|
314
|
+
getSignerType: () => "local" | "iframe" | null;
|
|
315
|
+
/**
|
|
316
|
+
* Get the underlying signer instance
|
|
317
|
+
* Useful for advanced usage
|
|
318
|
+
*/
|
|
319
|
+
getSigner: () => Promise<SigmaSigner>;
|
|
271
320
|
/**
|
|
272
321
|
* Check if the signer is ready for signing
|
|
273
322
|
* @returns true if identity is set and signer is initialized
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,KAAK,EACX,eAAe,EACf,eAAe,EACf,oBAAoB,EAEpB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,MAAM,mBAAmB,CAAC;AAI3B,YAAY,EACX,UAAU,EACV,eAAe,EACf,GAAG,EACH,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,UAAU,GACV,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
|
package/dist/client/index.js
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
|
+
import { LocalServerSigner, } from "./local-signer.js";
|
|
1
2
|
import { SigmaIframeSigner } from "./signer.js";
|
|
3
|
+
// Re-export signer types and classes
|
|
4
|
+
export { LocalServerSigner } from "./local-signer.js";
|
|
5
|
+
export { SigmaIframeSigner } from "./signer.js";
|
|
2
6
|
// Module-level state for signer (singleton per page)
|
|
3
7
|
let signer = null;
|
|
8
|
+
let signerType = null;
|
|
4
9
|
let storedBapId = null;
|
|
5
10
|
// Storage key for persisting bapId
|
|
6
11
|
const BAP_ID_STORAGE_KEY = "sigma_bap_id";
|
|
@@ -14,15 +19,54 @@ const getSigmaUrl = () => {
|
|
|
14
19
|
}
|
|
15
20
|
return "https://auth.sigmaidentity.com";
|
|
16
21
|
};
|
|
22
|
+
/**
|
|
23
|
+
* Get the local server URL from environment or default
|
|
24
|
+
*/
|
|
25
|
+
const getLocalServerUrl = () => {
|
|
26
|
+
if (typeof process !== "undefined" && process.env.NEXT_PUBLIC_TOKENPASS_URL) {
|
|
27
|
+
return process.env.NEXT_PUBLIC_TOKENPASS_URL;
|
|
28
|
+
}
|
|
29
|
+
return "http://localhost:21000";
|
|
30
|
+
};
|
|
31
|
+
// Module-level options for server detection
|
|
32
|
+
let preferLocalServer = false;
|
|
33
|
+
let localServerOptions = {};
|
|
34
|
+
let serverDetectedCallback;
|
|
17
35
|
/**
|
|
18
36
|
* Initialize or get the signer instance (lazy singleton)
|
|
37
|
+
* Will prefer local server if configured and available
|
|
19
38
|
*/
|
|
20
39
|
const getOrCreateSigner = async () => {
|
|
21
|
-
if (
|
|
22
|
-
signer
|
|
40
|
+
if (signer?.isReady()) {
|
|
41
|
+
return signer;
|
|
42
|
+
}
|
|
43
|
+
// If we prefer local and haven't tried yet, check for local server
|
|
44
|
+
if (preferLocalServer && signerType !== "iframe") {
|
|
45
|
+
const localSigner = new LocalServerSigner({
|
|
46
|
+
baseUrl: localServerOptions.baseUrl || getLocalServerUrl(),
|
|
47
|
+
timeout: localServerOptions.timeout,
|
|
48
|
+
});
|
|
49
|
+
if (await localSigner.probe()) {
|
|
50
|
+
// Local server is available
|
|
51
|
+
signer = localSigner;
|
|
52
|
+
signerType = "local";
|
|
53
|
+
serverDetectedCallback?.(localSigner.getBaseUrl(), true);
|
|
54
|
+
// Try to authenticate with current host
|
|
55
|
+
const host = typeof window !== "undefined" ? window.location.host : "localhost";
|
|
56
|
+
await localSigner.authenticate(host);
|
|
57
|
+
return signer;
|
|
58
|
+
}
|
|
23
59
|
}
|
|
24
|
-
|
|
25
|
-
|
|
60
|
+
// Fall back to iframe signer (cloud)
|
|
61
|
+
if (!signer || signerType !== "iframe") {
|
|
62
|
+
const iframeSigner = new SigmaIframeSigner(getSigmaUrl());
|
|
63
|
+
signer = iframeSigner;
|
|
64
|
+
signerType = "iframe";
|
|
65
|
+
serverDetectedCallback?.(getSigmaUrl(), false);
|
|
66
|
+
}
|
|
67
|
+
const iframeSigner = signer;
|
|
68
|
+
if (!iframeSigner.isReady()) {
|
|
69
|
+
await iframeSigner.init();
|
|
26
70
|
}
|
|
27
71
|
return signer;
|
|
28
72
|
};
|
|
@@ -91,7 +135,7 @@ const generateCodeChallenge = async (verifier) => {
|
|
|
91
135
|
*
|
|
92
136
|
* export const authClient = createAuthClient({
|
|
93
137
|
* baseURL: "https://auth.sigmaidentity.com",
|
|
94
|
-
* plugins: [sigmaClient()],
|
|
138
|
+
* plugins: [sigmaClient({ preferLocal: true })],
|
|
95
139
|
* });
|
|
96
140
|
*
|
|
97
141
|
* // Sign in with Sigma
|
|
@@ -101,7 +145,14 @@ const generateCodeChallenge = async (verifier) => {
|
|
|
101
145
|
* });
|
|
102
146
|
* ```
|
|
103
147
|
*/
|
|
104
|
-
export const sigmaClient = () => {
|
|
148
|
+
export const sigmaClient = (options = {}) => {
|
|
149
|
+
// Configure module-level options for signer detection
|
|
150
|
+
preferLocalServer = options.preferLocal ?? false;
|
|
151
|
+
localServerOptions = {
|
|
152
|
+
baseUrl: options.localServerUrl,
|
|
153
|
+
timeout: options.localServerTimeout,
|
|
154
|
+
};
|
|
155
|
+
serverDetectedCallback = options.onServerDetected;
|
|
105
156
|
return {
|
|
106
157
|
id: "sigma",
|
|
107
158
|
getActions: ($fetch, $store) => {
|
|
@@ -625,7 +676,37 @@ export const sigmaClient = () => {
|
|
|
625
676
|
if (signer) {
|
|
626
677
|
signer.destroy();
|
|
627
678
|
signer = null;
|
|
679
|
+
signerType = null;
|
|
680
|
+
}
|
|
681
|
+
},
|
|
682
|
+
/**
|
|
683
|
+
* Detect which server to use (local vs cloud)
|
|
684
|
+
* Call this to explicitly probe for local server
|
|
685
|
+
* @returns Promise resolving to { url: string, isLocal: boolean }
|
|
686
|
+
*/
|
|
687
|
+
detectServer: async () => {
|
|
688
|
+
const localSigner = new LocalServerSigner({
|
|
689
|
+
baseUrl: localServerOptions.baseUrl || getLocalServerUrl(),
|
|
690
|
+
timeout: localServerOptions.timeout,
|
|
691
|
+
});
|
|
692
|
+
if (await localSigner.probe()) {
|
|
693
|
+
return { url: localSigner.getBaseUrl(), isLocal: true };
|
|
628
694
|
}
|
|
695
|
+
return { url: getSigmaUrl(), isLocal: false };
|
|
696
|
+
},
|
|
697
|
+
/**
|
|
698
|
+
* Get the current signer type being used
|
|
699
|
+
* @returns 'local' | 'iframe' | null
|
|
700
|
+
*/
|
|
701
|
+
getSignerType: () => {
|
|
702
|
+
return signerType;
|
|
703
|
+
},
|
|
704
|
+
/**
|
|
705
|
+
* Get the underlying signer instance
|
|
706
|
+
* Useful for advanced usage
|
|
707
|
+
*/
|
|
708
|
+
getSigner: async () => {
|
|
709
|
+
return getOrCreateSigner();
|
|
629
710
|
},
|
|
630
711
|
/**
|
|
631
712
|
* Check if the signer is ready for signing
|
package/dist/client/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local Server Signer
|
|
3
|
+
*
|
|
4
|
+
* Provides signing and encryption via HTTP calls to a local TokenPass server.
|
|
5
|
+
* This is an alternative to SigmaIframeSigner for users who run TokenPass locally.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - Probes for local server availability
|
|
9
|
+
* - Authenticates with the local server to get access tokens
|
|
10
|
+
* - Signs requests using bitcoin-auth format
|
|
11
|
+
* - Supports AIP signing for OP_RETURN data
|
|
12
|
+
* - Supports Type42 encryption/decryption
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Interface for the Sigma signer implementations
|
|
16
|
+
*/
|
|
17
|
+
export interface SigmaSigner {
|
|
18
|
+
sign(path: string, body?: string, signatureType?: "bsm" | "brc77"): Promise<string>;
|
|
19
|
+
signAIP(hexArray: string[]): Promise<string[]>;
|
|
20
|
+
encrypt(data: string, friendBapId: string, theirPublicKey?: string): Promise<string>;
|
|
21
|
+
decrypt(ciphertext: string, friendBapId: string, theirPublicKey?: string): Promise<string>;
|
|
22
|
+
getFriendPublicKey(friendBapId: string): Promise<string>;
|
|
23
|
+
isReady(): boolean;
|
|
24
|
+
setIdentity(bapId: string): void;
|
|
25
|
+
getIdentity(): string | null;
|
|
26
|
+
destroy(): void;
|
|
27
|
+
}
|
|
28
|
+
export interface LocalServerSignerOptions {
|
|
29
|
+
/** Base URL of the local TokenPass server (default: http://localhost:21000) */
|
|
30
|
+
baseUrl?: string;
|
|
31
|
+
/** Request timeout in milliseconds (default: 5000) */
|
|
32
|
+
timeout?: number;
|
|
33
|
+
}
|
|
34
|
+
export interface LocalServerStatus {
|
|
35
|
+
created: boolean;
|
|
36
|
+
unlocked: boolean;
|
|
37
|
+
bapId?: string;
|
|
38
|
+
address?: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* LocalServerSigner - HTTP-based signer for local TokenPass server
|
|
42
|
+
*
|
|
43
|
+
* This signer communicates with a locally-running TokenPass server
|
|
44
|
+
* via HTTP instead of using an iframe. This provides a better UX for
|
|
45
|
+
* users who prefer to run their own identity server.
|
|
46
|
+
*/
|
|
47
|
+
export declare class LocalServerSigner implements SigmaSigner {
|
|
48
|
+
private baseUrl;
|
|
49
|
+
private timeout;
|
|
50
|
+
private accessToken;
|
|
51
|
+
private currentBapId;
|
|
52
|
+
constructor(options?: LocalServerSignerOptions);
|
|
53
|
+
/**
|
|
54
|
+
* Check if the local TokenPass server is running and accessible
|
|
55
|
+
*/
|
|
56
|
+
probe(): Promise<boolean>;
|
|
57
|
+
/**
|
|
58
|
+
* Get the status of the local TokenPass server
|
|
59
|
+
*/
|
|
60
|
+
getStatus(): Promise<LocalServerStatus | null>;
|
|
61
|
+
/**
|
|
62
|
+
* Authenticate with the local server to get an access token
|
|
63
|
+
*/
|
|
64
|
+
authenticate(host: string, scopes?: string[], expiry?: string): Promise<boolean>;
|
|
65
|
+
/**
|
|
66
|
+
* Check if the signer is ready (has an access token)
|
|
67
|
+
*/
|
|
68
|
+
isReady(): boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Set the identity (BAP ID) for signing
|
|
71
|
+
*/
|
|
72
|
+
setIdentity(bapId: string): void;
|
|
73
|
+
/**
|
|
74
|
+
* Get the current identity
|
|
75
|
+
*/
|
|
76
|
+
getIdentity(): string | null;
|
|
77
|
+
/**
|
|
78
|
+
* Sign a request using the local TokenPass server
|
|
79
|
+
* Returns a bitcoin-auth format token: pubkey|scheme|timestamp|path|signature
|
|
80
|
+
*/
|
|
81
|
+
sign(path: string, body?: string, signatureType?: "bsm" | "brc77"): Promise<string>;
|
|
82
|
+
/**
|
|
83
|
+
* Sign OP_RETURN data with AIP for Bitcoin transactions
|
|
84
|
+
*/
|
|
85
|
+
signAIP(hexArray: string[]): Promise<string[]>;
|
|
86
|
+
/**
|
|
87
|
+
* Encrypt data for a specific friend using Type42 key derivation
|
|
88
|
+
*/
|
|
89
|
+
encrypt(data: string, friendBapId: string, theirPublicKey?: string): Promise<string>;
|
|
90
|
+
/**
|
|
91
|
+
* Decrypt data from a specific friend using Type42 key derivation
|
|
92
|
+
*/
|
|
93
|
+
decrypt(ciphertext: string, friendBapId: string, theirPublicKey?: string): Promise<string>;
|
|
94
|
+
/**
|
|
95
|
+
* Get the derived public key for a specific friend
|
|
96
|
+
*/
|
|
97
|
+
getFriendPublicKey(friendBapId: string): Promise<string>;
|
|
98
|
+
/**
|
|
99
|
+
* Get the base URL of this signer
|
|
100
|
+
*/
|
|
101
|
+
getBaseUrl(): string;
|
|
102
|
+
/**
|
|
103
|
+
* Cleanup - nothing to do for HTTP client
|
|
104
|
+
*/
|
|
105
|
+
destroy(): void;
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=local-signer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-signer.d.ts","sourceRoot":"","sources":["../../src/client/local-signer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local Server Signer
|
|
3
|
+
*
|
|
4
|
+
* Provides signing and encryption via HTTP calls to a local TokenPass server.
|
|
5
|
+
* This is an alternative to SigmaIframeSigner for users who run TokenPass locally.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - Probes for local server availability
|
|
9
|
+
* - Authenticates with the local server to get access tokens
|
|
10
|
+
* - Signs requests using bitcoin-auth format
|
|
11
|
+
* - Supports AIP signing for OP_RETURN data
|
|
12
|
+
* - Supports Type42 encryption/decryption
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* LocalServerSigner - HTTP-based signer for local TokenPass server
|
|
16
|
+
*
|
|
17
|
+
* This signer communicates with a locally-running TokenPass server
|
|
18
|
+
* via HTTP instead of using an iframe. This provides a better UX for
|
|
19
|
+
* users who prefer to run their own identity server.
|
|
20
|
+
*/
|
|
21
|
+
export class LocalServerSigner {
|
|
22
|
+
baseUrl;
|
|
23
|
+
timeout;
|
|
24
|
+
accessToken = null;
|
|
25
|
+
currentBapId = null;
|
|
26
|
+
constructor(options = {}) {
|
|
27
|
+
this.baseUrl = options.baseUrl || "http://localhost:21000";
|
|
28
|
+
this.timeout = options.timeout || 5000;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Check if the local TokenPass server is running and accessible
|
|
32
|
+
*/
|
|
33
|
+
async probe() {
|
|
34
|
+
try {
|
|
35
|
+
const controller = new AbortController();
|
|
36
|
+
const timeoutId = setTimeout(() => controller.abort(), 500);
|
|
37
|
+
const res = await fetch(`${this.baseUrl}/api/status`, {
|
|
38
|
+
signal: controller.signal,
|
|
39
|
+
});
|
|
40
|
+
clearTimeout(timeoutId);
|
|
41
|
+
return res.ok;
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Get the status of the local TokenPass server
|
|
49
|
+
*/
|
|
50
|
+
async getStatus() {
|
|
51
|
+
try {
|
|
52
|
+
const controller = new AbortController();
|
|
53
|
+
const timeoutId = setTimeout(() => controller.abort(), this.timeout);
|
|
54
|
+
const res = await fetch(`${this.baseUrl}/api/status`, {
|
|
55
|
+
signal: controller.signal,
|
|
56
|
+
});
|
|
57
|
+
clearTimeout(timeoutId);
|
|
58
|
+
if (!res.ok)
|
|
59
|
+
return null;
|
|
60
|
+
return (await res.json());
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Authenticate with the local server to get an access token
|
|
68
|
+
*/
|
|
69
|
+
async authenticate(host, scopes = ["sign", "encrypt", "decrypt"], expiry = "1h") {
|
|
70
|
+
try {
|
|
71
|
+
const controller = new AbortController();
|
|
72
|
+
const timeoutId = setTimeout(() => controller.abort(), this.timeout);
|
|
73
|
+
const res = await fetch(`${this.baseUrl}/api/auth`, {
|
|
74
|
+
method: "POST",
|
|
75
|
+
headers: { "Content-Type": "application/json" },
|
|
76
|
+
body: JSON.stringify({ host, scopes, expiry }),
|
|
77
|
+
signal: controller.signal,
|
|
78
|
+
});
|
|
79
|
+
clearTimeout(timeoutId);
|
|
80
|
+
if (!res.ok)
|
|
81
|
+
return false;
|
|
82
|
+
const data = (await res.json());
|
|
83
|
+
this.accessToken = data.accessToken;
|
|
84
|
+
return true;
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Check if the signer is ready (has an access token)
|
|
92
|
+
*/
|
|
93
|
+
isReady() {
|
|
94
|
+
return this.accessToken !== null;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Set the identity (BAP ID) for signing
|
|
98
|
+
*/
|
|
99
|
+
setIdentity(bapId) {
|
|
100
|
+
this.currentBapId = bapId;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Get the current identity
|
|
104
|
+
*/
|
|
105
|
+
getIdentity() {
|
|
106
|
+
return this.currentBapId;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Sign a request using the local TokenPass server
|
|
110
|
+
* Returns a bitcoin-auth format token: pubkey|scheme|timestamp|path|signature
|
|
111
|
+
*/
|
|
112
|
+
async sign(path, body, signatureType = "brc77") {
|
|
113
|
+
if (!this.accessToken) {
|
|
114
|
+
throw new Error("Not authenticated. Call authenticate() first.");
|
|
115
|
+
}
|
|
116
|
+
const controller = new AbortController();
|
|
117
|
+
const timeoutId = setTimeout(() => controller.abort(), this.timeout);
|
|
118
|
+
try {
|
|
119
|
+
const res = await fetch(`${this.baseUrl}/api/sign`, {
|
|
120
|
+
method: "POST",
|
|
121
|
+
headers: {
|
|
122
|
+
"Content-Type": "application/json",
|
|
123
|
+
Authorization: `Bearer ${this.accessToken}`,
|
|
124
|
+
},
|
|
125
|
+
body: JSON.stringify({
|
|
126
|
+
path,
|
|
127
|
+
body,
|
|
128
|
+
signatureType,
|
|
129
|
+
}),
|
|
130
|
+
signal: controller.signal,
|
|
131
|
+
});
|
|
132
|
+
clearTimeout(timeoutId);
|
|
133
|
+
if (!res.ok) {
|
|
134
|
+
const error = await res.text();
|
|
135
|
+
throw new Error(`Sign request failed: ${error}`);
|
|
136
|
+
}
|
|
137
|
+
const data = (await res.json());
|
|
138
|
+
return data.token;
|
|
139
|
+
}
|
|
140
|
+
catch (err) {
|
|
141
|
+
clearTimeout(timeoutId);
|
|
142
|
+
throw err;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Sign OP_RETURN data with AIP for Bitcoin transactions
|
|
147
|
+
*/
|
|
148
|
+
async signAIP(hexArray) {
|
|
149
|
+
if (!this.accessToken) {
|
|
150
|
+
throw new Error("Not authenticated. Call authenticate() first.");
|
|
151
|
+
}
|
|
152
|
+
const controller = new AbortController();
|
|
153
|
+
const timeoutId = setTimeout(() => controller.abort(), this.timeout);
|
|
154
|
+
try {
|
|
155
|
+
const res = await fetch(`${this.baseUrl}/api/sign-aip`, {
|
|
156
|
+
method: "POST",
|
|
157
|
+
headers: {
|
|
158
|
+
"Content-Type": "application/json",
|
|
159
|
+
Authorization: `Bearer ${this.accessToken}`,
|
|
160
|
+
},
|
|
161
|
+
body: JSON.stringify({ data: hexArray }),
|
|
162
|
+
signal: controller.signal,
|
|
163
|
+
});
|
|
164
|
+
clearTimeout(timeoutId);
|
|
165
|
+
if (!res.ok) {
|
|
166
|
+
const error = await res.text();
|
|
167
|
+
throw new Error(`AIP sign request failed: ${error}`);
|
|
168
|
+
}
|
|
169
|
+
const data = (await res.json());
|
|
170
|
+
return data.signedOps;
|
|
171
|
+
}
|
|
172
|
+
catch (err) {
|
|
173
|
+
clearTimeout(timeoutId);
|
|
174
|
+
throw err;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Encrypt data for a specific friend using Type42 key derivation
|
|
179
|
+
*/
|
|
180
|
+
async encrypt(data, friendBapId, theirPublicKey) {
|
|
181
|
+
if (!this.accessToken) {
|
|
182
|
+
throw new Error("Not authenticated. Call authenticate() first.");
|
|
183
|
+
}
|
|
184
|
+
const controller = new AbortController();
|
|
185
|
+
const timeoutId = setTimeout(() => controller.abort(), this.timeout);
|
|
186
|
+
try {
|
|
187
|
+
const res = await fetch(`${this.baseUrl}/api/encrypt`, {
|
|
188
|
+
method: "POST",
|
|
189
|
+
headers: {
|
|
190
|
+
"Content-Type": "application/json",
|
|
191
|
+
Authorization: `Bearer ${this.accessToken}`,
|
|
192
|
+
},
|
|
193
|
+
body: JSON.stringify({
|
|
194
|
+
data,
|
|
195
|
+
friendBapId,
|
|
196
|
+
theirPublicKey,
|
|
197
|
+
}),
|
|
198
|
+
signal: controller.signal,
|
|
199
|
+
});
|
|
200
|
+
clearTimeout(timeoutId);
|
|
201
|
+
if (!res.ok) {
|
|
202
|
+
const error = await res.text();
|
|
203
|
+
throw new Error(`Encrypt request failed: ${error}`);
|
|
204
|
+
}
|
|
205
|
+
const result = (await res.json());
|
|
206
|
+
return result.ciphertext;
|
|
207
|
+
}
|
|
208
|
+
catch (err) {
|
|
209
|
+
clearTimeout(timeoutId);
|
|
210
|
+
throw err;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Decrypt data from a specific friend using Type42 key derivation
|
|
215
|
+
*/
|
|
216
|
+
async decrypt(ciphertext, friendBapId, theirPublicKey) {
|
|
217
|
+
if (!this.accessToken) {
|
|
218
|
+
throw new Error("Not authenticated. Call authenticate() first.");
|
|
219
|
+
}
|
|
220
|
+
const controller = new AbortController();
|
|
221
|
+
const timeoutId = setTimeout(() => controller.abort(), this.timeout);
|
|
222
|
+
try {
|
|
223
|
+
const res = await fetch(`${this.baseUrl}/api/decrypt`, {
|
|
224
|
+
method: "POST",
|
|
225
|
+
headers: {
|
|
226
|
+
"Content-Type": "application/json",
|
|
227
|
+
Authorization: `Bearer ${this.accessToken}`,
|
|
228
|
+
},
|
|
229
|
+
body: JSON.stringify({
|
|
230
|
+
ciphertext,
|
|
231
|
+
friendBapId,
|
|
232
|
+
theirPublicKey,
|
|
233
|
+
}),
|
|
234
|
+
signal: controller.signal,
|
|
235
|
+
});
|
|
236
|
+
clearTimeout(timeoutId);
|
|
237
|
+
if (!res.ok) {
|
|
238
|
+
const error = await res.text();
|
|
239
|
+
throw new Error(`Decrypt request failed: ${error}`);
|
|
240
|
+
}
|
|
241
|
+
const result = (await res.json());
|
|
242
|
+
return result.data;
|
|
243
|
+
}
|
|
244
|
+
catch (err) {
|
|
245
|
+
clearTimeout(timeoutId);
|
|
246
|
+
throw err;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Get the derived public key for a specific friend
|
|
251
|
+
*/
|
|
252
|
+
async getFriendPublicKey(friendBapId) {
|
|
253
|
+
if (!this.accessToken) {
|
|
254
|
+
throw new Error("Not authenticated. Call authenticate() first.");
|
|
255
|
+
}
|
|
256
|
+
const controller = new AbortController();
|
|
257
|
+
const timeoutId = setTimeout(() => controller.abort(), this.timeout);
|
|
258
|
+
try {
|
|
259
|
+
const res = await fetch(`${this.baseUrl}/api/friend-pubkey`, {
|
|
260
|
+
method: "POST",
|
|
261
|
+
headers: {
|
|
262
|
+
"Content-Type": "application/json",
|
|
263
|
+
Authorization: `Bearer ${this.accessToken}`,
|
|
264
|
+
},
|
|
265
|
+
body: JSON.stringify({ friendBapId }),
|
|
266
|
+
signal: controller.signal,
|
|
267
|
+
});
|
|
268
|
+
clearTimeout(timeoutId);
|
|
269
|
+
if (!res.ok) {
|
|
270
|
+
const error = await res.text();
|
|
271
|
+
throw new Error(`Get friend public key failed: ${error}`);
|
|
272
|
+
}
|
|
273
|
+
const result = (await res.json());
|
|
274
|
+
return result.publicKey;
|
|
275
|
+
}
|
|
276
|
+
catch (err) {
|
|
277
|
+
clearTimeout(timeoutId);
|
|
278
|
+
throw err;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Get the base URL of this signer
|
|
283
|
+
*/
|
|
284
|
+
getBaseUrl() {
|
|
285
|
+
return this.baseUrl;
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Cleanup - nothing to do for HTTP client
|
|
289
|
+
*/
|
|
290
|
+
destroy() {
|
|
291
|
+
this.accessToken = null;
|
|
292
|
+
this.currentBapId = null;
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
//# sourceMappingURL=local-signer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-signer.js","sourceRoot":"","sources":["../../src/client/local-signer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local Signer Server Helpers
|
|
3
|
+
*
|
|
4
|
+
* Utilities for building a local sigma-auth server that LocalServerSigner can connect to.
|
|
5
|
+
* Use these to create consistent API responses and validate access tokens.
|
|
6
|
+
*/
|
|
7
|
+
import { type AuthToken, parseAuthToken, verifyAuthToken } from "bitcoin-auth";
|
|
8
|
+
/**
|
|
9
|
+
* Access token validation options
|
|
10
|
+
*/
|
|
11
|
+
export interface ValidateAccessTokenOptions {
|
|
12
|
+
/** The access token from Authorization header */
|
|
13
|
+
accessToken: string;
|
|
14
|
+
/** Function to look up token state from database */
|
|
15
|
+
findState: (accessToken: string) => Promise<{
|
|
16
|
+
accessToken: string;
|
|
17
|
+
expireTime?: number;
|
|
18
|
+
host?: string;
|
|
19
|
+
scopes?: string[];
|
|
20
|
+
} | null>;
|
|
21
|
+
/** Required scopes (optional) */
|
|
22
|
+
requiredScopes?: string[];
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Access token validation result
|
|
26
|
+
*/
|
|
27
|
+
export interface AccessTokenValidation {
|
|
28
|
+
valid: boolean;
|
|
29
|
+
error?: string;
|
|
30
|
+
code?: number;
|
|
31
|
+
host?: string;
|
|
32
|
+
scopes?: string[];
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Validate an access token from Authorization header
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* import { validateAccessToken, extractAccessToken } from "@sigma-auth/better-auth-plugin/server/local";
|
|
40
|
+
*
|
|
41
|
+
* const authHeader = request.headers.get("authorization");
|
|
42
|
+
* const accessToken = extractAccessToken(authHeader);
|
|
43
|
+
*
|
|
44
|
+
* const validation = await validateAccessToken({
|
|
45
|
+
* accessToken,
|
|
46
|
+
* findState: (token) => db.states.findOne({ accessToken: token }),
|
|
47
|
+
* });
|
|
48
|
+
*
|
|
49
|
+
* if (!validation.valid) {
|
|
50
|
+
* return Response.json({ error: validation.error, success: false }, { status: 401 });
|
|
51
|
+
* }
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
export declare function validateAccessToken(options: ValidateAccessTokenOptions): Promise<AccessTokenValidation>;
|
|
55
|
+
/**
|
|
56
|
+
* Extract access token from Authorization header
|
|
57
|
+
* Supports both "Bearer <token>" and raw token formats
|
|
58
|
+
*/
|
|
59
|
+
export declare function extractAccessToken(authHeader: string | null): string | null;
|
|
60
|
+
/**
|
|
61
|
+
* Standard error response format for local signer API
|
|
62
|
+
*/
|
|
63
|
+
export interface LocalSignerError {
|
|
64
|
+
error: string;
|
|
65
|
+
code?: number;
|
|
66
|
+
success: false;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Create a standard error response
|
|
70
|
+
*/
|
|
71
|
+
export declare function createErrorResponse(error: string, code?: number): LocalSignerError;
|
|
72
|
+
/**
|
|
73
|
+
* Response types for local signer endpoints
|
|
74
|
+
*/
|
|
75
|
+
export interface SignResponse {
|
|
76
|
+
token: string;
|
|
77
|
+
success: true;
|
|
78
|
+
}
|
|
79
|
+
export interface AIPSignResponse {
|
|
80
|
+
signedOps: string[];
|
|
81
|
+
success: true;
|
|
82
|
+
}
|
|
83
|
+
export interface EncryptResponse {
|
|
84
|
+
ciphertext: string;
|
|
85
|
+
success: true;
|
|
86
|
+
}
|
|
87
|
+
export interface DecryptResponse {
|
|
88
|
+
data: string;
|
|
89
|
+
success: true;
|
|
90
|
+
}
|
|
91
|
+
export interface FriendPubkeyResponse {
|
|
92
|
+
publicKey: string;
|
|
93
|
+
success: true;
|
|
94
|
+
}
|
|
95
|
+
export interface AuthResponse {
|
|
96
|
+
accessToken: string;
|
|
97
|
+
expireTime: number;
|
|
98
|
+
host: string;
|
|
99
|
+
success: true;
|
|
100
|
+
}
|
|
101
|
+
export interface StatusResponse {
|
|
102
|
+
unlocked: boolean;
|
|
103
|
+
success: true;
|
|
104
|
+
}
|
|
105
|
+
export { verifyAuthToken, parseAuthToken, type AuthToken };
|
|
106
|
+
//# sourceMappingURL=local.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../src/server/local.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,SAAS,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/E;;GAEG;AACH,MAAM,WAAW,0BAA0B;IAC1C,iDAAiD;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,SAAS,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC;QAC3C,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,GAAG,IAAI,CAAC,CAAC;IACV,iCAAiC;IACjC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,mBAAmB,CACxC,OAAO,EAAE,0BAA0B,GACjC,OAAO,CAAC,qBAAqB,CAAC,CAoDhC;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAG3E;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,KAAK,CAAC;CACf;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAClC,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,MAAM,GACX,gBAAgB,CAMlB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,IAAI,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC/B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,IAAI,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,IAAI,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,IAAI,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,IAAI,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,IAAI,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,IAAI,CAAC;CACd;AAGD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,KAAK,SAAS,EAAE,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Local Signer Server Helpers
|
|
3
|
+
*
|
|
4
|
+
* Utilities for building a local sigma-auth server that LocalServerSigner can connect to.
|
|
5
|
+
* Use these to create consistent API responses and validate access tokens.
|
|
6
|
+
*/
|
|
7
|
+
import { parseAuthToken, verifyAuthToken } from "bitcoin-auth";
|
|
8
|
+
/**
|
|
9
|
+
* Validate an access token from Authorization header
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* import { validateAccessToken, extractAccessToken } from "@sigma-auth/better-auth-plugin/server/local";
|
|
14
|
+
*
|
|
15
|
+
* const authHeader = request.headers.get("authorization");
|
|
16
|
+
* const accessToken = extractAccessToken(authHeader);
|
|
17
|
+
*
|
|
18
|
+
* const validation = await validateAccessToken({
|
|
19
|
+
* accessToken,
|
|
20
|
+
* findState: (token) => db.states.findOne({ accessToken: token }),
|
|
21
|
+
* });
|
|
22
|
+
*
|
|
23
|
+
* if (!validation.valid) {
|
|
24
|
+
* return Response.json({ error: validation.error, success: false }, { status: 401 });
|
|
25
|
+
* }
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export async function validateAccessToken(options) {
|
|
29
|
+
const { accessToken, findState, requiredScopes } = options;
|
|
30
|
+
if (!accessToken) {
|
|
31
|
+
return {
|
|
32
|
+
valid: false,
|
|
33
|
+
error: "Please provide an access token in the Authorization header.",
|
|
34
|
+
code: 2,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
const state = await findState(accessToken);
|
|
38
|
+
if (!state?.accessToken || state.accessToken !== accessToken) {
|
|
39
|
+
return {
|
|
40
|
+
valid: false,
|
|
41
|
+
error: "Invalid access token.",
|
|
42
|
+
code: 3,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
// Check expiration (0 means never expires)
|
|
46
|
+
if (state.expireTime &&
|
|
47
|
+
state.expireTime !== 0 &&
|
|
48
|
+
state.expireTime < Date.now()) {
|
|
49
|
+
return {
|
|
50
|
+
valid: false,
|
|
51
|
+
error: "Access token has expired.",
|
|
52
|
+
code: 5,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
// Check required scopes
|
|
56
|
+
if (requiredScopes?.length) {
|
|
57
|
+
const hasAllScopes = requiredScopes.every((scope) => state.scopes?.includes(scope));
|
|
58
|
+
if (!hasAllScopes) {
|
|
59
|
+
return {
|
|
60
|
+
valid: false,
|
|
61
|
+
error: `Missing required scopes: ${requiredScopes.join(", ")}`,
|
|
62
|
+
code: 6,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
valid: true,
|
|
68
|
+
host: state.host,
|
|
69
|
+
scopes: state.scopes,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Extract access token from Authorization header
|
|
74
|
+
* Supports both "Bearer <token>" and raw token formats
|
|
75
|
+
*/
|
|
76
|
+
export function extractAccessToken(authHeader) {
|
|
77
|
+
if (!authHeader)
|
|
78
|
+
return null;
|
|
79
|
+
return authHeader.replace(/^Bearer\s+/i, "").trim() || null;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Create a standard error response
|
|
83
|
+
*/
|
|
84
|
+
export function createErrorResponse(error, code) {
|
|
85
|
+
return {
|
|
86
|
+
error,
|
|
87
|
+
code,
|
|
88
|
+
success: false,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
// Re-export bitcoin-auth functions for convenience
|
|
92
|
+
export { verifyAuthToken, parseAuthToken };
|
|
93
|
+
//# sourceMappingURL=local.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local.js","sourceRoot":"","sources":["../../src/server/local.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAkB,cAAc,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AA8B/E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACxC,OAAmC;IAEnC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IAE3D,IAAI,CAAC,WAAW,EAAE,CAAC;QAClB,OAAO;YACN,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,6DAA6D;YACpE,IAAI,EAAE,CAAC;SACP,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3C,IAAI,CAAC,KAAK,EAAE,WAAW,IAAI,KAAK,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;QAC9D,OAAO;YACN,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,uBAAuB;YAC9B,IAAI,EAAE,CAAC;SACP,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,IACC,KAAK,CAAC,UAAU;QAChB,KAAK,CAAC,UAAU,KAAK,CAAC;QACtB,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,EAC5B,CAAC;QACF,OAAO;YACN,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,2BAA2B;YAClC,IAAI,EAAE,CAAC;SACP,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC;QAC5B,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACnD,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,CAC7B,CAAC;QACF,IAAI,CAAC,YAAY,EAAE,CAAC;YACnB,OAAO;gBACN,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,4BAA4B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBAC9D,IAAI,EAAE,CAAC;aACP,CAAC;QACH,CAAC;IACF,CAAC;IAED,OAAO;QACN,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,KAAK,CAAC,MAAM;KACpB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAAyB;IAC3D,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7B,OAAO,UAAU,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;AAC7D,CAAC;AAWD;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAClC,KAAa,EACb,IAAa;IAEb,OAAO;QACN,KAAK;QACL,IAAI;QACJ,OAAO,EAAE,KAAK;KACd,CAAC;AACH,CAAC;AA0CD,mDAAmD;AACnD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAkB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sigma-auth/better-auth-plugin",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.42",
|
|
4
4
|
"description": "Better Auth plugins for Sigma Identity - client, server, and provider integrations",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/types/index.js",
|
|
@@ -14,10 +14,18 @@
|
|
|
14
14
|
"types": "./dist/client/index.d.ts",
|
|
15
15
|
"import": "./dist/client/index.js"
|
|
16
16
|
},
|
|
17
|
+
"./client/local": {
|
|
18
|
+
"types": "./dist/client/local-signer.d.ts",
|
|
19
|
+
"import": "./dist/client/local-signer.js"
|
|
20
|
+
},
|
|
17
21
|
"./server": {
|
|
18
22
|
"types": "./dist/server/index.d.ts",
|
|
19
23
|
"import": "./dist/server/index.js"
|
|
20
24
|
},
|
|
25
|
+
"./server/local": {
|
|
26
|
+
"types": "./dist/server/local.d.ts",
|
|
27
|
+
"import": "./dist/server/local.js"
|
|
28
|
+
},
|
|
21
29
|
"./next": {
|
|
22
30
|
"types": "./dist/next/index.d.ts",
|
|
23
31
|
"import": "./dist/next/index.js"
|