@welshman/app 0.4.7 → 0.5.1

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.
Files changed (43) hide show
  1. package/dist/app/src/index.d.ts +0 -2
  2. package/dist/app/src/index.d.ts.map +1 -1
  3. package/dist/app/src/index.js +0 -2
  4. package/dist/app/src/index.js.map +1 -1
  5. package/dist/app/src/relays.d.ts.map +1 -1
  6. package/dist/app/src/relays.js +20 -7
  7. package/dist/app/src/relays.js.map +1 -1
  8. package/dist/app/src/thunk.d.ts +8 -10
  9. package/dist/app/src/thunk.d.ts.map +1 -1
  10. package/dist/app/src/thunk.js +54 -56
  11. package/dist/app/src/thunk.js.map +1 -1
  12. package/dist/feeds/src/request.d.ts +1 -1
  13. package/dist/feeds/src/request.d.ts.map +1 -1
  14. package/dist/net/src/publish.d.ts +16 -15
  15. package/dist/net/src/publish.d.ts.map +1 -1
  16. package/dist/net/src/publish.js +43 -48
  17. package/dist/net/src/publish.js.map +1 -1
  18. package/dist/signer/src/signers/nip07.d.ts.map +1 -1
  19. package/dist/signer/src/signers/nip07.js +2 -1
  20. package/dist/signer/src/signers/nip07.js.map +1 -1
  21. package/dist/signer/src/util.js +1 -1
  22. package/dist/signer/src/util.js.map +1 -1
  23. package/dist/tsconfig.build.tsbuildinfo +1 -1
  24. package/dist/util/src/Blossom.d.ts +14 -5
  25. package/dist/util/src/Blossom.d.ts.map +1 -1
  26. package/dist/util/src/Blossom.js +29 -26
  27. package/dist/util/src/Blossom.js.map +1 -1
  28. package/dist/util/src/Events.d.ts.map +1 -1
  29. package/dist/util/src/Events.js +21 -7
  30. package/dist/util/src/Events.js.map +1 -1
  31. package/dist/util/src/Wallet.d.ts +9 -4
  32. package/dist/util/src/Wallet.d.ts.map +1 -1
  33. package/dist/util/src/Wallet.js +4 -1
  34. package/dist/util/src/Wallet.js.map +1 -1
  35. package/package.json +9 -10
  36. package/dist/app/src/storage.d.ts +0 -22
  37. package/dist/app/src/storage.d.ts.map +0 -1
  38. package/dist/app/src/storage.js +0 -81
  39. package/dist/app/src/storage.js.map +0 -1
  40. package/dist/app/src/storageAdapters.d.ts +0 -88
  41. package/dist/app/src/storageAdapters.d.ts.map +0 -1
  42. package/dist/app/src/storageAdapters.js +0 -181
  43. package/dist/app/src/storageAdapters.js.map +0 -1
