@hydranium/protocol 1.0.0-next.39 → 1.0.0-next.390

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 (311) hide show
  1. package/README.md +46 -83
  2. package/lib/abstract-logger.d.ts +11 -0
  3. package/lib/abstract-logger.d.ts.map +1 -1
  4. package/lib/abstract-logger.js +16 -0
  5. package/lib/abstract-logger.js.map +1 -1
  6. package/lib/client/data-connection.d.ts +303 -0
  7. package/lib/client/data-connection.d.ts.map +1 -0
  8. package/lib/client/data-connection.js +534 -0
  9. package/lib/client/data-connection.js.map +1 -0
  10. package/lib/client/data-events.d.ts +11 -2
  11. package/lib/client/data-events.d.ts.map +1 -1
  12. package/lib/client/data-events.js +13 -1
  13. package/lib/client/data-events.js.map +1 -1
  14. package/lib/client/data-port.d.ts +34 -24
  15. package/lib/client/data-port.d.ts.map +1 -1
  16. package/lib/client/data-session.d.ts +762 -89
  17. package/lib/client/data-session.d.ts.map +1 -1
  18. package/lib/client/data-session.js +1253 -115
  19. package/lib/client/data-session.js.map +1 -1
  20. package/lib/client/index.d.ts +16 -9
  21. package/lib/client/index.d.ts.map +1 -1
  22. package/lib/client/index.js +16 -9
  23. package/lib/client/index.js.map +1 -1
  24. package/lib/client/message-relay.d.ts +6 -4
  25. package/lib/client/message-relay.d.ts.map +1 -1
  26. package/lib/client/message-relay.js +4 -4
  27. package/lib/client/message-relay.js.map +1 -1
  28. package/lib/client/post-message-transport.d.ts +69 -3
  29. package/lib/client/post-message-transport.d.ts.map +1 -1
  30. package/lib/client/post-message-transport.js +175 -1
  31. package/lib/client/post-message-transport.js.map +1 -1
  32. package/lib/client/rpc-connection.d.ts +173 -0
  33. package/lib/client/rpc-connection.d.ts.map +1 -0
  34. package/lib/client/rpc-connection.js +225 -0
  35. package/lib/client/rpc-connection.js.map +1 -0
  36. package/lib/client/worker-handshake.d.ts +94 -0
  37. package/lib/client/worker-handshake.d.ts.map +1 -0
  38. package/lib/client/worker-handshake.js +51 -0
  39. package/lib/client/worker-handshake.js.map +1 -0
  40. package/lib/client/working-copy.d.ts +420 -0
  41. package/lib/client/working-copy.d.ts.map +1 -0
  42. package/lib/client/working-copy.js +958 -0
  43. package/lib/client/working-copy.js.map +1 -0
  44. package/lib/client-ids.d.ts +45 -0
  45. package/lib/client-ids.d.ts.map +1 -0
  46. package/lib/client-ids.js +48 -0
  47. package/lib/client-ids.js.map +1 -0
  48. package/lib/clock.d.ts +50 -10
  49. package/lib/clock.d.ts.map +1 -1
  50. package/lib/clock.js +36 -1
  51. package/lib/clock.js.map +1 -1
  52. package/lib/console-logger.d.ts +23 -0
  53. package/lib/console-logger.d.ts.map +1 -0
  54. package/lib/console-logger.js +39 -0
  55. package/lib/console-logger.js.map +1 -0
  56. package/lib/data/data-protocol-methods.d.ts +4 -4
  57. package/lib/data/data-protocol-methods.d.ts.map +1 -1
  58. package/lib/data/data-protocol-methods.js +7 -0
  59. package/lib/data/data-protocol-methods.js.map +1 -1
  60. package/lib/data/data-server-protocol.d.ts +160 -50
  61. package/lib/data/data-server-protocol.d.ts.map +1 -1
  62. package/lib/data/events.d.ts +75 -31
  63. package/lib/data/events.d.ts.map +1 -1
  64. package/lib/data/requests.d.ts +84 -11
  65. package/lib/data/requests.d.ts.map +1 -1
  66. package/lib/debouncer.d.ts +7 -4
  67. package/lib/debouncer.d.ts.map +1 -1
  68. package/lib/debouncer.js +10 -10
  69. package/lib/debouncer.js.map +1 -1
  70. package/lib/errors.d.ts +241 -48
  71. package/lib/errors.d.ts.map +1 -1
  72. package/lib/errors.js +395 -60
  73. package/lib/errors.js.map +1 -1
  74. package/lib/format-log-arg.d.ts +33 -0
  75. package/lib/format-log-arg.d.ts.map +1 -0
  76. package/lib/format-log-arg.js +158 -0
  77. package/lib/format-log-arg.js.map +1 -0
  78. package/lib/glsp-edits-settled-actions.d.ts +54 -0
  79. package/lib/glsp-edits-settled-actions.d.ts.map +1 -0
  80. package/lib/glsp-edits-settled-actions.js +28 -0
  81. package/lib/glsp-edits-settled-actions.js.map +1 -0
  82. package/lib/glsp-request-model-args.d.ts +16 -0
  83. package/lib/glsp-request-model-args.d.ts.map +1 -0
  84. package/lib/glsp-request-model-args.js +19 -0
  85. package/lib/glsp-request-model-args.js.map +1 -0
  86. package/lib/glsp-save-model-actions.d.ts +55 -0
  87. package/lib/glsp-save-model-actions.d.ts.map +1 -0
  88. package/lib/glsp-save-model-actions.js +28 -0
  89. package/lib/glsp-save-model-actions.js.map +1 -0
  90. package/lib/index.d.ts +11 -0
  91. package/lib/index.d.ts.map +1 -1
  92. package/lib/index.js +11 -0
  93. package/lib/index.js.map +1 -1
  94. package/lib/latency-collector.d.ts +10 -4
  95. package/lib/latency-collector.d.ts.map +1 -1
  96. package/lib/latency-collector.js +2 -0
  97. package/lib/latency-collector.js.map +1 -1
  98. package/lib/logger.d.ts +38 -7
  99. package/lib/logger.d.ts.map +1 -1
  100. package/lib/logger.js +42 -4
  101. package/lib/logger.js.map +1 -1
  102. package/lib/messages/index.d.ts +4 -2
  103. package/lib/messages/index.d.ts.map +1 -1
  104. package/lib/messages/index.js +17 -4
  105. package/lib/messages/index.js.map +1 -1
  106. package/lib/messages/primitives.d.ts +59 -4
  107. package/lib/messages/primitives.d.ts.map +1 -1
  108. package/lib/messages/primitives.js +97 -4
  109. package/lib/messages/primitives.js.map +1 -1
  110. package/lib/model-server.d.ts +58 -11
  111. package/lib/model-server.d.ts.map +1 -1
  112. package/lib/model-server.js +4 -2
  113. package/lib/model-server.js.map +1 -1
  114. package/lib/model-service/base-version.d.ts +67 -0
  115. package/lib/model-service/base-version.d.ts.map +1 -0
  116. package/lib/model-service/base-version.js +44 -0
  117. package/lib/model-service/base-version.js.map +1 -0
  118. package/lib/model-service/index.d.ts +1 -1
  119. package/lib/model-service/index.d.ts.map +1 -1
  120. package/lib/model-service/index.js +4 -5
  121. package/lib/model-service/index.js.map +1 -1
  122. package/lib/model-service/reference-candidate.d.ts +5 -3
  123. package/lib/model-service/reference-candidate.d.ts.map +1 -1
  124. package/lib/node/index.d.ts +10 -0
  125. package/lib/node/index.d.ts.map +1 -0
  126. package/lib/node/index.js +29 -0
  127. package/lib/node/index.js.map +1 -0
  128. package/lib/node/process-memory.d.ts +66 -0
  129. package/lib/node/process-memory.d.ts.map +1 -0
  130. package/lib/node/process-memory.js +291 -0
  131. package/lib/node/process-memory.js.map +1 -0
  132. package/lib/noop-logger.d.ts.map +1 -1
  133. package/lib/noop-logger.js.map +1 -1
  134. package/lib/observable-value.js.map +1 -1
  135. package/lib/patch-merge.d.ts +63 -35
  136. package/lib/patch-merge.d.ts.map +1 -1
  137. package/lib/patch-merge.js +171 -25
  138. package/lib/patch-merge.js.map +1 -1
  139. package/lib/pending-work-tracker.d.ts +33 -0
  140. package/lib/pending-work-tracker.d.ts.map +1 -0
  141. package/lib/pending-work-tracker.js +48 -0
  142. package/lib/pending-work-tracker.js.map +1 -0
  143. package/lib/profile-session.d.ts +24 -8
  144. package/lib/profile-session.d.ts.map +1 -1
  145. package/lib/profile-session.js +13 -4
  146. package/lib/profile-session.js.map +1 -1
  147. package/lib/profiling.d.ts +15 -2
  148. package/lib/profiling.d.ts.map +1 -1
  149. package/lib/profiling.js.map +1 -1
  150. package/lib/project.d.ts +6 -2
  151. package/lib/project.d.ts.map +1 -1
  152. package/lib/project.js.map +1 -1
  153. package/lib/random-uuid.d.ts +14 -0
  154. package/lib/random-uuid.d.ts.map +1 -0
  155. package/lib/random-uuid.js +24 -0
  156. package/lib/random-uuid.js.map +1 -0
  157. package/lib/reconcile-write.d.ts +70 -0
  158. package/lib/reconcile-write.d.ts.map +1 -0
  159. package/lib/reconcile-write.js +69 -0
  160. package/lib/reconcile-write.js.map +1 -0
  161. package/lib/rpc/bind-rpc-methods.d.ts +6 -2
  162. package/lib/rpc/bind-rpc-methods.d.ts.map +1 -1
  163. package/lib/rpc/bind-rpc-methods.js +17 -7
  164. package/lib/rpc/bind-rpc-methods.js.map +1 -1
  165. package/lib/rpc/create-rpc-proxy.d.ts +3 -0
  166. package/lib/rpc/create-rpc-proxy.d.ts.map +1 -1
  167. package/lib/rpc/create-rpc-proxy.js +6 -1
  168. package/lib/rpc/create-rpc-proxy.js.map +1 -1
  169. package/lib/rpc/index.d.ts +1 -0
  170. package/lib/rpc/index.d.ts.map +1 -1
  171. package/lib/rpc/index.js +1 -0
  172. package/lib/rpc/index.js.map +1 -1
  173. package/lib/rpc/send-by-method-name.d.ts +76 -0
  174. package/lib/rpc/send-by-method-name.d.ts.map +1 -0
  175. package/lib/rpc/send-by-method-name.js +120 -0
  176. package/lib/rpc/send-by-method-name.js.map +1 -0
  177. package/lib/rpc/wire-prefix.js.map +1 -1
  178. package/lib/save-text-document.d.ts +40 -0
  179. package/lib/save-text-document.d.ts.map +1 -0
  180. package/lib/save-text-document.js +34 -0
  181. package/lib/save-text-document.js.map +1 -0
  182. package/lib/testing/catalogue-audit.js.map +1 -1
  183. package/lib/testing/data-doubles.d.ts +36 -11
  184. package/lib/testing/data-doubles.d.ts.map +1 -1
  185. package/lib/testing/data-doubles.js +47 -9
  186. package/lib/testing/data-doubles.js.map +1 -1
  187. package/lib/testing/fake-clock.d.ts +17 -2
  188. package/lib/testing/fake-clock.d.ts.map +1 -1
  189. package/lib/testing/fake-clock.js +61 -46
  190. package/lib/testing/fake-clock.js.map +1 -1
  191. package/lib/testing/harness.d.ts +9 -0
  192. package/lib/testing/harness.d.ts.map +1 -1
  193. package/lib/testing/index.d.ts +1 -0
  194. package/lib/testing/index.d.ts.map +1 -1
  195. package/lib/testing/index.js +4 -3
  196. package/lib/testing/index.js.map +1 -1
  197. package/lib/testing/node/duplex-connection.d.ts.map +1 -1
  198. package/lib/testing/node/duplex-connection.js +3 -2
  199. package/lib/testing/node/duplex-connection.js.map +1 -1
  200. package/lib/testing/node/duplex-stream.js.map +1 -1
  201. package/lib/testing/node/index.d.ts +2 -0
  202. package/lib/testing/node/index.d.ts.map +1 -1
  203. package/lib/testing/node/index.js +3 -2
  204. package/lib/testing/node/index.js.map +1 -1
  205. package/lib/testing/node/message-port-pair.d.ts +25 -0
  206. package/lib/testing/node/message-port-pair.d.ts.map +1 -0
  207. package/lib/testing/node/message-port-pair.js +26 -0
  208. package/lib/testing/node/message-port-pair.js.map +1 -0
  209. package/lib/testing/node/unhandled-rejections.d.ts +20 -0
  210. package/lib/testing/node/unhandled-rejections.d.ts.map +1 -0
  211. package/lib/testing/node/unhandled-rejections.js +35 -0
  212. package/lib/testing/node/unhandled-rejections.js.map +1 -0
  213. package/lib/testing/transfer-node-builder.d.ts +81 -0
  214. package/lib/testing/transfer-node-builder.d.ts.map +1 -0
  215. package/lib/testing/transfer-node-builder.js +47 -0
  216. package/lib/testing/transfer-node-builder.js.map +1 -0
  217. package/lib/testing/wait-for.d.ts +9 -3
  218. package/lib/testing/wait-for.d.ts.map +1 -1
  219. package/lib/testing/wait-for.js +57 -11
  220. package/lib/testing/wait-for.js.map +1 -1
  221. package/lib/tracer.d.ts.map +1 -1
  222. package/lib/tracer.js +5 -9
  223. package/lib/tracer.js.map +1 -1
  224. package/lib/transfer-diagnostic.d.ts +11 -0
  225. package/lib/transfer-diagnostic.d.ts.map +1 -1
  226. package/lib/transfer-diagnostic.js +17 -0
  227. package/lib/transfer-diagnostic.js.map +1 -1
  228. package/lib/transfer-document.d.ts +108 -32
  229. package/lib/transfer-document.d.ts.map +1 -1
  230. package/lib/transfer-document.js +17 -9
  231. package/lib/transfer-document.js.map +1 -1
  232. package/lib/transfer-element.d.ts +4 -4
  233. package/lib/types.d.ts +32 -0
  234. package/lib/types.d.ts.map +1 -0
  235. package/lib/{model-service/args.js → types.js} +2 -2
  236. package/lib/types.js.map +1 -0
  237. package/lib/uri.d.ts.map +1 -1
  238. package/lib/uri.js.map +1 -1
  239. package/lib/util.d.ts +8 -2
  240. package/lib/util.d.ts.map +1 -1
  241. package/lib/util.js +32 -4
  242. package/lib/util.js.map +1 -1
  243. package/package.json +24 -40
  244. package/src/abstract-logger.ts +18 -0
  245. package/src/client/data-connection.ts +654 -0
  246. package/src/client/data-events.ts +15 -1
  247. package/src/client/data-port.ts +36 -25
  248. package/src/client/data-session.ts +1606 -137
  249. package/src/client/index.ts +16 -9
  250. package/src/client/message-relay.ts +6 -4
  251. package/src/client/post-message-transport.ts +224 -4
  252. package/src/client/rpc-connection.ts +302 -0
  253. package/src/client/worker-handshake.ts +121 -0
  254. package/src/client/working-copy.ts +1116 -0
  255. package/src/client-ids.ts +49 -0
  256. package/src/clock.ts +68 -10
  257. package/src/console-logger.ts +39 -0
  258. package/src/data/data-protocol-methods.ts +8 -1
  259. package/src/data/data-server-protocol.ts +184 -49
  260. package/src/data/events.ts +77 -31
  261. package/src/data/requests.ts +90 -11
  262. package/src/debouncer.ts +11 -11
  263. package/src/errors.ts +496 -71
  264. package/src/format-log-arg.ts +176 -0
  265. package/src/glsp-edits-settled-actions.ts +62 -0
  266. package/src/glsp-request-model-args.ts +16 -0
  267. package/src/glsp-save-model-actions.ts +64 -0
  268. package/src/index.ts +11 -0
  269. package/src/latency-collector.ts +10 -3
  270. package/src/logger.ts +44 -8
  271. package/src/messages/index.ts +12 -2
  272. package/src/messages/primitives.ts +129 -5
  273. package/src/model-server.ts +62 -17
  274. package/src/model-service/base-version.ts +75 -0
  275. package/src/model-service/index.ts +4 -5
  276. package/src/model-service/reference-candidate.ts +5 -3
  277. package/src/node/index.ts +14 -0
  278. package/src/node/process-memory.ts +299 -0
  279. package/src/patch-merge.ts +230 -45
  280. package/src/pending-work-tracker.ts +48 -0
  281. package/src/profile-session.ts +31 -11
  282. package/src/profiling.ts +15 -2
  283. package/src/project.ts +6 -2
  284. package/src/random-uuid.ts +21 -0
  285. package/src/reconcile-write.ts +131 -0
  286. package/src/rpc/README.md +6 -6
  287. package/src/rpc/bind-rpc-methods.ts +18 -8
  288. package/src/rpc/create-rpc-proxy.ts +6 -1
  289. package/src/rpc/index.ts +1 -0
  290. package/src/rpc/send-by-method-name.ts +140 -0
  291. package/src/save-text-document.ts +39 -0
  292. package/src/testing/data-doubles.ts +119 -19
  293. package/src/testing/fake-clock.ts +76 -48
  294. package/src/testing/harness.ts +10 -0
  295. package/src/testing/index.ts +4 -3
  296. package/src/testing/node/duplex-connection.ts +3 -2
  297. package/src/testing/node/index.ts +3 -2
  298. package/src/testing/node/message-port-pair.ts +40 -0
  299. package/src/testing/node/unhandled-rejections.ts +31 -0
  300. package/src/testing/transfer-node-builder.ts +107 -0
  301. package/src/testing/wait-for.ts +61 -13
  302. package/src/tracer.ts +5 -9
  303. package/src/transfer-diagnostic.ts +17 -0
  304. package/src/transfer-document.ts +130 -34
  305. package/src/transfer-element.ts +4 -4
  306. package/src/types.ts +30 -0
  307. package/src/util.ts +33 -6
  308. package/lib/model-service/args.d.ts +0 -64
  309. package/lib/model-service/args.d.ts.map +0 -1
  310. package/lib/model-service/args.js.map +0 -1
  311. package/src/model-service/args.ts +0 -67
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ /********************************************************************************
3
+ * Copyright (c) 2026 EclipseSource and others.
4
+ *
5
+ * This program and the accompanying materials are made available under the
6
+ * terms of the MIT License which is available in the project root.
7
+ *
8
+ * SPDX-License-Identifier: MIT
9
+ ********************************************************************************/
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.formatLogArg = formatLogArg;
12
+ const primitives_1 = require("./messages/primitives");
13
+ /** How deep an object argument is rendered; a deeper object reads `[Object]` or `[Array]`. */
14
+ const LOG_ARG_DEPTH = 2;
15
+ /** How many items or keys of one array or object are rendered. */
16
+ const LOG_ARG_ITEMS = 100;
17
+ /** How many characters of one string or key inside an object argument are rendered. */
18
+ const LOG_ARG_STRING_LENGTH = 10_000;
19
+ /**
20
+ * About how many characters one argument renders, since the limits above
21
+ * multiply. The entry that would pass it reads `...`; later ones are left out.
22
+ */
23
+ const LOG_ARG_LENGTH = 100_000;
24
+ /**
25
+ * Render a log argument as text for a log line:
26
+ * - a string as it is;
27
+ * - an error by its stack and causes;
28
+ * - another object as JSON, cut to a bounded size;
29
+ * - anything else by its description, as is an object JSON renders as nothing
30
+ * or cannot render.
31
+ *
32
+ * The cut is needed because the log call serialises synchronously and every
33
+ * Langium AST node is cyclic. The JSON stops at `LOG_ARG_DEPTH` levels,
34
+ * `LOG_ARG_ITEMS` items or keys and `LOG_ARG_STRING_LENGTH` characters per
35
+ * string or key, and at about `LOG_ARG_LENGTH` in all. A reference back to an
36
+ * object that contains it reads `[Circular]`, and a BigInt its digits; the
37
+ * markers are JSON strings. `util.inspect` would cut too, but is Node-only.
38
+ *
39
+ * Never throws, since a log call that throws loses the line and interrupts its
40
+ * caller. A `%s`-style specifier is not substituted.
41
+ */
42
+ function formatLogArg(value, options = {}) {
43
+ if (typeof value === 'string') {
44
+ return value;
45
+ }
46
+ if (typeof value === 'object' && value !== null) {
47
+ try {
48
+ // `undefined` where `toJSON` returns nothing.
49
+ const json = value instanceof Error ? undefined : JSON.stringify(value, boundedReplacer(options.indent), options.indent);
50
+ if (json !== undefined) {
51
+ return json;
52
+ }
53
+ }
54
+ catch {
55
+ // A throwing getter or `toJSON`, or a revoked proxy; described below instead.
56
+ }
57
+ }
58
+ return (0, primitives_1.describeErrorWithStack)(value);
59
+ }
60
+ function boundedReplacer(indent) {
61
+ // Keyed by the object last entered; JSON is written depth first, so its entry is on the path being written.
62
+ const visits = new Map();
63
+ const isOnPath = (value, holder) => holder !== undefined && ((visits.get(holder)?.source ?? holder) === value || isOnPath(value, visits.get(holder)?.parent));
64
+ // As `JSON.stringify` clamps its `space`.
65
+ const space = Math.min(10, Math.max(0, Math.floor(indent ?? 0)));
66
+ let remaining = LOG_ARG_LENGTH;
67
+ let exhausted = false;
68
+ return function (key, raw) {
69
+ if (exhausted) {
70
+ // In an object the entry is left out; in an array it reads `null`.
71
+ return undefined;
72
+ }
73
+ // A boxed primitive is written as its value, so it is cut as one.
74
+ const value = raw instanceof String || raw instanceof Number || raw instanceof Boolean || raw instanceof BigInt ? raw.valueOf() : raw;
75
+ const depth = (visits.get(this)?.depth ?? -1) + 1;
76
+ const rendered = render(value, depth, this);
77
+ const isObject = typeof rendered === 'object' && rendered !== null;
78
+ // What this entry writes: its value, its key unless it is an item, and the punctuation and indent around them.
79
+ const written = isObject ? undefined : JSON.stringify(rendered);
80
+ // A value JSON cannot write is left out of an object, key and all, and written as `null` in an array.
81
+ const leftOut = !isObject && written === undefined && !Array.isArray(this);
82
+ const valueLength = isObject ? 2 : (written?.length ?? 4);
83
+ const keyLength = depth === 0 || Array.isArray(this) ? 0 : JSON.stringify(key).length + 1 + (space > 0 ? 1 : 0);
84
+ const layoutLength = 1 + (space > 0 ? (1 + space * depth) * (isObject ? 2 : 1) : 0);
85
+ const length = leftOut ? 0 : valueLength + keyLength + layoutLength;
86
+ if (length > remaining) {
87
+ exhausted = true;
88
+ return '...';
89
+ }
90
+ remaining -= length;
91
+ if (isObject) {
92
+ visits.set(rendered, { parent: this, depth, source: value });
93
+ }
94
+ return rendered;
95
+ };
96
+ function render(value, depth, holder) {
97
+ if (typeof value === 'string') {
98
+ return cutString(value);
99
+ }
100
+ if (typeof value === 'bigint') {
101
+ return String(value);
102
+ }
103
+ if (typeof value !== 'object' || value === null) {
104
+ return value;
105
+ }
106
+ if (isOnPath(value, holder)) {
107
+ return '[Circular]';
108
+ }
109
+ if (depth > LOG_ARG_DEPTH) {
110
+ return Array.isArray(value) || isTypedArray(value) ? '[Array]' : '[Object]';
111
+ }
112
+ return cut(value);
113
+ }
114
+ }
115
+ function cutString(value) {
116
+ const more = value.length - LOG_ARG_STRING_LENGTH;
117
+ return more > 0 ? `${value.slice(0, LOG_ARG_STRING_LENGTH)}... ${more} more characters` : value;
118
+ }
119
+ function isTypedArray(value) {
120
+ return ArrayBuffer.isView(value) && !(value instanceof DataView);
121
+ }
122
+ /**
123
+ * `value`, or a copy of its first {@link LOG_ARG_ITEMS} items or keys, keys cut
124
+ * as strings are, with a note of how many more there are. A typed array is
125
+ * copied to an array, which reads its items without listing its keys.
126
+ */
127
+ function cut(value) {
128
+ if (Array.isArray(value) || isTypedArray(value)) {
129
+ const more = value.length - LOG_ARG_ITEMS;
130
+ const items = Array.from({ length: Math.min(value.length, LOG_ARG_ITEMS) }, (_, i) => value[i]);
131
+ return more > 0 ? [...items, `... ${more} more items`] : Array.isArray(value) ? value : items;
132
+ }
133
+ // Linear in the keys: no API lists the first few alone, and `JSON.stringify` would list them all too.
134
+ const keys = Object.keys(value);
135
+ const more = keys.length - LOG_ARG_ITEMS;
136
+ const kept = keys.slice(0, LOG_ARG_ITEMS);
137
+ if (more <= 0 && kept.every(key => key.length <= LOG_ARG_STRING_LENGTH)) {
138
+ return value;
139
+ }
140
+ // No prototype, so a `__proto__` key is an entry like any other.
141
+ const copy = Object.create(null);
142
+ // A cut key or the note can equal a key already written; numbered, so neither entry is lost.
143
+ const add = (key, entry) => {
144
+ let unique = key;
145
+ for (let i = 2; unique in copy; i++) {
146
+ unique = `${key} (${i})`;
147
+ }
148
+ copy[unique] = entry;
149
+ };
150
+ for (const key of kept) {
151
+ add(cutString(key), value[key]);
152
+ }
153
+ if (more > 0) {
154
+ add(`... ${more} more keys`, '...');
155
+ }
156
+ return copy;
157
+ }
158
+ //# sourceMappingURL=format-log-arg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-log-arg.js","sourceRoot":"","sources":["../src/format-log-arg.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 EclipseSource and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the MIT License which is available in the project root.
6
+ *
7
+ * SPDX-License-Identifier: MIT
8
+ ********************************************************************************/
9
+ /**
10
+ * A request the server answers, with an {@link EditsSettledAction}, once every
11
+ * edit the client sent before it has been handled and its text has reached
12
+ * the language client, so the client knows those edits are answered.
13
+ *
14
+ * An operation has no answer of its own: the server replies with a model
15
+ * update and a dirty state, with a message, or with nothing at all when the
16
+ * operation changed nothing. The server handles a client's actions one at a
17
+ * time, so a request sent after the edits is answered after them, whatever
18
+ * each one answered. A server that fails it answers with a GLSP
19
+ * `RejectAction`, which ends the wait too.
20
+ */
21
+ export interface RequestEditsSettledAction {
22
+ /** Answered only by a server that advertises this kind. The framework's dispatcher sends none to a server that does not. */
23
+ kind: typeof RequestEditsSettledAction.KIND;
24
+ /** The id the response echoes as its `responseId`. Empty until the dispatcher assigns one. */
25
+ requestId: string;
26
+ /**
27
+ * How long the server waits before it rejects the request, as it does any
28
+ * request; a rejection then means not settled, and the answer that follows
29
+ * is dropped. GLSP's `requestUntil` sets one; `request` leaves it unset.
30
+ */
31
+ timeout?: number;
32
+ /** GLSP's typing marker for the response. Never set. */
33
+ readonly _?: EditsSettledAction;
34
+ }
35
+ export declare namespace RequestEditsSettledAction {
36
+ const KIND = "hydraniumRequestEditsSettled";
37
+ function create(options?: {
38
+ requestId?: string;
39
+ }): RequestEditsSettledAction;
40
+ }
41
+ /** The server's answer to a {@link RequestEditsSettledAction}. */
42
+ export interface EditsSettledAction {
43
+ /** No client handler takes this kind: the dispatcher settles the request by {@link responseId} instead. */
44
+ kind: typeof EditsSettledAction.KIND;
45
+ /** The `requestId` of the request this answers. The server's dispatcher sets it. */
46
+ responseId: string;
47
+ }
48
+ export declare namespace EditsSettledAction {
49
+ const KIND = "hydraniumEditsSettled";
50
+ function create(options?: {
51
+ responseId?: string;
52
+ }): EditsSettledAction;
53
+ }
54
+ //# sourceMappingURL=glsp-edits-settled-actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glsp-edits-settled-actions.d.ts","sourceRoot":"","sources":["../src/glsp-edits-settled-actions.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAKlF;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,yBAAyB;IACvC,4HAA4H;IAC5H,IAAI,EAAE,OAAO,yBAAyB,CAAC,IAAI,CAAC;IAC5C,8FAA8F;IAC9F,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,QAAQ,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC;CAClC;AAED,yBAAiB,yBAAyB,CAAC;IACjC,MAAM,IAAI,iCAAiC,CAAC;IAEnD,SAAgB,MAAM,CAAC,OAAO,GAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,yBAAyB,CAEtF;CACH;AAED,kEAAkE;AAClE,MAAM,WAAW,kBAAkB;IAChC,2GAA2G;IAC3G,IAAI,EAAE,OAAO,kBAAkB,CAAC,IAAI,CAAC;IACrC,oFAAoF;IACpF,UAAU,EAAE,MAAM,CAAC;CACrB;AAED,yBAAiB,kBAAkB,CAAC;IAC1B,MAAM,IAAI,0BAA0B,CAAC;IAE5C,SAAgB,MAAM,CAAC,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,kBAAkB,CAEhF;CACH"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ /********************************************************************************
3
+ * Copyright (c) 2026 EclipseSource and others.
4
+ *
5
+ * This program and the accompanying materials are made available under the
6
+ * terms of the MIT License which is available in the project root.
7
+ *
8
+ * SPDX-License-Identifier: MIT
9
+ ********************************************************************************/
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.EditsSettledAction = exports.RequestEditsSettledAction = void 0;
12
+ var RequestEditsSettledAction;
13
+ (function (RequestEditsSettledAction) {
14
+ RequestEditsSettledAction.KIND = 'hydraniumRequestEditsSettled';
15
+ function create(options = {}) {
16
+ return { kind: RequestEditsSettledAction.KIND, requestId: '', ...options };
17
+ }
18
+ RequestEditsSettledAction.create = create;
19
+ })(RequestEditsSettledAction || (exports.RequestEditsSettledAction = RequestEditsSettledAction = {}));
20
+ var EditsSettledAction;
21
+ (function (EditsSettledAction) {
22
+ EditsSettledAction.KIND = 'hydraniumEditsSettled';
23
+ function create(options = {}) {
24
+ return { kind: EditsSettledAction.KIND, responseId: '', ...options };
25
+ }
26
+ EditsSettledAction.create = create;
27
+ })(EditsSettledAction || (exports.EditsSettledAction = EditsSettledAction = {}));
28
+ //# sourceMappingURL=glsp-edits-settled-actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glsp-edits-settled-actions.js","sourceRoot":"","sources":["../src/glsp-edits-settled-actions.ts"],"names":[],"mappings":";AAAA;;;;;;;kFAOkF;;;AAgClF,IAAiB,yBAAyB,CAMzC;AAND,WAAiB,yBAAyB;IAC1B,8BAAI,GAAG,8BAA8B,CAAC;IAEnD,SAAgB,MAAM,CAAC,OAAO,GAA2B,EAAE;QACxD,OAAO,EAAE,IAAI,EAAE,8BAAI,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC;IACpD,CAAC;IAFe,0BAAA,MAAM,SAErB,CAAA;AACJ,CAAC,EANgB,yBAAyB,aAAzB,yBAAyB,GAAzB,yBAAyB,QAMzC;AAUD,IAAiB,kBAAkB,CAMlC;AAND,WAAiB,kBAAkB;IACnB,uBAAI,GAAG,uBAAuB,CAAC;IAE5C,SAAgB,MAAM,CAAC,OAAO,GAA4B,EAAE;QACzD,OAAO,EAAE,IAAI,EAAE,uBAAI,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC;IACrD,CAAC;IAFe,mBAAA,MAAM,SAErB,CAAA;AACJ,CAAC,EANgB,kBAAkB,aAAlB,kBAAkB,GAAlB,kBAAkB,QAMlC"}
@@ -0,0 +1,16 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 CrossBreeze, EclipseSource and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the MIT License which is available in the project root.
6
+ *
7
+ * SPDX-License-Identifier: MIT
8
+ ********************************************************************************/
9
+ /**
10
+ * The `RequestModelAction` option carrying a diagram's resume token. A load
11
+ * whose token matches the one the live session under its client id was started
12
+ * with takes that session over, so a diagram that reconnects or reloads keeps
13
+ * its unsaved text; without it, the id held by another session is refused.
14
+ */
15
+ export declare const RESUME_TOKEN_ARG = "hydraniumResumeToken";
16
+ //# sourceMappingURL=glsp-request-model-args.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glsp-request-model-args.d.ts","sourceRoot":"","sources":["../src/glsp-request-model-args.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,yBAAyB,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ /********************************************************************************
3
+ * Copyright (c) 2026 CrossBreeze, EclipseSource and others.
4
+ *
5
+ * This program and the accompanying materials are made available under the
6
+ * terms of the MIT License which is available in the project root.
7
+ *
8
+ * SPDX-License-Identifier: MIT
9
+ ********************************************************************************/
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.RESUME_TOKEN_ARG = void 0;
12
+ /**
13
+ * The `RequestModelAction` option carrying a diagram's resume token. A load
14
+ * whose token matches the one the live session under its client id was started
15
+ * with takes that session over, so a diagram that reconnects or reloads keeps
16
+ * its unsaved text; without it, the id held by another session is refused.
17
+ */
18
+ exports.RESUME_TOKEN_ARG = 'hydraniumResumeToken';
19
+ //# sourceMappingURL=glsp-request-model-args.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glsp-request-model-args.js","sourceRoot":"","sources":["../src/glsp-request-model-args.ts"],"names":[],"mappings":";AAAA;;;;;;;kFAOkF;;;AAElF;;;;;GAKG;AACU,QAAA,gBAAgB,GAAG,sBAAsB,CAAC"}
@@ -0,0 +1,55 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 CrossBreeze, EclipseSource and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the MIT License which is available in the project root.
6
+ *
7
+ * SPDX-License-Identifier: MIT
8
+ ********************************************************************************/
9
+ /**
10
+ * A save of a diagram's model that the server answers, with a
11
+ * {@link ModelSavedAction} once the save has finished or a GLSP
12
+ * `RejectAction` when it fails.
13
+ *
14
+ * It carries what GLSP's `SaveModelAction` carries, and the server saves it the
15
+ * same way. GLSP's `SaveModelAction` is not answered: the server's only
16
+ * reply is a dirty-state change, which the client drops when the dirty flag
17
+ * does not change, so a client cannot tell which save an answer belongs to or
18
+ * whether a save failed.
19
+ */
20
+ export interface RequestSaveModelAction {
21
+ /**
22
+ * Answered only by a server that advertises this kind. The framework's
23
+ * Theia saveable sends GLSP's `SaveModelAction` to one that does not.
24
+ */
25
+ kind: typeof RequestSaveModelAction.KIND;
26
+ /** The id the response echoes as its `responseId`. Empty until the dispatcher assigns one. */
27
+ requestId: string;
28
+ /** How long the receiver waits for its own handler, in milliseconds. */
29
+ timeout?: number;
30
+ /** The file to save to, as in GLSP's `SaveModelAction`; absent saves to the diagram's source. */
31
+ fileUri?: string;
32
+ /** GLSP's typing marker for the response. Never set. */
33
+ readonly _?: ModelSavedAction;
34
+ }
35
+ export declare namespace RequestSaveModelAction {
36
+ const KIND = "hydraniumRequestSaveModel";
37
+ function create(options?: {
38
+ fileUri?: string;
39
+ requestId?: string;
40
+ }): RequestSaveModelAction;
41
+ }
42
+ /** The server's answer to a {@link RequestSaveModelAction} that saved. */
43
+ export interface ModelSavedAction {
44
+ /** No client handler takes this kind: the dispatcher settles the save by {@link responseId} instead. */
45
+ kind: typeof ModelSavedAction.KIND;
46
+ /** The `requestId` of the save this answers. The server's dispatcher sets it. */
47
+ responseId: string;
48
+ }
49
+ export declare namespace ModelSavedAction {
50
+ const KIND = "hydraniumModelSaved";
51
+ function create(options?: {
52
+ responseId?: string;
53
+ }): ModelSavedAction;
54
+ }
55
+ //# sourceMappingURL=glsp-save-model-actions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glsp-save-model-actions.d.ts","sourceRoot":"","sources":["../src/glsp-save-model-actions.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAOlF;;;;;;;;;;GAUG;AACH,MAAM,WAAW,sBAAsB;IACpC;;;OAGG;IACH,IAAI,EAAE,OAAO,sBAAsB,CAAC,IAAI,CAAC;IACzC,8FAA8F;IAC9F,SAAS,EAAE,MAAM,CAAC;IAClB,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iGAAiG;IACjG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,QAAQ,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAED,yBAAiB,sBAAsB,CAAC;IAC9B,MAAM,IAAI,8BAA8B,CAAC;IAEhD,SAAgB,MAAM,CAAC,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,sBAAsB,CAErG;CACH;AAED,0EAA0E;AAC1E,MAAM,WAAW,gBAAgB;IAC9B,wGAAwG;IACxG,IAAI,EAAE,OAAO,gBAAgB,CAAC,IAAI,CAAC;IACnC,iFAAiF;IACjF,UAAU,EAAE,MAAM,CAAC;CACrB;AAED,yBAAiB,gBAAgB,CAAC;IACxB,MAAM,IAAI,wBAAwB,CAAC;IAE1C,SAAgB,MAAM,CAAC,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,gBAAgB,CAE9E;CACH"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ /********************************************************************************
3
+ * Copyright (c) 2026 CrossBreeze, EclipseSource and others.
4
+ *
5
+ * This program and the accompanying materials are made available under the
6
+ * terms of the MIT License which is available in the project root.
7
+ *
8
+ * SPDX-License-Identifier: MIT
9
+ ********************************************************************************/
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.ModelSavedAction = exports.RequestSaveModelAction = void 0;
12
+ var RequestSaveModelAction;
13
+ (function (RequestSaveModelAction) {
14
+ RequestSaveModelAction.KIND = 'hydraniumRequestSaveModel';
15
+ function create(options = {}) {
16
+ return { kind: RequestSaveModelAction.KIND, requestId: '', ...options };
17
+ }
18
+ RequestSaveModelAction.create = create;
19
+ })(RequestSaveModelAction || (exports.RequestSaveModelAction = RequestSaveModelAction = {}));
20
+ var ModelSavedAction;
21
+ (function (ModelSavedAction) {
22
+ ModelSavedAction.KIND = 'hydraniumModelSaved';
23
+ function create(options = {}) {
24
+ return { kind: ModelSavedAction.KIND, responseId: '', ...options };
25
+ }
26
+ ModelSavedAction.create = create;
27
+ })(ModelSavedAction || (exports.ModelSavedAction = ModelSavedAction = {}));
28
+ //# sourceMappingURL=glsp-save-model-actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glsp-save-model-actions.js","sourceRoot":"","sources":["../src/glsp-save-model-actions.ts"],"names":[],"mappings":";AAAA;;;;;;;kFAOkF;;;AAkClF,IAAiB,sBAAsB,CAMtC;AAND,WAAiB,sBAAsB;IACvB,2BAAI,GAAG,2BAA2B,CAAC;IAEhD,SAAgB,MAAM,CAAC,OAAO,GAA6C,EAAE;QAC1E,OAAO,EAAE,IAAI,EAAE,2BAAI,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC;IACpD,CAAC;IAFe,uBAAA,MAAM,SAErB,CAAA;AACJ,CAAC,EANgB,sBAAsB,aAAtB,sBAAsB,GAAtB,sBAAsB,QAMtC;AAUD,IAAiB,gBAAgB,CAMhC;AAND,WAAiB,gBAAgB;IACjB,qBAAI,GAAG,qBAAqB,CAAC;IAE1C,SAAgB,MAAM,CAAC,OAAO,GAA4B,EAAE;QACzD,OAAO,EAAE,IAAI,EAAE,qBAAI,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC;IACrD,CAAC;IAFe,iBAAA,MAAM,SAErB,CAAA;AACJ,CAAC,EANgB,gBAAgB,aAAhB,gBAAgB,GAAhB,gBAAgB,QAMhC"}
package/lib/index.d.ts CHANGED
@@ -7,28 +7,39 @@
7
7
  * SPDX-License-Identifier: MIT
