@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.
Files changed (46) hide show
  1. package/LICENSE.md +320 -0
  2. package/dist/DelegatedAccess.d.ts +33 -0
  3. package/dist/DelegatedAccess.d.ts.map +1 -0
  4. package/dist/DelegatedAccess.js +61 -0
  5. package/dist/DelegatedAccess.js.map +1 -0
  6. package/dist/TinyCloudNode.d.ts +441 -0
  7. package/dist/TinyCloudNode.d.ts.map +1 -0
  8. package/dist/TinyCloudNode.js +987 -0
  9. package/dist/TinyCloudNode.js.map +1 -0
  10. package/dist/authorization/NodeUserAuthorization.d.ts +200 -0
  11. package/dist/authorization/NodeUserAuthorization.d.ts.map +1 -0
  12. package/dist/authorization/NodeUserAuthorization.js +516 -0
  13. package/dist/authorization/NodeUserAuthorization.js.map +1 -0
  14. package/dist/authorization/strategies.d.ts +57 -0
  15. package/dist/authorization/strategies.d.ts.map +1 -0
  16. package/dist/authorization/strategies.js +15 -0
  17. package/dist/authorization/strategies.js.map +1 -0
  18. package/dist/delegation.d.ts +35 -0
  19. package/dist/delegation.d.ts.map +1 -0
  20. package/dist/delegation.js +21 -0
  21. package/dist/delegation.js.map +1 -0
  22. package/dist/index.d.ts +52 -0
  23. package/dist/index.d.ts.map +1 -0
  24. package/dist/index.js +73 -0
  25. package/dist/index.js.map +1 -0
  26. package/dist/keys/WasmKeyProvider.d.ts +101 -0
  27. package/dist/keys/WasmKeyProvider.d.ts.map +1 -0
  28. package/dist/keys/WasmKeyProvider.js +113 -0
  29. package/dist/keys/WasmKeyProvider.js.map +1 -0
  30. package/dist/keys/index.d.ts +7 -0
  31. package/dist/keys/index.d.ts.map +1 -0
  32. package/dist/keys/index.js +7 -0
  33. package/dist/keys/index.js.map +1 -0
  34. package/dist/signers/PrivateKeySigner.d.ts +47 -0
  35. package/dist/signers/PrivateKeySigner.d.ts.map +1 -0
  36. package/dist/signers/PrivateKeySigner.js +89 -0
  37. package/dist/signers/PrivateKeySigner.js.map +1 -0
  38. package/dist/storage/FileSessionStorage.d.ts +59 -0
  39. package/dist/storage/FileSessionStorage.d.ts.map +1 -0
  40. package/dist/storage/FileSessionStorage.js +148 -0
  41. package/dist/storage/FileSessionStorage.js.map +1 -0
  42. package/dist/storage/MemorySessionStorage.d.ts +49 -0
  43. package/dist/storage/MemorySessionStorage.d.ts.map +1 -0
  44. package/dist/storage/MemorySessionStorage.js +88 -0
  45. package/dist/storage/MemorySessionStorage.js.map +1 -0
  46. 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
+ }