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,930 @@
1
+ /**
2
+ * Document Entity Types (Nouns)
3
+ *
4
+ * Semantic type definitions for word processing documents that support
5
+ * Google Docs, Microsoft Word/DOCX, and Markdown/MDX formats.
6
+ * Each entity defines:
7
+ * - Properties: The data fields
8
+ * - Actions: Operations that can be performed (Verbs)
9
+ * - Events: State changes that occur
10
+ *
11
+ * @packageDocumentation
12
+ */
13
+
14
+ import type { Noun } from 'ai-database'
15
+
16
+ // =============================================================================
17
+ // Document
18
+ // =============================================================================
19
+
20
+ /**
21
+ * Document entity
22
+ *
23
+ * Represents a word processing document for creating and editing text content.
24
+ * Supports Google Docs, Microsoft Word/DOCX, and Markdown/MDX formats.
25
+ */
26
+ export const Document: Noun = {
27
+ singular: 'document',
28
+ plural: 'documents',
29
+ description: 'A word processing document for creating and editing text content',
30
+
31
+ properties: {
32
+ // Identity
33
+ title: {
34
+ type: 'string',
35
+ description: 'Document title',
36
+ },
37
+ slug: {
38
+ type: 'string',
39
+ optional: true,
40
+ description: 'URL-friendly identifier',
41
+ },
42
+ description: {
43
+ type: 'string',
44
+ optional: true,
45
+ description: 'Document description or summary',
46
+ },
47
+
48
+ // Content
49
+ content: {
50
+ type: 'string',
51
+ description: 'Document content in native format',
52
+ },
53
+ format: {
54
+ type: 'string',
55
+ description: 'Document format: docx, gdoc, markdown, mdx, html, plain',
56
+ examples: ['docx', 'gdoc', 'markdown', 'mdx', 'html', 'plain'],
57
+ },
58
+ wordCount: {
59
+ type: 'number',
60
+ optional: true,
61
+ description: 'Total word count',
62
+ },
63
+ characterCount: {
64
+ type: 'number',
65
+ optional: true,
66
+ description: 'Total character count',
67
+ },
68
+ pageCount: {
69
+ type: 'number',
70
+ optional: true,
71
+ description: 'Number of pages',
72
+ },
73
+
74
+ // Status and workflow
75
+ status: {
76
+ type: 'string',
77
+ description: 'Document status: draft, in-review, approved, published, archived',
78
+ examples: ['draft', 'in-review', 'approved', 'published', 'archived'],
79
+ },
80
+ visibility: {
81
+ type: 'string',
82
+ description: 'Visibility: private, internal, public',
83
+ examples: ['private', 'internal', 'public'],
84
+ },
85
+
86
+ // Versioning
87
+ version: {
88
+ type: 'string',
89
+ optional: true,
90
+ description: 'Current version number',
91
+ },
92
+ versionNumber: {
93
+ type: 'number',
94
+ optional: true,
95
+ description: 'Numeric version counter',
96
+ },
97
+ majorVersion: {
98
+ type: 'number',
99
+ optional: true,
100
+ description: 'Major version number',
101
+ },
102
+ minorVersion: {
103
+ type: 'number',
104
+ optional: true,
105
+ description: 'Minor version number',
106
+ },
107
+
108
+ // Styling and formatting
109
+ pageSize: {
110
+ type: 'string',
111
+ optional: true,
112
+ description: 'Page size: letter, a4, legal, custom',
113
+ examples: ['letter', 'a4', 'legal', 'custom'],
114
+ },
115
+ pageOrientation: {
116
+ type: 'string',
117
+ optional: true,
118
+ description: 'Page orientation: portrait, landscape',
119
+ examples: ['portrait', 'landscape'],
120
+ },
121
+ margins: {
122
+ type: 'json',
123
+ optional: true,
124
+ description: 'Page margins configuration',
125
+ },
126
+ defaultFont: {
127
+ type: 'string',
128
+ optional: true,
129
+ description: 'Default font family',
130
+ },
131
+ defaultFontSize: {
132
+ type: 'number',
133
+ optional: true,
134
+ description: 'Default font size in points',
135
+ },
136
+ lineSpacing: {
137
+ type: 'number',
138
+ optional: true,
139
+ description: 'Line spacing multiplier',
140
+ },
141
+ theme: {
142
+ type: 'json',
143
+ optional: true,
144
+ description: 'Document theme and styling configuration',
145
+ },
146
+
147
+ // Collaboration
148
+ allowComments: {
149
+ type: 'boolean',
150
+ optional: true,
151
+ description: 'Whether comments are enabled',
152
+ },
153
+ allowSuggestions: {
154
+ type: 'boolean',
155
+ optional: true,
156
+ description: 'Whether suggestions/tracked changes are enabled',
157
+ },
158
+ shareMode: {
159
+ type: 'string',
160
+ optional: true,
161
+ description: 'Sharing mode: view, comment, edit',
162
+ examples: ['view', 'comment', 'edit'],
163
+ },
164
+
165
+ // Protection
166
+ protected: {
167
+ type: 'boolean',
168
+ optional: true,
169
+ description: 'Whether document is protected from editing',
170
+ },
171
+ password: {
172
+ type: 'string',
173
+ optional: true,
174
+ description: 'Password for protected documents',
175
+ },
176
+ readOnly: {
177
+ type: 'boolean',
178
+ optional: true,
179
+ description: 'Whether document is read-only',
180
+ },
181
+ downloadable: {
182
+ type: 'boolean',
183
+ optional: true,
184
+ description: 'Whether document can be downloaded',
185
+ },
186
+ copyable: {
187
+ type: 'boolean',
188
+ optional: true,
189
+ description: 'Whether content can be copied',
190
+ },
191
+ printable: {
192
+ type: 'boolean',
193
+ optional: true,
194
+ description: 'Whether document can be printed',
195
+ },
196
+
197
+ // Templates
198
+ isTemplate: {
199
+ type: 'boolean',
200
+ optional: true,
201
+ description: 'Whether this document is a template',
202
+ },
203
+ templateId: {
204
+ type: 'string',
205
+ optional: true,
206
+ description: 'ID of template this was created from',
207
+ },
208
+
209
+ // Integration
210
+ externalId: {
211
+ type: 'string',
212
+ optional: true,
213
+ description: 'External system ID (Google Docs ID, OneDrive ID, etc.)',
214
+ },
215
+ externalUrl: {
216
+ type: 'url',
217
+ optional: true,
218
+ description: 'URL in external system',
219
+ },
220
+ syncEnabled: {
221
+ type: 'boolean',
222
+ optional: true,
223
+ description: 'Whether sync with external system is enabled',
224
+ },
225
+ lastSyncedAt: {
226
+ type: 'datetime',
227
+ optional: true,
228
+ description: 'Last sync timestamp',
229
+ },
230
+
231
+ // Metadata
232
+ language: {
233
+ type: 'string',
234
+ optional: true,
235
+ description: 'Document language code',
236
+ },
237
+ tags: {
238
+ type: 'string',
239
+ array: true,
240
+ optional: true,
241
+ description: 'Tags for categorizing the document',
242
+ },
243
+ category: {
244
+ type: 'string',
245
+ optional: true,
246
+ description: 'Document category',
247
+ },
248
+ folder: {
249
+ type: 'string',
250
+ optional: true,
251
+ description: 'Folder or workspace path',
252
+ },
253
+ customMetadata: {
254
+ type: 'json',
255
+ optional: true,
256
+ description: 'Custom metadata fields',
257
+ },
258
+
259
+ // Analytics
260
+ viewCount: {
261
+ type: 'number',
262
+ optional: true,
263
+ description: 'Number of views',
264
+ },
265
+ downloadCount: {
266
+ type: 'number',
267
+ optional: true,
268
+ description: 'Number of downloads',
269
+ },
270
+ lastViewedAt: {
271
+ type: 'datetime',
272
+ optional: true,
273
+ description: 'Last view timestamp',
274
+ },
275
+ lastEditedAt: {
276
+ type: 'datetime',
277
+ optional: true,
278
+ description: 'Last edit timestamp',
279
+ },
280
+
281
+ // Publishing
282
+ publishedAt: {
283
+ type: 'datetime',
284
+ optional: true,
285
+ description: 'Publication timestamp',
286
+ },
287
+ publishedUrl: {
288
+ type: 'url',
289
+ optional: true,
290
+ description: 'Published document URL',
291
+ },
292
+ expiresAt: {
293
+ type: 'datetime',
294
+ optional: true,
295
+ description: 'Document expiration timestamp',
296
+ },
297
+ },
298
+
299
+ relationships: {
300
+ owner: {
301
+ type: 'Contact',
302
+ description: 'Document owner',
303
+ },
304
+ creator: {
305
+ type: 'Contact',
306
+ description: 'User who created the document',
307
+ },
308
+ lastEditor: {
309
+ type: 'Contact',
310
+ required: false,
311
+ description: 'User who last edited the document',
312
+ },
313
+ collaborators: {
314
+ type: 'DocumentCollaborator[]',
315
+ backref: 'document',
316
+ description: 'Users with access to the document',
317
+ },
318
+ versions: {
319
+ type: 'DocumentVersion[]',
320
+ backref: 'document',
321
+ description: 'Version history',
322
+ },
323
+ comments: {
324
+ type: 'DocumentComment[]',
325
+ backref: 'document',
326
+ description: 'Comments and suggestions',
327
+ },
328
+ attachments: {
329
+ type: 'Attachment[]',
330
+ description: 'Attached files',
331
+ },
332
+ },
333
+
334
+ actions: [
335
+ 'create',
336
+ 'open',
337
+ 'edit',
338
+ 'save',
339
+ 'saveAs',
340
+ 'duplicate',
341
+ 'rename',
342
+ 'delete',
343
+ 'restore',
344
+ 'export',
345
+ 'download',
346
+ 'print',
347
+ 'share',
348
+ 'unshare',
349
+ 'publish',
350
+ 'unpublish',
351
+ 'archive',
352
+ 'unarchive',
353
+ 'move',
354
+ 'copy',
355
+ 'lock',
356
+ 'unlock',
357
+ 'protect',
358
+ 'unprotect',
359
+ 'makeTemplate',
360
+ 'createFromTemplate',
361
+ 'compare',
362
+ 'merge',
363
+ 'split',
364
+ 'convert',
365
+ 'translate',
366
+ 'spellCheck',
367
+ 'findAndReplace',
368
+ 'formatDocument',
369
+ 'insertImage',
370
+ 'insertTable',
371
+ 'insertLink',
372
+ 'addPageBreak',
373
+ 'addComment',
374
+ 'acceptSuggestion',
375
+ 'rejectSuggestion',
376
+ ],
377
+
378
+ events: [
379
+ 'created',
380
+ 'opened',
381
+ 'edited',
382
+ 'saved',
383
+ 'renamed',
384
+ 'deleted',
385
+ 'restored',
386
+ 'exported',
387
+ 'downloaded',
388
+ 'printed',
389
+ 'shared',
390
+ 'unshared',
391
+ 'published',
392
+ 'unpublished',
393
+ 'archived',
394
+ 'unarchived',
395
+ 'moved',
396
+ 'copied',
397
+ 'locked',
398
+ 'unlocked',
399
+ 'protected',
400
+ 'unprotected',
401
+ 'converted',
402
+ 'translated',
403
+ 'commentAdded',
404
+ 'commentResolved',
405
+ 'suggestionAccepted',
406
+ 'suggestionRejected',
407
+ 'collaboratorAdded',
408
+ 'collaboratorRemoved',
409
+ 'permissionChanged',
410
+ 'versionCreated',
411
+ 'versionRestored',
412
+ 'synced',
413
+ 'viewed',
414
+ ],
415
+ }
416
+
417
+ // =============================================================================
418
+ // DocumentVersion
419
+ // =============================================================================
420
+
421
+ /**
422
+ * DocumentVersion entity
423
+ *
424
+ * Represents a version in the document's history with content snapshot.
425
+ */
426
+ export const DocumentVersion: Noun = {
427
+ singular: 'document version',
428
+ plural: 'document versions',
429
+ description: 'A version snapshot in document history',
430
+
431
+ properties: {
432
+ // Identity
433
+ versionNumber: {
434
+ type: 'number',
435
+ description: 'Sequential version number',
436
+ },
437
+ label: {
438
+ type: 'string',
439
+ optional: true,
440
+ description: 'Version label or tag',
441
+ },
442
+ description: {
443
+ type: 'string',
444
+ optional: true,
445
+ description: 'Version description or change notes',
446
+ },
447
+
448
+ // Content
449
+ content: {
450
+ type: 'string',
451
+ description: 'Document content at this version',
452
+ },
453
+ contentDiff: {
454
+ type: 'string',
455
+ optional: true,
456
+ description: 'Diff from previous version',
457
+ },
458
+ wordCount: {
459
+ type: 'number',
460
+ optional: true,
461
+ description: 'Word count at this version',
462
+ },
463
+ characterCount: {
464
+ type: 'number',
465
+ optional: true,
466
+ description: 'Character count at this version',
467
+ },
468
+
469
+ // Change tracking
470
+ changeType: {
471
+ type: 'string',
472
+ optional: true,
473
+ description: 'Type of change: edit, format, insert, delete, move',
474
+ examples: ['edit', 'format', 'insert', 'delete', 'move', 'restructure'],
475
+ },
476
+ changedSections: {
477
+ type: 'json',
478
+ optional: true,
479
+ description: 'Sections that were changed',
480
+ },
481
+ addedWords: {
482
+ type: 'number',
483
+ optional: true,
484
+ description: 'Number of words added',
485
+ },
486
+ deletedWords: {
487
+ type: 'number',
488
+ optional: true,
489
+ description: 'Number of words deleted',
490
+ },
491
+
492
+ // Versioning
493
+ isMajorVersion: {
494
+ type: 'boolean',
495
+ optional: true,
496
+ description: 'Whether this is a major version',
497
+ },
498
+ isAutoSave: {
499
+ type: 'boolean',
500
+ optional: true,
501
+ description: 'Whether this was an auto-saved version',
502
+ },
503
+ isPinned: {
504
+ type: 'boolean',
505
+ optional: true,
506
+ description: 'Whether this version is pinned',
507
+ },
508
+
509
+ // Metadata
510
+ size: {
511
+ type: 'number',
512
+ optional: true,
513
+ description: 'Version size in bytes',
514
+ },
515
+ checksum: {
516
+ type: 'string',
517
+ optional: true,
518
+ description: 'Content checksum for verification',
519
+ },
520
+ },
521
+
522
+ relationships: {
523
+ document: {
524
+ type: 'Document',
525
+ backref: 'versions',
526
+ description: 'Parent document',
527
+ },
528
+ author: {
529
+ type: 'Contact',
530
+ description: 'User who created this version',
531
+ },
532
+ previousVersion: {
533
+ type: 'DocumentVersion',
534
+ required: false,
535
+ description: 'Previous version in history',
536
+ },
537
+ },
538
+
539
+ actions: [
540
+ 'create',
541
+ 'view',
542
+ 'compare',
543
+ 'restore',
544
+ 'download',
545
+ 'delete',
546
+ 'pin',
547
+ 'unpin',
548
+ 'label',
549
+ 'addNote',
550
+ ],
551
+
552
+ events: [
553
+ 'created',
554
+ 'viewed',
555
+ 'compared',
556
+ 'restored',
557
+ 'downloaded',
558
+ 'deleted',
559
+ 'pinned',
560
+ 'unpinned',
561
+ 'labeled',
562
+ ],
563
+ }
564
+
565
+ // =============================================================================
566
+ // DocumentComment
567
+ // =============================================================================
568
+
569
+ /**
570
+ * DocumentComment entity
571
+ *
572
+ * Represents a comment or suggestion on a document.
573
+ */
574
+ export const DocumentComment: Noun = {
575
+ singular: 'document comment',
576
+ plural: 'document comments',
577
+ description: 'A comment or suggestion on a document',
578
+
579
+ properties: {
580
+ // Content
581
+ text: {
582
+ type: 'string',
583
+ description: 'Comment text',
584
+ },
585
+ quotedText: {
586
+ type: 'string',
587
+ optional: true,
588
+ description: 'Text being commented on',
589
+ },
590
+
591
+ // Type
592
+ type: {
593
+ type: 'string',
594
+ description: 'Comment type: comment, suggestion, edit, note',
595
+ examples: ['comment', 'suggestion', 'edit', 'note', 'question'],
596
+ },
597
+ severity: {
598
+ type: 'string',
599
+ optional: true,
600
+ description: 'Comment severity for editorial workflows',
601
+ examples: ['info', 'suggestion', 'warning', 'required'],
602
+ },
603
+
604
+ // Location
605
+ anchor: {
606
+ type: 'json',
607
+ optional: true,
608
+ description: 'Position anchor in document (character offset, paragraph, etc.)',
609
+ },
610
+ range: {
611
+ type: 'json',
612
+ optional: true,
613
+ description: 'Text range this comment applies to',
614
+ },
615
+ page: {
616
+ type: 'number',
617
+ optional: true,
618
+ description: 'Page number',
619
+ },
620
+
621
+ // Status
622
+ status: {
623
+ type: 'string',
624
+ description: 'Comment status: open, resolved, accepted, rejected',
625
+ examples: ['open', 'resolved', 'accepted', 'rejected', 'wont-fix'],
626
+ },
627
+ resolved: {
628
+ type: 'boolean',
629
+ description: 'Whether comment is resolved',
630
+ },
631
+
632
+ // Suggestions
633
+ suggestedChange: {
634
+ type: 'string',
635
+ optional: true,
636
+ description: 'Suggested text change',
637
+ },
638
+ originalText: {
639
+ type: 'string',
640
+ optional: true,
641
+ description: 'Original text before suggestion',
642
+ },
643
+
644
+ // Threading
645
+ isReply: {
646
+ type: 'boolean',
647
+ optional: true,
648
+ description: 'Whether this is a reply to another comment',
649
+ },
650
+ replyCount: {
651
+ type: 'number',
652
+ optional: true,
653
+ description: 'Number of replies',
654
+ },
655
+
656
+ // Resolution
657
+ resolvedAt: {
658
+ type: 'datetime',
659
+ optional: true,
660
+ description: 'When comment was resolved',
661
+ },
662
+ resolution: {
663
+ type: 'string',
664
+ optional: true,
665
+ description: 'Resolution notes',
666
+ },
667
+
668
+ // Metadata
669
+ mentions: {
670
+ type: 'string',
671
+ array: true,
672
+ optional: true,
673
+ description: 'User IDs mentioned in comment',
674
+ },
675
+ attachments: {
676
+ type: 'json',
677
+ optional: true,
678
+ description: 'Attached files or images',
679
+ },
680
+ },
681
+
682
+ relationships: {
683
+ document: {
684
+ type: 'Document',
685
+ backref: 'comments',
686
+ description: 'Parent document',
687
+ },
688
+ author: {
689
+ type: 'Contact',
690
+ description: 'Comment author',
691
+ },
692
+ parentComment: {
693
+ type: 'DocumentComment',
694
+ required: false,
695
+ description: 'Parent comment if this is a reply',
696
+ },
697
+ replies: {
698
+ type: 'DocumentComment[]',
699
+ backref: 'parentComment',
700
+ description: 'Reply comments',
701
+ },
702
+ resolver: {
703
+ type: 'Contact',
704
+ required: false,
705
+ description: 'User who resolved the comment',
706
+ },
707
+ },
708
+
709
+ actions: [
710
+ 'create',
711
+ 'edit',
712
+ 'delete',
713
+ 'reply',
714
+ 'resolve',
715
+ 'reopen',
716
+ 'accept',
717
+ 'reject',
718
+ 'mention',
719
+ 'attach',
720
+ 'react',
721
+ ],
722
+
723
+ events: [
724
+ 'created',
725
+ 'edited',
726
+ 'deleted',
727
+ 'replied',
728
+ 'resolved',
729
+ 'reopened',
730
+ 'accepted',
731
+ 'rejected',
732
+ 'mentioned',
733
+ 'reacted',
734
+ ],
735
+ }
736
+
737
+ // =============================================================================
738
+ // DocumentCollaborator
739
+ // =============================================================================
740
+
741
+ /**
742
+ * DocumentCollaborator entity
743
+ *
744
+ * Represents a user with access to a document and their permissions.
745
+ */
746
+ export const DocumentCollaborator: Noun = {
747
+ singular: 'document collaborator',
748
+ plural: 'document collaborators',
749
+ description: 'A user with access permissions to a document',
750
+
751
+ properties: {
752
+ // Permissions
753
+ role: {
754
+ type: 'string',
755
+ description: 'Access role: owner, editor, commenter, viewer',
756
+ examples: ['owner', 'editor', 'commenter', 'viewer', 'reviewer'],
757
+ },
758
+ canEdit: {
759
+ type: 'boolean',
760
+ description: 'Whether user can edit content',
761
+ },
762
+ canComment: {
763
+ type: 'boolean',
764
+ description: 'Whether user can add comments',
765
+ },
766
+ canShare: {
767
+ type: 'boolean',
768
+ optional: true,
769
+ description: 'Whether user can share with others',
770
+ },
771
+ canDownload: {
772
+ type: 'boolean',
773
+ optional: true,
774
+ description: 'Whether user can download',
775
+ },
776
+ canPrint: {
777
+ type: 'boolean',
778
+ optional: true,
779
+ description: 'Whether user can print',
780
+ },
781
+ canDelete: {
782
+ type: 'boolean',
783
+ optional: true,
784
+ description: 'Whether user can delete document',
785
+ },
786
+
787
+ // Access control
788
+ accessType: {
789
+ type: 'string',
790
+ description: 'Access type: direct, inherited, link, public',
791
+ examples: ['direct', 'inherited', 'link', 'public'],
792
+ },
793
+ inviteStatus: {
794
+ type: 'string',
795
+ optional: true,
796
+ description: 'Invitation status: pending, accepted, declined',
797
+ examples: ['pending', 'accepted', 'declined'],
798
+ },
799
+
800
+ // Expiration
801
+ expiresAt: {
802
+ type: 'datetime',
803
+ optional: true,
804
+ description: 'When access expires',
805
+ },
806
+ isTemporary: {
807
+ type: 'boolean',
808
+ optional: true,
809
+ description: 'Whether this is temporary access',
810
+ },
811
+
812
+ // Activity
813
+ lastAccessedAt: {
814
+ type: 'datetime',
815
+ optional: true,
816
+ description: 'Last access timestamp',
817
+ },
818
+ accessCount: {
819
+ type: 'number',
820
+ optional: true,
821
+ description: 'Number of times accessed',
822
+ },
823
+ editCount: {
824
+ type: 'number',
825
+ optional: true,
826
+ description: 'Number of edits made',
827
+ },
828
+ commentCount: {
829
+ type: 'number',
830
+ optional: true,
831
+ description: 'Number of comments made',
832
+ },
833
+
834
+ // Notifications
835
+ notifyOnEdit: {
836
+ type: 'boolean',
837
+ optional: true,
838
+ description: 'Whether to notify on edits',
839
+ },
840
+ notifyOnComment: {
841
+ type: 'boolean',
842
+ optional: true,
843
+ description: 'Whether to notify on comments',
844
+ },
845
+ notifyOnShare: {
846
+ type: 'boolean',
847
+ optional: true,
848
+ description: 'Whether to notify on new shares',
849
+ },
850
+
851
+ // Metadata
852
+ inviteMessage: {
853
+ type: 'string',
854
+ optional: true,
855
+ description: 'Message included with invitation',
856
+ },
857
+ customPermissions: {
858
+ type: 'json',
859
+ optional: true,
860
+ description: 'Additional custom permissions',
861
+ },
862
+ },
863
+
864
+ relationships: {
865
+ document: {
866
+ type: 'Document',
867
+ backref: 'collaborators',
868
+ description: 'Document being shared',
869
+ },
870
+ user: {
871
+ type: 'Contact',
872
+ description: 'User with access',
873
+ },
874
+ inviter: {
875
+ type: 'Contact',
876
+ required: false,
877
+ description: 'User who shared the document',
878
+ },
879
+ },
880
+
881
+ actions: [
882
+ 'invite',
883
+ 'accept',
884
+ 'decline',
885
+ 'revoke',
886
+ 'updatePermissions',
887
+ 'makeOwner',
888
+ 'promote',
889
+ 'demote',
890
+ 'notify',
891
+ 'resendInvite',
892
+ 'setExpiration',
893
+ ],
894
+
895
+ events: [
896
+ 'invited',
897
+ 'accepted',
898
+ 'declined',
899
+ 'revoked',
900
+ 'permissionsUpdated',
901
+ 'ownerChanged',
902
+ 'promoted',
903
+ 'demoted',
904
+ 'expired',
905
+ 'accessed',
906
+ 'edited',
907
+ 'commented',
908
+ ],
909
+ }
910
+
911
+ // =============================================================================
912
+ // Export all entities as a schema
913
+ // =============================================================================
914
+
915
+ /**
916
+ * All document entity types
917
+ */
918
+ export const DocumentEntities = {
919
+ Document,
920
+ DocumentVersion,
921
+ DocumentComment,
922
+ DocumentCollaborator,
923
+ }
924
+
925
+ /**
926
+ * Entity categories for organization
927
+ */
928
+ export const DocumentCategories = {
929
+ documents: ['Document', 'DocumentVersion', 'DocumentComment', 'DocumentCollaborator'],
930
+ } as const