8
8
  ********************************************************************************/
9
9
  export * from './abstract-logger';
10
+ export * from './console-logger';
10
11
  export * from './client';
12
+ export * from './client-ids';
11
13
  export * from './clock';
12
14
  export * from './data';
13
15
  export * from './browser-runtime';
14
16
  export * from './debouncer';
17
+ export * from './glsp-edits-settled-actions';
18
+ export * from './glsp-request-model-args';
19
+ export * from './glsp-save-model-actions';
15
20
  export * from './errors';
21
+ export * from './format-log-arg';
16
22
  export * from './host-diagnostics';
17
23
  export * from './logger';
18
24
  export * from './latency-collector';
19
25
  export * from './messages/primitives';
20
26
  export * from './patch-merge';
27
+ export * from './reconcile-write';
21
28
  export * from './noop-logger';
22
29
  export * from './observable-value';
30
+ export * from './pending-work-tracker';
23
31
  export * from './profile-session';
24
32
  export * from './profiling';
25
33
  export * from './tracer';
26
34
  export * from './transfer-diagnostic';
27
35
  export * from './transfer-element';
36
+ export * from './types';
28
37
  export * from './model-service';
29
38
  export * from './transfer-document';
30
39
  export * from './model-server';
31
40
  export * from './project';
41
+ export * from './random-uuid';
42
+ export * from './save-text-document';
32
43
  export * from './rpc';
