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,908 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { APIResource } from '../../core/resource';
4
+ import * as ContactsAPI from './contacts';
5
+ import * as CompaniesAPI from '../companies/companies';
6
+ import * as EmailPreferencesAPI from './email-preferences';
7
+ import {
8
+ EmailPreferenceRetrieveParams,
9
+ EmailPreferenceUpdateParams,
10
+ EmailPreferences,
11
+ PreferenceState,
12
+ PreferencesOutput,
13
+ UpdatePreferenceBody,
14
+ } from './email-preferences';
15
+ import * as ByUserIDAPI from './by-user-id/by-user-id';
16
+ import {
17
+ ByUserID,
18
+ ByUserIDDeleteParams,
19
+ ByUserIDRetrieveParams,
20
+ ByUserIDRetrieveResponse,
21
+ } from './by-user-id/by-user-id';
22
+ import { APIPromise } from '../../core/api-promise';
23
+ import { buildHeaders } from '../../internal/headers';
24
+ import { RequestOptions } from '../../internal/request-options';
25
+ import { path } from '../../internal/utils/path';
26
+
27
+ /**
28
+ * Contacts are the customers and leads in your Featurebase organization. Use this endpoint to list and retrieve contact information.
29
+ */
30
+ export class Contacts extends APIResource {
31
+ byUserID: ByUserIDAPI.ByUserID = new ByUserIDAPI.ByUserID(this._client);
32
+ emailPreferences: EmailPreferencesAPI.EmailPreferences = new EmailPreferencesAPI.EmailPreferences(
33
+ this._client,
34
+ );
35
+
36
+ /**
37
+ * Retrieves a single contact by their Featurebase ID.
38
+ *
39
+ * Returns both customers and leads.
40
+ *
41
+ * ### Path Parameters
42
+ *
43
+ * - `id` - The Featurebase contact ID (24-character ObjectId)
44
+ *
45
+ * ### Response Format
46
+ *
47
+ * Returns a single contact object with:
48
+ *
49
+ * - `object` - Always "contact"
50
+ * - `id` - Unique contact identifier
51
+ * - `userId` - External user ID from SSO (if set)
52
+ * - `email` - Contact email address
53
+ * - `name` - Contact display name
54
+ * - `profilePicture` - Profile picture URL
55
+ * - `type` - Contact type ("customer" or "lead")
56
+ * - `companies` - Array of companies the contact belongs to
57
+ * - `customFields` - Custom field values
58
+ * - `postsCreated` - Number of posts created
59
+ * - `commentsCreated` - Number of comments created
60
+ * - `lastActivity` - Last activity timestamp
61
+ *
62
+ * ### Example
63
+ *
64
+ * ```json
65
+ * {
66
+ * "object": "contact",
67
+ * "id": "676f0f6765bdaa7d7d760f88",
68
+ * "email": "john@example.com",
69
+ * "name": "John Doe",
70
+ * "type": "customer",
71
+ * ...
72
+ * }
73
+ * ```
74
+ *
75
+ * ### Version Availability
76
+ *
77
+ * This endpoint is only available in API version 2026-01-01.nova and newer.
78
+ *
79
+ * @example
80
+ * ```ts
81
+ * const contact = await client.contacts.retrieve(
82
+ * '507f1f77bcf86cd799439011',
83
+ * );
84
+ * ```
85
+ */
86
+ retrieve(
87
+ id: string,
88
+ params: ContactRetrieveParams | null | undefined = {},
89
+ options?: RequestOptions,
90
+ ): APIPromise<ContactRetrieveResponse> {
91
+ const { 'Featurebase-Version': featurebaseVersion } = params ?? {};
92
+ return this._client.get(path`/v2/contacts/${id}`, {
93
+ ...options,
94
+ headers: buildHeaders([
95
+ { ...(featurebaseVersion != null ? { 'Featurebase-Version': featurebaseVersion } : undefined) },
96
+ options?.headers,
97
+ ]),
98
+ });
99
+ }
100
+
101
+ /**
102
+ * Returns a list of contacts (customers and leads) in your organization using
103
+ * cursor-based pagination.
104
+ *
105
+ * ### Query Parameters
106
+ *
107
+ * - `limit` - Number of contacts to return (1-100, default 10)
108
+ * - `cursor` - Cursor from previous response for pagination
109
+ * - `contactType` - Filter by contact type: "customer" (default), "lead", or "all"
110
+ *
111
+ * ### Response Format
112
+ *
113
+ * Returns a list object with:
114
+ *
115
+ * - `object` - Always "list"
116
+ * - `data` - Array of contact objects
117
+ * - `nextCursor` - Cursor for the next page, or null if no more results
118
+ *
119
+ * ### Contact Object
120
+ *
121
+ * Each contact includes:
122
+ *
123
+ * - `id` - Unique contact identifier
124
+ * - `userId` - External user ID from SSO (if set)
125
+ * - `email` - Contact email address
126
+ * - `name` - Contact display name
127
+ * - `profilePicture` - Profile picture URL
128
+ * - `type` - Contact type ("customer" or "lead")
129
+ * - `companies` - Array of companies the contact belongs to
130
+ * - `customFields` - Custom field values
131
+ * - `postsCreated` - Number of posts created
132
+ * - `commentsCreated` - Number of comments created
133
+ * - `lastActivity` - Last activity timestamp
134
+ *
135
+ * ### Example
136
+ *
137
+ * ```json
138
+ * {
139
+ * "object": "list",
140
+ * "data": [
141
+ * {
142
+ * "object": "contact",
143
+ * "id": "676f0f6765bdaa7d7d760f88",
144
+ * "email": "john@example.com",
145
+ * "name": "John Doe",
146
+ * "type": "customer",
147
+ * ...
148
+ * }
149
+ * ],
150
+ * "nextCursor": "eyJpZCI6IjUwN2YxZjc3YmNmODZjZDc5OTQzOTAxMSJ9"
151
+ * }
152
+ * ```
153
+ *
154
+ * ### Version Availability
155
+ *
156
+ * This endpoint is only available in API version 2026-01-01.nova and newer.
157
+ *
158
+ * @example
159
+ * ```ts
160
+ * const contactList = await client.contacts.list();
161
+ * ```
162
+ */
163
+ list(params: ContactListParams | null | undefined = {}, options?: RequestOptions): APIPromise<ContactList> {
164
+ const { 'Featurebase-Version': featurebaseVersion, ...query } = params ?? {};
165
+ return this._client.get('/v2/contacts', {
166
+ query,
167
+ ...options,
168
+ headers: buildHeaders([
169
+ { ...(featurebaseVersion != null ? { 'Featurebase-Version': featurebaseVersion } : undefined) },
170
+ options?.headers,
171
+ ]),
172
+ });
173
+ }
174
+
175
+ /**
176
+ * Permanently deletes a contact by their Featurebase ID.
177
+ *
178
+ * Supports deleting both customers and leads.
179
+ *
180
+ * ### Path Parameters
181
+ *
182
+ * - `id` - The Featurebase contact ID (24-character ObjectId)
183
+ *
184
+ * ### Deletion Behavior
185
+ *
186
+ * When a contact is deleted:
187
+ *
188
+ * - The contact record is permanently removed
189
+ * - Associated data cleanup is triggered asynchronously
190
+ * - Comments and posts created by the contact are handled according to retention
191
+ * policies
192
+ *
193
+ * ### Response
194
+ *
195
+ * Returns a deletion confirmation object:
196
+ *
197
+ * - `id` - The ID of the deleted contact
198
+ * - `object` - Always "contact"
199
+ * - `deleted` - Always `true`
200
+ *
201
+ * ### Example Response
202
+ *
203
+ * ```json
204
+ * {
205
+ * "id": "676f0f6765bdaa7d7d760f88",
206
+ * "object": "contact",
207
+ * "deleted": true
208
+ * }
209
+ * ```
210
+ *
211
+ * ### Version Availability
212
+ *
213
+ * This endpoint is only available in API version 2026-01-01.nova and newer.
214
+ *
215
+ * @example
216
+ * ```ts
217
+ * const deletedContact = await client.contacts.delete(
218
+ * '507f1f77bcf86cd799439011',
219
+ * );
220
+ * ```
221
+ */
222
+ delete(
223
+ id: string,
224
+ params: ContactDeleteParams | null | undefined = {},
225
+ options?: RequestOptions,
226
+ ): APIPromise<DeletedContact> {
227
+ const { 'Featurebase-Version': featurebaseVersion } = params ?? {};
228
+ return this._client.delete(path`/v2/contacts/${id}`, {
229
+ ...options,
230
+ headers: buildHeaders([
231
+ { ...(featurebaseVersion != null ? { 'Featurebase-Version': featurebaseVersion } : undefined) },
232
+ options?.headers,
233
+ ]),
234
+ });
235
+ }
236
+
237
+ /**
238
+ * Blocks a contact by their Featurebase ID from the messenger/inbox.
239
+ *
240
+ * ### Path Parameters
241
+ *
242
+ * - `id` - The Featurebase internal ID of the contact (MongoDB ObjectId)
243
+ *
244
+ * ### Supported Contact Types
245
+ *
246
+ * This endpoint blocks both:
247
+ *
248
+ * - **Customers** - Users with registered accounts
249
+ * - **Leads** - Anonymous or unregistered visitors
250
+ *
251
+ * ### Blocking Behavior
252
+ *
253
+ * When a contact is blocked:
254
+ *
255
+ * - The contact cannot send new messages via messenger
256
+ * - Existing conversations are not deleted but no new messages can be added by the
257
+ * blocked user
258
+ * - The block can be removed by unblocking the contact
259
+ *
260
+ * ### Response
261
+ *
262
+ * Returns a block confirmation object:
263
+ *
264
+ * - `id` - The ID of the blocked contact
265
+ * - `object` - Always "contact"
266
+ * - `blocked` - Always `true`
267
+ *
268
+ * ### Example Response
269
+ *
270
+ * ```json
271
+ * {
272
+ * "id": "507f1f77bcf86cd799439011",
273
+ * "object": "contact",
274
+ * "blocked": true
275
+ * }
276
+ * ```
277
+ *
278
+ * ### Version Availability
279
+ *
280
+ * This endpoint is only available in API version 2026-01-01.nova and newer.
281
+ *
282
+ * @example
283
+ * ```ts
284
+ * const response = await client.contacts.block(
285
+ * '507f1f77bcf86cd799439011',
286
+ * );
287
+ * ```
288
+ */
289
+ block(
290
+ id: string,
291
+ params: ContactBlockParams | null | undefined = {},
292
+ options?: RequestOptions,
293
+ ): APIPromise<ContactBlockResponse> {
294
+ const { 'Featurebase-Version': featurebaseVersion } = params ?? {};
295
+ return this._client.post(path`/v2/contacts/${id}/block`, {
296
+ ...options,
297
+ headers: buildHeaders([
298
+ { ...(featurebaseVersion != null ? { 'Featurebase-Version': featurebaseVersion } : undefined) },
299
+ options?.headers,
300
+ ]),
301
+ });
302
+ }
303
+
304
+ /**
305
+ * Creates a new contact or updates an existing one.
306
+ *
307
+ * If a contact with the given `email` or `userId` already exists, it will be
308
+ * updated. Otherwise, a new contact will be created.
309
+ *
310
+ * **At least one of `email` or `userId` must be provided for identification.**
311
+ *
312
+ * ### Request Body
313
+ *
314
+ * | Field | Type | Required | Description |
315
+ * | ----------------------- | ------- | ------------------- | --------------------------------------- |
316
+ * | `email` | string | One of email/userId | Contact email address |
317
+ * | `userId` | string | One of email/userId | External user ID from your system |
318
+ * | `name` | string | No | Contact display name |
319
+ * | `profilePicture` | string | No | Profile picture URL |
320
+ * | `companies` | array | No | Companies the contact belongs to |
321
+ * | `customFields` | object | No | Custom field values |
322
+ * | `subscribedToChangelog` | boolean | No | Whether subscribed to changelog |
323
+ * | `locale` | string | No | Contact locale/language |
324
+ * | `phone` | string | No | Contact phone number |
325
+ * | `roles` | array | No | Role IDs to assign |
326
+ * | `userHash` | string | No | HMAC hash for identity verification |
327
+ * | `createdAt` | string | No | When the contact was created (ISO 8601) |
328
+ *
329
+ * ### Company Object
330
+ *
331
+ * Each company in the `companies` array can have:
332
+ *
333
+ * - `id` (required) - External company ID from your system
334
+ * - `name` (required) - Company name
335
+ * - `monthlySpend` - Monthly spend/revenue
336
+ * - `customFields` - Custom field values
337
+ * - `industry` - Industry
338
+ * - `website` - Company website URL
339
+ * - `plan` - Current plan/subscription
340
+ * - `companySize` - Number of employees
341
+ * - `createdAt` - When the company was created
342
+ *
343
+ * ### Response
344
+ *
345
+ * Returns the created or updated contact object.
346
+ *
347
+ * - **201 Created** - A new contact was created
348
+ * - **200 OK** - An existing contact was updated
349
+ *
350
+ * ### Example Request
351
+ *
352
+ * ```json
353
+ * {
354
+ * "email": "john@example.com",
355
+ * "name": "John Doe",
356
+ * "userId": "usr_12345",
357
+ * "companies": [
358
+ * {
359
+ * "id": "company_123",
360
+ * "name": "Acme Inc",
361
+ * "monthlySpend": 500,
362
+ * "plan": "enterprise"
363
+ * }
364
+ * ],
365
+ * "customFields": {
366
+ * "plan": "pro",
367
+ * "signupSource": "website"
368
+ * },
369
+ * "subscribedToChangelog": true
370
+ * }
371
+ * ```
372
+ *
373
+ * ### Example Response
374
+ *
375
+ * ```json
376
+ * {
377
+ * "object": "contact",
378
+ * "id": "676f0f6765bdaa7d7d760f88",
379
+ * "email": "john@example.com",
380
+ * "name": "John Doe",
381
+ * "userId": "usr_12345",
382
+ * "type": "customer",
383
+ * "companies": [...],
384
+ * "customFields": {...},
385
+ * ...
386
+ * }
387
+ * ```
388
+ *
389
+ * ### Version Availability
390
+ *
391
+ * This endpoint is only available in API version 2026-01-01.nova and newer.
392
+ *
393
+ * @example
394
+ * ```ts
395
+ * const response = await client.contacts.createOrUpdate();
396
+ * ```
397
+ */
398
+ createOrUpdate(
399
+ params: ContactCreateOrUpdateParams,
400
+ options?: RequestOptions,
401
+ ): APIPromise<ContactCreateOrUpdateResponse> {
402
+ const { 'Featurebase-Version': featurebaseVersion, ...body } = params;
403
+ return this._client.post('/v2/contacts', {
404
+ body,
405
+ ...options,
406
+ headers: buildHeaders([
407
+ { ...(featurebaseVersion != null ? { 'Featurebase-Version': featurebaseVersion } : undefined) },
408
+ options?.headers,
409
+ ]),
410
+ });
411
+ }
412
+
413
+ /**
414
+ * Unblocks a contact by their Featurebase ID from the messenger/inbox.
415
+ *
416
+ * ### Path Parameters
417
+ *
418
+ * - `id` - The Featurebase internal ID of the contact (MongoDB ObjectId)
419
+ *
420
+ * ### Supported Contact Types
421
+ *
422
+ * This endpoint unblocks both:
423
+ *
424
+ * - **Customers** - Users with registered accounts
425
+ * - **Leads** - Anonymous or unregistered visitors
426
+ *
427
+ * ### Unblocking Behavior
428
+ *
429
+ * When a contact is unblocked:
430
+ *
431
+ * - The contact can resume sending messages via messenger
432
+ * - Previously blocked conversations remain intact
433
+ * - The contact regains full messenger functionality
434
+ *
435
+ * ### Response
436
+ *
437
+ * Returns an unblock confirmation object:
438
+ *
439
+ * - `id` - The ID of the unblocked contact
440
+ * - `object` - Always "contact"
441
+ * - `unblocked` - Always `true`
442
+ *
443
+ * ### Example Response
444
+ *
445
+ * ```json
446
+ * {
447
+ * "id": "507f1f77bcf86cd799439011",
448
+ * "object": "contact",
449
+ * "unblocked": true
450
+ * }
451
+ * ```
452
+ *
453
+ * ### Version Availability
454
+ *
455
+ * This endpoint is only available in API version 2026-01-01.nova and newer.
456
+ *
457
+ * @example
458
+ * ```ts
459
+ * const response = await client.contacts.unblock(
460
+ * '507f1f77bcf86cd799439011',
461
+ * );
462
+ * ```
463
+ */
464
+ unblock(
465
+ id: string,
466
+ params: ContactUnblockParams | null | undefined = {},
467
+ options?: RequestOptions,
468
+ ): APIPromise<ContactUnblockResponse> {
469
+ const { 'Featurebase-Version': featurebaseVersion } = params ?? {};
470
+ return this._client.post(path`/v2/contacts/${id}/unblock`, {
471
+ ...options,
472
+ headers: buildHeaders([
473
+ { ...(featurebaseVersion != null ? { 'Featurebase-Version': featurebaseVersion } : undefined) },
474
+ options?.headers,
475
+ ]),
476
+ });
477
+ }
478
+ }
479
+
480
+ /**
481
+ * User who submitted the response
482
+ */
483
+ export interface Contact {
484
+ /**
485
+ * Unique identifier
486
+ */
487
+ id: string;
488
+
489
+ /**
490
+ * Contact display name
491
+ */
492
+ name: string;
493
+
494
+ /**
495
+ * Object type identifier
496
+ */
497
+ object: 'contact';
498
+
499
+ /**
500
+ * Type of contact
501
+ */
502
+ type: 'customer' | 'lead';
503
+
504
+ /**
505
+ * Number of comments created
506
+ */
507
+ commentsCreated?: number;
508
+
509
+ /**
510
+ * Companies the contact belongs to
511
+ */
512
+ companies?: Array<CompaniesAPI.Company>;
513
+
514
+ /**
515
+ * Custom field values on the contact
516
+ */
517
+ customFields?: { [key: string]: unknown };
518
+
519
+ /**
520
+ * Contact description/bio
521
+ */
522
+ description?: string;
523
+
524
+ /**
525
+ * Contact email
526
+ */
527
+ email?: string | null;
528
+
529
+ /**
530
+ * Last activity ISO timestamp
531
+ */
532
+ lastActivity?: string;
533
+
534
+ /**
535
+ * Contact locale
536
+ */
537
+ locale?: string;
538
+
539
+ /**
540
+ * Whether manually opted out from changelog
541
+ */
542
+ manuallyOptedOutFromChangelog?: boolean;
543
+
544
+ /**
545
+ * Organization ID the contact belongs to
546
+ */
547
+ organizationId?: string;
548
+
549
+ /**
550
+ * Number of posts created
551
+ */
552
+ postsCreated?: number;
553
+
554
+ /**
555
+ * Profile picture URL
556
+ */
557
+ profilePicture?: string | null;
558
+
559
+ /**
560
+ * Contact roles
561
+ */
562
+ roles?: Array<string>;
563
+
564
+ /**
565
+ * Whether subscribed to changelog
566
+ */
567
+ subscribedToChangelog?: boolean;
568
+
569
+ /**
570
+ * External user ID from SSO
571
+ */
572
+ userId?: string;
573
+
574
+ /**
575
+ * Whether email is verified
576
+ */
577
+ verified?: boolean;
578
+ }
579
+
580
+ export interface ContactList {
581
+ /**
582
+ * Array of contacts
583
+ */
584
+ data: Array<ContactList.Data>;
585
+
586
+ /**
587
+ * Cursor for fetching the next page (cursor-based pagination)
588
+ */
589
+ nextCursor: string | null;
590
+
591
+ /**
592
+ * Object type identifier
593
+ */
594
+ object: 'list';
595
+ }
596
+
597
+ export namespace ContactList {
598
+ /**
599
+ * User who submitted the response
600
+ */
601
+ export type Data = ContactsAPI.Contact | (null & {});
602
+ }
603
+
604
+ export interface DeletedContact {
605
+ /**
606
+ * Unique identifier of the deleted contact
607
+ */
608
+ id: string;
609
+
610
+ /**
611
+ * Indicates the resource was deleted
612
+ */
613
+ deleted: true;
614
+
615
+ /**
616
+ * Object type identifier
617
+ */
618
+ object: 'contact';
619
+ }
620
+
621
+ /**
622
+ * User who submitted the response
623
+ */
624
+ export type ContactRetrieveResponse = Contact | (null & {});
625
+
626
+ export interface ContactBlockResponse {
627
+ /**
628
+ * Unique identifier of the blocked contact
629
+ */
630
+ id: string;
631
+
632
+ /**
633
+ * Indicates the contact was blocked
634
+ */
635
+ blocked: true;
636
+
637
+ /**
638
+ * Object type identifier
639
+ */
640
+ object: 'contact';
641
+ }
642
+
643
+ /**
644
+ * User who submitted the response
645
+ */
646
+ export type ContactCreateOrUpdateResponse = Contact | (null & {});
647
+
648
+ export interface ContactUnblockResponse {
649
+ /**
650
+ * Unique identifier of the unblocked contact
651
+ */
652
+ id: string;
653
+
654
+ /**
655
+ * Object type identifier
656
+ */
657
+ object: 'contact';
658
+
659
+ /**
660
+ * Indicates the contact was unblocked
661
+ */
662
+ unblocked: true;
663
+ }
664
+
665
+ export interface ContactRetrieveParams {
666
+ /**
667
+ * API version for this request. Defaults to your organization's configured API
668
+ * version if not specified.
669
+ */
670
+ 'Featurebase-Version'?: string;
671
+ }
672
+
673
+ export interface ContactListParams {
674
+ /**
675
+ * Query param: Filter contacts by type. Defaults to "customer".
676
+ */
677
+ contactType?: 'customer' | 'lead' | 'all';
678
+
679
+ /**
680
+ * Query param: An opaque cursor for pagination. Use the nextCursor value from a
681
+ * previous response to fetch the next page of results.
682
+ */
683
+ cursor?: string;
684
+
685
+ /**
686
+ * Query param: A limit on the number of objects to be returned, between 1 and 100.
687
+ */
688
+ limit?: number;
689
+
690
+ /**
691
+ * Header param: API version for this request. Defaults to your organization's
692
+ * configured API version if not specified.
693
+ */
694
+ 'Featurebase-Version'?: string;
695
+ }
696
+
697
+ export interface ContactDeleteParams {
698
+ /**
699
+ * API version for this request. Defaults to your organization's configured API
700
+ * version if not specified.
701
+ */
702
+ 'Featurebase-Version'?: string;
703
+ }
704
+
705
+ export interface ContactBlockParams {
706
+ /**
707
+ * API version for this request. Defaults to your organization's configured API
708
+ * version if not specified.
709
+ */
710
+ 'Featurebase-Version'?: string;
711
+ }
712
+
713
+ export interface ContactCreateOrUpdateParams {
714
+ /**
715
+ * Body param: Companies the contact belongs to
716
+ */
717
+ companies?: Array<ContactCreateOrUpdateParams.Company>;
718
+
719
+ /**
720
+ * Body param: When the contact was created in your system (ISO 8601)
721
+ */
722
+ createdAt?: string | null;
723
+
724
+ /**
725
+ * Body param: Custom field values on the contact. Values can be string, number,
726
+ * boolean, null, or array of primitives.
727
+ */
728
+ customFields?: ContactCreateOrUpdateParams.CustomFields;
729
+
730
+ /**
731
+ * Body param: Contact email address. Used for identification if userId is not
732
+ * provided.
733
+ */
734
+ email?: string;
735
+
736
+ /**
737
+ * Body param: Contact locale/language preference
738
+ */
739
+ locale?: string;
740
+
741
+ /**
742
+ * Body param: Contact display name
743
+ */
744
+ name?: string;
745
+
746
+ /**
747
+ * Body param: Contact phone number
748
+ */
749
+ phone?: string | null;
750
+
751
+ /**
752
+ * Body param: Profile picture URL
753
+ */
754
+ profilePicture?: string | null;
755
+
756
+ /**
757
+ * Body param: Array of role IDs to assign to the contact
758
+ */
759
+ roles?: Array<string>;
760
+
761
+ /**
762
+ * Body param: Whether the contact is subscribed to changelog updates
763
+ */
764
+ subscribedToChangelog?: boolean;
765
+
766
+ /**
767
+ * Body param: HMAC-SHA256 hash of userId or email for identity verification
768
+ */
769
+ userHash?: string;
770
+
771
+ /**
772
+ * Body param: External user ID from your system. Takes precedence over email for
773
+ * identification.
774
+ */
775
+ userId?: string;
776
+
777
+ /**
778
+ * Header param: API version for this request. Defaults to your organization's
779
+ * configured API version if not specified.
780
+ */
781
+ 'Featurebase-Version'?: string;
782
+ }
783
+
784
+ export namespace ContactCreateOrUpdateParams {
785
+ export interface Company {
786
+ /**
787
+ * External company ID from your system
788
+ */
789
+ id: string;
790
+
791
+ /**
792
+ * Company name
793
+ */
794
+ name: string;
795
+
796
+ /**
797
+ * HMAC-SHA256 hash of company ID for identity verification
798
+ */
799
+ companyHash?: string;
800
+
801
+ /**
802
+ * Number of employees in the company
803
+ */
804
+ companySize?: number | null;
805
+
806
+ /**
807
+ * When the company was created (ISO 8601)
808
+ */
809
+ createdAt?: string | null;
810
+
811
+ /**
812
+ * Custom field values on the company. Values can be string, number, boolean, null,
813
+ * or array of primitives.
814
+ */
815
+ customFields?: Company.CustomFields;
816
+
817
+ /**
818
+ * Industry the company operates in
819
+ */
820
+ industry?: string;
821
+
822
+ /**
823
+ * Monthly spend/revenue from this company
824
+ */
825
+ monthlySpend?: number;
826
+
827
+ /**
828
+ * Current plan/subscription name
829
+ */
830
+ plan?: string;
831
+
832
+ /**
833
+ * Company website URL
834
+ */
835
+ website?: string;
836
+ }
837
+
838
+ export namespace Company {
839
+ /**
840
+ * Custom field values on the company. Values can be string, number, boolean, null,
841
+ * or array of primitives.
842
+ */
843
+ export interface CustomFields {
844
+ industry?: string;
845
+
846
+ plan?: string;
847
+
848
+ priority?: string;
849
+ }
850
+ }
851
+
852
+ /**
853
+ * Custom field values on the contact. Values can be string, number, boolean, null,
854
+ * or array of primitives.
855
+ */
856
+ export interface CustomFields {
857
+ accountType?: string;
858
+
859
+ plan?: string;
860
+
861
+ signupSource?: string;
862
+ }
863
+ }
864
+
865
+ export interface ContactUnblockParams {
866
+ /**
867
+ * API version for this request. Defaults to your organization's configured API
868
+ * version if not specified.
869
+ */
870
+ 'Featurebase-Version'?: string;
871
+ }
872
+
873
+ Contacts.ByUserID = ByUserID;
874
+ Contacts.EmailPreferences = EmailPreferences;
875
+
876
+ export declare namespace Contacts {
877
+ export {
878
+ type Contact as Contact,
879
+ type ContactList as ContactList,
880
+ type DeletedContact as DeletedContact,
881
+ type ContactRetrieveResponse as ContactRetrieveResponse,
882
+ type ContactBlockResponse as ContactBlockResponse,
883
+ type ContactCreateOrUpdateResponse as ContactCreateOrUpdateResponse,
884
+ type ContactUnblockResponse as ContactUnblockResponse,
885
+ type ContactRetrieveParams as ContactRetrieveParams,
886
+ type ContactListParams as ContactListParams,
887
+ type ContactDeleteParams as ContactDeleteParams,
888
+ type ContactBlockParams as ContactBlockParams,
889
+ type ContactCreateOrUpdateParams as ContactCreateOrUpdateParams,
890
+ type ContactUnblockParams as ContactUnblockParams,
891
+ };
892
+
893
+ export {
894
+ ByUserID as ByUserID,
895
+ type ByUserIDRetrieveResponse as ByUserIDRetrieveResponse,
896
+ type ByUserIDRetrieveParams as ByUserIDRetrieveParams,
897
+ type ByUserIDDeleteParams as ByUserIDDeleteParams,
898
+ };
899
+
900
+ export {
901
+ EmailPreferences as EmailPreferences,
902
+ type PreferenceState as PreferenceState,
903
+ type PreferencesOutput as PreferencesOutput,
904
+ type UpdatePreferenceBody as UpdatePreferenceBody,
905
+ type EmailPreferenceRetrieveParams as EmailPreferenceRetrieveParams,
906
+ type EmailPreferenceUpdateParams as EmailPreferenceUpdateParams,
907
+ };
908
+ }