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,1318 @@
1
+ /**
2
+ * Productivity Tool Entity Types (Nouns)
3
+ *
4
+ * Semantic type definitions for productivity digital tools that can be used by
5
+ * both remote human workers AND AI agents. Each entity defines:
6
+ * - Properties: The data fields
7
+ * - Actions: Operations that can be performed (Verbs)
8
+ * - Events: State changes that occur
9
+ *
10
+ * @packageDocumentation
11
+ */
12
+ // =============================================================================
13
+ // Calendar
14
+ // =============================================================================
15
+ /**
16
+ * Calendar entity
17
+ *
18
+ * Represents a calendar containing events, meetings, and appointments.
19
+ */
20
+ export const Calendar = {
21
+ singular: 'calendar',
22
+ plural: 'calendars',
23
+ description: 'A calendar containing events, meetings, and appointments',
24
+ properties: {
25
+ name: {
26
+ type: 'string',
27
+ description: 'Calendar name',
28
+ },
29
+ description: {
30
+ type: 'string',
31
+ optional: true,
32
+ description: 'Calendar description or purpose',
33
+ },
34
+ color: {
35
+ type: 'string',
36
+ optional: true,
37
+ description: 'Color code for visual identification',
38
+ },
39
+ timezone: {
40
+ type: 'string',
41
+ description: 'Default timezone for events (IANA timezone identifier)',
42
+ },
43
+ visibility: {
44
+ type: 'string',
45
+ description: 'Calendar visibility: public, private, shared',
46
+ examples: ['public', 'private', 'shared'],
47
+ },
48
+ accessRole: {
49
+ type: 'string',
50
+ optional: true,
51
+ description: 'User access role: owner, writer, reader, freeBusyReader',
52
+ examples: ['owner', 'writer', 'reader', 'freeBusyReader'],
53
+ },
54
+ primary: {
55
+ type: 'boolean',
56
+ optional: true,
57
+ description: 'Whether this is the user primary calendar',
58
+ },
59
+ defaultReminders: {
60
+ type: 'json',
61
+ optional: true,
62
+ description: 'Default reminder settings for events',
63
+ },
64
+ },
65
+ relationships: {
66
+ events: {
67
+ type: 'Event[]',
68
+ backref: 'calendar',
69
+ description: 'Events in this calendar',
70
+ },
71
+ owner: {
72
+ type: 'Contact',
73
+ description: 'Calendar owner',
74
+ },
75
+ subscribers: {
76
+ type: 'Contact[]',
77
+ description: 'People who have subscribed to this calendar',
78
+ },
79
+ },
80
+ actions: [
81
+ 'create',
82
+ 'update',
83
+ 'delete',
84
+ 'share',
85
+ 'unshare',
86
+ 'subscribe',
87
+ 'unsubscribe',
88
+ 'export',
89
+ 'import',
90
+ 'sync',
91
+ 'setColor',
92
+ 'setTimezone',
93
+ ],
94
+ events: [
95
+ 'created',
96
+ 'updated',
97
+ 'deleted',
98
+ 'shared',
99
+ 'unshared',
100
+ 'subscribed',
101
+ 'unsubscribed',
102
+ 'exported',
103
+ 'imported',
104
+ 'synced',
105
+ ],
106
+ };
107
+ /**
108
+ * Event entity
109
+ *
110
+ * Represents a calendar event, meeting, or appointment with attendees, time, location, and recurrence.
111
+ */
112
+ export const Event = {
113
+ singular: 'event',
114
+ plural: 'events',
115
+ description: 'A calendar event, meeting, or appointment',
116
+ properties: {
117
+ // Basic details
118
+ title: {
119
+ type: 'string',
120
+ description: 'Event title or summary',
121
+ },
122
+ description: {
123
+ type: 'string',
124
+ optional: true,
125
+ description: 'Event description or notes',
126
+ },
127
+ location: {
128
+ type: 'string',
129
+ optional: true,
130
+ description: 'Event location (address, room, or virtual meeting link)',
131
+ },
132
+ // Timing
133
+ startTime: {
134
+ type: 'datetime',
135
+ description: 'Event start date and time',
136
+ },
137
+ endTime: {
138
+ type: 'datetime',
139
+ description: 'Event end date and time',
140
+ },
141
+ allDay: {
142
+ type: 'boolean',
143
+ optional: true,
144
+ description: 'Whether this is an all-day event',
145
+ },
146
+ timezone: {
147
+ type: 'string',
148
+ optional: true,
149
+ description: 'Event timezone (IANA timezone identifier)',
150
+ },
151
+ // Recurrence
152
+ recurring: {
153
+ type: 'boolean',
154
+ optional: true,
155
+ description: 'Whether this event recurs',
156
+ },
157
+ recurrenceRule: {
158
+ type: 'string',
159
+ optional: true,
160
+ description: 'Recurrence rule in RRULE format (RFC 5545)',
161
+ },
162
+ recurrenceId: {
163
+ type: 'string',
164
+ optional: true,
165
+ description: 'Parent recurring event ID if this is an occurrence',
166
+ },
167
+ exceptions: {
168
+ type: 'datetime',
169
+ array: true,
170
+ optional: true,
171
+ description: 'Dates excluded from the recurrence',
172
+ },
173
+ // Attendees
174
+ attendees: {
175
+ type: 'json',
176
+ array: true,
177
+ optional: true,
178
+ description: 'List of attendees with email, name, response status',
179
+ },
180
+ organizer: {
181
+ type: 'json',
182
+ optional: true,
183
+ description: 'Event organizer information',
184
+ },
185
+ // Status
186
+ status: {
187
+ type: 'string',
188
+ description: 'Event status: confirmed, tentative, cancelled',
189
+ examples: ['confirmed', 'tentative', 'cancelled'],
190
+ },
191
+ visibility: {
192
+ type: 'string',
193
+ optional: true,
194
+ description: 'Event visibility: public, private, confidential',
195
+ examples: ['public', 'private', 'confidential'],
196
+ },
197
+ transparency: {
198
+ type: 'string',
199
+ optional: true,
200
+ description: 'Free/busy status: opaque (busy), transparent (free)',
201
+ examples: ['opaque', 'transparent'],
202
+ },
203
+ // Reminders
204
+ reminders: {
205
+ type: 'json',
206
+ array: true,
207
+ optional: true,
208
+ description: 'Reminder notifications with method and time offset',
209
+ },
210
+ // Meeting details
211
+ conferenceData: {
212
+ type: 'json',
213
+ optional: true,
214
+ description: 'Video/phone conference details (Zoom, Meet, Teams links)',
215
+ },
216
+ attachments: {
217
+ type: 'json',
218
+ array: true,
219
+ optional: true,
220
+ description: 'File attachments with URLs',
221
+ },
222
+ // Metadata
223
+ color: {
224
+ type: 'string',
225
+ optional: true,
226
+ description: 'Event color override',
227
+ },
228
+ responseStatus: {
229
+ type: 'string',
230
+ optional: true,
231
+ description: 'User response: accepted, declined, tentative, needsAction',
232
+ examples: ['accepted', 'declined', 'tentative', 'needsAction'],
233
+ },
234
+ },
235
+ relationships: {
236
+ calendar: {
237
+ type: 'Calendar',
238
+ backref: 'events',
239
+ description: 'Calendar this event belongs to',
240
+ },
241
+ relatedTasks: {
242
+ type: 'Task[]',
243
+ description: 'Tasks associated with this event',
244
+ },
245
+ relatedNotes: {
246
+ type: 'Note[]',
247
+ description: 'Notes related to this event',
248
+ },
249
+ },
250
+ actions: [
251
+ 'create',
252
+ 'update',
253
+ 'delete',
254
+ 'cancel',
255
+ 'reschedule',
256
+ 'invite',
257
+ 'respond',
258
+ 'accept',
259
+ 'decline',
260
+ 'markTentative',
261
+ 'addAttendee',
262
+ 'removeAttendee',
263
+ 'addReminder',
264
+ 'removeReminder',
265
+ 'duplicate',
266
+ 'move',
267
+ ],
268
+ events: [
269
+ 'created',
270
+ 'updated',
271
+ 'deleted',
272
+ 'cancelled',
273
+ 'rescheduled',
274
+ 'invitationSent',
275
+ 'responseReceived',
276
+ 'accepted',
277
+ 'declined',
278
+ 'tentative',
279
+ 'attendeeAdded',
280
+ 'attendeeRemoved',
281
+ 'reminderTriggered',
282
+ 'started',
283
+ 'ended',
284
+ ],
285
+ };
286
+ // =============================================================================
287
+ // Task Management
288
+ // =============================================================================
289
+ /**
290
+ * Task entity
291
+ *
292
+ * Represents a todo item with status, priority, due date, and assignee.
293
+ */
294
+ export const Task = {
295
+ singular: 'task',
296
+ plural: 'tasks',
297
+ description: 'A todo item or work task to be completed',
298
+ properties: {
299
+ // Basic details
300
+ title: {
301
+ type: 'string',
302
+ description: 'Task title or summary',
303
+ },
304
+ description: {
305
+ type: 'string',
306
+ optional: true,
307
+ description: 'Detailed task description',
308
+ },
309
+ // Status and progress
310
+ status: {
311
+ type: 'string',
312
+ description: 'Task status: todo, in-progress, blocked, done, cancelled',
313
+ examples: ['todo', 'in-progress', 'blocked', 'done', 'cancelled'],
314
+ },
315
+ completed: {
316
+ type: 'boolean',
317
+ optional: true,
318
+ description: 'Whether the task is completed',
319
+ },
320
+ completedAt: {
321
+ type: 'datetime',
322
+ optional: true,
323
+ description: 'When the task was completed',
324
+ },
325
+ progress: {
326
+ type: 'number',
327
+ optional: true,
328
+ description: 'Task progress percentage (0-100)',
329
+ },
330
+ // Scheduling
331
+ dueDate: {
332
+ type: 'datetime',
333
+ optional: true,
334
+ description: 'Task due date',
335
+ },
336
+ startDate: {
337
+ type: 'datetime',
338
+ optional: true,
339
+ description: 'Task start date',
340
+ },
341
+ estimatedDuration: {
342
+ type: 'number',
343
+ optional: true,
344
+ description: 'Estimated time to complete in minutes',
345
+ },
346
+ actualDuration: {
347
+ type: 'number',
348
+ optional: true,
349
+ description: 'Actual time spent in minutes',
350
+ },
351
+ // Priority and categorization
352
+ priority: {
353
+ type: 'string',
354
+ optional: true,
355
+ description: 'Task priority: low, medium, high, urgent',
356
+ examples: ['low', 'medium', 'high', 'urgent'],
357
+ },
358
+ tags: {
359
+ type: 'string',
360
+ array: true,
361
+ optional: true,
362
+ description: 'Tags for categorization',
363
+ },
364
+ labels: {
365
+ type: 'string',
366
+ array: true,
367
+ optional: true,
368
+ description: 'Labels for organization',
369
+ },
370
+ // Assignment
371
+ assignee: {
372
+ type: 'string',
373
+ optional: true,
374
+ description: 'Person assigned to this task',
375
+ },
376
+ reporter: {
377
+ type: 'string',
378
+ optional: true,
379
+ description: 'Person who created/reported this task',
380
+ },
381
+ // Organization
382
+ project: {
383
+ type: 'string',
384
+ optional: true,
385
+ description: 'Project this task belongs to',
386
+ },
387
+ section: {
388
+ type: 'string',
389
+ optional: true,
390
+ description: 'Section or column within a project',
391
+ },
392
+ position: {
393
+ type: 'number',
394
+ optional: true,
395
+ description: 'Position in the task list',
396
+ },
397
+ // Dependencies
398
+ blockedBy: {
399
+ type: 'string',
400
+ array: true,
401
+ optional: true,
402
+ description: 'Task IDs that block this task',
403
+ },
404
+ blocking: {
405
+ type: 'string',
406
+ array: true,
407
+ optional: true,
408
+ description: 'Task IDs that this task blocks',
409
+ },
410
+ // Metadata
411
+ recurring: {
412
+ type: 'boolean',
413
+ optional: true,
414
+ description: 'Whether this task recurs',
415
+ },
416
+ recurrenceRule: {
417
+ type: 'string',
418
+ optional: true,
419
+ description: 'Recurrence rule in RRULE format',
420
+ },
421
+ },
422
+ relationships: {
423
+ subtasks: {
424
+ type: 'Task[]',
425
+ description: 'Subtasks of this task',
426
+ },
427
+ parentTask: {
428
+ type: 'Task',
429
+ required: false,
430
+ description: 'Parent task if this is a subtask',
431
+ },
432
+ checklist: {
433
+ type: 'Checklist',
434
+ required: false,
435
+ backref: 'tasks',
436
+ description: 'Checklist this task belongs to',
437
+ },
438
+ attachments: {
439
+ type: 'Attachment[]',
440
+ description: 'Files attached to this task',
441
+ },
442
+ comments: {
443
+ type: 'Comment[]',
444
+ description: 'Comments on this task',
445
+ },
446
+ relatedEvents: {
447
+ type: 'Event[]',
448
+ description: 'Calendar events related to this task',
449
+ },
450
+ },
451
+ actions: [
452
+ 'create',
453
+ 'update',
454
+ 'delete',
455
+ 'complete',
456
+ 'uncomplete',
457
+ 'start',
458
+ 'pause',
459
+ 'block',
460
+ 'unblock',
461
+ 'assign',
462
+ 'unassign',
463
+ 'setPriority',
464
+ 'setDueDate',
465
+ 'addSubtask',
466
+ 'removeSubtask',
467
+ 'addTag',
468
+ 'removeTag',
469
+ 'move',
470
+ 'duplicate',
471
+ 'archive',
472
+ ],
473
+ events: [
474
+ 'created',
475
+ 'updated',
476
+ 'deleted',
477
+ 'completed',
478
+ 'uncompleted',
479
+ 'started',
480
+ 'paused',
481
+ 'blocked',
482
+ 'unblocked',
483
+ 'assigned',
484
+ 'unassigned',
485
+ 'priorityChanged',
486
+ 'dueDateChanged',
487
+ 'overdue',
488
+ 'subtaskAdded',
489
+ 'subtaskCompleted',
490
+ 'commented',
491
+ 'archived',
492
+ ],
493
+ };
494
+ /**
495
+ * Checklist entity
496
+ *
497
+ * Represents a list of checkbox items or tasks.
498
+ */
499
+ export const Checklist = {
500
+ singular: 'checklist',
501
+ plural: 'checklists',
502
+ description: 'A list of checkbox items or tasks to be completed',
503
+ properties: {
504
+ title: {
505
+ type: 'string',
506
+ description: 'Checklist title',
507
+ },
508
+ description: {
509
+ type: 'string',
510
+ optional: true,
511
+ description: 'Checklist description',
512
+ },
513
+ itemCount: {
514
+ type: 'number',
515
+ optional: true,
516
+ description: 'Total number of items',
517
+ },
518
+ completedCount: {
519
+ type: 'number',
520
+ optional: true,
521
+ description: 'Number of completed items',
522
+ },
523
+ progress: {
524
+ type: 'number',
525
+ optional: true,
526
+ description: 'Completion progress percentage (0-100)',
527
+ },
528
+ template: {
529
+ type: 'boolean',
530
+ optional: true,
531
+ description: 'Whether this is a reusable template',
532
+ },
533
+ tags: {
534
+ type: 'string',
535
+ array: true,
536
+ optional: true,
537
+ description: 'Tags for categorization',
538
+ },
539
+ },
540
+ relationships: {
541
+ tasks: {
542
+ type: 'Task[]',
543
+ backref: 'checklist',
544
+ description: 'Tasks/items in this checklist',
545
+ },
546
+ relatedNote: {
547
+ type: 'Note',
548
+ required: false,
549
+ description: 'Note this checklist is embedded in',
550
+ },
551
+ },
552
+ actions: [
553
+ 'create',
554
+ 'update',
555
+ 'delete',
556
+ 'addItem',
557
+ 'removeItem',
558
+ 'checkItem',
559
+ 'uncheckItem',
560
+ 'reorderItems',
561
+ 'clear',
562
+ 'reset',
563
+ 'duplicate',
564
+ 'convertToTemplate',
565
+ ],
566
+ events: [
567
+ 'created',
568
+ 'updated',
569
+ 'deleted',
570
+ 'itemAdded',
571
+ 'itemRemoved',
572
+ 'itemChecked',
573
+ 'itemUnchecked',
574
+ 'itemsReordered',
575
+ 'cleared',
576
+ 'completed',
577
+ 'duplicated',
578
+ ],
579
+ };
580
+ // =============================================================================
581
+ // Note Taking
582
+ // =============================================================================
583
+ /**
584
+ * Note entity
585
+ *
586
+ * Represents a note or memo (like Notion, Evernote, OneNote).
587
+ */
588
+ export const Note = {
589
+ singular: 'note',
590
+ plural: 'notes',
591
+ description: 'A note, memo, or document for capturing information',
592
+ properties: {
593
+ title: {
594
+ type: 'string',
595
+ description: 'Note title',
596
+ },
597
+ content: {
598
+ type: 'markdown',
599
+ description: 'Note content (markdown, rich text, or blocks)',
600
+ },
601
+ plainText: {
602
+ type: 'string',
603
+ optional: true,
604
+ description: 'Plain text version of the content',
605
+ },
606
+ format: {
607
+ type: 'string',
608
+ optional: true,
609
+ description: 'Content format: markdown, html, blocks, plaintext',
610
+ examples: ['markdown', 'html', 'blocks', 'plaintext'],
611
+ },
612
+ // Organization
613
+ folder: {
614
+ type: 'string',
615
+ optional: true,
616
+ description: 'Folder or path within notebook',
617
+ },
618
+ tags: {
619
+ type: 'string',
620
+ array: true,
621
+ optional: true,
622
+ description: 'Tags for categorization',
623
+ },
624
+ // Status
625
+ pinned: {
626
+ type: 'boolean',
627
+ optional: true,
628
+ description: 'Whether the note is pinned',
629
+ },
630
+ archived: {
631
+ type: 'boolean',
632
+ optional: true,
633
+ description: 'Whether the note is archived',
634
+ },
635
+ favorited: {
636
+ type: 'boolean',
637
+ optional: true,
638
+ description: 'Whether the note is favorited/starred',
639
+ },
640
+ locked: {
641
+ type: 'boolean',
642
+ optional: true,
643
+ description: 'Whether the note is locked from editing',
644
+ },
645
+ // Metadata
646
+ wordCount: {
647
+ type: 'number',
648
+ optional: true,
649
+ description: 'Number of words in the note',
650
+ },
651
+ characterCount: {
652
+ type: 'number',
653
+ optional: true,
654
+ description: 'Number of characters',
655
+ },
656
+ language: {
657
+ type: 'string',
658
+ optional: true,
659
+ description: 'Note language code',
660
+ },
661
+ // Sharing and collaboration
662
+ shared: {
663
+ type: 'boolean',
664
+ optional: true,
665
+ description: 'Whether the note is shared',
666
+ },
667
+ publicUrl: {
668
+ type: 'url',
669
+ optional: true,
670
+ description: 'Public sharing URL if shared',
671
+ },
672
+ // Source
673
+ sourceUrl: {
674
+ type: 'url',
675
+ optional: true,
676
+ description: 'Original source URL if clipped from web',
677
+ },
678
+ author: {
679
+ type: 'string',
680
+ optional: true,
681
+ description: 'Original author if sourced externally',
682
+ },
683
+ },
684
+ relationships: {
685
+ notebook: {
686
+ type: 'Notebook',
687
+ backref: 'notes',
688
+ description: 'Notebook this note belongs to',
689
+ },
690
+ attachments: {
691
+ type: 'Attachment[]',
692
+ description: 'Files, images, audio attached to this note',
693
+ },
694
+ checklists: {
695
+ type: 'Checklist[]',
696
+ description: 'Embedded checklists',
697
+ },
698
+ linkedNotes: {
699
+ type: 'Note[]',
700
+ description: 'Other notes linked from this note',
701
+ },
702
+ backlinks: {
703
+ type: 'Note[]',
704
+ description: 'Notes that link to this note',
705
+ },
706
+ tasks: {
707
+ type: 'Task[]',
708
+ description: 'Tasks embedded in this note',
709
+ },
710
+ reminders: {
711
+ type: 'Reminder[]',
712
+ description: 'Reminders associated with this note',
713
+ },
714
+ },
715
+ actions: [
716
+ 'create',
717
+ 'update',
718
+ 'delete',
719
+ 'archive',
720
+ 'unarchive',
721
+ 'pin',
722
+ 'unpin',
723
+ 'favorite',
724
+ 'unfavorite',
725
+ 'lock',
726
+ 'unlock',
727
+ 'share',
728
+ 'unshare',
729
+ 'duplicate',
730
+ 'export',
731
+ 'print',
732
+ 'addTag',
733
+ 'removeTag',
734
+ 'move',
735
+ 'merge',
736
+ ],
737
+ events: [
738
+ 'created',
739
+ 'updated',
740
+ 'deleted',
741
+ 'archived',
742
+ 'unarchived',
743
+ 'pinned',
744
+ 'unpinned',
745
+ 'favorited',
746
+ 'unfavorited',
747
+ 'locked',
748
+ 'unlocked',
749
+ 'shared',
750
+ 'unshared',
751
+ 'duplicated',
752
+ 'exported',
753
+ 'printed',
754
+ 'moved',
755
+ 'merged',
756
+ ],
757
+ };
758
+ /**
759
+ * Notebook entity
760
+ *
761
+ * Represents a collection of notes (like an Evernote notebook or Notion workspace).
762
+ */
763
+ export const Notebook = {
764
+ singular: 'notebook',
765
+ plural: 'notebooks',
766
+ description: 'A collection or folder of related notes',
767
+ properties: {
768
+ name: {
769
+ type: 'string',
770
+ description: 'Notebook name',
771
+ },
772
+ description: {
773
+ type: 'string',
774
+ optional: true,
775
+ description: 'Notebook description or purpose',
776
+ },
777
+ color: {
778
+ type: 'string',
779
+ optional: true,
780
+ description: 'Color for visual identification',
781
+ },
782
+ icon: {
783
+ type: 'string',
784
+ optional: true,
785
+ description: 'Icon or emoji for the notebook',
786
+ },
787
+ type: {
788
+ type: 'string',
789
+ optional: true,
790
+ description: 'Notebook type: personal, shared, business, archive',
791
+ examples: ['personal', 'shared', 'business', 'archive'],
792
+ },
793
+ defaultNote: {
794
+ type: 'boolean',
795
+ optional: true,
796
+ description: 'Whether this is the default notebook for new notes',
797
+ },
798
+ noteCount: {
799
+ type: 'number',
800
+ optional: true,
801
+ description: 'Number of notes in this notebook',
802
+ },
803
+ shared: {
804
+ type: 'boolean',
805
+ optional: true,
806
+ description: 'Whether the notebook is shared',
807
+ },
808
+ position: {
809
+ type: 'number',
810
+ optional: true,
811
+ description: 'Position in the notebook list',
812
+ },
813
+ },
814
+ relationships: {
815
+ notes: {
816
+ type: 'Note[]',
817
+ backref: 'notebook',
818
+ description: 'Notes in this notebook',
819
+ },
820
+ parentNotebook: {
821
+ type: 'Notebook',
822
+ required: false,
823
+ description: 'Parent notebook if this is nested',
824
+ },
825
+ subNotebooks: {
826
+ type: 'Notebook[]',
827
+ description: 'Child notebooks',
828
+ },
829
+ owner: {
830
+ type: 'Contact',
831
+ description: 'Notebook owner',
832
+ },
833
+ collaborators: {
834
+ type: 'Contact[]',
835
+ description: 'People with access to this notebook',
836
+ },
837
+ },
838
+ actions: [
839
+ 'create',
840
+ 'update',
841
+ 'delete',
842
+ 'rename',
843
+ 'share',
844
+ 'unshare',
845
+ 'move',
846
+ 'duplicate',
847
+ 'export',
848
+ 'import',
849
+ 'merge',
850
+ 'archive',
851
+ ],
852
+ events: [
853
+ 'created',
854
+ 'updated',
855
+ 'deleted',
856
+ 'renamed',
857
+ 'shared',
858
+ 'unshared',
859
+ 'moved',
860
+ 'duplicated',
861
+ 'exported',
862
+ 'imported',
863
+ 'merged',
864
+ 'archived',
865
+ ],
866
+ };
867
+ // =============================================================================
868
+ // Reminders and Bookmarks
869
+ // =============================================================================
870
+ /**
871
+ * Reminder entity
872
+ *
873
+ * Represents a time-based reminder or alert.
874
+ */
875
+ export const Reminder = {
876
+ singular: 'reminder',
877
+ plural: 'reminders',
878
+ description: 'A time-based reminder or notification',
879
+ properties: {
880
+ title: {
881
+ type: 'string',
882
+ description: 'Reminder title or message',
883
+ },
884
+ description: {
885
+ type: 'string',
886
+ optional: true,
887
+ description: 'Additional reminder details',
888
+ },
889
+ // Timing
890
+ dueDate: {
891
+ type: 'datetime',
892
+ description: 'When the reminder should trigger',
893
+ },
894
+ timezone: {
895
+ type: 'string',
896
+ optional: true,
897
+ description: 'Timezone for the reminder (IANA timezone identifier)',
898
+ },
899
+ allDay: {
900
+ type: 'boolean',
901
+ optional: true,
902
+ description: 'Whether this is an all-day reminder',
903
+ },
904
+ // Recurrence
905
+ recurring: {
906
+ type: 'boolean',
907
+ optional: true,
908
+ description: 'Whether this reminder recurs',
909
+ },
910
+ recurrenceRule: {
911
+ type: 'string',
912
+ optional: true,
913
+ description: 'Recurrence rule in RRULE format',
914
+ },
915
+ // Status
916
+ completed: {
917
+ type: 'boolean',
918
+ optional: true,
919
+ description: 'Whether the reminder has been completed',
920
+ },
921
+ completedAt: {
922
+ type: 'datetime',
923
+ optional: true,
924
+ description: 'When the reminder was marked complete',
925
+ },
926
+ snoozedUntil: {
927
+ type: 'datetime',
928
+ optional: true,
929
+ description: 'Snoozed until this time',
930
+ },
931
+ triggered: {
932
+ type: 'boolean',
933
+ optional: true,
934
+ description: 'Whether the reminder notification has been triggered',
935
+ },
936
+ triggeredAt: {
937
+ type: 'datetime',
938
+ optional: true,
939
+ description: 'When the reminder was triggered',
940
+ },
941
+ // Priority and categorization
942
+ priority: {
943
+ type: 'string',
944
+ optional: true,
945
+ description: 'Reminder priority: low, medium, high',
946
+ examples: ['low', 'medium', 'high'],
947
+ },
948
+ tags: {
949
+ type: 'string',
950
+ array: true,
951
+ optional: true,
952
+ description: 'Tags for categorization',
953
+ },
954
+ list: {
955
+ type: 'string',
956
+ optional: true,
957
+ description: 'List or category the reminder belongs to',
958
+ },
959
+ // Notification
960
+ notificationMethod: {
961
+ type: 'string',
962
+ array: true,
963
+ optional: true,
964
+ description: 'Notification methods: push, email, sms',
965
+ examples: ['push', 'email', 'sms'],
966
+ },
967
+ },
968
+ relationships: {
969
+ relatedTask: {
970
+ type: 'Task',
971
+ required: false,
972
+ description: 'Task associated with this reminder',
973
+ },
974
+ relatedEvent: {
975
+ type: 'Event',
976
+ required: false,
977
+ description: 'Calendar event associated with this reminder',
978
+ },
979
+ relatedNote: {
980
+ type: 'Note',
981
+ required: false,
982
+ description: 'Note associated with this reminder',
983
+ },
984
+ },
985
+ actions: [
986
+ 'create',
987
+ 'update',
988
+ 'delete',
989
+ 'complete',
990
+ 'uncomplete',
991
+ 'snooze',
992
+ 'dismiss',
993
+ 'trigger',
994
+ 'reschedule',
995
+ 'duplicate',
996
+ ],
997
+ events: [
998
+ 'created',
999
+ 'updated',
1000
+ 'deleted',
1001
+ 'completed',
1002
+ 'uncompleted',
1003
+ 'snoozed',
1004
+ 'dismissed',
1005
+ 'triggered',
1006
+ 'rescheduled',
1007
+ 'duplicated',
1008
+ ],
1009
+ };
1010
+ /**
1011
+ * Bookmark entity
1012
+ *
1013
+ * Represents a saved link or URL with tags and metadata.
1014
+ */
1015
+ export const Bookmark = {
1016
+ singular: 'bookmark',
1017
+ plural: 'bookmarks',
1018
+ description: 'A saved link, URL, or web page reference',
1019
+ properties: {
1020
+ title: {
1021
+ type: 'string',
1022
+ description: 'Bookmark title or page title',
1023
+ },
1024
+ url: {
1025
+ type: 'url',
1026
+ description: 'The bookmarked URL',
1027
+ },
1028
+ description: {
1029
+ type: 'string',
1030
+ optional: true,
1031
+ description: 'Bookmark description or notes',
1032
+ },
1033
+ // Metadata
1034
+ favicon: {
1035
+ type: 'url',
1036
+ optional: true,
1037
+ description: 'URL to the site favicon',
1038
+ },
1039
+ screenshot: {
1040
+ type: 'url',
1041
+ optional: true,
1042
+ description: 'Screenshot or preview image URL',
1043
+ },
1044
+ excerpt: {
1045
+ type: 'string',
1046
+ optional: true,
1047
+ description: 'Text excerpt from the page',
1048
+ },
1049
+ // Organization
1050
+ folder: {
1051
+ type: 'string',
1052
+ optional: true,
1053
+ description: 'Folder or collection the bookmark belongs to',
1054
+ },
1055
+ tags: {
1056
+ type: 'string',
1057
+ array: true,
1058
+ optional: true,
1059
+ description: 'Tags for categorization',
1060
+ },
1061
+ // Status
1062
+ favorited: {
1063
+ type: 'boolean',
1064
+ optional: true,
1065
+ description: 'Whether the bookmark is favorited',
1066
+ },
1067
+ archived: {
1068
+ type: 'boolean',
1069
+ optional: true,
1070
+ description: 'Whether the bookmark is archived',
1071
+ },
1072
+ private: {
1073
+ type: 'boolean',
1074
+ optional: true,
1075
+ description: 'Whether the bookmark is private',
1076
+ },
1077
+ unread: {
1078
+ type: 'boolean',
1079
+ optional: true,
1080
+ description: 'Whether the bookmark is marked as unread',
1081
+ },
1082
+ // Web page metadata
1083
+ author: {
1084
+ type: 'string',
1085
+ optional: true,
1086
+ description: 'Page author if available',
1087
+ },
1088
+ publishedAt: {
1089
+ type: 'datetime',
1090
+ optional: true,
1091
+ description: 'When the page was published',
1092
+ },
1093
+ siteName: {
1094
+ type: 'string',
1095
+ optional: true,
1096
+ description: 'Name of the website',
1097
+ },
1098
+ domain: {
1099
+ type: 'string',
1100
+ optional: true,
1101
+ description: 'Domain name of the URL',
1102
+ },
1103
+ // Archive
1104
+ archived_content: {
1105
+ type: 'markdown',
1106
+ optional: true,
1107
+ description: 'Archived page content',
1108
+ },
1109
+ archivedAt: {
1110
+ type: 'datetime',
1111
+ optional: true,
1112
+ description: 'When the page content was archived',
1113
+ },
1114
+ // Access
1115
+ lastVisitedAt: {
1116
+ type: 'datetime',
1117
+ optional: true,
1118
+ description: 'When the bookmark was last visited',
1119
+ },
1120
+ visitCount: {
1121
+ type: 'number',
1122
+ optional: true,
1123
+ description: 'Number of times visited',
1124
+ },
1125
+ },
1126
+ relationships: {
1127
+ relatedNotes: {
1128
+ type: 'Note[]',
1129
+ description: 'Notes that reference this bookmark',
1130
+ },
1131
+ },
1132
+ actions: [
1133
+ 'create',
1134
+ 'update',
1135
+ 'delete',
1136
+ 'visit',
1137
+ 'favorite',
1138
+ 'unfavorite',
1139
+ 'archive',
1140
+ 'unarchive',
1141
+ 'addTag',
1142
+ 'removeTag',
1143
+ 'move',
1144
+ 'share',
1145
+ 'export',
1146
+ 'import',
1147
+ ],
1148
+ events: [
1149
+ 'created',
1150
+ 'updated',
1151
+ 'deleted',
1152
+ 'visited',
1153
+ 'favorited',
1154
+ 'unfavorited',
1155
+ 'archived',
1156
+ 'unarchived',
1157
+ 'moved',
1158
+ 'shared',
1159
+ 'exported',
1160
+ 'imported',
1161
+ ],
1162
+ };
1163
+ // =============================================================================
1164
+ // Availability
1165
+ // =============================================================================
1166
+ /**
1167
+ * Availability entity
1168
+ *
1169
+ * Represents a user's available time windows for scheduling meetings.
1170
+ * Used by scheduling tools like Calendly, Cal.com, etc.
1171
+ */
1172
+ export const Availability = {
1173
+ singular: 'availability',
1174
+ plural: 'availabilities',
1175
+ description: "A user's available time windows for scheduling",
1176
+ properties: {
1177
+ // Identity
1178
+ name: {
1179
+ type: 'string',
1180
+ description: 'Availability schedule name',
1181
+ },
1182
+ description: {
1183
+ type: 'string',
1184
+ optional: true,
1185
+ description: 'Description of this availability schedule',
1186
+ },
1187
+ // Timezone
1188
+ timezone: {
1189
+ type: 'string',
1190
+ description: 'Timezone for availability windows',
1191
+ },
1192
+ // Weekly recurring schedule
1193
+ schedule: {
1194
+ type: 'json',
1195
+ description: 'Weekly recurring availability (day -> time ranges)',
1196
+ },
1197
+ // Exceptions
1198
+ dateOverrides: {
1199
+ type: 'json',
1200
+ optional: true,
1201
+ description: 'Specific date overrides to the regular schedule',
1202
+ },
1203
+ blockedDates: {
1204
+ type: 'datetime',
1205
+ array: true,
1206
+ optional: true,
1207
+ description: 'Dates when unavailable',
1208
+ },
1209
+ // Buffer settings
1210
+ bufferBefore: {
1211
+ type: 'number',
1212
+ optional: true,
1213
+ description: 'Buffer time before meetings in minutes',
1214
+ },
1215
+ bufferAfter: {
1216
+ type: 'number',
1217
+ optional: true,
1218
+ description: 'Buffer time after meetings in minutes',
1219
+ },
1220
+ minimumNotice: {
1221
+ type: 'number',
1222
+ optional: true,
1223
+ description: 'Minimum advance notice required in hours',
1224
+ },
1225
+ // Scheduling window
1226
+ daysInAdvance: {
1227
+ type: 'number',
1228
+ optional: true,
1229
+ description: 'How many days in advance can be booked',
1230
+ },
1231
+ startDate: {
1232
+ type: 'datetime',
1233
+ optional: true,
1234
+ description: 'Date when availability starts',
1235
+ },
1236
+ endDate: {
1237
+ type: 'datetime',
1238
+ optional: true,
1239
+ description: 'Date when availability ends',
1240
+ },
1241
+ // Status
1242
+ isDefault: {
1243
+ type: 'boolean',
1244
+ optional: true,
1245
+ description: 'Whether this is the default availability',
1246
+ },
1247
+ active: {
1248
+ type: 'boolean',
1249
+ description: 'Whether this availability is active',
1250
+ },
1251
+ },
1252
+ relationships: {
1253
+ calendar: {
1254
+ type: 'Calendar',
1255
+ required: false,
1256
+ description: 'Associated calendar for conflict checking',
1257
+ },
1258
+ user: {
1259
+ type: 'User',
1260
+ description: 'User this availability belongs to',
1261
+ },
1262
+ },
1263
+ actions: [
1264
+ 'create',
1265
+ 'update',
1266
+ 'delete',
1267
+ 'activate',
1268
+ 'deactivate',
1269
+ 'setDefault',
1270
+ 'addOverride',
1271
+ 'removeOverride',
1272
+ 'blockDate',
1273
+ 'unblockDate',
1274
+ ],
1275
+ events: [
1276
+ 'created',
1277
+ 'updated',
1278
+ 'deleted',
1279
+ 'activated',
1280
+ 'deactivated',
1281
+ 'overrideAdded',
1282
+ 'overrideRemoved',
1283
+ 'dateBlocked',
1284
+ 'dateUnblocked',
1285
+ ],
1286
+ };
1287
+ // =============================================================================
1288
+ // Export all entities as a schema
1289
+ // =============================================================================
1290
+ /**
1291
+ * All productivity tool entity types
1292
+ */
1293
+ export const ProductivityEntities = {
1294
+ // Calendar & Scheduling
1295
+ Calendar,
1296
+ Event,
1297
+ Availability,
1298
+ // Task Management
1299
+ Task,
1300
+ Checklist,
1301
+ // Note Taking
1302
+ Note,
1303
+ Notebook,
1304
+ // Reminders and Bookmarks
1305
+ Reminder,
1306
+ Bookmark,
1307
+ };
1308
+ /**
1309
+ * Entity categories for organization
1310
+ */
1311
+ export const ProductivityCategories = {
1312
+ calendar: ['Calendar', 'Event', 'Availability'],
1313
+ tasks: ['Task', 'Checklist'],
1314
+ notes: ['Note', 'Notebook'],
1315
+ reminders: ['Reminder'],
1316
+ bookmarks: ['Bookmark'],
1317
+ };
1318
+ //# sourceMappingURL=productivity.js.map