33
44
  export * from './uri';
34
45
  export * from './util';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AASlF,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AAIpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AASlF,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AAIpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC"}
package/lib/index.js CHANGED
@@ -29,12 +29,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
29
  // on the opposite constraint: re-exporting it would put the test doubles in
30
30
  // every production bundle that imports the root.
31
31
  __exportStar(require("./abstract-logger"), exports);
32
+ __exportStar(require("./console-logger"), exports);
32
33
  __exportStar(require("./client"), exports);
34
+ __exportStar(require("./client-ids"), exports);
33
35
  __exportStar(require("./clock"), exports);
34
36
  __exportStar(require("./data"), exports);
35
37
  __exportStar(require("./browser-runtime"), exports);
36
38
  __exportStar(require("./debouncer"), exports);
39
+ __exportStar(require("./glsp-edits-settled-actions"), exports);
40
+ __exportStar(require("./glsp-request-model-args"), exports);
41
+ __exportStar(require("./glsp-save-model-actions"), exports);
37
42
  __exportStar(require("./errors"), exports);
43
+ __exportStar(require("./format-log-arg"), exports);
38
44
  __exportStar(require("./host-diagnostics"), exports);
39
45
  __exportStar(require("./logger"), exports);
40
46
  __exportStar(require("./latency-collector"), exports);
