@vobase/core 0.7.0 → 0.8.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 (53) hide show
  1. package/dist/app.d.ts +6 -5
  2. package/dist/app.d.ts.map +1 -1
  3. package/dist/contracts/module.d.ts +4 -4
  4. package/dist/contracts/module.d.ts.map +1 -1
  5. package/dist/ctx.d.ts +8 -4
  6. package/dist/ctx.d.ts.map +1 -1
  7. package/dist/index.d.ts +16 -4
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +83180 -82493
  10. package/dist/modules/audit/index.d.ts +1 -1
  11. package/dist/modules/audit/index.d.ts.map +1 -1
  12. package/dist/modules/audit/middleware.d.ts +0 -3
  13. package/dist/modules/audit/middleware.d.ts.map +1 -1
  14. package/dist/modules/auth/audit-hooks.d.ts +6 -0
  15. package/dist/modules/auth/audit-hooks.d.ts.map +1 -0
  16. package/dist/modules/auth/index.d.ts +17 -0
  17. package/dist/modules/auth/index.d.ts.map +1 -0
  18. package/dist/modules/auth/middleware.d.ts +14 -0
  19. package/dist/modules/auth/middleware.d.ts.map +1 -0
  20. package/dist/{db/auth-schema.d.ts → modules/auth/schema.d.ts} +1 -1
  21. package/dist/{db/auth-schema.d.ts.map → modules/auth/schema.d.ts.map} +1 -1
  22. package/dist/modules/notify/index.d.ts +36 -0
  23. package/dist/modules/notify/index.d.ts.map +1 -0
  24. package/dist/modules/notify/providers/resend.d.ts +7 -0
  25. package/dist/modules/notify/providers/resend.d.ts.map +1 -0
  26. package/dist/modules/notify/providers/smtp.d.ts +18 -0
  27. package/dist/modules/notify/providers/smtp.d.ts.map +1 -0
  28. package/dist/modules/notify/providers/waba.d.ts +12 -0
  29. package/dist/modules/notify/providers/waba.d.ts.map +1 -0
  30. package/dist/modules/notify/schema.d.ts +337 -0
  31. package/dist/modules/notify/schema.d.ts.map +1 -0
  32. package/dist/modules/notify/service.d.ts +22 -0
  33. package/dist/modules/notify/service.d.ts.map +1 -0
  34. package/dist/modules/storage/index.d.ts +24 -0
  35. package/dist/modules/storage/index.d.ts.map +1 -0
  36. package/dist/modules/storage/providers/local.d.ts +3 -0
  37. package/dist/modules/storage/providers/local.d.ts.map +1 -0
  38. package/dist/modules/storage/providers/s3.d.ts +3 -0
  39. package/dist/modules/storage/providers/s3.d.ts.map +1 -0
  40. package/dist/modules/storage/routes.d.ts +4 -0
  41. package/dist/modules/storage/routes.d.ts.map +1 -0
  42. package/dist/modules/storage/schema.d.ts +273 -0
  43. package/dist/modules/storage/schema.d.ts.map +1 -0
  44. package/dist/modules/storage/service.d.ts +35 -0
  45. package/dist/modules/storage/service.d.ts.map +1 -0
  46. package/dist/schemas.d.ts.map +1 -1
  47. package/package.json +1 -1
  48. package/dist/auth.d.ts +0 -30
  49. package/dist/auth.d.ts.map +0 -1
  50. package/dist/middleware/session.d.ts +0 -14
  51. package/dist/middleware/session.d.ts.map +0 -1
  52. package/dist/storage.d.ts +0 -8
  53. package/dist/storage.d.ts.map +0 -1
@@ -1,5 +1,5 @@
1
1
  export { auditLog, recordAudits } from './schema';
2
2
  export { trackChanges } from './track-changes';
3
- export { requestAuditMiddleware, createAuthAuditHooks } from './middleware';
3
+ export { requestAuditMiddleware } from './middleware';
4
4
  export declare function createAuditModule(): import("../..").VobaseModule;
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/audit/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAE5E,wBAAgB,iBAAiB,iCAOhC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/audit/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,wBAAgB,iBAAiB,iCAOhC"}
@@ -1,6 +1,3 @@
1
1
  import type { VobaseDb } from '../../db/client';
