@fireproof/core 0.19.8-dev-alldocs-export → 0.19.8-dev-getid
Sign up to get free protection for your applications and to get access to all the features.
- 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 +444 -1300
- package/index.cjs.map +1 -1
- package/index.d.cts +156 -167
- package/index.d.ts +156 -167
- package/index.global.js +1037 -1214
- package/index.global.js.map +1 -1
- package/index.js +65 -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,9 @@ var Database = class {
|
|
2687
2688
|
});
|
2688
2689
|
}
|
2689
2690
|
async get(id) {
|
2690
|
-
this.logger.
|
2691
|
+
if (!id) throw this.logger.Error().Str("db", this.name).Msg(`Doc id is required`).AsError();
|
2691
2692
|
await this.ready();
|
2692
|
-
this.logger.Debug().Str("id", id).Msg("get
|
2693
|
+
this.logger.Debug().Str("id", id).Msg("get");
|
2693
2694
|
const got = await this._crdt.get(id).catch((e) => {
|
2694
2695
|
throw new NotFoundError(`Not found: ${id} - ${e.message}`);
|
2695
2696
|
});
|
@@ -2698,9 +2699,8 @@ var Database = class {
|
|
2698
2699
|
return { ...doc, _id: id };
|
2699
2700
|
}
|
2700
2701
|
async put(doc) {
|
2701
|
-
this.logger.Debug().Str("id", doc._id).Msg("put-pre-ready");
|
2702
2702
|
await this.ready();
|
2703
|
-
this.logger.Debug().Str("id", doc._id).Msg("put
|
2703
|
+
this.logger.Debug().Str("id", doc._id).Msg("put");
|
2704
2704
|
const { _id, ...value } = doc;
|
2705
2705
|
const docId = _id || uuidv7();
|
2706
2706
|
const result = await this._writeQueue.push({
|
@@ -2710,36 +2710,40 @@ var Database = class {
|
|
2710
2710
|
_id: docId
|
2711
2711
|
}
|
2712
2712
|
});
|
2713
|
-
return { id: docId, clock: result?.head };
|
2713
|
+
return { id: docId, clock: result?.head, name: this.name };
|
2714
2714
|
}
|
2715
2715
|
async del(id) {
|
2716
2716
|
await this.ready();
|
2717
|
+
this.logger.Debug().Str("id", id).Msg("del");
|
2717
2718
|
const result = await this._writeQueue.push({ id, del: true });
|
2718
|
-
return { id, clock: result?.head };
|
2719
|
+
return { id, clock: result?.head, name: this.name };
|
2719
2720
|
}
|
2720
2721
|
async changes(since = [], opts = {}) {
|
2721
2722
|
await this.ready();
|
2723
|
+
this.logger.Debug().Any("since", since).Any("opts", opts).Msg("changes");
|
2722
2724
|
const { result, head } = await this._crdt.changes(since, opts);
|
2723
2725
|
const rows = result.map(({ id: key, value, del, clock }) => ({
|
2724
2726
|
key,
|
2725
2727
|
value: del ? { _id: key, _deleted: true } : { _id: key, ...value },
|
2726
2728
|
clock
|
2727
2729
|
}));
|
2728
|
-
return { rows, clock: head };
|
2730
|
+
return { rows, clock: head, name: this.name };
|
2729
2731
|
}
|
2730
2732
|
async allDocs(opts = {}) {
|
2731
2733
|
await this.ready();
|
2734
|
+
this.logger.Debug().Msg("allDocs");
|
2732
2735
|
const { result, head } = await this._crdt.allDocs();
|
2733
2736
|
const rows = result.map(({ id: key, value, del }) => ({
|
2734
2737
|
key,
|
2735
2738
|
value: del ? { _id: key, _deleted: true } : { _id: key, ...value }
|
2736
2739
|
}));
|
2737
|
-
return { rows, clock: head };
|
2740
|
+
return { rows, clock: head, name: this.name };
|
2738
2741
|
}
|
2739
2742
|
async allDocuments() {
|
2740
2743
|
return this.allDocs();
|
2741
2744
|
}
|
2742
2745
|
subscribe(listener, updates) {
|
2746
|
+
this.logger.Debug().Bool("updates", updates).Msg("subscribe");
|
2743
2747
|
if (updates) {
|
2744
2748
|
if (!this._listening) {
|
2745
2749
|
this._listening = true;
|
@@ -2761,6 +2765,7 @@ var Database = class {
|
|
2761
2765
|
// todo if we add this onto dbs in fireproof.ts then we can make index.ts a separate package
|
2762
2766
|
async query(field, opts = {}) {
|
2763
2767
|
await this.ready();
|
2768
|
+
this.logger.Debug().Any("field", field).Any("opts", opts).Msg("query");
|
2764
2769
|
const _crdt = this._crdt;
|
2765
2770
|
const idx = typeof field === "string" ? index({ _crdt }, field) : index({ _crdt }, makeName(field.toString()), field);
|
2766
2771
|
return await idx.query(opts);
|
@@ -2830,13 +2835,14 @@ function makeName(fnString) {
|
|
2830
2835
|
|
2831
2836
|
// src/version.ts
|
2832
2837
|
var PACKAGE_VERSION = Object.keys({
|
2833
|
-
"0.
|
2838
|
+
"0.19.8-dev-getid": "xxxx"
|
2834
2839
|
})[0];
|
2835
2840
|
export {
|
2836
2841
|
CRDT,
|
2837
2842
|
Database,
|
2838
2843
|
Index,
|
2839
2844
|
PACKAGE_VERSION,
|
2845
|
+
Result,
|
2840
2846
|
blockstore_exports as blockstore,
|
2841
2847
|
blockstore_exports as bs,
|
2842
2848
|
ensureLogger,
|