@fireproof/core 0.19.8-dev-alldocs → 0.19.8-dev-cra
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/{chunk-DG6XSV44.js → chunk-BNL4PVBF.js} +25 -81
- package/chunk-BNL4PVBF.js.map +1 -0
- package/{chunk-OWQAHX2V.js → chunk-JW2QT6BF.js} +24 -4
- package/chunk-JW2QT6BF.js.map +1 -0
- package/index.cjs +443 -1300
- package/index.cjs.map +1 -1
- package/index.d.cts +156 -167
- package/index.d.ts +156 -167
- package/index.global.js +1036 -1214
- package/index.global.js.map +1 -1
- package/index.js +64 -59
- package/index.js.map +1 -1
- package/metafile-cjs.json +1 -1
- package/metafile-esm.json +1 -1
- package/metafile-iife.json +1 -1
- package/node-sys-container-MIEX6ELJ.js +29 -0
- package/node-sys-container-MIEX6ELJ.js.map +1 -0
- package/package.json +3 -2
- package/{store-file-WD746RSY.js → store-file-VJ6BI4II.js} +6 -8
- package/{store-file-WD746RSY.js.map → store-file-VJ6BI4II.js.map} +1 -1
- package/{chunk-5UFCF36O.js → store-indexdb-WLRSICCB.js} +7 -17
- package/store-indexdb-WLRSICCB.js.map +1 -0
- package/tests/fireproof/config.test.ts +14 -70
- package/tests/fireproof/database.test.ts +4 -4
- package/tests/fireproof/fireproof.test.ts +5 -5
- package/tests/fireproof/hello.test.ts +2 -2
- package/chunk-5UFCF36O.js.map +0 -1
- package/chunk-DG6XSV44.js.map +0 -1
- package/chunk-OWQAHX2V.js.map +0 -1
- package/chunk-PRQHQG4I.js +0 -39
- package/chunk-PRQHQG4I.js.map +0 -1
- package/chunk-VZGT7ZYP.js +0 -22
- package/chunk-VZGT7ZYP.js.map +0 -1
- package/node-sys-container-TTGEC66A.js +0 -29
- package/node-sys-container-TTGEC66A.js.map +0 -1
- package/sqlite-data-store-MA55LVQE.js +0 -120
- package/sqlite-data-store-MA55LVQE.js.map +0 -1
- package/sqlite-meta-store-UNQKVYRM.js +0 -137
- package/sqlite-meta-store-UNQKVYRM.js.map +0 -1
- package/sqlite-wal-store-KVUOC4PO.js +0 -123
- package/sqlite-wal-store-KVUOC4PO.js.map +0 -1
- package/store-indexdb-NG45BU3Q.js +0 -20
- package/store-indexdb-NG45BU3Q.js.map +0 -1
- package/store-sql-QVFNIGND.js +0 -344
- package/store-sql-QVFNIGND.js.map +0 -1
package/index.js
CHANGED
@@ -1,11 +1,6 @@
|
|
1
|
-
import {
|
2
|
-
guardVersion
|
3
|
-
} from "./chunk-5UFCF36O.js";
|
4
1
|
import {
|
5
2
|
NotFoundError,
|
6
|
-
|
7
|
-
} from "./chunk-VZGT7ZYP.js";
|
8
|
-
import {
|
3
|
+
Result,
|
9
4
|
dataDir,
|
10
5
|
decodeFile,
|
11
6
|
encodeFile,
|
@@ -15,16 +10,17 @@ import {
|
|
15
10
|
getKey,
|
16
11
|
getName,
|
17
12
|
getStore,
|
13
|
+
isNotFoundError,
|
18
14
|
runtime_exports,
|
19
15
|
toCryptoOpts
|
20
|
-
} from "./chunk-
|
16
|
+
} from "./chunk-BNL4PVBF.js";
|
21
17
|
import {
|
22
18
|
SysContainer,
|
23
19
|
__export,
|
24
20
|
falsyToUndef,
|
25
21
|
isFalsy,
|
26
22
|
throwFalsy
|
27
|
-
} from "./chunk-
|
23
|
+
} from "./chunk-JW2QT6BF.js";
|
28
24
|
|
29
25
|
// src/database.ts
|
30
26
|
import { uuidv7 } from "uuidv7";
|
@@ -280,7 +276,7 @@ import { KeyedResolvOnce } from "@adviser/cement";
|
|
280
276
|
// src/blockstore/store.ts
|
281
277
|
import pLimit2 from "p-limit";
|
282
278
|
import { format, parse } from "@ipld/dag-json";
|
283
|
-
import { ResolveOnce as ResolveOnce2, Result } from "@adviser/cement";
|
279
|
+
import { ResolveOnce as ResolveOnce2, Result as Result2 } from "@adviser/cement";
|
284
280
|
|
285
281
|
// src/blockstore/loader.ts
|
286
282
|
import pLimit from "p-limit";
|
@@ -1243,6 +1239,12 @@ var Loader = class {
|
|
1243
1239
|
};
|
1244
1240
|
|
1245
1241
|
// src/blockstore/store.ts
|
1242
|
+
function guardVersion(url) {
|
1243
|
+
if (!url.searchParams.has("version")) {
|
1244
|
+
return Result2.Err(`missing version: ${url.toString()}`);
|
1245
|
+
}
|
1246
|
+
return Result2.Ok(url);
|
1247
|
+
}
|
1246
1248
|
var VersionedStore = class {
|
1247
1249
|
constructor(name, url, logger) {
|
1248
1250
|
this._onStarted = [];
|
@@ -1288,14 +1290,14 @@ var MetaStore = class extends VersionedStore {
|
|
1288
1290
|
this.logger.Debug().Str("branch", branch || "").Msg("loading");
|
1289
1291
|
const url = await this.gateway.buildUrl(this.url, branch || "main");
|
1290
1292
|
if (url.isErr()) {
|
1291
|
-
throw this.logger.Error().
|
1293
|
+
throw this.logger.Error().Result("buidUrl", url).Str("branch", branch || "").Url(this.url).Msg("got error from gateway.buildUrl").AsError();
|
1292
1294
|
}
|
1293
1295
|
const bytes = await this.gateway.get(url.Ok());
|
1294
1296
|
if (bytes.isErr()) {
|
1295
1297
|
if (isNotFoundError(bytes)) {
|
1296
1298
|
return void 0;
|
1297
1299
|
}
|
1298
|
-
throw this.logger.Error().
|
1300
|
+
throw this.logger.Error().Url(url.Ok()).Result("bytes:", bytes).Msg("gateway get").AsError();
|
1299
1301
|
}
|
1300
1302
|
try {
|
1301
1303
|
return [this.parseHeader(textDecoder.decode(bytes.Ok()))];
|
@@ -1319,7 +1321,7 @@ var MetaStore = class extends VersionedStore {
|
|
1319
1321
|
async close() {
|
1320
1322
|
await this.gateway.close(this.url);
|
1321
1323
|
this._onClosed.forEach((fn) => fn());
|
1322
|
-
return
|
1324
|
+
return Result2.Ok(void 0);
|
1323
1325
|
}
|
1324
1326
|
async destroy() {
|
1325
1327
|
return this.gateway.destroy(this.url);
|
@@ -1341,13 +1343,13 @@ var DataStore = class extends VersionedStore {
|
|
1341
1343
|
this.logger.Debug().Msg("starting-gateway");
|
1342
1344
|
const res = await this.gateway.start(this.url);
|
1343
1345
|
if (res.isErr()) {
|
1344
|
-
this.logger.Error().
|
1346
|
+
this.logger.Error().Result("gw-start", res).Msg("started-gateway");
|
1345
1347
|
return res;
|
1346
1348
|
}
|
1347
1349
|
this._onStarted.forEach((fn) => fn());
|
1348
1350
|
const version = guardVersion(this.url);
|
1349
1351
|
if (version.isErr()) {
|
1350
|
-
this.logger.Error().
|
1352
|
+
this.logger.Error().Result("version", version).Msg("guardVersion");
|
1351
1353
|
await this.close();
|
1352
1354
|
return version;
|
1353
1355
|
}
|
@@ -1389,7 +1391,7 @@ var DataStore = class extends VersionedStore {
|
|
1389
1391
|
async close() {
|
1390
1392
|
await this.gateway.close(this.url);
|
1391
1393
|
this._onClosed.forEach((fn) => fn());
|
1392
|
-
return
|
1394
|
+
return Result2.Ok(void 0);
|
1393
1395
|
}
|
1394
1396
|
destroy() {
|
1395
1397
|
return this.gateway.destroy(this.url);
|
@@ -1574,7 +1576,7 @@ var RemoteWAL = class extends VersionedStore {
|
|
1574
1576
|
async close() {
|
1575
1577
|
await this.gateway.close(this.url);
|
1576
1578
|
this._onClosed.forEach((fn) => fn());
|
1577
|
-
return
|
1579
|
+
return Result2.Ok(void 0);
|
1578
1580
|
}
|
1579
1581
|
destroy() {
|
1580
1582
|
return this.gateway.destroy(this.url);
|
@@ -1617,17 +1619,26 @@ function buildURL(optURL, loader) {
|
|
1617
1619
|
return toURL(optURL || obuUrl || dataDir(loader.name, storeOpts.stores?.base), storeOpts.isIndex);
|
1618
1620
|
}
|
1619
1621
|
function registerStoreProtocol(item) {
|
1620
|
-
|
1621
|
-
|
1622
|
+
let protocol = item.protocol;
|
1623
|
+
if (!protocol.endsWith(":")) {
|
1624
|
+
protocol += ":";
|
1625
|
+
}
|
1626
|
+
if (storeFactory.has(protocol)) {
|
1627
|
+
if (!item.overrideBaseURL && storeFactory.get(protocol) !== item) {
|
1628
|
+
const logger = ensureLogger({}, "registerStoreProtocol", { protocol });
|
1629
|
+
logger.Warn().Msg(`protocol ${protocol} already registered`);
|
1630
|
+
return () => {
|
1631
|
+
};
|
1632
|
+
}
|
1622
1633
|
}
|
1623
1634
|
if (item.overrideBaseURL) {
|
1624
1635
|
Array.from(storeFactory.values()).forEach((items) => {
|
1625
1636
|
items.overrideBaseURL = void 0;
|
1626
1637
|
});
|
1627
1638
|
}
|
1628
|
-
storeFactory.set(
|
1639
|
+
storeFactory.set(protocol, item);
|
1629
1640
|
return () => {
|
1630
|
-
storeFactory.delete(
|
1641
|
+
storeFactory.delete(protocol);
|
1631
1642
|
};
|
1632
1643
|
}
|
1633
1644
|
function runStoreFactory(url, logger, run) {
|
@@ -1653,7 +1664,10 @@ async function dataStoreFactory(loader) {
|
|
1653
1664
|
return onceDataStoreFactory.get(url.toString()).once(async () => {
|
1654
1665
|
const gateway = await loadDataGateway(url, logger);
|
1655
1666
|
const store = new DataStore(loader.name, url, loader.logger, gateway);
|
1656
|
-
await store.start();
|
1667
|
+
const ret = await store.start();
|
1668
|
+
if (ret.isErr()) {
|
1669
|
+
throw logger.Error().Result("start", ret).Msg("start failed").AsError();
|
1670
|
+
}
|
1657
1671
|
logger.Debug().Str("prepared", store.url.toString()).Msg("produced");
|
1658
1672
|
return store;
|
1659
1673
|
});
|
@@ -1674,7 +1688,10 @@ async function metaStoreFactory(loader) {
|
|
1674
1688
|
logger.Debug().Str("protocol", url.protocol).Msg("pre-protocol switch");
|
1675
1689
|
const gateway = await loadMetaGateway(url, logger);
|
1676
1690
|
const store = new MetaStore(loader.name, url, loader.logger, gateway);
|
1677
|
-
await store.start();
|
1691
|
+
const ret = await store.start();
|
1692
|
+
if (ret.isErr()) {
|
1693
|
+
throw logger.Error().Result("start", ret).Msg("start failed").AsError();
|
1694
|
+
}
|
1678
1695
|
return store;
|
1679
1696
|
});
|
1680
1697
|
}
|
@@ -1694,7 +1711,10 @@ async function remoteWalFactory(loader) {
|
|
1694
1711
|
const gateway = await loadWalGateway(url, logger);
|
1695
1712
|
logger.Debug().Str("prepared", url.toString()).Msg("produced");
|
1696
1713
|
const store = new RemoteWAL(loader, url, loader.logger, gateway);
|
1697
|
-
await store.start();
|
1714
|
+
const ret = await store.start();
|
1715
|
+
if (ret.isErr()) {
|
1716
|
+
throw logger.Error().Result("start", ret).Msg("start failed").AsError();
|
1717
|
+
}
|
1698
1718
|
return store;
|
1699
1719
|
});
|
1700
1720
|
}
|
@@ -1729,60 +1749,41 @@ function toStoreRuntime(opts, ilogger) {
|
|
1729
1749
|
registerStoreProtocol({
|
1730
1750
|
protocol: "file:",
|
1731
1751
|
data: async (logger) => {
|
1732
|
-
const { FileDataGateway } = await import("./store-file-
|
1752
|
+
const { FileDataGateway } = await import("./store-file-VJ6BI4II.js");
|
1733
1753
|
return new FileDataGateway(logger);
|
1734
1754
|
},
|
1735
1755
|
meta: async (logger) => {
|
1736
|
-
const { FileMetaGateway } = await import("./store-file-
|
1756
|
+
const { FileMetaGateway } = await import("./store-file-VJ6BI4II.js");
|
1737
1757
|
return new FileMetaGateway(logger);
|
1738
1758
|
},
|
1739
1759
|
wal: async (logger) => {
|
1740
|
-
const { FileWALGateway } = await import("./store-file-
|
1760
|
+
const { FileWALGateway } = await import("./store-file-VJ6BI4II.js");
|
1741
1761
|
return new FileWALGateway(logger);
|
1742
1762
|
},
|
1743
1763
|
test: async (logger) => {
|
1744
|
-
const { FileTestStore } = await import("./store-file-
|
1764
|
+
const { FileTestStore } = await import("./store-file-VJ6BI4II.js");
|
1745
1765
|
return new FileTestStore(logger);
|
1746
1766
|
}
|
1747
1767
|
});
|
1748
1768
|
registerStoreProtocol({
|
1749
1769
|
protocol: "indexdb:",
|
1750
1770
|
data: async (logger) => {
|
1751
|
-
const { IndexDBDataGateway } = await import("./store-indexdb-
|
1771
|
+
const { IndexDBDataGateway } = await import("./store-indexdb-WLRSICCB.js");
|
1752
1772
|
return new IndexDBDataGateway(logger);
|
1753
1773
|
},
|
1754
1774
|
meta: async (logger) => {
|
1755
|
-
const { IndexDBMetaGateway } = await import("./store-indexdb-
|
1775
|
+
const { IndexDBMetaGateway } = await import("./store-indexdb-WLRSICCB.js");
|
1756
1776
|
return new IndexDBMetaGateway(logger);
|
1757
1777
|
},
|
1758
1778
|
wal: async (logger) => {
|
1759
|
-
const { IndexDBMetaGateway } = await import("./store-indexdb-
|
1779
|
+
const { IndexDBMetaGateway } = await import("./store-indexdb-WLRSICCB.js");
|
1760
1780
|
return new IndexDBMetaGateway(logger);
|
1761
1781
|
},
|
1762
1782
|
test: async (logger) => {
|
1763
|
-
const { IndexDBTestStore } = await import("./store-indexdb-
|
1783
|
+
const { IndexDBTestStore } = await import("./store-indexdb-WLRSICCB.js");
|
1764
1784
|
return new IndexDBTestStore(logger);
|
1765
1785
|
}
|
1766
1786
|
});
|
1767
|
-
registerStoreProtocol({
|
1768
|
-
protocol: "sqlite:",
|
1769
|
-
data: async (logger) => {
|
1770
|
-
const { SQLDataGateway } = await import("./store-sql-QVFNIGND.js");
|
1771
|
-
return new SQLDataGateway(logger);
|
1772
|
-
},
|
1773
|
-
meta: async (logger) => {
|
1774
|
-
const { SQLMetaGateway } = await import("./store-sql-QVFNIGND.js");
|
1775
|
-
return new SQLMetaGateway(logger);
|
1776
|
-
},
|
1777
|
-
wal: async (logger) => {
|
1778
|
-
const { SQLWalGateway } = await import("./store-sql-QVFNIGND.js");
|
1779
|
-
return new SQLWalGateway(logger);
|
1780
|
-
},
|
1781
|
-
test: async (logger) => {
|
1782
|
-
const { SQLTestStore } = await import("./store-sql-QVFNIGND.js");
|
1783
|
-
return new SQLTestStore(logger);
|
1784
|
-
}
|
1785
|
-
});
|
1786
1787
|
|
1787
1788
|
// src/crdt-helpers.ts
|
1788
1789
|
function time(tag) {
|
@@ -2687,9 +2688,8 @@ var Database = class {
|
|
2687
2688
|
});
|
2688
2689
|
}
|
2689
2690
|
async get(id) {
|
2690
|
-
this.logger.Debug().Str("id", id).Msg("get-pre-ready");
|
2691
2691
|
await this.ready();
|
2692
|
-
this.logger.Debug().Str("id", id).Msg("get
|
2692
|
+
this.logger.Debug().Str("id", id).Msg("get");
|
2693
2693
|
const got = await this._crdt.get(id).catch((e) => {
|
2694
2694
|
throw new NotFoundError(`Not found: ${id} - ${e.message}`);
|
2695
2695
|
});
|
@@ -2698,9 +2698,8 @@ var Database = class {
|
|
2698
2698
|
return { ...doc, _id: id };
|
2699
2699
|
}
|
2700
2700
|
async put(doc) {
|
2701
|
-
this.logger.Debug().Str("id", doc._id).Msg("put-pre-ready");
|
2702
2701
|
await this.ready();
|
2703
|
-
this.logger.Debug().Str("id", doc._id).Msg("put
|
2702
|
+
this.logger.Debug().Str("id", doc._id).Msg("put");
|
2704
2703
|
const { _id, ...value } = doc;
|
2705
2704
|
const docId = _id || uuidv7();
|
2706
2705
|
const result = await this._writeQueue.push({
|
@@ -2710,36 +2709,40 @@ var Database = class {
|
|
2710
2709
|
_id: docId
|
2711
2710
|
}
|
2712
2711
|
});
|
2713
|
-
return { id: docId, clock: result?.head };
|
2712
|
+
return { id: docId, clock: result?.head, name: this.name };
|
2714
2713
|
}
|
2715
2714
|
async del(id) {
|
2716
2715
|
await this.ready();
|
2716
|
+
this.logger.Debug().Str("id", id).Msg("del");
|
2717
2717
|
const result = await this._writeQueue.push({ id, del: true });
|
2718
|
-
return { id, clock: result?.head };
|
2718
|
+
return { id, clock: result?.head, name: this.name };
|
2719
2719
|
}
|
2720
2720
|
async changes(since = [], opts = {}) {
|
2721
2721
|
await this.ready();
|
2722
|
+
this.logger.Debug().Any("since", since).Any("opts", opts).Msg("changes");
|
2722
2723
|
const { result, head } = await this._crdt.changes(since, opts);
|
2723
2724
|
const rows = result.map(({ id: key, value, del, clock }) => ({
|
2724
2725
|
key,
|
2725
2726
|
value: del ? { _id: key, _deleted: true } : { _id: key, ...value },
|
2726
2727
|
clock
|
2727
2728
|
}));
|
2728
|
-
return { rows, clock: head };
|
2729
|
+
return { rows, clock: head, name: this.name };
|
2729
2730
|
}
|
2730
2731
|
async allDocs(opts = {}) {
|
2731
2732
|
await this.ready();
|
2733
|
+
this.logger.Debug().Msg("allDocs");
|
2732
2734
|
const { result, head } = await this._crdt.allDocs();
|
2733
2735
|
const rows = result.map(({ id: key, value, del }) => ({
|
2734
2736
|
key,
|
2735
2737
|
value: del ? { _id: key, _deleted: true } : { _id: key, ...value }
|
2736
2738
|
}));
|
2737
|
-
return { rows, clock: head };
|
2739
|
+
return { rows, clock: head, name: this.name };
|
2738
2740
|
}
|
2739
2741
|
async allDocuments() {
|
2740
2742
|
return this.allDocs();
|
2741
2743
|
}
|
2742
2744
|
subscribe(listener, updates) {
|
2745
|
+
this.logger.Debug().Bool("updates", updates).Msg("subscribe");
|
2743
2746
|
if (updates) {
|
2744
2747
|
if (!this._listening) {
|
2745
2748
|
this._listening = true;
|
@@ -2761,6 +2764,7 @@ var Database = class {
|
|
2761
2764
|
// todo if we add this onto dbs in fireproof.ts then we can make index.ts a separate package
|
2762
2765
|
async query(field, opts = {}) {
|
2763
2766
|
await this.ready();
|
2767
|
+
this.logger.Debug().Any("field", field).Any("opts", opts).Msg("query");
|
2764
2768
|
const _crdt = this._crdt;
|
2765
2769
|
const idx = typeof field === "string" ? index({ _crdt }, field) : index({ _crdt }, makeName(field.toString()), field);
|
2766
2770
|
return await idx.query(opts);
|
@@ -2830,13 +2834,14 @@ function makeName(fnString) {
|
|
2830
2834
|
|
2831
2835
|
// src/version.ts
|
2832
2836
|
var PACKAGE_VERSION = Object.keys({
|
2833
|
-
"0.
|
2837
|
+
"0.19.8-dev-cra": "xxxx"
|
2834
2838
|
})[0];
|
2835
2839
|
export {
|
2836
2840
|
CRDT,
|
2837
2841
|
Database,
|
2838
2842
|
Index,
|
2839
2843
|
PACKAGE_VERSION,
|
2844
|
+
Result,
|
2840
2845
|
blockstore_exports as blockstore,
|
2841
2846
|
blockstore_exports as bs,
|
2842
2847
|
ensureLogger,
|