featurebase-node 0.0.2

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 (795) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/LICENSE +201 -0
  3. package/README.md +356 -0
  4. package/api-promise.d.mts +2 -0
  5. package/api-promise.d.mts.map +1 -0
  6. package/api-promise.d.ts +2 -0
  7. package/api-promise.d.ts.map +1 -0
  8. package/api-promise.js +6 -0
  9. package/api-promise.js.map +1 -0
  10. package/api-promise.mjs +2 -0
  11. package/api-promise.mjs.map +1 -0
  12. package/client.d.mts +274 -0
  13. package/client.d.mts.map +1 -0
  14. package/client.d.ts +274 -0
  15. package/client.d.ts.map +1 -0
  16. package/client.js +569 -0
  17. package/client.js.map +1 -0
  18. package/client.mjs +565 -0
  19. package/client.mjs.map +1 -0
  20. package/core/api-promise.d.mts +46 -0
  21. package/core/api-promise.d.mts.map +1 -0
  22. package/core/api-promise.d.ts +46 -0
  23. package/core/api-promise.d.ts.map +1 -0
  24. package/core/api-promise.js +74 -0
  25. package/core/api-promise.js.map +1 -0
  26. package/core/api-promise.mjs +70 -0
  27. package/core/api-promise.mjs.map +1 -0
  28. package/core/error.d.mts +46 -0
  29. package/core/error.d.mts.map +1 -0
  30. package/core/error.d.ts +46 -0
  31. package/core/error.d.ts.map +1 -0
  32. package/core/error.js +113 -0
  33. package/core/error.js.map +1 -0
  34. package/core/error.mjs +97 -0
  35. package/core/error.mjs.map +1 -0
  36. package/core/resource.d.mts +6 -0
  37. package/core/resource.d.mts.map +1 -0
  38. package/core/resource.d.ts +6 -0
  39. package/core/resource.d.ts.map +1 -0
  40. package/core/resource.js +11 -0
  41. package/core/resource.js.map +1 -0
  42. package/core/resource.mjs +7 -0
  43. package/core/resource.mjs.map +1 -0
  44. package/core/uploads.d.mts +3 -0
  45. package/core/uploads.d.mts.map +1 -0
  46. package/core/uploads.d.ts +3 -0
  47. package/core/uploads.d.ts.map +1 -0
  48. package/core/uploads.js +6 -0
  49. package/core/uploads.js.map +1 -0
  50. package/core/uploads.mjs +2 -0
  51. package/core/uploads.mjs.map +1 -0
  52. package/error.d.mts +2 -0
  53. package/error.d.mts.map +1 -0
  54. package/error.d.ts +2 -0
  55. package/error.d.ts.map +1 -0
  56. package/error.js +6 -0
  57. package/error.js.map +1 -0
  58. package/error.mjs +2 -0
  59. package/error.mjs.map +1 -0
  60. package/index.d.mts +6 -0
  61. package/index.d.mts.map +1 -0
  62. package/index.d.ts +6 -0
  63. package/index.d.ts.map +1 -0
  64. package/index.js +30 -0
  65. package/index.js.map +1 -0
  66. package/index.mjs +7 -0
  67. package/index.mjs.map +1 -0
  68. package/internal/builtin-types.d.mts +73 -0
  69. package/internal/builtin-types.d.mts.map +1 -0
  70. package/internal/builtin-types.d.ts +73 -0
  71. package/internal/builtin-types.d.ts.map +1 -0
  72. package/internal/builtin-types.js +4 -0
  73. package/internal/builtin-types.js.map +1 -0
  74. package/internal/builtin-types.mjs +3 -0
  75. package/internal/builtin-types.mjs.map +1 -0
  76. package/internal/detect-platform.d.mts +15 -0
  77. package/internal/detect-platform.d.mts.map +1 -0
  78. package/internal/detect-platform.d.ts +15 -0
  79. package/internal/detect-platform.d.ts.map +1 -0
  80. package/internal/detect-platform.js +162 -0
  81. package/internal/detect-platform.js.map +1 -0
  82. package/internal/detect-platform.mjs +157 -0
  83. package/internal/detect-platform.mjs.map +1 -0
  84. package/internal/errors.d.mts +3 -0
  85. package/internal/errors.d.mts.map +1 -0
  86. package/internal/errors.d.ts +3 -0
  87. package/internal/errors.d.ts.map +1 -0
  88. package/internal/errors.js +41 -0
  89. package/internal/errors.js.map +1 -0
  90. package/internal/errors.mjs +36 -0
  91. package/internal/errors.mjs.map +1 -0
  92. package/internal/headers.d.mts +20 -0
  93. package/internal/headers.d.mts.map +1 -0
  94. package/internal/headers.d.ts +20 -0
  95. package/internal/headers.d.ts.map +1 -0
  96. package/internal/headers.js +79 -0
  97. package/internal/headers.js.map +1 -0
  98. package/internal/headers.mjs +74 -0
  99. package/internal/headers.mjs.map +1 -0
  100. package/internal/parse.d.mts +12 -0
  101. package/internal/parse.d.mts.map +1 -0
  102. package/internal/parse.d.ts +12 -0
  103. package/internal/parse.d.ts.map +1 -0
  104. package/internal/parse.js +40 -0
  105. package/internal/parse.js.map +1 -0
  106. package/internal/parse.mjs +37 -0
  107. package/internal/parse.mjs.map +1 -0
  108. package/internal/qs/formats.d.mts +7 -0
  109. package/internal/qs/formats.d.mts.map +1 -0
  110. package/internal/qs/formats.d.ts +7 -0
  111. package/internal/qs/formats.d.ts.map +1 -0
  112. package/internal/qs/formats.js +13 -0
  113. package/internal/qs/formats.js.map +1 -0
  114. package/internal/qs/formats.mjs +9 -0
  115. package/internal/qs/formats.mjs.map +1 -0
  116. package/internal/qs/index.d.mts +10 -0
  117. package/internal/qs/index.d.mts.map +1 -0
  118. package/internal/qs/index.d.ts +10 -0
  119. package/internal/qs/index.d.ts.map +1 -0
  120. package/internal/qs/index.js +14 -0
  121. package/internal/qs/index.js.map +1 -0
  122. package/internal/qs/index.mjs +10 -0
  123. package/internal/qs/index.mjs.map +1 -0
  124. package/internal/qs/stringify.d.mts +3 -0
  125. package/internal/qs/stringify.d.mts.map +1 -0
  126. package/internal/qs/stringify.d.ts +3 -0
  127. package/internal/qs/stringify.d.ts.map +1 -0
  128. package/internal/qs/stringify.js +277 -0
  129. package/internal/qs/stringify.js.map +1 -0
  130. package/internal/qs/stringify.mjs +274 -0
  131. package/internal/qs/stringify.mjs.map +1 -0
  132. package/internal/qs/types.d.mts +57 -0
  133. package/internal/qs/types.d.mts.map +1 -0
  134. package/internal/qs/types.d.ts +57 -0
  135. package/internal/qs/types.d.ts.map +1 -0
  136. package/internal/qs/types.js +3 -0
  137. package/internal/qs/types.js.map +1 -0
  138. package/internal/qs/types.mjs +2 -0
  139. package/internal/qs/types.mjs.map +1 -0
  140. package/internal/qs/utils.d.mts +15 -0
  141. package/internal/qs/utils.d.mts.map +1 -0
  142. package/internal/qs/utils.d.ts +15 -0
  143. package/internal/qs/utils.d.ts.map +1 -0
  144. package/internal/qs/utils.js +230 -0
  145. package/internal/qs/utils.js.map +1 -0
  146. package/internal/qs/utils.mjs +217 -0
  147. package/internal/qs/utils.mjs.map +1 -0
  148. package/internal/request-options.d.mts +75 -0
  149. package/internal/request-options.d.mts.map +1 -0
  150. package/internal/request-options.d.ts +75 -0
  151. package/internal/request-options.d.ts.map +1 -0
  152. package/internal/request-options.js +14 -0
  153. package/internal/request-options.js.map +1 -0
  154. package/internal/request-options.mjs +10 -0
  155. package/internal/request-options.mjs.map +1 -0
  156. package/internal/shim-types.d.mts +17 -0
  157. package/internal/shim-types.d.mts.map +1 -0
  158. package/internal/shim-types.d.ts +17 -0
  159. package/internal/shim-types.d.ts.map +1 -0
  160. package/internal/shim-types.js +4 -0
  161. package/internal/shim-types.js.map +1 -0
  162. package/internal/shim-types.mjs +3 -0
  163. package/internal/shim-types.mjs.map +1 -0
  164. package/internal/shims.d.mts +20 -0
  165. package/internal/shims.d.mts.map +1 -0
  166. package/internal/shims.d.ts +20 -0
  167. package/internal/shims.d.ts.map +1 -0
  168. package/internal/shims.js +92 -0
  169. package/internal/shims.js.map +1 -0
  170. package/internal/shims.mjs +85 -0
  171. package/internal/shims.mjs.map +1 -0
  172. package/internal/to-file.d.mts +45 -0
  173. package/internal/to-file.d.mts.map +1 -0
  174. package/internal/to-file.d.ts +45 -0
  175. package/internal/to-file.d.ts.map +1 -0
  176. package/internal/to-file.js +91 -0
  177. package/internal/to-file.js.map +1 -0
  178. package/internal/to-file.mjs +88 -0
  179. package/internal/to-file.mjs.map +1 -0
  180. package/internal/tslib.js +81 -0
  181. package/internal/tslib.mjs +17 -0
  182. package/internal/types.d.mts +69 -0
  183. package/internal/types.d.mts.map +1 -0
  184. package/internal/types.d.ts +69 -0
  185. package/internal/types.d.ts.map +1 -0
  186. package/internal/types.js +4 -0
  187. package/internal/types.js.map +1 -0
  188. package/internal/types.mjs +3 -0
  189. package/internal/types.mjs.map +1 -0
  190. package/internal/uploads.d.mts +42 -0
  191. package/internal/uploads.d.mts.map +1 -0
  192. package/internal/uploads.d.ts +42 -0
  193. package/internal/uploads.d.ts.map +1 -0
  194. package/internal/uploads.js +141 -0
  195. package/internal/uploads.js.map +1 -0
  196. package/internal/uploads.mjs +131 -0
  197. package/internal/uploads.mjs.map +1 -0
  198. package/internal/utils/base64.d.mts +3 -0
  199. package/internal/utils/base64.d.mts.map +1 -0
  200. package/internal/utils/base64.d.ts +3 -0
  201. package/internal/utils/base64.d.ts.map +1 -0
  202. package/internal/utils/base64.js +38 -0
  203. package/internal/utils/base64.js.map +1 -0
  204. package/internal/utils/base64.mjs +33 -0
  205. package/internal/utils/base64.mjs.map +1 -0
  206. package/internal/utils/bytes.d.mts +4 -0
  207. package/internal/utils/bytes.d.mts.map +1 -0
  208. package/internal/utils/bytes.d.ts +4 -0
  209. package/internal/utils/bytes.d.ts.map +1 -0
  210. package/internal/utils/bytes.js +31 -0
  211. package/internal/utils/bytes.js.map +1 -0
  212. package/internal/utils/bytes.mjs +26 -0
  213. package/internal/utils/bytes.mjs.map +1 -0
  214. package/internal/utils/env.d.mts +9 -0
  215. package/internal/utils/env.d.mts.map +1 -0
  216. package/internal/utils/env.d.ts +9 -0
  217. package/internal/utils/env.d.ts.map +1 -0
  218. package/internal/utils/env.js +22 -0
  219. package/internal/utils/env.js.map +1 -0
  220. package/internal/utils/env.mjs +18 -0
  221. package/internal/utils/env.mjs.map +1 -0
  222. package/internal/utils/log.d.mts +37 -0
  223. package/internal/utils/log.d.mts.map +1 -0
  224. package/internal/utils/log.d.ts +37 -0
  225. package/internal/utils/log.d.ts.map +1 -0
  226. package/internal/utils/log.js +85 -0
  227. package/internal/utils/log.js.map +1 -0
  228. package/internal/utils/log.mjs +79 -0
  229. package/internal/utils/log.mjs.map +1 -0
  230. package/internal/utils/path.d.mts +15 -0
  231. package/internal/utils/path.d.mts.map +1 -0
  232. package/internal/utils/path.d.ts +15 -0
  233. package/internal/utils/path.d.ts.map +1 -0
  234. package/internal/utils/path.js +79 -0
  235. package/internal/utils/path.js.map +1 -0
  236. package/internal/utils/path.mjs +74 -0
  237. package/internal/utils/path.mjs.map +1 -0
  238. package/internal/utils/query.d.mts +2 -0
  239. package/internal/utils/query.d.mts.map +1 -0
  240. package/internal/utils/query.d.ts +2 -0
  241. package/internal/utils/query.d.ts.map +1 -0
  242. package/internal/utils/query.js +10 -0
  243. package/internal/utils/query.js.map +1 -0
  244. package/internal/utils/query.mjs +6 -0
  245. package/internal/utils/query.mjs.map +1 -0
  246. package/internal/utils/sleep.d.mts +2 -0
  247. package/internal/utils/sleep.d.mts.map +1 -0
  248. package/internal/utils/sleep.d.ts +2 -0
  249. package/internal/utils/sleep.d.ts.map +1 -0
  250. package/internal/utils/sleep.js +7 -0
  251. package/internal/utils/sleep.js.map +1 -0
  252. package/internal/utils/sleep.mjs +3 -0
  253. package/internal/utils/sleep.mjs.map +1 -0
  254. package/internal/utils/uuid.d.mts +5 -0
  255. package/internal/utils/uuid.d.mts.map +1 -0
  256. package/internal/utils/uuid.d.ts +5 -0
  257. package/internal/utils/uuid.d.ts.map +1 -0
  258. package/internal/utils/uuid.js +19 -0
  259. package/internal/utils/uuid.js.map +1 -0
  260. package/internal/utils/uuid.mjs +15 -0
  261. package/internal/utils/uuid.mjs.map +1 -0
  262. package/internal/utils/values.d.mts +18 -0
  263. package/internal/utils/values.d.mts.map +1 -0
  264. package/internal/utils/values.d.ts +18 -0
  265. package/internal/utils/values.d.ts.map +1 -0
  266. package/internal/utils/values.js +112 -0
  267. package/internal/utils/values.js.map +1 -0
  268. package/internal/utils/values.mjs +94 -0
  269. package/internal/utils/values.mjs.map +1 -0
  270. package/internal/utils.d.mts +8 -0
  271. package/internal/utils.d.mts.map +1 -0
  272. package/internal/utils.d.ts +8 -0
  273. package/internal/utils.d.ts.map +1 -0
  274. package/internal/utils.js +12 -0
  275. package/internal/utils.js.map +1 -0
  276. package/internal/utils.mjs +9 -0
  277. package/internal/utils.mjs.map +1 -0
  278. package/package.json +143 -0
  279. package/resource.d.mts +2 -0
  280. package/resource.d.mts.map +1 -0
  281. package/resource.d.ts +2 -0
  282. package/resource.d.ts.map +1 -0
  283. package/resource.js +6 -0
  284. package/resource.js.map +1 -0
  285. package/resource.mjs +2 -0
  286. package/resource.mjs.map +1 -0
  287. package/resources/admins.d.mts +437 -0
  288. package/resources/admins.d.mts.map +1 -0
  289. package/resources/admins.d.ts +437 -0
  290. package/resources/admins.d.ts.map +1 -0
  291. package/resources/admins.js +157 -0
  292. package/resources/admins.js.map +1 -0
  293. package/resources/admins.mjs +153 -0
  294. package/resources/admins.mjs.map +1 -0
  295. package/resources/boards.d.mts +202 -0
  296. package/resources/boards.d.mts.map +1 -0
  297. package/resources/boards.d.ts +202 -0
  298. package/resources/boards.d.ts.map +1 -0
  299. package/resources/boards.js +52 -0
  300. package/resources/boards.js.map +1 -0
  301. package/resources/boards.mjs +48 -0
  302. package/resources/boards.mjs.map +1 -0
  303. package/resources/brands.d.mts +180 -0
  304. package/resources/brands.d.mts.map +1 -0
  305. package/resources/brands.d.ts +180 -0
  306. package/resources/brands.d.ts.map +1 -0
  307. package/resources/brands.js +130 -0
  308. package/resources/brands.js.map +1 -0
  309. package/resources/brands.mjs +126 -0
  310. package/resources/brands.mjs.map +1 -0
  311. package/resources/changelogs/changelogs.d.mts +723 -0
  312. package/resources/changelogs/changelogs.d.mts.map +1 -0
  313. package/resources/changelogs/changelogs.d.ts +723 -0
  314. package/resources/changelogs/changelogs.d.ts.map +1 -0
  315. package/resources/changelogs/changelogs.js +406 -0
  316. package/resources/changelogs/changelogs.js.map +1 -0
  317. package/resources/changelogs/changelogs.mjs +401 -0
  318. package/resources/changelogs/changelogs.mjs.map +1 -0
  319. package/resources/changelogs/index.d.mts +3 -0
  320. package/resources/changelogs/index.d.mts.map +1 -0
  321. package/resources/changelogs/index.d.ts +3 -0
  322. package/resources/changelogs/index.d.ts.map +1 -0
  323. package/resources/changelogs/index.js +9 -0
  324. package/resources/changelogs/index.js.map +1 -0
  325. package/resources/changelogs/index.mjs +4 -0
  326. package/resources/changelogs/index.mjs.map +1 -0
  327. package/resources/changelogs/subscribers.d.mts +145 -0
  328. package/resources/changelogs/subscribers.d.mts.map +1 -0
  329. package/resources/changelogs/subscribers.d.ts +145 -0
  330. package/resources/changelogs/subscribers.d.ts.map +1 -0
  331. package/resources/changelogs/subscribers.js +119 -0
  332. package/resources/changelogs/subscribers.js.map +1 -0
  333. package/resources/changelogs/subscribers.mjs +115 -0
  334. package/resources/changelogs/subscribers.mjs.map +1 -0
  335. package/resources/changelogs.d.mts +2 -0
  336. package/resources/changelogs.d.mts.map +1 -0
  337. package/resources/changelogs.d.ts +2 -0
  338. package/resources/changelogs.d.ts.map +1 -0
  339. package/resources/changelogs.js +6 -0
  340. package/resources/changelogs.js.map +1 -0
  341. package/resources/changelogs.mjs +3 -0
  342. package/resources/changelogs.mjs.map +1 -0
  343. package/resources/comments.d.mts +632 -0
  344. package/resources/comments.d.mts.map +1 -0
  345. package/resources/comments.d.ts +632 -0
  346. package/resources/comments.d.ts.map +1 -0
  347. package/resources/comments.js +397 -0
  348. package/resources/comments.js.map +1 -0
  349. package/resources/comments.mjs +393 -0
  350. package/resources/comments.mjs.map +1 -0
  351. package/resources/companies/companies.d.mts +497 -0
  352. package/resources/companies/companies.d.mts.map +1 -0
  353. package/resources/companies/companies.d.ts +497 -0
  354. package/resources/companies/companies.d.ts.map +1 -0
  355. package/resources/companies/companies.js +368 -0
  356. package/resources/companies/companies.js.map +1 -0
  357. package/resources/companies/companies.mjs +363 -0
  358. package/resources/companies/companies.mjs.map +1 -0
  359. package/resources/companies/contacts.d.mts +236 -0
  360. package/resources/companies/contacts.d.mts.map +1 -0
  361. package/resources/companies/contacts.d.ts +236 -0
  362. package/resources/companies/contacts.d.ts.map +1 -0
  363. package/resources/companies/contacts.js +218 -0
  364. package/resources/companies/contacts.js.map +1 -0
  365. package/resources/companies/contacts.mjs +214 -0
  366. package/resources/companies/contacts.mjs.map +1 -0
  367. package/resources/companies/index.d.mts +3 -0
  368. package/resources/companies/index.d.mts.map +1 -0
  369. package/resources/companies/index.d.ts +3 -0
  370. package/resources/companies/index.d.ts.map +1 -0
  371. package/resources/companies/index.js +9 -0
  372. package/resources/companies/index.js.map +1 -0
  373. package/resources/companies/index.mjs +4 -0
  374. package/resources/companies/index.mjs.map +1 -0
  375. package/resources/companies.d.mts +2 -0
  376. package/resources/companies.d.mts.map +1 -0
  377. package/resources/companies.d.ts +2 -0
  378. package/resources/companies.d.ts.map +1 -0
  379. package/resources/companies.js +6 -0
  380. package/resources/companies.js.map +1 -0
  381. package/resources/companies.mjs +3 -0
  382. package/resources/companies.mjs.map +1 -0
  383. package/resources/contacts/by-user-id/by-user-id.d.mts +147 -0
  384. package/resources/contacts/by-user-id/by-user-id.d.mts.map +1 -0
  385. package/resources/contacts/by-user-id/by-user-id.d.ts +147 -0
  386. package/resources/contacts/by-user-id/by-user-id.d.ts.map +1 -0
  387. package/resources/contacts/by-user-id/by-user-id.js +152 -0
  388. package/resources/contacts/by-user-id/by-user-id.js.map +1 -0
  389. package/resources/contacts/by-user-id/by-user-id.mjs +147 -0
  390. package/resources/contacts/by-user-id/by-user-id.mjs.map +1 -0
  391. package/resources/contacts/by-user-id/email-preferences.d.mts +199 -0
  392. package/resources/contacts/by-user-id/email-preferences.d.mts.map +1 -0
  393. package/resources/contacts/by-user-id/email-preferences.d.ts +199 -0
  394. package/resources/contacts/by-user-id/email-preferences.d.ts.map +1 -0
  395. package/resources/contacts/by-user-id/email-preferences.js +176 -0
  396. package/resources/contacts/by-user-id/email-preferences.js.map +1 -0
  397. package/resources/contacts/by-user-id/email-preferences.mjs +172 -0
  398. package/resources/contacts/by-user-id/email-preferences.mjs.map +1 -0
  399. package/resources/contacts/by-user-id/index.d.mts +3 -0
  400. package/resources/contacts/by-user-id/index.d.mts.map +1 -0
  401. package/resources/contacts/by-user-id/index.d.ts +3 -0
  402. package/resources/contacts/by-user-id/index.d.ts.map +1 -0
  403. package/resources/contacts/by-user-id/index.js +9 -0
  404. package/resources/contacts/by-user-id/index.js.map +1 -0
  405. package/resources/contacts/by-user-id/index.mjs +4 -0
  406. package/resources/contacts/by-user-id/index.mjs.map +1 -0
  407. package/resources/contacts/by-user-id.d.mts +2 -0
  408. package/resources/contacts/by-user-id.d.mts.map +1 -0
  409. package/resources/contacts/by-user-id.d.ts +2 -0
  410. package/resources/contacts/by-user-id.d.ts.map +1 -0
  411. package/resources/contacts/by-user-id.js +6 -0
  412. package/resources/contacts/by-user-id.js.map +1 -0
  413. package/resources/contacts/by-user-id.mjs +3 -0
  414. package/resources/contacts/by-user-id.mjs.map +1 -0
  415. package/resources/contacts/contacts.d.mts +708 -0
  416. package/resources/contacts/contacts.d.mts.map +1 -0
  417. package/resources/contacts/contacts.d.ts +708 -0
  418. package/resources/contacts/contacts.d.ts.map +1 -0
  419. package/resources/contacts/contacts.js +444 -0
  420. package/resources/contacts/contacts.js.map +1 -0
  421. package/resources/contacts/contacts.mjs +439 -0
  422. package/resources/contacts/contacts.mjs.map +1 -0
  423. package/resources/contacts/email-preferences.d.mts +334 -0
  424. package/resources/contacts/email-preferences.d.mts.map +1 -0
  425. package/resources/contacts/email-preferences.d.ts +334 -0
  426. package/resources/contacts/email-preferences.d.ts.map +1 -0
  427. package/resources/contacts/email-preferences.js +219 -0
  428. package/resources/contacts/email-preferences.js.map +1 -0
  429. package/resources/contacts/email-preferences.mjs +215 -0
  430. package/resources/contacts/email-preferences.mjs.map +1 -0
  431. package/resources/contacts/index.d.mts +4 -0
  432. package/resources/contacts/index.d.mts.map +1 -0
  433. package/resources/contacts/index.d.ts +4 -0
  434. package/resources/contacts/index.d.ts.map +1 -0
  435. package/resources/contacts/index.js +11 -0
  436. package/resources/contacts/index.js.map +1 -0
  437. package/resources/contacts/index.mjs +5 -0
  438. package/resources/contacts/index.mjs.map +1 -0
  439. package/resources/contacts.d.mts +2 -0
  440. package/resources/contacts.d.mts.map +1 -0
  441. package/resources/contacts.d.ts +2 -0
  442. package/resources/contacts.d.ts.map +1 -0
  443. package/resources/contacts.js +6 -0
  444. package/resources/contacts.js.map +1 -0
  445. package/resources/contacts.mjs +3 -0
  446. package/resources/contacts.mjs.map +1 -0
  447. package/resources/conversations/conversations.d.mts +2235 -0
  448. package/resources/conversations/conversations.d.mts.map +1 -0
  449. package/resources/conversations/conversations.d.ts +2235 -0
  450. package/resources/conversations/conversations.d.ts.map +1 -0
  451. package/resources/conversations/conversations.js +753 -0
  452. package/resources/conversations/conversations.js.map +1 -0
  453. package/resources/conversations/conversations.mjs +748 -0
  454. package/resources/conversations/conversations.mjs.map +1 -0
  455. package/resources/conversations/index.d.mts +4 -0
  456. package/resources/conversations/index.d.mts.map +1 -0
  457. package/resources/conversations/index.d.ts +4 -0
  458. package/resources/conversations/index.d.ts.map +1 -0
  459. package/resources/conversations/index.js +11 -0
  460. package/resources/conversations/index.js.map +1 -0
  461. package/resources/conversations/index.mjs +5 -0
  462. package/resources/conversations/index.mjs.map +1 -0
  463. package/resources/conversations/participants.d.mts +217 -0
  464. package/resources/conversations/participants.d.mts.map +1 -0
  465. package/resources/conversations/participants.d.ts +217 -0
  466. package/resources/conversations/participants.d.ts.map +1 -0
  467. package/resources/conversations/participants.js +185 -0
  468. package/resources/conversations/participants.js.map +1 -0
  469. package/resources/conversations/participants.mjs +181 -0
  470. package/resources/conversations/participants.mjs.map +1 -0
  471. package/resources/conversations/tags.d.mts +200 -0
  472. package/resources/conversations/tags.d.mts.map +1 -0
  473. package/resources/conversations/tags.d.ts +200 -0
  474. package/resources/conversations/tags.d.ts.map +1 -0
  475. package/resources/conversations/tags.js +138 -0
  476. package/resources/conversations/tags.js.map +1 -0
  477. package/resources/conversations/tags.mjs +134 -0
  478. package/resources/conversations/tags.mjs.map +1 -0
  479. package/resources/conversations.d.mts +2 -0
  480. package/resources/conversations.d.mts.map +1 -0
  481. package/resources/conversations.d.ts +2 -0
  482. package/resources/conversations.d.ts.map +1 -0
  483. package/resources/conversations.js +6 -0
  484. package/resources/conversations.js.map +1 -0
  485. package/resources/conversations.mjs +3 -0
  486. package/resources/conversations.mjs.map +1 -0
  487. package/resources/custom-fields.d.mts +189 -0
  488. package/resources/custom-fields.d.mts.map +1 -0
  489. package/resources/custom-fields.d.ts +189 -0
  490. package/resources/custom-fields.d.ts.map +1 -0
  491. package/resources/custom-fields.js +92 -0
  492. package/resources/custom-fields.js.map +1 -0
  493. package/resources/custom-fields.mjs +88 -0
  494. package/resources/custom-fields.mjs.map +1 -0
  495. package/resources/help-center/articles.d.mts +770 -0
  496. package/resources/help-center/articles.d.mts.map +1 -0
  497. package/resources/help-center/articles.d.ts +770 -0
  498. package/resources/help-center/articles.d.ts.map +1 -0
  499. package/resources/help-center/articles.js +296 -0
  500. package/resources/help-center/articles.js.map +1 -0
  501. package/resources/help-center/articles.mjs +292 -0
  502. package/resources/help-center/articles.mjs.map +1 -0
  503. package/resources/help-center/collections.d.mts +669 -0
  504. package/resources/help-center/collections.d.mts.map +1 -0
  505. package/resources/help-center/collections.d.ts +669 -0
  506. package/resources/help-center/collections.d.ts.map +1 -0
  507. package/resources/help-center/collections.js +278 -0
  508. package/resources/help-center/collections.js.map +1 -0
  509. package/resources/help-center/collections.mjs +274 -0
  510. package/resources/help-center/collections.mjs.map +1 -0
  511. package/resources/help-center/help-center.d.mts +22 -0
  512. package/resources/help-center/help-center.d.mts.map +1 -0
  513. package/resources/help-center/help-center.d.ts +22 -0
  514. package/resources/help-center/help-center.d.ts.map +1 -0
  515. package/resources/help-center/help-center.js +29 -0
  516. package/resources/help-center/help-center.js.map +1 -0
  517. package/resources/help-center/help-center.mjs +24 -0
  518. package/resources/help-center/help-center.mjs.map +1 -0
  519. package/resources/help-center/help-centers.d.mts +312 -0
  520. package/resources/help-center/help-centers.d.mts.map +1 -0
  521. package/resources/help-center/help-centers.d.ts +312 -0
  522. package/resources/help-center/help-centers.d.ts.map +1 -0
  523. package/resources/help-center/help-centers.js +111 -0
  524. package/resources/help-center/help-centers.js.map +1 -0
  525. package/resources/help-center/help-centers.mjs +107 -0
  526. package/resources/help-center/help-centers.mjs.map +1 -0
  527. package/resources/help-center/index.d.mts +6 -0
  528. package/resources/help-center/index.d.mts.map +1 -0
  529. package/resources/help-center/index.d.ts +6 -0
  530. package/resources/help-center/index.d.ts.map +1 -0
  531. package/resources/help-center/index.js +15 -0
  532. package/resources/help-center/index.js.map +1 -0
  533. package/resources/help-center/index.mjs +7 -0
  534. package/resources/help-center/index.mjs.map +1 -0
  535. package/resources/help-center/redirect-rules.d.mts +417 -0
  536. package/resources/help-center/redirect-rules.d.mts.map +1 -0
  537. package/resources/help-center/redirect-rules.d.ts +417 -0
  538. package/resources/help-center/redirect-rules.d.ts.map +1 -0
  539. package/resources/help-center/redirect-rules.js +297 -0
  540. package/resources/help-center/redirect-rules.js.map +1 -0
  541. package/resources/help-center/redirect-rules.mjs +293 -0
  542. package/resources/help-center/redirect-rules.mjs.map +1 -0
  543. package/resources/help-center.d.mts +2 -0
  544. package/resources/help-center.d.mts.map +1 -0
  545. package/resources/help-center.d.ts +2 -0
  546. package/resources/help-center.d.ts.map +1 -0
  547. package/resources/help-center.js +6 -0
  548. package/resources/help-center.js.map +1 -0
  549. package/resources/help-center.mjs +3 -0
  550. package/resources/help-center.mjs.map +1 -0
  551. package/resources/index.d.mts +18 -0
  552. package/resources/index.d.mts.map +1 -0
  553. package/resources/index.d.ts +18 -0
  554. package/resources/index.d.ts.map +1 -0
  555. package/resources/index.js +39 -0
  556. package/resources/index.js.map +1 -0
  557. package/resources/index.mjs +19 -0
  558. package/resources/index.mjs.map +1 -0
  559. package/resources/post-statuses.d.mts +74 -0
  560. package/resources/post-statuses.d.mts.map +1 -0
  561. package/resources/post-statuses.d.ts +74 -0
  562. package/resources/post-statuses.d.ts.map +1 -0
  563. package/resources/post-statuses.js +53 -0
  564. package/resources/post-statuses.js.map +1 -0
  565. package/resources/post-statuses.mjs +49 -0
  566. package/resources/post-statuses.mjs.map +1 -0
  567. package/resources/posts/index.d.mts +3 -0
  568. package/resources/posts/index.d.mts.map +1 -0
  569. package/resources/posts/index.d.ts +3 -0
  570. package/resources/posts/index.d.ts.map +1 -0
  571. package/resources/posts/index.js +9 -0
  572. package/resources/posts/index.js.map +1 -0
  573. package/resources/posts/index.mjs +4 -0
  574. package/resources/posts/index.mjs.map +1 -0
  575. package/resources/posts/posts.d.mts +799 -0
  576. package/resources/posts/posts.d.mts.map +1 -0
  577. package/resources/posts/posts.d.ts +799 -0
  578. package/resources/posts/posts.d.ts.map +1 -0
  579. package/resources/posts/posts.js +271 -0
  580. package/resources/posts/posts.js.map +1 -0
  581. package/resources/posts/posts.mjs +266 -0
  582. package/resources/posts/posts.mjs.map +1 -0
  583. package/resources/posts/voters.d.mts +359 -0
  584. package/resources/posts/voters.d.mts.map +1 -0
  585. package/resources/posts/voters.d.ts +359 -0
  586. package/resources/posts/voters.d.ts.map +1 -0
  587. package/resources/posts/voters.js +171 -0
  588. package/resources/posts/voters.js.map +1 -0
  589. package/resources/posts/voters.mjs +167 -0
  590. package/resources/posts/voters.mjs.map +1 -0
  591. package/resources/posts.d.mts +2 -0
  592. package/resources/posts.d.mts.map +1 -0
  593. package/resources/posts.d.ts +2 -0
  594. package/resources/posts.d.ts.map +1 -0
  595. package/resources/posts.js +6 -0
  596. package/resources/posts.js.map +1 -0
  597. package/resources/posts.mjs +3 -0
  598. package/resources/posts.mjs.map +1 -0
  599. package/resources/surveys.d.mts +451 -0
  600. package/resources/surveys.d.mts.map +1 -0
  601. package/resources/surveys.d.ts +451 -0
  602. package/resources/surveys.d.ts.map +1 -0
  603. package/resources/surveys.js +149 -0
  604. package/resources/surveys.js.map +1 -0
  605. package/resources/surveys.mjs +145 -0
  606. package/resources/surveys.mjs.map +1 -0
  607. package/resources/tags.d.mts +147 -0
  608. package/resources/tags.d.mts.map +1 -0
  609. package/resources/tags.d.ts +147 -0
  610. package/resources/tags.d.ts.map +1 -0
  611. package/resources/tags.js +100 -0
  612. package/resources/tags.js.map +1 -0
  613. package/resources/tags.mjs +96 -0
  614. package/resources/tags.mjs.map +1 -0
  615. package/resources/teams.d.mts +165 -0
  616. package/resources/teams.d.mts.map +1 -0
  617. package/resources/teams.d.ts +165 -0
  618. package/resources/teams.d.ts.map +1 -0
  619. package/resources/teams.js +120 -0
  620. package/resources/teams.js.map +1 -0
  621. package/resources/teams.mjs +116 -0
  622. package/resources/teams.mjs.map +1 -0
  623. package/resources/tickets/categories.d.mts +63 -0
  624. package/resources/tickets/categories.d.mts.map +1 -0
  625. package/resources/tickets/categories.d.ts +63 -0
  626. package/resources/tickets/categories.d.ts.map +1 -0
  627. package/resources/tickets/categories.js +67 -0
  628. package/resources/tickets/categories.js.map +1 -0
  629. package/resources/tickets/categories.mjs +63 -0
  630. package/resources/tickets/categories.mjs.map +1 -0
  631. package/resources/tickets/custom-fields.d.mts +80 -0
  632. package/resources/tickets/custom-fields.d.mts.map +1 -0
  633. package/resources/tickets/custom-fields.d.ts +80 -0
  634. package/resources/tickets/custom-fields.d.ts.map +1 -0
  635. package/resources/tickets/custom-fields.js +85 -0
  636. package/resources/tickets/custom-fields.js.map +1 -0
  637. package/resources/tickets/custom-fields.mjs +81 -0
  638. package/resources/tickets/custom-fields.mjs.map +1 -0
  639. package/resources/tickets/index.d.mts +5 -0
  640. package/resources/tickets/index.d.mts.map +1 -0
  641. package/resources/tickets/index.d.ts +5 -0
  642. package/resources/tickets/index.d.ts.map +1 -0
  643. package/resources/tickets/index.js +13 -0
  644. package/resources/tickets/index.js.map +1 -0
  645. package/resources/tickets/index.mjs +6 -0
  646. package/resources/tickets/index.mjs.map +1 -0
  647. package/resources/tickets/statuses.d.mts +59 -0
  648. package/resources/tickets/statuses.d.mts.map +1 -0
  649. package/resources/tickets/statuses.d.ts +59 -0
  650. package/resources/tickets/statuses.d.ts.map +1 -0
  651. package/resources/tickets/statuses.js +63 -0
  652. package/resources/tickets/statuses.js.map +1 -0
  653. package/resources/tickets/statuses.mjs +59 -0
  654. package/resources/tickets/statuses.mjs.map +1 -0
  655. package/resources/tickets/tickets.d.mts +794 -0
  656. package/resources/tickets/tickets.d.mts.map +1 -0
  657. package/resources/tickets/tickets.d.ts +794 -0
  658. package/resources/tickets/tickets.d.ts.map +1 -0
  659. package/resources/tickets/tickets.js +327 -0
  660. package/resources/tickets/tickets.js.map +1 -0
  661. package/resources/tickets/tickets.mjs +322 -0
  662. package/resources/tickets/tickets.mjs.map +1 -0
  663. package/resources/tickets.d.mts +2 -0
  664. package/resources/tickets.d.mts.map +1 -0
  665. package/resources/tickets.d.ts +2 -0
  666. package/resources/tickets.d.ts.map +1 -0
  667. package/resources/tickets.js +6 -0
  668. package/resources/tickets.js.map +1 -0
  669. package/resources/tickets.mjs +3 -0
  670. package/resources/tickets.mjs.map +1 -0
  671. package/resources/webhooks.d.mts +626 -0
  672. package/resources/webhooks.d.mts.map +1 -0
  673. package/resources/webhooks.d.ts +626 -0
  674. package/resources/webhooks.d.ts.map +1 -0
  675. package/resources/webhooks.js +442 -0
  676. package/resources/webhooks.js.map +1 -0
  677. package/resources/webhooks.mjs +438 -0
  678. package/resources/webhooks.mjs.map +1 -0
  679. package/resources.d.mts +2 -0
  680. package/resources.d.mts.map +1 -0
  681. package/resources.d.ts +2 -0
  682. package/resources.d.ts.map +1 -0
  683. package/resources.js +5 -0
  684. package/resources.js.map +1 -0
  685. package/resources.mjs +2 -0
  686. package/resources.mjs.map +1 -0
  687. package/src/api-promise.ts +2 -0
  688. package/src/client.ts +1169 -0
  689. package/src/core/README.md +3 -0
  690. package/src/core/api-promise.ts +92 -0
  691. package/src/core/error.ts +130 -0
  692. package/src/core/resource.ts +11 -0
  693. package/src/core/uploads.ts +2 -0
  694. package/src/error.ts +2 -0
  695. package/src/index.ts +22 -0
  696. package/src/internal/README.md +3 -0
  697. package/src/internal/builtin-types.ts +93 -0
  698. package/src/internal/detect-platform.ts +196 -0
  699. package/src/internal/errors.ts +33 -0
  700. package/src/internal/headers.ts +97 -0
  701. package/src/internal/parse.ts +56 -0
  702. package/src/internal/qs/LICENSE.md +13 -0
  703. package/src/internal/qs/README.md +3 -0
  704. package/src/internal/qs/formats.ts +10 -0
  705. package/src/internal/qs/index.ts +13 -0
  706. package/src/internal/qs/stringify.ts +385 -0
  707. package/src/internal/qs/types.ts +71 -0
  708. package/src/internal/qs/utils.ts +265 -0
  709. package/src/internal/request-options.ts +91 -0
  710. package/src/internal/shim-types.ts +26 -0
  711. package/src/internal/shims.ts +107 -0
  712. package/src/internal/to-file.ts +154 -0
  713. package/src/internal/types.ts +95 -0
  714. package/src/internal/uploads.ts +187 -0
  715. package/src/internal/utils/base64.ts +40 -0
  716. package/src/internal/utils/bytes.ts +32 -0
  717. package/src/internal/utils/env.ts +18 -0
  718. package/src/internal/utils/log.ts +126 -0
  719. package/src/internal/utils/path.ts +88 -0
  720. package/src/internal/utils/query.ts +7 -0
  721. package/src/internal/utils/sleep.ts +3 -0
  722. package/src/internal/utils/uuid.ts +17 -0
  723. package/src/internal/utils/values.ts +105 -0
  724. package/src/internal/utils.ts +9 -0
  725. package/src/lib/.keep +4 -0
  726. package/src/resource.ts +2 -0
  727. package/src/resources/admins.ts +557 -0
  728. package/src/resources/boards.ts +259 -0
  729. package/src/resources/brands.ts +232 -0
  730. package/src/resources/changelogs/changelogs.ts +1139 -0
  731. package/src/resources/changelogs/index.ts +23 -0
  732. package/src/resources/changelogs/subscribers.ts +226 -0
  733. package/src/resources/changelogs.ts +3 -0
  734. package/src/resources/comments.ts +786 -0
  735. package/src/resources/companies/companies.ts +632 -0
  736. package/src/resources/companies/contacts.ts +299 -0
  737. package/src/resources/companies/index.ts +21 -0
  738. package/src/resources/companies.ts +3 -0
  739. package/src/resources/contacts/by-user-id/by-user-id.ts +200 -0
  740. package/src/resources/contacts/by-user-id/email-preferences.ts +243 -0
  741. package/src/resources/contacts/by-user-id/index.ts +13 -0
  742. package/src/resources/contacts/by-user-id.ts +3 -0
  743. package/src/resources/contacts/contacts.ts +908 -0
  744. package/src/resources/contacts/email-preferences.ts +399 -0
  745. package/src/resources/contacts/index.ts +32 -0
  746. package/src/resources/contacts.ts +3 -0
  747. package/src/resources/conversations/conversations.ts +2721 -0
  748. package/src/resources/conversations/index.ts +31 -0
  749. package/src/resources/conversations/participants.ts +263 -0
  750. package/src/resources/conversations/tags.ts +252 -0
  751. package/src/resources/conversations.ts +3 -0
  752. package/src/resources/custom-fields.ts +249 -0
  753. package/src/resources/help-center/articles.ts +1231 -0
  754. package/src/resources/help-center/collections.ts +1065 -0
  755. package/src/resources/help-center/help-center.ts +125 -0
  756. package/src/resources/help-center/help-centers.ts +558 -0
  757. package/src/resources/help-center/index.ts +52 -0
  758. package/src/resources/help-center/redirect-rules.ts +711 -0
  759. package/src/resources/help-center.ts +3 -0
  760. package/src/resources/index.ts +179 -0
  761. package/src/resources/post-statuses.ts +119 -0
  762. package/src/resources/posts/index.ts +22 -0
  763. package/src/resources/posts/posts.ts +1019 -0
  764. package/src/resources/posts/voters.ts +453 -0
  765. package/src/resources/posts.ts +3 -0
  766. package/src/resources/surveys.ts +576 -0
  767. package/src/resources/tags.ts +226 -0
  768. package/src/resources/teams.ts +213 -0
  769. package/src/resources/tickets/categories.ts +101 -0
  770. package/src/resources/tickets/custom-fields.ts +116 -0
  771. package/src/resources/tickets/index.ts +28 -0
  772. package/src/resources/tickets/statuses.ts +97 -0
  773. package/src/resources/tickets/tickets.ts +1019 -0
  774. package/src/resources/tickets.ts +3 -0
  775. package/src/resources/webhooks.ts +850 -0
  776. package/src/resources.ts +1 -0
  777. package/src/tsconfig.json +11 -0
  778. package/src/uploads.ts +2 -0
  779. package/src/version.ts +1 -0
  780. package/uploads.d.mts +2 -0
  781. package/uploads.d.mts.map +1 -0
  782. package/uploads.d.ts +2 -0
  783. package/uploads.d.ts.map +1 -0
  784. package/uploads.js +6 -0
  785. package/uploads.js.map +1 -0
  786. package/uploads.mjs +2 -0
  787. package/uploads.mjs.map +1 -0
  788. package/version.d.mts +2 -0
  789. package/version.d.mts.map +1 -0
  790. package/version.d.ts +2 -0
  791. package/version.d.ts.map +1 -0
  792. package/version.js +5 -0
  793. package/version.js.map +1 -0
  794. package/version.mjs +2 -0
  795. package/version.mjs.map +1 -0
