@welshman/app 0.10.3 → 0.10.4

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 (73) hide show
  1. package/dist/domain/src/behaviors/Imeta.d.ts +38 -0
  2. package/dist/domain/src/behaviors/Imeta.d.ts.map +1 -0
  3. package/dist/domain/src/behaviors/Imeta.js +80 -0
  4. package/dist/domain/src/behaviors/Imeta.js.map +1 -0
  5. package/dist/domain/src/core/EventReader.d.ts +2 -0
  6. package/dist/domain/src/core/EventReader.d.ts.map +1 -1
  7. package/dist/domain/src/core/EventReader.js +4 -0
  8. package/dist/domain/src/core/EventReader.js.map +1 -1
  9. package/dist/domain/src/core/EventWriter.d.ts +9 -1
  10. package/dist/domain/src/core/EventWriter.d.ts.map +1 -1
  11. package/dist/domain/src/core/EventWriter.js +17 -2
  12. package/dist/domain/src/core/EventWriter.js.map +1 -1
  13. package/dist/domain/src/index.d.ts +10 -0
  14. package/dist/domain/src/index.d.ts.map +1 -1
  15. package/dist/domain/src/index.js +10 -0
  16. package/dist/domain/src/index.js.map +1 -1
  17. package/dist/domain/src/kinds/BadgeAward.d.ts +19 -0
  18. package/dist/domain/src/kinds/BadgeAward.d.ts.map +1 -0
  19. package/dist/domain/src/kinds/BadgeAward.js +49 -0
  20. package/dist/domain/src/kinds/BadgeAward.js.map +1 -0
  21. package/dist/domain/src/kinds/BadgeDefinition.d.ts +25 -0
  22. package/dist/domain/src/kinds/BadgeDefinition.d.ts.map +1 -0
  23. package/dist/domain/src/kinds/BadgeDefinition.js +58 -0
  24. package/dist/domain/src/kinds/BadgeDefinition.js.map +1 -0
  25. package/dist/domain/src/kinds/CalendarRsvp.d.ts +27 -0
  26. package/dist/domain/src/kinds/CalendarRsvp.d.ts.map +1 -0
  27. package/dist/domain/src/kinds/CalendarRsvp.js +92 -0
  28. package/dist/domain/src/kinds/CalendarRsvp.js.map +1 -0
  29. package/dist/domain/src/kinds/DateEvent.d.ts +24 -0
  30. package/dist/domain/src/kinds/DateEvent.d.ts.map +1 -0
  31. package/dist/domain/src/kinds/DateEvent.js +74 -0
  32. package/dist/domain/src/kinds/DateEvent.js.map +1 -0
  33. package/dist/domain/src/kinds/Picture.d.ts +25 -0
  34. package/dist/domain/src/kinds/Picture.d.ts.map +1 -0
  35. package/dist/domain/src/kinds/Picture.js +69 -0
  36. package/dist/domain/src/kinds/Picture.js.map +1 -0
  37. package/dist/domain/src/kinds/ProfileBadges.d.ts +27 -0
  38. package/dist/domain/src/kinds/ProfileBadges.d.ts.map +1 -0
  39. package/dist/domain/src/kinds/ProfileBadges.js +67 -0
  40. package/dist/domain/src/kinds/ProfileBadges.js.map +1 -0
  41. package/dist/domain/src/kinds/Wiki.d.ts +35 -0
  42. package/dist/domain/src/kinds/Wiki.d.ts.map +1 -0
  43. package/dist/domain/src/kinds/Wiki.js +107 -0
  44. package/dist/domain/src/kinds/Wiki.js.map +1 -0
  45. package/dist/domain/src/kinds/WikiMergeRequest.d.ts +27 -0
  46. package/dist/domain/src/kinds/WikiMergeRequest.d.ts.map +1 -0
  47. package/dist/domain/src/kinds/WikiMergeRequest.js +94 -0
  48. package/dist/domain/src/kinds/WikiMergeRequest.js.map +1 -0
  49. package/dist/domain/src/kinds/WikiRedirect.d.ts +20 -0
  50. package/dist/domain/src/kinds/WikiRedirect.d.ts.map +1 -0
  51. package/dist/domain/src/kinds/WikiRedirect.js +65 -0
  52. package/dist/domain/src/kinds/WikiRedirect.js.map +1 -0
  53. package/dist/lib/src/Tools.d.ts +5 -2
  54. package/dist/lib/src/Tools.d.ts.map +1 -1
  55. package/dist/lib/src/Tools.js +18 -11
  56. package/dist/lib/src/Tools.js.map +1 -1
  57. package/dist/util/src/Kinds.d.ts +2 -0
  58. package/dist/util/src/Kinds.d.ts.map +1 -1
  59. package/dist/util/src/Kinds.js +2 -0
  60. package/dist/util/src/Kinds.js.map +1 -1
  61. package/dist/util/src/RelaySelection.d.ts +1 -0
  62. package/dist/util/src/RelaySelection.d.ts.map +1 -1
  63. package/dist/util/src/RelaySelection.js +1 -0
  64. package/dist/util/src/RelaySelection.js.map +1 -1
  65. package/dist/util/src/Wiki.d.ts +3 -0
  66. package/dist/util/src/Wiki.d.ts.map +1 -0
  67. package/dist/util/src/Wiki.js +16 -0
  68. package/dist/util/src/Wiki.js.map +1 -0
  69. package/dist/util/src/index.d.ts +1 -0
  70. package/dist/util/src/index.d.ts.map +1 -1
  71. package/dist/util/src/index.js +1 -0
  72. package/dist/util/src/index.js.map +1 -1
  73. package/package.json +15 -15