@@ -1,81 +0,0 @@
1
- import { openDB, deleteDB } from "idb";
2
- import { writable } from "svelte/store";
3
- import { call, defer } from "@welshman/lib";
4
- import { withGetter } from "@welshman/store";
5
- export let db;
6
- export const ready = defer();
7
- export const dead = withGetter(writable(false));
8
- export const unsubscribers = [];
9
- export const getAll = async (name) => {
10
- await ready;
11
- const tx = db.transaction(name, "readwrite");
12
- const store = tx.objectStore(name);
13
- const result = await store.getAll();
14
- await tx.done;
15
- return result;
16
- };
17
- export const bulkPut = async (name, data) => {
18
- await ready;
19
- const tx = db.transaction(name, "readwrite");
20
- const store = tx.objectStore(name);
21
- await Promise.all(data.map(item => {
22
- try {
23
- store.put(item);
24
- }
25
- catch (e) {
26
- console.error(e, item);
27
- }
28
- }));
29
- await tx.done;
30
- };
31
- export const bulkDelete = async (name, ids) => {
32
- await ready;
33
- const tx = db.transaction(name, "readwrite");
34
- const store = tx.objectStore(name);
35
- await Promise.all(ids.map(id => store.delete(id)));
36
- await tx.done;
37
- };
38
- export const initStorage = async (name, version, adapters) => {
39
- if (!window.indexedDB)
40
- return;
41
- window.addEventListener("beforeunload", () => closeStorage());
42
- if (db) {
43
- throw new Error("Db initialized multiple times");
44
- }
45
- db = await openDB(name, version, {
46
- upgrade(db) {
47
- const names = Object.keys(adapters);
48
- for (const name of db.objectStoreNames) {
49
- if (!names.includes(name)) {
50
- db.deleteObjectStore(name);
51
- }
52
- }
53
- for (const [name, { keyPath }] of Object.entries(adapters)) {
54
- try {
55
- db.createObjectStore(name, { keyPath });
56
- }
57
- catch (e) {
58
- console.warn(e);
59
- }
60
- }
61
- },
62
- });
63
- ready.resolve();
64
- await Promise.all(Object.values(adapters).map(async (adapter) => {
65
- await adapter.init();
66
- unsubscribers.push(adapter.sync());
67
- }));
68
- };
69
- export const closeStorage = async () => {
70
- dead.set(true);
71
- unsubscribers.forEach(call);
72
- await db?.close();
73
- };
74
- export const clearStorage = async () => {
75
- if (db) {
76
- await closeStorage();
77
- await deleteDB(db.name);
78
- db = undefined; // force initStorage to run again in tests
79
- }
80
- };
81
- //# sourceMappingURL=storage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../../src/storage.ts"],"names":[],"mappings":"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"}
@@ -1,88 +0,0 @@
1
- import { TrustedEvent } from "@welshman/util";
2
- import { Tracker } from "@welshman/net";
3
- import { Repository } from "@welshman/relay";
4
- export type RelaysStorageAdapterOptions = {
5
- name: string;
6
- };
7
- export declare class RelaysStorageAdapter {
8
- readonly options: RelaysStorageAdapterOptions;
9
- keyPath: string;
10
- constructor(options: RelaysStorageAdapterOptions);
11
- init(): Promise<void>;
12
- sync(): import("svelte/store").Unsubscriber;
13
- }
14
- export type HandlesStorageAdapterOptions = {
15
- name: string;
16
- };
17
- export declare class HandlesStorageAdapter {
18
- readonly options: HandlesStorageAdapterOptions;
19
- keyPath: string;
20
- constructor(options: HandlesStorageAdapterOptions);
21
- init(): Promise<void>;
22
- sync(): () => void;
23
- }
24
- export type ZappersStorageAdapterOptions = {
25
- name: string;
26
- };
27
- export declare class ZappersStorageAdapter {
28
- readonly options: ZappersStorageAdapterOptions;
29
- keyPath: string;
30
- constructor(options: ZappersStorageAdapterOptions);
31
- init(): Promise<void>;
32
- sync(): () => void;
33
- }
34
- export type FreshnessStorageAdapterOptions = {
35
- name: string;
36
- };
37
- export declare class FreshnessStorageAdapter {
38
- readonly options: FreshnessStorageAdapterOptions;
39
- keyPath: string;
40
- constructor(options: FreshnessStorageAdapterOptions);
41
- init(): Promise<void>;
42
- sync(): () => void;
43
- }
44
- export type PlaintextStorageAdapterOptions = {
45
- name: string;
46
- };
47
- export declare class PlaintextStorageAdapter {
48
- readonly options: PlaintextStorageAdapterOptions;
49
- keyPath: string;
50
- constructor(options: PlaintextStorageAdapterOptions);
51
- init(): Promise<void>;
52
- sync(): () => void;
53
- }
54
- export type TrackerStorageAdapterOptions = {
55
- name: string;
56
- tracker: Tracker;
57
- };
58
- export declare class TrackerStorageAdapter {
59
- readonly options: TrackerStorageAdapterOptions;
60
- keyPath: string;
61
- constructor(options: TrackerStorageAdapterOptions);
62
- init(): Promise<void>;
63
- sync(): () => void;
64
- }
65
- export type EventsStorageAdapterOptions = {
66
- name: string;
67
- limit: number;
68
- repository: Repository;
69
- rankEvent: (event: TrustedEvent) => number;
70
- };
71
- export declare class EventsStorageAdapter {
72
- readonly options: EventsStorageAdapterOptions;
73
- keyPath: string;
74
- eventCount: number;
75
- constructor(options: EventsStorageAdapterOptions);
76
- init(): Promise<void>;
77
- sync(): () => Repository<TrustedEvent>;
78
- }
79
- export declare const defaultStorageAdapters: {
80
- relays: RelaysStorageAdapter;
81
- handles: HandlesStorageAdapter;
82
- zappers: ZappersStorageAdapter;
83
- freshness: FreshnessStorageAdapter;
84
- plaintext: PlaintextStorageAdapter;
85
- tracker: TrackerStorageAdapter;
86
- events: EventsStorageAdapter;
87
- };
88
- //# sourceMappingURL=storageAdapters.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storageAdapters.d.ts","sourceRoot":"","sources":["../../../src/storageAdapters.ts"],"names":[],"mappings":"AAEA,OAAO,EAQL,YAAY,EACb,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAA;AAErC,OAAO,EAAC,UAAU,EAAmB,MAAM,iBAAiB,CAAA;AAU5D,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,qBAAa,oBAAoB;IAGnB,QAAQ,CAAC,OAAO,EAAE,2BAA2B;IAFzD,OAAO,SAAQ;gBAEM,OAAO,EAAE,2BAA2B;IAEnD,IAAI;IAIV,IAAI;CAGL;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,qBAAa,qBAAqB;IAGpB,QAAQ,CAAC,OAAO,EAAE,4BAA4B;IAF1D,OAAO,SAAU;gBAEI,OAAO,EAAE,4BAA4B;IAEpD,IAAI;IAIV,IAAI;CAGL;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,qBAAa,qBAAqB;IAGpB,QAAQ,CAAC,OAAO,EAAE,4BAA4B;IAF1D,OAAO,SAAU;gBAEI,OAAO,EAAE,4BAA4B;IAEpD,IAAI;IAIV,IAAI;CAGL;AAED,MAAM,MAAM,8BAA8B,GAAG;IAC3C,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,qBAAa,uBAAuB;IAGtB,QAAQ,CAAC,OAAO,EAAE,8BAA8B;IAF5D,OAAO,SAAQ;gBAEM,OAAO,EAAE,8BAA8B;IAEtD,IAAI;IAMV,IAAI;CAUL;AAED,MAAM,MAAM,8BAA8B,GAAG;IAC3C,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,qBAAa,uBAAuB;IAGtB,QAAQ,CAAC,OAAO,EAAE,8BAA8B;IAF5D,OAAO,SAAQ;gBAEM,OAAO,EAAE,8BAA8B;IAEtD,IAAI;IAMV,IAAI;CAUL;AAED,MAAM,MAAM,4BAA4B,GAAG;IACzC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,qBAAa,qBAAqB;IAGpB,QAAQ,CAAC,OAAO,EAAE,4BAA4B;IAF1D,OAAO,SAAO;gBAEO,OAAO,EAAE,4BAA4B;IAEpD,IAAI;IAUV,IAAI;CAyBL;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,UAAU,CAAA;IACtB,SAAS,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,MAAM,CAAA;CAC3C,CAAA;AAED,qBAAa,oBAAoB;IAInB,QAAQ,CAAC,OAAO,EAAE,2BAA2B;IAHzD,OAAO,SAAO;IACd,UAAU,SAAI;gBAEO,OAAO,EAAE,2BAA2B;IAEnD,IAAI;IAQV,IAAI;CAiCL;AAED,eAAO,MAAM,sBAAsB;;;;;;;;CA6BlC,CAAA"}
@@ -1,181 +0,0 @@
1
- import { derived } from "svelte/store";
2
- import { batch, sortBy, call, fromPairs } from "@welshman/lib";
3
- import { PROFILE, FOLLOWS, MUTES, RELAYS, INBOX_RELAYS, getPubkeyTagValues, getListTags, } from "@welshman/util";
4
- import { throttled, withGetter } from "@welshman/store";
5
- import { freshness } from "@welshman/store";
6
- import { getAll, bulkPut, bulkDelete } from "./storage.js";
7
- import { relays } from "./relays.js";
8
- import { handles, onHandle } from "./handles.js";
9
- import { zappers, onZapper } from "./zappers.js";
10
- import { plaintext } from "./plaintext.js";
11
- import { repository, tracker } from "./core.js";
12
- import { sessions } from "./session.js";
13
- import { userFollows } from "./user.js";
14
- export class RelaysStorageAdapter {
15
- options;
16
- keyPath = "url";
17
- constructor(options) {
18
- this.options = options;
19
- }
20
- async init() {
21
- relays.set(await getAll(this.options.name));
22
- }
23
- sync() {
24
- return throttled(3000, relays).subscribe($relays => bulkPut(this.options.name, $relays));
25
- }
26
- }
27
- export class HandlesStorageAdapter {
28
- options;
29
- keyPath = "nip05";
30
- constructor(options) {
31
- this.options = options;
32
- }
33
- async init() {
34
- handles.set(await getAll(this.options.name));
35
- }
36
- sync() {
37
- return onHandle(batch(300, $handles => bulkPut(this.options.name, $handles)));
38
- }
39
- }
40
- export class ZappersStorageAdapter {
41
- options;
42
- keyPath = "lnurl";
43
- constructor(options) {
44
- this.options = options;
45
- }
46
- async init() {
47
- zappers.set(await getAll(this.options.name));
48
- }
49
- sync() {
50
- return onZapper(batch(300, $zappers => bulkPut(this.options.name, $zappers)));
51
- }
52
- }
53
- export class FreshnessStorageAdapter {
54
- options;
55
- keyPath = "key";
56
- constructor(options) {
57
- this.options = options;
58
- }
59
- async init() {
60
- const items = await getAll(this.options.name);
61
- freshness.set(fromPairs(items.map(item => [item.key, item.value])));
62
- }
63
- sync() {
64
- const interval = setInterval(() => {
65
- bulkPut(this.options.name, Object.entries(freshness.get()).map(([key, value]) => ({ key, value })));
66
- }, 10_000);
67
- return () => clearInterval(interval);
68
- }
69
- }
70
- export class PlaintextStorageAdapter {
71
- options;
72
- keyPath = "key";
73
- constructor(options) {
74
- this.options = options;
75
- }
76
- async init() {
77
- const items = await getAll(this.options.name);
78
- plaintext.set(fromPairs(items.map(item => [item.key, item.value])));
79
- }
80
- sync() {
81
- const interval = setInterval(() => {
82
- bulkPut(this.options.name, Object.entries(plaintext.get()).map(([key, value]) => ({ key, value })));
83
- }, 10_000);
84
- return () => clearInterval(interval);
85
- }
86
- }
87
- export class TrackerStorageAdapter {
88
- options;
89
- keyPath = "id";
90
- constructor(options) {
91
- this.options = options;
92
- }
93
- async init() {
94
- const relaysById = new Map();
95
- for (const { id, relays } of await getAll(this.options.name)) {
96
- relaysById.set(id, new Set(relays));
97
- }
98
- this.options.tracker.load(relaysById);
99
- }
100
- sync() {
101
- const updateOne = (id, relay) => bulkPut(this.options.name, [{ id, relays: Array.from(this.options.tracker.getRelays(id)) }]);
102
- const updateAll = () => bulkPut(this.options.name, Array.from(this.options.tracker.relaysById.entries()).map(([id, relays]) => ({
103
- id,
104
- relays: Array.from(relays),
105
- })));
106
- this.options.tracker.on("add", updateOne);
107
- this.options.tracker.on("remove", updateOne);
108
- this.options.tracker.on("load", updateAll);
109
- this.options.tracker.on("clear", updateAll);
110
- return () => {
111
- this.options.tracker.off("add", updateOne);
112
- this.options.tracker.off("remove", updateOne);
113
- this.options.tracker.off("load", updateAll);
114
- this.options.tracker.off("clear", updateAll);
115
- };
116
- }
117
- }
118
- export class EventsStorageAdapter {
119
- options;
120
- keyPath = "id";
121
- eventCount = 0;
122
- constructor(options) {
123
- this.options = options;
124
- }
125
- async init() {
126
- const events = await getAll(this.options.name);
127
- this.eventCount = events.length;
128
- this.options.repository.load(events);
129
- }
130
- sync() {
131
- const { name, limit, rankEvent } = this.options;
132
- const onUpdate = async ({ added, removed }) => {
133
- // Only add events we want to keep
134
- const keep = added.filter(e => rankEvent(e) > 0);
135
- // Add new events
136
- if (keep.length > 0) {
137
- await bulkPut(name, keep);
138
- }
139
- // If we're well above our retention limit, drop lowest-ranked events
140
- if (this.eventCount > limit * 1.5) {
141
- removed = new Set(removed);
142
- for (const event of sortBy(e => -rankEvent(e), await getAll(name)).slice(limit)) {
143
- removed.add(event.id);
144
- }
145
- }
146
- if (removed.size > 0) {
147
- await bulkDelete(name, Array.from(removed));
148
- }
149
- // Keep track of our total number of events. This isn't strictly accurate, but it's close enough
150
- this.eventCount = this.eventCount + keep.length - removed.size;
151
- };
152
- this.options.repository.on("update", onUpdate);
153
- return () => this.options.repository.off("update", onUpdate);
154
- }
155
- }
156
- export const defaultStorageAdapters = {
157
- relays: new RelaysStorageAdapter({ name: "relays" }),
158
- handles: new HandlesStorageAdapter({ name: "handles" }),
159
- zappers: new ZappersStorageAdapter({ name: "zappers" }),
160
- freshness: new FreshnessStorageAdapter({ name: "freshness" }),
161
- plaintext: new PlaintextStorageAdapter({ name: "plaintext" }),
162
- tracker: new TrackerStorageAdapter({ name: "tracker", tracker }),
163
- events: new EventsStorageAdapter(call(() => {
164
- const userFollowPubkeys = withGetter(derived(userFollows, l => new Set(getPubkeyTagValues(getListTags(l)))));
165
- return {
166
- repository,
167
- name: "events",
168
- limit: 10_000,
169
- rankEvent: (e) => {
170
- const $sessions = sessions.get();
171
- const metaKinds = [PROFILE, FOLLOWS, MUTES, RELAYS, INBOX_RELAYS];
172
- if ($sessions[e.pubkey] || e.tags.some(t => $sessions[t[1]]))
173
- return 1;
174
- if (metaKinds.includes(e.kind) && userFollowPubkeys.get()?.has(e.pubkey))
175
- return 1;
176
- return 0;
177
- },
178
- };
179
- })),
180
- };
181
- //# sourceMappingURL=storageAdapters.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storageAdapters.js","sourceRoot":"","sources":["../../../src/storageAdapters.ts"],"names":[],"mappings":"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"}