@novu/framework 2.13.1 → 2.13.2-rc.dc9caee828

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.
@@ -137,6 +137,116 @@ declare enum ResourceEnum {
137
137
  STEP = "step"
138
138
  }
139
139
 
140
+ /**
141
+ * Novu-owned card JSON on the agent wire.
142
+ *
143
+ * Matches the full Chat SDK kit agents emit (`section` / `fields` / `table` /
144
+ * `button` / `select` / `radio_select`) plus Novu fields on buttons
145
+ * (`actionType`, `callbackUrl`, `disabled`). Chat SDK stays the authoring
146
+ * frontend (`@novu/framework`); this type is the contract `@novu/js` and the
147
+ * event protocol share. The dashboard Maily editor still authors the smaller
148
+ * `@novu/shared` v1 subset (link-buttons only).
149
+ *
150
+ * Compatibility locks in `packages/framework/src/resources/agent/card-element-compat.test-d.ts`:
151
+ * `chat.CardElement` and `@novu/stateless` `CardElement` must assign to this type.
152
+ * Do not add `chat` or `@novu/stateless` as a dependency here.
153
+ */
154
+ type CardElementTextElement = {
155
+ type: 'text';
156
+ content: string;
157
+ style?: 'plain' | 'bold' | 'muted';
158
+ };
159
+ type CardElementImageElement = {
160
+ type: 'image';
161
+ url: string;
162
+ alt?: string;
163
+ };
164
+ type CardElementDividerElement = {
165
+ type: 'divider';
166
+ };
167
+ /** Presentational inline hyperlink (Chat SDK `CardLink`). */
168
+ type CardElementLinkElement = {
169
+ type: 'link';
170
+ label: string;
171
+ url: string;
172
+ };
173
+ type CardElementLinkButtonElement = {
174
+ type: 'link-button';
175
+ label: string;
176
+ url: string;
177
+ style?: 'primary' | 'danger' | 'default';
178
+ /** Optional author-provided id; platform serializers use it (e.g. Slack `action_id`). */
179
+ id?: string;
180
+ };
181
+ /** Interactive action button (Chat SDK `Button`). Drives `sendAction` in web chat. */
182
+ type CardElementButtonElement = {
183
+ type: 'button';
184
+ id: string;
185
+ label: string;
186
+ style?: 'primary' | 'danger' | 'default';
187
+ actionType?: 'action' | 'modal';
188
+ callbackUrl?: string;
189
+ value?: string;
190
+ disabled?: boolean;
191
+ };
192
+ type CardElementSelectOptionElement = {
193
+ label: string;
194
+ value: string;
195
+ description?: string;
196
+ };
197
+ /** Chat SDK `Select`. */
198
+ type CardElementSelectElement = {
199
+ type: 'select';
200
+ id: string;
201
+ label: string;
202
+ options: CardElementSelectOptionElement[];
203
+ initialOption?: string;
204
+ optional?: boolean;
205
+ placeholder?: string;
206
+ };
207
+ /** Chat SDK `RadioSelect`. */
208
+ type CardElementRadioSelectElement = {
209
+ type: 'radio_select';
210
+ id: string;
211
+ label: string;
212
+ options: CardElementSelectOptionElement[];
213
+ initialOption?: string;
214
+ optional?: boolean;
215
+ };
216
+ type CardElementActionChild = CardElementLinkButtonElement | CardElementButtonElement | CardElementSelectElement | CardElementRadioSelectElement;
217
+ type CardElementActionsElement = {
218
+ type: 'actions';
219
+ children: CardElementActionChild[];
220
+ };
221
+ type CardElementFieldElement = {
222
+ type: 'field';
223
+ label: string;
224
+ value: string;
225
+ };
226
+ type CardElementFieldsElement = {
227
+ type: 'fields';
228
+ children: CardElementFieldElement[];
229
+ };
230
+ type CardElementTableElement = {
231
+ type: 'table';
232
+ headers: string[];
233
+ rows: string[][];
234
+ align?: Array<'left' | 'center' | 'right'>;
235
+ };
236
+ type CardElementSectionElement = {
237
+ type: 'section';
238
+ children: CardElementChild[];
239
+ };
240
+ /** Includes top-level `button` — agents emit that shape, not only `actions` wrappers. */
241
+ type CardElementChild = CardElementTextElement | CardElementImageElement | CardElementDividerElement | CardElementLinkElement | CardElementButtonElement | CardElementActionsElement | CardElementSectionElement | CardElementFieldsElement | CardElementTableElement;
242
+ type CardElement = {
243
+ type: 'card';
244
+ title?: string;
245
+ subtitle?: string;
246
+ imageUrl?: string;
247
+ children: CardElementChild[];
248
+ };
249
+
140
250
  type AgentMessageRole = 'user' | 'assistant';
