@tinycloudlabs/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,401 @@
1
+ /**
2
+ * Zod schemas for SharingService types.
3
+ *
4
+ * These schemas provide runtime validation for sharing link data,
5
+ * receive options, and service configuration.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ import { z } from "zod";
10
+ import type { FetchFunction, IKVService, InvokeFunction, ServiceSession } from "@tinycloudlabs/sdk-services";
11
+ import { type Result, type DelegationError } from "./types.schema.js";
12
+ import type { ICapabilityKeyRegistry } from "../authorization/CapabilityKeyRegistry.js";
13
+ import type { DelegationManager } from "./DelegationManager.js";
14
+ /**
15
+ * Schema for data encoded in a sharing link.
16
+ *
17
+ * This is the primary validation point for external share link data.
18
+ * The link is base64-decoded and JSON-parsed, then validated against this schema.
19
+ */
20
+ export declare const EncodedShareDataSchema: z.ZodObject<{
21
+ /** Private key in JWK format (must include d parameter) */
22
+ key: z.ZodEffects<z.ZodObject<{
23
+ kty: z.ZodString;
24
+ crv: z.ZodOptional<z.ZodString>;
25
+ x: z.ZodOptional<z.ZodString>;
26
+ y: z.ZodOptional<z.ZodString>;
27
+ d: z.ZodOptional<z.ZodString>;
28
+ e: z.ZodOptional<z.ZodString>;
29
+ n: z.ZodOptional<z.ZodString>;
30
+ kid: z.ZodOptional<z.ZodString>;
31
+ alg: z.ZodOptional<z.ZodString>;
32
+ use: z.ZodOptional<z.ZodString>;
33
+ key_ops: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
34
+ }, "strip", z.ZodTypeAny, {
35
+ kty: string;
36
+ crv?: string | undefined;
37
+ x?: string | undefined;
38
+ y?: string | undefined;
39
+ d?: string | undefined;
40
+ e?: string | undefined;
41
+ n?: string | undefined;
42
+ kid?: string | undefined;
43
+ alg?: string | undefined;
44
+ use?: string | undefined;
45
+ key_ops?: string[] | undefined;
46
+ }, {
47
+ kty: string;
48
+ crv?: string | undefined;
49
+ x?: string | undefined;
50
+ y?: string | undefined;
51
+ d?: string | undefined;
52
+ e?: string | undefined;
53
+ n?: string | undefined;
54
+ kid?: string | undefined;
55
+ alg?: string | undefined;
56
+ use?: string | undefined;
57
+ key_ops?: string[] | undefined;
58
+ }>, {
59
+ kty: string;
60
+ crv?: string | undefined;
61
+ x?: string | undefined;
62
+ y?: string | undefined;
63
+ d?: string | undefined;
64
+ e?: string | undefined;
65
+ n?: string | undefined;
66
+ kid?: string | undefined;
67
+ alg?: string | undefined;
68
+ use?: string | undefined;
69
+ key_ops?: string[] | undefined;
70
+ }, {
71
+ kty: string;
72
+ crv?: string | undefined;
73
+ x?: string | undefined;
74
+ y?: string | undefined;
75
+ d?: string | undefined;
76
+ e?: string | undefined;
77
+ n?: string | undefined;
78
+ kid?: string | undefined;
79
+ alg?: string | undefined;
80
+ use?: string | undefined;
81
+ key_ops?: string[] | undefined;
82
+ }>;
83
+ /** DID of the key */
84
+ keyDid: z.ZodString;
85
+ /** The delegation granting access */
86
+ delegation: z.ZodObject<{
87
+ cid: z.ZodString;
88
+ delegateDID: z.ZodString;
89
+ spaceId: z.ZodString;
90
+ path: z.ZodString;
91
+ actions: z.ZodArray<z.ZodString, "many">;
92
+ expiry: z.ZodDate;
93
+ isRevoked: z.ZodBoolean;
94
+ delegatorDID: z.ZodOptional<z.ZodString>;
95
+ createdAt: z.ZodOptional<z.ZodDate>;
96
+ parentCid: z.ZodOptional<z.ZodString>;
97
+ allowSubDelegation: z.ZodOptional<z.ZodBoolean>;
98
+ authHeader: z.ZodOptional<z.ZodString>;
99
+ }, "strip", z.ZodTypeAny, {
100
+ path: string;
101
+ cid: string;
102
+ delegateDID: string;
103
+ spaceId: string;
104
+ actions: string[];
105
+ expiry: Date;
106
+ isRevoked: boolean;
107
+ delegatorDID?: string | undefined;
108
+ createdAt?: Date | undefined;
109
+ parentCid?: string | undefined;
110
+ allowSubDelegation?: boolean | undefined;
111
+ authHeader?: string | undefined;
112
+ }, {
113
+ path: string;
114
+ cid: string;
115
+ delegateDID: string;
116
+ spaceId: string;
117
+ actions: string[];
118
+ expiry: Date;
119
+ isRevoked: boolean;
120
+ delegatorDID?: string | undefined;
121
+ createdAt?: Date | undefined;
122
+ parentCid?: string | undefined;
123
+ allowSubDelegation?: boolean | undefined;
124
+ authHeader?: string | undefined;
125
+ }>;
126
+ /** Resource path this link grants access to */
127
+ path: z.ZodString;
128
+ /** TinyCloud host URL */
129
+ host: z.ZodString;
130
+ /** Space ID */
131
+ spaceId: z.ZodString;
132
+ /** Schema version (must be 1) */
133
+ version: z.ZodLiteral<1>;
134
+ }, "strip", z.ZodTypeAny, {
135
+ path: string;
136
+ delegation: {
137
+ path: string;
138
+ cid: string;
139
+ delegateDID: string;
140
+ spaceId: string;
141
+ actions: string[];
142
+ expiry: Date;
143
+ isRevoked: boolean;
144
+ delegatorDID?: string | undefined;
145
+ createdAt?: Date | undefined;
146
+ parentCid?: string | undefined;
147
+ allowSubDelegation?: boolean | undefined;
148
+ authHeader?: string | undefined;
149
+ };
150
+ spaceId: string;
151
+ version: 1;
152
+ key: {
153
+ kty: string;
154
+ crv?: string | undefined;
155
+ x?: string | undefined;
156
+ y?: string | undefined;
157
+ d?: string | undefined;
158
+ e?: string | undefined;
159
+ n?: string | undefined;
160
+ kid?: string | undefined;
161
+ alg?: string | undefined;
162
+ use?: string | undefined;
163
+ key_ops?: string[] | undefined;
164
+ };
165
+ keyDid: string;
166
+ host: string;
167
+ }, {
168
+ path: string;
169
+ delegation: {
170
+ path: string;
171
+ cid: string;
172
+ delegateDID: string;
173
+ spaceId: string;
174
+ actions: string[];
175
+ expiry: Date;
176
+ isRevoked: boolean;
177
+ delegatorDID?: string | undefined;
178
+ createdAt?: Date | undefined;
179
+ parentCid?: string | undefined;
180
+ allowSubDelegation?: boolean | undefined;
181
+ authHeader?: string | undefined;
182
+ };
183
+ spaceId: string;
184
+ version: 1;
185
+ key: {
186
+ kty: string;
187
+ crv?: string | undefined;
188
+ x?: string | undefined;
189
+ y?: string | undefined;
190
+ d?: string | undefined;
191
+ e?: string | undefined;
192
+ n?: string | undefined;
193
+ kid?: string | undefined;
194
+ alg?: string | undefined;
195
+ use?: string | undefined;
196
+ key_ops?: string[] | undefined;
197
+ };
198
+ keyDid: string;
199
+ host: string;
200
+ }>;
201
+ export type EncodedShareData = z.infer<typeof EncodedShareDataSchema>;
202
+ /**
203
+ * Schema for options when receiving a sharing link.
204
+ */
205
+ export declare const ReceiveOptionsSchema: z.ZodObject<{
206
+ /**
207
+ * Whether to automatically create a sub-delegation to the current session key.
208
+ * Default: true
209
+ */
210
+ autoSubdelegate: z.ZodOptional<z.ZodBoolean>;
211
+ /**
212
+ * Whether to use the current session key for operations (requires autoSubdelegate).
213
+ * Default: true
214
+ */
215
+ useSessionKey: z.ZodOptional<z.ZodBoolean>;
216
+ /**
217
+ * Ingestion options passed to CapabilityKeyRegistry.
218
+ */
219
+ ingestOptions: z.ZodOptional<z.ZodObject<{
220
+ persist: z.ZodOptional<z.ZodBoolean>;
221
+ validateChain: z.ZodOptional<z.ZodBoolean>;
222
+ keyName: z.ZodOptional<z.ZodString>;
223
+ createSessionKey: z.ZodOptional<z.ZodBoolean>;
224
+ priority: z.ZodOptional<z.ZodNumber>;
225
+ }, "strip", z.ZodTypeAny, {
226
+ priority?: number | undefined;
227
+ persist?: boolean | undefined;
228
+ validateChain?: boolean | undefined;
229
+ keyName?: string | undefined;
230
+ createSessionKey?: boolean | undefined;
231
+ }, {
232
+ priority?: number | undefined;
233
+ persist?: boolean | undefined;
234
+ validateChain?: boolean | undefined;
235
+ keyName?: string | undefined;
236
+ createSessionKey?: boolean | undefined;
237
+ }>>;
238
+ }, "strip", z.ZodTypeAny, {
239
+ autoSubdelegate?: boolean | undefined;
240
+ useSessionKey?: boolean | undefined;
241
+ ingestOptions?: {
242
+ priority?: number | undefined;
243
+ persist?: boolean | undefined;
244
+ validateChain?: boolean | undefined;
245
+ keyName?: string | undefined;
246
+ createSessionKey?: boolean | undefined;
247
+ } | undefined;
248
+ }, {
249
+ autoSubdelegate?: boolean | undefined;
250
+ useSessionKey?: boolean | undefined;
251
+ ingestOptions?: {
252
+ priority?: number | undefined;
253
+ persist?: boolean | undefined;
254
+ validateChain?: boolean | undefined;
255
+ keyName?: string | undefined;
256
+ createSessionKey?: boolean | undefined;
257
+ } | undefined;
258
+ }>;
259
+ export type ReceiveOptions = z.infer<typeof ReceiveOptionsSchema>;
260
+ /**
261
+ * Schema for SharingService configuration.
262
+ *
263
+ * Note: Function fields use z.function() for shape validation only.
264
+ * External types (ServiceSession, DelegationManager, ICapabilityKeyRegistry)
265
+ * use z.unknown() with runtime type refinement.
266
+ */
267
+ export declare const SharingServiceConfigSchema: z.ZodObject<{
268
+ /** TinyCloud host URLs */
269
+ hosts: z.ZodArray<z.ZodString, "many">;
270
+ /**
271
+ * Active session for authentication.
272
+ * Required for generate(), optional for receive().
273
+ */
274
+ session: z.ZodOptional<z.ZodEffects<z.ZodUnknown, ServiceSession, unknown>>;
275
+ /** Platform-specific invoke function */
276
+ invoke: z.ZodEffects<z.ZodUnknown, InvokeFunction, unknown>;
277
+ /** Optional custom fetch implementation */
278
+ fetch: z.ZodOptional<z.ZodEffects<z.ZodUnknown, FetchFunction, unknown>>;
279
+ /** Key provider for cryptographic operations */
280
+ keyProvider: z.ZodObject<{
281
+ createSessionKey: z.ZodEffects<z.ZodUnknown, (name: string) => Promise<string>, unknown>;
282
+ getJWK: z.ZodEffects<z.ZodUnknown, (keyId: string) => object, unknown>;
283
+ getDID: z.ZodEffects<z.ZodUnknown, (keyId: string) => Promise<string>, unknown>;
284
+ }, "strip", z.ZodTypeAny, {
285
+ createSessionKey: (name: string) => Promise<string>;
286
+ getJWK: (keyId: string) => object;
287
+ getDID: (keyId: string) => Promise<string>;
288
+ }, {
289
+ createSessionKey?: unknown;
290
+ getJWK?: unknown;
291
+ getDID?: unknown;
292
+ }>;
293
+ /** Capability key registry for key/delegation management */
294
+ registry: z.ZodEffects<z.ZodUnknown, ICapabilityKeyRegistry, unknown>;
295
+ /**
296
+ * Delegation manager for creating delegations.
297
+ * Required for generate(), optional for receive().
298
+ */
299
+ delegationManager: z.ZodOptional<z.ZodEffects<z.ZodUnknown, DelegationManager, unknown>>;
300
+ /** Factory for creating KV service instances */
301
+ createKVService: z.ZodEffects<z.ZodUnknown, (config: {
302
+ hosts: string[];
303
+ session: ServiceSession;
304
+ invoke: InvokeFunction;
305
+ fetch?: FetchFunction;
306
+ pathPrefix?: string;
307
+ }) => IKVService, unknown>;
308
+ /** Base URL for sharing links (e.g., "https://share.myapp.com") */
309
+ baseUrl: z.ZodOptional<z.ZodString>;
310
+ /**
311
+ * Custom delegation creation function.
312
+ */
313
+ createDelegation: z.ZodOptional<z.ZodEffects<z.ZodUnknown, Function | undefined, unknown>>;
314
+ /**
315
+ * WASM function for client-side delegation creation.
316
+ */
317
+ createDelegationWasm: z.ZodOptional<z.ZodEffects<z.ZodUnknown, Function | undefined, unknown>>;
318
+ /**
319
+ * Path prefix for KV operations.
320
+ */
321
+ pathPrefix: z.ZodOptional<z.ZodString>;
322
+ /**
323
+ * Session expiry time.
324
+ */
325
+ sessionExpiry: z.ZodOptional<z.ZodDate>;
326
+ }, "strip", z.ZodTypeAny, {
327
+ hosts: string[];
328
+ invoke: InvokeFunction;
329
+ keyProvider: {
330
+ createSessionKey: (name: string) => Promise<string>;
331
+ getJWK: (keyId: string) => object;
332
+ getDID: (keyId: string) => Promise<string>;
333
+ };
334
+ registry: ICapabilityKeyRegistry;
335
+ createKVService: (config: {
336
+ hosts: string[];
337
+ session: ServiceSession;
338
+ invoke: InvokeFunction;
339
+ fetch?: FetchFunction;
340
+ pathPrefix?: string;
341
+ }) => IKVService;
342
+ session?: ServiceSession | undefined;
343
+ baseUrl?: string | undefined;
344
+ fetch?: FetchFunction | undefined;
345
+ delegationManager?: DelegationManager | undefined;
346
+ createDelegation?: Function | undefined;
347
+ createDelegationWasm?: Function | undefined;
348
+ pathPrefix?: string | undefined;
349
+ sessionExpiry?: Date | undefined;
350
+ }, {
351
+ hosts: string[];
352
+ keyProvider: {
353
+ createSessionKey?: unknown;
354
+ getJWK?: unknown;
355
+ getDID?: unknown;
356
+ };
357
+ session?: unknown;
358
+ baseUrl?: string | undefined;
359
+ invoke?: unknown;
360
+ fetch?: unknown;
361
+ registry?: unknown;
362
+ delegationManager?: unknown;
363
+ createKVService?: unknown;
364
+ createDelegation?: unknown;
365
+ createDelegationWasm?: unknown;
366
+ pathPrefix?: string | undefined;
367
+ sessionExpiry?: Date | undefined;
368
+ }>;
369
+ export type SharingServiceConfig = z.infer<typeof SharingServiceConfigSchema>;
370
+ /**
371
+ * Validates encoded share data from a decoded link.
372
+ *
373
+ * @param data - Unknown data to validate (from JSON.parse)
374
+ * @returns Result with validated data or validation error
375
+ *
376
+ * @example
377
+ * ```typescript
378
+ * const parsed = JSON.parse(base64UrlDecode(linkData));
379
+ * const result = validateEncodedShareData(parsed);
380
+ * if (!result.ok) {
381
+ * return result; // Forward the error
382
+ * }
383
+ * const shareData = result.data;
384
+ * ```
385
+ */
386
+ export declare function validateEncodedShareData(data: unknown): Result<EncodedShareData, DelegationError>;
387
+ /**
388
+ * Validates receive options.
389
+ *
390
+ * @param data - Unknown data to validate
391
+ * @returns Result with validated data or validation error
392
+ */
393
+ export declare function validateReceiveOptions(data: unknown): Result<ReceiveOptions, DelegationError>;
394
+ /**
395
+ * Validates SharingService configuration.
396
+ *
397
+ * @param data - Unknown data to validate
398
+ * @returns Result with validated data or validation error
399
+ */
400
+ export declare function validateSharingServiceConfig(data: unknown): Result<SharingServiceConfig, DelegationError>;
401
+ //# sourceMappingURL=SharingService.schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SharingService.schema.d.ts","sourceRoot":"","sources":["../../src/delegations/SharingService.schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,cAAc,EACd,cAAc,EACf,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAKL,KAAK,MAAM,EACX,KAAK,eAAe,EAErB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAMhE;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB;IACjC,2DAA2D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAK3D,qBAAqB;;IAErB,qCAAqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAErC,+CAA+C;;IAE/C,yBAAyB;;IAEzB,eAAe;;IAEf,iCAAiC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEjC,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAMtE;;GAEG;AACH,eAAO,MAAM,oBAAoB;IAC/B;;;OAGG;;IAEH;;;OAGG;;IAEH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAEH,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAMlE;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B;IACrC,0BAA0B;;IAE1B;;;OAGG;;IASH,wCAAwC;;IAMxC,2CAA2C;;IAS3C,gDAAgD;;;;;;;;;;;;;;IAEhD,4DAA4D;;IAQ5D;;;OAGG;;IASH,gDAAgD;yDAEvB;QACrB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,OAAO,EAAE,cAAc,CAAC;QACxB,MAAM,EAAE,cAAc,CAAC;QACvB,KAAK,CAAC,EAAE,aAAa,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,KAAK,UAAU;IAGlB,mEAAmE;;IAEnE;;OAEG;;IAOH;;OAEG;;IAOH;;OAEG;;IAEH;;OAEG;;;;;;;;;;;8BAnCsB;QACrB,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,OAAO,EAAE,cAAc,CAAC;QACxB,MAAM,EAAE,cAAc,CAAC;QACvB,KAAK,CAAC,EAAE,aAAa,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,KAAK,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+BlB,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAM9E;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,OAAO,GACZ,MAAM,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAc3C;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,OAAO,GACZ,MAAM,CAAC,cAAc,EAAE,eAAe,CAAC,CAczC;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,OAAO,GACZ,MAAM,CAAC,oBAAoB,EAAE,eAAe,CAAC,CAc/C"}
@@ -0,0 +1,211 @@
1
+ /**
2
+ * Zod schemas for SharingService types.
3
+ *
4
+ * These schemas provide runtime validation for sharing link data,
5
+ * receive options, and service configuration.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ import { z } from "zod";
10
+ import { JWKSchema, DelegationSchema, KeyProviderSchema, IngestOptionsSchema, DelegationErrorCodes, } from "./types.schema.js";
11
+ // =============================================================================
12
+ // EncodedShareData Schema
13
+ // =============================================================================
14
+ /**
15
+ * Schema for data encoded in a sharing link.
16
+ *
17
+ * This is the primary validation point for external share link data.
18
+ * The link is base64-decoded and JSON-parsed, then validated against this schema.
19
+ */
20
+ export const EncodedShareDataSchema = z.object({
21
+ /** Private key in JWK format (must include d parameter) */
22
+ key: JWKSchema.refine((jwk) => typeof jwk.d === "string" && jwk.d.length > 0, { message: "JWK must include private key (d parameter)" }),
23
+ /** DID of the key */
24
+ keyDid: z.string().min(1, "keyDid is required"),
25
+ /** The delegation granting access */
26
+ delegation: DelegationSchema,
27
+ /** Resource path this link grants access to */
28
+ path: z.string().min(1, "path is required"),
29
+ /** TinyCloud host URL */
30
+ host: z.string().url("host must be a valid URL"),
31
+ /** Space ID */
32
+ spaceId: z.string().min(1, "spaceId is required"),
33
+ /** Schema version (must be 1) */
34
+ version: z.literal(1),
35
+ });
36
+ // =============================================================================
37
+ // ReceiveOptions Schema
38
+ // =============================================================================
39
+ /**
40
+ * Schema for options when receiving a sharing link.
41
+ */
42
+ export const ReceiveOptionsSchema = z.object({
43
+ /**
44
+ * Whether to automatically create a sub-delegation to the current session key.
45
+ * Default: true
46
+ */
47
+ autoSubdelegate: z.boolean().optional(),
48
+ /**
49
+ * Whether to use the current session key for operations (requires autoSubdelegate).
50
+ * Default: true
51
+ */
52
+ useSessionKey: z.boolean().optional(),
53
+ /**
54
+ * Ingestion options passed to CapabilityKeyRegistry.
55
+ */
56
+ ingestOptions: IngestOptionsSchema.optional(),
57
+ });
58
+ // =============================================================================
59
+ // SharingServiceConfig Schema
60
+ // =============================================================================
61
+ /**
62
+ * Schema for SharingService configuration.
63
+ *
64
+ * Note: Function fields use z.function() for shape validation only.
65
+ * External types (ServiceSession, DelegationManager, ICapabilityKeyRegistry)
66
+ * use z.unknown() with runtime type refinement.
67
+ */
68
+ export const SharingServiceConfigSchema = z.object({
69
+ /** TinyCloud host URLs */
70
+ hosts: z.array(z.string().url()).min(1, "At least one host URL is required"),
71
+ /**
72
+ * Active session for authentication.
73
+ * Required for generate(), optional for receive().
74
+ */
75
+ session: z
76
+ .unknown()
77
+ .refine((val) => val === undefined || (val !== null && typeof val === "object"), { message: "Expected a ServiceSession object or undefined" })
78
+ .optional(),
79
+ /** Platform-specific invoke function */
80
+ invoke: z
81
+ .unknown()
82
+ .refine((val) => typeof val === "function", {
83
+ message: "Expected an invoke function",
84
+ }),
85
+ /** Optional custom fetch implementation */
86
+ fetch: z
87
+ .unknown()
88
+ .refine((val) => val === undefined || typeof val === "function", { message: "Expected a fetch function or undefined" })
89
+ .optional(),
90
+ /** Key provider for cryptographic operations */
91
+ keyProvider: KeyProviderSchema,
92
+ /** Capability key registry for key/delegation management */
93
+ registry: z
94
+ .unknown()
95
+ .refine((val) => val !== null && typeof val === "object", { message: "Expected an ICapabilityKeyRegistry object" }),
96
+ /**
97
+ * Delegation manager for creating delegations.
98
+ * Required for generate(), optional for receive().
99
+ */
100
+ delegationManager: z
101
+ .unknown()
102
+ .refine((val) => val === undefined || (val !== null && typeof val === "object"), { message: "Expected a DelegationManager object or undefined" })
103
+ .optional(),
104
+ /** Factory for creating KV service instances */
105
+ createKVService: z.unknown().refine((val) => typeof val === "function", { message: "Expected a createKVService factory function" }),
106
+ /** Base URL for sharing links (e.g., "https://share.myapp.com") */
107
+ baseUrl: z.string().optional(),
108
+ /**
109
+ * Custom delegation creation function.
110
+ */
111
+ createDelegation: z
112
+ .unknown()
113
+ .refine((val) => val === undefined || typeof val === "function", {
114
+ message: "Expected a createDelegation function or undefined",
115
+ })
116
+ .optional(),
117
+ /**
118
+ * WASM function for client-side delegation creation.
119
+ */
120
+ createDelegationWasm: z
121
+ .unknown()
122
+ .refine((val) => val === undefined || typeof val === "function", {
123
+ message: "Expected a createDelegationWasm function or undefined",
124
+ })
125
+ .optional(),
126
+ /**
127
+ * Path prefix for KV operations.
128
+ */
129
+ pathPrefix: z.string().optional(),
130
+ /**
131
+ * Session expiry time.
132
+ */
133
+ sessionExpiry: z.date().optional(),
134
+ });
135
+ // =============================================================================
136
+ // Validation Helpers
137
+ // =============================================================================
138
+ /**
139
+ * Validates encoded share data from a decoded link.
140
+ *
141
+ * @param data - Unknown data to validate (from JSON.parse)
142
+ * @returns Result with validated data or validation error
143
+ *
144
+ * @example
145
+ * ```typescript
146
+ * const parsed = JSON.parse(base64UrlDecode(linkData));
147
+ * const result = validateEncodedShareData(parsed);
148
+ * if (!result.ok) {
149
+ * return result; // Forward the error
150
+ * }
151
+ * const shareData = result.data;
152
+ * ```
153
+ */
154
+ export function validateEncodedShareData(data) {
155
+ const result = EncodedShareDataSchema.safeParse(data);
156
+ if (!result.success) {
157
+ return {
158
+ ok: false,
159
+ error: {
160
+ code: DelegationErrorCodes.VALIDATION_ERROR,
161
+ message: `Invalid share data: ${result.error.message}`,
162
+ service: "delegation",
163
+ meta: { issues: result.error.issues },
164
+ },
165
+ };
166
+ }
167
+ return { ok: true, data: result.data };
168
+ }
169
+ /**
170
+ * Validates receive options.
171
+ *
172
+ * @param data - Unknown data to validate
173
+ * @returns Result with validated data or validation error
174
+ */
175
+ export function validateReceiveOptions(data) {
176
+ const result = ReceiveOptionsSchema.safeParse(data);
177
+ if (!result.success) {
178
+ return {
179
+ ok: false,
180
+ error: {
181
+ code: DelegationErrorCodes.VALIDATION_ERROR,
182
+ message: `Invalid receive options: ${result.error.message}`,
183
+ service: "delegation",
184
+ meta: { issues: result.error.issues },
185
+ },
186
+ };
187
+ }
188
+ return { ok: true, data: result.data };
189
+ }
190
+ /**
191
+ * Validates SharingService configuration.
192
+ *
193
+ * @param data - Unknown data to validate
194
+ * @returns Result with validated data or validation error
195
+ */
196
+ export function validateSharingServiceConfig(data) {
197
+ const result = SharingServiceConfigSchema.safeParse(data);
198
+ if (!result.success) {
199
+ return {
200
+ ok: false,
201
+ error: {
202
+ code: DelegationErrorCodes.VALIDATION_ERROR,
203
+ message: `Invalid SharingService config: ${result.error.message}`,
204
+ service: "delegation",
205
+ meta: { issues: result.error.issues },
206
+ },
207
+ };
208
+ }
209
+ return { ok: true, data: result.data };
210
+ }
211
+ //# sourceMappingURL=SharingService.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SharingService.schema.js","sourceRoot":"","sources":["../../src/delegations/SharingService.schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * TinyCloud SDK Delegations Module
3
+ *
4
+ * This module provides delegation and sharing link functionality
5
+ * for the TinyCloud SDK. It extracts and improves upon the delegation
6
+ * functionality previously in ITinyCloudStorage.
7
+ *
8
+ * @packageDocumentation
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import {
13
+ * DelegationManager,
14
+ * SharingService,
15
+ * Delegation,
16
+ * CreateDelegationParams,
17
+ * } from "@tinycloudlabs/sdk-core/delegations";
18
+ *
19
+ * // Create delegation manager
20
+ * const delegations = new DelegationManager({
21
+ * hosts: ["https://node.tinycloud.xyz"],
22
+ * session,
23
+ * invoke,
24
+ * });
25
+ *
26
+ * // Create a delegation
27
+ * const result = await delegations.create({
28
+ * delegateDID: "did:pkh:eip155:1:0x...",
29
+ * path: "shared/",
30
+ * actions: ["tinycloud.kv/get", "tinycloud.kv/list"],
31
+ * });
32
+ * ```
33
+ */
34
+ export { Result, DelegationError, DelegationErrorCodes, DelegationErrorCode, Delegation, CreateDelegationParams, DelegationChain, DelegationApiResponse, DelegationManagerConfig, KeyProvider, JWK, KeyType, KeyInfo, CapabilityEntry, DelegationRecord, DelegationChainV2, DelegationDirection, DelegationFilters, SpaceOwnership, SpaceInfo, ShareSchema, ShareLink, ShareLinkData, IngestOptions, GenerateShareParams, CreateDelegationWasmParams, CreateDelegationWasmResult, } from "./types";
35
+ export { DelegationManager } from "./DelegationManager";
36
+ export { SharingService, createSharingService, ISharingService, SharingServiceConfig, EncodedShareData, ReceiveOptions, ShareAccess, } from "./SharingService";
37
+ export { EncodedShareDataSchema, ReceiveOptionsSchema, SharingServiceConfigSchema, validateEncodedShareData, validateReceiveOptions, validateSharingServiceConfig, } from "./SharingService.schema.js";
38
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/delegations/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAGH,OAAO,EAEL,MAAM,EACN,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EAGnB,UAAU,EACV,sBAAsB,EACtB,eAAe,EACf,qBAAqB,EAGrB,uBAAuB,EACvB,WAAW,EAGX,GAAG,EACH,OAAO,EACP,OAAO,EACP,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,SAAS,EACT,WAAW,EACX,SAAS,EACT,aAAa,EACb,aAAa,EACb,mBAAmB,EAGnB,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,0BAA0B,EAC1B,wBAAwB,EACxB,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,4BAA4B,CAAC"}