applesauce-core 0.0.0-next-20250120191411 → 0.0.0-next-20250123214405
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/package.json +1 -1
- package/dist/event-store/common.d.ts +0 -1
- package/dist/event-store/common.js +0 -2
- package/dist/event-store/database.d.ts +0 -64
- package/dist/event-store/database.js +0 -311
- package/dist/event-store/event-store.d.ts +0 -49
- package/dist/event-store/event-store.js +0 -389
- package/dist/event-store/index.d.ts +0 -2
- package/dist/event-store/index.js +0 -2
- package/dist/helpers/bolt11.d.ts +0 -9
- package/dist/helpers/bolt11.js +0 -15
- package/dist/helpers/cache.d.ts +0 -5
- package/dist/helpers/cache.js +0 -17
- package/dist/helpers/comment.d.ts +0 -47
- package/dist/helpers/comment.js +0 -116
- package/dist/helpers/content.d.ts +0 -3
- package/dist/helpers/content.js +0 -8
- package/dist/helpers/delete.d.ts +0 -3
- package/dist/helpers/delete.js +0 -7
- package/dist/helpers/emoji.d.ts +0 -11
- package/dist/helpers/emoji.js +0 -16
- package/dist/helpers/event.d.ts +0 -48
- package/dist/helpers/event.js +0 -105
- package/dist/helpers/external-id.d.ts +0 -29
- package/dist/helpers/external-id.js +0 -20
- package/dist/helpers/file-metadata.d.ts +0 -53
- package/dist/helpers/file-metadata.js +0 -90
- package/dist/helpers/file-metadata.test.d.ts +0 -1
- package/dist/helpers/file-metadata.test.js +0 -103
- package/dist/helpers/filter.d.ts +0 -10
- package/dist/helpers/filter.js +0 -46
- package/dist/helpers/hashtag.d.ts +0 -2
- package/dist/helpers/hashtag.js +0 -7
- package/dist/helpers/hidden-tags.d.ts +0 -48
- package/dist/helpers/hidden-tags.js +0 -108
- package/dist/helpers/hidden-tags.test.d.ts +0 -1
- package/dist/helpers/hidden-tags.test.js +0 -28
- package/dist/helpers/index.d.ts +0 -26
- package/dist/helpers/index.js +0 -26
- package/dist/helpers/json.d.ts +0 -2
- package/dist/helpers/json.js +0 -9
- package/dist/helpers/lnurl.d.ts +0 -4
- package/dist/helpers/lnurl.js +0 -40
- package/dist/helpers/lru.d.ts +0 -32
- package/dist/helpers/lru.js +0 -148
- package/dist/helpers/mailboxes.d.ts +0 -11
- package/dist/helpers/mailboxes.js +0 -36
- package/dist/helpers/mailboxes.test.d.ts +0 -1
- package/dist/helpers/mailboxes.test.js +0 -81
- package/dist/helpers/media-attachment.d.ts +0 -42
- package/dist/helpers/media-attachment.js +0 -72
- package/dist/helpers/media-attachment.test.d.ts +0 -1
- package/dist/helpers/media-attachment.test.js +0 -59
- package/dist/helpers/media-post.d.ts +0 -4
- package/dist/helpers/media-post.js +0 -6
- package/dist/helpers/picture-post.d.ts +0 -4
- package/dist/helpers/picture-post.js +0 -6
- package/dist/helpers/pipe.d.ts +0 -10
- package/dist/helpers/pipe.js +0 -3
- package/dist/helpers/pointers.d.ts +0 -55
- package/dist/helpers/pointers.js +0 -205
- package/dist/helpers/profile.d.ts +0 -20
- package/dist/helpers/profile.js +0 -31
- package/dist/helpers/relays.d.ts +0 -12
- package/dist/helpers/relays.js +0 -31
- package/dist/helpers/string.d.ts +0 -10
- package/dist/helpers/string.js +0 -15
- package/dist/helpers/tags.d.ts +0 -25
- package/dist/helpers/tags.js +0 -42
- package/dist/helpers/tags.test.d.ts +0 -1
- package/dist/helpers/tags.test.js +0 -16
- package/dist/helpers/threading.d.ts +0 -55
- package/dist/helpers/threading.js +0 -94
- package/dist/helpers/threading.test.d.ts +0 -1
- package/dist/helpers/threading.test.js +0 -41
- package/dist/helpers/time.d.ts +0 -2
- package/dist/helpers/time.js +0 -4
- package/dist/helpers/url.d.ts +0 -14
- package/dist/helpers/url.js +0 -30
- package/dist/helpers/zap.d.ts +0 -39
- package/dist/helpers/zap.js +0 -95
- package/dist/index.d.ts +0 -5
- package/dist/index.js +0 -5
- package/dist/logger.d.ts +0 -2
- package/dist/logger.js +0 -2
- package/dist/observable/get-value.d.ts +0 -3
- package/dist/observable/get-value.js +0 -14
- package/dist/observable/index.d.ts +0 -2
- package/dist/observable/index.js +0 -2
- package/dist/observable/share-latest-value.d.ts +0 -8
- package/dist/observable/share-latest-value.js +0 -21
- package/dist/promise/deferred.d.ts +0 -6
- package/dist/promise/deferred.js +0 -15
- package/dist/promise/index.d.ts +0 -1
- package/dist/promise/index.js +0 -1
- package/dist/queries/comment.d.ts +0 -4
- package/dist/queries/comment.js +0 -14
- package/dist/queries/comments.d.ts +0 -4
- package/dist/queries/comments.js +0 -14
- package/dist/queries/index.d.ts +0 -7
- package/dist/queries/index.js +0 -7
- package/dist/queries/mailboxes.d.ts +0 -6
- package/dist/queries/mailboxes.js +0 -13
- package/dist/queries/profile.d.ts +0 -4
- package/dist/queries/profile.js +0 -12
- package/dist/queries/reactions.d.ts +0 -4
- package/dist/queries/reactions.js +0 -19
- package/dist/queries/simple.d.ts +0 -16
- package/dist/queries/simple.js +0 -38
- package/dist/queries/thread.d.ts +0 -25
- package/dist/queries/thread.js +0 -92
- package/dist/queries/zaps.d.ts +0 -5
- package/dist/queries/zaps.js +0 -21
- package/dist/query-store/index.d.ts +0 -57
- package/dist/query-store/index.js +0 -68
package/dist/queries/simple.js
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import hash_sum from "hash-sum";
|
|
2
|
-
import { getReplaceableUID } from "../helpers/event.js";
|
|
3
|
-
/** Creates a Query that returns a single event or undefined */
|
|
4
|
-
export function SingleEventQuery(id) {
|
|
5
|
-
return {
|
|
6
|
-
key: id,
|
|
7
|
-
run: (events) => events.event(id),
|
|
8
|
-
};
|
|
9
|
-
}
|
|
10
|
-
/** Creates a Query that returns a multiple events in a map */
|
|
11
|
-
export function MultipleEventsQuery(ids) {
|
|
12
|
-
return {
|
|
13
|
-
key: ids.join(","),
|
|
14
|
-
run: (events) => events.events(ids),
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
/** Creates a Query returning the latest version of a replaceable event */
|
|
18
|
-
export function ReplaceableQuery(kind, pubkey, d) {
|
|
19
|
-
return {
|
|
20
|
-
key: getReplaceableUID(kind, pubkey, d),
|
|
21
|
-
run: (events) => events.replaceable(kind, pubkey, d),
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
/** Creates a Query that returns an array of sorted events matching the filters */
|
|
25
|
-
export function TimelineQuery(filters, keepOldVersions) {
|
|
26
|
-
filters = Array.isArray(filters) ? filters : [filters];
|
|
27
|
-
return {
|
|
28
|
-
key: hash_sum(filters) + (keepOldVersions ? "-history" : ""),
|
|
29
|
-
run: (events) => events.timeline(filters, keepOldVersions),
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
/** Creates a Query that returns a directory of events by their UID */
|
|
33
|
-
export function ReplaceableSetQuery(pointers) {
|
|
34
|
-
return {
|
|
35
|
-
key: hash_sum(pointers),
|
|
36
|
-
run: (events) => events.replaceableSet(pointers),
|
|
37
|
-
};
|
|
38
|
-
}
|
package/dist/queries/thread.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { NostrEvent } from "nostr-tools";
|
|
2
|
-
import { AddressPointer, EventPointer } from "nostr-tools/nip19";
|
|
3
|
-
import { Query } from "../query-store/index.js";
|
|
4
|
-
import { ThreadReferences } from "../helpers/threading.js";
|
|
5
|
-
export type Thread = {
|
|
6
|
-
root?: ThreadItem;
|
|
7
|
-
all: Map<string, ThreadItem>;
|
|
8
|
-
};
|
|
9
|
-
export type ThreadItem = {
|
|
10
|
-
/** underlying nostr event */
|
|
11
|
-
event: NostrEvent;
|
|
12
|
-
refs: ThreadReferences;
|
|
13
|
-
/** the thread root, according to this event */
|
|
14
|
-
root?: ThreadItem;
|
|
15
|
-
/** the parent event this is replying to */
|
|
16
|
-
parent?: ThreadItem;
|
|
17
|
-
/** direct child replies */
|
|
18
|
-
replies: Set<ThreadItem>;
|
|
19
|
-
};
|
|
20
|
-
export type ThreadQueryOptions = {
|
|
21
|
-
kinds?: number[];
|
|
22
|
-
};
|
|
23
|
-
export declare function ThreadQuery(root: string | AddressPointer | EventPointer, opts?: ThreadQueryOptions): Query<Thread>;
|
|
24
|
-
/** A query that gets all legacy and NIP-10, and NIP-22 replies for an event */
|
|
25
|
-
export declare function RepliesQuery(event: NostrEvent, overrideKinds?: number[]): Query<NostrEvent[]>;
|
package/dist/queries/thread.js
DELETED
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import { kinds } from "nostr-tools";
|
|
2
|
-
import { isParameterizedReplaceableKind } from "nostr-tools/kinds";
|
|
3
|
-
import { map } from "rxjs/operators";
|
|
4
|
-
import { getNip10References, interpretThreadTags } from "../helpers/threading.js";
|
|
5
|
-
import { getCoordinateFromAddressPointer, isAddressPointer, isEventPointer } from "../helpers/pointers.js";
|
|
6
|
-
import { getEventUID, getReplaceableUID, getTagValue, isEvent } from "../helpers/event.js";
|
|
7
|
-
import { COMMENT_KIND } from "../helpers/comment.js";
|
|
8
|
-
const defaultOptions = {
|
|
9
|
-
kinds: [kinds.ShortTextNote],
|
|
10
|
-
};
|
|
11
|
-
export function ThreadQuery(root, opts) {
|
|
12
|
-
const parentReferences = new Map();
|
|
13
|
-
const items = new Map();
|
|
14
|
-
const { kinds } = { ...defaultOptions, ...opts };
|
|
15
|
-
let rootUID = "";
|
|
16
|
-
const rootFilter = {};
|
|
17
|
-
const replyFilter = { kinds };
|
|
18
|
-
if (isAddressPointer(root)) {
|
|
19
|
-
rootUID = getCoordinateFromAddressPointer(root);
|
|
20
|
-
rootFilter.kinds = [root.kind];
|
|
21
|
-
rootFilter.authors = [root.pubkey];
|
|
22
|
-
rootFilter["#d"] = [root.identifier];
|
|
23
|
-
replyFilter["#a"] = [rootUID];
|
|
24
|
-
}
|
|
25
|
-
else if (typeof root === "string") {
|
|
26
|
-
rootUID = root;
|
|
27
|
-
rootFilter.ids = [root];
|
|
28
|
-
replyFilter["#e"] = [root];
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
rootUID = root.id;
|
|
32
|
-
rootFilter.ids = [root.id];
|
|
33
|
-
replyFilter["#e"] = [root.id];
|
|
34
|
-
}
|
|
35
|
-
return {
|
|
36
|
-
key: `${rootUID}-${kinds.join(",")}`,
|
|
37
|
-
run: (events) => events.stream([rootFilter, replyFilter]).pipe(map((event) => {
|
|
38
|
-
if (!items.has(getEventUID(event))) {
|
|
39
|
-
const refs = getNip10References(event);
|
|
40
|
-
const replies = parentReferences.get(getEventUID(event)) || new Set();
|
|
41
|
-
const item = { event, refs, replies };
|
|
42
|
-
for (const child of replies) {
|
|
43
|
-
child.parent = item;
|
|
44
|
-
}
|
|
45
|
-
// add item to parent
|
|
46
|
-
if (refs.reply?.e || refs.reply?.a) {
|
|
47
|
-
let uid = refs.reply.e ? refs.reply.e.id : getCoordinateFromAddressPointer(refs.reply.a);
|
|
48
|
-
item.parent = items.get(uid);
|
|
49
|
-
if (item.parent) {
|
|
50
|
-
item.parent.replies.add(item);
|
|
51
|
-
}
|
|
52
|
-
else {
|
|
53
|
-
// parent isn't created yet, store ref for later
|
|
54
|
-
let set = parentReferences.get(uid);
|
|
55
|
-
if (!set) {
|
|
56
|
-
set = new Set();
|
|
57
|
-
parentReferences.set(uid, set);
|
|
58
|
-
}
|
|
59
|
-
set.add(item);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
// add item to map
|
|
63
|
-
items.set(getEventUID(event), item);
|
|
64
|
-
}
|
|
65
|
-
return { root: items.get(rootUID), all: items };
|
|
66
|
-
})),
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
/** A query that gets all legacy and NIP-10, and NIP-22 replies for an event */
|
|
70
|
-
export function RepliesQuery(event, overrideKinds) {
|
|
71
|
-
return {
|
|
72
|
-
key: getEventUID(event),
|
|
73
|
-
run: (events) => {
|
|
74
|
-
const kinds = overrideKinds || event.kind === 1 ? [1, COMMENT_KIND] : [COMMENT_KIND];
|
|
75
|
-
const filter = { kinds };
|
|
76
|
-
if (isEvent(parent) || isEventPointer(event))
|
|
77
|
-
filter["#e"] = [event.id];
|
|
78
|
-
const address = isParameterizedReplaceableKind(event.kind)
|
|
79
|
-
? getReplaceableUID(event.kind, event.pubkey, getTagValue(event, "d"))
|
|
80
|
-
: undefined;
|
|
81
|
-
if (address) {
|
|
82
|
-
filter["#a"] = [address];
|
|
83
|
-
}
|
|
84
|
-
return events.timeline(filter).pipe(map((events) => {
|
|
85
|
-
return events.filter((e) => {
|
|
86
|
-
const refs = interpretThreadTags(e.tags);
|
|
87
|
-
return refs.reply?.e?.[1] === event.id || refs.reply?.a?.[1] === address;
|
|
88
|
-
});
|
|
89
|
-
}));
|
|
90
|
-
},
|
|
91
|
-
};
|
|
92
|
-
}
|
package/dist/queries/zaps.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { AddressPointer, EventPointer } from "nostr-tools/nip19";
|
|
2
|
-
import { NostrEvent } from "nostr-tools";
|
|
3
|
-
import { Query } from "../query-store/index.js";
|
|
4
|
-
/** A query that gets all zap events for an event */
|
|
5
|
-
export declare function EventZapsQuery(id: string | EventPointer | AddressPointer): Query<NostrEvent[]>;
|
package/dist/queries/zaps.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { map } from "rxjs";
|
|
2
|
-
import { kinds } from "nostr-tools";
|
|
3
|
-
import { getCoordinateFromAddressPointer, isAddressPointer } from "../helpers/pointers.js";
|
|
4
|
-
import { isValidZap } from "../helpers/zap.js";
|
|
5
|
-
/** A query that gets all zap events for an event */
|
|
6
|
-
export function EventZapsQuery(id) {
|
|
7
|
-
return {
|
|
8
|
-
key: JSON.stringify(id),
|
|
9
|
-
run: (events) => {
|
|
10
|
-
if (isAddressPointer(id)) {
|
|
11
|
-
return events
|
|
12
|
-
.timeline([{ kinds: [kinds.Zap], "#a": [getCoordinateFromAddressPointer(id)] }])
|
|
13
|
-
.pipe(map((events) => events.filter(isValidZap)));
|
|
14
|
-
}
|
|
15
|
-
else {
|
|
16
|
-
id = typeof id === "string" ? id : id.id;
|
|
17
|
-
return events.timeline([{ kinds: [kinds.Zap], "#e": [id] }]).pipe(map((events) => events.filter(isValidZap)));
|
|
18
|
-
}
|
|
19
|
-
},
|
|
20
|
-
};
|
|
21
|
-
}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { BehaviorSubject, Observable } from "rxjs";
|
|
2
|
-
import { Filter, NostrEvent } from "nostr-tools";
|
|
3
|
-
import { EventStore } from "../event-store/event-store.js";
|
|
4
|
-
import { LRU } from "../helpers/lru.js";
|
|
5
|
-
import * as Queries from "../queries/index.js";
|
|
6
|
-
import { AddressPointer, EventPointer } from "nostr-tools/nip19";
|
|
7
|
-
export type Query<T extends unknown> = {
|
|
8
|
-
/**
|
|
9
|
-
* A unique key for this query. this is used to detect duplicate queries
|
|
10
|
-
*/
|
|
11
|
-
key: string;
|
|
12
|
-
/** The args array this query was created with. This is mostly for debugging */
|
|
13
|
-
args?: Array<any>;
|
|
14
|
-
/**
|
|
15
|
-
* The meat of the query, this should return an Observables that subscribes to the eventStore in some way
|
|
16
|
-
*/
|
|
17
|
-
run: (events: EventStore, store: QueryStore) => Observable<T>;
|
|
18
|
-
};
|
|
19
|
-
export type QueryConstructor<T extends unknown, Args extends Array<any>> = (...args: Args) => Query<T>;
|
|
20
|
-
export declare class QueryStore {
|
|
21
|
-
static Queries: typeof Queries;
|
|
22
|
-
store: EventStore;
|
|
23
|
-
constructor(store: EventStore);
|
|
24
|
-
queries: LRU<Query<any>>;
|
|
25
|
-
observables: WeakMap<Query<any>, Observable<any> | BehaviorSubject<any>>;
|
|
26
|
-
/** Creates a cached query */
|
|
27
|
-
createQuery<T extends unknown, Args extends Array<any>>(queryConstructor: (...args: Args) => {
|
|
28
|
-
key: string;
|
|
29
|
-
run: (events: EventStore, store: QueryStore) => Observable<T>;
|
|
30
|
-
}, ...args: Args): Observable<T>;
|
|
31
|
-
/** Creates a SingleEventQuery */
|
|
32
|
-
event(id: string): Observable<import("nostr-tools").Event | undefined>;
|
|
33
|
-
/** Creates a MultipleEventsQuery */
|
|
34
|
-
events(ids: string[]): Observable<Record<string, import("nostr-tools").Event>>;
|
|
35
|
-
/** Creates a ReplaceableQuery */
|
|
36
|
-
replaceable(kind: number, pubkey: string, d?: string): Observable<import("nostr-tools").Event | undefined>;
|
|
37
|
-
/** Creates a ReplaceableSetQuery */
|
|
38
|
-
replaceableSet(pointers: {
|
|
39
|
-
kind: number;
|
|
40
|
-
pubkey: string;
|
|
41
|
-
identifier?: string;
|
|
42
|
-
}[]): Observable<Record<string, import("nostr-tools").Event>>;
|
|
43
|
-
/** Creates a TimelineQuery */
|
|
44
|
-
timeline(filters: Filter | Filter[], keepOldVersions?: boolean): Observable<import("nostr-tools").Event[]>;
|
|
45
|
-
/** Creates a ProfileQuery */
|
|
46
|
-
profile(pubkey: string): Observable<import("../helpers/profile.js").ProfileContent | undefined>;
|
|
47
|
-
/** Creates a ReactionsQuery */
|
|
48
|
-
reactions(event: NostrEvent): Observable<import("nostr-tools").Event[]>;
|
|
49
|
-
/** Creates a MailboxesQuery */
|
|
50
|
-
mailboxes(pubkey: string): Observable<{
|
|
51
|
-
inboxes: string[];
|
|
52
|
-
outboxes: string[];
|
|
53
|
-
} | undefined>;
|
|
54
|
-
/** Creates a ThreadQuery */
|
|
55
|
-
thread(root: string | EventPointer | AddressPointer): Observable<Queries.Thread>;
|
|
56
|
-
}
|
|
57
|
-
export { Queries };
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { LRU } from "../helpers/lru.js";
|
|
2
|
-
import * as Queries from "../queries/index.js";
|
|
3
|
-
import { shareLatestValue } from "../observable/share-latest-value.js";
|
|
4
|
-
export class QueryStore {
|
|
5
|
-
static Queries = Queries;
|
|
6
|
-
store;
|
|
7
|
-
constructor(store) {
|
|
8
|
-
if (!store)
|
|
9
|
-
throw new Error("EventStore required");
|
|
10
|
-
this.store = store;
|
|
11
|
-
}
|
|
12
|
-
queries = new LRU();
|
|
13
|
-
observables = new WeakMap();
|
|
14
|
-
/** Creates a cached query */
|
|
15
|
-
createQuery(queryConstructor, ...args) {
|
|
16
|
-
const tempQuery = queryConstructor(...args);
|
|
17
|
-
const key = `${queryConstructor.name}|${tempQuery.key}`;
|
|
18
|
-
let query = this.queries.get(key);
|
|
19
|
-
if (!query) {
|
|
20
|
-
query = tempQuery;
|
|
21
|
-
this.queries.set(key, tempQuery);
|
|
22
|
-
}
|
|
23
|
-
if (!this.observables.has(query)) {
|
|
24
|
-
query.args = args;
|
|
25
|
-
const observable = query.run(this.store, this).pipe(shareLatestValue());
|
|
26
|
-
this.observables.set(query, observable);
|
|
27
|
-
return observable;
|
|
28
|
-
}
|
|
29
|
-
return this.observables.get(query);
|
|
30
|
-
}
|
|
31
|
-
/** Creates a SingleEventQuery */
|
|
32
|
-
event(id) {
|
|
33
|
-
return this.createQuery(Queries.SingleEventQuery, id);
|
|
34
|
-
}
|
|
35
|
-
/** Creates a MultipleEventsQuery */
|
|
36
|
-
events(ids) {
|
|
37
|
-
return this.createQuery(Queries.MultipleEventsQuery, ids);
|
|
38
|
-
}
|
|
39
|
-
/** Creates a ReplaceableQuery */
|
|
40
|
-
replaceable(kind, pubkey, d) {
|
|
41
|
-
return this.createQuery(Queries.ReplaceableQuery, kind, pubkey, d);
|
|
42
|
-
}
|
|
43
|
-
/** Creates a ReplaceableSetQuery */
|
|
44
|
-
replaceableSet(pointers) {
|
|
45
|
-
return this.createQuery(Queries.ReplaceableSetQuery, pointers);
|
|
46
|
-
}
|
|
47
|
-
/** Creates a TimelineQuery */
|
|
48
|
-
timeline(filters, keepOldVersions) {
|
|
49
|
-
return this.createQuery(Queries.TimelineQuery, filters, keepOldVersions);
|
|
50
|
-
}
|
|
51
|
-
/** Creates a ProfileQuery */
|
|
52
|
-
profile(pubkey) {
|
|
53
|
-
return this.createQuery(Queries.ProfileQuery, pubkey);
|
|
54
|
-
}
|
|
55
|
-
/** Creates a ReactionsQuery */
|
|
56
|
-
reactions(event) {
|
|
57
|
-
return this.createQuery(Queries.ReactionsQuery, event);
|
|
58
|
-
}
|
|
59
|
-
/** Creates a MailboxesQuery */
|
|
60
|
-
mailboxes(pubkey) {
|
|
61
|
-
return this.createQuery(Queries.MailboxesQuery, pubkey);
|
|
62
|
-
}
|
|
63
|
-
/** Creates a ThreadQuery */
|
|
64
|
-
thread(root) {
|
|
65
|
-
return this.createQuery(Queries.ThreadQuery, root);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
export { Queries };
|