@deepfates/lync 0.3.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.
Files changed (136) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +374 -0
  3. package/bin/lync.js +2 -0
  4. package/dist/cli/bin.d.ts +3 -0
  5. package/dist/cli/bin.d.ts.map +1 -0
  6. package/dist/cli/bin.js +5 -0
  7. package/dist/cli/bin.js.map +1 -0
  8. package/dist/cli/index.d.ts +11 -0
  9. package/dist/cli/index.d.ts.map +1 -0
  10. package/dist/cli/index.js +404 -0
  11. package/dist/cli/index.js.map +1 -0
  12. package/dist/cli/sync.d.ts +42 -0
  13. package/dist/cli/sync.d.ts.map +1 -0
  14. package/dist/cli/sync.js +232 -0
  15. package/dist/cli/sync.js.map +1 -0
  16. package/dist/client/create.d.ts +10 -0
  17. package/dist/client/create.d.ts.map +1 -0
  18. package/dist/client/create.js +50 -0
  19. package/dist/client/create.js.map +1 -0
  20. package/dist/client/index.d.ts +3 -0
  21. package/dist/client/index.d.ts.map +1 -0
  22. package/dist/client/index.js +3 -0
  23. package/dist/client/index.js.map +1 -0
  24. package/dist/client/testing.d.ts +14 -0
  25. package/dist/client/testing.d.ts.map +1 -0
  26. package/dist/client/testing.js +19 -0
  27. package/dist/client/testing.js.map +1 -0
  28. package/dist/client/types.d.ts +49 -0
  29. package/dist/client/types.d.ts.map +1 -0
  30. package/dist/client/types.js +2 -0
  31. package/dist/client/types.js.map +1 -0
  32. package/dist/errors.d.ts +16 -0
  33. package/dist/errors.d.ts.map +1 -0
  34. package/dist/errors.js +39 -0
  35. package/dist/errors.js.map +1 -0
  36. package/dist/events.d.ts +119 -0
  37. package/dist/events.d.ts.map +1 -0
  38. package/dist/events.js +686 -0
  39. package/dist/events.js.map +1 -0
  40. package/dist/file-log.d.ts +25 -0
  41. package/dist/file-log.d.ts.map +1 -0
  42. package/dist/file-log.js +97 -0
  43. package/dist/file-log.js.map +1 -0
  44. package/dist/idb-log.d.ts +21 -0
  45. package/dist/idb-log.d.ts.map +1 -0
  46. package/dist/idb-log.js +114 -0
  47. package/dist/idb-log.js.map +1 -0
  48. package/dist/index.d.ts +9 -0
  49. package/dist/index.d.ts.map +1 -0
  50. package/dist/index.js +11 -0
  51. package/dist/index.js.map +1 -0
  52. package/dist/indexes/entries.d.ts +6 -0
  53. package/dist/indexes/entries.d.ts.map +1 -0
  54. package/dist/indexes/entries.js +7 -0
  55. package/dist/indexes/entries.js.map +1 -0
  56. package/dist/indexes/index.d.ts +3 -0
  57. package/dist/indexes/index.d.ts.map +1 -0
  58. package/dist/indexes/index.js +3 -0
  59. package/dist/indexes/index.js.map +1 -0
  60. package/dist/indexes/memory.d.ts +4 -0
  61. package/dist/indexes/memory.d.ts.map +1 -0
  62. package/dist/indexes/memory.js +193 -0
  63. package/dist/indexes/memory.js.map +1 -0
  64. package/dist/indexes/types.d.ts +70 -0
  65. package/dist/indexes/types.d.ts.map +1 -0
  66. package/dist/indexes/types.js +2 -0
  67. package/dist/indexes/types.js.map +1 -0
  68. package/dist/json.d.ts +3 -0
  69. package/dist/json.d.ts.map +1 -0
  70. package/dist/json.js +15 -0
  71. package/dist/json.js.map +1 -0
  72. package/dist/looms.d.ts +25 -0
  73. package/dist/looms.d.ts.map +1 -0
  74. package/dist/looms.js +359 -0
  75. package/dist/looms.js.map +1 -0
  76. package/dist/memory-log.d.ts +5 -0
  77. package/dist/memory-log.d.ts.map +1 -0
  78. package/dist/memory-log.js +7 -0
  79. package/dist/memory-log.js.map +1 -0
  80. package/dist/memory.d.ts +4 -0
  81. package/dist/memory.d.ts.map +1 -0
  82. package/dist/memory.js +255 -0
  83. package/dist/memory.js.map +1 -0
  84. package/dist/profiles/text-story.d.ts +26 -0
  85. package/dist/profiles/text-story.d.ts.map +1 -0
  86. package/dist/profiles/text-story.js +55 -0
  87. package/dist/profiles/text-story.js.map +1 -0
  88. package/dist/references.d.ts +14 -0
  89. package/dist/references.d.ts.map +1 -0
  90. package/dist/references.js +109 -0
  91. package/dist/references.js.map +1 -0
  92. package/dist/relay/attach.d.ts +24 -0
  93. package/dist/relay/attach.d.ts.map +1 -0
  94. package/dist/relay/attach.js +54 -0
  95. package/dist/relay/attach.js.map +1 -0
  96. package/dist/relay/index.d.ts +4 -0
  97. package/dist/relay/index.d.ts.map +1 -0
  98. package/dist/relay/index.js +4 -0
  99. package/dist/relay/index.js.map +1 -0
  100. package/dist/relay/relay.d.ts +80 -0
  101. package/dist/relay/relay.d.ts.map +1 -0
  102. package/dist/relay/relay.js +329 -0
  103. package/dist/relay/relay.js.map +1 -0
  104. package/dist/relay/serve.d.ts +18 -0
  105. package/dist/relay/serve.d.ts.map +1 -0
  106. package/dist/relay/serve.js +37 -0
  107. package/dist/relay/serve.js.map +1 -0
  108. package/dist/sha256.d.ts +2 -0
  109. package/dist/sha256.d.ts.map +1 -0
  110. package/dist/sha256.js +84 -0
  111. package/dist/sha256.js.map +1 -0
  112. package/dist/store.d.ts +97 -0
  113. package/dist/store.d.ts.map +1 -0
  114. package/dist/store.js +250 -0
  115. package/dist/store.js.map +1 -0
  116. package/dist/sync-protocol.d.ts +80 -0
  117. package/dist/sync-protocol.d.ts.map +1 -0
  118. package/dist/sync-protocol.js +135 -0
  119. package/dist/sync-protocol.js.map +1 -0
  120. package/dist/synced-store.d.ts +68 -0
  121. package/dist/synced-store.d.ts.map +1 -0
  122. package/dist/synced-store.js +340 -0
  123. package/dist/synced-store.js.map +1 -0
  124. package/dist/types.d.ts +78 -0
  125. package/dist/types.d.ts.map +1 -0
  126. package/dist/types.js +2 -0
  127. package/dist/types.js.map +1 -0
  128. package/dist/uuid.d.ts +9 -0
  129. package/dist/uuid.d.ts.map +1 -0
  130. package/dist/uuid.js +25 -0
  131. package/dist/uuid.js.map +1 -0
  132. package/dist/views.d.ts +78 -0
  133. package/dist/views.d.ts.map +1 -0
  134. package/dist/views.js +192 -0
  135. package/dist/views.js.map +1 -0
  136. package/package.json +183 -0
