@welshman/app 0.12.4 → 0.12.6
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/index.d.ts +1 -0
- package/dist/app/src/index.d.ts.map +1 -1
- package/dist/app/src/index.js +1 -0
- package/dist/app/src/index.js.map +1 -1
- package/dist/app/src/plugins/base.d.ts +3 -20
- package/dist/app/src/plugins/base.d.ts.map +1 -1
- package/dist/app/src/plugins/base.js +7 -22
- package/dist/app/src/plugins/base.js.map +1 -1
- package/dist/app/src/plugins/blockedRelayLists.d.ts +1 -1
- package/dist/app/src/plugins/blockedRelayLists.d.ts.map +1 -1
- package/dist/app/src/plugins/blockedRelayLists.js +1 -7
- package/dist/app/src/plugins/blockedRelayLists.js.map +1 -1
- package/dist/app/src/plugins/blossomServerLists.d.ts +1 -1
- package/dist/app/src/plugins/blossomServerLists.d.ts.map +1 -1
- package/dist/app/src/plugins/blossomServerLists.js +1 -7
- package/dist/app/src/plugins/blossomServerLists.js.map +1 -1
- package/dist/app/src/plugins/domain.d.ts +7 -0
- package/dist/app/src/plugins/domain.d.ts.map +1 -1
- package/dist/app/src/plugins/domain.js +11 -0
- package/dist/app/src/plugins/domain.js.map +1 -1
- package/dist/app/src/plugins/events.d.ts +5 -6
- package/dist/app/src/plugins/events.d.ts.map +1 -1
- package/dist/app/src/plugins/events.js +24 -38
- package/dist/app/src/plugins/events.js.map +1 -1
- package/dist/app/src/plugins/feedLists.d.ts +1 -1
- package/dist/app/src/plugins/feedLists.d.ts.map +1 -1
- package/dist/app/src/plugins/feedLists.js +1 -7
- package/dist/app/src/plugins/feedLists.js.map +1 -1
- package/dist/app/src/plugins/feeds.d.ts +1 -1
- package/dist/app/src/plugins/feeds.d.ts.map +1 -1
- package/dist/app/src/plugins/feeds.js +2 -1
- package/dist/app/src/plugins/feeds.js.map +1 -1
- package/dist/app/src/plugins/followLists.d.ts.map +1 -1
- package/dist/app/src/plugins/followLists.js +1 -7
- package/dist/app/src/plugins/followLists.js.map +1 -1
- package/dist/app/src/plugins/handles.d.ts +1 -1
- package/dist/app/src/plugins/handles.d.ts.map +1 -1
- package/dist/app/src/plugins/handles.js +2 -2
- package/dist/app/src/plugins/handles.js.map +1 -1
- package/dist/app/src/plugins/logger.d.ts +1 -1
- package/dist/app/src/plugins/logger.d.ts.map +1 -1
- package/dist/app/src/plugins/logger.js +1 -1
- package/dist/app/src/plugins/logger.js.map +1 -1
- package/dist/app/src/plugins/messagingRelayLists.d.ts +1 -1
- package/dist/app/src/plugins/messagingRelayLists.d.ts.map +1 -1
- package/dist/app/src/plugins/messagingRelayLists.js +1 -9
- package/dist/app/src/plugins/messagingRelayLists.js.map +1 -1
- package/dist/app/src/plugins/muteLists.d.ts.map +1 -1
- package/dist/app/src/plugins/muteLists.js +1 -7
- package/dist/app/src/plugins/muteLists.js.map +1 -1
- package/dist/app/src/plugins/notify.d.ts +23 -0
- package/dist/app/src/plugins/notify.d.ts.map +1 -0
- package/dist/app/src/plugins/notify.js +28 -0
- package/dist/app/src/plugins/notify.js.map +1 -0
- package/dist/app/src/plugins/pinboards.d.ts +1 -1
- package/dist/app/src/plugins/pinboards.d.ts.map +1 -1
- package/dist/app/src/plugins/pinboards.js +2 -1
- package/dist/app/src/plugins/pinboards.js.map +1 -1
- package/dist/app/src/plugins/pins.d.ts.map +1 -1
- package/dist/app/src/plugins/pins.js +1 -7
- package/dist/app/src/plugins/pins.js.map +1 -1
- package/dist/app/src/plugins/profiles.d.ts +2 -1
- package/dist/app/src/plugins/profiles.d.ts.map +1 -1
- package/dist/app/src/plugins/profiles.js +3 -9
- package/dist/app/src/plugins/profiles.js.map +1 -1
- package/dist/app/src/plugins/relayLists.d.ts +1 -1
- package/dist/app/src/plugins/relayLists.d.ts.map +1 -1
- package/dist/app/src/plugins/relayLists.js +2 -8
- package/dist/app/src/plugins/relayLists.js.map +1 -1
- package/dist/app/src/plugins/relayRoles.d.ts +1 -1
- package/dist/app/src/plugins/relayRoles.d.ts.map +1 -1
- package/dist/app/src/plugins/relayRoles.js +1 -1
- package/dist/app/src/plugins/relayRoles.js.map +1 -1
- package/dist/app/src/plugins/relays.d.ts +2 -1
- package/dist/app/src/plugins/relays.d.ts.map +1 -1
- package/dist/app/src/plugins/relays.js.map +1 -1
- package/dist/app/src/plugins/roomLists.d.ts +1 -1
- package/dist/app/src/plugins/roomLists.d.ts.map +1 -1
- package/dist/app/src/plugins/roomLists.js +3 -7
- package/dist/app/src/plugins/roomLists.js.map +1 -1
- package/dist/app/src/plugins/roomPins.d.ts +1 -1
- package/dist/app/src/plugins/roomPins.d.ts.map +1 -1
- package/dist/app/src/plugins/roomPins.js +1 -1
- package/dist/app/src/plugins/roomPins.js.map +1 -1
- package/dist/app/src/plugins/rooms.d.ts +1 -2
- package/dist/app/src/plugins/rooms.d.ts.map +1 -1
- package/dist/app/src/plugins/rooms.js +1 -2
- package/dist/app/src/plugins/rooms.js.map +1 -1
- package/dist/app/src/plugins/searchRelayLists.d.ts +1 -1
- package/dist/app/src/plugins/searchRelayLists.d.ts.map +1 -1
- package/dist/app/src/plugins/searchRelayLists.js +1 -7
- package/dist/app/src/plugins/searchRelayLists.js.map +1 -1
- package/dist/app/src/plugins/topics.d.ts +2 -1
- package/dist/app/src/plugins/topics.d.ts.map +1 -1
- package/dist/app/src/plugins/topics.js +2 -2
- package/dist/app/src/plugins/topics.js.map +1 -1
- package/dist/app/src/plugins/wot.d.ts +1 -1
- package/dist/app/src/plugins/wot.d.ts.map +1 -1
- package/dist/app/src/plugins/wot.js +1 -2
- package/dist/app/src/plugins/wot.js.map +1 -1
- package/dist/app/src/plugins/zapGoals.d.ts +1 -1
- package/dist/app/src/plugins/zapGoals.d.ts.map +1 -1
- package/dist/app/src/plugins/zapGoals.js +1 -1
- package/dist/app/src/plugins/zapGoals.js.map +1 -1
- package/dist/app/src/plugins/zappers.d.ts +1 -1
- package/dist/app/src/plugins/zappers.d.ts.map +1 -1
- package/dist/app/src/plugins/zappers.js +2 -2
- package/dist/app/src/plugins/zappers.js.map +1 -1
- package/dist/app/src/policy.d.ts +4 -0
- package/dist/app/src/policy.d.ts.map +1 -1
- package/dist/app/src/policy.js +8 -0
- package/dist/app/src/policy.js.map +1 -1
- package/dist/domain/src/behaviors/Imeta.d.ts +2 -2
- package/dist/domain/src/behaviors/Imeta.d.ts.map +1 -1
- package/dist/domain/src/behaviors/Imeta.js +3 -5
- package/dist/domain/src/behaviors/Imeta.js.map +1 -1
- package/dist/domain/src/core/EventWriter.d.ts +3 -7
- package/dist/domain/src/core/EventWriter.d.ts.map +1 -1
- package/dist/domain/src/core/EventWriter.js +4 -8
- package/dist/domain/src/core/EventWriter.js.map +1 -1
- package/dist/domain/src/other/Relay.d.ts +21 -0
- package/dist/domain/src/other/Relay.d.ts.map +1 -1
- package/dist/domain/src/other/Relay.js +6 -0
- package/dist/domain/src/other/Relay.js.map +1 -1
- package/dist/lib/src/Tools.d.ts +1 -1
- package/dist/lib/src/Tools.d.ts.map +1 -1
- package/dist/lib/src/Tools.js.map +1 -1
- package/dist/net/src/message.d.ts +4 -0
- package/dist/net/src/message.d.ts.map +1 -1
- package/dist/net/src/message.js +2 -0
- package/dist/net/src/message.js.map +1 -1
- package/dist/net/src/repository.d.ts +9 -0
- package/dist/net/src/repository.d.ts.map +1 -1
- package/dist/net/src/repository.js +42 -24
- package/dist/net/src/repository.js.map +1 -1
- package/dist/net/src/util.d.ts +2 -1
- package/dist/net/src/util.d.ts.map +1 -1
- package/dist/net/src/util.js +6 -5
- package/dist/net/src/util.js.map +1 -1
- package/dist/store/src/misc.d.ts +18 -0
- package/dist/store/src/misc.d.ts.map +1 -1
- package/dist/store/src/misc.js +14 -0
- package/dist/store/src/misc.js.map +1 -1
- package/dist/store/src/repository.d.ts +24 -12
- package/dist/store/src/repository.d.ts.map +1 -1
- package/dist/store/src/repository.js +186 -141
- package/dist/store/src/repository.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +15 -15
package/dist/app/src/index.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export * from "./plugins/router.js";
|
|
|
10
10
|
export * from "./plugins/domain.js";
|
|
11
11
|
export * from "./plugins/relays.js";
|
|
12
12
|
export * from "./plugins/relayStats.js";
|
|
13
|
+
export * from "./plugins/notify.js";
|
|
13
14
|
export * from "./plugins/relayLists.js";
|
|
14
15
|
export * from "./plugins/blockedRelayLists.js";
|
|
15
16
|
export * from "./plugins/logger.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kCAAkC,CAAA;AAChD,cAAc,+BAA+B,CAAA;AAC7C,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,yBAAyB,CAAA;AACvC,cAAc,2BAA2B,CAAA;AACzC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,wBAAwB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kCAAkC,CAAA;AAChD,cAAc,+BAA+B,CAAA;AAC7C,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,yBAAyB,CAAA;AACvC,cAAc,2BAA2B,CAAA;AACzC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,wBAAwB,CAAA"}
|
package/dist/app/src/index.js
CHANGED
|
@@ -10,6 +10,7 @@ export * from "./plugins/router.js";
|
|
|
10
10
|
export * from "./plugins/domain.js";
|
|
11
11
|
export * from "./plugins/relays.js";
|
|
12
12
|
export * from "./plugins/relayStats.js";
|
|
13
|
+
export * from "./plugins/notify.js";
|
|
13
14
|
export * from "./plugins/relayLists.js";
|
|
14
15
|
export * from "./plugins/blockedRelayLists.js";
|
|
15
16
|
export * from "./plugins/logger.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kCAAkC,CAAA;AAChD,cAAc,+BAA+B,CAAA;AAC7C,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,yBAAyB,CAAA;AACvC,cAAc,2BAA2B,CAAA;AACzC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,wBAAwB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,qBAAqB,CAAA;AACnC,cAAc,yBAAyB,CAAA;AACvC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,kCAAkC,CAAA;AAChD,cAAc,+BAA+B,CAAA;AAC7C,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,yBAAyB,CAAA;AACvC,cAAc,2BAA2B,CAAA;AACzC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,wBAAwB,CAAA"}
|
|
@@ -2,15 +2,8 @@ import type { IFuseOptions, FuseResult } from "fuse.js";
|
|
|
2
2
|
import type { Readable, Unsubscriber } from "svelte/store";
|
|
3
3
|
import type { Maybe } from "@welshman/lib";
|
|
4
4
|
import type { Filter } from "@welshman/util";
|
|
5
|
-
import type { EventToItem, ItemsByKey, MakeLoadItemOptions } from "@welshman/store";
|
|
5
|
+
import type { EventToItem, ItemCollection, ItemsByKey, MakeLoadItemOptions, Projection } from "@welshman/store";
|
|
6
6
|
import type { IApp } from "../app.js";
|
|
7
|
-
/**
|
|
8
|
-
* Utility type which allows for using the same value both for hot gets and derived subscriptions
|
|
9
|
-
*/
|
|
10
|
-
export type Projection<T> = {
|
|
11
|
-
get: () => T;
|
|
12
|
-
$: Readable<T>;
|
|
13
|
-
};
|
|
14
7
|
export type SearchOptions<V, T> = {
|
|
15
8
|
getValue: (item: T) => V;
|
|
16
9
|
fuseOptions?: IFuseOptions<T>;
|
|
@@ -30,16 +23,6 @@ export type Search<V, T> = {
|
|
|
30
23
|
* their collection. Blends fuse scoring with an optional `sortFn`.
|
|
31
24
|
*/
|
|
32
25
|
export declare const createSearch: <V, T>(options: T[], opts: SearchOptions<V, T>) => Search<V, T>;
|
|
33
|
-
/**
|
|
34
|
-
* Build a `Projection` from a readable store and an optional `read` function, which falls
|
|
35
|
-
* back to `get($)`. On hot paths, the store value is cached, and read is skipped.
|
|
36
|
-
*/
|
|
37
|
-
export declare const projection: <T>($: Readable<T>, read?: () => T) => Projection<T>;
|
|
38
|
-
/**
|
|
39
|
-
* Build a `Projection` derived from another `Projection`: re-read `src`
|
|
40
|
-
* reactively via `.$` or synchronously via `.get()`.
|
|
41
|
-
*/
|
|
42
|
-
export declare const projectFrom: <S, U>(src: Projection<S>, read: ($: S) => U) => Projection<U>;
|
|
43
26
|
/**
|
|
44
27
|
* Base class for a reactive, keyed collection of "local" (non-event) data —
|
|
45
28
|
* things like relay stats or NIP-11 profiles that aren't backed by the
|
|
@@ -94,7 +77,7 @@ export type DerivedPluginOptions<T> = {
|
|
|
94
77
|
*/
|
|
95
78
|
export declare abstract class DerivedPlugin<T> {
|
|
96
79
|
protected readonly app: IApp;
|
|
97
|
-
index:
|
|
80
|
+
index: ItemCollection<T>;
|
|
98
81
|
all: Projection<T[]>;
|
|
99
82
|
one: (key?: string, ...args: any[]) => Readable<Maybe<T>>;
|
|
100
83
|
load: (key: string, ...args: any[]) => Promise<Maybe<T>>;
|
|
@@ -121,7 +104,7 @@ export type RelayScopedDerivedPluginOptions<T> = {
|
|
|
121
104
|
*/
|
|
122
105
|
export declare abstract class RelayScopedDerivedPlugin<T> {
|
|
123
106
|
protected readonly app: IApp;
|
|
124
|
-
index:
|
|
107
|
+
index: ItemCollection<T>;
|
|
125
108
|
all: Projection<T[]>;
|
|
126
109
|
one: (key?: string, ...args: any[]) => Readable<Maybe<T>>;
|
|
127
110
|
load: (key: string, ...args: any[]) => Promise<Maybe<T>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/plugins/base.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,YAAY,EAAE,UAAU,EAAC,MAAM,SAAS,CAAA;AAErD,OAAO,KAAK,EAAC,QAAQ,EAAE,YAAY,EAAC,MAAM,cAAc,CAAA;AAExD,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAA;AAU1C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../../src/plugins/base.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import Fuse from "fuse.js";
|
|
2
2
|
import { writable, derived } from "svelte/store";
|
|
3
3
|
import { sortBy } from "@welshman/lib";
|
|
4
|
-
import { deriveItems, deriveItemsByKey, deriveItemsByKeyByUrl,
|
|
4
|
+
import { deriveItems, deriveItemsByKey, deriveItemsByKeyByUrl, makeDeriveItem, makeLoadItem, makeForceLoadItem, projection, } from "@welshman/store";
|
|
5
5
|
/**
|
|
6
6
|
* A reusable fuzzy-search primitive over a fixed list of `options`. Plugins that
|
|
7
7
|
* expose a search (profiles, topics, relays) build one of these reactively from
|
|
@@ -26,19 +26,6 @@ export const createSearch = (options, opts) => {
|
|
|
26
26
|
searchValues: (term) => search(term).map(opts.getValue),
|
|
27
27
|
};
|
|
28
28
|
};
|
|
29
|
-
/**
|
|
30
|
-
* Build a `Projection` from a readable store and an optional `read` function, which falls
|
|
31
|
-
* back to `get($)`. On hot paths, the store value is cached, and read is skipped.
|
|
32
|
-
*/
|
|
33
|
-
export const projection = ($, read) => ({
|
|
34
|
-
$,
|
|
35
|
-
get: getter($, { read }),
|
|
36
|
-
});
|
|
37
|
-
/**
|
|
38
|
-
* Build a `Projection` derived from another `Projection`: re-read `src`
|
|
39
|
-
* reactively via `.$` or synchronously via `.get()`.
|
|
40
|
-
*/
|
|
41
|
-
export const projectFrom = (src, read) => projection(derived(src.$, read), () => read(src.get()));
|
|
42
29
|
/**
|
|
43
30
|
* Base class for a reactive, keyed collection of "local" (non-event) data —
|
|
44
31
|
* things like relay stats or NIP-11 profiles that aren't backed by the
|
|
@@ -143,12 +130,11 @@ export class DerivedPlugin {
|
|
|
143
130
|
getKey: options.getKey,
|
|
144
131
|
repository: app.repository,
|
|
145
132
|
});
|
|
146
|
-
this.index =
|
|
133
|
+
this.index = index;
|
|
147
134
|
this.all = projection(deriveItems(index));
|
|
148
135
|
const fetch = (key, ...args) => this.fetch(key, ...args);
|
|
149
|
-
|
|
150
|
-
this.
|
|
151
|
-
this.forceLoad = makeForceLoadItem(fetch, read);
|
|
136
|
+
this.load = makeLoadItem(fetch, index.read, options.loadOptions);
|
|
137
|
+
this.forceLoad = makeForceLoadItem(fetch, index.read);
|
|
152
138
|
this.one = makeDeriveItem(index, this.load);
|
|
153
139
|
}
|
|
154
140
|
get = (key) => this.index.get().get(key);
|
|
@@ -179,12 +165,11 @@ export class RelayScopedDerivedPlugin {
|
|
|
179
165
|
tracker: app.tracker,
|
|
180
166
|
repository: app.repository,
|
|
181
167
|
});
|
|
182
|
-
this.index =
|
|
168
|
+
this.index = index;
|
|
183
169
|
this.all = projection(deriveItems(index));
|
|
184
170
|
const fetch = (key, ...args) => this.fetch(key, ...args);
|
|
185
|
-
|
|
186
|
-
this.
|
|
187
|
-
this.forceLoad = makeForceLoadItem(fetch, read);
|
|
171
|
+
this.load = makeLoadItem(fetch, index.read, options.loadOptions);
|
|
172
|
+
this.forceLoad = makeForceLoadItem(fetch, index.read);
|
|
188
173
|
this.one = makeDeriveItem(index, this.load);
|
|
189
174
|
}
|
|
190
175
|
get = (key) => this.index.get().get(key);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/plugins/base.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,SAAS,CAAA;AAE1B,OAAO,EAAC,QAAQ,EAAE,OAAO,EAAC,MAAM,cAAc,CAAA;AAE9C,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAA;AAGpC,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/plugins/base.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,SAAS,CAAA;AAE1B,OAAO,EAAC,QAAQ,EAAE,OAAO,EAAC,MAAM,cAAc,CAAA;AAE9C,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAA;AAGpC,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,UAAU,GACX,MAAM,iBAAiB,CAAA;AAyBxB;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAO,OAAY,EAAE,IAAyB,EAAgB,EAAE;IAC1F,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,EAAC,GAAG,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,IAAI,EAAC,CAAC,CAAA;IACzE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;IAE3E,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE;QAC9B,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAA;QAErB,IAAI,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAC,IAAI,EAAC,CAAkB,CAAC,CAAA;QAEvF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;QACxC,CAAC;QAED,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC3C,CAAC,CAAA;IAED,OAAO;QACL,OAAO;QACP,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,SAAS,EAAE,CAAC,KAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC;QACvC,aAAa,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;QAC7C,YAAY,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;KAChE,CAAA;AACH,CAAC,CAAA;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,SAAS;IAOW;IANrB,KAAK,GAAG,QAAQ,CAAC,IAAI,GAAG,EAAa,CAAC,CAAA;IAChD,KAAK,CAA2B;IAChC,GAAG,CAAiB;IACpB,GAAG,CAAsD;IACzD,IAAI,GAA+C,EAAE,CAAA;IAErD,YAA+B,GAAS;QAAT,QAAG,GAAH,GAAG,CAAM;QACtC,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACnC,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;QAC9C,IAAI,CAAC,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACvC,CAAC;IAED,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAEhD,OAAO,GAAG,CAAI,GAAW,EAAE,IAA2B,EAAiB,EAAE,CACvE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAErE,GAAG,GAAG,CAAC,GAAW,EAAE,KAAQ,EAAE,EAAE;QAC9B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;YACzB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YAEtB,OAAO,MAAM,CAAA;QACf,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAC3B,CAAC,CAAA;IAED,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE;QACvB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;YACzB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAElB,OAAO,MAAM,CAAA;QACf,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;IAC/B,CAAC,CAAA;IAED,KAAK,GAAG,GAAG,EAAE;QACX,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA;QAEhD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAA;QAEzB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC,CAAA;IAED,MAAM,GAAG,CAAC,UAAkD,EAAgB,EAAE;QAC5E,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAE1B,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;YAEvC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACtC,CAAC,CAAA;IACH,CAAC,CAAA;IAES,QAAQ,GAAG,CAAC,GAAW,EAAE,KAAe,EAAE,EAAE;QACpD,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACnC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QACxB,CAAC;IACH,CAAC,CAAA;CACF;AAED;;;;GAIG;AACH,MAAM,OAAgB,iBAAqB,SAAQ,SAAY;IAC7D,IAAI,CAAoD;IACxD,SAAS,CAAoD;IAI7D,YAAY,GAAS,EAAE,UAA+B,EAAE;QACtD,KAAK,CAAC,GAAG,CAAC,CAAA;QAEV,yEAAyE;QACzE,6EAA6E;QAC7E,8EAA8E;QAC9E,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,GAAG,IAAW,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;QACvE,MAAM,IAAI,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAEvD,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;QAC9C,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAC/C,IAAI,CAAC,GAAG,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;IAClD,CAAC;CACF;AASD;;;;;;;;;GASG;AACH,MAAM,OAAgB,aAAa;IAUZ;IATrB,KAAK,CAAmB;IACxB,GAAG,CAAiB;IACpB,GAAG,CAAsD;IACzD,IAAI,CAAoD;IACxD,SAAS,CAAoD;IAI7D,YACqB,GAAS,EAC5B,OAAgC;QADb,QAAG,GAAH,GAAG,CAAM;QAG5B,MAAM,KAAK,GAAG,gBAAgB,CAAI;YAChC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,UAAU,EAAE,GAAG,CAAC,UAAU;SAC3B,CAAC,CAAA;QAEF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAA;QAEzC,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,GAAG,IAAW,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;QAEvE,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;QAChE,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QACrD,IAAI,CAAC,GAAG,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;IAC7C,CAAC;IAED,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAEhD,OAAO,GAAG,CAAI,GAAW,EAAE,IAA2B,EAAiB,EAAE,CACvE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;CACtE;AAaD;;;;;;;GAOG;AACH,MAAM,OAAgB,wBAAwB;IAUvB;IATrB,KAAK,CAAmB;IACxB,GAAG,CAAiB;IACpB,GAAG,CAAsD;IACzD,IAAI,CAAoD;IACxD,SAAS,CAAoD;IAI7D,YACqB,GAAS,EAC5B,OAA2C;QADxB,QAAG,GAAH,GAAG,CAAM;QAG5B,MAAM,KAAK,GAAG,qBAAqB,CAAI;YACrC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,UAAU,EAAE,GAAG,CAAC,UAAU;SAC3B,CAAC,CAAA;QAEF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,GAAG,GAAG,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAA;QAEzC,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,GAAG,IAAW,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;QAEvE,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;QAChE,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QACrD,IAAI,CAAC,GAAG,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;IAC7C,CAAC;IAED,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAEhD,OAAO,GAAG,CAAI,GAAW,EAAE,IAA2B,EAAiB,EAAE,CACvE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;CACtE"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BlockedRelayListReader, BlockedRelayListWriter } from "@welshman/domain";
|
|
2
2
|
import { DerivedPlugin } from "./base.js";
|
|
3
|
-
import type { Projection } from "
|
|
3
|
+
import type { Projection } from "@welshman/store";
|
|
4
4
|
import type { IApp } from "../app.js";
|
|
5
5
|
/**
|
|
6
6
|
* Kind-10006 blocked-relay lists, keyed by pubkey. Loaded via the outbox model,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockedRelayLists.d.ts","sourceRoot":"","sources":["../../../../src/plugins/blockedRelayLists.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,sBAAsB,EAAE,sBAAsB,EAAC,MAAM,kBAAkB,CAAA;AACjG,OAAO,EAAC,aAAa,EAAC,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"blockedRelayLists.d.ts","sourceRoot":"","sources":["../../../../src/plugins/blockedRelayLists.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,sBAAsB,EAAE,sBAAsB,EAAC,MAAM,kBAAkB,CAAA;AACjG,OAAO,EAAC,aAAa,EAAC,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAG/C,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAEnC;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,aAAa,CAAC,sBAAsB,CAAC;gBAC9D,GAAG,EAAE,IAAI;IAQrB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,GAAE,MAAM,EAAO;IAI/C,IAAI,GAAI,QAAQ,MAAM,KAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAoD;IAEjG,MAAM,GAAI,IAAI,CAAC,MAAM,EAAE,sBAAsB,KAAK,IAAI,8CACa;IAEnE,MAAM,GAAI,KAAK,MAAM,8CAA8C;IAEnE,SAAS,GAAI,KAAK,MAAM,8CAAiD;IAEzE,OAAO,GAAI,MAAM,MAAM,EAAE,8CAAgD;CAC1E"}
|
|
@@ -3,7 +3,6 @@ import { BlockedRelayList } from "@welshman/domain";
|
|
|
3
3
|
import { DerivedPlugin } from "./base.js";
|
|
4
4
|
import { Network } from "./network.js";
|
|
5
5
|
import { Domain } from "./domain.js";
|
|
6
|
-
import { User } from "../user.js";
|
|
7
6
|
/**
|
|
8
7
|
* Kind-10006 blocked-relay lists, keyed by pubkey. Loaded via the outbox model,
|
|
9
8
|
* so it depends on the relay-list collection. Feeds `RelayStats.getQuality` so
|
|
@@ -21,12 +20,7 @@ export class BlockedRelayLists extends DerivedPlugin {
|
|
|
21
20
|
return this.app.use(Network).loadUsingOutbox(pubkey, { kinds: [BLOCKED_RELAYS] }, relayHints);
|
|
22
21
|
}
|
|
23
22
|
urls = (pubkey) => this.project(pubkey, list => list?.urls() ?? []);
|
|
24
|
-
update =
|
|
25
|
-
const user = User.require(this.app);
|
|
26
|
-
const writer = this.app.use(Domain).writer(BlockedRelayList, await this.forceLoad(user.pubkey));
|
|
27
|
-
fn(writer);
|
|
28
|
-
return this.app.use(Domain).command(writer);
|
|
29
|
-
};
|
|
23
|
+
update = (fn) => this.app.use(Domain).update(BlockedRelayList, this.forceLoad, fn);
|
|
30
24
|
addUrl = (url) => this.update(writer => writer.addUrl(url));
|
|
31
25
|
removeUrl = (url) => this.update(writer => writer.removeUrl(url));
|
|
32
26
|
setUrls = (urls) => this.update(writer => writer.setUrls(urls));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockedRelayLists.js","sourceRoot":"","sources":["../../../../src/plugins/blockedRelayLists.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAC,gBAAgB,EAAiD,MAAM,kBAAkB,CAAA;AACjG,OAAO,EAAC,aAAa,EAAC,MAAM,WAAW,CAAA;AAEvC,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAA;AACpC,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"blockedRelayLists.js","sourceRoot":"","sources":["../../../../src/plugins/blockedRelayLists.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EAAC,gBAAgB,EAAiD,MAAM,kBAAkB,CAAA;AACjG,OAAO,EAAC,aAAa,EAAC,MAAM,WAAW,CAAA;AAEvC,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAA;AACpC,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAGlC;;;;GAIG;AACH,MAAM,OAAO,iBAAkB,SAAQ,aAAqC;IAC1E,YAAY,GAAS;QACnB,KAAK,CAAC,GAAG,EAAE;YACT,OAAO,EAAE,CAAC,EAAC,KAAK,EAAE,CAAC,cAAc,CAAC,EAAC,CAAC;YACpC,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC;YACrD,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE;SAC9B,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,MAAc,EAAE,aAAuB,EAAE;QAC7C,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,CAAC,cAAc,CAAC,EAAC,EAAE,UAAU,CAAC,CAAA;IAC7F,CAAC;IAED,IAAI,GAAG,CAAC,MAAc,EAAwB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAEjG,MAAM,GAAG,CAAC,EAA4C,EAAE,EAAE,CACxD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;IAEnE,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IAEnE,SAAS,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;IAEzE,OAAO,GAAG,CAAC,IAAc,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;CAC1E"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BlossomServerListReader, BlossomServerListWriter } from "@welshman/domain";
|
|
2
2
|
import { DerivedPlugin } from "./base.js";
|
|
3
|
-
import type { Projection } from "
|
|
3
|
+
import type { Projection } from "@welshman/store";
|
|
4
4
|
import type { IApp } from "../app.js";
|
|
5
5
|
/**
|
|
6
6
|
* Blossom server lists (kind 10063), keyed by pubkey. Loaded via the outbox
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blossomServerLists.d.ts","sourceRoot":"","sources":["../../../../src/plugins/blossomServerLists.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,uBAAuB,EAAE,uBAAuB,EAAC,MAAM,kBAAkB,CAAA;AAEpG,OAAO,EAAC,aAAa,EAAC,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"blossomServerLists.d.ts","sourceRoot":"","sources":["../../../../src/plugins/blossomServerLists.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,uBAAuB,EAAE,uBAAuB,EAAC,MAAM,kBAAkB,CAAA;AAEpG,OAAO,EAAC,aAAa,EAAC,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAE/C,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAEnC;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,aAAa,CAAC,uBAAuB,CAAC;gBAChE,GAAG,EAAE,IAAI;IAQrB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,GAAE,MAAM,EAAO;IAI/C,IAAI,GAAI,QAAQ,MAAM,KAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CAAoD;IAEjG,MAAM,GAAI,IAAI,CAAC,MAAM,EAAE,uBAAuB,KAAK,IAAI,8CACa;IAEpE,MAAM,GAAI,KAAK,MAAM,8CAA8C;IAEnE,SAAS,GAAI,KAAK,MAAM,8CAAiD;IAEzE,OAAO,GAAI,MAAM,MAAM,EAAE,8CAAgD;CAC1E"}
|
|
@@ -3,7 +3,6 @@ import { BlossomServerList } from "@welshman/domain";
|
|
|
3
3
|
import { Domain } from "./domain.js";
|
|
4
4
|
import { DerivedPlugin } from "./base.js";
|
|
5
5
|
import { Network } from "./network.js";
|
|
6
|
-
import { User } from "../user.js";
|
|
7
6
|
/**
|
|
8
7
|
* Blossom server lists (kind 10063), keyed by pubkey. Loaded via the outbox
|
|
9
8
|
* model (the author's write relays), so it depends on the relay-list collection.
|
|
@@ -20,12 +19,7 @@ export class BlossomServerLists extends DerivedPlugin {
|
|
|
20
19
|
return this.app.use(Network).loadUsingOutbox(pubkey, { kinds: [BLOSSOM_SERVERS] }, relayHints);
|
|
21
20
|
}
|
|
22
21
|
urls = (pubkey) => this.project(pubkey, list => list?.urls() ?? []);
|
|
23
|
-
update =
|
|
24
|
-
const user = User.require(this.app);
|
|
25
|
-
const writer = this.app.use(Domain).writer(BlossomServerList, await this.forceLoad(user.pubkey));
|
|
26
|
-
fn(writer);
|
|
27
|
-
return this.app.use(Domain).command(writer);
|
|
28
|
-
};
|
|
22
|
+
update = (fn) => this.app.use(Domain).update(BlossomServerList, this.forceLoad, fn);
|
|
29
23
|
addUrl = (url) => this.update(writer => writer.addUrl(url));
|
|
30
24
|
removeUrl = (url) => this.update(writer => writer.removeUrl(url));
|
|
31
25
|
setUrls = (urls) => this.update(writer => writer.setUrls(urls));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blossomServerLists.js","sourceRoot":"","sources":["../../../../src/plugins/blossomServerLists.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAC,iBAAiB,EAAmD,MAAM,kBAAkB,CAAA;AACpG,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAClC,OAAO,EAAC,aAAa,EAAC,MAAM,WAAW,CAAA;AAEvC,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"blossomServerLists.js","sourceRoot":"","sources":["../../../../src/plugins/blossomServerLists.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAC,iBAAiB,EAAmD,MAAM,kBAAkB,CAAA;AACpG,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAClC,OAAO,EAAC,aAAa,EAAC,MAAM,WAAW,CAAA;AAEvC,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAA;AAGpC;;;GAGG;AACH,MAAM,OAAO,kBAAmB,SAAQ,aAAsC;IAC5E,YAAY,GAAS;QACnB,KAAK,CAAC,GAAG,EAAE;YACT,OAAO,EAAE,CAAC,EAAC,KAAK,EAAE,CAAC,eAAe,CAAC,EAAC,CAAC;YACrC,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC;YACtD,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE;SAC9B,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,MAAc,EAAE,aAAuB,EAAE;QAC7C,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,CAAC,eAAe,CAAC,EAAC,EAAE,UAAU,CAAC,CAAA;IAC9F,CAAC;IAED,IAAI,GAAG,CAAC,MAAc,EAAwB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IAEjG,MAAM,GAAG,CAAC,EAA6C,EAAE,EAAE,CACzD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;IAEpE,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IAEnE,SAAS,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;IAEzE,OAAO,GAAG,CAAC,IAAc,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;CAC1E"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Maybe } from "@welshman/lib";
|
|
1
2
|
import type { TrustedEvent } from "@welshman/util";
|
|
2
3
|
import type { BaseEventReader, EventWriter, EventQuery, KindFactory, ConfiguredKind, Parsed } from "@welshman/domain";
|
|
3
4
|
import { Command } from "../command.js";
|
|
@@ -14,5 +15,11 @@ export declare class Domain {
|
|
|
14
15
|
writer: <R extends BaseEventReader, W extends EventWriter<R>, Q extends EventQuery>(factory: KindFactory<R, W, Q>, reader?: R) => W;
|
|
15
16
|
query: <R extends BaseEventReader, W extends EventWriter<R>, Q extends EventQuery>(factory: KindFactory<R, W, Q>) => Q;
|
|
16
17
|
command: (writer: EventWriter<any>) => Promise<Command>;
|
|
18
|
+
/**
|
|
19
|
+
* Edit the user's own event of a replaceable kind — a profile, a relay list, a
|
|
20
|
+
* mute list. `load` supplies the event being replaced, `fn` makes the edit, and
|
|
21
|
+
* the returned command publishes it.
|
|
22
|
+
*/
|
|
23
|
+
update: <R extends BaseEventReader, W extends EventWriter<R>, Q extends EventQuery>(factory: KindFactory<R, W, Q>, load: (pubkey: string) => Promise<Maybe<R>>, fn: (writer: W) => void) => Promise<Command>;
|
|
17
24
|
}
|
|
18
25
|
//# sourceMappingURL=domain.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../../../src/plugins/domain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,UAAU,EACV,WAAW,EACX,cAAc,EACd,MAAM,EACP,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAA;AAErC,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAEnC;;GAEG;AACH,qBAAa,MAAM;IACL,QAAQ,CAAC,GAAG,EAAE,IAAI;gBAAT,GAAG,EAAE,IAAI;IAE9B,OAAO,CAAC,UAAU,CAAuE;IAKzF,SAAS,GAAI,CAAC,SAAS,eAAe,EAAE,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,UAAU,EACpF,SAAS,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC5B,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAkBzB;IAMD,MAAM,GACH,CAAC,SAAS,eAAe,EAAE,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,UAAU,EACxE,SAAS,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAE9B,OAAO,YAAY,KAAG,MAAM,CAAC,CAAC,CAAC,CAC4B;IAE9D,MAAM,GAAI,CAAC,SAAS,eAAe,EAAE,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,UAAU,EACjF,SAAS,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC7B,SAAS,CAAC,KACT,CAAC,CAA0C;IAI9C,KAAK,GAAI,CAAC,SAAS,eAAe,EAAE,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,UAAU,EAChF,SAAS,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC5B,CAAC,CAAmC;IAEvC,OAAO,GAAU,QAAQ,WAAW,CAAC,GAAG,CAAC,KAAG,OAAO,CAAC,OAAO,CAAC,CAM3D;CACF"}
|
|
1
|
+
{"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../../../src/plugins/domain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,UAAU,EACV,WAAW,EACX,cAAc,EACd,MAAM,EACP,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAA;AAErC,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAEnC;;GAEG;AACH,qBAAa,MAAM;IACL,QAAQ,CAAC,GAAG,EAAE,IAAI;gBAAT,GAAG,EAAE,IAAI;IAE9B,OAAO,CAAC,UAAU,CAAuE;IAKzF,SAAS,GAAI,CAAC,SAAS,eAAe,EAAE,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,UAAU,EACpF,SAAS,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC5B,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAkBzB;IAMD,MAAM,GACH,CAAC,SAAS,eAAe,EAAE,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,UAAU,EACxE,SAAS,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAE9B,OAAO,YAAY,KAAG,MAAM,CAAC,CAAC,CAAC,CAC4B;IAE9D,MAAM,GAAI,CAAC,SAAS,eAAe,EAAE,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,UAAU,EACjF,SAAS,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC7B,SAAS,CAAC,KACT,CAAC,CAA0C;IAI9C,KAAK,GAAI,CAAC,SAAS,eAAe,EAAE,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,UAAU,EAChF,SAAS,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC5B,CAAC,CAAmC;IAEvC,OAAO,GAAU,QAAQ,WAAW,CAAC,GAAG,CAAC,KAAG,OAAO,CAAC,OAAO,CAAC,CAM3D;IAED;;;;OAIG;IACH,MAAM,GAAU,CAAC,SAAS,eAAe,EAAE,CAAC,SAAS,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,UAAU,EACvF,SAAS,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC7B,MAAM,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAC3C,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,KACtB,OAAO,CAAC,OAAO,CAAC,CAOlB;CACF"}
|
|
@@ -40,5 +40,16 @@ export class Domain {
|
|
|
40
40
|
const { event, relays } = await writer.render();
|
|
41
41
|
return new Command(this.app, event, relays);
|
|
42
42
|
};
|
|
43
|
+
/**
|
|
44
|
+
* Edit the user's own event of a replaceable kind — a profile, a relay list, a
|
|
45
|
+
* mute list. `load` supplies the event being replaced, `fn` makes the edit, and
|
|
46
|
+
* the returned command publishes it.
|
|
47
|
+
*/
|
|
48
|
+
update = async (factory, load, fn) => {
|
|
49
|
+
const user = User.require(this.app);
|
|
50
|
+
const writer = this.writer(factory, await load(user.pubkey));
|
|
51
|
+
fn(writer);
|
|
52
|
+
return this.command(writer);
|
|
53
|
+
};
|
|
43
54
|
}
|
|
44
55
|
//# sourceMappingURL=domain.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain.js","sourceRoot":"","sources":["../../../../src/plugins/domain.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"domain.js","sourceRoot":"","sources":["../../../../src/plugins/domain.ts"],"names":[],"mappings":"AAUA,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAClC,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAA;AACrC,OAAO,EAAC,IAAI,EAAC,MAAM,YAAY,CAAA;AAG/B;;GAEG;AACH,MAAM,OAAO,MAAM;IACI;IAArB,YAAqB,GAAS;QAAT,QAAG,GAAH,GAAG,CAAM;IAAG,CAAC;IAE1B,UAAU,GAAG,IAAI,GAAG,EAA6D,CAAA;IAEzF,8EAA8E;IAC9E,kFAAkF;IAClF,gFAAgF;IAChF,SAAS,GAAG,CACV,OAA6B,EACJ,EAAE;QAC3B,IAAI,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAwC,CAAA;QAEpF,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,EAAC,GAAG,EAAC,GAAG,IAAI,CAAA;YAElB,IAAI,CAAC,UAAU,CAAC,GAAG,CACjB,OAAO,EACP,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;gBAC9B,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ;gBAClC,IAAI,MAAM;oBACR,OAAO,GAAG,CAAC,IAAI,EAAE,MAAM,CAAA;gBACzB,CAAC;aACF,CAAC,CAAC,CACJ,CAAA;QACH,CAAC;QAED,OAAO,UAAU,CAAA;IACnB,CAAC,CAAA;IAED,iFAAiF;IACjF,+EAA+E;IAC/E,uEAAuE;IACvE,8DAA8D;IAC9D,MAAM,GACJ,CACE,OAA6B,EAC7B,EAAE,CACJ,CAAC,KAAmB,EAAa,EAAE,CACjC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAe,CAAA;IAE9D,MAAM,GAAG,CACP,OAA6B,EAC7B,MAAU,EACP,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAE9C,sEAAsE;IACtE,mEAAmE;IACnE,KAAK,GAAG,CACN,OAA6B,EAC1B,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAA;IAEvC,OAAO,GAAG,KAAK,EAAE,MAAwB,EAAoB,EAAE;QAC7D,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEtB,MAAM,EAAC,KAAK,EAAE,MAAM,EAAC,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE,CAAA;QAE7C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;IAC7C,CAAC,CAAA;IAED;;;;OAIG;IACH,MAAM,GAAG,KAAK,EACZ,OAA6B,EAC7B,IAA2C,EAC3C,EAAuB,EACL,EAAE;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;QAE5D,EAAE,CAAC,MAAM,CAAC,CAAA;QAEV,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC7B,CAAC,CAAA;CACF"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { Maybe } from "@welshman/lib";
|
|
2
2
|
import type { Filter, TrustedEvent } from "@welshman/util";
|
|
3
|
-
import type { EventsById, EventsByIdByUrl } from "@welshman/store";
|
|
4
|
-
import type { Projection } from "./base.js";
|
|
3
|
+
import type { EventsById, EventsByIdByUrl, Projection } from "@welshman/store";
|
|
5
4
|
import type { IApp } from "../app.js";
|
|
6
5
|
/**
|
|
7
6
|
* Reactive views over the app's repository. Every method binds this app's
|
|
@@ -9,10 +8,10 @@ import type { IApp } from "../app.js";
|
|
|
9
8
|
* with `.get()`, or subscribe to `.$` — so callers never build one from the
|
|
10
9
|
* other, and never construct `{repository, tracker}` by hand.
|
|
11
10
|
*
|
|
12
|
-
* Each
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
11
|
+
* Each view reads through a direct repository/tracker query rather than through
|
|
12
|
+
* its derived store. Those queries are index-backed; standing a derived store up
|
|
13
|
+
* and tearing it down just to read a value is not. `@welshman/store` pairs the
|
|
14
|
+
* two, so a view over a single store passes neither half.
|
|
16
15
|
*/
|
|
17
16
|
export declare class Events {
|
|
18
17
|
readonly app: IApp;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../src/plugins/events.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../src/plugins/events.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,EAAC,MAAM,EAAE,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAaxD,OAAO,KAAK,EAAC,UAAU,EAAE,eAAe,EAAE,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAK5E,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAEnC;;;;;;;;;;GAUG;AACH,qBAAa,MAAM;IACL,QAAQ,CAAC,GAAG,EAAE,IAAI;gBAAT,GAAG,EAAE,IAAI;IAE9B,IAAI,GAAI,UAAS,MAAM,EAAS,KAAG,UAAU,CAAC,UAAU,CAAC,CACK;IAE9D,GAAG,GAAI,UAAS,MAAM,EAAS,KAAG,UAAU,CAAC,YAAY,EAAE,CAAC,CACF;IAE1D,GAAG,GAAI,UAAS,MAAM,EAAS,KAAG,UAAU,CAAC,YAAY,EAAE,CAAC,CACvB;IAErC,IAAI,GAAI,UAAS,MAAM,EAAS,KAAG,UAAU,CAAC,YAAY,EAAE,CAAC,CACvB;IAEtC,GAAG,GAAI,aAAa,MAAM,EAAE,SAAQ,MAAM,EAAO,KAAG,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAM1D;IAEzB,SAAS,GAAI,OAAO,YAAY,KAAG,UAAU,CAAC,OAAO,CAAC,CACT;IAI7C,UAAU,GAAI,KAAK,MAAM,EAAE,UAAS,MAAM,EAAS,KAAG,UAAU,CAAC,UAAU,CAAC,CAMxE;IAEJ,MAAM,GAAI,KAAK,MAAM,EAAE,UAAS,MAAM,EAAS,KAAG,UAAU,CAAC,YAAY,EAAE,CAAC,CAChC;IAE5C,SAAS,GAAI,UAAS,MAAM,EAAS,KAAG,UAAU,CAAC,eAAe,CAAC,CAK/D;IAEJ,iBAAiB,GAAI,KAAK,MAAM,EAAE,UAAS,MAAM,EAAS,KAAG,UAAU,CAAC,YAAY,EAAE,CAAC,CAWtF;CACF"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { filter, spec } from "@welshman/lib";
|
|
2
|
-
import {
|
|
3
|
-
import { deriveArray, deriveEventsAsc, deriveEventsByIdByUrl, deriveEventsByIdForUrl, deriveEventsById, deriveEventsDesc, deriveIsDeleted, getEventsByIdByUrl, getEventsByIdForUrl, getEventsById, makeDeriveEvent, } from "@welshman/store";
|
|
2
|
+
import { deriveArray, deriveEvents, deriveEventsAsc, deriveEventsByIdByUrl, deriveEventsByIdForUrl, deriveEventsById, deriveEventsDesc, deriveIsDeleted, makeDeriveEvent, projection, } from "@welshman/store";
|
|
4
3
|
import { derived } from "svelte/store";
|
|
5
|
-
import { projection } from "./base.js";
|
|
6
4
|
import { Network } from "./network.js";
|
|
7
5
|
import { Relays } from "./relays.js";
|
|
8
6
|
/**
|
|
@@ -11,51 +9,39 @@ import { Relays } from "./relays.js";
|
|
|
11
9
|
* with `.get()`, or subscribe to `.$` — so callers never build one from the
|
|
12
10
|
* other, and never construct `{repository, tracker}` by hand.
|
|
13
11
|
*
|
|
14
|
-
* Each
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
12
|
+
* Each view reads through a direct repository/tracker query rather than through
|
|
13
|
+
* its derived store. Those queries are index-backed; standing a derived store up
|
|
14
|
+
* and tearing it down just to read a value is not. `@welshman/store` pairs the
|
|
15
|
+
* two, so a view over a single store passes neither half.
|
|
18
16
|
*/
|
|
19
17
|
export class Events {
|
|
20
18
|
app;
|
|
21
19
|
constructor(app) {
|
|
22
20
|
this.app = app;
|
|
23
21
|
}
|
|
24
|
-
byId = (filters = [{}]) => {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
const options = { repository: this.app.repository, filters };
|
|
30
|
-
return projection(deriveArray(deriveEventsById(options)), () => Array.from(getEventsById(options).values()));
|
|
31
|
-
};
|
|
32
|
-
asc = (filters = [{}]) => {
|
|
33
|
-
const options = { repository: this.app.repository, filters };
|
|
34
|
-
return projection(deriveEventsAsc(deriveEventsById(options)), () => sortEventsAsc(getEventsById(options).values()));
|
|
35
|
-
};
|
|
36
|
-
desc = (filters = [{}]) => {
|
|
37
|
-
const options = { repository: this.app.repository, filters };
|
|
38
|
-
return projection(deriveEventsDesc(deriveEventsById(options)), () => sortEventsDesc(getEventsById(options).values()));
|
|
39
|
-
};
|
|
40
|
-
one = (idOrAddress, relays = []) => projection(makeDeriveEvent({
|
|
22
|
+
byId = (filters = [{}]) => deriveEventsById({ repository: this.app.repository, filters });
|
|
23
|
+
all = (filters = [{}]) => deriveEvents({ repository: this.app.repository, filters });
|
|
24
|
+
asc = (filters = [{}]) => deriveEventsAsc(this.byId(filters));
|
|
25
|
+
desc = (filters = [{}]) => deriveEventsDesc(this.byId(filters));
|
|
26
|
+
one = (idOrAddress, relays = []) => makeDeriveEvent({
|
|
41
27
|
repository: this.app.repository,
|
|
42
28
|
includeDeleted: true,
|
|
43
29
|
onDerive: (filters, hints) => this.app.use(Network).loadLenient({ filters, relays: hints }),
|
|
44
|
-
})(idOrAddress, relays)
|
|
45
|
-
isDeleted = (event) =>
|
|
30
|
+
})(idOrAddress, relays);
|
|
31
|
+
isDeleted = (event) => deriveIsDeleted(this.app.repository, event);
|
|
46
32
|
// Scoped to one relay, via the tracker
|
|
47
|
-
byIdForUrl = (url, filters = [{}]) => {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
};
|
|
33
|
+
byIdForUrl = (url, filters = [{}]) => deriveEventsByIdForUrl({
|
|
34
|
+
url,
|
|
35
|
+
filters,
|
|
36
|
+
tracker: this.app.tracker,
|
|
37
|
+
repository: this.app.repository,
|
|
38
|
+
});
|
|
39
|
+
forUrl = (url, filters = [{}]) => deriveArray(this.byIdForUrl(url, filters));
|
|
40
|
+
byIdByUrl = (filters = [{}]) => deriveEventsByIdByUrl({
|
|
41
|
+
filters,
|
|
42
|
+
tracker: this.app.tracker,
|
|
43
|
+
repository: this.app.repository,
|
|
44
|
+
});
|
|
59
45
|
relaySignedForUrl = (url, filters = [{}]) => {
|
|
60
46
|
const forUrl = this.forUrl(url, filters);
|
|
61
47
|
return projection(derived([this.app.use(Relays).one(url), forUrl.$], ([$relay, $events]) => filter(spec({ pubkey: $relay?.self }), $events)), () => filter(spec({ pubkey: this.app.use(Relays).get(url)?.self }), forUrl.get()));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/plugins/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,IAAI,EAAC,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/plugins/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { FeedListReader, FeedListWriter } from "@welshman/domain";
|
|
2
2
|
import { DerivedPlugin } from "./base.js";
|
|
3
|
-
import type { Projection } from "
|
|
3
|
+
import type { Projection } from "@welshman/store";
|
|
4
4
|
import type { IApp } from "../app.js";
|
|
5
5
|
/**
|
|
6
6
|
* NIP-51 saved feeds lists (kind 10014), keyed by pubkey. Loaded via the outbox
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feedLists.d.ts","sourceRoot":"","sources":["../../../../src/plugins/feedLists.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,cAAc,EAAE,cAAc,EAAC,MAAM,kBAAkB,CAAA;AACzE,OAAO,EAAC,aAAa,EAAC,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"feedLists.d.ts","sourceRoot":"","sources":["../../../../src/plugins/feedLists.ts"],"names":[],"mappings":"AACA,OAAO,EAAW,cAAc,EAAE,cAAc,EAAC,MAAM,kBAAkB,CAAA;AACzE,OAAO,EAAC,aAAa,EAAC,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAG/C,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAEnC;;;GAGG;AACH,qBAAa,SAAU,SAAQ,aAAa,CAAC,cAAc,CAAC;gBAC9C,GAAG,EAAE,IAAI;IAQrB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,GAAE,MAAM,EAAO;IAI/C,SAAS,GAAI,QAAQ,MAAM,KAAG,UAAU,CAAC,MAAM,EAAE,CAAC,CACK;IAEvD,MAAM,GAAI,IAAI,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,8CACa;IAE3D,OAAO,GAAI,SAAS,MAAM,EAAE,YAAY,MAAM,8CACa;IAE3D,gBAAgB,GAAI,SAAS,MAAM,EAAE,YAAY,MAAM,8CACa;IAEpE,UAAU,GAAI,SAAS,MAAM,8CAAsD;CACpF"}
|
|
@@ -3,7 +3,6 @@ import { FeedList } from "@welshman/domain";
|
|
|
3
3
|
import { DerivedPlugin } from "./base.js";
|
|
4
4
|
import { Network } from "./network.js";
|
|
5
5
|
import { Domain } from "./domain.js";
|
|
6
|
-
import { User } from "../user.js";
|
|
7
6
|
/**
|
|
8
7
|
* NIP-51 saved feeds lists (kind 10014), keyed by pubkey. Loaded via the outbox
|
|
9
8
|
* model (the author's write relays), so it depends on the relay-list collection.
|
|
@@ -20,12 +19,7 @@ export class FeedLists extends DerivedPlugin {
|
|
|
20
19
|
return this.app.use(Network).loadUsingOutbox(pubkey, { kinds: [FEEDS] }, relayHints);
|
|
21
20
|
}
|
|
22
21
|
addresses = (pubkey) => this.project(pubkey, list => list?.addresses() ?? []);
|
|
23
|
-
update =
|
|
24
|
-
const user = User.require(this.app);
|
|
25
|
-
const writer = this.app.use(Domain).writer(FeedList, await this.forceLoad(user.pubkey));
|
|
26
|
-
fn(writer);
|
|
27
|
-
return this.app.use(Domain).command(writer);
|
|
28
|
-
};
|
|
22
|
+
update = (fn) => this.app.use(Domain).update(FeedList, this.forceLoad, fn);
|
|
29
23
|
addFeed = (address, relayHint) => this.update(writer => writer.addFeed(address, relayHint));
|
|
30
24
|
addFeedPrivately = (address, relayHint) => this.update(writer => writer.addFeedPrivately(address, relayHint));
|
|
31
25
|
removeFeed = (address) => this.update(writer => writer.removeFeed(address));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feedLists.js","sourceRoot":"","sources":["../../../../src/plugins/feedLists.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,gBAAgB,CAAA;AACpC,OAAO,EAAC,QAAQ,EAAiC,MAAM,kBAAkB,CAAA;AACzE,OAAO,EAAC,aAAa,EAAC,MAAM,WAAW,CAAA;AAEvC,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAA;AACpC,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"feedLists.js","sourceRoot":"","sources":["../../../../src/plugins/feedLists.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,gBAAgB,CAAA;AACpC,OAAO,EAAC,QAAQ,EAAiC,MAAM,kBAAkB,CAAA;AACzE,OAAO,EAAC,aAAa,EAAC,MAAM,WAAW,CAAA;AAEvC,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAA;AACpC,OAAO,EAAC,MAAM,EAAC,MAAM,aAAa,CAAA;AAGlC;;;GAGG;AACH,MAAM,OAAO,SAAU,SAAQ,aAA6B;IAC1D,YAAY,GAAS;QACnB,KAAK,CAAC,GAAG,EAAE;YACT,OAAO,EAAE,CAAC,EAAC,KAAK,EAAE,CAAC,KAAK,CAAC,EAAC,CAAC;YAC3B,WAAW,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC7C,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE;SAC9B,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,MAAc,EAAE,aAAuB,EAAE;QAC7C,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,EAAC,KAAK,EAAE,CAAC,KAAK,CAAC,EAAC,EAAE,UAAU,CAAC,CAAA;IACpF,CAAC;IAED,SAAS,GAAG,CAAC,MAAc,EAAwB,EAAE,CACnD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IAEvD,MAAM,GAAG,CAAC,EAAoC,EAAE,EAAE,CAChD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;IAE3D,OAAO,GAAG,CAAC,OAAe,EAAE,SAAkB,EAAE,EAAE,CAChD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;IAE3D,gBAAgB,GAAG,CAAC,OAAe,EAAE,SAAkB,EAAE,EAAE,CACzD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;IAEpE,UAAU,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAA;CACpF"}
|
|
@@ -2,7 +2,7 @@ import { Scope, FeedController } from "@welshman/feeds";
|
|
|
2
2
|
import type { FeedControllerOptions, Feed as FeedDefinition } from "@welshman/feeds";
|
|
3
3
|
import { FeedReader, FeedWriter } from "@welshman/domain";
|
|
4
4
|
import { DerivedPlugin } from "./base.js";
|
|
5
|
-
import type { Projection } from "
|
|
5
|
+
import type { Projection } from "@welshman/store";
|
|
6
6
|
import type { IApp } from "../app.js";
|
|
7
7
|
export type MakeFeedControllerOptions = Partial<Omit<FeedControllerOptions, "feed">> & {
|
|
8
8
|
feed: FeedDefinition;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feeds.d.ts","sourceRoot":"","sources":["../../../../src/plugins/feeds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,cAAc,EAAC,MAAM,iBAAiB,CAAA;AACrD,OAAO,KAAK,EAAC,qBAAqB,EAAE,IAAI,IAAI,cAAc,EAAC,MAAM,iBAAiB,CAAA;AAGlF,OAAO,EAAO,UAAU,EAAE,UAAU,EAAC,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"feeds.d.ts","sourceRoot":"","sources":["../../../../src/plugins/feeds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAE,cAAc,EAAC,MAAM,iBAAiB,CAAA;AACrD,OAAO,KAAK,EAAC,qBAAqB,EAAE,IAAI,IAAI,cAAc,EAAC,MAAM,iBAAiB,CAAA;AAGlF,OAAO,EAAO,UAAU,EAAE,UAAU,EAAC,MAAM,kBAAkB,CAAA;AAE7D,OAAO,EAAC,aAAa,EAAC,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAA;AAK/C,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAA;AAEnC,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,GAAG;IACrF,IAAI,EAAE,cAAc,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,cAAc,CAAA;CAC3B,CAAA;AAED;;;;;GAKG;AACH,qBAAa,KAAM,SAAQ,aAAa,CAAC,UAAU,CAAC;gBACtC,GAAG,EAAE,IAAI;IAQrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,GAAE,MAAM,EAAO;IAQhD,SAAS,GAAI,QAAQ,MAAM,KAAG,UAAU,CAAC,UAAU,EAAE,CAAC,CAC0B;IAEhF,aAAa,GAAI,QAAQ,MAAM,EAAE,aAAY,MAAM,EAAO,sDACqB;IAE/E,MAAM,GAAU,QAAQ,UAAU,8CAQjC;IAED,MAAM,GAAU,SAAS,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,8CAUhE;IAED,kBAAkB,GAAI,OAAO,KAAK,KAAG,MAAM,EAAE,CAmB5C;IAED,qBAAqB,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,KAAG,MAAM,EAAE,CAgB3D;IAED,kBAAkB,GAAI,SAAS,yBAAyB,oBAWpD;CACL"}
|
|
@@ -2,7 +2,8 @@ import { Scope, FeedController } from "@welshman/feeds";
|
|
|
2
2
|
import { max as maxValue } from "@welshman/lib";
|
|
3
3
|
import { Address, FEED } from "@welshman/util";
|
|
4
4
|
import { Feed } from "@welshman/domain";
|
|
5
|
-
import {
|
|
5
|
+
import { projectFrom } from "@welshman/store";
|
|
6
|
+
import { DerivedPlugin } from "./base.js";
|
|
6
7
|
import { Network } from "./network.js";
|
|
7
8
|
import { Router } from "./router.js";
|
|
8
9
|
import { Domain } from "./domain.js";
|