@opendatalabs/personal-server-ts-core 1.6.0 → 1.8.0
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/api/index.d.ts +53 -2
- package/dist/api/index.d.ts.map +1 -1
- package/dist/api/index.js +300 -25
- package/dist/api/index.js.map +1 -1
- package/dist/contracts/data.d.ts +30 -1
- package/dist/contracts/data.d.ts.map +1 -1
- package/dist/contracts/data.js +126 -33
- package/dist/contracts/data.js.map +1 -1
- package/dist/errors/catalog.d.ts +40 -0
- package/dist/errors/catalog.d.ts.map +1 -1
- package/dist/errors/catalog.js +53 -0
- package/dist/errors/catalog.js.map +1 -1
- package/dist/lineage/attestation.d.ts +42 -0
- package/dist/lineage/attestation.d.ts.map +1 -0
- package/dist/lineage/attestation.js +25 -0
- package/dist/lineage/attestation.js.map +1 -0
- package/dist/lineage/gateway.d.ts +105 -0
- package/dist/lineage/gateway.d.ts.map +1 -0
- package/dist/lineage/gateway.js +242 -0
- package/dist/lineage/gateway.js.map +1 -0
- package/dist/lineage/index.d.ts +5 -0
- package/dist/lineage/index.d.ts.map +1 -0
- package/dist/lineage/index.js +5 -0
- package/dist/lineage/index.js.map +1 -0
- package/dist/lineage/lineage.d.ts +141 -0
- package/dist/lineage/lineage.d.ts.map +1 -0
- package/dist/lineage/lineage.js +255 -0
- package/dist/lineage/lineage.js.map +1 -0
- package/dist/logging/access-log.d.ts +7 -1
- package/dist/logging/access-log.d.ts.map +1 -1
- package/dist/mcp/read-client.d.ts.map +1 -1
- package/dist/mcp/read-client.js +25 -1
- package/dist/mcp/read-client.js.map +1 -1
- package/dist/mcp/session.d.ts.map +1 -1
- package/dist/mcp/session.js +10 -1
- package/dist/mcp/session.js.map +1 -1
- package/dist/ports/index.d.ts +125 -0
- package/dist/ports/index.d.ts.map +1 -1
- package/dist/ports/index.js.map +1 -1
- package/dist/signing/request-signer.d.ts +2 -0
- package/dist/signing/request-signer.d.ts.map +1 -1
- package/dist/signing/request-signer.js +1 -0
- package/dist/signing/request-signer.js.map +1 -1
- package/dist/signing/signer.d.ts +8 -0
- package/dist/signing/signer.d.ts.map +1 -1
- package/dist/signing/signer.js +9 -0
- package/dist/signing/signer.js.map +1 -1
- package/dist/storage/adapters/index.d.ts +1 -1
- package/dist/storage/adapters/index.d.ts.map +1 -1
- package/dist/storage/adapters/index.js +1 -1
- package/dist/storage/adapters/index.js.map +1 -1
- package/dist/storage/adapters/vana.d.ts +2 -0
- package/dist/storage/adapters/vana.d.ts.map +1 -1
- package/dist/storage/adapters/vana.js +5 -1
- package/dist/storage/adapters/vana.js.map +1 -1
- package/dist/storage/index/types.d.ts +1 -0
- package/dist/storage/index/types.d.ts.map +1 -1
- package/dist/sync/data-point-feed.d.ts +35 -0
- package/dist/sync/data-point-feed.d.ts.map +1 -0
- package/dist/sync/data-point-feed.js +122 -0
- package/dist/sync/data-point-feed.js.map +1 -0
- package/dist/sync/data-point-id.d.ts +7 -0
- package/dist/sync/data-point-id.d.ts.map +1 -0
- package/dist/sync/data-point-id.js +16 -0
- package/dist/sync/data-point-id.js.map +1 -0
- package/dist/sync/delete-data-port.d.ts +50 -0
- package/dist/sync/delete-data-port.d.ts.map +1 -0
- package/dist/sync/delete-data-port.js +244 -0
- package/dist/sync/delete-data-port.js.map +1 -0
- package/dist/sync/engine/sync-manager.d.ts +14 -4
- package/dist/sync/engine/sync-manager.d.ts.map +1 -1
- package/dist/sync/engine/sync-manager.js +53 -8
- package/dist/sync/engine/sync-manager.js.map +1 -1
- package/dist/sync/index.d.ts +7 -0
- package/dist/sync/index.d.ts.map +1 -1
- package/dist/sync/index.js +7 -0
- package/dist/sync/index.js.map +1 -1
- package/dist/sync/pending-blob-deletions.d.ts +29 -0
- package/dist/sync/pending-blob-deletions.d.ts.map +1 -0
- package/dist/sync/pending-blob-deletions.js +116 -0
- package/dist/sync/pending-blob-deletions.js.map +1 -0
- package/dist/sync/scope-deletions.d.ts +155 -0
- package/dist/sync/scope-deletions.d.ts.map +1 -0
- package/dist/sync/scope-deletions.js +225 -0
- package/dist/sync/scope-deletions.js.map +1 -0
- package/dist/sync/tombstone.d.ts +27 -0
- package/dist/sync/tombstone.d.ts.map +1 -0
- package/dist/sync/tombstone.js +28 -0
- package/dist/sync/tombstone.js.map +1 -0
- package/dist/sync/workers/delete.d.ts +152 -31
- package/dist/sync/workers/delete.d.ts.map +1 -1
- package/dist/sync/workers/delete.js +461 -27
- package/dist/sync/workers/delete.js.map +1 -1
- package/dist/sync/workers/download.d.ts +38 -1
- package/dist/sync/workers/download.d.ts.map +1 -1
- package/dist/sync/workers/download.js +106 -2
- package/dist/sync/workers/download.js.map +1 -1
- package/dist/sync/workers/upload.d.ts +41 -7
- package/dist/sync/workers/upload.d.ts.map +1 -1
- package/dist/sync/workers/upload.js +147 -21
- package/dist/sync/workers/upload.js.map +1 -1
- package/dist/write/attribution.d.ts +6 -4
- package/dist/write/attribution.d.ts.map +1 -1
- package/dist/write/attribution.js +51 -3
- package/dist/write/attribution.js.map +1 -1
- package/package.json +5 -1
package/dist/mcp/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/mcp/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAM9D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/mcp/session.ts"],"names":[],"mappings":"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"}
|
package/dist/ports/index.d.ts
CHANGED
|
@@ -99,6 +99,14 @@ export interface DataStoragePort extends RuntimeStoragePort {
|
|
|
99
99
|
* Used by sync delete-reconciliation to drop a copy the gateway reports as deleted.
|
|
100
100
|
*/
|
|
101
101
|
deleteByFileId(fileId: string): Promise<boolean>;
|
|
102
|
+
/**
|
|
103
|
+
* Delete a single version (index entry + its local blob + block sidecars)
|
|
104
|
+
* by its DPv2 identity (scope, collectedAt). Returns true if a local copy
|
|
105
|
+
* existed and was removed, false if none was present (no-op). Used by sync
|
|
106
|
+
* deletion reconciliation to drop the exact versions a gateway tombstone
|
|
107
|
+
* covers while leaving a newer local re-ingest in place.
|
|
108
|
+
*/
|
|
109
|
+
deleteVersion(scope: string, collectedAt: string): Promise<boolean>;
|
|
102
110
|
/**
|
|
103
111
|
* Drop a single unsynced index entry by path, WITHOUT touching any blob.
|
|
104
112
|
* Used by the upload worker to evict an orphaned row whose local payload
|
|
@@ -111,4 +119,121 @@ export interface DataStoragePort extends RuntimeStoragePort {
|
|
|
111
119
|
export interface RuntimeAvailabilityPort {
|
|
112
120
|
isAvailable(): boolean | Promise<boolean>;
|
|
113
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* A gateway data-point row as seen by sync, including the deletion marker the
|
|
124
|
+
* plain SDK `DataPointRecord` does not model. `deletedAt` is null while the
|
|
125
|
+
* point is live and an ISO timestamp once the owner has tombstoned it.
|
|
126
|
+
*/
|
|
127
|
+
export interface DataPointFeedRecord extends DataPointRecord {
|
|
128
|
+
deletedAt: string | null;
|
|
129
|
+
}
|
|
130
|
+
export interface DataPointFeedListOptions extends ListDataPointsOptions {
|
|
131
|
+
/**
|
|
132
|
+
* Ask the gateway to include tombstoned rows (with `deletedAt` set). Sync
|
|
133
|
+
* always passes true: deletions must reach every replica or the local copy
|
|
134
|
+
* would be re-uploaded and resurrect the point.
|
|
135
|
+
*/
|
|
136
|
+
includeDeleted?: boolean;
|
|
137
|
+
}
|
|
138
|
+
export interface DataPointFeedListResult {
|
|
139
|
+
dataPoints: DataPointFeedRecord[];
|
|
140
|
+
cursor: string | null;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Deletion-aware view of the gateway data-point registry. Mirrors the SDK
|
|
144
|
+
* `GatewayClient` listing/lookup shape but surfaces `deletedAt`, which the
|
|
145
|
+
* SDK client (3.14) neither requests (`includeDeleted`) nor types.
|
|
146
|
+
*/
|
|
147
|
+
export interface DataPointFeedPort {
|
|
148
|
+
listDataPointsByOwner(owner: string, cursor: string | null, options?: DataPointFeedListOptions): Promise<DataPointFeedListResult>;
|
|
149
|
+
/**
|
|
150
|
+
* Current registry row for (owner, scope), deleted or not. Null when the
|
|
151
|
+
* point was never registered. A tombstoned point comes back with
|
|
152
|
+
* `deletedAt` set (never as a thrown 410).
|
|
153
|
+
*/
|
|
154
|
+
getDataPoint(input: {
|
|
155
|
+
ownerAddress: string;
|
|
156
|
+
scope: string;
|
|
157
|
+
}): Promise<DataPointFeedRecord | null>;
|
|
158
|
+
}
|
|
159
|
+
export type TombstoneOutcome = {
|
|
160
|
+
status: "tombstoned";
|
|
161
|
+
dataPointId: string;
|
|
162
|
+
/** The tombstone's own version (previous current + 1). */
|
|
163
|
+
version: string;
|
|
164
|
+
deletedAt: string | null;
|
|
165
|
+
} | {
|
|
166
|
+
status: "already-deleted";
|
|
167
|
+
dataPointId: string;
|
|
168
|
+
/**
|
|
169
|
+
* The winning tombstone's registry version as the gateway reports it
|
|
170
|
+
* (possibly higher than the version this replica attempted), or null
|
|
171
|
+
* when the gateway did not say. Null means the covered key range is
|
|
172
|
+
* unknown, so callers defer enumeration rather than guess.
|
|
173
|
+
*/
|
|
174
|
+
version: string | null;
|
|
175
|
+
deletedAt: string | null;
|
|
176
|
+
} | {
|
|
177
|
+
/** The gateway has no row for (owner, scope): nothing to tombstone. */
|
|
178
|
+
status: "not-registered";
|
|
179
|
+
dataPointId: string;
|
|
180
|
+
};
|
|
181
|
+
export interface DeleteBlobVersionsOutcome {
|
|
182
|
+
/** Versions whose blob existed and was deleted. */
|
|
183
|
+
deleted: string[];
|
|
184
|
+
/** Versions with no blob in storage (404): nothing to do, counts as done. */
|
|
185
|
+
missing: string[];
|
|
186
|
+
/** Versions whose delete failed (rate limit, 5xx, network); retry later. */
|
|
187
|
+
failed: Array<{
|
|
188
|
+
version: string;
|
|
189
|
+
error: string;
|
|
190
|
+
}>;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Remote side of durable deletion. `tombstone` is the durable fact (an
|
|
194
|
+
* owner-signed AddData with the tombstone commitments, recorded by the
|
|
195
|
+
* gateway); `deleteBlobVersions` removes the ciphertext of exactly the given
|
|
196
|
+
* versions, one exact-key delete per version, never a scope-wide prefix: a
|
|
197
|
+
* re-add registered after the tombstone lives under a higher version key and
|
|
198
|
+
* is untouched by construction. Callers MUST run tombstone first: a blob
|
|
199
|
+
* delete without a tombstone leaves a live registry row every replica would
|
|
200
|
+
* 404 on and then wedge.
|
|
201
|
+
*/
|
|
202
|
+
export interface DeleteDataPort {
|
|
203
|
+
tombstone(scope: string): Promise<TombstoneOutcome>;
|
|
204
|
+
deleteBlobVersions(scope: string, versions: string[]): Promise<DeleteBlobVersionsOutcome>;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Blob deletion work still to do after a tombstone landed, in one of three
|
|
208
|
+
* shapes:
|
|
209
|
+
* - an exact key: `{ scope, version }`;
|
|
210
|
+
* - a contiguous version range `{ scope, version: null, range }` (both
|
|
211
|
+
* bounds inclusive, decimal strings): the registry versions a tombstone
|
|
212
|
+
* covers, kept as bounds so a large tombstone version never has to be
|
|
213
|
+
* materialised key by key; passes take keys from the head and advance
|
|
214
|
+
* `from`;
|
|
215
|
+
* - an unexpanded marker `{ scope, version: null }` (no range): the gateway
|
|
216
|
+
* did not report the tombstone's version, so the covered range is not
|
|
217
|
+
* known yet; the retry expands it once the registry answers.
|
|
218
|
+
*/
|
|
219
|
+
export interface PendingBlobDeletion {
|
|
220
|
+
scope: string;
|
|
221
|
+
version: string | null;
|
|
222
|
+
range?: {
|
|
223
|
+
from: string;
|
|
224
|
+
to: string;
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Durable retry marker for blob deletions that could not complete AFTER the
|
|
229
|
+
* gateway tombstone landed (storage failure, rate limit, or a batch larger
|
|
230
|
+
* than one pass may send). The tombstone already makes the deletion stick;
|
|
231
|
+
* this only exists so later sync cycles finish removing the ciphertext, key
|
|
232
|
+
* by key.
|
|
233
|
+
*/
|
|
234
|
+
export interface PendingBlobDeletionStore {
|
|
235
|
+
list(): Promise<PendingBlobDeletion[]>;
|
|
236
|
+
add(keys: PendingBlobDeletion[]): Promise<void>;
|
|
237
|
+
remove(keys: PendingBlobDeletion[]): Promise<void>;
|
|
238
|
+
}
|
|
114
239
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":"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"}
|
package/dist/ports/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":";AAsTA,4EAA4E;AAC5E,wEAAwE;AACxE,qEAAqE;AACrE,2EAA2E;AAC3E,4EAA4E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-signer.d.ts","sourceRoot":"","sources":["../../src/signing/request-signer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,MAAM,EAAE;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"request-signer.d.ts","sourceRoot":"","sources":["../../src/signing/request-signer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE/D,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,MAAM,EAAE;QAClB,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,UAAU,CAAC;QAClB,uEAAuE;QACvE,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,GAAG,aAAa,CAazE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-signer.js","sourceRoot":"","sources":["../../src/signing/request-signer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"request-signer.js","sourceRoot":"","sources":["../../src/signing/request-signer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAcvE;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAsB;IACxD,OAAO;QACL,KAAK,CAAC,WAAW,CAAC,MAAM;YACtB,OAAO,qBAAqB,CAAC;gBAC3B,WAAW,EAAE,CAAC,OAAe,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;gBAC9D,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,GAAG,EAAE,MAAM,CAAC,GAAG;gBACf,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/signing/signer.d.ts
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import type { ServerAccount } from "../keys/server-account.js";
|
|
6
6
|
import type { GatewayConfig } from "../schemas/server-config.js";
|
|
7
7
|
import { type GrantRegistrationMessage, type GrantRevocationMessage, type AddDataMessage, type RecordDataAccessMessage } from "@opendatalabs/vana-sdk/browser";
|
|
8
|
+
import { type LineageAttestationMessage } from "../lineage/attestation.js";
|
|
8
9
|
export interface ServerSigner {
|
|
9
10
|
/** Address that signs (the server account). */
|
|
10
11
|
readonly address: `0x${string}`;
|
|
@@ -27,6 +28,13 @@ export interface ServerSigner {
|
|
|
27
28
|
* recordId is a per-event bytes32 the contract pins to prevent replay.
|
|
28
29
|
*/
|
|
29
30
|
signRecordDataAccess(msg: RecordDataAccessMessage): Promise<`0x${string}`>;
|
|
31
|
+
/**
|
|
32
|
+
* LineageAttestation (derivative data): binds a derivative's source list
|
|
33
|
+
* to the exact (owner, scope, version, dataHash) it is registered with,
|
|
34
|
+
* under the DataRegistry domain. The gateway requires it on POST /v1/data
|
|
35
|
+
* with `lineage`; see lineage/attestation.ts for why.
|
|
36
|
+
*/
|
|
37
|
+
signLineageAttestation(msg: LineageAttestationMessage): Promise<`0x${string}`>;
|
|
30
38
|
}
|
|
31
39
|
export declare function createServerSigner(account: ServerAccount, gatewayConfig: GatewayConfig): ServerSigner;
|
|
32
40
|
//# sourceMappingURL=signer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../src/signing/signer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAQL,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC7B,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../src/signing/signer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAQL,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC7B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAEL,KAAK,yBAAyB,EAC/B,MAAM,2BAA2B,CAAC;AAEnC,MAAM,WAAW,YAAY;IAC3B,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;IAChC,qBAAqB,CAAC,GAAG,EAAE,wBAAwB,GAAG,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC;IAC7E,mBAAmB,CAAC,GAAG,EAAE,sBAAsB,GAAG,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC;IACzE;;;;;OAKG;IACH,WAAW,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC;IACzD;;;;;;;;OAQG;IACH,oBAAoB,CAAC,GAAG,EAAE,uBAAuB,GAAG,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC;IAC3E;;;;;OAKG;IACH,sBAAsB,CACpB,GAAG,EAAE,yBAAyB,GAC7B,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC;CAC3B;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,aAAa,EACtB,aAAa,EAAE,aAAa,GAC3B,YAAY,CA6Dd"}
|
package/dist/signing/signer.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Uses the ServerAccount's derived key for all signatures.
|
|
4
4
|
*/
|
|
5
5
|
import { grantRegistrationDomain, grantRevocationDomain, dataRegistryDomain, GRANT_REGISTRATION_TYPES, GRANT_REVOCATION_TYPES, ADD_DATA_TYPES, RECORD_DATA_ACCESS_TYPES, } from "@opendatalabs/vana-sdk/browser";
|
|
6
|
+
import { LINEAGE_ATTESTATION_TYPES, } from "../lineage/attestation.js";
|
|
6
7
|
export function createServerSigner(account, gatewayConfig) {
|
|
7
8
|
return {
|
|
8
9
|
address: account.address,
|
|
@@ -34,6 +35,14 @@ export function createServerSigner(account, gatewayConfig) {
|
|
|
34
35
|
message: msg,
|
|
35
36
|
});
|
|
36
37
|
},
|
|
38
|
+
async signLineageAttestation(msg) {
|
|
39
|
+
return account.signTypedData({
|
|
40
|
+
domain: dataRegistryDomain(gatewayConfig),
|
|
41
|
+
types: LINEAGE_ATTESTATION_TYPES,
|
|
42
|
+
primaryType: "LineageAttestation",
|
|
43
|
+
message: { ...msg, sources: [...msg.sources] },
|
|
44
|
+
});
|
|
45
|
+
},
|
|
37
46
|
async signRecordDataAccess(msg) {
|
|
38
47
|
return account.signTypedData({
|
|
39
48
|
domain: dataRegistryDomain(gatewayConfig),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/signing/signer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,wBAAwB,EACxB,sBAAsB,EACtB,cAAc,EACd,wBAAwB,GAKzB,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/signing/signer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,wBAAwB,EACxB,sBAAsB,EACtB,cAAc,EACd,wBAAwB,GAKzB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,yBAAyB,GAE1B,MAAM,2BAA2B,CAAC;AAmCnC,MAAM,UAAU,kBAAkB,CAChC,OAAsB,EACtB,aAA4B;IAE5B,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,OAAO;QAExB,KAAK,CAAC,qBAAqB,CACzB,GAA6B;YAE7B,OAAO,OAAO,CAAC,aAAa,CAAC;gBAC3B,MAAM,EAAE,uBAAuB,CAAC,aAAa,CAAC;gBAC9C,KAAK,EAAE,wBAAwB;gBAC/B,WAAW,EAAE,mBAAmB;gBAChC,iDAAiD;gBACjD,iEAAiE;gBACjE,8DAA8D;gBAC9D,0DAA0D;gBAC1D,OAAO,EAAE,GAAyC;aACnD,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,mBAAmB,CACvB,GAA2B;YAE3B,OAAO,OAAO,CAAC,aAAa,CAAC;gBAC3B,MAAM,EAAE,qBAAqB,CAAC,aAAa,CAAC;gBAC5C,KAAK,EAAE,sBAAsB;gBAC7B,WAAW,EAAE,iBAAiB;gBAC9B,OAAO,EAAE,GAAyC;aACnD,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,WAAW,CAAC,GAAmB;YACnC,OAAO,OAAO,CAAC,aAAa,CAAC;gBAC3B,MAAM,EAAE,kBAAkB,CAAC,aAAa,CAAC;gBACzC,KAAK,EAAE,cAAc;gBACrB,WAAW,EAAE,SAAS;gBACtB,OAAO,EAAE,GAAyC;aACnD,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,sBAAsB,CAC1B,GAA8B;YAE9B,OAAO,OAAO,CAAC,aAAa,CAAC;gBAC3B,MAAM,EAAE,kBAAkB,CAAC,aAAa,CAAC;gBACzC,KAAK,EAAE,yBAAyB;gBAChC,WAAW,EAAE,oBAAoB;gBACjC,OAAO,EAAE,EAAE,GAAG,GAAG,EAAE,OAAO,EAAE,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE;aAC/C,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,oBAAoB,CACxB,GAA4B;YAE5B,OAAO,OAAO,CAAC,aAAa,CAAC;gBAC3B,MAAM,EAAE,kBAAkB,CAAC,aAAa,CAAC;gBACzC,KAAK,EAAE,wBAAwB;gBAC/B,WAAW,EAAE,kBAAkB;gBAC/B,OAAO,EAAE,GAAyC;aACnD,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export type { StorageAdapter } from "./interface.js";
|
|
2
2
|
export { createSdkStorageAdapter, type SdkStorageProvider, type SdkStorageProviderFactory, } from "./sdk.js";
|
|
3
|
-
export { createVanaSyncStorageAdapter } from "./vana.js";
|
|
3
|
+
export { createVanaSyncStorageAdapter, resolveVanaStorageEndpoint, } from "./vana.js";
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/adapters/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EACL,uBAAuB,EACvB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,GAC/B,MAAM,UAAU,CAAC;AAClB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/adapters/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EACL,uBAAuB,EACvB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,GAC/B,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,WAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/storage/adapters/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,uBAAuB,GAGxB,MAAM,UAAU,CAAC;AAClB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/storage/adapters/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,uBAAuB,GAGxB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,WAAW,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { ServerConfig } from "../../schemas/server-config.js";
|
|
2
2
|
import type { ServerAccount } from "../../keys/server-account.js";
|
|
3
3
|
import type { StorageAdapter } from "./interface.js";
|
|
4
|
+
/** Storage base URL the sync adapter targets (config override or SDK default). */
|
|
5
|
+
export declare function resolveVanaStorageEndpoint(config: ServerConfig): string;
|
|
4
6
|
export declare function createVanaSyncStorageAdapter(params: {
|
|
5
7
|
config: ServerConfig;
|
|
6
8
|
serverOwner: `0x${string}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vana.d.ts","sourceRoot":"","sources":["../../../src/storage/adapters/vana.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAQrD,wBAAgB,4BAA4B,CAAC,MAAM,EAAE;IACnD,MAAM,EAAE,YAAY,CAAC;IACrB,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC;CAC9B,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"vana.d.ts","sourceRoot":"","sources":["../../../src/storage/adapters/vana.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAQrD,kFAAkF;AAClF,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAIvE;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE;IACnD,MAAM,EAAE,YAAY,CAAC;IACrB,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC;CAC9B,GAAG,cAAc,CAyCjB"}
|
|
@@ -4,8 +4,12 @@ import { createSdkStorageAdapter } from "./sdk.js";
|
|
|
4
4
|
// so urlForKey resolves to the same host the provider uploads to when no
|
|
5
5
|
// explicit apiUrl is configured.
|
|
6
6
|
const DEFAULT_VANA_STORAGE_ENDPOINT = "https://storage.vana.org";
|
|
7
|
+
/** Storage base URL the sync adapter targets (config override or SDK default). */
|
|
8
|
+
export function resolveVanaStorageEndpoint(config) {
|
|
9
|
+
return (config.storage.config.vana?.apiUrl ?? DEFAULT_VANA_STORAGE_ENDPOINT).replace(/\/+$/, "");
|
|
10
|
+
}
|
|
7
11
|
export function createVanaSyncStorageAdapter(params) {
|
|
8
|
-
const endpoint = (params.config
|
|
12
|
+
const endpoint = resolveVanaStorageEndpoint(params.config);
|
|
9
13
|
// The SDK's vana-storage provider lowercases the owner before building the
|
|
10
14
|
// blob path (and its URL validator compares against the lowercased form),
|
|
11
15
|
// so urlForKey MUST lowercase too or the reconstructed download URL won't
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vana.js","sourceRoot":"","sources":["../../../src/storage/adapters/vana.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAI3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAEnD,6EAA6E;AAC7E,yEAAyE;AACzE,iCAAiC;AACjC,MAAM,6BAA6B,GAAG,0BAA0B,CAAC;AAEjE,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"vana.js","sourceRoot":"","sources":["../../../src/storage/adapters/vana.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAI3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAEnD,6EAA6E;AAC7E,yEAAyE;AACzE,iCAAiC;AACjC,MAAM,6BAA6B,GAAG,0BAA0B,CAAC;AAEjE,kFAAkF;AAClF,MAAM,UAAU,0BAA0B,CAAC,MAAoB;IAC7D,OAAO,CACL,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,6BAA6B,CACpE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,MAI5C;IACC,MAAM,QAAQ,GAAG,0BAA0B,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC3D,2EAA2E;IAC3E,0EAA0E;IAC1E,0EAA0E;IAC1E,iCAAiC;IACjC,2EAA2E;IAC3E,wEAAwE;IACxE,qEAAqE;IACrE,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,WAAW,EAAmB,CAAC;IAChE,8EAA8E;IAC9E,0EAA0E;IAC1E,yEAAyE;IACzE,0CAA0C;IAC1C,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;IAE9C,OAAO,uBAAuB,CAC5B,yBAAyB,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM;QACnD,OAAO;QACP,YAAY,EAAE,KAAK;QACnB,MAAM,EAAE;YACN,OAAO,EAAE,MAAM,CAAC,aAAa,CAAC,OAAO;YACrC,WAAW,EAAE,CAAC,OAAe,EAAE,EAAE,CAC/B,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,CAAC;SAC5C;KACF,CAAC,EACF;QACE,+CAA+C;QAC/C,4FAA4F;QAC5F,sEAAsE;QACtE,4DAA4D;QAC5D,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;YACjB,MAAM,OAAO,GAAG,GAAG;iBAChB,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;iBAC7C,IAAI,CAAC,GAAG,CAAC,CAAC;YACb,OAAO,GAAG,QAAQ,cAAc,OAAO,UAAU,KAAK,IAAI,OAAO,EAAE,CAAC;QACtE,CAAC;KACF,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -9,6 +9,7 @@ export interface IndexEntry {
|
|
|
9
9
|
sizeBytes: number;
|
|
10
10
|
version: number;
|
|
11
11
|
dataPointId: string | null;
|
|
12
|
+
afterTombstoneVersion?: number | null;
|
|
12
13
|
}
|
|
13
14
|
export type NewIndexEntry = Omit<IndexEntry, "id" | "createdAt" | "schemaId" | "version" | "dataPointId"> & {
|
|
14
15
|
schemaId?: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/storage/index/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAIlB,OAAO,EAAE,MAAM,CAAC;IAGhB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/storage/index/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAIlB,OAAO,EAAE,MAAM,CAAC;IAGhB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAO3B,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvC;AAED,MAAM,MAAM,aAAa,GAAG,IAAI,CAC9B,UAAU,EACV,IAAI,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,aAAa,CAC5D,GAAG;IACF,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAIzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAClC,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { DataPointFeedListOptions, DataPointFeedPort } from "../ports/index.js";
|
|
2
|
+
export interface GatewayDataPointFeedOptions {
|
|
3
|
+
/** Gateway base URL, e.g. https://dp-rpc.vana.org */
|
|
4
|
+
gatewayUrl: string;
|
|
5
|
+
/** Test seam; defaults to the global fetch. */
|
|
6
|
+
fetch?: typeof fetch;
|
|
7
|
+
/** Test seam for the fallback `deletedAt` when a 410 body carries none. */
|
|
8
|
+
now?: () => Date;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Deletion-aware gateway feed over the same REST endpoints the SDK client
|
|
12
|
+
* uses, plus the `includeDeleted=true` query the SDK does not expose:
|
|
13
|
+
*
|
|
14
|
+
* GET {gateway}/v1/data?user={owner}&includeDeleted=true[&cursor=..][&since=..][&limit=..]
|
|
15
|
+
* GET {gateway}/v1/data/{dataPointId}?includeDeleted=true
|
|
16
|
+
*
|
|
17
|
+
* Rows come back with `deletedAt` (null while live). A gateway that answers
|
|
18
|
+
* the single lookup of a tombstoned point with 410 instead of a row is
|
|
19
|
+
* normalised into a deleted record so callers never have to catch a 410.
|
|
20
|
+
*/
|
|
21
|
+
export declare function createGatewayDataPointFeed(options: GatewayDataPointFeedOptions): DataPointFeedPort;
|
|
22
|
+
/**
|
|
23
|
+
* Adapter from the SDK `GatewayClient` listing to the feed shape. Used when a
|
|
24
|
+
* host wires no dedicated feed: deletions are only visible if the gateway
|
|
25
|
+
* happens to include `deletedAt` without being asked, so this is a
|
|
26
|
+
* degraded mode. Prefer `createGatewayDataPointFeed`.
|
|
27
|
+
*/
|
|
28
|
+
export declare function feedFromGatewayClient(gateway: {
|
|
29
|
+
listDataPointsByOwner(owner: string, cursor: string | null, options?: DataPointFeedListOptions): Promise<{
|
|
30
|
+
dataPoints: unknown[];
|
|
31
|
+
cursor: string | null;
|
|
32
|
+
}>;
|
|
33
|
+
getDataPoint(dataPointId: string): Promise<unknown | null>;
|
|
34
|
+
}): DataPointFeedPort;
|
|
35
|
+
//# sourceMappingURL=data-point-feed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-point-feed.d.ts","sourceRoot":"","sources":["../../src/sync/data-point-feed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EAExB,iBAAiB,EAElB,MAAM,mBAAmB,CAAC;AAI3B,MAAM,WAAW,2BAA2B;IAC1C,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,2EAA2E;IAC3E,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,2BAA2B,GACnC,iBAAiB,CAuEnB;AA8BD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE;IAC7C,qBAAqB,CACnB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC;QAAE,UAAU,EAAE,OAAO,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAC7D,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;CAC5D,GAAG,iBAAiB,CAqBpB"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { computeDataPointId } from "./data-point-id.js";
|
|
2
|
+
import { TOMBSTONE_DATA_HASH, TOMBSTONE_METADATA_HASH } from "./tombstone.js";
|
|
3
|
+
/**
|
|
4
|
+
* Deletion-aware gateway feed over the same REST endpoints the SDK client
|
|
5
|
+
* uses, plus the `includeDeleted=true` query the SDK does not expose:
|
|
6
|
+
*
|
|
7
|
+
* GET {gateway}/v1/data?user={owner}&includeDeleted=true[&cursor=..][&since=..][&limit=..]
|
|
8
|
+
* GET {gateway}/v1/data/{dataPointId}?includeDeleted=true
|
|
9
|
+
*
|
|
10
|
+
* Rows come back with `deletedAt` (null while live). A gateway that answers
|
|
11
|
+
* the single lookup of a tombstoned point with 410 instead of a row is
|
|
12
|
+
* normalised into a deleted record so callers never have to catch a 410.
|
|
13
|
+
*/
|
|
14
|
+
export function createGatewayDataPointFeed(options) {
|
|
15
|
+
const base = options.gatewayUrl.replace(/\/+$/, "");
|
|
16
|
+
const fetchImpl = options.fetch ?? globalThis.fetch;
|
|
17
|
+
const now = options.now ?? (() => new Date());
|
|
18
|
+
return {
|
|
19
|
+
async listDataPointsByOwner(owner, cursor, listOptions) {
|
|
20
|
+
const params = new URLSearchParams({ user: owner });
|
|
21
|
+
if (cursor !== null)
|
|
22
|
+
params.set("cursor", cursor);
|
|
23
|
+
if (listOptions?.since)
|
|
24
|
+
params.set("since", listOptions.since);
|
|
25
|
+
if (listOptions?.limit !== undefined) {
|
|
26
|
+
params.set("limit", String(listOptions.limit));
|
|
27
|
+
}
|
|
28
|
+
if (listOptions?.includeDeleted)
|
|
29
|
+
params.set("includeDeleted", "true");
|
|
30
|
+
const res = await fetchImpl(`${base}/v1/data?${params.toString()}`);
|
|
31
|
+
if (!res.ok) {
|
|
32
|
+
throw new Error(`Gateway error: ${res.status} ${res.statusText}`);
|
|
33
|
+
}
|
|
34
|
+
const envelope = (await res.json());
|
|
35
|
+
const nextCursor = envelope.pagination?.hasMore === false
|
|
36
|
+
? null
|
|
37
|
+
: (envelope.pagination?.nextCursor ?? null);
|
|
38
|
+
const rows = envelope.data?.dataPoints ?? [];
|
|
39
|
+
return {
|
|
40
|
+
dataPoints: rows.map((row) => normalizeRecord(row)),
|
|
41
|
+
cursor: nextCursor,
|
|
42
|
+
};
|
|
43
|
+
},
|
|
44
|
+
async getDataPoint(input) {
|
|
45
|
+
const dataPointId = computeDataPointId(input.ownerAddress, input.scope);
|
|
46
|
+
const res = await fetchImpl(`${base}/v1/data/${dataPointId}?includeDeleted=true`);
|
|
47
|
+
if (res.status === 404)
|
|
48
|
+
return null;
|
|
49
|
+
if (res.status === 410) {
|
|
50
|
+
// Tombstoned. Prefer the row the gateway echoes in the 410 body;
|
|
51
|
+
// otherwise synthesise the minimum a caller needs to treat the point
|
|
52
|
+
// as deleted "at or before now".
|
|
53
|
+
const body = await res.json().catch(() => null);
|
|
54
|
+
const echoed = unwrap(body);
|
|
55
|
+
const deletedAt = stringField(echoed, "deletedAt") ?? now().toISOString();
|
|
56
|
+
return {
|
|
57
|
+
id: dataPointId,
|
|
58
|
+
ownerAddress: input.ownerAddress,
|
|
59
|
+
scope: input.scope,
|
|
60
|
+
dataHash: stringField(echoed, "dataHash") ?? TOMBSTONE_DATA_HASH,
|
|
61
|
+
metadataHash: stringField(echoed, "metadataHash") ?? TOMBSTONE_METADATA_HASH,
|
|
62
|
+
expectedVersion: stringField(echoed, "expectedVersion") ?? "0",
|
|
63
|
+
addedAt: stringField(echoed, "addedAt") ?? deletedAt,
|
|
64
|
+
deletedAt,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
if (!res.ok) {
|
|
68
|
+
throw new Error(`Gateway error: ${res.status} ${res.statusText}`);
|
|
69
|
+
}
|
|
70
|
+
const body = await res.json();
|
|
71
|
+
return normalizeRecord(unwrap(body));
|
|
72
|
+
},
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
// The gateway wraps single-resource responses as `{ data: {...} }` (the SDK's
|
|
76
|
+
// unwrapEnvelope); tolerate a bare object too.
|
|
77
|
+
function unwrap(body) {
|
|
78
|
+
if (typeof body !== "object" || body === null)
|
|
79
|
+
return null;
|
|
80
|
+
const record = body;
|
|
81
|
+
if (typeof record.data === "object" && record.data !== null) {
|
|
82
|
+
return record.data;
|
|
83
|
+
}
|
|
84
|
+
return record;
|
|
85
|
+
}
|
|
86
|
+
function stringField(record, key) {
|
|
87
|
+
const value = record?.[key];
|
|
88
|
+
return typeof value === "string" ? value : undefined;
|
|
89
|
+
}
|
|
90
|
+
function normalizeRecord(row) {
|
|
91
|
+
const record = (row ?? {});
|
|
92
|
+
const deletedAt = record.deletedAt;
|
|
93
|
+
return {
|
|
94
|
+
...record,
|
|
95
|
+
deletedAt: typeof deletedAt === "string" ? deletedAt : null,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Adapter from the SDK `GatewayClient` listing to the feed shape. Used when a
|
|
100
|
+
* host wires no dedicated feed: deletions are only visible if the gateway
|
|
101
|
+
* happens to include `deletedAt` without being asked, so this is a
|
|
102
|
+
* degraded mode. Prefer `createGatewayDataPointFeed`.
|
|
103
|
+
*/
|
|
104
|
+
export function feedFromGatewayClient(gateway) {
|
|
105
|
+
return {
|
|
106
|
+
async listDataPointsByOwner(owner, cursor, listOptions) {
|
|
107
|
+
const { includeDeleted: _includeDeleted, ...sdkOptions } = listOptions ?? {};
|
|
108
|
+
const result = Object.keys(sdkOptions).length > 0
|
|
109
|
+
? await gateway.listDataPointsByOwner(owner, cursor, sdkOptions)
|
|
110
|
+
: await gateway.listDataPointsByOwner(owner, cursor);
|
|
111
|
+
return {
|
|
112
|
+
dataPoints: result.dataPoints.map((row) => normalizeRecord(row)),
|
|
113
|
+
cursor: result.cursor,
|
|
114
|
+
};
|
|
115
|
+
},
|
|
116
|
+
async getDataPoint(input) {
|
|
117
|
+
const row = await gateway.getDataPoint(computeDataPointId(input.ownerAddress, input.scope));
|
|
118
|
+
return row === null ? null : normalizeRecord(row);
|
|
119
|
+
},
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=data-point-feed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-point-feed.js","sourceRoot":"","sources":["../../src/sync/data-point-feed.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deterministic DPv2 data-point id: `keccak256(abi.encode(owner, scope))`,
|
|
3
|
+
* the same primary key DataRegistryV2 and the gateway use. Every version of
|
|
4
|
+
* a scope shares this id; the registry row carries the current version.
|
|
5
|
+
*/
|
|
6
|
+
export declare function computeDataPointId(ownerAddress: string, scope: string): `0x${string}`;
|
|
7
|
+
//# sourceMappingURL=data-point-id.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-point-id.d.ts","sourceRoot":"","sources":["../../src/sync/data-point-id.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,GACZ,KAAK,MAAM,EAAE,CAaf"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { encodeAbiParameters, keccak256 } from "viem";
|
|
2
|
+
/**
|
|
3
|
+
* Deterministic DPv2 data-point id: `keccak256(abi.encode(owner, scope))`,
|
|
4
|
+
* the same primary key DataRegistryV2 and the gateway use. Every version of
|
|
5
|
+
* a scope shares this id; the registry row carries the current version.
|
|
6
|
+
*/
|
|
7
|
+
export function computeDataPointId(ownerAddress, scope) {
|
|
8
|
+
// ABI-encoding an address is checksum-insensitive (same bytes either way),
|
|
9
|
+
// but viem rejects mixed-case strings that fail checksum validation;
|
|
10
|
+
// normalize so config-sourced owner strings can't trip it.
|
|
11
|
+
return keccak256(encodeAbiParameters([
|
|
12
|
+
{ name: "ownerAddress", type: "address" },
|
|
13
|
+
{ name: "scope", type: "string" },
|
|
14
|
+
], [ownerAddress.toLowerCase(), scope]));
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=data-point-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-point-id.js","sourceRoot":"","sources":["../../src/sync/data-point-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEtD;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAChC,YAAoB,EACpB,KAAa;IAEb,2EAA2E;IAC3E,qEAAqE;IACrE,2DAA2D;IAC3D,OAAO,SAAS,CACd,mBAAmB,CACjB;QACE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE;QACzC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;KAClC,EACD,CAAC,YAAY,CAAC,WAAW,EAAmB,EAAE,KAAK,CAAC,CACrD,CACF,CAAC;AACJ,CAAC"}
|