@antseed/node 0.2.151 → 0.2.153
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/buyer-identity-context.d.ts +2 -0
- package/dist/buyer-identity-context.d.ts.map +1 -1
- package/dist/buyer-identity-context.js +1 -0
- package/dist/buyer-identity-context.js.map +1 -1
- package/dist/discovery/announcer.d.ts +2 -0
- package/dist/discovery/announcer.d.ts.map +1 -1
- package/dist/discovery/announcer.js +11 -9
- package/dist/discovery/announcer.js.map +1 -1
- package/dist/index.d.ts +10 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/metering/index.d.ts +1 -1
- package/dist/metering/index.d.ts.map +1 -1
- package/dist/metering/index.js.map +1 -1
- package/dist/metering/storage.d.ts +66 -6
- package/dist/metering/storage.d.ts.map +1 -1
- package/dist/metering/storage.js +112 -12
- package/dist/metering/storage.js.map +1 -1
- package/dist/node.d.ts +30 -0
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +93 -2
- package/dist/node.js.map +1 -1
- package/dist/p2p/identity.d.ts +7 -0
- package/dist/p2p/identity.d.ts.map +1 -1
- package/dist/p2p/identity.js +2 -2
- package/dist/p2p/identity.js.map +1 -1
- package/dist/payments/evm/ants-token-client.d.ts.map +1 -1
- package/dist/payments/evm/ants-token-client.js +3 -9
- package/dist/payments/evm/ants-token-client.js.map +1 -1
- package/dist/payments/evm/emissions-client.d.ts.map +1 -1
- package/dist/payments/evm/emissions-client.js +1 -3
- package/dist/payments/evm/emissions-client.js.map +1 -1
- package/dist/payments/evm/identity-client.d.ts.map +1 -1
- package/dist/payments/evm/identity-client.js +1 -3
- package/dist/payments/evm/identity-client.js.map +1 -1
- package/dist/payments/evm/seller-pools-client.d.ts +9 -0
- package/dist/payments/evm/seller-pools-client.d.ts.map +1 -1
- package/dist/payments/evm/seller-pools-client.js +23 -0
- package/dist/payments/evm/seller-pools-client.js.map +1 -1
- package/dist/payments/free-tier-delegation.d.ts +65 -0
- package/dist/payments/free-tier-delegation.d.ts.map +1 -0
- package/dist/payments/free-tier-delegation.js +145 -0
- package/dist/payments/free-tier-delegation.js.map +1 -0
- package/dist/payments/free-tier-program.d.ts +97 -0
- package/dist/payments/free-tier-program.d.ts.map +1 -0
- package/dist/payments/free-tier-program.js +267 -0
- package/dist/payments/free-tier-program.js.map +1 -0
- package/dist/payments/free-tier-stake-resolver.d.ts +79 -0
- package/dist/payments/free-tier-stake-resolver.d.ts.map +1 -0
- package/dist/payments/free-tier-stake-resolver.js +152 -0
- package/dist/payments/free-tier-stake-resolver.js.map +1 -0
- package/dist/payments/free-tier-stake.d.ts +101 -0
- package/dist/payments/free-tier-stake.d.ts.map +1 -0
- package/dist/payments/free-tier-stake.js +116 -0
- package/dist/payments/free-tier-stake.js.map +1 -0
- package/dist/payments/index.d.ts +7 -1
- package/dist/payments/index.d.ts.map +1 -1
- package/dist/payments/index.js +3 -0
- package/dist/payments/index.js.map +1 -1
- package/dist/payments/seller-free-tier-limiter.d.ts +124 -6
- package/dist/payments/seller-free-tier-limiter.d.ts.map +1 -1
- package/dist/payments/seller-free-tier-limiter.js +342 -32
- package/dist/payments/seller-free-tier-limiter.js.map +1 -1
- package/dist/payments/seller-free-usage-manager.d.ts.map +1 -1
- package/dist/payments/seller-free-usage-manager.js +5 -1
- package/dist/payments/seller-free-usage-manager.js.map +1 -1
- package/dist/seller-request-handler.d.ts.map +1 -1
- package/dist/seller-request-handler.js +105 -19
- package/dist/seller-request-handler.js.map +1 -1
- package/dist/storage/migrations/metering/004_add_free_tier_staked_usage.d.ts +3 -0
- package/dist/storage/migrations/metering/004_add_free_tier_staked_usage.d.ts.map +1 -0
- package/dist/storage/migrations/metering/004_add_free_tier_staked_usage.js +21 -0
- package/dist/storage/migrations/metering/004_add_free_tier_staked_usage.js.map +1 -0
- package/dist/storage/migrations/metering/005_add_free_tier_scope.d.ts +8 -0
- package/dist/storage/migrations/metering/005_add_free_tier_scope.d.ts.map +1 -0
- package/dist/storage/migrations/metering/005_add_free_tier_scope.js +23 -0
- package/dist/storage/migrations/metering/005_add_free_tier_scope.js.map +1 -0
- package/dist/storage/migrations/metering/index.d.ts.map +1 -1
- package/dist/storage/migrations/metering/index.js +3 -1
- package/dist/storage/migrations/metering/index.js.map +1 -1
- package/dist/utils/file-lock.d.ts +12 -0
- package/dist/utils/file-lock.d.ts.map +1 -0
- package/dist/utils/file-lock.js +58 -0
- package/dist/utils/file-lock.js.map +1 -0
- package/package.json +11 -3
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import Database from 'better-sqlite3';
|
|
2
|
+
const RETRY_MS = 25;
|
|
3
|
+
const queues = new Map();
|
|
4
|
+
/**
|
|
5
|
+
* Runs `task` while holding `<path>.lock`, so read-modify-write edits of one
|
|
6
|
+
* file from different processes (CLI, gateway, payments page) never drop
|
|
7
|
+
* each other's changes. Callers in the same process queue up behind each
|
|
8
|
+
* other first, and only the head of the queue competes for the lock file.
|
|
9
|
+
*/
|
|
10
|
+
export async function withFileLock(path, task, options = {}) {
|
|
11
|
+
const previous = queues.get(path) ?? Promise.resolve();
|
|
12
|
+
const run = previous.then(() => holdingLockFile(path, task, options));
|
|
13
|
+
const settled = run.then(() => undefined, () => undefined);
|
|
14
|
+
queues.set(path, settled);
|
|
15
|
+
try {
|
|
16
|
+
return await run;
|
|
17
|
+
}
|
|
18
|
+
finally {
|
|
19
|
+
if (queues.get(path) === settled)
|
|
20
|
+
queues.delete(path);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* The lock is an exclusive SQLite transaction on `<path>.lock`, which rests on
|
|
25
|
+
* the operating system's own file locks: only one process can hold it, and it
|
|
26
|
+
* is released the moment its holder exits or crashes. Nothing ever has to
|
|
27
|
+
* judge a lock stale or delete one, so a live holder can never lose it.
|
|
28
|
+
*/
|
|
29
|
+
async function holdingLockFile(path, task, options) {
|
|
30
|
+
const lockPath = `${path}.lock`;
|
|
31
|
+
const deadline = Date.now() + (options.timeoutMs ?? 10_000);
|
|
32
|
+
const db = new Database(lockPath, { timeout: 0 });
|
|
33
|
+
try {
|
|
34
|
+
for (;;) {
|
|
35
|
+
try {
|
|
36
|
+
db.exec('BEGIN EXCLUSIVE');
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
if (err.code !== 'SQLITE_BUSY')
|
|
41
|
+
throw err;
|
|
42
|
+
}
|
|
43
|
+
if (Date.now() >= deadline)
|
|
44
|
+
throw new Error(`Timed out waiting for ${lockPath}; another Antseed process is editing ${path}`);
|
|
45
|
+
await new Promise((resolve) => setTimeout(resolve, RETRY_MS));
|
|
46
|
+
}
|
|
47
|
+
try {
|
|
48
|
+
return await task();
|
|
49
|
+
}
|
|
50
|
+
finally {
|
|
51
|
+
db.exec('ROLLBACK');
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
finally {
|
|
55
|
+
db.close();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=file-lock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-lock.js","sourceRoot":"","sources":["../../src/utils/file-lock.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAOtC,MAAM,QAAQ,GAAG,EAAE,CAAC;AACpB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAI,IAAY,EAAE,IAAsB,EAAE,UAA2B,EAAE;IACvG,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IACvD,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC3D,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1B,IAAI,CAAC;QACH,OAAO,MAAM,GAAG,CAAC;IACnB,CAAC;YAAS,CAAC;QACT,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,OAAO;YAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,eAAe,CAAI,IAAY,EAAE,IAAsB,EAAE,OAAwB;IAC9F,MAAM,QAAQ,GAAG,GAAG,IAAI,OAAO,CAAC;IAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC;IAC5D,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,SAAS,CAAC;YACR,IAAI,CAAC;gBACH,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;gBAC3B,MAAM;YACR,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAK,GAAyB,CAAC,IAAI,KAAK,aAAa;oBAAE,MAAM,GAAG,CAAC;YACnE,CAAC;YACD,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,wCAAwC,IAAI,EAAE,CAAC,CAAC;YAC7H,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,EAAE,CAAC;QACtB,CAAC;gBAAS,CAAC;YACT,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;YAAS,CAAC;QACT,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@antseed/node",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.153",
|
|
4
4
|
"description": "Antseed Network protocol SDK — P2P inference marketplace",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -45,6 +45,14 @@
|
|
|
45
45
|
"import": "./dist/discovery/verifier-capabilities.js",
|
|
46
46
|
"types": "./dist/discovery/verifier-capabilities.d.ts"
|
|
47
47
|
},
|
|
48
|
+
"./free-tier-program": {
|
|
49
|
+
"import": "./dist/payments/free-tier-program.js",
|
|
50
|
+
"types": "./dist/payments/free-tier-program.d.ts"
|
|
51
|
+
},
|
|
52
|
+
"./free-tier-stake": {
|
|
53
|
+
"import": "./dist/payments/free-tier-stake.js",
|
|
54
|
+
"types": "./dist/payments/free-tier-stake.d.ts"
|
|
55
|
+
},
|
|
48
56
|
"./tee-status": {
|
|
49
57
|
"import": "./dist/verification/tee-status.js",
|
|
50
58
|
"types": "./dist/verification/tee-status.d.ts"
|
|
@@ -73,9 +81,9 @@
|
|
|
73
81
|
"ethers": "~6.16.0",
|
|
74
82
|
"node-datachannel": "^0.7.0",
|
|
75
83
|
"tokenx": "^1.3.0",
|
|
84
|
+
"@antseed/buyer-core": "0.1.28",
|
|
76
85
|
"@antseed/api-adapter": "0.1.53",
|
|
77
|
-
"@antseed/
|
|
78
|
-
"@antseed/protocol": "0.1.10"
|
|
86
|
+
"@antseed/protocol": "0.1.11"
|
|
79
87
|
},
|
|
80
88
|
"optionalDependencies": {
|
|
81
89
|
"keytar": "^7.9.0"
|