@adonis-agora/collaboration 0.1.4 → 0.2.1

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.
Files changed (110) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +172 -0
  3. package/dist/commands/collaboration_init.d.ts +26 -0
  4. package/dist/commands/collaboration_init.d.ts.map +1 -0
  5. package/dist/commands/collaboration_init.js +83 -0
  6. package/dist/commands/collaboration_init.js.map +1 -0
  7. package/dist/commands/commands.json +1 -0
  8. package/dist/commands/main.d.ts +16 -0
  9. package/dist/commands/main.d.ts.map +1 -0
  10. package/dist/commands/main.js +20 -0
  11. package/dist/commands/main.js.map +1 -0
  12. package/dist/commands/make_collab_document.d.ts +23 -0
  13. package/dist/commands/make_collab_document.d.ts.map +1 -0
  14. package/dist/commands/make_collab_document.js +75 -0
  15. package/dist/commands/make_collab_document.js.map +1 -0
  16. package/dist/configure.d.ts +3 -1
  17. package/dist/configure.d.ts.map +1 -1
  18. package/dist/configure.js +6 -1
  19. package/dist/configure.js.map +1 -1
  20. package/dist/providers/collaboration_provider.d.ts +6 -2
  21. package/dist/providers/collaboration_provider.d.ts.map +1 -1
  22. package/dist/providers/collaboration_provider.js +36 -17
  23. package/dist/providers/collaboration_provider.js.map +1 -1
  24. package/dist/src/auth/token.d.ts +59 -0
  25. package/dist/src/auth/token.d.ts.map +1 -0
  26. package/dist/src/auth/token.js +91 -0
  27. package/dist/src/auth/token.js.map +1 -0
  28. package/dist/src/codegen/documents_registry.d.ts +28 -0
  29. package/dist/src/codegen/documents_registry.d.ts.map +1 -0
  30. package/dist/src/codegen/documents_registry.js +50 -0
  31. package/dist/src/codegen/documents_registry.js.map +1 -0
  32. package/dist/src/codegen_init.d.ts +3 -0
  33. package/dist/src/codegen_init.d.ts.map +1 -0
  34. package/dist/src/codegen_init.js +45 -0
  35. package/dist/src/codegen_init.js.map +1 -0
  36. package/dist/src/collaboration_manager.d.ts +20 -11
  37. package/dist/src/collaboration_manager.d.ts.map +1 -1
  38. package/dist/src/collaboration_manager.js +46 -17
  39. package/dist/src/collaboration_manager.js.map +1 -1
  40. package/dist/src/define_config.d.ts +25 -6
  41. package/dist/src/define_config.d.ts.map +1 -1
  42. package/dist/src/define_config.js +2 -2
  43. package/dist/src/define_config.js.map +1 -1
  44. package/dist/src/driver.d.ts +26 -32
  45. package/dist/src/driver.d.ts.map +1 -1
  46. package/dist/src/drivers/automerge/automerge_driver.d.ts +7 -12
  47. package/dist/src/drivers/automerge/automerge_driver.d.ts.map +1 -1
  48. package/dist/src/drivers/automerge/automerge_driver.js +37 -75
  49. package/dist/src/drivers/automerge/automerge_driver.js.map +1 -1
  50. package/dist/src/drivers/partykit/partykit_driver.d.ts +54 -0
  51. package/dist/src/drivers/partykit/partykit_driver.d.ts.map +1 -0
  52. package/dist/src/drivers/partykit/partykit_driver.js +162 -0
  53. package/dist/src/drivers/partykit/partykit_driver.js.map +1 -0
  54. package/dist/src/drivers/shared.d.ts +17 -0
  55. package/dist/src/drivers/shared.d.ts.map +1 -0
  56. package/dist/src/drivers/shared.js +46 -0
  57. package/dist/src/drivers/shared.js.map +1 -0
  58. package/dist/src/drivers/yjs/yjs_driver.d.ts +18 -12
  59. package/dist/src/drivers/yjs/yjs_driver.d.ts.map +1 -1
  60. package/dist/src/drivers/yjs/yjs_driver.js +50 -94
  61. package/dist/src/drivers/yjs/yjs_driver.js.map +1 -1
  62. package/dist/src/http/types.d.ts +79 -0
  63. package/dist/src/http/types.d.ts.map +1 -0
  64. package/dist/src/http/types.js +8 -0
  65. package/dist/src/http/types.js.map +1 -0
  66. package/dist/src/index.d.ts +7 -3
  67. package/dist/src/index.d.ts.map +1 -1
  68. package/dist/src/index.js +7 -2
  69. package/dist/src/index.js.map +1 -1
  70. package/dist/src/routes.d.ts +29 -0
  71. package/dist/src/routes.d.ts.map +1 -0
  72. package/dist/src/routes.js +189 -0
  73. package/dist/src/routes.js.map +1 -0
  74. package/dist/src/services/booted_app.js +1 -1
  75. package/dist/src/services/booted_app.js.map +1 -1
  76. package/dist/src/services/comment_service.d.ts +5 -4
  77. package/dist/src/services/comment_service.d.ts.map +1 -1
  78. package/dist/src/services/comment_service.js +5 -4
  79. package/dist/src/services/comment_service.js.map +1 -1
  80. package/dist/src/services/main.js +2 -2
  81. package/dist/src/services/main.js.map +1 -1
  82. package/dist/src/storage/file_system_storage.d.ts +2 -2
  83. package/dist/src/storage/file_system_storage.js +2 -2
  84. package/dist/src/storage/in_memory_storage.d.ts +3 -3
  85. package/dist/src/storage/in_memory_storage.js +3 -3
  86. package/dist/src/storage/lucid_storage.d.ts +9 -8
  87. package/dist/src/storage/lucid_storage.d.ts.map +1 -1
  88. package/dist/src/storage/lucid_storage.js +13 -12
  89. package/dist/src/storage/lucid_storage.js.map +1 -1
  90. package/dist/src/types.d.ts +62 -35
  91. package/dist/src/types.d.ts.map +1 -1
  92. package/dist/src/types.js +5 -6
  93. package/dist/src/types.js.map +1 -1
  94. package/dist/src/versioning.d.ts +3 -3
  95. package/dist/src/versioning.d.ts.map +1 -1
  96. package/dist/src/versioning.js +3 -3
  97. package/dist/src/versioning.js.map +1 -1
  98. package/dist/stubs/collaboration/document_types.stub +41 -0
  99. package/dist/stubs/collaboration/documents_dir.stub +3 -0
  100. package/dist/stubs/collaboration/migrations/collab_comments.stub +29 -0
  101. package/dist/stubs/collaboration/migrations/collab_documents.stub +23 -0
  102. package/dist/stubs/collaboration/migrations/collab_versions.stub +26 -0
  103. package/dist/stubs/partykit/worker/package.json.stub +21 -0
  104. package/dist/stubs/partykit/worker/party.ts.stub +175 -0
  105. package/dist/stubs/partykit/worker/partykit.toml.stub +14 -0
  106. package/package.json +19 -4
  107. package/dist/src/services/presence_service.d.ts +0 -44
  108. package/dist/src/services/presence_service.d.ts.map +0 -1
  109. package/dist/src/services/presence_service.js +0 -103
  110. package/dist/src/services/presence_service.js.map +0 -1
