@opendatalabs/personal-server-ts-server 1.0.1 → 1.1.1

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.
@@ -125492,9 +125492,7 @@ async function uploadOne(deps, entry) {
125492
125492
  if (!isStaleVersionConflict(err2))
125493
125493
  throw err2;
125494
125494
  const record2 = await gateway.getDataPoint(computeDataPointId(serverOwner, entry.scope));
125495
- if (!record2)
125496
- throw err2;
125497
- if (record2.dataHash.toLowerCase() === dataHash.toLowerCase()) {
125495
+ if (record2 && record2.dataHash.toLowerCase() === dataHash.toLowerCase()) {
125498
125496
  dataPointId = record2.id;
125499
125497
  const adoptedVersion = Number(record2.expectedVersion);
125500
125498
  if (adoptedVersion !== entry.version) {
@@ -125507,7 +125505,12 @@ async function uploadOne(deps, entry) {
125507
125505
  await storage.updateEntryVersion(entry.path, adoptedVersion);
125508
125506
  }
125509
125507
  } else {
125510
- const rebased = BigInt(record2.expectedVersion) + 1n;
125508
+ const recordNext = record2 ? Number(record2.expectedVersion) + 1 : 0;
125509
+ const errorNext = parseGatewayNextVersion(err2.message) ?? 0;
125510
+ const target = Math.max(recordNext, errorNext);
125511
+ if (target <= 0)
125512
+ throw err2;
125513
+ const rebased = BigInt(target);
125511
125514
  url2 = await storageAdapter.upload(`${entry.scope}/${rebased}`, encrypted);
125512
125515
  dataPointId = await registerAt(rebased);
125513
125516
  await storage.updateEntryVersion(entry.path, Number(rebased));
@@ -125546,6 +125549,18 @@ function uint8ToHex(bytes2) {
125546
125549
  function isStaleVersionConflict(err2) {
125547
125550
  return err2 instanceof Error && /Gateway error: 409\b/.test(err2.message);
125548
125551
  }
125552
+ function parseGatewayNextVersion(message) {
125553
+ const nextValid = message.match(/next valid version is (\d+)/i);
125554
+ if (nextValid)
125555
+ return Number(nextValid[1]);
125556
+ const effectiveMax = message.match(/effective max \((\d+)/i);
125557
+ if (effectiveMax)
125558
+ return Number(effectiveMax[1]) + 1;
125559
+ const storedValue = message.match(/strictly greater than the stored value (\d+)/i);
125560
+ if (storedValue)
125561
+ return Number(storedValue[1]) + 1;
125562
+ return null;
125563
+ }
125549
125564
  function computeDataPointId(ownerAddress, scope) {
125550
125565
  return keccak256(encodeAbiParameters([
125551
125566
  { name: "ownerAddress", type: "address" },
@@ -128197,8 +128212,9 @@ function startPsLiteRelayClient(options) {
128197
128212
  streams.clear();
128198
128213
  pendingStreamData.clear();
128199
128214
  issueToken = void 0;
128215
+ const detail = { code: event?.code, reason: event?.reason };
128200
128216
  if (closed) {
128201
- options.onStatus?.("closed");
128217
+ options.onStatus?.("closed", detail);
128202
128218
  return;
128203
128219
  }
128204
128220
  if (event?.code === RELAY_CLOSE_SESSION_REPLACED) {
@@ -128208,10 +128224,10 @@ function startPsLiteRelayClient(options) {
128208
128224
  reconnectTimer = void 0;
128209
128225
  }
128210
128226
  log("relay session replaced by another connection \u2014 not reconnecting");
128211
- options.onStatus?.("replaced");
128227
+ options.onStatus?.("replaced", detail);
128212
128228
  return;
128213
128229
  }
128214
- options.onStatus?.("disconnected");
128230
+ options.onStatus?.("disconnected", detail);
128215
128231
  scheduleReconnect();
128216
128232
  };
128217
128233
  socket.onerror = () => {
@@ -128510,11 +128526,11 @@ async function startPersonalServer(options) {
128510
128526
  ...resolvedRelayOptions,
128511
128527
  runtime,
128512
128528
  origin: runtimeOrigin,
128513
- onStatus(nextRelayStatus) {
128529
+ onStatus(nextRelayStatus, detail) {
128514
128530
  relayStatus2 = nextRelayStatus;
128515
128531
  if (nextRelayStatus === "error")
128516
128532
  setStatus("error");
128517
- resolvedRelayOptions.onStatus?.(nextRelayStatus);
128533
+ resolvedRelayOptions.onStatus?.(nextRelayStatus, detail);
128518
128534
  }
128519
128535
  });
128520
128536
  relayClientForDrain = relayClient;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opendatalabs/personal-server-ts-server",
3
- "version": "1.0.1",
3
+ "version": "1.1.1",
4
4
  "description": "Hono HTTP server for the Vana Personal Server — routes, middleware, composition root",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -44,8 +44,8 @@
44
44
  },
45
45
  "dependencies": {
46
46
  "@hono/node-server": "^1.19.13",
47
- "@opendatalabs/personal-server-ts-core": "1.0.1",
48
- "@opendatalabs/personal-server-ts-lite": "1.0.1",
47
+ "@opendatalabs/personal-server-ts-core": "1.1.1",
48
+ "@opendatalabs/personal-server-ts-lite": "1.1.1",
49
49
  "@opendatalabs/vana-sdk": "3.13.0",
50
50
  "better-sqlite3": "^12.11.1",
51
51
  "hono": "^4.12.27",