featurebase-node 0.12.0 → 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.
Files changed (501) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/api-promise.d.mts +1 -0
  3. package/api-promise.d.mts.map +1 -1
  4. package/api-promise.d.ts +1 -0
  5. package/api-promise.d.ts.map +1 -1
  6. package/api-promise.mjs +1 -0
  7. package/api-promise.mjs.map +1 -1
  8. package/client.d.mts +9 -3
  9. package/client.d.mts.map +1 -1
  10. package/client.d.ts +9 -3
  11. package/client.d.ts.map +1 -1
  12. package/client.js +6 -0
  13. package/client.js.map +1 -1
  14. package/client.mjs +6 -0
  15. package/client.mjs.map +1 -1
  16. package/core/api-promise.d.mts.map +1 -1
  17. package/core/api-promise.d.ts.map +1 -1
  18. package/core/api-promise.mjs.map +1 -1
  19. package/core/error.mjs.map +1 -1
  20. package/core/pagination.d.mts.map +1 -1
  21. package/core/pagination.d.ts.map +1 -1
  22. package/core/pagination.mjs.map +1 -1
  23. package/core/resource.d.mts.map +1 -1
  24. package/core/resource.d.ts.map +1 -1
  25. package/core/uploads.d.mts.map +1 -1
  26. package/core/uploads.d.ts.map +1 -1
  27. package/core/uploads.mjs.map +1 -1
  28. package/error.d.mts +1 -0
  29. package/error.d.mts.map +1 -1
  30. package/error.d.ts +1 -0
  31. package/error.d.ts.map +1 -1
  32. package/error.mjs +1 -0
  33. package/error.mjs.map +1 -1
  34. package/index.d.mts.map +1 -1
  35. package/index.d.ts.map +1 -1
  36. package/index.mjs.map +1 -1
  37. package/internal/detect-platform.mjs.map +1 -1
  38. package/internal/headers.mjs.map +1 -1
  39. package/internal/parse.d.mts.map +1 -1
  40. package/internal/parse.d.ts.map +1 -1
  41. package/internal/parse.mjs.map +1 -1
  42. package/internal/qs/formats.d.mts.map +1 -1
  43. package/internal/qs/formats.d.ts.map +1 -1
  44. package/internal/qs/index.d.mts +2 -2
  45. package/internal/qs/index.d.mts.map +1 -1
  46. package/internal/qs/index.d.ts +2 -2
  47. package/internal/qs/index.d.ts.map +1 -1
  48. package/internal/qs/index.mjs.map +1 -1
  49. package/internal/qs/stringify.d.mts.map +1 -1
  50. package/internal/qs/stringify.d.ts.map +1 -1
  51. package/internal/qs/stringify.mjs.map +1 -1
  52. package/internal/qs/utils.d.mts.map +1 -1
  53. package/internal/qs/utils.d.ts.map +1 -1
  54. package/internal/qs/utils.mjs.map +1 -1
  55. package/internal/request-options.d.mts.map +1 -1
  56. package/internal/request-options.d.ts.map +1 -1
  57. package/internal/shims.d.mts +6 -0
  58. package/internal/shims.d.mts.map +1 -1
  59. package/internal/shims.d.ts +6 -0
  60. package/internal/shims.d.ts.map +1 -1
  61. package/internal/to-file.d.mts.map +1 -1
  62. package/internal/to-file.d.ts.map +1 -1
  63. package/internal/to-file.mjs.map +1 -1
  64. package/internal/types.d.mts +4 -4
  65. package/internal/types.d.mts.map +1 -1
  66. package/internal/types.d.ts +4 -4
  67. package/internal/types.d.ts.map +1 -1
  68. package/internal/uploads.d.mts.map +1 -1
  69. package/internal/uploads.d.ts.map +1 -1
  70. package/internal/uploads.mjs.map +1 -1
  71. package/internal/utils/base64.mjs.map +1 -1
  72. package/internal/utils/log.d.mts.map +1 -1
  73. package/internal/utils/log.d.ts.map +1 -1
  74. package/internal/utils/log.js +2 -0
  75. package/internal/utils/log.js.map +1 -1
  76. package/internal/utils/log.mjs +2 -0
  77. package/internal/utils/log.mjs.map +1 -1
  78. package/internal/utils/path.mjs.map +1 -1
  79. package/internal/utils/query.mjs.map +1 -1
  80. package/internal/utils/values.mjs.map +1 -1
  81. package/internal/utils.d.mts.map +1 -1
  82. package/internal/utils.d.ts.map +1 -1
  83. package/internal/utils.mjs.map +1 -1
  84. package/package.json +16 -10
  85. package/pagination.d.mts +1 -0
  86. package/pagination.d.mts.map +1 -1
  87. package/pagination.d.ts +1 -0
  88. package/pagination.d.ts.map +1 -1
  89. package/pagination.mjs +1 -0
  90. package/pagination.mjs.map +1 -1
  91. package/resource.d.mts +1 -0
  92. package/resource.d.mts.map +1 -1
  93. package/resource.d.ts +1 -0
  94. package/resource.d.ts.map +1 -1
  95. package/resource.mjs +1 -0
  96. package/resource.mjs.map +1 -1
  97. package/resources/changelogs/changelogs.d.mts +106 -106
  98. package/resources/changelogs/changelogs.d.mts.map +1 -1
  99. package/resources/changelogs/changelogs.d.ts +106 -106
  100. package/resources/changelogs/changelogs.d.ts.map +1 -1
  101. package/resources/changelogs/changelogs.js +74 -74
  102. package/resources/changelogs/changelogs.js.map +1 -1
  103. package/resources/changelogs/changelogs.mjs +74 -74
  104. package/resources/changelogs/changelogs.mjs.map +1 -1
  105. package/resources/changelogs/index.d.mts +1 -1
  106. package/resources/changelogs/index.d.mts.map +1 -1
  107. package/resources/changelogs/index.d.ts +1 -1
  108. package/resources/changelogs/index.d.ts.map +1 -1
  109. package/resources/changelogs/index.mjs.map +1 -1
  110. package/resources/changelogs/subscribers.d.mts.map +1 -1
  111. package/resources/changelogs/subscribers.d.ts.map +1 -1
  112. package/resources/changelogs/subscribers.mjs.map +1 -1
  113. package/resources/changelogs.d.mts.map +1 -1
  114. package/resources/changelogs.d.ts.map +1 -1
  115. package/resources/changelogs.mjs.map +1 -1
  116. package/resources/conversation-attributes.d.mts +117 -0
  117. package/resources/conversation-attributes.d.mts.map +1 -0
  118. package/resources/conversation-attributes.d.ts +117 -0
  119. package/resources/conversation-attributes.d.ts.map +1 -0
  120. package/resources/conversation-attributes.js +61 -0
  121. package/resources/conversation-attributes.js.map +1 -0
  122. package/resources/conversation-attributes.mjs +57 -0
  123. package/resources/conversation-attributes.mjs.map +1 -0
  124. package/resources/feedback/boards.d.mts +17 -17
  125. package/resources/feedback/boards.d.mts.map +1 -1
  126. package/resources/feedback/boards.d.ts +17 -17
  127. package/resources/feedback/boards.d.ts.map +1 -1
  128. package/resources/feedback/boards.js +20 -20
  129. package/resources/feedback/boards.js.map +1 -1
  130. package/resources/feedback/boards.mjs +20 -20
  131. package/resources/feedback/boards.mjs.map +1 -1
  132. package/resources/feedback/comments.d.mts +400 -123
  133. package/resources/feedback/comments.d.mts.map +1 -1
  134. package/resources/feedback/comments.d.ts +400 -123
  135. package/resources/feedback/comments.d.ts.map +1 -1
  136. package/resources/feedback/comments.js +253 -93
  137. package/resources/feedback/comments.js.map +1 -1
  138. package/resources/feedback/comments.mjs +253 -93
  139. package/resources/feedback/comments.mjs.map +1 -1
  140. package/resources/feedback/custom-fields.d.mts +34 -34
  141. package/resources/feedback/custom-fields.d.mts.map +1 -1
  142. package/resources/feedback/custom-fields.d.ts +34 -34
  143. package/resources/feedback/custom-fields.d.ts.map +1 -1
  144. package/resources/feedback/custom-fields.js +36 -36
  145. package/resources/feedback/custom-fields.js.map +1 -1
  146. package/resources/feedback/custom-fields.mjs +36 -36
  147. package/resources/feedback/custom-fields.mjs.map +1 -1
  148. package/resources/feedback/feedback.d.mts +7 -7
  149. package/resources/feedback/feedback.d.mts.map +1 -1
  150. package/resources/feedback/feedback.d.ts +7 -7
  151. package/resources/feedback/feedback.d.ts.map +1 -1
  152. package/resources/feedback/feedback.js.map +1 -1
  153. package/resources/feedback/feedback.mjs.map +1 -1
  154. package/resources/feedback/index.d.mts +5 -5
  155. package/resources/feedback/index.d.mts.map +1 -1
  156. package/resources/feedback/index.d.ts +5 -5
  157. package/resources/feedback/index.d.ts.map +1 -1
  158. package/resources/feedback/index.js.map +1 -1
  159. package/resources/feedback/index.mjs.map +1 -1
  160. package/resources/feedback/post-statuses.d.mts +18 -18
  161. package/resources/feedback/post-statuses.d.mts.map +1 -1
  162. package/resources/feedback/post-statuses.d.ts +18 -18
  163. package/resources/feedback/post-statuses.d.ts.map +1 -1
  164. package/resources/feedback/post-statuses.js +23 -23
  165. package/resources/feedback/post-statuses.js.map +1 -1
  166. package/resources/feedback/post-statuses.mjs +23 -23
  167. package/resources/feedback/post-statuses.mjs.map +1 -1
  168. package/resources/feedback/posts/index.d.mts +1 -1
  169. package/resources/feedback/posts/index.d.mts.map +1 -1
  170. package/resources/feedback/posts/index.d.ts +1 -1
  171. package/resources/feedback/posts/index.d.ts.map +1 -1
  172. package/resources/feedback/posts/index.js.map +1 -1
  173. package/resources/feedback/posts/index.mjs.map +1 -1
  174. package/resources/feedback/posts/posts.d.mts +238 -284
  175. package/resources/feedback/posts/posts.d.mts.map +1 -1
  176. package/resources/feedback/posts/posts.d.ts +238 -284
  177. package/resources/feedback/posts/posts.d.ts.map +1 -1
  178. package/resources/feedback/posts/posts.js +122 -96
  179. package/resources/feedback/posts/posts.js.map +1 -1
  180. package/resources/feedback/posts/posts.mjs +122 -96
  181. package/resources/feedback/posts/posts.mjs.map +1 -1
  182. package/resources/feedback/posts/voters.d.mts.map +1 -1
  183. package/resources/feedback/posts/voters.d.ts.map +1 -1
  184. package/resources/feedback/posts/voters.mjs.map +1 -1
  185. package/resources/feedback/posts.d.mts.map +1 -1
  186. package/resources/feedback/posts.d.ts.map +1 -1
  187. package/resources/feedback/posts.mjs.map +1 -1
  188. package/resources/feedback.d.mts.map +1 -1
  189. package/resources/feedback.d.ts.map +1 -1
  190. package/resources/feedback.mjs.map +1 -1
  191. package/resources/help-center/articles.d.mts +98 -152
  192. package/resources/help-center/articles.d.mts.map +1 -1
  193. package/resources/help-center/articles.d.ts +98 -152
  194. package/resources/help-center/articles.d.ts.map +1 -1
  195. package/resources/help-center/articles.js +73 -73
  196. package/resources/help-center/articles.js.map +1 -1
  197. package/resources/help-center/articles.mjs +73 -73
  198. package/resources/help-center/articles.mjs.map +1 -1
  199. package/resources/help-center/collections.d.mts +64 -64
  200. package/resources/help-center/collections.d.mts.map +1 -1
  201. package/resources/help-center/collections.d.ts +64 -64
  202. package/resources/help-center/collections.d.ts.map +1 -1
  203. package/resources/help-center/collections.js +65 -65
  204. package/resources/help-center/collections.js.map +1 -1
  205. package/resources/help-center/collections.mjs +65 -65
  206. package/resources/help-center/collections.mjs.map +1 -1
  207. package/resources/help-center/help-center.d.mts +5 -5
  208. package/resources/help-center/help-center.d.mts.map +1 -1
  209. package/resources/help-center/help-center.d.ts +5 -5
  210. package/resources/help-center/help-center.d.ts.map +1 -1
  211. package/resources/help-center/help-center.js.map +1 -1
  212. package/resources/help-center/help-center.mjs.map +1 -1
  213. package/resources/help-center/help-centers.d.mts +43 -43
  214. package/resources/help-center/help-centers.d.mts.map +1 -1
  215. package/resources/help-center/help-centers.d.ts +43 -43
  216. package/resources/help-center/help-centers.d.ts.map +1 -1
  217. package/resources/help-center/help-centers.js +43 -43
  218. package/resources/help-center/help-centers.js.map +1 -1
  219. package/resources/help-center/help-centers.mjs +43 -43
  220. package/resources/help-center/help-centers.mjs.map +1 -1
  221. package/resources/help-center/index.d.mts +4 -4
  222. package/resources/help-center/index.d.mts.map +1 -1
  223. package/resources/help-center/index.d.ts +4 -4
  224. package/resources/help-center/index.d.ts.map +1 -1
  225. package/resources/help-center/index.js.map +1 -1
  226. package/resources/help-center/index.mjs.map +1 -1
  227. package/resources/help-center/redirect-rules.d.mts +117 -117
  228. package/resources/help-center/redirect-rules.d.mts.map +1 -1
  229. package/resources/help-center/redirect-rules.d.ts +117 -117
  230. package/resources/help-center/redirect-rules.d.ts.map +1 -1
  231. package/resources/help-center/redirect-rules.js +112 -112
  232. package/resources/help-center/redirect-rules.js.map +1 -1
  233. package/resources/help-center/redirect-rules.mjs +112 -112
  234. package/resources/help-center/redirect-rules.mjs.map +1 -1
  235. package/resources/help-center.d.mts.map +1 -1
  236. package/resources/help-center.d.ts.map +1 -1
  237. package/resources/help-center.mjs.map +1 -1
  238. package/resources/index.d.mts +4 -3
  239. package/resources/index.d.mts.map +1 -1
  240. package/resources/index.d.ts +4 -3
  241. package/resources/index.d.ts.map +1 -1
  242. package/resources/index.js +3 -1
  243. package/resources/index.js.map +1 -1
  244. package/resources/index.mjs +1 -0
  245. package/resources/index.mjs.map +1 -1
  246. package/resources/organization/admins.d.mts +23 -23
  247. package/resources/organization/admins.d.mts.map +1 -1
  248. package/resources/organization/admins.d.ts +23 -23
  249. package/resources/organization/admins.d.ts.map +1 -1
  250. package/resources/organization/admins.js +25 -25
  251. package/resources/organization/admins.js.map +1 -1
  252. package/resources/organization/admins.mjs +25 -25
  253. package/resources/organization/admins.mjs.map +1 -1
  254. package/resources/organization/brands.d.mts +50 -50
  255. package/resources/organization/brands.d.mts.map +1 -1
  256. package/resources/organization/brands.d.ts +50 -50
  257. package/resources/organization/brands.d.ts.map +1 -1
  258. package/resources/organization/brands.js +54 -54
  259. package/resources/organization/brands.js.map +1 -1
  260. package/resources/organization/brands.mjs +54 -54
  261. package/resources/organization/brands.mjs.map +1 -1
  262. package/resources/organization/index.d.mts +3 -3
  263. package/resources/organization/index.d.mts.map +1 -1
  264. package/resources/organization/index.d.ts +3 -3
  265. package/resources/organization/index.d.ts.map +1 -1
  266. package/resources/organization/index.mjs.map +1 -1
  267. package/resources/organization/organization.d.mts +3 -3
  268. package/resources/organization/organization.d.mts.map +1 -1
  269. package/resources/organization/organization.d.ts +3 -3
  270. package/resources/organization/organization.d.ts.map +1 -1
  271. package/resources/organization/organization.mjs.map +1 -1
  272. package/resources/organization/teams.d.mts +45 -45
  273. package/resources/organization/teams.d.mts.map +1 -1
  274. package/resources/organization/teams.d.ts +45 -45
  275. package/resources/organization/teams.d.ts.map +1 -1
  276. package/resources/organization/teams.js +44 -44
  277. package/resources/organization/teams.js.map +1 -1
  278. package/resources/organization/teams.mjs +44 -44
  279. package/resources/organization/teams.mjs.map +1 -1
  280. package/resources/organization.d.mts.map +1 -1
  281. package/resources/organization.d.ts.map +1 -1
  282. package/resources/organization.mjs.map +1 -1
  283. package/resources/support/conversation-tags.d.mts +40 -40
  284. package/resources/support/conversation-tags.d.mts.map +1 -1
  285. package/resources/support/conversation-tags.d.ts +40 -40
  286. package/resources/support/conversation-tags.d.ts.map +1 -1
  287. package/resources/support/conversation-tags.js +32 -32
  288. package/resources/support/conversation-tags.js.map +1 -1
  289. package/resources/support/conversation-tags.mjs +32 -32
  290. package/resources/support/conversation-tags.mjs.map +1 -1
  291. package/resources/support/conversations/conversations.d.mts +624 -722
  292. package/resources/support/conversations/conversations.d.mts.map +1 -1
  293. package/resources/support/conversations/conversations.d.ts +624 -722
  294. package/resources/support/conversations/conversations.d.ts.map +1 -1
  295. package/resources/support/conversations/conversations.js +309 -302
  296. package/resources/support/conversations/conversations.js.map +1 -1
  297. package/resources/support/conversations/conversations.mjs +309 -302
  298. package/resources/support/conversations/conversations.mjs.map +1 -1
  299. package/resources/support/conversations/index.d.mts +1 -1
  300. package/resources/support/conversations/index.d.mts.map +1 -1
  301. package/resources/support/conversations/index.d.ts +1 -1
  302. package/resources/support/conversations/index.d.ts.map +1 -1
  303. package/resources/support/conversations/index.js.map +1 -1
  304. package/resources/support/conversations/index.mjs.map +1 -1
  305. package/resources/support/conversations/participants.d.mts.map +1 -1
  306. package/resources/support/conversations/participants.d.ts.map +1 -1
  307. package/resources/support/conversations/participants.mjs.map +1 -1
  308. package/resources/support/conversations.d.mts.map +1 -1
  309. package/resources/support/conversations.d.ts.map +1 -1
  310. package/resources/support/conversations.mjs.map +1 -1
  311. package/resources/support/index.d.mts +3 -3
  312. package/resources/support/index.d.mts.map +1 -1
  313. package/resources/support/index.d.ts +3 -3
  314. package/resources/support/index.d.ts.map +1 -1
  315. package/resources/support/index.js.map +1 -1
  316. package/resources/support/index.mjs.map +1 -1
  317. package/resources/support/support.d.mts +4 -4
  318. package/resources/support/support.d.mts.map +1 -1
  319. package/resources/support/support.d.ts +4 -4
  320. package/resources/support/support.d.ts.map +1 -1
  321. package/resources/support/support.js.map +1 -1
  322. package/resources/support/support.mjs.map +1 -1
  323. package/resources/support/tickets/categories.d.mts +18 -18
  324. package/resources/support/tickets/categories.d.mts.map +1 -1
  325. package/resources/support/tickets/categories.d.ts +18 -18
  326. package/resources/support/tickets/categories.d.ts.map +1 -1
  327. package/resources/support/tickets/categories.js +25 -25
  328. package/resources/support/tickets/categories.js.map +1 -1
  329. package/resources/support/tickets/categories.mjs +25 -25
  330. package/resources/support/tickets/categories.mjs.map +1 -1
  331. package/resources/support/tickets/custom-fields.d.mts +20 -20
  332. package/resources/support/tickets/custom-fields.d.mts.map +1 -1
  333. package/resources/support/tickets/custom-fields.d.ts +20 -20
  334. package/resources/support/tickets/custom-fields.d.ts.map +1 -1
  335. package/resources/support/tickets/custom-fields.js +19 -19
  336. package/resources/support/tickets/custom-fields.js.map +1 -1
  337. package/resources/support/tickets/custom-fields.mjs +19 -19
  338. package/resources/support/tickets/custom-fields.mjs.map +1 -1
  339. package/resources/support/tickets/index.d.mts +4 -4
  340. package/resources/support/tickets/index.d.mts.map +1 -1
  341. package/resources/support/tickets/index.d.ts +4 -4
  342. package/resources/support/tickets/index.d.ts.map +1 -1
  343. package/resources/support/tickets/index.mjs.map +1 -1
  344. package/resources/support/tickets/statuses.d.mts +17 -17
  345. package/resources/support/tickets/statuses.d.mts.map +1 -1
  346. package/resources/support/tickets/statuses.d.ts +17 -17
  347. package/resources/support/tickets/statuses.d.ts.map +1 -1
  348. package/resources/support/tickets/statuses.js +21 -21
  349. package/resources/support/tickets/statuses.js.map +1 -1
  350. package/resources/support/tickets/statuses.mjs +21 -21
  351. package/resources/support/tickets/statuses.mjs.map +1 -1
  352. package/resources/support/tickets/tickets.d.mts +69 -69
  353. package/resources/support/tickets/tickets.d.mts.map +1 -1
  354. package/resources/support/tickets/tickets.d.ts +69 -69
  355. package/resources/support/tickets/tickets.d.ts.map +1 -1
  356. package/resources/support/tickets/tickets.js +44 -44
  357. package/resources/support/tickets/tickets.js.map +1 -1
  358. package/resources/support/tickets/tickets.mjs +44 -44
  359. package/resources/support/tickets/tickets.mjs.map +1 -1
  360. package/resources/support/tickets.d.mts.map +1 -1
  361. package/resources/support/tickets.d.ts.map +1 -1
  362. package/resources/support/tickets.mjs.map +1 -1
  363. package/resources/support.d.mts.map +1 -1
  364. package/resources/support.d.ts.map +1 -1
  365. package/resources/support.mjs.map +1 -1
  366. package/resources/surveys.d.mts +41 -41
  367. package/resources/surveys.d.mts.map +1 -1
  368. package/resources/surveys.d.ts +41 -41
  369. package/resources/surveys.d.ts.map +1 -1
  370. package/resources/surveys.js +44 -44
  371. package/resources/surveys.js.map +1 -1
  372. package/resources/surveys.mjs +44 -44
  373. package/resources/surveys.mjs.map +1 -1
  374. package/resources/users/companies/companies.d.mts +149 -177
  375. package/resources/users/companies/companies.d.mts.map +1 -1
  376. package/resources/users/companies/companies.d.ts +149 -177
  377. package/resources/users/companies/companies.d.ts.map +1 -1
  378. package/resources/users/companies/companies.js +153 -142
  379. package/resources/users/companies/companies.js.map +1 -1
  380. package/resources/users/companies/companies.mjs +153 -142
  381. package/resources/users/companies/companies.mjs.map +1 -1
  382. package/resources/users/companies/contacts.d.mts.map +1 -1
  383. package/resources/users/companies/contacts.d.ts.map +1 -1
  384. package/resources/users/companies/contacts.mjs.map +1 -1
  385. package/resources/users/companies/index.d.mts +1 -1
  386. package/resources/users/companies/index.d.mts.map +1 -1
  387. package/resources/users/companies/index.d.ts +1 -1
  388. package/resources/users/companies/index.d.ts.map +1 -1
  389. package/resources/users/companies/index.mjs.map +1 -1
  390. package/resources/users/companies.d.mts.map +1 -1
  391. package/resources/users/companies.d.ts.map +1 -1
  392. package/resources/users/companies.mjs.map +1 -1
  393. package/resources/users/contacts/by-user-id/by-user-id.d.mts.map +1 -1
  394. package/resources/users/contacts/by-user-id/by-user-id.d.ts.map +1 -1
  395. package/resources/users/contacts/by-user-id/by-user-id.mjs.map +1 -1
  396. package/resources/users/contacts/by-user-id/email-preferences.d.mts.map +1 -1
  397. package/resources/users/contacts/by-user-id/email-preferences.d.ts.map +1 -1
  398. package/resources/users/contacts/by-user-id/email-preferences.mjs.map +1 -1
  399. package/resources/users/contacts/by-user-id/index.d.mts.map +1 -1
  400. package/resources/users/contacts/by-user-id/index.d.ts.map +1 -1
  401. package/resources/users/contacts/by-user-id/index.mjs.map +1 -1
  402. package/resources/users/contacts/by-user-id.d.mts.map +1 -1
  403. package/resources/users/contacts/by-user-id.d.ts.map +1 -1
  404. package/resources/users/contacts/by-user-id.mjs.map +1 -1
  405. package/resources/users/contacts/contacts.d.mts +229 -256
  406. package/resources/users/contacts/contacts.d.mts.map +1 -1
  407. package/resources/users/contacts/contacts.d.ts +229 -256
  408. package/resources/users/contacts/contacts.d.ts.map +1 -1
  409. package/resources/users/contacts/contacts.js +213 -201
  410. package/resources/users/contacts/contacts.js.map +1 -1
  411. package/resources/users/contacts/contacts.mjs +213 -201
  412. package/resources/users/contacts/contacts.mjs.map +1 -1
  413. package/resources/users/contacts/email-preferences.d.mts.map +1 -1
  414. package/resources/users/contacts/email-preferences.d.ts.map +1 -1
  415. package/resources/users/contacts/email-preferences.mjs.map +1 -1
  416. package/resources/users/contacts/index.d.mts +1 -1
  417. package/resources/users/contacts/index.d.mts.map +1 -1
  418. package/resources/users/contacts/index.d.ts +1 -1
  419. package/resources/users/contacts/index.d.ts.map +1 -1
  420. package/resources/users/contacts/index.mjs.map +1 -1
  421. package/resources/users/contacts.d.mts.map +1 -1
  422. package/resources/users/contacts.d.ts.map +1 -1
  423. package/resources/users/contacts.mjs.map +1 -1
  424. package/resources/users/index.d.mts +2 -2
  425. package/resources/users/index.d.mts.map +1 -1
  426. package/resources/users/index.d.ts +2 -2
  427. package/resources/users/index.d.ts.map +1 -1
  428. package/resources/users/index.mjs.map +1 -1
  429. package/resources/users/users.d.mts +2 -2
  430. package/resources/users/users.d.mts.map +1 -1
  431. package/resources/users/users.d.ts +2 -2
  432. package/resources/users/users.d.ts.map +1 -1
  433. package/resources/users/users.mjs.map +1 -1
  434. package/resources/users.d.mts.map +1 -1
  435. package/resources/users.d.ts.map +1 -1
  436. package/resources/users.mjs.map +1 -1
  437. package/resources/webhooks.d.mts +75 -75
  438. package/resources/webhooks.d.mts.map +1 -1
  439. package/resources/webhooks.d.ts +75 -75
  440. package/resources/webhooks.d.ts.map +1 -1
  441. package/resources/webhooks.js +77 -77
  442. package/resources/webhooks.js.map +1 -1
  443. package/resources/webhooks.mjs +77 -77
  444. package/resources/webhooks.mjs.map +1 -1
  445. package/resources.d.mts.map +1 -1
  446. package/resources.d.ts.map +1 -1
  447. package/resources.mjs.map +1 -1
  448. package/src/client.ts +25 -3
  449. package/src/internal/utils/log.ts +2 -0
  450. package/src/resources/changelogs/changelogs.ts +170 -170
  451. package/src/resources/changelogs/index.ts +1 -1
  452. package/src/resources/conversation-attributes.ts +181 -0
  453. package/src/resources/feedback/boards.ts +28 -28
  454. package/src/resources/feedback/comments.ts +464 -141
  455. package/src/resources/feedback/custom-fields.ts +44 -44
  456. package/src/resources/feedback/feedback.ts +23 -5
  457. package/src/resources/feedback/index.ts +14 -5
  458. package/src/resources/feedback/post-statuses.ts +31 -31
  459. package/src/resources/feedback/posts/index.ts +7 -1
  460. package/src/resources/feedback/posts/posts.ts +294 -340
  461. package/src/resources/help-center/articles.ts +123 -186
  462. package/src/resources/help-center/collections.ts +84 -84
  463. package/src/resources/help-center/help-center.ts +7 -5
  464. package/src/resources/help-center/help-centers.ts +55 -55
  465. package/src/resources/help-center/index.ts +6 -5
  466. package/src/resources/help-center/redirect-rules.ts +174 -174
  467. package/src/resources/index.ts +11 -3
  468. package/src/resources/organization/admins.ts +33 -33
  469. package/src/resources/organization/brands.ts +66 -66
  470. package/src/resources/organization/index.ts +3 -3
  471. package/src/resources/organization/organization.ts +3 -3
  472. package/src/resources/organization/teams.ts +52 -52
  473. package/src/resources/support/conversation-tags.ts +59 -59
  474. package/src/resources/support/conversations/conversations.ts +748 -867
  475. package/src/resources/support/conversations/index.ts +11 -6
  476. package/src/resources/support/index.ts +14 -9
  477. package/src/resources/support/support.ts +21 -11
  478. package/src/resources/support/tickets/categories.ts +33 -33
  479. package/src/resources/support/tickets/custom-fields.ts +27 -27
  480. package/src/resources/support/tickets/index.ts +4 -4
  481. package/src/resources/support/tickets/statuses.ts +29 -29
  482. package/src/resources/support/tickets/tickets.ts +95 -95
  483. package/src/resources/surveys.ts +58 -58
  484. package/src/resources/users/companies/companies.ts +193 -223
  485. package/src/resources/users/companies/index.ts +2 -2
  486. package/src/resources/users/contacts/contacts.ts +275 -302
  487. package/src/resources/users/contacts/index.ts +3 -3
  488. package/src/resources/users/index.ts +5 -5
  489. package/src/resources/users/users.ts +5 -5
  490. package/src/resources/webhooks.ts +95 -95
  491. package/src/version.ts +1 -1
  492. package/uploads.d.mts +1 -0
  493. package/uploads.d.mts.map +1 -1
  494. package/uploads.d.ts +1 -0
  495. package/uploads.d.ts.map +1 -1
  496. package/uploads.mjs +1 -0
  497. package/uploads.mjs.map +1 -1
  498. package/version.d.mts +1 -1
  499. package/version.d.ts +1 -1
  500. package/version.js +1 -1
  501. package/version.mjs +1 -1
