@tinycloud/sdk-core 1.0.1 → 1.2.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/dist/TinyCloud.d.ts +56 -1
- package/dist/TinyCloud.d.ts.map +1 -1
- package/dist/TinyCloud.js +184 -1
- package/dist/TinyCloud.js.map +1 -1
- package/dist/delegations/SharingService.d.ts +64 -2
- package/dist/delegations/SharingService.d.ts.map +1 -1
- package/dist/delegations/SharingService.js +209 -45
- package/dist/delegations/SharingService.js.map +1 -1
- package/dist/delegations/SharingService.schema.d.ts +8 -0
- package/dist/delegations/SharingService.schema.d.ts.map +1 -1
- package/dist/delegations/SharingService.schema.js +11 -0
- package/dist/delegations/SharingService.schema.js.map +1 -1
- package/dist/delegations/types.schema.d.ts +138 -6
- package/dist/delegations/types.schema.d.ts.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/spaces/SpaceService.d.ts +20 -0
- package/dist/spaces/SpaceService.d.ts.map +1 -1
- package/dist/spaces/SpaceService.js +25 -0
- package/dist/spaces/SpaceService.js.map +1 -1
- package/dist/spaces/index.d.ts +1 -1
- package/dist/spaces/index.d.ts.map +1 -1
- package/dist/spaces/index.js +3 -1
- package/dist/spaces/index.js.map +1 -1
- package/package.json +3 -3
package/dist/TinyCloud.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IUserAuthorization, ClientSession, Extension } from "./userAuthorization";
|
|
2
|
-
import { IService, IServiceContext, IKVService, InvokeFunction, FetchFunction, RetryPolicy, ServiceConstructor } from "@tinycloud/sdk-services";
|
|
2
|
+
import { IService, IServiceContext, IKVService, ISQLService, InvokeFunction, FetchFunction, RetryPolicy, ServiceConstructor, Result, ServiceError } from "@tinycloud/sdk-services";
|
|
3
3
|
/**
|
|
4
4
|
* Configuration for the TinyCloud SDK.
|
|
5
5
|
*/
|
|
@@ -143,6 +143,11 @@ export declare class TinyCloud {
|
|
|
143
143
|
* @throws Error if services are not initialized
|
|
144
144
|
*/
|
|
145
145
|
get kv(): IKVService;
|
|
146
|
+
/**
|
|
147
|
+
* Get the SQL service.
|
|
148
|
+
* @throws Error if services are not initialized
|
|
149
|
+
*/
|
|
150
|
+
get sql(): ISQLService;
|
|
146
151
|
/**
|
|
147
152
|
* Notify services of session change.
|
|
148
153
|
* Called internally after sign-in and sign-out.
|
|
@@ -202,5 +207,55 @@ export declare class TinyCloud {
|
|
|
202
207
|
* @param message - Message to sign
|
|
203
208
|
*/
|
|
204
209
|
signMessage(message: string): Promise<string>;
|
|
210
|
+
/**
|
|
211
|
+
* Cached public KV service instance.
|
|
212
|
+
*/
|
|
213
|
+
private _publicKV?;
|
|
214
|
+
/**
|
|
215
|
+
* Construct the deterministic public space ID for a given address and chain ID.
|
|
216
|
+
*
|
|
217
|
+
* @param address - Ethereum address (0x-prefixed)
|
|
218
|
+
* @param chainId - Chain ID (e.g., 1 for mainnet)
|
|
219
|
+
* @returns The public space ID
|
|
220
|
+
*/
|
|
221
|
+
static makePublicSpaceId(address: string, chainId: number): string;
|
|
222
|
+
/**
|
|
223
|
+
* Ensure the user's public space exists.
|
|
224
|
+
* Creates it via spaces.create('public') if it doesn't.
|
|
225
|
+
* Called automatically by modules that need to publish data.
|
|
226
|
+
*
|
|
227
|
+
* Requires the user to be signed in and services to be initialized.
|
|
228
|
+
*/
|
|
229
|
+
ensurePublicSpace(): Promise<Result<void, ServiceError>>;
|
|
230
|
+
/**
|
|
231
|
+
* Get a KVService scoped to the user's own public space.
|
|
232
|
+
* Writes require authentication (owner/delegate).
|
|
233
|
+
*
|
|
234
|
+
* @throws Error if not signed in or services not initialized
|
|
235
|
+
*/
|
|
236
|
+
get publicKV(): IKVService;
|
|
237
|
+
/**
|
|
238
|
+
* Read from any user's public space (unauthenticated).
|
|
239
|
+
* Uses the public REST endpoint — no session needed.
|
|
240
|
+
*
|
|
241
|
+
* @param host - TinyCloud server URL (e.g., "https://node.tinycloud.xyz")
|
|
242
|
+
* @param spaceId - Full public space ID
|
|
243
|
+
* @param key - Key to read
|
|
244
|
+
* @param fetchFn - Optional custom fetch function
|
|
245
|
+
* @returns The data at the key
|
|
246
|
+
*/
|
|
247
|
+
static readPublicSpace<T = unknown>(host: string, spaceId: string, key: string, fetchFn?: FetchFunction): Promise<Result<T, ServiceError>>;
|
|
248
|
+
/**
|
|
249
|
+
* Read from any user's public space by address (unauthenticated).
|
|
250
|
+
* Convenience method that constructs the space ID from address and chain ID.
|
|
251
|
+
*
|
|
252
|
+
* @param host - TinyCloud server URL
|
|
253
|
+
* @param address - Ethereum address (0x-prefixed)
|
|
254
|
+
* @param chainId - Chain ID (e.g., 1 for mainnet)
|
|
255
|
+
* @param key - Key to read
|
|
256
|
+
* @param fetchFn - Optional custom fetch function
|
|
257
|
+
* @returns The data at the key
|
|
258
|
+
*/
|
|
259
|
+
static readPublicKey<T = unknown>(host: string, address: string, chainId: number, key: string, fetchFn?: FetchFunction): Promise<Result<T, ServiceError>>;
|
|
205
260
|
}
|
|
206
261
|
//# sourceMappingURL=TinyCloud.d.ts.map
|
package/dist/TinyCloud.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TinyCloud.d.ts","sourceRoot":"","sources":["../src/TinyCloud.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,SAAS,EACV,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEL,QAAQ,EACR,eAAe,EACf,UAAU,
|
|
1
|
+
{"version":3,"file":"TinyCloud.d.ts","sourceRoot":"","sources":["../src/TinyCloud.ts"],"names":[],"mappings":"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"}
|
package/dist/TinyCloud.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { ServiceContext, KVService, } from "@tinycloud/sdk-services";
|
|
1
|
+
import { ServiceContext, KVService, SQLService, ok, err, serviceError, ErrorCodes, } from "@tinycloud/sdk-services";
|
|
2
|
+
import { makePublicSpaceId } from "./spaces/SpaceService";
|
|
2
3
|
/**
|
|
3
4
|
* TinyCloud SDK - Unified entry point for web and node.
|
|
4
5
|
*
|
|
@@ -85,6 +86,7 @@ export class TinyCloud {
|
|
|
85
86
|
// Register default services (can be overridden via config.services)
|
|
86
87
|
const serviceConstructors = {
|
|
87
88
|
kv: KVService,
|
|
89
|
+
sql: SQLService,
|
|
88
90
|
...this.config.services,
|
|
89
91
|
};
|
|
90
92
|
// Create and register services
|
|
@@ -131,6 +133,21 @@ export class TinyCloud {
|
|
|
131
133
|
}
|
|
132
134
|
return service;
|
|
133
135
|
}
|
|
136
|
+
/**
|
|
137
|
+
* Get the SQL service.
|
|
138
|
+
* @throws Error if services are not initialized
|
|
139
|
+
*/
|
|
140
|
+
get sql() {
|
|
141
|
+
if (!this._servicesInitialized) {
|
|
142
|
+
throw new Error("Services not initialized. Call initializeServices() first, " +
|
|
143
|
+
"or use TinyCloudWeb/TinyCloudNode which handles this automatically.");
|
|
144
|
+
}
|
|
145
|
+
const service = this._services.get("sql");
|
|
146
|
+
if (!service) {
|
|
147
|
+
throw new Error("SQL service is not registered.");
|
|
148
|
+
}
|
|
149
|
+
return service;
|
|
150
|
+
}
|
|
134
151
|
/**
|
|
135
152
|
* Notify services of session change.
|
|
136
153
|
* Called internally after sign-in and sign-out.
|
|
@@ -218,6 +235,8 @@ export class TinyCloud {
|
|
|
218
235
|
// Abort all pending operations before sign-out
|
|
219
236
|
this.abortServiceOperations();
|
|
220
237
|
await this.userAuthorization.signOut();
|
|
238
|
+
// Clear cached public KV service
|
|
239
|
+
this._publicKV = undefined;
|
|
221
240
|
// Clear session from services
|
|
222
241
|
this.notifyServicesOfSessionChange(null);
|
|
223
242
|
}
|
|
@@ -240,5 +259,169 @@ export class TinyCloud {
|
|
|
240
259
|
async signMessage(message) {
|
|
241
260
|
return this.userAuthorization.signMessage(message);
|
|
242
261
|
}
|
|
262
|
+
/**
|
|
263
|
+
* Construct the deterministic public space ID for a given address and chain ID.
|
|
264
|
+
*
|
|
265
|
+
* @param address - Ethereum address (0x-prefixed)
|
|
266
|
+
* @param chainId - Chain ID (e.g., 1 for mainnet)
|
|
267
|
+
* @returns The public space ID
|
|
268
|
+
*/
|
|
269
|
+
static makePublicSpaceId(address, chainId) {
|
|
270
|
+
return makePublicSpaceId(address, chainId);
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Ensure the user's public space exists.
|
|
274
|
+
* Creates it via spaces.create('public') if it doesn't.
|
|
275
|
+
* Called automatically by modules that need to publish data.
|
|
276
|
+
*
|
|
277
|
+
* Requires the user to be signed in and services to be initialized.
|
|
278
|
+
*/
|
|
279
|
+
async ensurePublicSpace() {
|
|
280
|
+
const address = this.address();
|
|
281
|
+
const chainId = this.chainId();
|
|
282
|
+
if (!address || !chainId) {
|
|
283
|
+
return err(serviceError(ErrorCodes.AUTH_REQUIRED, "Must be signed in to ensure public space", "public-space"));
|
|
284
|
+
}
|
|
285
|
+
if (!this._serviceContext) {
|
|
286
|
+
return err(serviceError(ErrorCodes.AUTH_REQUIRED, "Services not initialized. Call initializeServices() or signIn() first.", "public-space"));
|
|
287
|
+
}
|
|
288
|
+
const spaceId = makePublicSpaceId(address, chainId);
|
|
289
|
+
// Check if it already exists via invoke
|
|
290
|
+
try {
|
|
291
|
+
const session = this._serviceContext.session;
|
|
292
|
+
if (!session) {
|
|
293
|
+
return err(serviceError(ErrorCodes.AUTH_REQUIRED, "No active session", "public-space"));
|
|
294
|
+
}
|
|
295
|
+
const headers = this._serviceContext.invoke(session, "space", spaceId, "tinycloud.space/info");
|
|
296
|
+
const response = await this._serviceContext.fetch(`${this._serviceContext.hosts[0]}/invoke`, { method: "POST", headers, body: JSON.stringify({ spaceId }) });
|
|
297
|
+
if (response.ok) {
|
|
298
|
+
return ok(undefined);
|
|
299
|
+
}
|
|
300
|
+
if (response.status === 404) {
|
|
301
|
+
// Space doesn't exist — create it
|
|
302
|
+
const createHeaders = this._serviceContext.invoke(session, "space", "public", "tinycloud.space/create");
|
|
303
|
+
const createResponse = await this._serviceContext.fetch(`${this._serviceContext.hosts[0]}/invoke`, {
|
|
304
|
+
method: "POST",
|
|
305
|
+
headers: createHeaders,
|
|
306
|
+
body: JSON.stringify({ name: "public" }),
|
|
307
|
+
});
|
|
308
|
+
if (!createResponse.ok) {
|
|
309
|
+
// 409 means it already exists — that's fine
|
|
310
|
+
if (createResponse.status === 409) {
|
|
311
|
+
return ok(undefined);
|
|
312
|
+
}
|
|
313
|
+
const errorText = await createResponse.text();
|
|
314
|
+
return err(serviceError(ErrorCodes.NETWORK_ERROR, `Failed to create public space: ${createResponse.status} - ${errorText}`, "public-space"));
|
|
315
|
+
}
|
|
316
|
+
return ok(undefined);
|
|
317
|
+
}
|
|
318
|
+
// Other error from info check
|
|
319
|
+
const errorText = await response.text();
|
|
320
|
+
return err(serviceError(ErrorCodes.NETWORK_ERROR, `Failed to check public space: ${response.status} - ${errorText}`, "public-space"));
|
|
321
|
+
}
|
|
322
|
+
catch (error) {
|
|
323
|
+
return err(serviceError(ErrorCodes.NETWORK_ERROR, `Network error ensuring public space: ${String(error)}`, "public-space", { cause: error instanceof Error ? error : undefined }));
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Get a KVService scoped to the user's own public space.
|
|
328
|
+
* Writes require authentication (owner/delegate).
|
|
329
|
+
*
|
|
330
|
+
* @throws Error if not signed in or services not initialized
|
|
331
|
+
*/
|
|
332
|
+
get publicKV() {
|
|
333
|
+
if (!this._servicesInitialized || !this._serviceContext) {
|
|
334
|
+
throw new Error("Services not initialized. Call initializeServices() first, " +
|
|
335
|
+
"or use TinyCloudWeb/TinyCloudNode which handles this automatically.");
|
|
336
|
+
}
|
|
337
|
+
const address = this.address();
|
|
338
|
+
const chainId = this.chainId();
|
|
339
|
+
if (!address || !chainId) {
|
|
340
|
+
throw new Error("Must be signed in to access publicKV.");
|
|
341
|
+
}
|
|
342
|
+
// Return cached instance if available
|
|
343
|
+
if (this._publicKV) {
|
|
344
|
+
return this._publicKV;
|
|
345
|
+
}
|
|
346
|
+
const publicSpaceId = makePublicSpaceId(address, chainId);
|
|
347
|
+
const session = this._serviceContext.session;
|
|
348
|
+
if (!session) {
|
|
349
|
+
throw new Error("No active session. Sign in first.");
|
|
350
|
+
}
|
|
351
|
+
// Create a KV service with a context that targets the public space
|
|
352
|
+
const publicKV = new KVService({ prefix: "" });
|
|
353
|
+
const publicContext = new ServiceContext({
|
|
354
|
+
invoke: this._serviceContext.invoke,
|
|
355
|
+
fetch: this._serviceContext.fetch,
|
|
356
|
+
hosts: this._serviceContext.hosts,
|
|
357
|
+
retryPolicy: this.config.retryPolicy,
|
|
358
|
+
});
|
|
359
|
+
publicContext.setSession({
|
|
360
|
+
...session,
|
|
361
|
+
spaceId: publicSpaceId,
|
|
362
|
+
});
|
|
363
|
+
publicKV.initialize(publicContext);
|
|
364
|
+
this._publicKV = publicKV;
|
|
365
|
+
return this._publicKV;
|
|
366
|
+
}
|
|
367
|
+
/**
|
|
368
|
+
* Read from any user's public space (unauthenticated).
|
|
369
|
+
* Uses the public REST endpoint — no session needed.
|
|
370
|
+
*
|
|
371
|
+
* @param host - TinyCloud server URL (e.g., "https://node.tinycloud.xyz")
|
|
372
|
+
* @param spaceId - Full public space ID
|
|
373
|
+
* @param key - Key to read
|
|
374
|
+
* @param fetchFn - Optional custom fetch function
|
|
375
|
+
* @returns The data at the key
|
|
376
|
+
*/
|
|
377
|
+
static async readPublicSpace(host, spaceId, key, fetchFn) {
|
|
378
|
+
const doFetch = fetchFn ?? globalThis.fetch.bind(globalThis);
|
|
379
|
+
const encodedKey = key.split('/').map(encodeURIComponent).join('/');
|
|
380
|
+
const url = `${host}/public/${encodeURIComponent(spaceId)}/kv/${encodedKey}`;
|
|
381
|
+
try {
|
|
382
|
+
const response = await doFetch(url, { method: "GET" });
|
|
383
|
+
if (!response.ok) {
|
|
384
|
+
if (response.status === 404) {
|
|
385
|
+
return err(serviceError(ErrorCodes.NOT_FOUND, `Key not found: ${key} in space ${spaceId}`, "public-space"));
|
|
386
|
+
}
|
|
387
|
+
const errorText = await response.text();
|
|
388
|
+
return err(serviceError(ErrorCodes.NETWORK_ERROR, `Failed to read public space: ${response.status} - ${errorText}`, "public-space", { meta: { status: response.status } }));
|
|
389
|
+
}
|
|
390
|
+
const contentType = response.headers.get("content-type");
|
|
391
|
+
let data;
|
|
392
|
+
if (contentType?.includes("application/json")) {
|
|
393
|
+
data = (await response.json());
|
|
394
|
+
}
|
|
395
|
+
else {
|
|
396
|
+
const text = await response.text();
|
|
397
|
+
// Try parsing as JSON, fall back to raw text
|
|
398
|
+
try {
|
|
399
|
+
data = JSON.parse(text);
|
|
400
|
+
}
|
|
401
|
+
catch {
|
|
402
|
+
data = text;
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
return ok(data);
|
|
406
|
+
}
|
|
407
|
+
catch (error) {
|
|
408
|
+
return err(serviceError(ErrorCodes.NETWORK_ERROR, `Network error reading public space: ${String(error)}`, "public-space", { cause: error instanceof Error ? error : undefined }));
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
/**
|
|
412
|
+
* Read from any user's public space by address (unauthenticated).
|
|
413
|
+
* Convenience method that constructs the space ID from address and chain ID.
|
|
414
|
+
*
|
|
415
|
+
* @param host - TinyCloud server URL
|
|
416
|
+
* @param address - Ethereum address (0x-prefixed)
|
|
417
|
+
* @param chainId - Chain ID (e.g., 1 for mainnet)
|
|
418
|
+
* @param key - Key to read
|
|
419
|
+
* @param fetchFn - Optional custom fetch function
|
|
420
|
+
* @returns The data at the key
|
|
421
|
+
*/
|
|
422
|
+
static async readPublicKey(host, address, chainId, key, fetchFn) {
|
|
423
|
+
const spaceId = makePublicSpaceId(address, chainId);
|
|
424
|
+
return TinyCloud.readPublicSpace(host, spaceId, key, fetchFn);
|
|
425
|
+
}
|
|
243
426
|
}
|
|
244
427
|
//# sourceMappingURL=TinyCloud.js.map
|
package/dist/TinyCloud.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TinyCloud.js","sourceRoot":"","sources":["../src/TinyCloud.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,cAAc,EAId,SAAS,
|
|
1
|
+
{"version":3,"file":"TinyCloud.js","sourceRoot":"","sources":["../src/TinyCloud.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,cAAc,EAId,SAAS,EAET,UAAU,EAQV,EAAE,EACF,GAAG,EACH,YAAY,EAEZ,UAAU,GACX,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AA8D1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,OAAO,SAAS;IAkCpB;;;;;OAKG;IACH,YAAY,iBAAqC,EAAE,MAAwB;QA5B3E;;WAEG;QACK,eAAU,GAAgB,EAAE,CAAC;QASrC;;WAEG;QACK,cAAS,GAA0B,IAAI,GAAG,EAAE,CAAC;QAErD;;WAEG;QACK,yBAAoB,GAAY,KAAK,CAAC;QAS5C,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,6BAA6B;IAE7B;;;;;;;OAOG;IACI,kBAAkB,CACvB,MAAuB,EACvB,KAAgB,EAChB,OAAuB;QAEvB,MAAM,eAAe,GAAG,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QACrD,MAAM,cAAc,GAAG,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QAElD,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,sDAAsD;gBACpD,uDAAuD,CAC1D,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,KAAK,CACb,6CAA6C;gBAC3C,wDAAwD,CAC3D,CAAC;QACJ,CAAC;QAED,yBAAyB;QACzB,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CAAC;YACxC,MAAM,EAAE,eAAe;YACvB,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;YACxE,KAAK,EAAE,cAAc;YACrB,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;SACrC,CAAC,CAAC;QAEH,oEAAoE;QACpE,MAAM,mBAAmB,GAAuC;YAC9D,EAAE,EAAE,SAAS;YACb,GAAG,EAAE,UAAU;YACf,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ;SACxB,CAAC;QAEF,+BAA+B;QAC/B,KAAK,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC;YACvE,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAC/D,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,aAAa,CAAC,CAAC;YAChD,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACzC,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACpD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;IACnC,CAAC;IAED;;;OAGG;IACH,IAAW,cAAc;QACvB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACI,UAAU,CAAqB,IAAY;QAChD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAkB,CAAC;IACnD,CAAC;IAED;;;OAGG;IACH,IAAW,EAAE;QACX,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,6DAA6D;gBAC3D,qEAAqE,CACxE,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAA2B,CAAC;QACnE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,IAAW,GAAG;QACZ,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,6DAA6D;gBAC3D,qEAAqE,CACxE,CAAC;QACJ,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAA4B,CAAC;QACrE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACK,6BAA6B,CAAC,OAA8B;QAClE,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,sBAAsB;QAC5B,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,gBAAgB,CACtB,aAAwC;QAExC,IAAI,CAAC,aAAa;YAAE,OAAO,IAAI,CAAC;QAEhC,gDAAgD;QAChD,MAAM,SAAS,GAAI,aAAqB,CAAC,gBAAgB,CAAC;QAC1D,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC;QAE5B,OAAO;YACL,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;YAC5C,aAAa,EAAE,SAAS,CAAC,aAAa;YACtC,OAAO,EAAE,SAAS,CAAC,OAAO;YAC1B,kBAAkB,EAAE,SAAS,CAAC,kBAAkB;YAChD,GAAG,EAAE,SAAS,CAAC,GAAG;SACnB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,SAAoB;QAChC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED;;;OAGG;IACI,kBAAkB,CAAC,SAAiB;QACzC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;IACpE,CAAC;IAED,iEAAiE;IAEjE;;OAEG;IACH,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,IAAW,UAAU;QACnB,OAAO,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,MAAM;QACjB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC;QAEtD,qCAAqC;QACrC,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,CAAC,6BAA6B,CAAC,cAAc,CAAC,CAAC;QAEnD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,OAAO;QAClB,+CAA+C;QAC/C,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAE9B,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;QAEvC,iCAAiC;QACjC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,8BAA8B;QAC9B,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACI,OAAO;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;IAC1C,CAAC;IAED;;OAEG;IACI,OAAO;QACZ,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,WAAW,CAAC,OAAe;QACtC,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;IASD;;;;;;OAMG;IACH,MAAM,CAAC,iBAAiB,CAAC,OAAe,EAAE,OAAe;QACvD,OAAO,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,iBAAiB;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;YACzB,OAAO,GAAG,CACR,YAAY,CACV,UAAU,CAAC,aAAa,EACxB,0CAA0C,EAC1C,cAAc,CACf,CACF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,OAAO,GAAG,CACR,YAAY,CACV,UAAU,CAAC,aAAa,EACxB,wEAAwE,EACxE,cAAc,CACf,CACF,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAEpD,wCAAwC;QACxC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;YAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG,CACR,YAAY,CACV,UAAU,CAAC,aAAa,EACxB,mBAAmB,EACnB,cAAc,CACf,CACF,CAAC;YACJ,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CACzC,OAAO,EACP,OAAO,EACP,OAAO,EACP,sBAAsB,CACvB,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAC/C,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EACzC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAC/D,CAAC;YAEF,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAChB,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;YACvB,CAAC;YAED,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,kCAAkC;gBAClC,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAC/C,OAAO,EACP,OAAO,EACP,QAAQ,EACR,wBAAwB,CACzB,CAAC;gBAEF,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CACrD,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EACzC;oBACE,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,aAAa;oBACtB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;iBACzC,CACF,CAAC;gBAEF,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;oBACvB,4CAA4C;oBAC5C,IAAI,cAAc,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;wBAClC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;oBACvB,CAAC;oBACD,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;oBAC9C,OAAO,GAAG,CACR,YAAY,CACV,UAAU,CAAC,aAAa,EACxB,kCAAkC,cAAc,CAAC,MAAM,MAAM,SAAS,EAAE,EACxE,cAAc,CACf,CACF,CAAC;gBACJ,CAAC;gBAED,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC;YACvB,CAAC;YAED,8BAA8B;YAC9B,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxC,OAAO,GAAG,CACR,YAAY,CACV,UAAU,CAAC,aAAa,EACxB,iCAAiC,QAAQ,CAAC,MAAM,MAAM,SAAS,EAAE,EACjE,cAAc,CACf,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,CACR,YAAY,CACV,UAAU,CAAC,aAAa,EACxB,wCAAwC,MAAM,CAAC,KAAK,CAAC,EAAE,EACvD,cAAc,EACd,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,CACtD,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,IAAW,QAAQ;QACjB,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YACxD,MAAM,IAAI,KAAK,CACb,6DAA6D;gBAC3D,qEAAqE,CACxE,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QAED,sCAAsC;QACtC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;QAED,MAAM,aAAa,GAAG,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;QAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QAED,mEAAmE;QACnE,MAAM,QAAQ,GAAG,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/C,MAAM,aAAa,GAAG,IAAI,cAAc,CAAC;YACvC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM;YACnC,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK;YACjC,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK;YACjC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;SACrC,CAAC,CAAC;QACH,aAAa,CAAC,UAAU,CAAC;YACvB,GAAG,OAAO;YACV,OAAO,EAAE,aAAa;SACvB,CAAC,CAAC;QACH,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;QAEnC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,KAAK,CAAC,eAAe,CAC1B,IAAY,EACZ,OAAe,EACf,GAAW,EACX,OAAuB;QAEvB,MAAM,OAAO,GAAG,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7D,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpE,MAAM,GAAG,GAAG,GAAG,IAAI,WAAW,kBAAkB,CAAC,OAAO,CAAC,OAAO,UAAU,EAAE,CAAC;QAE7E,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YAEvD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;oBAC5B,OAAO,GAAG,CACR,YAAY,CACV,UAAU,CAAC,SAAS,EACpB,kBAAkB,GAAG,aAAa,OAAO,EAAE,EAC3C,cAAc,CACf,CACF,CAAC;gBACJ,CAAC;gBACD,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACxC,OAAO,GAAG,CACR,YAAY,CACV,UAAU,CAAC,aAAa,EACxB,gCAAgC,QAAQ,CAAC,MAAM,MAAM,SAAS,EAAE,EAChE,cAAc,EACd,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,CACtC,CACF,CAAC;YACJ,CAAC;YAED,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;YACzD,IAAI,IAAO,CAAC;YACZ,IAAI,WAAW,EAAE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBAC9C,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnC,6CAA6C;gBAC7C,IAAI,CAAC;oBACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,CAAC;gBAC/B,CAAC;gBAAC,MAAM,CAAC;oBACP,IAAI,GAAG,IAAoB,CAAC;gBAC9B,CAAC;YACH,CAAC;YAED,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,GAAG,CACR,YAAY,CACV,UAAU,CAAC,aAAa,EACxB,uCAAuC,MAAM,CAAC,KAAK,CAAC,EAAE,EACtD,cAAc,EACd,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EAAE,CACtD,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,KAAK,CAAC,aAAa,CACxB,IAAY,EACZ,OAAe,EACf,OAAe,EACf,GAAW,EACX,OAAuB;QAEvB,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACpD,OAAO,SAAS,CAAC,eAAe,CAAI,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;CAEF"}
|
|
@@ -123,9 +123,40 @@ export interface SharingServiceConfig {
|
|
|
123
123
|
pathPrefix?: string;
|
|
124
124
|
/**
|
|
125
125
|
* Session expiry time.
|
|
126
|
-
* When set, sharing link expiry is clamped to not exceed this value
|
|
126
|
+
* When set, sharing link expiry is clamped to not exceed this value
|
|
127
|
+
* unless onRootDelegationNeeded is provided and returns a new delegation.
|
|
127
128
|
*/
|
|
128
129
|
sessionExpiry?: Date;
|
|
130
|
+
/**
|
|
131
|
+
* Callback to create a DIRECT delegation from the root (wallet) to a share key.
|
|
132
|
+
* This bypasses the session delegation chain, allowing share links with
|
|
133
|
+
* expiry longer than the current session.
|
|
134
|
+
*
|
|
135
|
+
* When provided and share expiry > session expiry:
|
|
136
|
+
* 1. SharingService creates the ephemeral share key
|
|
137
|
+
* 2. This callback is invoked with the share key DID
|
|
138
|
+
* 3. The callback signs a direct PKH -> share key delegation with the wallet
|
|
139
|
+
* 4. The returned delegation is used for the share link
|
|
140
|
+
*
|
|
141
|
+
* This is the CORRECT solution for long-lived share links because:
|
|
142
|
+
* - It creates a fresh delegation chain: PKH -> share key
|
|
143
|
+
* - Not constrained by session expiry (no sub-delegation from session key)
|
|
144
|
+
*
|
|
145
|
+
* @param params - Parameters for creating the root delegation
|
|
146
|
+
* @returns The delegation from wallet to share key, or undefined to fall back to session extension
|
|
147
|
+
*/
|
|
148
|
+
onRootDelegationNeeded?: (params: {
|
|
149
|
+
/** DID of the share key to delegate to */
|
|
150
|
+
shareKeyDID: string;
|
|
151
|
+
/** Space ID */
|
|
152
|
+
spaceId: string;
|
|
153
|
+
/** Path to grant access to */
|
|
154
|
+
path: string;
|
|
155
|
+
/** Actions to grant */
|
|
156
|
+
actions: string[];
|
|
157
|
+
/** Requested expiry time */
|
|
158
|
+
requestedExpiry: Date;
|
|
159
|
+
}) => Promise<Delegation | undefined>;
|
|
129
160
|
}
|
|
130
161
|
/**
|
|
131
162
|
* Interface for the SharingService.
|
|
@@ -205,6 +236,7 @@ export declare class SharingService implements ISharingService {
|
|
|
205
236
|
private createDelegationWasmFn?;
|
|
206
237
|
private pathPrefix;
|
|
207
238
|
private sessionExpiry?;
|
|
239
|
+
private onRootDelegationNeeded?;
|
|
208
240
|
/**
|
|
209
241
|
* Creates a new SharingService instance.
|
|
210
242
|
*/
|
|
@@ -221,7 +253,7 @@ export declare class SharingService implements ISharingService {
|
|
|
221
253
|
* Updates the service configuration.
|
|
222
254
|
* Used to add full capabilities (session, delegationManager, createDelegation, createDelegationWasm) after signIn.
|
|
223
255
|
*/
|
|
224
|
-
updateConfig(config: Partial<Pick<SharingServiceConfig, "session" | "delegationManager" | "createDelegation" | "createDelegationWasm" | "sessionExpiry">>): void;
|
|
256
|
+
updateConfig(config: Partial<Pick<SharingServiceConfig, "session" | "delegationManager" | "createDelegation" | "createDelegationWasm" | "sessionExpiry" | "onRootDelegationNeeded">>): void;
|
|
225
257
|
/**
|
|
226
258
|
* Generate a sharing link with an embedded private key.
|
|
227
259
|
*
|
|
@@ -233,6 +265,36 @@ export declare class SharingService implements ISharingService {
|
|
|
233
265
|
* 5. Return link string
|
|
234
266
|
*/
|
|
235
267
|
generate(params: GenerateShareParams): Promise<Result<ShareLink, DelegationError>>;
|
|
268
|
+
/**
|
|
269
|
+
* Check if any key in the registry can satisfy the delegation request.
|
|
270
|
+
* A key can satisfy if it has a delegation that:
|
|
271
|
+
* 1. Covers the required path (exact match or parent path)
|
|
272
|
+
* 2. Has all required actions
|
|
273
|
+
* 3. Has sufficient expiry (delegation.expiry >= requestedExpiry)
|
|
274
|
+
* 4. Allows sub-delegation
|
|
275
|
+
* @internal
|
|
276
|
+
*/
|
|
277
|
+
private findSuitableKeyForDelegation;
|
|
278
|
+
/**
|
|
279
|
+
* Check if a delegation path matches/covers the requested path.
|
|
280
|
+
* A delegation path covers the request if:
|
|
281
|
+
* - It's an exact match
|
|
282
|
+
* - It's a parent path (e.g., delegation for "" covers "foo/bar")
|
|
283
|
+
* - It uses wildcards that match
|
|
284
|
+
* @internal
|
|
285
|
+
*/
|
|
286
|
+
private pathMatches;
|
|
287
|
+
/**
|
|
288
|
+
* Handle fallback to session extension when root delegation is not available.
|
|
289
|
+
* @internal
|
|
290
|
+
*/
|
|
291
|
+
private handleSessionExtensionFallback;
|
|
292
|
+
/**
|
|
293
|
+
* Create a delegation from the current session to a share key.
|
|
294
|
+
* This is the fallback path when root delegation is not available.
|
|
295
|
+
* @internal
|
|
296
|
+
*/
|
|
297
|
+
private createSessionDelegation;
|
|
236
298
|
/**
|
|
237
299
|
* Receive and activate a sharing link.
|
|
238
300
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SharingService.d.ts","sourceRoot":"","sources":["../../src/delegations/SharingService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,aAAa,EACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EACV,MAAM,EACN,eAAe,EACf,UAAU,EACV,OAAO,EACP,WAAW,EACX,mBAAmB,EACnB,SAAS,EAET,WAAW,EACX,GAAG,EACH,aAAa,EACb,sBAAsB,EACtB,0BAA0B,EAC1B,0BAA0B,EAC3B,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAqFrF;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uDAAuD;IACvD,GAAG,EAAE,GAAG,CAAC;IACT,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,UAAU,EAAE,UAAU,CAAC;IACvB,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,OAAO,EAAE,CAAC,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,+CAA+C;IAC/C,UAAU,EAAE,UAAU,CAAC;IACvB,oCAAoC;IACpC,GAAG,EAAE,OAAO,CAAC;IACb,oDAAoD;IACpD,EAAE,EAAE,UAAU,CAAC;IACf,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,0BAA0B;IAC1B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB;;;OAGG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,wCAAwC;IACxC,MAAM,EAAE,cAAc,CAAC;IACvB,2CAA2C;IAC3C,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,gDAAgD;IAChD,WAAW,EAAE,WAAW,CAAC;IACzB,4DAA4D;IAC5D,QAAQ,EAAE,sBAAsB,CAAC;IACjC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,gDAAgD;IAChD,eAAe,EAAE,CAAC,MAAM,EAAE;QACxB,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,CAAC;IACjB,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC;IACpG;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,CAAC,MAAM,EAAE,0BAA0B,KAAK,0BAA0B,CAAC;IAC1F;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB
|
|
1
|
+
{"version":3,"file":"SharingService.d.ts","sourceRoot":"","sources":["../../src/delegations/SharingService.ts"],"names":[],"mappings":"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"}
|