@novu/api 1.4.0 → 1.5.0

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 (315) hide show
  1. package/README.md +11 -7
  2. package/bin/mcp-server.js +1464 -1202
  3. package/bin/mcp-server.js.map +68 -62
  4. package/docs/sdks/credentials/README.md +6 -6
  5. package/docs/sdks/environments/README.md +74 -0
  6. package/docs/sdks/integrations/README.md +1 -1
  7. package/docs/sdks/novu/README.md +68 -1
  8. package/examples/README.md +31 -0
  9. package/examples/package-lock.json +626 -0
  10. package/examples/package.json +18 -0
  11. package/examples/trigger.example.ts +36 -0
  12. package/funcs/environmentsGetTags.d.ts +18 -0
  13. package/funcs/environmentsGetTags.d.ts.map +1 -0
  14. package/funcs/environmentsGetTags.js +146 -0
  15. package/funcs/environmentsGetTags.js.map +1 -0
  16. package/funcs/retrieve.d.ts +11 -0
  17. package/funcs/retrieve.d.ts.map +1 -0
  18. package/funcs/retrieve.js +119 -0
  19. package/funcs/retrieve.js.map +1 -0
  20. package/funcs/subscribersCredentialsAppend.d.ts +3 -3
  21. package/funcs/subscribersCredentialsAppend.js +3 -3
  22. package/funcs/subscribersCredentialsUpdate.d.ts +3 -3
  23. package/funcs/subscribersCredentialsUpdate.js +3 -3
  24. package/jsr.json +1 -1
  25. package/lib/config.d.ts +4 -4
  26. package/lib/config.js +4 -4
  27. package/mcp-server/cli/start/command.d.ts.map +1 -1
  28. package/mcp-server/cli/start/command.js +0 -12
  29. package/mcp-server/cli/start/command.js.map +1 -1
  30. package/mcp-server/cli/start/impl.d.ts +0 -2
  31. package/mcp-server/cli/start/impl.d.ts.map +1 -1
  32. package/mcp-server/cli/start/impl.js +0 -2
  33. package/mcp-server/cli/start/impl.js.map +1 -1
  34. package/mcp-server/mcp-server.js +1 -1
  35. package/mcp-server/server.d.ts.map +1 -1
  36. package/mcp-server/server.js +9 -5
  37. package/mcp-server/server.js.map +1 -1
  38. package/mcp-server/tools/environmentsGetTags.d.ts +9 -0
  39. package/mcp-server/tools/environmentsGetTags.d.ts.map +1 -0
  40. package/mcp-server/tools/environmentsGetTags.js +55 -0
  41. package/mcp-server/tools/environmentsGetTags.js.map +1 -0
  42. package/mcp-server/tools/retrieve.d.ts +8 -0
  43. package/mcp-server/tools/retrieve.d.ts.map +1 -0
  44. package/mcp-server/tools/retrieve.js +52 -0
  45. package/mcp-server/tools/retrieve.js.map +1 -0
  46. package/mcp-server/tools/subscribersCredentialsAppend.js +3 -3
  47. package/mcp-server/tools/subscribersCredentialsAppend.js.map +1 -1
  48. package/mcp-server/tools/subscribersCredentialsUpdate.js +3 -3
  49. package/mcp-server/tools/subscribersCredentialsUpdate.js.map +1 -1
  50. package/models/components/activitynotificationtemplateresponsedto.d.ts +2 -2
  51. package/models/components/activitynotificationtemplateresponsedto.js +3 -3
  52. package/models/components/chatorpushproviderenum.d.ts +3 -0
  53. package/models/components/chatorpushproviderenum.d.ts.map +1 -1
  54. package/models/components/chatorpushproviderenum.js +1 -0
  55. package/models/components/chatorpushproviderenum.js.map +1 -1
  56. package/models/components/chatstepresponsedto.d.ts +2 -2
  57. package/models/components/chatstepresponsedto.d.ts.map +1 -1
  58. package/models/components/chatstepresponsedto.js +3 -3
  59. package/models/components/chatstepresponsedto.js.map +1 -1
  60. package/models/components/chatstepupsertdto.d.ts +13 -20
  61. package/models/components/chatstepupsertdto.d.ts.map +1 -1
  62. package/models/components/chatstepupsertdto.js +7 -10
  63. package/models/components/chatstepupsertdto.js.map +1 -1
  64. package/models/components/{stepcontentissueenum.d.ts → contentissueenum.d.ts} +8 -8
  65. package/models/components/contentissueenum.d.ts.map +1 -0
  66. package/models/components/{stepcontentissueenum.js → contentissueenum.js} +12 -12
  67. package/models/components/contentissueenum.js.map +1 -0
  68. package/models/components/createworkflowdto.d.ts +19 -14
  69. package/models/components/createworkflowdto.d.ts.map +1 -1
  70. package/models/components/createworkflowdto.js +6 -4
  71. package/models/components/createworkflowdto.js.map +1 -1
  72. package/models/components/customstepresponsedto.d.ts +2 -2
  73. package/models/components/customstepresponsedto.d.ts.map +1 -1
  74. package/models/components/customstepresponsedto.js +3 -3
  75. package/models/components/customstepresponsedto.js.map +1 -1
  76. package/models/components/customstepupsertdto.d.ts +13 -15
  77. package/models/components/customstepupsertdto.d.ts.map +1 -1
  78. package/models/components/customstepupsertdto.js +7 -8
  79. package/models/components/customstepupsertdto.js.map +1 -1
  80. package/models/components/delaycontroldto.d.ts +8 -8
  81. package/models/components/delaycontroldto.d.ts.map +1 -1
  82. package/models/components/delaycontroldto.js +13 -13
  83. package/models/components/delaycontroldto.js.map +1 -1
  84. package/models/components/delaystepresponsedto.d.ts +2 -2
  85. package/models/components/delaystepresponsedto.d.ts.map +1 -1
  86. package/models/components/delaystepresponsedto.js +3 -3
  87. package/models/components/delaystepresponsedto.js.map +1 -1
  88. package/models/components/delaystepupsertdto.d.ts +13 -102
  89. package/models/components/delaystepupsertdto.d.ts.map +1 -1
  90. package/models/components/delaystepupsertdto.js +8 -62
  91. package/models/components/delaystepupsertdto.js.map +1 -1
  92. package/models/components/digeststepresponsedto.d.ts +2 -2
  93. package/models/components/digeststepresponsedto.d.ts.map +1 -1
  94. package/models/components/digeststepresponsedto.js +3 -3
  95. package/models/components/digeststepresponsedto.js.map +1 -1
  96. package/models/components/digeststepupsertdto.d.ts +13 -121
  97. package/models/components/digeststepupsertdto.d.ts.map +1 -1
  98. package/models/components/digeststepupsertdto.js +8 -70
  99. package/models/components/digeststepupsertdto.js.map +1 -1
  100. package/models/components/emailcontroldto.d.ts +5 -0
  101. package/models/components/emailcontroldto.d.ts.map +1 -1
  102. package/models/components/emailcontroldto.js +2 -0
  103. package/models/components/emailcontroldto.js.map +1 -1
  104. package/models/components/emailstepresponsedto.d.ts +7 -2
  105. package/models/components/emailstepresponsedto.d.ts.map +1 -1
  106. package/models/components/emailstepresponsedto.js +5 -3
  107. package/models/components/emailstepresponsedto.js.map +1 -1
  108. package/models/components/emailstepupsertdto.d.ts +13 -67
  109. package/models/components/emailstepupsertdto.d.ts.map +1 -1
  110. package/models/components/emailstepupsertdto.js +8 -39
  111. package/models/components/emailstepupsertdto.js.map +1 -1
  112. package/models/components/environmentresponsedto.d.ts +37 -0
  113. package/models/components/environmentresponsedto.d.ts.map +1 -1
  114. package/models/components/environmentresponsedto.js +25 -1
  115. package/models/components/environmentresponsedto.js.map +1 -1
  116. package/models/components/getenvironmenttagsdto.d.ts +29 -0
  117. package/models/components/getenvironmenttagsdto.d.ts.map +1 -0
  118. package/models/components/getenvironmenttagsdto.js +59 -0
  119. package/models/components/getenvironmenttagsdto.js.map +1 -0
  120. package/models/components/inappstepresponsedto.d.ts +2 -2
  121. package/models/components/inappstepresponsedto.d.ts.map +1 -1
  122. package/models/components/inappstepresponsedto.js +3 -3
  123. package/models/components/inappstepresponsedto.js.map +1 -1
  124. package/models/components/inappstepupsertdto.d.ts +13 -61
  125. package/models/components/inappstepupsertdto.d.ts.map +1 -1
  126. package/models/components/inappstepupsertdto.js +5 -26
  127. package/models/components/inappstepupsertdto.js.map +1 -1
  128. package/models/components/index.d.ts +4 -3
  129. package/models/components/index.d.ts.map +1 -1
  130. package/models/components/index.js +4 -3
  131. package/models/components/index.js.map +1 -1
  132. package/models/components/{stepintegrationissueenum.d.ts → integrationissueenum.d.ts} +8 -8
  133. package/models/components/integrationissueenum.d.ts.map +1 -0
  134. package/models/components/{stepintegrationissueenum.js → integrationissueenum.js} +12 -12
  135. package/models/components/integrationissueenum.js.map +1 -0
  136. package/models/components/lookbackwindowdto.d.ts +8 -8
  137. package/models/components/lookbackwindowdto.d.ts.map +1 -1
  138. package/models/components/lookbackwindowdto.js +13 -13
  139. package/models/components/lookbackwindowdto.js.map +1 -1
  140. package/models/components/messageresponsedto.d.ts +6 -6
  141. package/models/components/messageresponsedto.d.ts.map +1 -1
  142. package/models/components/messageresponsedto.js +8 -6
  143. package/models/components/messageresponsedto.js.map +1 -1
  144. package/models/components/notificationfeeditemdto.d.ts +14 -0
  145. package/models/components/notificationfeeditemdto.d.ts.map +1 -1
  146. package/models/components/notificationfeeditemdto.js +4 -0
  147. package/models/components/notificationfeeditemdto.js.map +1 -1
  148. package/models/components/patchworkflowdto.d.ts +7 -2
  149. package/models/components/patchworkflowdto.d.ts.map +1 -1
  150. package/models/components/patchworkflowdto.js +4 -2
  151. package/models/components/patchworkflowdto.js.map +1 -1
  152. package/models/components/providersidenum.d.ts +3 -0
  153. package/models/components/providersidenum.d.ts.map +1 -1
  154. package/models/components/providersidenum.js +1 -0
  155. package/models/components/providersidenum.js.map +1 -1
  156. package/models/components/pushstepresponsedto.d.ts +2 -2
  157. package/models/components/pushstepresponsedto.d.ts.map +1 -1
  158. package/models/components/pushstepresponsedto.js +3 -3
  159. package/models/components/pushstepresponsedto.js.map +1 -1
  160. package/models/components/pushstepupsertdto.d.ts +13 -25
  161. package/models/components/pushstepupsertdto.d.ts.map +1 -1
  162. package/models/components/pushstepupsertdto.js +7 -12
  163. package/models/components/pushstepupsertdto.js.map +1 -1
  164. package/models/components/{workfloworiginenum.d.ts → resourceoriginenum.d.ts} +8 -8
  165. package/models/components/{workfloworiginenum.d.ts.map → resourceoriginenum.d.ts.map} +1 -1
  166. package/models/components/{workfloworiginenum.js → resourceoriginenum.js} +12 -12
  167. package/models/components/{workfloworiginenum.js.map → resourceoriginenum.js.map} +1 -1
  168. package/models/components/smsstepresponsedto.d.ts +2 -2
  169. package/models/components/smsstepresponsedto.d.ts.map +1 -1
  170. package/models/components/smsstepresponsedto.js +3 -3
  171. package/models/components/smsstepresponsedto.js.map +1 -1
  172. package/models/components/smsstepupsertdto.d.ts +13 -20
  173. package/models/components/smsstepupsertdto.d.ts.map +1 -1
  174. package/models/components/smsstepupsertdto.js +7 -10
  175. package/models/components/smsstepupsertdto.js.map +1 -1
  176. package/models/components/stepcontentissuedto.d.ts +2 -2
  177. package/models/components/stepcontentissuedto.d.ts.map +1 -1
  178. package/models/components/stepcontentissuedto.js +3 -3
  179. package/models/components/stepcontentissuedto.js.map +1 -1
  180. package/models/components/stepintegrationissue.d.ts +2 -2
  181. package/models/components/stepintegrationissue.d.ts.map +1 -1
  182. package/models/components/stepintegrationissue.js +3 -3
  183. package/models/components/stepintegrationissue.js.map +1 -1
  184. package/models/components/stepresponsedto.d.ts +2 -2
  185. package/models/components/stepresponsedto.d.ts.map +1 -1
  186. package/models/components/stepresponsedto.js +3 -3
  187. package/models/components/stepresponsedto.js.map +1 -1
  188. package/models/components/subscriberchanneldto.d.ts +3 -0
  189. package/models/components/subscriberchanneldto.d.ts.map +1 -1
  190. package/models/components/subscriberchanneldto.js +1 -0
  191. package/models/components/subscriberchanneldto.js.map +1 -1
  192. package/models/components/uicomponentenum.d.ts +6 -0
  193. package/models/components/uicomponentenum.d.ts.map +1 -1
  194. package/models/components/uicomponentenum.js +2 -0
  195. package/models/components/uicomponentenum.js.map +1 -1
  196. package/models/components/uischemagroupenum.d.ts +3 -0
  197. package/models/components/uischemagroupenum.d.ts.map +1 -1
  198. package/models/components/uischemagroupenum.js +1 -0
  199. package/models/components/uischemagroupenum.js.map +1 -1
  200. package/models/components/uischemaproperty.d.ts +9 -0
  201. package/models/components/uischemaproperty.d.ts.map +1 -1
  202. package/models/components/uischemaproperty.js +3 -0
  203. package/models/components/uischemaproperty.js.map +1 -1
  204. package/models/components/updateworkflowdto.d.ts +21 -16
  205. package/models/components/updateworkflowdto.d.ts.map +1 -1
  206. package/models/components/updateworkflowdto.js +9 -7
  207. package/models/components/updateworkflowdto.js.map +1 -1
  208. package/models/components/workflowlistresponsedto.d.ts +82 -2
  209. package/models/components/workflowlistresponsedto.d.ts.map +1 -1
  210. package/models/components/workflowlistresponsedto.js +72 -4
  211. package/models/components/workflowlistresponsedto.js.map +1 -1
  212. package/models/components/workflowresponsedto.d.ts +96 -16
  213. package/models/components/workflowresponsedto.d.ts.map +1 -1
  214. package/models/components/workflowresponsedto.js +76 -8
  215. package/models/components/workflowresponsedto.js.map +1 -1
  216. package/models/errors/sdkerror.d.ts.map +1 -1
  217. package/models/errors/sdkerror.js +8 -2
  218. package/models/errors/sdkerror.js.map +1 -1
  219. package/models/operations/environmentscontrollergetenvironmenttags.d.ts +69 -0
  220. package/models/operations/environmentscontrollergetenvironmenttags.d.ts.map +1 -0
  221. package/models/operations/environmentscontrollergetenvironmenttags.js +110 -0
  222. package/models/operations/environmentscontrollergetenvironmenttags.js.map +1 -0
  223. package/models/operations/index.d.ts +2 -0
  224. package/models/operations/index.d.ts.map +1 -1
  225. package/models/operations/index.js +2 -0
  226. package/models/operations/index.js.map +1 -1
  227. package/models/operations/logscontrollergetlogs.d.ts +67 -0
  228. package/models/operations/logscontrollergetlogs.d.ts.map +1 -0
  229. package/models/operations/logscontrollergetlogs.js +107 -0
  230. package/models/operations/logscontrollergetlogs.js.map +1 -0
  231. package/models/operations/notificationscontrollerlistnotifications.d.ts +1 -1
  232. package/package.json +4 -4
  233. package/sdk/credentials.d.ts +6 -6
  234. package/sdk/credentials.js +6 -6
  235. package/sdk/environments.d.ts +7 -0
  236. package/sdk/environments.d.ts.map +1 -1
  237. package/sdk/environments.js +10 -0
  238. package/sdk/environments.js.map +1 -1
  239. package/sdk/sdk.d.ts +3 -2
  240. package/sdk/sdk.d.ts.map +1 -1
  241. package/sdk/sdk.js +7 -3
  242. package/sdk/sdk.js.map +1 -1
  243. package/sources/json-development.json +2980 -2226
  244. package/src/funcs/environmentsGetTags.ts +232 -0
  245. package/src/funcs/retrieve.ts +180 -0
  246. package/src/funcs/subscribersCredentialsAppend.ts +3 -3
  247. package/src/funcs/subscribersCredentialsUpdate.ts +3 -3
  248. package/src/lib/config.ts +4 -4
  249. package/src/mcp-server/cli/start/command.ts +0 -13
  250. package/src/mcp-server/cli/start/impl.ts +0 -4
  251. package/src/mcp-server/mcp-server.ts +1 -1
  252. package/src/mcp-server/server.ts +9 -5
  253. package/src/mcp-server/tools/environmentsGetTags.ts +39 -0
  254. package/src/mcp-server/tools/retrieve.ts +35 -0
  255. package/src/mcp-server/tools/subscribersCredentialsAppend.ts +3 -3
  256. package/src/mcp-server/tools/subscribersCredentialsUpdate.ts +3 -3
  257. package/src/models/components/activitynotificationtemplateresponsedto.ts +7 -7
  258. package/src/models/components/chatorpushproviderenum.ts +1 -0
  259. package/src/models/components/chatstepresponsedto.ts +8 -8
  260. package/src/models/components/chatstepupsertdto.ts +21 -31
  261. package/src/models/components/contentissueenum.ts +41 -0
  262. package/src/models/components/createworkflowdto.ts +21 -14
  263. package/src/models/components/customstepresponsedto.ts +8 -8
  264. package/src/models/components/customstepupsertdto.ts +21 -24
  265. package/src/models/components/delaycontroldto.ts +15 -16
  266. package/src/models/components/delaystepresponsedto.ts +8 -8
  267. package/src/models/components/delaystepupsertdto.ts +21 -115
  268. package/src/models/components/digeststepresponsedto.ts +8 -8
  269. package/src/models/components/digeststepupsertdto.ts +20 -146
  270. package/src/models/components/emailcontroldto.ts +7 -0
  271. package/src/models/components/emailstepresponsedto.ts +15 -8
  272. package/src/models/components/emailstepupsertdto.ts +21 -88
  273. package/src/models/components/environmentresponsedto.ts +43 -0
  274. package/src/models/components/getenvironmenttagsdto.ts +66 -0
  275. package/src/models/components/inappstepresponsedto.ts +8 -8
  276. package/src/models/components/inappstepupsertdto.ts +16 -87
  277. package/src/models/components/index.ts +4 -3
  278. package/src/models/components/integrationissueenum.ts +38 -0
  279. package/src/models/components/lookbackwindowdto.ts +16 -15
  280. package/src/models/components/messageresponsedto.ts +14 -12
  281. package/src/models/components/notificationfeeditemdto.ts +14 -0
  282. package/src/models/components/patchworkflowdto.ts +11 -4
  283. package/src/models/components/providersidenum.ts +1 -0
  284. package/src/models/components/pushstepresponsedto.ts +8 -8
  285. package/src/models/components/pushstepupsertdto.ts +21 -38
  286. package/src/models/components/resourceoriginenum.ts +40 -0
  287. package/src/models/components/smsstepresponsedto.ts +8 -8
  288. package/src/models/components/smsstepupsertdto.ts +20 -30
  289. package/src/models/components/stepcontentissuedto.ts +7 -7
  290. package/src/models/components/stepintegrationissue.ts +7 -7
  291. package/src/models/components/stepresponsedto.ts +8 -8
  292. package/src/models/components/subscriberchanneldto.ts +1 -0
  293. package/src/models/components/uicomponentenum.ts +2 -0
  294. package/src/models/components/uischemagroupenum.ts +1 -0
  295. package/src/models/components/uischemaproperty.ts +8 -0
  296. package/src/models/components/updateworkflowdto.ts +29 -22
  297. package/src/models/components/workflowlistresponsedto.ts +180 -8
  298. package/src/models/components/workflowresponsedto.ts +174 -22
  299. package/src/models/errors/sdkerror.ts +8 -2
  300. package/src/models/operations/environmentscontrollergetenvironmenttags.ts +186 -0
  301. package/src/models/operations/index.ts +2 -0
  302. package/src/models/operations/logscontrollergetlogs.ts +163 -0
  303. package/src/models/operations/notificationscontrollerlistnotifications.ts +1 -1
  304. package/src/sdk/credentials.ts +6 -6
  305. package/src/sdk/environments.ts +20 -0
  306. package/src/sdk/sdk.ts +17 -5
  307. package/src/types/constdatetime.ts +1 -1
  308. package/types/constdatetime.js +1 -1
  309. package/models/components/stepcontentissueenum.d.ts.map +0 -1
  310. package/models/components/stepcontentissueenum.js.map +0 -1
  311. package/models/components/stepintegrationissueenum.d.ts.map +0 -1
  312. package/models/components/stepintegrationissueenum.js.map +0 -1
  313. package/src/models/components/stepcontentissueenum.ts +0 -41
  314. package/src/models/components/stepintegrationissueenum.ts +0 -40
  315. package/src/models/components/workfloworiginenum.ts +0 -40
