@37signals/basecamp 0.18.0 → 0.20.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 (94) hide show
  1. package/README.md +94 -2
  2. package/dist/client.d.ts +6 -6
  3. package/dist/client.d.ts.map +1 -1
  4. package/dist/client.js +11 -7
  5. package/dist/client.js.map +1 -1
  6. package/dist/download.js +1 -1
  7. package/dist/errors.d.ts +10 -1
  8. package/dist/errors.d.ts.map +1 -1
  9. package/dist/errors.js +42 -13
  10. package/dist/errors.js.map +1 -1
  11. package/dist/generated/metadata.d.ts +1 -2
  12. package/dist/generated/metadata.d.ts.map +1 -1
  13. package/dist/generated/metadata.js +47 -1
  14. package/dist/generated/metadata.js.map +1 -1
  15. package/dist/generated/metadata.ts +48 -3
  16. package/dist/generated/openapi-stripped.json +816 -60
  17. package/dist/generated/path-mapping.d.ts.map +1 -1
  18. package/dist/generated/path-mapping.js +7 -4
  19. package/dist/generated/path-mapping.js.map +1 -1
  20. package/dist/generated/path-mapping.ts +8 -5
  21. package/dist/generated/person-id-sites.d.ts +2 -0
  22. package/dist/generated/person-id-sites.d.ts.map +1 -0
  23. package/dist/generated/person-id-sites.js +689 -0
  24. package/dist/generated/person-id-sites.js.map +1 -0
  25. package/dist/generated/person-id-sites.ts +690 -0
  26. package/dist/generated/schema.d.ts +643 -12
  27. package/dist/generated/services/event-feed.d.ts +92 -0
  28. package/dist/generated/services/event-feed.d.ts.map +1 -0
  29. package/dist/generated/services/event-feed.js +80 -0
  30. package/dist/generated/services/event-feed.js.map +1 -0
  31. package/dist/generated/services/event-feed.ts +153 -0
  32. package/dist/generated/services/gauges.d.ts +7 -3
  33. package/dist/generated/services/gauges.d.ts.map +1 -1
  34. package/dist/generated/services/gauges.js +4 -1
  35. package/dist/generated/services/gauges.js.map +1 -1
  36. package/dist/generated/services/gauges.ts +10 -3
  37. package/dist/generated/services/index.d.ts +1 -1
  38. package/dist/generated/services/index.d.ts.map +1 -1
  39. package/dist/generated/services/index.js +1 -1
  40. package/dist/generated/services/index.js.map +1 -1
  41. package/dist/generated/services/index.ts +1 -1
  42. package/dist/generated/services/lineup.d.ts +13 -0
  43. package/dist/generated/services/lineup.d.ts.map +1 -1
  44. package/dist/generated/services/lineup.js +18 -0
  45. package/dist/generated/services/lineup.js.map +1 -1
  46. package/dist/generated/services/lineup.ts +26 -0
  47. package/dist/index.d.ts +7 -4
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +12 -6
  50. package/dist/index.js.map +1 -1
  51. package/dist/person-id.d.ts +133 -0
  52. package/dist/person-id.d.ts.map +1 -0
  53. package/dist/person-id.js +163 -0
  54. package/dist/person-id.js.map +1 -0
  55. package/dist/retry.d.ts +2 -1
  56. package/dist/retry.d.ts.map +1 -1
  57. package/dist/retry.js +21 -11
  58. package/dist/retry.js.map +1 -1
  59. package/dist/services/base.d.ts +35 -0
  60. package/dist/services/base.d.ts.map +1 -1
  61. package/dist/services/base.js +387 -55
  62. package/dist/services/base.js.map +1 -1
  63. package/dist/services/comments-extensions.d.ts +89 -0
  64. package/dist/services/comments-extensions.d.ts.map +1 -0
  65. package/dist/services/comments-extensions.js +166 -0
  66. package/dist/services/comments-extensions.js.map +1 -0
  67. package/dist/services/mentions.d.ts +255 -0
  68. package/dist/services/mentions.d.ts.map +1 -0
  69. package/dist/services/mentions.js +1431 -0
  70. package/dist/services/mentions.js.map +1 -0
  71. package/dist/services/merge-safe.d.ts +13 -5
  72. package/dist/services/merge-safe.d.ts.map +1 -1
  73. package/dist/services/merge-safe.js +71 -13
  74. package/dist/services/merge-safe.js.map +1 -1
  75. package/dist/services/recordings-extensions.d.ts +354 -0
  76. package/dist/services/recordings-extensions.d.ts.map +1 -0
  77. package/dist/services/recordings-extensions.js +1940 -0
  78. package/dist/services/recordings-extensions.js.map +1 -0
  79. package/package.json +4 -4
  80. package/src/generated/metadata.ts +48 -3
  81. package/src/generated/openapi-stripped.json +816 -60
  82. package/src/generated/path-mapping.ts +8 -5
  83. package/src/generated/person-id-sites.ts +690 -0
  84. package/src/generated/schema.d.ts +643 -12
  85. package/src/generated/services/event-feed.ts +153 -0
  86. package/src/generated/services/gauges.ts +10 -3
  87. package/src/generated/services/index.ts +1 -1
  88. package/src/generated/services/lineup.ts +26 -0
  89. package/dist/generated/services/automation.d.ts +0 -25
  90. package/dist/generated/services/automation.d.ts.map +0 -1
  91. package/dist/generated/services/automation.js +0 -33
  92. package/dist/generated/services/automation.js.map +0 -1
  93. package/dist/generated/services/automation.ts +0 -49
  94. package/src/generated/services/automation.ts +0 -49
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/services/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/services/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * `CommentsService.expandMentions` / `createWithMentions` — posting a comment
3
+ * that mentions people, by id.
4
+ *
5
+ * A mention is a `<bc-attachment>` carrying the person's `attachable_sgid`
6
+ * (see `./mentions.ts`), and only a people read can supply one that BC3 will
7
+ * honour. {@link CommentsService.expandMentions} is the read half alone — it
8
+ * resolves people and returns the expanded content, writing nothing, which is
9
+ * what makes it usable for a Campfire line as well;
10
+ * {@link CommentsService.createWithMentions} composes it with the generated
11
+ * comment write. Neither makes a wire request of its own or mints an operation
12
+ * identity, so hooks see `GetPerson` and `CreateComment` under their own names
13
+ * (SPEC §18 rule 3).
14
+ * They live in `src/services/*-extensions.ts` and are wired in `client.ts`, the
15
+ * placement §18 rule 5 designates for TypeScript.
16
+ */
17
+ import type { BasecampHooks } from "../hooks.js";
18
+ import { CommentsService as GeneratedCommentsService } from "../generated/services/comments.js";
19
+ import type { Comment } from "../generated/services/comments.js";
20
+ import type { PeopleService } from "../generated/services/people.js";
21
+ import type { RawClient } from "./base.js";
22
+ /**
23
+ * The generated read the mention composites need, as the client exposes it.
24
+ *
25
+ * Narrow on purpose: the one authoritative source of an `attachable_sgid` is
26
+ * `people.get`, and nothing else here reaches the wire.
27
+ */
28
+ export interface MentionPeopleSource {
29
+ readonly people: Pick<PeopleService, "get">;
30
+ }
31
+ /**
32
+ * `CommentsService` with the hand-written mention composites on top of the
33
+ * generated surface (`get`, `list`, `create`, `update`, ...).
34
+ */
35
+ export declare class CommentsService extends GeneratedCommentsService {
36
+ #private;
37
+ constructor(client: RawClient, hooks?: BasecampHooks, fetchPage?: (url: string) => Promise<Response>, maxPages?: number, authenticatedFetch?: (url: string, init: RequestInit) => Promise<Response>, baseUrl?: string, sources?: () => MentionPeopleSource);
38
+ /**
39
+ * Content that mentions each of the given people, for posting as a comment —
40
+ * or, since the markup is the same, as a rich-text Campfire line.
41
+ *
42
+ * Every requested id is read through `people.get` for its `attachable_sgid` —
43
+ * one read per distinct id, always: an sgid already in the content is
44
+ * unsigned and cannot prove the person is mentioned, so it never stands in
45
+ * for the read — and the mentions are placed as `withMentions` places them,
46
+ * which adds nothing for a person whose exact `attachable_sgid` the content
47
+ * already carries. A person read that fails — an id that is not a person in
48
+ * this account, a 403 — fails the expansion; nothing is posted on a partial
49
+ * mention list.
50
+ *
51
+ * The rendered mentions round-trip: `mentionedPersonIds` on the returned
52
+ * content reports every id passed here, and `recordings.summarize` reports
53
+ * them on the comment once posted.
54
+ *
55
+ * @param content - The comment body, in HTML.
56
+ * @param personIds - The people to mention. Order is preserved; repeats cost
57
+ * one read and produce one mention.
58
+ * @returns The content with the mentions placed.
59
+ * @throws {BasecampError} `usage` for a non-positive id, or the person read's
60
+ * own error. A plain `BasecampError` from that read is re-raised with the
61
+ * mention it was resolving named in its message; a subclass or a transport
62
+ * rejection is re-raised untouched, so its class and payload survive.
63
+ *
64
+ * @example
65
+ * ```ts
66
+ * const body = await client.comments.expandMentions("<div>On it.</div>", [1049715915]);
67
+ * ```
68
+ */
69
+ expandMentions(content: string, personIds: readonly number[]): Promise<string>;
70
+ /**
71
+ * Creates a comment on a recording whose content mentions the given people:
72
+ * {@link expandMentions}, then `create`. The mention reads happen before the
73
+ * write, so a failed lookup posts nothing.
74
+ *
75
+ * @param recordingId - The recording to comment on.
76
+ * @param content - The comment body, in HTML.
77
+ * @param personIds - The people to mention.
78
+ * @returns The created Comment.
79
+ * @throws {BasecampError} `usage` when the content is empty, or the person
80
+ * read's own error.
81
+ *
82
+ * @example
83
+ * ```ts
84
+ * await client.comments.createWithMentions(1069479351, "<div>On it.</div>", [1049715915]);
85
+ * ```
86
+ */
87
+ createWithMentions(recordingId: number, content: string, personIds?: readonly number[]): Promise<Comment>;
88
+ }
89
+ //# sourceMappingURL=comments-extensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comments-extensions.d.ts","sourceRoot":"","sources":["../../src/services/comments-extensions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAAE,eAAe,IAAI,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAChG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAEjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAG3C;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;CAC7C;AAiCD;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,wBAAwB;;gBAQzD,MAAM,EAAE,SAAS,EACjB,KAAK,CAAC,EAAE,aAAa,EACrB,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,EAC9C,QAAQ,CAAC,EAAE,MAAM,EACjB,kBAAkB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,EAC1E,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,MAAM,mBAAmB;IAMrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IA0BpF;;;;;;;;;;;;;;;;OAgBG;IACG,kBAAkB,CACtB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,SAAS,MAAM,EAAO,GAChC,OAAO,CAAC,OAAO,CAAC;CA2BpB"}
@@ -0,0 +1,166 @@
1
+ /**
2
+ * `CommentsService.expandMentions` / `createWithMentions` — posting a comment
3
+ * that mentions people, by id.
4
+ *
5
+ * A mention is a `<bc-attachment>` carrying the person's `attachable_sgid`
6
+ * (see `./mentions.ts`), and only a people read can supply one that BC3 will
7
+ * honour. {@link CommentsService.expandMentions} is the read half alone — it
8
+ * resolves people and returns the expanded content, writing nothing, which is
9
+ * what makes it usable for a Campfire line as well;
10
+ * {@link CommentsService.createWithMentions} composes it with the generated
11
+ * comment write. Neither makes a wire request of its own or mints an operation
12
+ * identity, so hooks see `GetPerson` and `CreateComment` under their own names
13
+ * (SPEC §18 rule 3).
14
+ * They live in `src/services/*-extensions.ts` and are wired in `client.ts`, the
15
+ * placement §18 rule 5 designates for TypeScript.
16
+ */
17
+ import { BasecampError, Errors } from "../errors.js";
18
+ import { CommentsService as GeneratedCommentsService } from "../generated/services/comments.js";
19
+ import { withMentions } from "./mentions.js";
20
+ /**
21
+ * Re-raises a person read's failure with the mention it was resolving.
22
+ *
23
+ * Go wraps with `%w`, which adds the context AND keeps every wrapped type
24
+ * reachable through `errors.As`. JavaScript has no such operator: a new error
25
+ * carries the context but not the original's class, and the original carries
26
+ * its class but not the context. Identity wins, because it is the half a caller
27
+ * can act on — `PeopleConfirmationRequiredError` carries a `people` list that a
28
+ * flattened copy would drop, and a transport rejection is matched on its own
29
+ * shape.
30
+ *
31
+ * So the context is added only in the case where nothing is lost by minting a
32
+ * new error: the plain `BasecampError` the people read actually produces, whose
33
+ * every field is copied across. A subclass or a non-`BasecampError` is re-raised
34
+ * untouched, and `expandMentions` documents that.
35
+ */
36
+ function mentionLookupFailed(personId, err) {
37
+ // `constructor`, not `instanceof`: a subclass passes `instanceof` and would
38
+ // be flattened into its base by the copy below.
39
+ if (!(err instanceof BasecampError) || err.constructor !== BasecampError)
40
+ return err;
41
+ return new BasecampError(err.code, `resolving mention for person ${personId}: ${err.message}`, {
42
+ hint: err.hint,
43
+ httpStatus: err.httpStatus,
44
+ retryable: err.retryable,
45
+ retryAfter: err.retryAfter,
46
+ requestId: err.requestId,
47
+ fieldErrors: err.fieldErrors,
48
+ cause: err,
49
+ });
50
+ }
51
+ /**
52
+ * `CommentsService` with the hand-written mention composites on top of the
53
+ * generated surface (`get`, `list`, `create`, `update`, ...).
54
+ */
55
+ export class CommentsService extends GeneratedCommentsService {
56
+ #sources;
57
+ // Preserve BaseService's full positional signature, then append the people
58
+ // source — the shape uploads-extensions established, so an existing
59
+ // `new CommentsService(client, hooks, fetchPage, maxPages)` call keeps
60
+ // working and the mention methods explain themselves when it was not wired.
61
+ constructor(client, hooks, fetchPage, maxPages, authenticatedFetch, baseUrl, sources) {
62
+ super(client, hooks, fetchPage, maxPages, authenticatedFetch, baseUrl);
63
+ this.#sources = sources;
64
+ }
65
+ /**
66
+ * Content that mentions each of the given people, for posting as a comment —
67
+ * or, since the markup is the same, as a rich-text Campfire line.
68
+ *
69
+ * Every requested id is read through `people.get` for its `attachable_sgid` —
70
+ * one read per distinct id, always: an sgid already in the content is
71
+ * unsigned and cannot prove the person is mentioned, so it never stands in
72
+ * for the read — and the mentions are placed as `withMentions` places them,
73
+ * which adds nothing for a person whose exact `attachable_sgid` the content
74
+ * already carries. A person read that fails — an id that is not a person in
75
+ * this account, a 403 — fails the expansion; nothing is posted on a partial
76
+ * mention list.
77
+ *
78
+ * The rendered mentions round-trip: `mentionedPersonIds` on the returned
79
+ * content reports every id passed here, and `recordings.summarize` reports
80
+ * them on the comment once posted.
81
+ *
82
+ * @param content - The comment body, in HTML.
83
+ * @param personIds - The people to mention. Order is preserved; repeats cost
84
+ * one read and produce one mention.
85
+ * @returns The content with the mentions placed.
86
+ * @throws {BasecampError} `usage` for a non-positive id, or the person read's
87
+ * own error. A plain `BasecampError` from that read is re-raised with the
88
+ * mention it was resolving named in its message; a subclass or a transport
89
+ * rejection is re-raised untouched, so its class and payload survive.
90
+ *
91
+ * @example
92
+ * ```ts
93
+ * const body = await client.comments.expandMentions("<div>On it.</div>", [1049715915]);
94
+ * ```
95
+ */
96
+ async expandMentions(content, personIds) {
97
+ if (personIds.length === 0)
98
+ return content;
99
+ const people = [];
100
+ const seen = new Set();
101
+ for (const id of personIds) {
102
+ // The Go reference validates here too — inside the loop, not ahead of it
103
+ // (go/pkg/basecamp/comments.go, ExpandMentions) — so a bad id after a good
104
+ // one costs the good one's read before it raises. Kept identical
105
+ // deliberately; the invariant that matters is unaffected either way, since
106
+ // every read happens before the write and a refused expansion posts
107
+ // nothing.
108
+ if (!Number.isInteger(id) || id <= 0) {
109
+ throw Errors.usage(`invalid mention person id ${id}`);
110
+ }
111
+ if (seen.has(id))
112
+ continue;
113
+ seen.add(id);
114
+ try {
115
+ people.push(await this.#reads.people.get(id));
116
+ }
117
+ catch (err) {
118
+ throw mentionLookupFailed(id, err);
119
+ }
120
+ }
121
+ return withMentions(content, people);
122
+ }
123
+ /**
124
+ * Creates a comment on a recording whose content mentions the given people:
125
+ * {@link expandMentions}, then `create`. The mention reads happen before the
126
+ * write, so a failed lookup posts nothing.
127
+ *
128
+ * @param recordingId - The recording to comment on.
129
+ * @param content - The comment body, in HTML.
130
+ * @param personIds - The people to mention.
131
+ * @returns The created Comment.
132
+ * @throws {BasecampError} `usage` when the content is empty, or the person
133
+ * read's own error.
134
+ *
135
+ * @example
136
+ * ```ts
137
+ * await client.comments.createWithMentions(1069479351, "<div>On it.</div>", [1049715915]);
138
+ * ```
139
+ */
140
+ async createWithMentions(recordingId, content, personIds = []) {
141
+ // The TYPE, not just the truthiness, and of the value that actually goes
142
+ // out. `!content` is false for `{}` and for `[]`, so a caller in plain
143
+ // JavaScript could pass an object, have it sail past the guard, and reach
144
+ // the mention walk — which does string work and throws a raw TypeError, or,
145
+ // with no mentions requested, posts a body the reference cannot produce:
146
+ // Go's signature takes a string, so neither shape exists there. Checking a
147
+ // coerced copy would be the same defect one step later, the guard answering
148
+ // a question about a value that never leaves the method.
149
+ if (typeof content !== "string") {
150
+ throw Errors.usage("comment content must be a string");
151
+ }
152
+ if (content === "")
153
+ throw Errors.usage("comment content is required");
154
+ const expanded = await this.expandMentions(content, personIds);
155
+ return this.create(recordingId, { content: expanded });
156
+ }
157
+ /** The people source, or a usage error naming how to obtain a wired service. */
158
+ get #reads() {
159
+ const sources = this.#sources?.();
160
+ if (sources === undefined) {
161
+ throw Errors.usage("comments.expandMentions composes the people read — obtain CommentsService via createBasecampClient(...).comments rather than instantiating it directly");
162
+ }
163
+ return sources;
164
+ }
165
+ }
166
+ //# sourceMappingURL=comments-extensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comments-extensions.js","sourceRoot":"","sources":["../../src/services/comments-extensions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,255 @@
1
+ /**
2
+ * Mention helpers over Basecamp rich text.
3
+ *
4
+ * A mention in Basecamp rich text is a `<bc-attachment>` whose `sgid` attribute
5
+ * is the mentioned person's `attachable_sgid` (doc/api/sections/rich_text.md,
6
+ * "Inserting a mention"). BC3 renders the same tag back with
7
+ * `content-type="application/vnd.basecamp.mention"` and an avatar figure inside
8
+ * it, but the sgid is the only part of the markup that names the person on both
9
+ * the write and the read side, so every helper here works from it. The module
10
+ * exports four, not the two this list carried while it grew:
11
+ *
12
+ * - {@link mentionedPersonIds} reads the person ids a rich text names, by
13
+ * decoding the sgid of every `<bc-attachment>` and keeping the ones that
14
+ * point at a Person.
15
+ * - {@link personIdFromSGID} is the decode under it, for a single sgid.
16
+ * - {@link mentionMarkup} writes the tag for a person, from their
17
+ * `attachable_sgid`.
18
+ * - {@link withMentions} places those tags inside a rich text's first block,
19
+ * skipping a person the content already mentions by that exact sgid.
20
+ *
21
+ * {@link unescapeEntities} and {@link namedEntityNames} are exported for the
22
+ * differential tests and are not part of the SDK's surface.
23
+ *
24
+ * An `attachable_sgid` is a Rails SignedGlobalID: a base64 payload, then `--`,
25
+ * then an HMAC only BC3 can verify. The payload is an envelope carrying the
26
+ * global id — `gid://bc3/Person/1049715915` — as a string, and that string is
27
+ * what these helpers read. They do not (and cannot) verify the signature; what
28
+ * they decode is the same person id BC3 renders into the mention's avatar, read
29
+ * off content the API already served, and a caller that needs the id verified
30
+ * reads the person back through `people.get`.
31
+ *
32
+ * That sets a trust boundary between the two sides. READING —
33
+ * {@link mentionedPersonIds}, {@link personIdFromSGID} — describes what a text
34
+ * says it mentions, and unsigned is fine for description: the ids are reported,
35
+ * not acted on as proof. WRITING — {@link withMentions},
36
+ * `CommentsService.expandMentions` — never treats an unsigned id as proof that
37
+ * a valid mention already exists: a forged or stale sgid in caller-supplied
38
+ * content naming the right id would otherwise make the writer skip the
39
+ * authoritative people read and post a tag Basecamp will not honour, so the
40
+ * person is silently not mentioned. `CommentsService.expandMentions` therefore
41
+ * resolves every requested person through `people.get` and deduplicates only
42
+ * against the exact `attachable_sgid` string that read returned. The pure
43
+ * helpers beneath it — {@link withMentions}, {@link mentionMarkup} — take
44
+ * Person values the caller built and can only check that an sgid is
45
+ * well-formed and names the person it is given, never that it is authentic:
46
+ * hand them people the API returned, not people assembled from content. Do not
47
+ * reuse the read-side helpers to decide whether a write can be skipped.
48
+ *
49
+ * The markup is read as BC3 serves it: a sanitized tree of the tags
50
+ * doc/api/sections/rich_text.md allows, which has no raw-text elements. The tag
51
+ * walk skips comments and quoted attribute values but does not model `<script>`
52
+ * or `<style>` content, which BC3 strips on write; a caller reading mentions
53
+ * out of content it authored itself should not put a `bc-attachment` inside
54
+ * such an element and expect it ignored.
55
+ *
56
+ * The envelope is decoded structurally, never searched as bytes, so a Person
57
+ * gid that merely appears inside some other value — a Document gid built from
58
+ * one, a purpose string that looks like one — is not a mention, and the
59
+ * envelope's purpose must be `attachable`, the one BC3 accepts in rich text.
60
+ * Three envelopes are read: Rails' current Marshal layout
61
+ * `{"_rails" => {"data" => gid, "pur" => purpose}}`, the older Marshal layout
62
+ * `{"gid" => gid, "purpose" => …, "expires_at" => …}`, and the JSON spelling of
63
+ * either, which Rails' JSON message serializer emits.
64
+ */
65
+ import type { Person } from "../generated/services/people.js";
66
+ /**
67
+ * The ids of the people a rich text mentions: the Person named by the sgid of
68
+ * each `<bc-attachment>`, in document order, with repeats removed. Attachments
69
+ * that are not mentions — files, images, embeds — are skipped, as is any sgid
70
+ * that does not decode to a Person.
71
+ *
72
+ * This is the read side: a description of what the text says, from sgids whose
73
+ * signatures cannot be checked here. Report it; do not treat an id in it as
74
+ * proof that a valid mention exists (see the trust boundary above).
75
+ *
76
+ * Every `<bc-attachment>` in the text counts, including one inside a
77
+ * `<blockquote>`: BC3 notifies quoted mentions too, so the read matches what
78
+ * the server does with the write.
79
+ *
80
+ * An id a `number` cannot carry — a valid `int64` past
81
+ * `Number.MAX_SAFE_INTEGER` — is SKIPPED, like any other sgid this cannot
82
+ * resolve to a person.
83
+ *
84
+ * That is a real under-report, and it was briefly a throw for that reason: the
85
+ * count is the whole answer here, and dropping an id silently makes a short
86
+ * list indistinguishable from a genuinely shorter text, on a value that feeds
87
+ * `mentioned_person_ids` and decides who gets notified. Measured against the
88
+ * reference, a text naming `7, 9007199254740991, 9007199254740992,
89
+ * 9007199254740993, 9223372036854775807, 0009223372036854775807` gives Go 5 ids
90
+ * and gives this 2.
91
+ *
92
+ * THE THROW WAS WORSE, AND NOT BY A LITTLE. This function's input is rich text
93
+ * off the wire, and `recordingsExtensions.projectRecording` calls it unguarded
94
+ * on server-returned `content`. The sgid's signature is never verified here —
95
+ * `globalIDFromSGID` takes a bare unsigned envelope — so the id inside it is
96
+ * written by whoever wrote the comment. A throw therefore handed any author of
97
+ * a `<bc-attachment>` a way to fail `recordings.summarize()` outright: one
98
+ * crafted mention, and every other mention, the content, the title and the
99
+ * creator all go with it. Refusing to name one person is a smaller loss than
100
+ * refusing to read the recording, and the choice is not the SDK's to make on
101
+ * the caller's behalf when an adversary picks the input.
102
+ *
103
+ * It is also the reference's own failure mode: `MentionedPersonIDs`
104
+ * (`go/pkg/basecamp/mentions.go:82-92`) `continue`s on every sgid
105
+ * `PersonIDFromSGID` declines, and never fails the text. Go simply has fewer
106
+ * ids it must decline, because an `int64` fits its return type.
107
+ *
108
+ * `person-id.ts` argues the same trade the same way for the normalizer — one
109
+ * unrepresentable id must not discard every other record in the body — and this
110
+ * site is the one where the input is untrusted by construction, so it is the
111
+ * last place that argument should have been abandoned. The residual is recorded
112
+ * in SPEC §10 as an availability trade-off rather than hidden.
113
+ *
114
+ * A caller that must not under-report reads {@link readMentions} instead, which
115
+ * returns the same list alongside the ids it could not name. That is the
116
+ * distinguishable signal the skip would otherwise lack, and
117
+ * `recordings.summarize()` surfaces it as `unnameable_mention_ids`.
118
+ *
119
+ */
120
+ export declare function mentionedPersonIds(richText: string): number[];
121
+ /**
122
+ * The mentions a rich text names, and the ones it names that cannot be reported
123
+ * as numbers.
124
+ *
125
+ * {@link mentionedPersonIds} is `readMentions(text).ids`. This is the same walk
126
+ * with the skipped ids kept rather than dropped, so a caller that must not
127
+ * under-report can tell "this text mentions two people" from "this text mentions
128
+ * two people I can name and one I cannot".
129
+ *
130
+ * `unnameable` holds each id as its CANONICAL DECIMAL STRING — no leading zeros,
131
+ * what `strconv.ParseInt` would return — in document order, deduplicated on that
132
+ * value the way the reference deduplicates on the `int64`. So `0009223372036854775807`
133
+ * and `9223372036854775807` are one entry, and `ids.length + unnameable.length`
134
+ * is the count the reference gives. A string because that is the whole point:
135
+ * these are exactly the ids no `number` can carry, so reporting them as numbers
136
+ * would round them into a neighbouring person — the failure this refuses to make.
137
+ * They are real ids, not malformed ones: an sgid that does not decode, or names
138
+ * something other than a Person, or carries a magnitude past `int64`, is not a
139
+ * mention in the reference either and appears in neither list.
140
+ *
141
+ * Nothing here verifies the sgid's signature, so an id in `unnameable` is as
142
+ * untrusted as one in `ids` — see the trust boundary above.
143
+ */
144
+ export declare function readMentions(richText: string): {
145
+ ids: number[];
146
+ unnameable: string[];
147
+ };
148
+ /**
149
+ * The Person id an `attachable_sgid` names, or `undefined` when the sgid does
150
+ * not decode, or names something other than a Person (a file attachment's sgid
151
+ * names an `ActiveStorage::Blob`).
152
+ *
153
+ * This reads the id out of the sgid's payload; it does not verify the sgid's
154
+ * signature, which only BC3 can. It is a read-side helper: never use its answer
155
+ * to decide that a write may skip the authoritative people read (see the trust
156
+ * boundary in the module comment).
157
+ */
158
+ export declare function personIdFromSGID(sgid: string): number | undefined;
159
+ /**
160
+ * The names in {@link NAMED_ENTITIES}, exposed so a test can hold the table to
161
+ * the shape {@link unescapeEntity}'s search bound assumes: `[A-Za-z0-9]+` with
162
+ * an optional `;`. A future row that broke that — a name with a hyphen, say —
163
+ * would silently stop being findable rather than fail to compile.
164
+ */
165
+ export declare function namedEntityNames(): string[];
166
+ /**
167
+ * Decodes the character references an HTML attribute value may carry.
168
+ *
169
+ * Exported for the test that pins the scanner against Go's. It is NOT part of
170
+ * the package surface — `src/index.ts` does not re-export it — and it is
171
+ * exported at all because a test asserting only "this names nobody" is
172
+ * satisfied by any failure that also names nobody, including a decoder that
173
+ * does nothing. Pinning the decoded string is what makes the row fail under the
174
+ * regression it is written to catch.
175
+ */
176
+ export declare function unescapeEntities(value: string): string;
177
+ /**
178
+ * The `<bc-attachment>` that mentions a person, rendered from their
179
+ * `attachable_sgid` — the write-side form in doc/api/sections/rich_text.md,
180
+ * which BC3 expands into the avatar figure on read.
181
+ *
182
+ * It throws when the person carries no `attachable_sgid`, which is the case for
183
+ * a Person projection that came from somewhere other than a people read (a
184
+ * webhook payload, say), and when the sgid does not name the person it is
185
+ * given. That is all it can check: it cannot verify the signature, so the
186
+ * Person must come from the API — a `people.get`, a recording's creator or
187
+ * assignees — not be assembled from an sgid found in content.
188
+ *
189
+ * @throws {BasecampError} `usage` when the person cannot be mentioned.
190
+ */
191
+ export declare function mentionMarkup(person: Person): string;
192
+ /**
193
+ * The id Go reads off a person the API served, for comparing against the one an
194
+ * sgid names.
195
+ *
196
+ * `Person.Id` is the single `FlexibleInt64` in the generated model, so a person
197
+ * id that arrives as a JSON STRING of digits *is* that number in Go — with or
198
+ * without `personable_type`, which is the gap this exists to close. The SDK's
199
+ * own `normalizePersonIds` rewrites a string id only when `personable_type` is
200
+ * present, so a body without it reaches here still carrying `"1049715914"`, and
201
+ * comparing that to the number the sgid names refused a person Go mentions.
202
+ *
203
+ * Measured against the reference, not inferred: `"1049715914"` and `"+7"` are
204
+ * their numbers (`strconv.ParseInt` takes the sign), `"basecamp"`, `" 7"` and
205
+ * `"7.0"` are all 0 — Go's non-numeric sentinel, which is what this returns for
206
+ * them because it is what Go reads. No sgid can match it: `PersonIDFromSGID`
207
+ * refuses a non-positive id, so every sentinel is a refusal by way of a zero
208
+ * that nothing equals. `"9223372036854775808"` is the one string that fails Go's decode
209
+ * outright and takes the people read with it; nothing at this layer can fail a
210
+ * read that already succeeded, so it reads as unreadable and the mention is
211
+ * refused — a refusal either way, by a different route.
212
+ *
213
+ * The grammar itself is {@link scanPersonId}, shared with the pre-decode
214
+ * normalizer in `base.ts` so the two cannot answer differently about the same
215
+ * string. Reading `[+-]?\d+` off a regex first and only then checking the
216
+ * magnitude was the remaining defect here: it puts the whole-string test BEFORE
217
+ * the magnitude check, where Go's scan interleaves them. `"18446744073709551616x"`
218
+ * therefore read `0` — the SYSTEM ACTOR — where Go, which overflows u64 before
219
+ * it ever reaches the `x`, raises a range error and fails the read. Its
220
+ * neighbour `"18446744073709551615x"` really is a syntax error and really does
221
+ * read `0`. One digit apart, opposite verdicts; only a scan in Go's order gets
222
+ * both.
223
+ *
224
+ * Exported for `tests/services/mentions.test.ts`, which pins the corpus against
225
+ * this function rather than against `mentionMarkup`: the two refusals are
226
+ * INDISTINGUISHABLE through the public path, since `0` and `undefined` both
227
+ * refuse the mention, so a test that could only see the verdict could not see
228
+ * the defect above. It is not re-exported from `index.ts` and is not public API.
229
+ */
230
+ export declare function personIdValue(value: unknown): number | undefined;
231
+ /**
232
+ * Content that mentions each of the given people, for posting as a comment or a
233
+ * Campfire line.
234
+ *
235
+ * A person whose exact `attachable_sgid` the content already carries is left
236
+ * alone, so passing the same person twice — or a person the author already
237
+ * mentioned with that sgid — never duplicates the mention; the rest are added
238
+ * at the start of the content, inside its first `<p>` or `<div>` when it opens
239
+ * with one, so they render on the first line rather than as a block of their
240
+ * own.
241
+ *
242
+ * This is the write side, and it deduplicates on the sgid string alone, never
243
+ * on the person id an existing tag's sgid decodes to: that id is unsigned, and
244
+ * a forged or stale tag naming the right person must not stand in for the real
245
+ * mention (see the trust boundary in the module comment). Every person needs
246
+ * their own `attachable_sgid`, and it must be one the API returned: this helper
247
+ * can check that an sgid is well-formed and names the person, not that it is
248
+ * authentic (see {@link mentionMarkup}). The account-bound
249
+ * `CommentsService.expandMentions` resolves ids to people first and is the
250
+ * entry point that carries that guarantee.
251
+ *
252
+ * @throws {BasecampError} `usage` when a person cannot be mentioned.
253
+ */
254
+ export declare function withMentions(content: string, people: readonly Person[]): string;
255
+ //# sourceMappingURL=mentions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mentions.d.ts","sourceRoot":"","sources":["../../src/services/mentions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAM9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAE7D;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG;IAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,CAwBtF;AA8PD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGjE;AAoTD;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAE3C;AAkHD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAYtD;AAiVD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAuCpD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAUhE;AAyED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAiB/E"}