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,1199 @@
1
+ /**
2
+ * Storage & Files Entity Types (Nouns)
3
+ *
4
+ * Semantic type definitions for file storage and cloud drive tools.
5
+ * Each entity defines properties, relationships, actions, and events
6
+ * for working with files, folders, drives, sharing, versioning, and backups.
7
+ *
8
+ * @packageDocumentation
9
+ */
10
+ // =============================================================================
11
+ // File
12
+ // =============================================================================
13
+ /**
14
+ * File entity
15
+ *
16
+ * Represents a file with metadata, permissions, and version control
17
+ */
18
+ export const File = {
19
+ singular: 'file',
20
+ plural: 'files',
21
+ description: 'A file stored in a filesystem or cloud drive',
22
+ properties: {
23
+ // Identity
24
+ name: {
25
+ type: 'string',
26
+ description: 'File name including extension',
27
+ },
28
+ path: {
29
+ type: 'string',
30
+ description: 'Full path to the file',
31
+ },
32
+ extension: {
33
+ type: 'string',
34
+ optional: true,
35
+ description: 'File extension (e.g., pdf, jpg, docx)',
36
+ },
37
+ // Content
38
+ size: {
39
+ type: 'number',
40
+ description: 'File size in bytes',
41
+ },
42
+ mimeType: {
43
+ type: 'string',
44
+ description: 'MIME type of the file',
45
+ },
46
+ hash: {
47
+ type: 'string',
48
+ optional: true,
49
+ description: 'Content hash (MD5, SHA256, etc.) for integrity verification',
50
+ },
51
+ encoding: {
52
+ type: 'string',
53
+ optional: true,
54
+ description: 'Character encoding for text files',
55
+ },
56
+ // Metadata
57
+ type: {
58
+ type: 'string',
59
+ description: 'File type category: document, image, video, audio, archive, code, other',
60
+ examples: ['document', 'image', 'video', 'audio', 'archive', 'code', 'other'],
61
+ },
62
+ description: {
63
+ type: 'string',
64
+ optional: true,
65
+ description: 'File description or notes',
66
+ },
67
+ tags: {
68
+ type: 'string',
69
+ array: true,
70
+ optional: true,
71
+ description: 'Tags or labels for organization',
72
+ },
73
+ // Permissions
74
+ permissions: {
75
+ type: 'json',
76
+ optional: true,
77
+ description: 'File permissions (read, write, execute)',
78
+ },
79
+ visibility: {
80
+ type: 'string',
81
+ optional: true,
82
+ description: 'Visibility level: private, shared, public',
83
+ examples: ['private', 'shared', 'public'],
84
+ },
85
+ owner: {
86
+ type: 'string',
87
+ optional: true,
88
+ description: 'File owner user ID',
89
+ },
90
+ // Status
91
+ status: {
92
+ type: 'string',
93
+ optional: true,
94
+ description: 'File status: active, archived, deleted, quarantined',
95
+ examples: ['active', 'archived', 'deleted', 'quarantined'],
96
+ },
97
+ starred: {
98
+ type: 'boolean',
99
+ optional: true,
100
+ description: 'Whether the file is starred/favorited',
101
+ },
102
+ locked: {
103
+ type: 'boolean',
104
+ optional: true,
105
+ description: 'Whether the file is locked from editing',
106
+ },
107
+ // URLs
108
+ url: {
109
+ type: 'url',
110
+ optional: true,
111
+ description: 'URL to access/download the file',
112
+ },
113
+ thumbnailUrl: {
114
+ type: 'url',
115
+ optional: true,
116
+ description: 'URL to a thumbnail preview',
117
+ },
118
+ webViewUrl: {
119
+ type: 'url',
120
+ optional: true,
121
+ description: 'URL to view the file in a web browser',
122
+ },
123
+ // Dates
124
+ createdAt: {
125
+ type: 'datetime',
126
+ optional: true,
127
+ description: 'When the file was created',
128
+ },
129
+ modifiedAt: {
130
+ type: 'datetime',
131
+ optional: true,
132
+ description: 'When the file was last modified',
133
+ },
134
+ accessedAt: {
135
+ type: 'datetime',
136
+ optional: true,
137
+ description: 'When the file was last accessed',
138
+ },
139
+ },
140
+ relationships: {
141
+ folder: {
142
+ type: 'Folder',
143
+ backref: 'files',
144
+ description: 'Parent folder containing this file',
145
+ },
146
+ drive: {
147
+ type: 'Drive',
148
+ description: 'Drive where this file is stored',
149
+ },
150
+ versions: {
151
+ type: 'FileVersion[]',
152
+ backref: 'file',
153
+ description: 'Version history of this file',
154
+ },
155
+ sharedLinks: {
156
+ type: 'SharedLink[]',
157
+ backref: 'file',
158
+ description: 'Sharing links for this file',
159
+ },
160
+ owner: {
161
+ type: 'Contact',
162
+ description: 'Owner of the file',
163
+ },
164
+ collaborators: {
165
+ type: 'Contact[]',
166
+ description: 'People with access to the file',
167
+ },
168
+ },
169
+ actions: [
170
+ 'create',
171
+ 'upload',
172
+ 'download',
173
+ 'open',
174
+ 'edit',
175
+ 'save',
176
+ 'copy',
177
+ 'move',
178
+ 'rename',
179
+ 'delete',
180
+ 'restore',
181
+ 'share',
182
+ 'unshare',
183
+ 'star',
184
+ 'unstar',
185
+ 'lock',
186
+ 'unlock',
187
+ 'tag',
188
+ 'untag',
189
+ 'preview',
190
+ 'compress',
191
+ 'decompress',
192
+ 'encrypt',
193
+ 'decrypt',
194
+ ],
195
+ events: [
196
+ 'created',
197
+ 'uploaded',
198
+ 'downloaded',
199
+ 'opened',
200
+ 'edited',
201
+ 'saved',
202
+ 'copied',
203
+ 'moved',
204
+ 'renamed',
205
+ 'deleted',
206
+ 'restored',
207
+ 'shared',
208
+ 'unshared',
209
+ 'starred',
210
+ 'unstarred',
211
+ 'locked',
212
+ 'unlocked',
213
+ 'tagged',
214
+ 'untagged',
215
+ 'previewed',
216
+ 'compressed',
217
+ 'decompressed',
218
+ 'encrypted',
219
+ 'decrypted',
220
+ 'virusScanned',
221
+ 'quarantined',
222
+ ],
223
+ };
224
+ // =============================================================================
225
+ // Folder
226
+ // =============================================================================
227
+ /**
228
+ * Folder/Directory entity
229
+ *
230
+ * Represents a folder or directory that can contain files and subfolders
231
+ */
232
+ export const Folder = {
233
+ singular: 'folder',
234
+ plural: 'folders',
235
+ description: 'A folder or directory containing files and subfolders',
236
+ properties: {
237
+ // Identity
238
+ name: {
239
+ type: 'string',
240
+ description: 'Folder name',
241
+ },
242
+ path: {
243
+ type: 'string',
244
+ description: 'Full path to the folder',
245
+ },
246
+ // Metadata
247
+ description: {
248
+ type: 'string',
249
+ optional: true,
250
+ description: 'Folder description or purpose',
251
+ },
252
+ color: {
253
+ type: 'string',
254
+ optional: true,
255
+ description: 'Folder color for visual organization',
256
+ },
257
+ icon: {
258
+ type: 'string',
259
+ optional: true,
260
+ description: 'Folder icon identifier',
261
+ },
262
+ // Content stats
263
+ fileCount: {
264
+ type: 'number',
265
+ optional: true,
266
+ description: 'Number of files directly in this folder',
267
+ },
268
+ folderCount: {
269
+ type: 'number',
270
+ optional: true,
271
+ description: 'Number of subfolders',
272
+ },
273
+ totalSize: {
274
+ type: 'number',
275
+ optional: true,
276
+ description: 'Total size of all contents in bytes',
277
+ },
278
+ // Permissions
279
+ permissions: {
280
+ type: 'json',
281
+ optional: true,
282
+ description: 'Folder permissions',
283
+ },
284
+ visibility: {
285
+ type: 'string',
286
+ optional: true,
287
+ description: 'Visibility level: private, shared, public',
288
+ examples: ['private', 'shared', 'public'],
289
+ },
290
+ owner: {
291
+ type: 'string',
292
+ optional: true,
293
+ description: 'Folder owner user ID',
294
+ },
295
+ // Status
296
+ starred: {
297
+ type: 'boolean',
298
+ optional: true,
299
+ description: 'Whether the folder is starred/favorited',
300
+ },
301
+ pinned: {
302
+ type: 'boolean',
303
+ optional: true,
304
+ description: 'Whether the folder is pinned for quick access',
305
+ },
306
+ archived: {
307
+ type: 'boolean',
308
+ optional: true,
309
+ description: 'Whether the folder is archived',
310
+ },
311
+ // URLs
312
+ url: {
313
+ type: 'url',
314
+ optional: true,
315
+ description: 'URL to access the folder',
316
+ },
317
+ webViewUrl: {
318
+ type: 'url',
319
+ optional: true,
320
+ description: 'URL to view the folder in a web browser',
321
+ },
322
+ // Dates
323
+ createdAt: {
324
+ type: 'datetime',
325
+ optional: true,
326
+ description: 'When the folder was created',
327
+ },
328
+ modifiedAt: {
329
+ type: 'datetime',
330
+ optional: true,
331
+ description: 'When the folder contents were last modified',
332
+ },
333
+ },
334
+ relationships: {
335
+ parentFolder: {
336
+ type: 'Folder',
337
+ backref: 'subfolders',
338
+ required: false,
339
+ description: 'Parent folder (null for root)',
340
+ },
341
+ subfolders: {
342
+ type: 'Folder[]',
343
+ backref: 'parentFolder',
344
+ description: 'Subfolders within this folder',
345
+ },
346
+ files: {
347
+ type: 'File[]',
348
+ backref: 'folder',
349
+ description: 'Files within this folder',
350
+ },
351
+ drive: {
352
+ type: 'Drive',
353
+ description: 'Drive where this folder is stored',
354
+ },
355
+ sharedLinks: {
356
+ type: 'SharedLink[]',
357
+ backref: 'folder',
358
+ description: 'Sharing links for this folder',
359
+ },
360
+ owner: {
361
+ type: 'Contact',
362
+ description: 'Owner of the folder',
363
+ },
364
+ collaborators: {
365
+ type: 'Contact[]',
366
+ description: 'People with access to the folder',
367
+ },
368
+ },
369
+ actions: [
370
+ 'create',
371
+ 'rename',
372
+ 'move',
373
+ 'copy',
374
+ 'delete',
375
+ 'restore',
376
+ 'share',
377
+ 'unshare',
378
+ 'star',
379
+ 'unstar',
380
+ 'pin',
381
+ 'unpin',
382
+ 'archive',
383
+ 'unarchive',
384
+ 'compress',
385
+ 'sync',
386
+ ],
387
+ events: [
388
+ 'created',
389
+ 'renamed',
390
+ 'moved',
391
+ 'copied',
392
+ 'deleted',
393
+ 'restored',
394
+ 'shared',
395
+ 'unshared',
396
+ 'starred',
397
+ 'unstarred',
398
+ 'pinned',
399
+ 'unpinned',
400
+ 'archived',
401
+ 'unarchived',
402
+ 'compressed',
403
+ 'synced',
404
+ ],
405
+ };
406
+ // =============================================================================
407
+ // Drive
408
+ // =============================================================================
409
+ /**
410
+ * Cloud drive entity
411
+ *
412
+ * Represents a cloud storage drive (Google Drive, Dropbox, OneDrive, etc.)
413
+ */
414
+ export const Drive = {
415
+ singular: 'drive',
416
+ plural: 'drives',
417
+ description: 'A cloud storage drive or filesystem root',
418
+ properties: {
419
+ // Identity
420
+ name: {
421
+ type: 'string',
422
+ description: 'Drive name',
423
+ },
424
+ type: {
425
+ type: 'string',
426
+ description: 'Drive type: personal, shared, team, external, system',
427
+ examples: ['personal', 'shared', 'team', 'external', 'system'],
428
+ },
429
+ provider: {
430
+ type: 'string',
431
+ optional: true,
432
+ description: 'Cloud provider: google-drive, dropbox, onedrive, box, s3',
433
+ examples: ['google-drive', 'dropbox', 'onedrive', 'box', 's3', 'local'],
434
+ },
435
+ // Metadata
436
+ description: {
437
+ type: 'string',
438
+ optional: true,
439
+ description: 'Drive description or purpose',
440
+ },
441
+ icon: {
442
+ type: 'url',
443
+ optional: true,
444
+ description: 'Drive icon URL',
445
+ },
446
+ // Capacity
447
+ totalCapacity: {
448
+ type: 'number',
449
+ optional: true,
450
+ description: 'Total storage capacity in bytes',
451
+ },
452
+ usedSpace: {
453
+ type: 'number',
454
+ optional: true,
455
+ description: 'Used storage space in bytes',
456
+ },
457
+ availableSpace: {
458
+ type: 'number',
459
+ optional: true,
460
+ description: 'Available storage space in bytes',
461
+ },
462
+ // Permissions
463
+ owner: {
464
+ type: 'string',
465
+ optional: true,
466
+ description: 'Drive owner user ID',
467
+ },
468
+ permissions: {
469
+ type: 'json',
470
+ optional: true,
471
+ description: 'Drive-level permissions',
472
+ },
473
+ // Features
474
+ features: {
475
+ type: 'string',
476
+ array: true,
477
+ optional: true,
478
+ description: 'Supported features: versioning, sharing, sync, encryption, backup',
479
+ examples: ['versioning', 'sharing', 'sync', 'encryption', 'backup'],
480
+ },
481
+ versioningEnabled: {
482
+ type: 'boolean',
483
+ optional: true,
484
+ description: 'Whether version history is enabled',
485
+ },
486
+ encryptionEnabled: {
487
+ type: 'boolean',
488
+ optional: true,
489
+ description: 'Whether encryption is enabled',
490
+ },
491
+ // Status
492
+ status: {
493
+ type: 'string',
494
+ optional: true,
495
+ description: 'Drive status: active, readonly, suspended, error',
496
+ examples: ['active', 'readonly', 'suspended', 'error'],
497
+ },
498
+ connected: {
499
+ type: 'boolean',
500
+ optional: true,
501
+ description: 'Whether the drive is currently connected/accessible',
502
+ },
503
+ // URLs
504
+ url: {
505
+ type: 'url',
506
+ optional: true,
507
+ description: 'URL to access the drive',
508
+ },
509
+ webViewUrl: {
510
+ type: 'url',
511
+ optional: true,
512
+ description: 'URL to view the drive in a web browser',
513
+ },
514
+ // Dates
515
+ createdAt: {
516
+ type: 'datetime',
517
+ optional: true,
518
+ description: 'When the drive was created',
519
+ },
520
+ lastSyncedAt: {
521
+ type: 'datetime',
522
+ optional: true,
523
+ description: 'When the drive was last synced',
524
+ },
525
+ },
526
+ relationships: {
527
+ rootFolder: {
528
+ type: 'Folder',
529
+ description: 'Root folder of the drive',
530
+ },
531
+ quota: {
532
+ type: 'StorageQuota',
533
+ backref: 'drive',
534
+ description: 'Storage quota for this drive',
535
+ },
536
+ syncs: {
537
+ type: 'Sync[]',
538
+ backref: 'drive',
539
+ description: 'Sync operations for this drive',
540
+ },
541
+ backups: {
542
+ type: 'Backup[]',
543
+ backref: 'drive',
544
+ description: 'Backups of this drive',
545
+ },
546
+ owner: {
547
+ type: 'Contact',
548
+ description: 'Owner of the drive',
549
+ },
550
+ members: {
551
+ type: 'Contact[]',
552
+ description: 'Members with access to the drive',
553
+ },
554
+ },
555
+ actions: [
556
+ 'create',
557
+ 'connect',
558
+ 'disconnect',
559
+ 'sync',
560
+ 'configure',
561
+ 'delete',
562
+ 'share',
563
+ 'unshare',
564
+ 'backup',
565
+ 'restore',
566
+ 'checkQuota',
567
+ 'cleanUp',
568
+ ],
569
+ events: [
570
+ 'created',
571
+ 'connected',
572
+ 'disconnected',
573
+ 'synced',
574
+ 'configured',
575
+ 'deleted',
576
+ 'shared',
577
+ 'unshared',
578
+ 'backedUp',
579
+ 'restored',
580
+ 'quotaExceeded',
581
+ 'quotaWarning',
582
+ 'error',
583
+ ],
584
+ };
585
+ // =============================================================================
586
+ // SharedLink
587
+ // =============================================================================
588
+ /**
589
+ * Shared link entity
590
+ *
591
+ * Represents a sharing link with permissions and expiry
592
+ */
593
+ export const SharedLink = {
594
+ singular: 'shared link',
595
+ plural: 'shared links',
596
+ description: 'A sharing link for files or folders',
597
+ properties: {
598
+ // Identity
599
+ token: {
600
+ type: 'string',
601
+ description: 'Unique sharing token/ID',
602
+ },
603
+ url: {
604
+ type: 'url',
605
+ description: 'Full sharing URL',
606
+ },
607
+ // Permissions
608
+ permissions: {
609
+ type: 'string',
610
+ description: 'Link permissions: view, comment, edit',
611
+ examples: ['view', 'comment', 'edit'],
612
+ },
613
+ passwordProtected: {
614
+ type: 'boolean',
615
+ optional: true,
616
+ description: 'Whether the link requires a password',
617
+ },
618
+ password: {
619
+ type: 'string',
620
+ optional: true,
621
+ description: 'Password required to access (if password protected)',
622
+ },
623
+ // Access control
624
+ allowedDomains: {
625
+ type: 'string',
626
+ array: true,
627
+ optional: true,
628
+ description: 'Email domains allowed to access (e.g., company.com)',
629
+ },
630
+ allowedUsers: {
631
+ type: 'string',
632
+ array: true,
633
+ optional: true,
634
+ description: 'Specific user IDs allowed to access',
635
+ },
636
+ maxAccessCount: {
637
+ type: 'number',
638
+ optional: true,
639
+ description: 'Maximum number of times link can be accessed',
640
+ },
641
+ accessCount: {
642
+ type: 'number',
643
+ optional: true,
644
+ description: 'Number of times link has been accessed',
645
+ },
646
+ // Expiration
647
+ expiresAt: {
648
+ type: 'datetime',
649
+ optional: true,
650
+ description: 'When the link expires',
651
+ },
652
+ expired: {
653
+ type: 'boolean',
654
+ optional: true,
655
+ description: 'Whether the link has expired',
656
+ },
657
+ // Status
658
+ active: {
659
+ type: 'boolean',
660
+ description: 'Whether the link is active',
661
+ },
662
+ revoked: {
663
+ type: 'boolean',
664
+ optional: true,
665
+ description: 'Whether the link has been revoked',
666
+ },
667
+ // Features
668
+ allowDownload: {
669
+ type: 'boolean',
670
+ optional: true,
671
+ description: 'Whether downloading is allowed',
672
+ },
673
+ notifyOnAccess: {
674
+ type: 'boolean',
675
+ optional: true,
676
+ description: 'Whether to notify owner when accessed',
677
+ },
678
+ // Metadata
679
+ label: {
680
+ type: 'string',
681
+ optional: true,
682
+ description: 'Custom label for the link',
683
+ },
684
+ description: {
685
+ type: 'string',
686
+ optional: true,
687
+ description: 'Description of what is being shared',
688
+ },
689
+ // Dates
690
+ createdAt: {
691
+ type: 'datetime',
692
+ optional: true,
693
+ description: 'When the link was created',
694
+ },
695
+ lastAccessedAt: {
696
+ type: 'datetime',
697
+ optional: true,
698
+ description: 'When the link was last accessed',
699
+ },
700
+ },
701
+ relationships: {
702
+ file: {
703
+ type: 'File',
704
+ backref: 'sharedLinks',
705
+ required: false,
706
+ description: 'File being shared (if sharing a file)',
707
+ },
708
+ folder: {
709
+ type: 'Folder',
710
+ backref: 'sharedLinks',
711
+ required: false,
712
+ description: 'Folder being shared (if sharing a folder)',
713
+ },
714
+ creator: {
715
+ type: 'Contact',
716
+ description: 'Who created the sharing link',
717
+ },
718
+ accessedBy: {
719
+ type: 'Contact[]',
720
+ description: 'Users who have accessed the link',
721
+ },
722
+ },
723
+ actions: [
724
+ 'create',
725
+ 'revoke',
726
+ 'extend',
727
+ 'updatePermissions',
728
+ 'setPassword',
729
+ 'removePassword',
730
+ 'copy',
731
+ 'delete',
732
+ ],
733
+ events: [
734
+ 'created',
735
+ 'accessed',
736
+ 'revoked',
737
+ 'extended',
738
+ 'permissionsUpdated',
739
+ 'passwordSet',
740
+ 'passwordRemoved',
741
+ 'expired',
742
+ 'deleted',
743
+ ],
744
+ };
745
+ // =============================================================================
746
+ // FileVersion
747
+ // =============================================================================
748
+ /**
749
+ * File version entity
750
+ *
751
+ * Represents a version in a file's version history
752
+ */
753
+ export const FileVersion = {
754
+ singular: 'file version',
755
+ plural: 'file versions',
756
+ description: 'A version snapshot in a file\'s version history',
757
+ properties: {
758
+ // Identity
759
+ versionNumber: {
760
+ type: 'number',
761
+ description: 'Version number (sequential)',
762
+ },
763
+ versionId: {
764
+ type: 'string',
765
+ optional: true,
766
+ description: 'Unique version identifier',
767
+ },
768
+ label: {
769
+ type: 'string',
770
+ optional: true,
771
+ description: 'Version label or tag (e.g., v1.0, final)',
772
+ },
773
+ // Content
774
+ size: {
775
+ type: 'number',
776
+ description: 'File size at this version in bytes',
777
+ },
778
+ hash: {
779
+ type: 'string',
780
+ optional: true,
781
+ description: 'Content hash for this version',
782
+ },
783
+ // Changes
784
+ changeDescription: {
785
+ type: 'string',
786
+ optional: true,
787
+ description: 'Description of changes in this version',
788
+ },
789
+ changeType: {
790
+ type: 'string',
791
+ optional: true,
792
+ description: 'Type of change: create, modify, rename, restore',
793
+ examples: ['create', 'modify', 'rename', 'restore'],
794
+ },
795
+ // Status
796
+ current: {
797
+ type: 'boolean',
798
+ optional: true,
799
+ description: 'Whether this is the current version',
800
+ },
801
+ pinned: {
802
+ type: 'boolean',
803
+ optional: true,
804
+ description: 'Whether this version is pinned to prevent deletion',
805
+ },
806
+ // Storage
807
+ url: {
808
+ type: 'url',
809
+ optional: true,
810
+ description: 'URL to download this version',
811
+ },
812
+ storagePath: {
813
+ type: 'string',
814
+ optional: true,
815
+ description: 'Storage path for this version',
816
+ },
817
+ // Dates
818
+ createdAt: {
819
+ type: 'datetime',
820
+ description: 'When this version was created',
821
+ },
822
+ expiresAt: {
823
+ type: 'datetime',
824
+ optional: true,
825
+ description: 'When this version expires (if retention policy applies)',
826
+ },
827
+ },
828
+ relationships: {
829
+ file: {
830
+ type: 'File',
831
+ backref: 'versions',
832
+ description: 'File this is a version of',
833
+ },
834
+ author: {
835
+ type: 'Contact',
836
+ description: 'Who created this version',
837
+ },
838
+ previousVersion: {
839
+ type: 'FileVersion',
840
+ required: false,
841
+ description: 'Previous version in the history',
842
+ },
843
+ },
844
+ actions: [
845
+ 'create',
846
+ 'restore',
847
+ 'download',
848
+ 'compare',
849
+ 'delete',
850
+ 'pin',
851
+ 'unpin',
852
+ 'label',
853
+ ],
854
+ events: [
855
+ 'created',
856
+ 'restored',
857
+ 'downloaded',
858
+ 'compared',
859
+ 'deleted',
860
+ 'pinned',
861
+ 'unpinned',
862
+ 'labeled',
863
+ 'expired',
864
+ ],
865
+ };
866
+ // =============================================================================
867
+ // StorageQuota
868
+ // =============================================================================
869
+ /**
870
+ * Storage quota entity
871
+ *
872
+ * Represents storage quota and usage tracking
873
+ */
874
+ export const StorageQuota = {
875
+ singular: 'storage quota',
876
+ plural: 'storage quotas',
877
+ description: 'Storage quota and usage tracking for a drive or account',
878
+ properties: {
879
+ // Capacity
880
+ total: {
881
+ type: 'number',
882
+ description: 'Total storage quota in bytes',
883
+ },
884
+ used: {
885
+ type: 'number',
886
+ description: 'Used storage in bytes',
887
+ },
888
+ available: {
889
+ type: 'number',
890
+ description: 'Available storage in bytes',
891
+ },
892
+ percentUsed: {
893
+ type: 'number',
894
+ optional: true,
895
+ description: 'Percentage of quota used (0-100)',
896
+ },
897
+ // Breakdown
898
+ usedByFiles: {
899
+ type: 'number',
900
+ optional: true,
901
+ description: 'Storage used by files in bytes',
902
+ },
903
+ usedByTrash: {
904
+ type: 'number',
905
+ optional: true,
906
+ description: 'Storage used by trash/deleted items in bytes',
907
+ },
908
+ usedByVersions: {
909
+ type: 'number',
910
+ optional: true,
911
+ description: 'Storage used by file versions in bytes',
912
+ },
913
+ // Limits
914
+ unlimited: {
915
+ type: 'boolean',
916
+ optional: true,
917
+ description: 'Whether storage is unlimited',
918
+ },
919
+ maxFileSize: {
920
+ type: 'number',
921
+ optional: true,
922
+ description: 'Maximum individual file size in bytes',
923
+ },
924
+ // Thresholds
925
+ warningThreshold: {
926
+ type: 'number',
927
+ optional: true,
928
+ description: 'Percentage at which to warn (e.g., 80)',
929
+ },
930
+ criticalThreshold: {
931
+ type: 'number',
932
+ optional: true,
933
+ description: 'Percentage at which to alert (e.g., 95)',
934
+ },
935
+ // Status
936
+ status: {
937
+ type: 'string',
938
+ optional: true,
939
+ description: 'Quota status: normal, warning, critical, exceeded',
940
+ examples: ['normal', 'warning', 'critical', 'exceeded'],
941
+ },
942
+ // Plan
943
+ plan: {
944
+ type: 'string',
945
+ optional: true,
946
+ description: 'Storage plan: free, basic, premium, business, enterprise',
947
+ examples: ['free', 'basic', 'premium', 'business', 'enterprise'],
948
+ },
949
+ // Dates
950
+ lastUpdatedAt: {
951
+ type: 'datetime',
952
+ optional: true,
953
+ description: 'When quota was last calculated',
954
+ },
955
+ renewsAt: {
956
+ type: 'datetime',
957
+ optional: true,
958
+ description: 'When quota resets (for monthly limits)',
959
+ },
960
+ },
961
+ relationships: {
962
+ drive: {
963
+ type: 'Drive',
964
+ backref: 'quota',
965
+ description: 'Drive this quota applies to',
966
+ },
967
+ owner: {
968
+ type: 'Contact',
969
+ description: 'Account owner',
970
+ },
971
+ },
972
+ actions: [
973
+ 'check',
974
+ 'update',
975
+ 'upgrade',
976
+ 'downgrade',
977
+ 'cleanUp',
978
+ 'emptyTrash',
979
+ 'deleteOldVersions',
980
+ ],
981
+ events: [
982
+ 'checked',
983
+ 'updated',
984
+ 'upgraded',
985
+ 'downgraded',
986
+ 'warningThresholdReached',
987
+ 'criticalThresholdReached',
988
+ 'exceeded',
989
+ 'cleanedUp',
990
+ ],
991
+ };
992
+ // =============================================================================
993
+ // Backup
994
+ // =============================================================================
995
+ /**
996
+ * Backup entity
997
+ *
998
+ * Represents a backup snapshot of files or drives
999
+ */
1000
+ export const Backup = {
1001
+ singular: 'backup',
1002
+ plural: 'backups',
1003
+ description: 'A backup snapshot of files or an entire drive',
1004
+ properties: {
1005
+ // Identity
1006
+ name: {
1007
+ type: 'string',
1008
+ description: 'Backup name or label',
1009
+ },
1010
+ backupId: {
1011
+ type: 'string',
1012
+ optional: true,
1013
+ description: 'Unique backup identifier',
1014
+ },
1015
+ // Type
1016
+ type: {
1017
+ type: 'string',
1018
+ description: 'Backup type: full, incremental, differential',
1019
+ examples: ['full', 'incremental', 'differential'],
1020
+ },
1021
+ scope: {
1022
+ type: 'string',
1023
+ description: 'Backup scope: file, folder, drive',
1024
+ examples: ['file', 'folder', 'drive'],
1025
+ },
1026
+ // Status
1027
+ status: {
1028
+ type: 'string',
1029
+ description: 'Backup status: pending, in-progress, completed, failed, expired',
1030
+ examples: ['pending', 'in-progress', 'completed', 'failed', 'expired'],
1031
+ },
1032
+ // Content
1033
+ itemCount: {
1034
+ type: 'number',
1035
+ optional: true,
1036
+ description: 'Number of items backed up',
1037
+ },
1038
+ totalSize: {
1039
+ type: 'number',
1040
+ optional: true,
1041
+ description: 'Total size of backup in bytes',
1042
+ },
1043
+ compressedSize: {
1044
+ type: 'number',
1045
+ optional: true,
1046
+ description: 'Compressed backup size in bytes',
1047
+ },
1048
+ compressed: {
1049
+ type: 'boolean',
1050
+ optional: true,
1051
+ description: 'Whether backup is compressed',
1052
+ },
1053
+ encrypted: {
1054
+ type: 'boolean',
1055
+ optional: true,
1056
+ description: 'Whether backup is encrypted',
1057
+ },
1058
+ // Storage
1059
+ storagePath: {
1060
+ type: 'string',
1061
+ optional: true,
1062
+ description: 'Path where backup is stored',
1063
+ },
1064
+ storageLocation: {
1065
+ type: 'string',
1066
+ optional: true,
1067
+ description: 'Storage location: local, cloud, external',
1068
+ examples: ['local', 'cloud', 'external'],
1069
+ },
1070
+ // Schedule
1071
+ scheduled: {
1072
+ type: 'boolean',
1073
+ optional: true,
1074
+ description: 'Whether this is a scheduled backup',
1075
+ },
1076
+ scheduleType: {
1077
+ type: 'string',
1078
+ optional: true,
1079
+ description: 'Schedule type: manual, hourly, daily, weekly, monthly',
1080
+ examples: ['manual', 'hourly', 'daily', 'weekly', 'monthly'],
1081
+ },
1082
+ // Retention
1083
+ retentionDays: {
1084
+ type: 'number',
1085
+ optional: true,
1086
+ description: 'Number of days to retain this backup',
1087
+ },
1088
+ expiresAt: {
1089
+ type: 'datetime',
1090
+ optional: true,
1091
+ description: 'When this backup expires',
1092
+ },
1093
+ keepForever: {
1094
+ type: 'boolean',
1095
+ optional: true,
1096
+ description: 'Whether to keep this backup indefinitely',
1097
+ },
1098
+ // Verification
1099
+ verified: {
1100
+ type: 'boolean',
1101
+ optional: true,
1102
+ description: 'Whether backup integrity has been verified',
1103
+ },
1104
+ verifiedAt: {
1105
+ type: 'datetime',
1106
+ optional: true,
1107
+ description: 'When backup was last verified',
1108
+ },
1109
+ checksum: {
1110
+ type: 'string',
1111
+ optional: true,
1112
+ description: 'Backup checksum for integrity verification',
1113
+ },
1114
+ // Dates
1115
+ createdAt: {
1116
+ type: 'datetime',
1117
+ description: 'When backup was created',
1118
+ },
1119
+ completedAt: {
1120
+ type: 'datetime',
1121
+ optional: true,
1122
+ description: 'When backup completed',
1123
+ },
1124
+ },
1125
+ relationships: {
1126
+ drive: {
1127
+ type: 'Drive',
1128
+ backref: 'backups',
1129
+ description: 'Drive being backed up',
1130
+ },
1131
+ files: {
1132
+ type: 'File[]',
1133
+ description: 'Files included in this backup',
1134
+ },
1135
+ folders: {
1136
+ type: 'Folder[]',
1137
+ description: 'Folders included in this backup',
1138
+ },
1139
+ creator: {
1140
+ type: 'Contact',
1141
+ description: 'Who created the backup',
1142
+ },
1143
+ parentBackup: {
1144
+ type: 'Backup',
1145
+ required: false,
1146
+ description: 'Parent backup for incremental backups',
1147
+ },
1148
+ },
1149
+ actions: [
1150
+ 'create',
1151
+ 'restore',
1152
+ 'verify',
1153
+ 'download',
1154
+ 'delete',
1155
+ 'schedule',
1156
+ 'cancel',
1157
+ 'compress',
1158
+ 'encrypt',
1159
+ 'export',
1160
+ ],
1161
+ events: [
1162
+ 'created',
1163
+ 'started',
1164
+ 'progressed',
1165
+ 'completed',
1166
+ 'failed',
1167
+ 'restored',
1168
+ 'verified',
1169
+ 'downloaded',
1170
+ 'deleted',
1171
+ 'scheduled',
1172
+ 'expired',
1173
+ ],
1174
+ };
1175
+ // =============================================================================
1176
+ // Export all entities as a schema
1177
+ // =============================================================================
1178
+ /**
1179
+ * All storage entity types
1180
+ */
1181
+ export const StorageEntities = {
1182
+ File,
1183
+ Folder,
1184
+ Drive,
1185
+ SharedLink,
1186
+ FileVersion,
1187
+ StorageQuota,
1188
+ Backup,
1189
+ };
1190
+ /**
1191
+ * Storage entity categories for organization
1192
+ */
1193
+ export const StorageCategories = {
1194
+ files: ['File', 'Folder', 'FileVersion'],
1195
+ drives: ['Drive', 'StorageQuota'],
1196
+ sharing: ['SharedLink'],
1197
+ operations: ['Backup'],
1198
+ };
1199
+ //# sourceMappingURL=storage.js.map