@tinycloud/sdk-core 2.0.0 → 2.0.2-beta.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/index.cjs +3816 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +3867 -0
- package/dist/index.d.ts +3861 -21
- package/dist/index.js +3767 -61
- package/dist/index.js.map +1 -1
- package/package.json +6 -5
- package/dist/TinyCloud.d.ts +0 -271
- package/dist/TinyCloud.d.ts.map +0 -1
- package/dist/TinyCloud.js +0 -458
- package/dist/TinyCloud.js.map +0 -1
- package/dist/TinyCloud.schema.d.ts +0 -173
- package/dist/TinyCloud.schema.d.ts.map +0 -1
- package/dist/TinyCloud.schema.js +0 -136
- package/dist/TinyCloud.schema.js.map +0 -1
- package/dist/TinyCloud.schema.test.d.ts +0 -5
- package/dist/TinyCloud.schema.test.d.ts.map +0 -1
- package/dist/TinyCloud.schema.test.js +0 -286
- package/dist/TinyCloud.schema.test.js.map +0 -1
- package/dist/authorization/CapabilityKeyRegistry.d.ts +0 -317
- package/dist/authorization/CapabilityKeyRegistry.d.ts.map +0 -1
- package/dist/authorization/CapabilityKeyRegistry.js +0 -509
- package/dist/authorization/CapabilityKeyRegistry.js.map +0 -1
- package/dist/authorization/authorization.schema.d.ts +0 -233
- package/dist/authorization/authorization.schema.d.ts.map +0 -1
- package/dist/authorization/authorization.schema.js +0 -220
- package/dist/authorization/authorization.schema.js.map +0 -1
- package/dist/authorization/authorization.schema.test.d.ts +0 -5
- package/dist/authorization/authorization.schema.test.d.ts.map +0 -1
- package/dist/authorization/authorization.schema.test.js +0 -618
- package/dist/authorization/authorization.schema.test.js.map +0 -1
- package/dist/authorization/index.d.ts +0 -38
- package/dist/authorization/index.d.ts.map +0 -1
- package/dist/authorization/index.js +0 -52
- package/dist/authorization/index.js.map +0 -1
- package/dist/authorization/spaceCreation.d.ts +0 -96
- package/dist/authorization/spaceCreation.d.ts.map +0 -1
- package/dist/authorization/spaceCreation.js +0 -35
- package/dist/authorization/spaceCreation.js.map +0 -1
- package/dist/authorization/spaceCreation.schema.d.ts +0 -67
- package/dist/authorization/spaceCreation.schema.d.ts.map +0 -1
- package/dist/authorization/spaceCreation.schema.js +0 -95
- package/dist/authorization/spaceCreation.schema.js.map +0 -1
- package/dist/authorization/spaceCreation.schema.test.d.ts +0 -5
- package/dist/authorization/spaceCreation.schema.test.d.ts.map +0 -1
- package/dist/authorization/spaceCreation.schema.test.js +0 -168
- package/dist/authorization/spaceCreation.schema.test.js.map +0 -1
- package/dist/authorization/strategies.d.ts +0 -134
- package/dist/authorization/strategies.d.ts.map +0 -1
- package/dist/authorization/strategies.js +0 -15
- package/dist/authorization/strategies.js.map +0 -1
- package/dist/authorization/strategies.schema.d.ts +0 -185
- package/dist/authorization/strategies.schema.d.ts.map +0 -1
- package/dist/authorization/strategies.schema.js +0 -147
- package/dist/authorization/strategies.schema.js.map +0 -1
- package/dist/authorization/strategies.schema.test.d.ts +0 -5
- package/dist/authorization/strategies.schema.test.d.ts.map +0 -1
- package/dist/authorization/strategies.schema.test.js +0 -253
- package/dist/authorization/strategies.schema.test.js.map +0 -1
- package/dist/client-types.d.ts +0 -128
- package/dist/client-types.d.ts.map +0 -1
- package/dist/client-types.js +0 -40
- package/dist/client-types.js.map +0 -1
- package/dist/delegations/DelegationManager.d.ts +0 -164
- package/dist/delegations/DelegationManager.d.ts.map +0 -1
- package/dist/delegations/DelegationManager.js +0 -428
- package/dist/delegations/DelegationManager.js.map +0 -1
- package/dist/delegations/SharingService.d.ts +0 -341
- package/dist/delegations/SharingService.d.ts.map +0 -1
- package/dist/delegations/SharingService.js +0 -722
- package/dist/delegations/SharingService.js.map +0 -1
- package/dist/delegations/SharingService.schema.d.ts +0 -409
- package/dist/delegations/SharingService.schema.d.ts.map +0 -1
- package/dist/delegations/SharingService.schema.js +0 -222
- package/dist/delegations/SharingService.schema.js.map +0 -1
- package/dist/delegations/index.d.ts +0 -38
- package/dist/delegations/index.d.ts.map +0 -1
- package/dist/delegations/index.js +0 -42
- package/dist/delegations/index.js.map +0 -1
- package/dist/delegations/types.d.ts +0 -13
- package/dist/delegations/types.d.ts.map +0 -1
- package/dist/delegations/types.js +0 -42
- package/dist/delegations/types.js.map +0 -1
- package/dist/delegations/types.schema.d.ts +0 -1773
- package/dist/delegations/types.schema.d.ts.map +0 -1
- package/dist/delegations/types.schema.js +0 -535
- package/dist/delegations/types.schema.js.map +0 -1
- package/dist/delegations/types.schema.test.d.ts +0 -5
- package/dist/delegations/types.schema.test.d.ts.map +0 -1
- package/dist/delegations/types.schema.test.js +0 -627
- package/dist/delegations/types.schema.test.js.map +0 -1
- package/dist/ens.d.ts +0 -17
- package/dist/ens.d.ts.map +0 -1
- package/dist/ens.js +0 -10
- package/dist/ens.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/json-schema.d.ts +0 -327
- package/dist/json-schema.d.ts.map +0 -1
- package/dist/json-schema.js +0 -703
- package/dist/json-schema.js.map +0 -1
- package/dist/json-schema.test.d.ts +0 -7
- package/dist/json-schema.test.d.ts.map +0 -1
- package/dist/json-schema.test.js +0 -365
- package/dist/json-schema.test.js.map +0 -1
- package/dist/notifications.d.ts +0 -33
- package/dist/notifications.d.ts.map +0 -1
- package/dist/notifications.js +0 -15
- package/dist/notifications.js.map +0 -1
- package/dist/signer.d.ts +0 -28
- package/dist/signer.d.ts.map +0 -1
- package/dist/signer.js +0 -2
- package/dist/signer.js.map +0 -1
- package/dist/space.d.ts +0 -57
- package/dist/space.d.ts.map +0 -1
- package/dist/space.js +0 -87
- package/dist/space.js.map +0 -1
- package/dist/space.schema.d.ts +0 -65
- package/dist/space.schema.d.ts.map +0 -1
- package/dist/space.schema.js +0 -65
- package/dist/space.schema.js.map +0 -1
- package/dist/space.schema.test.d.ts +0 -5
- package/dist/space.schema.test.d.ts.map +0 -1
- package/dist/space.schema.test.js +0 -148
- package/dist/space.schema.test.js.map +0 -1
- package/dist/space.test.d.ts +0 -5
- package/dist/space.test.d.ts.map +0 -1
- package/dist/space.test.js +0 -87
- package/dist/space.test.js.map +0 -1
- package/dist/spaces/Space.d.ts +0 -175
- package/dist/spaces/Space.d.ts.map +0 -1
- package/dist/spaces/Space.js +0 -84
- package/dist/spaces/Space.js.map +0 -1
- package/dist/spaces/SpaceService.d.ts +0 -291
- package/dist/spaces/SpaceService.d.ts.map +0 -1
- package/dist/spaces/SpaceService.js +0 -740
- package/dist/spaces/SpaceService.js.map +0 -1
- package/dist/spaces/index.d.ts +0 -11
- package/dist/spaces/index.d.ts.map +0 -1
- package/dist/spaces/index.js +0 -22
- package/dist/spaces/index.js.map +0 -1
- package/dist/spaces/spaces.schema.d.ts +0 -421
- package/dist/spaces/spaces.schema.d.ts.map +0 -1
- package/dist/spaces/spaces.schema.js +0 -342
- package/dist/spaces/spaces.schema.js.map +0 -1
- package/dist/spaces/spaces.schema.test.d.ts +0 -5
- package/dist/spaces/spaces.schema.test.d.ts.map +0 -1
- package/dist/spaces/spaces.schema.test.js +0 -471
- package/dist/spaces/spaces.schema.test.js.map +0 -1
- package/dist/storage.d.ts +0 -47
- package/dist/storage.d.ts.map +0 -1
- package/dist/storage.js +0 -14
- package/dist/storage.js.map +0 -1
- package/dist/storage.schema.d.ts +0 -291
- package/dist/storage.schema.d.ts.map +0 -1
- package/dist/storage.schema.js +0 -189
- package/dist/storage.schema.js.map +0 -1
- package/dist/storage.schema.test.d.ts +0 -5
- package/dist/storage.schema.test.d.ts.map +0 -1
- package/dist/storage.schema.test.js +0 -346
- package/dist/storage.schema.test.js.map +0 -1
- package/dist/userAuthorization.d.ts +0 -117
- package/dist/userAuthorization.d.ts.map +0 -1
- package/dist/userAuthorization.js +0 -3
- package/dist/userAuthorization.js.map +0 -1
- package/dist/userAuthorization.schema.d.ts +0 -260
- package/dist/userAuthorization.schema.d.ts.map +0 -1
- package/dist/userAuthorization.schema.js +0 -169
- package/dist/userAuthorization.schema.js.map +0 -1
- package/dist/userAuthorization.schema.test.d.ts +0 -5
- package/dist/userAuthorization.schema.test.d.ts.map +0 -1
- package/dist/userAuthorization.schema.test.js +0 -356
- package/dist/userAuthorization.schema.test.js.map +0 -1
- package/dist/version.d.ts +0 -32
- package/dist/version.d.ts.map +0 -1
- package/dist/version.js +0 -59
- package/dist/version.js.map +0 -1
- package/dist/wasm-validation.d.ts +0 -291
- package/dist/wasm-validation.d.ts.map +0 -1
- package/dist/wasm-validation.js +0 -221
- package/dist/wasm-validation.js.map +0 -1
- package/dist/wasm-validation.test.d.ts +0 -5
- package/dist/wasm-validation.test.d.ts.map +0 -1
- package/dist/wasm-validation.test.js +0 -233
- package/dist/wasm-validation.test.js.map +0 -1
- package/dist/wasm.d.ts +0 -66
- package/dist/wasm.d.ts.map +0 -1
- package/dist/wasm.js +0 -10
- package/dist/wasm.js.map +0 -1
package/dist/space.js
DELETED
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Shared space utilities for TinyCloud.
|
|
3
|
-
*
|
|
4
|
-
* These functions are platform-agnostic and can be used by both
|
|
5
|
-
* web-sdk and node-sdk for space hosting and session activation.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Fetch the peer ID from TinyCloud server for space hosting.
|
|
9
|
-
*
|
|
10
|
-
* The peer ID identifies the TinyCloud server instance that will host the space.
|
|
11
|
-
*
|
|
12
|
-
* @param host - TinyCloud server URL (e.g., "https://node.tinycloud.xyz")
|
|
13
|
-
* @param spaceId - The space ID to host
|
|
14
|
-
* @returns The peer ID string
|
|
15
|
-
* @throws Error if the request fails
|
|
16
|
-
*/
|
|
17
|
-
export async function fetchPeerId(host, spaceId) {
|
|
18
|
-
const res = await fetch(`${host}/peer/generate/${encodeURIComponent(spaceId)}`);
|
|
19
|
-
if (!res.ok) {
|
|
20
|
-
const error = await res.text().catch(() => res.statusText);
|
|
21
|
-
throw new Error(`Failed to get peer ID: ${res.status} - ${error}`);
|
|
22
|
-
}
|
|
23
|
-
return res.text();
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Submit a space hosting delegation to TinyCloud server.
|
|
27
|
-
*
|
|
28
|
-
* This registers a new space with the server, allowing the user
|
|
29
|
-
* to store data in it.
|
|
30
|
-
*
|
|
31
|
-
* @param host - TinyCloud server URL
|
|
32
|
-
* @param headers - Delegation headers (from siweToDelegationHeaders)
|
|
33
|
-
* @returns Result indicating success/failure
|
|
34
|
-
*/
|
|
35
|
-
export async function submitHostDelegation(host, headers) {
|
|
36
|
-
const res = await fetch(`${host}/delegate`, {
|
|
37
|
-
method: "POST",
|
|
38
|
-
headers,
|
|
39
|
-
});
|
|
40
|
-
return {
|
|
41
|
-
success: res.ok,
|
|
42
|
-
status: res.status,
|
|
43
|
-
error: res.ok ? undefined : await res.text().catch(() => res.statusText),
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Activate a session with TinyCloud server.
|
|
48
|
-
*
|
|
49
|
-
* This submits the session delegation to the server, enabling the session
|
|
50
|
-
* key to perform operations on behalf of the user.
|
|
51
|
-
*
|
|
52
|
-
* @param host - TinyCloud server URL
|
|
53
|
-
* @param delegationHeader - Session delegation header (from session.delegationHeader)
|
|
54
|
-
* @returns Result indicating success/failure (404 means space doesn't exist)
|
|
55
|
-
*/
|
|
56
|
-
export async function activateSessionWithHost(host, delegationHeader) {
|
|
57
|
-
const res = await fetch(`${host}/delegate`, {
|
|
58
|
-
method: "POST",
|
|
59
|
-
headers: delegationHeader,
|
|
60
|
-
});
|
|
61
|
-
if (res.ok) {
|
|
62
|
-
try {
|
|
63
|
-
const body = await res.json();
|
|
64
|
-
return {
|
|
65
|
-
success: true,
|
|
66
|
-
status: res.status,
|
|
67
|
-
activated: body.activated ?? [],
|
|
68
|
-
skipped: body.skipped ?? [],
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
catch {
|
|
72
|
-
// Fallback for older servers that return plain text CID
|
|
73
|
-
return {
|
|
74
|
-
success: true,
|
|
75
|
-
status: res.status,
|
|
76
|
-
activated: [],
|
|
77
|
-
skipped: [],
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
return {
|
|
82
|
-
success: false,
|
|
83
|
-
status: res.status,
|
|
84
|
-
error: await res.text().catch(() => res.statusText),
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
//# sourceMappingURL=space.js.map
|
package/dist/space.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"space.js","sourceRoot":"","sources":["../src/space.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAkBH;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAAY,EACZ,OAAe;IAEf,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,GAAG,IAAI,kBAAkB,kBAAkB,CAAC,OAAO,CAAC,EAAE,CACvD,CAAC;IAEF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,CAAC,MAAM,MAAM,KAAK,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAY,EACZ,OAA+B;IAE/B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,WAAW,EAAE;QAC1C,MAAM,EAAE,MAAM;QACd,OAAO;KACR,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,GAAG,CAAC,EAAE;QACf,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC;KACzE,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,IAAY,EACZ,gBAA2C;IAE3C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,WAAW,EAAE;QAC1C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,gBAAgB;KAC1B,CAAC,CAAC;IAEH,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;QACX,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAkD,CAAC;YAC9E,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;gBAC/B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;aAC5B,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,wDAAwD;YACxD,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,SAAS,EAAE,EAAE;gBACb,OAAO,EAAE,EAAE;aACZ,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,KAAK,EAAE,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC;KACpD,CAAC;AACJ,CAAC"}
|
package/dist/space.schema.d.ts
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Zod schemas for space hosting and session activation types.
|
|
3
|
-
*
|
|
4
|
-
* These schemas provide runtime validation for space hosting operations.
|
|
5
|
-
* Types are derived from schemas using z.infer<>.
|
|
6
|
-
*
|
|
7
|
-
* @packageDocumentation
|
|
8
|
-
*/
|
|
9
|
-
import { z } from "zod";
|
|
10
|
-
import type { Result, ServiceError } from "@tinycloud/sdk-services";
|
|
11
|
-
/**
|
|
12
|
-
* Validation error type for schema validation failures.
|
|
13
|
-
*/
|
|
14
|
-
export interface ValidationError extends ServiceError {
|
|
15
|
-
code: "VALIDATION_ERROR";
|
|
16
|
-
meta?: {
|
|
17
|
-
issues: z.ZodIssue[];
|
|
18
|
-
path?: string;
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Result of a space hosting or session activation attempt.
|
|
23
|
-
*
|
|
24
|
-
* This schema represents the response from space hosting and session
|
|
25
|
-
* activation operations with TinyCloud servers.
|
|
26
|
-
*/
|
|
27
|
-
export declare const SpaceHostResultSchema: z.ZodObject<{
|
|
28
|
-
/** Whether the operation succeeded (2xx status) */
|
|
29
|
-
success: z.ZodBoolean;
|
|
30
|
-
/** HTTP status code */
|
|
31
|
-
status: z.ZodNumber;
|
|
32
|
-
/** Error message if failed */
|
|
33
|
-
error: z.ZodOptional<z.ZodString>;
|
|
34
|
-
}, "strip", z.ZodTypeAny, {
|
|
35
|
-
status: number;
|
|
36
|
-
success: boolean;
|
|
37
|
-
error?: string | undefined;
|
|
38
|
-
}, {
|
|
39
|
-
status: number;
|
|
40
|
-
success: boolean;
|
|
41
|
-
error?: string | undefined;
|
|
42
|
-
}>;
|
|
43
|
-
export type SpaceHostResult = z.infer<typeof SpaceHostResultSchema>;
|
|
44
|
-
/**
|
|
45
|
-
* Validate a SpaceHostResult object against the schema.
|
|
46
|
-
*
|
|
47
|
-
* @param data - Unknown data to validate
|
|
48
|
-
* @returns Result with validated data or validation error
|
|
49
|
-
*
|
|
50
|
-
* @example
|
|
51
|
-
* ```typescript
|
|
52
|
-
* const result = validateSpaceHostResult(response);
|
|
53
|
-
* if (result.ok) {
|
|
54
|
-
* if (result.data.success) {
|
|
55
|
-
* console.log("Space hosted successfully");
|
|
56
|
-
* } else {
|
|
57
|
-
* console.error("Failed:", result.data.error);
|
|
58
|
-
* }
|
|
59
|
-
* } else {
|
|
60
|
-
* console.error("Validation failed:", result.error.message);
|
|
61
|
-
* }
|
|
62
|
-
* ```
|
|
63
|
-
*/
|
|
64
|
-
export declare function validateSpaceHostResult(data: unknown): Result<SpaceHostResult, ValidationError>;
|
|
65
|
-
//# sourceMappingURL=space.schema.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"space.schema.d.ts","sourceRoot":"","sources":["../src/space.schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAMpE;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACnD,IAAI,EAAE,kBAAkB,CAAC;IACzB,IAAI,CAAC,EAAE;QACL,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAMD;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB;IAChC,mDAAmD;;IAEnD,uBAAuB;;IAEvB,8BAA8B;;;;;;;;;;EAE9B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAMpE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,OAAO,GACZ,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC,CAc1C"}
|
package/dist/space.schema.js
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Zod schemas for space hosting and session activation types.
|
|
3
|
-
*
|
|
4
|
-
* These schemas provide runtime validation for space hosting operations.
|
|
5
|
-
* Types are derived from schemas using z.infer<>.
|
|
6
|
-
*
|
|
7
|
-
* @packageDocumentation
|
|
8
|
-
*/
|
|
9
|
-
import { z } from "zod";
|
|
10
|
-
// =============================================================================
|
|
11
|
-
// SpaceHostResult Schema
|
|
12
|
-
// =============================================================================
|
|
13
|
-
/**
|
|
14
|
-
* Result of a space hosting or session activation attempt.
|
|
15
|
-
*
|
|
16
|
-
* This schema represents the response from space hosting and session
|
|
17
|
-
* activation operations with TinyCloud servers.
|
|
18
|
-
*/
|
|
19
|
-
export const SpaceHostResultSchema = z.object({
|
|
20
|
-
/** Whether the operation succeeded (2xx status) */
|
|
21
|
-
success: z.boolean(),
|
|
22
|
-
/** HTTP status code */
|
|
23
|
-
status: z.number().int(),
|
|
24
|
-
/** Error message if failed */
|
|
25
|
-
error: z.string().optional(),
|
|
26
|
-
});
|
|
27
|
-
// =============================================================================
|
|
28
|
-
// Validation Helpers
|
|
29
|
-
// =============================================================================
|
|
30
|
-
/**
|
|
31
|
-
* Validate a SpaceHostResult object against the schema.
|
|
32
|
-
*
|
|
33
|
-
* @param data - Unknown data to validate
|
|
34
|
-
* @returns Result with validated data or validation error
|
|
35
|
-
*
|
|
36
|
-
* @example
|
|
37
|
-
* ```typescript
|
|
38
|
-
* const result = validateSpaceHostResult(response);
|
|
39
|
-
* if (result.ok) {
|
|
40
|
-
* if (result.data.success) {
|
|
41
|
-
* console.log("Space hosted successfully");
|
|
42
|
-
* } else {
|
|
43
|
-
* console.error("Failed:", result.data.error);
|
|
44
|
-
* }
|
|
45
|
-
* } else {
|
|
46
|
-
* console.error("Validation failed:", result.error.message);
|
|
47
|
-
* }
|
|
48
|
-
* ```
|
|
49
|
-
*/
|
|
50
|
-
export function validateSpaceHostResult(data) {
|
|
51
|
-
const result = SpaceHostResultSchema.safeParse(data);
|
|
52
|
-
if (!result.success) {
|
|
53
|
-
return {
|
|
54
|
-
ok: false,
|
|
55
|
-
error: {
|
|
56
|
-
code: "VALIDATION_ERROR",
|
|
57
|
-
message: result.error.message,
|
|
58
|
-
service: "space",
|
|
59
|
-
meta: { issues: result.error.issues },
|
|
60
|
-
},
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
return { ok: true, data: result.data };
|
|
64
|
-
}
|
|
65
|
-
//# sourceMappingURL=space.schema.js.map
|
package/dist/space.schema.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"space.schema.js","sourceRoot":"","sources":["../src/space.schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAkBxB,gFAAgF;AAChF,yBAAyB;AACzB,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,mDAAmD;IACnD,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,uBAAuB;IACvB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACxB,8BAA8B;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC7B,CAAC,CAAC;AAIH,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAa;IAEb,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACrD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE;gBACL,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO;gBAC7B,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;aACtC;SACF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AACzC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"space.schema.test.d.ts","sourceRoot":"","sources":["../src/space.schema.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tests for space.schema.ts Zod schemas.
|
|
3
|
-
*/
|
|
4
|
-
import { describe, expect, it } from "bun:test";
|
|
5
|
-
import { SpaceHostResultSchema, validateSpaceHostResult, } from "./space.schema";
|
|
6
|
-
// =============================================================================
|
|
7
|
-
// Test Fixtures
|
|
8
|
-
// =============================================================================
|
|
9
|
-
const validSuccessResult = {
|
|
10
|
-
success: true,
|
|
11
|
-
status: 200,
|
|
12
|
-
};
|
|
13
|
-
const validFailureResult = {
|
|
14
|
-
success: false,
|
|
15
|
-
status: 404,
|
|
16
|
-
error: "Space not found",
|
|
17
|
-
};
|
|
18
|
-
// =============================================================================
|
|
19
|
-
// SpaceHostResultSchema Tests
|
|
20
|
-
// =============================================================================
|
|
21
|
-
describe("SpaceHostResultSchema", () => {
|
|
22
|
-
describe("valid inputs", () => {
|
|
23
|
-
it("accepts successful result without error", () => {
|
|
24
|
-
const result = SpaceHostResultSchema.safeParse(validSuccessResult);
|
|
25
|
-
expect(result.success).toBe(true);
|
|
26
|
-
if (result.success) {
|
|
27
|
-
expect(result.data.success).toBe(true);
|
|
28
|
-
expect(result.data.status).toBe(200);
|
|
29
|
-
expect(result.data.error).toBeUndefined();
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
it("accepts failure result with error message", () => {
|
|
33
|
-
const result = SpaceHostResultSchema.safeParse(validFailureResult);
|
|
34
|
-
expect(result.success).toBe(true);
|
|
35
|
-
if (result.success) {
|
|
36
|
-
expect(result.data.success).toBe(false);
|
|
37
|
-
expect(result.data.status).toBe(404);
|
|
38
|
-
expect(result.data.error).toBe("Space not found");
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
it("accepts result with empty error string", () => {
|
|
42
|
-
const data = {
|
|
43
|
-
success: false,
|
|
44
|
-
status: 500,
|
|
45
|
-
error: "",
|
|
46
|
-
};
|
|
47
|
-
const result = SpaceHostResultSchema.safeParse(data);
|
|
48
|
-
expect(result.success).toBe(true);
|
|
49
|
-
});
|
|
50
|
-
it("accepts various HTTP status codes", () => {
|
|
51
|
-
const statusCodes = [200, 201, 204, 400, 401, 403, 404, 409, 500, 502, 503];
|
|
52
|
-
for (const status of statusCodes) {
|
|
53
|
-
const data = { success: status < 400, status };
|
|
54
|
-
const result = SpaceHostResultSchema.safeParse(data);
|
|
55
|
-
expect(result.success).toBe(true);
|
|
56
|
-
}
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
describe("invalid inputs", () => {
|
|
60
|
-
it("rejects missing success field", () => {
|
|
61
|
-
const data = { status: 200 };
|
|
62
|
-
const result = SpaceHostResultSchema.safeParse(data);
|
|
63
|
-
expect(result.success).toBe(false);
|
|
64
|
-
});
|
|
65
|
-
it("rejects missing status field", () => {
|
|
66
|
-
const data = { success: true };
|
|
67
|
-
const result = SpaceHostResultSchema.safeParse(data);
|
|
68
|
-
expect(result.success).toBe(false);
|
|
69
|
-
});
|
|
70
|
-
it("rejects non-boolean success", () => {
|
|
71
|
-
const data = { success: "true", status: 200 };
|
|
72
|
-
const result = SpaceHostResultSchema.safeParse(data);
|
|
73
|
-
expect(result.success).toBe(false);
|
|
74
|
-
});
|
|
75
|
-
it("rejects non-number status", () => {
|
|
76
|
-
const data = { success: true, status: "200" };
|
|
77
|
-
const result = SpaceHostResultSchema.safeParse(data);
|
|
78
|
-
expect(result.success).toBe(false);
|
|
79
|
-
});
|
|
80
|
-
it("rejects floating point status", () => {
|
|
81
|
-
const data = { success: true, status: 200.5 };
|
|
82
|
-
const result = SpaceHostResultSchema.safeParse(data);
|
|
83
|
-
expect(result.success).toBe(false);
|
|
84
|
-
});
|
|
85
|
-
it("rejects non-string error", () => {
|
|
86
|
-
const data = { success: false, status: 500, error: 123 };
|
|
87
|
-
const result = SpaceHostResultSchema.safeParse(data);
|
|
88
|
-
expect(result.success).toBe(false);
|
|
89
|
-
});
|
|
90
|
-
it("rejects null", () => {
|
|
91
|
-
const result = SpaceHostResultSchema.safeParse(null);
|
|
92
|
-
expect(result.success).toBe(false);
|
|
93
|
-
});
|
|
94
|
-
it("rejects undefined", () => {
|
|
95
|
-
const result = SpaceHostResultSchema.safeParse(undefined);
|
|
96
|
-
expect(result.success).toBe(false);
|
|
97
|
-
});
|
|
98
|
-
it("rejects empty object", () => {
|
|
99
|
-
const result = SpaceHostResultSchema.safeParse({});
|
|
100
|
-
expect(result.success).toBe(false);
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
});
|
|
104
|
-
// =============================================================================
|
|
105
|
-
// Validation Function Tests
|
|
106
|
-
// =============================================================================
|
|
107
|
-
describe("validateSpaceHostResult", () => {
|
|
108
|
-
it("returns ok result for valid success data", () => {
|
|
109
|
-
const result = validateSpaceHostResult(validSuccessResult);
|
|
110
|
-
expect(result.ok).toBe(true);
|
|
111
|
-
if (result.ok) {
|
|
112
|
-
expect(result.data.success).toBe(true);
|
|
113
|
-
expect(result.data.status).toBe(200);
|
|
114
|
-
}
|
|
115
|
-
});
|
|
116
|
-
it("returns ok result for valid failure data", () => {
|
|
117
|
-
const result = validateSpaceHostResult(validFailureResult);
|
|
118
|
-
expect(result.ok).toBe(true);
|
|
119
|
-
if (result.ok) {
|
|
120
|
-
expect(result.data.success).toBe(false);
|
|
121
|
-
expect(result.data.error).toBe("Space not found");
|
|
122
|
-
}
|
|
123
|
-
});
|
|
124
|
-
it("returns error result for invalid data", () => {
|
|
125
|
-
const result = validateSpaceHostResult({});
|
|
126
|
-
expect(result.ok).toBe(false);
|
|
127
|
-
if (!result.ok) {
|
|
128
|
-
expect(result.error.code).toBe("VALIDATION_ERROR");
|
|
129
|
-
expect(result.error.service).toBe("space");
|
|
130
|
-
expect(result.error.meta?.issues).toBeDefined();
|
|
131
|
-
}
|
|
132
|
-
});
|
|
133
|
-
it("returns error with validation issues for missing success", () => {
|
|
134
|
-
const result = validateSpaceHostResult({ status: 200 });
|
|
135
|
-
expect(result.ok).toBe(false);
|
|
136
|
-
if (!result.ok) {
|
|
137
|
-
expect(result.error.meta?.issues).toContainEqual(expect.objectContaining({ path: ["success"] }));
|
|
138
|
-
}
|
|
139
|
-
});
|
|
140
|
-
it("returns error with validation issues for invalid status type", () => {
|
|
141
|
-
const result = validateSpaceHostResult({ success: true, status: "200" });
|
|
142
|
-
expect(result.ok).toBe(false);
|
|
143
|
-
if (!result.ok) {
|
|
144
|
-
expect(result.error.meta?.issues).toContainEqual(expect.objectContaining({ path: ["status"] }));
|
|
145
|
-
}
|
|
146
|
-
});
|
|
147
|
-
});
|
|
148
|
-
//# sourceMappingURL=space.schema.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"space.schema.test.js","sourceRoot":"","sources":["../src/space.schema.test.ts"],"names":[],"mappings":"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"}
|
package/dist/space.test.d.ts
DELETED
package/dist/space.test.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"space.test.d.ts","sourceRoot":"","sources":["../src/space.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
package/dist/space.test.js
DELETED
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tests for activateSessionWithHost in space.ts.
|
|
3
|
-
*/
|
|
4
|
-
import { describe, expect, it, mock, beforeEach } from "bun:test";
|
|
5
|
-
import { activateSessionWithHost } from "./space";
|
|
6
|
-
// =============================================================================
|
|
7
|
-
// Test Helpers
|
|
8
|
-
// =============================================================================
|
|
9
|
-
const TEST_HOST = "https://node.tinycloud.xyz";
|
|
10
|
-
const TEST_DELEGATION_HEADER = { Authorization: "Bearer ucan-delegation-token" };
|
|
11
|
-
function mockFetchResponse(body, init) {
|
|
12
|
-
return new Response(typeof body === "string" ? body : JSON.stringify(body), init);
|
|
13
|
-
}
|
|
14
|
-
// =============================================================================
|
|
15
|
-
// activateSessionWithHost Tests
|
|
16
|
-
// =============================================================================
|
|
17
|
-
describe("activateSessionWithHost", () => {
|
|
18
|
-
beforeEach(() => {
|
|
19
|
-
// Reset fetch mock before each test
|
|
20
|
-
globalThis.fetch = mock();
|
|
21
|
-
});
|
|
22
|
-
it("returns success with activated/skipped arrays on JSON response", async () => {
|
|
23
|
-
const responseBody = {
|
|
24
|
-
activated: ["space-1", "space-2"],
|
|
25
|
-
skipped: ["space-3"],
|
|
26
|
-
};
|
|
27
|
-
globalThis.fetch.mockResolvedValueOnce(mockFetchResponse(responseBody, { status: 200 }));
|
|
28
|
-
const result = await activateSessionWithHost(TEST_HOST, TEST_DELEGATION_HEADER);
|
|
29
|
-
expect(result.success).toBe(true);
|
|
30
|
-
expect(result.status).toBe(200);
|
|
31
|
-
expect(result.activated).toEqual(["space-1", "space-2"]);
|
|
32
|
-
expect(result.skipped).toEqual(["space-3"]);
|
|
33
|
-
});
|
|
34
|
-
it("falls back gracefully for old servers returning non-JSON body", async () => {
|
|
35
|
-
globalThis.fetch.mockResolvedValueOnce(mockFetchResponse("bafy2bzacea...", { status: 200 }));
|
|
36
|
-
const result = await activateSessionWithHost(TEST_HOST, TEST_DELEGATION_HEADER);
|
|
37
|
-
expect(result.success).toBe(true);
|
|
38
|
-
expect(result.status).toBe(200);
|
|
39
|
-
expect(result.activated).toEqual([]);
|
|
40
|
-
expect(result.skipped).toEqual([]);
|
|
41
|
-
});
|
|
42
|
-
it("returns failure on 404 response", async () => {
|
|
43
|
-
globalThis.fetch.mockResolvedValueOnce(mockFetchResponse("Space not found", { status: 404 }));
|
|
44
|
-
const result = await activateSessionWithHost(TEST_HOST, TEST_DELEGATION_HEADER);
|
|
45
|
-
expect(result.success).toBe(false);
|
|
46
|
-
expect(result.status).toBe(404);
|
|
47
|
-
expect(result.error).toBe("Space not found");
|
|
48
|
-
});
|
|
49
|
-
it("returns failure on 500 response", async () => {
|
|
50
|
-
globalThis.fetch.mockResolvedValueOnce(mockFetchResponse("Internal server error", { status: 500 }));
|
|
51
|
-
const result = await activateSessionWithHost(TEST_HOST, TEST_DELEGATION_HEADER);
|
|
52
|
-
expect(result.success).toBe(false);
|
|
53
|
-
expect(result.status).toBe(500);
|
|
54
|
-
expect(result.error).toBe("Internal server error");
|
|
55
|
-
});
|
|
56
|
-
it("falls back to statusText when body read fails on error response", async () => {
|
|
57
|
-
const response = new Response(null, { status: 502, statusText: "Bad Gateway" });
|
|
58
|
-
// Override text() to reject — use defineProperty since text is read-only
|
|
59
|
-
Object.defineProperty(response, "text", {
|
|
60
|
-
value: () => Promise.reject(new Error("body stream already read")),
|
|
61
|
-
});
|
|
62
|
-
globalThis.fetch.mockResolvedValueOnce(response);
|
|
63
|
-
const result = await activateSessionWithHost(TEST_HOST, TEST_DELEGATION_HEADER);
|
|
64
|
-
expect(result.success).toBe(false);
|
|
65
|
-
expect(result.status).toBe(502);
|
|
66
|
-
expect(result.error).toBe("Bad Gateway");
|
|
67
|
-
});
|
|
68
|
-
it("sends POST to {host}/delegate with delegation header", async () => {
|
|
69
|
-
globalThis.fetch.mockResolvedValueOnce(mockFetchResponse({ activated: [], skipped: [] }, { status: 200 }));
|
|
70
|
-
await activateSessionWithHost(TEST_HOST, TEST_DELEGATION_HEADER);
|
|
71
|
-
expect(globalThis.fetch).toHaveBeenCalledTimes(1);
|
|
72
|
-
expect(globalThis.fetch).toHaveBeenCalledWith(`${TEST_HOST}/delegate`, {
|
|
73
|
-
method: "POST",
|
|
74
|
-
headers: TEST_DELEGATION_HEADER,
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
it("composes correct URL with localhost host", async () => {
|
|
78
|
-
const localhostHost = "http://localhost:8000";
|
|
79
|
-
globalThis.fetch.mockResolvedValueOnce(mockFetchResponse({ activated: [], skipped: [] }, { status: 200 }));
|
|
80
|
-
await activateSessionWithHost(localhostHost, TEST_DELEGATION_HEADER);
|
|
81
|
-
expect(globalThis.fetch).toHaveBeenCalledWith("http://localhost:8000/delegate", {
|
|
82
|
-
method: "POST",
|
|
83
|
-
headers: TEST_DELEGATION_HEADER,
|
|
84
|
-
});
|
|
85
|
-
});
|
|
86
|
-
});
|
|
87
|
-
//# sourceMappingURL=space.test.js.map
|
package/dist/space.test.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"space.test.js","sourceRoot":"","sources":["../src/space.test.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAElD,gFAAgF;AAChF,eAAe;AACf,gFAAgF;AAEhF,MAAM,SAAS,GAAG,4BAA4B,CAAC;AAC/C,MAAM,sBAAsB,GAAG,EAAE,aAAa,EAAE,8BAA8B,EAAE,CAAC;AAEjF,SAAS,iBAAiB,CAAC,IAAS,EAAE,IAAmB;IACvD,OAAO,IAAI,QAAQ,CACjB,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EACtD,IAAI,CACL,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,gCAAgC;AAChC,gFAAgF;AAEhF,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,UAAU,CAAC,GAAG,EAAE;QACd,oCAAoC;QACpC,UAAU,CAAC,KAAK,GAAG,IAAI,EAAS,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,YAAY,GAAG;YACnB,SAAS,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;YACjC,OAAO,EAAE,CAAC,SAAS,CAAC;SACrB,CAAC;QACD,UAAU,CAAC,KAAa,CAAC,qBAAqB,CAC7C,iBAAiB,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CACjD,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;QAEhF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QACzD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;QAC5E,UAAU,CAAC,KAAa,CAAC,qBAAqB,CAC7C,iBAAiB,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CACrD,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;QAEhF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC9C,UAAU,CAAC,KAAa,CAAC,qBAAqB,CAC7C,iBAAiB,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CACtD,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;QAEhF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC9C,UAAU,CAAC,KAAa,CAAC,qBAAqB,CAC7C,iBAAiB,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAC5D,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;QAEhF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;QAC/E,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC,CAAC;QAChF,yEAAyE;QACzE,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE;YACtC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;SACnE,CAAC,CAAC;QACF,UAAU,CAAC,KAAa,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAE1D,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;QAEhF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACnE,UAAU,CAAC,KAAa,CAAC,qBAAqB,CAC7C,iBAAiB,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CACnE,CAAC;QAEF,MAAM,uBAAuB,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAAC;QAEjE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAC3C,GAAG,SAAS,WAAW,EACvB;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,sBAAsB;SAChC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,MAAM,aAAa,GAAG,uBAAuB,CAAC;QAC7C,UAAU,CAAC,KAAa,CAAC,qBAAqB,CAC7C,iBAAiB,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CACnE,CAAC;QAEF,MAAM,uBAAuB,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAC;QAErE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,oBAAoB,CAC3C,gCAAgC,EAChC;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,sBAAsB;SAChC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|