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,1204 @@
1
+ /**
2
+ * E-Signature Entity Types (Nouns)
3
+ *
4
+ * Semantic type definitions for electronic signature workflows compatible with
5
+ * DocuSign, DocuSeal, and other e-signature platforms. 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
+ import type { Noun } from 'ai-database'
14
+
15
+ // =============================================================================
16
+ // SignatureDocument
17
+ // =============================================================================
18
+
19
+ /**
20
+ * SignatureDocument entity
21
+ *
22
+ * Represents a document requiring electronic signatures from one or more signers.
23
+ * Tracks the lifecycle from draft through completion or voiding.
24
+ */
25
+ export const SignatureDocument: Noun = {
26
+ singular: 'signature document',
27
+ plural: 'signature documents',
28
+ description: 'A document requiring electronic signatures from one or more signers',
29
+
30
+ properties: {
31
+ // Identity
32
+ title: {
33
+ type: 'string',
34
+ description: 'Document title',
35
+ },
36
+ description: {
37
+ type: 'string',
38
+ optional: true,
39
+ description: 'Document description or purpose',
40
+ },
41
+
42
+ // Status
43
+ status: {
44
+ type: 'string',
45
+ description: 'Document status: draft, sent, pending, completed, declined, voided',
46
+ examples: ['draft', 'sent', 'pending', 'completed', 'declined', 'voided'],
47
+ },
48
+
49
+ // File information
50
+ fileUrl: {
51
+ type: 'url',
52
+ description: 'URL to the document file',
53
+ },
54
+ fileName: {
55
+ type: 'string',
56
+ description: 'Original file name',
57
+ },
58
+ fileType: {
59
+ type: 'string',
60
+ description: 'File MIME type',
61
+ examples: ['application/pdf', 'application/msword', 'image/png'],
62
+ },
63
+ fileSize: {
64
+ type: 'number',
65
+ description: 'File size in bytes',
66
+ },
67
+
68
+ // Dates
69
+ createdAt: {
70
+ type: 'datetime',
71
+ description: 'When the document was created',
72
+ },
73
+ sentAt: {
74
+ type: 'datetime',
75
+ optional: true,
76
+ description: 'When the document was sent to signers',
77
+ },
78
+ completedAt: {
79
+ type: 'datetime',
80
+ optional: true,
81
+ description: 'When all signatures were completed',
82
+ },
83
+ expiresAt: {
84
+ type: 'datetime',
85
+ optional: true,
86
+ description: 'When the signature request expires',
87
+ },
88
+
89
+ // Email communication
90
+ subject: {
91
+ type: 'string',
92
+ optional: true,
93
+ description: 'Email subject line for signature requests',
94
+ },
95
+ message: {
96
+ type: 'string',
97
+ optional: true,
98
+ description: 'Email message or instructions for signers',
99
+ },
100
+
101
+ // Settings
102
+ requireAllSigners: {
103
+ type: 'boolean',
104
+ optional: true,
105
+ description: 'Whether all signers must complete or just one',
106
+ },
107
+ allowDecline: {
108
+ type: 'boolean',
109
+ optional: true,
110
+ description: 'Whether signers can decline to sign',
111
+ },
112
+ allowReassign: {
113
+ type: 'boolean',
114
+ optional: true,
115
+ description: 'Whether signers can reassign to someone else',
116
+ },
117
+ enableReminders: {
118
+ type: 'boolean',
119
+ optional: true,
120
+ description: 'Whether to send automatic reminders',
121
+ },
122
+ reminderFrequency: {
123
+ type: 'number',
124
+ optional: true,
125
+ description: 'Reminder frequency in days',
126
+ },
127
+
128
+ // Security
129
+ requireAuthentication: {
130
+ type: 'boolean',
131
+ optional: true,
132
+ description: 'Whether signers must authenticate',
133
+ },
134
+ requireAccessCode: {
135
+ type: 'boolean',
136
+ optional: true,
137
+ description: 'Whether an access code is required',
138
+ },
139
+ accessCode: {
140
+ type: 'string',
141
+ optional: true,
142
+ description: 'Access code for viewing/signing',
143
+ },
144
+
145
+ // Completion
146
+ completedFileUrl: {
147
+ type: 'url',
148
+ optional: true,
149
+ description: 'URL to the signed/completed document',
150
+ },
151
+ certificateUrl: {
152
+ type: 'url',
153
+ optional: true,
154
+ description: 'URL to completion certificate',
155
+ },
156
+
157
+ // Metadata
158
+ tags: {
159
+ type: 'string',
160
+ array: true,
161
+ optional: true,
162
+ description: 'Tags for categorizing the document',
163
+ },
164
+ folder: {
165
+ type: 'string',
166
+ optional: true,
167
+ description: 'Folder or workspace the document belongs to',
168
+ },
169
+ metadata: {
170
+ type: 'json',
171
+ optional: true,
172
+ description: 'Additional document metadata',
173
+ },
174
+ },
175
+
176
+ relationships: {
177
+ requests: {
178
+ type: 'SignatureRequest[]',
179
+ backref: 'document',
180
+ description: 'Signature requests for this document',
181
+ },
182
+ fields: {
183
+ type: 'SignatureField[]',
184
+ backref: 'document',
185
+ description: 'Signature and input fields in the document',
186
+ },
187
+ auditTrail: {
188
+ type: 'AuditTrail[]',
189
+ backref: 'document',
190
+ description: 'Audit log entries for this document',
191
+ },
192
+ owner: {
193
+ type: 'Contact',
194
+ description: 'Owner who created the document',
195
+ },
196
+ template: {
197
+ type: 'SignatureTemplate',
198
+ required: false,
199
+ description: 'Template used to create this document',
200
+ },
201
+ },
202
+
203
+ actions: [
204
+ 'create',
205
+ 'edit',
206
+ 'delete',
207
+ 'send',
208
+ 'resend',
209
+ 'void',
210
+ 'download',
211
+ 'downloadCertificate',
212
+ 'addSigner',
213
+ 'removeSigner',
214
+ 'addField',
215
+ 'removeField',
216
+ 'duplicate',
217
+ 'preview',
218
+ 'remind',
219
+ 'archive',
220
+ ],
221
+
222
+ events: [
223
+ 'created',
224
+ 'edited',
225
+ 'deleted',
226
+ 'sent',
227
+ 'resent',
228
+ 'voided',
229
+ 'downloaded',
230
+ 'signerAdded',
231
+ 'signerRemoved',
232
+ 'fieldAdded',
233
+ 'fieldRemoved',
234
+ 'viewed',
235
+ 'completed',
236
+ 'declined',
237
+ 'expired',
238
+ 'reminderSent',
239
+ 'archived',
240
+ ],
241
+ }
242
+
243
+ // =============================================================================
244
+ // SignatureRequest
245
+ // =============================================================================
246
+
247
+ /**
248
+ * SignatureRequest entity
249
+ *
250
+ * Represents a request for a specific person to sign a document.
251
+ * Tracks individual signer status and actions.
252
+ */
253
+ export const SignatureRequest: Noun = {
254
+ singular: 'signature request',
255
+ plural: 'signature requests',
256
+ description: 'A request for a specific person to sign a document',
257
+
258
+ properties: {
259
+ // Status
260
+ status: {
261
+ type: 'string',
262
+ description: 'Request status: pending, viewed, signed, declined',
263
+ examples: ['pending', 'viewed', 'signed', 'declined'],
264
+ },
265
+
266
+ // Signing order
267
+ order: {
268
+ type: 'number',
269
+ optional: true,
270
+ description: 'Signing order (1-based, null for parallel signing)',
271
+ },
272
+
273
+ // Dates
274
+ sentAt: {
275
+ type: 'datetime',
276
+ description: 'When the request was sent',
277
+ },
278
+ viewedAt: {
279
+ type: 'datetime',
280
+ optional: true,
281
+ description: 'When the signer first viewed the document',
282
+ },
283
+ signedAt: {
284
+ type: 'datetime',
285
+ optional: true,
286
+ description: 'When the signer completed signing',
287
+ },
288
+ declinedAt: {
289
+ type: 'datetime',
290
+ optional: true,
291
+ description: 'When the signer declined',
292
+ },
293
+
294
+ // Communication
295
+ message: {
296
+ type: 'string',
297
+ optional: true,
298
+ description: 'Custom message for this specific signer',
299
+ },
300
+
301
+ // Decline
302
+ declineReason: {
303
+ type: 'string',
304
+ optional: true,
305
+ description: 'Reason provided for declining',
306
+ },
307
+
308
+ // Reassignment
309
+ reassignedTo: {
310
+ type: 'string',
311
+ optional: true,
312
+ description: 'Email address if reassigned to another person',
313
+ },
314
+ reassignedAt: {
315
+ type: 'datetime',
316
+ optional: true,
317
+ description: 'When the request was reassigned',
318
+ },
319
+ reassignReason: {
320
+ type: 'string',
321
+ optional: true,
322
+ description: 'Reason for reassignment',
323
+ },
324
+
325
+ // Reminders
326
+ reminderCount: {
327
+ type: 'number',
328
+ optional: true,
329
+ description: 'Number of reminders sent',
330
+ },
331
+ lastReminderAt: {
332
+ type: 'datetime',
333
+ optional: true,
334
+ description: 'When the last reminder was sent',
335
+ },
336
+
337
+ // Access
338
+ accessCode: {
339
+ type: 'string',
340
+ optional: true,
341
+ description: 'Access code for this specific signer',
342
+ },
343
+ viewToken: {
344
+ type: 'string',
345
+ optional: true,
346
+ description: 'Unique token for viewing the document',
347
+ },
348
+
349
+ // Metadata
350
+ metadata: {
351
+ type: 'json',
352
+ optional: true,
353
+ description: 'Additional request metadata',
354
+ },
355
+ },
356
+
357
+ relationships: {
358
+ document: {
359
+ type: 'SignatureDocument',
360
+ backref: 'requests',
361
+ description: 'Document being signed',
362
+ },
363
+ signer: {
364
+ type: 'Signer',
365
+ description: 'Person who needs to sign',
366
+ },
367
+ signatures: {
368
+ type: 'Signature[]',
369
+ backref: 'request',
370
+ description: 'Signatures created by this signer',
371
+ },
372
+ },
373
+
374
+ actions: [
375
+ 'send',
376
+ 'resend',
377
+ 'remind',
378
+ 'view',
379
+ 'sign',
380
+ 'decline',
381
+ 'reassign',
382
+ 'cancel',
383
+ 'withdraw',
384
+ ],
385
+
386
+ events: [
387
+ 'sent',
388
+ 'resent',
389
+ 'reminded',
390
+ 'viewed',
391
+ 'signed',
392
+ 'declined',
393
+ 'reassigned',
394
+ 'cancelled',
395
+ 'withdrawn',
396
+ ],
397
+ }
398
+
399
+ // =============================================================================
400
+ // Signer
401
+ // =============================================================================
402
+
403
+ /**
404
+ * Signer entity
405
+ *
406
+ * Represents a person who needs to sign, view, or approve a document.
407
+ * Can have different roles and authentication requirements.
408
+ */
409
+ export const Signer: Noun = {
410
+ singular: 'signer',
411
+ plural: 'signers',
412
+ description: 'A person who needs to sign, view, or approve a document',
413
+
414
+ properties: {
415
+ // Identity
416
+ name: {
417
+ type: 'string',
418
+ description: 'Full name of the signer',
419
+ },
420
+ email: {
421
+ type: 'string',
422
+ description: 'Email address',
423
+ },
424
+ phone: {
425
+ type: 'string',
426
+ optional: true,
427
+ description: 'Phone number for SMS authentication',
428
+ },
429
+
430
+ // Role
431
+ role: {
432
+ type: 'string',
433
+ description: 'Signer role: signer, viewer, approver, editor',
434
+ examples: ['signer', 'viewer', 'approver', 'editor'],
435
+ },
436
+ roleName: {
437
+ type: 'string',
438
+ optional: true,
439
+ description: 'Custom role name (e.g., "Buyer", "Seller", "Witness")',
440
+ },
441
+
442
+ // Authentication
443
+ authMethod: {
444
+ type: 'string',
445
+ description: 'Authentication method: email, sms, none, oauth',
446
+ examples: ['email', 'sms', 'none', 'oauth'],
447
+ },
448
+ requireIdVerification: {
449
+ type: 'boolean',
450
+ optional: true,
451
+ description: 'Whether ID verification is required',
452
+ },
453
+
454
+ // Status
455
+ status: {
456
+ type: 'string',
457
+ description: 'Signer status: pending, active, completed, declined',
458
+ examples: ['pending', 'active', 'completed', 'declined'],
459
+ },
460
+
461
+ // Notifications
462
+ receiveEmailNotifications: {
463
+ type: 'boolean',
464
+ optional: true,
465
+ description: 'Whether to receive email notifications',
466
+ },
467
+ receiveSmsNotifications: {
468
+ type: 'boolean',
469
+ optional: true,
470
+ description: 'Whether to receive SMS notifications',
471
+ },
472
+
473
+ // Company
474
+ company: {
475
+ type: 'string',
476
+ optional: true,
477
+ description: 'Company or organization name',
478
+ },
479
+ title: {
480
+ type: 'string',
481
+ optional: true,
482
+ description: 'Job title',
483
+ },
484
+
485
+ // Metadata
486
+ metadata: {
487
+ type: 'json',
488
+ optional: true,
489
+ description: 'Additional signer metadata',
490
+ },
491
+ },
492
+
493
+ relationships: {
494
+ requests: {
495
+ type: 'SignatureRequest[]',
496
+ backref: 'signer',
497
+ description: 'Signature requests for this signer',
498
+ },
499
+ contact: {
500
+ type: 'Contact',
501
+ required: false,
502
+ description: 'Associated contact record',
503
+ },
504
+ },
505
+
506
+ actions: [
507
+ 'create',
508
+ 'edit',
509
+ 'delete',
510
+ 'sendInvitation',
511
+ 'resendInvitation',
512
+ 'verify',
513
+ 'updateRole',
514
+ 'updateAuthMethod',
515
+ ],
516
+
517
+ events: [
518
+ 'created',
519
+ 'edited',
520
+ 'deleted',
521
+ 'invitationSent',
522
+ 'invitationResent',
523
+ 'verified',
524
+ 'roleUpdated',
525
+ 'authMethodUpdated',
526
+ ],
527
+ }
528
+
529
+ // =============================================================================
530
+ // SignatureField
531
+ // =============================================================================
532
+
533
+ /**
534
+ * SignatureField entity
535
+ *
536
+ * Represents a field in the document where a signer must provide input.
537
+ * Includes signatures, initials, dates, text, checkboxes, and more.
538
+ */
539
+ export const SignatureField: Noun = {
540
+ singular: 'signature field',
541
+ plural: 'signature fields',
542
+ description: 'A field in the document where a signer must provide input',
543
+
544
+ properties: {
545
+ // Type
546
+ type: {
547
+ type: 'string',
548
+ description: 'Field type: signature, initials, date, text, checkbox, radio, dropdown, image',
549
+ examples: [
550
+ 'signature',
551
+ 'initials',
552
+ 'date',
553
+ 'text',
554
+ 'textarea',
555
+ 'checkbox',
556
+ 'radio',
557
+ 'dropdown',
558
+ 'image',
559
+ 'email',
560
+ 'phone',
561
+ 'number',
562
+ ],
563
+ },
564
+
565
+ // Position
566
+ page: {
567
+ type: 'number',
568
+ description: 'Page number (0-based)',
569
+ },
570
+ x: {
571
+ type: 'number',
572
+ description: 'X coordinate on the page',
573
+ },
574
+ y: {
575
+ type: 'number',
576
+ description: 'Y coordinate on the page',
577
+ },
578
+ width: {
579
+ type: 'number',
580
+ description: 'Field width',
581
+ },
582
+ height: {
583
+ type: 'number',
584
+ description: 'Field height',
585
+ },
586
+
587
+ // Validation
588
+ required: {
589
+ type: 'boolean',
590
+ optional: true,
591
+ description: 'Whether the field must be filled',
592
+ },
593
+
594
+ // Labels and help
595
+ label: {
596
+ type: 'string',
597
+ optional: true,
598
+ description: 'Field label',
599
+ },
600
+ placeholder: {
601
+ type: 'string',
602
+ optional: true,
603
+ description: 'Placeholder text',
604
+ },
605
+ tooltip: {
606
+ type: 'string',
607
+ optional: true,
608
+ description: 'Tooltip or help text',
609
+ },
610
+
611
+ // Options (for dropdown, radio)
612
+ options: {
613
+ type: 'string',
614
+ array: true,
615
+ optional: true,
616
+ description: 'Options for dropdown or radio fields',
617
+ },
618
+
619
+ // Default value
620
+ defaultValue: {
621
+ type: 'string',
622
+ optional: true,
623
+ description: 'Default or pre-filled value',
624
+ },
625
+
626
+ // Validation rules
627
+ validation: {
628
+ type: 'json',
629
+ optional: true,
630
+ description: 'Validation rules (regex, min/max length, format)',
631
+ },
632
+ minLength: {
633
+ type: 'number',
634
+ optional: true,
635
+ description: 'Minimum text length',
636
+ },
637
+ maxLength: {
638
+ type: 'number',
639
+ optional: true,
640
+ description: 'Maximum text length',
641
+ },
642
+
643
+ // Conditional logic
644
+ conditionalLogic: {
645
+ type: 'json',
646
+ optional: true,
647
+ description: 'Conditions for showing/hiding this field',
648
+ },
649
+
650
+ // Read-only
651
+ readOnly: {
652
+ type: 'boolean',
653
+ optional: true,
654
+ description: 'Whether the field is read-only',
655
+ },
656
+
657
+ // Group
658
+ group: {
659
+ type: 'string',
660
+ optional: true,
661
+ description: 'Field group for related fields',
662
+ },
663
+
664
+ // Value
665
+ value: {
666
+ type: 'string',
667
+ optional: true,
668
+ description: 'Current field value',
669
+ },
670
+ completedAt: {
671
+ type: 'datetime',
672
+ optional: true,
673
+ description: 'When the field was completed',
674
+ },
675
+
676
+ // Metadata
677
+ metadata: {
678
+ type: 'json',
679
+ optional: true,
680
+ description: 'Additional field metadata',
681
+ },
682
+ },
683
+
684
+ relationships: {
685
+ document: {
686
+ type: 'SignatureDocument',
687
+ backref: 'fields',
688
+ description: 'Document this field belongs to',
689
+ },
690
+ signer: {
691
+ type: 'Signer',
692
+ required: false,
693
+ description: 'Signer assigned to this field (null for shared fields)',
694
+ },
695
+ signature: {
696
+ type: 'Signature',
697
+ required: false,
698
+ backref: 'field',
699
+ description: 'Signature data for this field',
700
+ },
701
+ },
702
+
703
+ actions: [
704
+ 'create',
705
+ 'edit',
706
+ 'delete',
707
+ 'move',
708
+ 'resize',
709
+ 'duplicate',
710
+ 'setValue',
711
+ 'clearValue',
712
+ 'validate',
713
+ ],
714
+
715
+ events: [
716
+ 'created',
717
+ 'edited',
718
+ 'deleted',
719
+ 'moved',
720
+ 'resized',
721
+ 'duplicated',
722
+ 'valueSet',
723
+ 'valueCleared',
724
+ 'completed',
725
+ 'validated',
726
+ ],
727
+ }
728
+
729
+ // =============================================================================
730
+ // Signature
731
+ // =============================================================================
732
+
733
+ /**
734
+ * Signature entity
735
+ *
736
+ * Represents an actual signature or input provided by a signer.
737
+ * Captures the signature image/data and metadata for audit trail.
738
+ */
739
+ export const Signature: Noun = {
740
+ singular: 'signature',
741
+ plural: 'signatures',
742
+ description: 'An actual signature or input provided by a signer',
743
+
744
+ properties: {
745
+ // Type
746
+ type: {
747
+ type: 'string',
748
+ description: 'Signature type: drawn, typed, uploaded, stamp, mobile',
749
+ examples: ['drawn', 'typed', 'uploaded', 'stamp', 'mobile'],
750
+ },
751
+
752
+ // Data
753
+ imageUrl: {
754
+ type: 'url',
755
+ optional: true,
756
+ description: 'URL to the signature image',
757
+ },
758
+ imageData: {
759
+ type: 'string',
760
+ optional: true,
761
+ description: 'Base64-encoded signature image data',
762
+ },
763
+ textValue: {
764
+ type: 'string',
765
+ optional: true,
766
+ description: 'Text value for typed signatures or text fields',
767
+ },
768
+
769
+ // Timestamp
770
+ signedAt: {
771
+ type: 'datetime',
772
+ description: 'When the signature was created',
773
+ },
774
+
775
+ // Security and audit
776
+ ipAddress: {
777
+ type: 'string',
778
+ optional: true,
779
+ description: 'IP address where signature was created',
780
+ },
781
+ userAgent: {
782
+ type: 'string',
783
+ optional: true,
784
+ description: 'Browser user agent',
785
+ },
786
+ device: {
787
+ type: 'string',
788
+ optional: true,
789
+ description: 'Device type: desktop, mobile, tablet',
790
+ examples: ['desktop', 'mobile', 'tablet'],
791
+ },
792
+ location: {
793
+ type: 'json',
794
+ optional: true,
795
+ description: 'Geographic location data',
796
+ },
797
+
798
+ // Biometric data (for advanced security)
799
+ biometricData: {
800
+ type: 'json',
801
+ optional: true,
802
+ description: 'Biometric signature data (pressure, speed, etc.)',
803
+ },
804
+
805
+ // Font (for typed signatures)
806
+ fontFamily: {
807
+ type: 'string',
808
+ optional: true,
809
+ description: 'Font family for typed signatures',
810
+ },
811
+ fontSize: {
812
+ type: 'number',
813
+ optional: true,
814
+ description: 'Font size for typed signatures',
815
+ },
816
+
817
+ // Validation
818
+ validated: {
819
+ type: 'boolean',
820
+ optional: true,
821
+ description: 'Whether the signature has been validated',
822
+ },
823
+ validatedAt: {
824
+ type: 'datetime',
825
+ optional: true,
826
+ description: 'When the signature was validated',
827
+ },
828
+
829
+ // Metadata
830
+ metadata: {
831
+ type: 'json',
832
+ optional: true,
833
+ description: 'Additional signature metadata',
834
+ },
835
+ },
836
+
837
+ relationships: {
838
+ field: {
839
+ type: 'SignatureField',
840
+ backref: 'signature',
841
+ description: 'Field this signature belongs to',
842
+ },
843
+ signer: {
844
+ type: 'Signer',
845
+ description: 'Person who created the signature',
846
+ },
847
+ request: {
848
+ type: 'SignatureRequest',
849
+ backref: 'signatures',
850
+ description: 'Signature request this belongs to',
851
+ },
852
+ },
853
+
854
+ actions: [
855
+ 'create',
856
+ 'validate',
857
+ 'verify',
858
+ 'export',
859
+ 'delete',
860
+ ],
861
+
862
+ events: [
863
+ 'created',
864
+ 'validated',
865
+ 'verified',
866
+ 'exported',
867
+ 'deleted',
868
+ ],
869
+ }
870
+
871
+ // =============================================================================
872
+ // SignatureTemplate
873
+ // =============================================================================
874
+
875
+ /**
876
+ * SignatureTemplate entity
877
+ *
878
+ * Represents a reusable template for signature documents.
879
+ * Defines document structure, fields, and signer roles.
880
+ */
881
+ export const SignatureTemplate: Noun = {
882
+ singular: 'signature template',
883
+ plural: 'signature templates',
884
+ description: 'A reusable template for signature documents',
885
+
886
+ properties: {
887
+ // Identity
888
+ name: {
889
+ type: 'string',
890
+ description: 'Template name',
891
+ },
892
+ description: {
893
+ type: 'string',
894
+ optional: true,
895
+ description: 'Template description',
896
+ },
897
+
898
+ // Document
899
+ documentUrl: {
900
+ type: 'url',
901
+ optional: true,
902
+ description: 'URL to the template document',
903
+ },
904
+ documentFileName: {
905
+ type: 'string',
906
+ optional: true,
907
+ description: 'Template document file name',
908
+ },
909
+
910
+ // Fields configuration
911
+ fields: {
912
+ type: 'json',
913
+ description: 'Field definitions with positions and properties',
914
+ },
915
+
916
+ // Roles
917
+ roles: {
918
+ type: 'json',
919
+ description: 'Signer role definitions',
920
+ },
921
+
922
+ // Settings
923
+ settings: {
924
+ type: 'json',
925
+ optional: true,
926
+ description: 'Default template settings (reminders, expiration, etc.)',
927
+ },
928
+
929
+ // Usage
930
+ useCount: {
931
+ type: 'number',
932
+ optional: true,
933
+ description: 'Number of times template has been used',
934
+ },
935
+ lastUsedAt: {
936
+ type: 'datetime',
937
+ optional: true,
938
+ description: 'When the template was last used',
939
+ },
940
+
941
+ // Organization
942
+ category: {
943
+ type: 'string',
944
+ optional: true,
945
+ description: 'Template category',
946
+ },
947
+ tags: {
948
+ type: 'string',
949
+ array: true,
950
+ optional: true,
951
+ description: 'Tags for categorizing the template',
952
+ },
953
+ folder: {
954
+ type: 'string',
955
+ optional: true,
956
+ description: 'Folder or workspace',
957
+ },
958
+
959
+ // Sharing
960
+ shared: {
961
+ type: 'boolean',
962
+ optional: true,
963
+ description: 'Whether template is shared with organization',
964
+ },
965
+ public: {
966
+ type: 'boolean',
967
+ optional: true,
968
+ description: 'Whether template is publicly available',
969
+ },
970
+
971
+ // Version
972
+ version: {
973
+ type: 'number',
974
+ optional: true,
975
+ description: 'Template version number',
976
+ },
977
+ versionNotes: {
978
+ type: 'string',
979
+ optional: true,
980
+ description: 'Notes about this version',
981
+ },
982
+
983
+ // Metadata
984
+ metadata: {
985
+ type: 'json',
986
+ optional: true,
987
+ description: 'Additional template metadata',
988
+ },
989
+ },
990
+
991
+ relationships: {
992
+ documents: {
993
+ type: 'SignatureDocument[]',
994
+ backref: 'template',
995
+ description: 'Documents created from this template',
996
+ },
997
+ owner: {
998
+ type: 'Contact',
999
+ description: 'Template owner',
1000
+ },
1001
+ collaborators: {
1002
+ type: 'Contact[]',
1003
+ description: 'People with edit access to the template',
1004
+ },
1005
+ },
1006
+
1007
+ actions: [
1008
+ 'create',
1009
+ 'edit',
1010
+ 'delete',
1011
+ 'duplicate',
1012
+ 'use',
1013
+ 'share',
1014
+ 'unshare',
1015
+ 'publish',
1016
+ 'unpublish',
1017
+ 'archive',
1018
+ 'export',
1019
+ 'import',
1020
+ 'createVersion',
1021
+ ],
1022
+
1023
+ events: [
1024
+ 'created',
1025
+ 'edited',
1026
+ 'deleted',
1027
+ 'duplicated',
1028
+ 'used',
1029
+ 'shared',
1030
+ 'unshared',
1031
+ 'published',
1032
+ 'unpublished',
1033
+ 'archived',
1034
+ 'exported',
1035
+ 'imported',
1036
+ 'versionCreated',
1037
+ ],
1038
+ }
1039
+
1040
+ // =============================================================================
1041
+ // AuditTrail
1042
+ // =============================================================================
1043
+
1044
+ /**
1045
+ * AuditTrail entity
1046
+ *
1047
+ * Represents an audit log entry for compliance and tracking.
1048
+ * Records all actions taken on signature documents.
1049
+ */
1050
+ export const AuditTrail: Noun = {
1051
+ singular: 'audit trail entry',
1052
+ plural: 'audit trail entries',
1053
+ description: 'An audit log entry for tracking document actions and compliance',
1054
+
1055
+ properties: {
1056
+ // Action
1057
+ action: {
1058
+ type: 'string',
1059
+ description: 'Action performed',
1060
+ examples: [
1061
+ 'created',
1062
+ 'sent',
1063
+ 'viewed',
1064
+ 'signed',
1065
+ 'declined',
1066
+ 'completed',
1067
+ 'voided',
1068
+ 'downloaded',
1069
+ 'email_sent',
1070
+ 'reminder_sent',
1071
+ 'signer_added',
1072
+ 'signer_removed',
1073
+ 'field_added',
1074
+ 'field_modified',
1075
+ 'reassigned',
1076
+ ],
1077
+ },
1078
+
1079
+ // Actor
1080
+ actor: {
1081
+ type: 'string',
1082
+ description: 'Who performed the action (name or email)',
1083
+ },
1084
+ actorRole: {
1085
+ type: 'string',
1086
+ optional: true,
1087
+ description: 'Role of the actor: owner, signer, viewer, system',
1088
+ examples: ['owner', 'signer', 'viewer', 'approver', 'system'],
1089
+ },
1090
+
1091
+ // Timestamp
1092
+ timestamp: {
1093
+ type: 'datetime',
1094
+ description: 'When the action occurred',
1095
+ },
1096
+
1097
+ // Location and device
1098
+ ipAddress: {
1099
+ type: 'string',
1100
+ optional: true,
1101
+ description: 'IP address where action was performed',
1102
+ },
1103
+ userAgent: {
1104
+ type: 'string',
1105
+ optional: true,
1106
+ description: 'Browser user agent',
1107
+ },
1108
+ device: {
1109
+ type: 'string',
1110
+ optional: true,
1111
+ description: 'Device type: desktop, mobile, tablet',
1112
+ examples: ['desktop', 'mobile', 'tablet'],
1113
+ },
1114
+ location: {
1115
+ type: 'json',
1116
+ optional: true,
1117
+ description: 'Geographic location data',
1118
+ },
1119
+
1120
+ // Details
1121
+ details: {
1122
+ type: 'json',
1123
+ optional: true,
1124
+ description: 'Additional action details and metadata',
1125
+ },
1126
+ description: {
1127
+ type: 'string',
1128
+ optional: true,
1129
+ description: 'Human-readable action description',
1130
+ },
1131
+
1132
+ // Related entities
1133
+ entityType: {
1134
+ type: 'string',
1135
+ optional: true,
1136
+ description: 'Type of entity affected: document, request, field, signature',
1137
+ examples: ['document', 'request', 'field', 'signature', 'template'],
1138
+ },
1139
+ entityId: {
1140
+ type: 'string',
1141
+ optional: true,
1142
+ description: 'ID of the affected entity',
1143
+ },
1144
+
1145
+ // Security
1146
+ verified: {
1147
+ type: 'boolean',
1148
+ optional: true,
1149
+ description: 'Whether the action has been verified/validated',
1150
+ },
1151
+ hash: {
1152
+ type: 'string',
1153
+ optional: true,
1154
+ description: 'Cryptographic hash of the audit entry for tamper detection',
1155
+ },
1156
+ },
1157
+
1158
+ relationships: {
1159
+ document: {
1160
+ type: 'SignatureDocument',
1161
+ backref: 'auditTrail',
1162
+ description: 'Document this audit entry relates to',
1163
+ },
1164
+ },
1165
+
1166
+ actions: [
1167
+ 'view',
1168
+ 'export',
1169
+ 'verify',
1170
+ ],
1171
+
1172
+ events: [
1173
+ 'created',
1174
+ 'exported',
1175
+ 'verified',
1176
+ ],
1177
+ }
1178
+
1179
+ // =============================================================================
1180
+ // Export all entities as a schema
1181
+ // =============================================================================
1182
+
1183
+ /**
1184
+ * All signature entity types
1185
+ */
1186
+ export const SignatureEntities = {
1187
+ SignatureDocument,
1188
+ SignatureRequest,
1189
+ Signer,
1190
+ SignatureField,
1191
+ Signature,
1192
+ SignatureTemplate,
1193
+ AuditTrail,
1194
+ }
1195
+
1196
+ /**
1197
+ * Entity categories for organization
1198
+ */
1199
+ export const SignatureCategories = {
1200
+ documents: ['SignatureDocument', 'SignatureTemplate'],
1201
+ workflow: ['SignatureRequest', 'Signer'],
1202
+ fields: ['SignatureField', 'Signature'],
1203
+ compliance: ['AuditTrail'],
1204
+ } as const