@tinycloud/sdk-core 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 (166) hide show
  1. package/LICENSE.md +320 -0
  2. package/dist/TinyCloud.d.ts +206 -0
  3. package/dist/TinyCloud.d.ts.map +1 -0
  4. package/dist/TinyCloud.js +244 -0
  5. package/dist/TinyCloud.js.map +1 -0
  6. package/dist/TinyCloud.schema.d.ts +173 -0
  7. package/dist/TinyCloud.schema.d.ts.map +1 -0
  8. package/dist/TinyCloud.schema.js +136 -0
  9. package/dist/TinyCloud.schema.js.map +1 -0
  10. package/dist/TinyCloud.schema.test.d.ts +5 -0
  11. package/dist/TinyCloud.schema.test.d.ts.map +1 -0
  12. package/dist/TinyCloud.schema.test.js +286 -0
  13. package/dist/TinyCloud.schema.test.js.map +1 -0
  14. package/dist/authorization/CapabilityKeyRegistry.d.ts +317 -0
  15. package/dist/authorization/CapabilityKeyRegistry.d.ts.map +1 -0
  16. package/dist/authorization/CapabilityKeyRegistry.js +509 -0
  17. package/dist/authorization/CapabilityKeyRegistry.js.map +1 -0
  18. package/dist/authorization/authorization.schema.d.ts +233 -0
  19. package/dist/authorization/authorization.schema.d.ts.map +1 -0
  20. package/dist/authorization/authorization.schema.js +220 -0
  21. package/dist/authorization/authorization.schema.js.map +1 -0
  22. package/dist/authorization/authorization.schema.test.d.ts +5 -0
  23. package/dist/authorization/authorization.schema.test.d.ts.map +1 -0
  24. package/dist/authorization/authorization.schema.test.js +618 -0
  25. package/dist/authorization/authorization.schema.test.js.map +1 -0
  26. package/dist/authorization/index.d.ts +38 -0
  27. package/dist/authorization/index.d.ts.map +1 -0
  28. package/dist/authorization/index.js +52 -0
  29. package/dist/authorization/index.js.map +1 -0
  30. package/dist/authorization/spaceCreation.d.ts +96 -0
  31. package/dist/authorization/spaceCreation.d.ts.map +1 -0
  32. package/dist/authorization/spaceCreation.js +35 -0
  33. package/dist/authorization/spaceCreation.js.map +1 -0
  34. package/dist/authorization/spaceCreation.schema.d.ts +67 -0
  35. package/dist/authorization/spaceCreation.schema.d.ts.map +1 -0
  36. package/dist/authorization/spaceCreation.schema.js +95 -0
  37. package/dist/authorization/spaceCreation.schema.js.map +1 -0
  38. package/dist/authorization/spaceCreation.schema.test.d.ts +5 -0
  39. package/dist/authorization/spaceCreation.schema.test.d.ts.map +1 -0
  40. package/dist/authorization/spaceCreation.schema.test.js +168 -0
  41. package/dist/authorization/spaceCreation.schema.test.js.map +1 -0
  42. package/dist/authorization/strategies.d.ts +134 -0
  43. package/dist/authorization/strategies.d.ts.map +1 -0
  44. package/dist/authorization/strategies.js +15 -0
  45. package/dist/authorization/strategies.js.map +1 -0
  46. package/dist/authorization/strategies.schema.d.ts +185 -0
  47. package/dist/authorization/strategies.schema.d.ts.map +1 -0
  48. package/dist/authorization/strategies.schema.js +147 -0
  49. package/dist/authorization/strategies.schema.js.map +1 -0
  50. package/dist/authorization/strategies.schema.test.d.ts +5 -0
  51. package/dist/authorization/strategies.schema.test.d.ts.map +1 -0
  52. package/dist/authorization/strategies.schema.test.js +253 -0
  53. package/dist/authorization/strategies.schema.test.js.map +1 -0
  54. package/dist/delegations/DelegationManager.d.ts +164 -0
  55. package/dist/delegations/DelegationManager.d.ts.map +1 -0
  56. package/dist/delegations/DelegationManager.js +428 -0
  57. package/dist/delegations/DelegationManager.js.map +1 -0
  58. package/dist/delegations/SharingService.d.ts +279 -0
  59. package/dist/delegations/SharingService.d.ts.map +1 -0
  60. package/dist/delegations/SharingService.js +558 -0
  61. package/dist/delegations/SharingService.js.map +1 -0
  62. package/dist/delegations/SharingService.schema.d.ts +401 -0
  63. package/dist/delegations/SharingService.schema.d.ts.map +1 -0
  64. package/dist/delegations/SharingService.schema.js +211 -0
  65. package/dist/delegations/SharingService.schema.js.map +1 -0
  66. package/dist/delegations/index.d.ts +38 -0
  67. package/dist/delegations/index.d.ts.map +1 -0
  68. package/dist/delegations/index.js +42 -0
  69. package/dist/delegations/index.js.map +1 -0
  70. package/dist/delegations/types.d.ts +13 -0
  71. package/dist/delegations/types.d.ts.map +1 -0
  72. package/dist/delegations/types.js +42 -0
  73. package/dist/delegations/types.js.map +1 -0
  74. package/dist/delegations/types.schema.d.ts +1641 -0
  75. package/dist/delegations/types.schema.d.ts.map +1 -0
  76. package/dist/delegations/types.schema.js +535 -0
  77. package/dist/delegations/types.schema.js.map +1 -0
  78. package/dist/delegations/types.schema.test.d.ts +5 -0
  79. package/dist/delegations/types.schema.test.d.ts.map +1 -0
  80. package/dist/delegations/types.schema.test.js +627 -0
  81. package/dist/delegations/types.schema.test.js.map +1 -0
  82. package/dist/index.d.ts +22 -0
  83. package/dist/index.d.ts.map +1 -0
  84. package/dist/index.js +52 -0
  85. package/dist/index.js.map +1 -0
  86. package/dist/json-schema.d.ts +327 -0
  87. package/dist/json-schema.d.ts.map +1 -0
  88. package/dist/json-schema.js +703 -0
  89. package/dist/json-schema.js.map +1 -0
  90. package/dist/json-schema.test.d.ts +7 -0
  91. package/dist/json-schema.test.d.ts.map +1 -0
  92. package/dist/json-schema.test.js +365 -0
  93. package/dist/json-schema.test.js.map +1 -0
  94. package/dist/signer.d.ts +28 -0
  95. package/dist/signer.d.ts.map +1 -0
  96. package/dist/signer.js +2 -0
  97. package/dist/signer.js.map +1 -0
  98. package/dist/space.d.ts +53 -0
  99. package/dist/space.d.ts.map +1 -0
  100. package/dist/space.js +67 -0
  101. package/dist/space.js.map +1 -0
  102. package/dist/space.schema.d.ts +65 -0
  103. package/dist/space.schema.d.ts.map +1 -0
  104. package/dist/space.schema.js +65 -0
  105. package/dist/space.schema.js.map +1 -0
  106. package/dist/space.schema.test.d.ts +5 -0
  107. package/dist/space.schema.test.d.ts.map +1 -0
  108. package/dist/space.schema.test.js +148 -0
  109. package/dist/space.schema.test.js.map +1 -0
  110. package/dist/spaces/Space.d.ts +175 -0
  111. package/dist/spaces/Space.d.ts.map +1 -0
  112. package/dist/spaces/Space.js +84 -0
  113. package/dist/spaces/Space.js.map +1 -0
  114. package/dist/spaces/SpaceService.d.ts +271 -0
  115. package/dist/spaces/SpaceService.d.ts.map +1 -0
  116. package/dist/spaces/SpaceService.js +715 -0
  117. package/dist/spaces/SpaceService.js.map +1 -0
  118. package/dist/spaces/index.d.ts +11 -0
  119. package/dist/spaces/index.d.ts.map +1 -0
  120. package/dist/spaces/index.js +20 -0
  121. package/dist/spaces/index.js.map +1 -0
  122. package/dist/spaces/spaces.schema.d.ts +421 -0
  123. package/dist/spaces/spaces.schema.d.ts.map +1 -0
  124. package/dist/spaces/spaces.schema.js +342 -0
  125. package/dist/spaces/spaces.schema.js.map +1 -0
  126. package/dist/spaces/spaces.schema.test.d.ts +5 -0
  127. package/dist/spaces/spaces.schema.test.d.ts.map +1 -0
  128. package/dist/spaces/spaces.schema.test.js +471 -0
  129. package/dist/spaces/spaces.schema.test.js.map +1 -0
  130. package/dist/storage.d.ts +47 -0
  131. package/dist/storage.d.ts.map +1 -0
  132. package/dist/storage.js +14 -0
  133. package/dist/storage.js.map +1 -0
  134. package/dist/storage.schema.d.ts +277 -0
  135. package/dist/storage.schema.d.ts.map +1 -0
  136. package/dist/storage.schema.js +185 -0
  137. package/dist/storage.schema.js.map +1 -0
  138. package/dist/storage.schema.test.d.ts +5 -0
  139. package/dist/storage.schema.test.d.ts.map +1 -0
  140. package/dist/storage.schema.test.js +346 -0
  141. package/dist/storage.schema.test.js.map +1 -0
  142. package/dist/userAuthorization.d.ts +99 -0
  143. package/dist/userAuthorization.d.ts.map +1 -0
  144. package/dist/userAuthorization.js +3 -0
  145. package/dist/userAuthorization.js.map +1 -0
  146. package/dist/userAuthorization.schema.d.ts +259 -0
  147. package/dist/userAuthorization.schema.d.ts.map +1 -0
  148. package/dist/userAuthorization.schema.js +175 -0
  149. package/dist/userAuthorization.schema.js.map +1 -0
  150. package/dist/userAuthorization.schema.test.d.ts +5 -0
  151. package/dist/userAuthorization.schema.test.d.ts.map +1 -0
  152. package/dist/userAuthorization.schema.test.js +356 -0
  153. package/dist/userAuthorization.schema.test.js.map +1 -0
  154. package/dist/version.d.ts +30 -0
  155. package/dist/version.d.ts.map +1 -0
  156. package/dist/version.js +54 -0
  157. package/dist/version.js.map +1 -0
  158. package/dist/wasm-validation.d.ts +287 -0
  159. package/dist/wasm-validation.d.ts.map +1 -0
  160. package/dist/wasm-validation.js +219 -0
  161. package/dist/wasm-validation.js.map +1 -0
  162. package/dist/wasm-validation.test.d.ts +5 -0
  163. package/dist/wasm-validation.test.d.ts.map +1 -0
  164. package/dist/wasm-validation.test.js +233 -0
  165. package/dist/wasm-validation.test.js.map +1 -0
  166. package/package.json +40 -0
