digital-tools 2.0.1

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 (452) hide show
  1. package/.turbo/turbo-build.log +5 -0
  2. package/CHANGELOG.md +9 -0
  3. package/README.md +1144 -0
  4. package/dist/define.d.ts +109 -0
  5. package/dist/define.d.ts.map +1 -0
  6. package/dist/define.js +268 -0
  7. package/dist/define.js.map +1 -0
  8. package/dist/entities/advertising.d.ts +79 -0
  9. package/dist/entities/advertising.d.ts.map +1 -0
  10. package/dist/entities/advertising.js +1000 -0
  11. package/dist/entities/advertising.js.map +1 -0
  12. package/dist/entities/ai.d.ts +69 -0
  13. package/dist/entities/ai.d.ts.map +1 -0
  14. package/dist/entities/ai.js +757 -0
  15. package/dist/entities/ai.js.map +1 -0
  16. package/dist/entities/analytics.d.ts +83 -0
  17. package/dist/entities/analytics.d.ts.map +1 -0
  18. package/dist/entities/analytics.js +1589 -0
  19. package/dist/entities/analytics.js.map +1 -0
  20. package/dist/entities/automation.d.ts +61 -0
  21. package/dist/entities/automation.d.ts.map +1 -0
  22. package/dist/entities/automation.js +602 -0
  23. package/dist/entities/automation.js.map +1 -0
  24. package/dist/entities/communication.d.ts +96 -0
  25. package/dist/entities/communication.d.ts.map +1 -0
  26. package/dist/entities/communication.js +1151 -0
  27. package/dist/entities/communication.js.map +1 -0
  28. package/dist/entities/crm.d.ts +91 -0
  29. package/dist/entities/crm.d.ts.map +1 -0
  30. package/dist/entities/crm.js +1387 -0
  31. package/dist/entities/crm.js.map +1 -0
  32. package/dist/entities/design.d.ts +61 -0
  33. package/dist/entities/design.d.ts.map +1 -0
  34. package/dist/entities/design.js +547 -0
  35. package/dist/entities/design.js.map +1 -0
  36. package/dist/entities/development.d.ts +145 -0
  37. package/dist/entities/development.d.ts.map +1 -0
  38. package/dist/entities/development.js +2213 -0
  39. package/dist/entities/development.js.map +1 -0
  40. package/dist/entities/document.d.ts +54 -0
  41. package/dist/entities/document.d.ts.map +1 -0
  42. package/dist/entities/document.js +875 -0
  43. package/dist/entities/document.js.map +1 -0
  44. package/dist/entities/ecommerce.d.ts +93 -0
  45. package/dist/entities/ecommerce.d.ts.map +1 -0
  46. package/dist/entities/ecommerce.js +1430 -0
  47. package/dist/entities/ecommerce.js.map +1 -0
  48. package/dist/entities/experiment.d.ts +89 -0
  49. package/dist/entities/experiment.d.ts.map +1 -0
  50. package/dist/entities/experiment.js +1040 -0
  51. package/dist/entities/experiment.js.map +1 -0
  52. package/dist/entities/finance.d.ts +272 -0
  53. package/dist/entities/finance.d.ts.map +1 -0
  54. package/dist/entities/finance.js +3479 -0
  55. package/dist/entities/finance.js.map +1 -0
  56. package/dist/entities/forms.d.ts +91 -0
  57. package/dist/entities/forms.d.ts.map +1 -0
  58. package/dist/entities/forms.js +1893 -0
  59. package/dist/entities/forms.js.map +1 -0
  60. package/dist/entities/hr.d.ts +62 -0
  61. package/dist/entities/hr.d.ts.map +1 -0
  62. package/dist/entities/hr.js +662 -0
  63. package/dist/entities/hr.js.map +1 -0
  64. package/dist/entities/identity.d.ts +90 -0
  65. package/dist/entities/identity.d.ts.map +1 -0
  66. package/dist/entities/identity.js +998 -0
  67. package/dist/entities/identity.js.map +1 -0
  68. package/dist/entities/index.d.ts +410 -0
  69. package/dist/entities/index.d.ts.map +1 -0
  70. package/dist/entities/index.js +283 -0
  71. package/dist/entities/index.js.map +1 -0
  72. package/dist/entities/infrastructure.d.ts +98 -0
  73. package/dist/entities/infrastructure.d.ts.map +1 -0
  74. package/dist/entities/infrastructure.js +1154 -0
  75. package/dist/entities/infrastructure.js.map +1 -0
  76. package/dist/entities/knowledge.d.ts +98 -0
  77. package/dist/entities/knowledge.d.ts.map +1 -0
  78. package/dist/entities/knowledge.js +1439 -0
  79. package/dist/entities/knowledge.js.map +1 -0
  80. package/dist/entities/marketing.d.ts +82 -0
  81. package/dist/entities/marketing.d.ts.map +1 -0
  82. package/dist/entities/marketing.js +1611 -0
  83. package/dist/entities/marketing.js.map +1 -0
  84. package/dist/entities/media.d.ts +83 -0
  85. package/dist/entities/media.d.ts.map +1 -0
  86. package/dist/entities/media.js +1635 -0
  87. package/dist/entities/media.js.map +1 -0
  88. package/dist/entities/notification.d.ts +76 -0
  89. package/dist/entities/notification.d.ts.map +1 -0
  90. package/dist/entities/notification.js +1200 -0
  91. package/dist/entities/notification.js.map +1 -0
  92. package/dist/entities/presentation.d.ts +61 -0
  93. package/dist/entities/presentation.d.ts.map +1 -0
  94. package/dist/entities/presentation.js +1275 -0
  95. package/dist/entities/presentation.js.map +1 -0
  96. package/dist/entities/productivity.d.ts +92 -0
  97. package/dist/entities/productivity.d.ts.map +1 -0
  98. package/dist/entities/productivity.js +1318 -0
  99. package/dist/entities/productivity.js.map +1 -0
  100. package/dist/entities/project-management.d.ts +89 -0
  101. package/dist/entities/project-management.d.ts.map +1 -0
  102. package/dist/entities/project-management.js +1137 -0
  103. package/dist/entities/project-management.js.map +1 -0
  104. package/dist/entities/recruiting.d.ts +54 -0
  105. package/dist/entities/recruiting.d.ts.map +1 -0
  106. package/dist/entities/recruiting.js +737 -0
  107. package/dist/entities/recruiting.js.map +1 -0
  108. package/dist/entities/shipping.d.ts +52 -0
  109. package/dist/entities/shipping.d.ts.map +1 -0
  110. package/dist/entities/shipping.js +510 -0
  111. package/dist/entities/shipping.js.map +1 -0
  112. package/dist/entities/signature.d.ts +83 -0
  113. package/dist/entities/signature.d.ts.map +1 -0
  114. package/dist/entities/signature.js +1103 -0
  115. package/dist/entities/signature.js.map +1 -0
  116. package/dist/entities/site.d.ts +33 -0
  117. package/dist/entities/site.d.ts.map +1 -0
  118. package/dist/entities/site.js +223 -0
  119. package/dist/entities/site.js.map +1 -0
  120. package/dist/entities/spreadsheet.d.ts +68 -0
  121. package/dist/entities/spreadsheet.d.ts.map +1 -0
  122. package/dist/entities/spreadsheet.js +1342 -0
  123. package/dist/entities/spreadsheet.js.map +1 -0
  124. package/dist/entities/storage.d.ts +74 -0
  125. package/dist/entities/storage.d.ts.map +1 -0
  126. package/dist/entities/storage.js +1199 -0
  127. package/dist/entities/storage.js.map +1 -0
  128. package/dist/entities/support.d.ts +83 -0
  129. package/dist/entities/support.d.ts.map +1 -0
  130. package/dist/entities/support.js +1167 -0
  131. package/dist/entities/support.js.map +1 -0
  132. package/dist/entities/video-conferencing.d.ts +129 -0
  133. package/dist/entities/video-conferencing.d.ts.map +1 -0
  134. package/dist/entities/video-conferencing.js +1751 -0
  135. package/dist/entities/video-conferencing.js.map +1 -0
  136. package/dist/entities/video.d.ts +76 -0
  137. package/dist/entities/video.d.ts.map +1 -0
  138. package/dist/entities/video.js +951 -0
  139. package/dist/entities/video.js.map +1 -0
  140. package/dist/entities.d.ts +147 -0
  141. package/dist/entities.d.ts.map +1 -0
  142. package/dist/entities.js +1664 -0
  143. package/dist/entities.js.map +1 -0
  144. package/dist/index.d.ts +29 -0
  145. package/dist/index.d.ts.map +1 -0
  146. package/dist/index.js +75 -0
  147. package/dist/index.js.map +1 -0
  148. package/dist/providers/analytics/index.d.ts +19 -0
  149. package/dist/providers/analytics/index.d.ts.map +1 -0
  150. package/dist/providers/analytics/index.js +18 -0
  151. package/dist/providers/analytics/index.js.map +1 -0
  152. package/dist/providers/analytics/mixpanel.d.ts +25 -0
  153. package/dist/providers/analytics/mixpanel.d.ts.map +1 -0
  154. package/dist/providers/analytics/mixpanel.js +256 -0
  155. package/dist/providers/analytics/mixpanel.js.map +1 -0
  156. package/dist/providers/calendar/cal-com.d.ts +26 -0
  157. package/dist/providers/calendar/cal-com.d.ts.map +1 -0
  158. package/dist/providers/calendar/cal-com.js +304 -0
  159. package/dist/providers/calendar/cal-com.js.map +1 -0
  160. package/dist/providers/calendar/google-calendar.d.ts +25 -0
  161. package/dist/providers/calendar/google-calendar.d.ts.map +1 -0
  162. package/dist/providers/calendar/google-calendar.js +336 -0
  163. package/dist/providers/calendar/google-calendar.js.map +1 -0
  164. package/dist/providers/calendar/index.d.ts +20 -0
  165. package/dist/providers/calendar/index.d.ts.map +1 -0
  166. package/dist/providers/calendar/index.js +21 -0
  167. package/dist/providers/calendar/index.js.map +1 -0
  168. package/dist/providers/crm/hubspot.d.ts +25 -0
  169. package/dist/providers/crm/hubspot.d.ts.map +1 -0
  170. package/dist/providers/crm/hubspot.js +567 -0
  171. package/dist/providers/crm/hubspot.js.map +1 -0
  172. package/dist/providers/crm/index.d.ts +19 -0
  173. package/dist/providers/crm/index.d.ts.map +1 -0
  174. package/dist/providers/crm/index.js +18 -0
  175. package/dist/providers/crm/index.js.map +1 -0
  176. package/dist/providers/development/github.d.ts +25 -0
  177. package/dist/providers/development/github.d.ts.map +1 -0
  178. package/dist/providers/development/github.js +473 -0
  179. package/dist/providers/development/github.js.map +1 -0
  180. package/dist/providers/development/index.d.ts +19 -0
  181. package/dist/providers/development/index.d.ts.map +1 -0
  182. package/dist/providers/development/index.js +18 -0
  183. package/dist/providers/development/index.js.map +1 -0
  184. package/dist/providers/ecommerce/index.d.ts +19 -0
  185. package/dist/providers/ecommerce/index.d.ts.map +1 -0
  186. package/dist/providers/ecommerce/index.js +18 -0
  187. package/dist/providers/ecommerce/index.js.map +1 -0
  188. package/dist/providers/ecommerce/shopify.d.ts +25 -0
  189. package/dist/providers/ecommerce/shopify.d.ts.map +1 -0
  190. package/dist/providers/ecommerce/shopify.js +379 -0
  191. package/dist/providers/ecommerce/shopify.js.map +1 -0
  192. package/dist/providers/email/index.d.ts +20 -0
  193. package/dist/providers/email/index.d.ts.map +1 -0
  194. package/dist/providers/email/index.js +21 -0
  195. package/dist/providers/email/index.js.map +1 -0
  196. package/dist/providers/email/resend.d.ts +25 -0
  197. package/dist/providers/email/resend.d.ts.map +1 -0
  198. package/dist/providers/email/resend.js +259 -0
  199. package/dist/providers/email/resend.js.map +1 -0
  200. package/dist/providers/email/sendgrid.d.ts +25 -0
  201. package/dist/providers/email/sendgrid.d.ts.map +1 -0
  202. package/dist/providers/email/sendgrid.js +162 -0
  203. package/dist/providers/email/sendgrid.js.map +1 -0
  204. package/dist/providers/finance/index.d.ts +19 -0
  205. package/dist/providers/finance/index.d.ts.map +1 -0
  206. package/dist/providers/finance/index.js +18 -0
  207. package/dist/providers/finance/index.js.map +1 -0
  208. package/dist/providers/finance/stripe.d.ts +25 -0
  209. package/dist/providers/finance/stripe.d.ts.map +1 -0
  210. package/dist/providers/finance/stripe.js +550 -0
  211. package/dist/providers/finance/stripe.js.map +1 -0
  212. package/dist/providers/forms/index.d.ts +19 -0
  213. package/dist/providers/forms/index.d.ts.map +1 -0
  214. package/dist/providers/forms/index.js +18 -0
  215. package/dist/providers/forms/index.js.map +1 -0
  216. package/dist/providers/forms/typeform.d.ts +25 -0
  217. package/dist/providers/forms/typeform.d.ts.map +1 -0
  218. package/dist/providers/forms/typeform.js +501 -0
  219. package/dist/providers/forms/typeform.js.map +1 -0
  220. package/dist/providers/index.d.ts +56 -0
  221. package/dist/providers/index.d.ts.map +1 -0
  222. package/dist/providers/index.js +124 -0
  223. package/dist/providers/index.js.map +1 -0
  224. package/dist/providers/knowledge/index.d.ts +19 -0
  225. package/dist/providers/knowledge/index.d.ts.map +1 -0
  226. package/dist/providers/knowledge/index.js +18 -0
  227. package/dist/providers/knowledge/index.js.map +1 -0
  228. package/dist/providers/knowledge/notion.d.ts +25 -0
  229. package/dist/providers/knowledge/notion.d.ts.map +1 -0
  230. package/dist/providers/knowledge/notion.js +390 -0
  231. package/dist/providers/knowledge/notion.js.map +1 -0
  232. package/dist/providers/marketing/index.d.ts +19 -0
  233. package/dist/providers/marketing/index.d.ts.map +1 -0
  234. package/dist/providers/marketing/index.js +18 -0
  235. package/dist/providers/marketing/index.js.map +1 -0
  236. package/dist/providers/marketing/mailchimp.d.ts +25 -0
  237. package/dist/providers/marketing/mailchimp.d.ts.map +1 -0
  238. package/dist/providers/marketing/mailchimp.js +444 -0
  239. package/dist/providers/marketing/mailchimp.js.map +1 -0
  240. package/dist/providers/media/cloudinary.d.ts +25 -0
  241. package/dist/providers/media/cloudinary.d.ts.map +1 -0
  242. package/dist/providers/media/cloudinary.js +319 -0
  243. package/dist/providers/media/cloudinary.js.map +1 -0
  244. package/dist/providers/media/index.d.ts +19 -0
  245. package/dist/providers/media/index.d.ts.map +1 -0
  246. package/dist/providers/media/index.js +18 -0
  247. package/dist/providers/media/index.js.map +1 -0
  248. package/dist/providers/messaging/index.d.ts +24 -0
  249. package/dist/providers/messaging/index.d.ts.map +1 -0
  250. package/dist/providers/messaging/index.js +21 -0
  251. package/dist/providers/messaging/index.js.map +1 -0
  252. package/dist/providers/messaging/slack.d.ts +25 -0
  253. package/dist/providers/messaging/slack.d.ts.map +1 -0
  254. package/dist/providers/messaging/slack.js +394 -0
  255. package/dist/providers/messaging/slack.js.map +1 -0
  256. package/dist/providers/messaging/twilio-sms.d.ts +25 -0
  257. package/dist/providers/messaging/twilio-sms.d.ts.map +1 -0
  258. package/dist/providers/messaging/twilio-sms.js +250 -0
  259. package/dist/providers/messaging/twilio-sms.js.map +1 -0
  260. package/dist/providers/project-management/index.d.ts +19 -0
  261. package/dist/providers/project-management/index.d.ts.map +1 -0
  262. package/dist/providers/project-management/index.js +18 -0
  263. package/dist/providers/project-management/index.js.map +1 -0
  264. package/dist/providers/project-management/linear.d.ts +25 -0
  265. package/dist/providers/project-management/linear.d.ts.map +1 -0
  266. package/dist/providers/project-management/linear.js +576 -0
  267. package/dist/providers/project-management/linear.js.map +1 -0
  268. package/dist/providers/registry.d.ts +41 -0
  269. package/dist/providers/registry.d.ts.map +1 -0
  270. package/dist/providers/registry.js +87 -0
  271. package/dist/providers/registry.js.map +1 -0
  272. package/dist/providers/spreadsheet/google-sheets.d.ts +25 -0
  273. package/dist/providers/spreadsheet/google-sheets.d.ts.map +1 -0
  274. package/dist/providers/spreadsheet/google-sheets.js +376 -0
  275. package/dist/providers/spreadsheet/google-sheets.js.map +1 -0
  276. package/dist/providers/spreadsheet/index.d.ts +20 -0
  277. package/dist/providers/spreadsheet/index.d.ts.map +1 -0
  278. package/dist/providers/spreadsheet/index.js +21 -0
  279. package/dist/providers/spreadsheet/index.js.map +1 -0
  280. package/dist/providers/spreadsheet/xlsx.d.ts +26 -0
  281. package/dist/providers/spreadsheet/xlsx.d.ts.map +1 -0
  282. package/dist/providers/spreadsheet/xlsx.js +424 -0
  283. package/dist/providers/spreadsheet/xlsx.js.map +1 -0
  284. package/dist/providers/storage/index.d.ts +30 -0
  285. package/dist/providers/storage/index.d.ts.map +1 -0
  286. package/dist/providers/storage/index.js +25 -0
  287. package/dist/providers/storage/index.js.map +1 -0
  288. package/dist/providers/storage/s3.d.ts +25 -0
  289. package/dist/providers/storage/s3.d.ts.map +1 -0
  290. package/dist/providers/storage/s3.js +420 -0
  291. package/dist/providers/storage/s3.js.map +1 -0
  292. package/dist/providers/support/index.d.ts +19 -0
  293. package/dist/providers/support/index.d.ts.map +1 -0
  294. package/dist/providers/support/index.js +18 -0
  295. package/dist/providers/support/index.js.map +1 -0
  296. package/dist/providers/support/zendesk.d.ts +25 -0
  297. package/dist/providers/support/zendesk.d.ts.map +1 -0
  298. package/dist/providers/support/zendesk.js +374 -0
  299. package/dist/providers/support/zendesk.js.map +1 -0
  300. package/dist/providers/tasks/index.d.ts +19 -0
  301. package/dist/providers/tasks/index.d.ts.map +1 -0
  302. package/dist/providers/tasks/index.js +18 -0
  303. package/dist/providers/tasks/index.js.map +1 -0
  304. package/dist/providers/tasks/todoist.d.ts +25 -0
  305. package/dist/providers/tasks/todoist.d.ts.map +1 -0
  306. package/dist/providers/tasks/todoist.js +287 -0
  307. package/dist/providers/tasks/todoist.js.map +1 -0
  308. package/dist/providers/types.d.ts +1753 -0
  309. package/dist/providers/types.d.ts.map +1 -0
  310. package/dist/providers/types.js +10 -0
  311. package/dist/providers/types.js.map +1 -0
  312. package/dist/providers/video-conferencing/google-meet.d.ts +26 -0
  313. package/dist/providers/video-conferencing/google-meet.d.ts.map +1 -0
  314. package/dist/providers/video-conferencing/google-meet.js +287 -0
  315. package/dist/providers/video-conferencing/google-meet.js.map +1 -0
  316. package/dist/providers/video-conferencing/index.d.ts +22 -0
  317. package/dist/providers/video-conferencing/index.d.ts.map +1 -0
  318. package/dist/providers/video-conferencing/index.js +32 -0
  319. package/dist/providers/video-conferencing/index.js.map +1 -0
  320. package/dist/providers/video-conferencing/jitsi.d.ts +26 -0
  321. package/dist/providers/video-conferencing/jitsi.d.ts.map +1 -0
  322. package/dist/providers/video-conferencing/jitsi.js +255 -0
  323. package/dist/providers/video-conferencing/jitsi.js.map +1 -0
  324. package/dist/providers/video-conferencing/teams.d.ts +26 -0
  325. package/dist/providers/video-conferencing/teams.d.ts.map +1 -0
  326. package/dist/providers/video-conferencing/teams.js +271 -0
  327. package/dist/providers/video-conferencing/teams.js.map +1 -0
  328. package/dist/providers/video-conferencing/zoom.d.ts +25 -0
  329. package/dist/providers/video-conferencing/zoom.d.ts.map +1 -0
  330. package/dist/providers/video-conferencing/zoom.js +333 -0
  331. package/dist/providers/video-conferencing/zoom.js.map +1 -0
  332. package/dist/providers/voice/vapi.d.ts +27 -0
  333. package/dist/providers/voice/vapi.d.ts.map +1 -0
  334. package/dist/providers/voice/vapi.js +440 -0
  335. package/dist/providers/voice/vapi.js.map +1 -0
  336. package/dist/registry.d.ts +38 -0
  337. package/dist/registry.d.ts.map +1 -0
  338. package/dist/registry.js +129 -0
  339. package/dist/registry.js.map +1 -0
  340. package/dist/tools/communication.d.ts +94 -0
  341. package/dist/tools/communication.d.ts.map +1 -0
  342. package/dist/tools/communication.js +185 -0
  343. package/dist/tools/communication.js.map +1 -0
  344. package/dist/tools/data.d.ts +61 -0
  345. package/dist/tools/data.d.ts.map +1 -0
  346. package/dist/tools/data.js +206 -0
  347. package/dist/tools/data.js.map +1 -0
  348. package/dist/tools/index.d.ts +12 -0
  349. package/dist/tools/index.d.ts.map +1 -0
  350. package/dist/tools/index.js +12 -0
  351. package/dist/tools/index.js.map +1 -0
  352. package/dist/tools/web.d.ts +45 -0
  353. package/dist/tools/web.d.ts.map +1 -0
  354. package/dist/tools/web.js +138 -0
  355. package/dist/tools/web.js.map +1 -0
  356. package/dist/types.d.ts +330 -0
  357. package/dist/types.d.ts.map +1 -0
  358. package/dist/types.js +11 -0
  359. package/dist/types.js.map +1 -0
  360. package/package.json +45 -0
  361. package/src/define.ts +321 -0
  362. package/src/entities/advertising.ts +1086 -0
  363. package/src/entities/ai.ts +835 -0
  364. package/src/entities/analytics.ts +1690 -0
  365. package/src/entities/automation.ts +669 -0
  366. package/src/entities/communication.ts +1255 -0
  367. package/src/entities/crm.ts +1481 -0
  368. package/src/entities/design.ts +606 -0
  369. package/src/entities/development.ts +2392 -0
  370. package/src/entities/document.ts +930 -0
  371. package/src/entities/ecommerce.ts +1539 -0
  372. package/src/entities/experiment.ts +1139 -0
  373. package/src/entities/finance.ts +3907 -0
  374. package/src/entities/forms.ts +2021 -0
  375. package/src/entities/hr.ts +725 -0
  376. package/src/entities/identity.ts +1093 -0
  377. package/src/entities/index.ts +731 -0
  378. package/src/entities/infrastructure.ts +1254 -0
  379. package/src/entities/knowledge.ts +1547 -0
  380. package/src/entities/marketing.ts +1718 -0
  381. package/src/entities/media.ts +1747 -0
  382. package/src/entities/notification.ts +1260 -0
  383. package/src/entities/presentation.ts +1360 -0
  384. package/src/entities/productivity.ts +1411 -0
  385. package/src/entities/project-management.ts +1222 -0
  386. package/src/entities/recruiting.ts +797 -0
  387. package/src/entities/shipping.ts +566 -0
  388. package/src/entities/signature.ts +1204 -0
  389. package/src/entities/site.ts +244 -0
  390. package/src/entities/spreadsheet.ts +1434 -0
  391. package/src/entities/storage.ts +1290 -0
  392. package/src/entities/support.ts +1267 -0
  393. package/src/entities/video-conferencing.ts +1874 -0
  394. package/src/entities/video.ts +1035 -0
  395. package/src/entities.ts +1795 -0
  396. package/src/index.ts +176 -0
  397. package/src/providers/analytics/index.ts +21 -0
  398. package/src/providers/analytics/mixpanel.ts +311 -0
  399. package/src/providers/calendar/cal-com.ts +435 -0
  400. package/src/providers/calendar/google-calendar.ts +412 -0
  401. package/src/providers/calendar/index.ts +24 -0
  402. package/src/providers/crm/hubspot.ts +667 -0
  403. package/src/providers/crm/index.ts +21 -0
  404. package/src/providers/development/github.ts +608 -0
  405. package/src/providers/development/index.ts +21 -0
  406. package/src/providers/ecommerce/index.ts +21 -0
  407. package/src/providers/ecommerce/shopify.ts +451 -0
  408. package/src/providers/email/index.ts +24 -0
  409. package/src/providers/email/resend.ts +301 -0
  410. package/src/providers/email/sendgrid.ts +196 -0
  411. package/src/providers/finance/index.ts +21 -0
  412. package/src/providers/finance/stripe.ts +665 -0
  413. package/src/providers/forms/index.ts +21 -0
  414. package/src/providers/forms/typeform.ts +598 -0
  415. package/src/providers/index.ts +281 -0
  416. package/src/providers/knowledge/index.ts +21 -0
  417. package/src/providers/knowledge/notion.ts +497 -0
  418. package/src/providers/marketing/index.ts +21 -0
  419. package/src/providers/marketing/mailchimp.ts +656 -0
  420. package/src/providers/media/cloudinary.ts +373 -0
  421. package/src/providers/media/index.ts +21 -0
  422. package/src/providers/messaging/index.ts +24 -0
  423. package/src/providers/messaging/slack.ts +487 -0
  424. package/src/providers/messaging/twilio-sms.ts +301 -0
  425. package/src/providers/project-management/index.ts +21 -0
  426. package/src/providers/project-management/linear.ts +693 -0
  427. package/src/providers/registry.ts +119 -0
  428. package/src/providers/spreadsheet/google-sheets.ts +464 -0
  429. package/src/providers/spreadsheet/index.ts +24 -0
  430. package/src/providers/spreadsheet/xlsx.ts +542 -0
  431. package/src/providers/storage/index.ts +35 -0
  432. package/src/providers/storage/s3.ts +513 -0
  433. package/src/providers/support/index.ts +21 -0
  434. package/src/providers/support/zendesk.ts +417 -0
  435. package/src/providers/tasks/index.ts +21 -0
  436. package/src/providers/tasks/todoist.ts +407 -0
  437. package/src/providers/types.ts +2113 -0
  438. package/src/providers/video-conferencing/google-meet.ts +412 -0
  439. package/src/providers/video-conferencing/index.ts +35 -0
  440. package/src/providers/video-conferencing/jitsi.ts +324 -0
  441. package/src/providers/video-conferencing/teams.ts +408 -0
  442. package/src/providers/video-conferencing/zoom.ts +451 -0
  443. package/src/registry.ts +172 -0
  444. package/src/tools/communication.ts +256 -0
  445. package/src/tools/data.ts +236 -0
  446. package/src/tools/index.ts +12 -0
  447. package/src/tools/web.ts +161 -0
  448. package/src/types.ts +539 -0
  449. package/test/define.test.ts +367 -0
  450. package/test/registry.test.ts +444 -0
  451. package/test/tools.test.ts +453 -0
  452. package/tsconfig.json +20 -0
