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,1635 @@
1
+ /**
2
+ * Media Entity Types (Nouns)
3
+ *
4
+ * Semantic type definitions for media-related digital tools that can be used by
5
+ * both remote human workers AND AI agents. Each entity defines:
6
+ * - Properties: The data fields
7
+ * - Actions: Operations that can be performed (Verbs)
8
+ * - Events: State changes that occur
9
+ *
10
+ * @packageDocumentation
11
+ */
12
+ // =============================================================================
13
+ // Image
14
+ // =============================================================================
15
+ /**
16
+ * Image file entity
17
+ *
18
+ * Represents an image file with dimensions, format, and metadata
19
+ */
20
+ export const Image = {
21
+ singular: 'image',
22
+ plural: 'images',
23
+ description: 'An image file with dimensions, format, and metadata',
24
+ properties: {
25
+ // Basic info
26
+ filename: {
27
+ type: 'string',
28
+ description: 'Original filename',
29
+ },
30
+ url: {
31
+ type: 'url',
32
+ description: 'URL to access the image',
33
+ },
34
+ altText: {
35
+ type: 'string',
36
+ optional: true,
37
+ description: 'Alternative text for accessibility',
38
+ },
39
+ caption: {
40
+ type: 'string',
41
+ optional: true,
42
+ description: 'Image caption or description',
43
+ },
44
+ title: {
45
+ type: 'string',
46
+ optional: true,
47
+ description: 'Image title',
48
+ },
49
+ // Format & dimensions
50
+ format: {
51
+ type: 'string',
52
+ description: 'Image format: jpg, jpeg, png, gif, webp, svg, heic, bmp, tiff',
53
+ examples: ['jpg', 'jpeg', 'png', 'gif', 'webp', 'svg', 'heic', 'bmp', 'tiff'],
54
+ },
55
+ mimeType: {
56
+ type: 'string',
57
+ description: 'MIME type of the image',
58
+ },
59
+ width: {
60
+ type: 'number',
61
+ description: 'Width in pixels',
62
+ },
63
+ height: {
64
+ type: 'number',
65
+ description: 'Height in pixels',
66
+ },
67
+ aspectRatio: {
68
+ type: 'string',
69
+ optional: true,
70
+ description: 'Aspect ratio (e.g., 16:9, 4:3)',
71
+ },
72
+ orientation: {
73
+ type: 'string',
74
+ optional: true,
75
+ description: 'Image orientation: landscape, portrait, square',
76
+ examples: ['landscape', 'portrait', 'square'],
77
+ },
78
+ // File properties
79
+ size: {
80
+ type: 'number',
81
+ description: 'File size in bytes',
82
+ },
83
+ hash: {
84
+ type: 'string',
85
+ optional: true,
86
+ description: 'Content hash for deduplication',
87
+ },
88
+ // Technical metadata
89
+ colorSpace: {
90
+ type: 'string',
91
+ optional: true,
92
+ description: 'Color space: rgb, cmyk, grayscale',
93
+ examples: ['rgb', 'cmyk', 'grayscale'],
94
+ },
95
+ bitDepth: {
96
+ type: 'number',
97
+ optional: true,
98
+ description: 'Color bit depth',
99
+ },
100
+ dpi: {
101
+ type: 'number',
102
+ optional: true,
103
+ description: 'Dots per inch resolution',
104
+ },
105
+ hasAlpha: {
106
+ type: 'boolean',
107
+ optional: true,
108
+ description: 'Whether the image has an alpha channel',
109
+ },
110
+ // EXIF & camera metadata
111
+ exif: {
112
+ type: 'json',
113
+ optional: true,
114
+ description: 'EXIF metadata from the camera',
115
+ },
116
+ camera: {
117
+ type: 'string',
118
+ optional: true,
119
+ description: 'Camera make and model',
120
+ },
121
+ lens: {
122
+ type: 'string',
123
+ optional: true,
124
+ description: 'Lens information',
125
+ },
126
+ focalLength: {
127
+ type: 'number',
128
+ optional: true,
129
+ description: 'Focal length in millimeters',
130
+ },
131
+ aperture: {
132
+ type: 'number',
133
+ optional: true,
134
+ description: 'Aperture f-stop value',
135
+ },
136
+ shutterSpeed: {
137
+ type: 'string',
138
+ optional: true,
139
+ description: 'Shutter speed (e.g., 1/1000)',
140
+ },
141
+ iso: {
142
+ type: 'number',
143
+ optional: true,
144
+ description: 'ISO sensitivity',
145
+ },
146
+ flash: {
147
+ type: 'boolean',
148
+ optional: true,
149
+ description: 'Whether flash was used',
150
+ },
151
+ // Location & time
152
+ takenAt: {
153
+ type: 'datetime',
154
+ optional: true,
155
+ description: 'When the photo was taken',
156
+ },
157
+ location: {
158
+ type: 'json',
159
+ optional: true,
160
+ description: 'GPS coordinates (latitude, longitude)',
161
+ },
162
+ // Organization
163
+ tags: {
164
+ type: 'string',
165
+ array: true,
166
+ optional: true,
167
+ description: 'Tags for categorization',
168
+ },
169
+ keywords: {
170
+ type: 'string',
171
+ array: true,
172
+ optional: true,
173
+ description: 'Search keywords',
174
+ },
175
+ // Processing
176
+ thumbnail: {
177
+ type: 'url',
178
+ optional: true,
179
+ description: 'URL to thumbnail version',
180
+ },
181
+ versions: {
182
+ type: 'json',
183
+ optional: true,
184
+ description: 'Different sizes/versions of the image',
185
+ },
186
+ },
187
+ relationships: {
188
+ album: {
189
+ type: 'Album',
190
+ required: false,
191
+ description: 'Album this image belongs to',
192
+ },
193
+ library: {
194
+ type: 'MediaLibrary',
195
+ required: false,
196
+ description: 'Media library containing this image',
197
+ },
198
+ photographer: {
199
+ type: 'Contact',
200
+ required: false,
201
+ description: 'Photographer who took the photo',
202
+ },
203
+ },
204
+ actions: [
205
+ 'upload',
206
+ 'download',
207
+ 'view',
208
+ 'edit',
209
+ 'crop',
210
+ 'resize',
211
+ 'rotate',
212
+ 'flip',
213
+ 'filter',
214
+ 'enhance',
215
+ 'compress',
216
+ 'convert',
217
+ 'tag',
218
+ 'share',
219
+ 'delete',
220
+ 'restore',
221
+ 'duplicate',
222
+ 'addToAlbum',
223
+ 'removeFromAlbum',
224
+ 'setAltText',
225
+ ],
226
+ events: [
227
+ 'uploaded',
228
+ 'downloaded',
229
+ 'viewed',
230
+ 'edited',
231
+ 'cropped',
232
+ 'resized',
233
+ 'rotated',
234
+ 'flipped',
235
+ 'filtered',
236
+ 'enhanced',
237
+ 'compressed',
238
+ 'converted',
239
+ 'tagged',
240
+ 'shared',
241
+ 'deleted',
242
+ 'restored',
243
+ 'duplicated',
244
+ 'addedToAlbum',
245
+ 'removedFromAlbum',
246
+ ],
247
+ };
248
+ // =============================================================================
249
+ // Video
250
+ // =============================================================================
251
+ /**
252
+ * Video file entity
253
+ *
254
+ * Represents a video file with duration, resolution, and metadata
255
+ */
256
+ export const Video = {
257
+ singular: 'video',
258
+ plural: 'videos',
259
+ description: 'A video file with duration, resolution, format, and metadata',
260
+ properties: {
261
+ // Basic info
262
+ filename: {
263
+ type: 'string',
264
+ description: 'Original filename',
265
+ },
266
+ url: {
267
+ type: 'url',
268
+ description: 'URL to access the video',
269
+ },
270
+ title: {
271
+ type: 'string',
272
+ optional: true,
273
+ description: 'Video title',
274
+ },
275
+ description: {
276
+ type: 'string',
277
+ optional: true,
278
+ description: 'Video description',
279
+ },
280
+ // Format & technical
281
+ format: {
282
+ type: 'string',
283
+ description: 'Video format: mp4, mov, avi, webm, mkv, flv, wmv',
284
+ examples: ['mp4', 'mov', 'avi', 'webm', 'mkv', 'flv', 'wmv'],
285
+ },
286
+ mimeType: {
287
+ type: 'string',
288
+ description: 'MIME type of the video',
289
+ },
290
+ codec: {
291
+ type: 'string',
292
+ optional: true,
293
+ description: 'Video codec: h264, h265, vp9, av1',
294
+ examples: ['h264', 'h265', 'vp9', 'av1'],
295
+ },
296
+ audioCodec: {
297
+ type: 'string',
298
+ optional: true,
299
+ description: 'Audio codec: aac, mp3, opus, vorbis',
300
+ examples: ['aac', 'mp3', 'opus', 'vorbis'],
301
+ },
302
+ container: {
303
+ type: 'string',
304
+ optional: true,
305
+ description: 'Container format',
306
+ },
307
+ // Duration & timing
308
+ duration: {
309
+ type: 'number',
310
+ description: 'Duration in seconds',
311
+ },
312
+ frameRate: {
313
+ type: 'number',
314
+ optional: true,
315
+ description: 'Frames per second',
316
+ },
317
+ totalFrames: {
318
+ type: 'number',
319
+ optional: true,
320
+ description: 'Total number of frames',
321
+ },
322
+ // Dimensions
323
+ width: {
324
+ type: 'number',
325
+ description: 'Width in pixels',
326
+ },
327
+ height: {
328
+ type: 'number',
329
+ description: 'Height in pixels',
330
+ },
331
+ aspectRatio: {
332
+ type: 'string',
333
+ optional: true,
334
+ description: 'Aspect ratio (e.g., 16:9, 4:3, 21:9)',
335
+ examples: ['16:9', '4:3', '21:9', '1:1'],
336
+ },
337
+ resolution: {
338
+ type: 'string',
339
+ optional: true,
340
+ description: 'Video resolution: 480p, 720p, 1080p, 2k, 4k, 8k',
341
+ examples: ['480p', '720p', '1080p', '1440p', '2k', '4k', '8k'],
342
+ },
343
+ orientation: {
344
+ type: 'string',
345
+ optional: true,
346
+ description: 'Video orientation: landscape, portrait',
347
+ examples: ['landscape', 'portrait'],
348
+ },
349
+ // File properties
350
+ size: {
351
+ type: 'number',
352
+ description: 'File size in bytes',
353
+ },
354
+ bitrate: {
355
+ type: 'number',
356
+ optional: true,
357
+ description: 'Bitrate in bits per second',
358
+ },
359
+ audioBitrate: {
360
+ type: 'number',
361
+ optional: true,
362
+ description: 'Audio bitrate in bits per second',
363
+ },
364
+ // Thumbnail
365
+ thumbnail: {
366
+ type: 'url',
367
+ optional: true,
368
+ description: 'URL to thumbnail image',
369
+ },
370
+ poster: {
371
+ type: 'url',
372
+ optional: true,
373
+ description: 'URL to poster image',
374
+ },
375
+ thumbnailTime: {
376
+ type: 'number',
377
+ optional: true,
378
+ description: 'Time in seconds for thumbnail generation',
379
+ },
380
+ // Audio properties
381
+ hasAudio: {
382
+ type: 'boolean',
383
+ optional: true,
384
+ description: 'Whether the video has an audio track',
385
+ },
386
+ audioChannels: {
387
+ type: 'number',
388
+ optional: true,
389
+ description: 'Number of audio channels',
390
+ },
391
+ sampleRate: {
392
+ type: 'number',
393
+ optional: true,
394
+ description: 'Audio sample rate in Hz',
395
+ },
396
+ // Recording metadata
397
+ recordedAt: {
398
+ type: 'datetime',
399
+ optional: true,
400
+ description: 'When the video was recorded',
401
+ },
402
+ location: {
403
+ type: 'json',
404
+ optional: true,
405
+ description: 'GPS coordinates where recorded',
406
+ },
407
+ camera: {
408
+ type: 'string',
409
+ optional: true,
410
+ description: 'Camera or device used',
411
+ },
412
+ // Organization
413
+ tags: {
414
+ type: 'string',
415
+ array: true,
416
+ optional: true,
417
+ description: 'Tags for categorization',
418
+ },
419
+ keywords: {
420
+ type: 'string',
421
+ array: true,
422
+ optional: true,
423
+ description: 'Search keywords',
424
+ },
425
+ chapters: {
426
+ type: 'json',
427
+ array: true,
428
+ optional: true,
429
+ description: 'Video chapters with timestamps',
430
+ },
431
+ // Processing status
432
+ status: {
433
+ type: 'string',
434
+ optional: true,
435
+ description: 'Processing status: uploading, processing, ready, error',
436
+ examples: ['uploading', 'processing', 'ready', 'error'],
437
+ },
438
+ versions: {
439
+ type: 'json',
440
+ optional: true,
441
+ description: 'Different quality versions of the video',
442
+ },
443
+ },
444
+ relationships: {
445
+ album: {
446
+ type: 'Album',
447
+ required: false,
448
+ description: 'Album this video belongs to',
449
+ },
450
+ library: {
451
+ type: 'MediaLibrary',
452
+ required: false,
453
+ description: 'Media library containing this video',
454
+ },
455
+ transcript: {
456
+ type: 'Transcript',
457
+ required: false,
458
+ description: 'Transcription of the audio',
459
+ },
460
+ captions: {
461
+ type: 'Caption[]',
462
+ description: 'Subtitle/caption tracks',
463
+ },
464
+ creator: {
465
+ type: 'Contact',
466
+ required: false,
467
+ description: 'Person who created the video',
468
+ },
469
+ },
470
+ actions: [
471
+ 'upload',
472
+ 'download',
473
+ 'play',
474
+ 'pause',
475
+ 'seek',
476
+ 'edit',
477
+ 'trim',
478
+ 'crop',
479
+ 'rotate',
480
+ 'merge',
481
+ 'split',
482
+ 'transcode',
483
+ 'compress',
484
+ 'extract',
485
+ 'mute',
486
+ 'addAudio',
487
+ 'addSubtitles',
488
+ 'tag',
489
+ 'share',
490
+ 'delete',
491
+ 'restore',
492
+ 'duplicate',
493
+ 'addToAlbum',
494
+ 'removeFromAlbum',
495
+ 'generateThumbnail',
496
+ 'transcribe',
497
+ ],
498
+ events: [
499
+ 'uploaded',
500
+ 'downloaded',
501
+ 'played',
502
+ 'paused',
503
+ 'seeked',
504
+ 'edited',
505
+ 'trimmed',
506
+ 'cropped',
507
+ 'rotated',
508
+ 'merged',
509
+ 'split',
510
+ 'transcoded',
511
+ 'compressed',
512
+ 'extracted',
513
+ 'muted',
514
+ 'audioAdded',
515
+ 'subtitlesAdded',
516
+ 'tagged',
517
+ 'shared',
518
+ 'deleted',
519
+ 'restored',
520
+ 'duplicated',
521
+ 'addedToAlbum',
522
+ 'removedFromAlbum',
523
+ 'thumbnailGenerated',
524
+ 'transcribed',
525
+ 'processingStarted',
526
+ 'processingCompleted',
527
+ 'processingFailed',
528
+ ],
529
+ };
530
+ // =============================================================================
531
+ // Audio
532
+ // =============================================================================
533
+ /**
534
+ * Audio file entity
535
+ *
536
+ * Represents an audio file with duration, format, and metadata
537
+ */
538
+ export const Audio = {
539
+ singular: 'audio',
540
+ plural: 'audio files',
541
+ description: 'An audio file with duration, format, and metadata',
542
+ properties: {
543
+ // Basic info
544
+ filename: {
545
+ type: 'string',
546
+ description: 'Original filename',
547
+ },
548
+ url: {
549
+ type: 'url',
550
+ description: 'URL to access the audio',
551
+ },
552
+ title: {
553
+ type: 'string',
554
+ optional: true,
555
+ description: 'Audio title or track name',
556
+ },
557
+ description: {
558
+ type: 'string',
559
+ optional: true,
560
+ description: 'Audio description',
561
+ },
562
+ // Format & technical
563
+ format: {
564
+ type: 'string',
565
+ description: 'Audio format: mp3, wav, aac, flac, ogg, m4a, wma, opus',
566
+ examples: ['mp3', 'wav', 'aac', 'flac', 'ogg', 'm4a', 'wma', 'opus'],
567
+ },
568
+ mimeType: {
569
+ type: 'string',
570
+ description: 'MIME type of the audio',
571
+ },
572
+ codec: {
573
+ type: 'string',
574
+ optional: true,
575
+ description: 'Audio codec',
576
+ },
577
+ // Duration
578
+ duration: {
579
+ type: 'number',
580
+ description: 'Duration in seconds',
581
+ },
582
+ // Audio properties
583
+ bitrate: {
584
+ type: 'number',
585
+ optional: true,
586
+ description: 'Bitrate in bits per second',
587
+ },
588
+ sampleRate: {
589
+ type: 'number',
590
+ optional: true,
591
+ description: 'Sample rate in Hz (e.g., 44100, 48000)',
592
+ },
593
+ channels: {
594
+ type: 'number',
595
+ optional: true,
596
+ description: 'Number of audio channels: 1 (mono), 2 (stereo)',
597
+ },
598
+ bitDepth: {
599
+ type: 'number',
600
+ optional: true,
601
+ description: 'Bit depth (e.g., 16, 24)',
602
+ },
603
+ // File properties
604
+ size: {
605
+ type: 'number',
606
+ description: 'File size in bytes',
607
+ },
608
+ // Music metadata
609
+ artist: {
610
+ type: 'string',
611
+ optional: true,
612
+ description: 'Artist or performer',
613
+ },
614
+ album: {
615
+ type: 'string',
616
+ optional: true,
617
+ description: 'Album name',
618
+ },
619
+ albumArtist: {
620
+ type: 'string',
621
+ optional: true,
622
+ description: 'Album artist',
623
+ },
624
+ genre: {
625
+ type: 'string',
626
+ optional: true,
627
+ description: 'Music genre',
628
+ },
629
+ year: {
630
+ type: 'number',
631
+ optional: true,
632
+ description: 'Release year',
633
+ },
634
+ trackNumber: {
635
+ type: 'number',
636
+ optional: true,
637
+ description: 'Track number in album',
638
+ },
639
+ trackCount: {
640
+ type: 'number',
641
+ optional: true,
642
+ description: 'Total tracks in album',
643
+ },
644
+ discNumber: {
645
+ type: 'number',
646
+ optional: true,
647
+ description: 'Disc number for multi-disc albums',
648
+ },
649
+ composer: {
650
+ type: 'string',
651
+ optional: true,
652
+ description: 'Composer name',
653
+ },
654
+ publisher: {
655
+ type: 'string',
656
+ optional: true,
657
+ description: 'Publisher or record label',
658
+ },
659
+ copyright: {
660
+ type: 'string',
661
+ optional: true,
662
+ description: 'Copyright information',
663
+ },
664
+ isrc: {
665
+ type: 'string',
666
+ optional: true,
667
+ description: 'International Standard Recording Code',
668
+ },
669
+ // Cover art
670
+ coverArt: {
671
+ type: 'url',
672
+ optional: true,
673
+ description: 'URL to album cover art',
674
+ },
675
+ // Recording metadata
676
+ recordedAt: {
677
+ type: 'datetime',
678
+ optional: true,
679
+ description: 'When the audio was recorded',
680
+ },
681
+ // Organization
682
+ tags: {
683
+ type: 'string',
684
+ array: true,
685
+ optional: true,
686
+ description: 'Tags for categorization',
687
+ },
688
+ keywords: {
689
+ type: 'string',
690
+ array: true,
691
+ optional: true,
692
+ description: 'Search keywords',
693
+ },
694
+ // Lyrics & transcription
695
+ lyrics: {
696
+ type: 'string',
697
+ optional: true,
698
+ description: 'Song lyrics',
699
+ },
700
+ hasLyrics: {
701
+ type: 'boolean',
702
+ optional: true,
703
+ description: 'Whether lyrics are available',
704
+ },
705
+ },
706
+ relationships: {
707
+ library: {
708
+ type: 'MediaLibrary',
709
+ required: false,
710
+ description: 'Media library containing this audio',
711
+ },
712
+ transcript: {
713
+ type: 'Transcript',
714
+ required: false,
715
+ description: 'Transcription of the audio',
716
+ },
717
+ artist: {
718
+ type: 'Contact',
719
+ required: false,
720
+ description: 'The artist or performer',
721
+ },
722
+ },
723
+ actions: [
724
+ 'upload',
725
+ 'download',
726
+ 'play',
727
+ 'pause',
728
+ 'seek',
729
+ 'stop',
730
+ 'edit',
731
+ 'trim',
732
+ 'normalize',
733
+ 'fade',
734
+ 'merge',
735
+ 'split',
736
+ 'convert',
737
+ 'compress',
738
+ 'tag',
739
+ 'share',
740
+ 'delete',
741
+ 'restore',
742
+ 'duplicate',
743
+ 'transcribe',
744
+ 'addLyrics',
745
+ ],
746
+ events: [
747
+ 'uploaded',
748
+ 'downloaded',
749
+ 'played',
750
+ 'paused',
751
+ 'seeked',
752
+ 'stopped',
753
+ 'edited',
754
+ 'trimmed',
755
+ 'normalized',
756
+ 'faded',
757
+ 'merged',
758
+ 'split',
759
+ 'converted',
760
+ 'compressed',
761
+ 'tagged',
762
+ 'shared',
763
+ 'deleted',
764
+ 'restored',
765
+ 'duplicated',
766
+ 'transcribed',
767
+ 'lyricsAdded',
768
+ ],
769
+ };
770
+ // =============================================================================
771
+ // Screenshot
772
+ // =============================================================================
773
+ /**
774
+ * Screenshot capture entity
775
+ *
776
+ * Represents a screenshot with annotations and context
777
+ */
778
+ export const Screenshot = {
779
+ singular: 'screenshot',
780
+ plural: 'screenshots',
781
+ description: 'A screenshot capture with annotations and context',
782
+ properties: {
783
+ // Basic info
784
+ filename: {
785
+ type: 'string',
786
+ description: 'Original filename',
787
+ },
788
+ url: {
789
+ type: 'url',
790
+ description: 'URL to access the screenshot',
791
+ },
792
+ title: {
793
+ type: 'string',
794
+ optional: true,
795
+ description: 'Screenshot title or caption',
796
+ },
797
+ description: {
798
+ type: 'string',
799
+ optional: true,
800
+ description: 'Description of what the screenshot shows',
801
+ },
802
+ // Format & dimensions
803
+ format: {
804
+ type: 'string',
805
+ description: 'Image format: png, jpg, jpeg',
806
+ examples: ['png', 'jpg', 'jpeg'],
807
+ },
808
+ width: {
809
+ type: 'number',
810
+ description: 'Width in pixels',
811
+ },
812
+ height: {
813
+ type: 'number',
814
+ description: 'Height in pixels',
815
+ },
816
+ // File properties
817
+ size: {
818
+ type: 'number',
819
+ description: 'File size in bytes',
820
+ },
821
+ // Capture context
822
+ capturedAt: {
823
+ type: 'datetime',
824
+ description: 'When the screenshot was taken',
825
+ },
826
+ source: {
827
+ type: 'string',
828
+ optional: true,
829
+ description: 'Source application or window',
830
+ },
831
+ sourceUrl: {
832
+ type: 'url',
833
+ optional: true,
834
+ description: 'URL if screenshot is of a webpage',
835
+ },
836
+ device: {
837
+ type: 'string',
838
+ optional: true,
839
+ description: 'Device where screenshot was taken',
840
+ },
841
+ displayName: {
842
+ type: 'string',
843
+ optional: true,
844
+ description: 'Display or monitor name',
845
+ },
846
+ // Capture type
847
+ captureType: {
848
+ type: 'string',
849
+ optional: true,
850
+ description: 'Capture type: fullscreen, window, region, scrolling',
851
+ examples: ['fullscreen', 'window', 'region', 'scrolling'],
852
+ },
853
+ // Annotations
854
+ hasAnnotations: {
855
+ type: 'boolean',
856
+ optional: true,
857
+ description: 'Whether the screenshot has annotations',
858
+ },
859
+ annotations: {
860
+ type: 'json',
861
+ array: true,
862
+ optional: true,
863
+ description: 'Annotations (arrows, text, shapes, highlights)',
864
+ },
865
+ // Organization
866
+ tags: {
867
+ type: 'string',
868
+ array: true,
869
+ optional: true,
870
+ description: 'Tags for categorization',
871
+ },
872
+ keywords: {
873
+ type: 'string',
874
+ array: true,
875
+ optional: true,
876
+ description: 'Search keywords',
877
+ },
878
+ // Thumbnail
879
+ thumbnail: {
880
+ type: 'url',
881
+ optional: true,
882
+ description: 'URL to thumbnail version',
883
+ },
884
+ // OCR & text extraction
885
+ extractedText: {
886
+ type: 'string',
887
+ optional: true,
888
+ description: 'Text extracted from screenshot via OCR',
889
+ },
890
+ hasText: {
891
+ type: 'boolean',
892
+ optional: true,
893
+ description: 'Whether text was detected in the screenshot',
894
+ },
895
+ },
896
+ relationships: {
897
+ library: {
898
+ type: 'MediaLibrary',
899
+ required: false,
900
+ description: 'Media library containing this screenshot',
901
+ },
902
+ capturedBy: {
903
+ type: 'Contact',
904
+ required: false,
905
+ description: 'Person who took the screenshot',
906
+ },
907
+ },
908
+ actions: [
909
+ 'capture',
910
+ 'upload',
911
+ 'download',
912
+ 'view',
913
+ 'edit',
914
+ 'annotate',
915
+ 'crop',
916
+ 'resize',
917
+ 'blur',
918
+ 'highlight',
919
+ 'addText',
920
+ 'addArrow',
921
+ 'addShape',
922
+ 'redact',
923
+ 'ocr',
924
+ 'tag',
925
+ 'share',
926
+ 'delete',
927
+ 'restore',
928
+ 'duplicate',
929
+ ],
930
+ events: [
931
+ 'captured',
932
+ 'uploaded',
933
+ 'downloaded',
934
+ 'viewed',
935
+ 'edited',
936
+ 'annotated',
937
+ 'cropped',
938
+ 'resized',
939
+ 'blurred',
940
+ 'highlighted',
941
+ 'textAdded',
942
+ 'arrowAdded',
943
+ 'shapeAdded',
944
+ 'redacted',
945
+ 'ocrProcessed',
946
+ 'tagged',
947
+ 'shared',
948
+ 'deleted',
949
+ 'restored',
950
+ 'duplicated',
951
+ ],
952
+ };
953
+ // =============================================================================
954
+ // Album
955
+ // =============================================================================
956
+ /**
957
+ * Album/collection entity
958
+ *
959
+ * Represents a collection of media items (images, videos)
960
+ */
961
+ export const Album = {
962
+ singular: 'album',
963
+ plural: 'albums',
964
+ description: 'A collection of media items (images, videos)',
965
+ properties: {
966
+ // Basic info
967
+ name: {
968
+ type: 'string',
969
+ description: 'Album name',
970
+ },
971
+ description: {
972
+ type: 'string',
973
+ optional: true,
974
+ description: 'Album description',
975
+ },
976
+ slug: {
977
+ type: 'string',
978
+ optional: true,
979
+ description: 'URL-friendly slug',
980
+ },
981
+ // Cover
982
+ coverImage: {
983
+ type: 'url',
984
+ optional: true,
985
+ description: 'URL to cover/thumbnail image',
986
+ },
987
+ // Counts
988
+ itemCount: {
989
+ type: 'number',
990
+ optional: true,
991
+ description: 'Number of items in the album',
992
+ },
993
+ imageCount: {
994
+ type: 'number',
995
+ optional: true,
996
+ description: 'Number of images',
997
+ },
998
+ videoCount: {
999
+ type: 'number',
1000
+ optional: true,
1001
+ description: 'Number of videos',
1002
+ },
1003
+ // Dates
1004
+ startDate: {
1005
+ type: 'datetime',
1006
+ optional: true,
1007
+ description: 'Start date for event/date range albums',
1008
+ },
1009
+ endDate: {
1010
+ type: 'datetime',
1011
+ optional: true,
1012
+ description: 'End date for event/date range albums',
1013
+ },
1014
+ // Organization
1015
+ albumType: {
1016
+ type: 'string',
1017
+ optional: true,
1018
+ description: 'Album type: manual, smart, event, date, location',
1019
+ examples: ['manual', 'smart', 'event', 'date', 'location'],
1020
+ },
1021
+ sortOrder: {
1022
+ type: 'string',
1023
+ optional: true,
1024
+ description: 'How items are sorted: date, name, manual',
1025
+ examples: ['date-asc', 'date-desc', 'name-asc', 'name-desc', 'manual'],
1026
+ },
1027
+ tags: {
1028
+ type: 'string',
1029
+ array: true,
1030
+ optional: true,
1031
+ description: 'Album tags',
1032
+ },
1033
+ // Smart album criteria
1034
+ smartCriteria: {
1035
+ type: 'json',
1036
+ optional: true,
1037
+ description: 'Criteria for smart/dynamic albums',
1038
+ },
1039
+ // Privacy & sharing
1040
+ visibility: {
1041
+ type: 'string',
1042
+ optional: true,
1043
+ description: 'Album visibility: private, shared, public',
1044
+ examples: ['private', 'shared', 'public'],
1045
+ },
1046
+ shareUrl: {
1047
+ type: 'url',
1048
+ optional: true,
1049
+ description: 'Public sharing URL',
1050
+ },
1051
+ password: {
1052
+ type: 'string',
1053
+ optional: true,
1054
+ description: 'Password for protected albums',
1055
+ },
1056
+ // Location
1057
+ location: {
1058
+ type: 'json',
1059
+ optional: true,
1060
+ description: 'Location associated with the album',
1061
+ },
1062
+ },
1063
+ relationships: {
1064
+ images: {
1065
+ type: 'Image[]',
1066
+ description: 'Images in this album',
1067
+ },
1068
+ videos: {
1069
+ type: 'Video[]',
1070
+ description: 'Videos in this album',
1071
+ },
1072
+ library: {
1073
+ type: 'MediaLibrary',
1074
+ required: false,
1075
+ description: 'Media library containing this album',
1076
+ },
1077
+ owner: {
1078
+ type: 'Contact',
1079
+ description: 'Album owner/creator',
1080
+ },
1081
+ collaborators: {
1082
+ type: 'Contact[]',
1083
+ description: 'People with access to the album',
1084
+ },
1085
+ },
1086
+ actions: [
1087
+ 'create',
1088
+ 'update',
1089
+ 'delete',
1090
+ 'rename',
1091
+ 'addMedia',
1092
+ 'removeMedia',
1093
+ 'reorder',
1094
+ 'sort',
1095
+ 'setCover',
1096
+ 'share',
1097
+ 'unshare',
1098
+ 'export',
1099
+ 'duplicate',
1100
+ 'merge',
1101
+ 'split',
1102
+ ],
1103
+ events: [
1104
+ 'created',
1105
+ 'updated',
1106
+ 'deleted',
1107
+ 'renamed',
1108
+ 'mediaAdded',
1109
+ 'mediaRemoved',
1110
+ 'reordered',
1111
+ 'sorted',
1112
+ 'coverChanged',
1113
+ 'shared',
1114
+ 'unshared',
1115
+ 'exported',
1116
+ 'duplicated',
1117
+ 'merged',
1118
+ 'split',
1119
+ ],
1120
+ };
1121
+ // =============================================================================
1122
+ // MediaLibrary
1123
+ // =============================================================================
1124
+ /**
1125
+ * Media library entity
1126
+ *
1127
+ * Represents a media asset management system/library
1128
+ */
1129
+ export const MediaLibrary = {
1130
+ singular: 'media library',
1131
+ plural: 'media libraries',
1132
+ description: 'A media asset management system containing organized media',
1133
+ properties: {
1134
+ // Basic info
1135
+ name: {
1136
+ type: 'string',
1137
+ description: 'Library name',
1138
+ },
1139
+ description: {
1140
+ type: 'string',
1141
+ optional: true,
1142
+ description: 'Library description',
1143
+ },
1144
+ // Storage
1145
+ storageLocation: {
1146
+ type: 'string',
1147
+ optional: true,
1148
+ description: 'Storage location or path',
1149
+ },
1150
+ storageProvider: {
1151
+ type: 'string',
1152
+ optional: true,
1153
+ description: 'Storage provider: local, s3, cloudinary, cloudflare',
1154
+ examples: ['local', 's3', 'cloudinary', 'cloudflare', 'gcs', 'azure'],
1155
+ },
1156
+ // Statistics
1157
+ totalItems: {
1158
+ type: 'number',
1159
+ optional: true,
1160
+ description: 'Total number of media items',
1161
+ },
1162
+ totalImages: {
1163
+ type: 'number',
1164
+ optional: true,
1165
+ description: 'Total number of images',
1166
+ },
1167
+ totalVideos: {
1168
+ type: 'number',
1169
+ optional: true,
1170
+ description: 'Total number of videos',
1171
+ },
1172
+ totalAudio: {
1173
+ type: 'number',
1174
+ optional: true,
1175
+ description: 'Total number of audio files',
1176
+ },
1177
+ totalSize: {
1178
+ type: 'number',
1179
+ optional: true,
1180
+ description: 'Total storage size in bytes',
1181
+ },
1182
+ albumCount: {
1183
+ type: 'number',
1184
+ optional: true,
1185
+ description: 'Number of albums',
1186
+ },
1187
+ // Organization
1188
+ organizationType: {
1189
+ type: 'string',
1190
+ optional: true,
1191
+ description: 'How media is organized: folders, tags, albums, flat',
1192
+ examples: ['folders', 'tags', 'albums', 'flat', 'hybrid'],
1193
+ },
1194
+ tags: {
1195
+ type: 'string',
1196
+ array: true,
1197
+ optional: true,
1198
+ description: 'Available tags in the library',
1199
+ },
1200
+ // Settings
1201
+ autoTag: {
1202
+ type: 'boolean',
1203
+ optional: true,
1204
+ description: 'Whether to automatically tag media',
1205
+ },
1206
+ autoOrganize: {
1207
+ type: 'boolean',
1208
+ optional: true,
1209
+ description: 'Whether to automatically organize media',
1210
+ },
1211
+ duplicateDetection: {
1212
+ type: 'boolean',
1213
+ optional: true,
1214
+ description: 'Whether to detect duplicate files',
1215
+ },
1216
+ faceRecognition: {
1217
+ type: 'boolean',
1218
+ optional: true,
1219
+ description: 'Whether face recognition is enabled',
1220
+ },
1221
+ // Access control
1222
+ visibility: {
1223
+ type: 'string',
1224
+ optional: true,
1225
+ description: 'Library visibility: private, team, public',
1226
+ examples: ['private', 'team', 'public'],
1227
+ },
1228
+ },
1229
+ relationships: {
1230
+ images: {
1231
+ type: 'Image[]',
1232
+ description: 'Images in this library',
1233
+ },
1234
+ videos: {
1235
+ type: 'Video[]',
1236
+ description: 'Videos in this library',
1237
+ },
1238
+ audio: {
1239
+ type: 'Audio[]',
1240
+ description: 'Audio files in this library',
1241
+ },
1242
+ albums: {
1243
+ type: 'Album[]',
1244
+ description: 'Albums in this library',
1245
+ },
1246
+ owner: {
1247
+ type: 'Contact',
1248
+ description: 'Library owner',
1249
+ },
1250
+ members: {
1251
+ type: 'Contact[]',
1252
+ description: 'People with access to the library',
1253
+ },
1254
+ },
1255
+ actions: [
1256
+ 'create',
1257
+ 'configure',
1258
+ 'import',
1259
+ 'export',
1260
+ 'scan',
1261
+ 'index',
1262
+ 'search',
1263
+ 'backup',
1264
+ 'restore',
1265
+ 'optimize',
1266
+ 'deduplicate',
1267
+ 'share',
1268
+ 'archive',
1269
+ 'delete',
1270
+ ],
1271
+ events: [
1272
+ 'created',
1273
+ 'configured',
1274
+ 'imported',
1275
+ 'exported',
1276
+ 'scanned',
1277
+ 'indexed',
1278
+ 'searched',
1279
+ 'backedUp',
1280
+ 'restored',
1281
+ 'optimized',
1282
+ 'deduplicated',
1283
+ 'shared',
1284
+ 'archived',
1285
+ 'deleted',
1286
+ ],
1287
+ };
1288
+ // =============================================================================
1289
+ // Transcript
1290
+ // =============================================================================
1291
+ /**
1292
+ * Transcript entity
1293
+ *
1294
+ * Represents a transcription of audio or video content
1295
+ */
1296
+ export const Transcript = {
1297
+ singular: 'transcript',
1298
+ plural: 'transcripts',
1299
+ description: 'A transcription of audio or video content',
1300
+ properties: {
1301
+ // Basic info
1302
+ text: {
1303
+ type: 'string',
1304
+ description: 'Full transcript text',
1305
+ },
1306
+ title: {
1307
+ type: 'string',
1308
+ optional: true,
1309
+ description: 'Transcript title',
1310
+ },
1311
+ // Format
1312
+ format: {
1313
+ type: 'string',
1314
+ optional: true,
1315
+ description: 'Transcript format: plain, srt, vtt, json',
1316
+ examples: ['plain', 'srt', 'vtt', 'json'],
1317
+ },
1318
+ // Language
1319
+ language: {
1320
+ type: 'string',
1321
+ description: 'Language code (e.g., en, es, fr)',
1322
+ },
1323
+ languageName: {
1324
+ type: 'string',
1325
+ optional: true,
1326
+ description: 'Language name (e.g., English, Spanish)',
1327
+ },
1328
+ // Timing
1329
+ duration: {
1330
+ type: 'number',
1331
+ optional: true,
1332
+ description: 'Duration of the transcribed content in seconds',
1333
+ },
1334
+ // Segments
1335
+ segments: {
1336
+ type: 'json',
1337
+ array: true,
1338
+ optional: true,
1339
+ description: 'Timed segments with start, end, and text',
1340
+ },
1341
+ wordTimestamps: {
1342
+ type: 'json',
1343
+ array: true,
1344
+ optional: true,
1345
+ description: 'Word-level timestamps',
1346
+ },
1347
+ // Speaker identification
1348
+ hasSpeakers: {
1349
+ type: 'boolean',
1350
+ optional: true,
1351
+ description: 'Whether speakers are identified',
1352
+ },
1353
+ speakers: {
1354
+ type: 'json',
1355
+ array: true,
1356
+ optional: true,
1357
+ description: 'Speaker labels and segments',
1358
+ },
1359
+ speakerCount: {
1360
+ type: 'number',
1361
+ optional: true,
1362
+ description: 'Number of distinct speakers',
1363
+ },
1364
+ // Quality & confidence
1365
+ confidence: {
1366
+ type: 'number',
1367
+ optional: true,
1368
+ description: 'Overall transcription confidence score (0-1)',
1369
+ },
1370
+ quality: {
1371
+ type: 'string',
1372
+ optional: true,
1373
+ description: 'Transcript quality: low, medium, high',
1374
+ examples: ['low', 'medium', 'high'],
1375
+ },
1376
+ // Processing
1377
+ status: {
1378
+ type: 'string',
1379
+ optional: true,
1380
+ description: 'Processing status: pending, processing, completed, error',
1381
+ examples: ['pending', 'processing', 'completed', 'error'],
1382
+ },
1383
+ provider: {
1384
+ type: 'string',
1385
+ optional: true,
1386
+ description: 'Transcription provider: whisper, deepgram, rev, etc',
1387
+ examples: ['whisper', 'deepgram', 'assemblyai', 'rev', 'manual'],
1388
+ },
1389
+ method: {
1390
+ type: 'string',
1391
+ optional: true,
1392
+ description: 'Transcription method: automatic, manual, hybrid',
1393
+ examples: ['automatic', 'manual', 'hybrid'],
1394
+ },
1395
+ // Metadata
1396
+ wordCount: {
1397
+ type: 'number',
1398
+ optional: true,
1399
+ description: 'Total word count',
1400
+ },
1401
+ edited: {
1402
+ type: 'boolean',
1403
+ optional: true,
1404
+ description: 'Whether the transcript has been edited',
1405
+ },
1406
+ },
1407
+ relationships: {
1408
+ video: {
1409
+ type: 'Video',
1410
+ required: false,
1411
+ description: 'Video this is a transcript of',
1412
+ },
1413
+ audio: {
1414
+ type: 'Audio',
1415
+ required: false,
1416
+ description: 'Audio this is a transcript of',
1417
+ },
1418
+ editor: {
1419
+ type: 'Contact',
1420
+ required: false,
1421
+ description: 'Person who edited the transcript',
1422
+ },
1423
+ },
1424
+ actions: [
1425
+ 'generate',
1426
+ 'edit',
1427
+ 'format',
1428
+ 'export',
1429
+ 'search',
1430
+ 'translate',
1431
+ 'identify',
1432
+ 'timestamp',
1433
+ 'sync',
1434
+ 'review',
1435
+ 'approve',
1436
+ 'delete',
1437
+ ],
1438
+ events: [
1439
+ 'generated',
1440
+ 'edited',
1441
+ 'formatted',
1442
+ 'exported',
1443
+ 'searched',
1444
+ 'translated',
1445
+ 'identified',
1446
+ 'timestamped',
1447
+ 'synced',
1448
+ 'reviewed',
1449
+ 'approved',
1450
+ 'deleted',
1451
+ 'processingStarted',
1452
+ 'processingCompleted',
1453
+ 'processingFailed',
1454
+ ],
1455
+ };
1456
+ // =============================================================================
1457
+ // Caption
1458
+ // =============================================================================
1459
+ /**
1460
+ * Caption/subtitle entity
1461
+ *
1462
+ * Represents captions or subtitles for video content
1463
+ */
1464
+ export const Caption = {
1465
+ singular: 'caption',
1466
+ plural: 'captions',
1467
+ description: 'Captions or subtitles for video content',
1468
+ properties: {
1469
+ // Basic info
1470
+ label: {
1471
+ type: 'string',
1472
+ description: 'Caption track label (e.g., English, Spanish, English CC)',
1473
+ },
1474
+ // Language
1475
+ language: {
1476
+ type: 'string',
1477
+ description: 'Language code (e.g., en, es, fr)',
1478
+ },
1479
+ languageName: {
1480
+ type: 'string',
1481
+ optional: true,
1482
+ description: 'Language name (e.g., English, Spanish)',
1483
+ },
1484
+ // Type
1485
+ kind: {
1486
+ type: 'string',
1487
+ description: 'Caption kind: subtitles, captions, descriptions',
1488
+ examples: ['subtitles', 'captions', 'descriptions'],
1489
+ },
1490
+ closedCaptions: {
1491
+ type: 'boolean',
1492
+ optional: true,
1493
+ description: 'Whether these are closed captions (CC)',
1494
+ },
1495
+ sdh: {
1496
+ type: 'boolean',
1497
+ optional: true,
1498
+ description: 'Whether these are SDH (Subtitles for Deaf and Hard of hearing)',
1499
+ },
1500
+ // Format
1501
+ format: {
1502
+ type: 'string',
1503
+ description: 'Caption format: vtt, srt, ass, scc',
1504
+ examples: ['vtt', 'srt', 'ass', 'scc', 'dfxp', 'ttml'],
1505
+ },
1506
+ url: {
1507
+ type: 'url',
1508
+ optional: true,
1509
+ description: 'URL to the caption file',
1510
+ },
1511
+ // Content
1512
+ content: {
1513
+ type: 'string',
1514
+ optional: true,
1515
+ description: 'Raw caption content',
1516
+ },
1517
+ cues: {
1518
+ type: 'json',
1519
+ array: true,
1520
+ optional: true,
1521
+ description: 'Caption cues with timing and text',
1522
+ },
1523
+ // Processing
1524
+ status: {
1525
+ type: 'string',
1526
+ optional: true,
1527
+ description: 'Processing status: pending, processing, ready, error',
1528
+ examples: ['pending', 'processing', 'ready', 'error'],
1529
+ },
1530
+ provider: {
1531
+ type: 'string',
1532
+ optional: true,
1533
+ description: 'Caption generation provider',
1534
+ },
1535
+ method: {
1536
+ type: 'string',
1537
+ optional: true,
1538
+ description: 'Caption method: automatic, manual, hybrid',
1539
+ examples: ['automatic', 'manual', 'hybrid'],
1540
+ },
1541
+ // Settings
1542
+ default: {
1543
+ type: 'boolean',
1544
+ optional: true,
1545
+ description: 'Whether this is the default caption track',
1546
+ },
1547
+ autoGenerated: {
1548
+ type: 'boolean',
1549
+ optional: true,
1550
+ description: 'Whether these captions were auto-generated',
1551
+ },
1552
+ edited: {
1553
+ type: 'boolean',
1554
+ optional: true,
1555
+ description: 'Whether the captions have been edited',
1556
+ },
1557
+ // Metadata
1558
+ cueCount: {
1559
+ type: 'number',
1560
+ optional: true,
1561
+ description: 'Number of caption cues',
1562
+ },
1563
+ },
1564
+ relationships: {
1565
+ video: {
1566
+ type: 'Video',
1567
+ description: 'Video these captions belong to',
1568
+ },
1569
+ transcript: {
1570
+ type: 'Transcript',
1571
+ required: false,
1572
+ description: 'Source transcript',
1573
+ },
1574
+ editor: {
1575
+ type: 'Contact',
1576
+ required: false,
1577
+ description: 'Person who edited the captions',
1578
+ },
1579
+ },
1580
+ actions: [
1581
+ 'generate',
1582
+ 'upload',
1583
+ 'download',
1584
+ 'edit',
1585
+ 'sync',
1586
+ 'translate',
1587
+ 'export',
1588
+ 'validate',
1589
+ 'preview',
1590
+ 'delete',
1591
+ 'setDefault',
1592
+ ],
1593
+ events: [
1594
+ 'generated',
1595
+ 'uploaded',
1596
+ 'downloaded',
1597
+ 'edited',
1598
+ 'synced',
1599
+ 'translated',
1600
+ 'exported',
1601
+ 'validated',
1602
+ 'previewed',
1603
+ 'deleted',
1604
+ 'setAsDefault',
1605
+ 'processingStarted',
1606
+ 'processingCompleted',
1607
+ 'processingFailed',
1608
+ ],
1609
+ };
1610
+ // =============================================================================
1611
+ // Export all entities as a collection
1612
+ // =============================================================================
1613
+ /**
1614
+ * All media entity types
1615
+ */
1616
+ export const MediaEntities = {
1617
+ Image,
1618
+ Video,
1619
+ Audio,
1620
+ Screenshot,
1621
+ Album,
1622
+ MediaLibrary,
1623
+ Transcript,
1624
+ Caption,
1625
+ };
1626
+ /**
1627
+ * Entity categories for organization
1628
+ */
1629
+ export const MediaCategories = {
1630
+ visual: ['Image', 'Video', 'Screenshot'],
1631
+ audio: ['Audio'],
1632
+ collections: ['Album', 'MediaLibrary'],
1633
+ text: ['Transcript', 'Caption'],
1634
+ };
1635
+ //# sourceMappingURL=media.js.map