141
251
  type AgentToolSource = {
142
252
  type: 'builtin';
@@ -170,7 +280,7 @@ type AgentToolResultContent = {
170
280
  type AgentMessageContent = {
171
281
  markdown: string;
172
282
  } | {
173
- card: Record<string, unknown>;
283
+ card: CardElement;
174
284
  };
175
285
  interface AgentFileRef {
176
286
  fileId: string;
@@ -1 +1 @@
1
- import{b as N,c as a,d as k,e as i}from"../chunk-PBC7WR2R.js";import{a as F}from"../chunk-YLCLZVYS.js";import"../chunk-XIVU4VDS.js";import{N as R,O as V,P as b,W as $}from"../chunk-4ETX7FIT.js";import{a as y,b as h,c,d as m,e as f,f as H,i as v,p as w,q as E,r as S}from"../chunk-X5AZIKIR.js";import"../chunk-RBTQQ5IZ.js";import{a as O}from"../chunk-IREH6K2M.js";import{f as x}from"../chunk-VY27ZAO7.js";import{b as A}from"../chunk-PU74XQ2P.js";import"../chunk-FHYMHX3T.js";var l="express",q=p=>new a({frameworkName:l,...p,handler:(t,o)=>({body:()=>t.body,headers:e=>{let r=t.headers[e];return Array.isArray(r)?r[0]:r},method:()=>t.method||"GET",url:()=>{let e=t.headers.host||"",r=e!=null&&e.includes("://")?"":`${t.protocol||"https"}://`;return new URL(t.originalUrl||t.url||"",`${r}${e||""}`)},queryString:e=>{let r=t.query[e];return Array.isArray(r)?r[0]:r},transformResponse:({body:e,headers:r,status:s})=>(Object.entries(r).forEach(([n,d])=>{o.setHeader(n,d)}),o.status(s).send(e))})}).createHandler();export{y as Actions,V as AgentDeliveryError,R as AgentError,h as Button,c as Card,m as CardLink,f as CardText,N as Client,x as CronExpression,H as Divider,v as Image,a as NovuRequestHandler,w as Select,E as SelectOption,$ as SeverityLevelEnum,S as TextInput,k as agent,l as frameworkName,A as isFromWorkflow,O as providerSchemas,q as serve,F as step,b as toAgentError,i as workflow};
1
+ import{b as N,c as a,d as k,e as i}from"../chunk-BXKRUYUB.js";import{a as F}from"../chunk-YLCLZVYS.js";import"../chunk-XIVU4VDS.js";import{N as R,O as V,P as b,W as $}from"../chunk-4ETX7FIT.js";import{a as y,b as h,c,d as m,e as f,f as H,i as v,p as w,q as E,r as S}from"../chunk-X5AZIKIR.js";import"../chunk-RBTQQ5IZ.js";import{a as O}from"../chunk-IREH6K2M.js";import{f as x}from"../chunk-VY27ZAO7.js";import{b as A}from"../chunk-PU74XQ2P.js";import"../chunk-FHYMHX3T.js";var l="express",q=p=>new a({frameworkName:l,...p,handler:(t,o)=>({body:()=>t.body,headers:e=>{let r=t.headers[e];return Array.isArray(r)?r[0]:r},method:()=>t.method||"GET",url:()=>{let e=t.headers.host||"",r=e!=null&&e.includes("://")?"":`${t.protocol||"https"}://`;return new URL(t.originalUrl||t.url||"",`${r}${e||""}`)},queryString:e=>{let r=t.query[e];return Array.isArray(r)?r[0]:r},transformResponse:({body:e,headers:r,status:s})=>(Object.entries(r).forEach(([n,d])=>{o.setHeader(n,d)}),o.status(s).send(e))})}).createHandler();export{y as Actions,V as AgentDeliveryError,R as AgentError,h as Button,c as Card,m as CardLink,f as CardText,N as Client,x as CronExpression,H as Divider,v as Image,a as NovuRequestHandler,w as Select,E as SelectOption,$ as SeverityLevelEnum,S as TextInput,k as agent,l as frameworkName,A as isFromWorkflow,O as providerSchemas,q as serve,F as step,b as toAgentError,i as workflow};
@@ -1 +1 @@
1
- import{b as x,c as t,d as F,e as C}from"../chunk-PBC7WR2R.js";import{a as D}from"../chunk-YLCLZVYS.js";import"../chunk-XIVU4VDS.js";import{N as O,O as b,P as q,W as B}from"../chunk-4ETX7FIT.js";import{a as l,b as y,c as H,d as S,e as i,f,i as g,p as N,q as w,r as c}from"../chunk-X5AZIKIR.js";import"../chunk-RBTQQ5IZ.js";import{a as $}from"../chunk-IREH6K2M.js";import{f as E}from"../chunk-VY27ZAO7.js";import{b as k}from"../chunk-PU74XQ2P.js";import"../chunk-FHYMHX3T.js";import{getHeader as o,getQuery as a,readBody as p,send as n,setHeaders as m}from"h3";var h="h3",R=d=>new t({frameworkName:h,...d,handler:r=>({body:()=>p(r),headers:e=>o(r,e),method:()=>r.method,url:()=>new URL(String(r.path),`${process.env.NODE_ENV==="development"?"http":"https"}://${String(o(r,"host"))}`),queryString:e=>String(a(r)[e]),transformResponse:e=>{let{res:s}=r.node;return s.statusCode=e.status,m(r,e.headers),n(r,e.body)}})}).createHandler();export{l as Actions,b as AgentDeliveryError,O as AgentError,y as Button,H as Card,S as CardLink,i as CardText,x as Client,E as CronExpression,f as Divider,g as Image,t as NovuRequestHandler,N as Select,w as SelectOption,B as SeverityLevelEnum,c as TextInput,F as agent,h as frameworkName,k as isFromWorkflow,$ as providerSchemas,R as serve,D as step,q as toAgentError,C as workflow};
1
+ import{b as x,c as t,d as F,e as C}from"../chunk-BXKRUYUB.js";import{a as D}from"../chunk-YLCLZVYS.js";import"../chunk-XIVU4VDS.js";import{N as O,O as b,P as q,W as B}from"../chunk-4ETX7FIT.js";import{a as l,b as y,c as H,d as S,e as i,f,i as g,p as N,q as w,r as c}from"../chunk-X5AZIKIR.js";import"../chunk-RBTQQ5IZ.js";import{a as $}from"../chunk-IREH6K2M.js";import{f as E}from"../chunk-VY27ZAO7.js";import{b as k}from"../chunk-PU74XQ2P.js";import"../chunk-FHYMHX3T.js";import{getHeader as o,getQuery as a,readBody as p,send as n,setHeaders as m}from"h3";var h="h3",R=d=>new t({frameworkName:h,...d,handler:r=>({body:()=>p(r),headers:e=>o(r,e),method:()=>r.method,url:()=>new URL(String(r.path),`${process.env.NODE_ENV==="development"?"http":"https"}://${String(o(r,"host"))}`),queryString:e=>String(a(r)[e]),transformResponse:e=>{let{res:s}=r.node;return s.statusCode=e.status,m(r,e.headers),n(r,e.body)}})}).createHandler();export{l as Actions,b as AgentDeliveryError,O as AgentError,y as Button,H as Card,S as CardLink,i as CardText,x as Client,E as CronExpression,f as Divider,g as Image,t as NovuRequestHandler,N as Select,w as SelectOption,B as SeverityLevelEnum,c as TextInput,F as agent,h as frameworkName,k as isFromWorkflow,$ as providerSchemas,R as serve,D as step,q as toAgentError,C as workflow};
@@ -1 +1 @@
1
- import{a as s,b as C,c as p,d as k,e as g}from"../chunk-PBC7WR2R.js";import{a as D}from"../chunk-YLCLZVYS.js";import"../chunk-XIVU4VDS.js";import{N as U,O as E,P as S,W as O}from"../chunk-4ETX7FIT.js";import{a as m,b as h,c as l,d as c,e as f,f as x,i as w,p as y,q,r as v}from"../chunk-X5AZIKIR.js";import"../chunk-RBTQQ5IZ.js";import{a as H}from"../chunk-IREH6K2M.js";import{f as N}from"../chunk-VY27ZAO7.js";import{b as R}from"../chunk-PU74XQ2P.js";import"../chunk-FHYMHX3T.js";var u="hono",d=o=>{try{let n=o.executionCtx;if(typeof n.waitUntil=="function")return e=>n.waitUntil(e)}catch{}},P=o=>new p({frameworkName:u,...o,handler:e=>({body:()=>e.req.json(),waitUntil:d(e),headers:t=>e.req.header(t),method:()=>e.req.method,queryString:t=>e.req.query(t),url:()=>{try{return new URL(e.req.url)}catch{}let t=e.req.header("host")||"localhost",r="https";try{(process.env.NODE_ENV==="development"||process.env.NODE_ENV==="dev")&&(r="http")}catch{}return new URL(e.req.url,`${r}://${t}`)},transformResponse:({body:t,status:r,headers:a})=>{let i=s();return new i(t,{status:r,headers:a})}})}).createHandler();export{m as Actions,E as AgentDeliveryError,U as AgentError,h as Button,l as Card,c as CardLink,f as CardText,C as Client,N as CronExpression,x as Divider,w as Image,p as NovuRequestHandler,y as Select,q as SelectOption,O as SeverityLevelEnum,v as TextInput,k as agent,u as frameworkName,R as isFromWorkflow,H as providerSchemas,P as serve,D as step,S as toAgentError,g as workflow};
1
+ import{a as s,b as C,c as p,d as k,e as g}from"../chunk-BXKRUYUB.js";import{a as D}from"../chunk-YLCLZVYS.js";import"../chunk-XIVU4VDS.js";import{N as U,O as E,P as S,W as O}from"../chunk-4ETX7FIT.js";import{a as m,b as h,c as l,d as c,e as f,f as x,i as w,p as y,q,r as v}from"../chunk-X5AZIKIR.js";import"../chunk-RBTQQ5IZ.js";import{a as H}from"../chunk-IREH6K2M.js";import{f as N}from"../chunk-VY27ZAO7.js";import{b as R}from"../chunk-PU74XQ2P.js";import"../chunk-FHYMHX3T.js";var u="hono",d=o=>{try{let n=o.executionCtx;if(typeof n.waitUntil=="function")return e=>n.waitUntil(e)}catch{}},P=o=>new p({frameworkName:u,...o,handler:e=>({body:()=>e.req.json(),waitUntil:d(e),headers:t=>e.req.header(t),method:()=>e.req.method,queryString:t=>e.req.query(t),url:()=>{try{return new URL(e.req.url)}catch{}let t=e.req.header("host")||"localhost",r="https";try{(process.env.NODE_ENV==="development"||process.env.NODE_ENV==="dev")&&(r="http")}catch{}return new URL(e.req.url,`${r}://${t}`)},transformResponse:({body:t,status:r,headers:a})=>{let i=s();return new i(t,{status:r,headers:a})}})}).createHandler();export{m as Actions,E as AgentDeliveryError,U as AgentError,h as Button,l as Card,c as CardLink,f as CardText,C as Client,N as CronExpression,x as Divider,w as Image,p as NovuRequestHandler,y as Select,q as SelectOption,O as SeverityLevelEnum,v as TextInput,k as agent,u as frameworkName,R as isFromWorkflow,H as providerSchemas,P as serve,D as step,S as toAgentError,g as workflow};
@@ -1 +1 @@
1
- import{b as A,c as n,d as q,e as H}from"../chunk-PBC7WR2R.js";import{a as N}from"../chunk-YLCLZVYS.js";import"../chunk-XIVU4VDS.js";import{N as G,O as S,P as b,W as V}from"../chunk-4ETX7FIT.js";import{a as m,b as u,c as P,d as h,e as i,f as w,i as l,p as f,q as x,r as c}from"../chunk-X5AZIKIR.js";import"../chunk-RBTQQ5IZ.js";import{a as g}from"../chunk-IREH6K2M.js";import{f as E}from"../chunk-VY27ZAO7.js";import{b as I}from"../chunk-PU74XQ2P.js";import"../chunk-FHYMHX3T.js";var p="lambda",k=y=>new n({frameworkName:p,...y,handler:r=>{let s=(e=>e.version==="2.0")(r);return{url:()=>{let e=s?r.requestContext.http.path:r.path,t=r.headers["x-forwarded-proto"]||"https",a=new URL(e,`${t}://${r.headers.host||r.headers.Host||""}`);for(let o in r.queryStringParameters)o&&a.searchParams.set(o,r.queryStringParameters[o]);return a},body:()=>{let e="{}";return r.body&&(e=r.isBase64Encoded?Buffer.from(r.body,"base64").toString():r.body),JSON.parse(e)},headers:e=>r.headers[e],queryString:e=>{var t;return(t=r.queryStringParameters)==null?void 0:t[e]},transformResponse:({body:e,status:t,headers:a})=>Promise.resolve({body:e,statusCode:t,headers:a}),method:()=>s?r.requestContext.http.method:r.httpMethod}}}).createHandler();export{m as Actions,S as AgentDeliveryError,G as AgentError,u as Button,P as Card,h as CardLink,i as CardText,A as Client,E as CronExpression,w as Divider,l as Image,n as NovuRequestHandler,f as Select,x as SelectOption,V as SeverityLevelEnum,c as TextInput,q as agent,p as frameworkName,I as isFromWorkflow,g as providerSchemas,k as serve,N as step,b as toAgentError,H as workflow};
1
+ import{b as A,c as n,d as q,e as H}from"../chunk-BXKRUYUB.js";import{a as N}from"../chunk-YLCLZVYS.js";import"../chunk-XIVU4VDS.js";import{N as G,O as S,P as b,W as V}from"../chunk-4ETX7FIT.js";import{a as m,b as u,c as P,d as h,e as i,f as w,i as l,p as f,q as x,r as c}from"../chunk-X5AZIKIR.js";import"../chunk-RBTQQ5IZ.js";import{a as g}from"../chunk-IREH6K2M.js";import{f as E}from"../chunk-VY27ZAO7.js";import{b as I}from"../chunk-PU74XQ2P.js";import"../chunk-FHYMHX3T.js";var p="lambda",k=y=>new n({frameworkName:p,...y,handler:r=>{let s=(e=>e.version==="2.0")(r);return{url:()=>{let e=s?r.requestContext.http.path:r.path,t=r.headers["x-forwarded-proto"]||"https",a=new URL(e,`${t}://${r.headers.host||r.headers.Host||""}`);for(let o in r.queryStringParameters)o&&a.searchParams.set(o,r.queryStringParameters[o]);return a},body:()=>{let e="{}";return r.body&&(e=r.isBase64Encoded?Buffer.from(r.body,"base64").toString():r.body),JSON.parse(e)},headers:e=>r.headers[e],queryString:e=>{var t;return(t=r.queryStringParameters)==null?void 0:t[e]},transformResponse:({body:e,status:t,headers:a})=>Promise.resolve({body:e,statusCode:t,headers:a}),method:()=>s?r.requestContext.http.method:r.httpMethod}}}).createHandler();export{m as Actions,S as AgentDeliveryError,G as AgentError,u as Button,P as Card,h as CardLink,i as CardText,A as Client,E as CronExpression,w as Divider,l as Image,n as NovuRequestHandler,f as Select,x as SelectOption,V as SeverityLevelEnum,c as TextInput,q as agent,p as frameworkName,I as isFromWorkflow,g as providerSchemas,k as serve,N as step,b as toAgentError,H as workflow};
@@ -1 +1 @@
1
- import{b as W,c as P,d as re,e as se}from"../chunk-PBC7WR2R.js";import{a as pe}from"../chunk-YLCLZVYS.js";import"../chunk-XIVU4VDS.js";import{N as X,O as Z,P as ee,W as oe}from"../chunk-4ETX7FIT.js";import{a as j,b as F,c as L,d as V,e as U,f as k,i as B,p as $,q as K,r as z}from"../chunk-X5AZIKIR.js";import"../chunk-RBTQQ5IZ.js";import{a as te}from"../chunk-IREH6K2M.js";import{f as J}from"../chunk-VY27ZAO7.js";import{b as Q}from"../chunk-PU74XQ2P.js";import{d as n,e as i}from"../chunk-FHYMHX3T.js";import{Inject as N,Injectable as H}from"@nestjs/common";import{ConfigurableModuleBuilder as x}from"@nestjs/common";var{ConfigurableModuleClass:u,MODULE_OPTIONS_TOKEN:m,OPTIONS_TYPE:ne,ASYNC_OPTIONS_TYPE:ie}=new x().setClassMethodName("register").setFactoryMethodName("createNovuModuleOptions").setExtras(o=>({...o,isGlobal:!0})).build();var h="REGISTER_API_PATH",E="REGISTER_CONTROLLER_DECORATORS";import{Injectable as A}from"@nestjs/common";var c=class{handler(e,r){return{body:()=>e.body,headers:t=>{let a=e.headers[t.toLowerCase()];return Array.isArray(a)?a[0]:a},method:()=>e.method||"GET",queryString:t=>{let a=e.query[t];return Array.isArray(a)?a[0]:a},url:()=>{let t=e.headers.host||"",a=t!=null&&t.includes("://")?"":`${e.protocol||"https"}://`;return new URL(e.originalUrl||e.url||"",`${a}${t||""}`)},transformResponse:({body:t,headers:a,status:y})=>(Object.entries(a).forEach(([I,_])=>{r.setHeader(I,_)}),r.status(y).send(t))}}};c=n([A()],c);var q="nest",l=class{constructor(e,r){this.options=e;this.novuHandler=r;this.novuRequestHandler=new P({frameworkName:q,...this.options,handler:this.novuHandler.handler})}async handleRequest(e,r){await this.novuRequestHandler.createHandler()(e,r)}};l=n([H(),i(0,N(m)),i(1,N(c))],l);import{Controller as M,Get as D,Inject as C,Options as b,Post as w,Req as f,Res as O}from"@nestjs/common";var p=class{constructor(e){this.novuService=e}async handleGet(e,r){await this.novuService.handleRequest(e,r)}async handlePost(e,r){await this.novuService.handleRequest(e,r)}async handleOptions(e,r){await this.novuService.handleRequest(e,r)}};n([D(),i(0,f()),i(1,O())],p.prototype,"handleGet",1),n([w(),i(0,f()),i(1,O())],p.prototype,"handlePost",1),n([b(),i(0,f()),i(1,O())],p.prototype,"handleOptions",1),p=n([M(),i(0,C(l))],p);import{Module as G}from"@nestjs/common";import{PATH_METADATA as Y}from"@nestjs/common/constants";var R={provide:h,useFactory:o=>{if(!o.apiPath)throw new Error("`apiPath` must be provided to set the controller path");Reflect.defineMetadata(Y,o.apiPath,p)},inject:[m]};function T(o,e=[]){return e.reduce((r,s)=>{let t=s(r);return t!=null?t:r},o)}function g(o,e){var r;for(let s of(r=Reflect.getMetadataKeys(o))!=null?r:[])Reflect.defineMetadata(s,Reflect.getMetadata(s,o),e)}function S(o,e=[]){let r=T(o,e);r!==o&&g(r,o)}var v={provide:E,useFactory:o=>{var e;S(p,(e=o.controllerDecorators)!=null?e:[])},inject:[m]};var d=class extends u{static register(e,r){var t;let s=u.register(e);return s.controllers=[T(p,e.controllerDecorators||[])],(t=s.providers)==null||t.push(R,l,c,...r||[]),s.exports=[l,c],s}static registerAsync(e,r){var t;let s=u.registerAsync(e);return s.controllers=[p],(t=s.providers)==null||t.push(R,v,l,c,...r||[]),s.exports=[l,c],s}};d=n([G({})],d);export{j as Actions,Z as AgentDeliveryError,X as AgentError,F as Button,L as Card,V as CardLink,U as CardText,W as Client,J as CronExpression,k as Divider,B as Image,m as NOVU_OPTIONS,l as NovuClient,p as NovuController,c as NovuHandler,d as NovuModule,P as NovuRequestHandler,h as REGISTER_API_PATH,E as REGISTER_CONTROLLER_DECORATORS,$ as Select,K as SelectOption,oe as SeverityLevelEnum,z as TextInput,re as agent,q as frameworkName,Q as isFromWorkflow,te as providerSchemas,R as registerApiPath,v as registerControllerDecorators,pe as step,ee as toAgentError,se as workflow};
1
+ import{b as W,c as P,d as re,e as se}from"../chunk-BXKRUYUB.js";import{a as pe}from"../chunk-YLCLZVYS.js";import"../chunk-XIVU4VDS.js";import{N as X,O as Z,P as ee,W as oe}from"../chunk-4ETX7FIT.js";import{a as j,b as F,c as L,d as V,e as U,f as k,i as B,p as $,q as K,r as z}from"../chunk-X5AZIKIR.js";import"../chunk-RBTQQ5IZ.js";import{a as te}from"../chunk-IREH6K2M.js";import{f as J}from"../chunk-VY27ZAO7.js";import{b as Q}from"../chunk-PU74XQ2P.js";import{d as n,e as i}from"../chunk-FHYMHX3T.js";import{Inject as N,Injectable as H}from"@nestjs/common";import{ConfigurableModuleBuilder as x}from"@nestjs/common";var{ConfigurableModuleClass:u,MODULE_OPTIONS_TOKEN:m,OPTIONS_TYPE:ne,ASYNC_OPTIONS_TYPE:ie}=new x().setClassMethodName("register").setFactoryMethodName("createNovuModuleOptions").setExtras(o=>({...o,isGlobal:!0})).build();var h="REGISTER_API_PATH",E="REGISTER_CONTROLLER_DECORATORS";import{Injectable as A}from"@nestjs/common";var c=class{handler(e,r){return{body:()=>e.body,headers:t=>{let a=e.headers[t.toLowerCase()];return Array.isArray(a)?a[0]:a},method:()=>e.method||"GET",queryString:t=>{let a=e.query[t];return Array.isArray(a)?a[0]:a},url:()=>{let t=e.headers.host||"",a=t!=null&&t.includes("://")?"":`${e.protocol||"https"}://`;return new URL(e.originalUrl||e.url||"",`${a}${t||""}`)},transformResponse:({body:t,headers:a,status:y})=>(Object.entries(a).forEach(([I,_])=>{r.setHeader(I,_)}),r.status(y).send(t))}}};c=n([A()],c);var q="nest",l=class{constructor(e,r){this.options=e;this.novuHandler=r;this.novuRequestHandler=new P({frameworkName:q,...this.options,handler:this.novuHandler.handler})}async handleRequest(e,r){await this.novuRequestHandler.createHandler()(e,r)}};l=n([H(),i(0,N(m)),i(1,N(c))],l);import{Controller as M,Get as D,Inject as C,Options as b,Post as w,Req as f,Res as O}from"@nestjs/common";var p=class{constructor(e){this.novuService=e}async handleGet(e,r){await this.novuService.handleRequest(e,r)}async handlePost(e,r){await this.novuService.handleRequest(e,r)}async handleOptions(e,r){await this.novuService.handleRequest(e,r)}};n([D(),i(0,f()),i(1,O())],p.prototype,"handleGet",1),n([w(),i(0,f()),i(1,O())],p.prototype,"handlePost",1),n([b(),i(0,f()),i(1,O())],p.prototype,"handleOptions",1),p=n([M(),i(0,C(l))],p);import{Module as G}from"@nestjs/common";import{PATH_METADATA as Y}from"@nestjs/common/constants";var R={provide:h,useFactory:o=>{if(!o.apiPath)throw new Error("`apiPath` must be provided to set the controller path");Reflect.defineMetadata(Y,o.apiPath,p)},inject:[m]};function T(o,e=[]){return e.reduce((r,s)=>{let t=s(r);return t!=null?t:r},o)}function g(o,e){var r;for(let s of(r=Reflect.getMetadataKeys(o))!=null?r:[])Reflect.defineMetadata(s,Reflect.getMetadata(s,o),e)}function S(o,e=[]){let r=T(o,e);r!==o&&g(r,o)}var v={provide:E,useFactory:o=>{var e;S(p,(e=o.controllerDecorators)!=null?e:[])},inject:[m]};var d=class extends u{static register(e,r){var t;let s=u.register(e);return s.controllers=[T(p,e.controllerDecorators||[])],(t=s.providers)==null||t.push(R,l,c,...r||[]),s.exports=[l,c],s}static registerAsync(e,r){var t;let s=u.registerAsync(e);return s.controllers=[p],(t=s.providers)==null||t.push(R,v,l,c,...r||[]),s.exports=[l,c],s}};d=n([G({})],d);export{j as Actions,Z as AgentDeliveryError,X as AgentError,F as Button,L as Card,V as CardLink,U as CardText,W as Client,J as CronExpression,k as Divider,B as Image,m as NOVU_OPTIONS,l as NovuClient,p as NovuController,c as NovuHandler,d as NovuModule,P as NovuRequestHandler,h as REGISTER_API_PATH,E as REGISTER_CONTROLLER_DECORATORS,$ as Select,K as SelectOption,oe as SeverityLevelEnum,z as TextInput,re as agent,q as frameworkName,Q as isFromWorkflow,te as providerSchemas,R as registerApiPath,v as registerControllerDecorators,pe as step,ee as toAgentError,se as workflow};
@@ -1 +1 @@
1
- import{a as c,b as k,c as f,d as L,e as V}from"../chunk-PBC7WR2R.js";import{a as W}from"../chunk-YLCLZVYS.js";import"../chunk-XIVU4VDS.js";import{N as j,O as G,P as I,W as D}from"../chunk-4ETX7FIT.js";import{a as S,b as q,c as w,d as P,e as T,f as v,i as A,p as E,q as b,r as g}from"../chunk-X5AZIKIR.js";import"../chunk-RBTQQ5IZ.js";import{a as $}from"../chunk-IREH6K2M.js";import{f as F}from"../chunk-VY27ZAO7.js";import{b as U}from"../chunk-PU74XQ2P.js";import"../chunk-FHYMHX3T.js";import*as l from"next/server.js";var N="next",y=()=>{if(typeof l.after=="function")return r=>{try{l.after(r)}catch{}}},H=r=>typeof r=="object"&&r!==null&&typeof r.setHeader=="function"&&typeof r.status=="function"&&typeof r.send=="function",B=r=>{let i=new f({frameworkName:N,...r,handler:(h,R,d)=>{let n=R,p=e=>{let t=typeof n.headers.get=="function"?n.headers.get(e):n.headers[e];return Array.isArray(t)?t[0]:t};return{body:()=>typeof n.json=="function"?n.json():n.body,waitUntil:y(),headers:p,method:()=>h||n.method||"",queryString:(e,t)=>{var a;let o=((a=n.query)==null?void 0:a[e])||t.searchParams.get(e);return Array.isArray(o)?o[0]:o},url:()=>{let e;try{e=new URL(n.url)}catch{}if(e){let s=p("host");if(s){let u=new URL(s.includes("://")?s:`${e.protocol}//${s}`);e.protocol=u.protocol,e.host=u.host,e.port=u.port,e.username=u.username,e.password=u.password}return e}let t="https",o=p("host")||"";try{(process.env.NODE_ENV==="development"||process.env.NODE_ENV==="dev")&&(t="http")}catch{}return new URL(n.url,`${t}://${o}`)},transformResponse:({body:e,headers:t,status:o})=>{if(H(d)){Object.entries(t).forEach(([s,u])=>{d.setHeader(s,u)}),d.status(o).send(e);return}let a=c();return new a(e,{status:o,headers:t})}}}}).createHandler(),m=i.bind(null,void 0);return Object.defineProperties(m,{GET:{value:i.bind(null,"GET")},POST:{value:i.bind(null,"POST")},OPTIONS:{value:i.bind(null,"OPTIONS")}})};export{S as Actions,G as AgentDeliveryError,j as AgentError,q as Button,w as Card,P as CardLink,T as CardText,k as Client,F as CronExpression,v as Divider,A as Image,f as NovuRequestHandler,E as Select,b as SelectOption,D as SeverityLevelEnum,g as TextInput,L as agent,N as frameworkName,U as isFromWorkflow,$ as providerSchemas,B as serve,W as step,I as toAgentError,V as workflow};
1
+ import{a as c,b as k,c as f,d as L,e as V}from"../chunk-BXKRUYUB.js";import{a as W}from"../chunk-YLCLZVYS.js";import"../chunk-XIVU4VDS.js";import{N as j,O as G,P as I,W as D}from"../chunk-4ETX7FIT.js";import{a as S,b as q,c as w,d as P,e as T,f as v,i as A,p as E,q as b,r as g}from"../chunk-X5AZIKIR.js";import"../chunk-RBTQQ5IZ.js";import{a as $}from"../chunk-IREH6K2M.js";import{f as F}from"../chunk-VY27ZAO7.js";import{b as U}from"../chunk-PU74XQ2P.js";import"../chunk-FHYMHX3T.js";import*as l from"next/server.js";var N="next",y=()=>{if(typeof l.after=="function")return r=>{try{l.after(r)}catch{}}},H=r=>typeof r=="object"&&r!==null&&typeof r.setHeader=="function"&&typeof r.status=="function"&&typeof r.send=="function",B=r=>{let i=new f({frameworkName:N,...r,handler:(h,R,d)=>{let n=R,p=e=>{let t=typeof n.headers.get=="function"?n.headers.get(e):n.headers[e];return Array.isArray(t)?t[0]:t};return{body:()=>typeof n.json=="function"?n.json():n.body,waitUntil:y(),headers:p,method:()=>h||n.method||"",queryString:(e,t)=>{var a;let o=((a=n.query)==null?void 0:a[e])||t.searchParams.get(e);return Array.isArray(o)?o[0]:o},url:()=>{let e;try{e=new URL(n.url)}catch{}if(e){let s=p("host");if(s){let u=new URL(s.includes("://")?s:`${e.protocol}//${s}`);e.protocol=u.protocol,e.host=u.host,e.port=u.port,e.username=u.username,e.password=u.password}return e}let t="https",o=p("host")||"";try{(process.env.NODE_ENV==="development"||process.env.NODE_ENV==="dev")&&(t="http")}catch{}return new URL(n.url,`${t}://${o}`)},transformResponse:({body:e,headers:t,status:o})=>{if(H(d)){Object.entries(t).forEach(([s,u])=>{d.setHeader(s,u)}),d.status(o).send(e);return}let a=c();return new a(e,{status:o,headers:t})}}}}).createHandler(),m=i.bind(null,void 0);return Object.defineProperties(m,{GET:{value:i.bind(null,"GET")},POST:{value:i.bind(null,"POST")},OPTIONS:{value:i.bind(null,"OPTIONS")}})};export{S as Actions,G as AgentDeliveryError,j as AgentError,q as Button,w as Card,P as CardLink,T as CardText,k as Client,F as CronExpression,v as Divider,A as Image,f as NovuRequestHandler,E as Select,b as SelectOption,D as SeverityLevelEnum,g as TextInput,L as agent,N as frameworkName,U as isFromWorkflow,$ as providerSchemas,B as serve,W as step,I as toAgentError,V as workflow};
@@ -1 +1 @@
1
- import{b as k,c as t,d as F,e as C}from"../chunk-PBC7WR2R.js";import{a as D}from"../chunk-YLCLZVYS.js";import"../chunk-XIVU4VDS.js";import{N as O,O as b,P as q,W as B}from"../chunk-4ETX7FIT.js";import{a as l,b as H,c as S,d as i,e as y,f,i as g,p as N,q as w,r as c}from"../chunk-X5AZIKIR.js";import"../chunk-RBTQQ5IZ.js";import{a as $}from"../chunk-IREH6K2M.js";import{f as x}from"../chunk-VY27ZAO7.js";import{b as E}from"../chunk-PU74XQ2P.js";import"../chunk-FHYMHX3T.js";import{getHeader as o,getQuery as a,readBody as n,send as p,setHeaders as m}from"h3";var u="nuxt",U=d=>new t({frameworkName:u,...d,handler:r=>({queryString:e=>String(a(r)[e]),body:()=>n(r),headers:e=>o(r,e),url:()=>new URL(String(r.path),`${process.env.NODE_ENV==="development"?"http":"https"}://${String(o(r,"host"))}`),method:()=>r.method,transformResponse:e=>{let{res:s}=r.node;return s.statusCode=e.status,m(r,e.headers),p(r,e.body)}})}).createHandler();export{l as Actions,b as AgentDeliveryError,O as AgentError,H as Button,S as Card,i as CardLink,y as CardText,k as Client,x as CronExpression,f as Divider,g as Image,t as NovuRequestHandler,N as Select,w as SelectOption,B as SeverityLevelEnum,c as TextInput,F as agent,u as frameworkName,E as isFromWorkflow,$ as providerSchemas,U as serve,D as step,q as toAgentError,C as workflow};
1
+ import{b as k,c as t,d as F,e as C}from"../chunk-BXKRUYUB.js";import{a as D}from"../chunk-YLCLZVYS.js";import"../chunk-XIVU4VDS.js";import{N as O,O as b,P as q,W as B}from"../chunk-4ETX7FIT.js";import{a as l,b as H,c as S,d as i,e as y,f,i as g,p as N,q as w,r as c}from"../chunk-X5AZIKIR.js";import"../chunk-RBTQQ5IZ.js";import{a as $}from"../chunk-IREH6K2M.js";import{f as x}from"../chunk-VY27ZAO7.js";import{b as E}from"../chunk-PU74XQ2P.js";import"../chunk-FHYMHX3T.js";import{getHeader as o,getQuery as a,readBody as n,send as p,setHeaders as m}from"h3";var u="nuxt",U=d=>new t({frameworkName:u,...d,handler:r=>({queryString:e=>String(a(r)[e]),body:()=>n(r),headers:e=>o(r,e),url:()=>new URL(String(r.path),`${process.env.NODE_ENV==="development"?"http":"https"}://${String(o(r,"host"))}`),method:()=>r.method,transformResponse:e=>{let{res:s}=r.node;return s.statusCode=e.status,m(r,e.headers),p(r,e.body)}})}).createHandler();export{l as Actions,b as AgentDeliveryError,O as AgentError,H as Button,S as Card,i as CardLink,y as CardText,k as Client,x as CronExpression,f as Divider,g as Image,t as NovuRequestHandler,N as Select,w as SelectOption,B as SeverityLevelEnum,c as TextInput,F as agent,u as frameworkName,E as isFromWorkflow,$ as providerSchemas,U as serve,D as step,q as toAgentError,C as workflow};
@@ -1 +1 @@
1
- import{a as t,b as N,c as o,d as q,e as b}from"../chunk-PBC7WR2R.js";import{a as j}from"../chunk-YLCLZVYS.js";import"../chunk-XIVU4VDS.js";import{N as S,O as g,P as y,W as O}from"../chunk-4ETX7FIT.js";import{a as u,b as h,c as l,d as R,e as c,f as i,i as w,p as f,q as x,r as k}from"../chunk-X5AZIKIR.js";import"../chunk-RBTQQ5IZ.js";import{a as F}from"../chunk-IREH6K2M.js";import{f as v}from"../chunk-VY27ZAO7.js";import{b as H}from"../chunk-PU74XQ2P.js";import"../chunk-FHYMHX3T.js";var m="remix",U=s=>new o({frameworkName:m,...s,handler:({request:e})=>({body:()=>e.json(),headers:r=>e.headers.get(r),method:()=>e.method,url:()=>new URL(e.url,`https://${e.headers.get("host")||""}`),transformResponse:({body:r,status:n,headers:p})=>{let a=t();return new a(r,{status:n,headers:p})}})}).createHandler();export{u as Actions,g as AgentDeliveryError,S as AgentError,h as Button,l as Card,R as CardLink,c as CardText,N as Client,v as CronExpression,i as Divider,w as Image,o as NovuRequestHandler,f as Select,x as SelectOption,O as SeverityLevelEnum,k as TextInput,q as agent,m as frameworkName,H as isFromWorkflow,F as providerSchemas,U as serve,j as step,y as toAgentError,b as workflow};
1
+ import{a as t,b as N,c as o,d as q,e as b}from"../chunk-BXKRUYUB.js";import{a as j}from"../chunk-YLCLZVYS.js";import"../chunk-XIVU4VDS.js";import{N as S,O as g,P as y,W as O}from"../chunk-4ETX7FIT.js";import{a as u,b as h,c as l,d as R,e as c,f as i,i as w,p as f,q as x,r as k}from"../chunk-X5AZIKIR.js";import"../chunk-RBTQQ5IZ.js";import{a as F}from"../chunk-IREH6K2M.js";import{f as v}from"../chunk-VY27ZAO7.js";import{b as H}from"../chunk-PU74XQ2P.js";import"../chunk-FHYMHX3T.js";var m="remix",U=s=>new o({frameworkName:m,...s,handler:({request:e})=>({body:()=>e.json(),headers:r=>e.headers.get(r),method:()=>e.method,url:()=>new URL(e.url,`https://${e.headers.get("host")||""}`),transformResponse:({body:r,status:n,headers:p})=>{let a=t();return new a(r,{status:n,headers:p})}})}).createHandler();export{u as Actions,g as AgentDeliveryError,S as AgentError,h as Button,l as Card,R as CardLink,c as CardText,N as Client,v as CronExpression,i as Divider,w as Image,o as NovuRequestHandler,f as Select,x as SelectOption,O as SeverityLevelEnum,k as TextInput,q as agent,m as frameworkName,H as isFromWorkflow,F as providerSchemas,U as serve,j as step,y as toAgentError,b as workflow};
@@ -1 +1 @@
1
- import{a as r,b,c as s,d as I,e as g}from"../chunk-PBC7WR2R.js";import{a as x}from"../chunk-YLCLZVYS.js";import"../chunk-XIVU4VDS.js";import{N as w,O as y,P as G,W as H}from"../chunk-4ETX7FIT.js";import{a as v,b as E,c as P,d as R,e as T,f as S,i as c,p as f,q as h,r as N}from"../chunk-X5AZIKIR.js";import"../chunk-RBTQQ5IZ.js";import{a as k}from"../chunk-IREH6K2M.js";import{f as q}from"../chunk-VY27ZAO7.js";import{b as F}from"../chunk-PU74XQ2P.js";import"../chunk-FHYMHX3T.js";var m="sveltekit",V=o=>{let t=new s({frameworkName:m,...o,handler:(u,e)=>({method:()=>u||e.request.method||"",body:()=>e.request.json(),headers:n=>e.request.headers.get(n),url:()=>{let n=process.env.NODE_ENV==="development"||process.env.NODE_ENV==="dev"?"http":"https";return new URL(e.request.url,`${n}://${e.request.headers.get("host")||""}`)},transformResponse:({body:n,headers:d,status:a})=>{let l=r();return new l(n,{status:a,headers:d})}})}).createHandler(),p=t.bind(null,void 0);return Object.defineProperties(p,{GET:{value:t.bind(null,"GET")},POST:{value:t.bind(null,"POST")},OPTIONS:{value:t.bind(null,"OPTIONS")}})};export{v as Actions,y as AgentDeliveryError,w as AgentError,E as Button,P as Card,R as CardLink,T as CardText,b as Client,q as CronExpression,S as Divider,c as Image,s as NovuRequestHandler,f as Select,h as SelectOption,H as SeverityLevelEnum,N as TextInput,I as agent,m as frameworkName,F as isFromWorkflow,k as providerSchemas,V as serve,x as step,G as toAgentError,g as workflow};
1
+ import{a as r,b,c as s,d as I,e as g}from"../chunk-BXKRUYUB.js";import{a as x}from"../chunk-YLCLZVYS.js";import"../chunk-XIVU4VDS.js";import{N as w,O as y,P as G,W as H}from"../chunk-4ETX7FIT.js";import{a as v,b as E,c as P,d as R,e as T,f as S,i as c,p as f,q as h,r as N}from"../chunk-X5AZIKIR.js";import"../chunk-RBTQQ5IZ.js";import{a as k}from"../chunk-IREH6K2M.js";import{f as q}from"../chunk-VY27ZAO7.js";import{b as F}from"../chunk-PU74XQ2P.js";import"../chunk-FHYMHX3T.js";var m="sveltekit",V=o=>{let t=new s({frameworkName:m,...o,handler:(u,e)=>({method:()=>u||e.request.method||"",body:()=>e.request.json(),headers:n=>e.request.headers.get(n),url:()=>{let n=process.env.NODE_ENV==="development"||process.env.NODE_ENV==="dev"?"http":"https";return new URL(e.request.url,`${n}://${e.request.headers.get("host")||""}`)},transformResponse:({body:n,headers:d,status:a})=>{let l=r();return new l(n,{status:a,headers:d})}})}).createHandler(),p=t.bind(null,void 0);return Object.defineProperties(p,{GET:{value:t.bind(null,"GET")},POST:{value:t.bind(null,"POST")},OPTIONS:{value:t.bind(null,"OPTIONS")}})};export{v as Actions,y as AgentDeliveryError,w as AgentError,E as Button,P as Card,R as CardLink,T as CardText,b as Client,q as CronExpression,S as Divider,c as Image,s as NovuRequestHandler,f as Select,h as SelectOption,H as SeverityLevelEnum,N as TextInput,I as agent,m as frameworkName,F as isFromWorkflow,k as providerSchemas,V as serve,x as step,G as toAgentError,g as workflow};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@novu/framework",
3
- "version": "2.13.1",
3
+ "version": "2.13.2-rc.dc9caee828",
4
4
  "description": "The Code-First Notifications Workflow SDK.",
5
5
  "main": "./dist/cjs/index.cjs",
6
6
  "types": "./dist/cjs/index.d.cts",
@@ -322,7 +322,8 @@
322
322
  "vitest": "^4.1.0",
323
323
  "zod": "^3.23.8",
324
324
  "zod-to-json-schema": "^3.23.3",
325
- "@novu/agent-event-protocol": "0.0.1"
325
+ "@novu/agent-event-protocol": "0.0.1",
326
+ "@novu/stateless": "2.6.6"
326
327
  },
327
328
  "dependencies": {
328
329
  "ajv": "^8.20.0",