@toon-protocol/views 0.13.1 → 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.
@@ -1 +1 @@
1
- {"version":3,"file":"forge.d.ts","sourceRoot":"","sources":["../../src/atoms/forge.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,IAAI,EAAwB,MAAM,YAAY,CAAC;AA+F7D,eAAO,MAAM,UAAU,EAAE,IAAI,EAe5B,CAAC"}
1
+ {"version":3,"file":"forge.d.ts","sourceRoot":"","sources":["../../src/atoms/forge.tsx"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,IAAI,EAAwB,MAAM,YAAY,CAAC;AAkG7D,eAAO,MAAM,UAAU,EAAE,IAAI,EAe5B,CAAC"}
@@ -22,7 +22,7 @@ const PRCard = ({ events }) => {
22
22
  const pr = events.map(parsePR).find((p) => p !== null) ?? null;
23
23
  if (!pr)
24
24
  return null;
25
- return (_jsxs("div", { className: "flex flex-col gap-1.5 border-b border-border py-3 first:pt-0 last:border-0 last:pb-0", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Badge, { variant: pr.status === 'open' ? 'default' : 'secondary', className: "uppercase text-[10px]", children: pr.status }), _jsx("span", { className: "font-medium text-sm", children: pr.title || '(untitled patch)' })] }), _jsxs("div", { className: "text-xs text-muted-foreground", children: [pr.commitShas.length, " commit", pr.commitShas.length !== 1 ? 's' : '', " \u2192 ", pr.baseBranch] })] }));
25
+ return (_jsxs("div", { className: "flex flex-col gap-1.5 border-b border-border py-3 first:pt-0 last:border-0 last:pb-0", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Badge, { variant: pr.status === 'open' ? 'default' : 'secondary', className: "uppercase text-[10px]", children: pr.status }), _jsx("span", { className: "font-medium text-sm", children: pr.title || '(untitled patch)' })] }), pr.description ? (_jsx("p", { className: "line-clamp-2 text-sm text-muted-foreground", children: pr.description })) : null, _jsxs("div", { className: "text-xs text-muted-foreground", children: [pr.commitShas.length, " commit", pr.commitShas.length !== 1 ? 's' : '', " \u2192 ", pr.baseBranch] })] }));
26
26
  };
27
27
  const CommentThread = ({ events, actions }) => {
28
28
  const comments = events
@@ -1 +1 @@
1
- {"version":3,"file":"forge.js","sourceRoot":"","sources":["../../src/atoms/forge.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"forge.js","sourceRoot":"","sources":["../../src/atoms/forge.tsx"],"names":[],"mappings":"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"}
@@ -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;
@@ -53,6 +66,11 @@ export interface PRMetadata {
53
66
  commitShas: string[];
54
67
  baseBranch: string;
55
68
  status: 'open' | 'applied' | 'closed' | 'draft';
69
+ /**
70
+ * PR body from the `description` tag (`rig pr create --body`). Kept apart
71
+ * from `content`, which is pure `git format-patch` output for `git am`.
72
+ */
73
+ description?: string;
56
74
  }
57
75
  /** Parsed comment metadata from a kind:1622 event. */
58
76
  export interface CommentMetadata {
@@ -68,8 +86,24 @@ export declare function parseIssue(event: NostrEvent): IssueMetadata | null;
68
86
  export declare function parsePR(event: NostrEvent): PRMetadata | null;
69
87
  /** Parse a kind:1622 comment event into CommentMetadata. */
70
88
  export declare function parseComment(event: NostrEvent): CommentMetadata | null;
71
- /** Resolve the status of a PR from status events (kind:1630-1633). */
72
- export declare function resolvePRStatus(prEventId: string, statusEvents: NostrEvent[]): 'open' | 'applied' | 'closed' | 'draft';
73
- /** Resolve the status of an issue from close events (kind:1632). */
74
- 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';
75
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;CACjD;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,CAiB5D;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. */
@@ -83,6 +115,7 @@ export function parsePR(event) {
83
115
  const title = getTagValue(event.tags, 'subject') ?? '';
84
116
  const commitShas = getTagValues(event.tags, 'commit');
85
117
  const baseBranch = getTagValue(event.tags, 'branch') ?? 'main';
118
+ const description = getTagValue(event.tags, 'description');
86
119
  return {
87
120
  eventId: event.id,
88
121
  title,
@@ -92,6 +125,7 @@ export function parsePR(event) {
92
125
  commitShas,
93
126
  baseBranch,
94
127
  status: 'open',
128
+ ...(description !== undefined ? { description } : {}),
95
129
  };
96
130
  }
97
131
  /** Parse a kind:1622 comment event into CommentMetadata. */
@@ -109,17 +143,32 @@ export function parseComment(event) {
109
143
  parentEventId,
110
144
  };
111
145
  }
112
- /** Resolve the status of a PR from status events (kind:1630-1633). */
113
- 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) {
114
159
  const KIND_STATUS_MAP = {
115
160
  1630: 'open',
116
161
  1631: 'applied',
117
162
  1632: 'closed',
118
163
  1633: 'draft',
119
164
  };
165
+ const authors = authorized instanceof Set ? authorized : new Set(authorized);
120
166
  const relevant = statusEvents.filter((evt) => {
121
167
  const eTag = getTagValue(evt.tags, 'e');
122
- 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()));
123
172
  });
124
173
  if (relevant.length === 0)
125
174
  return 'open';
@@ -131,11 +180,19 @@ export function resolvePRStatus(prEventId, statusEvents) {
131
180
  }
132
181
  return KIND_STATUS_MAP[latest.kind] ?? 'open';
133
182
  }
134
- /** Resolve the status of an issue from close events (kind:1632). */
135
- 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);
136
191
  const isClosed = closeEvents.some((evt) => {
137
192
  const eTag = getTagValue(evt.tags, 'e');
138
- return eTag === issueEventId && evt.kind === 1632;
193
+ return (eTag === issueEventId &&
194
+ evt.kind === 1632 &&
195
+ authors.has(evt.pubkey.toLowerCase()));
139
196
  });
140
197
  return isClosed ? 'closed' : 'open';
141
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.1",
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": {