@@ -0,0 +1,850 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../core/resource';
4
+ import { APIPromise } from '../core/api-promise';
5
+ import { buildHeaders } from '../internal/headers';
6
+ import { RequestOptions } from '../internal/request-options';
7
+ import { path } from '../internal/utils/path';
8
+
9
+ /**
10
+ * Webhooks allow you to receive real-time HTTP callbacks when events occur in your Featurebase organization. Configure webhook endpoints to subscribe to specific event types.
11
+ */
12
+ export class Webhooks extends APIResource {
13
+ /**
14
+ * Creates a new webhook to receive event notifications.
15
+ *
16
+ * ### Request Body
17
+ *
18
+ * | Field | Type | Required | Description |
19
+ * | ----------------------- | -------- | -------- | ------------------------------------ |
20
+ * | `name` | string | Yes | Human-readable name (max 100 chars) |
21
+ * | `url` | string | Yes | Webhook endpoint URL (must be HTTPS) |
22
+ * | `description` | string | No | Optional description (max 500 chars) |
23
+ * | `topics` | string[] | Yes | Event topics to subscribe to |
24
+ * | `requestConfig` | object | No | Request configuration |
25
+ * | `requestConfig.headers` | object | No | Custom headers to send (max 10) |
26
+ *
27
+ * ### Available Topics
28
+ *
29
+ * - `post.created` - When a new feedback post is created
30
+ * - `post.updated` - When a feedback post is updated
31
+ * - `post.deleted` - When a feedback post is deleted
32
+ * - `post.voted` - When a feedback post receives a vote
33
+ * - `ticket.created` - When a new ticket is created
34
+ * - `ticket.updated` - When a ticket is updated
35
+ * - `ticket.deleted` - When a ticket is deleted
36
+ * - `changelog.published` - When a changelog is published
37
+ * - `comment.created` - When a comment is created
38
+ * - `comment.updated` - When a comment is updated
39
+ * - `comment.deleted` - When a comment is deleted
40
+ *
41
+ * ### Response
42
+ *
43
+ * Returns the created webhook object including the signing secret.
44
+ *
45
+ * ### Example Request
46
+ *
47
+ * ```json
48
+ * {
49
+ * "name": "Production Webhook",
50
+ * "url": "https://example.com/webhooks",
51
+ * "description": "Handles all production events",
52
+ * "topics": ["post.created", "post.updated", "comment.created"],
53
+ * "requestConfig": {
54
+ * "timeoutMs": 10000,
55
+ * "headers": {
56
+ * "X-Custom-Header": "value"
57
+ * }
58
+ * }
59
+ * }
60
+ * ```
61
+ *
62
+ * ### Example Response
63
+ *
64
+ * ```json
65
+ * {
66
+ * "object": "webhook",
67
+ * "id": "507f1f77bcf86cd799439011",
68
+ * "name": "Production Webhook",
69
+ * "url": "https://example.com/webhooks",
70
+ * "secret": "whsec_abc123def456ghi789",
71
+ * "topics": ["post.created", "post.updated", "comment.created"],
72
+ * "status": "active",
73
+ * ...
74
+ * }
75
+ * ```
76
+ *
77
+ * ### Limits
78
+ *
79
+ * Each organization has a maximum number of webhooks (default: 10). Creating a
80
+ * webhook when the limit is reached will return a 400 error.
81
+ *
82
+ * ### Version Availability
83
+ *
84
+ * This endpoint is only available in API version 2026-01-01.nova and newer.
85
+ *
86
+ * @example
87
+ * ```ts
88
+ * const webhook = await client.webhooks.create({
89
+ * name: 'Production Webhook',
90
+ * topics: ['post.created', 'post.updated'],
91
+ * url: 'https://example.com/webhooks',
92
+ * });
93
+ * ```
94
+ */
95
+ create(params: WebhookCreateParams, options?: RequestOptions): APIPromise<Webhook> {
96
+ const { 'Featurebase-Version': featurebaseVersion, ...body } = params;
97
+ return this._client.post('/v2/webhooks', {
98
+ body,
99
+ ...options,
100
+ headers: buildHeaders([
101
+ { ...(featurebaseVersion != null ? { 'Featurebase-Version': featurebaseVersion } : undefined) },
102
+ options?.headers,
103
+ ]),
104
+ });
105
+ }
106
+
107
+ /**
108
+ * Retrieves a single webhook by its unique identifier.
109
+ *
110
+ * ### Path Parameters
111
+ *
112
+ * - `id` - The webhook ID (24-character ObjectId)
113
+ *
114
+ * ### Response Format
115
+ *
116
+ * Returns a webhook object with:
117
+ *
118
+ * - `object` - Always "webhook"
119
+ * - `id` - Unique webhook identifier
120
+ * - `name` - Human-readable webhook name
121
+ * - `url` - Webhook endpoint URL
122
+ * - `description` - Optional description
123
+ * - `topics` - Array of subscribed event topics
124
+ * - `status` - Current status ("active", "paused", "suspended")
125
+ * - `requestConfig` - Request configuration (timeout, headers)
126
+ * - `lastStatus` - Last delivery attempt status
127
+ * - `health` - Health metrics
128
+ * - `createdAt` - Creation timestamp
129
+ * - `updatedAt` - Last update timestamp
130
+ *
131
+ * The response includes the webhook signing secret for payload verification.
132
+ *
133
+ * ### Example
134
+ *
135
+ * ```json
136
+ * {
137
+ * "object": "webhook",
138
+ * "id": "507f1f77bcf86cd799439011",
139
+ * "name": "Production Webhook",
140
+ * "url": "https://example.com/webhooks",
141
+ * "description": "Handles all production events",
142
+ * "topics": ["post.created", "post.updated"],
143
+ * "status": "active",
144
+ * "requestConfig": {
145
+ * "timeoutMs": 5000,
146
+ * "headers": {}
147
+ * },
148
+ * "lastStatus": {
149
+ * "code": 200,
150
+ * "message": "Success",
151
+ * "timestamp": "2025-01-15T10:30:00.000Z"
152
+ * },
153
+ * "health": {
154
+ * "lastResponseTime": 150,
155
+ * "avgResponseTime": 200,
156
+ * "lastSuccessAt": "2025-01-15T10:30:00.000Z",
157
+ * "errorsSinceLastSuccess": 0,
158
+ * "consecutiveFailures": 0
159
+ * },
160
+ * "createdAt": "2025-01-01T00:00:00.000Z",
161
+ * "updatedAt": "2025-01-15T10:30:00.000Z"
162
+ * }
163
+ * ```
164
+ *
165
+ * ### Version Availability
166
+ *
167
+ * This endpoint is only available in API version 2026-01-01.nova and newer.
168
+ *
169
+ * @example
170
+ * ```ts
171
+ * const webhook = await client.webhooks.retrieve(
172
+ * '507f1f77bcf86cd799439011',
173
+ * );
174
+ * ```
175
+ */
176
+ retrieve(
177
+ id: string,
178
+ params: WebhookRetrieveParams | null | undefined = {},
179
+ options?: RequestOptions,
180
+ ): APIPromise<Webhook> {
181
+ const { 'Featurebase-Version': featurebaseVersion } = params ?? {};
182
+ return this._client.get(path`/v2/webhooks/${id}`, {
183
+ ...options,
184
+ headers: buildHeaders([
185
+ { ...(featurebaseVersion != null ? { 'Featurebase-Version': featurebaseVersion } : undefined) },
186
+ options?.headers,
187
+ ]),
188
+ });
189
+ }
190
+
191
+ /**
192
+ * Updates a webhook's properties. Supports partial updates - only provided fields
193
+ * will be updated.
194
+ *
195
+ * ### Path Parameters
196
+ *
197
+ * - `id` - The webhook ID (24-character ObjectId)
198
+ *
199
+ * ### Request Body
200
+ *
201
+ * All fields are optional. Only provided fields will be updated.
202
+ *
203
+ * | Field | Type | Description |
204
+ * | ----------------------- | ----------- | -------------------------------------------------- |
205
+ * | `name` | string | Human-readable name (max 100 chars) |
206
+ * | `url` | string | Webhook endpoint URL (must be HTTPS) |
207
+ * | `description` | string/null | Description (null to clear) |
208
+ * | `topics` | string[] | Event topics to subscribe to |
209
+ * | `status` | string | "active" to reactivate, "paused" to pause delivery |
210
+ * | `requestConfig` | object | Request configuration |
211
+ * | `requestConfig.headers` | object | Custom headers to send (max 10) |
212
+ *
213
+ * ### Pausing and Reactivating Webhooks
214
+ *
215
+ * You can pause a webhook to temporarily stop receiving events:
216
+ *
217
+ * ```json
218
+ * {
219
+ * "status": "paused"
220
+ * }
221
+ * ```
222
+ *
223
+ * Webhooks may also be automatically paused or suspended due to delivery failures.
224
+ * To reactivate:
225
+ *
226
+ * ```json
227
+ * {
228
+ * "status": "active"
229
+ * }
230
+ * ```
231
+ *
232
+ * Reactivating a webhook resets the health metrics and allows it to receive events
233
+ * again.
234
+ *
235
+ * ### Example: Update Topics
236
+ *
237
+ * ```json
238
+ * {
239
+ * "topics": ["post.created", "post.updated", "post.deleted"]
240
+ * }
241
+ * ```
242
+ *
243
+ * ### Example: Update Request Config
244
+ *
245
+ * ```json
246
+ * {
247
+ * "requestConfig": {
248
+ * "headers": {
249
+ * "X-Custom-Header": "new-value"
250
+ * }
251
+ * }
252
+ * }
253
+ * ```
254
+ *
255
+ * ### Version Availability
256
+ *
257
+ * This endpoint is only available in API version 2026-01-01.nova and newer.
258
+ *
259
+ * @example
260
+ * ```ts
261
+ * const webhook = await client.webhooks.update(
262
+ * '507f1f77bcf86cd799439011',
263
+ * );
264
+ * ```
265
+ */
266
+ update(id: string, params: WebhookUpdateParams, options?: RequestOptions): APIPromise<Webhook> {
267
+ const { 'Featurebase-Version': featurebaseVersion, ...body } = params;
268
+ return this._client.patch(path`/v2/webhooks/${id}`, {
269
+ body,
270
+ ...options,
271
+ headers: buildHeaders([
272
+ { ...(featurebaseVersion != null ? { 'Featurebase-Version': featurebaseVersion } : undefined) },
273
+ options?.headers,
274
+ ]),
275
+ });
276
+ }
277
+
278
+ /**
279
+ * Returns a list of webhooks in your organization using cursor-based pagination.
280
+ *
281
+ * ### Query Parameters
282
+ *
283
+ * - `limit` - Number of webhooks to return (1-100, default 10)
284
+ * - `cursor` - Cursor from previous response for pagination
285
+ * - `status` - Filter by status: "active", "paused", or "suspended"
286
+ *
287
+ * ### Response Format
288
+ *
289
+ * Returns a list object with:
290
+ *
291
+ * - `object` - Always "list"
292
+ * - `data` - Array of webhook objects
293
+ * - `nextCursor` - Cursor for the next page, or null if no more results
294
+ *
295
+ * ### Webhook Object
296
+ *
297
+ * Each webhook includes:
298
+ *
299
+ * - `id` - Unique webhook identifier
300
+ * - `name` - Human-readable webhook name
301
+ * - `url` - Webhook endpoint URL
302
+ * - `topics` - Array of subscribed event topics
303
+ * - `status` - Current status ("active", "paused", "suspended")
304
+ * - `health` - Health metrics (response times, error counts)
305
+ * - `createdAt` - Creation timestamp
306
+ * - `updatedAt` - Last update timestamp
307
+ *
308
+ * ### Example
309
+ *
310
+ * ```json
311
+ * {
312
+ * "object": "list",
313
+ * "data": [
314
+ * {
315
+ * "object": "webhook",
316
+ * "id": "507f1f77bcf86cd799439011",
317
+ * "name": "Production Webhook",
318
+ * "url": "https://example.com/webhooks",
319
+ * "topics": ["post.created", "post.updated"],
320
+ * "status": "active",
321
+ * ...
322
+ * }
323
+ * ],
324
+ * "nextCursor": "eyJpZCI6IjUwN2YxZjc3YmNmODZjZDc5OTQzOTAxMSJ9"
325
+ * }
326
+ * ```
327
+ *
328
+ * ### Version Availability
329
+ *
330
+ * This endpoint is only available in API version 2026-01-01.nova and newer.
331
+ *
332
+ * @example
333
+ * ```ts
334
+ * const webhooks = await client.webhooks.list();
335
+ * ```
336
+ */
337
+ list(
338
+ params: WebhookListParams | null | undefined = {},
339
+ options?: RequestOptions,
340
+ ): APIPromise<WebhookListResponse> {
341
+ const { 'Featurebase-Version': featurebaseVersion, ...query } = params ?? {};
342
+ return this._client.get('/v2/webhooks', {
343
+ query,
344
+ ...options,
345
+ headers: buildHeaders([
346
+ { ...(featurebaseVersion != null ? { 'Featurebase-Version': featurebaseVersion } : undefined) },
347
+ options?.headers,
348
+ ]),
349
+ });
350
+ }
351
+
352
+ /**
353
+ * Permanently deletes a webhook.
354
+ *
355
+ * ### Path Parameters
356
+ *
357
+ * - `id` - The webhook ID (24-character ObjectId)
358
+ *
359
+ * ### Response
360
+ *
361
+ * Returns a deletion confirmation object:
362
+ *
363
+ * ```json
364
+ * {
365
+ * "id": "507f1f77bcf86cd799439011",
366
+ * "object": "webhook",
367
+ * "deleted": true
368
+ * }
369
+ * ```
370
+ *
371
+ * ### Caution
372
+ *
373
+ * This operation is **irreversible**. The webhook and its configuration will be
374
+ * permanently deleted. After deletion, no events will be sent to the webhook
375
+ * endpoint.
376
+ *
377
+ * ### Version Availability
378
+ *
379
+ * This endpoint is only available in API version 2026-01-01.nova and newer.
380
+ *
381
+ * @example
382
+ * ```ts
383
+ * const webhook = await client.webhooks.delete(
384
+ * '507f1f77bcf86cd799439011',
385
+ * );
386
+ * ```
387
+ */
388
+ delete(
389
+ id: string,
390
+ params: WebhookDeleteParams | null | undefined = {},
391
+ options?: RequestOptions,
392
+ ): APIPromise<WebhookDeleteResponse> {
393
+ const { 'Featurebase-Version': featurebaseVersion } = params ?? {};
394
+ return this._client.delete(path`/v2/webhooks/${id}`, {
395
+ ...options,
396
+ headers: buildHeaders([
397
+ { ...(featurebaseVersion != null ? { 'Featurebase-Version': featurebaseVersion } : undefined) },
398
+ options?.headers,
399
+ ]),
400
+ });
401
+ }
402
+
403
+ /**
404
+ * Generates a new signing secret for a webhook. The previous secret is immediately
405
+ * invalidated.
406
+ *
407
+ * ### Path Parameters
408
+ *
409
+ * - `id` - The webhook ID (24-character ObjectId)
410
+ *
411
+ * ### Response
412
+ *
413
+ * Returns the updated webhook object, including the new signing secret.
414
+ *
415
+ * ### Important
416
+ *
417
+ * After refreshing the secret, any integrations that verify webhook signatures
418
+ * using the old secret will stop working until they are updated with the new
419
+ * secret.
420
+ *
421
+ * ### Example Response
422
+ *
423
+ * ```json
424
+ * {
425
+ * "object": "webhook",
426
+ * "id": "507f1f77bcf86cd799439011",
427
+ * "name": "Production Webhook",
428
+ * "url": "https://example.com/webhooks",
429
+ * "secret": "whsec_newSecret123abc456def",
430
+ * "topics": ["post.created", "post.updated"],
431
+ * "status": "active",
432
+ * ...
433
+ * }
434
+ * ```
435
+ *
436
+ * ### Version Availability
437
+ *
438
+ * This endpoint is only available in API version 2026-01-01.nova and newer.
439
+ *
440
+ * @example
441
+ * ```ts
442
+ * const webhook = await client.webhooks.refreshSecret(
443
+ * '507f1f77bcf86cd799439011',
444
+ * );
445
+ * ```
446
+ */
447
+ refreshSecret(
448
+ id: string,
449
+ params: WebhookRefreshSecretParams | null | undefined = {},
450
+ options?: RequestOptions,
451
+ ): APIPromise<Webhook> {
452
+ const { 'Featurebase-Version': featurebaseVersion } = params ?? {};
453
+ return this._client.post(path`/v2/webhooks/${id}/secret`, {
454
+ ...options,
455
+ headers: buildHeaders([
456
+ { ...(featurebaseVersion != null ? { 'Featurebase-Version': featurebaseVersion } : undefined) },
457
+ options?.headers,
458
+ ]),
459
+ });
460
+ }
461
+ }
462
+
463
+ export interface Webhook {
464
+ /**
465
+ * Unique identifier
466
+ */
467
+ id: string;
468
+
469
+ /**
470
+ * ISO timestamp when the webhook was created
471
+ */
472
+ createdAt: string;
473
+
474
+ /**
475
+ * Optional description of the webhook purpose
476
+ */
477
+ description: string | null;
478
+
479
+ health: Webhook.Health;
480
+
481
+ /**
482
+ * Last delivery attempt status
483
+ */
484
+ lastStatus: Webhook.LastStatus | null;
485
+
486
+ /**
487
+ * Human-readable webhook name
488
+ */
489
+ name: string;
490
+
491
+ /**
492
+ * Object type identifier
493
+ */
494
+ object: 'webhook';
495
+
496
+ requestConfig: Webhook.RequestConfig;
497
+
498
+ /**
499
+ * Webhook signing secret for verifying payloads
500
+ */
501
+ secret: string;
502
+
503
+ /**
504
+ * Current status of the webhook
505
+ */
506
+ status: 'active' | 'paused' | 'suspended';
507
+
508
+ /**
509
+ * Array of event topics the webhook subscribes to
510
+ */
511
+ topics: Array<
512
+ | 'post.created'
513
+ | 'post.updated'
514
+ | 'post.deleted'
515
+ | 'post.voted'
516
+ | 'ticket.created'
517
+ | 'ticket.updated'
518
+ | 'ticket.deleted'
519
+ | 'changelog.published'
520
+ | 'comment.created'
521
+ | 'comment.updated'
522
+ | 'comment.deleted'
523
+ | 'conversation.user.created'
524
+ | 'conversation.user.replied'
525
+ | 'conversation.admin.replied'
526
+ | 'conversation.admin.closed'
527
+ | 'conversation.handover_requested'
528
+ | 'conversation.admin.assigned'
529
+ | 'conversation.admin.noted'
530
+ | 'conversation.admin.snoozed'
531
+ | 'conversation.admin.unsnoozed'
532
+ | 'conversation.admin.opened'
533
+ | 'conversation.priority.updated'
534
+ | 'conversation.deleted'
535
+ | 'conversation.contact.attached'
536
+ | 'conversation.contact.detached'
537
+ | 'conversation.read'
538
+ | 'conversation_part.redacted'
539
+ >;
540
+
541
+ /**
542
+ * ISO timestamp when the webhook was last updated
543
+ */
544
+ updatedAt: string;
545
+
546
+ /**
547
+ * Webhook endpoint URL
548
+ */
549
+ url: string;
550
+
551
+ /**
552
+ * API version for webhook payloads
553
+ */
554
+ version: string;
555
+ }
556
+
557
+ export namespace Webhook {
558
+ export interface Health {
559
+ /**
560
+ * Average response time in milliseconds
561
+ */
562
+ avgResponseTime: number;
563
+
564
+ /**
565
+ * Number of consecutive delivery failures
566
+ */
567
+ consecutiveFailures: number;
568
+
569
+ /**
570
+ * Number of errors since last successful delivery
571
+ */
572
+ errorsSinceLastSuccess: number;
573
+
574
+ /**
575
+ * Last response time in milliseconds
576
+ */
577
+ lastResponseTime: number;
578
+
579
+ /**
580
+ * ISO timestamp of last successful delivery
581
+ */
582
+ lastSuccessAt: string | null;
583
+ }
584
+
585
+ /**
586
+ * Last delivery attempt status
587
+ */
588
+ export interface LastStatus {
589
+ /**
590
+ * HTTP status code from last delivery attempt
591
+ */
592
+ code: number;
593
+
594
+ /**
595
+ * Status message from last delivery attempt
596
+ */
597
+ message: string;
598
+
599
+ /**
600
+ * ISO timestamp of last status update
601
+ */
602
+ timestamp: string;
603
+ }
604
+
605
+ export interface RequestConfig {
606
+ /**
607
+ * Request timeout in milliseconds (1000-30000)
608
+ */
609
+ timeoutMs: number;
610
+
611
+ /**
612
+ * Custom headers to send with webhook requests
613
+ */
614
+ headers?: { [key: string]: string };
615
+ }
616
+ }
617
+
618
+ /**
619
+ * Request configuration for webhook delivery
620
+ */
621
+ export interface WebhookRequestConfigInput {
622
+ /**
623
+ * Custom headers to send with webhook requests (max 10)
624
+ */
625
+ headers?: { [key: string]: string };
626
+ }
627
+
628
+ export interface WebhookListResponse {
629
+ /**
630
+ * Array of webhooks
631
+ */
632
+ data: Array<Webhook>;
633
+
634
+ /**
635
+ * Cursor for fetching the next page (cursor-based pagination)
636
+ */
637
+ nextCursor: string | null;
638
+
639
+ /**
640
+ * Object type identifier
641
+ */
642
+ object: 'list';
643
+ }
644
+
645
+ export interface WebhookDeleteResponse {
646
+ /**
647
+ * Unique identifier of the deleted webhook
648
+ */
649
+ id: string;
650
+
651
+ /**
652
+ * Indicates the resource was deleted
653
+ */
654
+ deleted: true;
655
+
656
+ /**
657
+ * Object type identifier
658
+ */
659
+ object: 'webhook';
660
+ }
661
+
662
+ export interface WebhookCreateParams {
663
+ /**
664
+ * Body param: Human-readable name for the webhook
665
+ */
666
+ name: string;
667
+
668
+ /**
669
+ * Body param: Array of event topics to subscribe to
670
+ */
671
+ topics: Array<
672
+ | 'post.created'
673
+ | 'post.updated'
674
+ | 'post.deleted'
675
+ | 'post.voted'
676
+ | 'ticket.created'
677
+ | 'ticket.updated'
678
+ | 'ticket.deleted'
679
+ | 'changelog.published'
680
+ | 'comment.created'
681
+ | 'comment.updated'
682
+ | 'comment.deleted'
683
+ | 'conversation.user.created'
684
+ | 'conversation.user.replied'
685
+ | 'conversation.admin.replied'
686
+ | 'conversation.admin.closed'
687
+ | 'conversation.handover_requested'
688
+ | 'conversation.admin.assigned'
689
+ | 'conversation.admin.noted'
690
+ | 'conversation.admin.snoozed'
691
+ | 'conversation.admin.unsnoozed'
692
+ | 'conversation.admin.opened'
693
+ | 'conversation.priority.updated'
694
+ | 'conversation.deleted'
695
+ | 'conversation.contact.attached'
696
+ | 'conversation.contact.detached'
697
+ | 'conversation.read'
698
+ | 'conversation_part.redacted'
699
+ >;
700
+
701
+ /**
702
+ * Body param: Webhook endpoint URL (must be HTTPS)
703
+ */
704
+ url: string;
705
+
706
+ /**
707
+ * Body param: Optional description of the webhook purpose
708
+ */
709
+ description?: string;
710
+
711
+ /**
712
+ * Body param: Request configuration for webhook delivery
713
+ */
714
+ requestConfig?: WebhookRequestConfigInput;
715
+
716
+ /**
717
+ * Header param: API version for this request. Defaults to your organization's
718
+ * configured API version if not specified.
719
+ */
720
+ 'Featurebase-Version'?: string;
721
+ }
722
+
723
+ export interface WebhookRetrieveParams {
724
+ /**
725
+ * API version for this request. Defaults to your organization's configured API
726
+ * version if not specified.
727
+ */
728
+ 'Featurebase-Version'?: string;
729
+ }
730
+
731
+ export interface WebhookUpdateParams {
732
+ /**
733
+ * Body param: Optional description of the webhook purpose (null to clear)
734
+ */
735
+ description?: string | null;
736
+
737
+ /**
738
+ * Body param: Human-readable name for the webhook
739
+ */
740
+ name?: string;
741
+
742
+ /**
743
+ * Body param: Request configuration for webhook delivery
744
+ */
745
+ requestConfig?: WebhookRequestConfigInput;
746
+
747
+ /**
748
+ * Body param: Set to "active" to reactivate or "paused" to pause webhook delivery
749
+ */
750
+ status?: 'active' | 'paused';
751
+
752
+ /**
753
+ * Body param: Array of event topics to subscribe to
754
+ */
755
+ topics?: Array<
756
+ | 'post.created'
757
+ | 'post.updated'
758
+ | 'post.deleted'
759
+ | 'post.voted'
760
+ | 'ticket.created'
761
+ | 'ticket.updated'
762
+ | 'ticket.deleted'
763
+ | 'changelog.published'
764
+ | 'comment.created'
765
+ | 'comment.updated'
766
+ | 'comment.deleted'
767
+ | 'conversation.user.created'
768
+ | 'conversation.user.replied'
769
+ | 'conversation.admin.replied'
770
+ | 'conversation.admin.closed'
771
+ | 'conversation.handover_requested'
772
+ | 'conversation.admin.assigned'
773
+ | 'conversation.admin.noted'
774
+ | 'conversation.admin.snoozed'
775
+ | 'conversation.admin.unsnoozed'
776
+ | 'conversation.admin.opened'
777
+ | 'conversation.priority.updated'
778
+ | 'conversation.deleted'
779
+ | 'conversation.contact.attached'
780
+ | 'conversation.contact.detached'
781
+ | 'conversation.read'
782
+ | 'conversation_part.redacted'
783
+ >;
784
+
785
+ /**
786
+ * Body param: Webhook endpoint URL (must be HTTPS)
787
+ */
788
+ url?: string;
789
+
790
+ /**
791
+ * Header param: API version for this request. Defaults to your organization's
792
+ * configured API version if not specified.
793
+ */
794
+ 'Featurebase-Version'?: string;
795
+ }
796
+
797
+ export interface WebhookListParams {
798
+ /**
799
+ * Query param: An opaque cursor for pagination. Use the nextCursor value from a
800
+ * previous response to fetch the next page of results.
801
+ */
802
+ cursor?: string;
803
+
804
+ /**
805
+ * Query param: A limit on the number of objects to be returned, between 1 and 100.
806
+ */
807
+ limit?: number;
808
+
809
+ /**
810
+ * Query param: Filter webhooks by status
811
+ */
812
+ status?: 'active' | 'paused' | 'suspended';
813
+
814
+ /**
815
+ * Header param: API version for this request. Defaults to your organization's
816
+ * configured API version if not specified.
817
+ */
818
+ 'Featurebase-Version'?: string;
819
+ }
820
+
821
+ export interface WebhookDeleteParams {
822
+ /**
823
+ * API version for this request. Defaults to your organization's configured API
824
+ * version if not specified.
825
+ */
826
+ 'Featurebase-Version'?: string;
827
+ }
828
+
829
+ export interface WebhookRefreshSecretParams {
830
+ /**
831
+ * API version for this request. Defaults to your organization's configured API
832
+ * version if not specified.
833
+ */
834
+ 'Featurebase-Version'?: string;
835
+ }
836
+
837
+ export declare namespace Webhooks {
838
+ export {
839
+ type Webhook as Webhook,
840
+ type WebhookRequestConfigInput as WebhookRequestConfigInput,
841
+ type WebhookListResponse as WebhookListResponse,
842
+ type WebhookDeleteResponse as WebhookDeleteResponse,
843
+ type WebhookCreateParams as WebhookCreateParams,
844
+ type WebhookRetrieveParams as WebhookRetrieveParams,
845
+ type WebhookUpdateParams as WebhookUpdateParams,
846
+ type WebhookListParams as WebhookListParams,
847
+ type WebhookDeleteParams as WebhookDeleteParams,
848
+ type WebhookRefreshSecretParams as WebhookRefreshSecretParams,
849
+ };
850
+ }