@tinycloudlabs/node-sdk 1.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.
- package/LICENSE.md +320 -0
- package/dist/DelegatedAccess.d.ts +33 -0
- package/dist/DelegatedAccess.d.ts.map +1 -0
- package/dist/DelegatedAccess.js +61 -0
- package/dist/DelegatedAccess.js.map +1 -0
- package/dist/TinyCloudNode.d.ts +441 -0
- package/dist/TinyCloudNode.d.ts.map +1 -0
- package/dist/TinyCloudNode.js +987 -0
- package/dist/TinyCloudNode.js.map +1 -0
- package/dist/authorization/NodeUserAuthorization.d.ts +200 -0
- package/dist/authorization/NodeUserAuthorization.d.ts.map +1 -0
- package/dist/authorization/NodeUserAuthorization.js +516 -0
- package/dist/authorization/NodeUserAuthorization.js.map +1 -0
- package/dist/authorization/strategies.d.ts +57 -0
- package/dist/authorization/strategies.d.ts.map +1 -0
- package/dist/authorization/strategies.js +15 -0
- package/dist/authorization/strategies.js.map +1 -0
- package/dist/delegation.d.ts +35 -0
- package/dist/delegation.d.ts.map +1 -0
- package/dist/delegation.js +21 -0
- package/dist/delegation.js.map +1 -0
- package/dist/index.d.ts +52 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +73 -0
- package/dist/index.js.map +1 -0
- package/dist/keys/WasmKeyProvider.d.ts +101 -0
- package/dist/keys/WasmKeyProvider.d.ts.map +1 -0
- package/dist/keys/WasmKeyProvider.js +113 -0
- package/dist/keys/WasmKeyProvider.js.map +1 -0
- package/dist/keys/index.d.ts +7 -0
- package/dist/keys/index.d.ts.map +1 -0
- package/dist/keys/index.js +7 -0
- package/dist/keys/index.js.map +1 -0
- package/dist/signers/PrivateKeySigner.d.ts +47 -0
- package/dist/signers/PrivateKeySigner.d.ts.map +1 -0
- package/dist/signers/PrivateKeySigner.js +89 -0
- package/dist/signers/PrivateKeySigner.js.map +1 -0
- package/dist/storage/FileSessionStorage.d.ts +59 -0
- package/dist/storage/FileSessionStorage.d.ts.map +1 -0
- package/dist/storage/FileSessionStorage.js +148 -0
- package/dist/storage/FileSessionStorage.js.map +1 -0
- package/dist/storage/MemorySessionStorage.d.ts +49 -0
- package/dist/storage/MemorySessionStorage.d.ts.map +1 -0
- package/dist/storage/MemorySessionStorage.js +88 -0
- package/dist/storage/MemorySessionStorage.js.map +1 -0
- package/package.json +43 -0
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { validatePersistedSessionData } from "@tinycloudlabs/sdk-core";
|
|
2
|
+
import { readFileSync, writeFileSync, existsSync, mkdirSync, unlinkSync } from "fs";
|
|
3
|
+
import { join } from "path";
|
|
4
|
+
/**
|
|
5
|
+
* File-based session storage for Node.js.
|
|
6
|
+
*
|
|
7
|
+
* Sessions are persisted to the file system and survive process restarts.
|
|
8
|
+
* Suitable for:
|
|
9
|
+
* - CLI applications
|
|
10
|
+
* - Long-running server processes
|
|
11
|
+
* - Development environments
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* const storage = new FileSessionStorage("/tmp/tinycloud-sessions");
|
|
16
|
+
* await storage.save("0x123...", sessionData);
|
|
17
|
+
* // Session persists across process restarts
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export class FileSessionStorage {
|
|
21
|
+
/**
|
|
22
|
+
* Create a new FileSessionStorage.
|
|
23
|
+
*
|
|
24
|
+
* @param baseDir - Directory to store session files (default: ~/.tinycloud/sessions)
|
|
25
|
+
*/
|
|
26
|
+
constructor(baseDir) {
|
|
27
|
+
this.baseDir = baseDir || this.getDefaultDir();
|
|
28
|
+
this.ensureDirectoryExists();
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Get the default session storage directory.
|
|
32
|
+
*/
|
|
33
|
+
getDefaultDir() {
|
|
34
|
+
const home = process.env.HOME || process.env.USERPROFILE || "/tmp";
|
|
35
|
+
return join(home, ".tinycloud", "sessions");
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Ensure the storage directory exists.
|
|
39
|
+
*/
|
|
40
|
+
ensureDirectoryExists() {
|
|
41
|
+
if (!existsSync(this.baseDir)) {
|
|
42
|
+
mkdirSync(this.baseDir, { recursive: true });
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Get the file path for an address.
|
|
47
|
+
*/
|
|
48
|
+
getFilePath(address) {
|
|
49
|
+
const normalizedAddress = address.toLowerCase();
|
|
50
|
+
// Use a hash of the address to avoid filesystem issues
|
|
51
|
+
const filename = `${normalizedAddress.replace("0x", "")}.json`;
|
|
52
|
+
return join(this.baseDir, filename);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Save a session for an address.
|
|
56
|
+
*/
|
|
57
|
+
async save(address, session) {
|
|
58
|
+
const filePath = this.getFilePath(address);
|
|
59
|
+
const data = JSON.stringify(session, null, 2);
|
|
60
|
+
writeFileSync(filePath, data, "utf-8");
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Load a session for an address.
|
|
64
|
+
*/
|
|
65
|
+
async load(address) {
|
|
66
|
+
const filePath = this.getFilePath(address);
|
|
67
|
+
if (!existsSync(filePath)) {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
try {
|
|
71
|
+
const data = readFileSync(filePath, "utf-8");
|
|
72
|
+
const parsed = JSON.parse(data);
|
|
73
|
+
// Validate loaded data against schema
|
|
74
|
+
const validation = validatePersistedSessionData(parsed);
|
|
75
|
+
if (!validation.ok) {
|
|
76
|
+
console.warn(`Invalid session data for ${address}:`, validation.error.message);
|
|
77
|
+
// Clean up invalid session
|
|
78
|
+
unlinkSync(filePath);
|
|
79
|
+
return null;
|
|
80
|
+
}
|
|
81
|
+
const session = validation.data;
|
|
82
|
+
// Check if session is expired
|
|
83
|
+
const expiresAt = new Date(session.expiresAt);
|
|
84
|
+
if (expiresAt < new Date()) {
|
|
85
|
+
// Clean up expired session
|
|
86
|
+
unlinkSync(filePath);
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
return session;
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
// Invalid JSON or read error - remove the file
|
|
93
|
+
try {
|
|
94
|
+
unlinkSync(filePath);
|
|
95
|
+
}
|
|
96
|
+
catch {
|
|
97
|
+
// Ignore cleanup errors
|
|
98
|
+
}
|
|
99
|
+
return null;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Clear a session for an address.
|
|
104
|
+
*/
|
|
105
|
+
async clear(address) {
|
|
106
|
+
const filePath = this.getFilePath(address);
|
|
107
|
+
if (existsSync(filePath)) {
|
|
108
|
+
unlinkSync(filePath);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Check if a session exists for an address.
|
|
113
|
+
*/
|
|
114
|
+
exists(address) {
|
|
115
|
+
const filePath = this.getFilePath(address);
|
|
116
|
+
if (!existsSync(filePath)) {
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
119
|
+
try {
|
|
120
|
+
const data = readFileSync(filePath, "utf-8");
|
|
121
|
+
const session = JSON.parse(data);
|
|
122
|
+
// Check if session is expired
|
|
123
|
+
const expiresAt = new Date(session.expiresAt);
|
|
124
|
+
if (expiresAt < new Date()) {
|
|
125
|
+
// Clean up expired session
|
|
126
|
+
unlinkSync(filePath);
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
return true;
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
return false;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Check if file system storage is available.
|
|
137
|
+
*/
|
|
138
|
+
isAvailable() {
|
|
139
|
+
try {
|
|
140
|
+
this.ensureDirectoryExists();
|
|
141
|
+
return existsSync(this.baseDir);
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=FileSessionStorage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileSessionStorage.js","sourceRoot":"","sources":["../../src/storage/FileSessionStorage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { ISessionStorage, PersistedSessionData } from "@tinycloudlabs/sdk-core";
|
|
2
|
+
/**
|
|
3
|
+
* In-memory session storage for Node.js.
|
|
4
|
+
*
|
|
5
|
+
* Sessions are stored in memory and lost when the process exits.
|
|
6
|
+
* Suitable for:
|
|
7
|
+
* - Development and testing
|
|
8
|
+
* - Stateless server deployments
|
|
9
|
+
* - Short-lived processes
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```typescript
|
|
13
|
+
* const storage = new MemorySessionStorage();
|
|
14
|
+
* await storage.save("0x123...", sessionData);
|
|
15
|
+
* const session = await storage.load("0x123...");
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare class MemorySessionStorage implements ISessionStorage {
|
|
19
|
+
private sessions;
|
|
20
|
+
/**
|
|
21
|
+
* Save a session for an address.
|
|
22
|
+
*/
|
|
23
|
+
save(address: string, session: PersistedSessionData): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Load a session for an address.
|
|
26
|
+
*/
|
|
27
|
+
load(address: string): Promise<PersistedSessionData | null>;
|
|
28
|
+
/**
|
|
29
|
+
* Clear a session for an address.
|
|
30
|
+
*/
|
|
31
|
+
clear(address: string): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Check if a session exists for an address.
|
|
34
|
+
*/
|
|
35
|
+
exists(address: string): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Memory storage is always available.
|
|
38
|
+
*/
|
|
39
|
+
isAvailable(): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Clear all sessions.
|
|
42
|
+
*/
|
|
43
|
+
clearAll(): void;
|
|
44
|
+
/**
|
|
45
|
+
* Get the number of stored sessions.
|
|
46
|
+
*/
|
|
47
|
+
size(): number;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=MemorySessionStorage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemorySessionStorage.d.ts","sourceRoot":"","sources":["../../src/storage/MemorySessionStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEhF;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,oBAAqB,YAAW,eAAe;IAC1D,OAAO,CAAC,QAAQ,CAAgD;IAEhE;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzE;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAkBjE;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3C;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAkBhC;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,QAAQ,IAAI,IAAI;IAIhB;;OAEG;IACH,IAAI,IAAI,MAAM;CAGf"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-memory session storage for Node.js.
|
|
3
|
+
*
|
|
4
|
+
* Sessions are stored in memory and lost when the process exits.
|
|
5
|
+
* Suitable for:
|
|
6
|
+
* - Development and testing
|
|
7
|
+
* - Stateless server deployments
|
|
8
|
+
* - Short-lived processes
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* const storage = new MemorySessionStorage();
|
|
13
|
+
* await storage.save("0x123...", sessionData);
|
|
14
|
+
* const session = await storage.load("0x123...");
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export class MemorySessionStorage {
|
|
18
|
+
constructor() {
|
|
19
|
+
this.sessions = new Map();
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Save a session for an address.
|
|
23
|
+
*/
|
|
24
|
+
async save(address, session) {
|
|
25
|
+
const normalizedAddress = address.toLowerCase();
|
|
26
|
+
this.sessions.set(normalizedAddress, session);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Load a session for an address.
|
|
30
|
+
*/
|
|
31
|
+
async load(address) {
|
|
32
|
+
const normalizedAddress = address.toLowerCase();
|
|
33
|
+
const session = this.sessions.get(normalizedAddress);
|
|
34
|
+
if (!session) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
// Check if session is expired
|
|
38
|
+
const expiresAt = new Date(session.expiresAt);
|
|
39
|
+
if (expiresAt < new Date()) {
|
|
40
|
+
this.sessions.delete(normalizedAddress);
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
return session;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Clear a session for an address.
|
|
47
|
+
*/
|
|
48
|
+
async clear(address) {
|
|
49
|
+
const normalizedAddress = address.toLowerCase();
|
|
50
|
+
this.sessions.delete(normalizedAddress);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Check if a session exists for an address.
|
|
54
|
+
*/
|
|
55
|
+
exists(address) {
|
|
56
|
+
const normalizedAddress = address.toLowerCase();
|
|
57
|
+
const session = this.sessions.get(normalizedAddress);
|
|
58
|
+
if (!session) {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
// Check if session is expired
|
|
62
|
+
const expiresAt = new Date(session.expiresAt);
|
|
63
|
+
if (expiresAt < new Date()) {
|
|
64
|
+
this.sessions.delete(normalizedAddress);
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Memory storage is always available.
|
|
71
|
+
*/
|
|
72
|
+
isAvailable() {
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Clear all sessions.
|
|
77
|
+
*/
|
|
78
|
+
clearAll() {
|
|
79
|
+
this.sessions.clear();
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Get the number of stored sessions.
|
|
83
|
+
*/
|
|
84
|
+
size() {
|
|
85
|
+
return this.sessions.size;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=MemorySessionStorage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemorySessionStorage.js","sourceRoot":"","sources":["../../src/storage/MemorySessionStorage.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,oBAAoB;IAAjC;QACU,aAAQ,GAAsC,IAAI,GAAG,EAAE,CAAC;IAgFlE,CAAC;IA9EC;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,OAAe,EAAE,OAA6B;QACvD,MAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAChD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,OAAe;QACxB,MAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAErD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QAED,8BAA8B;QAC9B,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,SAAS,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;YAC3B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,OAAe;QACzB,MAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAChD,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAe;QACpB,MAAM,iBAAiB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAErD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACf,CAAC;QAED,8BAA8B;QAC9B,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,SAAS,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;YAC3B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;YACxC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC5B,CAAC;CACF"}
|
package/package.json
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@tinycloudlabs/node-sdk",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "TinyCloud SDK for Node.js with configurable authorization strategies",
|
|
5
|
+
"author": "TinyCloud, Inc.",
|
|
6
|
+
"license": "EGPL",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"main": "dist/index.js",
|
|
9
|
+
"module": "dist/index.js",
|
|
10
|
+
"types": "dist/index.d.ts",
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
14
|
+
"import": "./dist/index.js",
|
|
15
|
+
"require": "./dist/index.cjs"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": ">=18"
|
|
20
|
+
},
|
|
21
|
+
"files": [
|
|
22
|
+
"dist"
|
|
23
|
+
],
|
|
24
|
+
"scripts": {
|
|
25
|
+
"build": "tsc",
|
|
26
|
+
"clean": "rm -rf dist",
|
|
27
|
+
"test": "bun test"
|
|
28
|
+
},
|
|
29
|
+
"dependencies": {
|
|
30
|
+
"@tinycloudlabs/sdk-core": "^1.0.0",
|
|
31
|
+
"@tinycloudlabs/node-sdk-wasm": "^1.0.0",
|
|
32
|
+
"@tinycloudlabs/web-core": "^1.0.0",
|
|
33
|
+
"siwe": "^2.3.2"
|
|
34
|
+
},
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"@types/node": "^20",
|
|
37
|
+
"typescript": "^5.0.0"
|
|
38
|
+
},
|
|
39
|
+
"repository": {
|
|
40
|
+
"type": "git",
|
|
41
|
+
"url": "https://github.com/tinycloudlabs/web-sdk"
|
|
42
|
+
}
|
|
43
|
+
}
|