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,951 @@
1
+ /**
2
+ * Streaming & Video Platform Entity Types (Nouns)
3
+ *
4
+ * Entities for video platforms like YouTube, Twitch, etc.
5
+ * Includes videos, channels, playlists, live streams, and comments.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+ // =============================================================================
10
+ // Video Channel
11
+ // =============================================================================
12
+ /**
13
+ * Video channel entity
14
+ *
15
+ * Represents a video channel/creator account
16
+ */
17
+ export const VideoChannel = {
18
+ singular: 'video channel',
19
+ plural: 'video channels',
20
+ description: 'A video channel or creator account',
21
+ properties: {
22
+ // Identity
23
+ name: {
24
+ type: 'string',
25
+ description: 'Channel name',
26
+ },
27
+ handle: {
28
+ type: 'string',
29
+ optional: true,
30
+ description: 'Channel handle/username',
31
+ },
32
+ description: {
33
+ type: 'string',
34
+ optional: true,
35
+ description: 'Channel description',
36
+ },
37
+ // Branding
38
+ thumbnailUrl: {
39
+ type: 'url',
40
+ optional: true,
41
+ description: 'Channel thumbnail/avatar',
42
+ },
43
+ bannerUrl: {
44
+ type: 'url',
45
+ optional: true,
46
+ description: 'Channel banner image',
47
+ },
48
+ customUrl: {
49
+ type: 'string',
50
+ optional: true,
51
+ description: 'Custom channel URL',
52
+ },
53
+ // Status
54
+ status: {
55
+ type: 'string',
56
+ description: 'Channel status: active, suspended, terminated',
57
+ examples: ['active', 'suspended', 'terminated'],
58
+ },
59
+ verified: {
60
+ type: 'boolean',
61
+ optional: true,
62
+ description: 'Whether channel is verified',
63
+ },
64
+ // Statistics
65
+ subscriberCount: {
66
+ type: 'number',
67
+ optional: true,
68
+ description: 'Number of subscribers',
69
+ },
70
+ videoCount: {
71
+ type: 'number',
72
+ optional: true,
73
+ description: 'Number of videos',
74
+ },
75
+ viewCount: {
76
+ type: 'number',
77
+ optional: true,
78
+ description: 'Total view count',
79
+ },
80
+ // Settings
81
+ country: {
82
+ type: 'string',
83
+ optional: true,
84
+ description: 'Channel country',
85
+ },
86
+ defaultLanguage: {
87
+ type: 'string',
88
+ optional: true,
89
+ description: 'Default language',
90
+ },
91
+ madeForKids: {
92
+ type: 'boolean',
93
+ optional: true,
94
+ description: 'Whether channel is made for kids',
95
+ },
96
+ // Monetization
97
+ monetizationEnabled: {
98
+ type: 'boolean',
99
+ optional: true,
100
+ description: 'Whether monetization is enabled',
101
+ },
102
+ partnerProgram: {
103
+ type: 'string',
104
+ optional: true,
105
+ description: 'Partner program status',
106
+ },
107
+ },
108
+ relationships: {
109
+ owner: {
110
+ type: 'Contact',
111
+ description: 'Channel owner',
112
+ },
113
+ videos: {
114
+ type: 'StreamingVideo[]',
115
+ backref: 'channel',
116
+ description: 'Videos on this channel',
117
+ },
118
+ playlists: {
119
+ type: 'Playlist[]',
120
+ backref: 'channel',
121
+ description: 'Channel playlists',
122
+ },
123
+ liveStreams: {
124
+ type: 'LiveStream[]',
125
+ backref: 'channel',
126
+ description: 'Live streams',
127
+ },
128
+ },
129
+ actions: [
130
+ 'create',
131
+ 'update',
132
+ 'delete',
133
+ 'verify',
134
+ 'suspend',
135
+ 'unsuspend',
136
+ 'enableMonetization',
137
+ 'disableMonetization',
138
+ 'subscribe',
139
+ 'unsubscribe',
140
+ ],
141
+ events: [
142
+ 'created',
143
+ 'updated',
144
+ 'deleted',
145
+ 'verified',
146
+ 'suspended',
147
+ 'unsuspended',
148
+ 'monetizationEnabled',
149
+ 'monetizationDisabled',
150
+ 'subscribed',
151
+ 'unsubscribed',
152
+ ],
153
+ };
154
+ // =============================================================================
155
+ // Streaming Video
156
+ // =============================================================================
157
+ /**
158
+ * Streaming video entity
159
+ *
160
+ * Represents a video on a streaming platform
161
+ */
162
+ export const StreamingVideo = {
163
+ singular: 'streaming video',
164
+ plural: 'streaming videos',
165
+ description: 'A video on a streaming platform',
166
+ properties: {
167
+ // Identity
168
+ title: {
169
+ type: 'string',
170
+ description: 'Video title',
171
+ },
172
+ description: {
173
+ type: 'string',
174
+ optional: true,
175
+ description: 'Video description',
176
+ },
177
+ tags: {
178
+ type: 'string',
179
+ array: true,
180
+ optional: true,
181
+ description: 'Video tags',
182
+ },
183
+ category: {
184
+ type: 'string',
185
+ optional: true,
186
+ description: 'Video category',
187
+ },
188
+ // Media
189
+ thumbnailUrl: {
190
+ type: 'url',
191
+ optional: true,
192
+ description: 'Video thumbnail',
193
+ },
194
+ duration: {
195
+ type: 'number',
196
+ optional: true,
197
+ description: 'Video duration in seconds',
198
+ },
199
+ resolution: {
200
+ type: 'string',
201
+ optional: true,
202
+ description: 'Video resolution: 720p, 1080p, 4k',
203
+ examples: ['480p', '720p', '1080p', '1440p', '4k'],
204
+ },
205
+ // Status
206
+ status: {
207
+ type: 'string',
208
+ description: 'Video status: processing, public, private, unlisted, deleted',
209
+ examples: ['processing', 'public', 'private', 'unlisted', 'deleted'],
210
+ },
211
+ publishedAt: {
212
+ type: 'datetime',
213
+ optional: true,
214
+ description: 'Publication date',
215
+ },
216
+ scheduledPublishAt: {
217
+ type: 'datetime',
218
+ optional: true,
219
+ description: 'Scheduled publication date',
220
+ },
221
+ // Settings
222
+ madeForKids: {
223
+ type: 'boolean',
224
+ optional: true,
225
+ description: 'Whether video is made for kids',
226
+ },
227
+ ageRestricted: {
228
+ type: 'boolean',
229
+ optional: true,
230
+ description: 'Whether video is age-restricted',
231
+ },
232
+ embeddable: {
233
+ type: 'boolean',
234
+ optional: true,
235
+ description: 'Whether video can be embedded',
236
+ },
237
+ license: {
238
+ type: 'string',
239
+ optional: true,
240
+ description: 'Video license',
241
+ },
242
+ // Statistics
243
+ viewCount: {
244
+ type: 'number',
245
+ optional: true,
246
+ description: 'View count',
247
+ },
248
+ likeCount: {
249
+ type: 'number',
250
+ optional: true,
251
+ description: 'Like count',
252
+ },
253
+ dislikeCount: {
254
+ type: 'number',
255
+ optional: true,
256
+ description: 'Dislike count',
257
+ },
258
+ commentCount: {
259
+ type: 'number',
260
+ optional: true,
261
+ description: 'Comment count',
262
+ },
263
+ shareCount: {
264
+ type: 'number',
265
+ optional: true,
266
+ description: 'Share count',
267
+ },
268
+ // Engagement
269
+ averageViewDuration: {
270
+ type: 'number',
271
+ optional: true,
272
+ description: 'Average view duration in seconds',
273
+ },
274
+ averageViewPercentage: {
275
+ type: 'number',
276
+ optional: true,
277
+ description: 'Average percentage watched',
278
+ },
279
+ // Monetization
280
+ monetized: {
281
+ type: 'boolean',
282
+ optional: true,
283
+ description: 'Whether video is monetized',
284
+ },
285
+ adSuitability: {
286
+ type: 'string',
287
+ optional: true,
288
+ description: 'Ad suitability status',
289
+ },
290
+ estimatedRevenue: {
291
+ type: 'number',
292
+ optional: true,
293
+ description: 'Estimated revenue',
294
+ },
295
+ // Captions
296
+ captionsAvailable: {
297
+ type: 'boolean',
298
+ optional: true,
299
+ description: 'Whether captions are available',
300
+ },
301
+ captionLanguages: {
302
+ type: 'string',
303
+ array: true,
304
+ optional: true,
305
+ description: 'Available caption languages',
306
+ },
307
+ },
308
+ relationships: {
309
+ channel: {
310
+ type: 'VideoChannel',
311
+ backref: 'videos',
312
+ description: 'Channel that owns this video',
313
+ },
314
+ comments: {
315
+ type: 'VideoComment[]',
316
+ backref: 'video',
317
+ description: 'Video comments',
318
+ },
319
+ playlists: {
320
+ type: 'Playlist[]',
321
+ description: 'Playlists containing this video',
322
+ },
323
+ captions: {
324
+ type: 'Caption[]',
325
+ description: 'Video captions',
326
+ },
327
+ },
328
+ actions: [
329
+ 'upload',
330
+ 'update',
331
+ 'delete',
332
+ 'publish',
333
+ 'unpublish',
334
+ 'setPrivacy',
335
+ 'like',
336
+ 'dislike',
337
+ 'share',
338
+ 'comment',
339
+ 'addToPlaylist',
340
+ 'removeFromPlaylist',
341
+ 'monetize',
342
+ 'demonetize',
343
+ 'addCaption',
344
+ 'removeCaption',
345
+ ],
346
+ events: [
347
+ 'uploaded',
348
+ 'updated',
349
+ 'deleted',
350
+ 'published',
351
+ 'unpublished',
352
+ 'privacyChanged',
353
+ 'liked',
354
+ 'disliked',
355
+ 'shared',
356
+ 'commented',
357
+ 'addedToPlaylist',
358
+ 'removedFromPlaylist',
359
+ 'monetized',
360
+ 'demonetized',
361
+ 'viewed',
362
+ ],
363
+ };
364
+ // =============================================================================
365
+ // Playlist
366
+ // =============================================================================
367
+ /**
368
+ * Playlist entity
369
+ *
370
+ * Represents a video playlist
371
+ */
372
+ export const Playlist = {
373
+ singular: 'playlist',
374
+ plural: 'playlists',
375
+ description: 'A video playlist',
376
+ properties: {
377
+ // Identity
378
+ title: {
379
+ type: 'string',
380
+ description: 'Playlist title',
381
+ },
382
+ description: {
383
+ type: 'string',
384
+ optional: true,
385
+ description: 'Playlist description',
386
+ },
387
+ // Branding
388
+ thumbnailUrl: {
389
+ type: 'url',
390
+ optional: true,
391
+ description: 'Playlist thumbnail',
392
+ },
393
+ // Status
394
+ visibility: {
395
+ type: 'string',
396
+ description: 'Playlist visibility: public, private, unlisted',
397
+ examples: ['public', 'private', 'unlisted'],
398
+ },
399
+ // Content
400
+ itemCount: {
401
+ type: 'number',
402
+ optional: true,
403
+ description: 'Number of items in playlist',
404
+ },
405
+ // Settings
406
+ defaultLanguage: {
407
+ type: 'string',
408
+ optional: true,
409
+ description: 'Default language',
410
+ },
411
+ embedEnabled: {
412
+ type: 'boolean',
413
+ optional: true,
414
+ description: 'Whether embedding is enabled',
415
+ },
416
+ },
417
+ relationships: {
418
+ channel: {
419
+ type: 'VideoChannel',
420
+ backref: 'playlists',
421
+ description: 'Channel that owns this playlist',
422
+ },
423
+ items: {
424
+ type: 'PlaylistItem[]',
425
+ backref: 'playlist',
426
+ description: 'Items in this playlist',
427
+ },
428
+ },
429
+ actions: [
430
+ 'create',
431
+ 'update',
432
+ 'delete',
433
+ 'addItem',
434
+ 'removeItem',
435
+ 'reorderItems',
436
+ 'setVisibility',
437
+ ],
438
+ events: [
439
+ 'created',
440
+ 'updated',
441
+ 'deleted',
442
+ 'itemAdded',
443
+ 'itemRemoved',
444
+ 'itemsReordered',
445
+ 'visibilityChanged',
446
+ ],
447
+ };
448
+ /**
449
+ * Playlist item entity
450
+ */
451
+ export const PlaylistItem = {
452
+ singular: 'playlist item',
453
+ plural: 'playlist items',
454
+ description: 'An item in a playlist',
455
+ properties: {
456
+ position: {
457
+ type: 'number',
458
+ description: 'Position in playlist (0-indexed)',
459
+ },
460
+ addedAt: {
461
+ type: 'datetime',
462
+ optional: true,
463
+ description: 'When item was added',
464
+ },
465
+ note: {
466
+ type: 'string',
467
+ optional: true,
468
+ description: 'Note about this item',
469
+ },
470
+ },
471
+ relationships: {
472
+ playlist: {
473
+ type: 'Playlist',
474
+ backref: 'items',
475
+ description: 'Parent playlist',
476
+ },
477
+ video: {
478
+ type: 'StreamingVideo',
479
+ description: 'The video',
480
+ },
481
+ },
482
+ actions: ['add', 'remove', 'move', 'setNote'],
483
+ events: ['added', 'removed', 'moved', 'noteSet'],
484
+ };
485
+ // =============================================================================
486
+ // Live Stream
487
+ // =============================================================================
488
+ /**
489
+ * Live stream entity
490
+ *
491
+ * Represents a live streaming broadcast
492
+ */
493
+ export const LiveStream = {
494
+ singular: 'live stream',
495
+ plural: 'live streams',
496
+ description: 'A live streaming broadcast',
497
+ properties: {
498
+ // Identity
499
+ title: {
500
+ type: 'string',
501
+ description: 'Stream title',
502
+ },
503
+ description: {
504
+ type: 'string',
505
+ optional: true,
506
+ description: 'Stream description',
507
+ },
508
+ category: {
509
+ type: 'string',
510
+ optional: true,
511
+ description: 'Stream category',
512
+ },
513
+ tags: {
514
+ type: 'string',
515
+ array: true,
516
+ optional: true,
517
+ description: 'Stream tags',
518
+ },
519
+ // Branding
520
+ thumbnailUrl: {
521
+ type: 'url',
522
+ optional: true,
523
+ description: 'Stream thumbnail',
524
+ },
525
+ // Status
526
+ status: {
527
+ type: 'string',
528
+ description: 'Stream status: scheduled, live, ended, cancelled',
529
+ examples: ['scheduled', 'live', 'ended', 'cancelled'],
530
+ },
531
+ visibility: {
532
+ type: 'string',
533
+ description: 'Stream visibility: public, private, unlisted',
534
+ examples: ['public', 'private', 'unlisted'],
535
+ },
536
+ // Timing
537
+ scheduledStartTime: {
538
+ type: 'datetime',
539
+ optional: true,
540
+ description: 'Scheduled start time',
541
+ },
542
+ actualStartTime: {
543
+ type: 'datetime',
544
+ optional: true,
545
+ description: 'Actual start time',
546
+ },
547
+ actualEndTime: {
548
+ type: 'datetime',
549
+ optional: true,
550
+ description: 'Actual end time',
551
+ },
552
+ duration: {
553
+ type: 'number',
554
+ optional: true,
555
+ description: 'Stream duration in seconds',
556
+ },
557
+ // Configuration
558
+ streamKey: {
559
+ type: 'string',
560
+ optional: true,
561
+ description: 'Stream key',
562
+ },
563
+ rtmpUrl: {
564
+ type: 'url',
565
+ optional: true,
566
+ description: 'RTMP ingest URL',
567
+ },
568
+ latencyPreference: {
569
+ type: 'string',
570
+ optional: true,
571
+ description: 'Latency preference: normal, low, ultra_low',
572
+ examples: ['normal', 'low', 'ultra_low'],
573
+ },
574
+ dvr: {
575
+ type: 'boolean',
576
+ optional: true,
577
+ description: 'Whether DVR is enabled',
578
+ },
579
+ // Chat
580
+ chatEnabled: {
581
+ type: 'boolean',
582
+ optional: true,
583
+ description: 'Whether chat is enabled',
584
+ },
585
+ chatMode: {
586
+ type: 'string',
587
+ optional: true,
588
+ description: 'Chat mode: open, subscribers, slow, members',
589
+ examples: ['open', 'subscribers', 'slow', 'members'],
590
+ },
591
+ // Statistics
592
+ concurrentViewers: {
593
+ type: 'number',
594
+ optional: true,
595
+ description: 'Current concurrent viewers',
596
+ },
597
+ peakViewers: {
598
+ type: 'number',
599
+ optional: true,
600
+ description: 'Peak concurrent viewers',
601
+ },
602
+ totalViews: {
603
+ type: 'number',
604
+ optional: true,
605
+ description: 'Total unique views',
606
+ },
607
+ chatMessages: {
608
+ type: 'number',
609
+ optional: true,
610
+ description: 'Total chat messages',
611
+ },
612
+ // Recording
613
+ recordingEnabled: {
614
+ type: 'boolean',
615
+ optional: true,
616
+ description: 'Whether recording is enabled',
617
+ },
618
+ recordingUrl: {
619
+ type: 'url',
620
+ optional: true,
621
+ description: 'Recording URL (after stream ends)',
622
+ },
623
+ },
624
+ relationships: {
625
+ channel: {
626
+ type: 'VideoChannel',
627
+ backref: 'liveStreams',
628
+ description: 'Channel broadcasting the stream',
629
+ },
630
+ recording: {
631
+ type: 'StreamingVideo',
632
+ required: false,
633
+ description: 'Recording of the stream',
634
+ },
635
+ chatMessages: {
636
+ type: 'ChatMessage[]',
637
+ description: 'Chat messages during stream',
638
+ },
639
+ },
640
+ actions: [
641
+ 'schedule',
642
+ 'start',
643
+ 'end',
644
+ 'cancel',
645
+ 'update',
646
+ 'delete',
647
+ 'enableChat',
648
+ 'disableChat',
649
+ 'setChatMode',
650
+ 'enableDvr',
651
+ 'disableDvr',
652
+ 'generateStreamKey',
653
+ 'revokeStreamKey',
654
+ ],
655
+ events: [
656
+ 'scheduled',
657
+ 'started',
658
+ 'ended',
659
+ 'cancelled',
660
+ 'updated',
661
+ 'deleted',
662
+ 'chatEnabled',
663
+ 'chatDisabled',
664
+ 'chatModeChanged',
665
+ 'viewerJoined',
666
+ 'viewerLeft',
667
+ ],
668
+ };
669
+ /**
670
+ * Chat message entity
671
+ */
672
+ export const ChatMessage = {
673
+ singular: 'chat message',
674
+ plural: 'chat messages',
675
+ description: 'A chat message in a live stream',
676
+ properties: {
677
+ content: {
678
+ type: 'string',
679
+ description: 'Message content',
680
+ },
681
+ authorName: {
682
+ type: 'string',
683
+ description: 'Author display name',
684
+ },
685
+ authorAvatar: {
686
+ type: 'url',
687
+ optional: true,
688
+ description: 'Author avatar URL',
689
+ },
690
+ isModerator: {
691
+ type: 'boolean',
692
+ optional: true,
693
+ description: 'Whether author is a moderator',
694
+ },
695
+ isSubscriber: {
696
+ type: 'boolean',
697
+ optional: true,
698
+ description: 'Whether author is a subscriber',
699
+ },
700
+ isMember: {
701
+ type: 'boolean',
702
+ optional: true,
703
+ description: 'Whether author is a member',
704
+ },
705
+ isOwner: {
706
+ type: 'boolean',
707
+ optional: true,
708
+ description: 'Whether author is the channel owner',
709
+ },
710
+ timestamp: {
711
+ type: 'datetime',
712
+ description: 'Message timestamp',
713
+ },
714
+ superchat: {
715
+ type: 'boolean',
716
+ optional: true,
717
+ description: 'Whether this is a paid message',
718
+ },
719
+ superchatAmount: {
720
+ type: 'number',
721
+ optional: true,
722
+ description: 'Super chat amount',
723
+ },
724
+ deleted: {
725
+ type: 'boolean',
726
+ optional: true,
727
+ description: 'Whether message was deleted',
728
+ },
729
+ },
730
+ relationships: {
731
+ liveStream: {
732
+ type: 'LiveStream',
733
+ backref: 'chatMessages',
734
+ description: 'Parent live stream',
735
+ },
736
+ author: {
737
+ type: 'Contact',
738
+ description: 'Message author',
739
+ },
740
+ },
741
+ actions: ['send', 'delete', 'pin', 'unpin', 'timeout', 'ban'],
742
+ events: ['sent', 'deleted', 'pinned', 'unpinned'],
743
+ };
744
+ // =============================================================================
745
+ // Video Comment
746
+ // =============================================================================
747
+ /**
748
+ * Video comment entity
749
+ *
750
+ * Represents a comment on a video
751
+ */
752
+ export const VideoComment = {
753
+ singular: 'video comment',
754
+ plural: 'video comments',
755
+ description: 'A comment on a video',
756
+ properties: {
757
+ // Content
758
+ text: {
759
+ type: 'string',
760
+ description: 'Comment text',
761
+ },
762
+ textOriginal: {
763
+ type: 'string',
764
+ optional: true,
765
+ description: 'Original text before any edits',
766
+ },
767
+ // Author
768
+ authorName: {
769
+ type: 'string',
770
+ description: 'Author display name',
771
+ },
772
+ authorAvatar: {
773
+ type: 'url',
774
+ optional: true,
775
+ description: 'Author avatar URL',
776
+ },
777
+ authorChannelUrl: {
778
+ type: 'url',
779
+ optional: true,
780
+ description: 'Author channel URL',
781
+ },
782
+ // Status
783
+ published: {
784
+ type: 'boolean',
785
+ optional: true,
786
+ description: 'Whether comment is published',
787
+ },
788
+ heldForReview: {
789
+ type: 'boolean',
790
+ optional: true,
791
+ description: 'Whether comment is held for review',
792
+ },
793
+ // Engagement
794
+ likeCount: {
795
+ type: 'number',
796
+ optional: true,
797
+ description: 'Number of likes',
798
+ },
799
+ replyCount: {
800
+ type: 'number',
801
+ optional: true,
802
+ description: 'Number of replies',
803
+ },
804
+ // Metadata
805
+ isReply: {
806
+ type: 'boolean',
807
+ optional: true,
808
+ description: 'Whether this is a reply to another comment',
809
+ },
810
+ timestamp: {
811
+ type: 'datetime',
812
+ description: 'Comment timestamp',
813
+ },
814
+ editedAt: {
815
+ type: 'datetime',
816
+ optional: true,
817
+ description: 'Last edit timestamp',
818
+ },
819
+ // Pinned
820
+ pinned: {
821
+ type: 'boolean',
822
+ optional: true,
823
+ description: 'Whether comment is pinned',
824
+ },
825
+ heartedByCreator: {
826
+ type: 'boolean',
827
+ optional: true,
828
+ description: 'Whether creator hearted this comment',
829
+ },
830
+ },
831
+ relationships: {
832
+ video: {
833
+ type: 'StreamingVideo',
834
+ backref: 'comments',
835
+ description: 'Video this comment is on',
836
+ },
837
+ author: {
838
+ type: 'Contact',
839
+ description: 'Comment author',
840
+ },
841
+ parentComment: {
842
+ type: 'VideoComment',
843
+ required: false,
844
+ description: 'Parent comment if this is a reply',
845
+ },
846
+ replies: {
847
+ type: 'VideoComment[]',
848
+ description: 'Replies to this comment',
849
+ },
850
+ },
851
+ actions: [
852
+ 'create',
853
+ 'update',
854
+ 'delete',
855
+ 'like',
856
+ 'unlike',
857
+ 'reply',
858
+ 'pin',
859
+ 'unpin',
860
+ 'heart',
861
+ 'unheart',
862
+ 'approve',
863
+ 'reject',
864
+ 'report',
865
+ ],
866
+ events: [
867
+ 'created',
868
+ 'updated',
869
+ 'deleted',
870
+ 'liked',
871
+ 'unliked',
872
+ 'replied',
873
+ 'pinned',
874
+ 'unpinned',
875
+ 'hearted',
876
+ 'unhearted',
877
+ 'approved',
878
+ 'rejected',
879
+ 'reported',
880
+ ],
881
+ };
882
+ // =============================================================================
883
+ // Subscription
884
+ // =============================================================================
885
+ /**
886
+ * Channel subscription entity
887
+ *
888
+ * Represents a subscription to a video channel
889
+ */
890
+ export const ChannelSubscription = {
891
+ singular: 'channel subscription',
892
+ plural: 'channel subscriptions',
893
+ description: 'A subscription to a video channel',
894
+ properties: {
895
+ // Notification settings
896
+ notificationPreference: {
897
+ type: 'string',
898
+ description: 'Notification preference: all, personalized, none',
899
+ examples: ['all', 'personalized', 'none'],
900
+ },
901
+ // Timestamps
902
+ subscribedAt: {
903
+ type: 'datetime',
904
+ description: 'When subscription was created',
905
+ },
906
+ },
907
+ relationships: {
908
+ subscriber: {
909
+ type: 'Contact',
910
+ description: 'The subscriber',
911
+ },
912
+ channel: {
913
+ type: 'VideoChannel',
914
+ description: 'The subscribed channel',
915
+ },
916
+ },
917
+ actions: ['subscribe', 'unsubscribe', 'setNotifications'],
918
+ events: ['subscribed', 'unsubscribed', 'notificationsChanged'],
919
+ };
920
+ // =============================================================================
921
+ // Export all entities as a schema
922
+ // =============================================================================
923
+ /**
924
+ * All video entity types
925
+ */
926
+ export const VideoEntities = {
927
+ // Channels
928
+ VideoChannel,
929
+ // Videos
930
+ StreamingVideo,
931
+ // Playlists
932
+ Playlist,
933
+ PlaylistItem,
934
+ // Live Streaming
935
+ LiveStream,
936
+ ChatMessage,
937
+ // Comments
938
+ VideoComment,
939
+ // Subscriptions
940
+ ChannelSubscription,
941
+ };
942
+ /**
943
+ * Entity categories for organization
944
+ */
945
+ export const VideoCategories = {
946
+ channels: ['VideoChannel'],
947
+ videos: ['StreamingVideo', 'Playlist', 'PlaylistItem'],
948
+ liveStreaming: ['LiveStream', 'ChatMessage'],
949
+ engagement: ['VideoComment', 'ChannelSubscription'],
950
+ };
951
+ //# sourceMappingURL=video.js.map