@@ -0,0 +1,38 @@
1
+ import type { TrustedEvent } from "@welshman/util";
2
+ /**
3
+ * A NIP-92 media attachment, parsed from an `["imeta", "url …", "m …", …]` tag.
4
+ * `fallbacks` and `extra` are always present when parsed; `extra` holds the
5
+ * `key value` entries this type doesn't model (NIP-68's `annotate-user`, say) so
6
+ * editing an event doesn't drop what another client wrote.
7
+ */
8
+ export type Imeta = {
9
+ url: string;
10
+ mimeType?: string;
11
+ blurhash?: string;
12
+ dim?: string;
13
+ alt?: string;
14
+ hash?: string;
15
+ fallbacks?: string[];
16
+ extra?: string[];
17
+ };
18
+ /**
19
+ * Parse a single `imeta` tag, or undefined for any other tag and for an `imeta`
20
+ * tag with no url — an attachment nobody can fetch.
21
+ */
22
+ export declare const parseImeta: (tag: string[]) => Imeta | undefined;
23
+ /**
24
+ * Parse every `imeta` tag in a tag list. Writers use this to read the
25
+ * attachments they're carrying, since they hold tags rather than an event.
26
+ */
27
+ export declare const parseImetas: (tags: string[][]) => Imeta[];
28
+ /**
29
+ * Render an attachment as an `imeta` tag. The entries this type doesn't model
30
+ * are written back verbatim, so a round trip through `parseImeta` is lossless.
31
+ */
32
+ export declare const renderImeta: (imeta: Imeta) => string[];
33
+ /**
34
+ * Parse an event's NIP-92 `imeta` tags. A plain function so it can read
35
+ * attachments off any event, regardless of kind, without a kind-specific reader.
36
+ */
37
+ export declare const getImeta: (event: TrustedEvent) => Imeta[];
38
+ //# sourceMappingURL=Imeta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Imeta.d.ts","sourceRoot":"","sources":["../../../../../domain/src/behaviors/Imeta.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAEhD;;;;;GAKG;AACH,MAAM,MAAM,KAAK,GAAG;IAClB,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CACjB,CAAA;AAUD;;;GAGG;AACH,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,EAAE,KAAG,KAAK,GAAG,SAwClD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,EAAE,EAAE,KAAG,KAAK,EAA2C,CAAA;AAE/F;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,KAAK,KAAG,MAAM,EAgBhD,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,QAAQ,GAAI,OAAO,YAAY,KAAG,KAAK,EAA6B,CAAA"}
@@ -0,0 +1,80 @@
1
+ import { removeUndefined } from "@welshman/lib";
2
+ // An imeta entry is a single string, its key separated from its value by a space —
3
+ // and the value may itself contain spaces, as alt text does.
4
+ const parseEntry = (entry) => {
5
+ const index = entry.indexOf(" ");
6
+ return index === -1 ? [entry, ""] : [entry.slice(0, index), entry.slice(index + 1)];
7
+ };
8
+ /**
9
+ * Parse a single `imeta` tag, or undefined for any other tag and for an `imeta`
10
+ * tag with no url — an attachment nobody can fetch.
11
+ */
12
+ export const parseImeta = (tag) => {
13
+ if (tag[0] !== "imeta")
14
+ return undefined;
15
+ const fallbacks = [];
16
+ const extra = [];
17
+ const imeta = { url: "", fallbacks, extra };
18
+ for (const entry of tag.slice(1)) {
19
+ const [key, value] = parseEntry(entry);
20
+ switch (key) {
21
+ case "url":
22
+ imeta.url = value;
23
+ break;
24
+ case "m":
25
+ imeta.mimeType = value;
26
+ break;
27
+ case "blurhash":
28
+ imeta.blurhash = value;
29
+ break;
30
+ case "dim":
31
+ imeta.dim = value;
32
+ break;
33
+ case "alt":
34
+ imeta.alt = value;
35
+ break;
36
+ case "x":
37
+ imeta.hash = value;
38
+ break;
39
+ case "fallback":
40
+ fallbacks.push(value);
41
+ break;
42
+ default:
43
+ extra.push(entry);
44
+ }
45
+ }
46
+ if (imeta.url) {
47
+ return imeta;
48
+ }
49
+ };
50
+ /**
51
+ * Parse every `imeta` tag in a tag list. Writers use this to read the
52
+ * attachments they're carrying, since they hold tags rather than an event.
53
+ */
54
+ export const parseImetas = (tags) => removeUndefined(tags.map(parseImeta));
55
+ /**
56
+ * Render an attachment as an `imeta` tag. The entries this type doesn't model
57
+ * are written back verbatim, so a round trip through `parseImeta` is lossless.
58
+ */
59
+ export const renderImeta = (imeta) => {
60
+ const entries = [
61
+ ["url", imeta.url],
62
+ ["m", imeta.mimeType],
63
+ ["blurhash", imeta.blurhash],
64
+ ["dim", imeta.dim],
65
+ ["alt", imeta.alt],
66
+ ["x", imeta.hash],
67
+ ];
68
+ return [
69
+ "imeta",
70
+ ...entries.filter(([, value]) => value).map(([key, value]) => `${key} ${value}`),
71
+ ...(imeta.fallbacks ?? []).map(url => `fallback ${url}`),
72
+ ...(imeta.extra ?? []),
73
+ ];
74
+ };
75
+ /**
76
+ * Parse an event's NIP-92 `imeta` tags. A plain function so it can read
77
+ * attachments off any event, regardless of kind, without a kind-specific reader.
78
+ */
79
+ export const getImeta = (event) => parseImetas(event.tags);
80
+ //# sourceMappingURL=Imeta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Imeta.js","sourceRoot":"","sources":["../../../../../domain/src/behaviors/Imeta.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import type { TrustedEvent } from "@welshman/util";
3
3
  import type { KindContext } from "./Kind.js";
