@graview/core 0.1.50 → 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/cli/describe.js +1 -1
- package/dist/cli/describe.js.map +1 -1
- package/dist/document.schema.json +2 -2
- package/dist/history.d.ts +45 -1
- package/dist/history.d.ts.map +1 -1
- package/dist/history.js +46 -6
- package/dist/history.js.map +1 -1
- package/dist/index.d.ts +3 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/mutations/type-text.d.ts +4 -1
- package/dist/mutations/type-text.d.ts.map +1 -1
- package/dist/mutations/type-text.js +6 -5
- package/dist/mutations/type-text.js.map +1 -1
- package/dist/ops/digest.d.ts +23 -0
- package/dist/ops/digest.d.ts.map +1 -1
- package/dist/ops/digest.js +43 -1
- package/dist/ops/digest.js.map +1 -1
- package/dist/presence.d.ts +18 -0
- package/dist/presence.d.ts.map +1 -1
- package/dist/presence.js +2 -1
- package/dist/presence.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 +8 -10
- package/dist/schema/collaborative.d.ts.map +1 -1
- package/dist/schema/collaborative.js +1 -38
- package/dist/schema/collaborative.js.map +1 -1
- package/dist/store.d.ts +1 -1
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +20 -8
- 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 +146 -21
- package/dist/subscriptions.js.map +1 -1
- package/dist/text/since.d.ts +10 -1
- package/dist/text/since.d.ts.map +1 -1
- package/dist/text/since.js +23 -1
- package/dist/text/since.js.map +1 -1
- package/dist/text/splice.d.ts +0 -12
- package/dist/text/splice.d.ts.map +1 -1
- package/dist/text/splice.js +23 -48
- package/dist/text/splice.js.map +1 -1
- 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 +7 -1
- package/dist/text/typing-hook.d.ts.map +1 -1
- package/dist/text/typing-hook.js.map +1 -1
- 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 +2 -2
- 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 +3 -1
- package/dist/typing.d.ts.map +1 -1
- package/dist/typing.js +98 -3
- package/dist/typing.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Primitive } from "../graph/primitives.js";
|
|
2
2
|
import type { FieldRevision } from "../ops/revisions.js";
|
|
3
3
|
import type { Operation } from "../ops/types.js";
|
|
4
|
-
import type { AnyMutationDefinition } from "../mutations/types.js";
|
|
4
|
+
import type { AnyMutationDefinition, MutationCall } from "../mutations/types.js";
|
|
5
5
|
/** The name of the act that types into a text field typed together. */
|
|
6
6
|
export declare const TYPE_TEXT = "type-text";
|
|
7
7
|
/** What a store hands the hooks: its declaration, graph and log. */
|
|
@@ -33,5 +33,11 @@ export declare const TYPING: {
|
|
|
33
33
|
}[];
|
|
34
34
|
/** Of a later op, against what an undo takes back: true when it only typed on text the undo only typed, else the records whose typed text it wrote whole. */
|
|
35
35
|
aside?: (targets: readonly Primitive[], later: Operation) => true | readonly string[];
|
|
36
|
+
/**
|
|
37
|
+
* A client's own typing, still pending, carried over what the server
|
|
38
|
+
* says (`Store.rebase`): each pending batch that only types, as the calls
|
|
39
|
+
* that make its keystrokes on the text the landed ops leave.
|
|
40
|
+
*/
|
|
41
|
+
carried?: (rolledBack: readonly Operation[], landed: readonly Operation[], pending: readonly string[]) => ReadonlyMap<string, readonly MutationCall[]>;
|
|
36
42
|
};
|
|
37
43
|
//# sourceMappingURL=typing-hook.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typing-hook.d.ts","sourceRoot":"","sources":["../../src/text/typing-hook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"typing-hook.d.ts","sourceRoot":"","sources":["../../src/text/typing-hook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAejF,uEAAuE;AACvE,eAAO,MAAM,SAAS,cAAc,CAAC;AAErC,oEAAoE;AACpE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE;QAAE,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC1D,QAAQ,CAAC,KAAK,EAAE;QAAE,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACjD,QAAQ,CAAC,GAAG,EAAE;QAAE,GAAG,IAAI,SAAS,SAAS,EAAE,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACzE;AAED,eAAO,MAAM,MAAM,EAAE;IACnB,sGAAsG;IACtG,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAChE,6FAA6F;IAC7F,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,SAAS,qBAAqB,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,OAAO,KAAK,SAAS,MAAM,EAAE,CAAC;IACzJ,yEAAyE;IACzE,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IACpG,2FAA2F;IAC3F,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,SAAS,EAAE,EAAE,IAAI,CAAC,EAAE,SAAS,aAAa,EAAE,KAAK,SAAS,EAAE,CAAC;IACnH,kGAAkG;IAClG,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,SAAS,EAAE,EAAE,GAAG,EAAE,SAAS,SAAS,EAAE,KAAK;QAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;QAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAA;KAAE,EAAE,CAAC;IAC3I,6JAA6J;IAC7J,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,EAAE,KAAK,EAAE,SAAS,KAAK,IAAI,GAAG,SAAS,MAAM,EAAE,CAAC;IACtF;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,EAAE,MAAM,EAAE,SAAS,SAAS,EAAE,EAAE,OAAO,EAAE,SAAS,MAAM,EAAE,KAAK,WAAW,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,CAAC,CAAC;CACnJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typing-hook.js","sourceRoot":"","sources":["../../src/text/typing-hook.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;GAWG;AAEH,uEAAuE;AACvE,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;AASrC,MAAM,CAAC,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"typing-hook.js","sourceRoot":"","sources":["../../src/text/typing-hook.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;GAWG;AAEH,uEAAuE;AACvE,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;AASrC,MAAM,CAAC,MAAM,MAAM,GAmBf,EAAE,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Operation } from "../ops/types.js";
|
|
2
|
+
import type { TextSplice } from "./splice.js";
|
|
3
|
+
/** Spans one after another, keystrokes that touch made one. */
|
|
4
|
+
export declare function joinSpans(spans: readonly TextSplice[], more: readonly TextSplice[]): TextSplice[];
|
|
5
|
+
/**
|
|
6
|
+
* WHAT THESE OPS TYPED INTO ONE FIELD, as spans: oldest first, each against
|
|
7
|
+
* the text as the one before it left it, keystrokes that touch made one —
|
|
8
|
+
* " white today" put in at 15, "Paint " taken out at 0 — never the text.
|
|
9
|
+
*/
|
|
10
|
+
export declare function typedSpans(ops: readonly Operation[], node: string, field: string): TextSplice[];
|
|
11
|
+
//# sourceMappingURL=typing-spans.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typing-spans.d.ts","sourceRoot":"","sources":["../../src/text/typing-spans.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAgB9C,+DAA+D;AAC/D,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,EAAE,IAAI,EAAE,SAAS,UAAU,EAAE,GAAG,UAAU,EAAE,CAQjG;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,SAAS,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE,CAK/F"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { firstText } from "./since.js";
|
|
2
|
+
import { compose } from "./transform.js";
|
|
3
|
+
/*
|
|
4
|
+
* WHAT A RUN OF TYPING PUT IN AND TOOK OUT, span by span (Roadmap
|
|
5
|
+
* f-collab-text, phase 5): what a diff in history and a notification say of
|
|
6
|
+
* a field typed into, in place of its whole text before and after. Read by
|
|
7
|
+
* `@graview/core/history` and `/subscriptions` only.
|
|
8
|
+
*/
|
|
9
|
+
/** The spans one primitive changed of one field: a splice, or a first text written whole as the insert it is. */
|
|
10
|
+
function spliceOf(primitive, node, field) {
|
|
11
|
+
if (primitive.op === "splice-text")
|
|
12
|
+
return primitive.id === node && primitive.field === field ? primitive : undefined;
|
|
13
|
+
return firstText(primitive, node, field);
|
|
14
|
+
}
|
|
15
|
+
/** Spans one after another, keystrokes that touch made one. */
|
|
16
|
+
export function joinSpans(spans, more) {
|
|
17
|
+
const out = [...spans];
|
|
18
|
+
for (const splice of more) {
|
|
19
|
+
const joined = out.length > 0 ? compose(out.at(-1), splice) : undefined;
|
|
20
|
+
if (joined)
|
|
21
|
+
out[out.length - 1] = joined;
|
|
22
|
+
else
|
|
23
|
+
out.push({ at: splice.at, removed: splice.removed, inserted: splice.inserted });
|
|
24
|
+
}
|
|
25
|
+
return out.filter((one) => one.removed !== "" || one.inserted !== "");
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* WHAT THESE OPS TYPED INTO ONE FIELD, as spans: oldest first, each against
|
|
29
|
+
* the text as the one before it left it, keystrokes that touch made one —
|
|
30
|
+
* " white today" put in at 15, "Paint " taken out at 0 — never the text.
|
|
31
|
+
*/
|
|
32
|
+
export function typedSpans(ops, node, field) {
|
|
33
|
+
return joinSpans([], ops.flatMap((op) => op.primitives.flatMap((primitive) => spliceOf(primitive, node, field) ?? [])));
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=typing-spans.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typing-spans.js","sourceRoot":"","sources":["../../src/text/typing-spans.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC;;;;;GAKG;AAEH,iHAAiH;AACjH,SAAS,QAAQ,CAAC,SAAoB,EAAE,IAAY,EAAE,KAAa;IACjE,IAAI,SAAS,CAAC,EAAE,KAAK,aAAa;QAAE,OAAO,SAAS,CAAC,EAAE,KAAK,IAAI,IAAI,SAAS,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IACtH,OAAO,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC3C,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,SAAS,CAAC,KAA4B,EAAE,IAA2B;IACjF,MAAM,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IACvB,KAAK,MAAM,MAAM,IAAI,IAAI,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzE,IAAI,MAAM;YAAE,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;;YACpC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvF,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,EAAE,IAAI,GAAG,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC;AACxE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,GAAyB,EAAE,IAAY,EAAE,KAAa;IAC/E,OAAO,SAAS,CACd,EAAE,EACF,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAClG,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { Author, Operation } from "../ops/types.js";
|
|
2
|
+
/** What a run of typing did to one field of one record: how much it put in and took out. */
|
|
3
|
+
export interface TypedRun {
|
|
4
|
+
readonly node: string;
|
|
5
|
+
readonly field: string;
|
|
6
|
+
/** Characters put in, counted as a person counts them: an emoji is one. */
|
|
7
|
+
readonly inserted: number;
|
|
8
|
+
/** Characters taken out. */
|
|
9
|
+
readonly removed: number;
|
|
10
|
+
}
|
|
11
|
+
/** The field a keystroke op typed into, by its call: `type-text`'s node and field. None for an undo, an op withheld from the reader, or any other act. */
|
|
12
|
+
export declare function typedField(op: Operation): {
|
|
13
|
+
readonly node: string;
|
|
14
|
+
readonly field: string;
|
|
15
|
+
} | undefined;
|
|
16
|
+
/** Whether two authors are the one person typing: the same kind and id (any tab of theirs), or the same name where neither has an id. */
|
|
17
|
+
export declare function sameTypist(a: Author, b: Author): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* WHAT A RUN OF TYPING DID: the field these ops typed into and how much,
|
|
20
|
+
* when every one of them is a keystroke (`type-text`) into that one field —
|
|
21
|
+
* a batch a person typed, or several in a row. None for anything else: an
|
|
22
|
+
* act, an undo, an op withheld from the reader, typing into two fields.
|
|
23
|
+
*/
|
|
24
|
+
export declare function typedRun(ops: readonly Operation[]): TypedRun | undefined;
|
|
25
|
+
/** Two runs of typing into one field as one: the counts added. */
|
|
26
|
+
export declare const joinRuns: (a: TypedRun, b: TypedRun) => TypedRun;
|
|
27
|
+
/** How much a run changed, in the brackets a sentence ends with: "(+42 −3)", "(+5)", "(−3)". */
|
|
28
|
+
export declare function typedCounts(run: Pick<TypedRun, "inserted" | "removed">): string;
|
|
29
|
+
type Declared = {
|
|
30
|
+
tryDefinition(kind: string): unknown;
|
|
31
|
+
};
|
|
32
|
+
type Records = {
|
|
33
|
+
getNode(id: string): unknown;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* A RUN OF TYPING, AS A CHANGE IS SAID — "Wrote in Kitchen's notes (+42
|
|
37
|
+
* −3)", the field in the declaration's words, named with its record when a
|
|
38
|
+
* graph is handed that holds it; "Wrote in Notes (+42 −3)" without one, or
|
|
39
|
+
* where the record is named beside it (`named: false`).
|
|
40
|
+
*/
|
|
41
|
+
export declare function typingWords(run: Pick<TypedRun, "node" | "field" | "inserted" | "removed">, schema: Declared, graph?: Records, named?: boolean): string;
|
|
42
|
+
/** Who wrote and what, in one sentence: "Ada wrote in Notes (+42 −3)". */
|
|
43
|
+
export declare function typingSentence(name: string, run: Pick<TypedRun, "node" | "field" | "inserted" | "removed">, schema: Declared, graph?: Records): string;
|
|
44
|
+
export {};
|
|
45
|
+
//# sourceMappingURL=typing-words.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typing-words.d.ts","sourceRoot":"","sources":["../../src/text/typing-words.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAazD,4FAA4F;AAC5F,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,4BAA4B;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,0JAA0J;AAC1J,wBAAgB,UAAU,CAAC,EAAE,EAAE,SAAS,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAIvG;AAED,yIAAyI;AACzI,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAIxD;AAQD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,SAAS,SAAS,EAAE,GAAG,QAAQ,GAAG,SAAS,CAuBxE;AAED,kEAAkE;AAClE,eAAO,MAAM,QAAQ,GAAI,GAAG,QAAQ,EAAE,GAAG,QAAQ,KAAG,QAAiH,CAAC;AAEtK,gGAAgG;AAChG,wBAAgB,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,GAAG,SAAS,CAAC,GAAG,MAAM,CAG/E;AAED,KAAK,QAAQ,GAAG;IAAE,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC;AACzD,KAAK,OAAO,GAAG;IAAE,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAC;AAEhD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,UAAO,GAAG,MAAM,CAMnJ;AAED,0EAA0E;AAC1E,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAGtJ"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { capitalize } from "../capital.js";
|
|
2
|
+
import { isUnset } from "../graph/primitives.js";
|
|
3
|
+
import { fieldWords, labelOf } from "../schema/define-node.js";
|
|
4
|
+
import { TYPE_TEXT } from "./typing-hook.js";
|
|
5
|
+
/** The field a keystroke op typed into, by its call: `type-text`'s node and field. None for an undo, an op withheld from the reader, or any other act. */
|
|
6
|
+
export function typedField(op) {
|
|
7
|
+
if (op.withheld === true || op.undoes !== undefined || op.mutation?.name !== TYPE_TEXT)
|
|
8
|
+
return undefined;
|
|
9
|
+
const { node, field } = (op.mutation.args ?? {});
|
|
10
|
+
return typeof node === "string" && typeof field === "string" ? { node, field } : undefined;
|
|
11
|
+
}
|
|
12
|
+
/** Whether two authors are the one person typing: the same kind and id (any tab of theirs), or the same name where neither has an id. */
|
|
13
|
+
export function sameTypist(a, b) {
|
|
14
|
+
if (a.kind !== b.kind)
|
|
15
|
+
return false;
|
|
16
|
+
if (a.id !== undefined || b.id !== undefined)
|
|
17
|
+
return a.id === b.id && a.onBehalfOf === b.onBehalfOf;
|
|
18
|
+
return (a.name ?? "") === (b.name ?? "");
|
|
19
|
+
}
|
|
20
|
+
const characters = (text) => {
|
|
21
|
+
let count = 0;
|
|
22
|
+
for (const _ of text)
|
|
23
|
+
count++;
|
|
24
|
+
return count;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* WHAT A RUN OF TYPING DID: the field these ops typed into and how much,
|
|
28
|
+
* when every one of them is a keystroke (`type-text`) into that one field —
|
|
29
|
+
* a batch a person typed, or several in a row. None for anything else: an
|
|
30
|
+
* act, an undo, an op withheld from the reader, typing into two fields.
|
|
31
|
+
*/
|
|
32
|
+
export function typedRun(ops) {
|
|
33
|
+
if (ops.length === 0)
|
|
34
|
+
return undefined;
|
|
35
|
+
const into = typedField(ops[0]);
|
|
36
|
+
if (!into)
|
|
37
|
+
return undefined;
|
|
38
|
+
let inserted = 0;
|
|
39
|
+
let removed = 0;
|
|
40
|
+
for (const op of ops) {
|
|
41
|
+
const field = typedField(op);
|
|
42
|
+
if (!field || field.node !== into.node || field.field !== into.field)
|
|
43
|
+
return undefined;
|
|
44
|
+
for (const primitive of op.primitives) {
|
|
45
|
+
if (primitive.op === "splice-text" && primitive.id === into.node && primitive.field === into.field) {
|
|
46
|
+
inserted += characters(primitive.inserted);
|
|
47
|
+
removed += characters(primitive.removed);
|
|
48
|
+
}
|
|
49
|
+
else if (primitive.op === "patch-node" && primitive.id === into.node && Object.prototype.hasOwnProperty.call(primitive.after, into.field)) {
|
|
50
|
+
// The first text, written whole into a field holding none.
|
|
51
|
+
const before = primitive.before[into.field];
|
|
52
|
+
const after = primitive.after[into.field];
|
|
53
|
+
inserted += typeof after === "string" ? characters(after) : 0;
|
|
54
|
+
removed += typeof before === "string" && !isUnset(before) ? characters(before) : 0;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return { ...into, inserted, removed };
|
|
59
|
+
}
|
|
60
|
+
/** Two runs of typing into one field as one: the counts added. */
|
|
61
|
+
export const joinRuns = (a, b) => ({ node: a.node, field: a.field, inserted: a.inserted + b.inserted, removed: a.removed + b.removed });
|
|
62
|
+
/** How much a run changed, in the brackets a sentence ends with: "(+42 −3)", "(+5)", "(−3)". */
|
|
63
|
+
export function typedCounts(run) {
|
|
64
|
+
const parts = [...(run.inserted > 0 || run.removed === 0 ? [`+${run.inserted}`] : []), ...(run.removed > 0 ? [`−${run.removed}`] : [])];
|
|
65
|
+
return `(${parts.join(" ")})`;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* A RUN OF TYPING, AS A CHANGE IS SAID — "Wrote in Kitchen's notes (+42
|
|
69
|
+
* −3)", the field in the declaration's words, named with its record when a
|
|
70
|
+
* graph is handed that holds it; "Wrote in Notes (+42 −3)" without one, or
|
|
71
|
+
* where the record is named beside it (`named: false`).
|
|
72
|
+
*/
|
|
73
|
+
export function typingWords(run, schema, graph, named = true) {
|
|
74
|
+
const record = graph?.getNode(run.node);
|
|
75
|
+
const definition = record ? schema.tryDefinition(record.kind) : undefined;
|
|
76
|
+
const field = fieldWords(definition, run.field);
|
|
77
|
+
const where = record && named ? `${labelOf(definition, record)}'s ${field.toLowerCase()}` : field;
|
|
78
|
+
return `Wrote in ${where} ${typedCounts(run)}`;
|
|
79
|
+
}
|
|
80
|
+
/** Who wrote and what, in one sentence: "Ada wrote in Notes (+42 −3)". */
|
|
81
|
+
export function typingSentence(name, run, schema, graph) {
|
|
82
|
+
const said = typingWords(run, schema, graph);
|
|
83
|
+
return `${capitalize(name)} ${said.charAt(0).toLowerCase()}${said.slice(1)}`;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=typing-words.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typing-words.js","sourceRoot":"","sources":["../../src/text/typing-words.ts"],"names":[],"mappings":"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"}
|
package/dist/tidying.d.ts
CHANGED
|
@@ -9,8 +9,8 @@ export { declinedIn, declinesIn, meaningKey, suggestionKey, tidyingOf, tidyingRe
|
|
|
9
9
|
export type { ActMeanings } from "./ops/tidying.js";
|
|
10
10
|
export { isDismissed, suggestionsIn } from "./ops/suggestions.js";
|
|
11
11
|
export type { Dismissal, DismissalStore, Suggestion, WaitingOptions } from "./ops/suggestions.js";
|
|
12
|
-
export { digestWords, foldDigests, isSuggestionBatch } from "./ops/digest.js";
|
|
13
|
-
export type { ActivityRow } from "./ops/digest.js";
|
|
12
|
+
export { digestWords, foldDigests, isSuggestionBatch, typedRowWords } from "./ops/digest.js";
|
|
13
|
+
export type { ActivityRow, TypedRow } from "./ops/digest.js";
|
|
14
14
|
export { LEFT_ALONE } from "./graph/archived.js";
|
|
15
15
|
/**
|
|
16
16
|
* WHAT `suggest` TAKES: who suggests, and — required — what it is based on
|
package/dist/tidying.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tidying.d.ts","sourceRoot":"","sources":["../src/tidying.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAA0B,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE/F,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAChH,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAClE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"tidying.d.ts","sourceRoot":"","sources":["../src/tidying.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAa,KAAK,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAA0B,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAE/F,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAChH,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAClE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC7F,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;IACnB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,2EAA2E;AAC3E,MAAM,WAAW,kBAAkB;IACjC,0GAA0G;IAC1G,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,SAAS,EAAE,CAAC;CAC3C;AAqBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,OAAO,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,YAAY,EAAE,EAAE,OAAO,EAAE,cAAc,GAAG,SAAS,GAAG,SAAS,CAuC5I;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,OAAO,GAAE,kBAAuB,GAAG,SAAS,UAAU,EAAE,CAOhJ;AAWD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,WAAW,CAAC,CAAC,CAAC,CAK7H;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,WAAW,CAAC,CAAC,CAAC,CAK9H;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,GAAG,SAAS,CAGpH"}
|
package/dist/tidying.js
CHANGED
|
@@ -22,7 +22,7 @@ import { seatOf } from "./seat-of.js";
|
|
|
22
22
|
import { EMPTY_DIFF } from "./graph/diff.js";
|
|
23
23
|
export { declinedIn, declinesIn, meaningKey, suggestionKey, tidyingOf, tidyingRefusal } from "./ops/tidying.js";
|
|
24
24
|
export { isDismissed, suggestionsIn } from "./ops/suggestions.js";
|
|
25
|
-
export { digestWords, foldDigests, isSuggestionBatch } from "./ops/digest.js";
|
|
25
|
+
export { digestWords, foldDigests, isSuggestionBatch, typedRowWords } from "./ops/digest.js";
|
|
26
26
|
export { LEFT_ALONE } from "./graph/archived.js";
|
|
27
27
|
const keptOf = (store) => store;
|
|
28
28
|
const given = (key, value) => (value === undefined ? {} : { [key]: value });
|
package/dist/tidying.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tidying.js","sourceRoot":"","sources":["../src/tidying.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,SAAS,EAAgB,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,aAAa,EAAmC,MAAM,sBAAsB,CAAC;AAC/F,OAAO,EAAE,UAAU,EAAE,UAAU,EAAoB,MAAM,kBAAkB,CAAC;AAI5E,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEhH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"tidying.js","sourceRoot":"","sources":["../src/tidying.ts"],"names":[],"mappings":"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"}
|
package/dist/typing.d.ts
CHANGED
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export { compose as composeSplices, transform as transformSplices } from "./text/transform.js";
|
|
2
|
+
export { diffSplice } from "./text/diff.js";
|
|
3
|
+
export { collaborativeFieldOf, isCollaborativeField } from "./schema/collaborative-of.js";
|
|
2
4
|
//# sourceMappingURL=typing.d.ts.map
|
package/dist/typing.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typing.d.ts","sourceRoot":"","sources":["../src/typing.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"typing.d.ts","sourceRoot":"","sources":["../src/typing.ts"],"names":[],"mappings":"AAmNA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,SAAS,IAAI,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC"}
|
package/dist/typing.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { inverseOf } from "./ops/inverse.js";
|
|
2
2
|
import { typeTextMutation, typeTextVia } from "./mutations/type-text.js";
|
|
3
|
-
import { collaborativeFieldOf } from "./schema/collaborative.js";
|
|
4
|
-
import { carried, splicesOn, textAt, wholeAsSplice, writesWhole } from "./text/since.js";
|
|
5
|
-
import {
|
|
3
|
+
import { collaborativeFieldOf } from "./schema/collaborative-of.js";
|
|
4
|
+
import { carried, firstText, splicesOn, textAt, wholeAsSplice, writesWhole } from "./text/since.js";
|
|
5
|
+
import { transform } from "./text/transform.js";
|
|
6
|
+
import { TYPE_TEXT, TYPING } from "./text/typing-hook.js";
|
|
6
7
|
/**
|
|
7
8
|
* A WHOLE VALUE WRITTEN OVER TEXT TYPED TOGETHER IS A SPLICE: a patch an
|
|
8
9
|
* act, an edit, an agent or an import writes to such a field, where the
|
|
@@ -96,14 +97,108 @@ function undone(log, ops) {
|
|
|
96
97
|
*/
|
|
97
98
|
function aside(targets, later) {
|
|
98
99
|
const wholes = (node, field) => targets.some((one) => writesWhole(one, node, field));
|
|
100
|
+
// An undo of typing carried to nothing — its words deleted already — put nothing back, and is in nobody's way.
|
|
101
|
+
if (later.undoes !== undefined && later.primitives.length === 0 && targets.some((one) => one.op === "splice-text"))
|
|
102
|
+
return true;
|
|
99
103
|
if (later.primitives.length > 0 && later.primitives.every((one) => one.op === "splice-text" && !wholes(one.id, one.field)))
|
|
100
104
|
return true;
|
|
101
105
|
return targets.flatMap((one) => (one.op === "splice-text" && later.primitives.some((other) => writesWhole(other, one.id, one.field)) ? [one.id] : []));
|
|
102
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* A CLIENT'S OWN TYPING, CARRIED OVER WHAT THE SERVER SAYS (Roadmap
|
|
109
|
+
* f-collab-text, phase 3). A client keeps its keystrokes shown and pending
|
|
110
|
+
* while the server is asked, and when the server's ops land under them
|
|
111
|
+
* (`Store.rebase`) each keystroke is carried over every splice they took
|
|
112
|
+
* on its field — the client's half of the transform, so it reaches the
|
|
113
|
+
* text the server will (TP1). A keystroke is applied again where it now
|
|
114
|
+
* stands, against the text then (no `rev`), as the calls of its batch:
|
|
115
|
+
*
|
|
116
|
+
* - a landed op of somebody else's: each splice in it carried over this
|
|
117
|
+
* client's keystrokes on the field in order, and they over it;
|
|
118
|
+
* - the server's op for one of this client's batches (an echo): that
|
|
119
|
+
* batch's keystrokes are what it made, and the ones after it already
|
|
120
|
+
* stand on it;
|
|
121
|
+
* - a batch of this client's taken back with no echo (refused): the
|
|
122
|
+
* keystrokes after it carried over its inverse, so they no longer stand
|
|
123
|
+
* on what it typed.
|
|
124
|
+
*
|
|
125
|
+
* A batch that does anything but splice, or one on a field written whole
|
|
126
|
+
* meanwhile, is left to be applied again by its calls, as before.
|
|
127
|
+
*/
|
|
128
|
+
function carriedTyping(rolledBack, landed, pending) {
|
|
129
|
+
const out = new Map();
|
|
130
|
+
const typed = [];
|
|
131
|
+
const untyped = new Set();
|
|
132
|
+
for (const op of rolledBack) {
|
|
133
|
+
const only = op.primitives[0];
|
|
134
|
+
const args = op.mutation?.args;
|
|
135
|
+
// A keystroke is a splice, or — the first into an empty field — its text written whole, which is its insert at 0.
|
|
136
|
+
const splice = op.mutation?.name !== TYPE_TEXT || op.primitives.length !== 1 || !only ? undefined : only.op === "splice-text" ? only : firstText(only, String(args?.node), String(args?.field));
|
|
137
|
+
if (splice)
|
|
138
|
+
typed.push({ batch: op.batch, node: String(args?.node), field: String(args?.field), splice });
|
|
139
|
+
else
|
|
140
|
+
untyped.add(op.batch);
|
|
141
|
+
}
|
|
142
|
+
if (typed.length === 0)
|
|
143
|
+
return out;
|
|
144
|
+
const key = (one) => `${one.node}\u0000${one.field}`;
|
|
145
|
+
const whole = new Set();
|
|
146
|
+
const settled = new Set(rolledBack.map((op) => op.batch).filter((batch) => !pending.includes(batch)));
|
|
147
|
+
let mine = typed;
|
|
148
|
+
for (const op of landed) {
|
|
149
|
+
if (settled.has(op.batch)) {
|
|
150
|
+
// The server's own op for a batch of this client's: it is what that batch typed.
|
|
151
|
+
mine = mine.filter((one) => one.batch !== op.batch);
|
|
152
|
+
continue;
|
|
153
|
+
}
|
|
154
|
+
for (const primitive of op.primitives) {
|
|
155
|
+
if (primitive.op === "add-edge" || primitive.op === "remove-edge")
|
|
156
|
+
continue;
|
|
157
|
+
const id = primitive.op === "add-node" || primitive.op === "remove-node" ? primitive.node.id : primitive.id;
|
|
158
|
+
for (const field of new Set(mine.filter((one) => one.node === id).map((one) => one.field))) {
|
|
159
|
+
// A splice of somebody else's — or their first text into a field empty here too — carried over this client's keystrokes on the field, and they over it.
|
|
160
|
+
let over = primitive.op === "splice-text" ? (primitive.field === field ? primitive : undefined) : firstText(primitive, id, field);
|
|
161
|
+
for (const one of mine) {
|
|
162
|
+
if (one.node !== id || one.field !== field)
|
|
163
|
+
continue;
|
|
164
|
+
if (over)
|
|
165
|
+
[over, one.splice] = transform(over, one.splice);
|
|
166
|
+
else if (writesWhole(primitive, one.node, one.field))
|
|
167
|
+
whole.add(key(one));
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
// Taken back with no echo: what came after it no longer stands on it.
|
|
173
|
+
mine.forEach((one, at) => {
|
|
174
|
+
if (!settled.has(one.batch))
|
|
175
|
+
return;
|
|
176
|
+
let back = { at: one.splice.at, removed: one.splice.inserted, inserted: one.splice.removed };
|
|
177
|
+
for (const later of mine.slice(at + 1))
|
|
178
|
+
if (key(later) === key(one))
|
|
179
|
+
[back, later.splice] = transform(back, later.splice);
|
|
180
|
+
});
|
|
181
|
+
for (const batch of pending) {
|
|
182
|
+
const ones = mine.filter((one) => one.batch === batch);
|
|
183
|
+
if (ones.length === 0 || untyped.has(batch) || ones.some((one) => whole.has(key(one))))
|
|
184
|
+
continue;
|
|
185
|
+
out.set(batch, ones.map((one) => ({ name: TYPE_TEXT, args: { node: one.node, field: one.field, at: one.splice.at, remove: one.splice.removed.length, insert: one.splice.inserted } })));
|
|
186
|
+
}
|
|
187
|
+
return out;
|
|
188
|
+
}
|
|
103
189
|
TYPING.typeText = typeTextMutation;
|
|
104
190
|
TYPING.via = typeTextVia;
|
|
105
191
|
TYPING.collaborative = collaborativeFieldOf;
|
|
106
192
|
TYPING.asSplices = asSplices;
|
|
107
193
|
TYPING.undone = undone;
|
|
108
194
|
TYPING.aside = aside;
|
|
195
|
+
TYPING.carried = carriedTyping;
|
|
196
|
+
/*
|
|
197
|
+
* The transform and the reading of which fields are typed together, for a
|
|
198
|
+
* server and an editor: here, not on `@graview/core`, so a page that never
|
|
199
|
+
* types carries none of it.
|
|
200
|
+
*/
|
|
201
|
+
export { compose as composeSplices, transform as transformSplices } from "./text/transform.js";
|
|
202
|
+
export { diffSplice } from "./text/diff.js";
|
|
203
|
+
export { collaborativeFieldOf, isCollaborativeField } from "./schema/collaborative-of.js";
|
|
109
204
|
//# sourceMappingURL=typing.js.map
|
package/dist/typing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typing.js","sourceRoot":"","sources":["../src/typing.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"typing.js","sourceRoot":"","sources":["../src/typing.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
package/dist/version.js
CHANGED