@@ -43,17 +49,22 @@ __exportStar(require("./latency-collector"), exports);
43
49
  // the modules that raise them.
44
50
  __exportStar(require("./messages/primitives"), exports);
45
51
  __exportStar(require("./patch-merge"), exports);
52
+ __exportStar(require("./reconcile-write"), exports);
46
53
  __exportStar(require("./noop-logger"), exports);
47
54
  __exportStar(require("./observable-value"), exports);
55
+ __exportStar(require("./pending-work-tracker"), exports);
48
56
  __exportStar(require("./profile-session"), exports);
49
57
  __exportStar(require("./profiling"), exports);
50
58
  __exportStar(require("./tracer"), exports);
51
59
  __exportStar(require("./transfer-diagnostic"), exports);
52
60
  __exportStar(require("./transfer-element"), exports);
61
+ __exportStar(require("./types"), exports);
53
62
  __exportStar(require("./model-service"), exports);
54
63
  __exportStar(require("./transfer-document"), exports);
55
64
  __exportStar(require("./model-server"), exports);
56
65
  __exportStar(require("./project"), exports);
66
+ __exportStar(require("./random-uuid"), exports);
67
+ __exportStar(require("./save-text-document"), exports);
57
68
  __exportStar(require("./rpc"), exports);
58
69
  __exportStar(require("./uri"), exports);
