@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.
- package/README.md +94 -2
- package/dist/client.d.ts +6 -6
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +11 -7
- package/dist/client.js.map +1 -1
- package/dist/download.js +1 -1
- package/dist/errors.d.ts +10 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +42 -13
- package/dist/errors.js.map +1 -1
- package/dist/generated/metadata.d.ts +1 -2
- package/dist/generated/metadata.d.ts.map +1 -1
- package/dist/generated/metadata.js +47 -1
- package/dist/generated/metadata.js.map +1 -1
- package/dist/generated/metadata.ts +48 -3
- package/dist/generated/openapi-stripped.json +816 -60
- package/dist/generated/path-mapping.d.ts.map +1 -1
- package/dist/generated/path-mapping.js +7 -4
- package/dist/generated/path-mapping.js.map +1 -1
- package/dist/generated/path-mapping.ts +8 -5
- package/dist/generated/person-id-sites.d.ts +2 -0
- package/dist/generated/person-id-sites.d.ts.map +1 -0
- package/dist/generated/person-id-sites.js +689 -0
- package/dist/generated/person-id-sites.js.map +1 -0
- package/dist/generated/person-id-sites.ts +690 -0
- package/dist/generated/schema.d.ts +643 -12
- package/dist/generated/services/event-feed.d.ts +92 -0
- package/dist/generated/services/event-feed.d.ts.map +1 -0
- package/dist/generated/services/event-feed.js +80 -0
- package/dist/generated/services/event-feed.js.map +1 -0
- package/dist/generated/services/event-feed.ts +153 -0
- package/dist/generated/services/gauges.d.ts +7 -3
- package/dist/generated/services/gauges.d.ts.map +1 -1
- package/dist/generated/services/gauges.js +4 -1
- package/dist/generated/services/gauges.js.map +1 -1
- package/dist/generated/services/gauges.ts +10 -3
- package/dist/generated/services/index.d.ts +1 -1
- package/dist/generated/services/index.d.ts.map +1 -1
- package/dist/generated/services/index.js +1 -1
- package/dist/generated/services/index.js.map +1 -1
- package/dist/generated/services/index.ts +1 -1
- package/dist/generated/services/lineup.d.ts +13 -0
- package/dist/generated/services/lineup.d.ts.map +1 -1
- package/dist/generated/services/lineup.js +18 -0
- package/dist/generated/services/lineup.js.map +1 -1
- package/dist/generated/services/lineup.ts +26 -0
- package/dist/index.d.ts +7 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -6
- package/dist/index.js.map +1 -1
- package/dist/person-id.d.ts +133 -0
- package/dist/person-id.d.ts.map +1 -0
- package/dist/person-id.js +163 -0
- package/dist/person-id.js.map +1 -0
- package/dist/retry.d.ts +2 -1
- package/dist/retry.d.ts.map +1 -1
- package/dist/retry.js +21 -11
- package/dist/retry.js.map +1 -1
- package/dist/services/base.d.ts +35 -0
- package/dist/services/base.d.ts.map +1 -1
- package/dist/services/base.js +387 -55
- package/dist/services/base.js.map +1 -1
- package/dist/services/comments-extensions.d.ts +89 -0
- package/dist/services/comments-extensions.d.ts.map +1 -0
- package/dist/services/comments-extensions.js +166 -0
- package/dist/services/comments-extensions.js.map +1 -0
- package/dist/services/mentions.d.ts +255 -0
- package/dist/services/mentions.d.ts.map +1 -0
- package/dist/services/mentions.js +1431 -0
- package/dist/services/mentions.js.map +1 -0
- package/dist/services/merge-safe.d.ts +13 -5
- package/dist/services/merge-safe.d.ts.map +1 -1
- package/dist/services/merge-safe.js +71 -13
- package/dist/services/merge-safe.js.map +1 -1
- package/dist/services/recordings-extensions.d.ts +354 -0
- package/dist/services/recordings-extensions.d.ts.map +1 -0
- package/dist/services/recordings-extensions.js +1940 -0
- package/dist/services/recordings-extensions.js.map +1 -0
- package/package.json +4 -4
- package/src/generated/metadata.ts +48 -3
- package/src/generated/openapi-stripped.json +816 -60
- package/src/generated/path-mapping.ts +8 -5
- package/src/generated/person-id-sites.ts +690 -0
- package/src/generated/schema.d.ts +643 -12
- package/src/generated/services/event-feed.ts +153 -0
- package/src/generated/services/gauges.ts +10 -3
- package/src/generated/services/index.ts +1 -1
- package/src/generated/services/lineup.ts +26 -0
- package/dist/generated/services/automation.d.ts +0 -25
- package/dist/generated/services/automation.d.ts.map +0 -1
- package/dist/generated/services/automation.js +0 -33
- package/dist/generated/services/automation.js.map +0 -1
- package/dist/generated/services/automation.ts +0 -49
- package/src/generated/services/automation.ts +0 -49
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mentions.js","sourceRoot":"","sources":["../../src/services/mentions.ts"],"names":[],"mappings":"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"}
|
|
@@ -151,14 +151,22 @@ export declare function writableBoolean(body: Record<string, unknown>, key: stri
|
|
|
151
151
|
* The analogue of {@link writableString} for the ID-list fields. The `.map()`
|
|
152
152
|
* it replaces (`(body[key] ?? []).map((p) => p.id)`) has three ways to go wrong
|
|
153
153
|
* on malformed data: a non-array has no `.map` (a raw `TypeError`), a
|
|
154
|
-
* non-object element yields `undefined`, and a
|
|
154
|
+
* non-object element yields `undefined`, and a wrong-typed `id` rides through
|
|
155
155
|
* verbatim into the full-replace PUT — the same corruption as a wrong-typed
|
|
156
156
|
* string, one level down.
|
|
157
157
|
*
|
|
158
|
-
*
|
|
159
|
-
*
|
|
160
|
-
*
|
|
161
|
-
*
|
|
158
|
+
* What it must NOT do is refuse an id the reference accepts. A person id is the
|
|
159
|
+
* one field the reference decodes flexibly (`Person.Id` is
|
|
160
|
+
* `types.FlexibleInt64`), and its projection appends what that produced with no
|
|
161
|
+
* filter, `0` included. So a STRING id is read by the shared `ParseInt` scan,
|
|
162
|
+
* an absent id is `0` and a `null` element is `0`; the per-branch comments
|
|
163
|
+
* below give the reasons.
|
|
164
|
+
*
|
|
165
|
+
* Two residuals are JavaScript's, not choices this could make differently: a
|
|
166
|
+
* number past 2^53 is refused (`Number.isSafeInteger`) rather than written as a
|
|
167
|
+
* rounded, different person's id, where the reference reads it; and a JSON
|
|
168
|
+
* number spelled `1024.0` or `1e3` is accepted, where the reference refuses it,
|
|
169
|
+
* because `JSON.parse` has already made it an integer.
|
|
162
170
|
*/
|
|
163
171
|
export declare function writableIdList(body: Record<string, unknown>, key: string, opts: {
|
|
164
172
|
record: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-safe.d.ts","sourceRoot":"","sources":["../../src/services/merge-safe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAAgC,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"merge-safe.d.ts","sourceRoot":"","sources":["../../src/services/merge-safe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAAgC,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAOhF;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQpD;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,aAAa,CAE9E;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,OAAO,EACb,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC1D,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CASzB;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACvC,MAAM,CAUR;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACvC,MAAM,CAUR;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACvC,OAAO,CAgBT;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACvC,OAAO,CAIT;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACvC,MAAM,EAAE,CAwEV"}
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
* intended end state for all of them.
|
|
32
32
|
*/
|
|
33
33
|
import { Errors, truncateErrorMessage } from "../errors.js";
|
|
34
|
+
import { personIdNumber, scanPersonId } from "../person-id.js";
|
|
34
35
|
const resendHint = (escape) => "The merge-safe update/edit resend this field verbatim, so a coerced or empty value " +
|
|
35
36
|
`would overwrite the current one. Use ${escape} to write the record deliberately.`;
|
|
36
37
|
/**
|
|
@@ -184,14 +185,22 @@ export function writableBoolean(body, key, opts) {
|
|
|
184
185
|
* The analogue of {@link writableString} for the ID-list fields. The `.map()`
|
|
185
186
|
* it replaces (`(body[key] ?? []).map((p) => p.id)`) has three ways to go wrong
|
|
186
187
|
* on malformed data: a non-array has no `.map` (a raw `TypeError`), a
|
|
187
|
-
* non-object element yields `undefined`, and a
|
|
188
|
+
* non-object element yields `undefined`, and a wrong-typed `id` rides through
|
|
188
189
|
* verbatim into the full-replace PUT — the same corruption as a wrong-typed
|
|
189
190
|
* string, one level down.
|
|
190
191
|
*
|
|
191
|
-
*
|
|
192
|
-
*
|
|
193
|
-
*
|
|
194
|
-
*
|
|
192
|
+
* What it must NOT do is refuse an id the reference accepts. A person id is the
|
|
193
|
+
* one field the reference decodes flexibly (`Person.Id` is
|
|
194
|
+
* `types.FlexibleInt64`), and its projection appends what that produced with no
|
|
195
|
+
* filter, `0` included. So a STRING id is read by the shared `ParseInt` scan,
|
|
196
|
+
* an absent id is `0` and a `null` element is `0`; the per-branch comments
|
|
197
|
+
* below give the reasons.
|
|
198
|
+
*
|
|
199
|
+
* Two residuals are JavaScript's, not choices this could make differently: a
|
|
200
|
+
* number past 2^53 is refused (`Number.isSafeInteger`) rather than written as a
|
|
201
|
+
* rounded, different person's id, where the reference reads it; and a JSON
|
|
202
|
+
* number spelled `1024.0` or `1e3` is accepted, where the reference refuses it,
|
|
203
|
+
* because `JSON.parse` has already made it an integer.
|
|
195
204
|
*/
|
|
196
205
|
export function writableIdList(body, key, opts) {
|
|
197
206
|
const value = body[key];
|
|
@@ -201,17 +210,66 @@ export function writableIdList(body, key, opts) {
|
|
|
201
210
|
throw malformedResponse(`${opts.record} field "${key}" is not an array: ${describeValue(value)}`, resendHint(opts.escape));
|
|
202
211
|
}
|
|
203
212
|
return value.map((element, index) => {
|
|
204
|
-
|
|
213
|
+
// A null element is 0, not a malformed one. The reference decodes a JSON
|
|
214
|
+
// null in this array into its zero `Person`, whose `Id` is 0, and
|
|
215
|
+
// `fieldsFromTodo` appends that like any other id — measured through the
|
|
216
|
+
// reference's own Update composite.
|
|
217
|
+
if (element === null)
|
|
218
|
+
return 0;
|
|
219
|
+
if (typeof element !== "object" || Array.isArray(element)) {
|
|
205
220
|
throw malformedResponse(`${opts.record} field "${key}"[${index}] is not an object: ${describeValue(element)}`, resendHint(opts.escape));
|
|
206
221
|
}
|
|
207
|
-
const
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
222
|
+
const record = element;
|
|
223
|
+
// An ABSENT id is the zero value with no error, while an explicit null
|
|
224
|
+
// FAILS the read. The reference's flexible decoder is only called for a
|
|
225
|
+
// value that is there; for a JSON null it IS called, its number path leaves
|
|
226
|
+
// the buffer empty, and `ParseInt("")` fails. Two different answers, so the
|
|
227
|
+
// two cases cannot be tested together with `id == null`.
|
|
228
|
+
if (!("id" in record))
|
|
229
|
+
return 0;
|
|
230
|
+
const id = record["id"];
|
|
231
|
+
const refuse = () => {
|
|
232
|
+
throw malformedResponse(`${opts.record} field "${key}"[${index}].id is not a person id: ${describeValue(id)}`, resendHint(opts.escape));
|
|
233
|
+
};
|
|
234
|
+
// A NUMBER id. `Number.isInteger` is the test rather than `typeof`: `1.5`
|
|
235
|
+
// and `NaN` are numbers and neither is a person id, and a boolean fails it
|
|
236
|
+
// outright, which is what we want — JavaScript would coerce `true` to 1
|
|
237
|
+
// downstream. `Number.isSafeInteger` is the second half and is the same
|
|
238
|
+
// judgment `personIdNumber` makes for a string: past 2^53 `JSON.parse` has
|
|
239
|
+
// already rounded, so the only honest answers are "unreadable" or a wrong
|
|
240
|
+
// id, and the reference refuses this row anyway once it is past int64.
|
|
241
|
+
if (typeof id === "number")
|
|
242
|
+
return Number.isSafeInteger(id) ? id : refuse();
|
|
243
|
+
// A STRING id. BC3 serializes person ids as strings in some responses, and
|
|
244
|
+
// this reader must not lean on the pre-decode normalizer having converted
|
|
245
|
+
// one: which keys that walk covers is the walk's rule, and it is being held
|
|
246
|
+
// to the reference's own positional surfaces. The reference has no gap
|
|
247
|
+
// here either way, because it covers this site with a DECODER — `Person.Id`
|
|
248
|
+
// is `types.FlexibleInt64`, and `fieldsFromTodo` appends what that produced
|
|
249
|
+
// without filtering. Same grammar as the walk, so the two cannot disagree
|
|
250
|
+
// about a person depending on which of them saw it first.
|
|
251
|
+
if (typeof id === "string") {
|
|
252
|
+
const scan = scanPersonId(id);
|
|
253
|
+
// A SYNTAX refusal is the system actor, not an error: that is what the
|
|
254
|
+
// reference reads `"basecamp"` as, and the RANGE refusal beside it fails
|
|
255
|
+
// the read. Which one a string earns is decided inside the scan, so they
|
|
256
|
+
// cannot be told apart after the fact by looking at the string.
|
|
257
|
+
if (scan.kind === "syntax")
|
|
258
|
+
return 0;
|
|
259
|
+
if (scan.kind === "range")
|
|
260
|
+
return refuse();
|
|
261
|
+
// Outside ±(2^53 - 1) the number is already rounded, so refusing the ID
|
|
262
|
+
// is the local resolution `personIdNumber` documents — a residual
|
|
263
|
+
// divergence from a reference that answers in `int64`, recorded rather
|
|
264
|
+
// than papered over with a wrong id.
|
|
265
|
+
return personIdNumber(scan.value) ?? refuse();
|
|
213
266
|
}
|
|
214
|
-
|
|
267
|
+
// Everything else is a decode failure at the reference, an explicit
|
|
268
|
+
// `"id": null` included: the flexible decoder IS called for a JSON null,
|
|
269
|
+
// its number path leaves the buffer empty, and `ParseInt("")` fails. An
|
|
270
|
+
// absent key never reaches here, and is 0 — the two cannot be tested
|
|
271
|
+
// together with `id == null`.
|
|
272
|
+
return refuse();
|
|
215
273
|
});
|
|
216
274
|
}
|
|
217
275
|
//# sourceMappingURL=merge-safe.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-safe.js","sourceRoot":"","sources":["../../src/services/merge-safe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAsB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"merge-safe.js","sourceRoot":"","sources":["../../src/services/merge-safe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAsB,MAAM,cAAc,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/D,MAAM,UAAU,GAAG,CAAC,MAAc,EAAU,EAAE,CAC5C,qFAAqF;IACrF,wCAAwC,MAAM,oCAAoC,CAAC;AAErF;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,MAAM,IAAI,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC;IACrF,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACvC,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC;IACrF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,IAAY;IAC7D,OAAO,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/F,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAa,EACb,IAA2D;IAE3D,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACrE,MAAM,iBAAiB,CACrB,GAAG,IAAI,CAAC,SAAS,aAAa,aAAa,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,sBAAsB,EAC5G,mFAAmF;YACjF,uCAAuC,IAAI,CAAC,MAAM,oCAAoC,CACzF,CAAC;IACJ,CAAC;IACD,OAAO,IAA+B,CAAC;AACzC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,IAA6B,EAC7B,GAAW,EACX,IAAwC;IAExC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IACrD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,iBAAiB,CACrB,GAAG,IAAI,CAAC,MAAM,WAAW,GAAG,sBAAsB,aAAa,CAAC,KAAK,CAAC,EAAE,EACxE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CACxB,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAA6B,EAC7B,GAAW,EACX,IAAwC;IAExC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QAChG,MAAM,iBAAiB,CACrB,GAAG,IAAI,CAAC,MAAM,WAAW,GAAG,0CAA0C,aAAa,CAAC,KAAK,CAAC,EAAE,EAC5F,2FAA2F;YACzF,8BAA8B,IAAI,CAAC,MAAM,oCAAoC,CAChF,CAAC;IACJ,CAAC;IACD,OAAO,cAAc,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAA6B,EAC7B,GAAW,EACX,IAAwC;IAExC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1C,MAAM,iBAAiB,CACrB,GAAG,IAAI,CAAC,MAAM,WAAW,GAAG,0CAA0C,aAAa,CAAC,KAAK,CAAC,EAAE,EAC5F,0FAA0F;YACxF,uCAAuC,IAAI,CAAC,MAAM,oCAAoC,CACzF,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,iBAAiB,CACrB,GAAG,IAAI,CAAC,MAAM,WAAW,GAAG,uBAAuB,aAAa,CAAC,KAAK,CAAC,EAAE,EACzE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CACxB,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,eAAe,CAC7B,IAA6B,EAC7B,GAAW,EACX,IAAwC;IAExC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACxD,OAAO,uBAAuB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,cAAc,CAC5B,IAA6B,EAC7B,GAAW,EACX,IAAwC;IAExC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IACrD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,iBAAiB,CACrB,GAAG,IAAI,CAAC,MAAM,WAAW,GAAG,sBAAsB,aAAa,CAAC,KAAK,CAAC,EAAE,EACxE,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CACxB,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,OAAgB,EAAE,KAAa,EAAE,EAAE;QACnD,yEAAyE;QACzE,kEAAkE;QAClE,yEAAyE;QACzE,oCAAoC;QACpC,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,CAAC,CAAC;QAC/B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1D,MAAM,iBAAiB,CACrB,GAAG,IAAI,CAAC,MAAM,WAAW,GAAG,KAAK,KAAK,uBAAuB,aAAa,CAAC,OAAO,CAAC,EAAE,EACrF,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CACxB,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,OAAkC,CAAC;QAClD,uEAAuE;QACvE,wEAAwE;QACxE,4EAA4E;QAC5E,4EAA4E;QAC5E,yDAAyD;QACzD,IAAI,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC;YAAE,OAAO,CAAC,CAAC;QAChC,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;QACxB,MAAM,MAAM,GAAG,GAAU,EAAE;YACzB,MAAM,iBAAiB,CACrB,GAAG,IAAI,CAAC,MAAM,WAAW,GAAG,KAAK,KAAK,4BAA4B,aAAa,CAAC,EAAE,CAAC,EAAE,EACrF,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CACxB,CAAC;QACJ,CAAC,CAAC;QACF,0EAA0E;QAC1E,2EAA2E;QAC3E,wEAAwE;QACxE,wEAAwE;QACxE,2EAA2E;QAC3E,0EAA0E;QAC1E,uEAAuE;QACvE,IAAI,OAAO,EAAE,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC5E,2EAA2E;QAC3E,0EAA0E;QAC1E,4EAA4E;QAC5E,uEAAuE;QACvE,4EAA4E;QAC5E,4EAA4E;QAC5E,0EAA0E;QAC1E,0DAA0D;QAC1D,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;YAC9B,uEAAuE;YACvE,yEAAyE;YACzE,yEAAyE;YACzE,gEAAgE;YAChE,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,CAAC,CAAC;YACrC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;gBAAE,OAAO,MAAM,EAAE,CAAC;YAC3C,wEAAwE;YACxE,kEAAkE;YAClE,uEAAuE;YACvE,qCAAqC;YACrC,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QAChD,CAAC;QACD,oEAAoE;QACpE,yEAAyE;QACzE,wEAAwE;QACxE,qEAAqE;QACrE,8BAA8B;QAC9B,OAAO,MAAM,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,354 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `RecordingsService.summarize` — a compact projection of one recording,
|
|
3
|
+
* resolved from the pointer an account event feed row or a webhook carries
|
|
4
|
+
* (bucket id, recording id, and the event type or recording type) through the
|
|
5
|
+
* typed read that type names.
|
|
6
|
+
*
|
|
7
|
+
* It exists for consumers that must decide something about a recording without
|
|
8
|
+
* paying for its full payload: an agent connector's admission step, an MCP tool
|
|
9
|
+
* answering "what is this?".
|
|
10
|
+
*
|
|
11
|
+
* The SDK has no untyped recording read (BC3 has no such route), so the type is
|
|
12
|
+
* the routing key: `comment.created` reads a comment, `card.created` reads a
|
|
13
|
+
* card, and so on — one typed read per type. Chat lines are the exception,
|
|
14
|
+
* because their read needs the Campfire id and the pointer does not carry it;
|
|
15
|
+
* `summarize` discovers the Campfire first (see {@link RecordingsService.summarize}
|
|
16
|
+
* and the discovery notes further down).
|
|
17
|
+
*
|
|
18
|
+
* This is hand-written composition over the generated services (SPEC §18,
|
|
19
|
+
* Appendix F). It makes no wire request of its own, and it mints no operation
|
|
20
|
+
* identity: hooks see the constituent reads under their own names (§18 rule 3).
|
|
21
|
+
* It lives in `src/services/*-extensions.ts` and is wired in `client.ts`, the
|
|
22
|
+
* placement §18 rule 5 designates for TypeScript.
|
|
23
|
+
*/
|
|
24
|
+
import type { BasecampHooks } from "../hooks.js";
|
|
25
|
+
import { BasecampError } from "../errors.js";
|
|
26
|
+
import type { BasecampErrorOptions, ErrorCode } from "../errors.js";
|
|
27
|
+
import { RecordingsService as GeneratedRecordingsService } from "../generated/services/recordings.js";
|
|
28
|
+
import type { RawClient } from "./base.js";
|
|
29
|
+
import type { components } from "../generated/schema.js";
|
|
30
|
+
import type { Person } from "../generated/services/people.js";
|
|
31
|
+
import type { BasecampClient } from "../client.js";
|
|
32
|
+
/** The nested identities the projection carries verbatim from the read. */
|
|
33
|
+
type RecordingParent = components["schemas"]["RecordingParent"];
|
|
34
|
+
type RecordingBucket = components["schemas"]["RecordingBucket"];
|
|
35
|
+
/**
|
|
36
|
+
* The generated services `summarize` composes, as the client exposes them.
|
|
37
|
+
*
|
|
38
|
+
* Named rather than taken as the whole client so the composite's reach is
|
|
39
|
+
* stated: every one of these is a public generated wire method, which is what
|
|
40
|
+
* §18 rule 1 asks for.
|
|
41
|
+
*/
|
|
42
|
+
export type RecordingReadSources = Pick<BasecampClient, "campfires" | "cardColumns" | "cards" | "cardSteps" | "cardTables" | "checkins" | "clientApprovals" | "clientCorrespondences" | "cloudFiles" | "comments" | "documents" | "forwards" | "googleDocuments" | "messageBoards" | "messages" | "projects" | "schedules" | "todolists" | "todos" | "todosets" | "uploads" | "vaults">;
|
|
43
|
+
/** Points at one recording the way an event feed row does. */
|
|
44
|
+
export interface RecordingRef {
|
|
45
|
+
/**
|
|
46
|
+
* The project the recording lives in. Required: it scopes the Campfire
|
|
47
|
+
* discovery for chat lines, and the read is checked against it so a pointer
|
|
48
|
+
* from one project can never resolve to a recording in another.
|
|
49
|
+
*/
|
|
50
|
+
bucketId: number;
|
|
51
|
+
/** The recording's id. */
|
|
52
|
+
recordingId: number;
|
|
53
|
+
/**
|
|
54
|
+
* The account event feed type that named the recording —
|
|
55
|
+
* `"comment.created"`, `"card.assignment_changed"`, `"chat.line.created"`.
|
|
56
|
+
* The segment before the action names the recording type. Used when
|
|
57
|
+
* `recordingType` is absent.
|
|
58
|
+
*/
|
|
59
|
+
eventType?: string;
|
|
60
|
+
/**
|
|
61
|
+
* The recording's own type as BC3 spells it — `"Comment"`, `"Kanban::Card"`,
|
|
62
|
+
* `"Chat::Lines::Text"`. When set it takes precedence over `eventType`, being
|
|
63
|
+
* the more exact of the two.
|
|
64
|
+
*/
|
|
65
|
+
recordingType?: string;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* The projection {@link RecordingsService.summarize} returns.
|
|
69
|
+
*
|
|
70
|
+
* Keys are the wire spelling, as everywhere else in this SDK: the generated
|
|
71
|
+
* types are the API's own snake_case shapes, and a camelCase projection here
|
|
72
|
+
* would be the one object in the surface that disagreed with them.
|
|
73
|
+
*
|
|
74
|
+
* Fields a type does not have are absent: a Comment has no `assignees`, a Vault
|
|
75
|
+
* no `content` worth the name.
|
|
76
|
+
*/
|
|
77
|
+
export interface RecordingSummary {
|
|
78
|
+
id: number;
|
|
79
|
+
status: string;
|
|
80
|
+
/** The recording type as BC3 spells it (`"Comment"`, `"Kanban::Card"`). */
|
|
81
|
+
type: string;
|
|
82
|
+
title: string;
|
|
83
|
+
app_url: string;
|
|
84
|
+
/**
|
|
85
|
+
* The recording this one hangs off — the commented recording for a comment,
|
|
86
|
+
* the Campfire for a chat line, the column for a card.
|
|
87
|
+
*/
|
|
88
|
+
parent?: RecordingParent;
|
|
89
|
+
bucket?: RecordingBucket;
|
|
90
|
+
creator?: Person;
|
|
91
|
+
/** Set for the assignable types (to-dos, cards, card steps). */
|
|
92
|
+
assignees?: Person[];
|
|
93
|
+
/**
|
|
94
|
+
* The people `content` mentions, per `mentionedPersonIds`. Never absent, so a
|
|
95
|
+
* JSON consumer reads `[]` rather than a missing key.
|
|
96
|
+
*/
|
|
97
|
+
mentioned_person_ids: number[];
|
|
98
|
+
/**
|
|
99
|
+
* The mentions in `content` that name a real person this SDK cannot report as
|
|
100
|
+
* a number — a valid `int64` past `Number.MAX_SAFE_INTEGER`, as the decimal
|
|
101
|
+
* string it arrived as.
|
|
102
|
+
*
|
|
103
|
+
* ABSENT whenever there are none, which is every payload BC3 sends today, so
|
|
104
|
+
* a JSON consumer sees no new key until one actually appears. Present only
|
|
105
|
+
* when `mentioned_person_ids` is therefore short, which is what makes the
|
|
106
|
+
* skip visible: without it a text naming three people and a text naming two
|
|
107
|
+
* would read identically.
|
|
108
|
+
*
|
|
109
|
+
* These ids are skipped rather than thrown over on purpose. `content` is
|
|
110
|
+
* written by whoever wrote the comment and the sgid's signature is never
|
|
111
|
+
* verified, so refusing the read would hand any author a way to make the
|
|
112
|
+
* recording unreadable. Reported, not fatal, and untrusted either way.
|
|
113
|
+
*/
|
|
114
|
+
unnameable_mention_ids?: string[];
|
|
115
|
+
/**
|
|
116
|
+
* The recording's rich text, in full: the comment body, the message body, a
|
|
117
|
+
* to-do's description, a card's content, the chat line.
|
|
118
|
+
*/
|
|
119
|
+
content: string;
|
|
120
|
+
updated_at: string;
|
|
121
|
+
/**
|
|
122
|
+
* The Campfire a chat line was found under — the reply destination for a chat
|
|
123
|
+
* trigger. Absent for every other type.
|
|
124
|
+
*/
|
|
125
|
+
campfire_id?: number;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* The identities `summarize` fails with, beyond a read's own error.
|
|
129
|
+
*
|
|
130
|
+
* Matched on {@link RecordingSummaryError.kind}, never parsed out of a message:
|
|
131
|
+
* `recording_unresolved` in particular is a conclusion the composite reached,
|
|
132
|
+
* not a status any one request returned, and a consumer has to be able to tell
|
|
133
|
+
* it from a read that failed.
|
|
134
|
+
*/
|
|
135
|
+
export type RecordingSummaryErrorKind =
|
|
136
|
+
/**
|
|
137
|
+
* The event type names no recording type — `boost.created`, whose recording
|
|
138
|
+
* is the boost's target and whose type the feed row does not carry. A
|
|
139
|
+
* consumer resolves those from its own record of what it posted, not through
|
|
140
|
+
* `summarize`.
|
|
141
|
+
*/
|
|
142
|
+
"no_recording_type"
|
|
143
|
+
/** Neither `eventType` nor `recordingType` names a type in the routing table. */
|
|
144
|
+
| "unknown_recording_type"
|
|
145
|
+
/**
|
|
146
|
+
* A chat line was found under none of the Campfires the caller can currently
|
|
147
|
+
* see in its bucket. Distinct from a failed read (any non-404 answer is
|
|
148
|
+
* raised as itself) and from `campfire_discovery_incomplete`: every candidate
|
|
149
|
+
* answered 404. It is not distinct from lost visibility — BC3 answers 404 for
|
|
150
|
+
* a Campfire the caller may not see, too — so a consumer marks the record
|
|
151
|
+
* blocked and retries on its own schedule; see
|
|
152
|
+
* {@link UnresolvedRecordingError.staleCampfireIds}.
|
|
153
|
+
*/
|
|
154
|
+
| "recording_unresolved"
|
|
155
|
+
/**
|
|
156
|
+
* Discovery could not be carried to a conclusion — the Campfire listing
|
|
157
|
+
* overflowed its cap, or a bucket has more visible Campfires than the
|
|
158
|
+
* candidate budget. Candidates were left unsearched, so nothing can be
|
|
159
|
+
* reported absent.
|
|
160
|
+
*/
|
|
161
|
+
| "campfire_discovery_incomplete"
|
|
162
|
+
/** The recording the read returned lives in a different bucket from the pointer's. */
|
|
163
|
+
| "bucket_mismatch";
|
|
164
|
+
/**
|
|
165
|
+
* The base class for every failure that is the composite's own conclusion
|
|
166
|
+
* rather than one read's HTTP answer.
|
|
167
|
+
*
|
|
168
|
+
* It is a {@link BasecampError} so an existing `catch` keeps working, and it
|
|
169
|
+
* carries a `kind` so the conclusions stay distinguishable from each other and
|
|
170
|
+
* from the read errors whose `code` they share. Every one of them is
|
|
171
|
+
* **statusless**: no single request returned a status that describes the
|
|
172
|
+
* conclusion, so a consumer seeing `code: "not_found"` with no `httpStatus`
|
|
173
|
+
* knows it is looking at a composite's verdict and not at a 404 off the wire.
|
|
174
|
+
*/
|
|
175
|
+
export declare class RecordingSummaryError extends BasecampError {
|
|
176
|
+
readonly kind: RecordingSummaryErrorKind;
|
|
177
|
+
constructor(kind: RecordingSummaryErrorKind, code: ErrorCode, message: string, options?: BasecampErrorOptions);
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* A {@link RecordingRef} `summarize` cannot route, raised before any request.
|
|
181
|
+
*
|
|
182
|
+
* `usage`: nothing was asked of the API — the pointer names no read.
|
|
183
|
+
*/
|
|
184
|
+
export declare class RecordingRoutingError extends RecordingSummaryError {
|
|
185
|
+
readonly ref: RecordingRef;
|
|
186
|
+
constructor(ref: RecordingRef, kind: "no_recording_type" | "unknown_recording_type");
|
|
187
|
+
}
|
|
188
|
+
/** A chat line found under no visible Campfire. */
|
|
189
|
+
export declare class UnresolvedRecordingError extends RecordingSummaryError {
|
|
190
|
+
readonly bucketId: number;
|
|
191
|
+
readonly recordingId: number;
|
|
192
|
+
/** The candidates tried, in order; empty when the bucket has no visible Campfire at all. */
|
|
193
|
+
readonly campfireIds: number[];
|
|
194
|
+
/**
|
|
195
|
+
* Whether the cached discovery sources were re-read before concluding. False
|
|
196
|
+
* when every source had been read within the last
|
|
197
|
+
* {@link CAMPFIRE_INDEX_MIN_REFRESH_MS}, so a Campfire created in that window
|
|
198
|
+
* was not seen: the conclusion stands on data up to that old, and a retry
|
|
199
|
+
* after the floor sees the current sources.
|
|
200
|
+
*/
|
|
201
|
+
readonly refreshed: boolean;
|
|
202
|
+
/**
|
|
203
|
+
* Candidates from the cache that the refreshed sources no longer list —
|
|
204
|
+
* Campfires the caller could see when the cache filled and cannot now. Set
|
|
205
|
+
* only when {@link refreshed}.
|
|
206
|
+
*/
|
|
207
|
+
readonly staleCampfireIds: number[];
|
|
208
|
+
constructor(init: {
|
|
209
|
+
bucketId: number;
|
|
210
|
+
recordingId: number;
|
|
211
|
+
campfireIds: number[];
|
|
212
|
+
refreshed: boolean;
|
|
213
|
+
staleCampfireIds: number[];
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Discovery stopped short of a conclusion, and why.
|
|
218
|
+
*
|
|
219
|
+
* `usage`, non-retryable, settled across every port on
|
|
220
|
+
* {@link https://app.basecamp.com/2914079/buckets/48699913/card_tables/cards/10308122086 | card 40}
|
|
221
|
+
* after the merged ports shipped two different answers — this one and Python
|
|
222
|
+
* said `api_error`, Kotlin said `usage`, and a caller got exit 7 from one SDK
|
|
223
|
+
* and exit 1 from another for the same condition.
|
|
224
|
+
*
|
|
225
|
+
* `usage` is one of only THREE coarse codes no HTTP response can produce: the
|
|
226
|
+
* status mapping yields `auth_required`, `forbidden`, `not_found`,
|
|
227
|
+
* `rate_limit`, `validation`, `limit_exceeded` and `api_error`, and `network`
|
|
228
|
+
* and `ambiguous` are equally unreachable from a status. `usage` is the one of
|
|
229
|
+
* those three that also describes a call the SDK declined to complete, which is
|
|
230
|
+
* why it and not the other two. A verdict the composite reached on its own
|
|
231
|
+
* therefore can never be read back as a constituent read's own answer — the
|
|
232
|
+
* property the composite exists to protect. It is
|
|
233
|
+
* explicitly not `not_found`, because nothing left unsearched may be reported
|
|
234
|
+
* absent.
|
|
235
|
+
*
|
|
236
|
+
* Retryability is a separate field and is unchanged: {@link
|
|
237
|
+
* RecordingSummaryError} forces `retryable: false` on every identity, and both
|
|
238
|
+
* of this one's reasons are deterministic for the same account state, so a
|
|
239
|
+
* retry loop would re-run the identical search forever.
|
|
240
|
+
*/
|
|
241
|
+
export declare class CampfireDiscoveryIncompleteError extends RecordingSummaryError {
|
|
242
|
+
readonly bucketId: number;
|
|
243
|
+
readonly recordingId: number;
|
|
244
|
+
readonly reason: string;
|
|
245
|
+
constructor(init: {
|
|
246
|
+
bucketId: number;
|
|
247
|
+
recordingId: number;
|
|
248
|
+
reason: string;
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* A read whose bucket disagrees with the pointer.
|
|
253
|
+
*
|
|
254
|
+
* `usage`: the pointer named a bucket the recording is not in, which is the
|
|
255
|
+
* caller's argument being wrong rather than the API misbehaving. This doc
|
|
256
|
+
* comment argued the opposite — `api_error`, citing SPEC §6's statusless rule —
|
|
257
|
+
* for as long as the code said so, and went on saying it after the code
|
|
258
|
+
* changed, which is the half of a rename that editor hover and generated API
|
|
259
|
+
* docs actually show a consumer.
|
|
260
|
+
*
|
|
261
|
+
* The ports on `main` did NOT agree here, and the disagreement was bigger than
|
|
262
|
+
* the value: `exitCode` derives from the code, so this identity exited 1 in
|
|
263
|
+
* Python, Ruby, Kotlin and this port (`usage`) and 2 in Rust (`not_found`, "the
|
|
264
|
+
* recording the pointer names is not where it was looked for"). Settled for
|
|
265
|
+
* every SDK on {@link https://app.basecamp.com/2914079/buckets/48699913/card_tables/cards/10308966794 | card 41} as `usage`, and on the
|
|
266
|
+
* argument rather than the four-to-one majority: `not_found` says the recording
|
|
267
|
+
* is not there, which is false — the read FOUND it, in another bucket, and
|
|
268
|
+
* returned it. Nothing is absent. What failed is the caller's pointer.
|
|
269
|
+
*
|
|
270
|
+
* The shared fixture had no case for this identity at all, so nothing pinned
|
|
271
|
+
* the code: five ports carried two answers and two carried none, with every
|
|
272
|
+
* case green in all seven. It has one now, and it pins the code alongside the
|
|
273
|
+
* identity.
|
|
274
|
+
*/
|
|
275
|
+
export declare class BucketMismatchError extends RecordingSummaryError {
|
|
276
|
+
readonly ref: RecordingRef;
|
|
277
|
+
/** The bucket the read returned. */
|
|
278
|
+
readonly bucketId: number;
|
|
279
|
+
constructor(ref: RecordingRef, bucketId: number);
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* The recording types `summarize` routes by `recordingType`, sorted, with the
|
|
283
|
+
* `Chat::Lines` subtypes represented by their shared prefix
|
|
284
|
+
* (`"Chat::Lines::*"`). The set is deliberate rather than exhaustive — see
|
|
285
|
+
* {@link RECORDING_TYPES} — and any other type is `unknown_recording_type` by
|
|
286
|
+
* design.
|
|
287
|
+
*/
|
|
288
|
+
export declare function summarizableRecordingTypes(): string[];
|
|
289
|
+
/**
|
|
290
|
+
* The account event feed subjects `summarize` routes by `eventType` — an event
|
|
291
|
+
* type is `<subject>.<action>`, and any action on a listed subject routes to
|
|
292
|
+
* that subject's read — sorted. `boost` is absent on purpose: it is
|
|
293
|
+
* `no_recording_type`.
|
|
294
|
+
*/
|
|
295
|
+
export declare function summarizableEventTypes(): string[];
|
|
296
|
+
/**
|
|
297
|
+
* How long a cached discovery source — a bucket's project dock, the account's
|
|
298
|
+
* Campfire listing — is reused before it is read again.
|
|
299
|
+
*/
|
|
300
|
+
export declare const CAMPFIRE_INDEX_TTL_MS: number;
|
|
301
|
+
/**
|
|
302
|
+
* Bounds how many Campfires one `summarize` call tries, across both sources and
|
|
303
|
+
* the refresh. A project has one Campfire and a handful of pings; a bucket past
|
|
304
|
+
* this bound is not a shape BC3 produces, and the call reports
|
|
305
|
+
* `campfire_discovery_incomplete` rather than calling the rest absent.
|
|
306
|
+
*/
|
|
307
|
+
export declare const MAX_CAMPFIRE_CANDIDATES = 50;
|
|
308
|
+
/**
|
|
309
|
+
* Caps the account-wide Campfire listing the fallback source reads. A listing
|
|
310
|
+
* that overflows it is not cached and the call reports
|
|
311
|
+
* `campfire_discovery_incomplete`: the dock covers every project, so the
|
|
312
|
+
* listing only ever serves the leftover, and an account with more Campfires
|
|
313
|
+
* than this should not pay a full walk per ten minutes for it.
|
|
314
|
+
*/
|
|
315
|
+
export declare const MAX_CAMPFIRE_LISTING = 1000;
|
|
316
|
+
/**
|
|
317
|
+
* `RecordingsService` with the hand-written `summarize` composite on top of the
|
|
318
|
+
* generated surface (`list`, `trash`, ...).
|
|
319
|
+
*
|
|
320
|
+
* The composite reaches its sibling reads through the client that built it, so
|
|
321
|
+
* every request is the same public generated method a caller would have made
|
|
322
|
+
* and hooks see each under its own operation identity.
|
|
323
|
+
*/
|
|
324
|
+
export declare class RecordingsService extends GeneratedRecordingsService {
|
|
325
|
+
#private;
|
|
326
|
+
constructor(client: RawClient, hooks?: BasecampHooks, fetchPage?: (url: string) => Promise<Response>, maxPages?: number, authenticatedFetch?: (url: string, init: RequestInit) => Promise<Response>, baseUrl?: string, sources?: () => RecordingReadSources, now?: () => number);
|
|
327
|
+
/**
|
|
328
|
+
* Resolves a recording pointer into a {@link RecordingSummary} through the
|
|
329
|
+
* typed read its type names. See {@link RecordingRef} for the routing inputs.
|
|
330
|
+
*
|
|
331
|
+
* Errors: a routing failure (`no_recording_type` / `unknown_recording_type`)
|
|
332
|
+
* before any request; the read's own {@link BasecampError} otherwise — a 404
|
|
333
|
+
* is `not_found`, as from the typed read itself; for chat lines,
|
|
334
|
+
* {@link UnresolvedRecordingError} when every visible Campfire answered 404,
|
|
335
|
+
* which is distinct from a read that failed (any non-404 from a candidate is
|
|
336
|
+
* raised as that error, and the loop stops there) and from
|
|
337
|
+
* {@link CampfireDiscoveryIncompleteError} (candidates were left unsearched);
|
|
338
|
+
* {@link BucketMismatchError} when the read returned a recording from another
|
|
339
|
+
* bucket.
|
|
340
|
+
*
|
|
341
|
+
* @example
|
|
342
|
+
* ```ts
|
|
343
|
+
* const summary = await client.recordings.summarize({
|
|
344
|
+
* bucketId: 2085958499,
|
|
345
|
+
* recordingId: 1069479361,
|
|
346
|
+
* eventType: "comment.created",
|
|
347
|
+
* });
|
|
348
|
+
* summary.mentioned_person_ids; // [1049715915]
|
|
349
|
+
* ```
|
|
350
|
+
*/
|
|
351
|
+
summarize(ref: RecordingRef): Promise<RecordingSummary>;
|
|
352
|
+
}
|
|
353
|
+
export {};
|
|
354
|
+
//# sourceMappingURL=recordings-extensions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recordings-extensions.d.ts","sourceRoot":"","sources":["../../src/services/recordings-extensions.ts"],"names":[],"mappings":"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"}
|