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,1093 @@
1
+ /**
2
+ * Identity & Security Entity Types (Nouns)
3
+ *
4
+ * Entities for identity management, authentication, and security.
5
+ * Covers WorkOS, Auth0, Okta, and similar identity platforms.
6
+ *
7
+ * @packageDocumentation
8
+ */
9
+
10
+ import type { Noun } from 'ai-database'
11
+
12
+ // =============================================================================
13
+ // Vault (Secret Management)
14
+ // =============================================================================
15
+
16
+ /**
17
+ * Vault entity
18
+ *
19
+ * Represents a secure vault for storing secrets and credentials
20
+ */
21
+ export const Vault: Noun = {
22
+ singular: 'vault',
23
+ plural: 'vaults',
24
+ description: 'A secure vault for storing secrets and credentials',
25
+
26
+ properties: {
27
+ // Identity
28
+ name: {
29
+ type: 'string',
30
+ description: 'Vault name',
31
+ },
32
+ description: {
33
+ type: 'string',
34
+ optional: true,
35
+ description: 'Vault description',
36
+ },
37
+
38
+ // Configuration
39
+ type: {
40
+ type: 'string',
41
+ description: 'Vault type: secrets, credentials, keys, certificates',
42
+ examples: ['secrets', 'credentials', 'keys', 'certificates'],
43
+ },
44
+ engine: {
45
+ type: 'string',
46
+ optional: true,
47
+ description: 'Secrets engine: kv, transit, pki, database',
48
+ examples: ['kv', 'transit', 'pki', 'database'],
49
+ },
50
+
51
+ // Status
52
+ sealed: {
53
+ type: 'boolean',
54
+ optional: true,
55
+ description: 'Whether vault is sealed',
56
+ },
57
+ initialized: {
58
+ type: 'boolean',
59
+ optional: true,
60
+ description: 'Whether vault is initialized',
61
+ },
62
+
63
+ // Metrics
64
+ secretCount: {
65
+ type: 'number',
66
+ optional: true,
67
+ description: 'Number of secrets stored',
68
+ },
69
+ version: {
70
+ type: 'number',
71
+ optional: true,
72
+ description: 'Vault version',
73
+ },
74
+
75
+ // Access
76
+ accessPolicy: {
77
+ type: 'json',
78
+ optional: true,
79
+ description: 'Access policy configuration',
80
+ },
81
+ },
82
+
83
+ relationships: {
84
+ secrets: {
85
+ type: 'VaultSecret[]',
86
+ backref: 'vault',
87
+ description: 'Secrets in this vault',
88
+ },
89
+ policies: {
90
+ type: 'VaultPolicy[]',
91
+ description: 'Access policies',
92
+ },
93
+ },
94
+
95
+ actions: [
96
+ 'create',
97
+ 'delete',
98
+ 'seal',
99
+ 'unseal',
100
+ 'addSecret',
101
+ 'removeSecret',
102
+ 'rotateSecrets',
103
+ 'setPolicy',
104
+ 'backup',
105
+ 'restore',
106
+ ],
107
+
108
+ events: [
109
+ 'created',
110
+ 'deleted',
111
+ 'sealed',
112
+ 'unsealed',
113
+ 'secretAdded',
114
+ 'secretRemoved',
115
+ 'secretsRotated',
116
+ 'policySet',
117
+ 'backedUp',
118
+ 'restored',
119
+ ],
120
+ }
121
+
122
+ /**
123
+ * Vault secret entity
124
+ */
125
+ export const VaultSecret: Noun = {
126
+ singular: 'vault secret',
127
+ plural: 'vault secrets',
128
+ description: 'A secret stored in a vault',
129
+
130
+ properties: {
131
+ // Identity
132
+ key: {
133
+ type: 'string',
134
+ description: 'Secret key/path',
135
+ },
136
+ description: {
137
+ type: 'string',
138
+ optional: true,
139
+ description: 'Secret description',
140
+ },
141
+
142
+ // Metadata
143
+ version: {
144
+ type: 'number',
145
+ optional: true,
146
+ description: 'Secret version',
147
+ },
148
+ type: {
149
+ type: 'string',
150
+ optional: true,
151
+ description: 'Secret type: password, api_key, token, certificate, connection_string',
152
+ examples: ['password', 'api_key', 'token', 'certificate', 'connection_string'],
153
+ },
154
+
155
+ // Rotation
156
+ rotationEnabled: {
157
+ type: 'boolean',
158
+ optional: true,
159
+ description: 'Whether auto-rotation is enabled',
160
+ },
161
+ rotationInterval: {
162
+ type: 'number',
163
+ optional: true,
164
+ description: 'Rotation interval in days',
165
+ },
166
+ lastRotatedAt: {
167
+ type: 'datetime',
168
+ optional: true,
169
+ description: 'Last rotation timestamp',
170
+ },
171
+ nextRotationAt: {
172
+ type: 'datetime',
173
+ optional: true,
174
+ description: 'Next scheduled rotation',
175
+ },
176
+
177
+ // Expiration
178
+ expiresAt: {
179
+ type: 'datetime',
180
+ optional: true,
181
+ description: 'Secret expiration date',
182
+ },
183
+ expired: {
184
+ type: 'boolean',
185
+ optional: true,
186
+ description: 'Whether secret has expired',
187
+ },
188
+
189
+ // Access
190
+ accessCount: {
191
+ type: 'number',
192
+ optional: true,
193
+ description: 'Number of times accessed',
194
+ },
195
+ lastAccessedAt: {
196
+ type: 'datetime',
197
+ optional: true,
198
+ description: 'Last access timestamp',
199
+ },
200
+ lastAccessedBy: {
201
+ type: 'string',
202
+ optional: true,
203
+ description: 'Last accessor',
204
+ },
205
+ },
206
+
207
+ relationships: {
208
+ vault: {
209
+ type: 'Vault',
210
+ backref: 'secrets',
211
+ description: 'Parent vault',
212
+ },
213
+ versions: {
214
+ type: 'SecretVersion[]',
215
+ description: 'Version history',
216
+ },
217
+ },
218
+
219
+ actions: ['create', 'update', 'delete', 'rotate', 'access', 'revoke'],
220
+
221
+ events: [
222
+ 'created',
223
+ 'updated',
224
+ 'deleted',
225
+ 'rotated',
226
+ 'accessed',
227
+ 'revoked',
228
+ 'expired',
229
+ ],
230
+ }
231
+
232
+ /**
233
+ * Secret version entity
234
+ */
235
+ export const SecretVersion: Noun = {
236
+ singular: 'secret version',
237
+ plural: 'secret versions',
238
+ description: 'A version of a vault secret',
239
+
240
+ properties: {
241
+ version: {
242
+ type: 'number',
243
+ description: 'Version number',
244
+ },
245
+ createdAt: {
246
+ type: 'datetime',
247
+ description: 'When version was created',
248
+ },
249
+ createdBy: {
250
+ type: 'string',
251
+ optional: true,
252
+ description: 'Who created this version',
253
+ },
254
+ destroyed: {
255
+ type: 'boolean',
256
+ optional: true,
257
+ description: 'Whether version is destroyed',
258
+ },
259
+ destroyedAt: {
260
+ type: 'datetime',
261
+ optional: true,
262
+ description: 'When version was destroyed',
263
+ },
264
+ },
265
+
266
+ relationships: {
267
+ secret: {
268
+ type: 'VaultSecret',
269
+ backref: 'versions',
270
+ description: 'Parent secret',
271
+ },
272
+ },
273
+
274
+ actions: ['create', 'destroy', 'restore'],
275
+
276
+ events: ['created', 'destroyed', 'restored'],
277
+ }
278
+
279
+ /**
280
+ * Vault policy entity
281
+ */
282
+ export const VaultPolicy: Noun = {
283
+ singular: 'vault policy',
284
+ plural: 'vault policies',
285
+ description: 'An access policy for a vault',
286
+
287
+ properties: {
288
+ name: {
289
+ type: 'string',
290
+ description: 'Policy name',
291
+ },
292
+ rules: {
293
+ type: 'json',
294
+ description: 'Policy rules',
295
+ },
296
+ type: {
297
+ type: 'string',
298
+ optional: true,
299
+ description: 'Policy type: acl, rbac',
300
+ examples: ['acl', 'rbac'],
301
+ },
302
+ },
303
+
304
+ relationships: {
305
+ vault: {
306
+ type: 'Vault',
307
+ description: 'Associated vault',
308
+ },
309
+ },
310
+
311
+ actions: ['create', 'update', 'delete', 'assign', 'revoke'],
312
+
313
+ events: ['created', 'updated', 'deleted', 'assigned', 'revoked'],
314
+ }
315
+
316
+ // =============================================================================
317
+ // SSO Connection
318
+ // =============================================================================
319
+
320
+ /**
321
+ * SSO connection entity
322
+ *
323
+ * Represents a Single Sign-On connection
324
+ */
325
+ export const SSOConnection: Noun = {
326
+ singular: 'sso connection',
327
+ plural: 'sso connections',
328
+ description: 'A Single Sign-On connection',
329
+
330
+ properties: {
331
+ // Identity
332
+ name: {
333
+ type: 'string',
334
+ description: 'Connection name',
335
+ },
336
+ type: {
337
+ type: 'string',
338
+ description: 'SSO type: saml, oidc, oauth2',
339
+ examples: ['saml', 'oidc', 'oauth2'],
340
+ },
341
+ provider: {
342
+ type: 'string',
343
+ optional: true,
344
+ description: 'Identity provider: okta, azure_ad, google, onelogin',
345
+ examples: ['okta', 'azure_ad', 'google', 'onelogin', 'custom'],
346
+ },
347
+
348
+ // Configuration - SAML
349
+ entityId: {
350
+ type: 'string',
351
+ optional: true,
352
+ description: 'SAML Entity ID',
353
+ },
354
+ acsUrl: {
355
+ type: 'url',
356
+ optional: true,
357
+ description: 'Assertion Consumer Service URL',
358
+ },
359
+ sloUrl: {
360
+ type: 'url',
361
+ optional: true,
362
+ description: 'Single Logout URL',
363
+ },
364
+ idpMetadataUrl: {
365
+ type: 'url',
366
+ optional: true,
367
+ description: 'IdP Metadata URL',
368
+ },
369
+ certificate: {
370
+ type: 'string',
371
+ optional: true,
372
+ description: 'X.509 certificate',
373
+ },
374
+
375
+ // Configuration - OIDC
376
+ clientId: {
377
+ type: 'string',
378
+ optional: true,
379
+ description: 'OIDC Client ID',
380
+ },
381
+ issuer: {
382
+ type: 'url',
383
+ optional: true,
384
+ description: 'OIDC Issuer URL',
385
+ },
386
+ authorizationUrl: {
387
+ type: 'url',
388
+ optional: true,
389
+ description: 'Authorization endpoint URL',
390
+ },
391
+ tokenUrl: {
392
+ type: 'url',
393
+ optional: true,
394
+ description: 'Token endpoint URL',
395
+ },
396
+ userInfoUrl: {
397
+ type: 'url',
398
+ optional: true,
399
+ description: 'User info endpoint URL',
400
+ },
401
+
402
+ // Status
403
+ status: {
404
+ type: 'string',
405
+ description: 'Connection status: active, inactive, pending, error',
406
+ examples: ['active', 'inactive', 'pending', 'error'],
407
+ },
408
+ verified: {
409
+ type: 'boolean',
410
+ optional: true,
411
+ description: 'Whether connection is verified',
412
+ },
413
+
414
+ // Domains
415
+ domains: {
416
+ type: 'string',
417
+ array: true,
418
+ optional: true,
419
+ description: 'Associated email domains',
420
+ },
421
+
422
+ // Settings
423
+ jitProvisioning: {
424
+ type: 'boolean',
425
+ optional: true,
426
+ description: 'Whether JIT provisioning is enabled',
427
+ },
428
+ defaultRole: {
429
+ type: 'string',
430
+ optional: true,
431
+ description: 'Default role for new users',
432
+ },
433
+ attributeMapping: {
434
+ type: 'json',
435
+ optional: true,
436
+ description: 'Attribute mapping configuration',
437
+ },
438
+ },
439
+
440
+ relationships: {
441
+ organization: {
442
+ type: 'Organization',
443
+ description: 'Organization this connection belongs to',
444
+ },
445
+ users: {
446
+ type: 'Identity[]',
447
+ description: 'Users authenticated via this connection',
448
+ },
449
+ },
450
+
451
+ actions: [
452
+ 'create',
453
+ 'update',
454
+ 'delete',
455
+ 'activate',
456
+ 'deactivate',
457
+ 'verify',
458
+ 'test',
459
+ 'addDomain',
460
+ 'removeDomain',
461
+ 'setAttributeMapping',
462
+ ],
463
+
464
+ events: [
465
+ 'created',
466
+ 'updated',
467
+ 'deleted',
468
+ 'activated',
469
+ 'deactivated',
470
+ 'verified',
471
+ 'tested',
472
+ 'domainAdded',
473
+ 'domainRemoved',
474
+ 'loginSucceeded',
475
+ 'loginFailed',
476
+ ],
477
+ }
478
+
479
+ // =============================================================================
480
+ // Directory
481
+ // =============================================================================
482
+
483
+ /**
484
+ * Directory entity
485
+ *
486
+ * Represents an identity directory (SCIM, LDAP, etc.)
487
+ */
488
+ export const Directory: Noun = {
489
+ singular: 'directory',
490
+ plural: 'directories',
491
+ description: 'An identity directory for user/group synchronization',
492
+
493
+ properties: {
494
+ // Identity
495
+ name: {
496
+ type: 'string',
497
+ description: 'Directory sync name',
498
+ },
499
+ type: {
500
+ type: 'string',
501
+ description: 'Directory type: scim, ldap, azure_ad, okta, google',
502
+ examples: ['scim', 'ldap', 'azure_ad', 'okta', 'google'],
503
+ },
504
+
505
+ // Configuration
506
+ endpoint: {
507
+ type: 'url',
508
+ optional: true,
509
+ description: 'SCIM endpoint URL',
510
+ },
511
+ bearerToken: {
512
+ type: 'string',
513
+ optional: true,
514
+ description: 'Bearer token for authentication',
515
+ },
516
+
517
+ // Status
518
+ status: {
519
+ type: 'string',
520
+ description: 'Sync status: active, inactive, syncing, error',
521
+ examples: ['active', 'inactive', 'syncing', 'error'],
522
+ },
523
+ lastSyncAt: {
524
+ type: 'datetime',
525
+ optional: true,
526
+ description: 'Last sync timestamp',
527
+ },
528
+ lastSyncStatus: {
529
+ type: 'string',
530
+ optional: true,
531
+ description: 'Last sync status',
532
+ },
533
+
534
+ // Sync settings
535
+ syncInterval: {
536
+ type: 'number',
537
+ optional: true,
538
+ description: 'Sync interval in minutes',
539
+ },
540
+ autoProvision: {
541
+ type: 'boolean',
542
+ optional: true,
543
+ description: 'Whether to auto-provision users',
544
+ },
545
+ autoDeprovision: {
546
+ type: 'boolean',
547
+ optional: true,
548
+ description: 'Whether to auto-deprovision users',
549
+ },
550
+
551
+ // Metrics
552
+ userCount: {
553
+ type: 'number',
554
+ optional: true,
555
+ description: 'Number of synced users',
556
+ },
557
+ groupCount: {
558
+ type: 'number',
559
+ optional: true,
560
+ description: 'Number of synced groups',
561
+ },
562
+ },
563
+
564
+ relationships: {
565
+ organization: {
566
+ type: 'Organization',
567
+ description: 'Organization this sync belongs to',
568
+ },
569
+ users: {
570
+ type: 'DirectoryUser[]',
571
+ description: 'Synced users',
572
+ },
573
+ groups: {
574
+ type: 'DirectoryGroup[]',
575
+ description: 'Synced groups',
576
+ },
577
+ },
578
+
579
+ actions: [
580
+ 'create',
581
+ 'update',
582
+ 'delete',
583
+ 'activate',
584
+ 'deactivate',
585
+ 'sync',
586
+ 'forceSync',
587
+ 'regenerateToken',
588
+ ],
589
+
590
+ events: [
591
+ 'created',
592
+ 'updated',
593
+ 'deleted',
594
+ 'activated',
595
+ 'deactivated',
596
+ 'syncStarted',
597
+ 'syncCompleted',
598
+ 'syncFailed',
599
+ 'userProvisioned',
600
+ 'userDeprovisioned',
601
+ 'groupCreated',
602
+ 'groupDeleted',
603
+ ],
604
+ }
605
+
606
+ /**
607
+ * Directory user entity
608
+ */
609
+ export const DirectoryUser: Noun = {
610
+ singular: 'directory user',
611
+ plural: 'directory users',
612
+ description: 'A user synced from a directory',
613
+
614
+ properties: {
615
+ externalId: {
616
+ type: 'string',
617
+ description: 'External ID from directory',
618
+ },
619
+ email: {
620
+ type: 'string',
621
+ description: 'User email',
622
+ },
623
+ firstName: {
624
+ type: 'string',
625
+ optional: true,
626
+ description: 'First name',
627
+ },
628
+ lastName: {
629
+ type: 'string',
630
+ optional: true,
631
+ description: 'Last name',
632
+ },
633
+ username: {
634
+ type: 'string',
635
+ optional: true,
636
+ description: 'Username',
637
+ },
638
+ state: {
639
+ type: 'string',
640
+ description: 'User state: active, suspended, deleted',
641
+ examples: ['active', 'suspended', 'deleted'],
642
+ },
643
+ customAttributes: {
644
+ type: 'json',
645
+ optional: true,
646
+ description: 'Custom attributes from directory',
647
+ },
648
+ lastSyncedAt: {
649
+ type: 'datetime',
650
+ optional: true,
651
+ description: 'Last sync timestamp',
652
+ },
653
+ },
654
+
655
+ relationships: {
656
+ directory: {
657
+ type: 'Directory',
658
+ backref: 'users',
659
+ description: 'Parent directory sync',
660
+ },
661
+ groups: {
662
+ type: 'DirectoryGroup[]',
663
+ description: 'Groups this user belongs to',
664
+ },
665
+ identity: {
666
+ type: 'Identity',
667
+ required: false,
668
+ description: 'Linked identity',
669
+ },
670
+ },
671
+
672
+ actions: ['provision', 'deprovision', 'suspend', 'reactivate', 'sync'],
673
+
674
+ events: ['provisioned', 'deprovisioned', 'suspended', 'reactivated', 'synced'],
675
+ }
676
+
677
+ /**
678
+ * Directory group entity
679
+ */
680
+ export const DirectoryGroup: Noun = {
681
+ singular: 'directory group',
682
+ plural: 'directory groups',
683
+ description: 'A group synced from a directory',
684
+
685
+ properties: {
686
+ externalId: {
687
+ type: 'string',
688
+ description: 'External ID from directory',
689
+ },
690
+ name: {
691
+ type: 'string',
692
+ description: 'Group name',
693
+ },
694
+ description: {
695
+ type: 'string',
696
+ optional: true,
697
+ description: 'Group description',
698
+ },
699
+ memberCount: {
700
+ type: 'number',
701
+ optional: true,
702
+ description: 'Number of members',
703
+ },
704
+ lastSyncedAt: {
705
+ type: 'datetime',
706
+ optional: true,
707
+ description: 'Last sync timestamp',
708
+ },
709
+ },
710
+
711
+ relationships: {
712
+ directory: {
713
+ type: 'Directory',
714
+ backref: 'groups',
715
+ description: 'Parent directory sync',
716
+ },
717
+ members: {
718
+ type: 'DirectoryUser[]',
719
+ description: 'Group members',
720
+ },
721
+ },
722
+
723
+ actions: ['create', 'delete', 'addMember', 'removeMember', 'sync'],
724
+
725
+ events: ['created', 'deleted', 'memberAdded', 'memberRemoved', 'synced'],
726
+ }
727
+
728
+ // =============================================================================
729
+ // Audit Log
730
+ // =============================================================================
731
+
732
+ /**
733
+ * Audit log entity
734
+ *
735
+ * Represents an audit log entry
736
+ */
737
+ export const AuditLog: Noun = {
738
+ singular: 'audit log',
739
+ plural: 'audit logs',
740
+ description: 'An audit log entry for security and compliance',
741
+
742
+ properties: {
743
+ // Event
744
+ action: {
745
+ type: 'string',
746
+ description: 'Action performed',
747
+ },
748
+ category: {
749
+ type: 'string',
750
+ description: 'Event category: auth, access, data, admin, system',
751
+ examples: ['auth', 'access', 'data', 'admin', 'system'],
752
+ },
753
+ description: {
754
+ type: 'string',
755
+ optional: true,
756
+ description: 'Event description',
757
+ },
758
+
759
+ // Actor
760
+ actorId: {
761
+ type: 'string',
762
+ optional: true,
763
+ description: 'Actor user ID',
764
+ },
765
+ actorEmail: {
766
+ type: 'string',
767
+ optional: true,
768
+ description: 'Actor email',
769
+ },
770
+ actorName: {
771
+ type: 'string',
772
+ optional: true,
773
+ description: 'Actor name',
774
+ },
775
+ actorType: {
776
+ type: 'string',
777
+ optional: true,
778
+ description: 'Actor type: user, service, system',
779
+ examples: ['user', 'service', 'system'],
780
+ },
781
+
782
+ // Target
783
+ targetId: {
784
+ type: 'string',
785
+ optional: true,
786
+ description: 'Target resource ID',
787
+ },
788
+ targetType: {
789
+ type: 'string',
790
+ optional: true,
791
+ description: 'Target resource type',
792
+ },
793
+ targetName: {
794
+ type: 'string',
795
+ optional: true,
796
+ description: 'Target resource name',
797
+ },
798
+
799
+ // Context
800
+ ipAddress: {
801
+ type: 'string',
802
+ optional: true,
803
+ description: 'IP address',
804
+ },
805
+ userAgent: {
806
+ type: 'string',
807
+ optional: true,
808
+ description: 'User agent string',
809
+ },
810
+ location: {
811
+ type: 'json',
812
+ optional: true,
813
+ description: 'Geographic location',
814
+ },
815
+ sessionId: {
816
+ type: 'string',
817
+ optional: true,
818
+ description: 'Session ID',
819
+ },
820
+
821
+ // Result
822
+ outcome: {
823
+ type: 'string',
824
+ description: 'Outcome: success, failure, error',
825
+ examples: ['success', 'failure', 'error'],
826
+ },
827
+ errorCode: {
828
+ type: 'string',
829
+ optional: true,
830
+ description: 'Error code if failed',
831
+ },
832
+ errorMessage: {
833
+ type: 'string',
834
+ optional: true,
835
+ description: 'Error message if failed',
836
+ },
837
+
838
+ // Changes
839
+ changes: {
840
+ type: 'json',
841
+ optional: true,
842
+ description: 'Changes made (before/after)',
843
+ },
844
+
845
+ // Metadata
846
+ timestamp: {
847
+ type: 'datetime',
848
+ description: 'Event timestamp',
849
+ },
850
+ metadata: {
851
+ type: 'json',
852
+ optional: true,
853
+ description: 'Additional metadata',
854
+ },
855
+ },
856
+
857
+ relationships: {
858
+ actor: {
859
+ type: 'Identity',
860
+ required: false,
861
+ description: 'Actor identity',
862
+ },
863
+ organization: {
864
+ type: 'Organization',
865
+ required: false,
866
+ description: 'Organization context',
867
+ },
868
+ },
869
+
870
+ actions: ['log', 'query', 'export', 'archive'],
871
+
872
+ events: ['logged'],
873
+ }
874
+
875
+ // =============================================================================
876
+ // Organization
877
+ // =============================================================================
878
+
879
+ /**
880
+ * Organization entity
881
+ *
882
+ * Represents an organization for multi-tenancy
883
+ */
884
+ export const Organization: Noun = {
885
+ singular: 'organization',
886
+ plural: 'organizations',
887
+ description: 'An organization for multi-tenant identity management',
888
+
889
+ properties: {
890
+ // Identity
891
+ name: {
892
+ type: 'string',
893
+ description: 'Organization name',
894
+ },
895
+ slug: {
896
+ type: 'string',
897
+ optional: true,
898
+ description: 'URL-friendly slug',
899
+ },
900
+ domain: {
901
+ type: 'string',
902
+ optional: true,
903
+ description: 'Primary domain',
904
+ },
905
+ domains: {
906
+ type: 'string',
907
+ array: true,
908
+ optional: true,
909
+ description: 'All verified domains',
910
+ },
911
+
912
+ // Branding
913
+ logo: {
914
+ type: 'url',
915
+ optional: true,
916
+ description: 'Organization logo',
917
+ },
918
+
919
+ // Settings
920
+ allowedAuthMethods: {
921
+ type: 'string',
922
+ array: true,
923
+ optional: true,
924
+ description: 'Allowed authentication methods',
925
+ },
926
+ mfaRequired: {
927
+ type: 'boolean',
928
+ optional: true,
929
+ description: 'Whether MFA is required',
930
+ },
931
+ sessionTimeout: {
932
+ type: 'number',
933
+ optional: true,
934
+ description: 'Session timeout in minutes',
935
+ },
936
+
937
+ // Status
938
+ status: {
939
+ type: 'string',
940
+ description: 'Organization status: active, suspended, deleted',
941
+ examples: ['active', 'suspended', 'deleted'],
942
+ },
943
+
944
+ // Metrics
945
+ memberCount: {
946
+ type: 'number',
947
+ optional: true,
948
+ description: 'Number of members',
949
+ },
950
+ },
951
+
952
+ relationships: {
953
+ members: {
954
+ type: 'OrganizationMember[]',
955
+ backref: 'organization',
956
+ description: 'Organization members',
957
+ },
958
+ ssoConnections: {
959
+ type: 'SSOConnection[]',
960
+ description: 'SSO connections',
961
+ },
962
+ directorySyncs: {
963
+ type: 'Directory[]',
964
+ description: 'Directory syncs',
965
+ },
966
+ auditLogs: {
967
+ type: 'AuditLog[]',
968
+ description: 'Audit logs',
969
+ },
970
+ },
971
+
972
+ actions: [
973
+ 'create',
974
+ 'update',
975
+ 'delete',
976
+ 'suspend',
977
+ 'reactivate',
978
+ 'addMember',
979
+ 'removeMember',
980
+ 'verifyDomain',
981
+ 'removeDomain',
982
+ 'setMfaRequired',
983
+ ],
984
+
985
+ events: [
986
+ 'created',
987
+ 'updated',
988
+ 'deleted',
989
+ 'suspended',
990
+ 'reactivated',
991
+ 'memberAdded',
992
+ 'memberRemoved',
993
+ 'domainVerified',
994
+ 'domainRemoved',
995
+ 'mfaRequirementChanged',
996
+ ],
997
+ }
998
+
999
+ /**
1000
+ * Organization member entity
1001
+ */
1002
+ export const OrganizationMember: Noun = {
1003
+ singular: 'organization member',
1004
+ plural: 'organization members',
1005
+ description: 'A member of an organization',
1006
+
1007
+ properties: {
1008
+ role: {
1009
+ type: 'string',
1010
+ description: 'Member role: owner, admin, member, guest',
1011
+ examples: ['owner', 'admin', 'member', 'guest'],
1012
+ },
1013
+ status: {
1014
+ type: 'string',
1015
+ description: 'Membership status: active, invited, suspended',
1016
+ examples: ['active', 'invited', 'suspended'],
1017
+ },
1018
+ invitedAt: {
1019
+ type: 'datetime',
1020
+ optional: true,
1021
+ description: 'When member was invited',
1022
+ },
1023
+ joinedAt: {
1024
+ type: 'datetime',
1025
+ optional: true,
1026
+ description: 'When member joined',
1027
+ },
1028
+ },
1029
+
1030
+ relationships: {
1031
+ organization: {
1032
+ type: 'Organization',
1033
+ backref: 'members',
1034
+ description: 'Parent organization',
1035
+ },
1036
+ identity: {
1037
+ type: 'Identity',
1038
+ description: 'Member identity',
1039
+ },
1040
+ },
1041
+
1042
+ actions: ['invite', 'accept', 'remove', 'setRole', 'suspend', 'reactivate'],
1043
+
1044
+ events: [
1045
+ 'invited',
1046
+ 'accepted',
1047
+ 'removed',
1048
+ 'roleChanged',
1049
+ 'suspended',
1050
+ 'reactivated',
1051
+ ],
1052
+ }
1053
+
1054
+ // =============================================================================
1055
+ // Export all entities as a schema
1056
+ // =============================================================================
1057
+
1058
+ /**
1059
+ * All identity entity types
1060
+ */
1061
+ export const IdentityEntities = {
1062
+ // Vault
1063
+ Vault,
1064
+ VaultSecret,
1065
+ SecretVersion,
1066
+ VaultPolicy,
1067
+
1068
+ // SSO
1069
+ SSOConnection,
1070
+
1071
+ // Directory Sync
1072
+ Directory,
1073
+ DirectoryUser,
1074
+ DirectoryGroup,
1075
+
1076
+ // Audit
1077
+ AuditLog,
1078
+
1079
+ // Organizations
1080
+ Organization,
1081
+ OrganizationMember,
1082
+ }
1083
+
1084
+ /**
1085
+ * Entity categories for organization
1086
+ */
1087
+ export const IdentityCategories = {
1088
+ vault: ['Vault', 'VaultSecret', 'SecretVersion', 'VaultPolicy'],
1089
+ sso: ['SSOConnection'],
1090
+ directory: ['Directory', 'DirectoryUser', 'DirectoryGroup'],
1091
+ audit: ['AuditLog'],
1092
+ organization: ['Organization', 'OrganizationMember'],
1093
+ } as const