@@ -1,6 +1,8 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  import { APIResource } from '../../core/resource';
4
+ import * as CommentsAPI from './comments';
5
+ import * as PostsAPI from './posts/posts';
4
6
  import * as TicketsAPI from '../support/tickets/tickets';
5
7
  import { APIPromise } from '../../core/api-promise';
6
8
  import { CursorPage, type CursorPageParams, PagePromise } from '../../core/pagination';
@@ -12,6 +14,103 @@ import { path } from '../../internal/utils/path';
12
14
  * Threaded discussions on posts and changelogs. Comments support voting, moderation, and privacy controls.
13
15
  */
14
16
  export class Comments extends APIResource {
17
+ /**
18
+ * Returns comments for your organization.
19
+ *
20
+ * Comments are threaded discussions. Each comment can have:
21
+ *
22
+ * - Author information
23
+ * - Voting (upvotes/downvotes)
24
+ * - Privacy settings (public/private)
25
+ * - Moderation status
26
+ * - Parent comment reference for threading
27
+ *
28
+ * ### Filtering
29
+ *
30
+ * Optionally filter by:
31
+ *
32
+ * - `postId` - Get comments for a specific post
33
+ * - `changelogId` - Get comments for a specific changelog
34
+ *
35
+ * If no filter is provided, returns all comments across the organization.
36
+ *
37
+ * ### Pagination
38
+ *
39
+ * This endpoint uses **cursor-based pagination**:
40
+ *
41
+ * - `limit` - Number of comments to return (1-100, default 10)
42
+ * - `cursor` - Opaque cursor from a previous response's `nextCursor` field
43
+ *
44
+ * **Example:** To paginate through results:
45
+ *
46
+ * 1. First request: `GET /v2/comments?postId={id}&limit=10`
47
+ * 2. If `nextCursor` is not null, use it for the next page
48
+ * 3. Next request: `GET /v2/comments?postId={id}&limit=10&cursor={nextCursor}`
49
+ *
50
+ * ### Response Format
51
+ *
52
+ * Returns a list object with:
53
+ *
54
+ * - `object` - Always "list"
55
+ * - `data` - Array of comment objects (flat structure with `parentCommentId` for
56
+ * threading)
57
+ * - `nextCursor` - Cursor for the next page (null if no more results)
58
+ *
59
+ * ### Comment Structure
60
+ *
61
+ * Each comment includes:
62
+ *
63
+ * - `id` - Unique comment identifier
64
+ * - `postId` / `changelogId` - Reference to the parent content
65
+ * - `parentCommentId` - Reference to parent comment (null for root comments)
66
+ * - `content` - Comment content in HTML format
67
+ * - `author` - Author information (id, name, profilePicture, type)
68
+ * - `upvotes` / `downvotes` / `score` - Voting metrics
69
+ * - `isPrivate` - Whether comment is only visible to admins
70
+ * - `inReview` - Whether comment is pending moderation
71
+ * - `created` / `updated` - Unix timestamps
72
+ *
73
+ * ### Additional Filters
74
+ *
75
+ * - `privacy` - Filter by privacy: "public", "private", or "all"
76
+ * - `inReview` - Filter by moderation status (true/false)
77
+ *
78
+ * ### Sorting
79
+ *
80
+ * Use `sortBy` to sort results:
81
+ *
82
+ * - `best` - Sort by confidence score (default, like Reddit)
83
+ * - `top` - Sort by net score (upvotes - downvotes)
84
+ * - `new` - Sort by creation date, newest first
85
+ * - `old` - Sort by creation date, oldest first
86
+ *
87
+ * @example
88
+ * ```ts
89
+ * // Automatically fetches more pages as needed.
90
+ * for await (const comment of client.feedback.comments.list()) {
91
+ * // ...
92
+ * }
93
+ * ```
94
+ */
95
+ list(
96
+ params: CommentListParams | null | undefined = {},
97
+ options?: RequestOptions,
98
+ ): PagePromise<CommentsCursorPage, Comment> {
99
+ const { 'Featurebase-Version': featurebaseVersion, ...query } = params ?? {};
100
+ return this._client.getAPIList('/v2/comments', CursorPage<Comment>, {
101
+ query,
102
+ ...options,
103
+ headers: buildHeaders([
104
+ {
105
+ ...(featurebaseVersion?.toString() != null ?
106
+ { 'Featurebase-Version': featurebaseVersion?.toString() }
107
+ : undefined),
108
+ },
109
+ options?.headers,
110
+ ]),
111
+ });
112
+ }
113
+
15
114
  /**
16
115
  * Creates a new comment or reply to an existing comment.
17
116
  *
@@ -199,103 +298,6 @@ export class Comments extends APIResource {
199
298
  });
200
299
  }
201
300
 
202
- /**
203
- * Returns comments for your organization.
204
- *
205
- * Comments are threaded discussions. Each comment can have:
206
- *
207
- * - Author information
208
- * - Voting (upvotes/downvotes)
209
- * - Privacy settings (public/private)
210
- * - Moderation status
211
- * - Parent comment reference for threading
212
- *
213
- * ### Filtering
214
- *
215
- * Optionally filter by:
216
- *
217
- * - `postId` - Get comments for a specific post
218
- * - `changelogId` - Get comments for a specific changelog
219
- *
220
- * If no filter is provided, returns all comments across the organization.
221
- *
222
- * ### Pagination
223
- *
224
- * This endpoint uses **cursor-based pagination**:
225
- *
226
- * - `limit` - Number of comments to return (1-100, default 10)
227
- * - `cursor` - Opaque cursor from a previous response's `nextCursor` field
228
- *
229
- * **Example:** To paginate through results:
230
- *
231
- * 1. First request: `GET /v2/comments?postId={id}&limit=10`
232
- * 2. If `nextCursor` is not null, use it for the next page
233
- * 3. Next request: `GET /v2/comments?postId={id}&limit=10&cursor={nextCursor}`
234
- *
235
- * ### Response Format
236
- *
237
- * Returns a list object with:
238
- *
239
- * - `object` - Always "list"
240
- * - `data` - Array of comment objects (flat structure with `parentCommentId` for
241
- * threading)
242
- * - `nextCursor` - Cursor for the next page (null if no more results)
243
- *
244
- * ### Comment Structure
245
- *
246
- * Each comment includes:
247
- *
248
- * - `id` - Unique comment identifier
249
- * - `postId` / `changelogId` - Reference to the parent content
250
- * - `parentCommentId` - Reference to parent comment (null for root comments)
251
- * - `content` - Comment content in HTML format
252
- * - `author` - Author information (id, name, profilePicture, type)
253
- * - `upvotes` / `downvotes` / `score` - Voting metrics
254
- * - `isPrivate` - Whether comment is only visible to admins
255
- * - `inReview` - Whether comment is pending moderation
256
- * - `created` / `updated` - Unix timestamps
257
- *
258
- * ### Additional Filters
259
- *
260
- * - `privacy` - Filter by privacy: "public", "private", or "all"
261
- * - `inReview` - Filter by moderation status (true/false)
262
- *
263
- * ### Sorting
264
- *
265
- * Use `sortBy` to sort results:
266
- *
267
- * - `best` - Sort by confidence score (default, like Reddit)
268
- * - `top` - Sort by net score (upvotes - downvotes)
269
- * - `new` - Sort by creation date, newest first
270
- * - `old` - Sort by creation date, oldest first
271
- *
272
- * @example
273
- * ```ts
274
- * // Automatically fetches more pages as needed.
275
- * for await (const comment of client.feedback.comments.list()) {
276
- * // ...
277
- * }
278
- * ```
279
- */
280
- list(
281
- params: CommentListParams | null | undefined = {},
282
- options?: RequestOptions,
283
- ): PagePromise<CommentsCursorPage, Comment> {
284
- const { 'Featurebase-Version': featurebaseVersion, ...query } = params ?? {};
285
- return this._client.getAPIList('/v2/comments', CursorPage<Comment>, {
286
- query,
287
- ...options,
288
- headers: buildHeaders([
289
- {
290
- ...(featurebaseVersion?.toString() != null ?
291
- { 'Featurebase-Version': featurebaseVersion?.toString() }
292
- : undefined),
293
- },
294
- options?.headers,
295
- ]),
296
- });
297
- }
298
-
299
301
  /**
300
302
  * Deletes a comment by its unique identifier.
301
303
  *
@@ -438,6 +440,167 @@ export class Comments extends APIResource {
438
440
  ]),
439
441
  });
440
442
  }
443
+
444
+ /**
445
+ * Search comments with a structured filter AST, full-text search, sorting, and
446
+ * cursor pagination.
447
+ *
448
+ * ### Two modes (combinable)
449
+ *
450
+ * - **Filter mode** — pass a structured `query` AST (and/or `sort`) and the
451
+ * endpoint returns comments matching the filter, ordered by `sort` (default
452
+ * `createdAt:desc`). Same shape as `/v2/posts/search`,
453
+ * `/v2/conversations/search`, `/v2/companies/search`, `/v2/contacts/search`.
454
+ * - **Search mode** — pass a top-level `search` string and the endpoint runs a
455
+ * hybrid full-text + vector search over comment `content`, returning matches
456
+ * ranked by relevance. Optional: combine with `query` to constrain the search to
457
+ * a post / changelog / author / time window, and/or `sort` to override relevance
458
+ * ranking with chronological order.
459
+ *
460
+ * ```json
461
+ * {
462
+ * "search": "dark mode feedback",
463
+ * "query": {
464
+ * "operator": "AND",
465
+ * "value": [
466
+ * {
467
+ * "field": "postId",
468
+ * "operator": "=",
469
+ * "value": "507f1f77bcf86cd799439011"
470
+ * }
471
+ * ]
472
+ * },
473
+ * "limit": 20
474
+ * }
475
+ * ```
476
+ *
477
+ * `search` is server-managed: no operators, no field selection, no special syntax
478
+ * — same plain-text contract as `/v2/posts/search`. The string must be 1–500
479
+ * characters.
480
+ *
481
+ * ### Structured query AST
482
+ *
483
+ * Each clause has the shape `{ field, operator, value }`. You can pass a single
484
+ * clause or wrap up to 15 in a top-level `AND` group. To list every comment a
485
+ * contact has authored:
486
+ *
487
+ * ```json
488
+ * {
489
+ * "query": {
490
+ * "field": "authorId",
491
+ * "operator": "=",
492
+ * "value": "507f1f77bcf86cd799439011"
493
+ * },
494
+ * "sort": "createdAt:desc",
495
+ * "limit": 100
496
+ * }
497
+ * ```
498
+ *
499
+ * Top-level `OR` groups and nested groups are not supported in this version.
500
+ *
501
+ * ### Supported fields and operators
502
+ *
503
+ * Field names are camelCase, matching the rest of the v2 public API. The other v2
504
+ * search endpoints (posts, contacts, companies, conversations) shipped earlier
505
+ * with snake_case field names and continue to accept those for back-compat;
506
+ * comments search is greenfield and ships with camelCase only.
507
+ *
508
+ * | Field | Type | Operators |
509
+ * | ------------------------------------- | ----------------------- | --------------------------------------------------------------------------- |
510
+ * | `authorId` | string (user id) | `=`, `!=`, `IN`, `NIN` |
511
+ * | `postId` | id or null (submission) | `=`, `!=`, `IN`, `NIN` (use `null` for changelog-only comments) |
512
+ * | `changelogId` | id or null | `=`, `!=`, `IN`, `NIN` (use `null` for post-only comments) |
513
+ * | `parentCommentId` | id or null | `=`, `!=`, `IN`, `NIN` (use `null` for root comments, non-null for replies) |
514
+ * | `isPrivate` | boolean | `=`, `!=` |
515
+ * | `inReview` | boolean | `=`, `!=` |
516
+ * | `createdAt` | unix seconds | `=`, `!=`, `>`, `<`, `>=`, `<=` |
517
+ * | `upvotes`, `score`, `confidenceScore` | number | `=`, `!=`, `>`, `<`, `>=`, `<=` |
518
+ *
519
+ * Use the top-level `search` field for full-text search across comment `content`
520
+ * (see "Search mode" above). The clause-level operators `~`, `!~`, `^`, `$` are
521
+ * reserved for future use and currently return `400`.
522
+ *
523
+ * A filter-mode query (no `search`) consisting only of `!=` or `NIN` clauses on
524
+ * unbounded fields is rejected with `query_too_broad` to prevent full-org scans.
525
+ * Combine the negation with at least one positive clause (`=`, `IN`, `>`, `<`)
526
+ * instead. Boolean fields (`isPrivate`, `inReview`) are bounded so a standalone
527
+ * negation on them is allowed. Search mode (with `search` set) relaxes this — the
528
+ * FTS query itself acts as the positive constraint.
529
+ *
530
+ * ### Sort
531
+ *
532
+ * Allowed values:
533
+ *
534
+ * - `createdAt:desc` (default in filter mode), `createdAt:asc` — newest / oldest
535
+ * first
536
+ * - `confidenceScore:desc` (the dashboard's "Best" view), `confidenceScore:asc`
537
+ * (low-confidence first, useful for moderation)
538
+ * - `score:desc` — raw upvotes − downvotes ("Top")
539
+ *
540
+ * Numeric counters (`upvotes`, `score`, `confidenceScore`) remain available as
541
+ * filter fields with the full range of operators; only the sort axes above are
542
+ * surfaced to keep the cursor-pagination contract small. `score:asc` and `upvotes`
543
+ * (both directions) are deliberately not exposed: `upvotes:desc` is identical to
544
+ * `score:desc` for the vast majority of comments (no downvotes), and
545
+ * "most-downvoted-first" / "least-upvoted-first" have no product use case.
546
+ *
547
+ * When `search` is set, results are ranked by relevance unless `sort` is also set,
548
+ * in which case the matching comments are returned in the requested order. The
549
+ * chosen sort axis (or relevance) is encoded in the cursor; switching `sort` (or
550
+ * toggling `search` on/off) mid-pagination returns `400 invalid_cursor`. Restart
551
+ * pagination without a cursor when changing the sort or search shape.
552
+ *
553
+ * ### Pagination
554
+ *
555
+ * Cursor-based, `limit` between 1 and 100 (default 10). In filter mode,
556
+ * `totalCount` is approximate and capped at 5000; `totalCountCapped` is `true`
557
+ * when the real count may be higher. In search mode, `totalCount` reflects the
558
+ * matching survivor set after the AST filter and is capped at 200 (the Turbopuffer
559
+ * top-K).
560
+ *
561
+ * ### Server-side guards
562
+ *
563
+ * These visibility rules are always applied and CANNOT be widened via the AST:
564
+ *
565
+ * - Callers without the `view_comments_private` permission can only see public
566
+ * comments. Sending `{ field: "isPrivate", operator: "=", value: true }` as such
567
+ * a caller returns an empty result, NOT a 403 — the security floor wins.
568
+ * - Callers without the `moderate_comments` permission can only see in-review
569
+ * comments they authored themselves. `inReview` queries from such callers are
570
+ * intersected with the authored-by-self constraint.
571
+ * - Spam comments (`isSpam: true`) are NOT excluded — this matches the legacy
572
+ * `GET /v2/comments` behavior. If you want to exclude spam, filter on the
573
+ * `isSpam` field (NOT exposed today; track follow-up).
574
+ *
575
+ * ### Response
576
+ *
577
+ * Returns a standard list envelope with comment rows identical to
578
+ * `GET /v2/comments/{id}`.
579
+ *
580
+ * ### Version Availability
581
+ *
582
+ * This endpoint is only available in API version 2026-01-01.nova and newer.
583
+ *
584
+ * @example
585
+ * ```ts
586
+ * const response = await client.feedback.comments.search();
587
+ * ```
588
+ */
589
+ search(params: CommentSearchParams, options?: RequestOptions): APIPromise<CommentSearchResponse> {
590
+ const { 'Featurebase-Version': featurebaseVersion, ...body } = params;
591
+ return this._client.post('/v2/comments/search', {
592
+ body,
593
+ ...options,
594
+ headers: buildHeaders([
595
+ {
596
+ ...(featurebaseVersion?.toString() != null ?
597
+ { 'Featurebase-Version': featurebaseVersion?.toString() }
598
+ : undefined),
599
+ },
600
+ options?.headers,
601
+ ]),
602
+ });
603
+ }
441
604
  }
