@welshman/app 0.1.1 → 0.2.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/LICENSE +21 -0
- package/dist/app/src/commands.d.ts +7 -0
- package/dist/app/src/commands.d.ts.map +1 -0
- package/{build → dist/app}/src/commands.js +13 -7
- package/dist/app/src/commands.js.map +1 -0
- package/{build → dist/app}/src/context.d.ts +1 -0
- package/dist/app/src/context.d.ts.map +1 -0
- package/dist/app/src/context.js.map +1 -0
- package/{build → dist/app}/src/core.d.ts +3 -1
- package/dist/app/src/core.d.ts.map +1 -0
- package/{build → dist/app}/src/core.js +4 -18
- package/dist/app/src/core.js.map +1 -0
- package/dist/app/src/feeds.d.ts +9 -0
- package/dist/app/src/feeds.d.ts.map +1 -0
- package/dist/app/src/feeds.js +41 -0
- package/dist/app/src/feeds.js.map +1 -0
- package/dist/app/src/follows.d.ts +4 -0
- package/dist/app/src/follows.d.ts.map +1 -0
- package/dist/app/src/follows.js +16 -0
- package/dist/app/src/follows.js.map +1 -0
- package/{build → dist/app}/src/handles.d.ts +3 -3
- package/dist/app/src/handles.d.ts.map +1 -0
- package/{build → dist/app}/src/handles.js +6 -4
- package/dist/app/src/handles.js.map +1 -0
- package/{build → dist/app}/src/index.d.ts +2 -3
- package/dist/app/src/index.d.ts.map +1 -0
- package/dist/app/src/index.js +63 -0
- package/dist/app/src/index.js.map +1 -0
- package/dist/app/src/mutes.d.ts +4 -0
- package/dist/app/src/mutes.d.ts.map +1 -0
- package/{build → dist/app}/src/mutes.js +3 -11
- package/dist/app/src/mutes.js.map +1 -0
- package/dist/app/src/pins.d.ts +4 -0
- package/dist/app/src/pins.d.ts.map +1 -0
- package/dist/app/src/pins.js +16 -0
- package/dist/app/src/pins.js.map +1 -0
- package/{build → dist/app}/src/plaintext.d.ts +1 -0
- package/dist/app/src/plaintext.d.ts.map +1 -0
- package/dist/app/src/plaintext.js.map +1 -0
- package/{build → dist/app}/src/profiles.d.ts +3 -3
- package/dist/app/src/profiles.d.ts.map +1 -0
- package/dist/app/src/profiles.js +21 -0
- package/dist/app/src/profiles.js.map +1 -0
- package/dist/app/src/relaySelections.d.ts +15 -0
- package/dist/app/src/relaySelections.d.ts.map +1 -0
- package/dist/app/src/relaySelections.js +53 -0
- package/dist/app/src/relaySelections.js.map +1 -0
- package/{build → dist/app}/src/relays.d.ts +3 -1
- package/dist/app/src/relays.d.ts.map +1 -0
- package/{build → dist/app}/src/relays.js +41 -14
- package/dist/app/src/relays.js.map +1 -0
- package/{build → dist/app}/src/search.d.ts +1 -0
- package/dist/app/src/search.d.ts.map +1 -0
- package/{build → dist/app}/src/search.js +1 -1
- package/dist/app/src/search.js.map +1 -0
- package/{build → dist/app}/src/session.d.ts +26 -7
- package/dist/app/src/session.d.ts.map +1 -0
- package/{build → dist/app}/src/session.js +50 -3
- package/dist/app/src/session.js.map +1 -0
- package/dist/app/src/storage.d.ts +22 -0
- package/dist/app/src/storage.d.ts.map +1 -0
- package/dist/app/src/storage.js +80 -0
- package/dist/app/src/storage.js.map +1 -0
- package/dist/app/src/storageAdapters.d.ts +88 -0
- package/dist/app/src/storageAdapters.d.ts.map +1 -0
- package/dist/app/src/storageAdapters.js +174 -0
- package/dist/app/src/storageAdapters.js.map +1 -0
- package/{build → dist/app}/src/sync.d.ts +1 -0
- package/dist/app/src/sync.d.ts.map +1 -0
- package/{build → dist/app}/src/sync.js +7 -9
- package/dist/app/src/sync.js.map +1 -0
- package/{build → dist/app}/src/tags.d.ts +1 -0
- package/dist/app/src/tags.d.ts.map +1 -0
- package/{build → dist/app}/src/tags.js +11 -11
- package/dist/app/src/tags.js.map +1 -0
- package/dist/app/src/thunk.d.ts +48 -0
- package/dist/app/src/thunk.d.ts.map +1 -0
- package/dist/app/src/thunk.js +225 -0
- package/dist/app/src/thunk.js.map +1 -0
- package/{build → dist/app}/src/topics.d.ts +1 -0
- package/dist/app/src/topics.d.ts.map +1 -0
- package/dist/app/src/topics.js.map +1 -0
- package/{build → dist/app}/src/user.d.ts +1 -0
- package/dist/app/src/user.d.ts.map +1 -0
- package/dist/app/src/user.js.map +1 -0
- package/{build → dist/app}/src/util.d.ts +1 -0
- package/dist/app/src/util.d.ts.map +1 -0
- package/dist/app/src/util.js.map +1 -0
- package/{build → dist/app}/src/wot.d.ts +1 -0
- package/dist/app/src/wot.d.ts.map +1 -0
- package/dist/app/src/wot.js.map +1 -0
- package/dist/app/src/zappers.d.ts +6 -0
- package/dist/app/src/zappers.d.ts.map +1 -0
- package/{build → dist/app}/src/zappers.js +3 -3
- package/dist/app/src/zappers.js.map +1 -0
- package/dist/dvm/src/handler.d.ts +30 -0
- package/dist/dvm/src/handler.d.ts.map +1 -0
- package/dist/dvm/src/handler.js +84 -0
- package/dist/dvm/src/handler.js.map +1 -0
- package/dist/dvm/src/index.d.ts +3 -0
- package/dist/dvm/src/index.d.ts.map +1 -0
- package/dist/dvm/src/index.js +3 -0
- package/dist/dvm/src/index.js.map +1 -0
- package/dist/dvm/src/request.d.ts +14 -0
- package/dist/dvm/src/request.d.ts.map +1 -0
- package/dist/dvm/src/request.js +29 -0
- package/dist/dvm/src/request.js.map +1 -0
- package/dist/feeds/src/compiler.d.ts +49 -0
- package/dist/feeds/src/compiler.d.ts.map +1 -0
- package/dist/feeds/src/compiler.js +246 -0
- package/dist/feeds/src/compiler.js.map +1 -0
- package/dist/feeds/src/controller.d.ts +23 -0
- package/dist/feeds/src/controller.d.ts.map +1 -0
- package/dist/feeds/src/controller.js +212 -0
- package/dist/feeds/src/controller.js.map +1 -0
- package/dist/feeds/src/core.d.ts +76 -0
- package/dist/feeds/src/core.d.ts.map +1 -0
- package/dist/feeds/src/core.js +28 -0
- package/dist/feeds/src/core.js.map +1 -0
- package/dist/feeds/src/display.d.ts +21 -0
- package/dist/feeds/src/display.d.ts.map +1 -0
- package/dist/feeds/src/display.js +136 -0
- package/dist/feeds/src/display.js.map +1 -0
- package/dist/feeds/src/index.d.ts +7 -0
- package/dist/feeds/src/index.d.ts.map +1 -0
- package/dist/feeds/src/index.js +7 -0
- package/dist/feeds/src/index.js.map +1 -0
- package/dist/feeds/src/request.d.ts +22 -0
- package/dist/feeds/src/request.d.ts.map +1 -0
- package/dist/feeds/src/request.js +61 -0
- package/dist/feeds/src/request.js.map +1 -0
- package/dist/feeds/src/utils.d.ts +56 -0
- package/dist/feeds/src/utils.d.ts.map +1 -0
- package/dist/feeds/src/utils.js +152 -0
- package/dist/feeds/src/utils.js.map +1 -0
- package/dist/feeds/src/validate.d.ts +24 -0
- package/dist/feeds/src/validate.d.ts.map +1 -0
- package/dist/feeds/src/validate.js +137 -0
- package/dist/feeds/src/validate.js.map +1 -0
- package/dist/lib/src/Deferred.d.ts +21 -0
- package/dist/lib/src/Deferred.d.ts.map +1 -0
- package/dist/lib/src/Deferred.js +21 -0
- package/dist/lib/src/Deferred.js.map +1 -0
- package/dist/lib/src/Emitter.d.ts +14 -0
- package/dist/lib/src/Emitter.d.ts.map +1 -0
- package/dist/lib/src/Emitter.js +18 -0
- package/dist/lib/src/Emitter.js.map +1 -0
- package/dist/lib/src/LRUCache.d.ts +42 -0
- package/dist/lib/src/LRUCache.d.ts.map +1 -0
- package/dist/lib/src/LRUCache.js +62 -0
- package/dist/lib/src/LRUCache.js.map +1 -0
- package/dist/lib/src/TaskQueue.d.ts +20 -0
- package/dist/lib/src/TaskQueue.d.ts.map +1 -0
- package/dist/lib/src/TaskQueue.js +57 -0
- package/dist/lib/src/TaskQueue.js.map +1 -0
- package/dist/lib/src/Tools.d.ts +727 -0
- package/dist/lib/src/Tools.d.ts.map +1 -0
- package/dist/lib/src/Tools.js +1224 -0
- package/dist/lib/src/Tools.js.map +1 -0
- package/dist/lib/src/index.d.ts +7 -0
- package/dist/lib/src/index.d.ts.map +1 -0
- package/dist/lib/src/index.js +7 -0
- package/dist/lib/src/index.js.map +1 -0
- package/dist/lib/src/normalize-url/index.d.ts +286 -0
- package/dist/lib/src/normalize-url/index.d.ts.map +1 -0
- package/dist/lib/src/normalize-url/index.js +252 -0
- package/dist/lib/src/normalize-url/index.js.map +1 -0
- package/dist/net/src/adapter.d.ts +44 -0
- package/dist/net/src/adapter.d.ts.map +1 -0
- package/dist/net/src/adapter.js +91 -0
- package/dist/net/src/adapter.js.map +1 -0
- package/dist/net/src/auth.d.ts +43 -0
- package/dist/net/src/auth.d.ts.map +1 -0
- package/dist/net/src/auth.js +114 -0
- package/dist/net/src/auth.js.map +1 -0
- package/dist/net/src/context.d.ts +13 -0
- package/dist/net/src/context.d.ts.map +1 -0
- package/dist/net/src/context.js +10 -0
- package/dist/net/src/context.js.map +1 -0
- package/dist/net/src/diff.d.ts +54 -0
- package/dist/net/src/diff.d.ts.map +1 -0
- package/dist/net/src/diff.js +146 -0
- package/dist/net/src/diff.js.map +1 -0
- package/dist/net/src/index.d.ts +13 -0
- package/dist/net/src/index.d.ts.map +1 -0
- package/dist/net/src/index.js +13 -0
- package/dist/net/src/index.js.map +1 -0
- package/dist/net/src/message.d.ts +60 -0
- package/dist/net/src/message.d.ts.map +1 -0
- package/dist/net/src/message.js +35 -0
- package/dist/net/src/message.js.map +1 -0
- package/dist/net/src/negentropy.d.ts +48 -0
- package/dist/net/src/negentropy.d.ts.map +1 -0
- package/dist/net/src/negentropy.js +536 -0
- package/dist/net/src/negentropy.js.map +1 -0
- package/dist/net/src/policy.d.ts +40 -0
- package/dist/net/src/policy.d.ts.map +1 -0
- package/dist/net/src/policy.js +180 -0
- package/dist/net/src/policy.js.map +1 -0
- package/dist/net/src/pool.d.ts +21 -0
- package/dist/net/src/pool.d.ts.map +1 -0
- package/dist/net/src/pool.js +67 -0
- package/dist/net/src/pool.js.map +1 -0
- package/dist/net/src/publish.d.ts +44 -0
- package/dist/net/src/publish.d.ts.map +1 -0
- package/dist/net/src/publish.js +96 -0
- package/dist/net/src/publish.js.map +1 -0
- package/dist/net/src/request.d.ts +55 -0
- package/dist/net/src/request.d.ts.map +1 -0
- package/dist/net/src/request.js +212 -0
- package/dist/net/src/request.js.map +1 -0
- package/dist/net/src/socket.d.ts +43 -0
- package/dist/net/src/socket.d.ts.map +1 -0
- package/dist/net/src/socket.js +115 -0
- package/dist/net/src/socket.js.map +1 -0
- package/dist/net/src/tracker.d.ts +16 -0
- package/dist/net/src/tracker.d.ts.map +1 -0
- package/dist/net/src/tracker.js +63 -0
- package/dist/net/src/tracker.js.map +1 -0
- package/dist/net/src/util.d.ts +2 -0
- package/dist/net/src/util.d.ts.map +1 -0
- package/dist/net/src/util.js +2 -0
- package/dist/net/src/util.js.map +1 -0
- package/dist/relay/src/index.d.ts +3 -0
- package/dist/relay/src/index.d.ts.map +1 -0
- package/dist/relay/src/index.js +3 -0
- package/dist/relay/src/index.js.map +1 -0
- package/dist/relay/src/relay.d.ts +13 -0
- package/dist/relay/src/relay.d.ts.map +1 -0
- package/dist/relay/src/relay.js +48 -0
- package/dist/relay/src/relay.js.map +1 -0
- package/dist/relay/src/repository.d.ts +63 -0
- package/dist/relay/src/repository.d.ts.map +1 -0
- package/dist/relay/src/repository.js +270 -0
- package/dist/relay/src/repository.js.map +1 -0
- package/dist/signer/src/index.d.ts +7 -0
- package/dist/signer/src/index.d.ts.map +1 -0
- package/dist/signer/src/index.js +7 -0
- package/dist/signer/src/index.js.map +1 -0
- package/dist/signer/src/nip59.d.ts +27 -0
- package/dist/signer/src/nip59.d.ts.map +1 -0
- package/dist/signer/src/nip59.js +68 -0
- package/dist/signer/src/nip59.js.map +1 -0
- package/dist/signer/src/signers/nip01.d.ts +28 -0
- package/dist/signer/src/signers/nip01.d.ts.map +1 -0
- package/dist/signer/src/signers/nip01.js +22 -0
- package/dist/signer/src/signers/nip01.js.map +1 -0
- package/dist/signer/src/signers/nip07.d.ts +23 -0
- package/dist/signer/src/signers/nip07.d.ts.map +1 -0
- package/dist/signer/src/signers/nip07.js +30 -0
- package/dist/signer/src/signers/nip07.js.map +1 -0
- package/dist/signer/src/signers/nip46.d.ts +108 -0
- package/dist/signer/src/signers/nip46.d.ts.map +1 -0
- package/dist/signer/src/signers/nip46.js +349 -0
- package/dist/signer/src/signers/nip46.js.map +1 -0
- package/dist/signer/src/signers/nip55.d.ts +19 -0
- package/dist/signer/src/signers/nip55.d.ts.map +1 -0
- package/dist/signer/src/signers/nip55.js +134 -0
- package/dist/signer/src/signers/nip55.js.map +1 -0
- package/dist/signer/src/util.d.ts +65 -0
- package/dist/signer/src/util.d.ts.map +1 -0
- package/dist/signer/src/util.js +32 -0
- package/dist/signer/src/util.js.map +1 -0
- package/dist/store/src/collection.d.ts +32 -0
- package/dist/store/src/collection.d.ts.map +1 -0
- package/{build → dist/store}/src/collection.js +33 -11
- package/dist/store/src/collection.js.map +1 -0
- package/dist/store/src/custom.d.ts +10 -0
- package/dist/store/src/custom.d.ts.map +1 -0
- package/dist/store/src/custom.js +41 -0
- package/dist/store/src/custom.js.map +1 -0
- package/dist/store/src/getter.d.ts +11 -0
- package/dist/store/src/getter.d.ts.map +1 -0
- package/dist/store/src/getter.js +11 -0
- package/dist/store/src/getter.js.map +1 -0
- package/dist/store/src/index.d.ts +7 -0
- package/dist/store/src/index.d.ts.map +1 -0
- package/dist/store/src/index.js +7 -0
- package/dist/store/src/index.js.map +1 -0
- package/dist/store/src/repository.d.ts +16 -0
- package/dist/store/src/repository.d.ts.map +1 -0
- package/dist/store/src/repository.js +100 -0
- package/dist/store/src/repository.js.map +1 -0
- package/dist/store/src/synced.d.ts +2 -0
- package/dist/store/src/synced.d.ts.map +1 -0
- package/dist/store/src/synced.js +9 -0
- package/dist/store/src/synced.js.map +1 -0
- package/dist/store/src/throttle.d.ts +3 -0
- package/dist/store/src/throttle.d.ts.map +1 -0
- package/dist/store/src/throttle.js +9 -0
- package/dist/store/src/throttle.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/dist/util/src/Address.d.ts +21 -0
- package/dist/util/src/Address.d.ts.map +1 -0
- package/dist/util/src/Address.js +43 -0
- package/dist/util/src/Address.js.map +1 -0
- package/dist/util/src/Encryptable.d.ts +34 -0
- package/dist/util/src/Encryptable.d.ts.map +1 -0
- package/dist/util/src/Encryptable.js +52 -0
- package/dist/util/src/Encryptable.js.map +1 -0
- package/dist/util/src/Events.d.ts +77 -0
- package/dist/util/src/Events.d.ts.map +1 -0
- package/dist/util/src/Events.js +63 -0
- package/dist/util/src/Events.js.map +1 -0
- package/dist/util/src/Filters.d.ts +48 -0
- package/dist/util/src/Filters.d.ts.map +1 -0
- package/dist/util/src/Filters.js +185 -0
- package/dist/util/src/Filters.js.map +1 -0
- package/dist/util/src/Handler.d.ts +17 -0
- package/dist/util/src/Handler.d.ts.map +1 -0
- package/dist/util/src/Handler.js +33 -0
- package/dist/util/src/Handler.js.map +1 -0
- package/dist/util/src/Kinds.d.ts +159 -0
- package/dist/util/src/Kinds.d.ts.map +1 -0
- package/dist/util/src/Kinds.js +160 -0
- package/dist/util/src/Kinds.js.map +1 -0
- package/dist/util/src/Links.d.ts +3 -0
- package/dist/util/src/Links.d.ts.map +1 -0
- package/dist/util/src/Links.js +3 -0
- package/dist/util/src/Links.js.map +1 -0
- package/dist/util/src/List.d.ts +34 -0
- package/dist/util/src/List.d.ts.map +1 -0
- package/dist/util/src/List.js +74 -0
- package/dist/util/src/List.js.map +1 -0
- package/dist/util/src/Profile.d.ts +26 -0
- package/dist/util/src/Profile.d.ts.map +1 -0
- package/dist/util/src/Profile.js +50 -0
- package/dist/util/src/Profile.js.map +1 -0
- package/dist/util/src/Relay.d.ts +32 -0
- package/dist/util/src/Relay.d.ts.map +1 -0
- package/dist/util/src/Relay.js +49 -0
- package/dist/util/src/Relay.js.map +1 -0
- package/dist/util/src/Tags.d.ts +32 -0
- package/dist/util/src/Tags.d.ts.map +1 -0
- package/dist/util/src/Tags.js +74 -0
- package/dist/util/src/Tags.js.map +1 -0
- package/dist/util/src/Zaps.d.ts +20 -0
- package/dist/util/src/Zaps.d.ts.map +1 -0
- package/dist/util/src/Zaps.js +93 -0
- package/dist/util/src/Zaps.js.map +1 -0
- package/dist/util/src/index.d.ts +13 -0
- package/dist/util/src/index.d.ts.map +1 -0
- package/dist/util/src/index.js +13 -0
- package/dist/util/src/index.js.map +1 -0
- package/package.json +24 -26
- package/README.md +0 -73
- package/build/src/collection.d.ts +0 -12
- package/build/src/collection.js.map +0 -1
- package/build/src/commands.d.ts +0 -42
- package/build/src/commands.js.map +0 -1
- package/build/src/context.js.map +0 -1
- package/build/src/core.js.map +0 -1
- package/build/src/feeds.d.ts +0 -10
- package/build/src/feeds.js +0 -93
- package/build/src/feeds.js.map +0 -1
- package/build/src/follows.d.ts +0 -4
- package/build/src/follows.js +0 -24
- package/build/src/follows.js.map +0 -1
- package/build/src/freshness.d.ts +0 -10
- package/build/src/freshness.js +0 -14
- package/build/src/freshness.js.map +0 -1
- package/build/src/handles.js.map +0 -1
- package/build/src/index.js +0 -27
- package/build/src/index.js.map +0 -1
- package/build/src/mutes.d.ts +0 -4
- package/build/src/mutes.js.map +0 -1
- package/build/src/pins.d.ts +0 -4
- package/build/src/pins.js +0 -24
- package/build/src/pins.js.map +0 -1
- package/build/src/plaintext.js.map +0 -1
- package/build/src/profiles.js +0 -30
- package/build/src/profiles.js.map +0 -1
- package/build/src/relaySelections.d.ts +0 -9
- package/build/src/relaySelections.js +0 -51
- package/build/src/relaySelections.js.map +0 -1
- package/build/src/relays.js.map +0 -1
- package/build/src/router.d.ts +0 -197
- package/build/src/router.js +0 -272
- package/build/src/router.js.map +0 -1
- package/build/src/search.js.map +0 -1
- package/build/src/session.js.map +0 -1
- package/build/src/storage.d.ts +0 -70
- package/build/src/storage.js +0 -187
- package/build/src/storage.js.map +0 -1
- package/build/src/sync.js.map +0 -1
- package/build/src/tags.js.map +0 -1
- package/build/src/thunk.d.ts +0 -61
- package/build/src/thunk.js +0 -169
- package/build/src/thunk.js.map +0 -1
- package/build/src/topics.js.map +0 -1
- package/build/src/user.js.map +0 -1
- package/build/src/util.js.map +0 -1
- package/build/src/wot.js.map +0 -1
- package/build/src/zappers.d.ts +0 -6
- package/build/src/zappers.js.map +0 -1
- package/build/tsconfig.tsbuildinfo +0 -1
- /package/{build → dist/app}/src/context.js +0 -0
- /package/{build → dist/app}/src/plaintext.js +0 -0
- /package/{build → dist/app}/src/topics.js +0 -0
- /package/{build → dist/app}/src/user.js +0 -0
- /package/{build → dist/app}/src/util.js +0 -0
- /package/{build → dist/app}/src/wot.js +0 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { partition, now, nthEq, race } from "@welshman/lib";
|
|
2
|
+
import { makeEvent, getPubkeyTagValues } from "@welshman/util";
|
|
3
|
+
import { Nip01Signer } from "@welshman/signer";
|
|
4
|
+
import { Router, getFilterSelections, addMinimalFallbacks } from "@welshman/router";
|
|
5
|
+
import { Tracker, request } from "@welshman/net";
|
|
6
|
+
import { makeDvmRequest } from "@welshman/dvm";
|
|
7
|
+
export const requestPage = async ({ filters = [{}], relays = [], onEvent, signal, repository, tracker = new Tracker(), }) => {
|
|
8
|
+
if (relays.length > 0) {
|
|
9
|
+
return request({ tracker, signal, relays, filters, onEvent, autoClose: true });
|
|
10
|
+
}
|
|
11
|
+
const promises = [];
|
|
12
|
+
const [withSearch, withoutSearch] = partition(f => Boolean(f.search), filters);
|
|
13
|
+
if (withSearch.length > 0) {
|
|
14
|
+
promises.push(request({
|
|
15
|
+
signal,
|
|
16
|
+
tracker,
|
|
17
|
+
onEvent,
|
|
18
|
+
threshold: 0.1,
|
|
19
|
+
autoClose: true,
|
|
20
|
+
filters: withSearch,
|
|
21
|
+
relays: Router.get().Search().getUrls(),
|
|
22
|
+
}));
|
|
23
|
+
}
|
|
24
|
+
if (withoutSearch.length > 0) {
|
|
25
|
+
promises.push(...getFilterSelections(filters).flatMap(({ relays, filters }) => request({ tracker, signal, onEvent, relays, filters, threshold: 0.8, autoClose: true })));
|
|
26
|
+
}
|
|
27
|
+
// Break out selections by relay so we can complete early after a certain number
|
|
28
|
+
// of requests complete for faster load times
|
|
29
|
+
await race(withSearch.length > 0 ? 0.1 : 0.8, promises);
|
|
30
|
+
// Wait until after we've queried the network to access our local cache. This results in less
|
|
31
|
+
// snappy response times, but is necessary to prevent stale stuff that the user has already seen
|
|
32
|
+
// from showing up at the top of the feed
|
|
33
|
+
if (repository) {
|
|
34
|
+
for (const event of repository.query(filters)) {
|
|
35
|
+
onEvent?.(event);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
export const requestDVM = async ({ kind, onResult, tags = [], relays = [], signer = Nip01Signer.ephemeral(), }) => {
|
|
40
|
+
if (relays.length === 0) {
|
|
41
|
+
relays = Router.get()
|
|
42
|
+
.FromPubkeys(getPubkeyTagValues(tags))
|
|
43
|
+
.policy(addMinimalFallbacks)
|
|
44
|
+
.getUrls();
|
|
45
|
+
}
|
|
46
|
+
if (!tags.some(nthEq(0, "expiration"))) {
|
|
47
|
+
tags.push(["expiration", String(now() + 60)]);
|
|
48
|
+
}
|
|
49
|
+
if (!tags.some(nthEq(0, "relays"))) {
|
|
50
|
+
tags.push(["relays", ...relays]);
|
|
51
|
+
}
|
|
52
|
+
if (!tags.some(nthEq(1, "user"))) {
|
|
53
|
+
tags.push(["param", "user", await signer.getPubkey()]);
|
|
54
|
+
}
|
|
55
|
+
if (!tags.some(nthEq(1, "max_results"))) {
|
|
56
|
+
tags.push(["param", "max_results", "200"]);
|
|
57
|
+
}
|
|
58
|
+
const event = await signer.sign(makeEvent(kind, { tags }));
|
|
59
|
+
await makeDvmRequest({ relays, event, onResult });
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../../feeds/src/request.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Filter } from "@welshman/util";
|
|
2
|
+
import { Feed, AddressFeed, AuthorFeed, CreatedAtFeed, DVMFeed, DifferenceFeed, IDFeed, IntersectionFeed, GlobalFeed, KindFeed, ListFeed, LabelFeed, WOTFeed, RelayFeed, ScopeFeed, SearchFeed, TagFeed, UnionFeed, TagFeedMapping, Scope, WOTItem, DVMItem, ListItem, LabelItem, CreatedAtItem } from "./core.js";
|
|
3
|
+
export declare const makeAddressFeed: (...addresses: string[]) => AddressFeed;
|
|
4
|
+
export declare const makeAuthorFeed: (...pubkeys: string[]) => AuthorFeed;
|
|
5
|
+
export declare const makeCreatedAtFeed: (...items: CreatedAtItem[]) => CreatedAtFeed;
|
|
6
|
+
export declare const makeDVMFeed: (...items: DVMItem[]) => DVMFeed;
|
|
7
|
+
export declare const makeDifferenceFeed: (...feeds: Feed[]) => DifferenceFeed;
|
|
8
|
+
export declare const makeIDFeed: (...ids: string[]) => IDFeed;
|
|
9
|
+
export declare const makeIntersectionFeed: (...feeds: Feed[]) => IntersectionFeed;
|
|
10
|
+
export declare const makeGlobalFeed: () => GlobalFeed;
|
|
11
|
+
export declare const makeKindFeed: (...kinds: number[]) => KindFeed;
|
|
12
|
+
export declare const makeListFeed: (...items: ListItem[]) => ListFeed;
|
|
13
|
+
export declare const makeLabelFeed: (...items: LabelItem[]) => LabelFeed;
|
|
14
|
+
export declare const makeWOTFeed: (...items: WOTItem[]) => WOTFeed;
|
|
15
|
+
export declare const makeRelayFeed: (...urls: string[]) => RelayFeed;
|
|
16
|
+
export declare const makeScopeFeed: (...scopes: Scope[]) => ScopeFeed;
|
|
17
|
+
export declare const makeSearchFeed: (...searches: string[]) => SearchFeed;
|
|
18
|
+
export declare const makeTagFeed: (key: string, ...values: string[]) => TagFeed;
|
|
19
|
+
export declare const makeUnionFeed: (...feeds: Feed[]) => UnionFeed;
|
|
20
|
+
export declare const isAddressFeed: (feed: Feed) => feed is AddressFeed;
|
|
21
|
+
export declare const isAuthorFeed: (feed: Feed) => feed is AuthorFeed;
|
|
22
|
+
export declare const isCreatedAtFeed: (feed: Feed) => feed is CreatedAtFeed;
|
|
23
|
+
export declare const isDVMFeed: (feed: Feed) => feed is DVMFeed;
|
|
24
|
+
export declare const isDifferenceFeed: (feed: Feed) => feed is DifferenceFeed;
|
|
25
|
+
export declare const isIDFeed: (feed: Feed) => feed is IDFeed;
|
|
26
|
+
export declare const isIntersectionFeed: (feed: Feed) => feed is IntersectionFeed;
|
|
27
|
+
export declare const isGlobalFeed: (feed: Feed) => feed is GlobalFeed;
|
|
28
|
+
export declare const isKindFeed: (feed: Feed) => feed is KindFeed;
|
|
29
|
+
export declare const isListFeed: (feed: Feed) => feed is ListFeed;
|
|
30
|
+
export declare const isLabelFeed: (feed: Feed) => feed is LabelFeed;
|
|
31
|
+
export declare const isWOTFeed: (feed: Feed) => feed is WOTFeed;
|
|
32
|
+
export declare const isRelayFeed: (feed: Feed) => feed is RelayFeed;
|
|
33
|
+
export declare const isScopeFeed: (feed: Feed) => feed is ScopeFeed;
|
|
34
|
+
export declare const isSearchFeed: (feed: Feed) => feed is SearchFeed;
|
|
35
|
+
export declare const isTagFeed: (feed: Feed) => feed is TagFeed;
|
|
36
|
+
export declare const isUnionFeed: (feed: Feed) => feed is UnionFeed;
|
|
37
|
+
export declare function getFeedArgs(feed: IntersectionFeed | UnionFeed | DifferenceFeed): Feed[];
|
|
38
|
+
export declare function getFeedArgs(feed: AddressFeed | AuthorFeed | IDFeed | RelayFeed | SearchFeed): string[];
|
|
39
|
+
export declare function getFeedArgs(feed: CreatedAtFeed): CreatedAtItem[];
|
|
40
|
+
export declare function getFeedArgs(feed: ListFeed): ListItem[];
|
|
41
|
+
export declare function getFeedArgs(feed: LabelFeed): LabelItem[];
|
|
42
|
+
export declare function getFeedArgs(feed: DVMFeed): DVMItem[];
|
|
43
|
+
export declare function getFeedArgs(feed: WOTFeed): WOTItem[];
|
|
44
|
+
export declare function getFeedArgs(feed: ScopeFeed): Scope[];
|
|
45
|
+
export declare function getFeedArgs(feed: KindFeed): number[];
|
|
46
|
+
export declare function getFeedArgs(feed: TagFeed): [string, ...string[]];
|
|
47
|
+
export declare function getFeedArgs(feed: GlobalFeed): [];
|
|
48
|
+
export declare const hasSubFeeds: (feed: Feed) => feed is IntersectionFeed | UnionFeed | DifferenceFeed;
|
|
49
|
+
export declare const defaultTagFeedMappings: TagFeedMapping[];
|
|
50
|
+
export declare const feedsFromTags: (tags: string[][], mappings?: TagFeedMapping[]) => (AddressFeed | AuthorFeed | CreatedAtFeed | DVMFeed | DifferenceFeed | IDFeed | IntersectionFeed | GlobalFeed | KindFeed | ListFeed | LabelFeed | WOTFeed | RelayFeed | ScopeFeed | SearchFeed | TagFeed | UnionFeed)[];
|
|
51
|
+
export declare const feedFromTags: (tags: string[][], mappings?: TagFeedMapping[]) => IntersectionFeed;
|
|
52
|
+
export declare const feedsFromFilter: ({ since, until, ...filter }: Filter) => (AuthorFeed | CreatedAtFeed | IDFeed | KindFeed | TagFeed)[];
|
|
53
|
+
export declare const feedFromFilter: (filter: Filter) => IntersectionFeed;
|
|
54
|
+
export declare const feedFromFilters: (filters: Filter[]) => UnionFeed;
|
|
55
|
+
export declare const walkFeed: (feed: Feed, visit: (feed: Feed) => void) => void;
|
|
56
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../feeds/src/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { ensureNumber } from "@welshman/lib";
|
|
2
|
+
import { unionFilters } from "@welshman/util";
|
|
3
|
+
import { getTagValues } from "@welshman/util";
|
|
4
|
+
import { FeedType, } from "./core.js";
|
|
5
|
+
export const makeAddressFeed = (...addresses) => [
|
|
6
|
+
FeedType.Address,
|
|
7
|
+
...addresses,
|
|
8
|
+
];
|
|
9
|
+
export const makeAuthorFeed = (...pubkeys) => [FeedType.Author, ...pubkeys];
|
|
10
|
+
export const makeCreatedAtFeed = (...items) => [
|
|
11
|
+
FeedType.CreatedAt,
|
|
12
|
+
...items,
|
|
13
|
+
];
|
|
14
|
+
export const makeDVMFeed = (...items) => [FeedType.DVM, ...items];
|
|
15
|
+
export const makeDifferenceFeed = (...feeds) => [
|
|
16
|
+
FeedType.Difference,
|
|
17
|
+
...feeds,
|
|
18
|
+
];
|
|
19
|
+
export const makeIDFeed = (...ids) => [FeedType.ID, ...ids];
|
|
20
|
+
export const makeIntersectionFeed = (...feeds) => [
|
|
21
|
+
FeedType.Intersection,
|
|
22
|
+
...feeds,
|
|
23
|
+
];
|
|
24
|
+
export const makeGlobalFeed = () => [FeedType.Global];
|
|
25
|
+
export const makeKindFeed = (...kinds) => [FeedType.Kind, ...kinds];
|
|
26
|
+
export const makeListFeed = (...items) => [FeedType.List, ...items];
|
|
27
|
+
export const makeLabelFeed = (...items) => [FeedType.Label, ...items];
|
|
28
|
+
export const makeWOTFeed = (...items) => [FeedType.WOT, ...items];
|
|
29
|
+
export const makeRelayFeed = (...urls) => [FeedType.Relay, ...urls];
|
|
30
|
+
export const makeScopeFeed = (...scopes) => [FeedType.Scope, ...scopes];
|
|
31
|
+
export const makeSearchFeed = (...searches) => [FeedType.Search, ...searches];
|
|
32
|
+
export const makeTagFeed = (key, ...values) => [
|
|
33
|
+
FeedType.Tag,
|
|
34
|
+
key,
|
|
35
|
+
...values,
|
|
36
|
+
];
|
|
37
|
+
export const makeUnionFeed = (...feeds) => [FeedType.Union, ...feeds];
|
|
38
|
+
export const isAddressFeed = (feed) => feed[0] === FeedType.Address;
|
|
39
|
+
export const isAuthorFeed = (feed) => feed[0] === FeedType.Author;
|
|
40
|
+
export const isCreatedAtFeed = (feed) => feed[0] === FeedType.CreatedAt;
|
|
41
|
+
export const isDVMFeed = (feed) => feed[0] === FeedType.DVM;
|
|
42
|
+
export const isDifferenceFeed = (feed) => feed[0] === FeedType.Difference;
|
|
43
|
+
export const isIDFeed = (feed) => feed[0] === FeedType.ID;
|
|
44
|
+
export const isIntersectionFeed = (feed) => feed[0] === FeedType.Intersection;
|
|
45
|
+
export const isGlobalFeed = (feed) => feed[0] === FeedType.Global;
|
|
46
|
+
export const isKindFeed = (feed) => feed[0] === FeedType.Kind;
|
|
47
|
+
export const isListFeed = (feed) => feed[0] === FeedType.List;
|
|
48
|
+
export const isLabelFeed = (feed) => feed[0] === FeedType.Label;
|
|
49
|
+
export const isWOTFeed = (feed) => feed[0] === FeedType.WOT;
|
|
50
|
+
export const isRelayFeed = (feed) => feed[0] === FeedType.Relay;
|
|
51
|
+
export const isScopeFeed = (feed) => feed[0] === FeedType.Scope;
|
|
52
|
+
export const isSearchFeed = (feed) => feed[0] === FeedType.Search;
|
|
53
|
+
export const isTagFeed = (feed) => feed[0] === FeedType.Tag;
|
|
54
|
+
export const isUnionFeed = (feed) => feed[0] === FeedType.Union;
|
|
55
|
+
export function getFeedArgs(feed) {
|
|
56
|
+
switch (feed[0]) {
|
|
57
|
+
case FeedType.Intersection:
|
|
58
|
+
return feed.slice(1);
|
|
59
|
+
case FeedType.Union:
|
|
60
|
+
return feed.slice(1);
|
|
61
|
+
case FeedType.Difference:
|
|
62
|
+
return feed.slice(1);
|
|
63
|
+
case FeedType.Address:
|
|
64
|
+
return feed.slice(1);
|
|
65
|
+
case FeedType.Author:
|
|
66
|
+
return feed.slice(1);
|
|
67
|
+
case FeedType.ID:
|
|
68
|
+
return feed.slice(1);
|
|
69
|
+
case FeedType.Relay:
|
|
70
|
+
return feed.slice(1);
|
|
71
|
+
case FeedType.Search:
|
|
72
|
+
return feed.slice(1);
|
|
73
|
+
case FeedType.Tag:
|
|
74
|
+
return feed.slice(1);
|
|
75
|
+
case FeedType.CreatedAt:
|
|
76
|
+
return feed.slice(1);
|
|
77
|
+
case FeedType.List:
|
|
78
|
+
return feed.slice(1);
|
|
79
|
+
case FeedType.Label:
|
|
80
|
+
return feed.slice(1);
|
|
81
|
+
case FeedType.DVM:
|
|
82
|
+
return feed.slice(1);
|
|
83
|
+
case FeedType.WOT:
|
|
84
|
+
return feed.slice(1);
|
|
85
|
+
case FeedType.Scope:
|
|
86
|
+
return feed.slice(1);
|
|
87
|
+
case FeedType.Kind:
|
|
88
|
+
return feed.slice(1);
|
|
89
|
+
case FeedType.Global:
|
|
90
|
+
return feed.slice(1);
|
|
91
|
+
default:
|
|
92
|
+
throw new Error(`Invalid feed type ${feed[0]}`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
export const hasSubFeeds = (feed) => [FeedType.Union, FeedType.Intersection, FeedType.Difference].includes(feed[0]);
|
|
96
|
+
export const defaultTagFeedMappings = [
|
|
97
|
+
["a", [FeedType.Address]],
|
|
98
|
+
["e", [FeedType.ID]],
|
|
99
|
+
["p", [FeedType.Author]],
|
|
100
|
+
["r", [FeedType.Relay]],
|
|
101
|
+
["t", [FeedType.Tag, "#t"]],
|
|
102
|
+
];
|
|
103
|
+
export const feedsFromTags = (tags, mappings) => {
|
|
104
|
+
const feeds = [];
|
|
105
|
+
for (const [tagName, templateFeed] of mappings || defaultTagFeedMappings) {
|
|
106
|
+
let values = getTagValues(tagName, tags);
|
|
107
|
+
if (values.length > 0) {
|
|
108
|
+
if (isKindFeed(templateFeed)) {
|
|
109
|
+
values = values.map(ensureNumber);
|
|
110
|
+
}
|
|
111
|
+
feeds.push([...templateFeed, ...values]);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return feeds;
|
|
115
|
+
};
|
|
116
|
+
export const feedFromTags = (tags, mappings) => makeIntersectionFeed(...feedsFromTags(tags, mappings));
|
|
117
|
+
export const feedsFromFilter = ({ since, until, ...filter }) => {
|
|
118
|
+
const feeds = [];
|
|
119
|
+
if (since && until) {
|
|
120
|
+
feeds.push(makeCreatedAtFeed({ since, until }));
|
|
121
|
+
}
|
|
122
|
+
else if (since) {
|
|
123
|
+
feeds.push(makeCreatedAtFeed({ since }));
|
|
124
|
+
}
|
|
125
|
+
else if (until) {
|
|
126
|
+
feeds.push(makeCreatedAtFeed({ until }));
|
|
127
|
+
}
|
|
128
|
+
for (const [k, v] of Object.entries(filter)) {
|
|
129
|
+
if (k === "ids")
|
|
130
|
+
feeds.push(makeIDFeed(...v));
|
|
131
|
+
else if (k === "kinds")
|
|
132
|
+
feeds.push(makeKindFeed(...v));
|
|
133
|
+
else if (k === "authors")
|
|
134
|
+
feeds.push(makeAuthorFeed(...v));
|
|
135
|
+
else if (k.startsWith("#"))
|
|
136
|
+
feeds.push(makeTagFeed(k, ...v));
|
|
137
|
+
else
|
|
138
|
+
throw new Error(`Unable to create feed from filter ${k}: ${v}`);
|
|
139
|
+
}
|
|
140
|
+
return feeds;
|
|
141
|
+
};
|
|
142
|
+
export const feedFromFilter = (filter) => makeIntersectionFeed(...feedsFromFilter(filter));
|
|
143
|
+
export const feedFromFilters = (filters) => makeUnionFeed(...unionFilters(filters).map(filter => feedFromFilter(filter)));
|
|
144
|
+
export const walkFeed = (feed, visit) => {
|
|
145
|
+
visit(feed);
|
|
146
|
+
if (hasSubFeeds(feed)) {
|
|
147
|
+
for (const subFeed of getFeedArgs(feed)) {
|
|
148
|
+
walkFeed(subFeed, visit);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../feeds/src/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import Trava from "trava";
|
|
2
|
+
declare const ValidationError: typeof Trava.ValidationError;
|
|
3
|
+
export { ValidationError };
|
|
4
|
+
export declare const validateTagFeedMapping: Trava.Validator;
|
|
5
|
+
export declare const validateFeedArgs: (validateArgument: Trava.Validator) => (feed: any) => any;
|
|
6
|
+
export declare const validateAddressFeed: (feed: any) => any;
|
|
7
|
+
export declare const validateAuthorFeed: (feed: any) => any;
|
|
8
|
+
export declare const validateCreatedAtFeed: (feed: any) => any;
|
|
9
|
+
export declare const validateDVMFeed: (feed: any) => any;
|
|
10
|
+
export declare const validateDifferenceFeed: (feed: any) => any;
|
|
11
|
+
export declare const validateIDFeed: (feed: any) => any;
|
|
12
|
+
export declare const validateIntersectionFeed: (feed: any) => any;
|
|
13
|
+
export declare const validateGlobalFeed: (feed: any) => any;
|
|
14
|
+
export declare const validateKindFeed: (feed: any) => any;
|
|
15
|
+
export declare const validateListFeed: (feed: any) => any;
|
|
16
|
+
export declare const validateLabelFeed: (feed: any) => any;
|
|
17
|
+
export declare const validateWOTFeed: (feed: any) => any;
|
|
18
|
+
export declare const validateRelayFeed: (feed: any) => any;
|
|
19
|
+
export declare const validateScopeFeed: (feed: any) => any;
|
|
20
|
+
export declare const validateSearchFeed: (feed: any) => any;
|
|
21
|
+
export declare const validateTagFeed: (feed: any) => any;
|
|
22
|
+
export declare const validateUnionFeed: (feed: any) => any;
|
|
23
|
+
export declare const validateFeed: (feed: any) => any;
|
|
24
|
+
//# sourceMappingURL=validate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../../feeds/src/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,QAAA,MAAO,eAAe,8BAA+C,CAAA;AAqBrE,OAAO,EAAC,eAAe,EAAC,CAAA;AAExB,eAAO,MAAM,sBAAsB,iBAKjC,CAAA;AAEF,eAAO,MAAM,gBAAgB,GAAI,kBAAkB,KAAK,CAAC,SAAS,MAAM,MAAM,GAAG,QAUhF,CAAA;AAED,eAAO,MAAM,mBAAmB,SAZ8C,GAAG,QAYb,CAAA;AAEpE,eAAO,MAAM,kBAAkB,SAd+C,GAAG,QAclB,CAAA;AAE/D,eAAO,MAAM,qBAAqB,SAhB4C,GAAG,QAsBhF,CAAA;AAED,eAAO,MAAM,eAAe,SAxBkD,GAAG,QA+BhF,CAAA;AAED,eAAO,MAAM,sBAAsB,SAjC2C,GAAG,QAiCE,CAAA;AAEnF,eAAO,MAAM,cAAc,SAnCmD,GAAG,QAmCtB,CAAA;AAE3D,eAAO,MAAM,wBAAwB,SArCyC,GAAG,QAqCI,CAAA;AAErF,eAAO,MAAM,kBAAkB,SAvC+C,GAAG,QAuCF,CAAA;AAE/E,eAAO,MAAM,gBAAgB,SAzCiD,GAAG,QAyCjB,CAAA;AAEhE,eAAO,MAAM,gBAAgB,SA3CiD,GAAG,QAgDhF,CAAA;AAED,eAAO,MAAM,iBAAiB,SAlDgD,GAAG,QA+EhF,CAAA;AAED,eAAO,MAAM,eAAe,SAjFkD,GAAG,QAsFhF,CAAA;AAED,eAAO,MAAM,iBAAiB,SAxFgD,GAAG,QAwFjB,CAAA;AAEhE,eAAO,MAAM,iBAAiB,SA1FgD,GAAG,QA0FjB,CAAA;AAEhE,eAAO,MAAM,kBAAkB,SA5F+C,GAAG,QA4Ff,CAAA;AAElE,eAAO,MAAM,eAAe,SA9FkD,GAAG,QA8FlB,CAAA;AAE/D,eAAO,MAAM,iBAAiB,SAhGgD,GAAG,QAgGH,CAAA;AAE9E,eAAO,MAAM,YAAY,GAAI,MAAM,GAAG,QA0CrC,CAAA"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import Trava from "trava";
|
|
2
|
+
import { spec, isPojo } from "@welshman/lib";
|
|
3
|
+
import { isRelayUrl, Address } from "@welshman/util";
|
|
4
|
+
import { Scope, FeedType } from "./core.js";
|
|
5
|
+
import { getFeedArgs } from "./utils.js";
|
|
6
|
+
const { ValidationError, Compose, Check, Each, Optional, Keys } = Trava;
|
|
7
|
+
const validateNumber = Check((x) => typeof x === "number", "Value must be a number");
|
|
8
|
+
const validateString = Check((x) => typeof x === "string", "Value must be a string");
|
|
9
|
+
const validateRelay = Check((x) => typeof x === "string" && isRelayUrl(x), "Invalid relay url");
|
|
10
|
+
const validateScope = Check((x) => Object.values(Scope).includes(x), "Invalid scope");
|
|
11
|
+
const validateHex = Check((x) => typeof x === "string" && x.length === 64, "Invalid hex value");
|
|
12
|
+
const validateAddress = Check((x) => typeof x === "string" && Address.isAddress(x), "Invalid address");
|
|
13
|
+
const validateArray = Check((x) => Array.isArray(x), "Value must be an array");
|
|
14
|
+
const validateObject = Check((x) => isPojo(x), "Value must be an object");
|
|
15
|
+
export { ValidationError };
|
|
16
|
+
export const validateTagFeedMapping = Compose([
|
|
17
|
+
validateArray,
|
|
18
|
+
Check(spec({ length: 2 }), "Tag feed mappings must have two entries"),
|
|
19
|
+
(a) => validateString(a[0]),
|
|
20
|
+
(a) => validateFeed(a[1]),
|
|
21
|
+
]);
|
|
22
|
+
export const validateFeedArgs = (validateArgument) => (feed) => {
|
|
23
|
+
let error = validateArray(feed);
|
|
24
|
+
if (error instanceof ValidationError)
|
|
25
|
+
return error;
|
|
26
|
+
for (const argument of getFeedArgs(feed)) {
|
|
27
|
+
error = validateArgument(argument);
|
|
28
|
+
if (error instanceof ValidationError)
|
|
29
|
+
return error;
|
|
30
|
+
}
|
|
31
|
+
return feed;
|
|
32
|
+
};
|
|
33
|
+
export const validateAddressFeed = validateFeedArgs(validateAddress);
|
|
34
|
+
export const validateAuthorFeed = validateFeedArgs(validateHex);
|
|
35
|
+
export const validateCreatedAtFeed = validateFeedArgs(Keys({
|
|
36
|
+
since: Optional(validateNumber),
|
|
37
|
+
until: Optional(validateNumber),
|
|
38
|
+
relative: Optional(Each(validateString)),
|
|
39
|
+
}));
|
|
40
|
+
export const validateDVMFeed = validateFeedArgs(Keys({
|
|
41
|
+
kind: validateNumber,
|
|
42
|
+
tags: Optional(Each(validateString)),
|
|
43
|
+
relays: Optional(Each(validateString)),
|
|
44
|
+
mappings: Optional(Each(validateTagFeedMapping)),
|
|
45
|
+
}));
|
|
46
|
+
export const validateDifferenceFeed = validateFeedArgs((x) => validateFeed(x));
|
|
47
|
+
export const validateIDFeed = validateFeedArgs(validateHex);
|
|
48
|
+
export const validateIntersectionFeed = validateFeedArgs((x) => validateFeed(x));
|
|
49
|
+
export const validateGlobalFeed = validateFeedArgs((x) => validateFeed(x));
|
|
50
|
+
export const validateKindFeed = validateFeedArgs(validateNumber);
|
|
51
|
+
export const validateListFeed = validateFeedArgs(Keys({
|
|
52
|
+
addresses: Optional(Each(validateString)),
|
|
53
|
+
mappings: Optional(Each(validateTagFeedMapping)),
|
|
54
|
+
}));
|
|
55
|
+
export const validateLabelFeed = validateFeedArgs(Compose([
|
|
56
|
+
validateObject,
|
|
57
|
+
(item) => {
|
|
58
|
+
const validateRelays = Each(validateRelay);
|
|
59
|
+
const validateAuthors = Each(validateHex);
|
|
60
|
+
const validateStrings = Each(validateString);
|
|
61
|
+
const validateMappings = Each(validateTagFeedMapping);
|
|
62
|
+
for (const [key, value] of Object.entries(item)) {
|
|
63
|
+
let error;
|
|
64
|
+
if (key === "relays") {
|
|
65
|
+
error = validateRelays(value);
|
|
66
|
+
}
|
|
67
|
+
else if (key === "authors") {
|
|
68
|
+
error = validateAuthors(value);
|
|
69
|
+
}
|
|
70
|
+
else if (key === "mappings") {
|
|
71
|
+
error = validateMappings(value);
|
|
72
|
+
}
|
|
73
|
+
else if (key.match("^#.$")) {
|
|
74
|
+
error = validateStrings(value);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
error = new ValidationError("Invalid label item");
|
|
78
|
+
}
|
|
79
|
+
if (error instanceof ValidationError)
|
|
80
|
+
return error;
|
|
81
|
+
}
|
|
82
|
+
return item;
|
|
83
|
+
},
|
|
84
|
+
]));
|
|
85
|
+
export const validateWOTFeed = validateFeedArgs(Keys({
|
|
86
|
+
min: Optional(validateNumber),
|
|
87
|
+
max: Optional(validateNumber),
|
|
88
|
+
}));
|
|
89
|
+
export const validateRelayFeed = validateFeedArgs(validateRelay);
|
|
90
|
+
export const validateScopeFeed = validateFeedArgs(validateScope);
|
|
91
|
+
export const validateSearchFeed = validateFeedArgs(validateString);
|
|
92
|
+
export const validateTagFeed = validateFeedArgs(validateString);
|
|
93
|
+
export const validateUnionFeed = validateFeedArgs((x) => validateFeed(x));
|
|
94
|
+
export const validateFeed = (feed) => {
|
|
95
|
+
const error = validateArray(feed);
|
|
96
|
+
if (error instanceof ValidationError)
|
|
97
|
+
return error;
|
|
98
|
+
switch (feed[0]) {
|
|
99
|
+
case FeedType.Address:
|
|
100
|
+
return validateAddressFeed(feed);
|
|
101
|
+
case FeedType.Author:
|
|
102
|
+
return validateAuthorFeed(feed);
|
|
103
|
+
case FeedType.CreatedAt:
|
|
104
|
+
return validateCreatedAtFeed(feed);
|
|
105
|
+
case FeedType.DVM:
|
|
106
|
+
return validateDVMFeed(feed);
|
|
107
|
+
case FeedType.Difference:
|
|
108
|
+
return validateDifferenceFeed(feed);
|
|
109
|
+
case FeedType.ID:
|
|
110
|
+
return validateIDFeed(feed);
|
|
111
|
+
case FeedType.Intersection:
|
|
112
|
+
return validateIntersectionFeed(feed);
|
|
113
|
+
case FeedType.Global:
|
|
114
|
+
return validateGlobalFeed(feed);
|
|
115
|
+
case FeedType.Kind:
|
|
116
|
+
return validateKindFeed(feed);
|
|
117
|
+
case FeedType.List:
|
|
118
|
+
return validateListFeed(feed);
|
|
119
|
+
case FeedType.Label:
|
|
120
|
+
return validateLabelFeed(feed);
|
|
121
|
+
case FeedType.WOT:
|
|
122
|
+
return validateWOTFeed(feed);
|
|
123
|
+
case FeedType.Relay:
|
|
124
|
+
return validateRelayFeed(feed);
|
|
125
|
+
case FeedType.Scope:
|
|
126
|
+
return validateScopeFeed(feed);
|
|
127
|
+
case FeedType.Search:
|
|
128
|
+
return validateSearchFeed(feed);
|
|
129
|
+
case FeedType.Tag:
|
|
130
|
+
return validateTagFeed(feed);
|
|
131
|
+
case FeedType.Union:
|
|
132
|
+
return validateUnionFeed(feed);
|
|
133
|
+
default:
|
|
134
|
+
return new ValidationError("Unknown feed type");
|
|
135
|
+
}
|
|
136
|
+
};
|
|
137
|
+
//# sourceMappingURL=validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../../feeds/src/validate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** Promise type with strongly typed error */
|
|
2
|
+
export type CustomPromise<T, E> = Promise<T> & {
|
|
3
|
+
__errorType: E;
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* Creates a Promise with strongly typed error
|
|
7
|
+
* @param executor - Promise executor function
|
|
8
|
+
* @returns Promise with typed error
|
|
9
|
+
*/
|
|
10
|
+
export declare function makePromise<T, E>(executor: (resolve: (value: T | PromiseLike<T>) => void, reject: (reason: E) => void) => void): CustomPromise<T, E>;
|
|
11
|
+
/** Promise with exposed resolve/reject functions and typed error */
|
|
12
|
+
export type Deferred<T, E = T> = CustomPromise<T, E> & {
|
|
13
|
+
resolve: (arg: T) => void;
|
|
14
|
+
reject: (arg: E) => void;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Creates a Deferred promise
|
|
18
|
+
* @returns Promise with resolve/reject methods exposed
|
|
19
|
+
*/
|
|
20
|
+
export declare const defer: <T, E = T>() => Deferred<T, E>;
|
|
21
|
+
//# sourceMappingURL=Deferred.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Deferred.d.ts","sourceRoot":"","sources":["../../../../lib/src/Deferred.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,MAAM,MAAM,aAAa,CAAC,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG;IAC7C,WAAW,EAAE,CAAC,CAAA;CACf,CAAA;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,EAC9B,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,KAAK,IAAI,GAC5F,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAErB;AAED,oEAAoE;AACpE,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;IACrD,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAA;IACzB,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAA;CACzB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,KAAK,GAAI,CAAC,EAAE,CAAC,GAAG,CAAC,OAAK,QAAQ,CAAC,CAAC,EAAE,CAAC,CAQ/C,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creates a Promise with strongly typed error
|
|
3
|
+
* @param executor - Promise executor function
|
|
4
|
+
* @returns Promise with typed error
|
|
5
|
+
*/
|
|
6
|
+
export function makePromise(executor) {
|
|
7
|
+
return new Promise(executor);
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Creates a Deferred promise
|
|
11
|
+
* @returns Promise with resolve/reject methods exposed
|
|
12
|
+
*/
|
|
13
|
+
export const defer = () => {
|
|
14
|
+
let resolve, reject;
|
|
15
|
+
const p = makePromise((resolve_, reject_) => {
|
|
16
|
+
resolve = resolve_;
|
|
17
|
+
reject = reject_;
|
|
18
|
+
});
|
|
19
|
+
return Object.assign(p, { resolve, reject });
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=Deferred.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Deferred.js","sourceRoot":"","sources":["../../../../lib/src/Deferred.ts"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,MAAM,UAAU,WAAW,CACzB,QAA6F;IAE7F,OAAO,IAAI,OAAO,CAAC,QAAQ,CAAwB,CAAA;AACrD,CAAC;AAQD;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,GAA6B,EAAE;IAClD,IAAI,OAAO,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;QAC1C,OAAO,GAAG,QAAQ,CAAA;QAClB,MAAM,GAAG,OAAO,CAAA;IAClB,CAAC,CAAC,CAAA;IAEF,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAC,OAAO,EAAE,MAAM,EAAC,CAA8B,CAAA;AACzE,CAAC,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { EventEmitter } from "events";
|
|
2
|
+
/**
|
|
3
|
+
* Extended EventEmitter that also emits all events to '*' listeners
|
|
4
|
+
*/
|
|
5
|
+
export declare class Emitter extends EventEmitter {
|
|
6
|
+
/**
|
|
7
|
+
* Emits an event to listeners and to '*' listeners
|
|
8
|
+
* @param type - Event type/name
|
|
9
|
+
* @param args - Arguments to pass to listeners
|
|
10
|
+
* @returns True if event had listeners
|
|
11
|
+
*/
|
|
12
|
+
emit(type: string, ...args: any[]): boolean;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=Emitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Emitter.d.ts","sourceRoot":"","sources":["../../../../lib/src/Emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAA;AAEnC;;GAEG;AACH,qBAAa,OAAQ,SAAQ,YAAY;IACvC;;;;;OAKG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE;CAMlC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { EventEmitter } from "events";
|
|
2
|
+
/**
|
|
3
|
+
* Extended EventEmitter that also emits all events to '*' listeners
|
|
4
|
+
*/
|
|
5
|
+
export class Emitter extends EventEmitter {
|
|
6
|
+
/**
|
|
7
|
+
* Emits an event to listeners and to '*' listeners
|
|
8
|
+
* @param type - Event type/name
|
|
9
|
+
* @param args - Arguments to pass to listeners
|
|
10
|
+
* @returns True if event had listeners
|
|
11
|
+
*/
|
|
12
|
+
emit(type, ...args) {
|
|
13
|
+
const a = super.emit(type, ...args);
|
|
14
|
+
const b = super.emit("*", type, ...args);
|
|
15
|
+
return a && b;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=Emitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Emitter.js","sourceRoot":"","sources":["../../../../lib/src/Emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,QAAQ,CAAA;AAEnC;;GAEG;AACH,MAAM,OAAO,OAAQ,SAAQ,YAAY;IACvC;;;;;OAKG;IACH,IAAI,CAAC,IAAY,EAAE,GAAG,IAAW;QAC/B,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAA;QACnC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,CAAA;QAExC,OAAO,CAAC,IAAI,CAAC,CAAA;IACf,CAAC;CACF"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Least Recently Used (LRU) cache implementation
|
|
3
|
+
* @template T - Type of cache keys
|
|
4
|
+
* @template U - Type of cache values
|
|
5
|
+
*/
|
|
6
|
+
export declare class LRUCache<T, U> {
|
|
7
|
+
readonly maxSize: number;
|
|
8
|
+
map: Map<T, U>;
|
|
9
|
+
keys: T[];
|
|
10
|
+
constructor(maxSize?: number);
|
|
11
|
+
has(k: T): boolean;
|
|
12
|
+
get(k: T): U | undefined;
|
|
13
|
+
set(k: T, v: U): void;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Creates a memoized function with LRU caching
|
|
17
|
+
* @template T - Cache key type
|
|
18
|
+
* @template V - Cache value type
|
|
19
|
+
* @template Args - Function argument types
|
|
20
|
+
*/
|
|
21
|
+
export declare function cached<T, V, Args extends any[]>({ maxSize, getKey, getValue, }: {
|
|
22
|
+
maxSize: number;
|
|
23
|
+
getKey: (args: Args) => T;
|
|
24
|
+
getValue: (args: Args) => V;
|
|
25
|
+
}): {
|
|
26
|
+
(...args: Args): NonNullable<V>;
|
|
27
|
+
cache: LRUCache<T, V>;
|
|
28
|
+
getKey: (args: Args) => T;
|
|
29
|
+
getValue: (args: Args) => V;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Creates a simple memoized function with default settings
|
|
33
|
+
* @template V - Cache value type
|
|
34
|
+
* @template Args - Function argument types
|
|
35
|
+
*/
|
|
36
|
+
export declare function simpleCache<V, Args extends any[]>(getValue: (args: Args) => V): {
|
|
37
|
+
(...args: Args): NonNullable<V>;
|
|
38
|
+
cache: LRUCache<string, V>;
|
|
39
|
+
getKey: (args: Args) => string;
|
|
40
|
+
getValue: (args: Args) => V;
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=LRUCache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LRUCache.d.ts","sourceRoot":"","sources":["../../../../lib/src/LRUCache.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,qBAAa,QAAQ,CAAC,CAAC,EAAE,CAAC;IAIZ,QAAQ,CAAC,OAAO,EAAE,MAAM;IAHpC,GAAG,YAAkB;IACrB,IAAI,EAAE,CAAC,EAAE,CAAK;gBAEO,OAAO,GAAE,MAAiB;IAE/C,GAAG,CAAC,CAAC,EAAE,CAAC;IAIR,GAAG,CAAC,CAAC,EAAE,CAAC;IAcR,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;CAQf;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,SAAS,GAAG,EAAE,EAAE,EAC/C,OAAO,EACP,MAAM,EACN,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,CAAA;IACzB,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,CAAA;CAC5B;cAGuB,IAAI;;mBALX,IAAI,KAAK,CAAC;qBACR,IAAI,KAAK,CAAC;EAmB5B;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,IAAI,SAAS,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC;;;;;EAE7E"}
|