@hydranium/protocol 1.0.0-next.305 → 1.0.0-next.306

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/lib/errors.d.ts CHANGED
@@ -20,6 +20,12 @@ import { type ModelVersion, type TextVersion } from './model-service/base-versio
20
20
  * behind the numeric code rather than the primary check.
21
21
  */
22
22
  export declare const STALE_BASE_VERSION_UPDATE: import("./messages/primitives").MessageDefinition<"The edit to {uri} was not applied: it was made to an older version of the document.">;
23
+ /**
24
+ * {@link STALE_BASE_VERSION_UPDATE}'s counterpart for an editor's save the
25
+ * server refused, since the editor's buffer is not the text it holds. Its
26
+ * English keeps the same marker.
27
+ */
28
+ export declare const STALE_BASE_VERSION_SAVE: import("./messages/primitives").MessageDefinition<"The save of {uri} was not applied: it was made to an older version of the document.">;
23
29
  /**
24
30
  * Every JSON-RPC error code the framework raises, from any package, keyed by
25
31
  * the error it identifies.
@@ -87,7 +93,8 @@ export interface ConflictErrorData extends HydraniumMessageData {
87
93
  * No auto-retry or auto-merge ships by default.
88
94
  */
89
95
  export declare class ConflictError extends ResponseError<ConflictErrorData> {
90
- constructor(uri: string, baseVersion: ModelVersion, actualVersion: TextVersion);
96
+ /** `message` words what was refused: an edit, or with {@link STALE_BASE_VERSION_SAVE} a save. */
97
+ constructor(uri: string, baseVersion: ModelVersion, actualVersion: TextVersion, message?: typeof STALE_BASE_VERSION_UPDATE | typeof STALE_BASE_VERSION_SAVE);
91
98
  get uri(): string;
92
99
  /**
93
100
  * The base version the caller authored against. Not `expected`, and its
@@ -228,9 +235,10 @@ export declare function isReservedClientIdError(error: unknown): error is Reserv
228
235
  * canonical wire-side check; the JSON-RPC `code` field is preserved
229
236
  * across reconstruction, so any adopter catching after an RPC call
230
237
  * hits this branch.
231
- * 3. `error.message` contains the marker {@link STALE_BASE_VERSION_UPDATE}'s
232
- * English carries — fallback for transports that re-wrap the message
233
- * and drop the code (rare).
238
+ * 3. `error.message` contains the marker the English of
239
+ * {@link STALE_BASE_VERSION_UPDATE} and
240
+ * {@link STALE_BASE_VERSION_SAVE} carries — fallback for transports
241
+ * that re-wrap the message and drop the code (rare).
234
242
  *
235
243
  * `instanceof ConflictError` alone returns `false` on a rejection that was
236
244
  * not {@link reviveProtocolError revived}, so callers do not use it.
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
package/lib/errors.js CHANGED
@@ -8,7 +8,7 @@
8
8
  * SPDX-License-Identifier: MIT
9
9
  ********************************************************************************/
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.ReservedClientIdError = exports.DuplicateClientIdError = exports.DUPLICATE_CLIENT_ID = exports.DocumentNotOpenError = exports.DOCUMENT_NOT_OPEN = exports.SessionClosedError = exports.SESSION_CLOSED = exports.RESERVED_CLIENT_ID_ERROR_CODE = exports.DUPLICATE_CLIENT_ID_ERROR_CODE = exports.DOCUMENT_NOT_OPEN_ERROR_CODE = exports.SESSION_CLOSED_ERROR_CODE = exports.ConflictError = exports.CONFLICT_ERROR_CODE = exports.HYDRANIUM_ERROR_CODES = exports.STALE_BASE_VERSION_UPDATE = void 0;
11
+ exports.ReservedClientIdError = exports.DuplicateClientIdError = exports.DUPLICATE_CLIENT_ID = exports.DocumentNotOpenError = exports.DOCUMENT_NOT_OPEN = exports.SessionClosedError = exports.SESSION_CLOSED = exports.RESERVED_CLIENT_ID_ERROR_CODE = exports.DUPLICATE_CLIENT_ID_ERROR_CODE = exports.DOCUMENT_NOT_OPEN_ERROR_CODE = exports.SESSION_CLOSED_ERROR_CODE = exports.ConflictError = exports.CONFLICT_ERROR_CODE = exports.HYDRANIUM_ERROR_CODES = exports.STALE_BASE_VERSION_SAVE = exports.STALE_BASE_VERSION_UPDATE = void 0;
12
12
  exports.isResponseError = isResponseError;
13
13
  exports.reviveProtocolError = reviveProtocolError;
14
14
  exports.isSessionClosedError = isSessionClosedError;
@@ -41,6 +41,12 @@ const base_version_1 = require("./model-service/base-version");
41
41
  * behind the numeric code rather than the primary check.
42
42
  */
43
43
  exports.STALE_BASE_VERSION_UPDATE = (0, primitives_1.defineMessage)('hydranium/protocol/stale-base-version-update', 'The edit to {uri} was not applied: it was made to an older version of the document.');
44
+ /**
45
+ * {@link STALE_BASE_VERSION_UPDATE}'s counterpart for an editor's save the
46
+ * server refused, since the editor's buffer is not the text it holds. Its
47
+ * English keeps the same marker.
48
+ */
49
+ exports.STALE_BASE_VERSION_SAVE = (0, primitives_1.defineMessage)('hydranium/protocol/stale-base-version-save', 'The save of {uri} was not applied: it was made to an older version of the document.');
44
50
  /**
45
51
  * Every JSON-RPC error code the framework raises, from any package, keyed by
46
52
  * the error it identifies.
@@ -100,15 +106,16 @@ exports.CONFLICT_ERROR_CODE = exports.HYDRANIUM_ERROR_CODES.conflict;
100
106
  * No auto-retry or auto-merge ships by default.
101
107
  */
102
108
  class ConflictError extends vscode_jsonrpc_1.ResponseError {
103
- constructor(uri, baseVersion, actualVersion) {
109
+ /** `message` words what was refused: an edit, or with {@link STALE_BASE_VERSION_SAVE} a save. */
110
+ constructor(uri, baseVersion, actualVersion, message = exports.STALE_BASE_VERSION_UPDATE) {
104
111
  // The identity rides alongside the typed payload rather than replacing
105
112
  // it: `isConflictError`'s name check is surface an adopter may bind, so
106
113
  // adding the identity widens the payload rather than reshaping it.
107
- super(exports.CONFLICT_ERROR_CODE, exports.STALE_BASE_VERSION_UPDATE.format({ uri }), {
114
+ super(exports.CONFLICT_ERROR_CODE, message.format({ uri }), {
108
115
  uri,
109
116
  baseVersion,
110
117
  actualVersion,
111
- ...(0, primitives_1.messageData)(exports.STALE_BASE_VERSION_UPDATE, { uri })
118
+ ...(0, primitives_1.messageData)(message, { uri })
112
119
  });
113
120
  this.name = 'ConflictError';
114
121
  // ResponseError's constructor calls `Object.setPrototypeOf(this,
@@ -328,9 +335,10 @@ const CONFLICT_ERROR_MESSAGE_MARKER = ': it was made to an older version of the
328
335
  * canonical wire-side check; the JSON-RPC `code` field is preserved
329
336
  * across reconstruction, so any adopter catching after an RPC call
330
337
  * hits this branch.
331
- * 3. `error.message` contains the marker {@link STALE_BASE_VERSION_UPDATE}'s
332
- * English carries — fallback for transports that re-wrap the message
333
- * and drop the code (rare).
338
+ * 3. `error.message` contains the marker the English of
339
+ * {@link STALE_BASE_VERSION_UPDATE} and
340
+ * {@link STALE_BASE_VERSION_SAVE} carries — fallback for transports
341
+ * that re-wrap the message and drop the code (rare).
334
342
  *
335
343
  * `instanceof ConflictError` alone returns `false` on a rejection that was
336
344
  * not {@link reviveProtocolError revived}, so callers do not use it.
package/lib/errors.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -35,6 +35,7 @@ export * from './transfer-document';
35
35
  export * from './model-server';
36
36
  export * from './project';
37
37
  export * from './random-uuid';
38
+ export * from './save-text-document';
38
39
  export * from './rpc';
39
40
  export * from './uri';
40
41
  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,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,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,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,mBAAmB,CAAC;AAClC,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,eAAe,CAAC;AAC9B,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,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,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,mBAAmB,CAAC;AAClC,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,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,OAAO,CAAC;AACtB,cAAc,OAAO,CAAC;AACtB,cAAc,QAAQ,CAAC"}
package/lib/index.js CHANGED
@@ -60,6 +60,7 @@ __exportStar(require("./transfer-document"), exports);
60
60
  __exportStar(require("./model-server"), exports);
61
61
  __exportStar(require("./project"), exports);
62
62
  __exportStar(require("./random-uuid"), exports);
63
+ __exportStar(require("./save-text-document"), exports);
63
64
  __exportStar(require("./rpc"), exports);
64
65
  __exportStar(require("./uri"), exports);
65
66
  __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,mDAAiC;AACjC,2CAAyB;AACzB,+CAA6B;AAC7B,0CAAwB;AACxB,yCAAuB;AACvB,oDAAkC;AAClC,8CAA4B;AAC5B,4DAA0C;AAC1C,4DAA0C;AAC1C,2CAAyB;AACzB,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,oDAAkC;AAClC,8CAA4B;AAC5B,2CAAyB;AACzB,wDAAsC;AACtC,qDAAmC;AACnC,kDAAgC;AAChC,sDAAoC;AACpC,iDAA+B;AAC/B,4CAA0B;AAC1B,gDAA8B;AAC9B,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,4DAA0C;AAC1C,4DAA0C;AAC1C,2CAAyB;AACzB,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,oDAAkC;AAClC,8CAA4B;AAC5B,2CAAyB;AACzB,wDAAsC;AACtC,qDAAmC;AACnC,kDAAgC;AAChC,sDAAoC;AACpC,iDAA+B;AAC/B,4CAA0B;AAC1B,gDAA8B;AAC9B,uDAAqC;AACrC,wCAAsB;AACtB,wCAAsB;AACtB,yCAAuB"}
@@ -22,7 +22,7 @@
22
22
  * The English is a fallback, not a contract; the code is the contract.
23
23
  */
24
24
  export * from './primitives';
25
- export { DOCUMENT_NOT_OPEN, DUPLICATE_CLIENT_ID, SESSION_CLOSED, STALE_BASE_VERSION_UPDATE } from '../errors';
25
+ export { DOCUMENT_NOT_OPEN, DUPLICATE_CLIENT_ID, SESSION_CLOSED, STALE_BASE_VERSION_SAVE, STALE_BASE_VERSION_UPDATE } from '../errors';
26
26
  export { DATA_CONNECTION_SESSION_RESTORE_FAILED, DATA_CONNECTION_WATCH_RESTORE_FAILED } from '../client/data-connection';
27
27
  export { DATA_SERVER_CONNECT_FAILED, DATA_SERVER_NOT_READY } from '../client/rpc-connection';
28
28
  export { DATA_SESSION_ANSWER_WITHOUT_MODEL, DATA_SESSION_RESTORE_FAILED, DATA_SESSION_UNSAVED_LOST } from '../client/data-session';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/messages/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;;;;GAcG;AAEH,cAAc,cAAc,CAAC;AAE7B,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAC9G,OAAO,EAAE,sCAAsC,EAAE,oCAAoC,EAAE,MAAM,2BAA2B,CAAC;AACzH,OAAO,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAE,iCAAiC,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnI,OAAO,EACJ,mBAAmB,EACnB,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC9B,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/messages/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;;;;GAcG;AAEH,cAAc,cAAc,CAAC;AAE7B,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,cAAc,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AACvI,OAAO,EAAE,sCAAsC,EAAE,oCAAoC,EAAE,MAAM,2BAA2B,CAAC;AACzH,OAAO,EAAE,0BAA0B,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAC7F,OAAO,EAAE,iCAAiC,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnI,OAAO,EACJ,mBAAmB,EACnB,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,EAC9B,MAAM,yBAAyB,CAAC"}
@@ -22,7 +22,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
22
22
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
23
23
  };
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.RELAY_TRANSPORT_WRITE_FAILED = exports.RELAY_TRANSPORT_READ_FAILED = exports.RELAY_TRANSPORT_OPEN_FAILED = exports.RELAY_REPLAY_FAILED = exports.DATA_SESSION_UNSAVED_LOST = exports.DATA_SESSION_RESTORE_FAILED = exports.DATA_SESSION_ANSWER_WITHOUT_MODEL = exports.DATA_SERVER_NOT_READY = exports.DATA_SERVER_CONNECT_FAILED = exports.DATA_CONNECTION_WATCH_RESTORE_FAILED = exports.DATA_CONNECTION_SESSION_RESTORE_FAILED = exports.STALE_BASE_VERSION_UPDATE = exports.SESSION_CLOSED = exports.DUPLICATE_CLIENT_ID = exports.DOCUMENT_NOT_OPEN = void 0;
25
+ exports.RELAY_TRANSPORT_WRITE_FAILED = exports.RELAY_TRANSPORT_READ_FAILED = exports.RELAY_TRANSPORT_OPEN_FAILED = exports.RELAY_REPLAY_FAILED = exports.DATA_SESSION_UNSAVED_LOST = exports.DATA_SESSION_RESTORE_FAILED = exports.DATA_SESSION_ANSWER_WITHOUT_MODEL = exports.DATA_SERVER_NOT_READY = exports.DATA_SERVER_CONNECT_FAILED = exports.DATA_CONNECTION_WATCH_RESTORE_FAILED = exports.DATA_CONNECTION_SESSION_RESTORE_FAILED = exports.STALE_BASE_VERSION_UPDATE = exports.STALE_BASE_VERSION_SAVE = exports.SESSION_CLOSED = exports.DUPLICATE_CLIENT_ID = exports.DOCUMENT_NOT_OPEN = void 0;
26
26
  /**
27
27
  * The message-externalization mechanism, plus every user-facing message
28
28
  * `@hydranium/protocol` itself raises.
@@ -43,6 +43,7 @@ var errors_1 = require("../errors");
43
43
  Object.defineProperty(exports, "DOCUMENT_NOT_OPEN", { enumerable: true, get: function () { return errors_1.DOCUMENT_NOT_OPEN; } });
44
44
  Object.defineProperty(exports, "DUPLICATE_CLIENT_ID", { enumerable: true, get: function () { return errors_1.DUPLICATE_CLIENT_ID; } });
45
45
  Object.defineProperty(exports, "SESSION_CLOSED", { enumerable: true, get: function () { return errors_1.SESSION_CLOSED; } });
46
+ Object.defineProperty(exports, "STALE_BASE_VERSION_SAVE", { enumerable: true, get: function () { return errors_1.STALE_BASE_VERSION_SAVE; } });
46
47
  Object.defineProperty(exports, "STALE_BASE_VERSION_UPDATE", { enumerable: true, get: function () { return errors_1.STALE_BASE_VERSION_UPDATE; } });
47
48
  var data_connection_1 = require("../client/data-connection");
48
49
  Object.defineProperty(exports, "DATA_CONNECTION_SESSION_RESTORE_FAILED", { enumerable: true, get: function () { return data_connection_1.DATA_CONNECTION_SESSION_RESTORE_FAILED; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/messages/index.ts"],"names":[],"mappings":";AAAA;;;;;;;kFAOkF;;;;;;;;;;;;;;;;;AAElF;;;;;;;;;;;;;;GAcG;AAEH,+CAA6B;AAE7B,oCAA8G;AAArG,2GAAA,iBAAiB,OAAA;AAAE,6GAAA,mBAAmB,OAAA;AAAE,wGAAA,cAAc,OAAA;AAAE,mHAAA,yBAAyB,OAAA;AAC1F,6DAAyH;AAAhH,yIAAA,sCAAsC,OAAA;AAAE,uIAAA,oCAAoC,OAAA;AACrF,2DAA6F;AAApF,4HAAA,0BAA0B,OAAA;AAAE,uHAAA,qBAAqB,OAAA;AAC1D,uDAAmI;AAA1H,iIAAA,iCAAiC,OAAA;AAAE,2HAAA,2BAA2B,OAAA;AAAE,yHAAA,yBAAyB,OAAA;AAClG,yDAKiC;AAJ9B,oHAAA,mBAAmB,OAAA;AACnB,4HAAA,2BAA2B,OAAA;AAC3B,4HAAA,2BAA2B,OAAA;AAC3B,6HAAA,4BAA4B,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/messages/index.ts"],"names":[],"mappings":";AAAA;;;;;;;kFAOkF;;;;;;;;;;;;;;;;;AAElF;;;;;;;;;;;;;;GAcG;AAEH,+CAA6B;AAE7B,oCAAuI;AAA9H,2GAAA,iBAAiB,OAAA;AAAE,6GAAA,mBAAmB,OAAA;AAAE,wGAAA,cAAc,OAAA;AAAE,iHAAA,uBAAuB,OAAA;AAAE,mHAAA,yBAAyB,OAAA;AACnH,6DAAyH;AAAhH,yIAAA,sCAAsC,OAAA;AAAE,uIAAA,oCAAoC,OAAA;AACrF,2DAA6F;AAApF,4HAAA,0BAA0B,OAAA;AAAE,uHAAA,qBAAqB,OAAA;AAC1D,uDAAmI;AAA1H,iIAAA,iCAAiC,OAAA;AAAE,2HAAA,2BAA2B,OAAA;AAAE,yHAAA,yBAAyB,OAAA;AAClG,yDAKiC;AAJ9B,oHAAA,mBAAmB,OAAA;AACnB,4HAAA,2BAA2B,OAAA;AAC3B,4HAAA,2BAA2B,OAAA;AAC3B,6HAAA,4BAA4B,OAAA"}
@@ -0,0 +1,40 @@
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
+ import { RequestType } from 'vscode-jsonrpc';
10
+ /**
11
+ * LSP's `VersionedTextDocumentIdentifier`, declared field by field: this
12
+ * package carries no LSP dependency, and the fields are LSP's own.
13
+ */
14
+ export interface SaveTextDocumentParams {
15
+ readonly textDocument: {
16
+ readonly uri: string;
17
+ readonly version: number;
18
+ };
19
+ }
20
+ /**
21
+ * Ask the LSP head to persist the text it holds for a document, which it
22
+ * answers with `null` once the text is written. LSP itself has none: its
23
+ * `didSave` reports a write the editor made, so a host whose files only the
24
+ * server holds saves through this.
25
+ *
26
+ * It travels the connection the `didChange`s travel, so it arrives after
27
+ * them. The server refuses it with a `ConflictError` unless the version is the
28
+ * one the editor last declared and its buffer holds the server's current
29
+ * text, which a `workspace/applyEdit` still in flight breaks.
30
+ *
31
+ * A server that answers it advertises it as
32
+ * `ServerCapabilities.experimental[SaveTextDocumentRequest.method] = true`;
33
+ * a client checks that before sending, since a server without a handler
34
+ * answers `MethodNotFound`.
35
+ */
36
+ export declare namespace SaveTextDocumentRequest {
37
+ const method = "hydranium/saveTextDocument";
38
+ const type: RequestType<SaveTextDocumentParams, null, void>;
39
+ }
40
+ //# sourceMappingURL=save-text-document.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"save-text-document.d.ts","sourceRoot":"","sources":["../src/save-text-document.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACpC,QAAQ,CAAC,YAAY,EAAE;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5E;AAED;;;;;;;;;;;;;;;GAeG;AACH,yBAAiB,uBAAuB,CAAC;IAC/B,MAAM,MAAM,+BAA+B,CAAC;IAC5C,MAAM,IAAI,iDAA8D,CAAC;CAClF"}
@@ -0,0 +1,34 @@
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.SaveTextDocumentRequest = void 0;
12
+ const vscode_jsonrpc_1 = require("vscode-jsonrpc");
13
+ /**
14
+ * Ask the LSP head to persist the text it holds for a document, which it
15
+ * answers with `null` once the text is written. LSP itself has none: its
16
+ * `didSave` reports a write the editor made, so a host whose files only the
17
+ * server holds saves through this.
18
+ *
19
+ * It travels the connection the `didChange`s travel, so it arrives after
20
+ * them. The server refuses it with a `ConflictError` unless the version is the
21
+ * one the editor last declared and its buffer holds the server's current
22
+ * text, which a `workspace/applyEdit` still in flight breaks.
23
+ *
24
+ * A server that answers it advertises it as
25
+ * `ServerCapabilities.experimental[SaveTextDocumentRequest.method] = true`;
26
+ * a client checks that before sending, since a server without a handler
27
+ * answers `MethodNotFound`.
28
+ */
29
+ var SaveTextDocumentRequest;
30
+ (function (SaveTextDocumentRequest) {
31
+ SaveTextDocumentRequest.method = 'hydranium/saveTextDocument';
32
+ SaveTextDocumentRequest.type = new vscode_jsonrpc_1.RequestType(SaveTextDocumentRequest.method);
33
+ })(SaveTextDocumentRequest || (exports.SaveTextDocumentRequest = SaveTextDocumentRequest = {}));
34
+ //# sourceMappingURL=save-text-document.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"save-text-document.js","sourceRoot":"","sources":["../src/save-text-document.ts"],"names":[],"mappings":";AAAA;;;;;;;kFAOkF;;;AAElF,mDAA6C;AAU7C;;;;;;;;;;;;;;;GAeG;AACH,IAAiB,uBAAuB,CAGvC;AAHD,WAAiB,uBAAuB;IACxB,8BAAM,GAAG,4BAA4B,CAAC;IACtC,4BAAI,GAAG,IAAI,4BAAW,CAAqC,8BAAM,CAAC,CAAC;AACnF,CAAC,EAHgB,uBAAuB,aAAvB,uBAAuB,GAAvB,uBAAuB,QAGvC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hydranium/protocol",
3
- "version": "1.0.0-next.305",
3
+ "version": "1.0.0-next.306",
4
4
  "description": "Generic, language-agnostic types, constants, and pure utilities for the hydranium framework.",
5
5
  "keywords": [
6
6
  "hydranium",
package/src/errors.ts CHANGED
@@ -38,6 +38,16 @@ export const STALE_BASE_VERSION_UPDATE = defineMessage(
38
38
  'The edit to {uri} was not applied: it was made to an older version of the document.'
39
39
  );
40
40
 
41
+ /**
42
+ * {@link STALE_BASE_VERSION_UPDATE}'s counterpart for an editor's save the
43
+ * server refused, since the editor's buffer is not the text it holds. Its
44
+ * English keeps the same marker.
45
+ */
46
+ export const STALE_BASE_VERSION_SAVE = defineMessage(
47
+ 'hydranium/protocol/stale-base-version-save',
48
+ 'The save of {uri} was not applied: it was made to an older version of the document.'
49
+ );
50
+
41
51
  /**
42
52
  * Every JSON-RPC error code the framework raises, from any package, keyed by
43
53
  * the error it identifies.
@@ -108,15 +118,21 @@ export interface ConflictErrorData extends HydraniumMessageData {
108
118
  * No auto-retry or auto-merge ships by default.
109
119
  */
110
120
  export class ConflictError extends ResponseError<ConflictErrorData> {
111
- constructor(uri: string, baseVersion: ModelVersion, actualVersion: TextVersion) {
121
+ /** `message` words what was refused: an edit, or with {@link STALE_BASE_VERSION_SAVE} a save. */
122
+ constructor(
123
+ uri: string,
124
+ baseVersion: ModelVersion,
125
+ actualVersion: TextVersion,
126
+ message: typeof STALE_BASE_VERSION_UPDATE | typeof STALE_BASE_VERSION_SAVE = STALE_BASE_VERSION_UPDATE
127
+ ) {
112
128
  // The identity rides alongside the typed payload rather than replacing
113
129
  // it: `isConflictError`'s name check is surface an adopter may bind, so
114
130
  // adding the identity widens the payload rather than reshaping it.
115
- super(CONFLICT_ERROR_CODE, STALE_BASE_VERSION_UPDATE.format({ uri }), {
131
+ super(CONFLICT_ERROR_CODE, message.format({ uri }), {
116
132
  uri,
117
133
  baseVersion,
118
134
  actualVersion,
119
- ...messageData(STALE_BASE_VERSION_UPDATE, { uri })
135
+ ...messageData(message, { uri })
120
136
  });
121
137
  this.name = 'ConflictError';
122
138
  // ResponseError's constructor calls `Object.setPrototypeOf(this,
@@ -388,9 +404,10 @@ const CONFLICT_ERROR_MESSAGE_MARKER = ': it was made to an older version of the
388
404
  * canonical wire-side check; the JSON-RPC `code` field is preserved
389
405
  * across reconstruction, so any adopter catching after an RPC call
390
406
  * hits this branch.
391
- * 3. `error.message` contains the marker {@link STALE_BASE_VERSION_UPDATE}'s
392
- * English carries — fallback for transports that re-wrap the message
393
- * and drop the code (rare).
407
+ * 3. `error.message` contains the marker the English of
408
+ * {@link STALE_BASE_VERSION_UPDATE} and
409
+ * {@link STALE_BASE_VERSION_SAVE} carries — fallback for transports
410
+ * that re-wrap the message and drop the code (rare).
394
411
  *
395
412
  * `instanceof ConflictError` alone returns `false` on a rejection that was
396
413
  * not {@link reviveProtocolError revived}, so callers do not use it.
package/src/index.ts CHANGED
@@ -46,6 +46,7 @@ export * from './transfer-document';
46
46
  export * from './model-server';
47
47
  export * from './project';
48
48
  export * from './random-uuid';
49
+ export * from './save-text-document';
49
50
  export * from './rpc';
50
51
  export * from './uri';
51
52
  export * from './util';
@@ -25,7 +25,7 @@
25
25
 
26
26
  export * from './primitives';
27
27
 
28
- export { DOCUMENT_NOT_OPEN, DUPLICATE_CLIENT_ID, SESSION_CLOSED, STALE_BASE_VERSION_UPDATE } from '../errors';
28
+ export { DOCUMENT_NOT_OPEN, DUPLICATE_CLIENT_ID, SESSION_CLOSED, STALE_BASE_VERSION_SAVE, STALE_BASE_VERSION_UPDATE } from '../errors';
29
29
  export { DATA_CONNECTION_SESSION_RESTORE_FAILED, DATA_CONNECTION_WATCH_RESTORE_FAILED } from '../client/data-connection';
30
30
  export { DATA_SERVER_CONNECT_FAILED, DATA_SERVER_NOT_READY } from '../client/rpc-connection';
31
31
  export { DATA_SESSION_ANSWER_WITHOUT_MODEL, DATA_SESSION_RESTORE_FAILED, DATA_SESSION_UNSAVED_LOST } from '../client/data-session';
@@ -0,0 +1,39 @@
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
+ import { RequestType } from 'vscode-jsonrpc';
11
+
12
+ /**
13
+ * LSP's `VersionedTextDocumentIdentifier`, declared field by field: this
14
+ * package carries no LSP dependency, and the fields are LSP's own.
15
+ */
16
+ export interface SaveTextDocumentParams {
17
+ readonly textDocument: { readonly uri: string; readonly version: number };
18
+ }
19
+
20
+ /**
21
+ * Ask the LSP head to persist the text it holds for a document, which it
22
+ * answers with `null` once the text is written. LSP itself has none: its
23
+ * `didSave` reports a write the editor made, so a host whose files only the
24
+ * server holds saves through this.
25
+ *
26
+ * It travels the connection the `didChange`s travel, so it arrives after
27
+ * them. The server refuses it with a `ConflictError` unless the version is the
28
+ * one the editor last declared and its buffer holds the server's current
29
+ * text, which a `workspace/applyEdit` still in flight breaks.
30
+ *
31
+ * A server that answers it advertises it as
32
+ * `ServerCapabilities.experimental[SaveTextDocumentRequest.method] = true`;
33
+ * a client checks that before sending, since a server without a handler
34
+ * answers `MethodNotFound`.
35
+ */
36
+ export namespace SaveTextDocumentRequest {
37
+ export const method = 'hydranium/saveTextDocument';
38
+ export const type = new RequestType<SaveTextDocumentParams, null, void>(method);
39
+ }