@@ -0,0 +1,1387 @@
1
+ /**
2
+ * CRM/Sales Entity Types (Nouns)
3
+ *
4
+ * Semantic type definitions for Customer Relationship Management and Sales tools.
5
+ * Each entity defines properties, relationships, actions (Verbs), and events that
6
+ * can be used by both remote human workers AND AI agents.
7
+ *
8
+ * @packageDocumentation
9
+ */
10
+ // =============================================================================
11
+ // Lead Management
12
+ // =============================================================================
13
+ /**
14
+ * Lead entity
15
+ *
16
+ * Represents a potential customer/sales opportunity that has not yet been qualified
17
+ */
18
+ export const Lead = {
19
+ singular: 'lead',
20
+ plural: 'leads',
21
+ description: 'A potential customer or sales opportunity',
22
+ properties: {
23
+ // Identity
24
+ firstName: {
25
+ type: 'string',
26
+ description: 'Lead first name',
27
+ },
28
+ lastName: {
29
+ type: 'string',
30
+ description: 'Lead last name',
31
+ },
32
+ fullName: {
33
+ type: 'string',
34
+ optional: true,
35
+ description: 'Full name (computed or provided)',
36
+ },
37
+ title: {
38
+ type: 'string',
39
+ optional: true,
40
+ description: 'Job title',
41
+ },
42
+ // Contact Information
43
+ email: {
44
+ type: 'string',
45
+ optional: true,
46
+ description: 'Primary email address',
47
+ },
48
+ phone: {
49
+ type: 'string',
50
+ optional: true,
51
+ description: 'Primary phone number',
52
+ },
53
+ mobile: {
54
+ type: 'string',
55
+ optional: true,
56
+ description: 'Mobile phone number',
57
+ },
58
+ website: {
59
+ type: 'url',
60
+ optional: true,
61
+ description: 'Personal or company website',
62
+ },
63
+ // Company Information
64
+ company: {
65
+ type: 'string',
66
+ optional: true,
67
+ description: 'Company name',
68
+ },
69
+ industry: {
70
+ type: 'string',
71
+ optional: true,
72
+ description: 'Industry or vertical',
73
+ },
74
+ companySize: {
75
+ type: 'string',
76
+ optional: true,
77
+ description: 'Company size range (e.g., 1-10, 11-50, 51-200)',
78
+ examples: ['1-10', '11-50', '51-200', '201-500', '501-1000', '1000+'],
79
+ },
80
+ revenue: {
81
+ type: 'number',
82
+ optional: true,
83
+ description: 'Annual revenue in USD',
84
+ },
85
+ // Address
86
+ street: {
87
+ type: 'string',
88
+ optional: true,
89
+ description: 'Street address',
90
+ },
91
+ city: {
92
+ type: 'string',
93
+ optional: true,
94
+ description: 'City',
95
+ },
96
+ state: {
97
+ type: 'string',
98
+ optional: true,
99
+ description: 'State or province',
100
+ },
101
+ postalCode: {
102
+ type: 'string',
103
+ optional: true,
104
+ description: 'ZIP or postal code',
105
+ },
106
+ country: {
107
+ type: 'string',
108
+ optional: true,
109
+ description: 'Country',
110
+ },
111
+ // Lead Qualification
112
+ status: {
113
+ type: 'string',
114
+ description: 'Lead status: new, contacted, qualified, unqualified, converted, lost',
115
+ examples: ['new', 'contacted', 'qualified', 'unqualified', 'converted', 'lost'],
116
+ },
117
+ source: {
118
+ type: 'string',
119
+ optional: true,
120
+ description: 'Lead source: website, referral, advertisement, event, social, cold-call, partner',
121
+ examples: ['website', 'referral', 'advertisement', 'event', 'social', 'cold-call', 'partner', 'imported'],
122
+ },
123
+ score: {
124
+ type: 'number',
125
+ optional: true,
126
+ description: 'Lead score (0-100) indicating likelihood to convert',
127
+ },
128
+ rating: {
129
+ type: 'string',
130
+ optional: true,
131
+ description: 'Lead quality rating: hot, warm, cold',
132
+ examples: ['hot', 'warm', 'cold'],
133
+ },
134
+ // Context
135
+ description: {
136
+ type: 'string',
137
+ optional: true,
138
+ description: 'Notes or description about the lead',
139
+ },
140
+ notes: {
141
+ type: 'string',
142
+ optional: true,
143
+ description: 'Additional notes',
144
+ },
145
+ tags: {
146
+ type: 'string',
147
+ array: true,
148
+ optional: true,
149
+ description: 'Tags for categorization',
150
+ },
151
+ // Campaign
152
+ campaign: {
153
+ type: 'string',
154
+ optional: true,
155
+ description: 'Marketing campaign that generated this lead',
156
+ },
157
+ referredBy: {
158
+ type: 'string',
159
+ optional: true,
160
+ description: 'Who referred this lead',
161
+ },
162
+ // Tracking
163
+ lastContactedAt: {
164
+ type: 'datetime',
165
+ optional: true,
166
+ description: 'When the lead was last contacted',
167
+ },
168
+ convertedAt: {
169
+ type: 'datetime',
170
+ optional: true,
171
+ description: 'When the lead was converted to an account/opportunity',
172
+ },
173
+ },
174
+ relationships: {
175
+ owner: {
176
+ type: 'Contact',
177
+ description: 'Sales rep or user who owns this lead',
178
+ },
179
+ activities: {
180
+ type: 'Activity[]',
181
+ backref: 'lead',
182
+ description: 'Activities associated with this lead',
183
+ },
184
+ convertedAccount: {
185
+ type: 'Account',
186
+ required: false,
187
+ description: 'Account created when lead was converted',
188
+ },
189
+ convertedDeal: {
190
+ type: 'Deal',
191
+ required: false,
192
+ description: 'Deal/opportunity created when lead was converted',
193
+ },
194
+ },
195
+ actions: [
196
+ 'create',
197
+ 'update',
198
+ 'delete',
199
+ 'qualify',
200
+ 'disqualify',
201
+ 'convert',
202
+ 'assign',
203
+ 'contact',
204
+ 'score',
205
+ 'merge',
206
+ 'import',
207
+ 'export',
208
+ 'tag',
209
+ 'untag',
210
+ ],
211
+ events: [
212
+ 'created',
213
+ 'updated',
214
+ 'deleted',
215
+ 'qualified',
216
+ 'disqualified',
217
+ 'converted',
218
+ 'assigned',
219
+ 'contacted',
220
+ 'scored',
221
+ 'merged',
222
+ 'imported',
223
+ 'exported',
224
+ 'tagged',
225
+ ],
226
+ };
227
+ // =============================================================================
228
+ // Deal/Opportunity Management
229
+ // =============================================================================
230
+ /**
231
+ * Deal entity (also known as Opportunity in some CRMs)
232
+ *
233
+ * Represents a qualified sales opportunity with revenue potential
234
+ */
235
+ export const Deal = {
236
+ singular: 'deal',
237
+ plural: 'deals',
238
+ description: 'A sales opportunity or deal in progress',
239
+ properties: {
240
+ // Identity
241
+ name: {
242
+ type: 'string',
243
+ description: 'Deal name or title',
244
+ },
245
+ description: {
246
+ type: 'string',
247
+ optional: true,
248
+ description: 'Description of the opportunity',
249
+ },
250
+ // Financial
251
+ value: {
252
+ type: 'number',
253
+ description: 'Deal value or amount in USD',
254
+ },
255
+ currency: {
256
+ type: 'string',
257
+ optional: true,
258
+ description: 'Currency code (ISO 4217)',
259
+ examples: ['USD', 'EUR', 'GBP', 'CAD', 'AUD'],
260
+ },
261
+ expectedRevenue: {
262
+ type: 'number',
263
+ optional: true,
264
+ description: 'Expected revenue (value * probability)',
265
+ },
266
+ // Deal Stage & Status
267
+ stage: {
268
+ type: 'string',
269
+ description: 'Current pipeline stage',
270
+ examples: ['prospecting', 'qualification', 'proposal', 'negotiation', 'closed-won', 'closed-lost'],
271
+ },
272
+ probability: {
273
+ type: 'number',
274
+ optional: true,
275
+ description: 'Win probability percentage (0-100)',
276
+ },
277
+ status: {
278
+ type: 'string',
279
+ description: 'Deal status: open, won, lost, abandoned',
280
+ examples: ['open', 'won', 'lost', 'abandoned'],
281
+ },
282
+ // Dates
283
+ closeDate: {
284
+ type: 'date',
285
+ optional: true,
286
+ description: 'Expected or actual close date',
287
+ },
288
+ closedAt: {
289
+ type: 'datetime',
290
+ optional: true,
291
+ description: 'When the deal was closed',
292
+ },
293
+ lastActivityAt: {
294
+ type: 'datetime',
295
+ optional: true,
296
+ description: 'Last activity timestamp',
297
+ },
298
+ // Context
299
+ source: {
300
+ type: 'string',
301
+ optional: true,
302
+ description: 'How the opportunity was sourced',
303
+ examples: ['inbound', 'outbound', 'referral', 'partner', 'marketing'],
304
+ },
305
+ type: {
306
+ type: 'string',
307
+ optional: true,
308
+ description: 'Deal type: new-business, upsell, renewal, cross-sell',
309
+ examples: ['new-business', 'upsell', 'renewal', 'cross-sell'],
310
+ },
311
+ priority: {
312
+ type: 'string',
313
+ optional: true,
314
+ description: 'Deal priority: low, medium, high, critical',
315
+ examples: ['low', 'medium', 'high', 'critical'],
316
+ },
317
+ // Loss/Win Analysis
318
+ lostReason: {
319
+ type: 'string',
320
+ optional: true,
321
+ description: 'Reason why deal was lost',
322
+ examples: ['price', 'competition', 'timing', 'no-decision', 'product-fit'],
323
+ },
324
+ competitorName: {
325
+ type: 'string',
326
+ optional: true,
327
+ description: 'Competitor involved in the deal',
328
+ },
329
+ // Notes
330
+ notes: {
331
+ type: 'string',
332
+ optional: true,
333
+ description: 'Notes about the deal',
334
+ },
335
+ tags: {
336
+ type: 'string',
337
+ array: true,
338
+ optional: true,
339
+ description: 'Tags for categorization',
340
+ },
341
+ },
342
+ relationships: {
343
+ account: {
344
+ type: 'Account',
345
+ backref: 'deals',
346
+ description: 'The account/company this deal is with',
347
+ },
348
+ owner: {
349
+ type: 'Contact',
350
+ description: 'Sales rep who owns this deal',
351
+ },
352
+ pipeline: {
353
+ type: 'Pipeline',
354
+ backref: 'deals',
355
+ description: 'Sales pipeline this deal belongs to',
356
+ },
357
+ currentStage: {
358
+ type: 'Stage',
359
+ description: 'Current pipeline stage',
360
+ },
361
+ contacts: {
362
+ type: 'Contact[]',
363
+ description: 'Contacts involved in this deal',
364
+ },
365
+ activities: {
366
+ type: 'Activity[]',
367
+ backref: 'deal',
368
+ description: 'Activities related to this deal',
369
+ },
370
+ quotes: {
371
+ type: 'Quote[]',
372
+ backref: 'deal',
373
+ description: 'Quotes/proposals sent for this deal',
374
+ },
375
+ products: {
376
+ type: 'Product[]',
377
+ description: 'Products included in this deal',
378
+ },
379
+ },
380
+ actions: [
381
+ 'create',
382
+ 'update',
383
+ 'delete',
384
+ 'advance',
385
+ 'moveToStage',
386
+ 'win',
387
+ 'lose',
388
+ 'abandon',
389
+ 'reopen',
390
+ 'clone',
391
+ 'assign',
392
+ 'addContact',
393
+ 'removeContact',
394
+ 'addProduct',
395
+ 'removeProduct',
396
+ 'createQuote',
397
+ 'logActivity',
398
+ ],
399
+ events: [
400
+ 'created',
401
+ 'updated',
402
+ 'deleted',
403
+ 'advanced',
404
+ 'stageChanged',
405
+ 'won',
406
+ 'lost',
407
+ 'abandoned',
408
+ 'reopened',
409
+ 'cloned',
410
+ 'assigned',
411
+ 'contactAdded',
412
+ 'contactRemoved',
413
+ 'productAdded',
414
+ 'productRemoved',
415
+ 'quoteCreated',
416
+ 'activityLogged',
417
+ ],
418
+ };
419
+ // =============================================================================
420
+ // Account Management
421
+ // =============================================================================
422
+ /**
423
+ * Account entity
424
+ *
425
+ * Represents a company or organization (customer or prospect)
426
+ */
427
+ export const Account = {
428
+ singular: 'account',
429
+ plural: 'accounts',
430
+ description: 'A company or organization account',
431
+ properties: {
432
+ // Identity
433
+ name: {
434
+ type: 'string',
435
+ description: 'Account/company name',
436
+ },
437
+ legalName: {
438
+ type: 'string',
439
+ optional: true,
440
+ description: 'Legal business name',
441
+ },
442
+ description: {
443
+ type: 'string',
444
+ optional: true,
445
+ description: 'Description of the account',
446
+ },
447
+ // Company Information
448
+ industry: {
449
+ type: 'string',
450
+ optional: true,
451
+ description: 'Industry or vertical',
452
+ },
453
+ website: {
454
+ type: 'url',
455
+ optional: true,
456
+ description: 'Company website',
457
+ },
458
+ employeeCount: {
459
+ type: 'number',
460
+ optional: true,
461
+ description: 'Number of employees',
462
+ },
463
+ revenue: {
464
+ type: 'number',
465
+ optional: true,
466
+ description: 'Annual revenue in USD',
467
+ },
468
+ // Contact Information
469
+ phone: {
470
+ type: 'string',
471
+ optional: true,
472
+ description: 'Main phone number',
473
+ },
474
+ email: {
475
+ type: 'string',
476
+ optional: true,
477
+ description: 'General contact email',
478
+ },
479
+ // Address
480
+ billingStreet: {
481
+ type: 'string',
482
+ optional: true,
483
+ description: 'Billing street address',
484
+ },
485
+ billingCity: {
486
+ type: 'string',
487
+ optional: true,
488
+ description: 'Billing city',
489
+ },
490
+ billingState: {
491
+ type: 'string',
492
+ optional: true,
493
+ description: 'Billing state/province',
494
+ },
495
+ billingPostalCode: {
496
+ type: 'string',
497
+ optional: true,
498
+ description: 'Billing ZIP/postal code',
499
+ },
500
+ billingCountry: {
501
+ type: 'string',
502
+ optional: true,
503
+ description: 'Billing country',
504
+ },
505
+ shippingStreet: {
506
+ type: 'string',
507
+ optional: true,
508
+ description: 'Shipping street address',
509
+ },
510
+ shippingCity: {
511
+ type: 'string',
512
+ optional: true,
513
+ description: 'Shipping city',
514
+ },
515
+ shippingState: {
516
+ type: 'string',
517
+ optional: true,
518
+ description: 'Shipping state/province',
519
+ },
520
+ shippingPostalCode: {
521
+ type: 'string',
522
+ optional: true,
523
+ description: 'Shipping ZIP/postal code',
524
+ },
525
+ shippingCountry: {
526
+ type: 'string',
527
+ optional: true,
528
+ description: 'Shipping country',
529
+ },
530
+ // Account Status
531
+ type: {
532
+ type: 'string',
533
+ optional: true,
534
+ description: 'Account type: prospect, customer, partner, competitor, other',
535
+ examples: ['prospect', 'customer', 'partner', 'competitor', 'other'],
536
+ },
537
+ status: {
538
+ type: 'string',
539
+ optional: true,
540
+ description: 'Account status: active, inactive, suspended, churned',
541
+ examples: ['active', 'inactive', 'suspended', 'churned'],
542
+ },
543
+ priority: {
544
+ type: 'string',
545
+ optional: true,
546
+ description: 'Account priority: low, medium, high, strategic',
547
+ examples: ['low', 'medium', 'high', 'strategic'],
548
+ },
549
+ tier: {
550
+ type: 'string',
551
+ optional: true,
552
+ description: 'Customer tier: bronze, silver, gold, platinum',
553
+ examples: ['bronze', 'silver', 'gold', 'platinum'],
554
+ },
555
+ // Financials
556
+ lifetime_value: {
557
+ type: 'number',
558
+ optional: true,
559
+ description: 'Total lifetime value of the account',
560
+ },
561
+ totalRevenue: {
562
+ type: 'number',
563
+ optional: true,
564
+ description: 'Total revenue from this account',
565
+ },
566
+ // Metadata
567
+ notes: {
568
+ type: 'string',
569
+ optional: true,
570
+ description: 'Notes about the account',
571
+ },
572
+ tags: {
573
+ type: 'string',
574
+ array: true,
575
+ optional: true,
576
+ description: 'Tags for categorization',
577
+ },
578
+ // Tracking
579
+ lastContactedAt: {
580
+ type: 'datetime',
581
+ optional: true,
582
+ description: 'Last contact timestamp',
583
+ },
584
+ customerSince: {
585
+ type: 'date',
586
+ optional: true,
587
+ description: 'Date became a customer',
588
+ },
589
+ },
590
+ relationships: {
591
+ owner: {
592
+ type: 'Contact',
593
+ description: 'Account owner (sales rep or CSM)',
594
+ },
595
+ parentAccount: {
596
+ type: 'Account',
597
+ required: false,
598
+ description: 'Parent account if this is a subsidiary',
599
+ },
600
+ childAccounts: {
601
+ type: 'Account[]',
602
+ description: 'Subsidiary accounts',
603
+ },
604
+ contacts: {
605
+ type: 'Contact[]',
606
+ backref: 'account',
607
+ description: 'Contacts at this account',
608
+ },
609
+ deals: {
610
+ type: 'Deal[]',
611
+ backref: 'account',
612
+ description: 'Deals/opportunities with this account',
613
+ },
614
+ activities: {
615
+ type: 'Activity[]',
616
+ backref: 'account',
617
+ description: 'Activities related to this account',
618
+ },
619
+ quotes: {
620
+ type: 'Quote[]',
621
+ backref: 'account',
622
+ description: 'Quotes sent to this account',
623
+ },
624
+ },
625
+ actions: [
626
+ 'create',
627
+ 'update',
628
+ 'delete',
629
+ 'merge',
630
+ 'activate',
631
+ 'deactivate',
632
+ 'suspend',
633
+ 'assign',
634
+ 'addContact',
635
+ 'removeContact',
636
+ 'createDeal',
637
+ 'createQuote',
638
+ 'logActivity',
639
+ 'upgrade',
640
+ 'downgrade',
641
+ ],
642
+ events: [
643
+ 'created',
644
+ 'updated',
645
+ 'deleted',
646
+ 'merged',
647
+ 'activated',
648
+ 'deactivated',
649
+ 'suspended',
650
+ 'assigned',
651
+ 'contactAdded',
652
+ 'contactRemoved',
653
+ 'dealCreated',
654
+ 'quoteCreated',
655
+ 'activityLogged',
656
+ 'upgraded',
657
+ 'downgraded',
658
+ ],
659
+ };
660
+ // =============================================================================
661
+ // Pipeline & Stage Management
662
+ // =============================================================================
663
+ /**
664
+ * Pipeline entity
665
+ *
666
+ * Represents a sales pipeline with defined stages
667
+ */
668
+ export const Pipeline = {
669
+ singular: 'pipeline',
670
+ plural: 'pipelines',
671
+ description: 'A sales pipeline with defined stages',
672
+ properties: {
673
+ name: {
674
+ type: 'string',
675
+ description: 'Pipeline name',
676
+ },
677
+ description: {
678
+ type: 'string',
679
+ optional: true,
680
+ description: 'Description of the pipeline',
681
+ },
682
+ type: {
683
+ type: 'string',
684
+ optional: true,
685
+ description: 'Pipeline type: sales, partnership, renewal',
686
+ examples: ['sales', 'partnership', 'renewal'],
687
+ },
688
+ isDefault: {
689
+ type: 'boolean',
690
+ optional: true,
691
+ description: 'Whether this is the default pipeline',
692
+ },
693
+ isActive: {
694
+ type: 'boolean',
695
+ optional: true,
696
+ description: 'Whether this pipeline is active',
697
+ },
698
+ stageCount: {
699
+ type: 'number',
700
+ optional: true,
701
+ description: 'Number of stages in the pipeline',
702
+ },
703
+ totalValue: {
704
+ type: 'number',
705
+ optional: true,
706
+ description: 'Total value of all deals in this pipeline',
707
+ },
708
+ dealCount: {
709
+ type: 'number',
710
+ optional: true,
711
+ description: 'Number of deals in this pipeline',
712
+ },
713
+ },
714
+ relationships: {
715
+ stages: {
716
+ type: 'Stage[]',
717
+ backref: 'pipeline',
718
+ description: 'Stages in this pipeline',
719
+ },
720
+ deals: {
721
+ type: 'Deal[]',
722
+ backref: 'pipeline',
723
+ description: 'Deals in this pipeline',
724
+ },
725
+ },
726
+ actions: [
727
+ 'create',
728
+ 'update',
729
+ 'delete',
730
+ 'activate',
731
+ 'deactivate',
732
+ 'setDefault',
733
+ 'addStage',
734
+ 'removeStage',
735
+ 'reorderStages',
736
+ 'clone',
737
+ ],
738
+ events: [
739
+ 'created',
740
+ 'updated',
741
+ 'deleted',
742
+ 'activated',
743
+ 'deactivated',
744
+ 'setAsDefault',
745
+ 'stageAdded',
746
+ 'stageRemoved',
747
+ 'stagesReordered',
748
+ 'cloned',
749
+ ],
750
+ };
751
+ /**
752
+ * Stage entity
753
+ *
754
+ * Represents a stage within a sales pipeline
755
+ */
756
+ export const Stage = {
757
+ singular: 'stage',
758
+ plural: 'stages',
759
+ description: 'A stage in a sales pipeline',
760
+ properties: {
761
+ name: {
762
+ type: 'string',
763
+ description: 'Stage name',
764
+ examples: ['Prospecting', 'Qualification', 'Proposal', 'Negotiation', 'Closed Won', 'Closed Lost'],
765
+ },
766
+ description: {
767
+ type: 'string',
768
+ optional: true,
769
+ description: 'Description of what this stage represents',
770
+ },
771
+ order: {
772
+ type: 'number',
773
+ description: 'Display order in the pipeline (0-indexed)',
774
+ },
775
+ probability: {
776
+ type: 'number',
777
+ optional: true,
778
+ description: 'Default win probability for deals in this stage (0-100)',
779
+ },
780
+ type: {
781
+ type: 'string',
782
+ description: 'Stage type: open, won, lost',
783
+ examples: ['open', 'won', 'lost'],
784
+ },
785
+ rottenDays: {
786
+ type: 'number',
787
+ optional: true,
788
+ description: 'Number of days before deals in this stage are considered stale',
789
+ },
790
+ color: {
791
+ type: 'string',
792
+ optional: true,
793
+ description: 'Display color for the stage (hex code)',
794
+ },
795
+ dealCount: {
796
+ type: 'number',
797
+ optional: true,
798
+ description: 'Number of deals currently in this stage',
799
+ },
800
+ totalValue: {
801
+ type: 'number',
802
+ optional: true,
803
+ description: 'Total value of deals in this stage',
804
+ },
805
+ },
806
+ relationships: {
807
+ pipeline: {
808
+ type: 'Pipeline',
809
+ backref: 'stages',
810
+ description: 'Pipeline this stage belongs to',
811
+ },
812
+ deals: {
813
+ type: 'Deal[]',
814
+ description: 'Deals currently in this stage',
815
+ },
816
+ },
817
+ actions: [
818
+ 'create',
819
+ 'update',
820
+ 'delete',
821
+ 'reorder',
822
+ 'moveDeals',
823
+ ],
824
+ events: [
825
+ 'created',
826
+ 'updated',
827
+ 'deleted',
828
+ 'reordered',
829
+ 'dealsMoved',
830
+ ],
831
+ };
832
+ // =============================================================================
833
+ // Activity Management
834
+ // =============================================================================
835
+ /**
836
+ * Activity entity
837
+ *
838
+ * Represents a CRM activity (call, email, meeting, note, task)
839
+ */
840
+ export const Activity = {
841
+ singular: 'activity',
842
+ plural: 'activities',
843
+ description: 'A CRM activity such as a call, email, meeting, or note',
844
+ properties: {
845
+ // Activity Details
846
+ type: {
847
+ type: 'string',
848
+ description: 'Activity type: call, email, meeting, task, note, demo, lunch, other',
849
+ examples: ['call', 'email', 'meeting', 'task', 'note', 'demo', 'lunch', 'other'],
850
+ },
851
+ subject: {
852
+ type: 'string',
853
+ description: 'Activity subject or title',
854
+ },
855
+ description: {
856
+ type: 'string',
857
+ optional: true,
858
+ description: 'Detailed description or notes',
859
+ },
860
+ // Status
861
+ status: {
862
+ type: 'string',
863
+ optional: true,
864
+ description: 'Activity status: scheduled, completed, canceled, no-show',
865
+ examples: ['scheduled', 'completed', 'canceled', 'no-show'],
866
+ },
867
+ outcome: {
868
+ type: 'string',
869
+ optional: true,
870
+ description: 'Activity outcome: successful, unsuccessful, left-voicemail, no-answer',
871
+ examples: ['successful', 'unsuccessful', 'left-voicemail', 'no-answer', 'busy'],
872
+ },
873
+ // Timing
874
+ scheduledAt: {
875
+ type: 'datetime',
876
+ optional: true,
877
+ description: 'When the activity is scheduled',
878
+ },
879
+ completedAt: {
880
+ type: 'datetime',
881
+ optional: true,
882
+ description: 'When the activity was completed',
883
+ },
884
+ dueAt: {
885
+ type: 'datetime',
886
+ optional: true,
887
+ description: 'When the activity is due (for tasks)',
888
+ },
889
+ duration: {
890
+ type: 'number',
891
+ optional: true,
892
+ description: 'Duration in minutes',
893
+ },
894
+ // Priority
895
+ priority: {
896
+ type: 'string',
897
+ optional: true,
898
+ description: 'Priority: low, medium, high',
899
+ examples: ['low', 'medium', 'high'],
900
+ },
901
+ // Context
902
+ direction: {
903
+ type: 'string',
904
+ optional: true,
905
+ description: 'For calls/emails: inbound, outbound',
906
+ examples: ['inbound', 'outbound'],
907
+ },
908
+ location: {
909
+ type: 'string',
910
+ optional: true,
911
+ description: 'Meeting location or phone number',
912
+ },
913
+ // Flags
914
+ isPrivate: {
915
+ type: 'boolean',
916
+ optional: true,
917
+ description: 'Whether the activity is private',
918
+ },
919
+ isArchived: {
920
+ type: 'boolean',
921
+ optional: true,
922
+ description: 'Whether the activity is archived',
923
+ },
924
+ },
925
+ relationships: {
926
+ owner: {
927
+ type: 'Contact',
928
+ description: 'Person who owns/created this activity',
929
+ },
930
+ lead: {
931
+ type: 'Lead',
932
+ required: false,
933
+ backref: 'activities',
934
+ description: 'Lead associated with this activity',
935
+ },
936
+ deal: {
937
+ type: 'Deal',
938
+ required: false,
939
+ backref: 'activities',
940
+ description: 'Deal associated with this activity',
941
+ },
942
+ account: {
943
+ type: 'Account',
944
+ required: false,
945
+ backref: 'activities',
946
+ description: 'Account associated with this activity',
947
+ },
948
+ contacts: {
949
+ type: 'Contact[]',
950
+ description: 'Contacts involved in this activity',
951
+ },
952
+ attendees: {
953
+ type: 'Contact[]',
954
+ description: 'Meeting attendees',
955
+ },
956
+ },
957
+ actions: [
958
+ 'create',
959
+ 'update',
960
+ 'delete',
961
+ 'complete',
962
+ 'schedule',
963
+ 'reschedule',
964
+ 'cancel',
965
+ 'archive',
966
+ 'unarchive',
967
+ 'addAttendee',
968
+ 'removeAttendee',
969
+ 'log',
970
+ ],
971
+ events: [
972
+ 'created',
973
+ 'updated',
974
+ 'deleted',
975
+ 'completed',
976
+ 'scheduled',
977
+ 'rescheduled',
978
+ 'canceled',
979
+ 'archived',
980
+ 'unarchived',
981
+ 'attendeeAdded',
982
+ 'attendeeRemoved',
983
+ 'logged',
984
+ ],
985
+ };
986
+ // =============================================================================
987
+ // Quote & Product Management
988
+ // =============================================================================
989
+ /**
990
+ * Quote entity
991
+ *
992
+ * Represents a sales quote or proposal with line items
993
+ */
994
+ export const Quote = {
995
+ singular: 'quote',
996
+ plural: 'quotes',
997
+ description: 'A sales quote or proposal',
998
+ properties: {
999
+ // Identity
1000
+ name: {
1001
+ type: 'string',
1002
+ description: 'Quote name or title',
1003
+ },
1004
+ quoteNumber: {
1005
+ type: 'string',
1006
+ optional: true,
1007
+ description: 'Unique quote number',
1008
+ },
1009
+ description: {
1010
+ type: 'string',
1011
+ optional: true,
1012
+ description: 'Quote description',
1013
+ },
1014
+ // Status
1015
+ status: {
1016
+ type: 'string',
1017
+ description: 'Quote status: draft, sent, viewed, accepted, rejected, expired',
1018
+ examples: ['draft', 'sent', 'viewed', 'accepted', 'rejected', 'expired'],
1019
+ },
1020
+ // Financials
1021
+ subtotal: {
1022
+ type: 'number',
1023
+ description: 'Subtotal before tax and discount',
1024
+ },
1025
+ discount: {
1026
+ type: 'number',
1027
+ optional: true,
1028
+ description: 'Discount amount',
1029
+ },
1030
+ discountPercent: {
1031
+ type: 'number',
1032
+ optional: true,
1033
+ description: 'Discount percentage',
1034
+ },
1035
+ tax: {
1036
+ type: 'number',
1037
+ optional: true,
1038
+ description: 'Tax amount',
1039
+ },
1040
+ taxPercent: {
1041
+ type: 'number',
1042
+ optional: true,
1043
+ description: 'Tax percentage',
1044
+ },
1045
+ total: {
1046
+ type: 'number',
1047
+ description: 'Total amount',
1048
+ },
1049
+ currency: {
1050
+ type: 'string',
1051
+ optional: true,
1052
+ description: 'Currency code (ISO 4217)',
1053
+ examples: ['USD', 'EUR', 'GBP', 'CAD', 'AUD'],
1054
+ },
1055
+ // Terms
1056
+ validUntil: {
1057
+ type: 'date',
1058
+ optional: true,
1059
+ description: 'Quote expiration date',
1060
+ },
1061
+ terms: {
1062
+ type: 'string',
1063
+ optional: true,
1064
+ description: 'Terms and conditions',
1065
+ },
1066
+ paymentTerms: {
1067
+ type: 'string',
1068
+ optional: true,
1069
+ description: 'Payment terms: net-30, net-60, due-on-receipt',
1070
+ examples: ['net-30', 'net-60', 'net-90', 'due-on-receipt'],
1071
+ },
1072
+ // Tracking
1073
+ sentAt: {
1074
+ type: 'datetime',
1075
+ optional: true,
1076
+ description: 'When the quote was sent',
1077
+ },
1078
+ viewedAt: {
1079
+ type: 'datetime',
1080
+ optional: true,
1081
+ description: 'When the quote was first viewed',
1082
+ },
1083
+ acceptedAt: {
1084
+ type: 'datetime',
1085
+ optional: true,
1086
+ description: 'When the quote was accepted',
1087
+ },
1088
+ // Document
1089
+ documentUrl: {
1090
+ type: 'url',
1091
+ optional: true,
1092
+ description: 'URL to the quote document (PDF)',
1093
+ },
1094
+ publicUrl: {
1095
+ type: 'url',
1096
+ optional: true,
1097
+ description: 'Public URL for customer to view quote',
1098
+ },
1099
+ // Notes
1100
+ notes: {
1101
+ type: 'string',
1102
+ optional: true,
1103
+ description: 'Internal notes about the quote',
1104
+ },
1105
+ },
1106
+ relationships: {
1107
+ deal: {
1108
+ type: 'Deal',
1109
+ required: false,
1110
+ backref: 'quotes',
1111
+ description: 'Deal this quote is for',
1112
+ },
1113
+ account: {
1114
+ type: 'Account',
1115
+ required: false,
1116
+ backref: 'quotes',
1117
+ description: 'Account receiving this quote',
1118
+ },
1119
+ owner: {
1120
+ type: 'Contact',
1121
+ description: 'Sales rep who created the quote',
1122
+ },
1123
+ lineItems: {
1124
+ type: 'QuoteLineItem[]',
1125
+ backref: 'quote',
1126
+ description: 'Line items in this quote',
1127
+ },
1128
+ contact: {
1129
+ type: 'Contact',
1130
+ required: false,
1131
+ description: 'Primary contact for this quote',
1132
+ },
1133
+ },
1134
+ actions: [
1135
+ 'create',
1136
+ 'update',
1137
+ 'delete',
1138
+ 'send',
1139
+ 'resend',
1140
+ 'accept',
1141
+ 'reject',
1142
+ 'expire',
1143
+ 'clone',
1144
+ 'generatePdf',
1145
+ 'addLineItem',
1146
+ 'removeLineItem',
1147
+ 'applyDiscount',
1148
+ ],
1149
+ events: [
1150
+ 'created',
1151
+ 'updated',
1152
+ 'deleted',
1153
+ 'sent',
1154
+ 'resent',
1155
+ 'viewed',
1156
+ 'accepted',
1157
+ 'rejected',
1158
+ 'expired',
1159
+ 'cloned',
1160
+ 'pdfGenerated',
1161
+ 'lineItemAdded',
1162
+ 'lineItemRemoved',
1163
+ 'discountApplied',
1164
+ ],
1165
+ };
1166
+ /**
1167
+ * QuoteLineItem entity
1168
+ *
1169
+ * Represents a single line item on a quote
1170
+ */
1171
+ export const QuoteLineItem = {
1172
+ singular: 'quote line item',
1173
+ plural: 'quote line items',
1174
+ description: 'A line item on a sales quote',
1175
+ properties: {
1176
+ description: {
1177
+ type: 'string',
1178
+ description: 'Item description',
1179
+ },
1180
+ quantity: {
1181
+ type: 'number',
1182
+ description: 'Quantity',
1183
+ },
1184
+ unitPrice: {
1185
+ type: 'number',
1186
+ description: 'Price per unit',
1187
+ },
1188
+ discount: {
1189
+ type: 'number',
1190
+ optional: true,
1191
+ description: 'Discount amount per unit',
1192
+ },
1193
+ discountPercent: {
1194
+ type: 'number',
1195
+ optional: true,
1196
+ description: 'Discount percentage',
1197
+ },
1198
+ total: {
1199
+ type: 'number',
1200
+ description: 'Total line item amount (quantity * unitPrice - discount)',
1201
+ },
1202
+ order: {
1203
+ type: 'number',
1204
+ optional: true,
1205
+ description: 'Display order',
1206
+ },
1207
+ },
1208
+ relationships: {
1209
+ quote: {
1210
+ type: 'Quote',
1211
+ backref: 'lineItems',
1212
+ description: 'Quote this line item belongs to',
1213
+ },
1214
+ product: {
1215
+ type: 'Product',
1216
+ required: false,
1217
+ description: 'Product being sold (if applicable)',
1218
+ },
1219
+ },
1220
+ actions: ['create', 'update', 'delete', 'reorder'],
1221
+ events: ['created', 'updated', 'deleted', 'reordered'],
1222
+ };
1223
+ /**
1224
+ * Product entity
1225
+ *
1226
+ * Represents a product or service that can be sold
1227
+ */
1228
+ export const Product = {
1229
+ singular: 'product',
1230
+ plural: 'products',
1231
+ description: 'A product or service that can be sold',
1232
+ properties: {
1233
+ // Identity
1234
+ name: {
1235
+ type: 'string',
1236
+ description: 'Product name',
1237
+ },
1238
+ sku: {
1239
+ type: 'string',
1240
+ optional: true,
1241
+ description: 'Stock keeping unit (SKU)',
1242
+ },
1243
+ code: {
1244
+ type: 'string',
1245
+ optional: true,
1246
+ description: 'Product code',
1247
+ },
1248
+ description: {
1249
+ type: 'string',
1250
+ optional: true,
1251
+ description: 'Product description',
1252
+ },
1253
+ // Categorization
1254
+ category: {
1255
+ type: 'string',
1256
+ optional: true,
1257
+ description: 'Product category',
1258
+ },
1259
+ type: {
1260
+ type: 'string',
1261
+ optional: true,
1262
+ description: 'Product type: physical, service, subscription, digital',
1263
+ examples: ['physical', 'service', 'subscription', 'digital'],
1264
+ },
1265
+ // Pricing
1266
+ price: {
1267
+ type: 'number',
1268
+ description: 'Base price',
1269
+ },
1270
+ cost: {
1271
+ type: 'number',
1272
+ optional: true,
1273
+ description: 'Cost of goods sold',
1274
+ },
1275
+ currency: {
1276
+ type: 'string',
1277
+ optional: true,
1278
+ description: 'Currency code (ISO 4217)',
1279
+ examples: ['USD', 'EUR', 'GBP', 'CAD', 'AUD'],
1280
+ },
1281
+ priceUnit: {
1282
+ type: 'string',
1283
+ optional: true,
1284
+ description: 'Pricing unit: unit, hour, day, month, year',
1285
+ examples: ['unit', 'hour', 'day', 'month', 'year'],
1286
+ },
1287
+ // Status
1288
+ isActive: {
1289
+ type: 'boolean',
1290
+ optional: true,
1291
+ description: 'Whether the product is active/available',
1292
+ },
1293
+ isRecurring: {
1294
+ type: 'boolean',
1295
+ optional: true,
1296
+ description: 'Whether this is a recurring/subscription product',
1297
+ },
1298
+ isTaxable: {
1299
+ type: 'boolean',
1300
+ optional: true,
1301
+ description: 'Whether the product is taxable',
1302
+ },
1303
+ // Inventory (if applicable)
1304
+ stock: {
1305
+ type: 'number',
1306
+ optional: true,
1307
+ description: 'Current stock quantity',
1308
+ },
1309
+ reorderPoint: {
1310
+ type: 'number',
1311
+ optional: true,
1312
+ description: 'Inventory level triggering reorder',
1313
+ },
1314
+ // Metadata
1315
+ tags: {
1316
+ type: 'string',
1317
+ array: true,
1318
+ optional: true,
1319
+ description: 'Product tags',
1320
+ },
1321
+ imageUrl: {
1322
+ type: 'url',
1323
+ optional: true,
1324
+ description: 'Product image URL',
1325
+ },
1326
+ },
1327
+ relationships: {
1328
+ deals: {
1329
+ type: 'Deal[]',
1330
+ description: 'Deals including this product',
1331
+ },
1332
+ },
1333
+ actions: [
1334
+ 'create',
1335
+ 'update',
1336
+ 'delete',
1337
+ 'activate',
1338
+ 'deactivate',
1339
+ 'adjustPrice',
1340
+ 'updateStock',
1341
+ 'reorder',
1342
+ ],
1343
+ events: [
1344
+ 'created',
1345
+ 'updated',
1346
+ 'deleted',
1347
+ 'activated',
1348
+ 'deactivated',
1349
+ 'priceAdjusted',
1350
+ 'stockUpdated',
1351
+ 'reordered',
1352
+ ],
1353
+ };
1354
+ // =============================================================================
1355
+ // Export all CRM entities
1356
+ // =============================================================================
1357
+ /**
1358
+ * All CRM/Sales entity types
1359
+ */
1360
+ export const CRMEntities = {
1361
+ // Core Entities
1362
+ Lead,
1363
+ Deal,
1364
+ Account,
1365
+ // Pipeline
1366
+ Pipeline,
1367
+ Stage,
1368
+ // Activities
1369
+ Activity,
1370
+ // Quotes & Products
1371
+ Quote,
1372
+ QuoteLineItem,
1373
+ Product,
1374
+ };
1375
+ /**
1376
+ * CRM Entity categories for organization
1377
+ */
1378
+ export const CRMCategories = {
1379
+ leads: ['Lead'],
1380
+ opportunities: ['Deal'],
1381
+ accounts: ['Account'],
1382
+ pipeline: ['Pipeline', 'Stage'],
1383
+ activities: ['Activity'],
1384
+ quotes: ['Quote', 'QuoteLineItem'],
1385
+ products: ['Product'],
1386
+ };
1387
+ //# sourceMappingURL=crm.js.map