@@ -1,9 +1,9 @@
1
1
  /**
2
- * Storage Lucid oficial — persiste docs (estado binário), versões e
3
- * comentários ancorados em tabelas do banco do app.
2
+ * Official Lucid storage — persists docs (binary state), versions and
3
+ * anchored comments in tables of the app's database.
4
4
  *
5
- * As tabelas são criadas no primeiro uso (IF NOT EXISTS), então o app não
6
- * precisa de migration própria pra usar a lib em dev.
5
+ * Tables are created on first use (IF NOT EXISTS), so the app doesn't need
6
+ * its own migration to use the library in dev.
7
7
  *
8
8
  * @example
9
9
  * const storage = new LucidStorage(db)
@@ -17,14 +17,14 @@ export class LucidStorage {
17
17
  this.db = db;
18
18
  this.connection = connection;
19
19
  }
20
- /** Garante as tabelas sob demanda (lazy) — o boot não toca no banco. */
20
+ /** Ensures the tables lazily on demand — boot doesn't touch the database. */
21
21
  ensure() {
22
22
  if (!this.ready) {
23
23
  this.ready = this.ensureSchema();
24
24
  }
25
25
  return this.ready;
26
26
  }
27
- /** A conexão do lucid é um Knex (QueryClientContract estende o builder). */
27
+ /** The lucid connection is a Knex instance (QueryClientContract extends the builder). */
28
28
  knex() {
29
29
  return this.db.connection(this.connection);
30
30
  }
