@reown/appkit-siwx 1.2.0-638deddc0.0

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.
Files changed (55) hide show
  1. package/LICENSE +190 -0
  2. package/dist/esm/src/configs/DefaultSIWX.js +23 -0
  3. package/dist/esm/src/configs/DefaultSIWX.js.map +1 -0
  4. package/dist/esm/src/configs/index.js +2 -0
  5. package/dist/esm/src/configs/index.js.map +1 -0
  6. package/dist/esm/src/core/SIWXConfig.js +37 -0
  7. package/dist/esm/src/core/SIWXConfig.js.map +1 -0
  8. package/dist/esm/src/core/SIWXMessenger.js +48 -0
  9. package/dist/esm/src/core/SIWXMessenger.js.map +1 -0
  10. package/dist/esm/src/core/SIWXStorage.js +2 -0
  11. package/dist/esm/src/core/SIWXStorage.js.map +1 -0
  12. package/dist/esm/src/core/SIWXVerifier.js +7 -0
  13. package/dist/esm/src/core/SIWXVerifier.js.map +1 -0
  14. package/dist/esm/src/index.js +5 -0
  15. package/dist/esm/src/index.js.map +1 -0
  16. package/dist/esm/src/messengers/InformalMessenger.js +28 -0
  17. package/dist/esm/src/messengers/InformalMessenger.js.map +1 -0
  18. package/dist/esm/src/messengers/index.js +2 -0
  19. package/dist/esm/src/messengers/index.js.map +1 -0
  20. package/dist/esm/src/storages/LocalStorage.js +35 -0
  21. package/dist/esm/src/storages/LocalStorage.js.map +1 -0
  22. package/dist/esm/src/storages/index.js +2 -0
  23. package/dist/esm/src/storages/index.js.map +1 -0
  24. package/dist/esm/src/verifiers/EIP155Verifier.js +22 -0
  25. package/dist/esm/src/verifiers/EIP155Verifier.js.map +1 -0
  26. package/dist/esm/src/verifiers/index.js +2 -0
  27. package/dist/esm/src/verifiers/index.js.map +1 -0
  28. package/dist/esm/tests/messengers/InformalMessenger.test.js +68 -0
  29. package/dist/esm/tests/messengers/InformalMessenger.test.js.map +1 -0
  30. package/dist/esm/tests/mocks/mockSession.js +18 -0
  31. package/dist/esm/tests/mocks/mockSession.js.map +1 -0
  32. package/dist/esm/tests/storages/LocalStorage.test.js +50 -0
  33. package/dist/esm/tests/storages/LocalStorage.test.js.map +1 -0
  34. package/dist/esm/tests/verifiers/EIP155Verifier.test.js +37 -0
  35. package/dist/esm/tests/verifiers/EIP155Verifier.test.js.map +1 -0
  36. package/dist/esm/tsconfig.tsbuildinfo +1 -0
  37. package/dist/types/src/configs/DefaultSIWX.d.ts +4 -0
  38. package/dist/types/src/configs/index.d.ts +1 -0
  39. package/dist/types/src/core/SIWXConfig.d.ts +24 -0
  40. package/dist/types/src/core/SIWXMessenger.d.ts +25 -0
  41. package/dist/types/src/core/SIWXStorage.d.ts +8 -0
  42. package/dist/types/src/core/SIWXVerifier.d.ts +13 -0
  43. package/dist/types/src/index.d.ts +4 -0
  44. package/dist/types/src/messengers/InformalMessenger.d.ts +6 -0
  45. package/dist/types/src/messengers/index.d.ts +1 -0
  46. package/dist/types/src/storages/LocalStorage.d.ts +19 -0
  47. package/dist/types/src/storages/index.d.ts +1 -0
  48. package/dist/types/src/verifiers/EIP155Verifier.d.ts +7 -0
  49. package/dist/types/src/verifiers/index.d.ts +1 -0
  50. package/dist/types/tests/messengers/InformalMessenger.test.d.ts +1 -0
  51. package/dist/types/tests/mocks/mockSession.d.ts +6 -0
  52. package/dist/types/tests/storages/LocalStorage.test.d.ts +1 -0
  53. package/dist/types/tests/verifiers/EIP155Verifier.test.d.ts +1 -0
  54. package/package.json +48 -0
  55. package/readme.md +14 -0
