@graview/core 0.1.49 → 0.1.51
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/dist/answer-seen.js +2 -2
- package/dist/answer-seen.js.map +1 -1
- package/dist/app.d.ts +11 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js.map +1 -1
- package/dist/capabilities.d.ts +7 -1
- package/dist/capabilities.d.ts.map +1 -1
- package/dist/capabilities.js.map +1 -1
- package/dist/cli/check/index.d.ts +1 -0
- package/dist/cli/check/index.d.ts.map +1 -1
- package/dist/cli/check/index.js +1 -0
- package/dist/cli/check/index.js.map +1 -1
- package/dist/cli/check/publishing.d.ts +13 -0
- package/dist/cli/check/publishing.d.ts.map +1 -0
- package/dist/cli/check/publishing.js +36 -0
- package/dist/cli/check/publishing.js.map +1 -0
- package/dist/cli/check.d.ts.map +1 -1
- package/dist/cli/check.js +2 -1
- package/dist/cli/check.js.map +1 -1
- package/dist/cli/describe.d.ts.map +1 -1
- package/dist/cli/describe.js +15 -0
- package/dist/cli/describe.js.map +1 -1
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +3 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/document/compiled.d.ts.map +1 -1
- package/dist/document/compiled.js +5 -0
- package/dist/document/compiled.js.map +1 -1
- package/dist/document/field-spec.d.ts.map +1 -1
- package/dist/document/field-spec.js +8 -2
- package/dist/document/field-spec.js.map +1 -1
- package/dist/document/format-findings.d.ts.map +1 -1
- package/dist/document/format-findings.js +5 -0
- package/dist/document/format-findings.js.map +1 -1
- package/dist/document/schema.d.ts +13 -0
- package/dist/document/schema.d.ts.map +1 -1
- package/dist/document/schema.js +16 -0
- package/dist/document/schema.js.map +1 -1
- package/dist/document/to-document.d.ts.map +1 -1
- package/dist/document/to-document.js +1 -0
- package/dist/document/to-document.js.map +1 -1
- package/dist/document.schema.json +42 -2
- package/dist/field-sight.js +5 -4
- package/dist/field-sight.js.map +1 -1
- package/dist/format-error.d.ts +54 -0
- package/dist/format-error.d.ts.map +1 -0
- package/dist/format-error.js +73 -0
- package/dist/format-error.js.map +1 -0
- package/dist/formats.d.ts +16 -13
- package/dist/formats.d.ts.map +1 -1
- package/dist/formats.js +18 -17
- package/dist/formats.js.map +1 -1
- package/dist/graph/diff.js +1 -1
- package/dist/graph/diff.js.map +1 -1
- package/dist/graph/edge-fields.d.ts +20 -0
- package/dist/graph/edge-fields.d.ts.map +1 -0
- package/dist/graph/edge-fields.js +21 -0
- package/dist/graph/edge-fields.js.map +1 -0
- package/dist/graph/graph.d.ts +3 -0
- package/dist/graph/graph.d.ts.map +1 -1
- package/dist/graph/graph.js +57 -4
- package/dist/graph/graph.js.map +1 -1
- package/dist/graph/primitives.d.ts +22 -2
- package/dist/graph/primitives.d.ts.map +1 -1
- package/dist/graph/primitives.js +20 -0
- package/dist/graph/primitives.js.map +1 -1
- package/dist/graph/types.d.ts +15 -1
- package/dist/graph/types.d.ts.map +1 -1
- package/dist/graph/types.js +0 -0
- package/dist/graph/types.js.map +1 -1
- package/dist/history.d.ts +68 -3
- package/dist/history.d.ts.map +1 -1
- package/dist/history.js +68 -8
- package/dist/history.js.map +1 -1
- package/dist/index.d.ts +17 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -2
- package/dist/index.js.map +1 -1
- package/dist/integrity.d.ts.map +1 -1
- package/dist/integrity.js +2 -1
- package/dist/integrity.js.map +1 -1
- package/dist/linked.d.ts +1 -0
- package/dist/linked.d.ts.map +1 -1
- package/dist/linked.js +1 -0
- package/dist/linked.js.map +1 -1
- package/dist/mutations/define-mutation.d.ts +4 -0
- package/dist/mutations/define-mutation.d.ts.map +1 -1
- package/dist/mutations/define-mutation.js +32 -8
- package/dist/mutations/define-mutation.js.map +1 -1
- package/dist/mutations/keep-link.d.ts.map +1 -1
- package/dist/mutations/keep-link.js +4 -2
- package/dist/mutations/keep-link.js.map +1 -1
- package/dist/mutations/type-text.d.ts +52 -0
- package/dist/mutations/type-text.d.ts.map +1 -0
- package/dist/mutations/type-text.js +107 -0
- package/dist/mutations/type-text.js.map +1 -0
- package/dist/mutations/types.d.ts +8 -0
- package/dist/mutations/types.d.ts.map +1 -1
- package/dist/mutations/visitor-form.js +1 -1
- package/dist/mutations/visitor-form.js.map +1 -1
- package/dist/ops/digest.d.ts +40 -6
- package/dist/ops/digest.d.ts.map +1 -1
- package/dist/ops/digest.js +79 -16
- package/dist/ops/digest.js.map +1 -1
- package/dist/ops/kept-fields.d.ts +1 -1
- package/dist/ops/kept-fields.d.ts.map +1 -1
- package/dist/ops/kept-fields.js +4 -1
- package/dist/ops/kept-fields.js.map +1 -1
- package/dist/ops/log.d.ts.map +1 -1
- package/dist/ops/log.js +3 -0
- package/dist/ops/log.js.map +1 -1
- package/dist/ops/provenance.d.ts.map +1 -1
- package/dist/ops/provenance.js +3 -1
- package/dist/ops/provenance.js.map +1 -1
- package/dist/ops/revisions.d.ts +8 -2
- package/dist/ops/revisions.d.ts.map +1 -1
- package/dist/ops/revisions.js +12 -3
- package/dist/ops/revisions.js.map +1 -1
- package/dist/ops/served.d.ts.map +1 -1
- package/dist/ops/served.js +30 -4
- package/dist/ops/served.js.map +1 -1
- package/dist/ops/suggestions.d.ts +14 -0
- package/dist/ops/suggestions.d.ts.map +1 -1
- package/dist/ops/suggestions.js.map +1 -1
- package/dist/ops/types.d.ts +43 -3
- package/dist/ops/types.d.ts.map +1 -1
- package/dist/ops/types.js +16 -1
- package/dist/ops/types.js.map +1 -1
- package/dist/ops/undo.d.ts +15 -2
- package/dist/ops/undo.d.ts.map +1 -1
- package/dist/ops/undo.js +22 -3
- package/dist/ops/undo.js.map +1 -1
- package/dist/ops/withheld.d.ts.map +1 -1
- package/dist/ops/withheld.js +4 -0
- package/dist/ops/withheld.js.map +1 -1
- package/dist/ops/writers.d.ts.map +1 -1
- package/dist/ops/writers.js +3 -0
- package/dist/ops/writers.js.map +1 -1
- package/dist/past.d.ts +1 -0
- package/dist/past.d.ts.map +1 -1
- package/dist/past.js +9 -2
- package/dist/past.js.map +1 -1
- package/dist/persistence/memory.d.ts +1 -1
- package/dist/persistence/memory.d.ts.map +1 -1
- package/dist/persistence/memory.js +5 -1
- package/dist/persistence/memory.js.map +1 -1
- package/dist/persistence/sql.d.ts +1 -1
- package/dist/persistence/sql.d.ts.map +1 -1
- package/dist/persistence/sql.js +45 -5
- package/dist/persistence/sql.js.map +1 -1
- package/dist/persistence/sqlite.d.ts +1 -0
- package/dist/persistence/sqlite.d.ts.map +1 -1
- package/dist/persistence/sqlite.js +1 -0
- package/dist/persistence/sqlite.js.map +1 -1
- package/dist/persistence/types.d.ts +34 -1
- package/dist/persistence/types.d.ts.map +1 -1
- package/dist/persistence/types.js +35 -1
- package/dist/persistence/types.js.map +1 -1
- package/dist/presence.d.ts +20 -1
- package/dist/presence.d.ts.map +1 -1
- package/dist/presence.js +4 -2
- package/dist/presence.js.map +1 -1
- package/dist/publish.d.ts +78 -0
- package/dist/publish.d.ts.map +1 -0
- package/dist/publish.js +23 -0
- package/dist/publish.js.map +1 -0
- package/dist/publishing.d.ts +10 -0
- package/dist/publishing.d.ts.map +1 -0
- package/dist/publishing.js +168 -0
- package/dist/publishing.js.map +1 -0
- package/dist/refused.d.ts +13 -6
- package/dist/refused.d.ts.map +1 -1
- package/dist/refused.js +13 -6
- package/dist/refused.js.map +1 -1
- package/dist/schema/collaborative-of.d.ts +11 -0
- package/dist/schema/collaborative-of.d.ts.map +1 -0
- package/dist/schema/collaborative-of.js +45 -0
- package/dist/schema/collaborative-of.js.map +1 -0
- package/dist/schema/collaborative.d.ts +12 -0
- package/dist/schema/collaborative.d.ts.map +1 -0
- package/dist/schema/collaborative.js +28 -0
- package/dist/schema/collaborative.js.map +1 -0
- package/dist/seen.d.ts +44 -1
- package/dist/seen.d.ts.map +1 -1
- package/dist/seen.js +59 -14
- package/dist/seen.js.map +1 -1
- package/dist/store.d.ts +79 -5
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +138 -32
- package/dist/store.js.map +1 -1
- package/dist/subscription-shape.d.ts +21 -1
- package/dist/subscription-shape.d.ts.map +1 -1
- package/dist/subscription-shape.js.map +1 -1
- package/dist/subscriptions.d.ts +33 -1
- package/dist/subscriptions.d.ts.map +1 -1
- package/dist/subscriptions.js +155 -18
- package/dist/subscriptions.js.map +1 -1
- package/dist/sync/engine.d.ts.map +1 -1
- package/dist/sync/engine.js +43 -15
- package/dist/sync/engine.js.map +1 -1
- package/dist/sync/index.d.ts +1 -1
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/index.js +1 -1
- package/dist/sync/index.js.map +1 -1
- package/dist/sync/types.d.ts +10 -0
- package/dist/sync/types.d.ts.map +1 -1
- package/dist/sync/types.js +8 -0
- package/dist/sync/types.js.map +1 -1
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +1 -0
- package/dist/testing.js.map +1 -1
- package/dist/text/diff.d.ts +10 -0
- package/dist/text/diff.d.ts.map +1 -0
- package/dist/text/diff.js +26 -0
- package/dist/text/diff.js.map +1 -0
- package/dist/text/since.d.ts +38 -0
- package/dist/text/since.d.ts.map +1 -0
- package/dist/text/since.js +88 -0
- package/dist/text/since.js.map +1 -0
- package/dist/text/splice.d.ts +39 -0
- package/dist/text/splice.d.ts.map +1 -0
- package/dist/text/splice.js +46 -0
- package/dist/text/splice.js.map +1 -0
- package/dist/text/transform.d.ts +14 -0
- package/dist/text/transform.d.ts.map +1 -0
- package/dist/text/transform.js +59 -0
- package/dist/text/transform.js.map +1 -0
- package/dist/text/typing-hook.d.ts +43 -0
- package/dist/text/typing-hook.d.ts.map +1 -0
- package/dist/text/typing-hook.js +16 -0
- package/dist/text/typing-hook.js.map +1 -0
- package/dist/text/typing-spans.d.ts +11 -0
- package/dist/text/typing-spans.d.ts.map +1 -0
- package/dist/text/typing-spans.js +35 -0
- package/dist/text/typing-spans.js.map +1 -0
- package/dist/text/typing-words.d.ts +45 -0
- package/dist/text/typing-words.d.ts.map +1 -0
- package/dist/text/typing-words.js +85 -0
- package/dist/text/typing-words.js.map +1 -0
- package/dist/tidying.d.ts +3 -3
- package/dist/tidying.d.ts.map +1 -1
- package/dist/tidying.js +1 -1
- package/dist/tidying.js.map +1 -1
- package/dist/typing.d.ts +4 -0
- package/dist/typing.d.ts.map +1 -0
- package/dist/typing.js +204 -0
- package/dist/typing.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/who.d.ts +1 -1
- package/dist/who.d.ts.map +1 -1
- package/dist/who.js +5 -2
- package/dist/who.js.map +1 -1
- package/package.json +12 -2
package/dist/graph/graph.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { humanizeField, labelOf } from "../schema/define-node.js";
|
|
2
2
|
import { SchemaError } from "../schema/schema.js";
|
|
3
|
+
import { assertKnownValues, unknownPrimitive } from "../format-error.js";
|
|
4
|
+
import { applySplice } from "../text/splice.js";
|
|
3
5
|
import { isArchived, MARKS } from "./archived.js";
|
|
4
6
|
import { diffSnapshots, diffTouched } from "./diff.js";
|
|
7
|
+
import { edgeFieldsProblem } from "./edge-fields.js";
|
|
5
8
|
import { isUnset } from "./primitives.js";
|
|
6
9
|
import { edgeId } from "./types.js";
|
|
7
10
|
/**
|
|
@@ -78,6 +81,7 @@ export class Graph {
|
|
|
78
81
|
schema;
|
|
79
82
|
nodes = new Map();
|
|
80
83
|
edges = new Map();
|
|
84
|
+
linkIds = new Map();
|
|
81
85
|
outIndex = new Map();
|
|
82
86
|
inIndex = new Map();
|
|
83
87
|
/*
|
|
@@ -172,6 +176,10 @@ export class Graph {
|
|
|
172
176
|
inEdges(id, kind) {
|
|
173
177
|
return this.edgesFrom(this.inIndex.get(id), kind);
|
|
174
178
|
}
|
|
179
|
+
/** The link that carries this id of its own (reserved, `EDGE_FIELDS`), if one does. */
|
|
180
|
+
linkById(id) {
|
|
181
|
+
return this.edges.get(this.linkIds.get(id));
|
|
182
|
+
}
|
|
175
183
|
/** Everything it holds, archived records and their links with the rest: what is stored. */
|
|
176
184
|
snapshot() {
|
|
177
185
|
return { nodes: [...this.nodes.values()], edges: [...this.edges.values()] };
|
|
@@ -230,7 +238,7 @@ export class Graph {
|
|
|
230
238
|
// ------------------------------------------------------------ internals
|
|
231
239
|
/** Puts the graph back to a snapshot it held, as stored and silently: nothing a listener saw ever changed. */
|
|
232
240
|
restore(snapshot) {
|
|
233
|
-
for (const held of [this.nodes, this.edges, this.outIndex, this.inIndex, this.ranks, this.lapsed, this.counts, this.archived])
|
|
241
|
+
for (const held of [this.nodes, this.edges, this.linkIds, this.outIndex, this.inIndex, this.ranks, this.lapsed, this.counts, this.archived])
|
|
234
242
|
held.clear();
|
|
235
243
|
this.reordered = false;
|
|
236
244
|
for (const node of snapshot.nodes)
|
|
@@ -292,6 +300,7 @@ export class Graph {
|
|
|
292
300
|
applyOne(primitive, restoring, inPlace) {
|
|
293
301
|
switch (primitive.op) {
|
|
294
302
|
case "add-node":
|
|
303
|
+
assertKnownValues(primitive.node);
|
|
295
304
|
this.insertNode(primitive.node, restoring, inPlace);
|
|
296
305
|
return;
|
|
297
306
|
case "remove-node": {
|
|
@@ -316,6 +325,7 @@ export class Graph {
|
|
|
316
325
|
if (!current) {
|
|
317
326
|
throw new MissingRecordError(primitive.id, `Cannot patch missing node "${primitive.id}"`);
|
|
318
327
|
}
|
|
328
|
+
assertKnownValues(primitive.after);
|
|
319
329
|
const next = { ...current };
|
|
320
330
|
for (const [key, value] of Object.entries(primitive.after)) {
|
|
321
331
|
// `undefined` in memory, `UNSET` once written down: both mean the
|
|
@@ -333,16 +343,42 @@ export class Graph {
|
|
|
333
343
|
this.tally(current.kind, -1), this.tally(patched.kind, 1);
|
|
334
344
|
return;
|
|
335
345
|
}
|
|
346
|
+
case "splice-text": {
|
|
347
|
+
const current = this.nodes.get(primitive.id);
|
|
348
|
+
if (!current) {
|
|
349
|
+
throw new MissingRecordError(primitive.id, `Cannot splice the text of missing node "${primitive.id}"`);
|
|
350
|
+
}
|
|
351
|
+
const text = current[primitive.field];
|
|
352
|
+
let spliced;
|
|
353
|
+
try {
|
|
354
|
+
if (typeof text === "string" && primitive.field !== "id" && primitive.field !== "kind")
|
|
355
|
+
spliced = applySplice(text, primitive);
|
|
356
|
+
}
|
|
357
|
+
catch {
|
|
358
|
+
// Said below: a splice whose text is not there.
|
|
359
|
+
}
|
|
360
|
+
if (spliced === undefined) {
|
|
361
|
+
throw new GraphError(`Cannot splice ${primitive.id}.${primitive.field}: it does not hold ${JSON.stringify(primitive.removed)} at ${primitive.at}`, "A corrupt op: the text it was made against is not the text the log folds to.");
|
|
362
|
+
}
|
|
363
|
+
const next = { ...current, [primitive.field]: spliced };
|
|
364
|
+
this.nodes.set(primitive.id, (restoring ? next : this.checkPatch(current, next, [primitive.field])));
|
|
365
|
+
return;
|
|
366
|
+
}
|
|
336
367
|
case "add-edge":
|
|
337
368
|
this.insertEdge(primitive.edge, restoring, inPlace);
|
|
338
369
|
return;
|
|
339
370
|
case "remove-edge": {
|
|
340
|
-
|
|
341
|
-
|
|
371
|
+
// Named by its own id when it carries one (reserved, `EDGE_FIELDS`), else by where it stands.
|
|
372
|
+
const named = primitive.edge.id === undefined ? primitive.edge : this.linkById(primitive.edge.id);
|
|
373
|
+
if (!named || !this.edges.has(edgeId(named))) {
|
|
374
|
+
throw new MissingRecordError(primitive.edge.id ?? edgeId(primitive.edge), `Cannot remove missing edge ${primitive.edge.id ?? edgeId(primitive.edge)}`);
|
|
342
375
|
}
|
|
343
|
-
this.deleteEdge(
|
|
376
|
+
this.deleteEdge(named);
|
|
344
377
|
return;
|
|
345
378
|
}
|
|
379
|
+
default:
|
|
380
|
+
// A primitive a newer build wrote: refused, never skipped, so this graph cannot quietly diverge from the log.
|
|
381
|
+
unknownPrimitive(primitive);
|
|
346
382
|
}
|
|
347
383
|
}
|
|
348
384
|
check(node) {
|
|
@@ -444,15 +480,32 @@ export class Graph {
|
|
|
444
480
|
: `No edge kind "${edge.kind}" is declared in this schema`);
|
|
445
481
|
}
|
|
446
482
|
const id = edgeId(edge);
|
|
483
|
+
/*
|
|
484
|
+
* A LINK'S OWN ID AND DATA (reserved, EDGE_FIELDS), judged on a write.
|
|
485
|
+
* One link of a kind per pair, still: the same link again is nothing
|
|
486
|
+
* new, as it always was; one that says it is another — an id of its
|
|
487
|
+
* own — is refused, and so is an id another link already holds.
|
|
488
|
+
*/
|
|
489
|
+
if (!held && (edge.id !== undefined || edge.data !== undefined)) {
|
|
490
|
+
const there = this.edges.get(id);
|
|
491
|
+
const problem = edgeFieldsProblem(edge) ?? (there && edge.id !== undefined && there.id !== edge.id ? `A second "${edge.kind}" link between two records is not allowed yet` : (this.linkIds.get(edge.id) ?? id) !== id ? `Link id "${edge.id}" is already taken` : undefined);
|
|
492
|
+
if (problem)
|
|
493
|
+
throw new GraphError(problem);
|
|
494
|
+
}
|
|
447
495
|
if (this.edges.has(id))
|
|
448
496
|
return;
|
|
449
497
|
this.edges.set(id, edge);
|
|
498
|
+
if (edge.id !== undefined)
|
|
499
|
+
this.linkIds.set(edge.id, id);
|
|
450
500
|
this.place(EDGE + id, inPlace);
|
|
451
501
|
this.index(this.outIndex, edge.from, id);
|
|
452
502
|
this.index(this.inIndex, edge.to, id);
|
|
453
503
|
}
|
|
454
504
|
deleteEdge(edge) {
|
|
455
505
|
const id = edgeId(edge);
|
|
506
|
+
const held = this.edges.get(id)?.id;
|
|
507
|
+
if (held !== undefined)
|
|
508
|
+
this.linkIds.delete(held);
|
|
456
509
|
this.edges.delete(id);
|
|
457
510
|
this.lapse(EDGE + id);
|
|
458
511
|
this.outIndex.get(edge.from)?.delete(id);
|
package/dist/graph/graph.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/graph/graph.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/graph/graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import type { AnyGraphNode, GraphEdge } from "./types.js";
|
|
2
2
|
/**
|
|
3
|
-
* The
|
|
3
|
+
* The six primitive operations every mutation compiles down to. Keeping the
|
|
4
4
|
* primitive set this small is what makes inverses mechanical and the fold
|
|
5
5
|
* over the log total.
|
|
6
|
+
*
|
|
7
|
+
* `splice-text` (op format 3) changes part of a text field: at `at` (UTF-16
|
|
8
|
+
* code units) the field holds `removed`, and `inserted` takes its place. It
|
|
9
|
+
* keeps the text it removed so its inverse is the same splice turned round,
|
|
10
|
+
* and a fold refuses one whose text is not there (`text/splice.ts`).
|
|
6
11
|
*/
|
|
7
12
|
export type Primitive = {
|
|
8
13
|
readonly op: "add-node";
|
|
@@ -21,7 +26,16 @@ export type Primitive = {
|
|
|
21
26
|
} | {
|
|
22
27
|
readonly op: "remove-edge";
|
|
23
28
|
readonly edge: GraphEdge;
|
|
24
|
-
};
|
|
29
|
+
} | SpliceTextPrimitive;
|
|
30
|
+
/** Part of one text field of one record changed: `removed` at `at` gives way to `inserted`. */
|
|
31
|
+
export interface SpliceTextPrimitive {
|
|
32
|
+
readonly op: "splice-text";
|
|
33
|
+
readonly id: string;
|
|
34
|
+
readonly field: string;
|
|
35
|
+
readonly at: number;
|
|
36
|
+
readonly removed: string;
|
|
37
|
+
readonly inserted: string;
|
|
38
|
+
}
|
|
25
39
|
/**
|
|
26
40
|
* "THIS KEY GOES AWAY", written down.
|
|
27
41
|
*
|
|
@@ -49,4 +63,10 @@ export declare function normalize(primitive: Primitive): Primitive;
|
|
|
49
63
|
export declare function invert(primitive: Primitive): Primitive;
|
|
50
64
|
/** Node ids a primitive writes to. */
|
|
51
65
|
export declare function writesOf(primitive: Primitive): string[];
|
|
66
|
+
/**
|
|
67
|
+
* A record with a splice made in its field — or, `back`, taken back — for
|
|
68
|
+
* what reads a record through the log rather than folding it: as it was
|
|
69
|
+
* when the field does not hold the text the splice expects.
|
|
70
|
+
*/
|
|
71
|
+
export declare function splicedRecord<N extends object>(node: N, splice: SpliceTextPrimitive, back?: boolean): N;
|
|
52
72
|
//# sourceMappingURL=primitives.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/graph/primitives.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../../src/graph/primitives.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG1D;;;;;;;;;GASG;AACH,MAAM,MAAM,SAAS,GACjB;IAAE,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GACxD;IAAE,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GAC3D;IACE,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACnD,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACnD,GACD;IAAE,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GACrD;IAAE,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GACxD,mBAAmB,CAAC;AAExB,+FAA+F;AAC/F,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,KAAK,oBAAwB,CAAC;AAE3C,gEAAgE;AAChE,eAAO,MAAM,OAAO,GAAI,OAAO,OAAO,KAAG,OAAiD,CAAC;AAE3F;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAOzD;AAED,yEAAyE;AACzE,wBAAgB,MAAM,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,CAoBtD;AAED,sCAAsC;AACtC,wBAAgB,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,EAAE,CAYvD;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,IAAI,UAAQ,GAAG,CAAC,CAQrG"}
|
package/dist/graph/primitives.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { applySplice } from "../text/splice.js";
|
|
1
2
|
/**
|
|
2
3
|
* "THIS KEY GOES AWAY", written down.
|
|
3
4
|
*
|
|
@@ -44,6 +45,8 @@ export function invert(primitive) {
|
|
|
44
45
|
return { op: "remove-edge", edge: primitive.edge };
|
|
45
46
|
case "remove-edge":
|
|
46
47
|
return { op: "add-edge", edge: primitive.edge };
|
|
48
|
+
case "splice-text":
|
|
49
|
+
return { ...primitive, removed: primitive.inserted, inserted: primitive.removed };
|
|
47
50
|
}
|
|
48
51
|
}
|
|
49
52
|
/** Node ids a primitive writes to. */
|
|
@@ -53,10 +56,27 @@ export function writesOf(primitive) {
|
|
|
53
56
|
case "remove-node":
|
|
54
57
|
return [primitive.node.id];
|
|
55
58
|
case "patch-node":
|
|
59
|
+
case "splice-text":
|
|
56
60
|
return [primitive.id];
|
|
57
61
|
case "add-edge":
|
|
58
62
|
case "remove-edge":
|
|
59
63
|
return [primitive.edge.from, primitive.edge.to];
|
|
60
64
|
}
|
|
61
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* A record with a splice made in its field — or, `back`, taken back — for
|
|
68
|
+
* what reads a record through the log rather than folding it: as it was
|
|
69
|
+
* when the field does not hold the text the splice expects.
|
|
70
|
+
*/
|
|
71
|
+
export function splicedRecord(node, splice, back = false) {
|
|
72
|
+
const text = node[splice.field];
|
|
73
|
+
if (typeof text !== "string")
|
|
74
|
+
return node;
|
|
75
|
+
try {
|
|
76
|
+
return { ...node, [splice.field]: applySplice(text, back ? invert(splice) : splice) };
|
|
77
|
+
}
|
|
78
|
+
catch {
|
|
79
|
+
return node;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
62
82
|
//# sourceMappingURL=primitives.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/graph/primitives.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/graph/primitives.ts"],"names":[],"mappings":"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"}
|
package/dist/graph/types.d.ts
CHANGED
|
@@ -1,10 +1,24 @@
|
|
|
1
1
|
import type { ArchivedOption } from "./archived.js";
|
|
2
|
+
/**
|
|
3
|
+
* A LINK between two records: one per kind per pair.
|
|
4
|
+
*
|
|
5
|
+
* `id` and `data` are RESERVED for 1.0 (Roadmap f-1-0-edge-fields): a link
|
|
6
|
+
* may carry an id of its own and a small JSON object, and every reader —
|
|
7
|
+
* the graph, the log, the snapshot, the wire, every adapter and an export —
|
|
8
|
+
* keeps and folds them, so the day a link has a weight, a role or an order
|
|
9
|
+
* nothing stored has to be rewritten. No act writes them yet, and a second
|
|
10
|
+
* link of one kind between one pair is still refused (`EDGE_FIELDS`).
|
|
11
|
+
*/
|
|
2
12
|
export interface GraphEdge {
|
|
3
13
|
readonly kind: string;
|
|
4
14
|
readonly from: string;
|
|
5
15
|
readonly to: string;
|
|
16
|
+
/** The link's own id, unique among the links: what a `remove-edge` names it by when it is there. */
|
|
17
|
+
readonly id?: string;
|
|
18
|
+
/** A JSON object of at most `EDGE_FIELDS.dataLength` characters as JSON. */
|
|
19
|
+
readonly data?: Readonly<Record<string, unknown>>;
|
|
6
20
|
}
|
|
7
|
-
/**
|
|
21
|
+
/** Where a link stands — its kind and ends — whether or not it carries an id: one per kind per pair. */
|
|
8
22
|
export declare function edgeId(edge: GraphEdge): string;
|
|
9
23
|
export interface GraphNodeBase {
|
|
10
24
|
readonly id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/graph/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/graph/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD;;;;;;;;;GASG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,oGAAoG;IACpG,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACnD;AAED,wGAAwG;AACxG,wBAAgB,MAAM,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAE9C;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEnE;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,aAAa,GAAG,YAAY;IACjE,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,CAAC,EAAE,CAAC;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,SAAS,EAAE,CAAC;IAChD,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,EAAE,CAAC;IAC/F,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,SAAS,EAAE,CAAC;IACjE,2DAA2D;IAC3D,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,CAAC,EAAE,CAAC;IAC9D,iDAAiD;IACjD,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,CAAC,EAAE,CAAC;IAC7D,qDAAqD;IACrD,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,CAAC,EAAE,CAAC;IACrD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,aAAa,GAAG,YAAY;IACnE,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;CACtC"}
|
package/dist/graph/types.js
CHANGED
|
Binary file
|
package/dist/graph/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/graph/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/graph/types.ts"],"names":[],"mappings":"AAsBA,wGAAwG;AACxG,MAAM,UAAU,MAAM,CAAC,IAAe;IACpC,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;AAChD,CAAC"}
|
package/dist/history.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { nameOfAuthor } from "./who.js";
|
|
2
2
|
import type { Epoch } from "./ops/log.js";
|
|
3
|
-
import
|
|
3
|
+
import { type TypedRun } from "./text/typing-words.js";
|
|
4
|
+
import type { TextSplice } from "./text/splice.js";
|
|
5
|
+
import { type Author, type Operation } from "./ops/types.js";
|
|
4
6
|
import type { Principal } from "./permissions/types.js";
|
|
5
7
|
import type { AnySchema } from "./schema/schema.js";
|
|
6
8
|
import type { PastDeclaration, Store } from "./store.js";
|
|
@@ -96,8 +98,16 @@ export interface PlaybackTick {
|
|
|
96
98
|
readonly declaration: boolean;
|
|
97
99
|
/** Something this seat may not see happened here (FR-16): said, and nothing more. */
|
|
98
100
|
readonly withheld: boolean;
|
|
101
|
+
/**
|
|
102
|
+
* A RUN OF TYPING (Roadmap f-collab-text): consecutive gestures by one
|
|
103
|
+
* person typing into one field are one tick — every gesture's batch,
|
|
104
|
+
* oldest first (`batch` is the last), and what they typed, said as
|
|
105
|
+
* "Wrote in Notes (+42 −3)".
|
|
106
|
+
*/
|
|
107
|
+
readonly batches?: readonly string[];
|
|
108
|
+
readonly typed?: TypedRun;
|
|
99
109
|
}
|
|
100
|
-
/** Who made a change, for the reader `me`. A system or a rule is the app itself; an agent acting for a person is still an agent. */
|
|
110
|
+
/** Who made a change, for the reader `me`. A system or a rule is the app itself, as is a kind this build does not know; an agent acting for a person is still an agent; a visitor is a person. */
|
|
101
111
|
export declare function makerOf(author: Author, me?: Principal): Maker;
|
|
102
112
|
/**
|
|
103
113
|
* THE TIMELINE OF A STORE: one tick per gesture, in the order they ended,
|
|
@@ -110,6 +120,27 @@ export declare function ticksOf<S extends AnySchema>(store: Store<S>, options?:
|
|
|
110
120
|
readonly me?: Principal;
|
|
111
121
|
readonly declarations?: readonly DeclarationMark[];
|
|
112
122
|
}): PlaybackTick[];
|
|
123
|
+
/** What an app that publishes has not published yet (`unpublished`). */
|
|
124
|
+
export interface Unpublished {
|
|
125
|
+
/** How far readers are served: the last publish, or undefined when nothing was ever published. */
|
|
126
|
+
readonly publishedSeq: number | undefined;
|
|
127
|
+
/** The head: what collaborators are served. */
|
|
128
|
+
readonly head: number;
|
|
129
|
+
/** One tick per gesture made after the publish and standing now, oldest first — none of them a publish. */
|
|
130
|
+
readonly ticks: readonly PlaybackTick[];
|
|
131
|
+
/** The badge's words: "3 changes are not published yet.", "Everything is published.", "Nothing is published yet." */
|
|
132
|
+
readonly sentence: string;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* WHAT IS NOT PUBLISHED YET (Roadmap f-publishing-lifecycle): the gestures
|
|
136
|
+
* between what readers are served (`publishedSeq`) and the head, in words
|
|
137
|
+
* — what a "not published" badge counts and a diff lists. The change
|
|
138
|
+
* itself is `pastOf(store, publishedSeq)` against the head. Read through a
|
|
139
|
+
* seat's view, a change it may not see is a tick that says only that.
|
|
140
|
+
*/
|
|
141
|
+
export declare function unpublished<S extends AnySchema>(store: Store<S>, options?: {
|
|
142
|
+
readonly me?: Principal;
|
|
143
|
+
}): Unpublished;
|
|
113
144
|
type Declared = Pick<AnySchema, "kinds" | "tryDefinition">;
|
|
114
145
|
/**
|
|
115
146
|
* WHAT A DECLARATION CHANGE DID, IN A SENTENCE, from the one before and the
|
|
@@ -129,5 +160,39 @@ export declare function declarationSentence(before: Declared | undefined, after:
|
|
|
129
160
|
export declare function restoreBatches<S extends AnySchema>(store: Store<S>, seq: number): string[];
|
|
130
161
|
/** Who made a tick, in words, for a reader who has the app's people and seats: "you", "Claude", "Ann". */
|
|
131
162
|
export declare function makerWords(tick: PlaybackTick, context: Parameters<typeof nameOfAuthor>[1]): string;
|
|
132
|
-
|
|
163
|
+
/** One change in a history said in words: who, what, and the sentence that says both. */
|
|
164
|
+
export interface ChangeSaid {
|
|
165
|
+
/** The moment just after it (`pastOf(store, seq)`). */
|
|
166
|
+
readonly seq: number;
|
|
167
|
+
readonly at: string | undefined;
|
|
168
|
+
/** Its gestures' batches, oldest first: several for a run of typing. */
|
|
169
|
+
readonly batches: readonly string[];
|
|
170
|
+
/** Who made it, as `makerWords` says them. */
|
|
171
|
+
readonly by: string;
|
|
172
|
+
/** What it was: the gesture's intent, or "Wrote in Kitchen's notes (+42 −3)" for typing. */
|
|
173
|
+
readonly said: string;
|
|
174
|
+
/** Who and what in one sentence: "Ada wrote in Kitchen's notes (+42 −3)", "Ben: Added “Call the plumber”". */
|
|
175
|
+
readonly sentence: string;
|
|
176
|
+
/** For typing: the field, the counts and the spans put in and taken out — never the text whole. */
|
|
177
|
+
readonly typed?: TypedRun & {
|
|
178
|
+
readonly spans: readonly TextSplice[];
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* A STORE'S HISTORY IN WORDS, newest first — what an agent's history answer
|
|
183
|
+
* says (Roadmap f-collab-text, phase 5): one entry per gesture, a run of one
|
|
184
|
+
* person's typing into one field one entry, said as "Ada wrote in Kitchen's
|
|
185
|
+
* notes (+42 −3)" with the spans it put in and took out rather than the
|
|
186
|
+
* field's text. Read through a seat's view (`seenBy`), a change it may not
|
|
187
|
+
* see is "Someone changed something you cannot see". Declaration changes
|
|
188
|
+
* are left out: `ticksOf` has them.
|
|
189
|
+
*/
|
|
190
|
+
export declare function historyInWords<S extends AnySchema>(store: Store<S>, options?: {
|
|
191
|
+
readonly me?: Principal;
|
|
192
|
+
readonly limit?: number;
|
|
193
|
+
readonly context?: Omit<Parameters<typeof nameOfAuthor>[1], "graph" | "schema">;
|
|
194
|
+
}): ChangeSaid[];
|
|
195
|
+
export { typedCounts, typedRun, typingSentence, typingWords } from "./text/typing-words.js";
|
|
196
|
+
export { typedSpans } from "./text/typing-spans.js";
|
|
197
|
+
export type { TypedRun } from "./text/typing-words.js";
|
|
133
198
|
//# sourceMappingURL=history.d.ts.map
|
package/dist/history.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../src/history.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../src/history.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAA+D,KAAK,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEpH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAgB,KAAK,MAAM,EAAc,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACvF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEzD,wIAAwI;AACxI,MAAM,MAAM,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,eAAe,CAAC;CACxC;AAED,6FAA6F;AAC7F,MAAM,MAAM,WAAW,GAAG;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAE1F;;;;;;;;;GASG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,GAAG,EAAE,SAAS,SAAS,EAAE,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,KAAK,EAAE,CAAC;CACpC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IACnD;;;;;;;;OAQG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,GAAG,eAAe,GAAG,SAAS,CAAC;IAC7G,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IAChF;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,WAAW,GAAG,SAAS,SAAS,EAAE,CAAC,CAAC;CAC/F;AAED,mFAAmF;AACnF,MAAM,WAAW,YAAY;IAC3B,oEAAoE;IACpE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,+FAA+F;IAC/F,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,qFAAqF;IACrF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kDAAkD;IAClD,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,qFAAqF;IACrF,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;CAC3B;AAED,kMAAkM;AAClM,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,SAAS,GAAG,KAAK,CAM7D;AAID;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,eAAe,EAAE,CAAA;CAAO,GAAG,YAAY,EAAE,CAsD3K;AAED,wEAAwE;AACxE,MAAM,WAAW,WAAW;IAC1B,kGAAkG;IAClG,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2GAA2G;IAC3G,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,qHAAqH;IACrH,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,SAAS,CAAA;CAAO,GAAG,WAAW,CAUxH;AAED,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,OAAO,GAAG,eAAe,CAAC,CAAC;AAU3D;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,EAAE,KAAK,EAAE,QAAQ,GAAG,MAAM,CAkBzF;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAQ1F;AAED,0GAA0G;AAC1G,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAKlG;AAED,yFAAyF;AACzF,MAAM,WAAW,UAAU;IACzB,uDAAuD;IACvD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,wEAAwE;IACxE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,4FAA4F;IAC5F,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8GAA8G;IAC9G,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,mGAAmG;IACnG,QAAQ,CAAC,KAAK,CAAC,EAAE,QAAQ,GAAG;QAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAA;KAAE,CAAC;CACvE;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC,CAAA;CAAO,GAAG,UAAU,EAAE,CAgBtO;AAED,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,YAAY,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC"}
|
package/dist/history.js
CHANGED
|
@@ -14,11 +14,15 @@
|
|
|
14
14
|
import { capitalize } from "./capital.js";
|
|
15
15
|
import { humanizeField, nounOf } from "./schema/define-node.js";
|
|
16
16
|
import { nameOfAuthor } from "./who.js";
|
|
17
|
-
|
|
17
|
+
import { joinRuns, sameTypist, typedRun, typingSentence, typingWords } from "./text/typing-words.js";
|
|
18
|
+
import { typedSpans } from "./text/typing-spans.js";
|
|
19
|
+
import { authorKindOf } from "./ops/types.js";
|
|
20
|
+
/** Who made a change, for the reader `me`. A system or a rule is the app itself, as is a kind this build does not know; an agent acting for a person is still an agent; a visitor is a person. */
|
|
18
21
|
export function makerOf(author, me) {
|
|
19
|
-
|
|
22
|
+
const kind = authorKindOf(author);
|
|
23
|
+
if (kind === "agent")
|
|
20
24
|
return "agent";
|
|
21
|
-
if (
|
|
25
|
+
if (kind !== "human" && kind !== "visitor")
|
|
22
26
|
return "app";
|
|
23
27
|
if (author.onBehalfOf !== undefined)
|
|
24
28
|
return "person";
|
|
@@ -33,22 +37,32 @@ const opsSeen = (batch) => batch.ops.filter((op) => op.withheld !== true);
|
|
|
33
37
|
* that something happened.
|
|
34
38
|
*/
|
|
35
39
|
export function ticksOf(store, options = {}) {
|
|
36
|
-
const ticks =
|
|
40
|
+
const ticks = [];
|
|
41
|
+
for (const batch of store.batches()) {
|
|
37
42
|
const first = batch.ops[0];
|
|
38
43
|
const last = batch.ops.at(-1);
|
|
39
44
|
const withheld = opsSeen(batch).length === 0;
|
|
40
|
-
|
|
45
|
+
const typed = withheld ? undefined : typedRun(batch.ops);
|
|
46
|
+
// A run of typing joins the tick before it when that is the same person typing into the same field (Roadmap f-collab-text).
|
|
47
|
+
const before = ticks.at(-1);
|
|
48
|
+
if (typed && before?.typed && before.author && sameTypist(before.author, batch.author) && before.typed.node === typed.node && before.typed.field === typed.field) {
|
|
49
|
+
const joined = joinRuns(before.typed, typed);
|
|
50
|
+
ticks[ticks.length - 1] = { ...before, seq: last.seq + 1, at: last.at, batch: batch.id, batches: [...(before.batches ?? []), batch.id], typed: joined, said: typingWords(joined, store.schema, store.graph, false) };
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
ticks.push({
|
|
41
54
|
seq: last.seq + 1,
|
|
42
55
|
from: first.seq,
|
|
43
56
|
at: last.at,
|
|
44
57
|
batch: batch.id,
|
|
45
58
|
maker: withheld ? "person" : makerOf(batch.author, options.me),
|
|
46
59
|
author: withheld ? undefined : batch.author,
|
|
47
|
-
said: batch.intent,
|
|
60
|
+
said: typed ? typingWords(typed, store.schema, store.graph, false) : batch.intent,
|
|
48
61
|
declaration: false,
|
|
49
62
|
withheld,
|
|
50
|
-
|
|
51
|
-
|
|
63
|
+
...(typed ? { batches: [batch.id], typed } : {}),
|
|
64
|
+
});
|
|
65
|
+
}
|
|
52
66
|
const marks = [
|
|
53
67
|
...store.log
|
|
54
68
|
.epochs()
|
|
@@ -78,6 +92,24 @@ export function ticksOf(store, options = {}) {
|
|
|
78
92
|
}
|
|
79
93
|
return ticks.sort((a, b) => a.seq - b.seq || Number(a.batch !== undefined) - Number(b.batch !== undefined));
|
|
80
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* WHAT IS NOT PUBLISHED YET (Roadmap f-publishing-lifecycle): the gestures
|
|
97
|
+
* between what readers are served (`publishedSeq`) and the head, in words
|
|
98
|
+
* — what a "not published" badge counts and a diff lists. The change
|
|
99
|
+
* itself is `pastOf(store, publishedSeq)` against the head. Read through a
|
|
100
|
+
* seat's view, a change it may not see is a tick that says only that.
|
|
101
|
+
*/
|
|
102
|
+
export function unpublished(store, options = {}) {
|
|
103
|
+
const publishedSeq = store.publishedSeq;
|
|
104
|
+
const from = publishedSeq ?? store.log.horizon;
|
|
105
|
+
// A gesture taken back since, a publish, and an undo of a gesture made since are not changes readers will meet.
|
|
106
|
+
const seqOf = new Map(store.log.all().map((op) => [op.id, op.seq]));
|
|
107
|
+
const since = (op) => op.undoes !== undefined && (seqOf.get(op.undoes) ?? -1) >= from;
|
|
108
|
+
const standing = new Set(store.batches().filter((batch) => !batch.undone && !batch.ops.some((op) => op.publishedThrough !== undefined || since(op))).map((batch) => batch.id));
|
|
109
|
+
const ticks = ticksOf(store, options).filter((tick) => tick.from >= from && tick.batch !== undefined && (tick.batches ?? [tick.batch]).some((batch) => standing.has(batch)));
|
|
110
|
+
const sentence = publishedSeq === undefined ? "Nothing is published yet." : ticks.length === 0 ? "Everything is published." : `${ticks.length === 1 ? "1 change is" : `${ticks.length} changes are`} not published yet.`;
|
|
111
|
+
return { publishedSeq, head: store.log.length, ticks, sentence };
|
|
112
|
+
}
|
|
81
113
|
const fieldsOf = (schema, kind) => {
|
|
82
114
|
const fields = schema.tryDefinition(kind)?.fields;
|
|
83
115
|
return Object.keys(fields?.shape ?? {});
|
|
@@ -143,4 +175,32 @@ export function makerWords(tick, context) {
|
|
|
143
175
|
return "the app";
|
|
144
176
|
return nameOfAuthor(tick.author, context);
|
|
145
177
|
}
|
|
178
|
+
/**
|
|
179
|
+
* A STORE'S HISTORY IN WORDS, newest first — what an agent's history answer
|
|
180
|
+
* says (Roadmap f-collab-text, phase 5): one entry per gesture, a run of one
|
|
181
|
+
* person's typing into one field one entry, said as "Ada wrote in Kitchen's
|
|
182
|
+
* notes (+42 −3)" with the spans it put in and took out rather than the
|
|
183
|
+
* field's text. Read through a seat's view (`seenBy`), a change it may not
|
|
184
|
+
* see is "Someone changed something you cannot see". Declaration changes
|
|
185
|
+
* are left out: `ticksOf` has them.
|
|
186
|
+
*/
|
|
187
|
+
export function historyInWords(store, options = {}) {
|
|
188
|
+
const where = { graph: store.graph, schema: store.schema, ...options.context };
|
|
189
|
+
const ticks = ticksOf(store, options.me ? { me: options.me } : {}).filter((tick) => tick.batch !== undefined);
|
|
190
|
+
const opsOf = new Map(store.batches().map((batch) => [batch.id, batch.ops]));
|
|
191
|
+
return ticks
|
|
192
|
+
.reverse()
|
|
193
|
+
.slice(0, options.limit ?? ticks.length)
|
|
194
|
+
.map((tick) => {
|
|
195
|
+
// Without a reader, nobody is "you": each author by name.
|
|
196
|
+
const by = options.me || tick.withheld || !tick.author ? makerWords(tick, where) : nameOfAuthor(tick.author, where);
|
|
197
|
+
const said = tick.withheld ? "changed something you cannot see" : tick.typed ? typingWords(tick.typed, store.schema, store.graph) : tick.said;
|
|
198
|
+
const sentence = tick.typed && !tick.withheld ? typingSentence(by, tick.typed, store.schema, store.graph) : tick.withheld ? `${capitalize(by)} ${said}` : `${capitalize(by)}: ${said}`;
|
|
199
|
+
const batches = tick.batches ?? [tick.batch];
|
|
200
|
+
const spans = () => typedSpans(batches.flatMap((batch) => opsOf.get(batch) ?? []), tick.typed.node, tick.typed.field);
|
|
201
|
+
return { seq: tick.seq, at: tick.at, batches, by, said, sentence, ...(tick.typed && !tick.withheld ? { typed: { ...tick.typed, spans: spans() } } : {}) };
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
export { typedCounts, typedRun, typingSentence, typingWords } from "./text/typing-words.js";
|
|
205
|
+
export { typedSpans } from "./text/typing-spans.js";
|
|
146
206
|
//# sourceMappingURL=history.js.map
|