package/dist/views.js ADDED
@@ -0,0 +1,192 @@
1
+ import { lyncDownset } from "./events.js";
2
+ export function lyncBranchTreeView(result) {
3
+ const index = eligibleEventIndex(result);
4
+ const children = new Map();
5
+ const parentRefs = new Set();
6
+ const conflictIds = new Set(result.conflictIds);
7
+ for (const id of index.ids)
8
+ children.set(id, []);
9
+ for (const viewEvent of index.events.values()) {
10
+ for (const parent of viewEvent.event.parents) {
11
+ parentRefs.add(parent);
12
+ const siblings = children.get(parent);
13
+ if (siblings)
14
+ siblings.push(viewEvent.id);
15
+ }
16
+ }
17
+ for (const siblings of children.values())
18
+ siblings.sort(compareIds);
19
+ const nodes = index.ids.map((id) => {
20
+ const viewEvent = index.events.get(id);
21
+ return {
22
+ ...viewEvent,
23
+ parents: [...viewEvent.event.parents],
24
+ children: children.get(id) ?? [],
25
+ missingParents: viewEvent.event.parents.filter((parent) => !index.events.has(parent) && !conflictIds.has(parent)).sort(compareIds),
26
+ conflictedParents: viewEvent.event.parents.filter((parent) => conflictIds.has(parent)).sort(compareIds),
27
+ };
28
+ });
29
+ return {
30
+ nodes,
31
+ roots: index.ids.filter((id) => index.events.get(id).event.parents.length === 0).sort(compareIds),
32
+ leaves: index.ids.filter((id) => (children.get(id)?.length ?? 0) === 0).sort(compareIds),
33
+ obstacles: result.graphDiagnostics,
34
+ partial: result.graphDiagnostics.length > 0 || [...parentRefs].some((id) => !index.events.has(id)),
35
+ };
36
+ }
37
+ export function lyncTranscriptView(result, head, options = {}) {
38
+ const index = eligibleEventIndex(result);
39
+ const downset = lyncDownset(result, head);
40
+ const path = [];
41
+ const seen = new Set();
42
+ let current = head;
43
+ while (current) {
44
+ if (seen.has(current))
45
+ break;
46
+ seen.add(current);
47
+ const viewEvent = index.events.get(current);
48
+ if (!viewEvent)
49
+ break;
50
+ path.push(viewEvent);
51
+ const candidates = viewEvent.event.parents.filter((parent) => index.events.has(parent));
52
+ current = options.chooseParent?.(viewEvent.event, candidates) ?? candidates[0];
53
+ }
54
+ const entries = path
55
+ .reverse()
56
+ .map((viewEvent, depth) => ({ ...viewEvent, depth }));
57
+ return {
58
+ head,
59
+ entries,
60
+ downsetIds: downset.ids,
61
+ obstacles: downset.obstacles,
62
+ partial: downset.partial || !index.events.has(head),
63
+ };
64
+ }
65
+ export function lyncMemoryView(result) {
66
+ const tree = lyncBranchTreeView(result);
67
+ const index = eligibleEventIndex(result);
68
+ return {
69
+ events: index.ids.map((id) => index.events.get(id)),
70
+ frontierIds: tree.leaves,
71
+ suppressedPayloadIds: [...result.suppression.suppressedPayloadIds],
72
+ conflictIds: [...result.conflictIds],
73
+ obstacles: tree.obstacles,
74
+ partial: tree.partial,
75
+ };
76
+ }
77
+ export function lyncLeaderboardView(result) {
78
+ const index = eligibleEventIndex(result);
79
+ const entries = new Map();
80
+ const ignoredAnnotationIds = [];
81
+ const ensure = (targetId) => {
82
+ let entry = entries.get(targetId);
83
+ if (!entry) {
84
+ entry = {
85
+ targetId,
86
+ event: index.events.get(targetId),
87
+ scoreTotal: 0,
88
+ scoreCount: 0,
89
+ scoreMean: null,
90
+ selectedCount: 0,
91
+ selectionCount: 0,
92
+ scores: [],
93
+ selections: [],
94
+ };
95
+ entries.set(targetId, entry);
96
+ }
97
+ return entry;
98
+ };
99
+ // Walk annotations in sorted-id order, not file-line order: float addition
100
+ // is order-sensitive, so summing by sorted annotation id keeps scoreTotal
101
+ // and scoreMean bit-stable no matter how the input files are shuffled.
102
+ for (const id of index.ids) {
103
+ const viewEvent = index.events.get(id);
104
+ const event = viewEvent.event;
105
+ if (event.kind !== "lync/annotation" || viewEvent.payloadSuppressed)
106
+ continue;
107
+ const label = event.payload["label"];
108
+ if (label === "score") {
109
+ const value = numericScore(event.payload);
110
+ if (value === undefined) {
111
+ ignoredAnnotationIds.push(event.id);
112
+ continue;
113
+ }
114
+ for (const targetId of event.parents) {
115
+ const entry = ensure(targetId);
116
+ entry.scoreTotal += value;
117
+ entry.scoreCount += 1;
118
+ entry.scoreMean = entry.scoreTotal / entry.scoreCount;
119
+ entry.scores.push({ annotationId: event.id, value, author: event.author, at: event.at, basis: event.payload["basis"] });
120
+ }
121
+ }
122
+ else if (label === "selection") {
123
+ const chosen = stringSet(event.payload["chosen"]);
124
+ const shown = stringSet(event.payload["shown"]);
125
+ const targets = shown.size > 0 ? shown : new Set(event.parents);
126
+ if (chosen.size === 0 || targets.size === 0) {
127
+ ignoredAnnotationIds.push(event.id);
128
+ continue;
129
+ }
130
+ for (const targetId of targets) {
131
+ const selected = chosen.has(targetId);
132
+ const entry = ensure(targetId);
133
+ entry.selectionCount += 1;
134
+ if (selected)
135
+ entry.selectedCount += 1;
136
+ entry.selections.push({
137
+ annotationId: event.id,
138
+ selected,
139
+ chosen: [...chosen],
140
+ shown: [...shown],
141
+ author: event.author,
142
+ at: event.at,
143
+ basis: event.payload["basis"],
144
+ });
145
+ }
146
+ }
147
+ }
148
+ const ranked = [...entries.values()].sort(compareLeaderboardEntries);
149
+ return {
150
+ entries: ranked.map((entry, index) => ({ ...entry, rank: index + 1 })),
151
+ ignoredAnnotationIds: ignoredAnnotationIds.sort(compareIds),
152
+ };
153
+ }
154
+ function eligibleEventIndex(result) {
155
+ const eligibleIds = new Set(result.viewEligibleIds);
156
+ const suppressedPayloadIds = new Set(result.suppression.suppressedPayloadIds);
157
+ const events = new Map();
158
+ for (const line of result.lines) {
159
+ if (!line.id || !line.event || !eligibleIds.has(line.id) || events.has(line.id))
160
+ continue;
161
+ events.set(line.id, {
162
+ id: line.id,
163
+ event: line.event,
164
+ line,
165
+ payloadSuppressed: suppressedPayloadIds.has(line.id),
166
+ });
167
+ }
168
+ return { events, ids: [...events.keys()].sort(compareIds) };
169
+ }
170
+ function numericScore(payload) {
171
+ for (const key of ["value", "score"]) {
172
+ const value = payload[key];
173
+ if (typeof value === "number" && Number.isFinite(value))
174
+ return value;
175
+ }
176
+ return undefined;
177
+ }
178
+ function stringSet(value) {
179
+ if (!Array.isArray(value))
180
+ return new Set();
181
+ return new Set(value.filter((item) => typeof item === "string"));
182
+ }
183
+ function compareLeaderboardEntries(a, b) {
184
+ return (b.selectedCount - a.selectedCount ||
185
+ (b.scoreMean ?? Number.NEGATIVE_INFINITY) - (a.scoreMean ?? Number.NEGATIVE_INFINITY) ||
186
+ b.scoreTotal - a.scoreTotal ||
187
+ compareIds(a.targetId, b.targetId));
188
+ }
189
+ function compareIds(a, b) {
190
+ return a < b ? -1 : a > b ? 1 : 0;
191
+ }
192
+ //# sourceMappingURL=views.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"views.js","sourceRoot":"","sources":["../src/views.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAwF,MAAM,aAAa,CAAC;AAqFhI,MAAM,UAAU,kBAAkB,CAAC,MAAuB;IACxD,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC7C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAEhD,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,GAAG;QAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACjD,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;QAC9C,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YAC7C,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACvB,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACtC,IAAI,QAAQ;gBAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAEpE,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QACjC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC;QACxC,OAAO;YACL,GAAG,SAAS;YACZ,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC;YACrC,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE;YAChC,cAAc,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;YAClI,iBAAiB,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;SACxG,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,KAAK;QACL,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;QAClG,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;QACxF,SAAS,EAAE,MAAM,CAAC,gBAAgB;QAClC,OAAO,EAAE,MAAM,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;KACnG,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,MAAuB,EACvB,IAAY,EACZ,UAAiC,EAAE;IAEnC,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC1C,MAAM,IAAI,GAAoB,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,IAAI,OAAO,GAAuB,IAAI,CAAC;IAEvC,OAAO,OAAO,EAAE,CAAC;QACf,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,MAAM;QAC7B,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,CAAC,SAAS;YAAE,MAAM;QACtB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrB,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QACxF,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,UAAU,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,MAAM,OAAO,GAAG,IAAI;SACjB,OAAO,EAAE;SACT,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAExD,OAAO;QACL,IAAI;QACJ,OAAO;QACP,UAAU,EAAE,OAAO,CAAC,GAAG;QACvB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;KACpD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAuB;IACpD,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAEzC,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC;QACpD,WAAW,EAAE,IAAI,CAAC,MAAM;QACxB,oBAAoB,EAAE,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,oBAAoB,CAAC;QAClE,WAAW,EAAE,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC;QACpC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAuB;IACzD,MAAM,KAAK,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,GAAG,EAA8C,CAAC;IACtE,MAAM,oBAAoB,GAAa,EAAE,CAAC;IAE1C,MAAM,MAAM,GAAG,CAAC,QAAgB,EAAE,EAAE;QAClC,IAAI,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG;gBACN,QAAQ;gBACR,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;gBACjC,UAAU,EAAE,CAAC;gBACb,UAAU,EAAE,CAAC;gBACb,SAAS,EAAE,IAAI;gBACf,aAAa,EAAE,CAAC;gBAChB,cAAc,EAAE,CAAC;gBACjB,MAAM,EAAE,EAAE;gBACV,UAAU,EAAE,EAAE;aACf,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,2EAA2E;IAC3E,0EAA0E;IAC1E,uEAAuE;IACvE,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC;QACxC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;QAC9B,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,IAAI,SAAS,CAAC,iBAAiB;YAAE,SAAS;QAC9E,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC1C,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACpC,SAAS;YACX,CAAC;YACD,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBACrC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC/B,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC;gBAC1B,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC;gBACtB,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;gBACtD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC1H,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,KAAK,WAAW,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;YAClD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YAChD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAChE,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC5C,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACpC,SAAS;YACX,CAAC;YACD,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;gBAC/B,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACtC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC/B,KAAK,CAAC,cAAc,IAAI,CAAC,CAAC;gBAC1B,IAAI,QAAQ;oBAAE,KAAK,CAAC,aAAa,IAAI,CAAC,CAAC;gBACvC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;oBACpB,YAAY,EAAE,KAAK,CAAC,EAAE;oBACtB,QAAQ;oBACR,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC;oBACnB,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC;oBACjB,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,EAAE,EAAE,KAAK,CAAC,EAAE;oBACZ,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;iBAC9B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACrE,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;QACtE,oBAAoB,EAAE,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC;KAC5D,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAuB;IACjD,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACpD,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAC9E,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAC;IAEhD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,SAAS;QAC1F,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE;YAClB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI;YACJ,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;SACrD,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;AAC9D,CAAC;AAED,SAAS,YAAY,CAAC,OAAgC;IACpD,KAAK,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;IACxE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,GAAG,EAAE,CAAC;IAC5C,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC;AACnF,CAAC;AAED,SAAS,yBAAyB,CAChC,CAAqC,EACrC,CAAqC;IAErC,OAAO,CACL,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa;QACjC,CAAC,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,iBAAiB,CAAC;QACrF,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU;QAC3B,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CACnC,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,CAAS,EAAE,CAAS;IACtC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,183 @@
1
+ {
2
+ "name": "@deepfates/lync",
3
+ "version": "0.3.0",
4
+ "description": "The lync format: append-only JSONL event logs merged by set union. Parsing, stores, views, looms, live sync, loom client, indexes, the sync relay, and the lync command. Zero dependencies.",
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "sideEffects": false,
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/deepfates/lync.git"
11
+ },
12
+ "homepage": "https://github.com/deepfates/lync#readme",
13
+ "bugs": "https://github.com/deepfates/lync/issues",
14
+ "publishConfig": {
15
+ "access": "public"
16
+ },
17
+ "bin": {
18
+ "lync": "bin/lync.js"
19
+ },
20
+ "main": "./dist/index.js",
21
+ "types": "./dist/index.d.ts",
22
+ "exports": {
23
+ ".": {
24
+ "types": "./dist/index.d.ts",
25
+ "import": "./dist/index.js",
26
+ "default": "./dist/index.js"
27
+ },
28
+ "./errors": {
29
+ "types": "./dist/errors.d.ts",
30
+ "import": "./dist/errors.js",
31
+ "default": "./dist/errors.js"
32
+ },
33
+ "./memory": {
34
+ "types": "./dist/memory.d.ts",
35
+ "import": "./dist/memory.js",
36
+ "default": "./dist/memory.js"
37
+ },
38
+ "./events": {
39
+ "types": "./dist/events.d.ts",
40
+ "import": "./dist/events.js",
41
+ "default": "./dist/events.js"
42
+ },
43
+ "./file-log": {
44
+ "types": "./dist/file-log.d.ts",
45
+ "import": "./dist/file-log.js",
46
+ "default": "./dist/file-log.js"
47
+ },
48
+ "./idb-log": {
49
+ "types": "./dist/idb-log.d.ts",
50
+ "import": "./dist/idb-log.js",
51
+ "default": "./dist/idb-log.js"
52
+ },
53
+ "./looms": {
54
+ "types": "./dist/looms.d.ts",
55
+ "import": "./dist/looms.js",
56
+ "default": "./dist/looms.js"
57
+ },
58
+ "./memory-log": {
59
+ "types": "./dist/memory-log.d.ts",
60
+ "import": "./dist/memory-log.js",
61
+ "default": "./dist/memory-log.js"
62
+ },
63
+ "./store": {
64
+ "types": "./dist/store.d.ts",
65
+ "import": "./dist/store.js",
66
+ "default": "./dist/store.js"
67
+ },
68
+ "./views": {
69
+ "types": "./dist/views.d.ts",
70
+ "import": "./dist/views.js",
71
+ "default": "./dist/views.js"
72
+ },
73
+ "./profiles/text-story": {
74
+ "types": "./dist/profiles/text-story.d.ts",
75
+ "import": "./dist/profiles/text-story.js",
76
+ "default": "./dist/profiles/text-story.js"
77
+ },
78
+ "./references": {
79
+ "types": "./dist/references.d.ts",
80
+ "import": "./dist/references.js",
81
+ "default": "./dist/references.js"
82
+ },
83
+ "./types": {
84
+ "types": "./dist/types.d.ts",
85
+ "import": "./dist/types.js",
86
+ "default": "./dist/types.js"
87
+ },
88
+ "./sync-protocol": {
89
+ "types": "./dist/sync-protocol.d.ts",
90
+ "import": "./dist/sync-protocol.js",
91
+ "default": "./dist/sync-protocol.js"
92
+ },
93
+ "./synced-store": {
94
+ "types": "./dist/synced-store.d.ts",
95
+ "import": "./dist/synced-store.js",
96
+ "default": "./dist/synced-store.js"
97
+ },
98
+ "./uuid": {
99
+ "types": "./dist/uuid.d.ts",
100
+ "import": "./dist/uuid.js",
101
+ "default": "./dist/uuid.js"
102
+ },
103
+ "./indexes": {
104
+ "types": "./dist/indexes/index.d.ts",
105
+ "import": "./dist/indexes/index.js",
106
+ "default": "./dist/indexes/index.js"
107
+ },
108
+ "./indexes/entries": {
109
+ "types": "./dist/indexes/entries.d.ts",
110
+ "import": "./dist/indexes/entries.js",
111
+ "default": "./dist/indexes/entries.js"
112
+ },
113
+ "./indexes/memory": {
114
+ "types": "./dist/indexes/memory.d.ts",
115
+ "import": "./dist/indexes/memory.js",
116
+ "default": "./dist/indexes/memory.js"
117
+ },
118
+ "./indexes/types": {
119
+ "types": "./dist/indexes/types.d.ts",
120
+ "import": "./dist/indexes/types.js",
121
+ "default": "./dist/indexes/types.js"
122
+ },
123
+ "./client": {
124
+ "types": "./dist/client/index.d.ts",
125
+ "import": "./dist/client/index.js",
126
+ "default": "./dist/client/index.js"
127
+ },
128
+ "./client/testing": {
129
+ "types": "./dist/client/testing.d.ts",
130
+ "import": "./dist/client/testing.js",
131
+ "default": "./dist/client/testing.js"
132
+ },
133
+ "./client/types": {
134
+ "types": "./dist/client/types.d.ts",
135
+ "import": "./dist/client/types.js",
136
+ "default": "./dist/client/types.js"
137
+ },
138
+ "./relay": {
139
+ "types": "./dist/relay/index.d.ts",
140
+ "import": "./dist/relay/index.js",
141
+ "default": "./dist/relay/index.js"
142
+ }
143
+ },
144
+ "files": [
145
+ "bin",
146
+ "dist"
147
+ ],
148
+ "dependencies": {},
149
+ "devDependencies": {
150
+ "@types/node": "^22.14.0",
151
+ "typescript": "^5.8.3",
152
+ "vitest": "^3.1.1",
153
+ "ws": "^8.18.0"
154
+ },
155
+ "engines": {
156
+ "node": ">=22"
157
+ },
158
+ "keywords": [
159
+ "lync",
160
+ "jsonl",
161
+ "append-only",
162
+ "event-log",
163
+ "crdt-adjacent",
164
+ "local-first",
165
+ "sync",
166
+ "merge",
167
+ "loom",
168
+ "transcript",
169
+ "cli",
170
+ "websocket",
171
+ "relay",
172
+ "index",
173
+ "client"
174
+ ],
175
+ "scripts": {
176
+ "build": "tsc -p tsconfig.json",
177
+ "test": "vitest run",
178
+ "typecheck": "pnpm build && tsc -p tsconfig.json --noEmit",
179
+ "guard:paths": "bash scripts/no-machine-local-paths.sh",
180
+ "verify": "pnpm guard:paths && pnpm test && pnpm typecheck && pnpm check:examples",
181
+ "check:examples": "node scripts/check-readme-examples.mjs"
182
+ }
183
+ }