@welshman/app 0.1.2 → 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.
Files changed (202) hide show
  1. package/dist/app/src/commands.d.ts +6 -42
  2. package/dist/app/src/commands.d.ts.map +1 -1
  3. package/dist/app/src/commands.js +1 -1
  4. package/dist/app/src/commands.js.map +1 -1
  5. package/dist/app/src/core.d.ts.map +1 -1
  6. package/dist/app/src/core.js +2 -17
  7. package/dist/app/src/core.js.map +1 -1
  8. package/dist/app/src/feeds.d.ts +3 -5
  9. package/dist/app/src/feeds.d.ts.map +1 -1
  10. package/dist/app/src/feeds.js +4 -55
  11. package/dist/app/src/feeds.js.map +1 -1
  12. package/dist/app/src/follows.d.ts.map +1 -1
  13. package/dist/app/src/follows.js +3 -4
  14. package/dist/app/src/follows.js.map +1 -1
  15. package/dist/app/src/handles.d.ts.map +1 -1
  16. package/dist/app/src/handles.js +4 -2
  17. package/dist/app/src/handles.js.map +1 -1
  18. package/dist/app/src/index.d.ts +1 -4
  19. package/dist/app/src/index.d.ts.map +1 -1
  20. package/dist/app/src/index.js +39 -4
  21. package/dist/app/src/index.js.map +1 -1
  22. package/dist/app/src/mutes.d.ts.map +1 -1
  23. package/dist/app/src/mutes.js +3 -4
  24. package/dist/app/src/mutes.js.map +1 -1
  25. package/dist/app/src/pins.d.ts.map +1 -1
  26. package/dist/app/src/pins.js +3 -4
  27. package/dist/app/src/pins.js.map +1 -1
  28. package/dist/app/src/profiles.d.ts +1 -1
  29. package/dist/app/src/profiles.d.ts.map +1 -1
  30. package/dist/app/src/profiles.js +5 -6
  31. package/dist/app/src/profiles.js.map +1 -1
  32. package/dist/app/src/relaySelections.d.ts +10 -5
  33. package/dist/app/src/relaySelections.d.ts.map +1 -1
  34. package/dist/app/src/relaySelections.js +31 -41
  35. package/dist/app/src/relaySelections.js.map +1 -1
  36. package/dist/app/src/relays.d.ts +1 -0
  37. package/dist/app/src/relays.d.ts.map +1 -1
  38. package/dist/app/src/relays.js +31 -4
  39. package/dist/app/src/relays.js.map +1 -1
  40. package/dist/app/src/search.d.ts.map +1 -1
  41. package/dist/app/src/search.js +1 -1
  42. package/dist/app/src/search.js.map +1 -1
  43. package/dist/app/src/session.d.ts +25 -7
  44. package/dist/app/src/session.d.ts.map +1 -1
  45. package/dist/app/src/session.js +50 -3
  46. package/dist/app/src/session.js.map +1 -1
  47. package/dist/app/src/storage.d.ts +1 -0
  48. package/dist/app/src/storage.d.ts.map +1 -1
  49. package/dist/app/src/storage.js +6 -1
  50. package/dist/app/src/storage.js.map +1 -1
  51. package/dist/app/src/storageAdapters.d.ts +88 -0
  52. package/dist/app/src/storageAdapters.d.ts.map +1 -0
  53. package/dist/app/src/storageAdapters.js +174 -0
  54. package/dist/app/src/storageAdapters.js.map +1 -0
  55. package/dist/app/src/sync.d.ts.map +1 -1
  56. package/dist/app/src/sync.js +7 -9
  57. package/dist/app/src/sync.js.map +1 -1
  58. package/dist/app/src/tags.js +1 -1
  59. package/dist/app/src/tags.js.map +1 -1
  60. package/dist/app/src/thunk.d.ts +38 -53
  61. package/dist/app/src/thunk.d.ts.map +1 -1
  62. package/dist/app/src/thunk.js +182 -132
  63. package/dist/app/src/thunk.js.map +1 -1
  64. package/dist/app/src/zappers.js +1 -1
  65. package/dist/dvm/src/handler.d.ts.map +1 -1
  66. package/dist/dvm/src/handler.js +9 -7
  67. package/dist/dvm/src/handler.js.map +1 -1
  68. package/dist/dvm/src/request.d.ts +6 -15
  69. package/dist/dvm/src/request.d.ts.map +1 -1
  70. package/dist/dvm/src/request.js +23 -23
  71. package/dist/dvm/src/request.js.map +1 -1
  72. package/dist/feeds/src/compiler.d.ts +15 -4
  73. package/dist/feeds/src/compiler.d.ts.map +1 -1
  74. package/dist/feeds/src/compiler.js +11 -6
  75. package/dist/feeds/src/compiler.js.map +1 -1
  76. package/dist/feeds/src/controller.d.ts +16 -9
  77. package/dist/feeds/src/controller.d.ts.map +1 -1
  78. package/dist/feeds/src/controller.js +23 -24
  79. package/dist/feeds/src/controller.js.map +1 -1
  80. package/dist/feeds/src/core.d.ts +1 -23
  81. package/dist/feeds/src/core.d.ts.map +1 -1
  82. package/dist/feeds/src/display.d.ts +21 -0
  83. package/dist/feeds/src/display.d.ts.map +1 -0
  84. package/dist/feeds/src/display.js +136 -0
  85. package/dist/feeds/src/display.js.map +1 -0
  86. package/dist/feeds/src/index.d.ts +2 -0
  87. package/dist/feeds/src/index.d.ts.map +1 -1
  88. package/dist/feeds/src/index.js +2 -0
  89. package/dist/feeds/src/index.js.map +1 -1
  90. package/dist/feeds/src/request.d.ts +22 -0
  91. package/dist/feeds/src/request.d.ts.map +1 -0
  92. package/dist/feeds/src/request.js +61 -0
  93. package/dist/feeds/src/request.js.map +1 -0
  94. package/dist/feeds/src/utils.d.ts +1 -1
  95. package/dist/feeds/src/utils.d.ts.map +1 -1
  96. package/dist/feeds/src/utils.js +2 -1
  97. package/dist/feeds/src/utils.js.map +1 -1
  98. package/dist/feeds/src/validate.d.ts +24 -0
  99. package/dist/feeds/src/validate.d.ts.map +1 -0
  100. package/dist/feeds/src/validate.js +137 -0
  101. package/dist/feeds/src/validate.js.map +1 -0
  102. package/dist/lib/src/TaskQueue.d.ts +2 -0
  103. package/dist/lib/src/TaskQueue.d.ts.map +1 -1
  104. package/dist/lib/src/TaskQueue.js +10 -0
  105. package/dist/lib/src/TaskQueue.js.map +1 -1
  106. package/dist/lib/src/Tools.d.ts +100 -3
  107. package/dist/lib/src/Tools.d.ts.map +1 -1
  108. package/dist/lib/src/Tools.js +166 -3
  109. package/dist/lib/src/Tools.js.map +1 -1
  110. package/dist/net/src/auth.d.ts +2 -1
  111. package/dist/net/src/auth.d.ts.map +1 -1
  112. package/dist/net/src/auth.js +16 -2
  113. package/dist/net/src/auth.js.map +1 -1
  114. package/dist/net/src/context.d.ts.map +1 -1
  115. package/dist/net/src/context.js +3 -3
  116. package/dist/net/src/context.js.map +1 -1
  117. package/dist/net/src/diff.d.ts.map +1 -1
  118. package/dist/net/src/diff.js +11 -12
  119. package/dist/net/src/diff.js.map +1 -1
  120. package/dist/net/src/policy.js +3 -3
  121. package/dist/net/src/policy.js.map +1 -1
  122. package/dist/net/src/pool.d.ts +1 -1
  123. package/dist/net/src/pool.d.ts.map +1 -1
  124. package/dist/net/src/pool.js +1 -1
  125. package/dist/net/src/pool.js.map +1 -1
  126. package/dist/net/src/publish.d.ts +29 -30
  127. package/dist/net/src/publish.d.ts.map +1 -1
  128. package/dist/net/src/publish.js +79 -108
  129. package/dist/net/src/publish.js.map +1 -1
  130. package/dist/net/src/request.d.ts +26 -60
  131. package/dist/net/src/request.d.ts.map +1 -1
  132. package/dist/net/src/request.js +170 -158
  133. package/dist/net/src/request.js.map +1 -1
  134. package/dist/relay/src/repository.d.ts +1 -1
  135. package/dist/relay/src/repository.d.ts.map +1 -1
  136. package/dist/relay/src/repository.js +1 -1
  137. package/dist/relay/src/repository.js.map +1 -1
  138. package/dist/signer/src/signers/nip46.d.ts +3 -3
  139. package/dist/signer/src/signers/nip46.d.ts.map +1 -1
  140. package/dist/signer/src/signers/nip46.js +26 -20
  141. package/dist/signer/src/signers/nip46.js.map +1 -1
  142. package/dist/store/src/collection.d.ts +32 -0
  143. package/dist/store/src/collection.d.ts.map +1 -0
  144. package/dist/{app → store}/src/collection.js +20 -8
  145. package/dist/store/src/collection.js.map +1 -0
  146. package/dist/store/src/custom.d.ts +10 -0
  147. package/dist/store/src/custom.d.ts.map +1 -0
  148. package/dist/store/src/custom.js +41 -0
  149. package/dist/store/src/custom.js.map +1 -0
  150. package/dist/store/src/getter.d.ts +11 -0
  151. package/dist/store/src/getter.d.ts.map +1 -0
  152. package/dist/store/src/getter.js +11 -0
  153. package/dist/store/src/getter.js.map +1 -0
  154. package/dist/store/src/index.d.ts +6 -34
  155. package/dist/store/src/index.d.ts.map +1 -1
  156. package/dist/store/src/index.js +6 -163
  157. package/dist/store/src/index.js.map +1 -1
  158. package/dist/store/src/repository.d.ts +16 -0
  159. package/dist/store/src/repository.d.ts.map +1 -0
  160. package/dist/store/src/repository.js +100 -0
  161. package/dist/store/src/repository.js.map +1 -0
  162. package/dist/store/src/synced.d.ts +2 -0
  163. package/dist/store/src/synced.d.ts.map +1 -0
  164. package/dist/store/src/synced.js +9 -0
  165. package/dist/store/src/synced.js.map +1 -0
  166. package/dist/store/src/throttle.d.ts +3 -0
  167. package/dist/store/src/throttle.d.ts.map +1 -0
  168. package/dist/store/src/throttle.js +9 -0
  169. package/dist/store/src/throttle.js.map +1 -0
  170. package/dist/tsconfig.build.tsbuildinfo +1 -1
  171. package/dist/util/src/Events.d.ts +1 -1
  172. package/dist/util/src/Events.d.ts.map +1 -1
  173. package/dist/util/src/Events.js +6 -5
  174. package/dist/util/src/Events.js.map +1 -1
  175. package/dist/util/src/List.d.ts +2 -0
  176. package/dist/util/src/List.d.ts.map +1 -1
  177. package/dist/util/src/List.js +10 -3
  178. package/dist/util/src/List.js.map +1 -1
  179. package/dist/util/src/Profile.d.ts +3 -10
  180. package/dist/util/src/Profile.d.ts.map +1 -1
  181. package/dist/util/src/Profile.js +1 -0
  182. package/dist/util/src/Profile.js.map +1 -1
  183. package/dist/util/src/Relay.d.ts +6 -0
  184. package/dist/util/src/Relay.d.ts.map +1 -1
  185. package/dist/util/src/Relay.js +9 -2
  186. package/dist/util/src/Relay.js.map +1 -1
  187. package/package.json +10 -9
  188. package/dist/app/src/adapters.d.ts +0 -33
  189. package/dist/app/src/adapters.d.ts.map +0 -1
  190. package/dist/app/src/adapters.js +0 -84
  191. package/dist/app/src/adapters.js.map +0 -1
  192. package/dist/app/src/collection.d.ts +0 -13
  193. package/dist/app/src/collection.d.ts.map +0 -1
  194. package/dist/app/src/collection.js.map +0 -1
  195. package/dist/app/src/freshness.d.ts +0 -11
  196. package/dist/app/src/freshness.d.ts.map +0 -1
  197. package/dist/app/src/freshness.js +0 -14
  198. package/dist/app/src/freshness.js.map +0 -1
  199. package/dist/app/src/router.d.ts +0 -199
  200. package/dist/app/src/router.d.ts.map +0 -1
  201. package/dist/app/src/router.js +0 -273
  202. package/dist/app/src/router.js.map +0 -1
