@fireproof/core 0.20.0-dev-preview-13 → 0.20.0-dev-preview-14
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/index.cjs +29 -5
- package/index.cjs.map +1 -1
- package/index.d.cts +3 -1
- package/index.d.ts +3 -1
- package/index.js +29 -5
- package/index.js.map +1 -1
- package/metafile-cjs.json +1 -1
- package/metafile-esm.json +1 -1
- package/package.json +1 -1
- package/tests/fireproof/all-gateway.test.ts +15 -18
package/index.d.cts
CHANGED
@@ -240,7 +240,7 @@ interface SerdeGateway {
|
|
240
240
|
put<T>(sthis: SuperThis, url: URI, body: FPEnvelope<T>, loader?: Loadable): Promise<VoidResult>;
|
241
241
|
get<S>(sthis: SuperThis, url: URI, loader?: Loadable): Promise<SerdeGetResult<S>>;
|
242
242
|
delete(sthis: SuperThis, url: URI, loader?: Loadable): Promise<VoidResult>;
|
243
|
-
subscribe
|
243
|
+
subscribe(sthis: SuperThis, url: URI, callback: (meta: FPEnvelopeMeta) => Promise<void>, loader?: Loadable): Promise<UnsubscribeResult>;
|
244
244
|
getPlain(sthis: SuperThis, url: URI, key: string, loader?: Loadable): Promise<Result<Uint8Array>>;
|
245
245
|
destroy(sthis: SuperThis, baseUrl: URI, loader?: Loadable): Promise<VoidResult>;
|
246
246
|
}
|
@@ -1538,8 +1538,10 @@ declare class DefSerdeGateway implements SerdeGateway {
|
|
1538
1538
|
start(sthis: SuperThis, baseURL: URI): Promise<Result<URI>>;
|
1539
1539
|
buildUrl(sthis: SuperThis, baseUrl: URI, key: string): Promise<Result<URI>>;
|
1540
1540
|
close(sthis: SuperThis, uri: URI): Promise<Result<void>>;
|
1541
|
+
private subscribeFn;
|
1541
1542
|
put<T>(sthis: SuperThis, url: URI, env: FPEnvelope<T>): Promise<Result<void>>;
|
1542
1543
|
get<S>(sthis: SuperThis, url: URI): Promise<SerdeGetResult<S>>;
|
1544
|
+
subscribe(sthis: SuperThis, url: URI, callback: (meta: FPEnvelopeMeta) => Promise<void>): Promise<Result<() => void>>;
|
1543
1545
|
delete(sthis: SuperThis, url: URI): Promise<Result<void>>;
|
1544
1546
|
destroy(sthis: SuperThis, baseURL: URI): Promise<Result<void>>;
|
1545
1547
|
getPlain(sthis: SuperThis, iurl: URI, key: string): Promise<Result<Uint8Array<ArrayBufferLike>, Error>>;
|
package/index.d.ts
CHANGED
@@ -240,7 +240,7 @@ interface SerdeGateway {
|
|
240
240
|
put<T>(sthis: SuperThis, url: URI, body: FPEnvelope<T>, loader?: Loadable): Promise<VoidResult>;
|
241
241
|
get<S>(sthis: SuperThis, url: URI, loader?: Loadable): Promise<SerdeGetResult<S>>;
|
242
242
|
delete(sthis: SuperThis, url: URI, loader?: Loadable): Promise<VoidResult>;
|
243
|
-
subscribe
|
243
|
+
subscribe(sthis: SuperThis, url: URI, callback: (meta: FPEnvelopeMeta) => Promise<void>, loader?: Loadable): Promise<UnsubscribeResult>;
|
244
244
|
getPlain(sthis: SuperThis, url: URI, key: string, loader?: Loadable): Promise<Result<Uint8Array>>;
|
245
245
|
destroy(sthis: SuperThis, baseUrl: URI, loader?: Loadable): Promise<VoidResult>;
|
246
246
|
}
|
@@ -1538,8 +1538,10 @@ declare class DefSerdeGateway implements SerdeGateway {
|
|
1538
1538
|
start(sthis: SuperThis, baseURL: URI): Promise<Result<URI>>;
|
1539
1539
|
buildUrl(sthis: SuperThis, baseUrl: URI, key: string): Promise<Result<URI>>;
|
1540
1540
|
close(sthis: SuperThis, uri: URI): Promise<Result<void>>;
|
1541
|
+
private subscribeFn;
|
1541
1542
|
put<T>(sthis: SuperThis, url: URI, env: FPEnvelope<T>): Promise<Result<void>>;
|
1542
1543
|
get<S>(sthis: SuperThis, url: URI): Promise<SerdeGetResult<S>>;
|
1544
|
+
subscribe(sthis: SuperThis, url: URI, callback: (meta: FPEnvelopeMeta) => Promise<void>): Promise<Result<() => void>>;
|
1543
1545
|
delete(sthis: SuperThis, url: URI): Promise<Result<void>>;
|
1544
1546
|
destroy(sthis: SuperThis, baseURL: URI): Promise<Result<void>>;
|
1545
1547
|
getPlain(sthis: SuperThis, iurl: URI, key: string): Promise<Result<Uint8Array<ArrayBufferLike>, Error>>;
|
package/index.js
CHANGED
@@ -1029,9 +1029,6 @@ var MemoryGateway = class {
|
|
1029
1029
|
// src/runtime/gateways/def-serde-gateway.ts
|
1030
1030
|
import { Result as Result7 } from "@adviser/cement";
|
1031
1031
|
|
1032
|
-
// src/runtime/gateways/fp-envelope-serialize.ts
|
1033
|
-
import { exception2Result as exception2Result2, Result as Result6 } from "@adviser/cement";
|
1034
|
-
|
1035
1032
|
// src/blockstore/fp-envelope.ts
|
1036
1033
|
import { Result as Result5 } from "@adviser/cement";
|
1037
1034
|
var FPEnvelopeType = /* @__PURE__ */ ((FPEnvelopeType2) => {
|
@@ -1049,6 +1046,7 @@ function File2FPMsg(fpfile) {
|
|
1049
1046
|
}
|
1050
1047
|
|
1051
1048
|
// src/runtime/gateways/fp-envelope-serialize.ts
|
1049
|
+
import { exception2Result as exception2Result2, Result as Result6 } from "@adviser/cement";
|
1052
1050
|
import { decodeEventBlock, EventBlock } from "@fireproof/vendor/@web3-storage/pail/clock";
|
1053
1051
|
import { base64pad } from "multiformats/bases/base64";
|
1054
1052
|
import { CID } from "multiformats";
|
@@ -1202,6 +1200,7 @@ async function fpDeserialize(sthis, url, intoRaw, pdecoder) {
|
|
1202
1200
|
// src/runtime/gateways/def-serde-gateway.ts
|
1203
1201
|
var DefSerdeGateway = class {
|
1204
1202
|
constructor(gw) {
|
1203
|
+
this.subscribeFn = /* @__PURE__ */ new Map();
|
1205
1204
|
this.gw = gw;
|
1206
1205
|
}
|
1207
1206
|
start(sthis, baseURL) {
|
@@ -1216,13 +1215,38 @@ var DefSerdeGateway = class {
|
|
1216
1215
|
async put(sthis, url, env) {
|
1217
1216
|
const rUint8 = await fpSerialize(sthis, env);
|
1218
1217
|
if (rUint8.isErr()) return rUint8;
|
1219
|
-
|
1218
|
+
const ret = this.gw.put(url, rUint8.Ok(), sthis);
|
1219
|
+
if (env.type === "meta" /* META */) {
|
1220
|
+
if (this.subscribeFn.has(url.toString())) {
|
1221
|
+
this.subscribeFn.get(url.toString())(env);
|
1222
|
+
}
|
1223
|
+
}
|
1224
|
+
return ret;
|
1220
1225
|
}
|
1221
1226
|
async get(sthis, url) {
|
1222
1227
|
const res = await this.gw.get(url, sthis);
|
1223
1228
|
if (res.isErr()) return Result7.Err(res.Err());
|
1224
1229
|
return fpDeserialize(sthis, url, res);
|
1225
1230
|
}
|
1231
|
+
async subscribe(sthis, url, callback) {
|
1232
|
+
if (!this.gw.subscribe) {
|
1233
|
+
this.subscribeFn.set(url.toString(), callback);
|
1234
|
+
return Result7.Ok(() => {
|
1235
|
+
this.subscribeFn.delete(url.toString());
|
1236
|
+
});
|
1237
|
+
}
|
1238
|
+
const unreg = await this.gw.subscribe(
|
1239
|
+
url,
|
1240
|
+
(raw2) => {
|
1241
|
+
fpDeserialize(sthis, url, Result7.Ok(raw2)).then((res) => {
|
1242
|
+
if (res.isErr()) return;
|
1243
|
+
callback(res.Ok());
|
1244
|
+
});
|
1245
|
+
},
|
1246
|
+
sthis
|
1247
|
+
);
|
1248
|
+
return unreg;
|
1249
|
+
}
|
1226
1250
|
async delete(sthis, url) {
|
1227
1251
|
return this.gw.delete(url, sthis);
|
1228
1252
|
}
|
@@ -4613,7 +4637,7 @@ __export(file_exports, {
|
|
4613
4637
|
|
4614
4638
|
// src/version.ts
|
4615
4639
|
var PACKAGE_VERSION = Object.keys({
|
4616
|
-
"0.20.0-dev-preview-
|
4640
|
+
"0.20.0-dev-preview-14": "xxxx"
|
4617
4641
|
})[0];
|
4618
4642
|
export {
|
4619
4643
|
CRDTImpl,
|