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,748 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+ import { APIResource } from "../../core/resource.mjs";
3
+ import * as ParticipantsAPI from "./participants.mjs";
4
+ import { Participants } from "./participants.mjs";
5
+ import * as ConversationsTagsAPI from "./tags.mjs";
6
+ import { Tags, } from "./tags.mjs";
7
+ import { buildHeaders } from "../../internal/headers.mjs";
8
+ import { path } from "../../internal/utils/path.mjs";
9
+ /**
10
+ * Conversations are messenger/inbox conversations in your Featurebase organization. Use this endpoint to list and retrieve conversation information.
11
+ */
12
+ export class Conversations extends APIResource {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.tags = new ConversationsTagsAPI.Tags(this._client);
16
+ this.participants = new ParticipantsAPI.Participants(this._client);
17
+ }
18
+ /**
19
+ * Creates a new conversation. Supports both contact-initiated (customer/lead) and
20
+ * admin-initiated (outreach) conversations.
21
+ *
22
+ * ## Contact-Initiated Conversation
23
+ *
24
+ * For conversations started by a customer or lead:
25
+ *
26
+ * | Field | Type | Required | Description |
27
+ * | -------------- | ------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
28
+ * | `from.type` | string | Yes | Must be "contact" |
29
+ * | `from.id` | string | Yes | The Featurebase contact ID (24-character ObjectId) |
30
+ * | `bodyMarkdown` | string | Yes | The initial message content in markdown format. Images referenced by URL or as base64 data URIs will be automatically uploaded and stored. |
31
+ * | `channel` | string | No | The channel: "desktop" (default) or "email" |
32
+ * | `createdAt` | string | No | ISO timestamp for migrations |
33
+ *
34
+ * ### Example Contact-Initiated Request
35
+ *
36
+ * ```json
37
+ * {
38
+ * "from": {
39
+ * "type": "contact",
40
+ * "id": "676f0f6765bdaa7d7d760f88"
41
+ * },
42
+ * "bodyMarkdown": "Hello, I have a question about your product.",
43
+ * "channel": "desktop"
44
+ * }
45
+ * ```
46
+ *
47
+ * ## Admin-Initiated Outreach
48
+ *
49
+ * For outreach conversations started by an admin:
50
+ *
51
+ * | Field | Type | Required | Description |
52
+ * | ---------------------- | -------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
53
+ * | `from.type` | string | Yes | Must be "admin" |
54
+ * | `from.id` | string | Yes | The Featurebase admin ID (24-character ObjectId) |
55
+ * | `bodyMarkdown` | string | Yes | The initial message content in markdown format. Images referenced by URL or as base64 data URIs will be automatically uploaded and stored. |
56
+ * | `channel` | string | No | The channel: "desktop" (default) or "email" |
57
+ * | `recipients` | object | Yes | Recipients for the outreach |
58
+ * | `recipients.to` | object | Yes | Primary recipients |
59
+ * | `recipients.to.emails` | string[] | No\* | Email addresses |
60
+ * | `recipients.to.ids` | string[] | No\* | Featurebase contact IDs |
61
+ * | `recipients.cc` | object | No | CC recipients (same structure as "to") |
62
+ * | `recipients.bcc` | object | No | BCC recipients (same structure as "to") |
63
+ * | `subject` | string | No\*\* | Email subject line |
64
+ * | `createdAt` | string | No | ISO timestamp for migrations |
65
+ *
66
+ * \*At least one email or ID is required in `recipients.to` \*\*Required when
67
+ * channel is "email"
68
+ *
69
+ * ### Example Admin Outreach (In-App)
70
+ *
71
+ * ```json
72
+ * {
73
+ * "from": {
74
+ * "type": "admin",
75
+ * "id": "507f1f77bcf86cd799439011"
76
+ * },
77
+ * "bodyMarkdown": "Hi! Just following up on your inquiry.",
78
+ * "channel": "desktop",
79
+ * "recipients": {
80
+ * "to": {
81
+ * "ids": ["676f0f6765bdaa7d7d760f88"]
82
+ * }
83
+ * }
84
+ * }
85
+ * ```
86
+ *
87
+ * ### Example Admin Outreach (Email)
88
+ *
89
+ * ```json
90
+ * {
91
+ * "from": {
92
+ * "type": "admin",
93
+ * "id": "507f1f77bcf86cd799439011"
94
+ * },
95
+ * "bodyMarkdown": "Hi! Just following up on your inquiry.",
96
+ * "channel": "email",
97
+ * "subject": "Following up on your inquiry",
98
+ * "recipients": {
99
+ * "to": {
100
+ * "emails": ["john@example.com"]
101
+ * },
102
+ * "cc": {
103
+ * "emails": ["manager@example.com"]
104
+ * }
105
+ * }
106
+ * }
107
+ * ```
108
+ *
109
+ * ### Response
110
+ *
111
+ * Returns the created conversation object with a **201 Created** status.
112
+ *
113
+ * ### Example Response
114
+ *
115
+ * ```json
116
+ * {
117
+ * "object": "conversation",
118
+ * "id": "12345",
119
+ * "state": "open",
120
+ * "priority": false,
121
+ * "adminAssigneeId": null,
122
+ * "participants": [{ "type": "customer", "id": "676f0f6765bdaa7d7d760f88" }],
123
+ * "source": {
124
+ * "channel": "desktop",
125
+ * "deliveredAs": "customer_initiated",
126
+ * "bodyHtml": "<p>Hello, I have a question about your product.</p>",
127
+ * "bodyMarkdown": "Hello, I have a question about your product.",
128
+ * "author": { "type": "customer", "id": "676f0f6765bdaa7d7d760f88" }
129
+ * },
130
+ * "createdAt": "2025-01-15T10:30:00.000Z",
131
+ * "updatedAt": "2025-01-15T10:30:00.000Z"
132
+ * }
133
+ * ```
134
+ *
135
+ * ### Version Availability
136
+ *
137
+ * This endpoint is only available in API version 2026-01-01.nova and newer.
138
+ *
139
+ * @example
140
+ * ```ts
141
+ * const conversation = await client.conversations.create({
142
+ * bodyMarkdown:
143
+ * 'Hello, I have a question about your product.\n\n![screenshot](https://example.com/image.png)',
144
+ * from: { id: '676f0f6765bdaa7d7d760f88', type: 'contact' },
145
+ * });
146
+ * ```
147
+ */
148
+ create(params, options) {
149
+ const { 'Featurebase-Version': featurebaseVersion, ...body } = params;
150
+ return this._client.post('/v2/conversations', {
151
+ body,
152
+ ...options,
153
+ headers: buildHeaders([
154
+ { ...(featurebaseVersion != null ? { 'Featurebase-Version': featurebaseVersion } : undefined) },
155
+ options?.headers,
156
+ ]),
157
+ });
158
+ }
159
+ /**
160
+ * Retrieves a single conversation by its ID, including conversation parts
161
+ * (messages).
162
+ *
163
+ * ### Path Parameters
164
+ *
165
+ * - `id` - The conversation ID (short ID)
166
+ *
167
+ * ### Hard Limit of 500 Parts
168
+ *
169
+ * The maximum number of conversation parts that can be returned via the API is
170
+ * **500**. If a conversation has more than 500 parts, only the **500 most recent**
171
+ * conversation parts will be returned.
172
+ *
173
+ * ### Response Format
174
+ *
175
+ * Returns a single conversation object with:
176
+ *
177
+ * - `object` - Always "conversation"
178
+ * - `id` - Unique conversation identifier (short ID)
179
+ * - `title` - Conversation title
180
+ * - `state` - Current state ("open", "closed", or "snoozed")
181
+ * - `priority` - Whether the conversation is marked as priority
182
+ * - `adminAssigneeId` - ID of assigned admin (if any)
183
+ * - `teamAssigneeId` - ID of assigned team (if any)
184
+ * - `participants` - Array of participants
185
+ * - `source` - Information about the first message
186
+ * - `conversationParts` - Array of conversation parts (messages, max 500)
187
+ * - `createdAt` - Creation timestamp
188
+ * - `updatedAt` - Last update timestamp
189
+ *
190
+ * ### Conversation Parts
191
+ *
192
+ * Each conversation part includes:
193
+ *
194
+ * - `object` - Always "conversation_part"
195
+ * - `id` - Unique part identifier
196
+ * - `partType` - Type of part (e.g., "user_msg", "admin_msg", "bot_msg")
197
+ * - `body` - Message body (HTML content)
198
+ * - `author` - Author information with name, email, and profile picture
199
+ * - `channel` - Channel through which the message was sent
200
+ * - `createdAt` - Creation timestamp
201
+ * - `updatedAt` - Last update timestamp
202
+ *
203
+ * ### Example
204
+ *
205
+ * ```json
206
+ * {
207
+ * "object": "conversation",
208
+ * "id": "12345",
209
+ * "title": "Question about pricing",
210
+ * "state": "open",
211
+ * "priority": false,
212
+ * "adminAssigneeId": "507f1f77bcf86cd799439011",
213
+ * "participants": [{ "type": "customer", "id": "676f0f6765bdaa7d7d760f88" }],
214
+ * "conversationParts": [
215
+ * {
216
+ * "object": "conversation_part",
217
+ * "id": "1",
218
+ * "partType": "user_msg",
219
+ * "bodyHtml": "<p>Hello, I have a question about your pricing plans.</p>",
220
+ * "bodyMarkdown": "Hello, I have a question about your pricing plans.",
221
+ * "author": {
222
+ * "type": "customer",
223
+ * "id": "676f0f6765bdaa7d7d760f88",
224
+ * "name": "John Doe",
225
+ * "email": "john@example.com"
226
+ * },
227
+ * "channel": "desktop",
228
+ * "createdAt": "2025-01-15T10:30:00.000Z",
229
+ * "updatedAt": "2025-01-15T10:30:00.000Z"
230
+ * },
231
+ * {
232
+ * "object": "conversation_part",
233
+ * "id": "2",
234
+ * "partType": "admin_msg",
235
+ * "bodyHtml": "<p>Hi John! I'd be happy to help you with pricing information.</p>",
236
+ * "bodyMarkdown": "Hi John! I'd be happy to help you with pricing information.",
237
+ * "author": {
238
+ * "type": "admin",
239
+ * "id": "507f1f77bcf86cd799439011",
240
+ * "name": "Support Agent"
241
+ * },
242
+ * "channel": "desktop",
243
+ * "createdAt": "2025-01-15T10:35:00.000Z",
244
+ * "updatedAt": "2025-01-15T10:35:00.000Z"
245
+ * }
246
+ * ],
247
+ * "createdAt": "2025-01-15T10:30:00.000Z",
248
+ * "updatedAt": "2025-01-15T10:35:00.000Z"
249
+ * }
250
+ * ```
251
+ *
252
+ * ### Version Availability
253
+ *
254
+ * This endpoint is only available in API version 2026-01-01.nova and newer.
255
+ *
256
+ * @example
257
+ * ```ts
258
+ * const conversation = await client.conversations.retrieve(
259
+ * '12345',
260
+ * );
261
+ * ```
262
+ */
263
+ retrieve(id, params = {}, options) {
264
+ const { 'Featurebase-Version': featurebaseVersion } = params ?? {};
265
+ return this._client.get(path `/v2/conversations/${id}`, {
266
+ ...options,
267
+ headers: buildHeaders([
268
+ { ...(featurebaseVersion != null ? { 'Featurebase-Version': featurebaseVersion } : undefined) },
269
+ options?.headers,
270
+ ]),
271
+ });
272
+ }
273
+ /**
274
+ * Updates a conversation's properties. Supports partial updates - only provided
275
+ * fields will be updated.
276
+ *
277
+ * ### Path Parameters
278
+ *
279
+ * - `id` - The conversation ID (short ID)
280
+ *
281
+ * ### Request Body
282
+ *
283
+ * All fields are optional. Only provided fields will be updated.
284
+ *
285
+ * | Field | Type | Description |
286
+ * | ------------------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------- |
287
+ * | `actingAdminId` | string | Admin ID performing the action (for attribution). If not provided, uses bot service user. Must be a member of the organization. |
288
+ * | `state` | string | Conversation state: "open", "closed", or "snoozed" |
289
+ * | `snoozedUntil` | string | ISO datetime when to unsnooze (required when state is "snoozed") |
290
+ * | `adminAssigneeId` | string/null | Admin ID to assign, or null to unassign |
291
+ * | `teamAssigneeId` | string/null | Team ID to assign, or null to unassign |
292
+ * | `title` | string | Conversation title |
293
+ * | `customAttributes` | object | Custom attributes to set on the conversation |
294
+ * | `markAsRead` | object | Mark conversation as read for specific users |
295
+ *
296
+ * ### markAsRead Object
297
+ *
298
+ * | Field | Type | Description |
299
+ * | ------------- | -------- | -------------------------------------------------------------- |
300
+ * | `allAdmins` | boolean | If true, marks all admins with existing readReceipts as read |
301
+ * | `adminIds` | string[] | Array of specific admin IDs to mark as read |
302
+ * | `allContacts` | boolean | If true, marks all contacts with existing readReceipts as read |
303
+ * | `contactIds` | string[] | Array of specific contact IDs to mark as read |
304
+ *
305
+ * Note: Only users with existing read receipts will be updated. Use
306
+ * `allAdmins`/`allContacts` OR `adminIds`/`contactIds` - the "all" flags take
307
+ * precedence.
308
+ *
309
+ * ### Response
310
+ *
311
+ * Returns the updated conversation object.
312
+ *
313
+ * ### Example: Close a Conversation (with attribution)
314
+ *
315
+ * ```json
316
+ * {
317
+ * "actingAdminId": "507f1f77bcf86cd799439011",
318
+ * "state": "closed"
319
+ * }
320
+ * ```
321
+ *
322
+ * ### Example: Close a Conversation (bot user)
323
+ *
324
+ * ```json
325
+ * {
326
+ * "state": "closed"
327
+ * }
328
+ * ```
329
+ *
330
+ * ### Example: Snooze a Conversation
331
+ *
332
+ * ```json
333
+ * {
334
+ * "state": "snoozed",
335
+ * "snoozedUntil": "2025-01-20T10:00:00.000Z"
336
+ * }
337
+ * ```
338
+ *
339
+ * ### Example: Assign to an Admin
340
+ *
341
+ * ```json
342
+ * {
343
+ * "adminAssigneeId": "507f1f77bcf86cd799439011"
344
+ * }
345
+ * ```
346
+ *
347
+ * ### Example: Update Title and Custom Attributes
348
+ *
349
+ * ```json
350
+ * {
351
+ * "title": "Billing Issue - Priority",
352
+ * "customAttributes": {
353
+ * "priority_level": "high",
354
+ * "category": "billing"
355
+ * }
356
+ * }
357
+ * ```
358
+ *
359
+ * ### Example: Mark as Read (All Admins)
360
+ *
361
+ * ```json
362
+ * {
363
+ * "markAsRead": {
364
+ * "allAdmins": true
365
+ * }
366
+ * }
367
+ * ```
368
+ *
369
+ * ### Example: Mark as Read (All Contacts)
370
+ *
371
+ * ```json
372
+ * {
373
+ * "markAsRead": {
374
+ * "allContacts": true
375
+ * }
376
+ * }
377
+ * ```
378
+ *
379
+ * ### Example: Mark as Read (Specific IDs)
380
+ *
381
+ * ```json
382
+ * {
383
+ * "markAsRead": {
384
+ * "adminIds": ["507f1f77bcf86cd799439011"],
385
+ * "contactIds": ["676f0f6765bdaa7d7d760f88"]
386
+ * }
387
+ * }
388
+ * ```
389
+ *
390
+ * ### Version Availability
391
+ *
392
+ * This endpoint is only available in API version 2026-01-01.nova and newer.
393
+ *
394
+ * @example
395
+ * ```ts
396
+ * const conversation = await client.conversations.update(
397
+ * '12345',
398
+ * );
399
+ * ```
400
+ */
401
+ update(id, params, options) {
402
+ const { 'Featurebase-Version': featurebaseVersion, ...body } = params;
403
+ return this._client.patch(path `/v2/conversations/${id}`, {
404
+ body,
405
+ ...options,
406
+ headers: buildHeaders([
407
+ { ...(featurebaseVersion != null ? { 'Featurebase-Version': featurebaseVersion } : undefined) },
408
+ options?.headers,
409
+ ]),
410
+ });
411
+ }
412
+ /**
413
+ * Returns a list of conversations in your organization using cursor-based
414
+ * pagination.
415
+ *
416
+ * ### Query Parameters
417
+ *
418
+ * - `limit` - Number of conversations to return (1-100, default 10)
419
+ * - `cursor` - Cursor from previous response for pagination
420
+ * - `tagIds` - Optional tag filter as a comma-separated list of tag IDs. Matches
421
+ * conversations that contain all of the provided tags.
422
+ *
423
+ * ### Response Format
424
+ *
425
+ * Returns a list object with:
426
+ *
427
+ * - `object` - Always "list"
428
+ * - `data` - Array of conversation objects
429
+ * - `nextCursor` - Cursor for the next page, or null if no more results
430
+ *
431
+ * ### Conversation Object
432
+ *
433
+ * Each conversation includes:
434
+ *
435
+ * - `id` - Unique conversation identifier (short ID)
436
+ * - `title` - Conversation title
437
+ * - `state` - Current state ("open", "closed", or "snoozed")
438
+ * - `priority` - Whether the conversation is marked as priority
439
+ * - `adminAssigneeId` - ID of assigned admin (if any)
440
+ * - `teamAssigneeId` - ID of assigned team (if any)
441
+ * - `tags` - Current tags applied anywhere in the conversation
442
+ * - `participants` - Array of participants
443
+ * - `source` - Information about the first message
444
+ * - `createdAt` - Creation timestamp
445
+ * - `updatedAt` - Last update timestamp
446
+ *
447
+ * ### Example
448
+ *
449
+ * ```json
450
+ * {
451
+ * "object": "list",
452
+ * "data": [
453
+ * {
454
+ * "object": "conversation",
455
+ * "id": "12345",
456
+ * "title": "Question about pricing",
457
+ * "state": "open",
458
+ * "priority": false,
459
+ * "adminAssigneeId": null,
460
+ * "participants": [
461
+ * { "type": "customer", "id": "676f0f6765bdaa7d7d760f88" }
462
+ * ],
463
+ * ...
464
+ * }
465
+ * ],
466
+ * "nextCursor": "eyJpZCI6IjEyMzQ1In0="
467
+ * }
468
+ * ```
469
+ *
470
+ * ### Version Availability
471
+ *
472
+ * This endpoint is only available in API version 2026-01-01.nova and newer.
473
+ *
474
+ * @example
475
+ * ```ts
476
+ * const conversations = await client.conversations.list();
477
+ * ```
478
+ */
479
+ list(params = {}, options) {
480
+ const { 'Featurebase-Version': featurebaseVersion, ...query } = params ?? {};
481
+ return this._client.get('/v2/conversations', {
482
+ query,
483
+ ...options,
484
+ headers: buildHeaders([
485
+ { ...(featurebaseVersion != null ? { 'Featurebase-Version': featurebaseVersion } : undefined) },
486
+ options?.headers,
487
+ ]),
488
+ });
489
+ }
490
+ /**
491
+ * Permanently deletes a conversation by its short ID.
492
+ *
493
+ * ### Path Parameters
494
+ *
495
+ * - `id` - The conversation short ID (numeric)
496
+ *
497
+ * ### Response
498
+ *
499
+ * Returns a deletion confirmation object:
500
+ *
501
+ * ```json
502
+ * {
503
+ * "id": "12345",
504
+ * "object": "conversation",
505
+ * "deleted": true
506
+ * }
507
+ * ```
508
+ *
509
+ * ### Caution
510
+ *
511
+ * This operation is **irreversible**. The conversation and all its messages will
512
+ * be permanently deleted.
513
+ *
514
+ * ### Version Availability
515
+ *
516
+ * This endpoint is only available in API version 2026-01-01.nova and newer.
517
+ *
518
+ * @example
519
+ * ```ts
520
+ * const conversation = await client.conversations.delete(
521
+ * '12345',
522
+ * );
523
+ * ```
524
+ */
525
+ delete(id, params = {}, options) {
526
+ const { 'Featurebase-Version': featurebaseVersion } = params ?? {};
527
+ return this._client.delete(path `/v2/conversations/${id}`, {
528
+ ...options,
529
+ headers: buildHeaders([
530
+ { ...(featurebaseVersion != null ? { 'Featurebase-Version': featurebaseVersion } : undefined) },
531
+ options?.headers,
532
+ ]),
533
+ });
534
+ }
535
+ /**
536
+ * Redacts a conversation part (message) from a conversation. Redaction permanently
537
+ * removes the message content while preserving the conversation structure.
538
+ *
539
+ * Only human message types can be redacted:
540
+ *
541
+ * - `user_msg` - Messages from customers/leads
542
+ * - `admin_msg` - Messages from admins
543
+ * - `email_msg` - Email messages
544
+ * - `bot_msg` - Bot messages
545
+ *
546
+ * System-generated conversation parts (assignments, status changes, etc.) cannot
547
+ * be redacted.
548
+ *
549
+ * ### Request Body
550
+ *
551
+ * | Field | Type | Required | Description |
552
+ * | -------------------- | ------ | -------- | ------------------------------------------------------------------------------ |
553
+ * | `type` | string | Yes | The type of item to redact. Currently only `"conversation_part"` is supported. |
554
+ * | `conversationId` | string | Yes | The conversation short ID containing the part to redact |
555
+ * | `conversationPartId` | string | Yes | The conversation part short ID to redact |
556
+ * | `actingAdminId` | string | No | Admin ID performing the action (for attribution) |
557
+ *
558
+ * ### Response
559
+ *
560
+ * Returns the updated conversation object.
561
+ *
562
+ * ### Example Request
563
+ *
564
+ * ```json
565
+ * {
566
+ * "type": "conversation_part",
567
+ * "conversationId": "12345",
568
+ * "conversationPartId": "67890",
569
+ * "actingAdminId": "507f1f77bcf86cd799439011"
570
+ * }
571
+ * ```
572
+ *
573
+ * ### Example Response
574
+ *
575
+ * ```json
576
+ * {
577
+ * "object": "conversation",
578
+ * "id": "12345",
579
+ * "conversationParts": [
580
+ * {
581
+ * "object": "conversation_part",
582
+ * "id": "67890",
583
+ * "partType": "user_msg",
584
+ * "bodyHtml": "",
585
+ * "bodyMarkdown": "",
586
+ * "redacted": true,
587
+ * ...
588
+ * }
589
+ * ],
590
+ * ...
591
+ * }
592
+ * ```
593
+ *
594
+ * ### Error Cases
595
+ *
596
+ * - **400 Bad Request** - Only human messages can be redacted
597
+ * - **404 Not Found** - Conversation or conversation part not found
598
+ *
599
+ * ### Version Availability
600
+ *
601
+ * This endpoint is only available in API version 2026-01-01.nova and newer.
602
+ *
603
+ * @example
604
+ * ```ts
605
+ * const conversation = await client.conversations.redact({
606
+ * conversationId: '12345',
607
+ * conversationPartId: '67890',
608
+ * type: 'conversation_part',
609
+ * });
610
+ * ```
611
+ */
612
+ redact(params, options) {
613
+ const { 'Featurebase-Version': featurebaseVersion, ...body } = params;
614
+ return this._client.post('/v2/conversations/redact', {
615
+ body,
616
+ ...options,
617
+ headers: buildHeaders([
618
+ { ...(featurebaseVersion != null ? { 'Featurebase-Version': featurebaseVersion } : undefined) },
619
+ options?.headers,
620
+ ]),
621
+ });
622
+ }
623
+ /**
624
+ * Adds a reply to an existing conversation. Supports both contact (customer/lead)
625
+ * and admin replies.
626
+ *
627
+ * ### Path Parameters
628
+ *
629
+ * - `id` - The conversation ID (short ID)
630
+ *
631
+ * ### Request Body
632
+ *
633
+ * The request body varies based on who is sending the reply:
634
+ *
635
+ * #### Contact Reply (customer/lead)
636
+ *
637
+ * | Field | Type | Required | Description |
638
+ * | ------------------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------- |
639
+ * | `type` | string | Yes | Must be "contact" |
640
+ * | `userId` | string | No\* | External user ID from your system |
641
+ * | `id` | string | No\* | Featurebase contact ID (24-character ObjectId) |
642
+ * | `bodyMarkdown` | string | Yes | The message content in markdown format. Images referenced by URL or as base64 data URIs will be automatically uploaded and stored. |
643
+ * | `messageType` | string | Yes | Must be "reply" |
644
+ * | `skipNotifications` | boolean | No | Skip sending notifications (default: false). Useful for bulk imports. |
645
+ *
646
+ * \*At least one of `userId` or `id` is required.
647
+ *
648
+ * #### Admin Reply
649
+ *
650
+ * | Field | Type | Required | Description |
651
+ * | ------------------- | ------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------- |
652
+ * | `type` | string | Yes | Must be "admin" |
653
+ * | `id` | string | Yes | Featurebase admin ID (24-character ObjectId) |
654
+ * | `bodyMarkdown` | string | Yes | The message content in markdown format. Images referenced by URL or as base64 data URIs will be automatically uploaded and stored. |
655
+ * | `messageType` | string | Yes | "reply" for customer-visible reply, "note" for internal note |
656
+ * | `skipNotifications` | boolean | No | Skip sending notifications (default: false). Useful for bulk imports. |
657
+ *
658
+ * ### Response
659
+ *
660
+ * Returns the created conversation part object with a **201 Created** status. The
661
+ * response includes both `bodyHtml` (with signed image URLs) and `bodyMarkdown`
662
+ * fields.
663
+ *
664
+ * ### Example Contact Reply
665
+ *
666
+ * ```json
667
+ * {
668
+ * "type": "contact",
669
+ * "userId": "user_123",
670
+ * "bodyMarkdown": "Thank you for your help!",
671
+ * "messageType": "reply"
672
+ * }
673
+ * ```
674
+ *
675
+ * ### Example Admin Reply
676
+ *
677
+ * ```json
678
+ * {
679
+ * "type": "admin",
680
+ * "id": "507f1f77bcf86cd799439011",
681
+ * "bodyMarkdown": "I'm happy to help! Here's what you need to do...",
682
+ * "messageType": "reply"
683
+ * }
684
+ * ```
685
+ *
686
+ * ### Example Admin Note (Internal)
687
+ *
688
+ * ```json
689
+ * {
690
+ * "type": "admin",
691
+ * "id": "507f1f77bcf86cd799439011",
692
+ * "bodyMarkdown": "Customer seems frustrated, escalating to tier 2.",
693
+ * "messageType": "note"
694
+ * }
695
+ * ```
696
+ *
697
+ * ### Example Response
698
+ *
699
+ * ```json
700
+ * {
701
+ * "object": "conversation_part",
702
+ * "id": "3",
703
+ * "partType": "user_msg",
704
+ * "bodyHtml": "<p>Thank you for your help!</p>",
705
+ * "bodyMarkdown": "Thank you for your help!",
706
+ * "author": {
707
+ * "type": "customer",
708
+ * "id": "676f0f6765bdaa7d7d760f88",
709
+ * "name": "John Doe",
710
+ * "email": "john@example.com"
711
+ * },
712
+ * "channel": "desktop",
713
+ * "createdAt": "2025-01-15T10:40:00.000Z",
714
+ * "updatedAt": "2025-01-15T10:40:00.000Z"
715
+ * }
716
+ * ```
717
+ *
718
+ * ### Version Availability
719
+ *
720
+ * This endpoint is only available in API version 2026-01-01.nova and newer.
721
+ *
722
+ * @example
723
+ * ```ts
724
+ * const conversationPart = await client.conversations.reply(
725
+ * '12345',
726
+ * {
727
+ * bodyMarkdown: 'Thank you for your help!',
728
+ * messageType: 'reply',
729
+ * type: 'contact',
730
+ * },
731
+ * );
732
+ * ```
733
+ */
734
+ reply(id, params, options) {
735
+ const { 'Featurebase-Version': featurebaseVersion, ...body } = params;
736
+ return this._client.post(path `/v2/conversations/${id}/reply`, {
737
+ body,
738
+ ...options,
739
+ headers: buildHeaders([
740
+ { ...(featurebaseVersion != null ? { 'Featurebase-Version': featurebaseVersion } : undefined) },
741
+ options?.headers,
742
+ ]),
743
+ });
744
+ }
745
+ }
746
+ Conversations.Tags = Tags;
747
+ Conversations.Participants = Participants;
748
+ //# sourceMappingURL=conversations.mjs.map