@opendatalabs/personal-server-ts-server 1.35.1 → 1.35.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +14 -1
- package/dist/bootstrap.js.map +1 -1
- package/dist/ui/ps-lite-debug.js +505 -35
- package/package.json +3 -3
package/dist/bootstrap.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iDAAiD,CAAC;AAM/F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAC;AA4BnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+CAA+C,CAAC;AAClF,OAAO,KAAK,EAAE,qCAAqC,EAAE,MAAM,2CAA2C,CAAC;AAEvG,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAOhG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAGjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6DAA6D,CAAC;AAOnG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAKhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+CAA+C,CAAC;AAMlF,OAAO,
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"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"}
|
package/dist/bootstrap.js
CHANGED
|
@@ -31,7 +31,7 @@ import { loadOrCreateServerAccount } from "./keys/server-account.js";
|
|
|
31
31
|
import { createRequestSigner, createServerSigner, } from "@opendatalabs/personal-server-ts-core/signing";
|
|
32
32
|
import { createGatewayLineageClient, } from "@opendatalabs/personal-server-ts-core/lineage";
|
|
33
33
|
import { createSyncCursor } from "./sync-cursor.js";
|
|
34
|
-
import { createGatewayDataPointFeed, createGatewayDeleteDataPort, createScopeDeletionTracker, createSyncManager, } from "@opendatalabs/personal-server-ts-core/sync";
|
|
34
|
+
import { createGatewayDataPointFeed, createGatewayDeleteDataPort, createInventoryTombstoneFinality, createScopeDeletionTracker, createSyncManager, } from "@opendatalabs/personal-server-ts-core/sync";
|
|
35
35
|
import { createVanaSyncStorageAdapter, resolveVanaStorageEndpoint, } from "@opendatalabs/personal-server-ts-core/storage/adapters";
|
|
36
36
|
import { createFilePendingBlobDeletionStore } from "./pending-blob-deletions.js";
|
|
37
37
|
import { createApp } from "./app.js";
|
|
@@ -581,10 +581,23 @@ export async function createServer(config, options) {
|
|
|
581
581
|
},
|
|
582
582
|
});
|
|
583
583
|
const pendingBlobDeletions = createFilePendingBlobDeletionStore(pendingBlobDeletionsPath);
|
|
584
|
+
// Blob deletes wait for the covering tombstone to be finalized, read from
|
|
585
|
+
// the signed version inventory (owner or registered-server signer).
|
|
586
|
+
const tombstoneFinality = deleteData && additionsInventorySigner
|
|
587
|
+
? createInventoryTombstoneFinality(createVersionInventoryClient({
|
|
588
|
+
gatewayUrl: config.gateway.url,
|
|
589
|
+
ownerAddress: serverOwner,
|
|
590
|
+
ownerSigner: additionsInventorySigner,
|
|
591
|
+
}))
|
|
592
|
+
: undefined;
|
|
593
|
+
if (deleteData && !tombstoneFinality) {
|
|
594
|
+
logger.warn("No version-inventory signer: storage blobs are deleted when a tombstone is queued, before it is final");
|
|
595
|
+
}
|
|
584
596
|
syncManager = createSyncManager(uploadDeps, downloadDeps, {
|
|
585
597
|
deleteData,
|
|
586
598
|
hydrateScopes: options?.hydrateScopes,
|
|
587
599
|
pendingBlobDeletions,
|
|
600
|
+
tombstoneFinality,
|
|
588
601
|
transferMode: isEnclave ? "download-only" : "upload-download",
|
|
589
602
|
async canSync() {
|
|
590
603
|
try {
|
package/dist/bootstrap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/ps-lite-debug.js
CHANGED
|
@@ -125521,6 +125521,31 @@ var AdditionsBudget = class {
|
|
|
125521
125521
|
this.used += bytes2;
|
|
125522
125522
|
this.parent?.charge(bytes2);
|
|
125523
125523
|
}
|
|
125524
|
+
/** Hold an in-flight host allowance before another request can spend it.
|
|
125525
|
+
* Settle once with the actual receipt, even after cancellation. */
|
|
125526
|
+
reserve(bytes2) {
|
|
125527
|
+
this.charge(bytes2);
|
|
125528
|
+
let settled = false;
|
|
125529
|
+
return {
|
|
125530
|
+
settle: (spent) => {
|
|
125531
|
+
if (settled)
|
|
125532
|
+
throw new Error("Additions reservation already settled");
|
|
125533
|
+
if (!Number.isSafeInteger(spent) || spent < 0)
|
|
125534
|
+
throw new AdditionsBudgetExceeded("Invalid reserved-byte receipt");
|
|
125535
|
+
settled = true;
|
|
125536
|
+
this.refund(bytes2);
|
|
125537
|
+
this.recordSpent(spent);
|
|
125538
|
+
if (spent > bytes2) {
|
|
125539
|
+
this.exhausted = true;
|
|
125540
|
+
throw new AdditionsBudgetExceeded("Reserved host allowance exceeded");
|
|
125541
|
+
}
|
|
125542
|
+
}
|
|
125543
|
+
};
|
|
125544
|
+
}
|
|
125545
|
+
refund(bytes2) {
|
|
125546
|
+
this.used -= bytes2;
|
|
125547
|
+
this.parent?.refund(bytes2);
|
|
125548
|
+
}
|
|
125524
125549
|
recordSpent(bytes2) {
|
|
125525
125550
|
if (!Number.isSafeInteger(bytes2) || bytes2 < 0) {
|
|
125526
125551
|
this.exhausted = true;
|
|
@@ -130353,7 +130378,7 @@ function createGatewayDeleteDataPort(options) {
|
|
|
130353
130378
|
}
|
|
130354
130379
|
return {
|
|
130355
130380
|
...options.reservedHead ? { head: options.reservedHead } : {},
|
|
130356
|
-
async tombstone(scope) {
|
|
130381
|
+
async tombstone(scope, fence) {
|
|
130357
130382
|
const dataPointId = computeDataPointId(options.serverOwner, scope);
|
|
130358
130383
|
const current = await currentHead(scope);
|
|
130359
130384
|
if (current === null) {
|
|
@@ -130367,8 +130392,20 @@ function createGatewayDeleteDataPort(options) {
|
|
|
130367
130392
|
deletedAt: current.deletedAt
|
|
130368
130393
|
};
|
|
130369
130394
|
}
|
|
130395
|
+
if (fence && (current.expectedVersion !== fence.head.expectedVersion || current.dataHash.toLowerCase() !== fence.head.dataHash.toLowerCase() || current.metadataHash.toLowerCase() !== fence.head.metadataHash.toLowerCase())) {
|
|
130396
|
+
throw new Error(`Scope head (v${current.expectedVersion}) is not the one the fenced delete saw (v${fence.head.expectedVersion})`);
|
|
130397
|
+
}
|
|
130398
|
+
let replaced = {
|
|
130399
|
+
expectedVersion: current.expectedVersion,
|
|
130400
|
+
dataHash: current.dataHash,
|
|
130401
|
+
metadataHash: current.metadataHash
|
|
130402
|
+
};
|
|
130370
130403
|
let version5 = BigInt(current.expectedVersion) + 1n;
|
|
130371
130404
|
let res = await sendTombstone(scope, dataPointId, version5);
|
|
130405
|
+
if (res.status === 409 && fence) {
|
|
130406
|
+
await res.body?.cancel();
|
|
130407
|
+
throw new Error(`Scope head is not the one the fenced delete saw (v${fence.head.expectedVersion}): another writer moved it`);
|
|
130408
|
+
}
|
|
130372
130409
|
if (res.status === 409) {
|
|
130373
130410
|
const body2 = await res.json().catch(() => null);
|
|
130374
130411
|
const conflict = unwrap4(body2);
|
|
@@ -130380,6 +130417,7 @@ function createGatewayDeleteDataPort(options) {
|
|
|
130380
130417
|
throw new Error(`Gateway error: 409 ${detailFromBody(body2, res.statusText)}`);
|
|
130381
130418
|
}
|
|
130382
130419
|
version5 = next;
|
|
130420
|
+
replaced = null;
|
|
130383
130421
|
res = await sendTombstone(scope, dataPointId, version5);
|
|
130384
130422
|
}
|
|
130385
130423
|
if (res.status === 404) {
|
|
@@ -130413,6 +130451,7 @@ function createGatewayDeleteDataPort(options) {
|
|
|
130413
130451
|
status: "tombstoned",
|
|
130414
130452
|
dataPointId: stringField2(row, "dataPointId") ?? dataPointId,
|
|
130415
130453
|
version: stringField2(row, "expectedVersion") ?? String(version5),
|
|
130454
|
+
replaced,
|
|
130416
130455
|
deletedAt: stringField2(row, "deletedAt")
|
|
130417
130456
|
};
|
|
130418
130457
|
},
|
|
@@ -130523,6 +130562,19 @@ function markerId(key) {
|
|
|
130523
130562
|
const range = key.range ? `${key.range.from}-${key.range.to}` : "";
|
|
130524
130563
|
return `${key.scope}\0${key.version ?? ""}\0${range}`;
|
|
130525
130564
|
}
|
|
130565
|
+
function normalizeHead(value) {
|
|
130566
|
+
if (typeof value !== "object" || value === null)
|
|
130567
|
+
return void 0;
|
|
130568
|
+
const { expectedVersion, dataHash, metadataHash } = value;
|
|
130569
|
+
if (typeof expectedVersion !== "string" || !/^\d+$/.test(expectedVersion) || typeof dataHash !== "string" || !/^0x[0-9a-fA-F]{64}$/.test(dataHash) || typeof metadataHash !== "string" || !/^0x[0-9a-fA-F]{64}$/.test(metadataHash)) {
|
|
130570
|
+
return void 0;
|
|
130571
|
+
}
|
|
130572
|
+
return {
|
|
130573
|
+
expectedVersion: BigInt(expectedVersion).toString(),
|
|
130574
|
+
dataHash: dataHash.toLowerCase(),
|
|
130575
|
+
metadataHash: metadataHash.toLowerCase()
|
|
130576
|
+
};
|
|
130577
|
+
}
|
|
130526
130578
|
function normalizeRange(value) {
|
|
130527
130579
|
if (typeof value !== "object" || value === null)
|
|
130528
130580
|
return void 0;
|
|
@@ -130542,10 +130594,14 @@ function normalizePendingBlobDeletions(stored) {
|
|
|
130542
130594
|
} else if (typeof item === "object" && item !== null && typeof item.scope === "string") {
|
|
130543
130595
|
const version5 = item.version;
|
|
130544
130596
|
const range = typeof version5 === "string" ? void 0 : normalizeRange(item.range);
|
|
130597
|
+
const gate = item.tombstoneVersion;
|
|
130598
|
+
const replacedHead = normalizeHead(item.replacedHead);
|
|
130545
130599
|
keys.push({
|
|
130546
130600
|
scope: item.scope,
|
|
130547
130601
|
version: typeof version5 === "string" ? version5 : null,
|
|
130548
|
-
...range ? { range } : {}
|
|
130602
|
+
...range ? { range } : {},
|
|
130603
|
+
...typeof gate === "string" && /^\d+$/.test(gate) ? { tombstoneVersion: BigInt(gate).toString() } : {},
|
|
130604
|
+
...replacedHead ? { replacedHead } : {}
|
|
130549
130605
|
});
|
|
130550
130606
|
}
|
|
130551
130607
|
}
|
|
@@ -130579,7 +130635,9 @@ function createPendingBlobDeletionStore(kv) {
|
|
|
130579
130635
|
next.push({
|
|
130580
130636
|
scope: key.scope,
|
|
130581
130637
|
version: key.version,
|
|
130582
|
-
...key.range ? { range: { ...key.range } } : {}
|
|
130638
|
+
...key.range ? { range: { ...key.range } } : {},
|
|
130639
|
+
...key.tombstoneVersion !== void 0 ? { tombstoneVersion: key.tombstoneVersion } : {},
|
|
130640
|
+
...key.replacedHead ? { replacedHead: { ...key.replacedHead } } : {}
|
|
130583
130641
|
});
|
|
130584
130642
|
}
|
|
130585
130643
|
return next;
|
|
@@ -130645,6 +130703,88 @@ function createMemoryPendingBlobDeletionStore() {
|
|
|
130645
130703
|
});
|
|
130646
130704
|
}
|
|
130647
130705
|
|
|
130706
|
+
// ../core/dist/sync/tombstone-resubmits.js
|
|
130707
|
+
var DEFAULT_TOMBSTONE_RESUBMIT_MAX_ATTEMPTS = 5;
|
|
130708
|
+
var DEFAULT_TOMBSTONE_RESUBMIT_BASE_DELAY_MS = 6e4;
|
|
130709
|
+
function createTombstoneResubmitTracker(options = {}) {
|
|
130710
|
+
const maxAttempts = options.maxAttempts ?? DEFAULT_TOMBSTONE_RESUBMIT_MAX_ATTEMPTS;
|
|
130711
|
+
const baseDelayMs = options.baseDelayMs ?? DEFAULT_TOMBSTONE_RESUBMIT_BASE_DELAY_MS;
|
|
130712
|
+
const now = options.now ?? Date.now;
|
|
130713
|
+
const states = /* @__PURE__ */ new Map();
|
|
130714
|
+
const view = (scope) => {
|
|
130715
|
+
const state = states.get(scope);
|
|
130716
|
+
return state ? {
|
|
130717
|
+
scope,
|
|
130718
|
+
attempts: state.attempts,
|
|
130719
|
+
tombstoneVersion: state.tombstoneVersion,
|
|
130720
|
+
lastAttemptAt: new Date(state.lastAttemptMs).toISOString(),
|
|
130721
|
+
...state.reason ? { reason: state.reason } : {}
|
|
130722
|
+
} : null;
|
|
130723
|
+
};
|
|
130724
|
+
return {
|
|
130725
|
+
due(scope) {
|
|
130726
|
+
const state = states.get(scope);
|
|
130727
|
+
if (!state)
|
|
130728
|
+
return true;
|
|
130729
|
+
if (state.failedAtMs !== null || state.attempts >= maxAttempts)
|
|
130730
|
+
return false;
|
|
130731
|
+
const wait3 = baseDelayMs * 2 ** (state.attempts - 1);
|
|
130732
|
+
return now() - state.lastAttemptMs >= wait3;
|
|
130733
|
+
},
|
|
130734
|
+
exhausted(scope) {
|
|
130735
|
+
return states.get(scope)?.failedAtMs != null;
|
|
130736
|
+
},
|
|
130737
|
+
outOfAttempts(scope) {
|
|
130738
|
+
const state = states.get(scope);
|
|
130739
|
+
return state !== void 0 && state.failedAtMs === null && state.attempts >= maxAttempts;
|
|
130740
|
+
},
|
|
130741
|
+
recordAttempt(scope, tombstoneVersion2) {
|
|
130742
|
+
const state = states.get(scope);
|
|
130743
|
+
const attempts = (state?.attempts ?? 0) + 1;
|
|
130744
|
+
states.set(scope, {
|
|
130745
|
+
attempts,
|
|
130746
|
+
tombstoneVersion: tombstoneVersion2,
|
|
130747
|
+
lastAttemptMs: now(),
|
|
130748
|
+
failedAtMs: null
|
|
130749
|
+
});
|
|
130750
|
+
return attempts;
|
|
130751
|
+
},
|
|
130752
|
+
giveUp(scope, tombstoneVersion2, reason = "attempts-exhausted") {
|
|
130753
|
+
const state = states.get(scope) ?? {
|
|
130754
|
+
attempts: 0,
|
|
130755
|
+
tombstoneVersion: tombstoneVersion2,
|
|
130756
|
+
lastAttemptMs: now(),
|
|
130757
|
+
failedAtMs: null
|
|
130758
|
+
};
|
|
130759
|
+
states.set(scope, {
|
|
130760
|
+
...state,
|
|
130761
|
+
tombstoneVersion: tombstoneVersion2,
|
|
130762
|
+
failedAtMs: now(),
|
|
130763
|
+
reason
|
|
130764
|
+
});
|
|
130765
|
+
return view(scope);
|
|
130766
|
+
},
|
|
130767
|
+
reset(scope) {
|
|
130768
|
+
states.delete(scope);
|
|
130769
|
+
},
|
|
130770
|
+
snapshot() {
|
|
130771
|
+
const retrying = [];
|
|
130772
|
+
const failed = [];
|
|
130773
|
+
for (const [scope, state] of states) {
|
|
130774
|
+
const entry = view(scope);
|
|
130775
|
+
if (state.failedAtMs === null)
|
|
130776
|
+
retrying.push(entry);
|
|
130777
|
+
else
|
|
130778
|
+
failed.push({
|
|
130779
|
+
...entry,
|
|
130780
|
+
failedAt: new Date(state.failedAtMs).toISOString()
|
|
130781
|
+
});
|
|
130782
|
+
}
|
|
130783
|
+
return { retrying, failed };
|
|
130784
|
+
}
|
|
130785
|
+
};
|
|
130786
|
+
}
|
|
130787
|
+
|
|
130648
130788
|
// ../core/dist/sync/workers/delete.js
|
|
130649
130789
|
var BLOB_DELETE_BATCH_SIZE = 15;
|
|
130650
130790
|
function planBlobDeletions(storage, scope, tombstoneVersionValue) {
|
|
@@ -130710,12 +130850,13 @@ async function eraseCoveredEntries(storage, scope, fence) {
|
|
|
130710
130850
|
}
|
|
130711
130851
|
return erased;
|
|
130712
130852
|
}
|
|
130713
|
-
function takeFromRange(range, count) {
|
|
130853
|
+
function takeFromRange(range, count, cap = null) {
|
|
130714
130854
|
const from14 = BigInt(range.from);
|
|
130715
130855
|
const to3 = BigInt(range.to);
|
|
130856
|
+
const last2 = cap !== null && cap < to3 ? cap : to3;
|
|
130716
130857
|
const versions = [];
|
|
130717
130858
|
let cursor = from14;
|
|
130718
|
-
while (cursor <=
|
|
130859
|
+
while (cursor <= last2 && versions.length < count) {
|
|
130719
130860
|
versions.push(cursor.toString());
|
|
130720
130861
|
cursor += 1n;
|
|
130721
130862
|
}
|
|
@@ -130739,7 +130880,7 @@ function countPendingKeys(markers) {
|
|
|
130739
130880
|
}
|
|
130740
130881
|
return total > BigInt(Number.MAX_SAFE_INTEGER) ? Number.MAX_SAFE_INTEGER : Number(total);
|
|
130741
130882
|
}
|
|
130742
|
-
async function deleteScope(deps, scope) {
|
|
130883
|
+
async function deleteScope(deps, scope, options = {}) {
|
|
130743
130884
|
const { storage, deleteData, pendingBlobDeletions, scopeDeletions, logger } = deps;
|
|
130744
130885
|
const now = deps.now ?? (() => /* @__PURE__ */ new Date());
|
|
130745
130886
|
const dataPointId = deps.serverOwner ? computeDataPointId(deps.serverOwner, scope) : null;
|
|
@@ -130759,12 +130900,14 @@ async function deleteScope(deps, scope) {
|
|
|
130759
130900
|
if (deleteData) {
|
|
130760
130901
|
let tombstoneVersionValue = null;
|
|
130761
130902
|
let tombstoneKnown = false;
|
|
130903
|
+
let replacedHead = null;
|
|
130762
130904
|
try {
|
|
130763
|
-
|
|
130905
|
+
const tombstone = () => options.fence ? deleteData.tombstone(scope, options.fence) : deleteData.tombstone(scope);
|
|
130906
|
+
let outcome = await tombstone();
|
|
130764
130907
|
if (outcome.status === "not-registered") {
|
|
130765
130908
|
let registry2 = await registryState(deps, scope);
|
|
130766
130909
|
if (registry2.status === "live") {
|
|
130767
|
-
outcome = await
|
|
130910
|
+
outcome = await tombstone();
|
|
130768
130911
|
registry2 = await registryState(deps, scope);
|
|
130769
130912
|
}
|
|
130770
130913
|
if (outcome.status === "not-registered" && registry2.status !== "deleted-or-absent") {
|
|
@@ -130775,6 +130918,9 @@ async function deleteScope(deps, scope) {
|
|
|
130775
130918
|
result.steps.gateway = { status: "skipped", reason: "not-registered" };
|
|
130776
130919
|
} else {
|
|
130777
130920
|
tombstoneKnown = true;
|
|
130921
|
+
if (outcome.status === "tombstoned") {
|
|
130922
|
+
replacedHead = outcome.replaced ?? null;
|
|
130923
|
+
}
|
|
130778
130924
|
tombstoneVersionValue = outcome.version === null ? null : tombstoneVersion({ expectedVersion: outcome.version });
|
|
130779
130925
|
result.steps.gateway = {
|
|
130780
130926
|
status: "ok",
|
|
@@ -130788,6 +130934,7 @@ async function deleteScope(deps, scope) {
|
|
|
130788
130934
|
deletedAt: outcome.deletedAt ?? now().toISOString(),
|
|
130789
130935
|
version: outcome.version
|
|
130790
130936
|
}, "local-delete");
|
|
130937
|
+
deps.tombstoneFinality?.recheckNow?.(scope);
|
|
130791
130938
|
}
|
|
130792
130939
|
result.durable = true;
|
|
130793
130940
|
} catch (err2) {
|
|
@@ -130808,7 +130955,12 @@ async function deleteScope(deps, scope) {
|
|
|
130808
130955
|
}
|
|
130809
130956
|
}
|
|
130810
130957
|
const plan = planBlobDeletions(storage, scope, tombstoneVersionValue);
|
|
130811
|
-
const storageStep = await deleteScopeBlobs({
|
|
130958
|
+
const storageStep = await deleteScopeBlobs({
|
|
130959
|
+
deleteData,
|
|
130960
|
+
pendingBlobDeletions,
|
|
130961
|
+
tombstoneFinality: deps.tombstoneFinality,
|
|
130962
|
+
logger
|
|
130963
|
+
}, scope, plan, tombstoneKnown && tombstoneVersionValue === null, options.storagePass ?? true, replacedHead);
|
|
130812
130964
|
result.steps.storage = storageStep.step;
|
|
130813
130965
|
result.pendingBlobDeletion = storageStep.pending > 0;
|
|
130814
130966
|
}
|
|
@@ -130843,7 +130995,7 @@ async function resumePoint(store, scope, markers) {
|
|
|
130843
130995
|
}
|
|
130844
130996
|
return through;
|
|
130845
130997
|
}
|
|
130846
|
-
function unplannedWork(scope, plan, through) {
|
|
130998
|
+
function unplannedWork(scope, plan, through, replacedHead = null) {
|
|
130847
130999
|
const work = plan.keys.map((version5) => ({
|
|
130848
131000
|
scope,
|
|
130849
131001
|
version: version5
|
|
@@ -130856,7 +131008,8 @@ function unplannedWork(scope, plan, through) {
|
|
|
130856
131008
|
work.push({
|
|
130857
131009
|
scope,
|
|
130858
131010
|
version: null,
|
|
130859
|
-
range: { from: from14.toString(), to: plan.range.to }
|
|
131011
|
+
range: { from: from14.toString(), to: plan.range.to },
|
|
131012
|
+
...replacedHead ? { replacedHead } : {}
|
|
130860
131013
|
});
|
|
130861
131014
|
}
|
|
130862
131015
|
}
|
|
@@ -130868,11 +131021,80 @@ async function recordPlannedWork(store, scope, work, through) {
|
|
|
130868
131021
|
else
|
|
130869
131022
|
await store.add(work);
|
|
130870
131023
|
}
|
|
130871
|
-
|
|
131024
|
+
function sameHead(a10, b10) {
|
|
131025
|
+
return a10.expectedVersion === b10.expectedVersion && a10.dataHash.toLowerCase() === b10.dataHash.toLowerCase() && a10.metadataHash.toLowerCase() === b10.metadataHash.toLowerCase();
|
|
131026
|
+
}
|
|
131027
|
+
function markerGate(marker) {
|
|
131028
|
+
if (marker.tombstoneVersion !== void 0) {
|
|
131029
|
+
return marker.version !== null || marker.range ? BigInt(marker.tombstoneVersion) : null;
|
|
131030
|
+
}
|
|
131031
|
+
if (marker.version !== null)
|
|
131032
|
+
return BigInt(marker.version);
|
|
131033
|
+
if (marker.range)
|
|
131034
|
+
return BigInt(marker.range.to);
|
|
131035
|
+
return null;
|
|
131036
|
+
}
|
|
131037
|
+
async function releasableMarkers(finality, markers, logger) {
|
|
131038
|
+
const rolledBack = /* @__PURE__ */ new Map();
|
|
131039
|
+
const converged = /* @__PURE__ */ new Set();
|
|
131040
|
+
if (!finality) {
|
|
131041
|
+
return {
|
|
131042
|
+
released: markers.map((marker) => ({ marker, through: null })),
|
|
131043
|
+
rolledBack,
|
|
131044
|
+
converged
|
|
131045
|
+
};
|
|
131046
|
+
}
|
|
131047
|
+
const lowestGate = /* @__PURE__ */ new Map();
|
|
131048
|
+
for (const marker of markers) {
|
|
131049
|
+
const gate = markerGate(marker);
|
|
131050
|
+
if (gate === null)
|
|
131051
|
+
continue;
|
|
131052
|
+
const lowest = lowestGate.get(marker.scope);
|
|
131053
|
+
if (lowest === void 0 || gate < lowest) {
|
|
131054
|
+
lowestGate.set(marker.scope, gate);
|
|
131055
|
+
}
|
|
131056
|
+
}
|
|
131057
|
+
const finalized = /* @__PURE__ */ new Map();
|
|
131058
|
+
for (const [scope, lowest] of lowestGate) {
|
|
131059
|
+
try {
|
|
131060
|
+
const state = await finality.tombstoneState(scope, lowest.toString());
|
|
131061
|
+
finalized.set(scope, state.finalized === null ? null : BigInt(state.finalized));
|
|
131062
|
+
if (state.rolledBack !== null)
|
|
131063
|
+
rolledBack.set(scope, state.rolledBack);
|
|
131064
|
+
else if (state.finalized !== null && !state.settling)
|
|
131065
|
+
converged.add(scope);
|
|
131066
|
+
} catch (err2) {
|
|
131067
|
+
finalized.set(scope, null);
|
|
131068
|
+
logger.warn({ scope, error: errorMessage2(err2) }, "Could not read tombstone finality; blob deletions wait for a later pass");
|
|
131069
|
+
}
|
|
131070
|
+
}
|
|
131071
|
+
const released = [];
|
|
131072
|
+
const held = /* @__PURE__ */ new Map();
|
|
131073
|
+
for (const marker of markers) {
|
|
131074
|
+
const gate = markerGate(marker);
|
|
131075
|
+
if (gate === null)
|
|
131076
|
+
continue;
|
|
131077
|
+
const through = finalized.get(marker.scope) ?? null;
|
|
131078
|
+
const lowestKey = marker.version !== null ? BigInt(marker.version) : BigInt(marker.range.from);
|
|
131079
|
+
if (through !== null && lowestKey <= through) {
|
|
131080
|
+
released.push({ marker, through: marker.range ? through : null });
|
|
131081
|
+
}
|
|
131082
|
+
const highestKey = marker.version !== null ? BigInt(marker.version) : BigInt(marker.range.to);
|
|
131083
|
+
if (through === null || highestKey > through) {
|
|
131084
|
+
held.set(marker.scope, (held.get(marker.scope) ?? 0) + 1);
|
|
131085
|
+
}
|
|
131086
|
+
}
|
|
131087
|
+
for (const [scope, count] of held) {
|
|
131088
|
+
logger.info({ scope, markers: count }, "Blob deletions wait until the covering tombstone is finalized");
|
|
131089
|
+
}
|
|
131090
|
+
return { released, rolledBack, converged };
|
|
131091
|
+
}
|
|
131092
|
+
async function drainOnePass(deleteData, store, released) {
|
|
130872
131093
|
let budget = BLOB_DELETE_BATCH_SIZE;
|
|
130873
131094
|
const byScope = /* @__PURE__ */ new Map();
|
|
130874
131095
|
const queued = /* @__PURE__ */ new Set();
|
|
130875
131096
|
const exactOrigin = /* @__PURE__ */ new Set();
|
|
131097
|
+
const rangeGate = /* @__PURE__ */ new Map();
|
|
130876
131098
|
const advancedRanges = [];
|
|
130877
131099
|
const keyOf = (scope, version5) => `${scope}\0${version5}`;
|
|
130878
131100
|
const take = (scope, version5) => {
|
|
@@ -130885,7 +131107,7 @@ async function drainOnePass(deleteData, store, markers) {
|
|
|
130885
131107
|
byScope.set(scope, versions);
|
|
130886
131108
|
return true;
|
|
130887
131109
|
};
|
|
130888
|
-
for (const marker of
|
|
131110
|
+
for (const { marker } of released) {
|
|
130889
131111
|
if (budget === 0)
|
|
130890
131112
|
break;
|
|
130891
131113
|
if (marker.version !== null) {
|
|
@@ -130894,18 +131116,27 @@ async function drainOnePass(deleteData, store, markers) {
|
|
|
130894
131116
|
budget -= 1;
|
|
130895
131117
|
}
|
|
130896
131118
|
}
|
|
130897
|
-
for (const marker of
|
|
131119
|
+
for (const { marker, through } of released) {
|
|
130898
131120
|
if (budget === 0)
|
|
130899
131121
|
break;
|
|
130900
131122
|
if (marker.version === null && marker.range) {
|
|
130901
|
-
const taken = takeFromRange(marker.range, budget);
|
|
131123
|
+
const taken = takeFromRange(marker.range, budget, through);
|
|
131124
|
+
const gate = marker.tombstoneVersion ?? marker.range.to;
|
|
130902
131125
|
for (const version5 of taken.versions) {
|
|
130903
|
-
if (take(marker.scope, version5))
|
|
131126
|
+
if (take(marker.scope, version5)) {
|
|
130904
131127
|
budget -= 1;
|
|
131128
|
+
rangeGate.set(keyOf(marker.scope, version5), gate);
|
|
131129
|
+
}
|
|
130905
131130
|
}
|
|
130906
131131
|
advancedRanges.push({
|
|
130907
131132
|
old: marker,
|
|
130908
|
-
next: taken.rest ? {
|
|
131133
|
+
next: taken.rest ? {
|
|
131134
|
+
scope: marker.scope,
|
|
131135
|
+
version: null,
|
|
131136
|
+
range: taken.rest,
|
|
131137
|
+
...marker.tombstoneVersion !== void 0 ? { tombstoneVersion: marker.tombstoneVersion } : {},
|
|
131138
|
+
...marker.replacedHead ? { replacedHead: marker.replacedHead } : {}
|
|
131139
|
+
} : null
|
|
130909
131140
|
});
|
|
130910
131141
|
}
|
|
130911
131142
|
}
|
|
@@ -130926,7 +131157,14 @@ async function drainOnePass(deleteData, store, markers) {
|
|
|
130926
131157
|
const completed = [...outcome.deleted, ...outcome.missing].filter((version5) => exactOrigin.has(keyOf(scope, version5))).map((version5) => ({ scope, version: version5 }));
|
|
130927
131158
|
if (completed.length > 0)
|
|
130928
131159
|
await store.remove(completed);
|
|
130929
|
-
const failedFromRange = outcome.failed.filter(({ version: version5 }) => !exactOrigin.has(keyOf(scope, version5))).map(({ version: version5 }) =>
|
|
131160
|
+
const failedFromRange = outcome.failed.filter(({ version: version5 }) => !exactOrigin.has(keyOf(scope, version5))).map(({ version: version5 }) => {
|
|
131161
|
+
const gate = rangeGate.get(keyOf(scope, version5));
|
|
131162
|
+
return {
|
|
131163
|
+
scope,
|
|
131164
|
+
version: version5,
|
|
131165
|
+
...gate !== void 0 ? { tombstoneVersion: gate } : {}
|
|
131166
|
+
};
|
|
131167
|
+
});
|
|
130930
131168
|
if (failedFromRange.length > 0)
|
|
130931
131169
|
await store.add(failedFromRange);
|
|
130932
131170
|
}
|
|
@@ -130937,10 +131175,10 @@ async function drainOnePass(deleteData, store, markers) {
|
|
|
130937
131175
|
}
|
|
130938
131176
|
return outcomes;
|
|
130939
131177
|
}
|
|
130940
|
-
async function deleteScopeBlobs(deps, scope, plan, versionUnknown) {
|
|
131178
|
+
async function deleteScopeBlobs(deps, scope, plan, versionUnknown, storagePass, replacedHead) {
|
|
130941
131179
|
const { deleteData, logger } = deps;
|
|
130942
131180
|
const withUnknown = (work2) => versionUnknown ? [...work2, { scope, version: null }] : work2;
|
|
130943
|
-
let work = withUnknown(unplannedWork(scope, plan, null));
|
|
131181
|
+
let work = withUnknown(unplannedWork(scope, plan, null, replacedHead));
|
|
130944
131182
|
let store = deps.pendingBlobDeletions ?? null;
|
|
130945
131183
|
let queuedBefore = [];
|
|
130946
131184
|
if (store) {
|
|
@@ -130948,7 +131186,7 @@ async function deleteScopeBlobs(deps, scope, plan, versionUnknown) {
|
|
|
130948
131186
|
const markers = await store.list();
|
|
130949
131187
|
queuedBefore = markers.filter((m10) => m10.scope === scope);
|
|
130950
131188
|
const through = await resumePoint(store, scope, markers);
|
|
130951
|
-
work = withUnknown(unplannedWork(scope, plan, through));
|
|
131189
|
+
work = withUnknown(unplannedWork(scope, plan, through, replacedHead));
|
|
130952
131190
|
await recordPlannedWork(store, scope, work, plan.range?.to ?? null);
|
|
130953
131191
|
} catch (markerErr) {
|
|
130954
131192
|
logger.error({ scope, error: errorMessage2(markerErr), keys: countPendingKeys(work) }, "Could not record pending blob deletion markers");
|
|
@@ -130963,7 +131201,7 @@ async function deleteScopeBlobs(deps, scope, plan, versionUnknown) {
|
|
|
130963
131201
|
let outcome;
|
|
130964
131202
|
let remainingKeys;
|
|
130965
131203
|
try {
|
|
130966
|
-
const queued = (await passStore.list()).filter((m10) => m10.scope === scope);
|
|
131204
|
+
const { released: queued } = storagePass ? await releasableMarkers(deps.tombstoneFinality, (await passStore.list()).filter((m10) => m10.scope === scope), logger) : { released: [] };
|
|
130967
131205
|
outcome = (await drainOnePass(deleteData, passStore, queued)).get(scope) ?? { deleted: [], missing: [], failed: [] };
|
|
130968
131206
|
remainingKeys = countPendingKeys((await passStore.list()).filter((m10) => m10.scope === scope));
|
|
130969
131207
|
} catch (markerErr) {
|
|
@@ -131042,7 +131280,8 @@ async function retryPendingBlobDeletions(deps) {
|
|
|
131042
131280
|
await pendingBlobDeletions.remove([marker]);
|
|
131043
131281
|
}
|
|
131044
131282
|
markers = await pendingBlobDeletions.list();
|
|
131045
|
-
const
|
|
131283
|
+
const decision = await releasableMarkers(deps.tombstoneFinality, markers, logger);
|
|
131284
|
+
const outcomes = await drainOnePass(deleteData, pendingBlobDeletions, decision.released);
|
|
131046
131285
|
for (const [scope, outcome] of outcomes) {
|
|
131047
131286
|
result.completed.push(...[...outcome.deleted, ...outcome.missing].map((version5) => ({ scope, version: version5 })));
|
|
131048
131287
|
for (const failure of outcome.failed) {
|
|
@@ -131063,9 +131302,90 @@ async function retryPendingBlobDeletions(deps) {
|
|
|
131063
131302
|
}, "Pending blob deletion failed again");
|
|
131064
131303
|
}
|
|
131065
131304
|
}
|
|
131066
|
-
|
|
131305
|
+
for (const [scope, rollback] of decision.rolledBack) {
|
|
131306
|
+
await resubmitRolledBackDeletion(deps, scope, rollback, markers.filter((marker) => marker.scope === scope));
|
|
131307
|
+
}
|
|
131308
|
+
const left = await pendingBlobDeletions.list();
|
|
131309
|
+
if (deps.tombstoneResubmits) {
|
|
131310
|
+
const waiting = new Set(left.map((marker) => marker.scope));
|
|
131311
|
+
const tracked = deps.tombstoneResubmits.snapshot();
|
|
131312
|
+
for (const { scope } of [...tracked.retrying, ...tracked.failed]) {
|
|
131313
|
+
if (!waiting.has(scope) || decision.converged.has(scope)) {
|
|
131314
|
+
deps.tombstoneResubmits.reset(scope);
|
|
131315
|
+
}
|
|
131316
|
+
}
|
|
131317
|
+
}
|
|
131318
|
+
result.remaining = left.length;
|
|
131067
131319
|
return result;
|
|
131068
131320
|
}
|
|
131321
|
+
async function resubmitRolledBackDeletion(deps, scope, rollback, scopeMarkers) {
|
|
131322
|
+
const { logger, tombstoneResubmits: tracker } = deps;
|
|
131323
|
+
const failedVersion = rollback.tombstoneVersion;
|
|
131324
|
+
if (!deps.resubmitDeletion || !tracker) {
|
|
131325
|
+
logger.warn({ scope, tombstoneVersion: failedVersion }, "Scope tombstone failed and the scope is live again; its storage copies stay until the scope is deleted again");
|
|
131326
|
+
return;
|
|
131327
|
+
}
|
|
131328
|
+
const remembered = scopeMarkers.find((marker) => marker.version === null && marker.range && BigInt(marker.range.to) === BigInt(failedVersion) && marker.replacedHead)?.replacedHead;
|
|
131329
|
+
if (readdedLocally(deps.storage, scope, failedVersion)) {
|
|
131330
|
+
logger.info({ scope, tombstoneVersion: failedVersion }, "Scope tombstone failed, but the scope was re-added after the delete; not deleting it again");
|
|
131331
|
+
return;
|
|
131332
|
+
}
|
|
131333
|
+
if (tracker.exhausted(scope))
|
|
131334
|
+
return;
|
|
131335
|
+
if (!remembered || !sameHead(remembered, rollback.head)) {
|
|
131336
|
+
const state = tracker.giveUp(scope, failedVersion, "head-changed");
|
|
131337
|
+
logger.error({
|
|
131338
|
+
scope,
|
|
131339
|
+
tombstoneVersion: failedVersion,
|
|
131340
|
+
head: rollback.head.expectedVersion,
|
|
131341
|
+
remembered: remembered?.expectedVersion ?? null
|
|
131342
|
+
}, "Scope deletion did not complete: the gateway tombstone failed and the restored head is not the one the delete replaced, so it is not deleted again automatically. Delete it again to retry.");
|
|
131343
|
+
deps.onDeletionAbandoned?.(state);
|
|
131344
|
+
return;
|
|
131345
|
+
}
|
|
131346
|
+
if (tracker.outOfAttempts(scope)) {
|
|
131347
|
+
const state = tracker.giveUp(scope, failedVersion);
|
|
131348
|
+
logger.error({
|
|
131349
|
+
scope,
|
|
131350
|
+
attempts: state.attempts,
|
|
131351
|
+
tombstoneVersion: failedVersion
|
|
131352
|
+
}, "Scope deletion did not complete: every gateway tombstone failed and the scope is live again. Delete it again to retry.");
|
|
131353
|
+
deps.onDeletionAbandoned?.(state);
|
|
131354
|
+
return;
|
|
131355
|
+
}
|
|
131356
|
+
if (!tracker.due(scope))
|
|
131357
|
+
return;
|
|
131358
|
+
const attempt = tracker.recordAttempt(scope, failedVersion);
|
|
131359
|
+
logger.warn({ scope, tombstoneVersion: failedVersion, attempt }, "Scope tombstone failed and the scope is live again; re-submitting the user's delete");
|
|
131360
|
+
try {
|
|
131361
|
+
const outcome = await deps.resubmitDeletion(scope, {
|
|
131362
|
+
fence: { head: rollback.head },
|
|
131363
|
+
storagePass: false
|
|
131364
|
+
});
|
|
131365
|
+
if (outcome.steps.gateway.status === "failed") {
|
|
131366
|
+
logger.warn({ scope, attempt, error: outcome.steps.gateway.error }, "Re-submitted scope delete was refused by the gateway; will retry");
|
|
131367
|
+
}
|
|
131368
|
+
} catch (err2) {
|
|
131369
|
+
logger.warn({ scope, attempt, error: errorMessage2(err2) }, "Re-submitted scope delete failed; will retry");
|
|
131370
|
+
}
|
|
131371
|
+
}
|
|
131372
|
+
function readdedLocally(storage, scope, failedVersion) {
|
|
131373
|
+
if (!storage)
|
|
131374
|
+
return true;
|
|
131375
|
+
const failed = BigInt(failedVersion);
|
|
131376
|
+
const PAGE_SIZE = 500;
|
|
131377
|
+
for (let offset = 0; ; offset += PAGE_SIZE) {
|
|
131378
|
+
const entries = storage.listVersions(scope, { limit: PAGE_SIZE, offset });
|
|
131379
|
+
for (const entry of entries) {
|
|
131380
|
+
if (entry.dataPointId === null)
|
|
131381
|
+
return true;
|
|
131382
|
+
if (BigInt(entry.version) >= failed)
|
|
131383
|
+
return true;
|
|
131384
|
+
}
|
|
131385
|
+
if (entries.length < PAGE_SIZE)
|
|
131386
|
+
return false;
|
|
131387
|
+
}
|
|
131388
|
+
}
|
|
131069
131389
|
async function registryState(deps, scope) {
|
|
131070
131390
|
if (isGatewayReservedScope(scope) && deps.deleteData?.head && deps.serverOwner) {
|
|
131071
131391
|
let head;
|
|
@@ -131142,6 +131462,7 @@ function createSyncManager(uploadDeps, downloadDeps, options) {
|
|
|
131142
131462
|
let needsStartupHydration = startupHydrateScopes.length > 0;
|
|
131143
131463
|
const hydratedScopes = /* @__PURE__ */ new Set();
|
|
131144
131464
|
const downloadRetryMemory = createDownloadRetryMemory();
|
|
131465
|
+
const tombstoneResubmits = createTombstoneResubmitTracker();
|
|
131145
131466
|
const dataPointFeed = downloadDeps.dataPointFeed ?? uploadDeps.dataPointFeed;
|
|
131146
131467
|
const scopeDeletions = uploadDeps.scopeDeletions ?? downloadDeps.scopeDeletions;
|
|
131147
131468
|
const workerUploadDeps = {
|
|
@@ -131234,15 +131555,54 @@ function createSyncManager(uploadDeps, downloadDeps, options) {
|
|
|
131234
131555
|
cycleInFlight = null;
|
|
131235
131556
|
}
|
|
131236
131557
|
}
|
|
131558
|
+
function deleteScopeDeps() {
|
|
131559
|
+
return {
|
|
131560
|
+
storage: uploadDeps.storage,
|
|
131561
|
+
serverOwner: uploadDeps.serverOwner,
|
|
131562
|
+
deleteData: options?.deleteData,
|
|
131563
|
+
pendingBlobDeletions: options?.pendingBlobDeletions,
|
|
131564
|
+
tombstoneFinality: options?.tombstoneFinality,
|
|
131565
|
+
scopeDeletions,
|
|
131566
|
+
dataPointFeed,
|
|
131567
|
+
logger: uploadDeps.logger
|
|
131568
|
+
};
|
|
131569
|
+
}
|
|
131570
|
+
function deleteAdditionsAfter(scope) {
|
|
131571
|
+
const additions = uploadDeps.additions;
|
|
131572
|
+
if (!additions)
|
|
131573
|
+
return;
|
|
131574
|
+
void mutationQueue.then(() => additions.deleteScope(scope)).catch((err2) => {
|
|
131575
|
+
uploadDeps.logger.warn({ scope, error: err2.message }, "Could not delete the additions ledger of a re-deleted scope");
|
|
131576
|
+
});
|
|
131577
|
+
}
|
|
131237
131578
|
async function runUploadCycle() {
|
|
131238
131579
|
try {
|
|
131239
131580
|
await retryPendingBlobDeletions({
|
|
131240
131581
|
deleteData: options?.deleteData,
|
|
131241
131582
|
pendingBlobDeletions: options?.pendingBlobDeletions,
|
|
131583
|
+
tombstoneFinality: options?.tombstoneFinality,
|
|
131242
131584
|
dataPointFeed,
|
|
131243
131585
|
serverOwner: uploadDeps.serverOwner,
|
|
131244
131586
|
storage: uploadDeps.storage,
|
|
131245
|
-
logger: uploadDeps.logger
|
|
131587
|
+
logger: uploadDeps.logger,
|
|
131588
|
+
...options?.tombstoneFinality && options.deleteData ? {
|
|
131589
|
+
tombstoneResubmits,
|
|
131590
|
+
// Already inside the mutation queue: call the worker directly.
|
|
131591
|
+
async resubmitDeletion(scope, resubmit) {
|
|
131592
|
+
const result = await deleteScope(deleteScopeDeps(), scope, resubmit);
|
|
131593
|
+
if (result.durable)
|
|
131594
|
+
deleteAdditionsAfter(scope);
|
|
131595
|
+
return result;
|
|
131596
|
+
},
|
|
131597
|
+
onDeletionAbandoned(state) {
|
|
131598
|
+
pushError({
|
|
131599
|
+
fileId: null,
|
|
131600
|
+
scope: state.scope,
|
|
131601
|
+
message: state.reason === "head-changed" ? `Deletion of ${state.scope} did not complete: the gateway tombstone failed and the data is live again. Delete it again to retry.` : `Deletion of ${state.scope} did not complete: the gateway tombstone failed ${state.attempts + 1} times and the data is live again. Delete it again to retry.`,
|
|
131602
|
+
timestamp: (/* @__PURE__ */ new Date()).toISOString()
|
|
131603
|
+
});
|
|
131604
|
+
}
|
|
131605
|
+
} : {}
|
|
131246
131606
|
});
|
|
131247
131607
|
} catch (err2) {
|
|
131248
131608
|
uploadDeps.logger.warn({ error: err2.message }, "Pending blob deletion retry failed");
|
|
@@ -131347,7 +131707,8 @@ function createSyncManager(uploadDeps, downloadDeps, options) {
|
|
|
131347
131707
|
lastProcessedTimestamp,
|
|
131348
131708
|
pendingFiles,
|
|
131349
131709
|
hydratedScopes: [...hydratedScopes],
|
|
131350
|
-
errors: [...errors]
|
|
131710
|
+
errors: [...errors],
|
|
131711
|
+
deletions: tombstoneResubmits.snapshot()
|
|
131351
131712
|
};
|
|
131352
131713
|
},
|
|
131353
131714
|
hydrateScopes(scopes) {
|
|
@@ -131367,15 +131728,10 @@ function createSyncManager(uploadDeps, downloadDeps, options) {
|
|
|
131367
131728
|
scheduleNotifiedCycle();
|
|
131368
131729
|
},
|
|
131369
131730
|
async deleteScope(scope) {
|
|
131370
|
-
const result = await exclusive(() =>
|
|
131371
|
-
|
|
131372
|
-
|
|
131373
|
-
|
|
131374
|
-
pendingBlobDeletions: options?.pendingBlobDeletions,
|
|
131375
|
-
scopeDeletions,
|
|
131376
|
-
dataPointFeed,
|
|
131377
|
-
logger: uploadDeps.logger
|
|
131378
|
-
}, scope));
|
|
131731
|
+
const result = await exclusive(() => {
|
|
131732
|
+
tombstoneResubmits.reset(scope);
|
|
131733
|
+
return deleteScope(deleteScopeDeps(), scope);
|
|
131734
|
+
});
|
|
131379
131735
|
if (result.durable && uploadDeps.additions)
|
|
131380
131736
|
await uploadDeps.additions.deleteScope(scope);
|
|
131381
131737
|
return result;
|
|
@@ -131384,6 +131740,107 @@ function createSyncManager(uploadDeps, downloadDeps, options) {
|
|
|
131384
131740
|
return manager;
|
|
131385
131741
|
}
|
|
131386
131742
|
|
|
131743
|
+
// ../core/dist/sync/tombstone-finality.js
|
|
131744
|
+
var PAGE_LIMIT = 1e3;
|
|
131745
|
+
var MAX_PAGES = 20;
|
|
131746
|
+
var SETTLED = /* @__PURE__ */ new Set(["finalized", "failed"]);
|
|
131747
|
+
function createInventoryTombstoneFinality(inventory, options = {}) {
|
|
131748
|
+
const now = options.now ?? Date.now;
|
|
131749
|
+
const minRecheck = options.minRecheckMs ?? 6e4;
|
|
131750
|
+
const maxRecheck = options.maxRecheckMs ?? 15 * 6e4;
|
|
131751
|
+
const recheck = /* @__PURE__ */ new Map();
|
|
131752
|
+
const idle = {
|
|
131753
|
+
finalized: null,
|
|
131754
|
+
settling: false,
|
|
131755
|
+
rolledBack: null
|
|
131756
|
+
};
|
|
131757
|
+
async function read(scope, from14) {
|
|
131758
|
+
let after = (from14 > 0n ? from14 - 1n : 0n).toString();
|
|
131759
|
+
let finalized = null;
|
|
131760
|
+
let settling = false;
|
|
131761
|
+
let top = null;
|
|
131762
|
+
let head = null;
|
|
131763
|
+
let complete = false;
|
|
131764
|
+
for (let count = 0; count < MAX_PAGES; count++) {
|
|
131765
|
+
const result = await inventory.page(scope, { after, limit: PAGE_LIMIT });
|
|
131766
|
+
head = result.data.head ?? null;
|
|
131767
|
+
for (const version5 of result.data.versions) {
|
|
131768
|
+
const value = BigInt(version5.expectedVersion);
|
|
131769
|
+
if (value < from14)
|
|
131770
|
+
continue;
|
|
131771
|
+
if (top === null || value > top.version) {
|
|
131772
|
+
top = {
|
|
131773
|
+
version: value,
|
|
131774
|
+
failedTombstone: version5.isTombstone && version5.status === "failed"
|
|
131775
|
+
};
|
|
131776
|
+
}
|
|
131777
|
+
if (!version5.isTombstone)
|
|
131778
|
+
continue;
|
|
131779
|
+
if (version5.status === "finalized") {
|
|
131780
|
+
if (finalized === null || value > finalized)
|
|
131781
|
+
finalized = value;
|
|
131782
|
+
} else if (!SETTLED.has(version5.status)) {
|
|
131783
|
+
settling = true;
|
|
131784
|
+
}
|
|
131785
|
+
}
|
|
131786
|
+
if (!result.pagination.hasMore) {
|
|
131787
|
+
complete = true;
|
|
131788
|
+
break;
|
|
131789
|
+
}
|
|
131790
|
+
const next = result.pagination.nextAfter;
|
|
131791
|
+
if (next === null)
|
|
131792
|
+
break;
|
|
131793
|
+
after = next;
|
|
131794
|
+
}
|
|
131795
|
+
if (head !== null && (head.deletedAt !== null || isTombstoneRecord(head))) {
|
|
131796
|
+
const value = BigInt(head.expectedVersion);
|
|
131797
|
+
if (head.status === "finalized") {
|
|
131798
|
+
if (finalized === null || value > finalized)
|
|
131799
|
+
finalized = value;
|
|
131800
|
+
} else if (!SETTLED.has(head.status)) {
|
|
131801
|
+
settling = true;
|
|
131802
|
+
}
|
|
131803
|
+
}
|
|
131804
|
+
let rolledBack = null;
|
|
131805
|
+
if (complete && !settling && top?.failedTombstone) {
|
|
131806
|
+
const restored = head !== null && head.deletedAt === null && !isTombstoneRecord(head) && BigInt(head.expectedVersion) < top.version ? head : null;
|
|
131807
|
+
if (restored) {
|
|
131808
|
+
rolledBack = {
|
|
131809
|
+
tombstoneVersion: top.version.toString(),
|
|
131810
|
+
head: {
|
|
131811
|
+
expectedVersion: restored.expectedVersion,
|
|
131812
|
+
dataHash: restored.dataHash,
|
|
131813
|
+
metadataHash: restored.metadataHash
|
|
131814
|
+
}
|
|
131815
|
+
};
|
|
131816
|
+
}
|
|
131817
|
+
}
|
|
131818
|
+
return {
|
|
131819
|
+
finalized: finalized === null ? null : finalized.toString(),
|
|
131820
|
+
settling,
|
|
131821
|
+
rolledBack
|
|
131822
|
+
};
|
|
131823
|
+
}
|
|
131824
|
+
return {
|
|
131825
|
+
async tombstoneState(scope, atOrAbove) {
|
|
131826
|
+
const waiting = recheck.get(scope);
|
|
131827
|
+
if (waiting && now() < waiting.at)
|
|
131828
|
+
return idle;
|
|
131829
|
+
const state = await read(scope, BigInt(atOrAbove));
|
|
131830
|
+
if (state.finalized !== null || state.settling) {
|
|
131831
|
+
recheck.delete(scope);
|
|
131832
|
+
return state;
|
|
131833
|
+
}
|
|
131834
|
+
const interval = waiting ? Math.min(waiting.interval * 2, maxRecheck) : minRecheck;
|
|
131835
|
+
recheck.set(scope, { at: now() + interval, interval });
|
|
131836
|
+
return state;
|
|
131837
|
+
},
|
|
131838
|
+
recheckNow(scope) {
|
|
131839
|
+
recheck.delete(scope);
|
|
131840
|
+
}
|
|
131841
|
+
};
|
|
131842
|
+
}
|
|
131843
|
+
|
|
131387
131844
|
// ../core/dist/replication/door.js
|
|
131388
131845
|
var ReplicationRefusedError = class extends Error {
|
|
131389
131846
|
reason;
|
|
@@ -138140,6 +138597,8 @@ function createVersionInventoryClient(options) {
|
|
|
138140
138597
|
const current = (await page(scope, { limit: 1, signal })).data.head;
|
|
138141
138598
|
return current ? {
|
|
138142
138599
|
expectedVersion: current.expectedVersion,
|
|
138600
|
+
dataHash: current.dataHash,
|
|
138601
|
+
metadataHash: current.metadataHash,
|
|
138143
138602
|
deletedAt: current.deletedAt
|
|
138144
138603
|
} : null;
|
|
138145
138604
|
}
|
|
@@ -172463,6 +172922,16 @@ async function createPsLiteSyncManager(options) {
|
|
|
172463
172922
|
}
|
|
172464
172923
|
});
|
|
172465
172924
|
const pendingBlobDeletions = createPsLitePendingBlobDeletionStore(options.stateStore);
|
|
172925
|
+
const tombstoneFinality = createInventoryTombstoneFinality(createVersionInventoryClient({
|
|
172926
|
+
gatewayUrl: options.config.gateway.url,
|
|
172927
|
+
ownerAddress: serverOwner,
|
|
172928
|
+
ownerSigner: ownerRequestSigner ?? {
|
|
172929
|
+
signRequest: (params) => buildWeb3SignedHeader({
|
|
172930
|
+
...params,
|
|
172931
|
+
signMessage: (message) => syncAccount.signMessage(message)
|
|
172932
|
+
})
|
|
172933
|
+
}
|
|
172934
|
+
}));
|
|
172466
172935
|
const downloadDiagnostics = options.diagnostics ? buildDownloadDiagnosticsHook(options.diagnostics) : void 0;
|
|
172467
172936
|
const syncManager = createSyncManager({
|
|
172468
172937
|
additions,
|
|
@@ -172491,6 +172960,7 @@ async function createPsLiteSyncManager(options) {
|
|
|
172491
172960
|
}, {
|
|
172492
172961
|
deleteData,
|
|
172493
172962
|
pendingBlobDeletions,
|
|
172963
|
+
tombstoneFinality,
|
|
172494
172964
|
async canSync() {
|
|
172495
172965
|
if (options.ownerSyncSigner)
|
|
172496
172966
|
return { ok: true };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opendatalabs/personal-server-ts-server",
|
|
3
|
-
"version": "1.35.
|
|
3
|
+
"version": "1.35.3",
|
|
4
4
|
"description": "Hono HTTP server for the Vana Personal Server — routes, middleware, composition root",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -55,8 +55,8 @@
|
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
57
|
"@hono/node-server": "^1.19.17",
|
|
58
|
-
"@opendatalabs/personal-server-ts-core": "1.35.
|
|
59
|
-
"@opendatalabs/personal-server-ts-lite": "1.35.
|
|
58
|
+
"@opendatalabs/personal-server-ts-core": "1.35.3",
|
|
59
|
+
"@opendatalabs/personal-server-ts-lite": "1.35.3",
|
|
60
60
|
"@opendatalabs/vana-sdk": "3.23.0-pr.211.36da1d8",
|
|
61
61
|
"ajv": "^8.20.0",
|
|
62
62
|
"better-sqlite3": "^12.11.1",
|