@welshman/app 0.6.8 → 0.7.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/app/src/blossom.d.ts +7 -5
- package/dist/app/src/blossom.d.ts.map +1 -1
- package/dist/app/src/blossom.js +12 -11
- package/dist/app/src/blossom.js.map +1 -1
- package/dist/app/src/commands.d.ts +2 -2
- package/dist/app/src/commands.d.ts.map +1 -1
- package/dist/app/src/commands.js +29 -29
- package/dist/app/src/commands.js.map +1 -1
- package/dist/app/src/core.d.ts +0 -6
- package/dist/app/src/core.d.ts.map +1 -1
- package/dist/app/src/core.js +0 -33
- package/dist/app/src/core.js.map +1 -1
- package/dist/app/src/feeds.d.ts.map +1 -1
- package/dist/app/src/feeds.js +5 -4
- package/dist/app/src/feeds.js.map +1 -1
- package/dist/app/src/follows.d.ts +8 -5
- package/dist/app/src/follows.d.ts.map +1 -1
- package/dist/app/src/follows.js +12 -10
- package/dist/app/src/follows.js.map +1 -1
- package/dist/app/src/handles.d.ts +14 -5
- package/dist/app/src/handles.d.ts.map +1 -1
- package/dist/app/src/handles.js +46 -37
- package/dist/app/src/handles.js.map +1 -1
- package/dist/app/src/index.d.ts +2 -2
- package/dist/app/src/index.d.ts.map +1 -1
- package/dist/app/src/index.js +12 -12
- package/dist/app/src/index.js.map +1 -1
- package/dist/app/src/messagingRelayLists.d.ts +9 -0
- package/dist/app/src/messagingRelayLists.d.ts.map +1 -0
- package/dist/app/src/messagingRelayLists.js +18 -0
- package/dist/app/src/messagingRelayLists.js.map +1 -0
- package/dist/app/src/mutes.d.ts +8 -4
- package/dist/app/src/mutes.d.ts.map +1 -1
- package/dist/app/src/mutes.js +12 -10
- package/dist/app/src/mutes.js.map +1 -1
- package/dist/app/src/pins.d.ts +8 -5
- package/dist/app/src/pins.d.ts.map +1 -1
- package/dist/app/src/pins.js +12 -10
- package/dist/app/src/pins.js.map +1 -1
- package/dist/app/src/profiles.d.ts +9 -6
- package/dist/app/src/profiles.d.ts.map +1 -1
- package/dist/app/src/profiles.js +15 -13
- package/dist/app/src/profiles.js.map +1 -1
- package/dist/app/src/relayLists.d.ts +15 -0
- package/dist/app/src/relayLists.d.ts.map +1 -0
- package/dist/app/src/{relaySelections.js → relayLists.js} +14 -12
- package/dist/app/src/relayLists.js.map +1 -0
- package/dist/app/src/relayStats.d.ts +8 -3
- package/dist/app/src/relayStats.d.ts.map +1 -1
- package/dist/app/src/relayStats.js +16 -10
- package/dist/app/src/relayStats.js.map +1 -1
- package/dist/app/src/relays.d.ts +15 -8
- package/dist/app/src/relays.d.ts.map +1 -1
- package/dist/app/src/relays.js +48 -42
- package/dist/app/src/relays.js.map +1 -1
- package/dist/app/src/search.js +3 -3
- package/dist/app/src/search.js.map +1 -1
- package/dist/app/src/session.d.ts.map +1 -1
- package/dist/app/src/session.js +2 -2
- package/dist/app/src/session.js.map +1 -1
- package/dist/app/src/sync.js +2 -2
- package/dist/app/src/sync.js.map +1 -1
- package/dist/app/src/thunk.d.ts.map +1 -1
- package/dist/app/src/thunk.js +2 -2
- package/dist/app/src/thunk.js.map +1 -1
- package/dist/app/src/topics.d.ts +2 -1
- package/dist/app/src/topics.d.ts.map +1 -1
- package/dist/app/src/topics.js +33 -15
- package/dist/app/src/topics.js.map +1 -1
- package/dist/app/src/user.d.ts +24 -21
- package/dist/app/src/user.d.ts.map +1 -1
- package/dist/app/src/user.js +35 -50
- package/dist/app/src/user.js.map +1 -1
- package/dist/app/src/wot.d.ts +8 -4
- package/dist/app/src/wot.d.ts.map +1 -1
- package/dist/app/src/wot.js +20 -16
- package/dist/app/src/wot.js.map +1 -1
- package/dist/app/src/zappers.d.ts +22 -7
- package/dist/app/src/zappers.d.ts.map +1 -1
- package/dist/app/src/zappers.js +44 -36
- package/dist/app/src/zappers.js.map +1 -1
- package/dist/lib/src/Tools.d.ts +36 -9
- package/dist/lib/src/Tools.d.ts.map +1 -1
- package/dist/lib/src/Tools.js +86 -38
- package/dist/lib/src/Tools.js.map +1 -1
- package/dist/net/src/repository.js +1 -1
- package/dist/net/src/repository.js.map +1 -1
- package/dist/signer/src/nip59.d.ts.map +1 -1
- package/dist/signer/src/nip59.js +2 -2
- package/dist/signer/src/nip59.js.map +1 -1
- package/dist/signer/src/signers/nip01.d.ts.map +1 -1
- package/dist/signer/src/signers/nip01.js +2 -1
- package/dist/signer/src/signers/nip01.js.map +1 -1
- package/dist/signer/src/signers/nip07.d.ts.map +1 -1
- package/dist/signer/src/signers/nip07.js +2 -1
- package/dist/signer/src/signers/nip07.js.map +1 -1
- package/dist/signer/src/signers/nip46.d.ts.map +1 -1
- package/dist/signer/src/signers/nip46.js +2 -2
- package/dist/signer/src/signers/nip46.js.map +1 -1
- package/dist/signer/src/signers/nip55.d.ts.map +1 -1
- package/dist/signer/src/signers/nip55.js +2 -1
- package/dist/signer/src/signers/nip55.js.map +1 -1
- package/dist/signer/src/util.d.ts +1 -36
- package/dist/signer/src/util.d.ts.map +1 -1
- package/dist/signer/src/util.js +2 -25
- package/dist/signer/src/util.js.map +1 -1
- package/dist/store/src/index.d.ts +1 -5
- package/dist/store/src/index.d.ts.map +1 -1
- package/dist/store/src/index.js +1 -5
- package/dist/store/src/index.js.map +1 -1
- package/dist/store/src/misc.d.ts +18 -0
- package/dist/store/src/misc.d.ts.map +1 -0
- package/dist/store/src/misc.js +66 -0
- package/dist/store/src/misc.js.map +1 -0
- package/dist/store/src/repository.d.ts +49 -11
- package/dist/store/src/repository.d.ts.map +1 -1
- package/dist/store/src/repository.js +293 -81
- package/dist/store/src/repository.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/util/src/Keys.d.ts +37 -0
- package/dist/util/src/Keys.d.ts.map +1 -0
- package/dist/util/src/Keys.js +26 -0
- package/dist/util/src/Keys.js.map +1 -0
- package/dist/util/src/Kinds.d.ts +8 -1
- package/dist/util/src/Kinds.d.ts.map +1 -1
- package/dist/util/src/Kinds.js +8 -1
- package/dist/util/src/Kinds.js.map +1 -1
- package/dist/util/src/Pow.d.ts +11 -0
- package/dist/util/src/Pow.d.ts.map +1 -0
- package/dist/util/src/Pow.js +127 -0
- package/dist/util/src/Pow.js.map +1 -0
- package/dist/util/src/Relay.d.ts +1 -1
- package/dist/util/src/Relay.d.ts.map +1 -1
- package/dist/util/src/Relay.js +1 -1
- package/dist/util/src/Relay.js.map +1 -1
- package/dist/util/src/index.d.ts +2 -0
- package/dist/util/src/index.d.ts.map +1 -1
- package/dist/util/src/index.js +2 -0
- package/dist/util/src/index.js.map +1 -1
- package/package.json +8 -8
- package/dist/app/src/inboxRelaySelections.d.ts +0 -6
- package/dist/app/src/inboxRelaySelections.d.ts.map +0 -1
- package/dist/app/src/inboxRelaySelections.js +0 -16
- package/dist/app/src/inboxRelaySelections.js.map +0 -1
- package/dist/app/src/relaySelections.d.ts +0 -11
- package/dist/app/src/relaySelections.d.ts.map +0 -1
- package/dist/app/src/relaySelections.js.map +0 -1
- package/dist/store/src/collection.d.ts +0 -34
- package/dist/store/src/collection.d.ts.map +0 -1
- package/dist/store/src/collection.js +0 -82
- package/dist/store/src/collection.js.map +0 -1
- package/dist/store/src/custom.d.ts +0 -10
- package/dist/store/src/custom.d.ts.map +0 -1
- package/dist/store/src/custom.js +0 -41
- package/dist/store/src/custom.js.map +0 -1
- package/dist/store/src/getter.d.ts +0 -11
- package/dist/store/src/getter.d.ts.map +0 -1
- package/dist/store/src/getter.js +0 -11
- package/dist/store/src/getter.js.map +0 -1
- package/dist/store/src/memoize.d.ts +0 -5
- package/dist/store/src/memoize.d.ts.map +0 -1
- package/dist/store/src/memoize.js +0 -6
- package/dist/store/src/memoize.js.map +0 -1
- package/dist/store/src/throttle.d.ts +0 -3
- package/dist/store/src/throttle.d.ts.map +0 -1
- package/dist/store/src/throttle.js +0 -9
- package/dist/store/src/throttle.js.map +0 -1
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const
|
|
3
|
-
export declare const
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
export declare const blossomServerListsByPubkey: import("svelte/store").Readable<Map<string, import("@welshman/util").PublishedList>>;
|
|
2
|
+
export declare const blossomServerLists: import("svelte/store").Readable<import("@welshman/util").PublishedList[]>;
|
|
3
|
+
export declare const getBlossomServerListsByPubkey: () => Map<string, import("@welshman/util").PublishedList>;
|
|
4
|
+
export declare const getBlossomServerList: (pubkey: string) => import("@welshman/util").PublishedList | undefined;
|
|
5
|
+
export declare const forceLoadBlossomServerList: (key: string, ...args: any[]) => Promise<import("@welshman/util").PublishedList | undefined>;
|
|
6
|
+
export declare const loadBlossomServerList: (key: string, ...args: any[]) => Promise<import("@welshman/lib").Maybe<import("@welshman/util").PublishedList>>;
|
|
7
|
+
export declare const deriveBlossomServerList: (key?: string, ...args: any[]) => import("svelte/store").Readable<import("@welshman/util").PublishedList | undefined>;
|
|
6
8
|
//# sourceMappingURL=blossom.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blossom.d.ts","sourceRoot":"","sources":["../../../src/blossom.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"blossom.d.ts","sourceRoot":"","sources":["../../../src/blossom.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,0BAA0B,sFAKrC,CAAA;AAEF,eAAO,MAAM,kBAAkB,2EAA0C,CAAA;AAEzE,eAAO,MAAM,6BAA6B,2DAAqC,CAAA;AAE/E,eAAO,MAAM,oBAAoB,GAAI,QAAQ,MAAM,uDAAgD,CAAA;AAEnG,eAAO,MAAM,0BAA0B,8FAGtC,CAAA;AAED,eAAO,MAAM,qBAAqB,iHAGjC,CAAA;AAED,eAAO,MAAM,uBAAuB,uHAGnC,CAAA"}
|
package/dist/app/src/blossom.js
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { BLOSSOM_SERVERS, asDecryptedEvent, readList } from "@welshman/util";
|
|
2
|
-
import {
|
|
2
|
+
import { deriveItemsByKey, deriveItems, makeForceLoadItem, makeLoadItem, makeDeriveItem, getter, } from "@welshman/store";
|
|
3
3
|
import { repository } from "./core.js";
|
|
4
|
-
import { makeOutboxLoader } from "./
|
|
5
|
-
export const
|
|
6
|
-
|
|
7
|
-
itemToEvent: item => item.event,
|
|
4
|
+
import { makeOutboxLoader } from "./relayLists.js";
|
|
5
|
+
export const blossomServerListsByPubkey = deriveItemsByKey({
|
|
6
|
+
repository,
|
|
8
7
|
eventToItem: (event) => readList(asDecryptedEvent(event)),
|
|
8
|
+
filters: [{ kinds: [BLOSSOM_SERVERS] }],
|
|
9
|
+
getKey: blossomServerList => blossomServerList.event.pubkey,
|
|
9
10
|
});
|
|
10
|
-
export const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
export const blossomServerLists = deriveItems(blossomServerListsByPubkey);
|
|
12
|
+
export const getBlossomServerListsByPubkey = getter(blossomServerListsByPubkey);
|
|
13
|
+
export const getBlossomServerList = (pubkey) => getBlossomServerListsByPubkey().get(pubkey);
|
|
14
|
+
export const forceLoadBlossomServerList = makeForceLoadItem(makeOutboxLoader(BLOSSOM_SERVERS), getBlossomServerList);
|
|
15
|
+
export const loadBlossomServerList = makeLoadItem(makeOutboxLoader(BLOSSOM_SERVERS), getBlossomServerList);
|
|
16
|
+
export const deriveBlossomServerList = makeDeriveItem(blossomServerListsByPubkey, loadBlossomServerList);
|
|
16
17
|
//# sourceMappingURL=blossom.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blossom.js","sourceRoot":"","sources":["../../../src/blossom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAE,gBAAgB,EAAE,QAAQ,EAAC,MAAM,gBAAgB,CAAA;AAE1E,OAAO,
|
|
1
|
+
{"version":3,"file":"blossom.js","sourceRoot":"","sources":["../../../src/blossom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAE,gBAAgB,EAAE,QAAQ,EAAC,MAAM,gBAAgB,CAAA;AAE1E,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,MAAM,GACP,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAC,UAAU,EAAC,MAAM,WAAW,CAAA;AACpC,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAA;AAEhD,MAAM,CAAC,MAAM,0BAA0B,GAAG,gBAAgB,CAAC;IACzD,UAAU;IACV,WAAW,EAAE,CAAC,KAAmB,EAAE,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,EAAE,CAAC,EAAC,KAAK,EAAE,CAAC,eAAe,CAAC,EAAC,CAAC;IACrC,MAAM,EAAE,iBAAiB,CAAC,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM;CAC5D,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,WAAW,CAAC,0BAA0B,CAAC,CAAA;AAEzE,MAAM,CAAC,MAAM,6BAA6B,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAA;AAE/E,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,6BAA6B,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AAEnG,MAAM,CAAC,MAAM,0BAA0B,GAAG,iBAAiB,CACzD,gBAAgB,CAAC,eAAe,CAAC,EACjC,oBAAoB,CACrB,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,YAAY,CAC/C,gBAAgB,CAAC,eAAe,CAAC,EACjC,oBAAoB,CACrB,CAAA;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAG,cAAc,CACnD,0BAA0B,EAC1B,qBAAqB,CACtB,CAAA"}
|
|
@@ -3,8 +3,8 @@ import type { RoomMeta, Profile } from "@welshman/util";
|
|
|
3
3
|
import { ThunkOptions, MergedThunk } from "./thunk.js";
|
|
4
4
|
export declare const removeRelay: (url: string, mode: RelayMode) => Promise<import("./thunk.js").Thunk>;
|
|
5
5
|
export declare const addRelay: (url: string, mode: RelayMode) => Promise<import("./thunk.js").Thunk>;
|
|
6
|
-
export declare const
|
|
7
|
-
export declare const
|
|
6
|
+
export declare const removeMessagingRelay: (url: string) => Promise<import("./thunk.js").Thunk>;
|
|
7
|
+
export declare const addMessagingRelay: (url: string) => Promise<import("./thunk.js").Thunk>;
|
|
8
8
|
export declare const setProfile: (profile: Profile) => import("./thunk.js").Thunk;
|
|
9
9
|
export declare const unfollow: (value: string) => Promise<import("./thunk.js").Thunk>;
|
|
10
10
|
export declare const follow: (tag: string[]) => Promise<import("./thunk.js").Thunk>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../src/commands.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,iBAAiB,EAIjB,aAAa,EAgBb,SAAS,EAMV,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAC,QAAQ,EAAE,OAAO,EAAC,MAAM,gBAAgB,CAAA;AAerD,OAAO,EAAC,YAAY,EAAE,WAAW,EAAe,MAAM,YAAY,CAAA;AAIlE,eAAO,MAAM,WAAW,GAAU,KAAK,MAAM,EAAE,MAAM,SAAS,wCAoB7D,CAAA;AAED,eAAO,MAAM,QAAQ,GAAU,KAAK,MAAM,EAAE,MAAM,SAAS,wCAW1D,CAAA;AAID,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../src/commands.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,iBAAiB,EAIjB,aAAa,EAgBb,SAAS,EAMV,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAC,QAAQ,EAAE,OAAO,EAAC,MAAM,gBAAgB,CAAA;AAerD,OAAO,EAAC,YAAY,EAAE,WAAW,EAAe,MAAM,YAAY,CAAA;AAIlE,eAAO,MAAM,WAAW,GAAU,KAAK,MAAM,EAAE,MAAM,SAAS,wCAoB7D,CAAA;AAED,eAAO,MAAM,QAAQ,GAAU,KAAK,MAAM,EAAE,MAAM,SAAS,wCAW1D,CAAA;AAID,eAAO,MAAM,oBAAoB,GAAU,KAAK,MAAM,wCAQrD,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAU,KAAK,MAAM,wCAQlD,CAAA;AAID,eAAO,MAAM,UAAU,GAAI,SAAS,OAAO,+BAM1C,CAAA;AAID,eAAO,MAAM,QAAQ,GAAU,OAAO,MAAM,wCAQ3C,CAAA;AAED,eAAO,MAAM,MAAM,GAAU,KAAK,MAAM,EAAE,wCAQzC,CAAA;AAED,eAAO,MAAM,MAAM,GAAU,OAAO,MAAM,wCAQzC,CAAA;AAED,eAAO,MAAM,YAAY,GAAU,KAAK,MAAM,EAAE,wCAQ/C,CAAA;AAED,eAAO,MAAM,aAAa,GAAU,KAAK,MAAM,EAAE,wCAQhD,CAAA;AAED,eAAO,MAAM,QAAQ,GAAU,8BAG5B;IACD,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,CAAA;CACzB,wCAQA,CAAA;AAED,eAAO,MAAM,KAAK,GAAU,OAAO,MAAM,wCAQxC,CAAA;AAED,eAAO,MAAM,GAAG,GAAU,KAAK,MAAM,EAAE,wCAQtC,CAAA;AAID,MAAM,MAAM,kBAAkB,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,QAAQ,CAAC,GAAG;IACxE,KAAK,EAAE,aAAa,CAAA;IACpB,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,mCAAiC,kBAAkB,gBAO5E,CAAA;AAIH,eAAO,MAAM,WAAW,GAAU,KAAK,MAAM,EAAE,SAAS,iBAAiB,yDAOxE,CAAA;AAID,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,EAAE,MAAM,QAAQ,+BACW,CAAA;AAEjE,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,EAAE,MAAM,QAAQ,+BACW,CAAA;AAEjE,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,EAAE,MAAM,QAAQ,+BACW,CAAA;AAE/D,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,EAAE,MAAM,QAAQ,+BACW,CAAA;AAE/D,eAAO,MAAM,SAAS,GAAI,KAAK,MAAM,EAAE,MAAM,QAAQ,+BACW,CAAA;AAEhE,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,EAAE,MAAM,QAAQ,EAAE,QAAQ,MAAM,+BACG,CAAA;AAE5E,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,EAAE,MAAM,QAAQ,EAAE,QAAQ,MAAM,+BACG,CAAA"}
|
package/dist/app/src/commands.js
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { get } from "svelte/store";
|
|
2
2
|
import { uniq, nthNe, removeUndefined, nthEq } from "@welshman/lib";
|
|
3
|
-
import { sendManagementRequest, addToListPublicly, addToListPrivately, updateList, removeFromList, makeHttpAuth, getListTags, getRelayTags, makeList, makeRoomCreateEvent, makeRoomDeleteEvent, makeRoomEditEvent, makeRoomJoinEvent, makeRoomLeaveEvent, makeRoomAddMemberEvent, makeRoomRemoveMemberEvent, isPublishedProfile, createProfile, editProfile, RelayMode,
|
|
3
|
+
import { sendManagementRequest, addToListPublicly, addToListPrivately, updateList, removeFromList, makeHttpAuth, getListTags, getRelayTags, makeList, makeRoomCreateEvent, makeRoomDeleteEvent, makeRoomEditEvent, makeRoomJoinEvent, makeRoomLeaveEvent, makeRoomAddMemberEvent, makeRoomRemoveMemberEvent, isPublishedProfile, createProfile, editProfile, RelayMode, MESSAGING_RELAYS, FOLLOWS, RELAYS, MUTES, PINS, } from "@welshman/util";
|
|
4
4
|
import { Router, addMaximalFallbacks } from "@welshman/router";
|
|
5
|
-
import {
|
|
5
|
+
import { userRelayList, forceLoadUserRelayList, userMessagingRelayList, forceLoadUserMessagingRelayList, userFollowList, forceLoadUserFollowList, userMuteList, forceLoadUserMuteList, userPinList, forceLoadUserPinList, } from "./user.js";
|
|
6
6
|
import { nip44EncryptToSelf, signer } from "./session.js";
|
|
7
7
|
import { MergedThunk, publishThunk } from "./thunk.js";
|
|
8
8
|
// NIP 65
|
|
9
9
|
export const removeRelay = async (url, mode) => {
|
|
10
|
-
await
|
|
11
|
-
const list = get(
|
|
10
|
+
await forceLoadUserRelayList([]);
|
|
11
|
+
const list = get(userRelayList) || makeList({ kind: RELAYS });
|
|
12
12
|
const dup = getRelayTags(getListTags(list)).find(nthEq(1, url));
|
|
13
13
|
const alt = mode === RelayMode.Read ? RelayMode.Write : RelayMode.Read;
|
|
14
14
|
const tags = list.publicTags.filter(nthNe(1, url));
|
|
@@ -23,8 +23,8 @@ export const removeRelay = async (url, mode) => {
|
|
|
23
23
|
return publishThunk({ event, relays });
|
|
24
24
|
};
|
|
25
25
|
export const addRelay = async (url, mode) => {
|
|
26
|
-
await
|
|
27
|
-
const list = get(
|
|
26
|
+
await forceLoadUserRelayList([]);
|
|
27
|
+
const list = get(userRelayList) || makeList({ kind: RELAYS });
|
|
28
28
|
const dup = getRelayTags(getListTags(list)).find(nthEq(1, url));
|
|
29
29
|
const tag = removeUndefined(["r", url, dup && dup[2] !== mode ? undefined : mode]);
|
|
30
30
|
const tags = [...list.publicTags.filter(nthNe(1, url)), tag];
|
|
@@ -33,16 +33,16 @@ export const addRelay = async (url, mode) => {
|
|
|
33
33
|
return publishThunk({ event, relays });
|
|
34
34
|
};
|
|
35
35
|
// NIP 17
|
|
36
|
-
export const
|
|
37
|
-
await
|
|
38
|
-
const list = get(
|
|
36
|
+
export const removeMessagingRelay = async (url) => {
|
|
37
|
+
await forceLoadUserMessagingRelayList([]);
|
|
38
|
+
const list = get(userMessagingRelayList) || makeList({ kind: MESSAGING_RELAYS });
|
|
39
39
|
const event = await removeFromList(list, url).reconcile(nip44EncryptToSelf);
|
|
40
40
|
const relays = Router.get().FromUser().policy(addMaximalFallbacks).getUrls();
|
|
41
41
|
return publishThunk({ event, relays });
|
|
42
42
|
};
|
|
43
|
-
export const
|
|
44
|
-
await
|
|
45
|
-
const list = get(
|
|
43
|
+
export const addMessagingRelay = async (url) => {
|
|
44
|
+
await forceLoadUserMessagingRelayList([]);
|
|
45
|
+
const list = get(userMessagingRelayList) || makeList({ kind: MESSAGING_RELAYS });
|
|
46
46
|
const event = await addToListPublicly(list, ["relay", url]).reconcile(nip44EncryptToSelf);
|
|
47
47
|
const relays = Router.get().FromUser().policy(addMaximalFallbacks).getUrls();
|
|
48
48
|
return publishThunk({ event, relays });
|
|
@@ -56,63 +56,63 @@ export const setProfile = (profile) => {
|
|
|
56
56
|
};
|
|
57
57
|
// NIP 02
|
|
58
58
|
export const unfollow = async (value) => {
|
|
59
|
-
await
|
|
60
|
-
const list = get(
|
|
59
|
+
await forceLoadUserFollowList([]);
|
|
60
|
+
const list = get(userFollowList) || makeList({ kind: FOLLOWS });
|
|
61
61
|
const event = await removeFromList(list, value).reconcile(nip44EncryptToSelf);
|
|
62
62
|
const relays = Router.get().FromUser().policy(addMaximalFallbacks).getUrls();
|
|
63
63
|
return publishThunk({ event, relays });
|
|
64
64
|
};
|
|
65
65
|
export const follow = async (tag) => {
|
|
66
|
-
await
|
|
67
|
-
const list = get(
|
|
66
|
+
await forceLoadUserFollowList([]);
|
|
67
|
+
const list = get(userFollowList) || makeList({ kind: FOLLOWS });
|
|
68
68
|
const event = await addToListPublicly(list, tag).reconcile(nip44EncryptToSelf);
|
|
69
69
|
const relays = Router.get().FromUser().policy(addMaximalFallbacks).getUrls();
|
|
70
70
|
return publishThunk({ event, relays });
|
|
71
71
|
};
|
|
72
72
|
export const unmute = async (value) => {
|
|
73
|
-
await
|
|
74
|
-
const list = get(
|
|
73
|
+
await forceLoadUserMuteList([]);
|
|
74
|
+
const list = get(userMuteList) || makeList({ kind: MUTES });
|
|
75
75
|
const event = await removeFromList(list, value).reconcile(nip44EncryptToSelf);
|
|
76
76
|
const relays = Router.get().FromUser().policy(addMaximalFallbacks).getUrls();
|
|
77
77
|
return publishThunk({ event, relays });
|
|
78
78
|
};
|
|
79
79
|
export const mutePublicly = async (tag) => {
|
|
80
|
-
await
|
|
81
|
-
const list = get(
|
|
80
|
+
await forceLoadUserMuteList([]);
|
|
81
|
+
const list = get(userMuteList) || makeList({ kind: MUTES });
|
|
82
82
|
const event = await addToListPublicly(list, tag).reconcile(nip44EncryptToSelf);
|
|
83
83
|
const relays = Router.get().FromUser().policy(addMaximalFallbacks).getUrls();
|
|
84
84
|
return publishThunk({ event, relays });
|
|
85
85
|
};
|
|
86
86
|
export const mutePrivately = async (tag) => {
|
|
87
|
-
await
|
|
88
|
-
const list = get(
|
|
87
|
+
await forceLoadUserMuteList([]);
|
|
88
|
+
const list = get(userMuteList) || makeList({ kind: MUTES });
|
|
89
89
|
const event = await addToListPrivately(list, tag).reconcile(nip44EncryptToSelf);
|
|
90
90
|
const relays = Router.get().FromUser().policy(addMaximalFallbacks).getUrls();
|
|
91
91
|
return publishThunk({ event, relays });
|
|
92
92
|
};
|
|
93
93
|
export const setMutes = async ({ publicTags, privateTags, }) => {
|
|
94
|
-
await
|
|
95
|
-
const list = get(
|
|
94
|
+
await forceLoadUserMuteList([]);
|
|
95
|
+
const list = get(userMuteList) || makeList({ kind: MUTES });
|
|
96
96
|
const event = await updateList(list, { publicTags, privateTags }).reconcile(nip44EncryptToSelf);
|
|
97
97
|
const relays = Router.get().FromUser().policy(addMaximalFallbacks).getUrls();
|
|
98
98
|
return publishThunk({ event, relays });
|
|
99
99
|
};
|
|
100
100
|
export const unpin = async (value) => {
|
|
101
|
-
await
|
|
102
|
-
const list = get(
|
|
101
|
+
await forceLoadUserPinList([]);
|
|
102
|
+
const list = get(userPinList) || makeList({ kind: PINS });
|
|
103
103
|
const event = await removeFromList(list, value).reconcile(nip44EncryptToSelf);
|
|
104
104
|
const relays = Router.get().FromUser().policy(addMaximalFallbacks).getUrls();
|
|
105
105
|
return publishThunk({ event, relays });
|
|
106
106
|
};
|
|
107
107
|
export const pin = async (tag) => {
|
|
108
|
-
await
|
|
109
|
-
const list = get(
|
|
108
|
+
await forceLoadUserPinList([]);
|
|
109
|
+
const list = get(userPinList) || makeList({ kind: PINS });
|
|
110
110
|
const event = await addToListPublicly(list, tag).reconcile(nip44EncryptToSelf);
|
|
111
111
|
const relays = Router.get().FromUser().policy(addMaximalFallbacks).getUrls();
|
|
112
112
|
return publishThunk({ event, relays });
|
|
113
113
|
};
|
|
114
114
|
export const sendWrapped = ({ event, recipients, ...options }) => new MergedThunk(uniq(recipients).map(recipient => {
|
|
115
|
-
const relays = Router.get().
|
|
115
|
+
const relays = Router.get().MessagesForPubkey(recipient).getUrls();
|
|
116
116
|
return publishThunk({ event, relays, recipient, ...options });
|
|
117
117
|
}));
|
|
118
118
|
// NIP 86
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../src/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,cAAc,CAAA;AAChC,OAAO,EAAC,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAC,MAAM,eAAe,CAAA;AACjE,OAAO,EACL,qBAAqB,EAErB,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EAEV,cAAc,EACd,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,EAClB,aAAa,EACb,WAAW,EACX,SAAS,EACT,
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../src/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,cAAc,CAAA;AAChC,OAAO,EAAC,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAC,MAAM,eAAe,CAAA;AACjE,OAAO,EACL,qBAAqB,EAErB,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EAEV,cAAc,EACd,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,yBAAyB,EACzB,kBAAkB,EAClB,aAAa,EACb,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,OAAO,EACP,MAAM,EACN,KAAK,EACL,IAAI,GACL,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAC,MAAM,EAAE,mBAAmB,EAAC,MAAM,kBAAkB,CAAA;AAC5D,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,sBAAsB,EACtB,+BAA+B,EAC/B,cAAc,EACd,uBAAuB,EACvB,YAAY,EACZ,qBAAqB,EACrB,WAAW,EACX,oBAAoB,GACrB,MAAM,WAAW,CAAA;AAClB,OAAO,EAAC,kBAAkB,EAAE,MAAM,EAAC,MAAM,cAAc,CAAA;AACvD,OAAO,EAAe,WAAW,EAAE,YAAY,EAAC,MAAM,YAAY,CAAA;AAElE,SAAS;AAET,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,GAAW,EAAE,IAAe,EAAE,EAAE;IAChE,MAAM,sBAAsB,CAAC,EAAE,CAAC,CAAA;IAEhC,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC,CAAA;IAC3D,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAC/D,MAAM,GAAG,GAAG,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAA;IACtE,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAElD,oEAAoE;IACpE,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;IAC5B,CAAC;IAED,MAAM,KAAK,GAAG,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,EAAE,IAAI,EAAC,CAAA;IACzE,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAA;IAE5E,wCAAwC;IACxC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAEhB,OAAO,YAAY,CAAC,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC,CAAA;AACtC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,GAAW,EAAE,IAAe,EAAE,EAAE;IAC7D,MAAM,sBAAsB,CAAC,EAAE,CAAC,CAAA;IAEhC,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC,CAAA;IAC3D,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IAC/D,MAAM,GAAG,GAAG,eAAe,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IAClF,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAC5D,MAAM,KAAK,GAAG,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,EAAE,IAAI,EAAC,CAAA;IACzE,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAA;IAE5E,OAAO,YAAY,CAAC,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC,CAAA;AACtC,CAAC,CAAA;AAED,SAAS;AAET,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE;IACxD,MAAM,+BAA+B,CAAC,EAAE,CAAC,CAAA;IAEzC,MAAM,IAAI,GAAG,GAAG,CAAC,sBAAsB,CAAC,IAAI,QAAQ,CAAC,EAAC,IAAI,EAAE,gBAAgB,EAAC,CAAC,CAAA;IAC9E,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;IAC3E,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAA;IAE5E,OAAO,YAAY,CAAC,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC,CAAA;AACtC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,GAAW,EAAE,EAAE;IACrD,MAAM,+BAA+B,CAAC,EAAE,CAAC,CAAA;IAEzC,MAAM,IAAI,GAAG,GAAG,CAAC,sBAAsB,CAAC,IAAI,QAAQ,CAAC,EAAC,IAAI,EAAE,gBAAgB,EAAC,CAAC,CAAA;IAC9E,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;IACzF,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAA;IAE5E,OAAO,YAAY,CAAC,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC,CAAA;AACtC,CAAC,CAAA;AAED,SAAS;AAET,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAgB,EAAE,EAAE;IAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAA;IAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAA;IAC1E,MAAM,KAAK,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IAEzF,OAAO,YAAY,CAAC,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC,CAAA;AACtC,CAAC,CAAA;AAED,SAAS;AAET,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,KAAa,EAAE,EAAE;IAC9C,MAAM,uBAAuB,CAAC,EAAE,CAAC,CAAA;IAEjC,MAAM,IAAI,GAAG,GAAG,CAAC,cAAc,CAAC,IAAI,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC,CAAA;IAC7D,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;IAC7E,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAA;IAE5E,OAAO,YAAY,CAAC,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC,CAAA;AACtC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,EAAE,GAAa,EAAE,EAAE;IAC5C,MAAM,uBAAuB,CAAC,EAAE,CAAC,CAAA;IAEjC,MAAM,IAAI,GAAG,GAAG,CAAC,cAAc,CAAC,IAAI,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC,CAAA;IAC7D,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;IAC9E,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAA;IAE5E,OAAO,YAAY,CAAC,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC,CAAA;AACtC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,EAAE,KAAa,EAAE,EAAE;IAC5C,MAAM,qBAAqB,CAAC,EAAE,CAAC,CAAA;IAE/B,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,CAAC,CAAA;IACzD,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;IAC7E,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAA;IAE5E,OAAO,YAAY,CAAC,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC,CAAA;AACtC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,GAAa,EAAE,EAAE;IAClD,MAAM,qBAAqB,CAAC,EAAE,CAAC,CAAA;IAE/B,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,CAAC,CAAA;IACzD,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;IAC9E,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAA;IAE5E,OAAO,YAAY,CAAC,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC,CAAA;AACtC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,GAAa,EAAE,EAAE;IACnD,MAAM,qBAAqB,CAAC,EAAE,CAAC,CAAA;IAE/B,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,CAAC,CAAA;IACzD,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;IAC/E,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAA;IAE5E,OAAO,YAAY,CAAC,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC,CAAA;AACtC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAE,EAC7B,UAAU,EACV,WAAW,GAIZ,EAAE,EAAE;IACH,MAAM,qBAAqB,CAAC,EAAE,CAAC,CAAA;IAE/B,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,CAAC,CAAA;IACzD,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,EAAC,UAAU,EAAE,WAAW,EAAC,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;IAC7F,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAA;IAE5E,OAAO,YAAY,CAAC,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC,CAAA;AACtC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,EAAE,KAAa,EAAE,EAAE;IAC3C,MAAM,oBAAoB,CAAC,EAAE,CAAC,CAAA;IAE9B,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAA;IACvD,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;IAC7E,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAA;IAE5E,OAAO,YAAY,CAAC,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC,CAAA;AACtC,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,EAAE,GAAa,EAAE,EAAE;IACzC,MAAM,oBAAoB,CAAC,EAAE,CAAC,CAAA;IAE9B,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,CAAC,IAAI,QAAQ,CAAC,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAA;IACvD,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;IAC9E,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAA;IAE5E,OAAO,YAAY,CAAC,EAAC,KAAK,EAAE,MAAM,EAAC,CAAC,CAAA;AACtC,CAAC,CAAA;AASD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAAC,KAAK,EAAE,UAAU,EAAE,GAAG,OAAO,EAAqB,EAAE,EAAE,CACjF,IAAI,WAAW,CACb,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;IAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CAAA;IAElE,OAAO,YAAY,CAAC,EAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,EAAC,CAAC,CAAA;AAC7D,CAAC,CAAC,CACH,CAAA;AAEH,SAAS;AAET,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAAE,GAAW,EAAE,OAA0B,EAAE,EAAE;IAC3E,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAEhC,MAAM,YAAY,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAA;IAC7E,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,GAAG,EAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;IAExD,OAAO,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,CAAC,CAAA;AACvD,CAAC,CAAA;AAED,SAAS;AAET,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,EAAE,CACxD,YAAY,CAAC,EAAC,KAAK,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAC,CAAC,CAAA;AAEjE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,EAAE,CACxD,YAAY,CAAC,EAAC,KAAK,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAC,CAAC,CAAA;AAEjE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,EAAE,CACtD,YAAY,CAAC,EAAC,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAC,CAAC,CAAA;AAE/D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,EAAE,CACtD,YAAY,CAAC,EAAC,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAC,CAAC,CAAA;AAE/D,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,EAAE,CACvD,YAAY,CAAC,EAAC,KAAK,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAC,CAAC,CAAA;AAEhE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,MAAc,EAAE,EAAE,CAC3E,YAAY,CAAC,EAAC,KAAK,EAAE,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAC,CAAC,CAAA;AAE5E,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,GAAW,EAAE,IAAc,EAAE,MAAc,EAAE,EAAE,CAC9E,YAAY,CAAC,EAAC,KAAK,EAAE,yBAAyB,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAC,CAAC,CAAA"}
|
package/dist/app/src/core.d.ts
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
1
|
import { Repository, Tracker } from "@welshman/net";
|
|
2
2
|
export declare const tracker: Tracker;
|
|
3
3
|
export declare const repository: Repository;
|
|
4
|
-
export declare const makeRepositoryStore: ({ throttle: t }?: {
|
|
5
|
-
throttle?: number;
|
|
6
|
-
}) => import("@welshman/store").WritableWithGetter<Repository>;
|
|
7
|
-
export declare const makeTrackerStore: ({ throttle: t }?: {
|
|
8
|
-
throttle?: number;
|
|
9
|
-
}) => import("@welshman/store").WritableWithGetter<Tracker>;
|
|
10
4
|
//# sourceMappingURL=core.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/core.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,OAAO,EAAC,MAAM,eAAe,CAAA;AAEjD,eAAO,MAAM,OAAO,SAAgB,CAAA;AAEpC,eAAO,MAAM,UAAU,YAAmB,CAAA"}
|
package/dist/app/src/core.js
CHANGED
|
@@ -1,37 +1,4 @@
|
|
|
1
|
-
import { throttle } from "@welshman/lib";
|
|
2
1
|
import { Repository, Tracker } from "@welshman/net";
|
|
3
|
-
import { custom } from "@welshman/store";
|
|
4
2
|
export const tracker = new Tracker();
|
|
5
3
|
export const repository = Repository.get();
|
|
6
|
-
// Adapt objects to stores
|
|
7
|
-
export const makeRepositoryStore = ({ throttle: t = 300 } = {}) => custom(setter => {
|
|
8
|
-
let onUpdate = () => setter(repository);
|
|
9
|
-
if (t) {
|
|
10
|
-
onUpdate = throttle(t, onUpdate);
|
|
11
|
-
}
|
|
12
|
-
onUpdate();
|
|
13
|
-
repository.on("update", onUpdate);
|
|
14
|
-
return () => repository.off("update", onUpdate);
|
|
15
|
-
}, {
|
|
16
|
-
onUpdate: (other) => repository.load(other.dump()),
|
|
17
|
-
});
|
|
18
|
-
export const makeTrackerStore = ({ throttle: t = 300 } = {}) => custom(setter => {
|
|
19
|
-
let onUpdate = () => setter(tracker);
|
|
20
|
-
if (t) {
|
|
21
|
-
onUpdate = throttle(t, onUpdate);
|
|
22
|
-
}
|
|
23
|
-
onUpdate();
|
|
24
|
-
tracker.on("add", onUpdate);
|
|
25
|
-
tracker.on("remove", onUpdate);
|
|
26
|
-
tracker.on("load", onUpdate);
|
|
27
|
-
tracker.on("clear", onUpdate);
|
|
28
|
-
return () => {
|
|
29
|
-
tracker.off("add", onUpdate);
|
|
30
|
-
tracker.off("remove", onUpdate);
|
|
31
|
-
tracker.off("load", onUpdate);
|
|
32
|
-
tracker.off("clear", onUpdate);
|
|
33
|
-
};
|
|
34
|
-
}, {
|
|
35
|
-
onUpdate: (other) => tracker.load(other.relaysById),
|
|
36
|
-
});
|
|
37
4
|
//# sourceMappingURL=core.js.map
|
package/dist/app/src/core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,OAAO,EAAC,MAAM,eAAe,CAAA;AAEjD,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAEpC,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feeds.d.ts","sourceRoot":"","sources":["../../../src/feeds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,cAAc,EAAE,qBAAqB,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAA;AAIlF,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,aAmB/C,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,
|
|
1
|
+
{"version":3,"file":"feeds.d.ts","sourceRoot":"","sources":["../../../src/feeds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,cAAc,EAAE,qBAAqB,EAAE,IAAI,EAAC,MAAM,iBAAiB,CAAA;AAIlF,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,aAmB/C,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,aAa7D,CAAA;AAED,KAAK,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,GAAG;IAAC,IAAI,EAAE,IAAI,CAAA;CAAC,CAAA;AAE5F,eAAO,MAAM,kBAAkB,GAAI,SAAS,yBAAyB,mBAC8B,CAAA"}
|
package/dist/app/src/feeds.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Scope, FeedController } from "@welshman/feeds";
|
|
2
2
|
import { pubkey, signer } from "./session.js";
|
|
3
|
-
import {
|
|
3
|
+
import { getWotGraph, getMaxWot, getFollows, getNetwork, getFollowers } from "./wot.js";
|
|
4
4
|
export const getPubkeysForScope = (scope) => {
|
|
5
5
|
const $pubkey = pubkey.get();
|
|
6
6
|
if (!$pubkey) {
|
|
@@ -21,9 +21,10 @@ export const getPubkeysForScope = (scope) => {
|
|
|
21
21
|
};
|
|
22
22
|
export const getPubkeysForWOTRange = (min, max) => {
|
|
23
23
|
const pubkeys = [];
|
|
24
|
-
const
|
|
25
|
-
const
|
|
26
|
-
|
|
24
|
+
const $maxWot = getMaxWot();
|
|
25
|
+
const thresholdMin = $maxWot * min;
|
|
26
|
+
const thresholdMax = $maxWot * max;
|
|
27
|
+
for (const [tpk, score] of getWotGraph().entries()) {
|
|
27
28
|
if (score >= thresholdMin && score <= thresholdMax) {
|
|
28
29
|
pubkeys.push(tpk);
|
|
29
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feeds.js","sourceRoot":"","sources":["../../../src/feeds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,cAAc,EAA8B,MAAM,iBAAiB,CAAA;AAClF,OAAO,EAAC,MAAM,EAAE,MAAM,EAAC,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"feeds.js","sourceRoot":"","sources":["../../../src/feeds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,cAAc,EAA8B,MAAM,iBAAiB,CAAA;AAClF,OAAO,EAAC,MAAM,EAAE,MAAM,EAAC,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAC,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAC,MAAM,UAAU,CAAA;AAErF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAE,EAAE;IAClD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,EAAE,CAAA;IAE5B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAA;IACX,CAAC;IAED,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,KAAK,CAAC,IAAI;YACb,OAAO,CAAC,OAAO,CAAC,CAAA;QAClB,KAAK,KAAK,CAAC,OAAO;YAChB,OAAO,UAAU,CAAC,OAAO,CAAC,CAAA;QAC5B,KAAK,KAAK,CAAC,OAAO;YAChB,OAAO,UAAU,CAAC,OAAO,CAAC,CAAA;QAC5B,KAAK,KAAK,CAAC,SAAS;YAClB,OAAO,YAAY,CAAC,OAAO,CAAC,CAAA;QAC9B;YACE,OAAO,EAAE,CAAA;IACb,CAAC;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,GAAW,EAAE,GAAW,EAAE,EAAE;IAChE,MAAM,OAAO,GAAG,EAAE,CAAA;IAClB,MAAM,OAAO,GAAG,SAAS,EAAE,CAAA;IAC3B,MAAM,YAAY,GAAG,OAAO,GAAG,GAAG,CAAA;IAClC,MAAM,YAAY,GAAG,OAAO,GAAG,GAAG,CAAA;IAElC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;QACnD,IAAI,KAAK,IAAI,YAAY,IAAI,KAAK,IAAI,YAAY,EAAE,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACnB,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAID,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAkC,EAAE,EAAE,CACvE,IAAI,cAAc,CAAC,EAAC,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,EAAC,CAAC,CAAA"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const
|
|
3
|
-
export declare const
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
export declare const followListsByPubkey: import("svelte/store").Readable<Map<string, import("@welshman/util").PublishedList>>;
|
|
2
|
+
export declare const followLists: import("svelte/store").Readable<import("@welshman/util").PublishedList[]>;
|
|
3
|
+
export declare const getFollowListsByPubkey: () => Map<string, import("@welshman/util").PublishedList>;
|
|
4
|
+
export declare const getFollowLists: () => import("@welshman/util").PublishedList[];
|
|
5
|
+
export declare const getFollowList: (pubkey: string) => import("@welshman/util").PublishedList | undefined;
|
|
6
|
+
export declare const forceLoadFollowList: (key: string, ...args: any[]) => Promise<import("@welshman/util").PublishedList | undefined>;
|
|
7
|
+
export declare const loadFollowList: (key: string, ...args: any[]) => Promise<import("@welshman/lib").Maybe<import("@welshman/util").PublishedList>>;
|
|
8
|
+
export declare const deriveFollowList: (key?: string, ...args: any[]) => import("svelte/store").Readable<import("@welshman/util").PublishedList | undefined>;
|
|
6
9
|
//# sourceMappingURL=follows.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"follows.d.ts","sourceRoot":"","sources":["../../../src/follows.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"follows.d.ts","sourceRoot":"","sources":["../../../src/follows.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,mBAAmB,sFAK9B,CAAA;AAEF,eAAO,MAAM,WAAW,2EAAmC,CAAA;AAE3D,eAAO,MAAM,sBAAsB,2DAA8B,CAAA;AAEjE,eAAO,MAAM,cAAc,gDAAsB,CAAA;AAEjD,eAAO,MAAM,aAAa,GAAI,QAAQ,MAAM,uDAAyC,CAAA;AAErF,eAAO,MAAM,mBAAmB,8FAA8D,CAAA;AAE9F,eAAO,MAAM,cAAc,iHAAyD,CAAA;AAEpF,eAAO,MAAM,gBAAgB,uHAAsD,CAAA"}
|
package/dist/app/src/follows.js
CHANGED
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { FOLLOWS, asDecryptedEvent, readList } from "@welshman/util";
|
|
2
|
-
import {
|
|
2
|
+
import { deriveItemsByKey, deriveItems, makeForceLoadItem, makeLoadItem, makeDeriveItem, getter, } from "@welshman/store";
|
|
3
3
|
import { repository } from "./core.js";
|
|
4
|
-
import { makeOutboxLoader } from "./
|
|
5
|
-
export const
|
|
4
|
+
import { makeOutboxLoader } from "./relayLists.js";
|
|
5
|
+
export const followListsByPubkey = deriveItemsByKey({
|
|
6
|
+
repository,
|
|
6
7
|
filters: [{ kinds: [FOLLOWS] }],
|
|
7
|
-
itemToEvent: item => item.event,
|
|
8
8
|
eventToItem: (event) => readList(asDecryptedEvent(event)),
|
|
9
|
+
getKey: followList => followList.event.pubkey,
|
|
9
10
|
});
|
|
10
|
-
export const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
export const followLists = deriveItems(followListsByPubkey);
|
|
12
|
+
export const getFollowListsByPubkey = getter(followListsByPubkey);
|
|
13
|
+
export const getFollowLists = getter(followLists);
|
|
14
|
+
export const getFollowList = (pubkey) => getFollowListsByPubkey().get(pubkey);
|
|
15
|
+
export const forceLoadFollowList = makeForceLoadItem(makeOutboxLoader(FOLLOWS), getFollowList);
|
|
16
|
+
export const loadFollowList = makeLoadItem(makeOutboxLoader(FOLLOWS), getFollowList);
|
|
17
|
+
export const deriveFollowList = makeDeriveItem(followListsByPubkey, loadFollowList);
|
|
16
18
|
//# sourceMappingURL=follows.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"follows.js","sourceRoot":"","sources":["../../../src/follows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAC,MAAM,gBAAgB,CAAA;AAElE,OAAO,
|
|
1
|
+
{"version":3,"file":"follows.js","sourceRoot":"","sources":["../../../src/follows.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAC,MAAM,gBAAgB,CAAA;AAElE,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,MAAM,GACP,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAC,UAAU,EAAC,MAAM,WAAW,CAAA;AACpC,OAAO,EAAC,gBAAgB,EAAC,MAAM,iBAAiB,CAAA;AAEhD,MAAM,CAAC,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;IAClD,UAAU;IACV,OAAO,EAAE,CAAC,EAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAC,CAAC;IAC7B,WAAW,EAAE,CAAC,KAAmB,EAAE,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,EAAE,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM;CAC9C,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,WAAW,CAAC,mBAAmB,CAAC,CAAA;AAE3D,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAA;AAEjE,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;AAEjD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,sBAAsB,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AAErF,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,CAAA;AAE9F,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,CAAA;AAEpF,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Subscriber } from "svelte/store";
|
|
1
2
|
export type Handle = {
|
|
2
3
|
nip05: string;
|
|
3
4
|
pubkey?: string;
|
|
@@ -10,11 +11,19 @@ export declare function queryProfile(nip05: string): Promise<{
|
|
|
10
11
|
nip46: any;
|
|
11
12
|
relays: any;
|
|
12
13
|
} | undefined>;
|
|
13
|
-
export declare const
|
|
14
|
-
export declare const
|
|
15
|
-
export declare const
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
export declare const handlesByNip05: import("svelte/store").Writable<Map<string, Handle>>;
|
|
15
|
+
export declare const handles: import("svelte/store").Readable<Handle[]>;
|
|
16
|
+
export declare const getHandlesByNip05: () => Map<string, Handle>;
|
|
17
|
+
export declare const getHandles: () => Handle[];
|
|
18
|
+
export declare const getHandle: (nip05: string) => Handle | undefined;
|
|
19
|
+
export declare const handleSubscribers: Subscriber<Handle>[];
|
|
20
|
+
export declare const notifyHandle: (handle: Handle) => void;
|
|
21
|
+
export declare const onHandle: (sub: (handle: Handle) => void) => () => Subscriber<Handle>[];
|
|
22
|
+
export declare const fetchHandle: (request: string) => Promise<Handle | undefined>;
|
|
23
|
+
export declare const forceLoadHandle: (key: string, ...args: any[]) => Promise<Handle | undefined>;
|
|
24
|
+
export declare const loadHandle: (key: string, ...args: any[]) => Promise<import("@welshman/lib").Maybe<Handle>>;
|
|
25
|
+
export declare const deriveHandle: (key?: string, ...args: any[]) => import("svelte/store").Readable<Handle | undefined>;
|
|
26
|
+
export declare const loadHandleForPubkey: (pubkey: string, relays?: string[]) => Promise<import("@welshman/lib").Maybe<Handle>>;
|
|
18
27
|
export declare const deriveHandleForPubkey: (pubkey: string, relays?: string[]) => import("svelte/store").Readable<Handle | undefined>;
|
|
19
28
|
export declare const displayNip05: (nip05: string) => string;
|
|
20
29
|
export declare const displayHandle: (handle: Handle) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handles.d.ts","sourceRoot":"","sources":["../../../src/handles.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"handles.d.ts","sourceRoot":"","sources":["../../../src/handles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,UAAU,EAAC,MAAM,cAAc,CAAA;AAM1D,MAAM,MAAM,MAAM,GAAG;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM;;;;;eA2B/C;AAED,eAAO,MAAM,cAAc,sDAAsC,CAAA;AAEjE,eAAO,MAAM,OAAO,2CAA8B,CAAA;AAElD,eAAO,MAAM,iBAAiB,2BAAyB,CAAA;AAEvD,eAAO,MAAM,UAAU,gBAAkB,CAAA;AAEzC,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,uBAAmC,CAAA;AAE1E,eAAO,MAAM,iBAAiB,EAAE,UAAU,CAAC,MAAM,CAAC,EAAO,CAAA;AAEzD,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,SAAkD,CAAA;AAE7F,eAAO,MAAM,QAAQ,GAAI,KAAK,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,+BAQrD,CAAA;AAED,eAAO,MAAM,WAAW,kDA0CtB,CAAA;AAEF,eAAO,MAAM,eAAe,8DAA4C,CAAA;AAExE,eAAO,MAAM,UAAU,iFAAuC,CAAA;AAE9D,eAAO,MAAM,YAAY,uFAA6C,CAAA;AAEtE,eAAO,MAAM,mBAAmB,GAAU,QAAQ,MAAM,EAAE,SAAQ,MAAM,EAAO,mDAI9E,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,QAAQ,MAAM,EAAE,SAAQ,MAAM,EAAO,wDAY1E,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,WACgB,CAAA;AAE1D,eAAO,MAAM,aAAa,GAAI,QAAQ,MAAM,WAA+B,CAAA"}
|
package/dist/app/src/handles.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { writable, derived } from "svelte/store";
|
|
2
|
-
import { tryCatch, fetchJson,
|
|
3
|
-
import {
|
|
4
|
-
import { deriveProfile } from "./profiles.js";
|
|
2
|
+
import { tryCatch, fetchJson, batcher, postJson, last } from "@welshman/lib";
|
|
3
|
+
import { getter, deriveItems, makeForceLoadItem, makeLoadItem, makeDeriveItem } from "@welshman/store";
|
|
4
|
+
import { deriveProfile, loadProfile } from "./profiles.js";
|
|
5
5
|
import { appContext } from "./context.js";
|
|
6
6
|
export async function queryProfile(nip05) {
|
|
7
7
|
const parts = nip05.split("@");
|
|
@@ -24,16 +24,25 @@ export async function queryProfile(nip05) {
|
|
|
24
24
|
return undefined;
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
export const
|
|
28
|
-
export const
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
export const handlesByNip05 = writable(new Map());
|
|
28
|
+
export const handles = deriveItems(handlesByNip05);
|
|
29
|
+
export const getHandlesByNip05 = getter(handlesByNip05);
|
|
30
|
+
export const getHandles = getter(handles);
|
|
31
|
+
export const getHandle = (nip05) => getHandlesByNip05().get(nip05);
|
|
32
|
+
export const handleSubscribers = [];
|
|
33
|
+
export const notifyHandle = (handle) => handleSubscribers.forEach(sub => sub(handle));
|
|
34
|
+
export const onHandle = (sub) => {
|
|
35
|
+
handleSubscribers.push(sub);
|
|
36
|
+
return () => handleSubscribers.splice(handleSubscribers.findIndex(s => s === sub), 1);
|
|
37
|
+
};
|
|
38
|
+
export const fetchHandle = batcher(800, async (nip05s) => {
|
|
39
|
+
const result = new Map();
|
|
31
40
|
// Use dufflepud if we it's set up to protect user privacy, otherwise fetch directly
|
|
32
|
-
if (
|
|
33
|
-
const res = await tryCatch(async () => await postJson(`${
|
|
41
|
+
if (appContext.dufflepudUrl) {
|
|
42
|
+
const res = await tryCatch(async () => await postJson(`${appContext.dufflepudUrl}/handle/info`, { handles: nip05s }));
|
|
34
43
|
for (const { handle: nip05, info } of res?.data || []) {
|
|
35
44
|
if (info) {
|
|
36
|
-
|
|
45
|
+
result.set(nip05, { ...info, nip05 });
|
|
37
46
|
}
|
|
38
47
|
}
|
|
39
48
|
}
|
|
@@ -44,39 +53,39 @@ export const fetchHandles = async (nip05s) => {
|
|
|
44
53
|
})));
|
|
45
54
|
for (const { nip05, info } of results) {
|
|
46
55
|
if (info) {
|
|
47
|
-
|
|
56
|
+
result.set(nip05, { ...info, nip05 });
|
|
48
57
|
}
|
|
49
58
|
}
|
|
50
59
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
name: "handles",
|
|
55
|
-
store: handles,
|
|
56
|
-
getKey: (handle) => handle.nip05,
|
|
57
|
-
load: batcher(800, async (nip05s) => {
|
|
58
|
-
const fresh = await fetchHandles(uniq(nip05s));
|
|
59
|
-
const stale = handlesByNip05.get();
|
|
60
|
-
for (const nip05 of nip05s) {
|
|
61
|
-
const newHandle = fresh.get(nip05);
|
|
62
|
-
if (newHandle) {
|
|
63
|
-
stale.set(nip05, { ...newHandle, nip05 });
|
|
64
|
-
}
|
|
60
|
+
handlesByNip05.update($handlesByNip05 => {
|
|
61
|
+
for (const [nip05, info] of result) {
|
|
62
|
+
$handlesByNip05.set(nip05, info);
|
|
65
63
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
export const deriveHandleForPubkey = (pubkey, relays = []) => derived([handlesByNip05, deriveProfile(pubkey, relays)], ([$handlesByNip05, $profile]) => {
|
|
71
|
-
if (!$profile?.nip05) {
|
|
72
|
-
return undefined;
|
|
73
|
-
}
|
|
74
|
-
loadHandle($profile.nip05);
|
|
75
|
-
const handle = $handlesByNip05.get($profile.nip05);
|
|
76
|
-
if (handle?.pubkey === pubkey) {
|
|
77
|
-
return handle;
|
|
64
|
+
return $handlesByNip05;
|
|
65
|
+
});
|
|
66
|
+
for (const info of result.values()) {
|
|
67
|
+
notifyHandle(info);
|
|
78
68
|
}
|
|
69
|
+
return nip05s.map(nip05 => result.get(nip05));
|
|
79
70
|
});
|
|
71
|
+
export const forceLoadHandle = makeForceLoadItem(fetchHandle, getHandle);
|
|
72
|
+
export const loadHandle = makeLoadItem(fetchHandle, getHandle);
|
|
73
|
+
export const deriveHandle = makeDeriveItem(handlesByNip05, loadHandle);
|
|
74
|
+
export const loadHandleForPubkey = async (pubkey, relays = []) => {
|
|
75
|
+
const $profile = await loadProfile(pubkey, relays);
|
|
76
|
+
return $profile?.nip05 ? loadHandle($profile.nip05) : undefined;
|
|
77
|
+
};
|
|
78
|
+
export const deriveHandleForPubkey = (pubkey, relays = []) => {
|
|
79
|
+
loadHandleForPubkey(pubkey, relays);
|
|
80
|
+
return derived([handlesByNip05, deriveProfile(pubkey, relays)], ([$handlesByNip05, $profile]) => {
|
|
81
|
+
if (!$profile?.nip05)
|
|
82
|
+
return undefined;
|
|
83
|
+
const handle = $handlesByNip05.get($profile.nip05);
|
|
84
|
+
if (handle?.pubkey !== pubkey)
|
|
85
|
+
return undefined;
|
|
86
|
+
return handle;
|
|
87
|
+
});
|
|
88
|
+
};
|
|
80
89
|
export const displayNip05 = (nip05) => nip05?.startsWith("_@") ? last(nip05.split("@")) : nip05;
|
|
81
90
|
export const displayHandle = (handle) => displayNip05(handle.nip05);
|
|
82
91
|
//# sourceMappingURL=handles.js.map
|