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,2213 @@
1
+ /**
2
+ * Development Tool Entity Types (Nouns)
3
+ *
4
+ * Semantic type definitions for code development and version control tools.
5
+ * Each entity defines:
6
+ * - Properties: The data fields
7
+ * - Actions: Operations that can be performed (Verbs)
8
+ * - Events: State changes that occur
9
+ *
10
+ * @packageDocumentation
11
+ */
12
+ // =============================================================================
13
+ // Repository
14
+ // =============================================================================
15
+ /**
16
+ * Code repository entity
17
+ *
18
+ * Represents a version control repository for managing source code
19
+ */
20
+ export const Repository = {
21
+ singular: 'repository',
22
+ plural: 'repositories',
23
+ description: 'A code repository for version control and collaboration',
24
+ properties: {
25
+ // Identity
26
+ name: {
27
+ type: 'string',
28
+ description: 'Repository name',
29
+ },
30
+ fullName: {
31
+ type: 'string',
32
+ optional: true,
33
+ description: 'Full repository name including owner (e.g., owner/repo)',
34
+ },
35
+ description: {
36
+ type: 'string',
37
+ optional: true,
38
+ description: 'Repository description',
39
+ },
40
+ // Configuration
41
+ visibility: {
42
+ type: 'string',
43
+ description: 'Repository visibility: public, private, internal',
44
+ examples: ['public', 'private', 'internal'],
45
+ },
46
+ defaultBranch: {
47
+ type: 'string',
48
+ description: 'Default branch name (e.g., main, master)',
49
+ },
50
+ language: {
51
+ type: 'string',
52
+ optional: true,
53
+ description: 'Primary programming language',
54
+ },
55
+ topics: {
56
+ type: 'string',
57
+ array: true,
58
+ optional: true,
59
+ description: 'Repository topics/tags',
60
+ },
61
+ // Settings
62
+ allowForking: {
63
+ type: 'boolean',
64
+ optional: true,
65
+ description: 'Whether forking is allowed',
66
+ },
67
+ allowMergeCommit: {
68
+ type: 'boolean',
69
+ optional: true,
70
+ description: 'Whether merge commits are allowed',
71
+ },
72
+ allowSquashMerge: {
73
+ type: 'boolean',
74
+ optional: true,
75
+ description: 'Whether squash merging is allowed',
76
+ },
77
+ allowRebaseMerge: {
78
+ type: 'boolean',
79
+ optional: true,
80
+ description: 'Whether rebase merging is allowed',
81
+ },
82
+ deleteBranchOnMerge: {
83
+ type: 'boolean',
84
+ optional: true,
85
+ description: 'Whether to auto-delete branches after merge',
86
+ },
87
+ // Status
88
+ archived: {
89
+ type: 'boolean',
90
+ optional: true,
91
+ description: 'Whether the repository is archived',
92
+ },
93
+ disabled: {
94
+ type: 'boolean',
95
+ optional: true,
96
+ description: 'Whether the repository is disabled',
97
+ },
98
+ // Statistics
99
+ size: {
100
+ type: 'number',
101
+ optional: true,
102
+ description: 'Repository size in kilobytes',
103
+ },
104
+ starCount: {
105
+ type: 'number',
106
+ optional: true,
107
+ description: 'Number of stars',
108
+ },
109
+ forkCount: {
110
+ type: 'number',
111
+ optional: true,
112
+ description: 'Number of forks',
113
+ },
114
+ watcherCount: {
115
+ type: 'number',
116
+ optional: true,
117
+ description: 'Number of watchers',
118
+ },
119
+ openIssueCount: {
120
+ type: 'number',
121
+ optional: true,
122
+ description: 'Number of open issues',
123
+ },
124
+ // URLs
125
+ url: {
126
+ type: 'url',
127
+ optional: true,
128
+ description: 'Repository web URL',
129
+ },
130
+ cloneUrl: {
131
+ type: 'url',
132
+ optional: true,
133
+ description: 'Git clone URL',
134
+ },
135
+ sshUrl: {
136
+ type: 'string',
137
+ optional: true,
138
+ description: 'SSH clone URL',
139
+ },
140
+ homepage: {
141
+ type: 'url',
142
+ optional: true,
143
+ description: 'Project homepage URL',
144
+ },
145
+ // Metadata
146
+ license: {
147
+ type: 'string',
148
+ optional: true,
149
+ description: 'Repository license (e.g., MIT, Apache-2.0)',
150
+ },
151
+ hasIssues: {
152
+ type: 'boolean',
153
+ optional: true,
154
+ description: 'Whether issues are enabled',
155
+ },
156
+ hasProjects: {
157
+ type: 'boolean',
158
+ optional: true,
159
+ description: 'Whether projects are enabled',
160
+ },
161
+ hasWiki: {
162
+ type: 'boolean',
163
+ optional: true,
164
+ description: 'Whether wiki is enabled',
165
+ },
166
+ },
167
+ relationships: {
168
+ owner: {
169
+ type: 'Contact',
170
+ description: 'Repository owner/organization',
171
+ },
172
+ branches: {
173
+ type: 'Branch[]',
174
+ backref: 'repository',
175
+ description: 'Branches in this repository',
176
+ },
177
+ commits: {
178
+ type: 'Commit[]',
179
+ backref: 'repository',
180
+ description: 'Commits in this repository',
181
+ },
182
+ pullRequests: {
183
+ type: 'PullRequest[]',
184
+ backref: 'repository',
185
+ description: 'Pull requests in this repository',
186
+ },
187
+ issues: {
188
+ type: 'CodeIssue[]',
189
+ backref: 'repository',
190
+ description: 'Issues in this repository',
191
+ },
192
+ releases: {
193
+ type: 'Release[]',
194
+ backref: 'repository',
195
+ description: 'Releases/tags in this repository',
196
+ },
197
+ workflows: {
198
+ type: 'Workflow[]',
199
+ backref: 'repository',
200
+ description: 'CI/CD workflows in this repository',
201
+ },
202
+ collaborators: {
203
+ type: 'Contact[]',
204
+ description: 'Repository collaborators',
205
+ },
206
+ },
207
+ actions: [
208
+ 'create',
209
+ 'clone',
210
+ 'fork',
211
+ 'archive',
212
+ 'unarchive',
213
+ 'delete',
214
+ 'transfer',
215
+ 'rename',
216
+ 'updateSettings',
217
+ 'addCollaborator',
218
+ 'removeCollaborator',
219
+ 'star',
220
+ 'unstar',
221
+ 'watch',
222
+ 'unwatch',
223
+ 'enableFeature',
224
+ 'disableFeature',
225
+ ],
226
+ events: [
227
+ 'created',
228
+ 'cloned',
229
+ 'forked',
230
+ 'archived',
231
+ 'unarchived',
232
+ 'deleted',
233
+ 'transferred',
234
+ 'renamed',
235
+ 'settingsUpdated',
236
+ 'collaboratorAdded',
237
+ 'collaboratorRemoved',
238
+ 'starred',
239
+ 'unstarred',
240
+ 'watched',
241
+ 'unwatched',
242
+ 'pushed',
243
+ ],
244
+ };
245
+ // =============================================================================
246
+ // Branch
247
+ // =============================================================================
248
+ /**
249
+ * Git branch entity
250
+ *
251
+ * Represents a branch in a git repository
252
+ */
253
+ export const Branch = {
254
+ singular: 'branch',
255
+ plural: 'branches',
256
+ description: 'A git branch for parallel development',
257
+ properties: {
258
+ name: {
259
+ type: 'string',
260
+ description: 'Branch name',
261
+ },
262
+ fullName: {
263
+ type: 'string',
264
+ optional: true,
265
+ description: 'Full reference name (e.g., refs/heads/main)',
266
+ },
267
+ // Status
268
+ isDefault: {
269
+ type: 'boolean',
270
+ optional: true,
271
+ description: 'Whether this is the default branch',
272
+ },
273
+ isProtected: {
274
+ type: 'boolean',
275
+ optional: true,
276
+ description: 'Whether this branch is protected',
277
+ },
278
+ // Commit info
279
+ sha: {
280
+ type: 'string',
281
+ optional: true,
282
+ description: 'SHA of the latest commit',
283
+ },
284
+ commitMessage: {
285
+ type: 'string',
286
+ optional: true,
287
+ description: 'Latest commit message',
288
+ },
289
+ // Comparison
290
+ aheadBy: {
291
+ type: 'number',
292
+ optional: true,
293
+ description: 'Commits ahead of base branch',
294
+ },
295
+ behindBy: {
296
+ type: 'number',
297
+ optional: true,
298
+ description: 'Commits behind base branch',
299
+ },
300
+ // Protection rules
301
+ requirePullRequest: {
302
+ type: 'boolean',
303
+ optional: true,
304
+ description: 'Whether pull requests are required for changes',
305
+ },
306
+ requiredReviewers: {
307
+ type: 'number',
308
+ optional: true,
309
+ description: 'Number of required reviewers',
310
+ },
311
+ requireStatusChecks: {
312
+ type: 'boolean',
313
+ optional: true,
314
+ description: 'Whether status checks must pass',
315
+ },
316
+ requireSignedCommits: {
317
+ type: 'boolean',
318
+ optional: true,
319
+ description: 'Whether commits must be signed',
320
+ },
321
+ allowForcePush: {
322
+ type: 'boolean',
323
+ optional: true,
324
+ description: 'Whether force pushing is allowed',
325
+ },
326
+ allowDeletion: {
327
+ type: 'boolean',
328
+ optional: true,
329
+ description: 'Whether branch deletion is allowed',
330
+ },
331
+ },
332
+ relationships: {
333
+ repository: {
334
+ type: 'Repository',
335
+ backref: 'branches',
336
+ description: 'Repository this branch belongs to',
337
+ },
338
+ latestCommit: {
339
+ type: 'Commit',
340
+ description: 'The latest commit on this branch',
341
+ },
342
+ pullRequests: {
343
+ type: 'PullRequest[]',
344
+ description: 'Pull requests for this branch',
345
+ },
346
+ },
347
+ actions: [
348
+ 'create',
349
+ 'delete',
350
+ 'rename',
351
+ 'protect',
352
+ 'unprotect',
353
+ 'merge',
354
+ 'rebase',
355
+ 'checkout',
356
+ 'push',
357
+ 'pull',
358
+ 'reset',
359
+ 'compare',
360
+ ],
361
+ events: [
362
+ 'created',
363
+ 'deleted',
364
+ 'renamed',
365
+ 'protected',
366
+ 'unprotected',
367
+ 'merged',
368
+ 'rebased',
369
+ 'pushed',
370
+ 'pulled',
371
+ 'updated',
372
+ ],
373
+ };
374
+ // =============================================================================
375
+ // Commit
376
+ // =============================================================================
377
+ /**
378
+ * Git commit entity
379
+ *
380
+ * Represents a git commit with changes to the codebase
381
+ */
382
+ export const Commit = {
383
+ singular: 'commit',
384
+ plural: 'commits',
385
+ description: 'A git commit representing a set of changes',
386
+ properties: {
387
+ // Identity
388
+ sha: {
389
+ type: 'string',
390
+ description: 'Commit SHA hash',
391
+ },
392
+ shortSha: {
393
+ type: 'string',
394
+ optional: true,
395
+ description: 'Short SHA (first 7 characters)',
396
+ },
397
+ // Content
398
+ message: {
399
+ type: 'string',
400
+ description: 'Commit message',
401
+ },
402
+ title: {
403
+ type: 'string',
404
+ optional: true,
405
+ description: 'First line of commit message',
406
+ },
407
+ body: {
408
+ type: 'string',
409
+ optional: true,
410
+ description: 'Remaining lines of commit message',
411
+ },
412
+ // Author info
413
+ authorName: {
414
+ type: 'string',
415
+ description: 'Author name',
416
+ },
417
+ authorEmail: {
418
+ type: 'string',
419
+ description: 'Author email',
420
+ },
421
+ authoredAt: {
422
+ type: 'datetime',
423
+ description: 'When the commit was authored',
424
+ },
425
+ // Committer info (may differ from author)
426
+ committerName: {
427
+ type: 'string',
428
+ optional: true,
429
+ description: 'Committer name',
430
+ },
431
+ committerEmail: {
432
+ type: 'string',
433
+ optional: true,
434
+ description: 'Committer email',
435
+ },
436
+ committedAt: {
437
+ type: 'datetime',
438
+ optional: true,
439
+ description: 'When the commit was committed',
440
+ },
441
+ // Changes
442
+ filesChanged: {
443
+ type: 'number',
444
+ optional: true,
445
+ description: 'Number of files changed',
446
+ },
447
+ additions: {
448
+ type: 'number',
449
+ optional: true,
450
+ description: 'Lines added',
451
+ },
452
+ deletions: {
453
+ type: 'number',
454
+ optional: true,
455
+ description: 'Lines deleted',
456
+ },
457
+ changedFiles: {
458
+ type: 'json',
459
+ optional: true,
460
+ description: 'List of changed files with their changes',
461
+ },
462
+ // Verification
463
+ verified: {
464
+ type: 'boolean',
465
+ optional: true,
466
+ description: 'Whether the commit signature is verified',
467
+ },
468
+ signature: {
469
+ type: 'string',
470
+ optional: true,
471
+ description: 'GPG signature',
472
+ },
473
+ // Relationships to other commits
474
+ parentShas: {
475
+ type: 'string',
476
+ array: true,
477
+ optional: true,
478
+ description: 'Parent commit SHAs',
479
+ },
480
+ treeSha: {
481
+ type: 'string',
482
+ optional: true,
483
+ description: 'Git tree SHA',
484
+ },
485
+ // URLs
486
+ url: {
487
+ type: 'url',
488
+ optional: true,
489
+ description: 'Commit web URL',
490
+ },
491
+ htmlUrl: {
492
+ type: 'url',
493
+ optional: true,
494
+ description: 'Commit HTML page URL',
495
+ },
496
+ },
497
+ relationships: {
498
+ repository: {
499
+ type: 'Repository',
500
+ backref: 'commits',
501
+ description: 'Repository this commit belongs to',
502
+ },
503
+ author: {
504
+ type: 'Contact',
505
+ description: 'Commit author',
506
+ },
507
+ committer: {
508
+ type: 'Contact',
509
+ required: false,
510
+ description: 'Person who committed (if different from author)',
511
+ },
512
+ parents: {
513
+ type: 'Commit[]',
514
+ description: 'Parent commits',
515
+ },
516
+ branch: {
517
+ type: 'Branch',
518
+ required: false,
519
+ description: 'Branch this commit is on',
520
+ },
521
+ pullRequest: {
522
+ type: 'PullRequest',
523
+ required: false,
524
+ description: 'Pull request this commit is part of',
525
+ },
526
+ },
527
+ actions: [
528
+ 'create',
529
+ 'amend',
530
+ 'revert',
531
+ 'cherryPick',
532
+ 'view',
533
+ 'compare',
534
+ 'blame',
535
+ 'sign',
536
+ 'verify',
537
+ ],
538
+ events: [
539
+ 'created',
540
+ 'amended',
541
+ 'reverted',
542
+ 'cherryPicked',
543
+ 'pushed',
544
+ 'signed',
545
+ 'verified',
546
+ ],
547
+ };
548
+ // =============================================================================
549
+ // Pull Request
550
+ // =============================================================================
551
+ /**
552
+ * Pull request entity
553
+ *
554
+ * Represents a pull request for code review and merging
555
+ */
556
+ export const PullRequest = {
557
+ singular: 'pull request',
558
+ plural: 'pull requests',
559
+ description: 'A pull request for reviewing and merging code changes',
560
+ properties: {
561
+ // Identity
562
+ number: {
563
+ type: 'number',
564
+ description: 'Pull request number',
565
+ },
566
+ title: {
567
+ type: 'string',
568
+ description: 'Pull request title',
569
+ },
570
+ description: {
571
+ type: 'string',
572
+ optional: true,
573
+ description: 'Pull request description/body',
574
+ },
575
+ // Status
576
+ status: {
577
+ type: 'string',
578
+ description: 'PR status: open, closed, merged, draft',
579
+ examples: ['open', 'closed', 'merged', 'draft'],
580
+ },
581
+ state: {
582
+ type: 'string',
583
+ description: 'State: open, closed',
584
+ examples: ['open', 'closed'],
585
+ },
586
+ isDraft: {
587
+ type: 'boolean',
588
+ optional: true,
589
+ description: 'Whether this is a draft PR',
590
+ },
591
+ mergeable: {
592
+ type: 'boolean',
593
+ optional: true,
594
+ description: 'Whether the PR can be merged',
595
+ },
596
+ mergeableState: {
597
+ type: 'string',
598
+ optional: true,
599
+ description: 'Mergeable state: clean, dirty, unstable, blocked',
600
+ examples: ['clean', 'dirty', 'unstable', 'blocked'],
601
+ },
602
+ // Branches
603
+ headBranch: {
604
+ type: 'string',
605
+ description: 'Source branch name',
606
+ },
607
+ baseBranch: {
608
+ type: 'string',
609
+ description: 'Target branch name',
610
+ },
611
+ headSha: {
612
+ type: 'string',
613
+ optional: true,
614
+ description: 'SHA of the head commit',
615
+ },
616
+ baseSha: {
617
+ type: 'string',
618
+ optional: true,
619
+ description: 'SHA of the base commit',
620
+ },
621
+ // Changes
622
+ filesChanged: {
623
+ type: 'number',
624
+ optional: true,
625
+ description: 'Number of files changed',
626
+ },
627
+ additions: {
628
+ type: 'number',
629
+ optional: true,
630
+ description: 'Lines added',
631
+ },
632
+ deletions: {
633
+ type: 'number',
634
+ optional: true,
635
+ description: 'Lines deleted',
636
+ },
637
+ commits: {
638
+ type: 'number',
639
+ optional: true,
640
+ description: 'Number of commits',
641
+ },
642
+ // Review
643
+ reviewDecision: {
644
+ type: 'string',
645
+ optional: true,
646
+ description: 'Review decision: approved, changes_requested, review_required',
647
+ examples: ['approved', 'changes_requested', 'review_required'],
648
+ },
649
+ requestedReviewers: {
650
+ type: 'string',
651
+ array: true,
652
+ optional: true,
653
+ description: 'Usernames of requested reviewers',
654
+ },
655
+ assignees: {
656
+ type: 'string',
657
+ array: true,
658
+ optional: true,
659
+ description: 'Usernames of assignees',
660
+ },
661
+ // Checks
662
+ checksStatus: {
663
+ type: 'string',
664
+ optional: true,
665
+ description: 'Status checks state: pending, success, failure',
666
+ examples: ['pending', 'success', 'failure'],
667
+ },
668
+ requiredChecksPass: {
669
+ type: 'boolean',
670
+ optional: true,
671
+ description: 'Whether all required checks pass',
672
+ },
673
+ // Merge
674
+ merged: {
675
+ type: 'boolean',
676
+ optional: true,
677
+ description: 'Whether the PR has been merged',
678
+ },
679
+ mergedAt: {
680
+ type: 'datetime',
681
+ optional: true,
682
+ description: 'When the PR was merged',
683
+ },
684
+ mergedBy: {
685
+ type: 'string',
686
+ optional: true,
687
+ description: 'Username who merged the PR',
688
+ },
689
+ mergeCommitSha: {
690
+ type: 'string',
691
+ optional: true,
692
+ description: 'SHA of the merge commit',
693
+ },
694
+ autoMerge: {
695
+ type: 'boolean',
696
+ optional: true,
697
+ description: 'Whether auto-merge is enabled',
698
+ },
699
+ // Metadata
700
+ labels: {
701
+ type: 'string',
702
+ array: true,
703
+ optional: true,
704
+ description: 'Labels applied to the PR',
705
+ },
706
+ milestone: {
707
+ type: 'string',
708
+ optional: true,
709
+ description: 'Milestone name',
710
+ },
711
+ locked: {
712
+ type: 'boolean',
713
+ optional: true,
714
+ description: 'Whether the PR is locked',
715
+ },
716
+ // URLs
717
+ url: {
718
+ type: 'url',
719
+ optional: true,
720
+ description: 'PR API URL',
721
+ },
722
+ htmlUrl: {
723
+ type: 'url',
724
+ optional: true,
725
+ description: 'PR web page URL',
726
+ },
727
+ diffUrl: {
728
+ type: 'url',
729
+ optional: true,
730
+ description: 'URL to view the diff',
731
+ },
732
+ patchUrl: {
733
+ type: 'url',
734
+ optional: true,
735
+ description: 'URL to download the patch',
736
+ },
737
+ },
738
+ relationships: {
739
+ repository: {
740
+ type: 'Repository',
741
+ backref: 'pullRequests',
742
+ description: 'Repository this PR belongs to',
743
+ },
744
+ author: {
745
+ type: 'Contact',
746
+ description: 'PR author',
747
+ },
748
+ headBranchRef: {
749
+ type: 'Branch',
750
+ description: 'Source branch',
751
+ },
752
+ baseBranchRef: {
753
+ type: 'Branch',
754
+ description: 'Target branch',
755
+ },
756
+ commits: {
757
+ type: 'Commit[]',
758
+ description: 'Commits in this PR',
759
+ },
760
+ reviews: {
761
+ type: 'CodeReview[]',
762
+ backref: 'pullRequest',
763
+ description: 'Code reviews on this PR',
764
+ },
765
+ reviewers: {
766
+ type: 'Contact[]',
767
+ description: 'Requested reviewers',
768
+ },
769
+ assignedTo: {
770
+ type: 'Contact[]',
771
+ description: 'People assigned to this PR',
772
+ },
773
+ workflowRuns: {
774
+ type: 'WorkflowRun[]',
775
+ description: 'CI/CD workflow runs for this PR',
776
+ },
777
+ linkedIssues: {
778
+ type: 'CodeIssue[]',
779
+ description: 'Issues linked to this PR',
780
+ },
781
+ },
782
+ actions: [
783
+ 'create',
784
+ 'update',
785
+ 'close',
786
+ 'reopen',
787
+ 'merge',
788
+ 'squashMerge',
789
+ 'rebaseMerge',
790
+ 'approve',
791
+ 'requestChanges',
792
+ 'requestReview',
793
+ 'assign',
794
+ 'unassign',
795
+ 'label',
796
+ 'unlabel',
797
+ 'lock',
798
+ 'unlock',
799
+ 'enableAutoMerge',
800
+ 'disableAutoMerge',
801
+ 'convertToDraft',
802
+ 'markReadyForReview',
803
+ ],
804
+ events: [
805
+ 'created',
806
+ 'updated',
807
+ 'closed',
808
+ 'reopened',
809
+ 'merged',
810
+ 'approved',
811
+ 'changesRequested',
812
+ 'reviewRequested',
813
+ 'assigned',
814
+ 'unassigned',
815
+ 'labeled',
816
+ 'unlabeled',
817
+ 'locked',
818
+ 'unlocked',
819
+ 'autoMergeEnabled',
820
+ 'autoMergeDisabled',
821
+ 'convertedToDraft',
822
+ 'markedReadyForReview',
823
+ 'synchronize',
824
+ ],
825
+ };
826
+ // =============================================================================
827
+ // Code Review
828
+ // =============================================================================
829
+ /**
830
+ * Code review entity
831
+ *
832
+ * Represents a code review or review comment on a pull request
833
+ */
834
+ export const CodeReview = {
835
+ singular: 'code review',
836
+ plural: 'code reviews',
837
+ description: 'A code review on a pull request',
838
+ properties: {
839
+ // Content
840
+ body: {
841
+ type: 'string',
842
+ optional: true,
843
+ description: 'Review comment body',
844
+ },
845
+ // Type
846
+ reviewType: {
847
+ type: 'string',
848
+ description: 'Type: comment, approve, request_changes',
849
+ examples: ['comment', 'approve', 'request_changes'],
850
+ },
851
+ state: {
852
+ type: 'string',
853
+ description: 'Review state: pending, commented, approved, changes_requested, dismissed',
854
+ examples: ['pending', 'commented', 'approved', 'changes_requested', 'dismissed'],
855
+ },
856
+ // Line-specific (for inline comments)
857
+ path: {
858
+ type: 'string',
859
+ optional: true,
860
+ description: 'File path for inline comment',
861
+ },
862
+ line: {
863
+ type: 'number',
864
+ optional: true,
865
+ description: 'Line number for inline comment',
866
+ },
867
+ startLine: {
868
+ type: 'number',
869
+ optional: true,
870
+ description: 'Start line for multi-line comment',
871
+ },
872
+ side: {
873
+ type: 'string',
874
+ optional: true,
875
+ description: 'Side of diff: LEFT or RIGHT',
876
+ examples: ['LEFT', 'RIGHT'],
877
+ },
878
+ commitId: {
879
+ type: 'string',
880
+ optional: true,
881
+ description: 'Commit SHA this comment is on',
882
+ },
883
+ // Status
884
+ resolved: {
885
+ type: 'boolean',
886
+ optional: true,
887
+ description: 'Whether the comment is resolved',
888
+ },
889
+ outdated: {
890
+ type: 'boolean',
891
+ optional: true,
892
+ description: 'Whether the comment is outdated',
893
+ },
894
+ // URLs
895
+ htmlUrl: {
896
+ type: 'url',
897
+ optional: true,
898
+ description: 'Review web page URL',
899
+ },
900
+ },
901
+ relationships: {
902
+ pullRequest: {
903
+ type: 'PullRequest',
904
+ backref: 'reviews',
905
+ description: 'Pull request this review is on',
906
+ },
907
+ reviewer: {
908
+ type: 'Contact',
909
+ description: 'Person who wrote the review',
910
+ },
911
+ commit: {
912
+ type: 'Commit',
913
+ required: false,
914
+ description: 'Specific commit being reviewed',
915
+ },
916
+ inReplyTo: {
917
+ type: 'CodeReview',
918
+ required: false,
919
+ description: 'Parent comment if this is a reply',
920
+ },
921
+ replies: {
922
+ type: 'CodeReview[]',
923
+ description: 'Replies to this review comment',
924
+ },
925
+ },
926
+ actions: [
927
+ 'create',
928
+ 'submit',
929
+ 'update',
930
+ 'delete',
931
+ 'dismiss',
932
+ 'resolve',
933
+ 'unresolve',
934
+ 'reply',
935
+ ],
936
+ events: [
937
+ 'created',
938
+ 'submitted',
939
+ 'updated',
940
+ 'deleted',
941
+ 'dismissed',
942
+ 'resolved',
943
+ 'unresolved',
944
+ 'replied',
945
+ ],
946
+ };
947
+ // =============================================================================
948
+ // Code Issue
949
+ // =============================================================================
950
+ /**
951
+ * Code issue entity
952
+ *
953
+ * Represents a GitHub/GitLab style issue for tracking bugs, features, and tasks
954
+ */
955
+ export const CodeIssue = {
956
+ singular: 'code issue',
957
+ plural: 'code issues',
958
+ description: 'An issue for tracking bugs, features, and tasks in code',
959
+ properties: {
960
+ // Identity
961
+ number: {
962
+ type: 'number',
963
+ description: 'Issue number',
964
+ },
965
+ title: {
966
+ type: 'string',
967
+ description: 'Issue title',
968
+ },
969
+ description: {
970
+ type: 'string',
971
+ optional: true,
972
+ description: 'Issue description/body',
973
+ },
974
+ // Status
975
+ state: {
976
+ type: 'string',
977
+ description: 'Issue state: open, closed',
978
+ examples: ['open', 'closed'],
979
+ },
980
+ stateReason: {
981
+ type: 'string',
982
+ optional: true,
983
+ description: 'Reason for state: completed, not_planned, reopened',
984
+ examples: ['completed', 'not_planned', 'reopened'],
985
+ },
986
+ // Classification
987
+ labels: {
988
+ type: 'string',
989
+ array: true,
990
+ optional: true,
991
+ description: 'Labels applied to the issue',
992
+ },
993
+ milestone: {
994
+ type: 'string',
995
+ optional: true,
996
+ description: 'Milestone name',
997
+ },
998
+ assignees: {
999
+ type: 'string',
1000
+ array: true,
1001
+ optional: true,
1002
+ description: 'Usernames of assignees',
1003
+ },
1004
+ // Interaction
1005
+ commentCount: {
1006
+ type: 'number',
1007
+ optional: true,
1008
+ description: 'Number of comments',
1009
+ },
1010
+ locked: {
1011
+ type: 'boolean',
1012
+ optional: true,
1013
+ description: 'Whether the issue is locked',
1014
+ },
1015
+ // Dates
1016
+ closedAt: {
1017
+ type: 'datetime',
1018
+ optional: true,
1019
+ description: 'When the issue was closed',
1020
+ },
1021
+ closedBy: {
1022
+ type: 'string',
1023
+ optional: true,
1024
+ description: 'Username who closed the issue',
1025
+ },
1026
+ // URLs
1027
+ url: {
1028
+ type: 'url',
1029
+ optional: true,
1030
+ description: 'Issue API URL',
1031
+ },
1032
+ htmlUrl: {
1033
+ type: 'url',
1034
+ optional: true,
1035
+ description: 'Issue web page URL',
1036
+ },
1037
+ },
1038
+ relationships: {
1039
+ repository: {
1040
+ type: 'Repository',
1041
+ backref: 'issues',
1042
+ description: 'Repository this issue belongs to',
1043
+ },
1044
+ author: {
1045
+ type: 'Contact',
1046
+ description: 'Issue author',
1047
+ },
1048
+ assignedTo: {
1049
+ type: 'Contact[]',
1050
+ description: 'People assigned to this issue',
1051
+ },
1052
+ linkedPullRequests: {
1053
+ type: 'PullRequest[]',
1054
+ description: 'Pull requests that reference this issue',
1055
+ },
1056
+ },
1057
+ actions: [
1058
+ 'create',
1059
+ 'update',
1060
+ 'close',
1061
+ 'reopen',
1062
+ 'assign',
1063
+ 'unassign',
1064
+ 'label',
1065
+ 'unlabel',
1066
+ 'lock',
1067
+ 'unlock',
1068
+ 'comment',
1069
+ 'transfer',
1070
+ 'pin',
1071
+ 'unpin',
1072
+ ],
1073
+ events: [
1074
+ 'created',
1075
+ 'updated',
1076
+ 'closed',
1077
+ 'reopened',
1078
+ 'assigned',
1079
+ 'unassigned',
1080
+ 'labeled',
1081
+ 'unlabeled',
1082
+ 'locked',
1083
+ 'unlocked',
1084
+ 'commented',
1085
+ 'transferred',
1086
+ 'pinned',
1087
+ 'unpinned',
1088
+ ],
1089
+ };
1090
+ // =============================================================================
1091
+ // Release
1092
+ // =============================================================================
1093
+ /**
1094
+ * Release entity
1095
+ *
1096
+ * Represents a release or tag with version information
1097
+ */
1098
+ export const Release = {
1099
+ singular: 'release',
1100
+ plural: 'releases',
1101
+ description: 'A release or version tag with distribution artifacts',
1102
+ properties: {
1103
+ // Identity
1104
+ tagName: {
1105
+ type: 'string',
1106
+ description: 'Git tag name (e.g., v1.0.0)',
1107
+ },
1108
+ name: {
1109
+ type: 'string',
1110
+ optional: true,
1111
+ description: 'Release name/title',
1112
+ },
1113
+ description: {
1114
+ type: 'string',
1115
+ optional: true,
1116
+ description: 'Release notes/description',
1117
+ },
1118
+ // Version
1119
+ version: {
1120
+ type: 'string',
1121
+ optional: true,
1122
+ description: 'Semantic version number',
1123
+ },
1124
+ targetCommitish: {
1125
+ type: 'string',
1126
+ optional: true,
1127
+ description: 'Target branch or commit SHA',
1128
+ },
1129
+ // Status
1130
+ draft: {
1131
+ type: 'boolean',
1132
+ optional: true,
1133
+ description: 'Whether this is a draft release',
1134
+ },
1135
+ prerelease: {
1136
+ type: 'boolean',
1137
+ optional: true,
1138
+ description: 'Whether this is a pre-release',
1139
+ },
1140
+ latest: {
1141
+ type: 'boolean',
1142
+ optional: true,
1143
+ description: 'Whether this is the latest release',
1144
+ },
1145
+ // Publishing
1146
+ publishedAt: {
1147
+ type: 'datetime',
1148
+ optional: true,
1149
+ description: 'When the release was published',
1150
+ },
1151
+ publishedBy: {
1152
+ type: 'string',
1153
+ optional: true,
1154
+ description: 'Username who published the release',
1155
+ },
1156
+ // URLs
1157
+ htmlUrl: {
1158
+ type: 'url',
1159
+ optional: true,
1160
+ description: 'Release web page URL',
1161
+ },
1162
+ tarballUrl: {
1163
+ type: 'url',
1164
+ optional: true,
1165
+ description: 'URL to download tarball',
1166
+ },
1167
+ zipballUrl: {
1168
+ type: 'url',
1169
+ optional: true,
1170
+ description: 'URL to download zipball',
1171
+ },
1172
+ },
1173
+ relationships: {
1174
+ repository: {
1175
+ type: 'Repository',
1176
+ backref: 'releases',
1177
+ description: 'Repository this release belongs to',
1178
+ },
1179
+ author: {
1180
+ type: 'Contact',
1181
+ description: 'Release author',
1182
+ },
1183
+ commit: {
1184
+ type: 'Commit',
1185
+ required: false,
1186
+ description: 'Commit this release points to',
1187
+ },
1188
+ assets: {
1189
+ type: 'Attachment[]',
1190
+ description: 'Release assets (binaries, packages, etc.)',
1191
+ },
1192
+ },
1193
+ actions: [
1194
+ 'create',
1195
+ 'update',
1196
+ 'delete',
1197
+ 'publish',
1198
+ 'unpublish',
1199
+ 'addAsset',
1200
+ 'removeAsset',
1201
+ 'setLatest',
1202
+ ],
1203
+ events: [
1204
+ 'created',
1205
+ 'updated',
1206
+ 'deleted',
1207
+ 'published',
1208
+ 'unpublished',
1209
+ 'assetAdded',
1210
+ 'assetRemoved',
1211
+ 'edited',
1212
+ ],
1213
+ };
1214
+ // =============================================================================
1215
+ // Workflow
1216
+ // =============================================================================
1217
+ /**
1218
+ * CI/CD workflow entity
1219
+ *
1220
+ * Represents a continuous integration/deployment workflow or action
1221
+ */
1222
+ export const Workflow = {
1223
+ singular: 'workflow',
1224
+ plural: 'workflows',
1225
+ description: 'A CI/CD workflow for automated testing and deployment',
1226
+ properties: {
1227
+ // Identity
1228
+ name: {
1229
+ type: 'string',
1230
+ description: 'Workflow name',
1231
+ },
1232
+ path: {
1233
+ type: 'string',
1234
+ optional: true,
1235
+ description: 'Path to workflow file (e.g., .github/workflows/ci.yml)',
1236
+ },
1237
+ // Status
1238
+ state: {
1239
+ type: 'string',
1240
+ description: 'Workflow state: active, deleted, disabled_manually, disabled_inactivity',
1241
+ examples: ['active', 'deleted', 'disabled_manually', 'disabled_inactivity'],
1242
+ },
1243
+ // Triggers
1244
+ triggers: {
1245
+ type: 'string',
1246
+ array: true,
1247
+ optional: true,
1248
+ description: 'Events that trigger this workflow (push, pull_request, schedule, etc.)',
1249
+ examples: ['push', 'pull_request', 'workflow_dispatch', 'schedule', 'release'],
1250
+ },
1251
+ // Configuration
1252
+ steps: {
1253
+ type: 'json',
1254
+ optional: true,
1255
+ description: 'Workflow steps configuration',
1256
+ },
1257
+ jobs: {
1258
+ type: 'json',
1259
+ optional: true,
1260
+ description: 'Workflow jobs configuration',
1261
+ },
1262
+ environment: {
1263
+ type: 'json',
1264
+ optional: true,
1265
+ description: 'Environment variables and secrets',
1266
+ },
1267
+ // Timing
1268
+ timeout: {
1269
+ type: 'number',
1270
+ optional: true,
1271
+ description: 'Workflow timeout in minutes',
1272
+ },
1273
+ // URLs
1274
+ htmlUrl: {
1275
+ type: 'url',
1276
+ optional: true,
1277
+ description: 'Workflow web page URL',
1278
+ },
1279
+ badgeUrl: {
1280
+ type: 'url',
1281
+ optional: true,
1282
+ description: 'Status badge URL',
1283
+ },
1284
+ },
1285
+ relationships: {
1286
+ repository: {
1287
+ type: 'Repository',
1288
+ backref: 'workflows',
1289
+ description: 'Repository this workflow belongs to',
1290
+ },
1291
+ runs: {
1292
+ type: 'WorkflowRun[]',
1293
+ backref: 'workflow',
1294
+ description: 'Executions of this workflow',
1295
+ },
1296
+ },
1297
+ actions: [
1298
+ 'create',
1299
+ 'update',
1300
+ 'delete',
1301
+ 'enable',
1302
+ 'disable',
1303
+ 'trigger',
1304
+ 'dispatch',
1305
+ ],
1306
+ events: [
1307
+ 'created',
1308
+ 'updated',
1309
+ 'deleted',
1310
+ 'enabled',
1311
+ 'disabled',
1312
+ 'triggered',
1313
+ 'dispatched',
1314
+ ],
1315
+ };
1316
+ // =============================================================================
1317
+ // Workflow Run
1318
+ // =============================================================================
1319
+ /**
1320
+ * Workflow run entity
1321
+ *
1322
+ * Represents a single execution of a workflow
1323
+ */
1324
+ export const WorkflowRun = {
1325
+ singular: 'workflow run',
1326
+ plural: 'workflow runs',
1327
+ description: 'An execution instance of a workflow',
1328
+ properties: {
1329
+ // Identity
1330
+ runNumber: {
1331
+ type: 'number',
1332
+ description: 'Run number for this workflow',
1333
+ },
1334
+ runAttempt: {
1335
+ type: 'number',
1336
+ optional: true,
1337
+ description: 'Attempt number for this run',
1338
+ },
1339
+ // Status
1340
+ status: {
1341
+ type: 'string',
1342
+ description: 'Run status: queued, in_progress, completed, waiting',
1343
+ examples: ['queued', 'in_progress', 'completed', 'waiting'],
1344
+ },
1345
+ conclusion: {
1346
+ type: 'string',
1347
+ optional: true,
1348
+ description: 'Run conclusion: success, failure, cancelled, skipped, timed_out, action_required',
1349
+ examples: ['success', 'failure', 'cancelled', 'skipped', 'timed_out', 'action_required'],
1350
+ },
1351
+ // Trigger
1352
+ event: {
1353
+ type: 'string',
1354
+ description: 'Event that triggered the run',
1355
+ },
1356
+ triggeredBy: {
1357
+ type: 'string',
1358
+ optional: true,
1359
+ description: 'Username who triggered the run',
1360
+ },
1361
+ // Timing
1362
+ startedAt: {
1363
+ type: 'datetime',
1364
+ optional: true,
1365
+ description: 'When the run started',
1366
+ },
1367
+ completedAt: {
1368
+ type: 'datetime',
1369
+ optional: true,
1370
+ description: 'When the run completed',
1371
+ },
1372
+ duration: {
1373
+ type: 'number',
1374
+ optional: true,
1375
+ description: 'Run duration in seconds',
1376
+ },
1377
+ // Context
1378
+ headBranch: {
1379
+ type: 'string',
1380
+ optional: true,
1381
+ description: 'Branch name',
1382
+ },
1383
+ headSha: {
1384
+ type: 'string',
1385
+ optional: true,
1386
+ description: 'Commit SHA',
1387
+ },
1388
+ // Jobs
1389
+ jobsUrl: {
1390
+ type: 'url',
1391
+ optional: true,
1392
+ description: 'URL to view jobs',
1393
+ },
1394
+ logsUrl: {
1395
+ type: 'url',
1396
+ optional: true,
1397
+ description: 'URL to view logs',
1398
+ },
1399
+ // Results
1400
+ steps: {
1401
+ type: 'json',
1402
+ optional: true,
1403
+ description: 'Individual step results',
1404
+ },
1405
+ artifacts: {
1406
+ type: 'json',
1407
+ optional: true,
1408
+ description: 'Build artifacts produced',
1409
+ },
1410
+ // URLs
1411
+ htmlUrl: {
1412
+ type: 'url',
1413
+ optional: true,
1414
+ description: 'Run web page URL',
1415
+ },
1416
+ },
1417
+ relationships: {
1418
+ workflow: {
1419
+ type: 'Workflow',
1420
+ backref: 'runs',
1421
+ description: 'Workflow that was executed',
1422
+ },
1423
+ repository: {
1424
+ type: 'Repository',
1425
+ description: 'Repository the workflow ran in',
1426
+ },
1427
+ commit: {
1428
+ type: 'Commit',
1429
+ required: false,
1430
+ description: 'Commit that triggered the run',
1431
+ },
1432
+ branch: {
1433
+ type: 'Branch',
1434
+ required: false,
1435
+ description: 'Branch the run executed on',
1436
+ },
1437
+ pullRequest: {
1438
+ type: 'PullRequest',
1439
+ required: false,
1440
+ description: 'Pull request that triggered the run',
1441
+ },
1442
+ triggeredBy: {
1443
+ type: 'Contact',
1444
+ required: false,
1445
+ description: 'User who triggered the run',
1446
+ },
1447
+ },
1448
+ actions: [
1449
+ 'start',
1450
+ 'cancel',
1451
+ 'rerun',
1452
+ 'approve',
1453
+ 'viewLogs',
1454
+ 'downloadArtifacts',
1455
+ ],
1456
+ events: [
1457
+ 'started',
1458
+ 'queued',
1459
+ 'inProgress',
1460
+ 'completed',
1461
+ 'succeeded',
1462
+ 'failed',
1463
+ 'cancelled',
1464
+ 'skipped',
1465
+ 'timedOut',
1466
+ 'requiresApproval',
1467
+ 'approved',
1468
+ 'rerun',
1469
+ ],
1470
+ };
1471
+ // =============================================================================
1472
+ // Discussion
1473
+ // =============================================================================
1474
+ /**
1475
+ * Discussion entity
1476
+ *
1477
+ * Represents a GitHub-style discussion thread
1478
+ */
1479
+ export const Discussion = {
1480
+ singular: 'discussion',
1481
+ plural: 'discussions',
1482
+ description: 'A discussion thread for community conversations',
1483
+ properties: {
1484
+ // Identity
1485
+ number: {
1486
+ type: 'number',
1487
+ description: 'Discussion number',
1488
+ },
1489
+ title: {
1490
+ type: 'string',
1491
+ description: 'Discussion title',
1492
+ },
1493
+ body: {
1494
+ type: 'string',
1495
+ description: 'Discussion body content',
1496
+ },
1497
+ // Category
1498
+ category: {
1499
+ type: 'string',
1500
+ optional: true,
1501
+ description: 'Discussion category',
1502
+ },
1503
+ categoryEmoji: {
1504
+ type: 'string',
1505
+ optional: true,
1506
+ description: 'Category emoji icon',
1507
+ },
1508
+ // Status
1509
+ answered: {
1510
+ type: 'boolean',
1511
+ optional: true,
1512
+ description: 'Whether discussion has an accepted answer',
1513
+ },
1514
+ locked: {
1515
+ type: 'boolean',
1516
+ optional: true,
1517
+ description: 'Whether discussion is locked',
1518
+ },
1519
+ pinned: {
1520
+ type: 'boolean',
1521
+ optional: true,
1522
+ description: 'Whether discussion is pinned',
1523
+ },
1524
+ // Engagement
1525
+ upvoteCount: {
1526
+ type: 'number',
1527
+ optional: true,
1528
+ description: 'Number of upvotes',
1529
+ },
1530
+ commentCount: {
1531
+ type: 'number',
1532
+ optional: true,
1533
+ description: 'Number of comments',
1534
+ },
1535
+ // URLs
1536
+ url: {
1537
+ type: 'url',
1538
+ optional: true,
1539
+ description: 'Discussion URL',
1540
+ },
1541
+ },
1542
+ relationships: {
1543
+ repository: {
1544
+ type: 'Repository',
1545
+ description: 'Repository this discussion belongs to',
1546
+ },
1547
+ author: {
1548
+ type: 'Contact',
1549
+ description: 'Discussion author',
1550
+ },
1551
+ answer: {
1552
+ type: 'Comment',
1553
+ required: false,
1554
+ description: 'Accepted answer comment',
1555
+ },
1556
+ comments: {
1557
+ type: 'Comment[]',
1558
+ description: 'Discussion comments',
1559
+ },
1560
+ },
1561
+ actions: [
1562
+ 'create',
1563
+ 'update',
1564
+ 'delete',
1565
+ 'lock',
1566
+ 'unlock',
1567
+ 'pin',
1568
+ 'unpin',
1569
+ 'upvote',
1570
+ 'removeUpvote',
1571
+ 'markAnswer',
1572
+ 'unmarkAnswer',
1573
+ 'transfer',
1574
+ ],
1575
+ events: [
1576
+ 'created',
1577
+ 'updated',
1578
+ 'deleted',
1579
+ 'locked',
1580
+ 'unlocked',
1581
+ 'pinned',
1582
+ 'unpinned',
1583
+ 'upvoted',
1584
+ 'answered',
1585
+ 'transferred',
1586
+ 'commented',
1587
+ ],
1588
+ };
1589
+ // =============================================================================
1590
+ // Package
1591
+ // =============================================================================
1592
+ /**
1593
+ * Package entity
1594
+ *
1595
+ * Represents a package in a package registry (npm, containers, etc.)
1596
+ */
1597
+ export const Package = {
1598
+ singular: 'package',
1599
+ plural: 'packages',
1600
+ description: 'A package in a package registry',
1601
+ properties: {
1602
+ // Identity
1603
+ name: {
1604
+ type: 'string',
1605
+ description: 'Package name',
1606
+ },
1607
+ namespace: {
1608
+ type: 'string',
1609
+ optional: true,
1610
+ description: 'Package namespace/scope',
1611
+ },
1612
+ packageType: {
1613
+ type: 'string',
1614
+ description: 'Package type: npm, maven, docker, nuget, rubygems',
1615
+ examples: ['npm', 'maven', 'docker', 'nuget', 'rubygems', 'container'],
1616
+ },
1617
+ // Version
1618
+ latestVersion: {
1619
+ type: 'string',
1620
+ optional: true,
1621
+ description: 'Latest version tag',
1622
+ },
1623
+ versionCount: {
1624
+ type: 'number',
1625
+ optional: true,
1626
+ description: 'Number of versions published',
1627
+ },
1628
+ // Visibility
1629
+ visibility: {
1630
+ type: 'string',
1631
+ description: 'Package visibility: public, private',
1632
+ examples: ['public', 'private'],
1633
+ },
1634
+ // Metadata
1635
+ description: {
1636
+ type: 'string',
1637
+ optional: true,
1638
+ description: 'Package description',
1639
+ },
1640
+ license: {
1641
+ type: 'string',
1642
+ optional: true,
1643
+ description: 'Package license',
1644
+ },
1645
+ homepage: {
1646
+ type: 'url',
1647
+ optional: true,
1648
+ description: 'Package homepage',
1649
+ },
1650
+ repository: {
1651
+ type: 'url',
1652
+ optional: true,
1653
+ description: 'Source repository URL',
1654
+ },
1655
+ // Stats
1656
+ downloadCount: {
1657
+ type: 'number',
1658
+ optional: true,
1659
+ description: 'Total downloads',
1660
+ },
1661
+ size: {
1662
+ type: 'number',
1663
+ optional: true,
1664
+ description: 'Package size in bytes',
1665
+ },
1666
+ },
1667
+ relationships: {
1668
+ owner: {
1669
+ type: 'Contact',
1670
+ description: 'Package owner',
1671
+ },
1672
+ versions: {
1673
+ type: 'PackageVersion[]',
1674
+ description: 'Package versions',
1675
+ },
1676
+ repository: {
1677
+ type: 'Repository',
1678
+ required: false,
1679
+ description: 'Source repository',
1680
+ },
1681
+ },
1682
+ actions: [
1683
+ 'create',
1684
+ 'publish',
1685
+ 'unpublish',
1686
+ 'deprecate',
1687
+ 'undeprecate',
1688
+ 'delete',
1689
+ 'transfer',
1690
+ 'setVisibility',
1691
+ 'addCollaborator',
1692
+ 'removeCollaborator',
1693
+ ],
1694
+ events: [
1695
+ 'created',
1696
+ 'published',
1697
+ 'unpublished',
1698
+ 'deprecated',
1699
+ 'deleted',
1700
+ 'transferred',
1701
+ 'visibilityChanged',
1702
+ 'collaboratorAdded',
1703
+ 'collaboratorRemoved',
1704
+ 'downloaded',
1705
+ ],
1706
+ };
1707
+ /**
1708
+ * Package version entity
1709
+ */
1710
+ export const PackageVersion = {
1711
+ singular: 'package version',
1712
+ plural: 'package versions',
1713
+ description: 'A specific version of a package',
1714
+ properties: {
1715
+ version: {
1716
+ type: 'string',
1717
+ description: 'Version string (semver)',
1718
+ },
1719
+ tag: {
1720
+ type: 'string',
1721
+ optional: true,
1722
+ description: 'Version tag (latest, beta, etc.)',
1723
+ },
1724
+ digest: {
1725
+ type: 'string',
1726
+ optional: true,
1727
+ description: 'Content digest/hash',
1728
+ },
1729
+ size: {
1730
+ type: 'number',
1731
+ optional: true,
1732
+ description: 'Version size in bytes',
1733
+ },
1734
+ deprecated: {
1735
+ type: 'boolean',
1736
+ optional: true,
1737
+ description: 'Whether version is deprecated',
1738
+ },
1739
+ deprecationMessage: {
1740
+ type: 'string',
1741
+ optional: true,
1742
+ description: 'Deprecation message',
1743
+ },
1744
+ publishedAt: {
1745
+ type: 'datetime',
1746
+ optional: true,
1747
+ description: 'Publication timestamp',
1748
+ },
1749
+ },
1750
+ relationships: {
1751
+ package: {
1752
+ type: 'Package',
1753
+ backref: 'versions',
1754
+ description: 'Parent package',
1755
+ },
1756
+ publisher: {
1757
+ type: 'Contact',
1758
+ description: 'Who published this version',
1759
+ },
1760
+ },
1761
+ actions: ['publish', 'deprecate', 'undeprecate', 'delete', 'download'],
1762
+ events: ['published', 'deprecated', 'deleted', 'downloaded'],
1763
+ };
1764
+ // =============================================================================
1765
+ // Gist
1766
+ // =============================================================================
1767
+ /**
1768
+ * Gist entity
1769
+ *
1770
+ * Represents a code snippet or file sharing gist
1771
+ */
1772
+ export const Gist = {
1773
+ singular: 'gist',
1774
+ plural: 'gists',
1775
+ description: 'A code snippet or file sharing gist',
1776
+ properties: {
1777
+ // Content
1778
+ description: {
1779
+ type: 'string',
1780
+ optional: true,
1781
+ description: 'Gist description',
1782
+ },
1783
+ files: {
1784
+ type: 'json',
1785
+ description: 'Files in the gist (filename -> content)',
1786
+ },
1787
+ fileCount: {
1788
+ type: 'number',
1789
+ optional: true,
1790
+ description: 'Number of files',
1791
+ },
1792
+ // Visibility
1793
+ public: {
1794
+ type: 'boolean',
1795
+ description: 'Whether gist is public',
1796
+ },
1797
+ // Stats
1798
+ forkCount: {
1799
+ type: 'number',
1800
+ optional: true,
1801
+ description: 'Number of forks',
1802
+ },
1803
+ starCount: {
1804
+ type: 'number',
1805
+ optional: true,
1806
+ description: 'Number of stars',
1807
+ },
1808
+ commentCount: {
1809
+ type: 'number',
1810
+ optional: true,
1811
+ description: 'Number of comments',
1812
+ },
1813
+ // URLs
1814
+ url: {
1815
+ type: 'url',
1816
+ optional: true,
1817
+ description: 'Gist web URL',
1818
+ },
1819
+ rawUrl: {
1820
+ type: 'url',
1821
+ optional: true,
1822
+ description: 'Raw content URL',
1823
+ },
1824
+ embedUrl: {
1825
+ type: 'url',
1826
+ optional: true,
1827
+ description: 'Embed script URL',
1828
+ },
1829
+ },
1830
+ relationships: {
1831
+ owner: {
1832
+ type: 'Contact',
1833
+ description: 'Gist owner',
1834
+ },
1835
+ forks: {
1836
+ type: 'Gist[]',
1837
+ description: 'Forked gists',
1838
+ },
1839
+ comments: {
1840
+ type: 'Comment[]',
1841
+ description: 'Gist comments',
1842
+ },
1843
+ },
1844
+ actions: [
1845
+ 'create',
1846
+ 'update',
1847
+ 'delete',
1848
+ 'fork',
1849
+ 'star',
1850
+ 'unstar',
1851
+ 'comment',
1852
+ 'embed',
1853
+ 'share',
1854
+ ],
1855
+ events: [
1856
+ 'created',
1857
+ 'updated',
1858
+ 'deleted',
1859
+ 'forked',
1860
+ 'starred',
1861
+ 'unstarred',
1862
+ 'commented',
1863
+ ],
1864
+ };
1865
+ // =============================================================================
1866
+ // Secret
1867
+ // =============================================================================
1868
+ /**
1869
+ * Secret entity
1870
+ *
1871
+ * Represents a secret or credential stored securely
1872
+ */
1873
+ export const Secret = {
1874
+ singular: 'secret',
1875
+ plural: 'secrets',
1876
+ description: 'A secret or credential stored securely',
1877
+ properties: {
1878
+ // Identity
1879
+ name: {
1880
+ type: 'string',
1881
+ description: 'Secret name (typically uppercase with underscores)',
1882
+ },
1883
+ // Scope
1884
+ scope: {
1885
+ type: 'string',
1886
+ description: 'Secret scope: repository, environment, organization',
1887
+ examples: ['repository', 'environment', 'organization'],
1888
+ },
1889
+ environment: {
1890
+ type: 'string',
1891
+ optional: true,
1892
+ description: 'Environment name if environment-scoped',
1893
+ },
1894
+ // Metadata
1895
+ visibility: {
1896
+ type: 'string',
1897
+ optional: true,
1898
+ description: 'Visibility for org secrets: all, private, selected',
1899
+ examples: ['all', 'private', 'selected'],
1900
+ },
1901
+ selectedRepositories: {
1902
+ type: 'string',
1903
+ array: true,
1904
+ optional: true,
1905
+ description: 'Selected repositories for org secrets',
1906
+ },
1907
+ // Audit
1908
+ lastUpdatedAt: {
1909
+ type: 'datetime',
1910
+ optional: true,
1911
+ description: 'When the secret was last updated',
1912
+ },
1913
+ updatedBy: {
1914
+ type: 'string',
1915
+ optional: true,
1916
+ description: 'Who last updated the secret',
1917
+ },
1918
+ },
1919
+ relationships: {
1920
+ repository: {
1921
+ type: 'Repository',
1922
+ required: false,
1923
+ description: 'Repository if repo-scoped',
1924
+ },
1925
+ environment: {
1926
+ type: 'Environment',
1927
+ required: false,
1928
+ description: 'Environment if environment-scoped',
1929
+ },
1930
+ },
1931
+ actions: [
1932
+ 'create',
1933
+ 'update',
1934
+ 'delete',
1935
+ 'rotate',
1936
+ 'setVisibility',
1937
+ 'addRepository',
1938
+ 'removeRepository',
1939
+ ],
1940
+ events: [
1941
+ 'created',
1942
+ 'updated',
1943
+ 'deleted',
1944
+ 'rotated',
1945
+ 'visibilityChanged',
1946
+ 'accessed',
1947
+ ],
1948
+ };
1949
+ // =============================================================================
1950
+ // Webhook
1951
+ // =============================================================================
1952
+ /**
1953
+ * Webhook entity (development context)
1954
+ *
1955
+ * Represents a webhook for receiving event notifications
1956
+ */
1957
+ export const Webhook = {
1958
+ singular: 'webhook',
1959
+ plural: 'webhooks',
1960
+ description: 'A webhook for receiving event notifications',
1961
+ properties: {
1962
+ // Configuration
1963
+ url: {
1964
+ type: 'url',
1965
+ description: 'Webhook delivery URL',
1966
+ },
1967
+ contentType: {
1968
+ type: 'string',
1969
+ description: 'Content type: json, form',
1970
+ examples: ['json', 'form'],
1971
+ },
1972
+ secret: {
1973
+ type: 'string',
1974
+ optional: true,
1975
+ description: 'Webhook secret for signature verification',
1976
+ },
1977
+ // Events
1978
+ events: {
1979
+ type: 'string',
1980
+ array: true,
1981
+ description: 'Events to trigger webhook',
1982
+ },
1983
+ // Status
1984
+ active: {
1985
+ type: 'boolean',
1986
+ description: 'Whether webhook is active',
1987
+ },
1988
+ insecureSsl: {
1989
+ type: 'boolean',
1990
+ optional: true,
1991
+ description: 'Whether to skip SSL verification',
1992
+ },
1993
+ // Delivery stats
1994
+ lastDeliveredAt: {
1995
+ type: 'datetime',
1996
+ optional: true,
1997
+ description: 'Timestamp of last delivery',
1998
+ },
1999
+ lastStatus: {
2000
+ type: 'string',
2001
+ optional: true,
2002
+ description: 'Status of last delivery',
2003
+ },
2004
+ deliveryCount: {
2005
+ type: 'number',
2006
+ optional: true,
2007
+ description: 'Total deliveries',
2008
+ },
2009
+ failureCount: {
2010
+ type: 'number',
2011
+ optional: true,
2012
+ description: 'Failed deliveries',
2013
+ },
2014
+ },
2015
+ relationships: {
2016
+ repository: {
2017
+ type: 'Repository',
2018
+ required: false,
2019
+ description: 'Repository if repo webhook',
2020
+ },
2021
+ deliveries: {
2022
+ type: 'WebhookDelivery[]',
2023
+ description: 'Delivery history',
2024
+ },
2025
+ },
2026
+ actions: [
2027
+ 'create',
2028
+ 'update',
2029
+ 'delete',
2030
+ 'enable',
2031
+ 'disable',
2032
+ 'test',
2033
+ 'redeliver',
2034
+ ],
2035
+ events: [
2036
+ 'created',
2037
+ 'updated',
2038
+ 'deleted',
2039
+ 'enabled',
2040
+ 'disabled',
2041
+ 'delivered',
2042
+ 'failed',
2043
+ ],
2044
+ };
2045
+ /**
2046
+ * Webhook delivery entity
2047
+ */
2048
+ export const WebhookDelivery = {
2049
+ singular: 'webhook delivery',
2050
+ plural: 'webhook deliveries',
2051
+ description: 'A webhook delivery attempt',
2052
+ properties: {
2053
+ event: {
2054
+ type: 'string',
2055
+ description: 'Event type that triggered delivery',
2056
+ },
2057
+ action: {
2058
+ type: 'string',
2059
+ optional: true,
2060
+ description: 'Event action',
2061
+ },
2062
+ status: {
2063
+ type: 'string',
2064
+ description: 'Delivery status: pending, success, failed',
2065
+ examples: ['pending', 'success', 'failed'],
2066
+ },
2067
+ statusCode: {
2068
+ type: 'number',
2069
+ optional: true,
2070
+ description: 'HTTP response status code',
2071
+ },
2072
+ duration: {
2073
+ type: 'number',
2074
+ optional: true,
2075
+ description: 'Delivery duration in ms',
2076
+ },
2077
+ requestHeaders: {
2078
+ type: 'json',
2079
+ optional: true,
2080
+ description: 'Request headers sent',
2081
+ },
2082
+ requestPayload: {
2083
+ type: 'json',
2084
+ optional: true,
2085
+ description: 'Request payload sent',
2086
+ },
2087
+ responseHeaders: {
2088
+ type: 'json',
2089
+ optional: true,
2090
+ description: 'Response headers received',
2091
+ },
2092
+ responseBody: {
2093
+ type: 'string',
2094
+ optional: true,
2095
+ description: 'Response body received',
2096
+ },
2097
+ deliveredAt: {
2098
+ type: 'datetime',
2099
+ description: 'Delivery timestamp',
2100
+ },
2101
+ },
2102
+ relationships: {
2103
+ webhook: {
2104
+ type: 'Webhook',
2105
+ backref: 'deliveries',
2106
+ description: 'Parent webhook',
2107
+ },
2108
+ },
2109
+ actions: ['redeliver', 'view'],
2110
+ events: ['delivered', 'failed', 'redelivered'],
2111
+ };
2112
+ // =============================================================================
2113
+ // DeployKey
2114
+ // =============================================================================
2115
+ /**
2116
+ * Deploy key entity
2117
+ *
2118
+ * Represents a deploy key for repository access
2119
+ */
2120
+ export const DeployKey = {
2121
+ singular: 'deploy key',
2122
+ plural: 'deploy keys',
2123
+ description: 'A deploy key for repository access',
2124
+ properties: {
2125
+ // Identity
2126
+ title: {
2127
+ type: 'string',
2128
+ description: 'Deploy key title',
2129
+ },
2130
+ key: {
2131
+ type: 'string',
2132
+ description: 'Public SSH key',
2133
+ },
2134
+ fingerprint: {
2135
+ type: 'string',
2136
+ optional: true,
2137
+ description: 'Key fingerprint',
2138
+ },
2139
+ // Permissions
2140
+ readOnly: {
2141
+ type: 'boolean',
2142
+ description: 'Whether key has read-only access',
2143
+ },
2144
+ // Status
2145
+ verified: {
2146
+ type: 'boolean',
2147
+ optional: true,
2148
+ description: 'Whether key has been verified',
2149
+ },
2150
+ lastUsedAt: {
2151
+ type: 'datetime',
2152
+ optional: true,
2153
+ description: 'Last time key was used',
2154
+ },
2155
+ },
2156
+ relationships: {
2157
+ repository: {
2158
+ type: 'Repository',
2159
+ description: 'Repository this key grants access to',
2160
+ },
2161
+ addedBy: {
2162
+ type: 'Contact',
2163
+ description: 'Who added the key',
2164
+ },
2165
+ },
2166
+ actions: ['create', 'delete', 'rotate'],
2167
+ events: ['created', 'deleted', 'used'],
2168
+ };
2169
+ // =============================================================================
2170
+ // Export all entities as a schema
2171
+ // =============================================================================
2172
+ /**
2173
+ * All development tool entity types
2174
+ */
2175
+ export const DevelopmentEntities = {
2176
+ // Version Control
2177
+ Repository,
2178
+ Branch,
2179
+ Commit,
2180
+ // Code Review
2181
+ PullRequest,
2182
+ CodeReview,
2183
+ // Issues & Discussions
2184
+ CodeIssue,
2185
+ Discussion,
2186
+ // Releases & Packages
2187
+ Release,
2188
+ Package,
2189
+ PackageVersion,
2190
+ // CI/CD
2191
+ Workflow,
2192
+ WorkflowRun,
2193
+ // Sharing
2194
+ Gist,
2195
+ // Security & Access
2196
+ Secret,
2197
+ Webhook,
2198
+ WebhookDelivery,
2199
+ DeployKey,
2200
+ };
2201
+ /**
2202
+ * Entity categories for organization
2203
+ */
2204
+ export const DevelopmentCategories = {
2205
+ versionControl: ['Repository', 'Branch', 'Commit'],
2206
+ codeReview: ['PullRequest', 'CodeReview'],
2207
+ issueTracking: ['CodeIssue', 'Discussion'],
2208
+ releases: ['Release', 'Package', 'PackageVersion'],
2209
+ cicd: ['Workflow', 'WorkflowRun'],
2210
+ sharing: ['Gist'],
2211
+ security: ['Secret', 'Webhook', 'WebhookDelivery', 'DeployKey'],
2212
+ };
2213
+ //# sourceMappingURL=development.js.map