@welshman/store 0.14.0-pre4 → 0.14.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/store/src/{repository.d.ts → derive.d.ts} +33 -41
- package/dist/store/src/derive.d.ts.map +1 -0
- package/dist/store/src/derive.js +706 -0
- package/dist/store/src/derive.js.map +1 -0
- package/dist/store/src/index.d.ts +9 -1
- package/dist/store/src/index.d.ts.map +1 -1
- package/dist/store/src/index.js +9 -1
- package/dist/store/src/index.js.map +1 -1
- package/dist/store/src/misc.d.ts +2 -7
- package/dist/store/src/misc.d.ts.map +1 -1
- package/dist/store/src/misc.js +1 -1
- package/dist/store/src/misc.js.map +1 -1
- package/dist/{net/src/repository.d.ts → store/src/repository/adapters/memory.d.ts} +22 -30
- package/dist/store/src/repository/adapters/memory.d.ts.map +1 -0
- package/dist/{net/src/repository.js → store/src/repository/adapters/memory.js} +96 -106
- package/dist/store/src/repository/adapters/memory.js.map +1 -0
- package/dist/store/src/repository/adapters/sqlite/engine.d.ts +65 -0
- package/dist/store/src/repository/adapters/sqlite/engine.d.ts.map +1 -0
- package/dist/store/src/repository/adapters/sqlite/engine.js +420 -0
- package/dist/store/src/repository/adapters/sqlite/engine.js.map +1 -0
- package/dist/store/src/repository/adapters/sqlite/leader.d.ts +8 -0
- package/dist/store/src/repository/adapters/sqlite/leader.d.ts.map +1 -0
- package/dist/store/src/repository/adapters/sqlite/leader.js +222 -0
- package/dist/store/src/repository/adapters/sqlite/leader.js.map +1 -0
- package/dist/store/src/repository/adapters/sqlite/protocol.d.ts +52 -0
- package/dist/store/src/repository/adapters/sqlite/protocol.d.ts.map +1 -0
- package/dist/store/src/repository/adapters/sqlite/protocol.js +52 -0
- package/dist/store/src/repository/adapters/sqlite/protocol.js.map +1 -0
- package/dist/store/src/repository/adapters/sqlite/repository.d.ts +54 -0
- package/dist/store/src/repository/adapters/sqlite/repository.d.ts.map +1 -0
- package/dist/store/src/repository/adapters/sqlite/repository.js +238 -0
- package/dist/store/src/repository/adapters/sqlite/repository.js.map +1 -0
- package/dist/store/src/repository/adapters/sqlite/serve.d.ts +4 -0
- package/dist/store/src/repository/adapters/sqlite/serve.d.ts.map +1 -0
- package/dist/store/src/repository/adapters/sqlite/serve.js +40 -0
- package/dist/store/src/repository/adapters/sqlite/serve.js.map +1 -0
- package/dist/store/src/repository/adapters/sqlite/wasm.d.ts +7 -0
- package/dist/store/src/repository/adapters/sqlite/wasm.d.ts.map +1 -0
- package/dist/store/src/repository/adapters/sqlite/wasm.js +61 -0
- package/dist/store/src/repository/adapters/sqlite/wasm.js.map +1 -0
- package/dist/store/src/repository/adapters/sqlite/worker.d.ts +2 -0
- package/dist/store/src/repository/adapters/sqlite/worker.d.ts.map +1 -0
- package/dist/store/src/repository/adapters/sqlite/worker.js +4 -0
- package/dist/store/src/repository/adapters/sqlite/worker.js.map +1 -0
- package/dist/store/src/repository/core.d.ts +68 -0
- package/dist/store/src/repository/core.d.ts.map +1 -0
- package/dist/store/src/repository/core.js +123 -0
- package/dist/store/src/repository/core.js.map +1 -0
- package/dist/store/src/svelte.d.ts +22 -0
- package/dist/store/src/svelte.d.ts.map +1 -0
- package/dist/store/src/svelte.js +100 -0
- package/dist/store/src/svelte.js.map +1 -0
- package/dist/store/src/synced.d.ts +1 -1
- package/dist/store/src/synced.d.ts.map +1 -1
- package/dist/store/src/synced.js +1 -1
- package/dist/store/src/synced.js.map +1 -1
- package/dist/store/src/throttle.d.ts +1 -1
- package/dist/store/src/throttle.d.ts.map +1 -1
- package/dist/{net → store}/src/tracker.d.ts +2 -0
- package/dist/store/src/tracker.d.ts.map +1 -0
- package/dist/{net → store}/src/tracker.js +8 -4
- package/dist/store/src/tracker.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/util/src/Command.d.ts +1 -1
- package/dist/util/src/Command.d.ts.map +1 -1
- package/dist/util/src/Command.js +12 -5
- package/dist/util/src/Command.js.map +1 -1
- package/dist/util/src/Events.d.ts +3 -2
- package/dist/util/src/Events.d.ts.map +1 -1
- package/dist/util/src/Events.js.map +1 -1
- package/dist/util/src/Filters.d.ts.map +1 -1
- package/dist/util/src/Filters.js +6 -2
- package/dist/util/src/Filters.js.map +1 -1
- package/dist/util/src/Kinds.d.ts +1 -0
- package/dist/util/src/Kinds.d.ts.map +1 -1
- package/dist/util/src/Kinds.js +1 -0
- package/dist/util/src/Kinds.js.map +1 -1
- package/dist/util/src/RelaySelection.d.ts +5 -0
- package/dist/util/src/RelaySelection.d.ts.map +1 -1
- package/dist/util/src/RelaySelection.js.map +1 -1
- package/dist/util/src/Tags.d.ts +5 -0
- package/dist/util/src/Tags.d.ts.map +1 -1
- package/dist/util/src/Tags.js +3 -0
- package/dist/util/src/Tags.js.map +1 -1
- package/dist/util/src/index.d.ts +1 -0
- package/dist/util/src/index.d.ts.map +1 -1
- package/dist/util/src/index.js +1 -0
- package/dist/util/src/index.js.map +1 -1
- package/package.json +31 -12
- package/dist/net/src/adapter.d.ts +0 -47
- package/dist/net/src/adapter.d.ts.map +0 -1
- package/dist/net/src/adapter.js +0 -139
- package/dist/net/src/adapter.js.map +0 -1
- package/dist/net/src/auth.d.ts +0 -40
- package/dist/net/src/auth.d.ts.map +0 -1
- package/dist/net/src/auth.js +0 -131
- package/dist/net/src/auth.js.map +0 -1
- package/dist/net/src/context.d.ts +0 -10
- package/dist/net/src/context.d.ts.map +0 -1
- package/dist/net/src/context.js +0 -2
- package/dist/net/src/context.js.map +0 -1
- package/dist/net/src/count.d.ts +0 -30
- package/dist/net/src/count.d.ts.map +0 -1
- package/dist/net/src/count.js +0 -97
- package/dist/net/src/count.js.map +0 -1
- package/dist/net/src/diff.d.ts +0 -57
- package/dist/net/src/diff.d.ts.map +0 -1
- package/dist/net/src/diff.js +0 -169
- package/dist/net/src/diff.js.map +0 -1
- package/dist/net/src/index.d.ts +0 -17
- package/dist/net/src/index.d.ts.map +0 -1
- package/dist/net/src/index.js +0 -17
- package/dist/net/src/index.js.map +0 -1
- package/dist/net/src/message.d.ts +0 -106
- package/dist/net/src/message.d.ts.map +0 -1
- package/dist/net/src/message.js +0 -98
- package/dist/net/src/message.js.map +0 -1
- package/dist/net/src/multiplex.d.ts +0 -14
- package/dist/net/src/multiplex.d.ts.map +0 -1
- package/dist/net/src/multiplex.js +0 -219
- package/dist/net/src/multiplex.js.map +0 -1
- package/dist/net/src/negentropy.d.ts +0 -48
- package/dist/net/src/negentropy.d.ts.map +0 -1
- package/dist/net/src/negentropy.js +0 -528
- package/dist/net/src/negentropy.js.map +0 -1
- package/dist/net/src/policy.d.ts +0 -63
- package/dist/net/src/policy.d.ts.map +0 -1
- package/dist/net/src/policy.js +0 -388
- package/dist/net/src/policy.js.map +0 -1
- package/dist/net/src/pool.d.ts +0 -15
- package/dist/net/src/pool.d.ts.map +0 -1
- package/dist/net/src/pool.js +0 -51
- package/dist/net/src/pool.js.map +0 -1
- package/dist/net/src/publish.d.ts +0 -47
- package/dist/net/src/publish.d.ts.map +0 -1
- package/dist/net/src/publish.js +0 -112
- package/dist/net/src/publish.js.map +0 -1
- package/dist/net/src/repository.d.ts.map +0 -1
- package/dist/net/src/repository.js.map +0 -1
- package/dist/net/src/request.d.ts +0 -38
- package/dist/net/src/request.d.ts.map +0 -1
- package/dist/net/src/request.js +0 -220
- package/dist/net/src/request.js.map +0 -1
- package/dist/net/src/socket.d.ts +0 -52
- package/dist/net/src/socket.d.ts.map +0 -1
- package/dist/net/src/socket.js +0 -134
- package/dist/net/src/socket.js.map +0 -1
- package/dist/net/src/tracker.d.ts.map +0 -1
- package/dist/net/src/tracker.js.map +0 -1
- package/dist/net/src/util.d.ts +0 -18
- package/dist/net/src/util.d.ts.map +0 -1
- package/dist/net/src/util.js +0 -25
- package/dist/net/src/util.js.map +0 -1
- package/dist/net/src/wrapManager.d.ts +0 -34
- package/dist/net/src/wrapManager.d.ts.map +0 -1
- package/dist/net/src/wrapManager.js +0 -79
- package/dist/net/src/wrapManager.js.map +0 -1
- package/dist/store/src/repository.d.ts.map +0 -1
- package/dist/store/src/repository.js +0 -580
- package/dist/store/src/repository.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../../../../src/repository/adapters/sqlite/repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ExtendSqlite, SqliteExtension } from "./protocol.js";
|
|
2
|
+
/** Serves `connectSqlite` from a dedicated worker, with `extend`'s methods over the database. */
|
|
3
|
+
export declare const serveSqlite: <M extends SqliteExtension>(extend?: ExtendSqlite<M>) => void;
|
|
4
|
+
//# sourceMappingURL=serve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../../../../../src/repository/adapters/sqlite/serve.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EAIhB,MAAM,eAAe,CAAA;AAsBtB,iGAAiG;AACjG,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,eAAe,EAAE,SAAS,YAAY,CAAC,CAAC,CAAC,SAgB9E,CAAA"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { sleep } from "@welshman/lib";
|
|
2
|
+
import { SqliteEngine } from "./engine.js";
|
|
3
|
+
import { createSqliteHandler } from "./protocol.js";
|
|
4
|
+
import { openWasmDatabase } from "./wasm.js";
|
|
5
|
+
// Without OPFS sync access handles, or barred from OPFS as in Firefox's private windows, no wait helps
|
|
6
|
+
const canOpen = (error) => typeof FileSystemFileHandle !== "undefined" &&
|
|
7
|
+
"createSyncAccessHandle" in FileSystemFileHandle.prototype &&
|
|
8
|
+
!(error instanceof DOMException && error.name === "SecurityError");
|
|
9
|
+
// The tab that led before may not have let go of the database yet
|
|
10
|
+
const open = async (name) => {
|
|
11
|
+
for (let attempt = 0;; attempt++) {
|
|
12
|
+
try {
|
|
13
|
+
return await openWasmDatabase(name);
|
|
14
|
+
}
|
|
15
|
+
catch (e) {
|
|
16
|
+
if (attempt >= 10 || !canOpen(e))
|
|
17
|
+
throw e;
|
|
18
|
+
await sleep(100 * 2 ** Math.min(attempt, 5));
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
/** Serves `connectSqlite` from a dedicated worker, with `extend`'s methods over the database. */
|
|
23
|
+
export const serveSqlite = (extend) => {
|
|
24
|
+
let handle;
|
|
25
|
+
self.onmessage = async ({ data }) => {
|
|
26
|
+
if ("type" in data) {
|
|
27
|
+
handle = open(data.name).then(db => createSqliteHandler(new SqliteEngine(db), extend));
|
|
28
|
+
}
|
|
29
|
+
else if (handle) {
|
|
30
|
+
try {
|
|
31
|
+
const respond = await handle;
|
|
32
|
+
self.postMessage(respond(data));
|
|
33
|
+
}
|
|
34
|
+
catch (e) {
|
|
35
|
+
self.postMessage({ response: { id: data.id, error: String(e) } });
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=serve.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../../../../src/repository/adapters/sqlite/serve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,eAAe,CAAA;AACnC,OAAO,EAAC,YAAY,EAAC,MAAM,aAAa,CAAA;AACxC,OAAO,EAAC,mBAAmB,EAAC,MAAM,eAAe,CAAA;AAQjD,OAAO,EAAC,gBAAgB,EAAC,MAAM,WAAW,CAAA;AAE1C,uGAAuG;AACvG,MAAM,OAAO,GAAG,CAAC,KAAc,EAAE,EAAE,CACjC,OAAO,oBAAoB,KAAK,WAAW;IAC3C,wBAAwB,IAAI,oBAAoB,CAAC,SAAS;IAC1D,CAAC,CAAC,KAAK,YAAY,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC,CAAA;AAEpE,kEAAkE;AAClE,MAAM,IAAI,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;IAClC,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,EAAE,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,OAAO,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAA;QACrC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,OAAO,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;gBAAE,MAAM,CAAC,CAAA;YAEzC,MAAM,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;QAC9C,CAAC;IACH,CAAC;AACH,CAAC,CAAA;AAED,iGAAiG;AACjG,MAAM,CAAC,MAAM,WAAW,GAAG,CAA4B,MAAwB,EAAE,EAAE;IACjF,IAAI,MAAmE,CAAA;IAEvE,IAAI,CAAC,SAAS,GAAG,KAAK,EAAE,EAAC,IAAI,EAA2C,EAAE,EAAE;QAC1E,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,mBAAmB,CAAC,IAAI,YAAY,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;QACxF,CAAC;aAAM,IAAI,MAAM,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAA;gBAE5B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;YACjC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,WAAW,CAAC,EAAC,QAAQ,EAAE,EAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAC,EAAuB,CAAC,CAAA;YACrF,CAAC;QACH,CAAC;IACH,CAAC,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Database } from "@sqlite.org/sqlite-wasm";
|
|
2
|
+
import type { SqliteDatabase } from "./engine.js";
|
|
3
|
+
/** Adapt a sqlite-wasm database to the engine, preparing each statement once. */
|
|
4
|
+
export declare const wasmDatabase: (db: Database) => SqliteDatabase;
|
|
5
|
+
/** Open `name` in OPFS through its own SAH pool, so tabs can lead different databases at once. */
|
|
6
|
+
export declare const openWasmDatabase: (name: string) => Promise<SqliteDatabase>;
|
|
7
|
+
//# sourceMappingURL=wasm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wasm.d.ts","sourceRoot":"","sources":["../../../../../../src/repository/adapters/sqlite/wasm.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,QAAQ,EAAoB,MAAM,yBAAyB,CAAA;AACxE,OAAO,KAAK,EAAW,cAAc,EAAC,MAAM,aAAa,CAAA;AAEzD,iFAAiF;AACjF,eAAO,MAAM,YAAY,GAAI,IAAI,QAAQ,KAAG,cAuD3C,CAAA;AAED,kGAAkG;AAClG,eAAO,MAAM,gBAAgB,GAAU,MAAM,MAAM,4BAQlD,CAAA"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import sqlite3InitModule from "@sqlite.org/sqlite-wasm";
|
|
2
|
+
/** Adapt a sqlite-wasm database to the engine, preparing each statement once. */
|
|
3
|
+
export const wasmDatabase = (db) => {
|
|
4
|
+
const statements = new Map();
|
|
5
|
+
const prepare = (sql, params) => {
|
|
6
|
+
let statement = statements.get(sql);
|
|
7
|
+
if (!statement) {
|
|
8
|
+
statement = db.prepare(sql);
|
|
9
|
+
statements.set(sql, statement);
|
|
10
|
+
}
|
|
11
|
+
// sqlite-wasm refuses an empty binding for a statement without parameters
|
|
12
|
+
if (params.length > 0) {
|
|
13
|
+
statement.bind(params);
|
|
14
|
+
}
|
|
15
|
+
return statement;
|
|
16
|
+
};
|
|
17
|
+
return {
|
|
18
|
+
exec: sql => {
|
|
19
|
+
db.exec(sql);
|
|
20
|
+
},
|
|
21
|
+
// A statement whose step throws must still be reset, or the next use of it can't bind
|
|
22
|
+
run: (sql, params = []) => {
|
|
23
|
+
const statement = prepare(sql, params);
|
|
24
|
+
try {
|
|
25
|
+
statement.step();
|
|
26
|
+
}
|
|
27
|
+
finally {
|
|
28
|
+
statement.reset(true);
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
all: (sql, params = []) => {
|
|
32
|
+
const statement = prepare(sql, params);
|
|
33
|
+
const rows = [];
|
|
34
|
+
try {
|
|
35
|
+
while (statement.step()) {
|
|
36
|
+
rows.push(statement.get({}));
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
finally {
|
|
40
|
+
statement.reset(true);
|
|
41
|
+
}
|
|
42
|
+
return rows;
|
|
43
|
+
},
|
|
44
|
+
define: (name, f) => {
|
|
45
|
+
db.createFunction(name, {
|
|
46
|
+
xFunc: (_context, value) => f(value),
|
|
47
|
+
arity: 1,
|
|
48
|
+
deterministic: true,
|
|
49
|
+
});
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
/** Open `name` in OPFS through its own SAH pool, so tabs can lead different databases at once. */
|
|
54
|
+
export const openWasmDatabase = async (name) => {
|
|
55
|
+
const sqlite3 = await sqlite3InitModule();
|
|
56
|
+
const pool = await sqlite3.installOpfsSAHPoolVfs({ name: `welshman-${name}` });
|
|
57
|
+
const db = new pool.OpfsSAHPoolDb(`/${name}.sqlite3`);
|
|
58
|
+
db.exec("PRAGMA journal_mode = TRUNCATE; PRAGMA synchronous = NORMAL; PRAGMA temp_store = MEMORY");
|
|
59
|
+
return wasmDatabase(db);
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=wasm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wasm.js","sourceRoot":"","sources":["../../../../../../src/repository/adapters/sqlite/wasm.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,yBAAyB,CAAA;AAIvD,iFAAiF;AACjF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAY,EAAkB,EAAE;IAC3D,MAAM,UAAU,GAAG,IAAI,GAAG,EAA6B,CAAA;IAEvD,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,MAAkB,EAAE,EAAE;QAClD,IAAI,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAEnC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YAC3B,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;QAChC,CAAC;QAED,0EAA0E;QAC1E,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACxB,CAAC;QAED,OAAO,SAAS,CAAA;IAClB,CAAC,CAAA;IAED,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,EAAE;YACV,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACd,CAAC;QACD,sFAAsF;QACtF,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,EAAE,EAAE;YACxB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YAEtC,IAAI,CAAC;gBACH,SAAS,CAAC,IAAI,EAAE,CAAA;YAClB,CAAC;oBAAS,CAAC;gBACT,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACvB,CAAC;QACH,CAAC;QACD,GAAG,EAAE,CAAI,GAAW,EAAE,SAAqB,EAAE,EAAE,EAAE;YAC/C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YACtC,MAAM,IAAI,GAAQ,EAAE,CAAA;YAEpB,IAAI,CAAC;gBACH,OAAO,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;oBACxB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAM,CAAC,CAAA;gBACnC,CAAC;YACH,CAAC;oBAAS,CAAC;gBACT,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YACvB,CAAC;YAED,OAAO,IAAI,CAAA;QACb,CAAC;QACD,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YAClB,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE;gBACtB,KAAK,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,KAAiB,CAAC;gBAChD,KAAK,EAAE,CAAC;gBACR,aAAa,EAAE,IAAI;aACpB,CAAC,CAAA;QACJ,CAAC;KACF,CAAA;AACH,CAAC,CAAA;AAED,kGAAkG;AAClG,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE;IACrD,MAAM,OAAO,GAAG,MAAM,iBAAiB,EAAE,CAAA;IACzC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,qBAAqB,CAAC,EAAC,IAAI,EAAE,YAAY,IAAI,EAAE,EAAC,CAAC,CAAA;IAC5E,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,UAAU,CAAC,CAAA;IAErD,EAAE,CAAC,IAAI,CAAC,yFAAyF,CAAC,CAAA;IAElG,OAAO,YAAY,CAAC,EAAE,CAAC,CAAA;AACzB,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../../../../src/repository/adapters/sqlite/worker.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"worker.js","sourceRoot":"","sources":["../../../../../../src/repository/adapters/sqlite/worker.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,OAAO,EAAC,WAAW,EAAC,MAAM,YAAY,CAAA;AAEtC,WAAW,EAAE,CAAA"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { Maybe } from "@welshman/lib";
|
|
2
|
+
import type { Filter, TrustedEvent } from "@welshman/util";
|
|
3
|
+
import type { Tracker } from "../tracker.js";
|
|
4
|
+
import type { Unsubscriber } from "../svelte.js";
|
|
5
|
+
export type RepositoryUpdate = {
|
|
6
|
+
added: TrustedEvent[];
|
|
7
|
+
removed: Set<string>;
|
|
8
|
+
};
|
|
9
|
+
export declare const mergeRepositoryUpdates: (updates: RepositoryUpdate[]) => RepositoryUpdate;
|
|
10
|
+
export type QueryOptions = {
|
|
11
|
+
includeDeleted?: boolean;
|
|
12
|
+
includeExpired?: boolean;
|
|
13
|
+
/** Only events the repository's tracker has seen on this relay, applied before any limit. */
|
|
14
|
+
relay?: string;
|
|
15
|
+
/** Rejects the query with the signal's reason if it aborts before the repository answers. */
|
|
16
|
+
signal?: AbortSignal;
|
|
17
|
+
};
|
|
18
|
+
export type CountTagsOptions = Pick<QueryOptions, "signal">;
|
|
19
|
+
export type RepositoryEvents = {
|
|
20
|
+
update: [RepositoryUpdate];
|
|
21
|
+
clear: [];
|
|
22
|
+
};
|
|
23
|
+
/** Where an app's events live. Reads are async; `tracker` and `isDeleted` are synchronous. */
|
|
24
|
+
export interface Repository {
|
|
25
|
+
tracker: Tracker;
|
|
26
|
+
query(filters: Filter[], options?: QueryOptions): Promise<TrustedEvent[]>;
|
|
27
|
+
count(filters: Filter[], options?: QueryOptions): Promise<number>;
|
|
28
|
+
/** How many visible events carry each value of the single-letter tag `name`. */
|
|
29
|
+
countTags(name: string, options?: CountTagsOptions): Promise<Map<string, number>>;
|
|
30
|
+
getEvent(idOrAddress: string): Promise<Maybe<TrustedEvent>>;
|
|
31
|
+
isDeleted(event: TrustedEvent): boolean;
|
|
32
|
+
/** Stores `event`, resolving whether a query would now return it. */
|
|
33
|
+
publish(event: TrustedEvent): Promise<boolean>;
|
|
34
|
+
removeEvent(idOrAddress: string): Promise<void>;
|
|
35
|
+
/** Settles once every write so far is reported, or is undefined when none is outstanding. */
|
|
36
|
+
pendingWrites(): Maybe<Promise<void>>;
|
|
37
|
+
clear(): Promise<void>;
|
|
38
|
+
observe(options: ObserveOptions): Unsubscriber;
|
|
39
|
+
on<E extends keyof RepositoryEvents>(event: E, listener: (...args: RepositoryEvents[E]) => void): unknown;
|
|
40
|
+
off<E extends keyof RepositoryEvents>(event: E, listener: (...args: RepositoryEvents[E]) => void): unknown;
|
|
41
|
+
}
|
|
42
|
+
export type ObserveOptions = {
|
|
43
|
+
filters: Filter[];
|
|
44
|
+
onUpdate: (update: RepositoryUpdate) => void;
|
|
45
|
+
/** Receives the read's events reconciled with changes made meanwhile, and again after a clear. */
|
|
46
|
+
onLoad?: (events: TrustedEvent[]) => void;
|
|
47
|
+
/** Receives a read that fails. Without it, the failure is logged. */
|
|
48
|
+
onError?: (error: unknown) => void;
|
|
49
|
+
/** Also reports deleted events, and no removals. */
|
|
50
|
+
includeDeleted?: boolean;
|
|
51
|
+
/** Only events the tracker has seen on this relay. */
|
|
52
|
+
relay?: string;
|
|
53
|
+
};
|
|
54
|
+
/** Reads the stored events matching `filters`, then reports each change until unsubscribed. */
|
|
55
|
+
export declare const observeRepository: (repository: Repository, { filters, onUpdate, onLoad, onError, includeDeleted, relay }: ObserveOptions) => Unsubscriber;
|
|
56
|
+
export type DeleteRecord = Pick<TrustedEvent, "id" | "pubkey" | "created_at">;
|
|
57
|
+
/** Who deleted what: each id or address a delete names, and what each delete named. */
|
|
58
|
+
export declare class DeleteIndex {
|
|
59
|
+
deletes: Map<string, DeleteRecord[]>;
|
|
60
|
+
deletedBy: Map<string, string[]>;
|
|
61
|
+
add: (event: DeleteRecord, key: string) => void;
|
|
62
|
+
withdraw: (id: string) => string[];
|
|
63
|
+
isDeletedById: (event: TrustedEvent) => boolean;
|
|
64
|
+
isDeletedByAddress: (event: TrustedEvent) => boolean;
|
|
65
|
+
isDeleted: (event: TrustedEvent) => boolean;
|
|
66
|
+
clear: () => void;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../src/repository/core.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { on, call, pick, pushToMapKey, mapPop, some, spec } from "@welshman/lib";
|
|
2
|
+
import { getAddress, isReplaceable, matchFilters } from "@welshman/util";
|
|
3
|
+
export const mergeRepositoryUpdates = (updates) => {
|
|
4
|
+
const addedById = new Map();
|
|
5
|
+
const removed = new Set();
|
|
6
|
+
for (const update of updates) {
|
|
7
|
+
for (const event of update.added) {
|
|
8
|
+
addedById.set(event.id, event);
|
|
9
|
+
removed.delete(event.id);
|
|
10
|
+
}
|
|
11
|
+
for (const id of update.removed) {
|
|
12
|
+
removed.add(id);
|
|
13
|
+
addedById.delete(id);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return { added: Array.from(addedById.values()), removed };
|
|
17
|
+
};
|
|
18
|
+
const onReadError = (error) => console.error("Failed to read from the repository", error);
|
|
19
|
+
/** What changed while a read was in flight, which the read's older answer must not undo. */
|
|
20
|
+
class InFlight {
|
|
21
|
+
added = new Map();
|
|
22
|
+
removed = new Set();
|
|
23
|
+
add = (event) => {
|
|
24
|
+
this.added.set(event.id, event);
|
|
25
|
+
this.removed.delete(event.id);
|
|
26
|
+
};
|
|
27
|
+
remove = (id) => {
|
|
28
|
+
this.removed.add(id);
|
|
29
|
+
this.added.delete(id);
|
|
30
|
+
};
|
|
31
|
+
unreported = (events) => events.filter(event => !this.removed.has(event.id) && !this.added.has(event.id));
|
|
32
|
+
settle = (events) => [...this.added.values(), ...this.unreported(events)];
|
|
33
|
+
}
|
|
34
|
+
/** Reads the stored events matching `filters`, then reports each change until unsubscribed. */
|
|
35
|
+
export const observeRepository = (repository, { filters, onUpdate, onLoad, onError = onReadError, includeDeleted, relay }) => {
|
|
36
|
+
const matches = (event) => matchFilters(filters, event) && (!relay || repository.tracker.hasRelay(event.id, relay));
|
|
37
|
+
let controller = new AbortController();
|
|
38
|
+
let inFlight;
|
|
39
|
+
// Read what's stored, superseding any read still in flight
|
|
40
|
+
const load = () => {
|
|
41
|
+
const current = new InFlight();
|
|
42
|
+
controller.abort();
|
|
43
|
+
controller = new AbortController();
|
|
44
|
+
inFlight = current;
|
|
45
|
+
const { signal } = controller;
|
|
46
|
+
repository.query(filters, { includeDeleted, relay, signal }).then(events => {
|
|
47
|
+
if (!signal.aborted) {
|
|
48
|
+
inFlight = undefined;
|
|
49
|
+
if (onLoad) {
|
|
50
|
+
onLoad(current.settle(events));
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
const added = current.unreported(events);
|
|
54
|
+
if (added.length > 0) {
|
|
55
|
+
onUpdate({ added, removed: new Set() });
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}, error => {
|
|
60
|
+
if (!signal.aborted) {
|
|
61
|
+
onError(error);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
const unsubscribers = [
|
|
66
|
+
on(repository, "update", ({ added, removed }) => {
|
|
67
|
+
const update = {
|
|
68
|
+
added: added.filter(matches),
|
|
69
|
+
removed: includeDeleted ? new Set() : removed,
|
|
70
|
+
};
|
|
71
|
+
for (const event of update.added) {
|
|
72
|
+
inFlight?.add(event);
|
|
73
|
+
}
|
|
74
|
+
for (const id of update.removed) {
|
|
75
|
+
inFlight?.remove(id);
|
|
76
|
+
}
|
|
77
|
+
if (update.added.length > 0 || update.removed.size > 0) {
|
|
78
|
+
onUpdate(update);
|
|
79
|
+
}
|
|
80
|
+
}),
|
|
81
|
+
// A clear leaves what was read stale, so read again
|
|
82
|
+
on(repository, "clear", load),
|
|
83
|
+
];
|
|
84
|
+
load();
|
|
85
|
+
return () => {
|
|
86
|
+
controller.abort();
|
|
87
|
+
unsubscribers.forEach(call);
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
/** Who deleted what: each id or address a delete names, and what each delete named. */
|
|
91
|
+
export class DeleteIndex {
|
|
92
|
+
deletes = new Map();
|
|
93
|
+
deletedBy = new Map();
|
|
94
|
+
add = (event, key) => {
|
|
95
|
+
pushToMapKey(this.deletes, key, pick(["id", "pubkey", "created_at"], event));
|
|
96
|
+
pushToMapKey(this.deletedBy, event.id, key);
|
|
97
|
+
};
|
|
98
|
+
// Withdraw every delete asserted by `id`, returning the ids and addresses it had named
|
|
99
|
+
withdraw = (id) => {
|
|
100
|
+
const keys = mapPop(id, this.deletedBy) || [];
|
|
101
|
+
for (const key of keys) {
|
|
102
|
+
const records = (this.deletes.get(key) || []).filter(record => record.id !== id);
|
|
103
|
+
if (records.length > 0) {
|
|
104
|
+
this.deletes.set(key, records);
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
this.deletes.delete(key);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return keys;
|
|
111
|
+
};
|
|
112
|
+
// No created_at check, since an id has no newer version and a same-second delete must apply
|
|
113
|
+
isDeletedById = (event) => some(spec({ pubkey: event.pubkey }), this.deletes.get(event.id) || []);
|
|
114
|
+
// A version published after the delete is not the one it named
|
|
115
|
+
isDeletedByAddress = (event) => isReplaceable(event) &&
|
|
116
|
+
some(({ pubkey, created_at }) => pubkey === event.pubkey && created_at > event.created_at, this.deletes.get(getAddress(event)) || []);
|
|
117
|
+
isDeleted = (event) => this.isDeletedById(event) || this.isDeletedByAddress(event);
|
|
118
|
+
clear = () => {
|
|
119
|
+
this.deletes.clear();
|
|
120
|
+
this.deletedBy.clear();
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=core.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../src/repository/core.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export type Subscriber<T> = (value: T) => void;
|
|
2
|
+
export type Unsubscriber = () => void;
|
|
3
|
+
export type Updater<T> = (value: T) => T;
|
|
4
|
+
export type StartStopNotifier<T> = (set: (value: T) => void, update: (fn: Updater<T>) => void) => void | (() => void);
|
|
5
|
+
export interface Readable<T> {
|
|
6
|
+
subscribe(this: void, run: Subscriber<T>, invalidate?: () => void): Unsubscriber;
|
|
7
|
+
}
|
|
8
|
+
export interface Writable<T> extends Readable<T> {
|
|
9
|
+
set(this: void, value: T): void;
|
|
10
|
+
update(this: void, updater: Updater<T>): void;
|
|
11
|
+
}
|
|
12
|
+
export type Stores = Readable<any> | [Readable<any>, ...Array<Readable<any>>] | Array<Readable<any>>;
|
|
13
|
+
export type StoresValues<T> = T extends Readable<infer U> ? U : {
|
|
14
|
+
[K in keyof T]: T[K] extends Readable<infer U> ? U : never;
|
|
15
|
+
};
|
|
16
|
+
export declare function writable<T>(value?: T, start?: StartStopNotifier<T>): Writable<T>;
|
|
17
|
+
export declare function readable<T>(value?: T, start?: StartStopNotifier<T>): Readable<T>;
|
|
18
|
+
export declare function derived<S extends Stores, T>(stores: S, fn: (values: StoresValues<S>, set: (value: T) => void, update: (fn: Updater<T>) => void) => Unsubscriber | void, initialValue?: T): Readable<T>;
|
|
19
|
+
export declare function derived<S extends Stores, T>(stores: S, fn: (values: StoresValues<S>) => T, initialValue?: T): Readable<T>;
|
|
20
|
+
export declare const readonly: <T>(store: Readable<T>) => Readable<T>;
|
|
21
|
+
export declare const get: <T>(store: Readable<T>) => T;
|
|
22
|
+
//# sourceMappingURL=svelte.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"svelte.d.ts","sourceRoot":"","sources":["../../../src/svelte.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA;AAE9C,MAAM,MAAM,YAAY,GAAG,MAAM,IAAI,CAAA;AAErC,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAA;AAExC,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CACjC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,EACvB,MAAM,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,KAC7B,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAA;AAExB,MAAM,WAAW,QAAQ,CAAC,CAAC;IACzB,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,YAAY,CAAA;CACjF;AAED,MAAM,WAAW,QAAQ,CAAC,CAAC,CAAE,SAAQ,QAAQ,CAAC,CAAC,CAAC;IAC9C,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAA;IAC/B,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;CAC9C;AAED,MAAM,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;AAEpG,MAAM,MAAM,YAAY,CAAC,CAAC,IACxB,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG;KAAE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CAAC,CAAA;AAahG,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,KAAK,GAAE,iBAAiB,CAAC,CAAC,CAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,CAqDtF;AAED,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAEhF;AAED,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EACzC,MAAM,EAAE,CAAC,EACT,EAAE,EAAE,CACF,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,EACvB,MAAM,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,KAC7B,YAAY,GAAG,IAAI,EACxB,YAAY,CAAC,EAAE,CAAC,GACf,QAAQ,CAAC,CAAC,CAAC,CAAA;AACd,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,EACzC,MAAM,EAAE,CAAC,EACT,EAAE,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,EAClC,YAAY,CAAC,EAAE,CAAC,GACf,QAAQ,CAAC,CAAC,CAAC,CAAA;AA4Dd,eAAO,MAAM,QAAQ,GAAI,CAAC,EAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAG,QAAQ,CAAC,CAAC,CAAmC,CAAA;AAE9F,eAAO,MAAM,GAAG,GAAI,CAAC,EAAE,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAG,CAM3C,CAAA"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
// Adapted from svelte/store (MIT, Copyright (c) 2016-2025 Svelte Contributors)
|
|
2
|
+
const noop = () => { };
|
|
3
|
+
// Objects and functions always notify, since they may have been mutated in place
|
|
4
|
+
const safeNotEqual = (a, b) => a != a ? b == b : a !== b || (a !== null && typeof a === "object") || typeof a === "function";
|
|
5
|
+
// Shared across stores so a set inside a subscriber runs after the current round of notifications
|
|
6
|
+
const subscriberQueue = [];
|
|
7
|
+
export function writable(value, start = noop) {
|
|
8
|
+
let stop;
|
|
9
|
+
const subscribers = new Set();
|
|
10
|
+
function set(newValue) {
|
|
11
|
+
if (safeNotEqual(value, newValue)) {
|
|
12
|
+
value = newValue;
|
|
13
|
+
if (stop) {
|
|
14
|
+
const runQueue = !subscriberQueue.length;
|
|
15
|
+
for (const subscriber of subscribers) {
|
|
16
|
+
subscriber[1]();
|
|
17
|
+
subscriberQueue.push(subscriber, value);
|
|
18
|
+
}
|
|
19
|
+
if (runQueue) {
|
|
20
|
+
for (let i = 0; i < subscriberQueue.length; i += 2) {
|
|
21
|
+
subscriberQueue[i][0](subscriberQueue[i + 1]);
|
|
22
|
+
}
|
|
23
|
+
subscriberQueue.length = 0;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function update(fn) {
|
|
29
|
+
set(fn(value));
|
|
30
|
+
}
|
|
31
|
+
function subscribe(run, invalidate = noop) {
|
|
32
|
+
const subscriber = [run, invalidate];
|
|
33
|
+
subscribers.add(subscriber);
|
|
34
|
+
if (subscribers.size === 1) {
|
|
35
|
+
stop = start(set, update) || noop;
|
|
36
|
+
}
|
|
37
|
+
run(value);
|
|
38
|
+
return () => {
|
|
39
|
+
subscribers.delete(subscriber);
|
|
40
|
+
if (subscribers.size === 0 && stop) {
|
|
41
|
+
stop();
|
|
42
|
+
stop = undefined;
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
return { set, update, subscribe };
|
|
47
|
+
}
|
|
48
|
+
export function readable(value, start) {
|
|
49
|
+
return { subscribe: writable(value, start).subscribe };
|
|
50
|
+
}
|
|
51
|
+
export function derived(stores, fn, initialValue) {
|
|
52
|
+
const single = !Array.isArray(stores);
|
|
53
|
+
const storesArray = single ? [stores] : stores;
|
|
54
|
+
if (!storesArray.every(Boolean)) {
|
|
55
|
+
throw new Error("derived() expects stores as input, got a falsy value");
|
|
56
|
+
}
|
|
57
|
+
const auto = fn.length < 2;
|
|
58
|
+
return readable(initialValue, (set, update) => {
|
|
59
|
+
const values = [];
|
|
60
|
+
let started = false;
|
|
61
|
+
let pending = 0;
|
|
62
|
+
let cleanup = noop;
|
|
63
|
+
const sync = () => {
|
|
64
|
+
if (!pending) {
|
|
65
|
+
cleanup();
|
|
66
|
+
const result = fn(single ? values[0] : values, set, update);
|
|
67
|
+
if (auto) {
|
|
68
|
+
set(result);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
cleanup = typeof result === "function" ? result : noop;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
const unsubscribers = storesArray.map((store, i) => store.subscribe(value => {
|
|
76
|
+
values[i] = value;
|
|
77
|
+
pending &= ~(1 << i);
|
|
78
|
+
if (started) {
|
|
79
|
+
sync();
|
|
80
|
+
}
|
|
81
|
+
}, () => {
|
|
82
|
+
pending |= 1 << i;
|
|
83
|
+
}));
|
|
84
|
+
started = true;
|
|
85
|
+
sync();
|
|
86
|
+
return () => {
|
|
87
|
+
unsubscribers.forEach(unsubscribe => unsubscribe());
|
|
88
|
+
cleanup();
|
|
89
|
+
// A notification already queued can still arrive after this derived store stopped
|
|
90
|
+
started = false;
|
|
91
|
+
};
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
export const readonly = (store) => ({ subscribe: store.subscribe });
|
|
95
|
+
export const get = (store) => {
|
|
96
|
+
let value;
|
|
97
|
+
store.subscribe(_value => (value = _value))();
|
|
98
|
+
return value;
|
|
99
|
+
};
|
|
100
|
+
//# sourceMappingURL=svelte.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"svelte.js","sourceRoot":"","sources":["../../../src/svelte.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synced.d.ts","sourceRoot":"","sources":["../../../src/synced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,QAAQ,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"synced.d.ts","sourceRoot":"","sources":["../../../src/synced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,QAAQ,EAAC,MAAM,aAAa,CAAA;AAG9C,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IAClC,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAChD;AAED,eAAO,MAAM,oBAAoB,EAAE,eAGlC,CAAA;AAED,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAA;IAClB,OAAO,EAAE,eAAe,CAAA;CACzB;AAED,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG;IAAC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;CAAC,CAAA;AAE5D,eAAO,MAAM,IAAI,GAAU,CAAC,EAAE,yBAAuB,UAAU,CAAC,CAAC,CAAC,kBAUjE,CAAA;AAED,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,eAAe,CAAA;IACxB,YAAY,EAAE,CAAC,CAAA;CAChB;AAED,eAAO,MAAM,MAAM,GAAI,CAAC,EAAE,gCAA8B,YAAY,CAAC,CAAC,CAAC,cAMtE,CAAA"}
|
package/dist/store/src/synced.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"synced.js","sourceRoot":"","sources":["../../../src/synced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAW,MAAM,
|
|
1
|
+
{"version":3,"file":"synced.js","sourceRoot":"","sources":["../../../src/synced.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAW,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAC,OAAO,EAAE,OAAO,EAAC,MAAM,eAAe,CAAA;AAO9C,MAAM,CAAC,MAAM,oBAAoB,GAAoB;IACnD,GAAG,EAAE,KAAK,EAAE,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC;IACxC,GAAG,EAAE,KAAK,EAAE,GAAW,EAAE,KAAU,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC;CAC5D,CAAA;AAUD,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,EAAK,EAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAgB,EAAE,EAAE;IACpE,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAE1C,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;IACxB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,KAAQ,EAAE,EAAE;QACjC,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAC/B,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAQD,MAAM,CAAC,MAAM,MAAM,GAAG,CAAI,EAAC,GAAG,EAAE,OAAO,EAAE,YAAY,EAAkB,EAAE,EAAE;IACzE,MAAM,KAAK,GAAG,QAAQ,CAAI,YAAY,CAAc,CAAA;IAEpD,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,EAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAC,CAAC,CAAA;IAEzC,OAAO,KAAK,CAAA;AACd,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"throttle.d.ts","sourceRoot":"","sources":["../../../src/throttle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAa,MAAM,
|
|
1
|
+
{"version":3,"file":"throttle.d.ts","sourceRoot":"","sources":["../../../src/throttle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAa,MAAM,aAAa,CAAA;AAGhD,eAAO,MAAM,SAAS,GAAI,CAAC,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,MAAM,EAAE,OAAO,CAAC,MAQ1E,CAAA"}
|
|
@@ -10,6 +10,8 @@ export declare class Tracker extends Emitter {
|
|
|
10
10
|
removeRelay: (eventId: string, relay: string) => void;
|
|
11
11
|
track: (eventId: string, relay: string) => boolean;
|
|
12
12
|
copy: (eventId1: string, eventId2: string) => void;
|
|
13
|
+
/** Record relays an event was seen on before, as read back from storage, without emitting. */
|
|
14
|
+
hydrate: (eventId: string, relays: Iterable<string>) => void;
|
|
13
15
|
load: (relaysById: Tracker["relaysById"]) => void;
|
|
14
16
|
clear: () => void;
|
|
15
17
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../../../src/tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAc,MAAM,eAAe,CAAA;AAElD,qBAAa,OAAQ,SAAQ,OAAO;IAClC,UAAU,2BAAiC;IAC3C,UAAU,2BAAiC;;IAQ3C,MAAM,GAAI,OAAO,MAAM,iBAAoD;IAE3E,SAAS,GAAI,SAAS,MAAM,iBAAsD;IAElF,QAAQ,GAAI,SAAS,MAAM,EAAE,OAAO,MAAM,aAAuC;IAEjF,QAAQ,GAAI,SAAS,MAAM,EAAE,OAAO,MAAM,UAqBzC;IAED,WAAW,GAAI,SAAS,MAAM,EAAE,OAAO,MAAM,UAiB5C;IAED,KAAK,GAAI,SAAS,MAAM,EAAE,OAAO,MAAM,aAMtC;IAED,IAAI,GAAI,UAAU,MAAM,EAAE,UAAU,MAAM,UAIzC;IAED,8FAA8F;IAC9F,OAAO,GAAI,SAAS,MAAM,EAAE,QAAQ,QAAQ,CAAC,MAAM,CAAC,UAKnD;IAED,IAAI,GAAI,YAAY,OAAO,CAAC,YAAY,CAAC,UAMxC;IAED,KAAK,aAKJ;CACF"}
|
|
@@ -51,12 +51,16 @@ export class Tracker extends Emitter {
|
|
|
51
51
|
this.addRelay(eventId2, relay);
|
|
52
52
|
}
|
|
53
53
|
};
|
|
54
|
+
/** Record relays an event was seen on before, as read back from storage, without emitting. */
|
|
55
|
+
hydrate = (eventId, relays) => {
|
|
56
|
+
for (const relay of relays) {
|
|
57
|
+
addToMapKey(this.relaysById, eventId, relay);
|
|
58
|
+
addToMapKey(this.idsByRelay, relay, eventId);
|
|
59
|
+
}
|
|
60
|
+
};
|
|
54
61
|
load = (relaysById) => {
|
|
55
62
|
for (const [id, relays] of relaysById.entries()) {
|
|
56
|
-
|
|
57
|
-
addToMapKey(this.relaysById, id, relay);
|
|
58
|
-
addToMapKey(this.idsByRelay, relay, id);
|
|
59
|
-
}
|
|
63
|
+
this.hydrate(id, relays);
|
|
60
64
|
}
|
|
61
65
|
this.emit("load");
|
|
62
66
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracker.js","sourceRoot":"","sources":["../../../src/tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../src/index.ts","../src/misc.ts","../src/
|
|
1
|
+
{"root":["../src/derive.ts","../src/index.ts","../src/misc.ts","../src/svelte.ts","../src/synced.ts","../src/throttle.ts","../src/tracker.ts","../src/repository/core.ts","../src/repository/adapters/memory.ts","../src/repository/adapters/sqlite/engine.ts","../src/repository/adapters/sqlite/leader.ts","../src/repository/adapters/sqlite/protocol.ts","../src/repository/adapters/sqlite/repository.ts","../src/repository/adapters/sqlite/serve.ts","../src/repository/adapters/sqlite/wasm.ts","../src/repository/adapters/sqlite/worker.ts"],"version":"5.8.3"}
|