@tinycloud/sdk-core 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +320 -0
- package/dist/TinyCloud.d.ts +206 -0
- package/dist/TinyCloud.d.ts.map +1 -0
- package/dist/TinyCloud.js +244 -0
- package/dist/TinyCloud.js.map +1 -0
- package/dist/TinyCloud.schema.d.ts +173 -0
- package/dist/TinyCloud.schema.d.ts.map +1 -0
- package/dist/TinyCloud.schema.js +136 -0
- package/dist/TinyCloud.schema.js.map +1 -0
- package/dist/TinyCloud.schema.test.d.ts +5 -0
- package/dist/TinyCloud.schema.test.d.ts.map +1 -0
- package/dist/TinyCloud.schema.test.js +286 -0
- package/dist/TinyCloud.schema.test.js.map +1 -0
- package/dist/authorization/CapabilityKeyRegistry.d.ts +317 -0
- package/dist/authorization/CapabilityKeyRegistry.d.ts.map +1 -0
- package/dist/authorization/CapabilityKeyRegistry.js +509 -0
- package/dist/authorization/CapabilityKeyRegistry.js.map +1 -0
- package/dist/authorization/authorization.schema.d.ts +233 -0
- package/dist/authorization/authorization.schema.d.ts.map +1 -0
- package/dist/authorization/authorization.schema.js +220 -0
- package/dist/authorization/authorization.schema.js.map +1 -0
- package/dist/authorization/authorization.schema.test.d.ts +5 -0
- package/dist/authorization/authorization.schema.test.d.ts.map +1 -0
- package/dist/authorization/authorization.schema.test.js +618 -0
- package/dist/authorization/authorization.schema.test.js.map +1 -0
- package/dist/authorization/index.d.ts +38 -0
- package/dist/authorization/index.d.ts.map +1 -0
- package/dist/authorization/index.js +52 -0
- package/dist/authorization/index.js.map +1 -0
- package/dist/authorization/spaceCreation.d.ts +96 -0
- package/dist/authorization/spaceCreation.d.ts.map +1 -0
- package/dist/authorization/spaceCreation.js +35 -0
- package/dist/authorization/spaceCreation.js.map +1 -0
- package/dist/authorization/spaceCreation.schema.d.ts +67 -0
- package/dist/authorization/spaceCreation.schema.d.ts.map +1 -0
- package/dist/authorization/spaceCreation.schema.js +95 -0
- package/dist/authorization/spaceCreation.schema.js.map +1 -0
- package/dist/authorization/spaceCreation.schema.test.d.ts +5 -0
- package/dist/authorization/spaceCreation.schema.test.d.ts.map +1 -0
- package/dist/authorization/spaceCreation.schema.test.js +168 -0
- package/dist/authorization/spaceCreation.schema.test.js.map +1 -0
- package/dist/authorization/strategies.d.ts +134 -0
- package/dist/authorization/strategies.d.ts.map +1 -0
- package/dist/authorization/strategies.js +15 -0
- package/dist/authorization/strategies.js.map +1 -0
- package/dist/authorization/strategies.schema.d.ts +185 -0
- package/dist/authorization/strategies.schema.d.ts.map +1 -0
- package/dist/authorization/strategies.schema.js +147 -0
- package/dist/authorization/strategies.schema.js.map +1 -0
- package/dist/authorization/strategies.schema.test.d.ts +5 -0
- package/dist/authorization/strategies.schema.test.d.ts.map +1 -0
- package/dist/authorization/strategies.schema.test.js +253 -0
- package/dist/authorization/strategies.schema.test.js.map +1 -0
- package/dist/delegations/DelegationManager.d.ts +164 -0
- package/dist/delegations/DelegationManager.d.ts.map +1 -0
- package/dist/delegations/DelegationManager.js +428 -0
- package/dist/delegations/DelegationManager.js.map +1 -0
- package/dist/delegations/SharingService.d.ts +279 -0
- package/dist/delegations/SharingService.d.ts.map +1 -0
- package/dist/delegations/SharingService.js +558 -0
- package/dist/delegations/SharingService.js.map +1 -0
- package/dist/delegations/SharingService.schema.d.ts +401 -0
- package/dist/delegations/SharingService.schema.d.ts.map +1 -0
- package/dist/delegations/SharingService.schema.js +211 -0
- package/dist/delegations/SharingService.schema.js.map +1 -0
- package/dist/delegations/index.d.ts +38 -0
- package/dist/delegations/index.d.ts.map +1 -0
- package/dist/delegations/index.js +42 -0
- package/dist/delegations/index.js.map +1 -0
- package/dist/delegations/types.d.ts +13 -0
- package/dist/delegations/types.d.ts.map +1 -0
- package/dist/delegations/types.js +42 -0
- package/dist/delegations/types.js.map +1 -0
- package/dist/delegations/types.schema.d.ts +1641 -0
- package/dist/delegations/types.schema.d.ts.map +1 -0
- package/dist/delegations/types.schema.js +535 -0
- package/dist/delegations/types.schema.js.map +1 -0
- package/dist/delegations/types.schema.test.d.ts +5 -0
- package/dist/delegations/types.schema.test.d.ts.map +1 -0
- package/dist/delegations/types.schema.test.js +627 -0
- package/dist/delegations/types.schema.test.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +52 -0
- package/dist/index.js.map +1 -0
- package/dist/json-schema.d.ts +327 -0
- package/dist/json-schema.d.ts.map +1 -0
- package/dist/json-schema.js +703 -0
- package/dist/json-schema.js.map +1 -0
- package/dist/json-schema.test.d.ts +7 -0
- package/dist/json-schema.test.d.ts.map +1 -0
- package/dist/json-schema.test.js +365 -0
- package/dist/json-schema.test.js.map +1 -0
- package/dist/signer.d.ts +28 -0
- package/dist/signer.d.ts.map +1 -0
- package/dist/signer.js +2 -0
- package/dist/signer.js.map +1 -0
- package/dist/space.d.ts +53 -0
- package/dist/space.d.ts.map +1 -0
- package/dist/space.js +67 -0
- package/dist/space.js.map +1 -0
- package/dist/space.schema.d.ts +65 -0
- package/dist/space.schema.d.ts.map +1 -0
- package/dist/space.schema.js +65 -0
- package/dist/space.schema.js.map +1 -0
- package/dist/space.schema.test.d.ts +5 -0
- package/dist/space.schema.test.d.ts.map +1 -0
- package/dist/space.schema.test.js +148 -0
- package/dist/space.schema.test.js.map +1 -0
- package/dist/spaces/Space.d.ts +175 -0
- package/dist/spaces/Space.d.ts.map +1 -0
- package/dist/spaces/Space.js +84 -0
- package/dist/spaces/Space.js.map +1 -0
- package/dist/spaces/SpaceService.d.ts +271 -0
- package/dist/spaces/SpaceService.d.ts.map +1 -0
- package/dist/spaces/SpaceService.js +715 -0
- package/dist/spaces/SpaceService.js.map +1 -0
- package/dist/spaces/index.d.ts +11 -0
- package/dist/spaces/index.d.ts.map +1 -0
- package/dist/spaces/index.js +20 -0
- package/dist/spaces/index.js.map +1 -0
- package/dist/spaces/spaces.schema.d.ts +421 -0
- package/dist/spaces/spaces.schema.d.ts.map +1 -0
- package/dist/spaces/spaces.schema.js +342 -0
- package/dist/spaces/spaces.schema.js.map +1 -0
- package/dist/spaces/spaces.schema.test.d.ts +5 -0
- package/dist/spaces/spaces.schema.test.d.ts.map +1 -0
- package/dist/spaces/spaces.schema.test.js +471 -0
- package/dist/spaces/spaces.schema.test.js.map +1 -0
- package/dist/storage.d.ts +47 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +14 -0
- package/dist/storage.js.map +1 -0
- package/dist/storage.schema.d.ts +277 -0
- package/dist/storage.schema.d.ts.map +1 -0
- package/dist/storage.schema.js +185 -0
- package/dist/storage.schema.js.map +1 -0
- package/dist/storage.schema.test.d.ts +5 -0
- package/dist/storage.schema.test.d.ts.map +1 -0
- package/dist/storage.schema.test.js +346 -0
- package/dist/storage.schema.test.js.map +1 -0
- package/dist/userAuthorization.d.ts +99 -0
- package/dist/userAuthorization.d.ts.map +1 -0
- package/dist/userAuthorization.js +3 -0
- package/dist/userAuthorization.js.map +1 -0
- package/dist/userAuthorization.schema.d.ts +259 -0
- package/dist/userAuthorization.schema.d.ts.map +1 -0
- package/dist/userAuthorization.schema.js +175 -0
- package/dist/userAuthorization.schema.js.map +1 -0
- package/dist/userAuthorization.schema.test.d.ts +5 -0
- package/dist/userAuthorization.schema.test.d.ts.map +1 -0
- package/dist/userAuthorization.schema.test.js +356 -0
- package/dist/userAuthorization.schema.test.js.map +1 -0
- package/dist/version.d.ts +30 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +54 -0
- package/dist/version.js.map +1 -0
- package/dist/wasm-validation.d.ts +287 -0
- package/dist/wasm-validation.d.ts.map +1 -0
- package/dist/wasm-validation.js +219 -0
- package/dist/wasm-validation.js.map +1 -0
- package/dist/wasm-validation.test.d.ts +5 -0
- package/dist/wasm-validation.test.d.ts.map +1 -0
- package/dist/wasm-validation.test.js +233 -0
- package/dist/wasm-validation.test.js.map +1 -0
- package/package.json +40 -0
|
@@ -0,0 +1,65 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"space.schema.test.d.ts","sourceRoot":"","sources":["../src/space.schema.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,148 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"space.schema.test.js","sourceRoot":"","sources":["../src/space.schema.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Space - Represents a scoped access point to a TinyCloud space.
|
|
3
|
+
*
|
|
4
|
+
* The Space object provides scoped access to services within a specific space,
|
|
5
|
+
* whether owned by the user or delegated from another user.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
import type { IKVService, Result, ServiceError } from "@tinycloud/sdk-services";
|
|
10
|
+
import type { SpaceInfo } from "../delegations/types";
|
|
11
|
+
/**
|
|
12
|
+
* Interface for space-scoped delegation operations.
|
|
13
|
+
*
|
|
14
|
+
* Provides delegation management scoped to a specific space.
|
|
15
|
+
*/
|
|
16
|
+
export interface ISpaceScopedDelegations {
|
|
17
|
+
/**
|
|
18
|
+
* List delegations created by the user in this space (outgoing).
|
|
19
|
+
*/
|
|
20
|
+
list(): Promise<Result<import("../delegations/types").Delegation[], ServiceError>>;
|
|
21
|
+
/**
|
|
22
|
+
* List delegations received by the user for this space (incoming).
|
|
23
|
+
*/
|
|
24
|
+
listReceived(): Promise<Result<import("../delegations/types").Delegation[], ServiceError>>;
|
|
25
|
+
/**
|
|
26
|
+
* Create a delegation within this space.
|
|
27
|
+
*/
|
|
28
|
+
create(params: Omit<import("../delegations/types").CreateDelegationParams, "spaceId">): Promise<Result<import("../delegations/types").Delegation, ServiceError>>;
|
|
29
|
+
/**
|
|
30
|
+
* Revoke a delegation within this space.
|
|
31
|
+
*/
|
|
32
|
+
revoke(cid: string): Promise<Result<void, ServiceError>>;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Interface for space-scoped sharing operations.
|
|
36
|
+
*
|
|
37
|
+
* Provides sharing link management scoped to a specific space.
|
|
38
|
+
*/
|
|
39
|
+
export interface ISpaceScopedSharing {
|
|
40
|
+
/**
|
|
41
|
+
* Generate a sharing link for a resource in this space.
|
|
42
|
+
*/
|
|
43
|
+
generate(params: Omit<import("../delegations/types").GenerateShareParams, "spaceId">): Promise<Result<import("../delegations/types").ShareLink, ServiceError>>;
|
|
44
|
+
/**
|
|
45
|
+
* List active sharing links in this space.
|
|
46
|
+
*/
|
|
47
|
+
list(): Promise<Result<import("../delegations/types").ShareLink[], ServiceError>>;
|
|
48
|
+
/**
|
|
49
|
+
* Revoke a sharing link.
|
|
50
|
+
*/
|
|
51
|
+
revoke(token: string): Promise<Result<void, ServiceError>>;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Interface for a Space object.
|
|
55
|
+
*
|
|
56
|
+
* Provides scoped access to services within a specific space.
|
|
57
|
+
*/
|
|
58
|
+
export interface ISpace {
|
|
59
|
+
/**
|
|
60
|
+
* The space identifier.
|
|
61
|
+
*/
|
|
62
|
+
readonly id: string;
|
|
63
|
+
/**
|
|
64
|
+
* The short name of the space.
|
|
65
|
+
*/
|
|
66
|
+
readonly name: string;
|
|
67
|
+
/**
|
|
68
|
+
* KV operations scoped to this space.
|
|
69
|
+
*/
|
|
70
|
+
readonly kv: IKVService;
|
|
71
|
+
/**
|
|
72
|
+
* Delegation operations scoped to this space.
|
|
73
|
+
*/
|
|
74
|
+
readonly delegations: ISpaceScopedDelegations;
|
|
75
|
+
/**
|
|
76
|
+
* Sharing operations scoped to this space.
|
|
77
|
+
*/
|
|
78
|
+
readonly sharing: ISpaceScopedSharing;
|
|
79
|
+
/**
|
|
80
|
+
* Get space metadata.
|
|
81
|
+
*/
|
|
82
|
+
info(): Promise<Result<SpaceInfo, ServiceError>>;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Configuration for creating a Space object.
|
|
86
|
+
*/
|
|
87
|
+
export interface SpaceConfig {
|
|
88
|
+
/**
|
|
89
|
+
* The space identifier (full URI).
|
|
90
|
+
*/
|
|
91
|
+
id: string;
|
|
92
|
+
/**
|
|
93
|
+
* The short name of the space.
|
|
94
|
+
*/
|
|
95
|
+
name: string;
|
|
96
|
+
/**
|
|
97
|
+
* Factory function to create a space-scoped KV service.
|
|
98
|
+
*/
|
|
99
|
+
createKV: (spaceId: string) => IKVService;
|
|
100
|
+
/**
|
|
101
|
+
* Factory function to create space-scoped delegations.
|
|
102
|
+
*/
|
|
103
|
+
createDelegations: (spaceId: string) => ISpaceScopedDelegations;
|
|
104
|
+
/**
|
|
105
|
+
* Factory function to create space-scoped sharing.
|
|
106
|
+
*/
|
|
107
|
+
createSharing: (spaceId: string) => ISpaceScopedSharing;
|
|
108
|
+
/**
|
|
109
|
+
* Function to get space info.
|
|
110
|
+
*/
|
|
111
|
+
getInfo: (spaceId: string) => Promise<Result<SpaceInfo, ServiceError>>;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Space - Provides scoped access to services within a specific space.
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* ```typescript
|
|
118
|
+
* const space = sdk.space('default');
|
|
119
|
+
*
|
|
120
|
+
* // KV operations scoped to this space
|
|
121
|
+
* await space.kv.put('key', 'value');
|
|
122
|
+
* const result = await space.kv.get('key');
|
|
123
|
+
*
|
|
124
|
+
* // Delegation operations scoped to this space
|
|
125
|
+
* await space.delegations.create({
|
|
126
|
+
* delegateDID: 'did:pkh:eip155:1:0x...',
|
|
127
|
+
* path: '/shared/',
|
|
128
|
+
* actions: ['tinycloud.kv/get']
|
|
129
|
+
* });
|
|
130
|
+
*
|
|
131
|
+
* // Get space metadata
|
|
132
|
+
* const info = await space.info();
|
|
133
|
+
* ```
|
|
134
|
+
*/
|
|
135
|
+
export declare class Space implements ISpace {
|
|
136
|
+
private readonly _id;
|
|
137
|
+
private readonly _name;
|
|
138
|
+
private readonly _kv;
|
|
139
|
+
private readonly _delegations;
|
|
140
|
+
private readonly _sharing;
|
|
141
|
+
private readonly _getInfo;
|
|
142
|
+
/**
|
|
143
|
+
* Create a new Space instance.
|
|
144
|
+
*
|
|
145
|
+
* @param config - Space configuration
|
|
146
|
+
*/
|
|
147
|
+
constructor(config: SpaceConfig);
|
|
148
|
+
/**
|
|
149
|
+
* The space identifier (full URI).
|
|
150
|
+
*/
|
|
151
|
+
get id(): string;
|
|
152
|
+
/**
|
|
153
|
+
* The short name of the space.
|
|
154
|
+
*/
|
|
155
|
+
get name(): string;
|
|
156
|
+
/**
|
|
157
|
+
* KV operations scoped to this space.
|
|
158
|
+
*/
|
|
159
|
+
get kv(): IKVService;
|
|
160
|
+
/**
|
|
161
|
+
* Delegation operations scoped to this space.
|
|
162
|
+
*/
|
|
163
|
+
get delegations(): ISpaceScopedDelegations;
|
|
164
|
+
/**
|
|
165
|
+
* Sharing operations scoped to this space.
|
|
166
|
+
*/
|
|
167
|
+
get sharing(): ISpaceScopedSharing;
|
|
168
|
+
/**
|
|
169
|
+
* Get space metadata.
|
|
170
|
+
*
|
|
171
|
+
* @returns Result containing space information
|
|
172
|
+
*/
|
|
173
|
+
info(): Promise<Result<SpaceInfo, ServiceError>>;
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=Space.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Space.d.ts","sourceRoot":"","sources":["../../src/spaces/Space.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Space - Represents a scoped access point to a TinyCloud space.
|
|
3
|
+
*
|
|
4
|
+
* The Space object provides scoped access to services within a specific space,
|
|
5
|
+
* whether owned by the user or delegated from another user.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Space - Provides scoped access to services within a specific space.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const space = sdk.space('default');
|
|
15
|
+
*
|
|
16
|
+
* // KV operations scoped to this space
|
|
17
|
+
* await space.kv.put('key', 'value');
|
|
18
|
+
* const result = await space.kv.get('key');
|
|
19
|
+
*
|
|
20
|
+
* // Delegation operations scoped to this space
|
|
21
|
+
* await space.delegations.create({
|
|
22
|
+
* delegateDID: 'did:pkh:eip155:1:0x...',
|
|
23
|
+
* path: '/shared/',
|
|
24
|
+
* actions: ['tinycloud.kv/get']
|
|
25
|
+
* });
|
|
26
|
+
*
|
|
27
|
+
* // Get space metadata
|
|
28
|
+
* const info = await space.info();
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export class Space {
|
|
32
|
+
/**
|
|
33
|
+
* Create a new Space instance.
|
|
34
|
+
*
|
|
35
|
+
* @param config - Space configuration
|
|
36
|
+
*/
|
|
37
|
+
constructor(config) {
|
|
38
|
+
this._id = config.id;
|
|
39
|
+
this._name = config.name;
|
|
40
|
+
this._kv = config.createKV(config.id);
|
|
41
|
+
this._delegations = config.createDelegations(config.id);
|
|
42
|
+
this._sharing = config.createSharing(config.id);
|
|
43
|
+
this._getInfo = config.getInfo;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* The space identifier (full URI).
|
|
47
|
+
*/
|
|
48
|
+
get id() {
|
|
49
|
+
return this._id;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* The short name of the space.
|
|
53
|
+
*/
|
|
54
|
+
get name() {
|
|
55
|
+
return this._name;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* KV operations scoped to this space.
|
|
59
|
+
*/
|
|
60
|
+
get kv() {
|
|
61
|
+
return this._kv;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Delegation operations scoped to this space.
|
|
65
|
+
*/
|
|
66
|
+
get delegations() {
|
|
67
|
+
return this._delegations;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Sharing operations scoped to this space.
|
|
71
|
+
*/
|
|
72
|
+
get sharing() {
|
|
73
|
+
return this._sharing;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Get space metadata.
|
|
77
|
+
*
|
|
78
|
+
* @returns Result containing space information
|
|
79
|
+
*/
|
|
80
|
+
async info() {
|
|
81
|
+
return this._getInfo(this._id);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=Space.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Space.js","sourceRoot":"","sources":["../../src/spaces/Space.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAkIH;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,KAAK;IAQhB;;;;OAIG;IACH,YAAY,MAAmB;QAC7B,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;CACF"}
|