@opendatalabs/personal-server-ts-lite 1.35.0 → 1.35.2
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.
|
@@ -27447,6 +27447,31 @@ var AdditionsBudget = class {
|
|
|
27447
27447
|
this.used += bytes;
|
|
27448
27448
|
this.parent?.charge(bytes);
|
|
27449
27449
|
}
|
|
27450
|
+
/** Hold an in-flight host allowance before another request can spend it.
|
|
27451
|
+
* Settle once with the actual receipt, even after cancellation. */
|
|
27452
|
+
reserve(bytes) {
|
|
27453
|
+
this.charge(bytes);
|
|
27454
|
+
let settled2 = false;
|
|
27455
|
+
return {
|
|
27456
|
+
settle: (spent) => {
|
|
27457
|
+
if (settled2)
|
|
27458
|
+
throw new Error("Additions reservation already settled");
|
|
27459
|
+
if (!Number.isSafeInteger(spent) || spent < 0)
|
|
27460
|
+
throw new AdditionsBudgetExceeded("Invalid reserved-byte receipt");
|
|
27461
|
+
settled2 = true;
|
|
27462
|
+
this.refund(bytes);
|
|
27463
|
+
this.recordSpent(spent);
|
|
27464
|
+
if (spent > bytes) {
|
|
27465
|
+
this.exhausted = true;
|
|
27466
|
+
throw new AdditionsBudgetExceeded("Reserved host allowance exceeded");
|
|
27467
|
+
}
|
|
27468
|
+
}
|
|
27469
|
+
};
|
|
27470
|
+
}
|
|
27471
|
+
refund(bytes) {
|
|
27472
|
+
this.used -= bytes;
|
|
27473
|
+
this.parent?.refund(bytes);
|
|
27474
|
+
}
|
|
27450
27475
|
recordSpent(bytes) {
|
|
27451
27476
|
if (!Number.isSafeInteger(bytes) || bytes < 0) {
|
|
27452
27477
|
this.exhausted = true;
|
|
@@ -30159,6 +30184,7 @@ var InaccessibleLedger = class extends Error {
|
|
|
30159
30184
|
var CheckpointSearchExceeded = class extends AdditionsBudgetExceeded {
|
|
30160
30185
|
};
|
|
30161
30186
|
var CHECKPOINT_READ_LIMIT = 256;
|
|
30187
|
+
var INVENTORY_CONCURRENCY = 16;
|
|
30162
30188
|
var BoundedWorkUnavailable = class extends Error {
|
|
30163
30189
|
};
|
|
30164
30190
|
var ReadBudget = class _ReadBudget extends AdditionsBudget {
|
|
@@ -30277,10 +30303,10 @@ function createDurableAdditions(options) {
|
|
|
30277
30303
|
throw new Error("Additions head missing from inventory");
|
|
30278
30304
|
return { snapshot, envelope: await readEnvelope(scope, slot, budget) };
|
|
30279
30305
|
}
|
|
30280
|
-
async function readDocument(scope, budget, source, search) {
|
|
30306
|
+
async function readDocument(scope, budget, source, search, prefetched) {
|
|
30281
30307
|
const { relevant, after } = sourceWindow(source);
|
|
30282
30308
|
const systemScope = additionsLedgerScope(scope);
|
|
30283
|
-
const snapshot = await inventory.list(systemScope, budget.readOptions);
|
|
30309
|
+
const snapshot = prefetched ?? await inventory.list(systemScope, budget.readOptions);
|
|
30284
30310
|
if (!snapshot.head || snapshot.head.deletedAt !== null)
|
|
30285
30311
|
return null;
|
|
30286
30312
|
const boundary = snapshot.versions.filter((row) => row.isTombstone && settled(row) && BigInt(row.expectedVersion) <= BigInt(snapshot.head.expectedVersion)).at(-1)?.expectedVersion ?? "0";
|
|
@@ -30400,14 +30426,15 @@ function createDurableAdditions(options) {
|
|
|
30400
30426
|
throw new Error("Concurrent additions publication replaced the registration");
|
|
30401
30427
|
await readEnvelope(scope, registered, budget);
|
|
30402
30428
|
}
|
|
30403
|
-
async function recover(scope, budget, uploaded) {
|
|
30429
|
+
async function recover(scope, budget, uploaded, initial, deferVerification) {
|
|
30404
30430
|
budget.check();
|
|
30405
|
-
const snapshot = await inventory.list(scope, budget.readOptions);
|
|
30431
|
+
const snapshot = initial?.source ?? await inventory.list(scope, budget.readOptions);
|
|
30406
30432
|
budget.check();
|
|
30407
30433
|
const head = snapshot.head;
|
|
30408
30434
|
if (!head || head.deletedAt !== null) {
|
|
30409
30435
|
const tombstone = head ? snapshot.versions.find((slot) => slot.expectedVersion === head.expectedVersion && slot.dataHash === head.dataHash && slot.metadataHash === head.metadataHash && slot.isTombstone && settled(slot)) : null;
|
|
30410
|
-
const check2 = await inventory.list(scope, budget.readOptions);
|
|
30436
|
+
const check2 = deferVerification ? snapshot : await inventory.list(scope, budget.readOptions);
|
|
30437
|
+
deferVerification?.(snapshot);
|
|
30411
30438
|
return {
|
|
30412
30439
|
ledger: null,
|
|
30413
30440
|
inventory: fingerprintVersionInventory(snapshot),
|
|
@@ -30420,7 +30447,9 @@ function createDurableAdditions(options) {
|
|
|
30420
30447
|
let checkpoint = null;
|
|
30421
30448
|
let inaccessibleExisting = false;
|
|
30422
30449
|
try {
|
|
30423
|
-
|
|
30450
|
+
if (initial?.checkpoint?.status === "rejected")
|
|
30451
|
+
throw initial.checkpoint.reason;
|
|
30452
|
+
checkpoint = await readDocument(scope, budget, snapshot, void 0, initial?.checkpoint?.status === "fulfilled" ? initial.checkpoint.value : void 0);
|
|
30424
30453
|
} catch (error51) {
|
|
30425
30454
|
if (error51 instanceof AdditionsBudgetExceeded || budget.signal?.aborted)
|
|
30426
30455
|
throw error51;
|
|
@@ -30538,6 +30567,26 @@ function createDurableAdditions(options) {
|
|
|
30538
30567
|
coverage = "partial";
|
|
30539
30568
|
if (ledger?.incomplete || ledger?.skipped)
|
|
30540
30569
|
coverage = "partial";
|
|
30570
|
+
const document2 = {
|
|
30571
|
+
version: 1,
|
|
30572
|
+
owner,
|
|
30573
|
+
network: options.network,
|
|
30574
|
+
scope,
|
|
30575
|
+
through,
|
|
30576
|
+
currentTotal,
|
|
30577
|
+
slots: folded,
|
|
30578
|
+
ledger
|
|
30579
|
+
};
|
|
30580
|
+
if (deferVerification && !checkpoint?.repairHead && JSON.stringify(document2) === JSON.stringify(existing)) {
|
|
30581
|
+
deferVerification(snapshot);
|
|
30582
|
+
return {
|
|
30583
|
+
ledger,
|
|
30584
|
+
through,
|
|
30585
|
+
currentTotal,
|
|
30586
|
+
coverage,
|
|
30587
|
+
inventory: fingerprintVersionInventory(snapshot)
|
|
30588
|
+
};
|
|
30589
|
+
}
|
|
30541
30590
|
if (!budget.signal?.aborted) {
|
|
30542
30591
|
const check2 = await inventory.list(scope, budget.readOptions);
|
|
30543
30592
|
if (!sameInventory(snapshot, check2))
|
|
@@ -30549,16 +30598,6 @@ function createDurableAdditions(options) {
|
|
|
30549
30598
|
coverage: "behind"
|
|
30550
30599
|
};
|
|
30551
30600
|
}
|
|
30552
|
-
const document2 = {
|
|
30553
|
-
version: 1,
|
|
30554
|
-
owner,
|
|
30555
|
-
network: options.network,
|
|
30556
|
-
scope,
|
|
30557
|
-
through,
|
|
30558
|
-
currentTotal,
|
|
30559
|
-
slots: folded,
|
|
30560
|
-
ledger
|
|
30561
|
-
};
|
|
30562
30601
|
if ((!existing && !inaccessibleExisting || prefixValid || coverage === "complete") && (checkpoint?.repairHead || JSON.stringify(document2) !== JSON.stringify(existing))) {
|
|
30563
30602
|
try {
|
|
30564
30603
|
await publish(additionsLedgerScope(scope), { ...document2 }, budget);
|
|
@@ -30590,8 +30629,28 @@ function createDurableAdditions(options) {
|
|
|
30590
30629
|
let scopes = [];
|
|
30591
30630
|
try {
|
|
30592
30631
|
scopes = (await inventory.listScopes(budget.readOptions)).filter((scope) => !isSystemScope(scope)).sort();
|
|
30632
|
+
const snapshots = /* @__PURE__ */ new Map();
|
|
30633
|
+
for (let offset = 0; offset < scopes.length; offset += INVENTORY_CONCURRENCY) {
|
|
30634
|
+
const batch = await Promise.allSettled(scopes.slice(offset, offset + INVENTORY_CONCURRENCY).map(async (scope) => {
|
|
30635
|
+
const source = await inventory.list(scope, budget.readOptions);
|
|
30636
|
+
const checkpoint = source.head && source.head.deletedAt === null ? await inventory.list(additionsLedgerScope(scope), budget.readOptions).then((value) => ({
|
|
30637
|
+
status: "fulfilled",
|
|
30638
|
+
value
|
|
30639
|
+
}), (reason) => ({
|
|
30640
|
+
status: "rejected",
|
|
30641
|
+
reason
|
|
30642
|
+
})) : void 0;
|
|
30643
|
+
return { scope, source, checkpoint };
|
|
30644
|
+
}));
|
|
30645
|
+
for (const item of batch) {
|
|
30646
|
+
if (item.status === "rejected")
|
|
30647
|
+
throw item.reason;
|
|
30648
|
+
snapshots.set(item.value.scope, item.value);
|
|
30649
|
+
}
|
|
30650
|
+
}
|
|
30651
|
+
const deferred = /* @__PURE__ */ new Map();
|
|
30593
30652
|
for (const scope of scopes) {
|
|
30594
|
-
const result2 = await recover(scope, budget);
|
|
30653
|
+
const result2 = await recover(scope, budget, void 0, snapshots.get(scope), (snapshot) => deferred.set(scope, snapshot));
|
|
30595
30654
|
if (result2.ledger)
|
|
30596
30655
|
ledgers.push({
|
|
30597
30656
|
...result2.ledger,
|
|
@@ -30602,6 +30661,17 @@ function createDurableAdditions(options) {
|
|
|
30602
30661
|
if (result2.coverage === "behind" || result2.coverage === "partial" && coverage === "complete")
|
|
30603
30662
|
coverage = result2.coverage;
|
|
30604
30663
|
}
|
|
30664
|
+
const pending2 = [...deferred];
|
|
30665
|
+
for (let offset = 0; offset < pending2.length; offset += INVENTORY_CONCURRENCY) {
|
|
30666
|
+
const batch = await Promise.allSettled(pending2.slice(offset, offset + INVENTORY_CONCURRENCY).map(async ([scope, snapshot]) => {
|
|
30667
|
+
const check3 = await inventory.list(scope, budget.readOptions);
|
|
30668
|
+
if (!sameInventory(snapshot, check3))
|
|
30669
|
+
coverage = "behind";
|
|
30670
|
+
}));
|
|
30671
|
+
for (const item of batch)
|
|
30672
|
+
if (item.status === "rejected")
|
|
30673
|
+
throw item.reason;
|
|
30674
|
+
}
|
|
30605
30675
|
const check2 = (await inventory.listScopes(budget.readOptions)).filter((scope) => !isSystemScope(scope)).sort();
|
|
30606
30676
|
if (JSON.stringify(scopes) !== JSON.stringify(check2))
|
|
30607
30677
|
coverage = "behind";
|
|
@@ -30641,8 +30711,18 @@ function createDurableAdditions(options) {
|
|
|
30641
30711
|
await new Promise((resolve) => setTimeout(resolve, Math.floor(crypto.getRandomValues(new Uint8Array(1))[0] / 8)));
|
|
30642
30712
|
await publish(ADDITIONS_SUMMARY_SCOPE, { ...portable }, budget);
|
|
30643
30713
|
}
|
|
30644
|
-
} catch {
|
|
30645
|
-
|
|
30714
|
+
} catch (error51) {
|
|
30715
|
+
if (error51 instanceof NeedsFencedPublicationError && error51.scope === ADDITIONS_SUMMARY_SCOPE) {
|
|
30716
|
+
try {
|
|
30717
|
+
options.onRecoveryDiagnostic?.({
|
|
30718
|
+
scope: ADDITIONS_SUMMARY_SCOPE,
|
|
30719
|
+
version: "0",
|
|
30720
|
+
code: "publication_blocked"
|
|
30721
|
+
});
|
|
30722
|
+
} catch {
|
|
30723
|
+
}
|
|
30724
|
+
} else
|
|
30725
|
+
result.coverage = "behind";
|
|
30646
30726
|
}
|
|
30647
30727
|
}
|
|
30648
30728
|
try {
|
|
@@ -30755,23 +30835,54 @@ function additionsTransfers(value) {
|
|
|
30755
30835
|
var worker = globalThis;
|
|
30756
30836
|
var sequence = 0;
|
|
30757
30837
|
var pending = /* @__PURE__ */ new Map();
|
|
30838
|
+
var hostWork = Promise.resolve();
|
|
30758
30839
|
function rpc(method, args, budget) {
|
|
30759
|
-
|
|
30760
|
-
|
|
30761
|
-
|
|
30762
|
-
|
|
30763
|
-
|
|
30764
|
-
|
|
30765
|
-
|
|
30766
|
-
|
|
30767
|
-
|
|
30768
|
-
|
|
30769
|
-
|
|
30770
|
-
|
|
30771
|
-
|
|
30772
|
-
|
|
30773
|
-
|
|
30774
|
-
|
|
30840
|
+
const exchange = (reservation, allowance) => {
|
|
30841
|
+
try {
|
|
30842
|
+
budget?.charge();
|
|
30843
|
+
} catch (error51) {
|
|
30844
|
+
reservation?.settle(0);
|
|
30845
|
+
return Promise.reject(error51);
|
|
30846
|
+
}
|
|
30847
|
+
return new Promise((resolve, reject) => {
|
|
30848
|
+
const id = ++sequence;
|
|
30849
|
+
pending.set(id, { resolve, reject, budget, reservation });
|
|
30850
|
+
try {
|
|
30851
|
+
worker.postMessage(
|
|
30852
|
+
{
|
|
30853
|
+
kind: "request",
|
|
30854
|
+
id,
|
|
30855
|
+
method,
|
|
30856
|
+
args,
|
|
30857
|
+
remaining: allowance ?? budget?.remaining ?? 0,
|
|
30858
|
+
remainingMilliseconds: budget?.remainingMilliseconds
|
|
30859
|
+
},
|
|
30860
|
+
additionsTransfers(args)
|
|
30861
|
+
);
|
|
30862
|
+
} catch (error51) {
|
|
30863
|
+
pending.delete(id);
|
|
30864
|
+
reservation?.settle(0);
|
|
30865
|
+
reject(error51);
|
|
30866
|
+
}
|
|
30867
|
+
});
|
|
30868
|
+
};
|
|
30869
|
+
if (method === "signRequest") return exchange();
|
|
30870
|
+
if (method === "fetch" && budget instanceof AdditionsBudget) {
|
|
30871
|
+
const allowance = Math.min(1024 * 1024, Math.floor(budget.remaining / 4));
|
|
30872
|
+
if (allowance < 1)
|
|
30873
|
+
return Promise.reject(
|
|
30874
|
+
new AdditionsBudgetExceeded("No inventory allowance")
|
|
30875
|
+
);
|
|
30876
|
+
return exchange(budget.reserve(allowance), allowance);
|
|
30877
|
+
}
|
|
30878
|
+
const result = hostWork.then(() => exchange());
|
|
30879
|
+
hostWork = result.then(
|
|
30880
|
+
() => {
|
|
30881
|
+
},
|
|
30882
|
+
() => {
|
|
30883
|
+
}
|
|
30884
|
+
);
|
|
30885
|
+
return result;
|
|
30775
30886
|
}
|
|
30776
30887
|
function hex4(bytes) {
|
|
30777
30888
|
return Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join(
|
|
@@ -30780,14 +30891,13 @@ function hex4(bytes) {
|
|
|
30780
30891
|
}
|
|
30781
30892
|
function createService(init) {
|
|
30782
30893
|
const transport = async (method, args, budget) => await rpc(method, args, budget);
|
|
30783
|
-
|
|
30784
|
-
const inventory = createVersionInventoryClient({
|
|
30894
|
+
const inventoryFor = (budget) => createVersionInventoryClient({
|
|
30785
30895
|
gatewayUrl: init.gatewayUrl,
|
|
30786
30896
|
ownerAddress: init.ownerAddress,
|
|
30787
30897
|
ownerSigner: {
|
|
30788
|
-
signRequest: (params) => transport("signRequest", [params],
|
|
30898
|
+
signRequest: (params) => transport("signRequest", [params], budget)
|
|
30789
30899
|
},
|
|
30790
|
-
boundedOwnerSigner: (params) => transport("signRequest", [params],
|
|
30900
|
+
boundedOwnerSigner: (params) => transport("signRequest", [params], budget),
|
|
30791
30901
|
fetch: async (input, request) => {
|
|
30792
30902
|
const url2 = typeof input === "string" ? input : input instanceof URL ? input.href : input.url;
|
|
30793
30903
|
const response = await transport(
|
|
@@ -30799,7 +30909,7 @@ function createService(init) {
|
|
|
30799
30909
|
headers: [...new Headers(request?.headers)]
|
|
30800
30910
|
}
|
|
30801
30911
|
],
|
|
30802
|
-
|
|
30912
|
+
budget
|
|
30803
30913
|
);
|
|
30804
30914
|
return new Response(new Uint8Array(response.body), {
|
|
30805
30915
|
status: response.status,
|
|
@@ -30816,7 +30926,7 @@ function createService(init) {
|
|
|
30816
30926
|
return null;
|
|
30817
30927
|
}
|
|
30818
30928
|
let prior = pending2;
|
|
30819
|
-
let snapshot = await
|
|
30929
|
+
let snapshot = await inventoryFor(budget).list(scope, {
|
|
30820
30930
|
budget,
|
|
30821
30931
|
signal: budget.signal
|
|
30822
30932
|
});
|
|
@@ -30829,7 +30939,7 @@ function createService(init) {
|
|
|
30829
30939
|
if (!slot) {
|
|
30830
30940
|
const published = await transport("publish", [prior], budget);
|
|
30831
30941
|
prior = { ...prior, expectedVersion: published.expectedVersion };
|
|
30832
|
-
snapshot = await
|
|
30942
|
+
snapshot = await inventoryFor(budget).list(scope, {
|
|
30833
30943
|
budget,
|
|
30834
30944
|
signal: budget.signal
|
|
30835
30945
|
});
|
|
@@ -30869,7 +30979,7 @@ function createService(init) {
|
|
|
30869
30979
|
throw new Error("Interrupted checkpoint commitment mismatch");
|
|
30870
30980
|
data = envelope.data;
|
|
30871
30981
|
}
|
|
30872
|
-
const latest = await
|
|
30982
|
+
const latest = await inventoryFor(budget).list(scope, {
|
|
30873
30983
|
budget,
|
|
30874
30984
|
signal: budget.signal
|
|
30875
30985
|
});
|
|
@@ -30886,22 +30996,18 @@ function createService(init) {
|
|
|
30886
30996
|
}
|
|
30887
30997
|
const boundedInventory = {
|
|
30888
30998
|
page: async (scope, options) => {
|
|
30889
|
-
|
|
30890
|
-
return inventory.page(scope, options);
|
|
30999
|
+
return inventoryFor(options?.budget).page(scope, options);
|
|
30891
31000
|
},
|
|
30892
31001
|
list: async (scope, options) => {
|
|
30893
|
-
activeBudget = options?.budget;
|
|
30894
31002
|
if (scope.startsWith("vana.system.") && options?.budget)
|
|
30895
31003
|
await reconcilePending(scope, options.budget);
|
|
30896
|
-
return
|
|
31004
|
+
return inventoryFor(options?.budget).list(scope, options);
|
|
30897
31005
|
},
|
|
30898
31006
|
listScopes: async (options) => {
|
|
30899
|
-
|
|
30900
|
-
return inventory.listScopes(options);
|
|
31007
|
+
return inventoryFor(options?.budget).listScopes(options);
|
|
30901
31008
|
},
|
|
30902
31009
|
head: (scope, signal) => {
|
|
30903
|
-
|
|
30904
|
-
return inventory.head(scope, signal);
|
|
31010
|
+
return inventoryFor().head(scope, signal);
|
|
30905
31011
|
}
|
|
30906
31012
|
};
|
|
30907
31013
|
const reported = /* @__PURE__ */ new Set();
|
|
@@ -30946,11 +31052,10 @@ function createService(init) {
|
|
|
30946
31052
|
},
|
|
30947
31053
|
decrypt: decryptBoundedAdditions,
|
|
30948
31054
|
async publish(scope, data, budget) {
|
|
30949
|
-
activeBudget = budget;
|
|
30950
31055
|
const prior = await reconcilePending(scope, budget);
|
|
30951
31056
|
if (prior && JSON.stringify(prior.data) === JSON.stringify(data))
|
|
30952
31057
|
return prior.proof;
|
|
30953
|
-
const snapshot = await
|
|
31058
|
+
const snapshot = await inventoryFor(budget).list(scope, {
|
|
30954
31059
|
budget,
|
|
30955
31060
|
signal: budget.signal
|
|
30956
31061
|
});
|
|
@@ -30995,7 +31100,8 @@ worker.onmessage = (event) => {
|
|
|
30995
31100
|
const request = pending.get(message.id);
|
|
30996
31101
|
pending.delete(message.id);
|
|
30997
31102
|
try {
|
|
30998
|
-
request?.
|
|
31103
|
+
if (request?.reservation) request.reservation.settle(message.spent);
|
|
31104
|
+
else request?.budget?.recordSpent(message.spent);
|
|
30999
31105
|
request?.budget?.charge();
|
|
31000
31106
|
if (message.error)
|
|
31001
31107
|
request?.reject(
|
package/dist/additions-worker.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AdditionsBudgetExceeded, createDurableAdditions, createVersionInventoryClient, findCheckpointRegistration, } from "@opendatalabs/personal-server-ts-core/additions";
|
|
1
|
+
import { AdditionsBudget, AdditionsBudgetExceeded, createDurableAdditions, createVersionInventoryClient, findCheckpointRegistration, } from "@opendatalabs/personal-server-ts-core/additions";
|
|
2
2
|
import { createDataFileEnvelope, DataFileEnvelopeSchema, deriveScopeKey, encryptWithPassword, } from "@opendatalabs/vana-sdk/browser";
|
|
3
3
|
import { NeedsFencedPublicationError } from "@opendatalabs/personal-server-ts-core/publication";
|
|
4
4
|
import { keccak256, stringToHex } from "viem";
|
|
@@ -7,20 +7,52 @@ import { additionsTransfers } from "./additions-protocol.js";
|
|
|
7
7
|
const worker = globalThis;
|
|
8
8
|
let sequence = 0;
|
|
9
9
|
const pending = new Map();
|
|
10
|
+
let hostWork = Promise.resolve();
|
|
10
11
|
function rpc(method, args, budget) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
12
|
+
// Small inventory bodies can overlap only after their full host allowances
|
|
13
|
+
// are held in the shared budget. Other host work stays serial and sees the
|
|
14
|
+
// reduced allowance, never bytes already promised to an in-flight response.
|
|
15
|
+
const exchange = (reservation, allowance) => {
|
|
16
|
+
try {
|
|
17
|
+
budget?.charge();
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
reservation?.settle(0);
|
|
21
|
+
return Promise.reject(error);
|
|
22
|
+
}
|
|
23
|
+
return new Promise((resolve, reject) => {
|
|
24
|
+
const id = ++sequence;
|
|
25
|
+
pending.set(id, { resolve, reject, budget, reservation });
|
|
26
|
+
try {
|
|
27
|
+
worker.postMessage({
|
|
28
|
+
kind: "request",
|
|
29
|
+
id,
|
|
30
|
+
method,
|
|
31
|
+
args,
|
|
32
|
+
remaining: allowance ?? budget?.remaining ?? 0,
|
|
33
|
+
remainingMilliseconds: budget?.remainingMilliseconds,
|
|
34
|
+
}, additionsTransfers(args));
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
pending.delete(id);
|
|
38
|
+
reservation?.settle(0);
|
|
39
|
+
reject(error);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
if (method === "signRequest")
|
|
44
|
+
return exchange();
|
|
45
|
+
if (method === "fetch" && budget instanceof AdditionsBudget) {
|
|
46
|
+
// Version pages contain at most 100 rows in this lane. Keep per-response
|
|
47
|
+
// work finite as well as aggregate work; leave room for JSON validation.
|
|
48
|
+
const allowance = Math.min(1024 * 1024, Math.floor(budget.remaining / 4));
|
|
49
|
+
if (allowance < 1)
|
|
50
|
+
return Promise.reject(new AdditionsBudgetExceeded("No inventory allowance"));
|
|
51
|
+
return exchange(budget.reserve(allowance), allowance);
|
|
52
|
+
}
|
|
53
|
+
const result = hostWork.then(() => exchange());
|
|
54
|
+
hostWork = result.then(() => { }, () => { });
|
|
55
|
+
return result;
|
|
24
56
|
}
|
|
25
57
|
function hex(bytes) {
|
|
26
58
|
return Array.from(bytes, (byte) => byte.toString(16).padStart(2, "0")).join("");
|
|
@@ -29,14 +61,13 @@ function createService(init) {
|
|
|
29
61
|
// Responses are trusted messages from our own host module; all network JSON is
|
|
30
62
|
// still decoded and schema-validated by the inventory client in this worker.
|
|
31
63
|
const transport = async (method, args, budget) => (await rpc(method, args, budget));
|
|
32
|
-
|
|
33
|
-
const inventory = createVersionInventoryClient({
|
|
64
|
+
const inventoryFor = (budget) => createVersionInventoryClient({
|
|
34
65
|
gatewayUrl: init.gatewayUrl,
|
|
35
66
|
ownerAddress: init.ownerAddress,
|
|
36
67
|
ownerSigner: {
|
|
37
|
-
signRequest: (params) => transport("signRequest", [params],
|
|
68
|
+
signRequest: (params) => transport("signRequest", [params], budget),
|
|
38
69
|
},
|
|
39
|
-
boundedOwnerSigner: (params) => transport("signRequest", [params],
|
|
70
|
+
boundedOwnerSigner: (params) => transport("signRequest", [params], budget),
|
|
40
71
|
fetch: async (input, request) => {
|
|
41
72
|
const url = typeof input === "string"
|
|
42
73
|
? input
|
|
@@ -49,7 +80,7 @@ function createService(init) {
|
|
|
49
80
|
method: request?.method,
|
|
50
81
|
headers: [...new Headers(request?.headers)],
|
|
51
82
|
},
|
|
52
|
-
],
|
|
83
|
+
], budget);
|
|
53
84
|
return new Response(new Uint8Array(response.body), {
|
|
54
85
|
status: response.status,
|
|
55
86
|
headers: response.headers,
|
|
@@ -66,7 +97,7 @@ function createService(init) {
|
|
|
66
97
|
return null;
|
|
67
98
|
}
|
|
68
99
|
let prior = pending;
|
|
69
|
-
let snapshot = await
|
|
100
|
+
let snapshot = await inventoryFor(budget).list(scope, {
|
|
70
101
|
budget,
|
|
71
102
|
signal: budget.signal,
|
|
72
103
|
});
|
|
@@ -80,7 +111,7 @@ function createService(init) {
|
|
|
80
111
|
// The owner retries the exact bytes and resolves the current registry head.
|
|
81
112
|
const published = await transport("publish", [prior], budget);
|
|
82
113
|
prior = { ...prior, expectedVersion: published.expectedVersion };
|
|
83
|
-
snapshot = await
|
|
114
|
+
snapshot = await inventoryFor(budget).list(scope, {
|
|
84
115
|
budget,
|
|
85
116
|
signal: budget.signal,
|
|
86
117
|
});
|
|
@@ -112,7 +143,7 @@ function createService(init) {
|
|
|
112
143
|
}
|
|
113
144
|
// Other devices do not share our Web Lock. Recheck registration visibility
|
|
114
145
|
// after authenticating bytes, including an unchanged but now failed intent.
|
|
115
|
-
const latest = await
|
|
146
|
+
const latest = await inventoryFor(budget).list(scope, {
|
|
116
147
|
budget,
|
|
117
148
|
signal: budget.signal,
|
|
118
149
|
});
|
|
@@ -135,23 +166,18 @@ function createService(init) {
|
|
|
135
166
|
// remaining allowance and the host's session-wide cancellation signal.
|
|
136
167
|
const boundedInventory = {
|
|
137
168
|
page: async (scope, options) => {
|
|
138
|
-
|
|
139
|
-
return inventory.page(scope, options);
|
|
169
|
+
return inventoryFor(options?.budget).page(scope, options);
|
|
140
170
|
},
|
|
141
171
|
list: async (scope, options) => {
|
|
142
|
-
activeBudget = options?.budget;
|
|
143
172
|
if (scope.startsWith("vana.system.") && options?.budget)
|
|
144
173
|
await reconcilePending(scope, options.budget);
|
|
145
|
-
return
|
|
174
|
+
return inventoryFor(options?.budget).list(scope, options);
|
|
146
175
|
},
|
|
147
176
|
listScopes: async (options) => {
|
|
148
|
-
|
|
149
|
-
return inventory.listScopes(options);
|
|
177
|
+
return inventoryFor(options?.budget).listScopes(options);
|
|
150
178
|
},
|
|
151
179
|
head: (scope, signal) => {
|
|
152
|
-
|
|
153
|
-
activeBudget = undefined;
|
|
154
|
-
return inventory.head(scope, signal);
|
|
180
|
+
return inventoryFor().head(scope, signal);
|
|
155
181
|
},
|
|
156
182
|
};
|
|
157
183
|
const reported = new Set();
|
|
@@ -199,11 +225,10 @@ function createService(init) {
|
|
|
199
225
|
},
|
|
200
226
|
decrypt: decryptBoundedAdditions,
|
|
201
227
|
async publish(scope, data, budget) {
|
|
202
|
-
activeBudget = budget;
|
|
203
228
|
const prior = await reconcilePending(scope, budget);
|
|
204
229
|
if (prior && JSON.stringify(prior.data) === JSON.stringify(data))
|
|
205
230
|
return prior.proof;
|
|
206
|
-
const snapshot = await
|
|
231
|
+
const snapshot = await inventoryFor(budget).list(scope, {
|
|
207
232
|
budget,
|
|
208
233
|
signal: budget.signal,
|
|
209
234
|
});
|
|
@@ -235,7 +260,10 @@ worker.onmessage = (event) => {
|
|
|
235
260
|
const request = pending.get(message.id);
|
|
236
261
|
pending.delete(message.id);
|
|
237
262
|
try {
|
|
238
|
-
request?.
|
|
263
|
+
if (request?.reservation)
|
|
264
|
+
request.reservation.settle(message.spent);
|
|
265
|
+
else
|
|
266
|
+
request?.budget?.recordSpent(message.spent);
|
|
239
267
|
request?.budget?.charge();
|
|
240
268
|
if (message.error)
|
|
241
269
|
request?.reject(message.budgetExceeded
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"additions-worker.js","sourceRoot":"","sources":["../src/additions-worker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"additions-worker.js","sourceRoot":"","sources":["../src/additions-worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -30907,6 +30907,31 @@ var AdditionsBudget = class {
|
|
|
30907
30907
|
this.used += bytes;
|
|
30908
30908
|
this.parent?.charge(bytes);
|
|
30909
30909
|
}
|
|
30910
|
+
/** Hold an in-flight host allowance before another request can spend it.
|
|
30911
|
+
* Settle once with the actual receipt, even after cancellation. */
|
|
30912
|
+
reserve(bytes) {
|
|
30913
|
+
this.charge(bytes);
|
|
30914
|
+
let settled = false;
|
|
30915
|
+
return {
|
|
30916
|
+
settle: (spent) => {
|
|
30917
|
+
if (settled)
|
|
30918
|
+
throw new Error("Additions reservation already settled");
|
|
30919
|
+
if (!Number.isSafeInteger(spent) || spent < 0)
|
|
30920
|
+
throw new AdditionsBudgetExceeded("Invalid reserved-byte receipt");
|
|
30921
|
+
settled = true;
|
|
30922
|
+
this.refund(bytes);
|
|
30923
|
+
this.recordSpent(spent);
|
|
30924
|
+
if (spent > bytes) {
|
|
30925
|
+
this.exhausted = true;
|
|
30926
|
+
throw new AdditionsBudgetExceeded("Reserved host allowance exceeded");
|
|
30927
|
+
}
|
|
30928
|
+
}
|
|
30929
|
+
};
|
|
30930
|
+
}
|
|
30931
|
+
refund(bytes) {
|
|
30932
|
+
this.used -= bytes;
|
|
30933
|
+
this.parent?.refund(bytes);
|
|
30934
|
+
}
|
|
30910
30935
|
recordSpent(bytes) {
|
|
30911
30936
|
if (!Number.isSafeInteger(bytes) || bytes < 0) {
|
|
30912
30937
|
this.exhausted = true;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opendatalabs/personal-server-ts-lite",
|
|
3
|
-
"version": "1.35.
|
|
3
|
+
"version": "1.35.2",
|
|
4
4
|
"description": "Browser/WebView Personal Server Lite runtime boundary",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"build-worker": "esbuild src/additions-worker.ts --bundle --platform=browser --format=esm --target=es2022 --outfile=dist/additions-worker.bundle.js && esbuild src/history-probe.worker.ts --bundle --platform=browser --format=esm --target=es2022 --outfile=dist/history-probe-worker.bundle.js"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@opendatalabs/personal-server-ts-core": "1.35.
|
|
41
|
+
"@opendatalabs/personal-server-ts-core": "1.35.2",
|
|
42
42
|
"@opendatalabs/vana-sdk": "3.23.0-pr.211.36da1d8",
|
|
43
43
|
"node-forge": "^1.4.0",
|
|
44
44
|
"viem": "^2.54.2",
|