@@ -0,0 +1,232 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { NovuCore } from "../core.js";
6
+ import { encodeSimple } from "../lib/encodings.js";
7
+ import * as M from "../lib/matchers.js";
8
+ import { compactMap } from "../lib/primitives.js";
9
+ import { safeParse } from "../lib/schemas.js";
10
+ import { RequestOptions } from "../lib/sdks.js";
11
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
12
+ import { pathToFunc } from "../lib/url.js";
13
+ import {
14
+ ConnectionError,
15
+ InvalidRequestError,
16
+ RequestAbortedError,
17
+ RequestTimeoutError,
18
+ UnexpectedClientError,
19
+ } from "../models/errors/httpclienterrors.js";
20
+ import * as errors from "../models/errors/index.js";
21
+ import { NovuError } from "../models/errors/novuerror.js";
22
+ import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
23
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
24
+ import * as operations from "../models/operations/index.js";
25
+ import { APICall, APIPromise } from "../types/async.js";
26
+ import { Result } from "../types/fp.js";
27
+
28
+ /**
29
+ * Get environment tags
30
+ *
31
+ * @remarks
32
+ * Retrieve all unique tags used in workflows within the specified environment. These tags can be used for filtering workflows.
33
+ */
34
+ export function environmentsGetTags(
35
+ client: NovuCore,
36
+ environmentId: string,
37
+ idempotencyKey?: string | undefined,
38
+ options?: RequestOptions,
39
+ ): APIPromise<
40
+ Result<
41
+ operations.EnvironmentsControllerGetEnvironmentTagsResponse,
42
+ | errors.ErrorDto
43
+ | errors.ValidationErrorDto
44
+ | NovuError
45
+ | ResponseValidationError
46
+ | ConnectionError
47
+ | RequestAbortedError
48
+ | RequestTimeoutError
49
+ | InvalidRequestError
50
+ | UnexpectedClientError
51
+ | SDKValidationError
52
+ >
53
+ > {
54
+ return new APIPromise($do(
55
+ client,
56
+ environmentId,
57
+ idempotencyKey,
58
+ options,
59
+ ));
60
+ }
61
+
62
+ async function $do(
63
+ client: NovuCore,
64
+ environmentId: string,
65
+ idempotencyKey?: string | undefined,
66
+ options?: RequestOptions,
67
+ ): Promise<
68
+ [
69
+ Result<
70
+ operations.EnvironmentsControllerGetEnvironmentTagsResponse,
71
+ | errors.ErrorDto
72
+ | errors.ValidationErrorDto
73
+ | NovuError
74
+ | ResponseValidationError
75
+ | ConnectionError
76
+ | RequestAbortedError
77
+ | RequestTimeoutError
78
+ | InvalidRequestError
79
+ | UnexpectedClientError
80
+ | SDKValidationError
81
+ >,
82
+ APICall,
83
+ ]
84
+ > {
85
+ const input: operations.EnvironmentsControllerGetEnvironmentTagsRequest = {
86
+ environmentId: environmentId,
87
+ idempotencyKey: idempotencyKey,
88
+ };
89
+
90
+ const parsed = safeParse(
91
+ input,
92
+ (value) =>
93
+ operations.EnvironmentsControllerGetEnvironmentTagsRequest$outboundSchema
94
+ .parse(value),
95
+ "Input validation failed",
96
+ );
97
+ if (!parsed.ok) {
98
+ return [parsed, { status: "invalid" }];
99
+ }
100
+ const payload = parsed.value;
101
+ const body = null;
102
+
103
+ const pathParams = {
104
+ environmentId: encodeSimple("environmentId", payload.environmentId, {
105
+ explode: false,
106
+ charEncoding: "percent",
107
+ }),
108
+ };
109
+
110
+ const path = pathToFunc("/v2/environments/{environmentId}/tags")(pathParams);
111
+
112
+ const headers = new Headers(compactMap({
113
+ Accept: "application/json",
114
+ "idempotency-key": encodeSimple(
115
+ "idempotency-key",
116
+ payload["idempotency-key"],
117
+ { explode: false, charEncoding: "none" },
118
+ ),
119
+ }));
120
+
121
+ const secConfig = await extractSecurity(client._options.secretKey);
122
+ const securityInput = secConfig == null ? {} : { secretKey: secConfig };
123
+ const requestSecurity = resolveGlobalSecurity(securityInput);
124
+
125
+ const context = {
126
+ options: client._options,
127
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
128
+ operationID: "EnvironmentsController_getEnvironmentTags",
129
+ oAuth2Scopes: [],
130
+
131
+ resolvedSecurity: requestSecurity,
132
+
133
+ securitySource: client._options.secretKey,
134
+ retryConfig: options?.retries
135
+ || client._options.retryConfig
136
+ || {
137
+ strategy: "backoff",
138
+ backoff: {
139
+ initialInterval: 1000,
140
+ maxInterval: 30000,
141
+ exponent: 1.5,
142
+ maxElapsedTime: 3600000,
143
+ },
144
+ retryConnectionErrors: true,
145
+ }
146
+ || { strategy: "none" },
147
+ retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"],
148
+ };
149
+
150
+ const requestRes = client._createRequest(context, {
151
+ security: requestSecurity,
152
+ method: "GET",
153
+ baseURL: options?.serverURL,
154
+ path: path,
155
+ headers: headers,
156
+ body: body,
157
+ userAgent: client._options.userAgent,
158
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
159
+ }, options);
160
+ if (!requestRes.ok) {
161
+ return [requestRes, { status: "invalid" }];
162
+ }
163
+ const req = requestRes.value;
164
+
165
+ const doResult = await client._do(req, {
166
+ context,
167
+ errorCodes: [
168
+ "400",
169
+ "401",
170
+ "403",
171
+ "404",
172
+ "405",
173
+ "409",
174
+ "413",
175
+ "414",
176
+ "415",
177
+ "422",
178
+ "429",
179
+ "4XX",
180
+ "500",
181
+ "503",
182
+ "5XX",
183
+ ],
184
+ retryConfig: context.retryConfig,
185
+ retryCodes: context.retryCodes,
186
+ });
187
+ if (!doResult.ok) {
188
+ return [doResult, { status: "request-error", request: req }];
189
+ }
190
+ const response = doResult.value;
191
+
192
+ const responseFields = {
193
+ HttpMeta: { Response: response, Request: req },
194
+ };
195
+
196
+ const [result] = await M.match<
197
+ operations.EnvironmentsControllerGetEnvironmentTagsResponse,
198
+ | errors.ErrorDto
199
+ | errors.ValidationErrorDto
200
+ | NovuError
201
+ | ResponseValidationError
202
+ | ConnectionError
203
+ | RequestAbortedError
204
+ | RequestTimeoutError
205
+ | InvalidRequestError
206
+ | UnexpectedClientError
207
+ | SDKValidationError
208
+ >(
209
+ M.json(
210
+ 200,
211
+ operations.EnvironmentsControllerGetEnvironmentTagsResponse$inboundSchema,
212
+ { hdrs: true, key: "Result" },
213
+ ),
214
+ M.jsonErr(414, errors.ErrorDto$inboundSchema),
215
+ M.jsonErr(
216
+ [400, 401, 403, 404, 405, 409, 413, 415],
217
+ errors.ErrorDto$inboundSchema,
218
+ { hdrs: true },
219
+ ),
220
+ M.jsonErr(422, errors.ValidationErrorDto$inboundSchema, { hdrs: true }),
221
+ M.fail(429),
222
+ M.jsonErr(500, errors.ErrorDto$inboundSchema, { hdrs: true }),
223
+ M.fail(503),
224
+ M.fail("4XX"),
225
+ M.fail("5XX"),
226
+ )(response, req, { extraFields: responseFields });
227
+ if (!result.ok) {
228
+ return [result, { status: "complete", request: req, response }];
229
+ }
230
+
231
+ return [result, { status: "complete", request: req, response }];
232
+ }
@@ -0,0 +1,180 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { NovuCore } from "../core.js";
6
+ import { encodeFormQuery, encodeSimple } from "../lib/encodings.js";
7
+ import * as M from "../lib/matchers.js";
8
+ import { compactMap } from "../lib/primitives.js";
9
+ import { safeParse } from "../lib/schemas.js";
10
+ import { RequestOptions } from "../lib/sdks.js";
11
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
12
+ import { pathToFunc } from "../lib/url.js";
13
+ import {
14
+ ConnectionError,
15
+ InvalidRequestError,
16
+ RequestAbortedError,
17
+ RequestTimeoutError,
18
+ UnexpectedClientError,
19
+ } from "../models/errors/httpclienterrors.js";
20
+ import { NovuError } from "../models/errors/novuerror.js";
21
+ import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
22
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
23
+ import * as operations from "../models/operations/index.js";
24
+ import { APICall, APIPromise } from "../types/async.js";
25
+ import { Result } from "../types/fp.js";
26
+
27
+ export function retrieve(
28
+ client: NovuCore,
29
+ request: operations.LogsControllerGetLogsRequest,
30
+ options?: RequestOptions,
31
+ ): APIPromise<
32
+ Result<
33
+ operations.LogsControllerGetLogsResponseBody,
34
+ | NovuError
35
+ | ResponseValidationError
36
+ | ConnectionError
37
+ | RequestAbortedError
38
+ | RequestTimeoutError
39
+ | InvalidRequestError
40
+ | UnexpectedClientError
41
+ | SDKValidationError
42
+ >
43
+ > {
44
+ return new APIPromise($do(
45
+ client,
46
+ request,
47
+ options,
48
+ ));
49
+ }
50
+
51
+ async function $do(
52
+ client: NovuCore,
53
+ request: operations.LogsControllerGetLogsRequest,
54
+ options?: RequestOptions,
55
+ ): Promise<
56
+ [
57
+ Result<
58
+ operations.LogsControllerGetLogsResponseBody,
59
+ | NovuError
60
+ | ResponseValidationError
61
+ | ConnectionError
62
+ | RequestAbortedError
63
+ | RequestTimeoutError
64
+ | InvalidRequestError
65
+ | UnexpectedClientError
66
+ | SDKValidationError
67
+ >,
68
+ APICall,
69
+ ]
70
+ > {
71
+ const parsed = safeParse(
72
+ request,
73
+ (value) =>
74
+ operations.LogsControllerGetLogsRequest$outboundSchema.parse(value),
75
+ "Input validation failed",
76
+ );
77
+ if (!parsed.ok) {
78
+ return [parsed, { status: "invalid" }];
79
+ }
80
+ const payload = parsed.value;
81
+ const body = null;
82
+
83
+ const path = pathToFunc("/v1/logs/requests")();
84
+
85
+ const query = encodeFormQuery({
86
+ "created": payload.created,
87
+ "limit": payload.limit,
88
+ "page": payload.page,
89
+ "statusCode": payload.statusCode,
90
+ "transactionId": payload.transactionId,
91
+ "url": payload.url,
92
+ "url_pattern": payload.url_pattern,
93
+ });
94
+
95
+ const headers = new Headers(compactMap({
96
+ Accept: "application/json",
97
+ "idempotency-key": encodeSimple(
98
+ "idempotency-key",
99
+ payload["idempotency-key"],
100
+ { explode: false, charEncoding: "none" },
101
+ ),
102
+ }));
103
+
104
+ const secConfig = await extractSecurity(client._options.secretKey);
105
+ const securityInput = secConfig == null ? {} : { secretKey: secConfig };
106
+ const requestSecurity = resolveGlobalSecurity(securityInput);
107
+
108
+ const context = {
109
+ options: client._options,
110
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
111
+ operationID: "LogsController_getLogs",
112
+ oAuth2Scopes: [],
113
+
114
+ resolvedSecurity: requestSecurity,
115
+
116
+ securitySource: client._options.secretKey,
117
+ retryConfig: options?.retries
118
+ || client._options.retryConfig
119
+ || {
120
+ strategy: "backoff",
121
+ backoff: {
122
+ initialInterval: 1000,
123
+ maxInterval: 30000,
124
+ exponent: 1.5,
125
+ maxElapsedTime: 3600000,
126
+ },
127
+ retryConnectionErrors: true,
128
+ }
129
+ || { strategy: "none" },
130
+ retryCodes: options?.retryCodes || ["408", "409", "429", "5XX"],
131
+ };
132
+
133
+ const requestRes = client._createRequest(context, {
134
+ security: requestSecurity,
135
+ method: "GET",
136
+ baseURL: options?.serverURL,
137
+ path: path,
138
+ headers: headers,
139
+ query: query,
140
+ body: body,
141
+ userAgent: client._options.userAgent,
142
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
143
+ }, options);
144
+ if (!requestRes.ok) {
145
+ return [requestRes, { status: "invalid" }];
146
+ }
147
+ const req = requestRes.value;
148
+
149
+ const doResult = await client._do(req, {
150
+ context,
151
+ errorCodes: ["4XX", "5XX"],
152
+ retryConfig: context.retryConfig,
153
+ retryCodes: context.retryCodes,
154
+ });
155
+ if (!doResult.ok) {
156
+ return [doResult, { status: "request-error", request: req }];
157
+ }
158
+ const response = doResult.value;
159
+
160
+ const [result] = await M.match<
161
+ operations.LogsControllerGetLogsResponseBody,
162
+ | NovuError
163
+ | ResponseValidationError
164
+ | ConnectionError
165
+ | RequestAbortedError
166
+ | RequestTimeoutError
167
+ | InvalidRequestError
168
+ | UnexpectedClientError
169
+ | SDKValidationError
170
+ >(
171
+ M.json(200, operations.LogsControllerGetLogsResponseBody$inboundSchema),
172
+ M.fail("4XX"),
173
+ M.fail("5XX"),
174
+ )(response, req);
175
+ if (!result.ok) {
176
+ return [result, { status: "complete", request: req, response }];
177
+ }
178
+
179
+ return [result, { status: "complete", request: req, response }];
180
+ }
@@ -27,11 +27,11 @@ import { APICall, APIPromise } from "../types/async.js";
27
27
  import { Result } from "../types/fp.js";
