@toon-protocol/views 0.13.2 → 0.14.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.
@@ -22,7 +22,20 @@ export interface RepoMetadata {
22
22
  eventId: string;
23
23
  cloneUrls: string[];
24
24
  webUrls: string[];
25
+ /**
26
+ * Declared maintainer pubkeys (hex) from the `maintainers` tag (#287). Does
27
+ * NOT include the owner, who is an implicit maintainer. Combine with
28
+ * `ownerPubkey` via {@link repoAuthorizedAuthors} to get the full set of
29
+ * authors whose kind:1630-1633 status events are authoritative.
30
+ */
31
+ maintainers: string[];
25
32
  }
33
+ /**
34
+ * The set of authors whose kind:1630-1633 status events are authoritative for
35
+ * a repo (#287): the owner (always) ∪ declared maintainers. Lowercased hex.
36
+ * Feed this to {@link resolvePRStatus} / {@link resolveIssueStatus}.
37
+ */
38
+ export declare function repoAuthorizedAuthors(repo: RepoMetadata): Set<string>;
26
39
  /** Parsed repository refs from a kind:30618 event. */
27
40
  export interface RepoRefs {
28
41
  repoId: string;
@@ -73,8 +86,24 @@ export declare function parseIssue(event: NostrEvent): IssueMetadata | null;
73
86
  export declare function parsePR(event: NostrEvent): PRMetadata | null;
74
87
  /** Parse a kind:1622 comment event into CommentMetadata. */
75
88
  export declare function parseComment(event: NostrEvent): CommentMetadata | null;
76
- /** Resolve the status of a PR from status events (kind:1630-1633). */
77
- export declare function resolvePRStatus(prEventId: string, statusEvents: NostrEvent[]): 'open' | 'applied' | 'closed' | 'draft';
78
- /** Resolve the status of an issue from close events (kind:1632). */
79
- export declare function resolveIssueStatus(issueEventId: string, closeEvents: NostrEvent[]): 'open' | 'closed';
89
+ /**
90
+ * Resolve the status of a PR from status events (kind:1630-1633), honoring
91
+ * ONLY events signed by an AUTHORIZED author the repo owner ∪ declared
92
+ * maintainers (#287; see {@link repoAuthorizedAuthors}). The relay is
93
+ * permissionless, so any funded stranger can PUBLISH a kind:163x against a PR;
94
+ * this consumer-side filter ensures such spoofed events NEVER move the
95
+ * displayed state. Among authorized events the latest (by created_at) wins.
96
+ *
97
+ * `authorized` is the lowercased-hex author set. When empty (the 30617 was not
98
+ * resolved) nothing is authoritative and the PR resolves to open — a safe,
99
+ * non-spoofable default.
100
+ */
101
+ export declare function resolvePRStatus(prEventId: string, statusEvents: NostrEvent[], authorized: Iterable<string>): 'open' | 'applied' | 'closed' | 'draft';
102
+ /**
103
+ * Resolve the status of an issue from close events (kind:1632), honoring ONLY
104
+ * events signed by an AUTHORIZED author (owner ∪ maintainers, #287). An
105
+ * unauthorized close event does NOT close the issue. `authorized` is the
106
+ * lowercased-hex author set (see {@link repoAuthorizedAuthors}).
107
+ */
108
+ export declare function resolveIssueStatus(issueEventId: string, closeEvents: NostrEvent[], authorized: Iterable<string>): 'open' | 'closed';
80
109
  //# sourceMappingURL=nip34.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nip34.d.ts","sourceRoot":"","sources":["../../src/parsers/nip34.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,KAAK,UAAU,EAA6B,MAAM,aAAa,CAAC;AAEzE,0DAA0D;AAC1D,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAKD,sDAAsD;AACtD,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1B,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,8DAA8D;AAC9D,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,QAAQ,GAAG,IAAI,CAkBhE;AAED,0EAA0E;AAC1E,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,UAAU,GAAG,YAAY,GAAG,IAAI,CAyB5E;AAED,oDAAoD;AACpD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC3B;AAED,2DAA2D;AAC3D,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;IAChD;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,sDAAsD;AACtD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wDAAwD;AACxD,wBAAgB,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,aAAa,GAAG,IAAI,CAgBlE;AAED,wDAAwD;AACxD,wBAAgB,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI,CAmB5D;AAED,4DAA4D;AAC5D,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,eAAe,GAAG,IAAI,CAatE;AAED,sEAAsE;AACtE,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,UAAU,EAAE,GACzB,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAsBzC;AAED,oEAAoE;AACpE,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,UAAU,EAAE,GACxB,MAAM,GAAG,QAAQ,CAMnB"}
1
+ {"version":3,"file":"nip34.d.ts","sourceRoot":"","sources":["../../src/parsers/nip34.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,37 @@
12
12
  * bundle share one parser corpus.
13
13
  */
14
14
  import { getTagValue, getTagValues } from '../types.js';
15
+ /**
16
+ * NIP-34 tag naming a repo's declared maintainers on the kind:30617:
17
+ * one multi-valued `["maintainers", "<hex>", …]` tag (mirrors `relays`).
18
+ */
19
+ const MAINTAINERS_TAG = 'maintainers';
20
+ const HEX64_RE = /^[0-9a-f]{64}$/;
21
+ /** Collect the lowercased-hex maintainer pubkeys from 30617 tags (#287). */
22
+ function parseMaintainerTags(tags) {
23
+ const out = [];
24
+ const seen = new Set();
25
+ for (const tag of tags) {
26
+ if (tag[0] !== MAINTAINERS_TAG)
27
+ continue;
28
+ for (const value of tag.slice(1)) {
29
+ const hex = value.toLowerCase();
30
+ if (HEX64_RE.test(hex) && !seen.has(hex)) {
31
+ seen.add(hex);
32
+ out.push(hex);
33
+ }
34
+ }
35
+ }
36
+ return out;
37
+ }
38
+ /**
39
+ * The set of authors whose kind:1630-1633 status events are authoritative for
40
+ * a repo (#287): the owner (always) ∪ declared maintainers. Lowercased hex.
41
+ * Feed this to {@link resolvePRStatus} / {@link resolveIssueStatus}.
42
+ */
43
+ export function repoAuthorizedAuthors(repo) {
44
+ return new Set([repo.ownerPubkey.toLowerCase(), ...repo.maintainers]);
45
+ }
15
46
  /** Maximum number of refs to parse from a single kind:30618 event. */
16
47
  const MAX_REFS_PER_EVENT = 1000;
17
48
  /** Parse a kind:30618 repository refs event into RepoRefs. */
@@ -57,6 +88,7 @@ export function parseRepoAnnouncement(event) {
57
88
  eventId: event.id,
58
89
  cloneUrls,
59
90
  webUrls,
91
+ maintainers: parseMaintainerTags(event.tags),
60
92
  };
61
93
  }
62
94
  /** Parse a kind:1621 issue event into IssueMetadata. */
@@ -111,17 +143,32 @@ export function parseComment(event) {
111
143
  parentEventId,
112
144
  };
113
145
  }
114
- /** Resolve the status of a PR from status events (kind:1630-1633). */
115
- export function resolvePRStatus(prEventId, statusEvents) {
146
+ /**
147
+ * Resolve the status of a PR from status events (kind:1630-1633), honoring
148
+ * ONLY events signed by an AUTHORIZED author — the repo owner ∪ declared
149
+ * maintainers (#287; see {@link repoAuthorizedAuthors}). The relay is
150
+ * permissionless, so any funded stranger can PUBLISH a kind:163x against a PR;
151
+ * this consumer-side filter ensures such spoofed events NEVER move the
152
+ * displayed state. Among authorized events the latest (by created_at) wins.
153
+ *
154
+ * `authorized` is the lowercased-hex author set. When empty (the 30617 was not
155
+ * resolved) nothing is authoritative and the PR resolves to open — a safe,
156
+ * non-spoofable default.
157
+ */
158
+ export function resolvePRStatus(prEventId, statusEvents, authorized) {
116
159
  const KIND_STATUS_MAP = {
117
160
  1630: 'open',
118
161
  1631: 'applied',
119
162
  1632: 'closed',
120
163
  1633: 'draft',
121
164
  };
165
+ const authors = authorized instanceof Set ? authorized : new Set(authorized);
122
166
  const relevant = statusEvents.filter((evt) => {
123
167
  const eTag = getTagValue(evt.tags, 'e');
124
- return eTag === prEventId && evt.kind >= 1630 && evt.kind <= 1633;
168
+ return (eTag === prEventId &&
169
+ evt.kind >= 1630 &&
170
+ evt.kind <= 1633 &&
171
+ authors.has(evt.pubkey.toLowerCase()));
125
172
  });
126
173
  if (relevant.length === 0)
127
174
  return 'open';
@@ -133,11 +180,19 @@ export function resolvePRStatus(prEventId, statusEvents) {
133
180
  }
134
181
  return KIND_STATUS_MAP[latest.kind] ?? 'open';
135
182
  }
136
- /** Resolve the status of an issue from close events (kind:1632). */
137
- export function resolveIssueStatus(issueEventId, closeEvents) {
183
+ /**
184
+ * Resolve the status of an issue from close events (kind:1632), honoring ONLY
185
+ * events signed by an AUTHORIZED author (owner ∪ maintainers, #287). An
186
+ * unauthorized close event does NOT close the issue. `authorized` is the
187
+ * lowercased-hex author set (see {@link repoAuthorizedAuthors}).
188
+ */
189
+ export function resolveIssueStatus(issueEventId, closeEvents, authorized) {
190
+ const authors = authorized instanceof Set ? authorized : new Set(authorized);
138
191
  const isClosed = closeEvents.some((evt) => {
139
192
  const eTag = getTagValue(evt.tags, 'e');
140
- return eTag === issueEventId && evt.kind === 1632;
193
+ return (eTag === issueEventId &&
194
+ evt.kind === 1632 &&
195
+ authors.has(evt.pubkey.toLowerCase()));
141
196
  });
142
197
  return isClosed ? 'closed' : 'open';
143
198
  }
@@ -1 +1 @@
1
- {"version":3,"file":"nip34.js","sourceRoot":"","sources":["../../src/parsers/nip34.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nip34.js","sourceRoot":"","sources":["../../src/parsers/nip34.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toon-protocol/views",
3
- "version": "0.13.2",
3
+ "version": "0.14.0",
4
4
  "description": "Shared TOON kind→atom registry, NIP parsers, ViewSpec composition runtime, and MCP-app iframe bundle. Consumed by rig and the toon-mcp apps surface.",
5
5
  "type": "module",
6
6
  "publishConfig": {