@emblemvault/auth-sdk 2.0.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 (67) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +180 -0
  3. package/dist/EmblemAuthSDK.d.ts +150 -0
  4. package/dist/EmblemAuthSDK.d.ts.map +1 -0
  5. package/dist/SessionManager.d.ts +57 -0
  6. package/dist/SessionManager.d.ts.map +1 -0
  7. package/dist/emblem-auth.min.js +15 -0
  8. package/dist/emblem-auth.min.js.map +1 -0
  9. package/dist/emblem-auth.umd.js +15 -0
  10. package/dist/emblem-auth.umd.js.map +1 -0
  11. package/dist/index.d.ts +8 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +2 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/index.mjs +2 -0
  16. package/dist/index.mjs.map +1 -0
  17. package/dist/signers/ethers.d.ts +20 -0
  18. package/dist/signers/ethers.d.ts.map +1 -0
  19. package/dist/signers/ethers.js +2 -0
  20. package/dist/signers/ethers.js.map +1 -0
  21. package/dist/signers/ethers.mjs +2 -0
  22. package/dist/signers/ethers.mjs.map +1 -0
  23. package/dist/signers/http.d.ts +4 -0
  24. package/dist/signers/http.d.ts.map +1 -0
  25. package/dist/signers/index.d.ts +9 -0
  26. package/dist/signers/index.d.ts.map +1 -0
  27. package/dist/signers/index.js +2 -0
  28. package/dist/signers/index.js.map +1 -0
  29. package/dist/signers/index.mjs +2 -0
  30. package/dist/signers/index.mjs.map +1 -0
  31. package/dist/signers/solana.d.ts +32 -0
  32. package/dist/signers/solana.d.ts.map +1 -0
  33. package/dist/signers/solana.js +2 -0
  34. package/dist/signers/solana.js.map +1 -0
  35. package/dist/signers/solana.mjs +2 -0
  36. package/dist/signers/solana.mjs.map +1 -0
  37. package/dist/signers/utils.d.ts +10 -0
  38. package/dist/signers/utils.d.ts.map +1 -0
  39. package/dist/signers/validation.d.ts +43 -0
  40. package/dist/signers/validation.d.ts.map +1 -0
  41. package/dist/signers/vault.d.ts +3 -0
  42. package/dist/signers/vault.d.ts.map +1 -0
  43. package/dist/signers/viem.d.ts +15 -0
  44. package/dist/signers/viem.d.ts.map +1 -0
  45. package/dist/signers/viem.js +2 -0
  46. package/dist/signers/viem.js.map +1 -0
  47. package/dist/signers/viem.mjs +2 -0
  48. package/dist/signers/viem.mjs.map +1 -0
  49. package/dist/signers/web3.d.ts +13 -0
  50. package/dist/signers/web3.d.ts.map +1 -0
  51. package/dist/signers/web3.js +2 -0
  52. package/dist/signers/web3.js.map +1 -0
  53. package/dist/signers/web3.mjs +2 -0
  54. package/dist/signers/web3.mjs.map +1 -0
  55. package/dist/types/auth.d.ts +96 -0
  56. package/dist/types/auth.d.ts.map +1 -0
  57. package/dist/types/config.d.ts +43 -0
  58. package/dist/types/config.d.ts.map +1 -0
  59. package/dist/types/events.d.ts +27 -0
  60. package/dist/types/events.d.ts.map +1 -0
  61. package/dist/types/index.d.ts +6 -0
  62. package/dist/types/index.d.ts.map +1 -0
  63. package/dist/types/session.d.ts +63 -0
  64. package/dist/types/session.d.ts.map +1 -0
  65. package/dist/types/signers.d.ts +37 -0
  66. package/dist/types/signers.d.ts.map +1 -0
  67. package/package.json +145 -0