4
4
  import type { Client } from "../behaviors/Client.js";
5
5
  import type { Emoji } from "../behaviors/Emoji.js";
6
+ import type { Imeta } from "../behaviors/Imeta.js";
6
7
  import type { ZapSplit } from "../behaviors/ZapSplits.js";
7
8
  /**
8
9
  * The accessors every reader shares. Readers don't extend this directly — they
@@ -29,6 +30,7 @@ export declare abstract class BaseEventReader {
29
30
  contentWarningReason(): string | undefined;
30
31
  client(): Client | undefined;
31
32
  emojis(): Emoji[];
33
+ imeta(): Imeta[];
32
34
  zapSplits(): ZapSplit[];
33
35
  }
34
36
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"EventReader.d.ts","sourceRoot":"","sources":["../../../../../domain/src/core/EventReader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,eAAe,CAAA;AAE7C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,WAAW,CAAA;AAE1C,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,wBAAwB,CAAA;AAGlD,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,uBAAuB,CAAA;AAIhD,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,2BAA2B,CAAA;AAEvD;;;;GAIG;AACH,8BAAsB,eAAe;IAEjC,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,OAAO,EAAE,WAAW;IAC7B,QAAQ,CAAC,KAAK,EAAE,YAAY;gBAFnB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,YAAY;IAS9B,QAAQ,CAAC,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC;IAElC,EAAE;IAIF,MAAM;IAIN,OAAO;IAIP,IAAI;IAIJ,SAAS;IAIT,UAAU;IAIV,OAAO;IAIP,IAAI;IAIJ,OAAO;IAIP,UAAU;IAIV,cAAc;IAId,oBAAoB;IAIpB,MAAM,IAAI,MAAM,GAAG,SAAS;IAI5B,MAAM,IAAI,KAAK,EAAE;IAIjB,SAAS,IAAI,QAAQ,EAAE;CAGxB;AAED;;;;GAIG;AACH,8BAAsB,WAAY,SAAQ,eAAe;IACvD,KAAK,IAAI,IAAI;CAGd;AAED;;;;GAIG;AACH,8BAAsB,gBAAiB,SAAQ,eAAe;IAC5D,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,eAAe,IAAI,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"EventReader.d.ts","sourceRoot":"","sources":["../../../../../domain/src/core/EventReader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,eAAe,CAAA;AAE7C,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,WAAW,CAAA;AAE1C,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,wBAAwB,CAAA;AAGlD,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,uBAAuB,CAAA;AAGhD,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,uBAAuB,CAAA;AAGhD,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,2BAA2B,CAAA;AAEvD;;;;GAIG;AACH,8BAAsB,eAAe;IAEjC,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,OAAO,EAAE,WAAW;IAC7B,QAAQ,CAAC,KAAK,EAAE,YAAY;gBAFnB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,YAAY;IAS9B,QAAQ,CAAC,KAAK,IAAI,UAAU,CAAC,IAAI,CAAC;IAElC,EAAE;IAIF,MAAM;IAIN,OAAO;IAIP,IAAI;IAIJ,SAAS;IAIT,UAAU;IAIV,OAAO;IAIP,IAAI;IAIJ,OAAO;IAIP,UAAU;IAIV,cAAc;IAId,oBAAoB;IAIpB,MAAM,IAAI,MAAM,GAAG,SAAS;IAI5B,MAAM,IAAI,KAAK,EAAE;IAIjB,KAAK,IAAI,KAAK,EAAE;IAIhB,SAAS,IAAI,QAAQ,EAAE;CAGxB;AAED;;;;GAIG;AACH,8BAAsB,WAAY,SAAQ,eAAe;IACvD,KAAK,IAAI,IAAI;CAGd;AAED;;;;GAIG;AACH,8BAAsB,gBAAiB,SAAQ,eAAe;IAC5D,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,eAAe,IAAI,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA"}
@@ -3,6 +3,7 @@ import { getClient } from "../behaviors/Client.js";
3
3
  import { getContentWarning } from "../behaviors/ContentWarning.js";
4
4
  import { getEmojis } from "../behaviors/Emoji.js";
5
5
  import { getExpiration } from "../behaviors/Expiration.js";
6
+ import { getImeta } from "../behaviors/Imeta.js";
6
7
  import { isProtected } from "../behaviors/Protected.js";
7
8
  import { getZapSplits } from "../behaviors/ZapSplits.js";
8
9
  /**
@@ -64,6 +65,9 @@ export class BaseEventReader {
64
65
  emojis() {
65
66
  return getEmojis(this.event);
66
67
  }
68
+ imeta() {
69
+ return getImeta(this.event);
70
+ }
67
71
  zapSplits() {
68
72
  return getZapSplits(this.event);
69
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EventReader.js","sourceRoot":"","sources":["../../../../../domain/src/core/EventReader.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAC,MAAM,gBAAgB,CAAA;AAG5D,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAA;AAEhD,OAAO,EAAC,iBAAiB,EAAC,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAA;AAE/C,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAA;AAGtD;;;;GAIG;AACH,MAAM,OAAgB,eAAe;IAExB;IACA;IACA;IAHX,YACW,IAAY,EACZ,OAAoB,EACpB,KAAmB;QAFnB,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAa;QACpB,UAAK,GAAL,KAAK,CAAc;QAE5B,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,oBAAoB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;QAC1E,CAAC;IACH,CAAC;IAMD,EAAE;QACA,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAA;IACtB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;IAC1B,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAA;IAC3B,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAA;IACxB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAA;IAC9B,CAAC;IAED,UAAU;QACR,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAChD,CAAC;IAED,OAAO;QACL,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC;IAED,IAAI;QACF,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAChD,CAAC;IAED,OAAO;QACL,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAChC,CAAC;IAED,UAAU;QACR,OAAO,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC;IAED,cAAc;QACZ,OAAO,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAC/C,CAAC;IAED,oBAAoB;QAClB,OAAO,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IAC9C,CAAC;IAED,MAAM;QACJ,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,MAAM;QACJ,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,SAAS;QACP,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACjC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAgB,WAAY,SAAQ,eAAe;IACvD,KAAK;QACH,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAgB,gBAAiB,SAAQ,eAAe;CAE7D"}
1
+ {"version":3,"file":"EventReader.js","sourceRoot":"","sources":["../../../../../domain/src/core/EventReader.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAC,MAAM,gBAAgB,CAAA;AAG5D,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAA;AAEhD,OAAO,EAAC,iBAAiB,EAAC,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAC,SAAS,EAAC,MAAM,uBAAuB,CAAA;AAE/C,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAC,QAAQ,EAAC,MAAM,uBAAuB,CAAA;AAE9C,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAC,YAAY,EAAC,MAAM,2BAA2B,CAAA;AAGtD;;;;GAIG;AACH,MAAM,OAAgB,eAAe;IAExB;IACA;IACA;IAHX,YACW,IAAY,EACZ,OAAoB,EACpB,KAAmB;QAFnB,SAAI,GAAJ,IAAI,CAAQ;QACZ,YAAO,GAAP,OAAO,CAAa;QACpB,UAAK,GAAL,KAAK,CAAc;QAE5B,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,oBAAoB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;QAC1E,CAAC;IACH,CAAC;IAMD,EAAE;QACA,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAA;IACtB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAA;IAC1B,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAA;IAC3B,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAA;IACxB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAA;IAC9B,CAAC;IAED,UAAU;QACR,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAChD,CAAC;IAED,OAAO;QACL,OAAO,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC;IAED,IAAI;QACF,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAChD,CAAC;IAED,OAAO;QACL,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAChC,CAAC;IAED,UAAU;QACR,OAAO,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC;IAED,cAAc;QACZ,OAAO,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAC/C,CAAC;IAED,oBAAoB;QAClB,OAAO,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IAC9C,CAAC;IAED,MAAM;QACJ,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,MAAM;QACJ,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC9B,CAAC;IAED,KAAK;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC7B,CAAC;IAED,SAAS;QACP,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACjC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAgB,WAAY,SAAQ,eAAe;IACvD,KAAK;QACH,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAgB,gBAAiB,SAAQ,eAAe;CAE7D"}
@@ -1,5 +1,6 @@
1
1
  import type { MaybeAsync } from "@welshman/lib";
2
2
  import type { EventTemplate, TrustedEvent, RelaySelection, RelayScenario } from "@welshman/util";
3
+ import type { Imeta } from "../behaviors/Imeta.js";
3
4
  import type { BaseEventReader } from "./EventReader.js";
4
5
  import type { KindContext } from "./Kind.js";
5
6
  export declare class TagParser {
@@ -54,6 +55,13 @@ export declare abstract class EventWriter<Reader extends BaseEventReader> {
54
55
  addQuote(event: TrustedEvent): this;
55
56
  addZapSplit(pubkey: string, split?: number): this;
56
57
  removeZapSplit(pubkey: string): this;
58
+ imeta(): Imeta[];
59
+ /**
60
+ * Attaches a NIP-92 `imeta` tag describing a piece of media, replacing any
61
+ * attachment already at that url rather than listing it twice.
62
+ */
63
+ addImeta(imeta: Imeta): this;
64
+ removeImeta(url: string): this;
57
65
  addEmoji(shortcode: string, url: string, address?: string): this;