@@ -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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"}
@@ -1,4 +1,4 @@
1
- import type { Filter } from "@welshman/util";
1
+ import { Filter } from "@welshman/util";
2
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
3
  export declare const makeAddressFeed: (...addresses: string[]) => AddressFeed;
4
4
  export declare const makeAuthorFeed: (...pubkeys: string[]) => AuthorFeed;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../feeds/src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../feeds/src/utils.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { ensureNumber } from "@welshman/lib";
2
+ import { unionFilters } from "@welshman/util";
2
3
  import { getTagValues } from "@welshman/util";
3
4
  import { FeedType, } from "./core.js";
4
5
  export const makeAddressFeed = (...addresses) => [
@@ -139,7 +140,7 @@ export const feedsFromFilter = ({ since, until, ...filter }) => {
139
140
  return feeds;
140
141
  };
141
142
  export const feedFromFilter = (filter) => makeIntersectionFeed(...feedsFromFilter(filter));
142
- export const feedFromFilters = (filters) => makeUnionFeed(...filters.map(filter => feedFromFilter(filter)));
143
+ export const feedFromFilters = (filters) => makeUnionFeed(...unionFilters(filters).map(filter => feedFromFilter(filter)));
143
144
  export const walkFeed = (feed, visit) => {
144
145
  visit(feed);
145
146
  if (hasSubFeeds(feed)) {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../feeds/src/utils.ts"],"names":[],"mappings":"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"}
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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"}
@@ -4,12 +4,14 @@ export type TaskQueueOptions<Item> = {
4
4
  };
5
5
  export declare class TaskQueue<Item> {
6
6
  readonly options: TaskQueueOptions<Item>;
7
+ _subs: ((item: Item) => void)[];
7
8
  items: Item[];
8
9
  isPaused: boolean;
9
10
  isProcessing: boolean;
10
11
  constructor(options: TaskQueueOptions<Item>);
11
12
  push(item: Item): void;
12
13
  remove(item: Item): void;
14
+ subscribe(subscriber: (item: Item) => void): () => void;
13
15
  process(): Promise<void>;
14
16
  stop(): void;
15
17
  start(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"TaskQueue.d.ts","sourceRoot":"","sources":["../../../../lib/src/TaskQueue.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,gBAAgB,CAAC,IAAI,IAAI;IACnC,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAA;CACrC,CAAA;AAED,qBAAa,SAAS,CAAC,IAAI;IAKb,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC;IAJpD,KAAK,EAAE,IAAI,EAAE,CAAK;IAClB,QAAQ,UAAQ;IAChB,YAAY,UAAQ;gBAEC,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC;IAEpD,IAAI,CAAC,IAAI,EAAE,IAAI;IAKf,MAAM,CAAC,IAAI,EAAE,IAAI;IAIX,OAAO;IAwBb,IAAI;IAIJ,KAAK;IAKL,KAAK;CAGN"}
1
+ {"version":3,"file":"TaskQueue.d.ts","sourceRoot":"","sources":["../../../../lib/src/TaskQueue.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,gBAAgB,CAAC,IAAI,IAAI;IACnC,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAA;CACrC,CAAA;AAED,qBAAa,SAAS,CAAC,IAAI;IAMb,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC;IALpD,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC,EAAE,CAAK;IACpC,KAAK,EAAE,IAAI,EAAE,CAAK;IAClB,QAAQ,UAAQ;IAChB,YAAY,UAAQ;gBAEC,OAAO,EAAE,gBAAgB,CAAC,IAAI,CAAC;IAEpD,IAAI,CAAC,IAAI,EAAE,IAAI;IAKf,MAAM,CAAC,IAAI,EAAE,IAAI;IAIjB,SAAS,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI;IAQpC,OAAO;IA4Bb,IAAI;IAIJ,KAAK;IAKL,KAAK;CAGN"}
@@ -1,6 +1,7 @@
1
1
  import { remove, yieldThread } from "./Tools.js";
2
2
  export class TaskQueue {
3
3
  options;
4
+ _subs = [];
4
5
  items = [];
5
6
  isPaused = false;
6
7
  isProcessing = false;
@@ -14,6 +15,12 @@ export class TaskQueue {
14
15
  remove(item) {
15
16
  this.items = remove(item, this.items);
16
17
  }
18
+ subscribe(subscriber) {
19
+ this._subs.push(subscriber);
20
+ return () => {
21
+ this._subs = remove(subscriber, this._subs);
22
+ };
23
+ }
17
24
  async process() {
18
25
  if (this.isProcessing || this.isPaused || this.items.length === 0) {
19
26
  return;
@@ -22,6 +29,9 @@ export class TaskQueue {
22
29
  await yieldThread();
23
30
  for (const item of this.items.splice(0, this.options.batchSize)) {
24
31
  try {
32
+ for (const subscriber of this._subs) {
33
+ subscriber(item);
34
+ }
25
35
  await this.options.processItem(item);
26
36
  }
27
37
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"TaskQueue.js","sourceRoot":"","sources":["../../../../lib/src/TaskQueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,WAAW,EAAC,MAAM,YAAY,CAAA;AAO9C,MAAM,OAAO,SAAS;IAKC;IAJrB,KAAK,GAAW,EAAE,CAAA;IAClB,QAAQ,GAAG,KAAK,CAAA;IAChB,YAAY,GAAG,KAAK,CAAA;IAEpB,YAAqB,OAA+B;QAA/B,YAAO,GAAP,OAAO,CAAwB;IAAG,CAAC;IAExD,IAAI,CAAC,IAAU;QACb,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrB,IAAI,CAAC,OAAO,EAAE,CAAA;IAChB,CAAC;IAED,MAAM,CAAC,IAAU;QACf,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IACvC,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClE,OAAM;QACR,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;QAExB,MAAM,WAAW,EAAE,CAAA;QAEnB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAChE,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;YACtC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAClB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;QAEzB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,EAAE,CAAA;QAChB,CAAC;IACH,CAAC;IAED,IAAI;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;IACtB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;QACrB,IAAI,CAAC,OAAO,EAAE,CAAA;IAChB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;IACjB,CAAC;CACF"}
1
+ {"version":3,"file":"TaskQueue.js","sourceRoot":"","sources":["../../../../lib/src/TaskQueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,WAAW,EAAC,MAAM,YAAY,CAAA;AAO9C,MAAM,OAAO,SAAS;IAMC;IALrB,KAAK,GAA6B,EAAE,CAAA;IACpC,KAAK,GAAW,EAAE,CAAA;IAClB,QAAQ,GAAG,KAAK,CAAA;IAChB,YAAY,GAAG,KAAK,CAAA;IAEpB,YAAqB,OAA+B;QAA/B,YAAO,GAAP,OAAO,CAAwB;IAAG,CAAC;IAExD,IAAI,CAAC,IAAU;QACb,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACrB,IAAI,CAAC,OAAO,EAAE,CAAA;IAChB,CAAC;IAED,MAAM,CAAC,IAAU;QACf,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IACvC,CAAC;IAED,SAAS,CAAC,UAAgC;QACxC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAE3B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QAC7C,CAAC,CAAA;IACH,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClE,OAAM;QACR,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;QAExB,MAAM,WAAW,EAAE,CAAA;QAEnB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAChE,IAAI,CAAC;gBACH,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACpC,UAAU,CAAC,IAAI,CAAC,CAAA;gBAClB,CAAC;gBAED,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;YACtC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;YAClB,CAAC;QACH,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,KAAK,CAAA;QAEzB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,EAAE,CAAA;QAChB,CAAC;IACH,CAAC;IAED,IAAI;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;IACtB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;QACrB,IAAI,CAAC,OAAO,EAAE,CAAA;IAChB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;IACjB,CAAC;CACF"}
@@ -1,4 +1,8 @@
1
1
  type Obj<T = any> = Record<string, T>;
2
+ export type Nil = null | undefined;
3
+ export declare const isNil: <T>(x: T, ...args: unknown[]) => boolean;
4
+ export declare const isNotNil: <T>(x: T, ...args: unknown[]) => x is T & {};
5
+ export declare const assertNotNil: <T>(x: T, ...args: unknown[]) => NonNullable<T>;
2
6
  /** Function that does nothing and returns undefined */
3
7
  export declare const noop: (...args: unknown[]) => undefined;
4
8
  /**
@@ -100,6 +104,10 @@ export declare const MONTH: number;
100
104
  export declare const QUARTER: number;
101
105
  /** One year in seconds (approximate) */
102
106
  export declare const YEAR: number;
107
+ /** User's default locale */
108
+ export declare const LOCALE: string;
109
+ /** User's default timezone */
110
+ export declare const TIMEZONE: string;
103
111
  /**
104
112
  * Multiplies time unit by count
105
113
  * @param unit - Time unit in seconds
@@ -122,6 +130,55 @@ export declare const ago: (unit: number, count?: number) => number;
122
130
  * @returns Time in milliseconds
123
131
  */
124
132
  export declare const ms: (seconds: number) => number;
133
+ /**
134
+ * Converts seconds to date
135
+ * @param seconds - Time in seconds
136
+ * @returns Date object
137
+ */
138
+ export declare const secondsToDate: (seconds: number) => Date;
139
+ /**
140
+ * Converts date object to seconds
141
+ * @param date - Date object
142
+ * @returns timestamp in seconds
143
+ */
144
+ export declare const dateToSeconds: (date: Date) => number;
145
+ /**
146
+ * Creates a local date from a date string
147
+ * @param dateString - date string
148
+ * @param timezone - timezone string
149
+ * @returns timezone-aware Date object
150
+ */
151
+ export declare const createLocalDate: (dateString: any, timezone?: string) => Date;
152
+ /** Formatter for date+time */
153
+ export declare const dateTimeFormatter: Intl.DateTimeFormat;
154
+ /**
155
+ * Formats seconds as a datetime
156
+ * @param seconds - timestamp in seconds
157
+ * @returns datetime string
158
+ */
159
+ export declare const formatTimestamp: (seconds: number) => string;
160
+ /** Formatter for date */
161
+ export declare const dateFormatter: Intl.DateTimeFormat;
162
+ /**
163
+ * Formats seconds as a date
164
+ * @param seconds - timestamp in seconds
165
+ * @returns date string
166
+ */
167
+ export declare const formatTimestampAsDate: (ts: number) => string;
168
+ /** Formatter for time */
169
+ export declare const timeFormatter: Intl.DateTimeFormat;
170
+ /**
171
+ * Formats seconds as a time
172
+ * @param seconds - timestamp in seconds
173
+ * @returns time string
174
+ */
175
+ export declare const formatTimestampAsTime: (ts: number) => string;
176
+ /**
177
+ * Formats seconds as a relative date (x minutes ago)
178
+ * @param seconds - timestamp in seconds
179
+ * @returns relative date string
180
+ */
181
+ export declare const formatTimestampRelative: (ts: number) => string;
125
182
  /**
126
183
  * Returns the first element of an array
127
184
  * @param xs - The array
@@ -195,6 +252,13 @@ export declare const difference: <T>(a: T[], b: T[]) => T[];
195
252
  * @returns New array with element removed
196
253
  */
197
254
  export declare const remove: <T>(a: T, xs: T[]) => T[];
255
+ /**
256
+ * Removes element at index
257
+ * @param i - Index to remove
258
+ * @param xs - Source array
259
+ * @returns New array with element removed
260
+ */
261
+ export declare const removeAt: <T>(i: number, xs: T[]) => T[];
198
262
  /**
199
263
  * Returns elements from second array not present in first
200
264
  * @param a - Array of elements to exclude
@@ -277,6 +341,13 @@ export declare const sortBy: <T>(f: (x: T) => any, xs: T[]) => T[];
277
341
  * @returns Map of groups
278
342
  */
279
343
  export declare const groupBy: <T, K>(f: (x: T) => K, xs: T[]) => Map<K, T[]>;
344
+ /**
345
+ * Counts array elements by key function
346
+ * @param f - Function to generate group key
347
+ * @param xs - Array to count entries
348
+ * @returns Map of counts
349
+ */
350
+ export declare const countBy: <T, K>(f: (x: T) => K, xs: T[]) => Map<K, number>;
280
351
  /**
281
352
  * Creates map from array using key function
282
353
  * @param f - Function to generate key
@@ -308,7 +379,9 @@ export declare const chunks: <T>(n: number, xs: T[]) => T[][];
308
379
  /** Splits array into two parts at index */
309
380
  export declare const splitAt: <T>(n: number, xs: T[]) => T[][];
310
381
  /** Inserts element into array at index */
311
- export declare const insert: <T>(n: number, x: T, xs: T[]) => T[];
382
+ export declare const insertAt: <T>(n: number, x: T, xs: T[]) => T[];
383
+ /** Replaces array element at index */
384
+ export declare const replaceAt: <T>(n: number, x: T, xs: T[]) => T[];
312
385
  /** Returns random element from array */
313
386
  export declare const choice: <T>(xs: T[]) => T;
314
387
  /** Returns shuffled copy of iterable */
@@ -321,6 +394,8 @@ export declare const isIterable: (x: any) => boolean;
321
394
  export declare const toIterable: (x: any) => any;
322
395
  /** Ensures value is array by wrapping if needed */
323
396
  export declare const ensurePlural: <T>(x: T | T[]) => T[];
397
+ /** Ensures values are not undefined */
398
+ export declare const removeNil: <T>(xs: T[]) => NonNullable<T & {}>[];
324
399
  /**
325
400
  * Checks if value is a plain object
326
401
  * @param obj - Value to check
@@ -446,6 +521,17 @@ export declare const randomId: () => string;
446
521
  * @returns Promise that resolves after t milliseconds
447
522
  */
448
523
  export declare const sleep: (t: number) => Promise<unknown>;
524
+ export type PollOptions = {
525
+ signal: AbortSignal;
526
+ condition: () => boolean;
527
+ interval?: number;
528
+ };
529
+ /**
530
+ * Creates a promise that resolves after the condition completes or timeout
531
+ * @param options - PollOptions
532
+ * @returns void Promise
533
+ */
534
+ export declare const poll: ({ interval, condition, signal }: PollOptions) => Promise<void>;
449
535
  /**
450
536
  * Creates a microtask that yields to other tasks in the event loop
451
537
  * @returns Promise that resolves after yielding
@@ -481,6 +567,13 @@ export declare const batch: <T>(t: number, f: (xs: T[]) => void) => (x: T) => vo
481
567
  * @returns Function that returns promise of result
482
568
  */
483
569
  export declare const batcher: <T, U>(t: number, execute: (request: T[]) => U[] | Promise<U[]>) => (request: T) => Promise<U>;
570
+ /**
571
+ * Returns a promise that resolves after some proportion of promises complete
572
+ * @param threshold - number between 0 and 1 for how many promises to wait for
573
+ * @param promises - array of promises
574
+ * @returns promise
575
+ */
576
+ export declare const race: (threshold: number, promises: Promise<unknown>[]) => Promise<void>;
484
577
  /**
485
578
  * Removes protocol (http://, https://, etc) from URL
486
579
  * @param url - URL to process
@@ -565,6 +658,8 @@ export declare const on: <EventMap extends Record<string | symbol, any[]>, E ext
565
658
  * @returns Truncated string
566
659
  */
567
660
  export declare const ellipsize: (s: string, l: number, suffix?: string) => string;
661
+ /** Displays a list of items with oxford commas and a chosen conjunction */
662
+ export declare const displayList: <T>(xs: T[], conj?: string, n?: number) => string;
568
663
  /** Generates a hash string from input string */
569
664
  export declare const hash: (s: string) => string;
570
665
  /** Returns a function that gets the nth element of an array */
@@ -576,15 +671,17 @@ export declare const nthNe: (i: number, v: any) => (xs: any[], ...args: unknown[
576
671
  /** Returns a function that checks if key/value pairs of x match all pairs in spec */
577
672
  export declare const spec: (values: Obj | Array<any>) => (x: Obj | Array<any>, ...args: unknown[]) => boolean;
578
673
  /** Returns a function that checks equality with value */
579
- export declare const eq: <T>(v: T) => (x: T) => boolean;
674
+ export declare const eq: <T>(v: T) => (x: T, ...args: unknown[]) => boolean;
580
675
  /** Returns a function that checks inequality with value */
581
- export declare const ne: <T>(v: T) => (x: T) => boolean;
676
+ export declare const ne: <T>(v: T) => (x: T, ...args: unknown[]) => boolean;
582
677
  /** Returns a function that gets property value from object */
583
678
  export declare const prop: <T>(k: string) => (x: Record<string, unknown>) => T;
584
679
  /** Returns a function that adds/updates a property on object */
585
680
  export declare const assoc: <K extends string, T, U>(k: K, v: T) => (o: U) => U & Record<K, T>;
586
681
  /** Returns a function that removes a property on object */
587
682
  export declare const dissoc: <K extends string, T extends Obj>(k: K) => (o: T) => T;
683
+ /** Returns a function that checks whether a value is in the given sequence */
684
+ export declare const member: <T>(xs: Iterable<T>) => (x: T) => boolean;
588
685
  /**
589
686
  * Adds value to Set at key in object
590
687
  * @param m - Object mapping keys to Sets