@@ -0,0 +1,6 @@
1
+ export * from './config';
2
+ export * from './session';
3
+ export * from './auth';
4
+ export * from './events';
5
+ export * from './signers';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC"}
@@ -0,0 +1,63 @@
1
+ export interface AuthUser {
2
+ /**
3
+ * User identifier (e.g., "ethereum:0x...", "solana:...", "twitter:...")
4
+ */
5
+ identifier: string;
6
+ /**
7
+ * Emblem Vault tokenId
8
+ */
9
+ vaultId: string;
10
+ /**
11
+ * EVM address if available
12
+ */
13
+ evmAddress?: string;
14
+ /**
15
+ * Solana address if available
16
+ */
17
+ solanaAddress?: string;
18
+ /**
19
+ * Whether this is a guest session (fingerprint auth)
20
+ */
21
+ isGuest?: boolean;
22
+ }
23
+ export interface AuthSession {
24
+ /**
25
+ * User information
26
+ */
27
+ user: AuthUser;
28
+ /**
29
+ * JWT access token for API calls
30
+ */
31
+ authToken: string;
32
+ /**
33
+ * Refresh token for obtaining new access tokens
34
+ */
35
+ refreshToken?: string;
36
+ /**
37
+ * Token expiration timestamp (milliseconds)
38
+ */
39
+ expiresAt: number;
40
+ /**
41
+ * Application ID this session is scoped to
42
+ */
43
+ appId: string;
44
+ /**
45
+ * OAuth scopes granted
46
+ */
47
+ scope?: string;
48
+ /**
49
+ * Authentication method used (wallet, oauth, fingerprint, email)
50
+ */
51
+ authType?: 'wallet' | 'oauth' | 'fingerprint' | 'email';
52
+ }
53
+ export interface SessionRefreshInfo {
54
+ /**
55
+ * Time until refresh in milliseconds
56
+ */
57
+ inMs: number;
58
+ /**
59
+ * Total time to live in milliseconds
60
+ */
61
+ ttl: number;
62
+ }
63
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/types/session.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,IAAI,EAAE,QAAQ,CAAC;IAEf;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,aAAa,GAAG,OAAO,CAAC;CACzD;AAED,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;CACb"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Hex string type with 0x prefix
3
+ */
4
+ export type Hex = `0x${string}`;
5
+ /**
6
+ * Configuration for signer adapters
7
+ * Used internally when SDK methods create signers
8
+ */
9
+ export interface SignerConfig {
10
+ /** x-api-key for authenticate middleware (optional when JWT provided) */
11
+ apiKey?: string;
12
+ /** Static JWT to send as Authorization: Bearer */
13
+ jwt?: string;
14
+ /** Lazy JWT provider */
15
+ getJwt?: () => Promise<string | null | undefined> | string | null | undefined;
16
+ /** Custom headers provider (e.g., Authorization) */
17
+ getAuthHeaders?: () => Promise<Record<string, string>> | Record<string, string>;
18
+ /** SDK-like object exposing getSession() that returns { authToken? } */
19
+ sdk?: {
20
+ getSession: () => {
21
+ authToken?: string | null | undefined;
22
+ } | null | undefined;
23
+ };
24
+ /** Base URL for the Emblem signer API */
25
+ baseUrl?: string;
26
+ }
27
+ /**
28
+ * Internal vault info used by signers
29
+ */
30
+ export interface SignerVaultInfo {
31
+ vaultId: string;
32
+ tokenId?: string;
33
+ address: string;
34
+ evmAddress: Hex;
35
+ created_by?: string;
36
+ }
37
+ //# sourceMappingURL=signers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signers.d.ts","sourceRoot":"","sources":["../../src/types/signers.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,GAAG,GAAG,KAAK,MAAM,EAAE,CAAC;AAEhC;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC9E,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChF,wEAAwE;IACxE,GAAG,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM;YAAE,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;SAAE,GAAG,IAAI,GAAG,SAAS,CAAA;KAAE,CAAC;IACzF,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,GAAG,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
package/package.json ADDED
@@ -0,0 +1,145 @@
1
+ {
2
+ "name": "@emblemvault/auth-sdk",
3
+ "version": "2.0.0",
4
+ "description": "Official TypeScript SDK for Emblem Vault authentication and signing",
5
+ "main": "dist/index.js",
6
+ "module": "dist/index.mjs",
7
+ "types": "dist/index.d.ts",
8
+ "sideEffects": false,
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.mjs",
13
+ "require": "./dist/index.js"
14
+ },
15
+ "./signers": {
16
+ "types": "./dist/signers/index.d.ts",
17
+ "import": "./dist/signers/index.mjs",
18
+ "require": "./dist/signers/index.js"
19
+ },
20
+ "./signers/viem": {
21
+ "types": "./dist/signers/viem.d.ts",
22
+ "import": "./dist/signers/viem.mjs",
23
+ "require": "./dist/signers/viem.js"
24
+ },
25
+ "./signers/ethers": {
26
+ "types": "./dist/signers/ethers.d.ts",
27
+ "import": "./dist/signers/ethers.mjs",
28
+ "require": "./dist/signers/ethers.js"
29
+ },
30
+ "./signers/solana": {
31
+ "types": "./dist/signers/solana.d.ts",
32
+ "import": "./dist/signers/solana.mjs",
33
+ "require": "./dist/signers/solana.js"
34
+ },
35
+ "./signers/web3": {
36
+ "types": "./dist/signers/web3.d.ts",
37
+ "import": "./dist/signers/web3.mjs",
38
+ "require": "./dist/signers/web3.js"
39
+ }
40
+ },
41
+ "files": [
42
+ "dist",
43
+ "README.md",
44
+ "LICENSE"
45
+ ],
46
+ "scripts": {
47
+ "build": "npm run clean && npm run build:types && npm run build:rollup",
48
+ "build:types": "tsc --emitDeclarationOnly",
49
+ "build:rollup": "rollup -c",
50
+ "clean": "rm -rf dist",
51
+ "dev": "rollup -c -w",
52
+ "demo": "node demo/server.js",
53
+ "demo:build": "npm run build && npm run demo",
54
+ "test": "vitest",
55
+ "test:run": "vitest run",
56
+ "test:coverage": "vitest run --coverage",
57
+ "test:integration": "vitest -c vitest.int.config.mts run --reporter=verbose",
58
+ "lint": "eslint 'src/**/*.ts' 'tests/**/*.ts'",
59
+ "lint:fix": "eslint 'src/**/*.ts' 'tests/**/*.ts' --fix",
60
+ "format": "prettier --write 'src/**/*.ts' 'tests/**/*.ts'",
61
+ "format:check": "prettier --check 'src/**/*.ts' 'tests/**/*.ts'",
62
+ "prepublishOnly": "npm run build",
63
+ "version:patch": "npm version patch",
64
+ "version:minor": "npm version minor",
65
+ "version:major": "npm version major",
66
+ "version:prerelease": "npm version prerelease --preid=alpha"
67
+ },
68
+ "keywords": [
69
+ "emblem",
70
+ "vault",
71
+ "authentication",
72
+ "wallet",
73
+ "web3",
74
+ "ethereum",
75
+ "solana",
76
+ "viem",
77
+ "ethers",
78
+ "signer",
79
+ "oauth",
80
+ "sdk",
81
+ "typescript"
82
+ ],
83
+ "author": "Emblem Vault",
84
+ "license": "MIT",
85
+ "repository": {
86
+ "type": "git",
87
+ "url": "https://github.com/emblemvault/auth-sdk.git"
88
+ },
89
+ "bugs": {
90
+ "url": "https://github.com/emblemvault/auth-sdk/issues"
91
+ },
92
+ "homepage": "https://github.com/emblemvault/auth-sdk#readme",
93
+ "publishConfig": {
94
+ "access": "public"
95
+ },
96
+ "engines": {
97
+ "node": ">=16.0.0"
98
+ },
99
+ "peerDependencies": {
100
+ "@solana/web3.js": "^1.0.0",
101
+ "ethers": ">=5.0.0 || >=6.0.0",
102
+ "viem": "^2.0.0"
103
+ },
104
+ "peerDependenciesMeta": {
105
+ "ethers": {
106
+ "optional": true
107
+ },
108
+ "viem": {
109
+ "optional": true
110
+ },
111
+ "@solana/web3.js": {
112
+ "optional": true
113
+ }
114
+ },
115
+ "devDependencies": {
116
+ "@rollup/plugin-json": "^6.1.0",
117
+ "@rollup/plugin-node-resolve": "^16.0.3",
118
+ "@rollup/plugin-typescript": "^12.3.0",
119
+ "@testing-library/jest-dom": "^6.9.1",
120
+ "@types/jest": "^30.0.0",
121
+ "@types/node": "^24.10.1",
122
+ "@typescript-eslint/eslint-plugin": "^8.46.4",
123
+ "@typescript-eslint/parser": "^8.46.4",
124
+ "@vitest/coverage-v8": "^4.0.16",
125
+ "bs58": "^6.0.0",
126
+ "dotenv": "^17.2.3",
127
+ "eslint": "^8.57.1",
128
+ "eslint-config-prettier": "^10.1.8",
129
+ "eslint-plugin-prettier": "^5.5.4",
130
+ "ethers": "^6.16.0",
131
+ "happy-dom": "^20.0.11",
132
+ "jest": "^29.7.0",
133
+ "jest-environment-jsdom": "^29.7.0",
134
+ "jsdom": "^27.4.0",
135
+ "prettier": "^3.6.2",
136
+ "rollup": "^2.79.2",
137
+ "rollup-plugin-terser": "^7.0.2",
138
+ "ts-jest": "^29.4.5",
139
+ "tslib": "^2.8.1",
140
+ "tweetnacl": "^1.0.3",
141
+ "typescript": "^5.9.3",
142
+ "viem": "^2.0.0",
143
+ "vitest": "^4.0.16"
144
+ }
145
+ }