@difizen/libro-shared-model 0.0.2-alpha.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 ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023-present Difizen Team
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1 @@
1
+ # libro shared model
package/es/api.d.ts ADDED
@@ -0,0 +1,639 @@
1
+ /**
2
+ * This file defines the shared shared-models types.
3
+ *
4
+ * - Notebook Type.
5
+ * - Notebook Metadata Types.
6
+ * - Cell Types.
7
+ * - Cell Metadata Types.
8
+ *
9
+ * It also defines the shared changes to be used in the events.
10
+ */
11
+ import type { INotebookMetadata, PartialJSONValue, IRawCell, ICodeCell, IMarkdownCell, IBaseCell, IBaseCellMetadata, CellType, ExecutionCount, IOutput, IAttachments, IUnrecognizedCell } from '@difizen/libro-common';
12
+ import type { Disposable, Event } from '@difizen/mana-common';
13
+ /**
14
+ * Changes on Sequence-like data are expressed as Quill-inspired deltas.
15
+ *
16
+ * @source https://quilljs.com/docs/delta/
17
+ */
18
+ export type Delta<T> = {
19
+ insert?: T;
20
+ delete?: number;
21
+ retain?: number;
22
+ }[];
23
+ /**
24
+ * ISharedBase defines common operations that can be performed on any shared object.
25
+ */
26
+ export interface ISharedBase extends Disposable {
27
+ /**
28
+ * Undo an operation.
29
+ */
30
+ undo: () => void;
31
+ /**
32
+ * Redo an operation.
33
+ */
34
+ redo: () => void;
35
+ /**
36
+ * Whether the object can redo changes.
37
+ */
38
+ canUndo: () => boolean;
39
+ /**
40
+ * Whether the object can undo changes.
41
+ */
42
+ canRedo: () => boolean;
43
+ /**
44
+ * Clear the change stack.
45
+ */
46
+ clearUndoHistory: () => void;
47
+ /**
48
+ * Perform a transaction. While the function f is called, all changes to the shared
49
+ * document are bundled into a single event.
50
+ */
51
+ transact: (f: () => void) => void;
52
+ }
53
+ /**
54
+ * Implement an API for Context information on the shared information.
55
+ * This is used by, for example, docregistry to share the file-path of the edited content.
56
+ */
57
+ export interface ISharedDocument extends ISharedBase {
58
+ /**
59
+ * The changed signal.
60
+ */
61
+ readonly changed: Event<DocumentChange>;
62
+ }
63
+ /**
64
+ * The ISharedText interface defines models that can be bound to a text editor like CodeMirror.
65
+ */
66
+ export interface ISharedText extends ISharedBase {
67
+ /**
68
+ * The changed signal.
69
+ */
70
+ readonly changed: Event<SourceChange>;
71
+ /**
72
+ * Text
73
+ */
74
+ source: string;
75
+ /**
76
+ * Get text.
77
+ *
78
+ * @returns Text.
79
+ */
80
+ getSource: () => string;
81
+ /**
82
+ * Set text.
83
+ *
84
+ * @param value New text.
85
+ */
86
+ setSource: (value: string) => void;
87
+ /**
88
+ * Replace content from `start' to `end` with `value`.
89
+ *
90
+ * @param start: The start index of the range to replace (inclusive).
91
+ * @param end: The end index of the range to replace (exclusive).
92
+ * @param value: New source (optional).
93
+ */
94
+ updateSource: (start: number, end: number, value?: string) => void;
95
+ }
96
+ /**
97
+ * Text/Markdown/Code files are represented as ISharedFile
98
+ */
99
+ export interface ISharedFile extends ISharedDocument, ISharedText {
100
+ /**
101
+ * The changed signal.
102
+ */
103
+ readonly changed: Event<FileChange>;
104
+ }
105
+ /**
106
+ * Implements an API for INotebookContent
107
+ */
108
+ export interface ISharedNotebook extends ISharedDocument {
109
+ /**
110
+ * The changed signal.
111
+ */
112
+ readonly undoChanged: Event<boolean>;
113
+ /**
114
+ * The changed signal.
115
+ */
116
+ readonly redoChanged: Event<boolean>;
117
+ /**
118
+ * The changed signal.
119
+ */
120
+ readonly changed: Event<NotebookChange>;
121
+ /**
122
+ * Signal triggered when a metadata changes.
123
+ */
124
+ readonly metadataChanged: Event<IMapChange>;
125
+ /**
126
+ * The list of shared cells in the notebook.
127
+ */
128
+ readonly cells: ISharedCell[];
129
+ /**
130
+ * Signal triggered when the cells list changes.
131
+ */
132
+ readonly cellsChanged: Event<IListChange>;
133
+ /**
134
+ * Wether the undo/redo logic should be
135
+ * considered on the full document across all cells.
136
+ */
137
+ readonly disableDocumentWideUndoRedo?: boolean;
138
+ /**
139
+ * Notebook metadata.
140
+ */
141
+ metadata: INotebookMetadata;
142
+ /**
143
+ * The minor version number of the
144
+ */
145
+ readonly nbformat_minor: number;
146
+ /**
147
+ * The major version number of the
148
+ */
149
+ readonly nbformat: number;
150
+ /**
151
+ * Delete a metadata notebook.
152
+ *
153
+ * @param key The key to delete
154
+ */
155
+ deleteMetadata: (key: string) => void;
156
+ /**
157
+ * Returns some metadata associated with the notebook.
158
+ *
159
+ * If no `key` is provided, it will return all metadata.
160
+ * Else it will return the value for that key.
161
+ *
162
+ * @param key Key to get from the metadata
163
+ * @returns Notebook's metadata.
164
+ */
165
+ getMetadata: (key?: string) => INotebookMetadata;
166
+ /**
167
+ * Sets some metadata associated with the notebook.
168
+ *
169
+ * If only one argument is provided, it will override all notebook metadata.
170
+ * Otherwise a single key will be set to a new value.
171
+ *
172
+ * @param metadata All Notebook's metadata or the key to set.
173
+ * @param value New metadata value
174
+ */
175
+ setMetadata: (metadata: INotebookMetadata | string, value?: PartialJSONValue) => void;
176
+ /**
177
+ * Updates the metadata associated with the notebook.
178
+ *
179
+ * @param value: Metadata's attribute to update.
180
+ */
181
+ updateMetadata: (value: Partial<INotebookMetadata>) => void;
182
+ /**
183
+ * Add a shared cell at the notebook bottom.
184
+ *
185
+ * @param cell Cell to add.
186
+ *
187
+ * @returns The added cell.
188
+ */
189
+ addCell: (cell: SharedCell.Cell) => ISharedCell;
190
+ /**
191
+ * Get a shared cell by index.
192
+ *
193
+ * @param index: Cell's position.
194
+ *
195
+ * @returns The requested shared cell.
196
+ */
197
+ getCell: (index: number) => ISharedCell;
198
+ /**
199
+ * Insert a shared cell into a specific position.
200
+ *
201
+ * @param index Cell's position.
202
+ * @param cell Cell to insert.
203
+ *
204
+ * @returns The inserted cell.
205
+ */
206
+ insertCell: (index: number, cell: SharedCell.Cell) => ISharedCell;
207
+ /**
208
+ * Insert a list of shared cells into a specific position.
209
+ *
210
+ * @param index Position to insert the cells.
211
+ * @param cells Array of shared cells to insert.
212
+ *
213
+ * @returns The inserted cells.
214
+ */
215
+ insertCells: (index: number, cells: SharedCell.Cell[]) => ISharedCell[];
216
+ /**
217
+ * Move a cell.
218
+ *
219
+ * @param fromIndex: Index of the cell to move.
220
+ *
221
+ * @param toIndex: New position of the cell.
222
+ */
223
+ moveCell: (fromIndex: number, toIndex: number) => void;
224
+ /**
225
+ * Remove a cell.
226
+ *
227
+ * @param index: Index of the cell to remove.
228
+ */
229
+ deleteCell: (index: number) => void;
230
+ /**
231
+ * Remove a range of cells.
232
+ *
233
+ * @param from: The start index of the range to remove (inclusive).
234
+ *
235
+ * @param to: The end index of the range to remove (exclusive).
236
+ */
237
+ deleteCellRange: (from: number, to: number) => void;
238
+ }
239
+ /**
240
+ * Definition of the map changes for yjs.
241
+ */
242
+ export type MapChange = Map<string, {
243
+ action: 'add' | 'update' | 'delete';
244
+ oldValue: any;
245
+ newValue: any;
246
+ }>;
247
+ /**
248
+ * 类型转换器:将libro的cell type(string) 转换为 'code' | 'markdown' | 'raw' 三种之一
249
+ */
250
+ export type CellTypeAdaptor = (cell_type: CellType) => 'code' | 'markdown' | 'raw';
251
+ /**
252
+ * The namespace for `ISharedNotebook` class statics.
253
+ */
254
+ export declare namespace ISharedNotebook {
255
+ /**
256
+ * The options used to initialize a a ISharedNotebook
257
+ */
258
+ interface IOptions {
259
+ /**
260
+ * Wether the the undo/redo logic should be
261
+ * considered on the full document across all cells.
262
+ */
263
+ disableDocumentWideUndoRedo?: boolean;
264
+ cellTypeAdaptor?: CellTypeAdaptor;
265
+ }
266
+ }
267
+ /** Cell Types. */
268
+ export type ISharedCell = ISharedCodeCell | ISharedRawCell | ISharedMarkdownCell | ISharedUnrecognizedCell;
269
+ /**
270
+ * Shared cell namespace
271
+ */
272
+ export declare namespace SharedCell {
273
+ /**
274
+ * Cell data
275
+ */
276
+ type Cell = (IRawCell | ICodeCell | IMarkdownCell | IBaseCell) & {
277
+ cell_type: string;
278
+ };
279
+ /**
280
+ * Shared cell constructor options.
281
+ */
282
+ interface IOptions {
283
+ /**
284
+ * Optional notebook to which this cell belongs.
285
+ *
286
+ * If not provided the cell will be standalone.
287
+ */
288
+ notebook?: ISharedNotebook | undefined;
289
+ }
290
+ }
291
+ /**
292
+ * Implements an API for IBaseCell.
293
+ */
294
+ export interface ISharedBaseCell<Metadata extends IBaseCellMetadata = IBaseCellMetadata> extends ISharedText {
295
+ /**
296
+ * The type of the cell.
297
+ */
298
+ readonly cell_type: CellType;
299
+ /**
300
+ * The changed signal.
301
+ */
302
+ readonly changed: Event<CellChange<Metadata>>;
303
+ /**
304
+ * Cell id.
305
+ */
306
+ readonly id: string;
307
+ /**
308
+ * Whether the cell is standalone or not.
309
+ *
310
+ * If the cell is standalone. It cannot be
311
+ * inserted into a YNotebook because the Yjs model is already
312
+ * attached to an anonymous Y.Doc instance.
313
+ */
314
+ readonly isStandalone: boolean;
315
+ /**
316
+ * Cell metadata.
317
+ */
318
+ metadata: Partial<Metadata>;
319
+ /**
320
+ * Signal triggered when the cell metadata changes.
321
+ */
322
+ readonly metadataChanged: Event<IMapChange>;
323
+ /**
324
+ * The notebook that this cell belongs to.
325
+ */
326
+ readonly notebook: ISharedNotebook | null;
327
+ /**
328
+ * Get Cell id.
329
+ *
330
+ * @returns Cell id.
331
+ */
332
+ getId: () => string;
333
+ /**
334
+ * Delete a metadata cell.
335
+ *
336
+ * @param key The key to delete
337
+ */
338
+ deleteMetadata: (key: string) => void;
339
+ /**
340
+ * Returns some metadata associated with the cell.
341
+ *
342
+ * If a `key` is provided, returns the metadata value.
343
+ * Otherwise returns all metadata
344
+ *
345
+ * @returns Cell's metadata.
346
+ */
347
+ getMetadata: (key?: string) => Partial<Metadata>;
348
+ /**
349
+ * Sets some cell metadata.
350
+ *
351
+ * If only one argument is provided, it will override all cell metadata.
352
+ * Otherwise a single key will be set to a new value.
353
+ *
354
+ * @param metadata Cell's metadata or key.
355
+ * @param value Metadata value
356
+ */
357
+ setMetadata: (metadata: Partial<Metadata> | string, value?: PartialJSONValue) => void;
358
+ /**
359
+ * Serialize the model to JSON.
360
+ */
361
+ toJSON: () => IBaseCell;
362
+ }
363
+ /**
364
+ * Implements an API for ICodeCell.
365
+ */
366
+ export interface ISharedCodeCell extends ISharedBaseCell<IBaseCellMetadata> {
367
+ /**
368
+ * The type of the cell.
369
+ * note: modified in for libro, code cell type maybe python\sql\javascript etc.
370
+ */
371
+ cell_type: string;
372
+ /**
373
+ * The code cell's prompt number. Will be null if the cell has not been run.
374
+ */
375
+ execution_count: ExecutionCount;
376
+ /**
377
+ * Cell outputs
378
+ */
379
+ outputs: IOutput[];
380
+ /**
381
+ * Execution, display, or stream outputs.
382
+ */
383
+ getOutputs: () => IOutput[];
384
+ /**
385
+ * Add/Update output.
386
+ */
387
+ setOutputs: (outputs: IOutput[]) => void;
388
+ /**
389
+ * Replace content from `start' to `end` with `outputs`.
390
+ *
391
+ * @param start: The start index of the range to replace (inclusive).
392
+ *
393
+ * @param end: The end index of the range to replace (exclusive).
394
+ *
395
+ * @param outputs: New outputs (optional).
396
+ */
397
+ updateOutputs: (start: number, end: number, outputs: IOutput[]) => void;
398
+ /**
399
+ * Serialize the model to JSON.
400
+ */
401
+ toJSON: () => IBaseCell;
402
+ }
403
+ /**
404
+ * Cell with attachment interface.
405
+ */
406
+ export interface ISharedAttachmentsCell extends ISharedBaseCell<IBaseCellMetadata> {
407
+ /**
408
+ * Cell attachments
409
+ */
410
+ attachments?: IAttachments | undefined;
411
+ /**
412
+ * Gets the cell attachments.
413
+ *
414
+ * @returns The cell attachments.
415
+ */
416
+ getAttachments: () => IAttachments | undefined;
417
+ /**
418
+ * Sets the cell attachments
419
+ *
420
+ * @param attachments: The cell attachments.
421
+ */
422
+ setAttachments: (attachments: IAttachments | undefined) => void;
423
+ }
424
+ /**
425
+ * Implements an API for IMarkdownCell.
426
+ */
427
+ export interface ISharedMarkdownCell extends ISharedAttachmentsCell {
428
+ /**
429
+ * String identifying the type of cell.
430
+ */
431
+ cell_type: 'markdown';
432
+ /**
433
+ * Serialize the model to JSON.
434
+ */
435
+ toJSON: () => IMarkdownCell;
436
+ }
437
+ /**
438
+ * Implements an API for IRawCell.
439
+ */
440
+ export interface ISharedRawCell extends ISharedAttachmentsCell {
441
+ /**
442
+ * String identifying the type of cell.
443
+ */
444
+ cell_type: 'raw';
445
+ /**
446
+ * Serialize the model to JSON.
447
+ */
448
+ toJSON: () => IRawCell;
449
+ }
450
+ /**
451
+ * Implements an API for IUnrecognizedCell.
452
+ */
453
+ export interface ISharedUnrecognizedCell extends ISharedBaseCell<IBaseCellMetadata> {
454
+ /**
455
+ * The type of the cell.
456
+ *
457
+ * The notebook format specified the type will not be 'markdown' | 'raw' | 'code'
458
+ */
459
+ cell_type: string;
460
+ /**
461
+ * Serialize the model to JSON.
462
+ */
463
+ toJSON: () => IUnrecognizedCell;
464
+ }
465
+ export type StateChange<T> = {
466
+ /**
467
+ * Key changed
468
+ */
469
+ name: string;
470
+ /**
471
+ * Old value
472
+ */
473
+ oldValue?: T;
474
+ /**
475
+ * New value
476
+ */
477
+ newValue?: T;
478
+ };
479
+ /**
480
+ * Generic document change
481
+ */
482
+ export type DocumentChange = {
483
+ /**
484
+ * The context a map => should be part of the document state map
485
+ */
486
+ contextChange?: MapChange;
487
+ /**
488
+ * Change occurring in the document state.
489
+ */
490
+ stateChange?: StateChange<any>[] | undefined;
491
+ };
492
+ /**
493
+ * The change types which occur on a list.
494
+ */
495
+ export type ListChangeType =
496
+ /**
497
+ * Item(s) were added to the list.
498
+ */
499
+ 'add'
500
+ /**
501
+ * Item(s) were removed from the list.
502
+ */
503
+ | 'remove';
504
+ /**
505
+ * The changed object which is emitted by a list.
506
+ */
507
+ export interface IListChange<T = any> {
508
+ /**
509
+ * The type of change undergone by the vector.
510
+ */
511
+ type: ListChangeType;
512
+ /**
513
+ * The new index associated with the change.
514
+ */
515
+ newIndex: number;
516
+ /**
517
+ * The new values associated with the change.
518
+ *
519
+ * #### Notes
520
+ * The values will be contiguous starting at the `newIndex`.
521
+ */
522
+ newValues: T[];
523
+ /**
524
+ * The old index associated with the change.
525
+ */
526
+ oldIndex: number;
527
+ /**
528
+ * The old values associated with the change.
529
+ *
530
+ * #### Notes
531
+ * The values will be contiguous starting at the `oldIndex`.
532
+ */
533
+ oldValues: T[];
534
+ }
535
+ /**
536
+ * The change types which occur on an observable map.
537
+ */
538
+ export type MapChangeType =
539
+ /**
540
+ * An entry was added.
541
+ */
542
+ 'add'
543
+ /**
544
+ * An entry was removed.
545
+ */
546
+ | 'remove'
547
+ /**
548
+ * An entry was changed.
549
+ */
550
+ | 'change';
551
+ /**
552
+ * The changed args object which is emitted by an observable map.
553
+ */
554
+ export interface IMapChange<T = any> {
555
+ /**
556
+ * The type of change undergone by the map.
557
+ */
558
+ type: MapChangeType;
559
+ /**
560
+ * The key of the change.
561
+ */
562
+ key: string;
563
+ /**
564
+ * The old value of the change.
565
+ */
566
+ oldValue?: T;
567
+ /**
568
+ * The new value of the change.
569
+ */
570
+ newValue?: T;
571
+ }
572
+ /**
573
+ * Text source change
574
+ */
575
+ export type SourceChange = {
576
+ /**
577
+ * Text source change
578
+ */
579
+ sourceChange?: Delta<string>;
580
+ };
581
+ /**
582
+ * Definition of the shared Notebook changes.
583
+ */
584
+ export type NotebookChange = DocumentChange & {
585
+ /**
586
+ * Cell changes
587
+ */
588
+ cellsChange?: Delta<ISharedCell[]>;
589
+ /**
590
+ * Notebook metadata changes
591
+ */
592
+ metadataChange?: {
593
+ oldValue: INotebookMetadata;
594
+ newValue?: INotebookMetadata;
595
+ };
596
+ /**
597
+ * nbformat version change
598
+ */
599
+ nbformatChanged?: {
600
+ key: string;
601
+ oldValue?: number;
602
+ newValue?: number;
603
+ };
604
+ };
605
+ /**
606
+ * File change
607
+ */
608
+ export type FileChange = DocumentChange & SourceChange;
609
+ /**
610
+ * Definition of the shared Cell changes.
611
+ */
612
+ export type CellChange<MetadataType extends IBaseCellMetadata = IBaseCellMetadata> = SourceChange & {
613
+ /**
614
+ * Cell attachment change
615
+ */
616
+ attachmentsChange?: {
617
+ oldValue?: IAttachments;
618
+ newValue?: IAttachments;
619
+ };
620
+ /**
621
+ * Cell output changes
622
+ */
623
+ outputsChange?: Delta<IOutput[]>;
624
+ /**
625
+ * Cell execution count change
626
+ */
627
+ executionCountChange?: {
628
+ oldValue?: number;
629
+ newValue?: number;
630
+ };
631
+ /**
632
+ * Cell metadata change
633
+ */
634
+ metadataChange?: {
635
+ oldValue?: Partial<MetadataType>;
636
+ newValue?: Partial<MetadataType>;
637
+ };
638
+ };
639
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}