@adonis-agora/collaboration 0.12.0 → 0.14.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/CHANGELOG.md +164 -0
- package/dist/providers/collaboration_provider.d.ts.map +1 -1
- package/dist/providers/collaboration_provider.js +4 -0
- package/dist/providers/collaboration_provider.js.map +1 -1
- package/dist/src/auth/secret.d.ts +48 -0
- package/dist/src/auth/secret.d.ts.map +1 -0
- package/dist/src/auth/secret.js +95 -0
- package/dist/src/auth/secret.js.map +1 -0
- package/dist/src/auth/token.d.ts +111 -14
- package/dist/src/auth/token.d.ts.map +1 -1
- package/dist/src/auth/token.js +95 -14
- package/dist/src/auth/token.js.map +1 -1
- package/dist/src/collaboration_manager.d.ts +75 -2
- package/dist/src/collaboration_manager.d.ts.map +1 -1
- package/dist/src/collaboration_manager.js +128 -2
- package/dist/src/collaboration_manager.js.map +1 -1
- package/dist/src/define_config.d.ts +5 -0
- package/dist/src/define_config.d.ts.map +1 -1
- package/dist/src/define_config.js.map +1 -1
- package/dist/src/documents.d.ts +59 -0
- package/dist/src/documents.d.ts.map +1 -1
- package/dist/src/documents.js.map +1 -1
- package/dist/src/driver.d.ts +56 -3
- package/dist/src/driver.d.ts.map +1 -1
- package/dist/src/driver.js +4 -1
- package/dist/src/driver.js.map +1 -1
- package/dist/src/drivers/automerge/automerge_driver.d.ts +27 -2
- package/dist/src/drivers/automerge/automerge_driver.d.ts.map +1 -1
- package/dist/src/drivers/automerge/automerge_driver.js +107 -18
- package/dist/src/drivers/automerge/automerge_driver.js.map +1 -1
- package/dist/src/drivers/partykit/partykit_driver.d.ts +7 -2
- package/dist/src/drivers/partykit/partykit_driver.d.ts.map +1 -1
- package/dist/src/drivers/partykit/partykit_driver.js +15 -9
- package/dist/src/drivers/partykit/partykit_driver.js.map +1 -1
- package/dist/src/drivers/yjs/yjs_driver.d.ts +18 -6
- package/dist/src/drivers/yjs/yjs_driver.d.ts.map +1 -1
- package/dist/src/drivers/yjs/yjs_driver.js +170 -19
- package/dist/src/drivers/yjs/yjs_driver.js.map +1 -1
- package/dist/src/http/types.d.ts +27 -4
- package/dist/src/http/types.d.ts.map +1 -1
- package/dist/src/http/types.js.map +1 -1
- package/dist/src/index.d.ts +7 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/routes.d.ts +74 -2
- package/dist/src/routes.d.ts.map +1 -1
- package/dist/src/routes.js +166 -14
- package/dist/src/routes.js.map +1 -1
- package/dist/src/services/comment_service.d.ts +2 -2
- package/dist/src/services/comment_service.d.ts.map +1 -1
- package/dist/src/services/comment_service.js +2 -2
- package/dist/src/services/comment_service.js.map +1 -1
- package/dist/src/storage/file_system_storage.d.ts +3 -3
- package/dist/src/storage/file_system_storage.d.ts.map +1 -1
- package/dist/src/storage/file_system_storage.js +13 -4
- package/dist/src/storage/file_system_storage.js.map +1 -1
- package/dist/src/storage/in_memory_storage.d.ts +3 -3
- package/dist/src/storage/in_memory_storage.d.ts.map +1 -1
- package/dist/src/storage/in_memory_storage.js +14 -5
- package/dist/src/storage/in_memory_storage.js.map +1 -1
- package/dist/src/storage/lucid_storage.d.ts +3 -3
- package/dist/src/storage/lucid_storage.d.ts.map +1 -1
- package/dist/src/storage/lucid_storage.js +48 -33
- package/dist/src/storage/lucid_storage.js.map +1 -1
- package/dist/src/storage/shared.d.ts +17 -0
- package/dist/src/storage/shared.d.ts.map +1 -1
- package/dist/src/storage/shared.js +29 -0
- package/dist/src/storage/shared.js.map +1 -1
- package/dist/src/types.d.ts +72 -3
- package/dist/src/types.d.ts.map +1 -1
- package/dist/stubs/config/collaboration.stub +8 -0
- package/dist/stubs/partykit/worker/party.ts.stub +35 -4
- package/package.json +1 -1
package/dist/src/routes.js
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
import { createHmac, timingSafeEqual } from 'node:crypto';
|
|
2
|
-
import { CollabForbiddenError, issueToken } from './auth/token.js';
|
|
2
|
+
import { CollabForbiddenError, issueToken, } from './auth/token.js';
|
|
3
3
|
import { CollabUnauthorizedError, } from './http/types.js';
|
|
4
|
+
import { clampLimit, clampOffset } from './storage/shared.js';
|
|
5
|
+
/** Parses `limit`/`offset` off a query string, clamped to a sane page. */
|
|
6
|
+
function pageOf(qs) {
|
|
7
|
+
const toNumber = (value) => {
|
|
8
|
+
if (typeof value === 'number')
|
|
9
|
+
return value;
|
|
10
|
+
if (typeof value === 'string' && value.trim() !== '')
|
|
11
|
+
return Number(value);
|
|
12
|
+
return undefined;
|
|
13
|
+
};
|
|
14
|
+
return { limit: clampLimit(toNumber(qs.limit)), offset: clampOffset(toNumber(qs.offset)) };
|
|
15
|
+
}
|
|
4
16
|
/** The permission granted when nothing anywhere declares a rule. */
|
|
5
17
|
const DENY_ALL = { canRead: false, canWrite: false, canComment: false };
|
|
6
18
|
let cachedAppConfig;
|
|
@@ -129,6 +141,39 @@ function isDenied(result) {
|
|
|
129
141
|
return 'denied' in result;
|
|
130
142
|
}
|
|
131
143
|
/* ───────────────────────────── handlers ───────────────────────────── */
|
|
144
|
+
/**
|
|
145
|
+
* The whole of what issuing a credential means here: the document's engine
|
|
146
|
+
* (per-document, via the manager), the browser-facing ws URL, and `authorize`
|
|
147
|
+
* enforced before anything is signed.
|
|
148
|
+
*
|
|
149
|
+
* Extracted so the HTTP route and {@link issueCollaborationToken} cannot
|
|
150
|
+
* drift: a token minted outside the route has to be the same token, checked
|
|
151
|
+
* the same way, or the pre-issued path becomes a way around the permission
|
|
152
|
+
* seam.
|
|
153
|
+
*/
|
|
154
|
+
async function issueFor(runtime, user, docName) {
|
|
155
|
+
const settings = await runtime.settings();
|
|
156
|
+
const manager = await runtime.manager();
|
|
157
|
+
const engine = manager.engineFor ? await manager.engineFor({ docName }) : settings.engine;
|
|
158
|
+
// Asked of the manager, not resolved here: the manager is what the driver's
|
|
159
|
+
// handshake verifies against, and a second resolution order living in the
|
|
160
|
+
// routes is how an app ends up signing with one key and checking with
|
|
161
|
+
// another. A manager with no opinion (a test double) leaves it undefined and
|
|
162
|
+
// `issueToken` falls back to the same config/appKey lookup the driver does.
|
|
163
|
+
//
|
|
164
|
+
// Skipped for the edge engine, which signs with `partykit.jwtSecret`: asking
|
|
165
|
+
// for a key it will not use would fail a partykit-only deployment that never
|
|
166
|
+
// configured one.
|
|
167
|
+
const selfHostedSecret = engine === 'partykit' || engine === 'partyserver' || !manager.tokenSecret
|
|
168
|
+
? undefined
|
|
169
|
+
: await manager.tokenSecret();
|
|
170
|
+
return issueToken({
|
|
171
|
+
engine,
|
|
172
|
+
path: settings.path,
|
|
173
|
+
partykit: settings.partykit,
|
|
174
|
+
...(selfHostedSecret ? { tokenSecret: selfHostedSecret } : {}),
|
|
175
|
+
}, user, docName, runtime.authorize);
|
|
176
|
+
}
|
|
132
177
|
async function handleToken(ctx, runtime, userResolver) {
|
|
133
178
|
const docName = ctx.request.qs().doc;
|
|
134
179
|
if (!docName || typeof docName !== 'string') {
|
|
@@ -148,10 +193,7 @@ async function handleToken(ctx, runtime, userResolver) {
|
|
|
148
193
|
return ctx.response.status(401).json({ error: 'unauthenticated' });
|
|
149
194
|
}
|
|
150
195
|
try {
|
|
151
|
-
|
|
152
|
-
const manager = await runtime.manager();
|
|
153
|
-
const engine = manager.engineFor ? await manager.engineFor({ docName }) : settings.engine;
|
|
154
|
-
return await issueToken({ engine, path: settings.path, partykit: settings.partykit }, user, docName, runtime.authorize);
|
|
196
|
+
return await issueFor(runtime, user, docName);
|
|
155
197
|
}
|
|
156
198
|
catch (error) {
|
|
157
199
|
if (error instanceof CollabForbiddenError) {
|
|
@@ -161,12 +203,13 @@ async function handleToken(ctx, runtime, userResolver) {
|
|
|
161
203
|
}
|
|
162
204
|
}
|
|
163
205
|
async function handleListComments(ctx, runtime, resolveUser) {
|
|
164
|
-
const
|
|
206
|
+
const qs = ctx.request.qs();
|
|
207
|
+
const { doc, space } = qs;
|
|
165
208
|
const allowed = await guard(ctx, runtime, resolveUser, doc, 'canRead');
|
|
166
209
|
if (isDenied(allowed))
|
|
167
210
|
return allowed.denied;
|
|
168
211
|
const manager = await runtime.manager();
|
|
169
|
-
return manager.comments.list(allowed.docName, space);
|
|
212
|
+
return manager.comments.list(allowed.docName, space, pageOf(qs));
|
|
170
213
|
}
|
|
171
214
|
async function handleCreateComment(ctx, runtime, resolveUser) {
|
|
172
215
|
const body = ctx.request.body();
|
|
@@ -228,12 +271,13 @@ async function handleDeleteComment(ctx, runtime, resolveUser) {
|
|
|
228
271
|
return { deleted: await manager.comments.remove(allowed.docName, commentId) };
|
|
229
272
|
}
|
|
230
273
|
async function handleListVersions(ctx, runtime, resolveUser) {
|
|
231
|
-
const
|
|
232
|
-
const allowed = await guard(ctx, runtime, resolveUser, doc, 'canRead');
|
|
274
|
+
const qs = ctx.request.qs();
|
|
275
|
+
const allowed = await guard(ctx, runtime, resolveUser, qs.doc, 'canRead');
|
|
233
276
|
if (isDenied(allowed))
|
|
234
277
|
return allowed.denied;
|
|
235
278
|
const manager = await runtime.manager();
|
|
236
|
-
|
|
279
|
+
const { limit, offset } = pageOf(qs);
|
|
280
|
+
return manager.listVersions({ docName: allowed.docName, limit, offset });
|
|
237
281
|
}
|
|
238
282
|
async function handleCreateVersion(ctx, runtime, resolveUser) {
|
|
239
283
|
const body = ctx.request.body();
|
|
@@ -321,6 +365,37 @@ export function collaborationRoutes(router, options = {}) {
|
|
|
321
365
|
function registerRoute(router, method, pattern, handler) {
|
|
322
366
|
router[method](pattern, handler);
|
|
323
367
|
}
|
|
368
|
+
/**
|
|
369
|
+
* Auth stacks that never populate `ctx.auth.user`.
|
|
370
|
+
*
|
|
371
|
+
* `@adonis-agora/authkit` resolves the user **on demand**: `check()` verifies
|
|
372
|
+
* the session and returns `true`, but the user itself only materialises when
|
|
373
|
+
* something asks for it — `getUserOrFail()`, which is what the app's own
|
|
374
|
+
* controllers call. Reading `auth.user` after `check()` therefore finds
|
|
375
|
+
* `undefined`, and this resolver answered 401 for a caller the app considered
|
|
376
|
+
* perfectly authenticated. Every app hitting it wrote the same three-line
|
|
377
|
+
* `resolveUser` by hand.
|
|
378
|
+
*
|
|
379
|
+
* `getUser()` is tried first because it reports absence by returning nothing;
|
|
380
|
+
* `getUserOrFail()` reports it by throwing, and a throw here is still just an
|
|
381
|
+
* absent user — never a 500.
|
|
382
|
+
*/
|
|
383
|
+
async function resolveUserOnDemand(auth) {
|
|
384
|
+
for (const method of ['getUser', 'getUserOrFail']) {
|
|
385
|
+
const resolver = auth[method];
|
|
386
|
+
if (typeof resolver !== 'function')
|
|
387
|
+
continue;
|
|
388
|
+
try {
|
|
389
|
+
const resolved = await resolver.call(auth);
|
|
390
|
+
if (resolved)
|
|
391
|
+
return resolved;
|
|
392
|
+
}
|
|
393
|
+
catch {
|
|
394
|
+
// Absent user, reported as 401 by the caller.
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
return undefined;
|
|
398
|
+
}
|
|
324
399
|
/**
|
|
325
400
|
* Default auth resolution.
|
|
326
401
|
*
|
|
@@ -331,7 +406,16 @@ function registerRoute(router, method, pattern, handler) {
|
|
|
331
406
|
* `/collaboration` prefix. Here `check()` is preferred because it reports
|
|
332
407
|
* failure by returning `false` instead of throwing.
|
|
333
408
|
*
|
|
334
|
-
*
|
|
409
|
+
* Then, when `auth.user` is *still* empty, it asks the guard for the user
|
|
410
|
+
* instead of assuming the guard would have left it lying around — see
|
|
411
|
+
* {@link resolveUserOnDemand}. Both steps are needed: one auth stack fills
|
|
412
|
+
* `user` as a side effect of `check()`, another only answers a direct
|
|
413
|
+
* question, and this resolver exists precisely so no app has to know which
|
|
414
|
+
* one it installed.
|
|
415
|
+
*
|
|
416
|
+
* Still fails closed. No user is a 401, an id that stringifies to nothing is
|
|
417
|
+
* a 401 (an "empty" user must never reach `authorize`, where a blank id could
|
|
418
|
+
* match a rule), and no path out of here is a 500.
|
|
335
419
|
*/
|
|
336
420
|
export const defaultResolveUser = async (ctx) => {
|
|
337
421
|
const auth = ctx.auth;
|
|
@@ -349,10 +433,78 @@ export const defaultResolveUser = async (ctx) => {
|
|
|
349
433
|
// never as a 500.
|
|
350
434
|
}
|
|
351
435
|
}
|
|
352
|
-
|
|
353
|
-
if (
|
|
436
|
+
let user = auth?.user;
|
|
437
|
+
if (auth && !user) {
|
|
438
|
+
user = (await resolveUserOnDemand(auth));
|
|
439
|
+
}
|
|
440
|
+
const id = user?.id === undefined || user?.id === null ? '' : String(user.id).trim();
|
|
441
|
+
if (!user || !id) {
|
|
354
442
|
throw new CollabUnauthorizedError('no authenticated user on context — protect these routes with your auth middleware or provide routes.resolveUser in config/collaboration.ts');
|
|
355
443
|
}
|
|
356
|
-
return { id
|
|
444
|
+
return { id, name: user.name ?? null };
|
|
357
445
|
};
|
|
446
|
+
/**
|
|
447
|
+
* Issues a document credential **outside** the token route.
|
|
448
|
+
*
|
|
449
|
+
* The problem it removes: `GET /collaboration/token` and the WebSocket are
|
|
450
|
+
* serialized. The browser cannot open the socket until the token comes back,
|
|
451
|
+
* so the first byte of the document is two round-trips away — and one of them
|
|
452
|
+
* is an HTTP request to the same server that just rendered the page and
|
|
453
|
+
* already knew everything the answer needed.
|
|
454
|
+
*
|
|
455
|
+
* Call this while rendering, hand the result to the page, and the client
|
|
456
|
+
* opens the socket on mount:
|
|
457
|
+
*
|
|
458
|
+
* ```ts
|
|
459
|
+
* // app/controllers/writing_controller.ts
|
|
460
|
+
* import { issueCollaborationToken } from '@adonis-agora/collaboration'
|
|
461
|
+
*
|
|
462
|
+
* const docName = `researches/${research.id}/writing`
|
|
463
|
+
* const collabToken = await issueCollaborationToken({ ctx, docName })
|
|
464
|
+
* return ctx.inertia.render('writing', { docName, collabToken })
|
|
465
|
+
* ```
|
|
466
|
+
*
|
|
467
|
+
* ```tsx
|
|
468
|
+
* <CollaborationProvider initialTokens={{ [docName]: collabToken }}>
|
|
469
|
+
* ```
|
|
470
|
+
*
|
|
471
|
+
* **It is the same token, checked the same way.** Engine resolution, `wsUrl`
|
|
472
|
+
* and `authorize` all come from {@link issueFor} — the function the route
|
|
473
|
+
* calls. A door that skipped the permission check because it was opened from
|
|
474
|
+
* a controller instead of a request would not be a shortcut, it would be a
|
|
475
|
+
* hole.
|
|
476
|
+
*
|
|
477
|
+
* Throws rather than returning a response, because there is no response here
|
|
478
|
+
* to return: {@link CollabUnauthorizedError} with no caller,
|
|
479
|
+
* {@link CollabForbiddenError} when `authorize` denies `canRead`. Let both
|
|
480
|
+
* bubble in a page controller and the page fails to render, which is the
|
|
481
|
+
* honest outcome — an editor rendered for someone who may not read the
|
|
482
|
+
* document is worse than an error.
|
|
483
|
+
*
|
|
484
|
+
* The result carries `engine` and `wsUrl` alongside the token: a bare token
|
|
485
|
+
* string is not enough for the client to build a transport, and asking it to
|
|
486
|
+
* fetch the missing halves would put back the round-trip this removes.
|
|
487
|
+
*/
|
|
488
|
+
export async function issueCollaborationToken(input, options = {}) {
|
|
489
|
+
const { docName } = input;
|
|
490
|
+
if (!docName || typeof docName !== 'string') {
|
|
491
|
+
throw new TypeError('issueCollaborationToken: "docName" is required');
|
|
492
|
+
}
|
|
493
|
+
if (!input.user && !input.ctx) {
|
|
494
|
+
throw new TypeError('issueCollaborationToken: pass either "user" or "ctx"');
|
|
495
|
+
}
|
|
496
|
+
const runtime = resolveRuntime(options, options.managerFallback);
|
|
497
|
+
let user = input.user ?? null;
|
|
498
|
+
if (!user && input.ctx) {
|
|
499
|
+
const appConfig = await readAppConfig();
|
|
500
|
+
const resolveUser = options.resolveUser ?? appConfig.routes?.resolveUser ?? defaultResolveUser;
|
|
501
|
+
// A resolver that throws CollabUnauthorizedError already says the right
|
|
502
|
+
// thing; anything else is a genuine failure and stays a failure.
|
|
503
|
+
user = (await resolveUser(input.ctx)) ?? null;
|
|
504
|
+
}
|
|
505
|
+
if (!user) {
|
|
506
|
+
throw new CollabUnauthorizedError();
|
|
507
|
+
}
|
|
508
|
+
return issueFor(runtime, user, docName);
|
|
509
|
+
}
|
|
358
510
|
//# sourceMappingURL=routes.js.map
|
package/dist/src/routes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/routes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CollabComment, CollaborationStorage } from '../types.js';
|
|
1
|
+
import type { CollabComment, CollaborationStorage, ListPageOptions } from '../types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Anchored comments service — generic over content type.
|
|
4
4
|
*
|
|
@@ -10,7 +10,7 @@ import type { CollabComment, CollaborationStorage } from '../types.js';
|
|
|
10
10
|
export declare class CommentService {
|
|
11
11
|
private storage;
|
|
12
12
|
constructor(storage: CollaborationStorage);
|
|
13
|
-
list(docName: string, space?: string): Promise<CollabComment[]>;
|
|
13
|
+
list(docName: string, space?: string, page?: ListPageOptions): Promise<CollabComment[]>;
|
|
14
14
|
/**
|
|
15
15
|
* One comment by id, without loading the document's whole comment list.
|
|
16
16
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comment_service.d.ts","sourceRoot":"","sources":["../../../src/services/comment_service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"comment_service.d.ts","sourceRoot":"","sources":["../../../src/services/comment_service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAExF;;;;;;;GAOG;AACH,qBAAa,cAAc;IACb,OAAO,CAAC,OAAO;IAA3B,YAAoB,OAAO,EAAE,oBAAoB,EAAI;IAE/C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAG5F;IAED;;;;;;;OAOG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAM3E;IAEK,MAAM,CACV,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,CAAC,GAC5E,OAAO,CAAC,aAAa,CAAC,CAYxB;IAEK,OAAO,CACX,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAW/B;IAEK,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAKjE;CACF"}
|
|
@@ -12,8 +12,8 @@ export class CommentService {
|
|
|
12
12
|
constructor(storage) {
|
|
13
13
|
this.storage = storage;
|
|
14
14
|
}
|
|
15
|
-
async list(docName, space) {
|
|
16
|
-
const comments = await this.storage.listComments(docName, space);
|
|
15
|
+
async list(docName, space, page) {
|
|
16
|
+
const comments = await this.storage.listComments(docName, space, page);
|
|
17
17
|
return comments.sort((a, b) => a.createdAt.localeCompare(b.createdAt));
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"comment_service.js","sourceRoot":"","sources":["../../../src/services/comment_service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC;;;;;;;GAOG;AACH,MAAM,OAAO,cAAc;IACL,OAAO;IAA3B,YAAoB,OAA6B;uBAA7B,OAAO;IAAyB,CAAC;IAErD,KAAK,CAAC,IAAI,CAAC,OAAe,EAAE,KAAc;
|
|
1
|
+
{"version":3,"file":"comment_service.js","sourceRoot":"","sources":["../../../src/services/comment_service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC;;;;;;;GAOG;AACH,MAAM,OAAO,cAAc;IACL,OAAO;IAA3B,YAAoB,OAA6B;uBAA7B,OAAO;IAAyB,CAAC;IAErD,KAAK,CAAC,IAAI,CAAC,OAAe,EAAE,KAAc,EAAE,IAAsB;QAChE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QACvE,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACzE,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,GAAG,CAAC,OAAe,EAAE,SAAiB;QAC1C,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC1D,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,CAAC,IAAI,IAAI,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,MAAM,CACV,OAAe,EACf,OAA6E;QAE7E,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,OAAO,GAAkB;YAC7B,GAAG,OAAO;YACV,YAAY,EAAE,OAAO;YACrB,EAAE,EAAE,UAAU,EAAE;YAChB,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,IAAI;SAChB,CAAC;QACF,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACjD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,OAAO,CACX,OAAe,EACf,SAAiB,EACjB,QAAiB;QAEjB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAEzB,MAAM,OAAO,GAAkB;YAC7B,GAAG,MAAM;YACT,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI;YACtD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QACF,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACjD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAe,EAAE,SAAiB;QAC7C,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,KAAK,IAAI,CAAC;QAC7D,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC1B,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CollabComment, CollaborationStorage, CollabVersion, PruneVersionsOptions } from '../types.js';
|
|
1
|
+
import type { CollabComment, CollaborationStorage, CollabVersion, ListPageOptions, PruneVersionsOptions } from '../types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Disk storage for local development of the library (one file per doc +
|
|
4
4
|
* one per version). In production use LucidStorage on top of Postgres.
|
|
@@ -14,13 +14,13 @@ export declare class FileSystemStorage implements CollaborationStorage {
|
|
|
14
14
|
state: Uint8Array;
|
|
15
15
|
} | null>;
|
|
16
16
|
saveDocument(docName: string, state: Uint8Array): Promise<void>;
|
|
17
|
-
listVersions(docName: string): Promise<CollabVersion[]>;
|
|
17
|
+
listVersions(docName: string, page?: ListPageOptions): Promise<CollabVersion[]>;
|
|
18
18
|
saveVersion(docName: string, _version: CollabVersion, snapshot: Uint8Array): Promise<void>;
|
|
19
19
|
loadVersionSnapshot(docName: string, versionId: string): Promise<Uint8Array | null>;
|
|
20
20
|
/** Document names on disk — one `<name>.bin` at the root per document. */
|
|
21
21
|
private documentNames;
|
|
22
22
|
pruneVersions({ keep, docName, dryRun }: PruneVersionsOptions): Promise<number>;
|
|
23
|
-
listComments(docName: string, space?: string): Promise<CollabComment[]>;
|
|
23
|
+
listComments(docName: string, space?: string, page?: ListPageOptions): Promise<CollabComment[]>;
|
|
24
24
|
saveComment(docName: string, comment: CollabComment): Promise<void>;
|
|
25
25
|
deleteComment(docName: string, commentId: string): Promise<void>;
|
|
26
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file_system_storage.d.ts","sourceRoot":"","sources":["../../../src/storage/file_system_storage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,oBAAoB,EACrB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"file_system_storage.d.ts","sourceRoot":"","sources":["../../../src/storage/file_system_storage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAUrB;;;GAGG;AACH,qBAAa,iBAAkB,YAAW,oBAAoB;IAC5D,OAAO,CAAC,OAAO,CAAS;IAExB,YAAY,OAAO,CAAC,EAAE,MAAM,EAE3B;YAEa,MAAM;IAKpB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,YAAY;IAId,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,UAAU,CAAA;KAAE,GAAG,IAAI,CAAC,CAOzE;IAEK,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAGpE;IAEK,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAIpF;IAEK,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAG/F;IAEK,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAOxF;IAED,0EAA0E;YAC5D,aAAa;IAOrB,aAAa,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAiCpF;IAEK,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,eAAe,GACrB,OAAO,CAAC,aAAa,EAAE,CAAC,CAS1B;IAEK,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAUxE;IAEK,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAWrE;CACF"}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { mkdir, readdir, readFile, stat, unlink, writeFile } from 'node:fs/promises';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
|
-
import { assertPruneKeep, versionsToPrune } from './shared.js';
|
|
3
|
+
import { assertPruneKeep, clampLimit, clampOffset, versionsToPrune } from './shared.js';
|
|
4
|
+
/** Applies an opt-in `{ limit, offset }` page to an already-ordered array. */
|
|
5
|
+
function paginate(items, page) {
|
|
6
|
+
if (!page)
|
|
7
|
+
return items;
|
|
8
|
+
const offset = clampOffset(page.offset);
|
|
9
|
+
return items.slice(offset, offset + clampLimit(page.limit));
|
|
10
|
+
}
|
|
4
11
|
/**
|
|
5
12
|
* Disk storage for local development of the library (one file per doc +
|
|
6
13
|
* one per version). In production use LucidStorage on top of Postgres.
|
|
@@ -36,8 +43,9 @@ export class FileSystemStorage {
|
|
|
36
43
|
await this.ensure();
|
|
37
44
|
await writeFile(this.docPath(docName), state);
|
|
38
45
|
}
|
|
39
|
-
async listVersions(docName) {
|
|
46
|
+
async listVersions(docName, page) {
|
|
40
47
|
void docName;
|
|
48
|
+
void page;
|
|
41
49
|
return [];
|
|
42
50
|
}
|
|
43
51
|
async saveVersion(docName, _version, snapshot) {
|
|
@@ -93,11 +101,12 @@ export class FileSystemStorage {
|
|
|
93
101
|
}
|
|
94
102
|
return removed;
|
|
95
103
|
}
|
|
96
|
-
async listComments(docName, space) {
|
|
104
|
+
async listComments(docName, space, page) {
|
|
97
105
|
try {
|
|
98
106
|
const content = await readFile(this.commentsPath(docName), 'utf-8');
|
|
99
107
|
const all = JSON.parse(content);
|
|
100
|
-
|
|
108
|
+
const filtered = space ? all.filter((comment) => comment.space === space) : all;
|
|
109
|
+
return paginate(filtered, page);
|
|
101
110
|
}
|
|
102
111
|
catch {
|
|
103
112
|
return [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file_system_storage.js","sourceRoot":"","sources":["../../../src/storage/file_system_storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"file_system_storage.js","sourceRoot":"","sources":["../../../src/storage/file_system_storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CollabComment, CollaborationStorage, CollabVersion, PruneVersionsOptions } from '../types.js';
|
|
1
|
+
import type { CollabComment, CollaborationStorage, CollabVersion, ListPageOptions, PruneVersionsOptions } from '../types.js';
|
|
2
2
|
/**
|
|
3
3
|
* In-memory storage — development fallback when the app doesn't configure
|
|
4
4
|
* `storage` (nothing survives a restart). Production ALWAYS passes persistent
|
|
@@ -12,11 +12,11 @@ export declare class InMemoryCollaborationStorage implements CollaborationStorag
|
|
|
12
12
|
state: Uint8Array;
|
|
13
13
|
} | null>;
|
|
14
14
|
saveDocument(docName: string, state: Uint8Array): Promise<void>;
|
|
15
|
-
listVersions(docName: string): Promise<CollabVersion[]>;
|
|
15
|
+
listVersions(docName: string, page?: ListPageOptions): Promise<CollabVersion[]>;
|
|
16
16
|
saveVersion(docName: string, version: CollabVersion, snapshot: Uint8Array): Promise<void>;
|
|
17
17
|
loadVersionSnapshot(docName: string, versionId: string): Promise<Uint8Array | null>;
|
|
18
18
|
pruneVersions({ keep, docName, dryRun }: PruneVersionsOptions): Promise<number>;
|
|
19
|
-
listComments(docName: string, space?: string): Promise<CollabComment[]>;
|
|
19
|
+
listComments(docName: string, space?: string, page?: ListPageOptions): Promise<CollabComment[]>;
|
|
20
20
|
saveComment(docName: string, comment: CollabComment): Promise<void>;
|
|
21
21
|
deleteComment(docName: string, commentId: string): Promise<void>;
|
|
22
22
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"in_memory_storage.d.ts","sourceRoot":"","sources":["../../../src/storage/in_memory_storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,oBAAoB,EACrB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"in_memory_storage.d.ts","sourceRoot":"","sources":["../../../src/storage/in_memory_storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAUrB;;;;GAIG;AACH,qBAAa,4BAA6B,YAAW,oBAAoB;IACvE,OAAO,CAAC,IAAI,CAAiC;IAC7C,OAAO,CAAC,QAAQ,CAA8E;IAC9F,OAAO,CAAC,QAAQ,CAAsC;IAEhD,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,UAAU,CAAA;KAAE,GAAG,IAAI,CAAC,CAGzE;IAEK,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpE;IAEK,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAGpF;IAEK,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAK9F;IAEK,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAGxF;IAEK,aAAa,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAqBpF;IAEK,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,eAAe,GACrB,OAAO,CAAC,aAAa,EAAE,CAAC,CAI1B;IAEK,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CASxE;IAEK,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMrE;CACF"}
|
|
@@ -1,4 +1,11 @@
|
|
|
1
|
-
import { assertPruneKeep, versionsToPrune } from './shared.js';
|
|
1
|
+
import { assertPruneKeep, clampLimit, clampOffset, versionsToPrune } from './shared.js';
|
|
2
|
+
/** Applies an opt-in `{ limit, offset }` page to an already-ordered array. */
|
|
3
|
+
function paginate(items, page) {
|
|
4
|
+
if (!page)
|
|
5
|
+
return items;
|
|
6
|
+
const offset = clampOffset(page.offset);
|
|
7
|
+
return items.slice(offset, offset + clampLimit(page.limit));
|
|
8
|
+
}
|
|
2
9
|
/**
|
|
3
10
|
* In-memory storage — development fallback when the app doesn't configure
|
|
4
11
|
* `storage` (nothing survives a restart). Production ALWAYS passes persistent
|
|
@@ -15,8 +22,9 @@ export class InMemoryCollaborationStorage {
|
|
|
15
22
|
async saveDocument(docName, state) {
|
|
16
23
|
this.docs.set(docName, state);
|
|
17
24
|
}
|
|
18
|
-
async listVersions(docName) {
|
|
19
|
-
|
|
25
|
+
async listVersions(docName, page) {
|
|
26
|
+
const all = (this.versions.get(docName) ?? []).map((entry) => entry.version);
|
|
27
|
+
return paginate(all, page);
|
|
20
28
|
}
|
|
21
29
|
async saveVersion(docName, version, snapshot) {
|
|
22
30
|
if (!this.versions.has(docName)) {
|
|
@@ -44,9 +52,10 @@ export class InMemoryCollaborationStorage {
|
|
|
44
52
|
}
|
|
45
53
|
return removed;
|
|
46
54
|
}
|
|
47
|
-
async listComments(docName, space) {
|
|
55
|
+
async listComments(docName, space, page) {
|
|
48
56
|
const all = this.comments.get(docName) ?? [];
|
|
49
|
-
|
|
57
|
+
const filtered = space ? all.filter((comment) => comment.space === space) : all;
|
|
58
|
+
return paginate(filtered, page);
|
|
50
59
|
}
|
|
51
60
|
async saveComment(docName, comment) {
|
|
52
61
|
const existing = this.comments.get(docName) ?? [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"in_memory_storage.js","sourceRoot":"","sources":["../../../src/storage/in_memory_storage.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"in_memory_storage.js","sourceRoot":"","sources":["../../../src/storage/in_memory_storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CollabComment, CollaborationStorage, CollabVersion, PruneVersionsOptions } from '../types.js';
|
|
1
|
+
import type { CollabComment, CollaborationStorage, CollabVersion, ListPageOptions, PruneVersionsOptions } from '../types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Minimal structural contract for the lucid connection — avoids the
|
|
4
4
|
* dual-package issue of @adonisjs/lucid (app and library may resolve copies
|
|
@@ -32,11 +32,11 @@ export declare class LucidStorage implements CollaborationStorage {
|
|
|
32
32
|
state: Uint8Array;
|
|
33
33
|
} | null>;
|
|
34
34
|
saveDocument(docName: string, state: Uint8Array, meta?: Record<string, unknown>): Promise<void>;
|
|
35
|
-
listVersions(docName: string): Promise<CollabVersion[]>;
|
|
35
|
+
listVersions(docName: string, page?: ListPageOptions): Promise<CollabVersion[]>;
|
|
36
36
|
saveVersion(docName: string, version: CollabVersion, snapshot: Uint8Array): Promise<void>;
|
|
37
37
|
loadVersionSnapshot(docName: string, versionId: string): Promise<Uint8Array | null>;
|
|
38
38
|
pruneVersions({ keep, docName, dryRun }: PruneVersionsOptions): Promise<number>;
|
|
39
|
-
listComments(docName: string, space?: string): Promise<CollabComment[]>;
|
|
39
|
+
listComments(docName: string, space?: string, page?: ListPageOptions): Promise<CollabComment[]>;
|
|
40
40
|
private toComment;
|
|
41
41
|
/**
|
|
42
42
|
* Indexed single-row lookup — the reason {@link CollaborationStorage.getComment}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucid_storage.d.ts","sourceRoot":"","sources":["../../../src/storage/lucid_storage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAGrB;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACpC;AAKD;;;;;;;;;;GAUG;AACH,qBAAa,YAAa,YAAW,oBAAoB;IAKrD,OAAO,CAAC,UAAU,CAAC;IAJrB,OAAO,CAAC,KAAK,CAA8B;IAE3C,YACE,EAAE,CAAC,EAAE,mBAAmB,EAChB,UAAU,CAAC,EAAE,MAAM,YAAA,EAI5B;IAED,6EAA6E;IAC7E,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,MAAM,CAAC,GAAG,CAAoC;IAEtD,yFAAyF;YAC3E,IAAI;YAWJ,YAAY;IAmDpB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,UAAU,CAAA;KAAE,GAAG,IAAI,CAAC,CAQzE;IAEK,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,UAAU,EACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"lucid_storage.d.ts","sourceRoot":"","sources":["../../../src/storage/lucid_storage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,oBAAoB,EACrB,MAAM,aAAa,CAAC;AAGrB;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACpC;AAKD;;;;;;;;;;GAUG;AACH,qBAAa,YAAa,YAAW,oBAAoB;IAKrD,OAAO,CAAC,UAAU,CAAC;IAJrB,OAAO,CAAC,KAAK,CAA8B;IAE3C,YACE,EAAE,CAAC,EAAE,mBAAmB,EAChB,UAAU,CAAC,EAAE,MAAM,YAAA,EAI5B;IAED,6EAA6E;IAC7E,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,MAAM,CAAC,GAAG,CAAoC;IAEtD,yFAAyF;YAC3E,IAAI;YAWJ,YAAY;IAmDpB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,UAAU,CAAA;KAAE,GAAG,IAAI,CAAC,CAQzE;IAEK,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,UAAU,EACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,IAAI,CAAC,CAqBf;IAEK,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAmBpF;IAEK,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAe9F;IAEK,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAUxF;IAEK,aAAa,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAkCpF;IAEK,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,eAAe,GACrB,OAAO,CAAC,aAAa,EAAE,CAAC,CAc1B;IAED,OAAO,CAAC,SAAS;IAqBjB;;;;OAIG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAUlF;IAEK,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA0BxE;IAEK,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIrE;CACF;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,YAAY,CAEhF"}
|