59
70
  __exportStar(require("./util"), exports);
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;kFAOkF;;;;;;;;;;;;;;;;AAElF,kFAAkF;AAClF,+EAA+E;AAC/E,8EAA8E;AAC9E,+EAA+E;AAC/E,4EAA4E;AAC5E,iDAAiD;AAEjD,oDAAkC;AAClC,2CAAyB;AACzB,0CAAwB;AACxB,yCAAuB;AACvB,oDAAkC;AAClC,8CAA4B;AAC5B,2CAAyB;AACzB,qDAAmC;AACnC,2CAAyB;AACzB,sDAAoC;AACpC,6EAA6E;AAC7E,+EAA+E;AAC/E,+BAA+B;AAC/B,wDAAsC;AACtC,gDAA8B;AAC9B,gDAA8B;AAC9B,qDAAmC;AACnC,oDAAkC;AAClC,8CAA4B;AAC5B,2CAAyB;AACzB,wDAAsC;AACtC,qDAAmC;AACnC,kDAAgC;AAChC,sDAAoC;AACpC,iDAA+B;AAC/B,4CAA0B;AAC1B,wCAAsB;AACtB,wCAAsB;AACtB,yCAAuB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;kFAOkF;;;;;;;;;;;;;;;;AAElF,kFAAkF;AAClF,+EAA+E;AAC/E,8EAA8E;AAC9E,+EAA+E;AAC/E,4EAA4E;AAC5E,iDAAiD;AAEjD,oDAAkC;AAClC,mDAAiC;AACjC,2CAAyB;AACzB,+CAA6B;AAC7B,0CAAwB;AACxB,yCAAuB;AACvB,oDAAkC;AAClC,8CAA4B;AAC5B,+DAA6C;AAC7C,4DAA0C;AAC1C,4DAA0C;AAC1C,2CAAyB;AACzB,mDAAiC;AACjC,qDAAmC;AACnC,2CAAyB;AACzB,sDAAoC;AACpC,6EAA6E;AAC7E,+EAA+E;AAC/E,+BAA+B;AAC/B,wDAAsC;AACtC,gDAA8B;AAC9B,oDAAkC;AAClC,gDAA8B;AAC9B,qDAAmC;AACnC,yDAAuC;AACvC,oDAAkC;AAClC,8CAA4B;AAC5B,2CAAyB;AACzB,wDAAsC;AACtC,qDAAmC;AACnC,0CAAwB;AACxB,kDAAgC;AAChC,sDAAoC;AACpC,iDAA+B;AAC/B,4CAA0B;AAC1B,gDAA8B;AAC9B,uDAAqC;AACrC,wCAAsB;AACtB,wCAAsB;AACtB,yCAAuB"}
@@ -76,8 +76,13 @@ export type LatencyRetention = {
76
76
  readonly kind: 'ring-buffer';
77
77
  readonly maxSamplesPerMethod: number;
78
78
  };
