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,1086 @@
1
+ /**
2
+ * Advertising Entity Types (Nouns)
3
+ *
4
+ * Entities for digital advertising platforms like Google Ads, Meta Ads, etc.
5
+ * Includes ads, campaigns, ad groups, keywords, and conversions.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+
10
+ import type { Noun } from 'ai-database'
11
+
12
+ // =============================================================================
13
+ // Ad
14
+ // =============================================================================
15
+
16
+ /**
17
+ * Ad entity
18
+ *
19
+ * Represents a digital advertisement
20
+ */
21
+ export const Ad: Noun = {
22
+ singular: 'ad',
23
+ plural: 'ads',
24
+ description: 'A digital advertisement',
25
+
26
+ properties: {
27
+ // Identity
28
+ name: {
29
+ type: 'string',
30
+ description: 'Ad name',
31
+ },
32
+ type: {
33
+ type: 'string',
34
+ description: 'Ad type: search, display, video, shopping, social',
35
+ examples: ['search', 'display', 'video', 'shopping', 'social', 'native'],
36
+ },
37
+ format: {
38
+ type: 'string',
39
+ optional: true,
40
+ description: 'Ad format: text, image, carousel, video, collection',
41
+ examples: ['text', 'image', 'carousel', 'video', 'collection', 'stories'],
42
+ },
43
+
44
+ // Content - Text
45
+ headline: {
46
+ type: 'string',
47
+ optional: true,
48
+ description: 'Ad headline',
49
+ },
50
+ headlines: {
51
+ type: 'string',
52
+ array: true,
53
+ optional: true,
54
+ description: 'Multiple headlines (for responsive ads)',
55
+ },
56
+ description: {
57
+ type: 'string',
58
+ optional: true,
59
+ description: 'Ad description',
60
+ },
61
+ descriptions: {
62
+ type: 'string',
63
+ array: true,
64
+ optional: true,
65
+ description: 'Multiple descriptions',
66
+ },
67
+ callToAction: {
68
+ type: 'string',
69
+ optional: true,
70
+ description: 'Call to action text',
71
+ },
72
+
73
+ // Content - Media
74
+ imageUrl: {
75
+ type: 'url',
76
+ optional: true,
77
+ description: 'Ad image URL',
78
+ },
79
+ videoUrl: {
80
+ type: 'url',
81
+ optional: true,
82
+ description: 'Ad video URL',
83
+ },
84
+ thumbnailUrl: {
85
+ type: 'url',
86
+ optional: true,
87
+ description: 'Video thumbnail URL',
88
+ },
89
+
90
+ // Destination
91
+ finalUrl: {
92
+ type: 'url',
93
+ optional: true,
94
+ description: 'Final destination URL',
95
+ },
96
+ displayUrl: {
97
+ type: 'string',
98
+ optional: true,
99
+ description: 'Display URL',
100
+ },
101
+ trackingUrl: {
102
+ type: 'url',
103
+ optional: true,
104
+ description: 'Tracking URL template',
105
+ },
106
+
107
+ // Status
108
+ status: {
109
+ type: 'string',
110
+ description: 'Ad status: enabled, paused, removed, pending_review, disapproved',
111
+ examples: ['enabled', 'paused', 'removed', 'pending_review', 'disapproved'],
112
+ },
113
+ reviewStatus: {
114
+ type: 'string',
115
+ optional: true,
116
+ description: 'Review status: approved, disapproved, under_review',
117
+ examples: ['approved', 'disapproved', 'under_review'],
118
+ },
119
+ disapprovalReasons: {
120
+ type: 'string',
121
+ array: true,
122
+ optional: true,
123
+ description: 'Reasons for disapproval',
124
+ },
125
+
126
+ // Performance
127
+ impressions: {
128
+ type: 'number',
129
+ optional: true,
130
+ description: 'Total impressions',
131
+ },
132
+ clicks: {
133
+ type: 'number',
134
+ optional: true,
135
+ description: 'Total clicks',
136
+ },
137
+ ctr: {
138
+ type: 'number',
139
+ optional: true,
140
+ description: 'Click-through rate',
141
+ },
142
+ conversions: {
143
+ type: 'number',
144
+ optional: true,
145
+ description: 'Total conversions',
146
+ },
147
+ conversionRate: {
148
+ type: 'number',
149
+ optional: true,
150
+ description: 'Conversion rate',
151
+ },
152
+ cost: {
153
+ type: 'number',
154
+ optional: true,
155
+ description: 'Total cost',
156
+ },
157
+ cpc: {
158
+ type: 'number',
159
+ optional: true,
160
+ description: 'Cost per click',
161
+ },
162
+ cpm: {
163
+ type: 'number',
164
+ optional: true,
165
+ description: 'Cost per thousand impressions',
166
+ },
167
+ cpa: {
168
+ type: 'number',
169
+ optional: true,
170
+ description: 'Cost per acquisition',
171
+ },
172
+ roas: {
173
+ type: 'number',
174
+ optional: true,
175
+ description: 'Return on ad spend',
176
+ },
177
+ },
178
+
179
+ relationships: {
180
+ adGroup: {
181
+ type: 'AdGroup',
182
+ description: 'Parent ad group',
183
+ },
184
+ campaign: {
185
+ type: 'AdCampaign',
186
+ description: 'Parent campaign',
187
+ },
188
+ },
189
+
190
+ actions: [
191
+ 'create',
192
+ 'update',
193
+ 'delete',
194
+ 'enable',
195
+ 'pause',
196
+ 'duplicate',
197
+ 'preview',
198
+ 'submitForReview',
199
+ ],
200
+
201
+ events: [
202
+ 'created',
203
+ 'updated',
204
+ 'deleted',
205
+ 'enabled',
206
+ 'paused',
207
+ 'approved',
208
+ 'disapproved',
209
+ 'impressionServed',
210
+ 'clicked',
211
+ 'converted',
212
+ ],
213
+ }
214
+
215
+ // =============================================================================
216
+ // Ad Group
217
+ // =============================================================================
218
+
219
+ /**
220
+ * Ad group entity
221
+ *
222
+ * Represents a group of related ads
223
+ */
224
+ export const AdGroup: Noun = {
225
+ singular: 'ad group',
226
+ plural: 'ad groups',
227
+ description: 'A group of related ads with shared targeting',
228
+
229
+ properties: {
230
+ // Identity
231
+ name: {
232
+ type: 'string',
233
+ description: 'Ad group name',
234
+ },
235
+
236
+ // Status
237
+ status: {
238
+ type: 'string',
239
+ description: 'Ad group status: enabled, paused, removed',
240
+ examples: ['enabled', 'paused', 'removed'],
241
+ },
242
+
243
+ // Bidding
244
+ bidStrategy: {
245
+ type: 'string',
246
+ optional: true,
247
+ description: 'Bid strategy: manual_cpc, target_cpa, maximize_conversions',
248
+ examples: ['manual_cpc', 'target_cpa', 'maximize_conversions', 'target_roas'],
249
+ },
250
+ defaultBid: {
251
+ type: 'number',
252
+ optional: true,
253
+ description: 'Default bid amount',
254
+ },
255
+ targetCpa: {
256
+ type: 'number',
257
+ optional: true,
258
+ description: 'Target CPA',
259
+ },
260
+ targetRoas: {
261
+ type: 'number',
262
+ optional: true,
263
+ description: 'Target ROAS',
264
+ },
265
+
266
+ // Targeting
267
+ targetingSettings: {
268
+ type: 'json',
269
+ optional: true,
270
+ description: 'Targeting configuration',
271
+ },
272
+ audiences: {
273
+ type: 'string',
274
+ array: true,
275
+ optional: true,
276
+ description: 'Target audiences',
277
+ },
278
+ placements: {
279
+ type: 'string',
280
+ array: true,
281
+ optional: true,
282
+ description: 'Target placements',
283
+ },
284
+ topics: {
285
+ type: 'string',
286
+ array: true,
287
+ optional: true,
288
+ description: 'Target topics',
289
+ },
290
+
291
+ // Performance
292
+ impressions: {
293
+ type: 'number',
294
+ optional: true,
295
+ description: 'Total impressions',
296
+ },
297
+ clicks: {
298
+ type: 'number',
299
+ optional: true,
300
+ description: 'Total clicks',
301
+ },
302
+ conversions: {
303
+ type: 'number',
304
+ optional: true,
305
+ description: 'Total conversions',
306
+ },
307
+ cost: {
308
+ type: 'number',
309
+ optional: true,
310
+ description: 'Total cost',
311
+ },
312
+ },
313
+
314
+ relationships: {
315
+ campaign: {
316
+ type: 'AdCampaign',
317
+ backref: 'adGroups',
318
+ description: 'Parent campaign',
319
+ },
320
+ ads: {
321
+ type: 'Ad[]',
322
+ backref: 'adGroup',
323
+ description: 'Ads in this group',
324
+ },
325
+ keywords: {
326
+ type: 'Keyword[]',
327
+ backref: 'adGroup',
328
+ description: 'Keywords for search ads',
329
+ },
330
+ },
331
+
332
+ actions: [
333
+ 'create',
334
+ 'update',
335
+ 'delete',
336
+ 'enable',
337
+ 'pause',
338
+ 'setBid',
339
+ 'addAudience',
340
+ 'removeAudience',
341
+ ],
342
+
343
+ events: [
344
+ 'created',
345
+ 'updated',
346
+ 'deleted',
347
+ 'enabled',
348
+ 'paused',
349
+ 'bidChanged',
350
+ 'audienceAdded',
351
+ 'audienceRemoved',
352
+ ],
353
+ }
354
+
355
+ // =============================================================================
356
+ // Ad Campaign
357
+ // =============================================================================
358
+
359
+ /**
360
+ * Ad campaign entity
361
+ *
362
+ * Represents an advertising campaign
363
+ */
364
+ export const AdCampaign: Noun = {
365
+ singular: 'ad campaign',
366
+ plural: 'ad campaigns',
367
+ description: 'An advertising campaign',
368
+
369
+ properties: {
370
+ // Identity
371
+ name: {
372
+ type: 'string',
373
+ description: 'Campaign name',
374
+ },
375
+ objective: {
376
+ type: 'string',
377
+ description: 'Campaign objective: awareness, traffic, engagement, leads, sales',
378
+ examples: ['awareness', 'traffic', 'engagement', 'leads', 'sales', 'app_installs'],
379
+ },
380
+ type: {
381
+ type: 'string',
382
+ description: 'Campaign type: search, display, video, shopping, performance_max',
383
+ examples: ['search', 'display', 'video', 'shopping', 'performance_max', 'app'],
384
+ },
385
+
386
+ // Status
387
+ status: {
388
+ type: 'string',
389
+ description: 'Campaign status: enabled, paused, removed, ended',
390
+ examples: ['enabled', 'paused', 'removed', 'ended'],
391
+ },
392
+
393
+ // Schedule
394
+ startDate: {
395
+ type: 'datetime',
396
+ optional: true,
397
+ description: 'Campaign start date',
398
+ },
399
+ endDate: {
400
+ type: 'datetime',
401
+ optional: true,
402
+ description: 'Campaign end date',
403
+ },
404
+
405
+ // Budget
406
+ budget: {
407
+ type: 'number',
408
+ optional: true,
409
+ description: 'Campaign budget',
410
+ },
411
+ budgetType: {
412
+ type: 'string',
413
+ optional: true,
414
+ description: 'Budget type: daily, lifetime',
415
+ examples: ['daily', 'lifetime'],
416
+ },
417
+ spent: {
418
+ type: 'number',
419
+ optional: true,
420
+ description: 'Amount spent',
421
+ },
422
+ remainingBudget: {
423
+ type: 'number',
424
+ optional: true,
425
+ description: 'Remaining budget',
426
+ },
427
+
428
+ // Bidding
429
+ bidStrategy: {
430
+ type: 'string',
431
+ optional: true,
432
+ description: 'Bid strategy',
433
+ },
434
+ targetCpa: {
435
+ type: 'number',
436
+ optional: true,
437
+ description: 'Target CPA',
438
+ },
439
+ targetRoas: {
440
+ type: 'number',
441
+ optional: true,
442
+ description: 'Target ROAS',
443
+ },
444
+
445
+ // Targeting
446
+ geoTargets: {
447
+ type: 'string',
448
+ array: true,
449
+ optional: true,
450
+ description: 'Geographic targets',
451
+ },
452
+ languages: {
453
+ type: 'string',
454
+ array: true,
455
+ optional: true,
456
+ description: 'Target languages',
457
+ },
458
+ devices: {
459
+ type: 'string',
460
+ array: true,
461
+ optional: true,
462
+ description: 'Target devices',
463
+ },
464
+ schedule: {
465
+ type: 'json',
466
+ optional: true,
467
+ description: 'Ad schedule',
468
+ },
469
+
470
+ // Performance
471
+ impressions: {
472
+ type: 'number',
473
+ optional: true,
474
+ description: 'Total impressions',
475
+ },
476
+ clicks: {
477
+ type: 'number',
478
+ optional: true,
479
+ description: 'Total clicks',
480
+ },
481
+ ctr: {
482
+ type: 'number',
483
+ optional: true,
484
+ description: 'Click-through rate',
485
+ },
486
+ conversions: {
487
+ type: 'number',
488
+ optional: true,
489
+ description: 'Total conversions',
490
+ },
491
+ conversionValue: {
492
+ type: 'number',
493
+ optional: true,
494
+ description: 'Total conversion value',
495
+ },
496
+ cpc: {
497
+ type: 'number',
498
+ optional: true,
499
+ description: 'Average CPC',
500
+ },
501
+ cpa: {
502
+ type: 'number',
503
+ optional: true,
504
+ description: 'Average CPA',
505
+ },
506
+ roas: {
507
+ type: 'number',
508
+ optional: true,
509
+ description: 'Return on ad spend',
510
+ },
511
+ },
512
+
513
+ relationships: {
514
+ account: {
515
+ type: 'Account',
516
+ description: 'Advertising account',
517
+ },
518
+ adGroups: {
519
+ type: 'AdGroup[]',
520
+ backref: 'campaign',
521
+ description: 'Ad groups in this campaign',
522
+ },
523
+ conversions: {
524
+ type: 'Conversion[]',
525
+ description: 'Conversions attributed to this campaign',
526
+ },
527
+ },
528
+
529
+ actions: [
530
+ 'create',
531
+ 'update',
532
+ 'delete',
533
+ 'enable',
534
+ 'pause',
535
+ 'setBudget',
536
+ 'extendSchedule',
537
+ 'duplicate',
538
+ 'optimize',
539
+ ],
540
+
541
+ events: [
542
+ 'created',
543
+ 'updated',
544
+ 'deleted',
545
+ 'enabled',
546
+ 'paused',
547
+ 'budgetChanged',
548
+ 'scheduleExtended',
549
+ 'budgetExhausted',
550
+ 'ended',
551
+ ],
552
+ }
553
+
554
+ // =============================================================================
555
+ // Keyword
556
+ // =============================================================================
557
+
558
+ /**
559
+ * Keyword entity
560
+ *
561
+ * Represents a search keyword for advertising
562
+ */
563
+ export const Keyword: Noun = {
564
+ singular: 'keyword',
565
+ plural: 'keywords',
566
+ description: 'A search keyword for advertising',
567
+
568
+ properties: {
569
+ // Identity
570
+ text: {
571
+ type: 'string',
572
+ description: 'Keyword text',
573
+ },
574
+ matchType: {
575
+ type: 'string',
576
+ description: 'Match type: exact, phrase, broad',
577
+ examples: ['exact', 'phrase', 'broad'],
578
+ },
579
+
580
+ // Status
581
+ status: {
582
+ type: 'string',
583
+ description: 'Keyword status: enabled, paused, removed',
584
+ examples: ['enabled', 'paused', 'removed'],
585
+ },
586
+ qualityScore: {
587
+ type: 'number',
588
+ optional: true,
589
+ description: 'Quality score (1-10)',
590
+ },
591
+
592
+ // Bidding
593
+ bid: {
594
+ type: 'number',
595
+ optional: true,
596
+ description: 'Keyword bid',
597
+ },
598
+ estimatedFirstPageBid: {
599
+ type: 'number',
600
+ optional: true,
601
+ description: 'Estimated first page bid',
602
+ },
603
+ estimatedTopPageBid: {
604
+ type: 'number',
605
+ optional: true,
606
+ description: 'Estimated top of page bid',
607
+ },
608
+
609
+ // Performance
610
+ impressions: {
611
+ type: 'number',
612
+ optional: true,
613
+ description: 'Total impressions',
614
+ },
615
+ clicks: {
616
+ type: 'number',
617
+ optional: true,
618
+ description: 'Total clicks',
619
+ },
620
+ ctr: {
621
+ type: 'number',
622
+ optional: true,
623
+ description: 'Click-through rate',
624
+ },
625
+ conversions: {
626
+ type: 'number',
627
+ optional: true,
628
+ description: 'Total conversions',
629
+ },
630
+ cost: {
631
+ type: 'number',
632
+ optional: true,
633
+ description: 'Total cost',
634
+ },
635
+ avgCpc: {
636
+ type: 'number',
637
+ optional: true,
638
+ description: 'Average CPC',
639
+ },
640
+ avgPosition: {
641
+ type: 'number',
642
+ optional: true,
643
+ description: 'Average position',
644
+ },
645
+
646
+ // Search terms
647
+ searchVolume: {
648
+ type: 'number',
649
+ optional: true,
650
+ description: 'Monthly search volume',
651
+ },
652
+ competition: {
653
+ type: 'string',
654
+ optional: true,
655
+ description: 'Competition level: low, medium, high',
656
+ examples: ['low', 'medium', 'high'],
657
+ },
658
+ },
659
+
660
+ relationships: {
661
+ adGroup: {
662
+ type: 'AdGroup',
663
+ backref: 'keywords',
664
+ description: 'Parent ad group',
665
+ },
666
+ negativeKeyword: {
667
+ type: 'NegativeKeyword',
668
+ required: false,
669
+ description: 'If this is a negative keyword',
670
+ },
671
+ },
672
+
673
+ actions: [
674
+ 'create',
675
+ 'update',
676
+ 'delete',
677
+ 'enable',
678
+ 'pause',
679
+ 'setBid',
680
+ 'changeMatchType',
681
+ ],
682
+
683
+ events: [
684
+ 'created',
685
+ 'updated',
686
+ 'deleted',
687
+ 'enabled',
688
+ 'paused',
689
+ 'bidChanged',
690
+ 'matchTypeChanged',
691
+ ],
692
+ }
693
+
694
+ /**
695
+ * Negative keyword entity
696
+ */
697
+ export const NegativeKeyword: Noun = {
698
+ singular: 'negative keyword',
699
+ plural: 'negative keywords',
700
+ description: 'A negative keyword to exclude from targeting',
701
+
702
+ properties: {
703
+ text: {
704
+ type: 'string',
705
+ description: 'Keyword text',
706
+ },
707
+ matchType: {
708
+ type: 'string',
709
+ description: 'Match type: exact, phrase, broad',
710
+ examples: ['exact', 'phrase', 'broad'],
711
+ },
712
+ level: {
713
+ type: 'string',
714
+ description: 'Level: campaign, ad_group, account',
715
+ examples: ['campaign', 'ad_group', 'account'],
716
+ },
717
+ },
718
+
719
+ relationships: {
720
+ campaign: {
721
+ type: 'AdCampaign',
722
+ required: false,
723
+ description: 'Parent campaign',
724
+ },
725
+ adGroup: {
726
+ type: 'AdGroup',
727
+ required: false,
728
+ description: 'Parent ad group',
729
+ },
730
+ },
731
+
732
+ actions: ['create', 'delete'],
733
+
734
+ events: ['created', 'deleted'],
735
+ }
736
+
737
+ // =============================================================================
738
+ // Conversion
739
+ // =============================================================================
740
+
741
+ /**
742
+ * Conversion entity
743
+ *
744
+ * Represents a tracked conversion
745
+ */
746
+ export const Conversion: Noun = {
747
+ singular: 'conversion',
748
+ plural: 'conversions',
749
+ description: 'A tracked advertising conversion',
750
+
751
+ properties: {
752
+ // Identity
753
+ conversionName: {
754
+ type: 'string',
755
+ description: 'Conversion action name',
756
+ },
757
+ conversionType: {
758
+ type: 'string',
759
+ description: 'Conversion type: purchase, lead, signup, pageview, custom',
760
+ examples: ['purchase', 'lead', 'signup', 'pageview', 'download', 'custom'],
761
+ },
762
+
763
+ // Attribution
764
+ attributionModel: {
765
+ type: 'string',
766
+ optional: true,
767
+ description: 'Attribution model: last_click, first_click, linear, data_driven',
768
+ examples: ['last_click', 'first_click', 'linear', 'time_decay', 'data_driven'],
769
+ },
770
+ clickId: {
771
+ type: 'string',
772
+ optional: true,
773
+ description: 'Click ID that led to conversion',
774
+ },
775
+
776
+ // Value
777
+ value: {
778
+ type: 'number',
779
+ optional: true,
780
+ description: 'Conversion value',
781
+ },
782
+ currency: {
783
+ type: 'string',
784
+ optional: true,
785
+ description: 'Currency code',
786
+ },
787
+ quantity: {
788
+ type: 'number',
789
+ optional: true,
790
+ description: 'Number of conversions',
791
+ },
792
+
793
+ // Timing
794
+ timestamp: {
795
+ type: 'datetime',
796
+ description: 'Conversion timestamp',
797
+ },
798
+ clickTimestamp: {
799
+ type: 'datetime',
800
+ optional: true,
801
+ description: 'Original click timestamp',
802
+ },
803
+ conversionLag: {
804
+ type: 'number',
805
+ optional: true,
806
+ description: 'Days between click and conversion',
807
+ },
808
+
809
+ // Source
810
+ source: {
811
+ type: 'string',
812
+ optional: true,
813
+ description: 'Conversion source',
814
+ },
815
+ medium: {
816
+ type: 'string',
817
+ optional: true,
818
+ description: 'Traffic medium',
819
+ },
820
+ },
821
+
822
+ relationships: {
823
+ campaign: {
824
+ type: 'AdCampaign',
825
+ required: false,
826
+ description: 'Source campaign',
827
+ },
828
+ adGroup: {
829
+ type: 'AdGroup',
830
+ required: false,
831
+ description: 'Source ad group',
832
+ },
833
+ ad: {
834
+ type: 'Ad',
835
+ required: false,
836
+ description: 'Source ad',
837
+ },
838
+ keyword: {
839
+ type: 'Keyword',
840
+ required: false,
841
+ description: 'Source keyword',
842
+ },
843
+ },
844
+
845
+ actions: ['track', 'import', 'adjust', 'delete'],
846
+
847
+ events: ['tracked', 'imported', 'adjusted', 'deleted'],
848
+ }
849
+
850
+ // =============================================================================
851
+ // Budget
852
+ // =============================================================================
853
+
854
+ /**
855
+ * Budget entity
856
+ *
857
+ * Represents an advertising budget
858
+ */
859
+ export const Budget: Noun = {
860
+ singular: 'budget',
861
+ plural: 'budgets',
862
+ description: 'An advertising budget',
863
+
864
+ properties: {
865
+ // Identity
866
+ name: {
867
+ type: 'string',
868
+ description: 'Budget name',
869
+ },
870
+
871
+ // Amount
872
+ amount: {
873
+ type: 'number',
874
+ description: 'Budget amount',
875
+ },
876
+ currency: {
877
+ type: 'string',
878
+ description: 'Currency code',
879
+ },
880
+ period: {
881
+ type: 'string',
882
+ description: 'Budget period: daily, monthly, lifetime',
883
+ examples: ['daily', 'monthly', 'lifetime'],
884
+ },
885
+
886
+ // Delivery
887
+ deliveryMethod: {
888
+ type: 'string',
889
+ optional: true,
890
+ description: 'Delivery method: standard, accelerated',
891
+ examples: ['standard', 'accelerated'],
892
+ },
893
+
894
+ // Spending
895
+ spent: {
896
+ type: 'number',
897
+ optional: true,
898
+ description: 'Amount spent',
899
+ },
900
+ remaining: {
901
+ type: 'number',
902
+ optional: true,
903
+ description: 'Remaining amount',
904
+ },
905
+ percentUsed: {
906
+ type: 'number',
907
+ optional: true,
908
+ description: 'Percentage of budget used',
909
+ },
910
+
911
+ // Status
912
+ status: {
913
+ type: 'string',
914
+ description: 'Budget status: active, depleted, paused',
915
+ examples: ['active', 'depleted', 'paused'],
916
+ },
917
+ shared: {
918
+ type: 'boolean',
919
+ optional: true,
920
+ description: 'Whether budget is shared across campaigns',
921
+ },
922
+ },
923
+
924
+ relationships: {
925
+ campaigns: {
926
+ type: 'AdCampaign[]',
927
+ description: 'Campaigns using this budget',
928
+ },
929
+ },
930
+
931
+ actions: ['create', 'update', 'delete', 'increase', 'decrease'],
932
+
933
+ events: ['created', 'updated', 'deleted', 'increased', 'decreased', 'depleted'],
934
+ }
935
+
936
+ // =============================================================================
937
+ // Audience (for advertising)
938
+ // =============================================================================
939
+
940
+ /**
941
+ * Ad audience entity
942
+ *
943
+ * Represents a targetable audience for advertising
944
+ */
945
+ export const AdAudience: Noun = {
946
+ singular: 'ad audience',
947
+ plural: 'ad audiences',
948
+ description: 'A targetable audience for advertising',
949
+
950
+ properties: {
951
+ // Identity
952
+ name: {
953
+ type: 'string',
954
+ description: 'Audience name',
955
+ },
956
+ description: {
957
+ type: 'string',
958
+ optional: true,
959
+ description: 'Audience description',
960
+ },
961
+ type: {
962
+ type: 'string',
963
+ description: 'Audience type: custom, lookalike, remarketing, in_market, affinity',
964
+ examples: ['custom', 'lookalike', 'remarketing', 'in_market', 'affinity'],
965
+ },
966
+
967
+ // Source
968
+ source: {
969
+ type: 'string',
970
+ optional: true,
971
+ description: 'Audience source: website, app, crm, engagement',
972
+ examples: ['website', 'app', 'crm', 'engagement'],
973
+ },
974
+ sourceDetails: {
975
+ type: 'json',
976
+ optional: true,
977
+ description: 'Source configuration details',
978
+ },
979
+
980
+ // Size
981
+ size: {
982
+ type: 'number',
983
+ optional: true,
984
+ description: 'Estimated audience size',
985
+ },
986
+ sizeRange: {
987
+ type: 'string',
988
+ optional: true,
989
+ description: 'Size range description',
990
+ },
991
+
992
+ // Lookalike
993
+ seedAudience: {
994
+ type: 'string',
995
+ optional: true,
996
+ description: 'Seed audience for lookalike',
997
+ },
998
+ expansionLevel: {
999
+ type: 'number',
1000
+ optional: true,
1001
+ description: 'Lookalike expansion level (1-10)',
1002
+ },
1003
+
1004
+ // Status
1005
+ status: {
1006
+ type: 'string',
1007
+ description: 'Audience status: ready, populating, too_small, expired',
1008
+ examples: ['ready', 'populating', 'too_small', 'expired'],
1009
+ },
1010
+ membershipDuration: {
1011
+ type: 'number',
1012
+ optional: true,
1013
+ description: 'Membership duration in days',
1014
+ },
1015
+ },
1016
+
1017
+ relationships: {
1018
+ campaigns: {
1019
+ type: 'AdCampaign[]',
1020
+ description: 'Campaigns targeting this audience',
1021
+ },
1022
+ adGroups: {
1023
+ type: 'AdGroup[]',
1024
+ description: 'Ad groups targeting this audience',
1025
+ },
1026
+ },
1027
+
1028
+ actions: [
1029
+ 'create',
1030
+ 'update',
1031
+ 'delete',
1032
+ 'refresh',
1033
+ 'expand',
1034
+ 'createLookalike',
1035
+ 'share',
1036
+ ],
1037
+
1038
+ events: [
1039
+ 'created',
1040
+ 'updated',
1041
+ 'deleted',
1042
+ 'refreshed',
1043
+ 'expanded',
1044
+ 'lookalikeCreated',
1045
+ 'shared',
1046
+ 'ready',
1047
+ ],
1048
+ }
1049
+
1050
+ // =============================================================================
1051
+ // Export all entities as a schema
1052
+ // =============================================================================
1053
+
1054
+ /**
1055
+ * All advertising entity types
1056
+ */
1057
+ export const AdvertisingEntities = {
1058
+ // Ads
1059
+ Ad,
1060
+ AdGroup,
1061
+ AdCampaign,
1062
+
1063
+ // Keywords
1064
+ Keyword,
1065
+ NegativeKeyword,
1066
+
1067
+ // Conversions
1068
+ Conversion,
1069
+
1070
+ // Budget
1071
+ Budget,
1072
+
1073
+ // Audiences
1074
+ AdAudience,
1075
+ }
1076
+
1077
+ /**
1078
+ * Entity categories for organization
1079
+ */
1080
+ export const AdvertisingCategories = {
1081
+ ads: ['Ad', 'AdGroup', 'AdCampaign'],
1082
+ keywords: ['Keyword', 'NegativeKeyword'],
1083
+ conversions: ['Conversion'],
1084
+ budget: ['Budget'],
1085
+ audiences: ['AdAudience'],
1086
+ } as const