28
28
 
29
29
  /**
30
- * Upsert provider credentials
30
+ * Create or Partially Update provider credentials
31
31
  *
32
32
  * @remarks
33
- * Update credentials for a provider such as **slack** and **FCM**.
34
- * **providerId** is required field. This API replaces the existing deviceTokens with the provided ones.
33
+ * Create or Partially credentials for a provider such as **slack** and **FCM**.
34
+ * **providerId** is required field. This API creates the **deviceTokens** or replaces the existing ones.
35
35
  */
36
36
  export function subscribersCredentialsAppend(
37
37
  client: NovuCore,
@@ -27,11 +27,11 @@ import { APICall, APIPromise } from "../types/async.js";
27
27
  import { Result } from "../types/fp.js";
28
28
 
29
29
  /**
30
- * Update provider credentials
30
+ * Upsert provider credentials
31
31
  *
32
32
  * @remarks
33
- * Update credentials for a provider such as slack and push tokens.
34
- * **providerId** is required field. This API appends the **deviceTokens** to the existing ones.
33
+ * Upsert credentials for a provider such as slack and push tokens.
34
+ * **providerId** is required field. This API creates **deviceTokens** or appends to the existing ones.
35
35
  */
36
36
  export function subscribersCredentialsUpdate(
37
37
  client: NovuCore,
package/src/lib/config.ts CHANGED
@@ -58,8 +58,8 @@ export function serverURLFromOptions(options: SDKOptions): URL | null {
58
58
 
59
59
  export const SDK_METADATA = {
60
60
  language: "typescript",
61
- openapiDocVersion: "2.2.0",
62
- sdkVersion: "1.4.0",
63
- genVersion: "2.630.6",
64
- userAgent: "speakeasy-sdk/typescript 1.4.0 2.630.6 2.2.0 @novu/api",
61
+ openapiDocVersion: "2.3.0",
62
+ sdkVersion: "1.5.0",
63
+ genVersion: "2.661.4",
64
+ userAgent: "speakeasy-sdk/typescript 1.5.0 2.661.4 2.3.0 @novu/api",
65
65
  } as const;
@@ -6,7 +6,6 @@ import { buildCommand } from "@stricli/core";
6
6
  import { numberParser } from "@stricli/core";
7
7
  import * as z from "zod";
8
8
  import { consoleLoggerLevels } from "../../console-logger.js";
9
- import { mcpScopes } from "../../scopes.js";
10
9
 
11
10
  export const startCommand = buildCommand({
12
11
  loader: async () => {
@@ -37,18 +36,6 @@ export const startCommand = buildCommand({
37
36
  return z.string().parse(value);
38
37
  },
39
38
  },
40
- ...(mcpScopes.length
41
- ? {
42
- scope: {
43
- kind: "enum",
44
- brief:
45
- "Mount tools/resources that match given scope (repeatable flag)",
46
- values: mcpScopes,
47
- variadic: true,
48
- optional: true,
49
- },
50
- }
51
- : {}),
52
39
  "secret-key": {
53
40
  kind: "parsed",
54
41
  brief: "Sets the secretKey auth field for the API",
@@ -11,14 +11,12 @@ import {
11
11
  ConsoleLoggerLevel,
12
12
  createConsoleLogger,
13
13
  } from "../../console-logger.js";
14
- import { MCPScope } from "../../scopes.js";
15
14
  import { createMCPServer } from "../../server.js";
16
15
 
17
16
  interface StartCommandFlags {
18
17
  readonly transport: "stdio" | "sse";
19
18
  readonly port: number;
20
19
  readonly tool?: string[];
21
- readonly scope?: MCPScope[];
22
20
  readonly "secret-key"?: string | undefined;
23
21
  readonly "server-url"?: string;
24
22
  readonly "server-index"?: SDKOptions["serverIdx"];
@@ -49,7 +47,6 @@ async function startStdio(flags: StartCommandFlags) {
49
47
  const server = createMCPServer({
50
48
  logger,
51
49
  allowedTools: flags.tool,
52
- scopes: flags.scope,
53
50
  ...{ secretKey: flags["secret-key"] ?? "" },
54
51
  serverURL: flags["server-url"],
55
52
  serverIdx: flags["server-index"],
@@ -70,7 +67,6 @@ async function startSSE(flags: StartCommandFlags) {
70
67
  const mcpServer = createMCPServer({
71
68
  logger,
72
69
  allowedTools: flags.tool,
73
- scopes: flags.scope,
74
70
  ...{ secretKey: flags["secret-key"] ?? "" },
75
71
  serverURL: flags["server-url"],
76
72
  serverIdx: flags["server-index"],
@@ -19,7 +19,7 @@ const routes = buildRouteMap({
19
19
  export const app = buildApplication(routes, {
20
20
  name: "mcp",
21
21
  versionInfo: {
22
- currentVersion: "1.4.0",
22
+ currentVersion: "1.5.0",
23
23
  },
24
24
  });
25
25
 
@@ -16,6 +16,7 @@ import { createRegisterTool } from "./tools.js";
16
16
  import { tool$cancel } from "./tools/cancel.js";
17
17
  import { tool$environmentsCreate } from "./tools/environmentsCreate.js";
18
18
  import { tool$environmentsDelete } from "./tools/environmentsDelete.js";
19
+ import { tool$environmentsGetTags } from "./tools/environmentsGetTags.js";
19
20
  import { tool$environmentsList } from "./tools/environmentsList.js";
20
21
  import { tool$environmentsUpdate } from "./tools/environmentsUpdate.js";
21
22
  import { tool$integrationsCreate } from "./tools/integrationsCreate.js";
@@ -29,6 +30,7 @@ import { tool$messagesDeleteByTransactionId } from "./tools/messagesDeleteByTran
29
30
  import { tool$messagesRetrieve } from "./tools/messagesRetrieve.js";
30
31
  import { tool$notificationsList } from "./tools/notificationsList.js";
31
32
  import { tool$notificationsRetrieve } from "./tools/notificationsRetrieve.js";
33
+ import { tool$retrieve } from "./tools/retrieve.js";
32
34
  import { tool$subscribersCreate } from "./tools/subscribersCreate.js";
33
35
  import { tool$subscribersCreateBulk } from "./tools/subscribersCreateBulk.js";
34
36
  import { tool$subscribersCredentialsAppend } from "./tools/subscribersCredentialsAppend.js";
@@ -78,7 +80,7 @@ export function createMCPServer(deps: {
78
80
  }) {
79
81
  const server = new McpServer({
80
82
  name: "Novu",
81
- version: "1.4.0",
83
+ version: "1.5.0",
82
84
  });
83
85
 
84
86
  const client = new NovuCore({
@@ -112,6 +114,12 @@ export function createMCPServer(deps: {
112
114
  tool(tool$cancel);
113
115
  tool(tool$triggerBroadcast);
114
116
  tool(tool$triggerBulk);
117
+ tool(tool$retrieve);
118
+ tool(tool$environmentsGetTags);
119
+ tool(tool$environmentsCreate);
120
+ tool(tool$environmentsList);
121
+ tool(tool$environmentsUpdate);
122
+ tool(tool$environmentsDelete);
115
123
  tool(tool$subscribersSearch);
116
124
  tool(tool$subscribersCreate);
117
125
  tool(tool$subscribersRetrieve);
@@ -130,10 +138,6 @@ export function createMCPServer(deps: {
130
138
  tool(tool$workflowsDelete);
131
139
  tool(tool$workflowsPatch);
132
140
  tool(tool$workflowsSync);
133
- tool(tool$environmentsCreate);
134
- tool(tool$environmentsList);
135
- tool(tool$environmentsUpdate);
136
- tool(tool$environmentsDelete);
137
141
  tool(tool$integrationsList);
138
142
  tool(tool$integrationsCreate);
139
143
  tool(tool$integrationsUpdate);
@@ -0,0 +1,39 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod";
6
+ import { environmentsGetTags } from "../../funcs/environmentsGetTags.js";
7
+ import { formatResult, ToolDefinition } from "../tools.js";
8
+
9
+ const args = {
10
+ environmentId: z.string(),
11
+ idempotencyKey: z.string().optional(),
12
+ };
13
+
14
+ export const tool$environmentsGetTags: ToolDefinition<typeof args> = {
15
+ name: "environments-get-tags",
16
+ description: `Get environment tags
17
+
18
+ Retrieve all unique tags used in workflows within the specified environment. These tags can be used for filtering workflows.`,
19
+ args,
20
+ tool: async (client, args, ctx) => {
21
+ const [result, apiCall] = await environmentsGetTags(
22
+ client,
23
+ args.environmentId,
24
+ args.idempotencyKey,
25
+ { fetchOptions: { signal: ctx.signal } },
26
+ ).$inspect();
27
+
28
+ if (!result.ok) {
29
+ return {
30
+ content: [{ type: "text", text: result.error.message }],
31
+ isError: true,
32
+ };
33
+ }
34
+
35
+ const value = result.value.result;
36
+
37
+ return formatResult(value, apiCall);
38
+ },
39
+ };
@@ -0,0 +1,35 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { retrieve } from "../../funcs/retrieve.js";
6
+ import * as operations from "../../models/operations/index.js";
7
+ import { formatResult, ToolDefinition } from "../tools.js";
8
+
9
+ const args = {
10
+ request: operations.LogsControllerGetLogsRequest$inboundSchema,
11
+ };
12
+
13
+ export const tool$retrieve: ToolDefinition<typeof args> = {
14
+ name: "retrieve",
15
+ description: ``,
16
+ args,
17
+ tool: async (client, args, ctx) => {
18
+ const [result, apiCall] = await retrieve(
19
+ client,
20
+ args.request,
21
+ { fetchOptions: { signal: ctx.signal } },
22
+ ).$inspect();
23
+
24
+ if (!result.ok) {
25
+ return {
26
+ content: [{ type: "text", text: result.error.message }],
27
+ isError: true,
28
+ };
29
+ }
30
+
31
+ const value = result.value;
32
+
33
+ return formatResult(value, apiCall);
34
+ },
35
+ };
@@ -16,10 +16,10 @@ const args = {
16
16
 
17
17
  export const tool$subscribersCredentialsAppend: ToolDefinition<typeof args> = {
18
18
  name: "subscribers-credentials-append",
19
- description: `Upsert provider credentials
19
+ description: `Create or Partially Update provider credentials
20
20
 
21
- Update credentials for a provider such as **slack** and **FCM**.
22
- **providerId** is required field. This API replaces the existing deviceTokens with the provided ones.`,
21
+ Create or Partially credentials for a provider such as **slack** and **FCM**.
22
+ **providerId** is required field. This API creates the **deviceTokens** or replaces the existing ones.`,
23
23
  args,
24
24
  tool: async (client, args, ctx) => {
25
25
  const [result, apiCall] = await subscribersCredentialsAppend(
@@ -16,10 +16,10 @@ const args = {
16
16
 
17
17
  export const tool$subscribersCredentialsUpdate: ToolDefinition<typeof args> = {
18
18
  name: "subscribers-credentials-update",
19
- description: `Update provider credentials
19
+ description: `Upsert provider credentials
20
20
 
21
- Update credentials for a provider such as slack and push tokens.
22
- **providerId** is required field. This API appends the **deviceTokens** to the existing ones.`,
21
+ Upsert credentials for a provider such as slack and push tokens.
22
+ **providerId** is required field. This API creates **deviceTokens** or appends to the existing ones.`,
23
23
  args,
24
24
  tool: async (client, args, ctx) => {
25
25
  const [result, apiCall] = await subscribersCredentialsUpdate(