@@ -0,0 +1,279 @@
1
+ /**
2
+ * SharingService - v2 sharing link service with embedded private keys.
3
+ *
4
+ * This service implements the v2 sharing specification, which embeds private keys
5
+ * directly in sharing links. This allows recipients to exercise delegations
6
+ * without requiring prior session setup.
7
+ *
8
+ * Key differences from v1 SharingLinks:
9
+ * - Private keys are embedded in the link (not just tokens)
10
+ * - Recipients can optionally sub-delegate to their own session key
11
+ * - Pre-configured KV service returned for immediate use
12
+ *
13
+ * @packageDocumentation
14
+ */
15
+ import type { IKVService, ServiceSession, InvokeFunction, FetchFunction } from "@tinycloud/sdk-services";
16
+ import type { Result, DelegationError, Delegation, KeyInfo, KeyProvider, GenerateShareParams, ShareLink, ShareSchema, JWK, IngestOptions, CreateDelegationParams, CreateDelegationWasmParams, CreateDelegationWasmResult } from "./types";
17
+ import type { DelegationManager } from "./DelegationManager";
18
+ import type { ICapabilityKeyRegistry } from "../authorization/CapabilityKeyRegistry";
19
+ /**
20
+ * Data encoded in a sharing link.
21
+ */
22
+ export interface EncodedShareData {
23
+ /** Private key in JWK format (includes d parameter) */
24
+ key: JWK;
25
+ /** DID of the key */
26
+ keyDid: string;
27
+ /** The delegation granting access */
28
+ delegation: Delegation;
29
+ /** Resource path this link grants access to */
30
+ path: string;
31
+ /** TinyCloud host URL */
32
+ host: string;
33
+ /** Space ID */
34
+ spaceId: string;
35
+ /** Schema version */
36
+ version: 1;
37
+ }
38
+ /**
39
+ * Options for receiving a sharing link.
40
+ */
41
+ export interface ReceiveOptions {
42
+ /**
43
+ * Whether to automatically create a sub-delegation to the current session key.
44
+ * Default: true
45
+ */
46
+ autoSubdelegate?: boolean;
47
+ /**
48
+ * Whether to use the current session key for operations (requires autoSubdelegate).
49
+ * Default: true
50
+ */
51
+ useSessionKey?: boolean;
52
+ /**
53
+ * Ingestion options passed to CapabilityKeyRegistry.
54
+ */
55
+ ingestOptions?: IngestOptions;
56
+ }
57
+ /**
58
+ * Result of receiving a sharing link.
59
+ */
60
+ export interface ShareAccess {
61
+ /** The delegation that was received/created */
62
+ delegation: Delegation;
63
+ /** Key info for the received key */
64
+ key: KeyInfo;
65
+ /** Pre-configured KV service for the shared path */
66
+ kv: IKVService;
67
+ /** The space ID */
68
+ spaceId: string;
69
+ /** The path prefix for this share */
70
+ path: string;
71
+ }
72
+ /**
73
+ * Configuration for SharingService.
74
+ */
75
+ export interface SharingServiceConfig {
76
+ /** TinyCloud host URLs */
77
+ hosts: string[];
78
+ /**
79
+ * Active session for authentication.
80
+ * Required for generate(), optional for receive().
81
+ */
82
+ session?: ServiceSession;
83
+ /** Platform-specific invoke function */
84
+ invoke: InvokeFunction;
85
+ /** Optional custom fetch implementation */
86
+ fetch?: FetchFunction;
87
+ /** Key provider for cryptographic operations */
88
+ keyProvider: KeyProvider;
89
+ /** Capability key registry for key/delegation management */
90
+ registry: ICapabilityKeyRegistry;
91
+ /**
92
+ * Delegation manager for creating delegations (used if createDelegation not provided).
93
+ * Required for generate(), optional for receive().
94
+ */
95
+ delegationManager?: DelegationManager;
96
+ /** Factory for creating KV service instances */
97
+ createKVService: (config: {
98
+ hosts: string[];
99
+ session: ServiceSession;
100
+ invoke: InvokeFunction;
101
+ fetch?: FetchFunction;
102
+ pathPrefix?: string;
103
+ }) => IKVService;
104
+ /** Base URL for sharing links (e.g., "https://share.myapp.com") */
105
+ baseUrl?: string;
106
+ /**
107
+ * Custom delegation creation function. When provided, this is used instead
108
+ * of delegationManager.create(). This allows platforms to use their own
109
+ * delegation creation logic (e.g., SIWE-based /delegate endpoint).
110
+ */
111
+ createDelegation?: (params: CreateDelegationParams) => Promise<Result<Delegation, DelegationError>>;
112
+ /**
113
+ * WASM function for client-side delegation creation.
114
+ * When provided, this is preferred over server-side creation (createDelegation/delegationManager).
115
+ * Creates UCAN delegations directly without requiring server roundtrip.
116
+ */
117
+ createDelegationWasm?: (params: CreateDelegationWasmParams) => CreateDelegationWasmResult;
118
+ /**
119
+ * Path prefix for KV operations.
120
+ * When set, paths passed to generate() are prefixed with this value.
121
+ * This ensures the share path matches the session's authorized paths.
122
+ */
123
+ pathPrefix?: string;
124
+ /**
125
+ * Session expiry time.
126
+ * When set, sharing link expiry is clamped to not exceed this value.
127
+ */
128
+ sessionExpiry?: Date;
129
+ }
130
+ /**
131
+ * Interface for the SharingService.
132
+ */
133
+ export interface ISharingService {
134
+ /**
135
+ * Generate a sharing link with an embedded private key.
136
+ *
137
+ * This creates a new session key, delegates to it, and encodes
138
+ * the key and delegation into a shareable link.
139
+ */
140
+ generate(params: GenerateShareParams): Promise<Result<ShareLink, DelegationError>>;
141
+ /**
142
+ * Receive and activate a sharing link.
143
+ *
144
+ * Decodes the link, ingests the key into the registry, and optionally
145
+ * creates a sub-delegation to the current session key.
146
+ */
147
+ receive(link: string, options?: ReceiveOptions): Promise<Result<ShareAccess, DelegationError>>;
148
+ /**
149
+ * Encode sharing data into a link string.
150
+ */
151
+ encodeLink(data: EncodedShareData, schema?: ShareSchema): string;
152
+ /**
153
+ * Decode a link string into sharing data.
154
+ */
155
+ decodeLink(link: string): EncodedShareData;
156
+ }
157
+ /**
158
+ * SharingService - v2 sharing link service with embedded private keys.
159
+ *
160
+ * @example
161
+ * ```typescript
162
+ * import { SharingService } from "@tinycloud/sdk-core/delegations";
163
+ *
164
+ * const sharing = new SharingService({
165
+ * hosts: ["https://node.tinycloud.xyz"],
166
+ * session,
167
+ * invoke,
168
+ * keyProvider,
169
+ * registry,
170
+ * delegationManager,
171
+ * createKVService,
172
+ * baseUrl: "https://share.myapp.com"
173
+ * });
174
+ *
175
+ * // Generate a sharing link
176
+ * const result = await sharing.generate({
177
+ * path: "/kv/documents/report.pdf",
178
+ * actions: ["tinycloud.kv/get"],
179
+ * expiry: new Date("2024-12-31")
180
+ * });
181
+ *
182
+ * if (result.ok) {
183
+ * console.log("Share this URL:", result.data.url);
184
+ * }
185
+ *
186
+ * // Receive a sharing link
187
+ * const receiveResult = await sharing.receive(shareUrl);
188
+ * if (receiveResult.ok) {
189
+ * // Use the pre-configured KV service
190
+ * const data = await receiveResult.data.kv.get("report.pdf");
191
+ * }
192
+ * ```
193
+ */
194
+ export declare class SharingService implements ISharingService {
195
+ private hosts;
196
+ private session?;
197
+ private invoke;
198
+ private fetchFn;
199
+ private keyProvider;
200
+ private registry;
201
+ private delegationManager?;
202
+ private createKVService;
203
+ private baseUrl;
204
+ private createDelegationFn?;
205
+ private createDelegationWasmFn?;
206
+ private pathPrefix;
207
+ private sessionExpiry?;
208
+ /**
209
+ * Creates a new SharingService instance.
210
+ */
211
+ constructor(config: SharingServiceConfig);
212
+ /**
213
+ * Gets the primary host URL.
214
+ */
215
+ private get host();
216
+ /**
217
+ * Updates the session (e.g., after re-authentication).
218
+ */
219
+ updateSession(session: ServiceSession): void;
220
+ /**
221
+ * Updates the service configuration.
222
+ * Used to add full capabilities (session, delegationManager, createDelegation, createDelegationWasm) after signIn.
223
+ */
224
+ updateConfig(config: Partial<Pick<SharingServiceConfig, "session" | "delegationManager" | "createDelegation" | "createDelegationWasm" | "sessionExpiry">>): void;
225
+ /**
226
+ * Generate a sharing link with an embedded private key.
227
+ *
228
+ * Flow:
229
+ * 1. Spawn new session key (unique per share)
230
+ * 2. Create delegation from current session to spawned key
231
+ * 3. Package: { key (with private!), delegation, path, host }
232
+ * 4. Encode based on schema (base64 for now)
233
+ * 5. Return link string
234
+ */
235
+ generate(params: GenerateShareParams): Promise<Result<ShareLink, DelegationError>>;
236
+ /**
237
+ * Receive and activate a sharing link.
238
+ *
239
+ * Flow:
240
+ * 1. Decode link -> extract { key, delegation, path, host }
241
+ * 2. Ingest key into CapabilityKeyRegistry
242
+ * 3. If autoSubdelegate (default true) + useSessionKey:
243
+ * - Create sub-delegation from ingested key -> current session
244
+ * - Register sub-delegation capabilities
245
+ * 4. Return ShareAccess with pre-configured KV service
246
+ */
247
+ receive(link: string, options?: ReceiveOptions): Promise<Result<ShareAccess, DelegationError>>;
248
+ /**
249
+ * Encode sharing data into a link string.
250
+ *
251
+ * @param data - The share data to encode
252
+ * @param schema - The encoding schema (default: "base64")
253
+ * @returns Encoded link string
254
+ */
255
+ encodeLink(data: EncodedShareData, schema?: ShareSchema): string;
256
+ /**
257
+ * Decode a link string into sharing data.
258
+ *
259
+ * @param link - The encoded link string (may include URL prefix)
260
+ * @returns Decoded share data
261
+ * @throws Error if link format is invalid or data fails validation
262
+ */
263
+ decodeLink(link: string): EncodedShareData;
264
+ /**
265
+ * Decode and validate a link string into sharing data.
266
+ *
267
+ * Internal method that returns a Result instead of throwing.
268
+ * Used by receive() for proper error handling.
269
+ *
270
+ * @param link - The encoded link string (may include URL prefix)
271
+ * @returns Result with decoded share data or validation error
272
+ */
273
+ private decodeLinkWithValidation;
274
+ }
275
+ /**
276
+ * Create a new SharingService instance.
277
+ */
278
+ export declare function createSharingService(config: SharingServiceConfig): ISharingService;
279
+ //# sourceMappingURL=SharingService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SharingService.d.ts","sourceRoot":"","sources":["../../src/delegations/SharingService.ts"],"names":[],"mappings":"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"}