@fireproof/core 0.7.0-alpha.0 → 0.7.0-alpha.10
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +2 -2
- package/dist/fireproof.js +6 -15
- package/dist/loader.js +3 -13
- package/dist/src/fireproof.d.ts +7 -118
- package/dist/src/fireproof.js +20481 -27157
- package/dist/src/fireproof.js.map +1 -1
- package/dist/src/fireproof.mjs +20481 -27157
- package/dist/src/fireproof.mjs.map +1 -1
- package/dist/storage/base.js +5 -3
- package/dist/storage/filesystem.js +7 -4
- package/dist/storage/rest.js +1 -1
- package/package.json +5 -12
- package/src/fireproof.js +6 -16
- package/src/loader.js +4 -14
- package/src/storage/base.js +5 -3
- package/src/storage/filesystem.js +8 -4
- package/src/storage/rest.js +1 -1
package/dist/storage/base.js
CHANGED
@@ -39,7 +39,7 @@ export class Base {
|
|
39
39
|
// currently we don't do that, because we only use
|
40
40
|
// the config for first run, and then we use the headers
|
41
41
|
// once they exist
|
42
|
-
this.ready = this.getHeaders().then(
|
42
|
+
this.ready = this.getHeaders().then(blocksReady => {
|
43
43
|
// console.log('blocksReady base', this.name, blocksReady)
|
44
44
|
return blocksReady;
|
45
45
|
});
|
@@ -243,8 +243,10 @@ export class Base {
|
|
243
243
|
};
|
244
244
|
const { blocks } = await blocksFromEncryptedCarBlock(roots[0], readerGetWithCodec, this.keyMaterial);
|
245
245
|
const rootBlock = blocks[blocks.length - 1];
|
246
|
-
const blocksIterable = function* () {
|
247
|
-
|
246
|
+
const blocksIterable = function* () {
|
247
|
+
for (const block of blocks)
|
248
|
+
yield block;
|
249
|
+
};
|
248
250
|
const gat = async (dataCID) => {
|
249
251
|
dataCID = dataCID.toString();
|
250
252
|
return blocks.find(b => b.cid.toString() === dataCID);
|
@@ -1,8 +1,11 @@
|
|
1
|
-
import {
|
2
|
-
import { mkdir, writeFile } from 'node:fs/promises';
|
1
|
+
// import { mkdir, writeFile } from 'fs/promises'
|
3
2
|
import { join, dirname } from 'path';
|
4
3
|
import { homedir } from 'os';
|
5
4
|
import { Base } from './base.js';
|
5
|
+
// import { readFileSync } from 'node:fs'
|
6
|
+
// const { readFileSync } = require('fs')
|
7
|
+
import fs from 'fs';
|
8
|
+
const readFileSync = fs.readFileSync;
|
6
9
|
export const defaultConfig = {
|
7
10
|
dataDir: join(homedir(), '.fireproof')
|
8
11
|
};
|
@@ -59,7 +62,7 @@ function loadSync(filename) {
|
|
59
62
|
}
|
60
63
|
}
|
61
64
|
async function writeSync(fullpath, stringValue) {
|
62
|
-
await mkdir(dirname(fullpath), { recursive: true });
|
65
|
+
await fs.promises.mkdir(dirname(fullpath), { recursive: true });
|
63
66
|
// writeFileSync(fullpath, stringValue)
|
64
|
-
await writeFile(fullpath, stringValue);
|
67
|
+
await fs.promises.writeFile(fullpath, stringValue);
|
65
68
|
}
|
package/dist/storage/rest.js
CHANGED
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@fireproof/core",
|
3
|
-
"version": "0.7.0-alpha.
|
3
|
+
"version": "0.7.0-alpha.10",
|
4
4
|
"description": "Live data for React, accelerated by proofs, powered by IPFS",
|
5
5
|
"main": "dist/src/fireproof.js",
|
6
6
|
"module": "dist/src/fireproof.mjs",
|
@@ -41,27 +41,21 @@
|
|
41
41
|
"@ipld/car": "^5.1.0",
|
42
42
|
"@ipld/dag-cbor": "^9.0.0",
|
43
43
|
"@jsonlines/core": "^1.0.2",
|
44
|
-
"@rollup/plugin-commonjs": "^24.0.1",
|
45
|
-
"archy": "^1.0.0",
|
46
44
|
"async": "^3.2.4",
|
47
|
-
"car-transaction": "^1.0.1",
|
48
45
|
"charwise": "^3.0.1",
|
49
|
-
"
|
46
|
+
"cross-fetch": "^3.1.6",
|
50
47
|
"crypto-browserify": "^3.12.0",
|
51
|
-
"encrypted-block": "
|
48
|
+
"encrypted-block": "jchris/encrypted-block#update",
|
52
49
|
"idb": "^7.1.1",
|
53
50
|
"ipld-hashmap": "^2.1.18",
|
54
51
|
"multiformats": "^11.0.1",
|
55
|
-
"node-fetch": "^3.3.1",
|
56
|
-
"node-polyfill-webpack-plugin": "^2.0.1",
|
57
52
|
"prolly-trees": "1.0.4",
|
58
53
|
"randombytes": "^2.1.0",
|
59
|
-
"rollup-plugin-commonjs": "^10.1.0",
|
60
|
-
"sade": "^1.8.1",
|
61
54
|
"simple-peer": "^9.11.1"
|
62
55
|
},
|
63
56
|
"devDependencies": {
|
64
57
|
"@rollup/plugin-alias": "^5.0.0",
|
58
|
+
"@rollup/plugin-commonjs": "^24.0.1",
|
65
59
|
"@rollup/plugin-json": "^6.0.0",
|
66
60
|
"@rollup/plugin-node-resolve": "^15.0.2",
|
67
61
|
"c8": "^7.12.0",
|
@@ -70,11 +64,11 @@
|
|
70
64
|
"flexsearch": "^0.7.31",
|
71
65
|
"mocha": "^10.2.0",
|
72
66
|
"nanoid": "^4.0.0",
|
67
|
+
"node-polyfill-webpack-plugin": "^2.0.1",
|
73
68
|
"rollup": "^3.20.2",
|
74
69
|
"rollup-plugin-auto-external": "^2.0.0",
|
75
70
|
"rollup-plugin-dts": "^5.3.0",
|
76
71
|
"rollup-plugin-esbuild": "^5.0.0",
|
77
|
-
"rollup-plugin-node-builtins": "^2.1.2",
|
78
72
|
"rollup-plugin-polyfill-node": "^0.12.0",
|
79
73
|
"rollup-plugin-visualizer": "^5.9.0",
|
80
74
|
"standard": "^17.0.0",
|
@@ -117,7 +111,6 @@
|
|
117
111
|
"files": [
|
118
112
|
"src",
|
119
113
|
"dist",
|
120
|
-
"hooks",
|
121
114
|
"README.md"
|
122
115
|
]
|
123
116
|
}
|
package/src/fireproof.js
CHANGED
@@ -11,22 +11,10 @@ export class Fireproof {
|
|
11
11
|
* Creates a new Fireproof instance with default storage settings
|
12
12
|
* Most apps should use this and not worry about the details.
|
13
13
|
* @static
|
14
|
-
* @returns {Database
|
14
|
+
* @returns {Database} - a new Fireproof instance
|
15
15
|
*/
|
16
16
|
static storage = (name = null, opts = {}) => {
|
17
|
-
|
18
|
-
return new Database(null, opts)
|
19
|
-
} else {
|
20
|
-
// const primaryLoader = Loader.appropriate(name, opts.primary, { key: null })
|
21
|
-
// const secondaryLoader = opts.secondary ? Loader.appropriate(name, opts.secondary, { key: null }) : null
|
22
|
-
const db = new Database(name, opts)
|
23
|
-
return db
|
24
|
-
// const loaders = [pr]
|
25
|
-
|
26
|
-
// todo we need branch names here
|
27
|
-
|
28
|
-
// console.log('storage', name, opts, primaryLoader, secondaryLoader)
|
29
|
-
}
|
17
|
+
return new Database(name, opts)
|
30
18
|
}
|
31
19
|
|
32
20
|
// static fromConfig (name, primary, secondary, opts = {}) {
|
@@ -62,7 +50,7 @@ export class Fireproof {
|
|
62
50
|
clock: {
|
63
51
|
byId: byId ? parseCID(byId) : null,
|
64
52
|
byKey: byKey ? parseCID(byKey) : null,
|
65
|
-
db:
|
53
|
+
db: db && db.length > 0 ? db.map(c => parseCID(c)) : null
|
66
54
|
},
|
67
55
|
code,
|
68
56
|
name
|
@@ -85,7 +73,9 @@ export class Fireproof {
|
|
85
73
|
|
86
74
|
const withBlocks = new Database(database.name)
|
87
75
|
withBlocks.blocks = database.blocks
|
88
|
-
withBlocks.
|
76
|
+
withBlocks.ready.then(() => {
|
77
|
+
withBlocks.clock = definition.clock.map(c => parseCID(c))
|
78
|
+
})
|
89
79
|
|
90
80
|
const snappedDb = Fireproof.fromJSON(definition, null, withBlocks)
|
91
81
|
;[...database.indexes.values()].forEach(index => {
|
package/src/loader.js
CHANGED
@@ -1,26 +1,16 @@
|
|
1
1
|
import { Browser } from './storage/browser.js'
|
2
|
-
import { Filesystem } from './storage/filesystem.js'
|
3
2
|
import { Rest } from './storage/rest.js'
|
4
3
|
|
5
|
-
const FORCE_IDB = typeof process !== 'undefined' && !!process.env?.FORCE_IDB
|
6
|
-
|
7
|
-
/* global window */
|
8
|
-
|
9
4
|
export const Loader = {
|
10
5
|
appropriate: (name, config = {}) => {
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
} catch (e) {}
|
6
|
+
if (config.StorageClass) {
|
7
|
+
return new config.StorageClass(name, config)
|
8
|
+
}
|
15
9
|
|
16
10
|
if (config.type === 'rest') {
|
17
11
|
return new Rest(name, config)
|
18
12
|
}
|
19
13
|
|
20
|
-
|
21
|
-
return new Browser(name, config)
|
22
|
-
} else {
|
23
|
-
return new Filesystem(name, config)
|
24
|
-
}
|
14
|
+
return new Browser(name, config)
|
25
15
|
}
|
26
16
|
}
|
package/src/storage/base.js
CHANGED
@@ -45,7 +45,7 @@ export class Base {
|
|
45
45
|
// currently we don't do that, because we only use
|
46
46
|
// the config for first run, and then we use the headers
|
47
47
|
// once they exist
|
48
|
-
this.ready = this.getHeaders().then(
|
48
|
+
this.ready = this.getHeaders().then(blocksReady => {
|
49
49
|
// console.log('blocksReady base', this.name, blocksReady)
|
50
50
|
return blocksReady
|
51
51
|
})
|
@@ -258,7 +258,9 @@ export class Base {
|
|
258
258
|
}
|
259
259
|
const { blocks } = await blocksFromEncryptedCarBlock(roots[0], readerGetWithCodec, this.keyMaterial)
|
260
260
|
const rootBlock = blocks[blocks.length - 1]
|
261
|
-
const blocksIterable = function * () {
|
261
|
+
const blocksIterable = function * () {
|
262
|
+
for (const block of blocks) yield block
|
263
|
+
}
|
262
264
|
|
263
265
|
const gat = async dataCID => {
|
264
266
|
dataCID = dataCID.toString()
|
@@ -295,7 +297,7 @@ export class Base {
|
|
295
297
|
}
|
296
298
|
}
|
297
299
|
|
298
|
-
writeCars (cars) {
|
300
|
+
writeCars (cars) {}
|
299
301
|
|
300
302
|
async updateCarCidMap (carCid, cids) {
|
301
303
|
// this hydrates the map if it has not been hydrated
|
@@ -1,8 +1,12 @@
|
|
1
|
-
|
2
|
-
import { mkdir, writeFile } from '
|
1
|
+
|
2
|
+
// import { mkdir, writeFile } from 'fs/promises'
|
3
3
|
import { join, dirname } from 'path'
|
4
4
|
import { homedir } from 'os'
|
5
5
|
import { Base } from './base.js'
|
6
|
+
// import { readFileSync } from 'node:fs'
|
7
|
+
// const { readFileSync } = require('fs')
|
8
|
+
import fs from 'fs'
|
9
|
+
const readFileSync = fs.readFileSync
|
6
10
|
|
7
11
|
export const defaultConfig = {
|
8
12
|
dataDir: join(homedir(), '.fireproof')
|
@@ -64,7 +68,7 @@ function loadSync (filename) {
|
|
64
68
|
}
|
65
69
|
|
66
70
|
async function writeSync (fullpath, stringValue) {
|
67
|
-
await mkdir(dirname(fullpath), { recursive: true })
|
71
|
+
await fs.promises.mkdir(dirname(fullpath), { recursive: true })
|
68
72
|
// writeFileSync(fullpath, stringValue)
|
69
|
-
await writeFile(fullpath, stringValue)
|
73
|
+
await fs.promises.writeFile(fullpath, stringValue)
|
70
74
|
}
|
package/src/storage/rest.js
CHANGED