58
66
  removeEmoji(shortcode: string): this;
59
67
  /**
@@ -101,7 +109,7 @@ export declare abstract class EventWriter<Reader extends BaseEventReader> {
101
109
  */
102
110
  scenario(): Promise<RelayScenario>;
103
111
  /**
104
- * Shortcut for getting relays from the router scenario.
112
+ * Shortcut for getting relays from the router scenario. Forced routes bypass scoring.
105
113
  */
106
114
  relays(): Promise<string[]>;
107
115
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"EventWriter.d.ts","sourceRoot":"","sources":["../../../../../domain/src/core/EventWriter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EventWriter.d.ts","sourceRoot":"","sources":["../../../../../domain/src/core/EventWriter.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { remove, complement, first, partition, randomId, removeUndefined, spec } from "@welshman/lib";
2
2
  import { Address, isParameterizedReplaceableKind, normalizeRelayUrl, hexTags, tagValues, outbox, userOutbox, inboxes, relay, } from "@welshman/util";
3
+ import { parseImeta, parseImetas, renderImeta } from "../behaviors/Imeta.js";
3
4
  // A cursor over a tag list that splits out tags by key as they're consumed,
4
5
  // leaving the rest in `tags`. Writers use it to peel behavior/kind-specific tags
5
6
  // off an event being edited.
@@ -161,6 +162,19 @@ export class EventWriter {
161
162
  removeZapSplit(pubkey) {
162
163
  return this.dropTags(spec(["zap", pubkey]));
163
164
  }
165
+ imeta() {
166
+ return parseImetas(this.extraTags);
167
+ }
168
+ /**
169
+ * Attaches a NIP-92 `imeta` tag describing a piece of media, replacing any
170
+ * attachment already at that url rather than listing it twice.
171
+ */
172
+ addImeta(imeta) {
173
+ return this.removeImeta(imeta.url).addTags(renderImeta(imeta));
174
+ }
175
+ removeImeta(url) {
176
+ return this.dropTags(tag => parseImeta(tag)?.url === url);
177
+ }
164
178
  addEmoji(shortcode, url, address) {
165
179
  return this.dropTags(spec(["emoji", shortcode])).addTags(removeUndefined(["emoji", shortcode, url, address]));
166
180
  }
@@ -261,10 +275,11 @@ export class EventWriter {
261
275
  return this.context.resolver.scenario(routes);
262
276
  }
263
277
  /**
264
- * Shortcut for getting relays from the router scenario.
278
+ * Shortcut for getting relays from the router scenario. Forced routes bypass scoring.
265
279
  */
266
280
  async relays() {
267
- return (await this.scenario()).getUrls();
281
+ const scenario = await this.scenario();
282
+ return this.forcedRoutes?.length ? scenario.getAllUrls() : scenario.getUrls();
268
283
  }
269
284
  /**
270
285
  * Returns a rendered event template along with its relays.
@@ -1 +1 @@
1
- {"version":3,"file":"EventWriter.js","sourceRoot":"","sources":["../../../../../domain/src/core/EventWriter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EventWriter.js","sourceRoot":"","sources":["../../../../../domain/src/core/EventWriter.ts"],"names":[],"mappings":"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"}
@@ -6,19 +6,24 @@ export * from "./behaviors/Client.js";
6
6
  export * from "./behaviors/ContentWarning.js";
7
7
  export * from "./behaviors/Emoji.js";
8
8
  export * from "./behaviors/Expiration.js";
9
+ export * from "./behaviors/Imeta.js";
9
10
  export * from "./behaviors/Protected.js";
10
11
  export * from "./behaviors/ZapSplits.js";
11
12
  export * from "./other/Relay.js";
12
13
  export * from "./other/Zapper.js";
13
14
  export * from "./kinds/AppData.js";
14
15
  export * from "./kinds/Article.js";
16
+ export * from "./kinds/BadgeAward.js";
17
+ export * from "./kinds/BadgeDefinition.js";
15
18
  export * from "./kinds/BlockedRelayList.js";
16
19
  export * from "./kinds/BlossomServerList.js";
17
20
  export * from "./kinds/BookmarkList.js";
21
+ export * from "./kinds/CalendarRsvp.js";
18
22
  export * from "./kinds/Classified.js";
19
23
  export * from "./kinds/Command.js";
20
24
  export * from "./kinds/Comment.js";
21
25
  export * from "./kinds/CommunityList.js";
26
+ export * from "./kinds/DateEvent.js";
22
27
  export * from "./kinds/Delete.js";
23
28
  export * from "./kinds/DirectMessage.js";
24
29
  export * from "./kinds/EmojiList.js";
@@ -35,11 +40,13 @@ export * from "./kinds/MessagingRelayList.js";
35
40
  export * from "./kinds/MuteList.js";
36
41
  export * from "./kinds/Note.js";
37
42
  export * from "./kinds/Pin.js";
43
+ export * from "./kinds/Picture.js";
38
44
  export * from "./kinds/Pinboard.js";
39
45
  export * from "./kinds/PinList.js";
40
46
  export * from "./kinds/Poll.js";
41
47
  export * from "./kinds/PollResponse.js";
42
48
  export * from "./kinds/Profile.js";
49
+ export * from "./kinds/ProfileBadges.js";
43
50
  export * from "./kinds/Reaction.js";
44
51
  export * from "./kinds/RelayAddMember.js";
45
52
  export * from "./kinds/RelayInvite.js";
@@ -70,6 +77,9 @@ export * from "./kinds/SearchRelayList.js";
70
77
  export * from "./kinds/Thread.js";
71
78
  export * from "./kinds/TimeEvent.js";
72
79
  export * from "./kinds/TopicList.js";
80
+ export * from "./kinds/Wiki.js";
81
+ export * from "./kinds/WikiMergeRequest.js";
82
+ export * from "./kinds/WikiRedirect.js";
73
83
  export * from "./kinds/ZapGoal.js";
74
84
  export * from "./kinds/ZapReceipt.js";
75
85
  export * from "./kinds/ZapRequest.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../domain/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,sBAAsB,CAAA;AACpC,cAAc,2BAA2B,CAAA;AACzC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kCAAkC,CAAA;AAChD,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../domain/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,sBAAsB,CAAA;AACpC,cAAc,2BAA2B,CAAA;AACzC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kCAAkC,CAAA;AAChD,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,yBAAyB,CAAA;AACvC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA"}
@@ -6,19 +6,24 @@ export * from "./behaviors/Client.js";
6
6
  export * from "./behaviors/ContentWarning.js";
7
7
  export * from "./behaviors/Emoji.js";
8
8
  export * from "./behaviors/Expiration.js";
9
+ export * from "./behaviors/Imeta.js";
9
10
  export * from "./behaviors/Protected.js";
10
11
  export * from "./behaviors/ZapSplits.js";
11
12
  export * from "./other/Relay.js";
12
13
  export * from "./other/Zapper.js";
13
14
  export * from "./kinds/AppData.js";
14
15
  export * from "./kinds/Article.js";
16
+ export * from "./kinds/BadgeAward.js";
17
+ export * from "./kinds/BadgeDefinition.js";
15
18
  export * from "./kinds/BlockedRelayList.js";
16
19
  export * from "./kinds/BlossomServerList.js";
17
20
  export * from "./kinds/BookmarkList.js";
21
+ export * from "./kinds/CalendarRsvp.js";
18
22
  export * from "./kinds/Classified.js";
19
23
  export * from "./kinds/Command.js";
20
24
  export * from "./kinds/Comment.js";
21
25
  export * from "./kinds/CommunityList.js";
26
+ export * from "./kinds/DateEvent.js";
22
27
  export * from "./kinds/Delete.js";
23
28
  export * from "./kinds/DirectMessage.js";
24
29
  export * from "./kinds/EmojiList.js";
@@ -35,11 +40,13 @@ export * from "./kinds/MessagingRelayList.js";
35
40
  export * from "./kinds/MuteList.js";
36
41
  export * from "./kinds/Note.js";
37
42
  export * from "./kinds/Pin.js";
43
+ export * from "./kinds/Picture.js";
38
44
  export * from "./kinds/Pinboard.js";
39
45
  export * from "./kinds/PinList.js";
40
46
  export * from "./kinds/Poll.js";
41
47
  export * from "./kinds/PollResponse.js";
42
48
  export * from "./kinds/Profile.js";
49
+ export * from "./kinds/ProfileBadges.js";
43
50
  export * from "./kinds/Reaction.js";
44
51
  export * from "./kinds/RelayAddMember.js";
45
52
  export * from "./kinds/RelayInvite.js";
@@ -70,6 +77,9 @@ export * from "./kinds/SearchRelayList.js";
70
77
  export * from "./kinds/Thread.js";
71
78
  export * from "./kinds/TimeEvent.js";
72
79
  export * from "./kinds/TopicList.js";
80
+ export * from "./kinds/Wiki.js";
81
+ export * from "./kinds/WikiMergeRequest.js";
82
+ export * from "./kinds/WikiRedirect.js";
73
83
  export * from "./kinds/ZapGoal.js";
74
84
  export * from "./kinds/ZapReceipt.js";
75
85
  export * from "./kinds/ZapRequest.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../domain/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,sBAAsB,CAAA;AACpC,cAAc,2BAA2B,CAAA;AACzC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kCAAkC,CAAA;AAChD,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../domain/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,uBAAuB,CAAA;AACrC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,sBAAsB,CAAA;AACpC,cAAc,2BAA2B,CAAA;AACzC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,yBAAyB,CAAA;AACvC,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,kCAAkC,CAAA;AAChD,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,qBAAqB,CAAA;AACnC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,yBAAyB,CAAA;AACvC,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,wBAAwB,CAAA;AACtC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,2BAA2B,CAAA;AACzC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,6BAA6B,CAAA;AAC3C,cAAc,yBAAyB,CAAA;AACvC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA"}
@@ -0,0 +1,19 @@
1
+ import { EventReader } from "../core/EventReader.js";
2
+ import { EventWriter } from "../core/EventWriter.js";
3
+ import { EventQuery } from "../core/EventQuery.js";
4
+ import { KindFactory } from "../core/Kind.js";
5
+ export declare class BadgeAwardReader extends EventReader {
6
+ badge(): string | undefined;
7
+ awardees(): string[];
8
+ }
9
+ export declare class BadgeAwardWriter extends EventWriter<BadgeAwardReader> {
10
+ setBadge(address: string): this;
11
+ addAwardee(pubkey: string): this;
12
+ removeAwardee(pubkey: string): this;
13
+ validate(): void;
14
+ }
15
+ export declare class BadgeAwardQuery extends EventQuery {
16
+ protected renderRoutes(): import("@welshman/util").RelaySelection[];
17
+ }
18
+ export declare const BadgeAward: KindFactory<BadgeAwardReader, BadgeAwardWriter, BadgeAwardQuery>;
19
+ //# sourceMappingURL=BadgeAward.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BadgeAward.d.ts","sourceRoot":"","sources":["../../../../../domain/src/kinds/BadgeAward.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAA;AAI3C,qBAAa,gBAAiB,SAAQ,WAAW;IAC/C,KAAK;IAIL,QAAQ;CAGT;AAED,qBAAa,gBAAiB,SAAQ,WAAW,CAAC,gBAAgB,CAAC;IAEjE,QAAQ,CAAC,OAAO,EAAE,MAAM;IAIxB,UAAU,CAAC,MAAM,EAAE,MAAM;IAIzB,aAAa,CAAC,MAAM,EAAE,MAAM;IAI5B,QAAQ;CAWT;AAED,qBAAa,eAAgB,SAAQ,UAAU;IAC7C,SAAS,CAAC,YAAY;CAGvB;AAED,eAAO,MAAM,UAAU,kEAKrB,CAAA"}
@@ -0,0 +1,49 @@
1
+ import { spec } from "@welshman/lib";
2
+ import { BADGE_AWARD, addressTags, hexTags, tagValue, tagValues } from "@welshman/util";
3
+ import { EventReader } from "../core/EventReader.js";
4
+ import { EventWriter } from "../core/EventWriter.js";
5
+ import { EventQuery } from "../core/EventQuery.js";
6
+ import { KindFactory } from "../core/Kind.js";
7
+ // NIP-58 kind-8 badge award. Names one badge definition by address and the
8
+ // pubkeys it is awarded to.
9
+ export class BadgeAwardReader extends EventReader {
10
+ badge() {
11
+ return tagValue(addressTags("a"), this.event.tags);
12
+ }
13
+ awardees() {
14
+ return tagValues(hexTags("p"), this.event.tags);
15
+ }
16
+ }
17
+ export class BadgeAwardWriter extends EventWriter {
18
+ // An award grants exactly one badge, so replace any existing one.
19
+ setBadge(address) {
20
+ return this.dropTags(spec(["a"])).addTags(["a", address]);
21
+ }
22
+ addAwardee(pubkey) {
23
+ return this.removeAwardee(pubkey).addMention(pubkey);
24
+ }
25
+ removeAwardee(pubkey) {
26
+ return this.dropTags(spec(["p", pubkey]));
27
+ }
28
+ validate() {
29
+ super.validate();
30
+ if (!this.extraTags.some(spec(["a"]))) {
31
+ throw new Error("A badge award must name a badge definition via an a tag");
32
+ }
33
+ if (!this.extraTags.some(spec(["p"]))) {
34
+ throw new Error("A badge award must name at least one awardee");
35
+ }
36
+ }
37
+ }
38
+ export class BadgeAwardQuery extends EventQuery {
39
+ renderRoutes() {
40
+ return [...this.authorRoutes(), ...this.mentionRoutes()];
41
+ }
42
+ }
43
+ export const BadgeAward = new KindFactory({
44
+ kind: BADGE_AWARD,
45
+ reader: BadgeAwardReader,
46
+ writer: BadgeAwardWriter,
47
+ query: BadgeAwardQuery,
48
+ });
49
+ //# sourceMappingURL=BadgeAward.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BadgeAward.js","sourceRoot":"","sources":["../../../../../domain/src/kinds/BadgeAward.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAC,MAAM,eAAe,CAAA;AAClC,OAAO,EAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAC,MAAM,gBAAgB,CAAA;AACrF,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAA;AAE3C,2EAA2E;AAC3E,4BAA4B;AAC5B,MAAM,OAAO,gBAAiB,SAAQ,WAAW;IAC/C,KAAK;QACH,OAAO,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACpD,CAAC;IAED,QAAQ;QACN,OAAO,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACjD,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,WAA6B;IACjE,kEAAkE;IAClE,QAAQ,CAAC,OAAe;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;IAC3D,CAAC;IAED,UAAU,CAAC,MAAc;QACvB,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IACtD,CAAC;IAED,aAAa,CAAC,MAAc;QAC1B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;IAC3C,CAAC;IAED,QAAQ;QACN,KAAK,CAAC,QAAQ,EAAE,CAAA;QAEhB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAA;QAC5E,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;QACjE,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,UAAU;IACnC,YAAY;QACpB,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAA;IAC1D,CAAC;CACF;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC;IACxC,IAAI,EAAE,WAAW;IACjB,MAAM,EAAE,gBAAgB;IACxB,MAAM,EAAE,gBAAgB;IACxB,KAAK,EAAE,eAAe;CACvB,CAAC,CAAA"}
@@ -0,0 +1,25 @@
1
+ import { EventReader } from "../core/EventReader.js";
2
+ import { EventWriter } from "../core/EventWriter.js";
3
+ import { EventQuery } from "../core/EventQuery.js";
4
+ import { KindFactory } from "../core/Kind.js";
5
+ export type BadgeImage = {
6
+ url: string;
7
+ dim?: string;
8
+ };
9
+ export declare class BadgeDefinitionReader extends EventReader {
10
+ name(): string | undefined;
11
+ description(): string | undefined;
12
+ image(): BadgeImage | undefined;
13
+ thumbs(): BadgeImage[];
14
+ }
15
+ export declare class BadgeDefinitionWriter extends EventWriter<BadgeDefinitionReader> {
16
+ setName(name: string): this;
17
+ setDescription(description: string): this;
18
+ setImage(image: BadgeImage): this;
19
+ setThumbs(thumbs: BadgeImage[]): this;
20
+ }
21
+ export declare class BadgeDefinitionQuery extends EventQuery {
22
+ protected renderRoutes(): import("@welshman/util").RelaySelection[];
23
+ }
24
+ export declare const BadgeDefinition: KindFactory<BadgeDefinitionReader, BadgeDefinitionWriter, BadgeDefinitionQuery>;
25
+ //# sourceMappingURL=BadgeDefinition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BadgeDefinition.d.ts","sourceRoot":"","sources":["../../../../../domain/src/kinds/BadgeDefinition.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAC,WAAW,EAAC,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAC,WAAW,EAAC,MAAM,iBAAiB,CAAA;AAG3C,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,CAAC,EAAE,MAAM,CAAA;CACb,CAAA;AAYD,qBAAa,qBAAsB,SAAQ,WAAW;IACpD,IAAI;IAIJ,WAAW;IAIX,KAAK,IAAI,UAAU,GAAG,SAAS;IAS/B,MAAM,IAAI,UAAU,EAAE;CAGvB;AAED,qBAAa,qBAAsB,SAAQ,WAAW,CAAC,qBAAqB,CAAC;IAC3E,OAAO,CAAC,IAAI,EAAE,MAAM;IAIpB,cAAc,CAAC,WAAW,EAAE,MAAM;IAIlC,QAAQ,CAAC,KAAK,EAAE,UAAU;IAI1B,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE;CAK/B;AAED,qBAAa,oBAAqB,SAAQ,UAAU;IAClD,SAAS,CAAC,YAAY;CAGvB;AAED,eAAO,MAAM,eAAe,iFAK1B,CAAA"}
@@ -0,0 +1,58 @@
1
+ import { removeUndefined, spec } from "@welshman/lib";
2
+ import { BADGE_DEFINITION, matchTag, matchTags, tagSpec, tagValue } from "@welshman/util";
3
+ import { EventReader } from "../core/EventReader.js";
4
+ import { EventWriter } from "../core/EventWriter.js";
5
+ import { EventQuery } from "../core/EventQuery.js";
6
+ import { KindFactory } from "../core/Kind.js";
7
+ const parseImage = ([, url, dim]) => {
8
+ if (url) {
9
+ return { url, dim: dim || undefined };
10
+ }
11
+ };
12
+ const renderImage = (key, { url, dim }) => removeUndefined([key, url, dim]);
13
+ // NIP-58 kind-30009 badge definition. Its `d` tag is the badge's slug, unique per
14
+ // issuer, so a badge is identified by the `30009:issuer:slug` address.
15
+ export class BadgeDefinitionReader extends EventReader {
16
+ name() {
17
+ return tagValue(tagSpec("name"), this.event.tags);
18
+ }
19
+ description() {
20
+ return tagValue(tagSpec("description"), this.event.tags);
21
+ }
22
+ image() {
23
+ const tag = matchTag(tagSpec("image"), this.event.tags);
24
+ if (tag) {
25
+ return parseImage(tag);
26
+ }
27
+ }
28
+ // A badge may offer several thumbnails, one per size.
29
+ thumbs() {
30
+ return removeUndefined(matchTags(tagSpec("thumb"), this.event.tags).map(parseImage));
31
+ }
32
+ }
33
+ export class BadgeDefinitionWriter extends EventWriter {
34
+ setName(name) {
35
+ return this.dropTags(spec(["name"])).addTags(["name", name]);
36
+ }
37
+ setDescription(description) {
38
+ return this.dropTags(spec(["description"])).addTags(["description", description]);
39
+ }
40
+ setImage(image) {
41
+ return this.dropTags(spec(["image"])).addTags(renderImage("image", image));
42
+ }
43
+ setThumbs(thumbs) {
44
+ return this.dropTags(spec(["thumb"])).addTags(...thumbs.map(thumb => renderImage("thumb", thumb)));
45
+ }
46
+ }
47
+ export class BadgeDefinitionQuery extends EventQuery {
48
+ renderRoutes() {
49
+ return this.authorRoutes();
50
+ }
51
+ }
52
+ export const BadgeDefinition = new KindFactory({
53
+ kind: BADGE_DEFINITION,
54
+ reader: BadgeDefinitionReader,
55
+ writer: BadgeDefinitionWriter,
56
+ query: BadgeDefinitionQuery,
57
+ });
58
+ //# sourceMappingURL=BadgeDefinition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BadgeDefinition.js","sourceRoot":"","sources":["../../../../../domain/src/kinds/BadgeDefinition.ts"],"names":[],"mappings":"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"}