@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,253 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests for SignStrategy schemas.
|
|
3
|
+
*/
|
|
4
|
+
import { describe, it, expect } from "bun:test";
|
|
5
|
+
import { SignRequestSchema, SignResponseSchema, SignRequestTypeSchema, AutoSignStrategySchema, AutoRejectStrategySchema, CallbackStrategySchema, EventEmitterStrategySchema, SignStrategySchema, validateSignStrategy, validateSignRequest, validateSignResponse, } from "./strategies.schema";
|
|
6
|
+
describe("SignRequestTypeSchema", () => {
|
|
7
|
+
it("should accept valid sign request types", () => {
|
|
8
|
+
expect(SignRequestTypeSchema.safeParse("siwe").success).toBe(true);
|
|
9
|
+
expect(SignRequestTypeSchema.safeParse("message").success).toBe(true);
|
|
10
|
+
});
|
|
11
|
+
it("should reject invalid sign request types", () => {
|
|
12
|
+
expect(SignRequestTypeSchema.safeParse("invalid").success).toBe(false);
|
|
13
|
+
expect(SignRequestTypeSchema.safeParse("").success).toBe(false);
|
|
14
|
+
expect(SignRequestTypeSchema.safeParse(123).success).toBe(false);
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
describe("SignRequestSchema", () => {
|
|
18
|
+
const validRequest = {
|
|
19
|
+
address: "0x1234567890123456789012345678901234567890",
|
|
20
|
+
chainId: 1,
|
|
21
|
+
message: "Sign this message",
|
|
22
|
+
type: "siwe",
|
|
23
|
+
};
|
|
24
|
+
it("should accept valid sign request", () => {
|
|
25
|
+
const result = SignRequestSchema.safeParse(validRequest);
|
|
26
|
+
expect(result.success).toBe(true);
|
|
27
|
+
});
|
|
28
|
+
it("should accept message type", () => {
|
|
29
|
+
const result = SignRequestSchema.safeParse({
|
|
30
|
+
...validRequest,
|
|
31
|
+
type: "message",
|
|
32
|
+
});
|
|
33
|
+
expect(result.success).toBe(true);
|
|
34
|
+
});
|
|
35
|
+
it("should reject missing address", () => {
|
|
36
|
+
const { address, ...rest } = validRequest;
|
|
37
|
+
expect(SignRequestSchema.safeParse(rest).success).toBe(false);
|
|
38
|
+
});
|
|
39
|
+
it("should reject missing chainId", () => {
|
|
40
|
+
const { chainId, ...rest } = validRequest;
|
|
41
|
+
expect(SignRequestSchema.safeParse(rest).success).toBe(false);
|
|
42
|
+
});
|
|
43
|
+
it("should reject missing message", () => {
|
|
44
|
+
const { message, ...rest } = validRequest;
|
|
45
|
+
expect(SignRequestSchema.safeParse(rest).success).toBe(false);
|
|
46
|
+
});
|
|
47
|
+
it("should reject missing type", () => {
|
|
48
|
+
const { type, ...rest } = validRequest;
|
|
49
|
+
expect(SignRequestSchema.safeParse(rest).success).toBe(false);
|
|
50
|
+
});
|
|
51
|
+
it("should reject invalid type", () => {
|
|
52
|
+
const result = SignRequestSchema.safeParse({
|
|
53
|
+
...validRequest,
|
|
54
|
+
type: "invalid",
|
|
55
|
+
});
|
|
56
|
+
expect(result.success).toBe(false);
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
describe("SignResponseSchema", () => {
|
|
60
|
+
it("should accept approved response with signature", () => {
|
|
61
|
+
const result = SignResponseSchema.safeParse({
|
|
62
|
+
approved: true,
|
|
63
|
+
signature: "0xabcdef",
|
|
64
|
+
});
|
|
65
|
+
expect(result.success).toBe(true);
|
|
66
|
+
});
|
|
67
|
+
it("should accept rejected response with reason", () => {
|
|
68
|
+
const result = SignResponseSchema.safeParse({
|
|
69
|
+
approved: false,
|
|
70
|
+
reason: "User cancelled",
|
|
71
|
+
});
|
|
72
|
+
expect(result.success).toBe(true);
|
|
73
|
+
});
|
|
74
|
+
it("should accept minimal response", () => {
|
|
75
|
+
const result = SignResponseSchema.safeParse({
|
|
76
|
+
approved: true,
|
|
77
|
+
});
|
|
78
|
+
expect(result.success).toBe(true);
|
|
79
|
+
});
|
|
80
|
+
it("should reject missing approved field", () => {
|
|
81
|
+
const result = SignResponseSchema.safeParse({
|
|
82
|
+
signature: "0xabcdef",
|
|
83
|
+
});
|
|
84
|
+
expect(result.success).toBe(false);
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
describe("AutoSignStrategySchema", () => {
|
|
88
|
+
it("should accept valid auto-sign strategy", () => {
|
|
89
|
+
const result = AutoSignStrategySchema.safeParse({ type: "auto-sign" });
|
|
90
|
+
expect(result.success).toBe(true);
|
|
91
|
+
});
|
|
92
|
+
it("should reject wrong type", () => {
|
|
93
|
+
const result = AutoSignStrategySchema.safeParse({ type: "auto-reject" });
|
|
94
|
+
expect(result.success).toBe(false);
|
|
95
|
+
});
|
|
96
|
+
it("should reject missing type", () => {
|
|
97
|
+
const result = AutoSignStrategySchema.safeParse({});
|
|
98
|
+
expect(result.success).toBe(false);
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
describe("AutoRejectStrategySchema", () => {
|
|
102
|
+
it("should accept valid auto-reject strategy", () => {
|
|
103
|
+
const result = AutoRejectStrategySchema.safeParse({ type: "auto-reject" });
|
|
104
|
+
expect(result.success).toBe(true);
|
|
105
|
+
});
|
|
106
|
+
it("should reject wrong type", () => {
|
|
107
|
+
const result = AutoRejectStrategySchema.safeParse({ type: "auto-sign" });
|
|
108
|
+
expect(result.success).toBe(false);
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
describe("CallbackStrategySchema", () => {
|
|
112
|
+
it("should accept valid callback strategy", () => {
|
|
113
|
+
const handler = async () => ({ approved: true, signature: "0x123" });
|
|
114
|
+
const result = CallbackStrategySchema.safeParse({
|
|
115
|
+
type: "callback",
|
|
116
|
+
handler,
|
|
117
|
+
});
|
|
118
|
+
expect(result.success).toBe(true);
|
|
119
|
+
});
|
|
120
|
+
it("should reject non-function handler", () => {
|
|
121
|
+
const result = CallbackStrategySchema.safeParse({
|
|
122
|
+
type: "callback",
|
|
123
|
+
handler: "not a function",
|
|
124
|
+
});
|
|
125
|
+
expect(result.success).toBe(false);
|
|
126
|
+
});
|
|
127
|
+
it("should reject missing handler", () => {
|
|
128
|
+
const result = CallbackStrategySchema.safeParse({
|
|
129
|
+
type: "callback",
|
|
130
|
+
});
|
|
131
|
+
expect(result.success).toBe(false);
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
describe("EventEmitterStrategySchema", () => {
|
|
135
|
+
it("should accept valid event emitter strategy", () => {
|
|
136
|
+
const emitter = new EventTarget();
|
|
137
|
+
const result = EventEmitterStrategySchema.safeParse({
|
|
138
|
+
type: "event-emitter",
|
|
139
|
+
emitter,
|
|
140
|
+
});
|
|
141
|
+
expect(result.success).toBe(true);
|
|
142
|
+
});
|
|
143
|
+
it("should accept with optional timeout", () => {
|
|
144
|
+
const emitter = new EventTarget();
|
|
145
|
+
const result = EventEmitterStrategySchema.safeParse({
|
|
146
|
+
type: "event-emitter",
|
|
147
|
+
emitter,
|
|
148
|
+
timeout: 30000,
|
|
149
|
+
});
|
|
150
|
+
expect(result.success).toBe(true);
|
|
151
|
+
});
|
|
152
|
+
it("should reject non-EventTarget emitter", () => {
|
|
153
|
+
const result = EventEmitterStrategySchema.safeParse({
|
|
154
|
+
type: "event-emitter",
|
|
155
|
+
emitter: "not an event target",
|
|
156
|
+
});
|
|
157
|
+
expect(result.success).toBe(false);
|
|
158
|
+
});
|
|
159
|
+
it("should reject missing emitter", () => {
|
|
160
|
+
const result = EventEmitterStrategySchema.safeParse({
|
|
161
|
+
type: "event-emitter",
|
|
162
|
+
});
|
|
163
|
+
expect(result.success).toBe(false);
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
describe("SignStrategySchema", () => {
|
|
167
|
+
it("should accept auto-sign strategy", () => {
|
|
168
|
+
const result = SignStrategySchema.safeParse({ type: "auto-sign" });
|
|
169
|
+
expect(result.success).toBe(true);
|
|
170
|
+
if (result.success) {
|
|
171
|
+
expect(result.data.type).toBe("auto-sign");
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
it("should accept auto-reject strategy", () => {
|
|
175
|
+
const result = SignStrategySchema.safeParse({ type: "auto-reject" });
|
|
176
|
+
expect(result.success).toBe(true);
|
|
177
|
+
if (result.success) {
|
|
178
|
+
expect(result.data.type).toBe("auto-reject");
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
it("should accept callback strategy", () => {
|
|
182
|
+
const handler = async () => ({ approved: true });
|
|
183
|
+
const result = SignStrategySchema.safeParse({ type: "callback", handler });
|
|
184
|
+
expect(result.success).toBe(true);
|
|
185
|
+
if (result.success) {
|
|
186
|
+
expect(result.data.type).toBe("callback");
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
it("should accept event-emitter strategy", () => {
|
|
190
|
+
const emitter = new EventTarget();
|
|
191
|
+
const result = SignStrategySchema.safeParse({
|
|
192
|
+
type: "event-emitter",
|
|
193
|
+
emitter,
|
|
194
|
+
});
|
|
195
|
+
expect(result.success).toBe(true);
|
|
196
|
+
if (result.success) {
|
|
197
|
+
expect(result.data.type).toBe("event-emitter");
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
it("should reject unknown strategy type", () => {
|
|
201
|
+
const result = SignStrategySchema.safeParse({ type: "unknown" });
|
|
202
|
+
expect(result.success).toBe(false);
|
|
203
|
+
});
|
|
204
|
+
});
|
|
205
|
+
describe("validateSignStrategy", () => {
|
|
206
|
+
it("should return ok result for valid strategy", () => {
|
|
207
|
+
const result = validateSignStrategy({ type: "auto-sign" });
|
|
208
|
+
expect(result.ok).toBe(true);
|
|
209
|
+
if (result.ok) {
|
|
210
|
+
expect(result.data.type).toBe("auto-sign");
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
it("should return error result for invalid strategy", () => {
|
|
214
|
+
const result = validateSignStrategy({ type: "invalid" });
|
|
215
|
+
expect(result.ok).toBe(false);
|
|
216
|
+
if (!result.ok) {
|
|
217
|
+
expect(result.error.code).toBe("VALIDATION_ERROR");
|
|
218
|
+
expect(result.error.service).toBe("authorization");
|
|
219
|
+
}
|
|
220
|
+
});
|
|
221
|
+
});
|
|
222
|
+
describe("validateSignRequest", () => {
|
|
223
|
+
it("should return ok result for valid request", () => {
|
|
224
|
+
const result = validateSignRequest({
|
|
225
|
+
address: "0x1234567890123456789012345678901234567890",
|
|
226
|
+
chainId: 1,
|
|
227
|
+
message: "Test",
|
|
228
|
+
type: "siwe",
|
|
229
|
+
});
|
|
230
|
+
expect(result.ok).toBe(true);
|
|
231
|
+
});
|
|
232
|
+
it("should return error result for invalid request", () => {
|
|
233
|
+
const result = validateSignRequest({});
|
|
234
|
+
expect(result.ok).toBe(false);
|
|
235
|
+
if (!result.ok) {
|
|
236
|
+
expect(result.error.code).toBe("VALIDATION_ERROR");
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
});
|
|
240
|
+
describe("validateSignResponse", () => {
|
|
241
|
+
it("should return ok result for valid response", () => {
|
|
242
|
+
const result = validateSignResponse({ approved: true });
|
|
243
|
+
expect(result.ok).toBe(true);
|
|
244
|
+
});
|
|
245
|
+
it("should return error result for invalid response", () => {
|
|
246
|
+
const result = validateSignResponse({});
|
|
247
|
+
expect(result.ok).toBe(false);
|
|
248
|
+
if (!result.ok) {
|
|
249
|
+
expect(result.error.code).toBe("VALIDATION_ERROR");
|
|
250
|
+
}
|
|
251
|
+
});
|
|
252
|
+
});
|
|
253
|
+
//# sourceMappingURL=strategies.schema.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strategies.schema.test.js","sourceRoot":"","sources":["../../src/authorization/strategies.schema.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DelegationManager - Handles delegation CRUD operations.
|
|
3
|
+
*
|
|
4
|
+
* This class manages the creation, revocation, listing, and querying
|
|
5
|
+
* of delegations within TinyCloud. It extracts and improves upon the
|
|
6
|
+
* delegation functionality previously in ITinyCloudStorage.
|
|
7
|
+
*
|
|
8
|
+
* @packageDocumentation
|
|
9
|
+
*/
|
|
10
|
+
import type { ServiceSession } from "@tinycloud/sdk-services";
|
|
11
|
+
import { Result, Delegation, CreateDelegationParams, DelegationChain, DelegationManagerConfig } from "./types";
|
|
12
|
+
/**
|
|
13
|
+
* DelegationManager handles all delegation-related operations.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* import { DelegationManager } from "@tinycloud/sdk-core/delegations";
|
|
18
|
+
*
|
|
19
|
+
* const delegations = new DelegationManager({
|
|
20
|
+
* hosts: ["https://node.tinycloud.xyz"],
|
|
21
|
+
* session,
|
|
22
|
+
* invoke,
|
|
23
|
+
* });
|
|
24
|
+
*
|
|
25
|
+
* // Create a delegation
|
|
26
|
+
* const result = await delegations.create({
|
|
27
|
+
* delegateDID: "did:pkh:eip155:1:0x...",
|
|
28
|
+
* path: "shared/",
|
|
29
|
+
* actions: ["tinycloud.kv/get", "tinycloud.kv/list"],
|
|
30
|
+
* expiry: new Date(Date.now() + 24 * 60 * 60 * 1000), // 24 hours
|
|
31
|
+
* });
|
|
32
|
+
*
|
|
33
|
+
* if (result.ok) {
|
|
34
|
+
* console.log("Created delegation:", result.data.cid);
|
|
35
|
+
* }
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
export declare class DelegationManager {
|
|
39
|
+
private hosts;
|
|
40
|
+
private session;
|
|
41
|
+
private invoke;
|
|
42
|
+
private fetchFn;
|
|
43
|
+
/**
|
|
44
|
+
* Creates a new DelegationManager instance.
|
|
45
|
+
*
|
|
46
|
+
* @param config - Configuration including hosts, session, and invoke function
|
|
47
|
+
*/
|
|
48
|
+
constructor(config: DelegationManagerConfig);
|
|
49
|
+
/**
|
|
50
|
+
* Updates the session (e.g., after re-authentication).
|
|
51
|
+
*
|
|
52
|
+
* @param session - New session to use for operations
|
|
53
|
+
*/
|
|
54
|
+
updateSession(session: ServiceSession): void;
|
|
55
|
+
/**
|
|
56
|
+
* Gets the primary host URL.
|
|
57
|
+
*/
|
|
58
|
+
private get host();
|
|
59
|
+
/**
|
|
60
|
+
* Executes an invoke operation against the delegation API.
|
|
61
|
+
*/
|
|
62
|
+
private invokeOperation;
|
|
63
|
+
/**
|
|
64
|
+
* Creates a new delegation.
|
|
65
|
+
*
|
|
66
|
+
* Delegates specific permissions to another DID for a given path.
|
|
67
|
+
* The delegatee can then use these permissions to access resources
|
|
68
|
+
* within the specified scope.
|
|
69
|
+
*
|
|
70
|
+
* @param params - Parameters for the delegation
|
|
71
|
+
* @returns Result containing the created Delegation or an error
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```typescript
|
|
75
|
+
* const result = await manager.create({
|
|
76
|
+
* delegateDID: bob.did,
|
|
77
|
+
* path: "documents/shared/",
|
|
78
|
+
* actions: ["tinycloud.kv/get", "tinycloud.kv/put"],
|
|
79
|
+
* expiry: new Date(Date.now() + 7 * 24 * 60 * 60 * 1000), // 7 days
|
|
80
|
+
* });
|
|
81
|
+
* ```
|
|
82
|
+
*/
|
|
83
|
+
create(params: CreateDelegationParams): Promise<Result<Delegation>>;
|
|
84
|
+
/**
|
|
85
|
+
* Revokes an existing delegation.
|
|
86
|
+
*
|
|
87
|
+
* Once revoked, the delegation can no longer be used to access resources.
|
|
88
|
+
* This also invalidates any sub-delegations derived from this delegation.
|
|
89
|
+
*
|
|
90
|
+
* @param cid - The CID of the delegation to revoke
|
|
91
|
+
* @returns Result indicating success or an error
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```typescript
|
|
95
|
+
* const result = await manager.revoke("bafy...");
|
|
96
|
+
* if (result.ok) {
|
|
97
|
+
* console.log("Delegation revoked successfully");
|
|
98
|
+
* }
|
|
99
|
+
* ```
|
|
100
|
+
*/
|
|
101
|
+
revoke(cid: string): Promise<Result<void>>;
|
|
102
|
+
/**
|
|
103
|
+
* Lists all delegations for the current session's space.
|
|
104
|
+
*
|
|
105
|
+
* Returns both delegations created by the current user (as delegator)
|
|
106
|
+
* and delegations granted to the current user (as delegatee).
|
|
107
|
+
*
|
|
108
|
+
* @returns Result containing an array of Delegations or an error
|
|
109
|
+
*
|
|
110
|
+
* @example
|
|
111
|
+
* ```typescript
|
|
112
|
+
* const result = await manager.list();
|
|
113
|
+
* if (result.ok) {
|
|
114
|
+
* for (const delegation of result.data) {
|
|
115
|
+
* console.log(`${delegation.cid}: ${delegation.path} -> ${delegation.delegateDID}`);
|
|
116
|
+
* }
|
|
117
|
+
* }
|
|
118
|
+
* ```
|
|
119
|
+
*/
|
|
120
|
+
list(): Promise<Result<Delegation[]>>;
|
|
121
|
+
/**
|
|
122
|
+
* Gets the full delegation chain for a given delegation.
|
|
123
|
+
*
|
|
124
|
+
* Returns the chain of delegations from the root (original delegator)
|
|
125
|
+
* to the specified delegation, including all intermediate sub-delegations.
|
|
126
|
+
*
|
|
127
|
+
* @param cid - The CID of the delegation to get the chain for
|
|
128
|
+
* @returns Result containing the DelegationChain or an error
|
|
129
|
+
*
|
|
130
|
+
* @example
|
|
131
|
+
* ```typescript
|
|
132
|
+
* const result = await manager.getChain("bafy...");
|
|
133
|
+
* if (result.ok) {
|
|
134
|
+
* console.log("Chain length:", result.data.length);
|
|
135
|
+
* for (const delegation of result.data) {
|
|
136
|
+
* console.log(`- ${delegation.delegatorDID} -> ${delegation.delegateDID}`);
|
|
137
|
+
* }
|
|
138
|
+
* }
|
|
139
|
+
* ```
|
|
140
|
+
*/
|
|
141
|
+
getChain(cid: string): Promise<Result<DelegationChain>>;
|
|
142
|
+
/**
|
|
143
|
+
* Checks if the current session has permission for a given path and action.
|
|
144
|
+
*
|
|
145
|
+
* This can be used to verify permissions before attempting an operation,
|
|
146
|
+
* or to implement custom access control logic.
|
|
147
|
+
*
|
|
148
|
+
* @param path - The resource path to check
|
|
149
|
+
* @param action - The action to check (e.g., "tinycloud.kv/get")
|
|
150
|
+
* @returns Result containing a boolean indicating permission or an error
|
|
151
|
+
*
|
|
152
|
+
* @example
|
|
153
|
+
* ```typescript
|
|
154
|
+
* const result = await manager.checkPermission("documents/private/", "tinycloud.kv/put");
|
|
155
|
+
* if (result.ok && result.data) {
|
|
156
|
+
* console.log("Permission granted");
|
|
157
|
+
* } else {
|
|
158
|
+
* console.log("Permission denied");
|
|
159
|
+
* }
|
|
160
|
+
* ```
|
|
161
|
+
*/
|
|
162
|
+
checkPermission(path: string, action: string): Promise<Result<boolean>>;
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=DelegationManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DelegationManager.d.ts","sourceRoot":"","sources":["../../src/delegations/DelegationManager.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAIV,cAAc,EACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,MAAM,EAGN,UAAU,EACV,sBAAsB,EACtB,eAAe,EACf,uBAAuB,EAExB,MAAM,SAAS,CAAC;AA+BjB;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,OAAO,CAAgB;IAE/B;;;;OAIG;gBACS,MAAM,EAAE,uBAAuB;IAO3C;;;;OAIG;IACI,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAInD;;OAEG;IACH,OAAO,KAAK,IAAI,GAEf;IAED;;OAEG;YACW,eAAe;IAc7B;;;;;;;;;;;;;;;;;;;OAmBG;IACG,MAAM,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAkGzE;;;;;;;;;;;;;;;;OAgBG;IACG,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAmEhD;;;;;;;;;;;;;;;;;OAiBG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IAoE3C;;;;;;;;;;;;;;;;;;;OAmBG;IACG,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IAiG7D;;;;;;;;;;;;;;;;;;;OAmBG;IACG,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;CAuE9E"}
|