@adonis-agora/collaboration-client 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +86 -0
- package/dist/src/context.d.ts +28 -0
- package/dist/src/context.d.ts.map +1 -0
- package/dist/src/context.js +45 -0
- package/dist/src/context.js.map +1 -0
- package/dist/src/hooks/use_automerge_doc.d.ts +29 -0
- package/dist/src/hooks/use_automerge_doc.d.ts.map +1 -0
- package/dist/src/hooks/use_automerge_doc.js +93 -0
- package/dist/src/hooks/use_automerge_doc.js.map +1 -0
- package/dist/src/hooks/use_awareness.d.ts +12 -0
- package/dist/src/hooks/use_awareness.d.ts.map +1 -0
- package/dist/src/hooks/use_awareness.js +47 -0
- package/dist/src/hooks/use_awareness.js.map +1 -0
- package/dist/src/hooks/use_collab_doc.d.ts +17 -0
- package/dist/src/hooks/use_collab_doc.d.ts.map +1 -0
- package/dist/src/hooks/use_collab_doc.js +24 -0
- package/dist/src/hooks/use_collab_doc.js.map +1 -0
- package/dist/src/hooks/use_comments.d.ts +21 -0
- package/dist/src/hooks/use_comments.d.ts.map +1 -0
- package/dist/src/hooks/use_comments.js +66 -0
- package/dist/src/hooks/use_comments.js.map +1 -0
- package/dist/src/hooks/use_versions.d.ts +18 -0
- package/dist/src/hooks/use_versions.d.ts.map +1 -0
- package/dist/src/hooks/use_versions.js +58 -0
- package/dist/src/hooks/use_versions.js.map +1 -0
- package/dist/src/index.d.ts +20 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +13 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/rest_client.d.ts +27 -0
- package/dist/src/rest_client.d.ts.map +1 -0
- package/dist/src/rest_client.js +89 -0
- package/dist/src/rest_client.js.map +1 -0
- package/dist/src/session.d.ts +26 -0
- package/dist/src/session.d.ts.map +1 -0
- package/dist/src/session.js +129 -0
- package/dist/src/session.js.map +1 -0
- package/dist/src/transports/hocuspocus.d.ts +20 -0
- package/dist/src/transports/hocuspocus.d.ts.map +1 -0
- package/dist/src/transports/hocuspocus.js +45 -0
- package/dist/src/transports/hocuspocus.js.map +1 -0
- package/dist/src/transports/index.d.ts +4 -0
- package/dist/src/transports/index.d.ts.map +1 -0
- package/dist/src/transports/index.js +16 -0
- package/dist/src/transports/index.js.map +1 -0
- package/dist/src/transports/normalize_status.d.ts +7 -0
- package/dist/src/transports/normalize_status.d.ts.map +1 -0
- package/dist/src/transports/normalize_status.js +12 -0
- package/dist/src/transports/normalize_status.js.map +1 -0
- package/dist/src/transports/partykit.d.ts +15 -0
- package/dist/src/transports/partykit.d.ts.map +1 -0
- package/dist/src/transports/partykit.js +63 -0
- package/dist/src/transports/partykit.js.map +1 -0
- package/dist/src/transports/partyserver.d.ts +15 -0
- package/dist/src/transports/partyserver.d.ts.map +1 -0
- package/dist/src/transports/partyserver.js +61 -0
- package/dist/src/transports/partyserver.js.map +1 -0
- package/dist/src/types.d.ts +85 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +2 -0
- package/dist/src/types.js.map +1 -0
- package/package.json +77 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partyserver.js","sourceRoot":"","sources":["../../../src/transports/partyserver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tipos do client. Cópias estruturais (types-only) dos contratos do server
|
|
3
|
+
* pra manter os pacotes independentes.
|
|
4
|
+
*/
|
|
5
|
+
import type * as AwarenessProtocol from 'y-protocols/awareness.js';
|
|
6
|
+
import type * as Y from 'yjs';
|
|
7
|
+
/** Estado da conexão WebSocket com o sync engine. */
|
|
8
|
+
export type CollabStatus = 'connecting' | 'connected' | 'disconnected' | 'error';
|
|
9
|
+
/** Resposta de GET /collaboration/token. */
|
|
10
|
+
export interface CollabTokenInfo {
|
|
11
|
+
token: string;
|
|
12
|
+
/** URL do WS (self-hosted: path relativo; partykit: origin remoto). */
|
|
13
|
+
wsUrl: string;
|
|
14
|
+
/** Engine informado pelo server (yjs | automerge | partykit). */
|
|
15
|
+
engine: string;
|
|
16
|
+
}
|
|
17
|
+
/** Comentário persistido (espelho do CollabComment do server). */
|
|
18
|
+
export interface CollabComment {
|
|
19
|
+
id: string;
|
|
20
|
+
documentName: string;
|
|
21
|
+
space: string;
|
|
22
|
+
anchor: {
|
|
23
|
+
kind: 'text-range';
|
|
24
|
+
start: number;
|
|
25
|
+
end: number;
|
|
26
|
+
selectedText: string;
|
|
27
|
+
} | {
|
|
28
|
+
kind: 'canvas-object';
|
|
29
|
+
shapeId: string;
|
|
30
|
+
relativeX: number;
|
|
31
|
+
relativeY: number;
|
|
32
|
+
} | {
|
|
33
|
+
kind: 'timestamp';
|
|
34
|
+
at: number;
|
|
35
|
+
end?: number;
|
|
36
|
+
};
|
|
37
|
+
body: string;
|
|
38
|
+
userId: string;
|
|
39
|
+
authorName?: string | null;
|
|
40
|
+
resolvedAt: string | null;
|
|
41
|
+
createdAt: string;
|
|
42
|
+
updatedAt: string | null;
|
|
43
|
+
}
|
|
44
|
+
/** Versão registrada no histórico (espelho do CollabVersion). */
|
|
45
|
+
export interface CollabVersion {
|
|
46
|
+
id: string;
|
|
47
|
+
createdAt: string;
|
|
48
|
+
createdBy: string | null;
|
|
49
|
+
label: string | null;
|
|
50
|
+
seq: number;
|
|
51
|
+
}
|
|
52
|
+
/** Peer presente num documento (metadados de awareness). */
|
|
53
|
+
export interface CollabPeer {
|
|
54
|
+
clientId: number;
|
|
55
|
+
userId?: string | undefined;
|
|
56
|
+
name?: string | undefined;
|
|
57
|
+
avatarUrl?: string | null;
|
|
58
|
+
}
|
|
59
|
+
/** Transporte mínimo sobre o engine escolhido pelo server. */
|
|
60
|
+
export interface CollabTransport {
|
|
61
|
+
readonly doc: Y.Doc;
|
|
62
|
+
/** Hocuspocus expõe Awareness | null; partykit sempre não-null. */
|
|
63
|
+
readonly awareness?: AwarenessProtocol.Awareness | null;
|
|
64
|
+
getStatus(): CollabStatus;
|
|
65
|
+
/** Assina mudanças de status; retorna unsubscribe. */
|
|
66
|
+
subscribe(listener: () => void): () => void;
|
|
67
|
+
destroy(): void;
|
|
68
|
+
}
|
|
69
|
+
/** Factory de transporte — injetável pra testes e engines custom. */
|
|
70
|
+
export type TransportFactory = (info: CollabTokenInfo, doc: Y.Doc, docName: string) => CollabTransport;
|
|
71
|
+
/** Config global do client (props do <CollaborationProvider>). */
|
|
72
|
+
export interface CollaborationClientConfig {
|
|
73
|
+
/** Base URL do server Adonis (ex.: https://api.app). */
|
|
74
|
+
baseUrl: string;
|
|
75
|
+
/**
|
|
76
|
+
* Headers anexados às chamadas REST (ex.: cookie/token de sessão).
|
|
77
|
+
* Função pra suportar tokens que rotacionam.
|
|
78
|
+
*/
|
|
79
|
+
getHeaders?: () => Record<string, string> | Promise<Record<string, string>>;
|
|
80
|
+
/** Factory custom de transporte (tests / engines próprios). */
|
|
81
|
+
createTransport?: TransportFactory;
|
|
82
|
+
/** Override de fetch (testes/SSR). */
|
|
83
|
+
fetchImpl?: typeof fetch;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@adonis-agora/collaboration-client",
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"description": "Client-side React hooks for @adonis-agora/collaboration — collaborative docs, presence, comments and versions. Part of the Agora ecosystem.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/DavideCarvalho/adonis-agora-collaboration.git",
|
|
9
|
+
"directory": "packages/client"
|
|
10
|
+
},
|
|
11
|
+
"author": "Davi Carvalho <davi@goflip.ai>",
|
|
12
|
+
"type": "module",
|
|
13
|
+
"main": "./dist/src/index.js",
|
|
14
|
+
"types": "./dist/src/index.d.ts",
|
|
15
|
+
"exports": {
|
|
16
|
+
".": {
|
|
17
|
+
"types": "./dist/src/index.d.ts",
|
|
18
|
+
"import": "./dist/src/index.js",
|
|
19
|
+
"default": "./dist/src/index.js"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"files": [
|
|
23
|
+
"dist/",
|
|
24
|
+
"README.md"
|
|
25
|
+
],
|
|
26
|
+
"sideEffects": false,
|
|
27
|
+
"scripts": {
|
|
28
|
+
"build": "pnpm run clean && tsc -p tsconfig.build.json",
|
|
29
|
+
"check:dist": "node ../../scripts/assert-build-output.mjs dist src/index.js",
|
|
30
|
+
"clean": "rm -rf dist",
|
|
31
|
+
"prepack": "pnpm run check:dist",
|
|
32
|
+
"test": "vitest run --passWithNoTests",
|
|
33
|
+
"test:watch": "vitest",
|
|
34
|
+
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
35
|
+
},
|
|
36
|
+
"dependencies": {
|
|
37
|
+
"@automerge/automerge": "^3.4.1",
|
|
38
|
+
"@hocuspocus/provider": "^4.6.0",
|
|
39
|
+
"y-partykit": "^0.0.33",
|
|
40
|
+
"y-partyserver": "^2.2.0",
|
|
41
|
+
"y-protocols": "^1.0.7",
|
|
42
|
+
"yjs": "^13.6.27"
|
|
43
|
+
},
|
|
44
|
+
"peerDependencies": {
|
|
45
|
+
"react": "^18.0.0 || ^19.0.0"
|
|
46
|
+
},
|
|
47
|
+
"peerDependenciesMeta": {
|
|
48
|
+
"react": {
|
|
49
|
+
"optional": true
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"devDependencies": {
|
|
53
|
+
"@swc/core": "1.15.47",
|
|
54
|
+
"@testing-library/react": "16.3.0",
|
|
55
|
+
"@types/node": "22.20.1",
|
|
56
|
+
"@types/react": "18.3.27",
|
|
57
|
+
"@types/react-dom": "18.3.7",
|
|
58
|
+
"jsdom": "26.1.0",
|
|
59
|
+
"react": "18.3.1",
|
|
60
|
+
"react-dom": "18.3.1",
|
|
61
|
+
"typescript": "5.9.3",
|
|
62
|
+
"unplugin-swc": "1.5.11",
|
|
63
|
+
"vitest": "3.2.7"
|
|
64
|
+
},
|
|
65
|
+
"engines": {
|
|
66
|
+
"node": ">=20.6.0"
|
|
67
|
+
},
|
|
68
|
+
"keywords": [
|
|
69
|
+
"adonisjs",
|
|
70
|
+
"crdt",
|
|
71
|
+
"yjs",
|
|
72
|
+
"collaboration",
|
|
73
|
+
"realtime",
|
|
74
|
+
"react-hooks",
|
|
75
|
+
"agora"
|
|
76
|
+
]
|
|
77
|
+
}
|