442
605
 
443
606
  export type CommentsCursorPage = CursorPage<Comment>;
@@ -448,7 +611,7 @@ export interface Comment {
448
611
  */
449
612
  id: string;
450
613
 
451
- author: Comment.Author | null;
614
+ author: CommentAuthor | null;
452
615
 
453
616
  /**
454
617
  * Changelog ID this comment belongs to
@@ -526,28 +689,26 @@ export interface Comment {
526
689
  upvotes: number;
527
690
  }
528
691
 
529
- export namespace Comment {
530
- export interface Author {
531
- /**
532
- * Author unique identifier
533
- */
534
- id: string | null;
692
+ export interface CommentAuthor {
693
+ /**
694
+ * Author unique identifier
695
+ */
696
+ id: string | null;
535
697
 
536
- /**
537
- * Author display name
538
- */
539
- name: string;
698
+ /**
699
+ * Author display name
700
+ */
701
+ name: string;
540
702
 
541
- /**
542
- * Author profile picture URL
543
- */
544
- profilePicture: string | null;
703
+ /**
704
+ * Author profile picture URL
705
+ */
706
+ profilePicture: string | null;
545
707
 
546
- /**
547
- * Type of user who authored the comment
548
- */
549
- type: 'admin' | 'customer' | 'guest' | 'integration' | 'bot' | 'lead';
550
- }
708
+ /**
709
+ * Type of user who authored the comment
710
+ */
711
+ type: 'admin' | 'customer' | 'guest' | 'integration' | 'bot' | 'lead';
551
712
  }