79
- /** Per-method state: retained samples (bounded in ring-buffer mode) plus lifetime totals. */
80
- interface MethodAccumulator {
79
+ /**
80
+ * Per-method state: retained samples (bounded in ring-buffer mode) plus lifetime
81
+ * totals. The mutable tally behind {@link MethodLatency}, which is the derived
82
+ * report row. Held by the `protected` {@link LatencyCollector.durations}, so a
83
+ * subclass recording its own samples has to name it.
84
+ */
85
+ export interface MethodLatencyTally {
81
86
  /** Retained durations for percentile estimation; capped in ring-buffer mode. Order is irrelevant (report sorts). */
82
87
  readonly samples: number[];
83
88
  /** Next slot to overwrite once the ring buffer is full (ring-buffer mode only). */
@@ -100,7 +105,9 @@ interface MethodAccumulator {
100
105
  export declare class LatencyCollector {
101
106
  protected readonly clock: Clock;
102
107
  protected readonly retention: LatencyRetention;
103
- protected readonly durations: Map<string, MethodAccumulator>;
108
+ /** One tally per method name. Emptied by {@link reset}. */
109
+ protected readonly durations: Map<string, MethodLatencyTally>;
110
+ /** Restarted by {@link reset}. Its reading is the report's `windowMs`. */
104
111
  protected window: Stopwatch;
105
112
  constructor(clock?: Clock, retention?: LatencyRetention);
106
113
  /** Record a pre-measured call duration (ms) for `method`. */
@@ -122,5 +129,4 @@ export declare class LatencyCollector {
122
129
  * command channel — the latency counterpart to `formatProfileReport`.
123
130
  */
124
131
  export declare function formatLatencyReport(report: LatencyReport, label?: string): string;
125
- export {};
126
132
  //# sourceMappingURL=latency-collector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"latency-collector.d.ts","sourceRoot":"","sources":["../src/latency-collector.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAalF,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,SAAS,EAAe,MAAM,YAAY,CAAC;AAErE,oEAAoE;AACpE,MAAM,WAAW,aAAa;IAC3B;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;CAClB;AAED,2FAA2F;AAC3F,MAAM,WAAW,aAAa;IAC3B;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,OAAO,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtI,6FAA6F;AAC7F,UAAU,iBAAiB;IACxB,oHAAoH;IACpH,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B,mFAAmF;IACnF,UAAU,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,KAAK,EAAE,MAAM,CAAC;CAChB;AAWD;;;;;;;GAOG;AACH,qBAAa,gBAAgB;IAKvB,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK;IAC/B,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,gBAAgB;IALjD,SAAS,CAAC,QAAQ,CAAC,SAAS,iCAAwC;IACpE,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC;gBAGN,KAAK,GAAE,KAAyB,EAChC,SAAS,GAAE,gBAAuC;IAQxE,6DAA6D;IAC7D,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAoBhD;;;;OAIG;IACH,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAC3D,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC;IA2BzC,oHAAoH;IACpH,MAAM,IAAI,aAAa;IAiBvB,+CAA+C;IAC/C,KAAK,IAAI,IAAI;CAIf;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,SAAoB,GAAG,MAAM,CAa5F"}
1
+ {"version":3,"file":"latency-collector.d.ts","sourceRoot":"","sources":["../src/latency-collector.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAalF,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,SAAS,EAAe,MAAM,YAAY,CAAC;AAErE,oEAAoE;AACpE,MAAM,WAAW,aAAa;IAC3B;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;CAClB;AAED,2FAA2F;AAC3F,MAAM,WAAW,aAAa;IAC3B;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,OAAO,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtI;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IAChC,oHAAoH;IACpH,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B,mFAAmF;IACnF,UAAU,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,KAAK,EAAE,MAAM,CAAC;CAChB;AAWD;;;;;;;GAOG;AACH,qBAAa,gBAAgB;IAOvB,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK;IAC/B,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,gBAAgB;IAPjD,2DAA2D;IAC3D,SAAS,CAAC,QAAQ,CAAC,SAAS,kCAAyC;IACrE,0EAA0E;IAC1E,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC;IAE5B,YACsB,KAAK,GAAE,KAAyB,EAChC,SAAS,GAAE,gBAAuC,EAMvE;IAED,6DAA6D;IAC7D,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAkB/C;IAED;;;;OAIG;IACH,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5D,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IA2B1C,oHAAoH;IACpH,MAAM,IAAI,aAAa,CAetB;IAED,+CAA+C;IAC/C,KAAK,IAAI,IAAI,CAGZ;CACH;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,SAAoB,GAAG,MAAM,CAa5F"}
@@ -40,7 +40,9 @@ function percentile(sortedAscending, percent) {
40
40
  class LatencyCollector {
41
41
  clock;
42
42
  retention;
43
+ /** One tally per method name. Emptied by {@link reset}. */
43
44
  durations = new Map();
45
+ /** Restarted by {@link reset}. Its reading is the report's `windowMs`. */
44
46
  window;
45
47
  constructor(clock = new clock_js_1.SystemClock(), retention = { kind: 'keep-all' }) {
46
48
  this.clock = clock;
@@ -1 +1 @@
1
- {"version":3,"file":"latency-collector.js","sourceRoot":"","sources":["../src/latency-collector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"latency-collector.js","sourceRoot":"","sources":["../src/latency-collector.ts"],"names":[],"mappings":"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"}