2
2
  export declare function requestAuditMiddleware(db: VobaseDb): import("hono").MiddlewareHandler<any, string, {}, Response>;
3
- export declare function createAuthAuditHooks(db: VobaseDb): {
4
- after: (inputContext: import("better-auth").MiddlewareInputContext<import("better-auth").MiddlewareOptions>) => Promise<void>;
5
- };
6
3
  //# sourceMappingURL=middleware.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../src/modules/audit/middleware.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAoChD,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,QAAQ,+DAkBlD;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ;;EAoBhD"}
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../src/modules/audit/middleware.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAWhD,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,QAAQ,+DAmBlD"}
@@ -0,0 +1,6 @@
1
+ import type { VobaseDb } from '../../db/client';
2
+ export declare function createAuthAuditHooks(db: VobaseDb): {
3
+ before: (inputContext: import("better-auth").MiddlewareInputContext<import("better-auth").MiddlewareOptions>) => Promise<void>;
4
+ after: (inputContext: import("better-auth").MiddlewareInputContext<import("better-auth").MiddlewareOptions>) => Promise<void>;
5
+ };
6
+ //# sourceMappingURL=audit-hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-hooks.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/audit-hooks.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAiChD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ;;;EAsChD"}
@@ -0,0 +1,17 @@
1
+ import type { SocialProviders } from 'better-auth/social-providers';
2
+ import type { AuthAdapter } from '../../contracts/auth';
3
+ import type { VobaseDb } from '../../db/client';
4
+ import type { VobaseModule } from '../../module';
5
+ export interface AuthModuleConfig {
6
+ baseURL?: string;
7
+ trustedOrigins?: string[];
8
+ socialProviders?: SocialProviders;
9
+ }
10
+ export type AuthModule = VobaseModule & {
11
+ adapter: AuthAdapter;
12
+ };
13
+ export declare function createAuthModule(db: VobaseDb, config?: AuthModuleConfig): AuthModule;
14
+ export { authSchema } from './schema';
15
+ export { sessionMiddleware, optionalSessionMiddleware } from './middleware';
16
+ export { createAuthAuditHooks } from './audit-hooks';
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAIjD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,CAAC;AAEjE,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,gBAAgB,GAAG,UAAU,CAmCpF;AAED,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { AuthAdapter } from '../../contracts/auth';
2
+ declare module 'hono' {
3
+ interface ContextVariableMap {
4
+ user: {
5
+ id: string;
6
+ email: string;
7
+ name: string;
8
+ role: string;
9
+ } | null;
10
+ }
11
+ }
12
+ export declare function sessionMiddleware(adapter: AuthAdapter): import("hono").MiddlewareHandler<any, string, {}, Response>;
13
+ export declare function optionalSessionMiddleware(adapter: AuthAdapter): import("hono").MiddlewareHandler<any, string, {}, Response>;
14
+ //# sourceMappingURL=middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/middleware.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,QAAQ,MAAM,CAAC;IACpB,UAAU,kBAAkB;QAC1B,IAAI,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,GAAG,IAAI,CAAC;KACxE;CACF;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,+DAiBrD;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,WAAW,+DAkB7D"}
@@ -1176,4 +1176,4 @@ export declare const authSchema: {
1176
1176
  dialect: "sqlite";
1177
1177
  }>;
1178
1178
  };