@@ -70,10 +70,7 @@ export class LucidStorage {
70
70
  }
71
71
  async saveDocument(docName, state, meta) {
72
72
  await this.ensure();
73
- const existing = await this.knex()
74
- .from('collab_documents')
75
- .where('doc_name', docName)
76
- .first();
73
+ const existing = await this.knex().from('collab_documents').where('doc_name', docName).first();
77
74
  const payload = {
78
75
  state: Buffer.from(state),
79
76
  meta: meta ?? null,
@@ -83,7 +80,9 @@ export class LucidStorage {
83
80
  await this.knex().from('collab_documents').where('doc_name', docName).update(payload);
84
81
  }
85
82
  else {
86
- await this.knex().from('collab_documents').insert({
83
+ await this.knex()
84
+ .from('collab_documents')
85
+ .insert({
87
86
  doc_name: docName,
88
87
  ...payload,
89
88
  created_at: new Date(),
@@ -159,7 +158,9 @@ export class LucidStorage {
159
158
  await this.knex().from('collab_comments').where('id', comment.id).update(payload);
160
159
  }
161
160
  else {
162
- await this.knex().from('collab_comments').insert({
161
+ await this.knex()
162
+ .from('collab_comments')
163
+ .insert({
163
164
  id: comment.id,
164
165
  ...payload,
165
166
  created_at: new Date(comment.createdAt),
@@ -1 +1 @@
1
- {"version":3,"file":"lucid_storage.js","sourceRoot":"","sources":["../../../src/storage/lucid_storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lucid_storage.js","sourceRoot":"","sources":["../../../src/storage/lucid_storage.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,42 @@
1
1
  /**
2
- * Tipos centrais da lib de colaboração.
2
+ * Core types of the collaboration library.
3
3
  *
4
- * A abstração é document-first: um `CollabDocument` é identificado por nome
5
- * (`researches/<id>/writing`, por exemplo) e o driver escolhido decide como
6
- * sincronizar (Yjs/Hocuspocus ou Automerge). Tudo que depende do motor fica
7
- * atrás das interfaces — o app consome apenas `CollaborationManager`.
4
+ * The abstraction is document-first: a `CollabDocument` is identified by name
5
+ * (`researches/<id>/writing`, for example) and the chosen driver decides how
6
+ * to sync (Yjs/Hocuspocus or Automerge). Everything engine-specific stays
7
+ * behind the interfaces — the app only consumes `CollaborationManager`.
8
8
  */
9
- /** Motor CRDT subjacente. */
10
- export type CollaborationEngine = 'yjs' | 'automerge';
11
9
  /**
12
- * Âncora de um comentário — genérica por tipo de conteúdo.
13
- * A lib persiste a âncora + lifecycle; quem sabe interpretá-la é o resolver
14
- * registrado pelo app (texto → offsets, canvas → shapeId, mídia → timestamp).
10
+ * Underlying CRDT engine.
11
+ *
12
+ * `partykit` runs the sync on edge (Cloudflare Workers + Durable Objects) on
13
+ * an origin separate from Adonis — WebSocket traffic doesn't go through the
14
+ * Node server.
15
+ */
16
+ export type CollaborationEngine = 'yjs' | 'automerge' | 'partykit' | 'partyserver';
17
+ /**
18
+ * Edge sync config (engine `partykit`). The worker is generated by
19
+ * `node ace collaboration:init --engine=partykit` and deployed separately;
20
+ * the driver talks to it via HTTP (`onRequest`).
21
+ */
22
+ export interface PartyKitConfig {
23
+ /** PartyKit deployment host (e.g. 'my-app.partykit.dev' or localhost:1999). */
24
+ roomHost: string;
25
+ /** Party name on the worker (default 'main'). */
26
+ party?: string;
27
+ /**
28
+ * HS256 secret used to issue/validate the ephemeral JWT exchanged between
29
+ * Adonis, browser and worker. Required in production — without it the
30
+ * worker rejects connections when configured with `requireToken`.
31
+ */
32
+ jwtSecret?: string;
33
+ /** Timeout for HTTP calls to the worker, in ms (default 10000). */
34
+ fetchTimeoutMs?: number;
35
+ }
36
+ /**
37
+ * Anchor of a comment — generic over content type.
38
+ * The library persists the anchor + lifecycle; interpreting it is up to the
39
+ * resolver registered by the app (text → offsets, canvas → shapeId, media → timestamp).
15
40
  */
16
41
  export type CommentAnchor = {
17
42
  kind: 'text-range';
@@ -28,11 +53,11 @@ export type CommentAnchor = {
28
53
  at: number;
29
54
  end?: number;
30
55
  };
31
- /** Comentário persistido pela lib (thread + resolved + autor). */
56
+ /** Comment persisted by the library (thread + resolved + author). */
32
57
  export interface CollabComment {
33
58
  id: string;
34
59
  documentName: string;
35
- /** Espaço do documento onde a âncora vive ('text', 'canvas', ...). */
60
+ /** Document space where the anchor lives ('text', 'canvas', ...). */
36
61
  space: string;
37
62
  anchor: CommentAnchor;
38
63
  body: string;
@@ -42,49 +67,49 @@ export interface CollabComment {
42
67
  createdAt: string;
43
68
  updatedAt: string | null;
44
69
  }
45
- /** Payload de autenticação anexado à conexão WebSocket. */
70
+ /** Authentication payload attached to the WebSocket connection. */
46
71
  export interface CollabConnectionContext {
47
- /** Id do usuário autenticado (o provider valida antes do handshake). */
72
+ /** Id of the authenticated user (the provider validates before the handshake). */
48
73
  userId: string;
49
- /** Metadados livres (nome, avatar) pra presença. */
74
+ /** Free-form metadata (name, avatar) for presence. */
50
75
  user?: {
51
76
  name?: string;
52
77
  avatarUrl?: string | null;
53
78
  };
54
79
  }
55
- /** Resultado da autorização de leitura/escrita de um documento. */
80
+ /** Result of read/write authorization for a document. */
56
81
  export interface CollabPermission {
57
82
  canRead: boolean;
58
- /** Escrever no conteúdo do documento (editor central). */
83
+ /** Write to the document content (central editor). */
59
84
  canWrite: boolean;
60
- /** Comentar (annotations laterais — não muda o texto). */
85
+ /** Comment (side annotations — doesn't change the text). */
61
86
  canComment: boolean;
62
87
  }
63
- /** Documento colaborativo carregado pelo driver. */
88
+ /** Collaborative document loaded by the driver. */
64
89
  export interface LoadedCollabDocument {
65
- /** Estado binário completo pra enviar a um cliente novo (update merge). */
90
+ /** Full binary state to send to a new client (merge update). */
66
91
  state: Uint8Array;
67
- /** Vetor de estado pra sync diferencial (Yjs: state vector; Automerge: heads). */
92
+ /** State vector for differential sync (Yjs: state vector; Automerge: heads). */
68
93
  vector: Uint8Array;
69
94
  }
70
- /** Uma versão registrada no histórico do documento. */
95
+ /** A version registered in the document history. */
71
96
  export interface CollabVersion {
72
- /** Referência opaca pro driver (snapshot Yjs / hash Automerge). */
97
+ /** Opaque reference for the driver (Yjs snapshot / Automerge hash). */
73
98
  id: string;
74
99
  createdAt: string;
75
100
  createdBy: string | null;
76
101
  label: string | null;
77
- /** Número sequencial amigável (1, 2, 3…). */
102
+ /** Friendly sequential number (1, 2, 3...). */
78
103
  seq: number;
79
104
  }
80
- /** Estatísticas de diff entre duas versões. */
105
+ /** Diff statistics between two versions. */
81
106
  export interface CollabDiffSummary {
82
107
  added: number;
83
108
  removed: number;
84
109
  }
85
110
  /**
86
- * Persistência de documentos + versões + comentários. O app hospedeiro
87
- * implementa isso (banco, S3…) e a lib só conhece a interface.
111
+ * Persistence of documents + versions + comments. The host app implements
112
+ * this (database, S3...) and the library only knows the interface.
88
113
  */
89
114
  export interface CollaborationStorage {
90
115
  loadDocument(docName: string): Promise<{
@@ -94,28 +119,30 @@ export interface CollaborationStorage {
94
119
  listVersions(docName: string): Promise<CollabVersion[]>;
95
120
  saveVersion(docName: string, version: CollabVersion, snapshot: Uint8Array): Promise<void>;
96
121
  loadVersionSnapshot(docName: string, versionId: string): Promise<Uint8Array | null>;
97
- /** Comentários de um documento (por espaço). */
122
+ /** Comments of a document (by space). */
98
123
  listComments(docName: string, space?: string): Promise<CollabComment[]>;
99
124
  saveComment(docName: string, comment: CollabComment): Promise<void>;
100
125
  deleteComment(docName: string, commentId: string): Promise<void>;
101
126
  }
102
- /** Configuração do manager. */
127
+ /** Manager configuration. */
103
128
  export interface CollaborationConfig {
104
129
  engine: CollaborationEngine;
105
- /** Omitido = in-memory (só dev). O stub de config publica um default. */
130
+ /** Omitted = in-memory (dev only). The config stub publishes a default. */
106
131
  storage?: CollaborationStorage;
107
132
  /**
108
- * Autorização por documento. Chamada no handshake (onAuthenticate) e a cada
109
- * mudança de permissão relevante — retorna false pra derrubar a conexão.
133
+ * Per-document authorization. Called at the handshake (onAuthenticate) and
134
+ * on every relevant permission change — return false to drop the connection.
110
135
  */
111
136
  authorize: (ctx: CollabConnectionContext, docName: string) => Promise<CollabPermission>;
112
- /** Redis pra presença cross-instance (opcional em dev single-instance). */
137
+ /** Redis for cross-instance presence (optional in single-instance dev). */
113
138
  redis?: {
114
139
  url: string;
115
140
  };
116
- /** Porta/path do WS quando embutido no server HTTP do Adonis. */
141
+ /** Edge sync via PartyKit (required when engine = 'partykit'). */
142
+ partykit?: PartyKitConfig;
143
+ /** WS port/path when embedded in the Adonis HTTP server. */
117
144
  path?: string;
118
- /** Debounce de persistência em ms (default 2000). */
145
+ /** Persistence debounce in ms (default 2000). */
119
146
  debounce?: number;
120
147
  }
121
148
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
package/dist/src/types.js CHANGED
@@ -1,11 +1,10 @@
1
1
  /**
2
- * Tipos centrais da lib de colaboração.
2
+ * Core types of the collaboration library.
3
3
  *
4
- * A abstração é document-first: um `CollabDocument` é identificado por nome
5
- * (`researches/<id>/writing`, por exemplo) e o driver escolhido decide como
6
- * sincronizar (Yjs/Hocuspocus ou Automerge). Tudo que depende do motor fica
7
- * atrás das interfaces — o app consome apenas `CollaborationManager`.
4
+ * The abstraction is document-first: a `CollabDocument` is identified by name
5
+ * (`researches/<id>/writing`, for example) and the chosen driver decides how
6
+ * to sync (Yjs/Hocuspocus or Automerge). Everything engine-specific stays
7
+ * behind the interfaces — the app only consumes `CollaborationManager`.
8
8
  */
9
- ;
10
9
  export {};
11
10
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA4BF,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -1,9 +1,9 @@
1
1
  /**
2
- * Metadados de versões compartilhados entre drivers — mesma semântica de
3
- * histórico pro Automerge (nativo) e pro Yjs (snapshots).
2
+ * Version metadata shared across drivers — same history semantics for
3
+ * Automerge (native) and Yjs (snapshots).
4
4
  */
5
5
  import type { CollabVersion } from './types.js';
6
- /** Próximo número sequencial a partir das versões existentes. */
6
+ /** Next sequential number based on the existing versions. */
7
7
  export declare function seqVersions(existing: CollabVersion[]): number;
8
8
  export declare function createVersionMetadata(createdBy: string | null, label: string | null, seq: number): CollabVersion;
9
9
  //# sourceMappingURL=versioning.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"versioning.d.ts","sourceRoot":"","sources":["../../src/versioning.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,iEAAiE;AACjE,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,MAAM,CAE7D;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,GAAG,EAAE,MAAM,GACV,aAAa,CAQf"}
1
+ {"version":3,"file":"versioning.d.ts","sourceRoot":"","sources":["../../src/versioning.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,6DAA6D;AAC7D,wBAAgB,WAAW,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,MAAM,CAE7D;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,GAAG,EAAE,MAAM,GACV,aAAa,CAQf"}
@@ -1,9 +1,9 @@
1
1
  /**
2
- * Metadados de versões compartilhados entre drivers — mesma semântica de
3
- * histórico pro Automerge (nativo) e pro Yjs (snapshots).
2
+ * Version metadata shared across drivers — same history semantics for
3
+ * Automerge (native) and Yjs (snapshots).
4
4
  */
5
5
  import { randomUUID } from 'node:crypto';
6
- /** Próximo número sequencial a partir das versões existentes. */
6
+ /** Next sequential number based on the existing versions. */
7
7
  export function seqVersions(existing) {
8
8
  return existing.reduce((max, version) => Math.max(max, version.seq), 0) + 1;
9
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"versioning.js","sourceRoot":"","sources":["../../src/versioning.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,iEAAiE;AACjE,MAAM,UAAU,WAAW,CAAC,QAAyB;IACnD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,SAAwB,EACxB,KAAoB,EACpB,GAAW;IAEX,OAAO;QACL,EAAE,EAAE,UAAU,EAAE;QAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS;QACT,KAAK;QACL,GAAG;KACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"versioning.js","sourceRoot":"","sources":["../../src/versioning.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,6DAA6D;AAC7D,MAAM,UAAU,WAAW,CAAC,QAAyB;IACnD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,SAAwB,EACxB,KAAoB,EACpB,GAAW;IAEX,OAAO;QACL,EAAE,EAAE,UAAU,EAAE;QAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS;QACT,KAAK;QACL,GAAG;KACJ,CAAC;AACJ,CAAC"}
@@ -0,0 +1,41 @@
1
+ {{{
2
+ exports({ to: app.makePath('app', 'collaboration', 'documents', document.fileName) })
3
+ }}}
4
+ import type { CommentAnchor } from '@adonis-agora/collaboration'
5
+
6
+ /**
7
+ * Collaborative document "{{ document.documentName }}".
8
+ *
9
+ * Single source of truth for this document's comment spaces and anchors —
10
+ * importable by the frontend (types-only).
11
+ */
12
+
13
+ /** Anchor kinds accepted by this document. */
14
+ export type {{ document.className }}Anchor =
15
+ {{#each document.anchorKinds}}
16
+ | Extract<CommentAnchor, { kind: '{{ this }}' }>
17
+ {{/each}}
18
+
19
+ /** Document spaces (e.g. main text, canvas, media). */
20
+ export type {{ document.className }}Space =
21
+ {{#each document.spaceList}}
22
+ | '{{ this }}'
23
+ {{/each}}
24
+
25
+ /** Collaborative document metadata. */
26
+ export interface {{ document.className }}CollabDocument {
27
+ /** Name used in the WS handshake and REST routes (?doc=...). */
28
+ readonly docName: string;
29
+ readonly engine: string;
30
+ }
31
+
32
+ export const {{ document.className }}Document: {{ document.className }}CollabDocument = {
33
+ docName: '{{ document.documentName }}',
34
+ engine: 'yjs',
35
+ }
36
+
37
+ /**
38
+ * Default export consumed by the registry generated at
39
+ * .adonisjs/collaboration/documents.ts (node ace codegen).
40
+ */
41
+ export default {{ document.className }}Document
@@ -0,0 +1,3 @@
1
+ {{{
2
+ exports({ to: app.makePath('app', 'collaboration', 'documents', '.gitkeep') })
3
+ }}}
@@ -0,0 +1,29 @@
1
+ {{{
2
+ exports({ to: app.makePath('database', 'migrations', migration.fileName) })
3
+ }}}
4
+ import { BaseModel, BaseSchema } from '@adonisjs/lucid/schema'
5
+
6
+ export default class extends BaseSchema {
7
+ protected tableName = '{{ migration.tableName }}'
8
+
9
+ async up() {
10
+ this.schema.createTable(this.tableName, (table) => {
11
+ table.uuid('id').primary()
12
+ table.string('document_name').notNullable()
13
+ table.string('space').notNullable().defaultTo('text')
14
+ table.jsonb('anchor').notNullable()
15
+ table.text('body').notNullable()
16
+ table.string('user_id').notNullable()
17
+ table.string('author_name').nullable()
18
+ table.timestamp('resolved_at', { useTz: true }).nullable()
19
+ table.timestamp('created_at', { useTz: true }).notNullable()
20
+ table.timestamp('updated_at', { useTz: true }).nullable()
21
+
22
+ table.index(['document_name', 'space'])
23
+ })
24
+ }
25
+
26
+ async down() {
27
+ this.schema.dropTable(this.tableName)
28
+ }
29
+ }
@@ -0,0 +1,23 @@
1
+ {{{
2
+ exports({ to: app.makePath('database', 'migrations', migration.fileName) })
3
+ }}}
4
+ import { BaseModel, BaseSchema } from '@adonisjs/lucid/schema'
5
+
6
+ export default class extends BaseSchema {
7
+ protected tableName = '{{ migration.tableName }}'
8
+
9
+ async up() {
10
+ this.schema.createTable(this.tableName, (table) => {
11
+ table.uuid('id').primary()
12
+ table.string('name').notNullable().unique()
13
+ table.string('engine').notNullable().defaultTo('yjs')
14
+ table.jsonb('meta').nullable()
15
+ table.timestamp('created_at', { useTz: true }).notNullable()
16
+ table.timestamp('updated_at', { useTz: true }).notNullable()
17
+ })
18
+ }
19
+
20
+ async down() {
21
+ this.schema.dropTable(this.tableName)
22
+ }
23
+ }
@@ -0,0 +1,26 @@
1
+ {{{
2
+ exports({ to: app.makePath('database', 'migrations', migration.fileName) })
3
+ }}}
4
+ import { BaseModel, BaseSchema } from '@adonisjs/lucid/schema'
5
+
6
+ export default class extends BaseSchema {
7
+ protected tableName = '{{ migration.tableName }}'
8
+
9
+ async up() {
10
+ this.schema.createTable(this.tableName, (table) => {
11
+ table.uuid('id').primary()
12
+ table.string('document_name').notNullable()
13
+ table.integer('seq').notNullable()
14
+ table.string('label').nullable()
15
+ table.string('created_by').nullable()
16
+ table.binary('snapshot').notNullable()
17
+ table.timestamp('created_at', { useTz: true }).notNullable()
18
+
19
+ table.index(['document_name', 'seq'])
20
+ })
21
+ }
22
+
23
+ async down() {
24
+ this.schema.dropTable(this.tableName)
25
+ }
26
+ }
@@ -0,0 +1,21 @@
1
+ {{{
2
+ exports({ to: app.makePath('partykit-worker', 'package.json') })
3
+ }}}
4
+ {
5
+ "name": "collab-worker",
6
+ "private": true,
7
+ "type": "module",
8
+ "scripts": {
9
+ "dev": "partykit dev",
10
+ "deploy": "partykit deploy"
11
+ },
12
+ "dependencies": {
13
+ "y-partykit": "^0.0.33",
14
+ "yjs": "^13.6.27"
15
+ },
16
+ "devDependencies": {
17
+ "@types/node": "^22.20.1",
18
+ "partykit": "^0.0.115",
19
+ "typescript": "^5.9.3"
20
+ }
21
+ }