@@ -0,0 +1,4 @@
1
+ import { SIWXConfig } from '../core/SIWXConfig.js';
2
+ export declare class DefaultSIWX extends SIWXConfig {
3
+ constructor(params?: Partial<SIWXConfig.ConstructorParams>);
4
+ }
@@ -0,0 +1 @@
1
+ export * from './DefaultSIWX.js';
@@ -0,0 +1,24 @@
1
+ import type { SIWXConfig as SIWXConfigInterface, SIWXMessage, SIWXMessageInput, SIWXSession } from '@reown/appkit-core';
2
+ import type { SIWXMessenger } from './SIWXMessenger.js';
3
+ import type { SIWXVerifier } from './SIWXVerifier.js';
4
+ import type { SIWXStorage } from './SIWXStorage.js';
5
+ import type { CaipNetworkId } from '@reown/appkit-common';
6
+ export declare abstract class SIWXConfig implements SIWXConfigInterface {
7
+ private messenger;
8
+ private verifiers;
9
+ private storage;
10
+ constructor(params: SIWXConfig.ConstructorParams);
11
+ createMessage(input: SIWXMessageInput): Promise<SIWXMessage>;
12
+ addSession(session: SIWXSession): Promise<void>;
13
+ setSessions(sessions: SIWXSession[]): Promise<void>;
14
+ getSessions(chainId: CaipNetworkId): Promise<SIWXSession[]>;
15
+ revokeSession(chainId: string, address: string): Promise<void>;
16
+ protected verifySession(session: SIWXSession): Promise<boolean>;
17
+ }
18
+ export declare namespace SIWXConfig {
19
+ type ConstructorParams = {
20
+ messenger: SIWXMessenger;
21
+ verifiers: SIWXVerifier[];
22
+ storage: SIWXStorage;
23
+ };
24
+ }
@@ -0,0 +1,25 @@
1
+ import type { SIWXMessage, SIWXMessageInput, SIWXMessageMetadata, SIWXMessageMethods } from '@reown/appkit-core';
2
+ export declare abstract class SIWXMessenger {
3
+ domain: SIWXMessage['domain'];
4
+ uri: SIWXMessage['uri'];
5
+ statement?: SIWXMessage['statement'];
6
+ resources?: SIWXMessage['resources'];
7
+ protected abstract readonly version: SIWXMessage['version'];
8
+ protected expiration?: number;
9
+ protected getNonce: SIWXMessenger.ConstructorParams['getNonce'];
10
+ protected getRequestId?: SIWXMessenger.ConstructorParams['getRequestId'];
11
+ protected abstract stringify(params: Omit<SIWXMessage, keyof SIWXMessageMethods>): string;
12
+ constructor(params: SIWXMessenger.ConstructorParams);
13
+ createMessage(input: SIWXMessageInput): Promise<SIWXMessage>;
14
+ protected getExpirationTime({ notBefore }: Pick<SIWXMessageInput, 'notBefore'>): string | undefined;
15
+ protected getNotBefore({ notBefore }: Pick<SIWXMessageInput, 'notBefore'>): string | undefined;
16
+ protected getIssuedAt(): string;
17
+ protected stringifyDate(date: Date): string;
18
+ }
19
+ export declare namespace SIWXMessenger {
20
+ interface ConstructorParams extends Omit<SIWXMessageMetadata, 'nonce' | 'version'> {
21
+ expiration?: number;
22
+ getNonce: () => Promise<SIWXMessage['nonce']>;
23
+ getRequestId?: () => Promise<SIWXMessage['requestId']>;
24
+ }
25
+ }
@@ -0,0 +1,8 @@
1
+ import type { CaipNetworkId } from '@reown/appkit-common';
2
+ import type { SIWXSession } from '@reown/appkit-core';
3
+ export interface SIWXStorage {
4
+ add(session: SIWXSession): Promise<void>;
5
+ delete(chainId: string, address: string): Promise<void>;
6
+ get(chainId: CaipNetworkId): Promise<SIWXSession[]>;
7
+ set(sessions: SIWXSession[]): Promise<void>;
8
+ }
@@ -0,0 +1,13 @@
1
+ import type { ChainNamespace } from '@reown/appkit-common';
2
+ import type { SIWXSession } from '@reown/appkit-core';
3
+ export declare abstract class SIWXVerifier {
4
+ abstract readonly chainNamespace: ChainNamespace;
5
+ abstract readonly messageVersion: string;
6
+ shouldVerify(session: SIWXSession): boolean;
7
+ abstract verify(session: SIWXSession): Promise<boolean>;
8
+ }
9
+ export declare namespace SIWXVerifier {
10
+ type ConstructorParams = {
11
+ chainNamespace: ChainNamespace;
12
+ };
13
+ }
@@ -0,0 +1,4 @@
1
+ export * from './messengers/index.js';
2
+ export * from './verifiers/index.js';
3
+ export * from './storages/index.js';
4
+ export * from './configs/index.js';
@@ -0,0 +1,6 @@
1
+ import type { SIWXMessage, SIWXMessageMethods } from '@reown/appkit-core';
2
+ import { SIWXMessenger } from '../core/SIWXMessenger.js';
3
+ export declare class InformalMessenger extends SIWXMessenger {
4
+ protected readonly version = "1";
5
+ protected stringify(params: Omit<SIWXMessage, keyof SIWXMessageMethods>): string;
6
+ }
@@ -0,0 +1 @@
1
+ export * from './InformalMessenger.js';
@@ -0,0 +1,19 @@
1
+ import type { SIWXSession } from '@reown/appkit-core';
2
+ import type { SIWXStorage } from '../core/SIWXStorage.js';
3
+ import type { CaipNetworkId } from '@reown/appkit-common';
4
+ export declare class LocalStorage implements SIWXStorage {
5
+ private key;
6
+ constructor(params: LocalStorage.ConstructorParams);
7
+ add(session: SIWXSession): Promise<void>;
8
+ set(sessions: SIWXSession[]): Promise<void>;
9
+ get(chainId: CaipNetworkId): Promise<SIWXSession[]>;
10
+ delete(chainId: string, address: string): Promise<void>;
11
+ private getSessions;
12
+ private setSessions;
13
+ }
14
+ export declare namespace LocalStorage {
15
+ type ConstructorParams = {
16
+ key: string;
17
+ };
18
+ type Sessions = SIWXSession[];
19
+ }
@@ -0,0 +1 @@
1
+ export * from './LocalStorage.js';
@@ -0,0 +1,7 @@
1
+ import type { SIWXSession } from '@reown/appkit-core';
2
+ import { SIWXVerifier } from '../core/SIWXVerifier.js';
3
+ export declare class EIP155Verifier extends SIWXVerifier {
4
+ readonly chainNamespace = "eip155";
5
+ readonly messageVersion = "1";
6
+ verify(session: SIWXSession): Promise<boolean>;
7
+ }
@@ -0,0 +1 @@
1
+ export * from './EIP155Verifier.js';
@@ -0,0 +1,6 @@
1
+ import type { SIWXSession } from '@reown/appkit-core';
2
+ type MockSessionReplaces = {
3
+ [K in keyof SIWXSession]?: Partial<SIWXSession[K]>;
4
+ };
5
+ export declare function mockSession(replaces?: MockSessionReplaces): SIWXSession;
6
+ export {};
@@ -0,0 +1 @@
1
+ export {};
package/package.json ADDED
@@ -0,0 +1,48 @@
1
+ {
2
+ "name": "@reown/appkit-siwx",
3
+ "version": "1.2.0-638deddc0.0",
4
+ "type": "module",
5
+ "main": "./dist/esm/src/index.js",
6
+ "types": "./dist/types/src/index.d.ts",
7
+ "files": [
8
+ "dist",
9
+ "!tsconfig.tsbuildinfo"
10
+ ],
11
+ "dependencies": {
12
+ "viem": "2.21.34",
13
+ "@reown/appkit-common": "1.2.1-638deddc0.0",
14
+ "@reown/appkit-core": "1.2.1-638deddc0.0"
15
+ },
16
+ "keywords": [
17
+ "web3",
18
+ "crypto",
19
+ "ethereum",
20
+ "appkit",
21
+ "reown",
22
+ "lit",
23
+ "webcomponents",
24
+ "siwx"
25
+ ],
26
+ "author": "Reown <support@reown.com> (https://reown.com)",
27
+ "license": "Apache-2.0",
28
+ "homepage": "https://github.com/reown-com/appkit",
29
+ "repository": {
30
+ "type": "git",
31
+ "url": "git+https://github.com/reown-com/appkit.git"
32
+ },
33
+ "bugs": {
34
+ "url": "https://github.com/reown-com/appkit/issues"
35
+ },
36
+ "devDependencies": {
37
+ "@vitest/coverage-v8": "2.1.3",
38
+ "vitest": "2.1.3"
39
+ },
40
+ "scripts": {
41
+ "build:clean": "rm -rf dist",
42
+ "build": "tsc --build",
43
+ "watch": "tsc --watch",
44
+ "test": "vitest run --dir tests --coverage.enabled=true --coverage.reporter=json --coverage.reporter=json-summary --coverage.reportOnFailure=true",
45
+ "typecheck": "tsc --noEmit",
46
+ "lint": "eslint . --ext .js,.jsx,.ts,.tsx"
47
+ }
48
+ }
package/readme.md ADDED
@@ -0,0 +1,14 @@
1
+ #### 📚 [Documentation](https://docs.reown.com/2.0/appkit/about)
2
+
3
+ #### 🔗 [Website](https://reown.com/appkit)
4
+
5
+ # AppKit SIWX
6
+
7
+ The chain agnostic tool to enable authentication for AppKit applications.
8
+
9
+ > [!WARNING]
10
+ > This package is still in development and should not be used in production.
11
+
12
+ <p align="center">
13
+ <img src="./.github/assets/header.png" alt="" border="0">
14
+ </p>