1179
- //# sourceMappingURL=auth-schema.d.ts.map
1179
+ //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-schema.d.ts","sourceRoot":"","sources":["../../src/db/auth-schema.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBnB,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBvB,CAAC;AAEF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BvB,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgB5B,CAAC;AAEF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKtB,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/schema.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBnB,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBvB,CAAC;AAEF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BvB,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgB5B,CAAC;AAEF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKtB,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { Hono } from 'hono';
2
+ import { type ResendConfig } from './providers/resend';
3
+ import { type SmtpConfig } from './providers/smtp';
4
+ import type { VobaseDb } from '../../db/client';
5
+ export interface EmailNotifyConfig {
6
+ provider: 'resend' | 'smtp';
7
+ from: string;
8
+ resend?: Omit<ResendConfig, 'from'>;
9
+ smtp?: Omit<SmtpConfig, 'from'>;
10
+ }
11
+ export interface WhatsAppNotifyConfig {
12
+ phoneNumberId: string;
13
+ accessToken: string;
14
+ apiVersion?: string;
15
+ }
16
+ export interface NotifyModuleConfig {
17
+ email?: EmailNotifyConfig;
18
+ whatsapp?: WhatsAppNotifyConfig;
19
+ }
20
+ export declare function createNotifyModule(db: VobaseDb, config: NotifyModuleConfig): {
21
+ service: import("./service").NotifyService;
22
+ name: string;
23
+ schema: Record<string, unknown>;
24
+ routes: Hono;
25
+ jobs?: import("../..").JobDefinition[];
26
+ pages?: Record<string, string>;
27
+ seed?: () => Promise<void>;
28
+ init?: (ctx: import("../..").ModuleInitContext) => Promise<void> | void;
29
+ };
30
+ export { notifyLog, notifySchema } from './schema';
31
+ export { createNotifyService } from './service';
32
+ export type { NotifyService, EmailChannel, WhatsAppChannel } from './service';
33
+ export { createResendProvider, type ResendConfig } from './providers/resend';
34
+ export { createSmtpProvider, type SmtpConfig } from './providers/smtp';
35
+ export { createWabaProvider, type WabaConfig } from './providers/waba';
36
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/notify/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAI5B,OAAO,EAAwB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAIvE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CACjC;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,kBAAkB;;;;;;;;;EAqD1E;AAED,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC9E,OAAO,EAAE,oBAAoB,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { EmailProvider } from '../../../contracts/notify';
2
+ export interface ResendConfig {
3
+ apiKey: string;
4
+ from: string;
5
+ }
6
+ export declare function createResendProvider(config: ResendConfig): EmailProvider;
7
+ //# sourceMappingURL=resend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resend.d.ts","sourceRoot":"","sources":["../../../../src/modules/notify/providers/resend.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAA6B,MAAM,2BAA2B,CAAC;AAE1F,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa,CAuCxE"}
@@ -0,0 +1,18 @@
1
+ import type { EmailProvider } from '../../../contracts/notify';
2
+ export interface SmtpConfig {
3
+ host: string;
4
+ port: number;
5
+ secure?: boolean;
6
+ auth?: {
7
+ user: string;
8
+ pass: string;
9
+ };
10
+ from: string;
11
+ }
12
+ /**
13
+ * Minimal SMTP email provider using Bun's TCP socket.
14
+ * Handles basic SMTP conversation (EHLO, AUTH, MAIL FROM, RCPT TO, DATA, QUIT).
15
+ * For production use with complex SMTP requirements, consider a dedicated library.
16
+ */
17
+ export declare function createSmtpProvider(config: SmtpConfig): EmailProvider;
18
+ //# sourceMappingURL=smtp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smtp.d.ts","sourceRoot":"","sources":["../../../../src/modules/notify/providers/smtp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAA6B,MAAM,2BAA2B,CAAC;AAE1F,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACtC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG,aAAa,CAqGpE"}
@@ -0,0 +1,12 @@
1
+ import type { WhatsAppProvider } from '../../../contracts/notify';
2
+ export interface WabaConfig {
3
+ phoneNumberId: string;
4
+ accessToken: string;
5
+ apiVersion?: string;
6
+ }
7
+ /**
8
+ * WhatsApp Business API (WABA) provider.
9
+ * Uses the Graph API to send template and text messages.
10
+ */
11
+ export declare function createWabaProvider(config: WabaConfig): WhatsAppProvider;
12
+ //# sourceMappingURL=waba.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waba.d.ts","sourceRoot":"","sources":["../../../../src/modules/notify/providers/waba.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAmC,MAAM,2BAA2B,CAAC;AAEnG,MAAM,WAAW,UAAU;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG,gBAAgB,CAqEvE"}
@@ -0,0 +1,337 @@
1
+ export declare const notifyLog: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
2
+ name: "_notify_log";
3
+ schema: undefined;
4
+ columns: {
5
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
6
+ name: string;
7
+ tableName: "_notify_log";
8
+ dataType: "string";
9
+ data: string;
10
+ driverParam: string;
11
+ notNull: true;
12
+ hasDefault: true;
13
+ isPrimaryKey: true;
14
+ isAutoincrement: false;
15
+ hasRuntimeDefault: true;
16
+ enumValues: [string, ...string[]];
17
+ baseColumn: never;
18
+ identity: undefined;
19
+ generated: undefined;
20
+ }, {}>;
21
+ channel: import("drizzle-orm/sqlite-core").SQLiteColumn<{
22
+ name: string;
23
+ tableName: "_notify_log";
24
+ dataType: "string";
25
+ data: string;
26
+ driverParam: string;
27
+ notNull: true;
28
+ hasDefault: false;
29
+ isPrimaryKey: false;
30
+ isAutoincrement: false;
31
+ hasRuntimeDefault: false;
32
+ enumValues: [string, ...string[]];
33
+ baseColumn: never;
34
+ identity: undefined;
35
+ generated: undefined;
36
+ }, {}>;
37
+ provider: import("drizzle-orm/sqlite-core").SQLiteColumn<{
38
+ name: string;
39
+ tableName: "_notify_log";
40
+ dataType: "string";
41
+ data: string;
42
+ driverParam: string;
43
+ notNull: true;
44
+ hasDefault: false;
45
+ isPrimaryKey: false;
46
+ isAutoincrement: false;
47
+ hasRuntimeDefault: false;
48
+ enumValues: [string, ...string[]];
49
+ baseColumn: never;
50
+ identity: undefined;
51
+ generated: undefined;
52
+ }, {}>;
53
+ to: import("drizzle-orm/sqlite-core").SQLiteColumn<{
54
+ name: string;
55
+ tableName: "_notify_log";
56
+ dataType: "string";
57
+ data: string;
58
+ driverParam: string;
59
+ notNull: true;
60
+ hasDefault: false;
61
+ isPrimaryKey: false;
62
+ isAutoincrement: false;
63
+ hasRuntimeDefault: false;
64
+ enumValues: [string, ...string[]];
65
+ baseColumn: never;
66
+ identity: undefined;
67
+ generated: undefined;
68
+ }, {}>;
69
+ subject: import("drizzle-orm/sqlite-core").SQLiteColumn<{
70
+ name: string;
71
+ tableName: "_notify_log";
72
+ dataType: "string";
73
+ data: string;
74
+ driverParam: string;
75
+ notNull: false;
76
+ hasDefault: false;
77
+ isPrimaryKey: false;
78
+ isAutoincrement: false;
79
+ hasRuntimeDefault: false;
80
+ enumValues: [string, ...string[]];
81
+ baseColumn: never;
82
+ identity: undefined;
83
+ generated: undefined;
84
+ }, {}>;
85
+ template: import("drizzle-orm/sqlite-core").SQLiteColumn<{
86
+ name: string;
87
+ tableName: "_notify_log";
88
+ dataType: "string";
89
+ data: string;
90
+ driverParam: string;
91
+ notNull: false;
92
+ hasDefault: false;
93
+ isPrimaryKey: false;
94
+ isAutoincrement: false;
95
+ hasRuntimeDefault: false;
96
+ enumValues: [string, ...string[]];
97
+ baseColumn: never;
98
+ identity: undefined;
99
+ generated: undefined;
100
+ }, {}>;
101
+ providerMessageId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
102
+ name: string;
103
+ tableName: "_notify_log";
104
+ dataType: "string";
105
+ data: string;
106
+ driverParam: string;
107
+ notNull: false;
108
+ hasDefault: false;
109
+ isPrimaryKey: false;
110
+ isAutoincrement: false;
111
+ hasRuntimeDefault: false;
112
+ enumValues: [string, ...string[]];
113
+ baseColumn: never;
114
+ identity: undefined;
115
+ generated: undefined;
116
+ }, {}>;
117
+ status: import("drizzle-orm/sqlite-core").SQLiteColumn<{
118
+ name: string;
119
+ tableName: "_notify_log";
120
+ dataType: "string";
121
+ data: string;
122
+ driverParam: string;
123
+ notNull: true;
124
+ hasDefault: true;
125
+ isPrimaryKey: false;
126
+ isAutoincrement: false;
127
+ hasRuntimeDefault: false;
128
+ enumValues: [string, ...string[]];
129
+ baseColumn: never;
130
+ identity: undefined;
131
+ generated: undefined;
132
+ }, {}>;
133
+ error: import("drizzle-orm/sqlite-core").SQLiteColumn<{
134
+ name: string;
135
+ tableName: "_notify_log";
136
+ dataType: "string";
137
+ data: string;
138
+ driverParam: string;
139
+ notNull: false;
140
+ hasDefault: false;
141
+ isPrimaryKey: false;
142
+ isAutoincrement: false;
143
+ hasRuntimeDefault: false;
144
+ enumValues: [string, ...string[]];
145
+ baseColumn: never;
146
+ identity: undefined;
147
+ generated: undefined;
148
+ }, {}>;
149
+ createdAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
150
+ name: string;
151
+ tableName: "_notify_log";
152
+ dataType: "object date";
153
+ data: Date;
154
+ driverParam: number;
155
+ notNull: true;
156
+ hasDefault: true;
157
+ isPrimaryKey: false;
158
+ isAutoincrement: false;
159
+ hasRuntimeDefault: true;
160
+ enumValues: undefined;
161
+ baseColumn: never;
162
+ identity: undefined;
163
+ generated: undefined;
164
+ }, {}>;
165
+ };
166
+ dialect: "sqlite";
167
+ }>;
168
+ export declare const notifySchema: {
169
+ notifyLog: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
170
+ name: "_notify_log";
171
+ schema: undefined;
172
+ columns: {
173
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
174
+ name: string;
175
+ tableName: "_notify_log";
176
+ dataType: "string";
177
+ data: string;
178
+ driverParam: string;
179
+ notNull: true;
180
+ hasDefault: true;
181
+ isPrimaryKey: true;
182
+ isAutoincrement: false;
183
+ hasRuntimeDefault: true;
184
+ enumValues: [string, ...string[]];
185
+ baseColumn: never;
186
+ identity: undefined;
187
+ generated: undefined;
188
+ }, {}>;
189
+ channel: import("drizzle-orm/sqlite-core").SQLiteColumn<{
190
+ name: string;
191
+ tableName: "_notify_log";
192
+ dataType: "string";
193
+ data: string;
194
+ driverParam: string;
195
+ notNull: true;
196
+ hasDefault: false;
197
+ isPrimaryKey: false;
198
+ isAutoincrement: false;
199
+ hasRuntimeDefault: false;
200
+ enumValues: [string, ...string[]];
201
+ baseColumn: never;
202
+ identity: undefined;
203
+ generated: undefined;
204
+ }, {}>;
205
+ provider: import("drizzle-orm/sqlite-core").SQLiteColumn<{
206
+ name: string;
207
+ tableName: "_notify_log";
208
+ dataType: "string";
209
+ data: string;
210
+ driverParam: string;
211
+ notNull: true;
212
+ hasDefault: false;
213
+ isPrimaryKey: false;
214
+ isAutoincrement: false;
215
+ hasRuntimeDefault: false;
216
+ enumValues: [string, ...string[]];
217
+ baseColumn: never;
218
+ identity: undefined;
219
+ generated: undefined;
220
+ }, {}>;
221
+ to: import("drizzle-orm/sqlite-core").SQLiteColumn<{
222
+ name: string;
223
+ tableName: "_notify_log";
224
+ dataType: "string";
225
+ data: string;
226
+ driverParam: string;
227
+ notNull: true;
228
+ hasDefault: false;
229
+ isPrimaryKey: false;
230
+ isAutoincrement: false;
231
+ hasRuntimeDefault: false;
232
+ enumValues: [string, ...string[]];
233
+ baseColumn: never;
234
+ identity: undefined;
235
+ generated: undefined;
236
+ }, {}>;
237
+ subject: import("drizzle-orm/sqlite-core").SQLiteColumn<{
238
+ name: string;
239
+ tableName: "_notify_log";
240
+ dataType: "string";
241
+ data: string;
242
+ driverParam: string;
243
+ notNull: false;
244
+ hasDefault: false;
245
+ isPrimaryKey: false;
246
+ isAutoincrement: false;
247
+ hasRuntimeDefault: false;
248
+ enumValues: [string, ...string[]];
249
+ baseColumn: never;
250
+ identity: undefined;
251
+ generated: undefined;
252
+ }, {}>;
253
+ template: import("drizzle-orm/sqlite-core").SQLiteColumn<{
254
+ name: string;
255
+ tableName: "_notify_log";
256
+ dataType: "string";
257
+ data: string;
258
+ driverParam: string;
259
+ notNull: false;
260
+ hasDefault: false;
261
+ isPrimaryKey: false;
262
+ isAutoincrement: false;
263
+ hasRuntimeDefault: false;
264
+ enumValues: [string, ...string[]];
265
+ baseColumn: never;
266
+ identity: undefined;
267
+ generated: undefined;
268
+ }, {}>;
269
+ providerMessageId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
270
+ name: string;
271
+ tableName: "_notify_log";
272
+ dataType: "string";
273
+ data: string;
274
+ driverParam: string;
275
+ notNull: false;
276
+ hasDefault: false;
277
+ isPrimaryKey: false;
278
+ isAutoincrement: false;
279
+ hasRuntimeDefault: false;
280
+ enumValues: [string, ...string[]];
281
+ baseColumn: never;
282
+ identity: undefined;
283
+ generated: undefined;
284
+ }, {}>;
285
+ status: import("drizzle-orm/sqlite-core").SQLiteColumn<{
286
+ name: string;
287
+ tableName: "_notify_log";
288
+ dataType: "string";
289
+ data: string;
290
+ driverParam: string;
291
+ notNull: true;
292
+ hasDefault: true;
293
+ isPrimaryKey: false;
294
+ isAutoincrement: false;
295
+ hasRuntimeDefault: false;
296
+ enumValues: [string, ...string[]];
297
+ baseColumn: never;
298
+ identity: undefined;
299
+ generated: undefined;
300
+ }, {}>;
301
+ error: import("drizzle-orm/sqlite-core").SQLiteColumn<{
302
+ name: string;
303
+ tableName: "_notify_log";
304
+ dataType: "string";
305
+ data: string;
306
+ driverParam: string;
307
+ notNull: false;
308
+ hasDefault: false;
309
+ isPrimaryKey: false;
310
+ isAutoincrement: false;
311
+ hasRuntimeDefault: false;
312
+ enumValues: [string, ...string[]];
313
+ baseColumn: never;
314
+ identity: undefined;
315
+ generated: undefined;
316
+ }, {}>;
317
+ createdAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
318
+ name: string;
319
+ tableName: "_notify_log";
320
+ dataType: "object date";
321
+ data: Date;
322
+ driverParam: number;
323
+ notNull: true;
324
+ hasDefault: true;
325
+ isPrimaryKey: false;
326
+ isAutoincrement: false;
327
+ hasRuntimeDefault: true;
328
+ enumValues: undefined;
329
+ baseColumn: never;
330
+ identity: undefined;
331
+ generated: undefined;
332
+ }, {}>;
333
+ };
334
+ dialect: "sqlite";
335
+ }>;
336
+ };
337
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/modules/notify/schema.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBrB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAgB,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { VobaseDb } from '../../db/client';
2
+ import type { EmailProvider, EmailMessage, EmailResult, WhatsAppProvider, WhatsAppMessage, WhatsAppResult } from '../../contracts/notify';
3
+ export interface EmailChannel {
4
+ send(message: EmailMessage): Promise<EmailResult>;
5
+ }
6
+ export interface WhatsAppChannel {
7
+ send(message: WhatsAppMessage): Promise<WhatsAppResult>;
8
+ }
9
+ export interface NotifyService {
10
+ email: EmailChannel;
11
+ whatsapp: WhatsAppChannel;
12
+ }
13
+ interface NotifyServiceDeps {
14
+ db: VobaseDb;
15
+ emailProvider?: EmailProvider;
16
+ emailProviderName?: string;
17
+ whatsappProvider?: WhatsAppProvider;
18
+ whatsappProviderName?: string;
19
+ }
20
+ export declare function createNotifyService(deps: NotifyServiceDeps): NotifyService;
21
+ export {};
22
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/modules/notify/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,cAAc,EACf,MAAM,wBAAwB,CAAC;AAIhC,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,eAAe,CAAC;CAC3B;AAED,UAAU,iBAAiB;IACzB,EAAE,EAAE,QAAQ,CAAC;IACb,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAwBD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,iBAAiB,GAAG,aAAa,CAqC1E"}
@@ -0,0 +1,24 @@
1
+ import { type StorageService, type BucketConfig } from './service';
2
+ import type { StorageProviderConfig } from '../../contracts/storage';
3
+ import type { VobaseDb } from '../../db/client';
4
+ export interface StorageModuleConfig {
5
+ provider: StorageProviderConfig;
6
+ buckets: Record<string, BucketConfig>;
7
+ }
8
+ export declare function createStorageModule(db: VobaseDb, config: StorageModuleConfig): {
9
+ service: StorageService;
10
+ name: string;
11
+ schema: Record<string, unknown>;
12
+ routes: import("hono").Hono;
13
+ jobs?: import("../..").JobDefinition[];
14
+ pages?: Record<string, string>;
15
+ seed?: () => Promise<void>;
16
+ init?: (ctx: import("../..").ModuleInitContext) => Promise<void> | void;
17
+ };
18
+ export { storageObjects, storageSchema } from './schema';
19
+ export { createStorageService } from './service';
20
+ export type { StorageService, BucketConfig, BucketHandle, StorageObject, BucketListOptions } from './service';
21
+ export { createLocalProvider } from './providers/local';
22
+ export { createS3Provider } from './providers/s3';
23
+ export { createStorageRoutes } from './routes';
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/storage/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAwB,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,qBAAqB,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACvC;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,mBAAmB;;;;;;;;;EAsB5E;AAED,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9G,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { StorageProvider, LocalProviderConfig } from '../../../contracts/storage';
2
+ export declare function createLocalProvider(config: LocalProviderConfig): StorageProvider;
3
+ //# sourceMappingURL=local.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../../../../src/modules/storage/providers/local.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,eAAe,EAEf,mBAAmB,EACpB,MAAM,4BAA4B,CAAC;AAYpC,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,GAAG,eAAe,CAuGhF"}
@@ -0,0 +1,3 @@
1
+ import type { StorageProvider, S3ProviderConfig } from '../../../contracts/storage';
2
+ export declare function createS3Provider(config: S3ProviderConfig): StorageProvider;
3
+ //# sourceMappingURL=s3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"s3.d.ts","sourceRoot":"","sources":["../../../../src/modules/storage/providers/s3.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EAEf,gBAAgB,EACjB,MAAM,4BAA4B,CAAC;AAGpC,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,eAAe,CAyE1E"}
@@ -0,0 +1,4 @@
1
+ import { Hono } from 'hono';
2
+ import type { StorageService } from './service';
3
+ export declare function createStorageRoutes(service: StorageService): Hono;
4
+ //# sourceMappingURL=routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/modules/storage/routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAuEjE"}