552
713
 
553
714
  export interface CommentDelete0Response {
@@ -571,6 +732,155 @@ export interface CommentDelete1Response {
571
732
  success: boolean;
572
733
  }
573
734
 
735
+ export interface CommentSearchResponse {
736
+ /**
737
+ * Array of search results
738
+ */
739
+ data: Array<CommentSearchResponse.Data>;
740
+
741
+ /**
742
+ * Cursor for fetching the next page (null if no more results)
743
+ */
744
+ nextCursor: string | null;
745
+
746
+ /**
747
+ * Object type identifier
748
+ */
749
+ object: 'list';
750
+
751
+ /**
752
+ * Total number of comments matching the query, capped at 5000 in filter mode and
753
+ * 200 (the Turbopuffer top-K) in search mode. When at the cap, `totalCountCapped`
754
+ * is true and the value is exactly the cap.
755
+ */
756
+ totalCount?: number;
757
+
758
+ /**
759
+ * True when `totalCount` is exactly the cap and the real count may be higher. UI
760
+ * can render as e.g. "5000+".
761
+ */
762
+ totalCountCapped?: boolean;
763
+ }
764
+
765
+ export namespace CommentSearchResponse {
766
+ export interface Data {
767
+ /**
768
+ * Unique identifier
769
+ */
770
+ id: string;
771
+
772
+ author: CommentsAPI.CommentAuthor | null;
773
+
774
+ /**
775
+ * Changelog ID this comment belongs to
776
+ */
777
+ changelogId: string | null;
778
+
779
+ /**
780
+ * Comment content in HTML format
781
+ */
782
+ content: string;
783
+
784
+ /**
785
+ * ISO 8601 timestamp when created
786
+ */
787
+ createdAt: string;
788
+
789
+ /**
790
+ * Number of downvotes
791
+ */
792
+ downvotes: number;
793
+
794
+ /**
795
+ * Whether the comment is in review
796
+ */
797
+ inReview: boolean;
798
+
799
+ /**
800
+ * Whether the comment is deleted
801
+ */
802
+ isDeleted: boolean;
803
+
804
+ /**
805
+ * Whether the comment is pinned
806
+ */
807
+ isPinned: boolean;
808
+
809
+ /**
810
+ * Whether the comment is private
811
+ */
812
+ isPrivate: boolean;
813
+
814
+ /**
815
+ * Whether the comment is spam
816
+ */
817
+ isSpam: boolean;
818
+
819
+ /**
820
+ * Object type identifier
821
+ */
822
+ object: 'comment';
823
+
824
+ /**
825
+ * Parent comment ID for replies, null for root comments
826
+ */
827
+ parentCommentId: string | null;
828
+
829
+ /**
830
+ * Post ID this comment belongs to
831
+ */
832
+ postId: string | null;
833
+
834
+ /**
835
+ * Net score (upvotes - downvotes)
836
+ */
837
+ score: number;
838
+
839
+ /**
840
+ * ISO 8601 timestamp when updated
841
+ */
842
+ updatedAt: string;
843
+
844
+ /**
845
+ * Number of upvotes
846
+ */
847
+ upvotes: number;
848
+ }
849
+ }
850
+
851
+ export interface CommentListParams extends CursorPageParams {
852
+ /**
853
+ * Query param: Filter comments by changelog ID
854
+ */
855
+ changelogId?: string;
856
+
857
+ /**
858
+ * Query param: Filter by review status
859
+ */
860
+ inReview?: boolean | null;
861
+
862
+ /**
863
+ * Query param: Filter comments by post ID
864
+ */
865
+ postId?: string;
866
+
867
+ /**
868
+ * Query param: Filter comments by privacy
869
+ */
870
+ privacy?: 'public' | 'private' | 'all';
871
+
872
+ /**
873
+ * Query param: Sort order for comments
874
+ */
875
+ sortBy?: 'best' | 'top' | 'new' | 'old';
876
+
877
+ /**
878
+ * Header param: API version for this request. Defaults to your organization's
879
+ * configured API version if not specified.
880
+ */
881
+ 'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
882
+ }
883
+
574
884
  export interface CommentCreateParams {
575
885
  /**
576
886
  * Body param: Comment content in HTML format
@@ -687,52 +997,62 @@ export interface CommentUpdateParams {
687
997
  'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
688
998
  }
689
999
 
690
- export interface CommentListParams extends CursorPageParams {
1000
+ export interface CommentDelete0Params {
691
1001
  /**
692
- * Query param: Filter comments by changelog ID
1002
+ * API version for this request. Defaults to your organization's configured API
1003
+ * version if not specified.
693
1004
  */
694
- changelogId?: string;
1005
+ 'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
1006
+ }
695
1007
 
1008
+ export interface CommentDelete1Params {
696
1009
  /**
697
- * Query param: Filter by review status
1010
+ * Body param: Comment ID
698
1011
  */
699
- inReview?: boolean | null;
1012
+ id: string;
700
1013
 
701
1014
  /**
702
- * Query param: Filter comments by post ID
1015
+ * Header param: API version for this request. Defaults to your organization's
1016
+ * configured API version if not specified.
703
1017
  */
704
- postId?: string;
1018
+ 'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
1019
+ }
705
1020
 
1021
+ export interface CommentSearchParams {
706
1022
  /**
707
- * Query param: Filter comments by privacy
1023
+ * Body param: An opaque cursor for pagination. Use the `nextCursor` value from a
1024
+ * previous response to fetch the next page of results.
708
1025
  */
709
- privacy?: 'public' | 'private' | 'all';
1026
+ cursor?: string;
710
1027
 
711
1028
  /**
712
- * Query param: Sort order for comments
1029
+ * Body param: A limit on the number of objects to be returned, between 1 and 100.
713
1030
  */
714
- sortBy?: 'best' | 'top' | 'new' | 'old';
1031
+ limit?: number;
715
1032
 
716
1033
  /**
717
- * Header param: API version for this request. Defaults to your organization's
718
- * configured API version if not specified.
1034
+ * Body param: Structured filter AST. Either a single filter clause or one
1035
+ * top-level AND group (max 15 clauses). Top-level OR groups are not yet supported.
719
1036
  */
720
- 'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
721
- }
1037
+ query?: PostsAPI.SearchFilter | PostsAPI.SearchFilterGroup;
722
1038
 
723
- export interface CommentDelete0Params {
724
1039
  /**
725
- * API version for this request. Defaults to your organization's configured API
726
- * version if not specified.
1040
+ * Body param: Plain-text full-text search across comment `content`. Server-managed
1041
+ * (hybrid BM25 + vector, semanticRatio 0.5) — no operators, no field selection.
1042
+ * When `search` is set, results are ranked by relevance unless `sort` is also set,
1043
+ * in which case the matching comments are returned in the requested order. Combine
1044
+ * with `query` to constrain the search to a post / changelog / author / time
1045
+ * window.
727
1046
  */
728
- 'Featurebase-Version'?: '2026-01-01.nova' | '2025-12-12.clover';
729
- }
1047
+ search?: string;
730
1048
 
731
- export interface CommentDelete1Params {
732
1049
  /**
733
- * Body param: Comment ID
1050
+ * Body param: Sort field + direction. Defaults to `createdAt:desc` in filter mode
1051
+ * and to relevance in search mode. The chosen sort axis is encoded in the cursor;
1052
+ * switching `sort` (or toggling `search` on/off) mid-pagination returns
1053
+ * `400 invalid_cursor`.
734
1054
  */
735
- id: string;
1055
+ sort?: 'createdAt:desc' | 'createdAt:asc' | 'confidenceScore:desc' | 'confidenceScore:asc' | 'score:desc';
736
1056
 
737
1057
  /**
738
1058
  * Header param: API version for this request. Defaults to your organization's
@@ -744,14 +1064,17 @@ export interface CommentDelete1Params {
744
1064
  export declare namespace Comments {
745
1065
  export {
746
1066
  type Comment as Comment,
1067
+ type CommentAuthor as CommentAuthor,
747
1068
  type CommentDelete0Response as CommentDelete0Response,
748
1069
  type CommentDelete1Response as CommentDelete1Response,
1070
+ type CommentSearchResponse as CommentSearchResponse,
749
1071
  type CommentsCursorPage as CommentsCursorPage,
1072
+ type CommentListParams as CommentListParams,
750
1073
  type CommentCreateParams as CommentCreateParams,
751
1074
  type CommentRetrieveParams as CommentRetrieveParams,
752
1075
  type CommentUpdateParams as CommentUpdateParams,
753
- type CommentListParams as CommentListParams,
754
1076
  type CommentDelete0Params as CommentDelete0Params,
755
1077
  type CommentDelete1Params as CommentDelete1Params,
1078
+ type CommentSearchParams as CommentSearchParams,
756
1079
  };
757
1080
  }