gemi 0.36.0 → 0.36.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"Email.d.ts","sourceRoot":"","sources":["../../email/Email.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAG3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAGvE,UAAU,aAAa,CAAC,CAAC,CAAE,SAAQ,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IACvE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,KAAK;IAChB,IAAI,SAAM;IACV,EAAE,QAAM;IACR,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAgB;IACxD,EAAE,QAAM;IACR,GAAG,QAAM;IACT,WAAW,QAAM;IACjB,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;WAExB,IAAI,CAAC,CAAC,SAAS,KAAK,EAC/B,IAAI,EAAE,UAAU,CAAC,EACjB,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;WA+D/D,OAAO,CAAC,CAAC,SAAS,KAAK,EAClC,IAAI,EAAE,UAAU,CAAC,EACjB,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;cAWrF,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;cAK9C,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;CAInE"}
1
+ {"version":3,"file":"Email.d.ts","sourceRoot":"","sources":["../../email/Email.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAG3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAGvE,UAAU,aAAa,CAAC,CAAC,CAAE,SAAQ,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IACvE,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,KAAK;IAChB,IAAI,SAAM;IACV,EAAE,QAAM;IACR,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAgB;IACxD,EAAE,QAAM;IACR,GAAG,QAAM;IACT,WAAW,QAAM;IACjB,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;WAExB,IAAI,CAAC,CAAC,SAAS,KAAK,EAC/B,IAAI,EAAE,UAAU,CAAC,EACjB,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;WAgE/D,OAAO,CAAC,CAAC,SAAS,KAAK,EAClC,IAAI,EAAE,UAAU,CAAC,EACjB,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;cAWrF,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;cAK9C,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;CAInE"}
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{W as w}from"../chunk-y5h3n5t8.js";import{X as J}from"../chunk-e4vawn5g.js";import"../chunk-8ty8fefr.js";import"../chunk-2vpsbhpm.js";import{render as G}from"jsx-email";import{jsx as H}from"react/jsx-runtime";class K{from="";to=[];subject="No Subject";cc=[];bcc=[];attachments=[];template;headers={};static async send(q){let k=new this,M=J.use().service.defaultLocale,y=w.use().service,{to:z=k.to,from:O=k.from,subject:A=typeof k.subject==="string"?k.subject:k.subject[q.locale||M],cc:P=k.cc,bcc:Q=k.bcc,attachments:R=k.attachments,data:B,headers:U={}}=q,V={...y.headers??{},...k.headers??{},...U??{}};if(!(await y.filterRecipients(z)).length)return;let[D,W]=await Promise.all([k.render({...B,locale:q.locale}),k.renderText({...B,locale:q.locale})]);if(process.env.EMAIL_DEBUG==="true"){let F=`${process.env.ROOT_DIR}/.debug/emails/${new Date().toISOString()}${A}.html`;await Bun.write(F,D),Bun.spawnSync(["open",F]);return}await w.use().service.driver.send({bcc:Q,cc:P,from:O,subject:A,to:z,attachments:R,html:D,headers:V,text:W})}static async preview(q){return await new this().render({...q.data,locale:q.locale})}async render(q){let k=this.template;return await G(H(k,{...q}))}async renderText(q){let k=this.template;return await G(H(k,{...q}),{plainText:!0})}}export{K as Email};
2
+ import{W as w}from"../chunk-y5h3n5t8.js";import{X as J}from"../chunk-e4vawn5g.js";import"../chunk-8ty8fefr.js";import"../chunk-2vpsbhpm.js";import{render as G}from"jsx-email";import{jsx as H}from"react/jsx-runtime";class K{from="";to=[];subject="No Subject";cc=[];bcc=[];attachments=[];template;headers={};static async send(q){let k=new this,M=J.use().service.defaultLocale,y=w.use().service,{to:z=k.to,from:O=k.from,subject:A=typeof k.subject==="string"?k.subject:k.subject[q.locale||M],cc:P=k.cc,bcc:Q=k.bcc,attachments:R=k.attachments,data:B,headers:U={}}=q,V={...y.headers??{},...k.headers??{},...U??{}};if(!(await y.filterRecipients(z)).length)return;let[D,W]=await Promise.all([k.render({...B,locale:q.locale}),k.renderText({...B,locale:q.locale})]);if(process.env.EMAIL_DEBUG==="true"){let F=`${process.env.ROOT_DIR}/.debug/emails/${new Date().toISOString()}${A}.html`;await Bun.write(F,D),Bun.spawnSync(["open",F]);return}await w.use().service.driver.send({bcc:Q,cc:P,from:O,subject:A,to:z,attachments:R,html:D,headers:V,text:W,scheduledAt:q.scheduledAt})}static async preview(q){return await new this().render({...q.data,locale:q.locale})}async render(q){let k=this.template;return await G(H(k,{...q}))}async renderText(q){let k=this.template;return await G(H(k,{...q}),{plainText:!0})}}export{K as Email};
3
3
 
4
- //# debugId=156B2D7F72969FDB64756E2164756E21
4
+ //# debugId=B2AE0B07CAC958F264756E2164756E21
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../email/Email.tsx"],
4
4
  "sourcesContent": [
5
- "import type { ComponentType } from \"react\";\nimport { render } from \"jsx-email\";\nimport { EmailServiceContainer } from \"../services/email/EmailServiceContainer\";\nimport type { SendEmailParams } from \"../services/email/drivers/types\";\nimport { I18nServiceContainer } from \"../i18n/I18nServiceContainer\";\n\ninterface SendEmailArgs<T> extends Partial<Omit<SendEmailParams, \"html\">> {\n data: Omit<T, \"locale\">;\n locale?: string;\n}\n\nexport class Email {\n from = \"\";\n to = [];\n subject: string | Record<string, string> = \"No Subject\";\n cc = [];\n bcc = [];\n attachments = [];\n template: ComponentType<any>;\n headers: Record<string, string> = {};\n\n static async send<T extends Email>(\n this: new () => T,\n args: SendEmailArgs<T[\"template\"] extends (p: infer P) => any ? P : never>,\n ) {\n const instance = new this();\n\n const defaultLocale = I18nServiceContainer.use().service.defaultLocale;\n const emailService = EmailServiceContainer.use().service;\n\n const {\n to = instance.to,\n from = instance.from,\n subject = typeof instance.subject === \"string\"\n ? instance.subject\n : instance.subject[args.locale || defaultLocale],\n cc = instance.cc,\n bcc = instance.bcc,\n attachments = instance.attachments,\n data,\n headers = {},\n } = args;\n\n const _headers = {\n ...(emailService.headers ?? {}),\n ...(instance.headers ?? {}),\n ...(headers ?? {}),\n };\n\n const recipients = await emailService.filterRecipients(to);\n\n if (!recipients.length) {\n return;\n }\n\n const [html, text] = await Promise.all([\n instance.render({\n ...(data as any),\n locale: args.locale,\n }),\n instance.renderText({\n ...(data as any),\n locale: args.locale,\n }),\n ]);\n\n if (process.env.EMAIL_DEBUG === \"true\") {\n const fileName = `${process.env.ROOT_DIR}/.debug/emails/${new Date().toISOString()}${subject}.html`;\n await Bun.write(fileName, html);\n Bun.spawnSync([\"open\", fileName]);\n return;\n }\n\n await EmailServiceContainer.use().service.driver.send({\n bcc,\n cc,\n from,\n subject,\n to,\n attachments,\n html,\n headers: _headers,\n text,\n });\n }\n\n static async preview<T extends Email>(\n this: new () => T,\n args: Pick<SendEmailArgs<T[\"template\"] extends (p: infer P) => any ? P : never>, \"data\" | \"locale\">,\n ) {\n\n const instance = new this();\n\n return await instance.render({\n ...args.data,\n locale: args.locale,\n })\n }\n\n protected async render<T extends Record<string, any>>(props: T) {\n const Template = this.template;\n return await render(<Template {...props} />);\n }\n\n protected async renderText<T extends Record<string, any>>(props: T) {\n const Template = this.template;\n return await render(<Template {...props} />, { plainText: true });\n }\n}\n"
5
+ "import type { ComponentType } from \"react\";\nimport { render } from \"jsx-email\";\nimport { EmailServiceContainer } from \"../services/email/EmailServiceContainer\";\nimport type { SendEmailParams } from \"../services/email/drivers/types\";\nimport { I18nServiceContainer } from \"../i18n/I18nServiceContainer\";\n\ninterface SendEmailArgs<T> extends Partial<Omit<SendEmailParams, \"html\">> {\n data: Omit<T, \"locale\">;\n locale?: string;\n}\n\nexport class Email {\n from = \"\";\n to = [];\n subject: string | Record<string, string> = \"No Subject\";\n cc = [];\n bcc = [];\n attachments = [];\n template: ComponentType<any>;\n headers: Record<string, string> = {};\n\n static async send<T extends Email>(\n this: new () => T,\n args: SendEmailArgs<T[\"template\"] extends (p: infer P) => any ? P : never>,\n ) {\n const instance = new this();\n\n const defaultLocale = I18nServiceContainer.use().service.defaultLocale;\n const emailService = EmailServiceContainer.use().service;\n\n const {\n to = instance.to,\n from = instance.from,\n subject = typeof instance.subject === \"string\"\n ? instance.subject\n : instance.subject[args.locale || defaultLocale],\n cc = instance.cc,\n bcc = instance.bcc,\n attachments = instance.attachments,\n data,\n headers = {},\n } = args;\n\n const _headers = {\n ...(emailService.headers ?? {}),\n ...(instance.headers ?? {}),\n ...(headers ?? {}),\n };\n\n const recipients = await emailService.filterRecipients(to);\n\n if (!recipients.length) {\n return;\n }\n\n const [html, text] = await Promise.all([\n instance.render({\n ...(data as any),\n locale: args.locale,\n }),\n instance.renderText({\n ...(data as any),\n locale: args.locale,\n }),\n ]);\n\n if (process.env.EMAIL_DEBUG === \"true\") {\n const fileName = `${process.env.ROOT_DIR}/.debug/emails/${new Date().toISOString()}${subject}.html`;\n await Bun.write(fileName, html);\n Bun.spawnSync([\"open\", fileName]);\n return;\n }\n\n await EmailServiceContainer.use().service.driver.send({\n bcc,\n cc,\n from,\n subject,\n to,\n attachments,\n html,\n headers: _headers,\n text,\n scheduledAt: args.scheduledAt,\n });\n }\n\n static async preview<T extends Email>(\n this: new () => T,\n args: Pick<SendEmailArgs<T[\"template\"] extends (p: infer P) => any ? P : never>, \"data\" | \"locale\">,\n ) {\n\n const instance = new this();\n\n return await instance.render({\n ...args.data,\n locale: args.locale,\n })\n }\n\n protected async render<T extends Record<string, any>>(props: T) {\n const Template = this.template;\n return await render(<Template {...props} />);\n }\n\n protected async renderText<T extends Record<string, any>>(props: T) {\n const Template = this.template;\n return await render(<Template {...props} />, { plainText: true });\n }\n}\n"
6
6
  ],
7
- "mappings": ";2JACA,YAAS,qDAUF,CAAM,CAAM,CACjB,KAAO,GACP,GAAK,CAAC,EACN,QAA2C,aAC3C,GAAK,CAAC,EACN,IAAM,CAAC,EACP,YAAc,CAAC,EACf,SACA,QAAkC,CAAC,cAEtB,KAAqB,CAEhC,EACA,CACA,IAAM,EAAW,IAAI,KAEf,EAAgB,EAAqB,IAAI,EAAE,QAAQ,cACnD,EAAe,EAAsB,IAAI,EAAE,SAG/C,KAAK,EAAS,GACd,OAAO,EAAS,KAChB,UAAU,OAAO,EAAS,UAAY,SAClC,EAAS,QACT,EAAS,QAAQ,EAAK,QAAU,GACpC,KAAK,EAAS,GACd,MAAM,EAAS,IACf,cAAc,EAAS,YACvB,OACA,UAAU,CAAC,GACT,EAEE,EAAW,IACX,EAAa,SAAW,CAAC,KACzB,EAAS,SAAW,CAAC,KACrB,GAAW,CAAC,CAClB,EAIA,GAAI,EAFe,MAAM,EAAa,iBAAiB,CAAE,GAEzC,OACd,OAGF,IAAO,EAAM,GAAQ,MAAM,QAAQ,IAAI,CACrC,EAAS,OAAO,IACV,EACJ,OAAQ,EAAK,MACf,CAAC,EACD,EAAS,WAAW,IACd,EACJ,OAAQ,EAAK,MACf,CAAC,CACH,CAAC,EAED,GAAI,QAAQ,IAAI,cAAgB,OAAQ,CACtC,IAAM,EAAW,GAAG,QAAQ,IAAI,0BAA0B,IAAI,KAAK,EAAE,YAAY,IAAI,SACrF,MAAM,IAAI,MAAM,EAAU,CAAI,EAC9B,IAAI,UAAU,CAAC,OAAQ,CAAQ,CAAC,EAChC,OAGF,MAAM,EAAsB,IAAI,EAAE,QAAQ,OAAO,KAAK,CACpD,MACA,KACA,OACA,UACA,KACA,cACA,OACA,QAAS,EACT,MACF,CAAC,cAGU,QAAwB,CAEnC,EACA,CAIA,OAAO,MAFU,IAAI,KAAK,EAEJ,OAAO,IACxB,EAAK,KACR,OAAQ,EAAK,MACf,CAAC,OAGa,OAAqC,CAAC,EAAU,CAC9D,IAAM,EAAW,KAAK,SACtB,OAAO,MAAM,EAAO,EAAC,EAAD,IAAc,EAAO,CAAE,OAG7B,WAAyC,CAAC,EAAU,CAClE,IAAM,EAAW,KAAK,SACtB,OAAO,MAAM,EAAO,EAAC,EAAD,IAAc,EAAO,EAAI,CAAE,UAAW,EAAK,CAAC,EAEpE",
8
- "debugId": "156B2D7F72969FDB64756E2164756E21",
7
+ "mappings": ";2JACA,YAAS,qDAUF,CAAM,CAAM,CACjB,KAAO,GACP,GAAK,CAAC,EACN,QAA2C,aAC3C,GAAK,CAAC,EACN,IAAM,CAAC,EACP,YAAc,CAAC,EACf,SACA,QAAkC,CAAC,cAEtB,KAAqB,CAEhC,EACA,CACA,IAAM,EAAW,IAAI,KAEf,EAAgB,EAAqB,IAAI,EAAE,QAAQ,cACnD,EAAe,EAAsB,IAAI,EAAE,SAG/C,KAAK,EAAS,GACd,OAAO,EAAS,KAChB,UAAU,OAAO,EAAS,UAAY,SAClC,EAAS,QACT,EAAS,QAAQ,EAAK,QAAU,GACpC,KAAK,EAAS,GACd,MAAM,EAAS,IACf,cAAc,EAAS,YACvB,OACA,UAAU,CAAC,GACT,EAEE,EAAW,IACX,EAAa,SAAW,CAAC,KACzB,EAAS,SAAW,CAAC,KACrB,GAAW,CAAC,CAClB,EAIA,GAAI,EAFe,MAAM,EAAa,iBAAiB,CAAE,GAEzC,OACd,OAGF,IAAO,EAAM,GAAQ,MAAM,QAAQ,IAAI,CACrC,EAAS,OAAO,IACV,EACJ,OAAQ,EAAK,MACf,CAAC,EACD,EAAS,WAAW,IACd,EACJ,OAAQ,EAAK,MACf,CAAC,CACH,CAAC,EAED,GAAI,QAAQ,IAAI,cAAgB,OAAQ,CACtC,IAAM,EAAW,GAAG,QAAQ,IAAI,0BAA0B,IAAI,KAAK,EAAE,YAAY,IAAI,SACrF,MAAM,IAAI,MAAM,EAAU,CAAI,EAC9B,IAAI,UAAU,CAAC,OAAQ,CAAQ,CAAC,EAChC,OAGF,MAAM,EAAsB,IAAI,EAAE,QAAQ,OAAO,KAAK,CACpD,MACA,KACA,OACA,UACA,KACA,cACA,OACA,QAAS,EACT,OACA,YAAa,EAAK,WACpB,CAAC,cAGU,QAAwB,CAEnC,EACA,CAIA,OAAO,MAFU,IAAI,KAAK,EAEJ,OAAO,IACxB,EAAK,KACR,OAAQ,EAAK,MACf,CAAC,OAGa,OAAqC,CAAC,EAAU,CAC9D,IAAM,EAAW,KAAK,SACtB,OAAO,MAAM,EAAO,EAAC,EAAD,IAAc,EAAO,CAAE,OAG7B,WAAyC,CAAC,EAAU,CAClE,IAAM,EAAW,KAAK,SACtB,OAAO,MAAM,EAAO,EAAC,EAAD,IAAc,EAAO,EAAI,CAAE,UAAW,EAAK,CAAC,EAEpE",
8
+ "debugId": "B2AE0B07CAC958F264756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{f as k}from"../chunk-e2713ftx.js";import{g as Q,j as Y,o as Z,s as A,t as K,u as M,v as N,w as S,x as V}from"../chunk-es84e2a1.js";import{I as w,N as H,R as L}from"../chunk-9p1z3vnt.js";import{W as z}from"../chunk-y5h3n5t8.js";import{X}from"../chunk-e4vawn5g.js";import"../chunk-9p8h8aej.js";import{$ as x,aa as C,ea as f,ha as I,ia as _,ja as v,ka as l,la as d,pa as p,ta as u}from"../chunk-rat133ng.js";import"../chunk-txk5dr5r.js";import"../chunk-bwd327vf.js";import"../chunk-69wrnjjn.js";import"../chunk-yhrk5bfy.js";import"../chunk-xak5xspk.js";import"../chunk-xdm3d6a3.js";import"../chunk-kp6wx276.js";import"../chunk-1sdckzzr.js";import"../chunk-ghy6gn4g.js";import"../chunk-gncq70ga.js";import"../chunk-pp10jse0.js";import{rb as W}from"../chunk-m5g0mh9n.js";import{wb as R}from"../chunk-07keqpsw.js";import{xb as G,yb as O}from"../chunk-8ty8fefr.js";import"../chunk-haenvmrp.js";import"../chunk-2vpsbhpm.js";var c=async(j)=>j instanceof Promise?await j:j,q=async(j)=>{try{if(j)await c(j())}catch(b){}},m=class j{name;cron;callback;onTick;onComplete;interval=null;next=null;status="stopped";parser;constructor(b){if(this.name=b.name,this.cron=b.cron,this.callback=q.bind(this,b.callback),this.onTick=q.bind(this,b.onTick),this.onComplete=q.bind(this,b.onComplete),this.start=this.start.bind(this),this.stop=this.stop.bind(this),this.destroy=this.destroy.bind(this),this.getStatus=this.getStatus.bind(this),this.isRunning=this.isRunning.bind(this),this.lastExecution=this.lastExecution.bind(this),this.nextExecution=this.nextExecution.bind(this),this.remaining=this.remaining.bind(this),this.time=this.time.bind(this),this.parser=new h(this.cron),b.start)this.start()}start(){if(this.status==="running")return;this.status="running",this.next=this.parser.getNext(),this.interval=setInterval(()=>{if(this.next&&this.next.getTime()<=Date.now())this.callback(),this.onTick(),this.next=this.parser.getNext()},1000)}stop(){if(this.status==="stopped")return;if(this.status="stopped",this.interval)clearInterval(this.interval)}destroy(){this.stop(),this.onComplete()}getStatus(){return this.status}isRunning(){return this.status==="running"}lastExecution(){return this.parser.getPrevious()}nextExecution(){return this.next||new Date}remaining(){return this.next?this.next.getTime()-Date.now():0}time(){return Date.now()}static create(b){return new j(b)}static parse(b){return new h(b).parse()}static getNext(b){return new h(b).getNext()}static getPrevious(b){return new h(b).getPrevious()}static isCron(b){try{return new h(b).parse(),!0}catch($){return!1}}static isValid(b){return j.isCron(b)}},t=m,i=class j{crons=new Map;constructor(b={}){if(b.autoStart)this.bakeAll()}add(b){let $=t.create(b);return this.crons.set($.name,$),$}remove(b){let $=this.crons.get(b);if($)$.destroy(),this.crons.delete(b)}bake(b){let $=this.crons.get(b);if($)$.start()}stop(b){let $=this.crons.get(b);if($)$.stop()}destroy(b){let $=this.crons.get(b);if($)$.destroy(),this.crons.delete(b)}getStatus(b){let $=this.crons.get(b);return $?$.getStatus():"stopped"}isRunning(b){let $=this.crons.get(b);return $?$.isRunning():!1}lastExecution(b){let $=this.crons.get(b);return $?$.lastExecution():new Date}nextExecution(b){let $=this.crons.get(b);return $?$.nextExecution():new Date}remaining(b){let $=this.crons.get(b);return $?$.remaining():0}time(b){let $=this.crons.get(b);return $?$.time():0}bakeAll(){this.crons.forEach((b)=>b.start())}stopAll(){this.crons.forEach((b)=>b.stop())}destroyAll(){this.crons.forEach((b)=>b.destroy()),this.crons.clear()}static create(b={}){return new j(b)}},s=i,o=class{constructor(j){this.cron=j}aliases=new Map([["@every_second","* * * * * *"],["@every_minute","0 * * * * *"],["@yearly","0 0 1 1 * *"],["@annually","0 0 1 1 * *"],["@monthly","0 0 1 * * *"],["@weekly","0 0 * * 0 *"],["@daily","0 0 * * * *"],["@hourly","0 * * * * *"]]);parseEveryStr(j){let[,b,$]=j.split("_");switch($){case"seconds":return`*/${b} * * * * *`;case"minutes":return`0 */${b} * * * *`;case"hours":return`0 0 */${b} * * *`;case"dayOfMonth":return`0 0 0 */${b} * *`;case"months":return`0 0 0 0 */${b} *`;case"dayOfWeek":return`0 0 0 0 0 */${b}`;default:return"* * * * * *"}}parseAtHourStr(j){let[,b]=j.split("_"),[$,J]=b.split(":");return`0 ${J} ${$} * * *`}parseOnDayStr(j){let[,b,$]=j.split("_");return`0 0 0 * * ${new Map([["sunday",1],["monday",2],["tuesday",3],["wednesday",4],["thursday",5],["friday",6],["saturday",7]]).get(b)}`}parseBetweenStr(j){let[,b,$]=j.split("_");return`0 0 ${b}-${$} * * *`}parseStr(j){if(this.aliases.has(j))return this.aliases.get(j)||"";if(j.includes("@every_"))return this.parseEveryStr(j);if(j.includes("@at_"))return this.parseAtHourStr(j);if(j.includes("@on_"))return this.parseOnDayStr(j);if(j.includes("@between_"))return this.parseBetweenStr(j);return j}parse(){this.cron=this.parseStr(this.cron);let[j,b,$,J,y,P]=this.cron.split(" ");return{second:this.parseCronTime(j,0,59),minute:this.parseCronTime(b,0,59),hour:this.parseCronTime($,0,23),dayOfMonth:this.parseCronTime(J,1,31),month:this.parseCronTime(y,1,12),dayOfWeek:this.parseCronTime(P,0,6)}}getNext(){let j=this.parse(),b=new Date,$=new Date(b.getFullYear(),b.getMonth(),b.getDate(),b.getHours(),b.getMinutes(),b.getSeconds());$.setMilliseconds(0),$.setSeconds($.getSeconds()+1);while(!this.checkCronTime(j,$))$.setSeconds($.getSeconds()+1);return $}getPrevious(){let j=this.parse(),b=new Date,$=new Date(b.getFullYear(),b.getMonth(),b.getDate(),b.getHours(),b.getMinutes(),b.getSeconds());$.setMilliseconds(0),$.setSeconds($.getSeconds()-1);while(!this.checkCronTime(j,$))$.setSeconds($.getSeconds()-1);return $}parseCronTime(j,b,$){let J=[];switch(!0){case j==="*":for(let y=b;y<=$;y++)J.push(y);break;case j.includes("-"):{let[y,P]=j.split("-"),F=this.getStep(j);for(let U=parseInt(y);U<=parseInt(P);U+=F)J.push(U);break}case j.includes("/"):{let[y,P]=j.split("/"),F=y==="*"?b:parseInt(y);for(let U=F;U<=$;U+=parseInt(P))J.push(U);break}case j.includes(","):{let y=j.split(",");for(let P=0;P<y.length;P++)J.push(parseInt(y[P]));break}default:J.push(parseInt(j));break}return J}getStep(j){let[,b]=j.split("/"),$=parseInt(b);return isNaN($)?1:$}checkCronTime(j,b){if(j.second&&!j.second.includes(b.getSeconds()))return!1;if(j.minute&&!j.minute.includes(b.getMinutes()))return!1;if(j.hour&&!j.hour.includes(b.getHours()))return!1;if(j.dayOfMonth&&!j.dayOfMonth.includes(b.getDate()))return!1;if(j.month&&!j.month.includes(b.getMonth()+1))return!1;else if(j.dayOfWeek&&!j.dayOfWeek.includes(b.getDay()))return!1;return!0}},h=o,B=s;class E extends O{service;static _name="CronServiceContainer";constructor(j){super();this.service=j;if(this.service.jobs.length===0)return;let b=B.create({autoStart:!0}),$=async(J)=>{return await this.service.kernel.waitForBoot.call(this.service.kernel),await this.service.kernel.run.call(this.service.kernel,J)};for(let J of this.service.jobs){let y=new J;if(!y.name){console.error(`Cron job must have a name. Job: ${JSON.stringify(y)}`);continue}if(!y.cron){console.error(`Cron job must have an expression. Job: ${y.name}`);continue}b.add({name:y.name,cron:y.cron,callback:()=>$(async()=>{try{await y.callback.call(y)}catch(P){console.error(`Error in cron job ${y.name}:`,P)}}),onComplete:()=>$(async()=>{try{await y.onComplete.call(y)}catch(P){console.error(`Error completing cron job ${y.name}:`,P)}}),onTick:()=>$(async()=>{try{await y.onTick.call(y)}catch(P){console.error(`Error executing cron job ${y.name}:`,P)}})})}b.bakeAll()}}class D extends R{id=crypto.randomUUID();boot(){}}class T{emailServiceProvider=I;authenticationServiceProvider=A;middlewareServiceProvider=w;i18nServiceProvider=k;fileStorageServiceProvider=x;apiRouterServiceProvider=C;viewRouterServiceProvider=v;rateLimiterServiceProvider=f;broadcastingsServiceProvider=_;loggingServiceProvider=l;queueServiceProvider=d;imageServiceProvider=p;cronServiceProvider=u;kernelIdServiceProvider=D;services={};booted=!1;boot(){this.services={[z._name]:new z(new this.emailServiceProvider),[H._name]:new H(new this.authenticationServiceProvider),[M._name]:new M(new this.middlewareServiceProvider),[X._name]:new X(new this.i18nServiceProvider),[Y._name]:new Y(new this.fileStorageServiceProvider),[V._name]:new V(new this.apiRouterServiceProvider),[S._name]:new S(new this.viewRouterServiceProvider),[L._name]:new L(new this.rateLimiterServiceProvider),[Q._name]:new Q(new this.broadcastingsServiceProvider),[Z._name]:new Z(new this.loggingServiceProvider),[W._name]:new W(new this.queueServiceProvider),[K._name]:new K(new this.imageServiceProvider),[E._name]:new E(new this.cronServiceProvider(this)),[N._name]:new N(new this.kernelIdServiceProvider)},this.booted=!0}run(j){let b=this.services;return G.run(b,j)}destroy(){for(let j of Object.keys(this.services))delete this.services[j];G.disable()}async waitForBoot(){if(!this.booted)await new Promise((j)=>{while(!this.booted)setTimeout(()=>{if(this.booted)j()},10)})}}class g{prisma;constructor(j){this.prisma=j}async findUserByVerificationToken(j){return await this.prisma.user.findFirst({where:{verificationToken:j}})}async verifyUser(j){return await this.prisma.user.update({where:{email:j},data:{emailVerifiedAt:new Date}})}async createSessionV2(j){return await this.prisma.session.create({data:j,include:{user:{select:{password:!1,id:!0,email:!0,globalRole:!0,name:!0,locale:!0,publicId:!0,accounts:{select:{id:!0,publicId:!0,organization:!0,organizationRole:!0}}}}}})}async createSession(j){return await this.prisma.session.create({data:j,include:{user:!0}})}async createUser(j){return await this.prisma.user.create({data:j,omit:{password:!0}})}async deleteSession(j){return await this.prisma.session.deleteMany({where:{token:j.token}})}async findUserByEmailAddress(j,b){if(b)return await this.prisma.user.findUnique({where:{email:j,emailVerifiedAt:{not:null}}});return await this.prisma.user.findUnique({where:{email:j}})}async findSession(j){if(!j.token)return null;try{return await this.prisma.session.findUnique({where:{token:j.token},include:{user:{select:{password:!1,id:!0,email:!0,globalRole:!0,name:!0,locale:!0,publicId:!0,accounts:{select:{id:!0,publicId:!0,organization:!0,organizationRole:!0}}}}}})}catch(b){return console.log(b),null}}async updateSession(j){return await this.prisma.session.update({where:{token:j.token},data:{expiresAt:j.expiresAt},include:{user:{select:{id:!0,password:!1,email:!0,globalRole:!0,name:!0,locale:!0,publicId:!0,accounts:{select:{id:!0,publicId:!0,organization:!0,organizationRole:!0}},organization:!0}}}})}async updateUserPassword(j){return await this.prisma.user.update({where:{id:j.id},data:{password:j.password}})}async createPasswordResetToken(j){return await this.prisma.passwordResetToken.create({data:{user:{connect:{id:j.user.id}},token:j.token}})}async findPasswordResetToken(j){let{token:b}=j;return await this.prisma.passwordResetToken.findUnique({where:{token:b},include:{user:!0}})}async deleteAllUserSessions(j){return await this.prisma.session.deleteMany({where:{userId:j}})}async deletePasswordResetToken(j){let{token:b}=j;return await this.prisma.passwordResetToken.delete({where:{token:b}})}async createAccount(j){return await this.prisma.account.create({data:{organizationId:j.organizationId,organizationRole:j.organizationRole,userId:j.userId}})}async deleteInvitationById(j){return await this.prisma.organizationInvitation.delete({where:{publicId:j}})}async findInvitation(j,b){return await this.prisma.organizationInvitation.findFirst({where:{publicId:j,email:b}})}async createMagicLinkToken(j){return await this.prisma.magicLinkToken.create({data:{email:j.email,token:j.token,pin:j.pin}})}async findUserMagicLinkToken(j){let{token:b,pin:$,email:J}=j;if(b)return this.prisma.magicLinkToken.findUnique({where:{token_email:{email:J,token:b}}});else return await this.prisma.magicLinkToken.findUnique({where:{pin_email:{email:J,pin:$}}})}async deleteMagicLinkToken(j){return await this.prisma.magicLinkToken.deleteMany({where:{email:j}})}async createSocialAccount(j){return await this.prisma.socialAccount.create({data:j})}}export{g as PrismaAuthenticationAdapter,T as Kernel,A as AuthenticationServiceProvider};
2
+ import{f as k}from"../chunk-e2713ftx.js";import{g as Q,j as Y,o as Z,s as A,t as K,u as M,v as N,w as S,x as V}from"../chunk-es84e2a1.js";import{I as w,N as H,R as L}from"../chunk-9p1z3vnt.js";import{W as z}from"../chunk-y5h3n5t8.js";import{X}from"../chunk-e4vawn5g.js";import"../chunk-9p8h8aej.js";import{$ as x,aa as C,ea as f,ha as I,ia as _,ja as v,ka as l,la as d,pa as p,ta as u}from"../chunk-njyeb40r.js";import"../chunk-txk5dr5r.js";import"../chunk-bwd327vf.js";import"../chunk-69wrnjjn.js";import"../chunk-yhrk5bfy.js";import"../chunk-xak5xspk.js";import"../chunk-xdm3d6a3.js";import"../chunk-kp6wx276.js";import"../chunk-1sdckzzr.js";import"../chunk-ghy6gn4g.js";import"../chunk-gncq70ga.js";import"../chunk-pp10jse0.js";import{rb as W}from"../chunk-m5g0mh9n.js";import{wb as R}from"../chunk-07keqpsw.js";import{xb as G,yb as O}from"../chunk-8ty8fefr.js";import"../chunk-haenvmrp.js";import"../chunk-2vpsbhpm.js";var c=async(j)=>j instanceof Promise?await j:j,q=async(j)=>{try{if(j)await c(j())}catch(b){}},m=class j{name;cron;callback;onTick;onComplete;interval=null;next=null;status="stopped";parser;constructor(b){if(this.name=b.name,this.cron=b.cron,this.callback=q.bind(this,b.callback),this.onTick=q.bind(this,b.onTick),this.onComplete=q.bind(this,b.onComplete),this.start=this.start.bind(this),this.stop=this.stop.bind(this),this.destroy=this.destroy.bind(this),this.getStatus=this.getStatus.bind(this),this.isRunning=this.isRunning.bind(this),this.lastExecution=this.lastExecution.bind(this),this.nextExecution=this.nextExecution.bind(this),this.remaining=this.remaining.bind(this),this.time=this.time.bind(this),this.parser=new h(this.cron),b.start)this.start()}start(){if(this.status==="running")return;this.status="running",this.next=this.parser.getNext(),this.interval=setInterval(()=>{if(this.next&&this.next.getTime()<=Date.now())this.callback(),this.onTick(),this.next=this.parser.getNext()},1000)}stop(){if(this.status==="stopped")return;if(this.status="stopped",this.interval)clearInterval(this.interval)}destroy(){this.stop(),this.onComplete()}getStatus(){return this.status}isRunning(){return this.status==="running"}lastExecution(){return this.parser.getPrevious()}nextExecution(){return this.next||new Date}remaining(){return this.next?this.next.getTime()-Date.now():0}time(){return Date.now()}static create(b){return new j(b)}static parse(b){return new h(b).parse()}static getNext(b){return new h(b).getNext()}static getPrevious(b){return new h(b).getPrevious()}static isCron(b){try{return new h(b).parse(),!0}catch($){return!1}}static isValid(b){return j.isCron(b)}},t=m,i=class j{crons=new Map;constructor(b={}){if(b.autoStart)this.bakeAll()}add(b){let $=t.create(b);return this.crons.set($.name,$),$}remove(b){let $=this.crons.get(b);if($)$.destroy(),this.crons.delete(b)}bake(b){let $=this.crons.get(b);if($)$.start()}stop(b){let $=this.crons.get(b);if($)$.stop()}destroy(b){let $=this.crons.get(b);if($)$.destroy(),this.crons.delete(b)}getStatus(b){let $=this.crons.get(b);return $?$.getStatus():"stopped"}isRunning(b){let $=this.crons.get(b);return $?$.isRunning():!1}lastExecution(b){let $=this.crons.get(b);return $?$.lastExecution():new Date}nextExecution(b){let $=this.crons.get(b);return $?$.nextExecution():new Date}remaining(b){let $=this.crons.get(b);return $?$.remaining():0}time(b){let $=this.crons.get(b);return $?$.time():0}bakeAll(){this.crons.forEach((b)=>b.start())}stopAll(){this.crons.forEach((b)=>b.stop())}destroyAll(){this.crons.forEach((b)=>b.destroy()),this.crons.clear()}static create(b={}){return new j(b)}},s=i,o=class{constructor(j){this.cron=j}aliases=new Map([["@every_second","* * * * * *"],["@every_minute","0 * * * * *"],["@yearly","0 0 1 1 * *"],["@annually","0 0 1 1 * *"],["@monthly","0 0 1 * * *"],["@weekly","0 0 * * 0 *"],["@daily","0 0 * * * *"],["@hourly","0 * * * * *"]]);parseEveryStr(j){let[,b,$]=j.split("_");switch($){case"seconds":return`*/${b} * * * * *`;case"minutes":return`0 */${b} * * * *`;case"hours":return`0 0 */${b} * * *`;case"dayOfMonth":return`0 0 0 */${b} * *`;case"months":return`0 0 0 0 */${b} *`;case"dayOfWeek":return`0 0 0 0 0 */${b}`;default:return"* * * * * *"}}parseAtHourStr(j){let[,b]=j.split("_"),[$,J]=b.split(":");return`0 ${J} ${$} * * *`}parseOnDayStr(j){let[,b,$]=j.split("_");return`0 0 0 * * ${new Map([["sunday",1],["monday",2],["tuesday",3],["wednesday",4],["thursday",5],["friday",6],["saturday",7]]).get(b)}`}parseBetweenStr(j){let[,b,$]=j.split("_");return`0 0 ${b}-${$} * * *`}parseStr(j){if(this.aliases.has(j))return this.aliases.get(j)||"";if(j.includes("@every_"))return this.parseEveryStr(j);if(j.includes("@at_"))return this.parseAtHourStr(j);if(j.includes("@on_"))return this.parseOnDayStr(j);if(j.includes("@between_"))return this.parseBetweenStr(j);return j}parse(){this.cron=this.parseStr(this.cron);let[j,b,$,J,y,P]=this.cron.split(" ");return{second:this.parseCronTime(j,0,59),minute:this.parseCronTime(b,0,59),hour:this.parseCronTime($,0,23),dayOfMonth:this.parseCronTime(J,1,31),month:this.parseCronTime(y,1,12),dayOfWeek:this.parseCronTime(P,0,6)}}getNext(){let j=this.parse(),b=new Date,$=new Date(b.getFullYear(),b.getMonth(),b.getDate(),b.getHours(),b.getMinutes(),b.getSeconds());$.setMilliseconds(0),$.setSeconds($.getSeconds()+1);while(!this.checkCronTime(j,$))$.setSeconds($.getSeconds()+1);return $}getPrevious(){let j=this.parse(),b=new Date,$=new Date(b.getFullYear(),b.getMonth(),b.getDate(),b.getHours(),b.getMinutes(),b.getSeconds());$.setMilliseconds(0),$.setSeconds($.getSeconds()-1);while(!this.checkCronTime(j,$))$.setSeconds($.getSeconds()-1);return $}parseCronTime(j,b,$){let J=[];switch(!0){case j==="*":for(let y=b;y<=$;y++)J.push(y);break;case j.includes("-"):{let[y,P]=j.split("-"),F=this.getStep(j);for(let U=parseInt(y);U<=parseInt(P);U+=F)J.push(U);break}case j.includes("/"):{let[y,P]=j.split("/"),F=y==="*"?b:parseInt(y);for(let U=F;U<=$;U+=parseInt(P))J.push(U);break}case j.includes(","):{let y=j.split(",");for(let P=0;P<y.length;P++)J.push(parseInt(y[P]));break}default:J.push(parseInt(j));break}return J}getStep(j){let[,b]=j.split("/"),$=parseInt(b);return isNaN($)?1:$}checkCronTime(j,b){if(j.second&&!j.second.includes(b.getSeconds()))return!1;if(j.minute&&!j.minute.includes(b.getMinutes()))return!1;if(j.hour&&!j.hour.includes(b.getHours()))return!1;if(j.dayOfMonth&&!j.dayOfMonth.includes(b.getDate()))return!1;if(j.month&&!j.month.includes(b.getMonth()+1))return!1;else if(j.dayOfWeek&&!j.dayOfWeek.includes(b.getDay()))return!1;return!0}},h=o,B=s;class E extends O{service;static _name="CronServiceContainer";constructor(j){super();this.service=j;if(this.service.jobs.length===0)return;let b=B.create({autoStart:!0}),$=async(J)=>{return await this.service.kernel.waitForBoot.call(this.service.kernel),await this.service.kernel.run.call(this.service.kernel,J)};for(let J of this.service.jobs){let y=new J;if(!y.name){console.error(`Cron job must have a name. Job: ${JSON.stringify(y)}`);continue}if(!y.cron){console.error(`Cron job must have an expression. Job: ${y.name}`);continue}b.add({name:y.name,cron:y.cron,callback:()=>$(async()=>{try{await y.callback.call(y)}catch(P){console.error(`Error in cron job ${y.name}:`,P)}}),onComplete:()=>$(async()=>{try{await y.onComplete.call(y)}catch(P){console.error(`Error completing cron job ${y.name}:`,P)}}),onTick:()=>$(async()=>{try{await y.onTick.call(y)}catch(P){console.error(`Error executing cron job ${y.name}:`,P)}})})}b.bakeAll()}}class D extends R{id=crypto.randomUUID();boot(){}}class T{emailServiceProvider=I;authenticationServiceProvider=A;middlewareServiceProvider=w;i18nServiceProvider=k;fileStorageServiceProvider=x;apiRouterServiceProvider=C;viewRouterServiceProvider=v;rateLimiterServiceProvider=f;broadcastingsServiceProvider=_;loggingServiceProvider=l;queueServiceProvider=d;imageServiceProvider=p;cronServiceProvider=u;kernelIdServiceProvider=D;services={};booted=!1;boot(){this.services={[z._name]:new z(new this.emailServiceProvider),[H._name]:new H(new this.authenticationServiceProvider),[M._name]:new M(new this.middlewareServiceProvider),[X._name]:new X(new this.i18nServiceProvider),[Y._name]:new Y(new this.fileStorageServiceProvider),[V._name]:new V(new this.apiRouterServiceProvider),[S._name]:new S(new this.viewRouterServiceProvider),[L._name]:new L(new this.rateLimiterServiceProvider),[Q._name]:new Q(new this.broadcastingsServiceProvider),[Z._name]:new Z(new this.loggingServiceProvider),[W._name]:new W(new this.queueServiceProvider),[K._name]:new K(new this.imageServiceProvider),[E._name]:new E(new this.cronServiceProvider(this)),[N._name]:new N(new this.kernelIdServiceProvider)},this.booted=!0}run(j){let b=this.services;return G.run(b,j)}destroy(){for(let j of Object.keys(this.services))delete this.services[j];G.disable()}async waitForBoot(){if(!this.booted)await new Promise((j)=>{while(!this.booted)setTimeout(()=>{if(this.booted)j()},10)})}}class g{prisma;constructor(j){this.prisma=j}async findUserByVerificationToken(j){return await this.prisma.user.findFirst({where:{verificationToken:j}})}async verifyUser(j){return await this.prisma.user.update({where:{email:j},data:{emailVerifiedAt:new Date}})}async createSessionV2(j){return await this.prisma.session.create({data:j,include:{user:{select:{password:!1,id:!0,email:!0,globalRole:!0,name:!0,locale:!0,publicId:!0,accounts:{select:{id:!0,publicId:!0,organization:!0,organizationRole:!0}}}}}})}async createSession(j){return await this.prisma.session.create({data:j,include:{user:!0}})}async createUser(j){return await this.prisma.user.create({data:j,omit:{password:!0}})}async deleteSession(j){return await this.prisma.session.deleteMany({where:{token:j.token}})}async findUserByEmailAddress(j,b){if(b)return await this.prisma.user.findUnique({where:{email:j,emailVerifiedAt:{not:null}}});return await this.prisma.user.findUnique({where:{email:j}})}async findSession(j){if(!j.token)return null;try{return await this.prisma.session.findUnique({where:{token:j.token},include:{user:{select:{password:!1,id:!0,email:!0,globalRole:!0,name:!0,locale:!0,publicId:!0,accounts:{select:{id:!0,publicId:!0,organization:!0,organizationRole:!0}}}}}})}catch(b){return console.log(b),null}}async updateSession(j){return await this.prisma.session.update({where:{token:j.token},data:{expiresAt:j.expiresAt},include:{user:{select:{id:!0,password:!1,email:!0,globalRole:!0,name:!0,locale:!0,publicId:!0,accounts:{select:{id:!0,publicId:!0,organization:!0,organizationRole:!0}},organization:!0}}}})}async updateUserPassword(j){return await this.prisma.user.update({where:{id:j.id},data:{password:j.password}})}async createPasswordResetToken(j){return await this.prisma.passwordResetToken.create({data:{user:{connect:{id:j.user.id}},token:j.token}})}async findPasswordResetToken(j){let{token:b}=j;return await this.prisma.passwordResetToken.findUnique({where:{token:b},include:{user:!0}})}async deleteAllUserSessions(j){return await this.prisma.session.deleteMany({where:{userId:j}})}async deletePasswordResetToken(j){let{token:b}=j;return await this.prisma.passwordResetToken.delete({where:{token:b}})}async createAccount(j){return await this.prisma.account.create({data:{organizationId:j.organizationId,organizationRole:j.organizationRole,userId:j.userId}})}async deleteInvitationById(j){return await this.prisma.organizationInvitation.delete({where:{publicId:j}})}async findInvitation(j,b){return await this.prisma.organizationInvitation.findFirst({where:{publicId:j,email:b}})}async createMagicLinkToken(j){return await this.prisma.magicLinkToken.create({data:{email:j.email,token:j.token,pin:j.pin}})}async findUserMagicLinkToken(j){let{token:b,pin:$,email:J}=j;if(b)return this.prisma.magicLinkToken.findUnique({where:{token_email:{email:J,token:b}}});else return await this.prisma.magicLinkToken.findUnique({where:{pin_email:{email:J,pin:$}}})}async deleteMagicLinkToken(j){return await this.prisma.magicLinkToken.deleteMany({where:{email:j}})}async createSocialAccount(j){return await this.prisma.socialAccount.create({data:j})}}export{g as PrismaAuthenticationAdapter,T as Kernel,A as AuthenticationServiceProvider};
3
3
 
4
4
  //# debugId=6B0EFEDF960CF4DC64756E2164756E21
@@ -12,5 +12,6 @@ export interface SendEmailParams {
12
12
  html: string;
13
13
  text?: string;
14
14
  headers?: Record<string, string>;
15
+ scheduledAt?: string;
15
16
  }
16
17
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../services/email/drivers/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../services/email/drivers/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -1,4 +1,4 @@
1
1
  // @bun
2
- import{$ as c,Z as a,_ as b,aa as d,ba as e,ca as f,da as g,ea as h,fa as i,ga as j,ha as k,ia as l,ja as m,ka as n,la as o,ma as p,na as q,oa as r,pa as s,qa as t,ra as u,sa as v,ta as w,ua as x}from"../chunk-rat133ng.js";import"../chunk-txk5dr5r.js";import"../chunk-bwd327vf.js";import"../chunk-69wrnjjn.js";import"../chunk-yhrk5bfy.js";import"../chunk-xak5xspk.js";import"../chunk-xdm3d6a3.js";import"../chunk-kp6wx276.js";import"../chunk-1sdckzzr.js";import"../chunk-ghy6gn4g.js";import"../chunk-gncq70ga.js";import"../chunk-pp10jse0.js";import"../chunk-m5g0mh9n.js";import"../chunk-07keqpsw.js";import"../chunk-8ty8fefr.js";import"../chunk-haenvmrp.js";import"../chunk-2vpsbhpm.js";export{v as XOAuthProvider,m as ViewRouterServiceProvider,r as Sharp,e as S3Driver,j as ResendDriver,h as RateLimiterServiceProvider,f as RateLimiterDriver,o as QueueServiceProvider,t as OAuthProvider,n as LoggingServiceProvider,p as Job,g as InMemoryRateLimiter,s as ImageOptimizationServiceProvider,q as ImageOptimizationDriver,u as GoogleOAuthProvider,b as FileSystemDriver,c as FileStorageServiceProvider,a as FileStorageDriver,k as EmailServiceProvider,i as EmailDriver,w as CronServiceProvider,x as CronJob,l as BroadcastingServiceProvider,d as ApiRouterServiceProvider};
2
+ import{$ as c,Z as a,_ as b,aa as d,ba as e,ca as f,da as g,ea as h,fa as i,ga as j,ha as k,ia as l,ja as m,ka as n,la as o,ma as p,na as q,oa as r,pa as s,qa as t,ra as u,sa as v,ta as w,ua as x}from"../chunk-njyeb40r.js";import"../chunk-txk5dr5r.js";import"../chunk-bwd327vf.js";import"../chunk-69wrnjjn.js";import"../chunk-yhrk5bfy.js";import"../chunk-xak5xspk.js";import"../chunk-xdm3d6a3.js";import"../chunk-kp6wx276.js";import"../chunk-1sdckzzr.js";import"../chunk-ghy6gn4g.js";import"../chunk-gncq70ga.js";import"../chunk-pp10jse0.js";import"../chunk-m5g0mh9n.js";import"../chunk-07keqpsw.js";import"../chunk-8ty8fefr.js";import"../chunk-haenvmrp.js";import"../chunk-2vpsbhpm.js";export{v as XOAuthProvider,m as ViewRouterServiceProvider,r as Sharp,e as S3Driver,j as ResendDriver,h as RateLimiterServiceProvider,f as RateLimiterDriver,o as QueueServiceProvider,t as OAuthProvider,n as LoggingServiceProvider,p as Job,g as InMemoryRateLimiter,s as ImageOptimizationServiceProvider,q as ImageOptimizationDriver,u as GoogleOAuthProvider,b as FileSystemDriver,c as FileStorageServiceProvider,a as FileStorageDriver,k as EmailServiceProvider,i as EmailDriver,w as CronServiceProvider,x as CronJob,l as BroadcastingServiceProvider,d as ApiRouterServiceProvider};
3
3
 
4
4
  //# debugId=FF1B419BB85FD24C64756E2164756E21
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gemi",
3
- "version": "0.36.0",
3
+ "version": "0.36.2",
4
4
  "author": "Enes Tufekci <enes@gemijs.dev>",
5
5
  "license": "MIT",
6
6
  "devDependencies": {
@@ -63,7 +63,7 @@
63
63
  "react-dom": "19.2.3",
64
64
  "react-error-boundary": "^6.0.0",
65
65
  "recast": "^0.23.9",
66
- "resend": "^3.4.0",
66
+ "resend": "^6.12.3",
67
67
  "satori": "^0.12.2",
68
68
  "temporal-polyfill": "^0.2.5",
69
69
  "twitter-api-v2": "^1.20.2",