@vobase/core 0.6.2 → 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 (105) hide show
  1. package/dist/app.d.ts +11 -93
  2. package/dist/app.d.ts.map +1 -1
  3. package/dist/contracts/auth.d.ts +33 -0
  4. package/dist/contracts/auth.d.ts.map +1 -0
  5. package/dist/contracts/module.d.ts +17 -0
  6. package/dist/contracts/module.d.ts.map +1 -0
  7. package/dist/contracts/notify.d.ts +46 -0
  8. package/dist/contracts/notify.d.ts.map +1 -0
  9. package/dist/contracts/storage.d.ts +54 -0
  10. package/dist/contracts/storage.d.ts.map +1 -0
  11. package/dist/ctx.d.ts +8 -4
  12. package/dist/ctx.d.ts.map +1 -1
  13. package/dist/db/index.d.ts +0 -3
  14. package/dist/db/index.d.ts.map +1 -1
  15. package/dist/index.d.ts +31 -11
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +83798 -83170
  18. package/dist/mcp.d.ts +1 -1
  19. package/dist/mcp.d.ts.map +1 -1
  20. package/dist/module.d.ts +9 -0
  21. package/dist/module.d.ts.map +1 -1
  22. package/dist/modules/audit/index.d.ts +5 -0
  23. package/dist/modules/audit/index.d.ts.map +1 -0
  24. package/dist/modules/audit/middleware.d.ts +3 -0
  25. package/dist/modules/audit/middleware.d.ts.map +1 -0
  26. package/dist/{db/system-schema.d.ts → modules/audit/schema.d.ts} +1 -76
  27. package/dist/modules/audit/schema.d.ts.map +1 -0
  28. package/dist/{audit.d.ts → modules/audit/track-changes.d.ts} +2 -2
  29. package/dist/modules/audit/track-changes.d.ts.map +1 -0
  30. package/dist/modules/auth/audit-hooks.d.ts +6 -0
  31. package/dist/modules/auth/audit-hooks.d.ts.map +1 -0
  32. package/dist/modules/auth/index.d.ts +17 -0
  33. package/dist/modules/auth/index.d.ts.map +1 -0
  34. package/dist/modules/auth/middleware.d.ts +14 -0
  35. package/dist/modules/auth/middleware.d.ts.map +1 -0
  36. package/dist/{db/auth-schema.d.ts → modules/auth/schema.d.ts} +1 -1
  37. package/dist/{db/auth-schema.d.ts.map → modules/auth/schema.d.ts.map} +1 -1
  38. package/dist/{credentials.d.ts → modules/credentials/encrypt.d.ts} +2 -8
  39. package/dist/modules/credentials/encrypt.d.ts.map +1 -0
  40. package/dist/modules/credentials/index.d.ts +4 -0
  41. package/dist/modules/credentials/index.d.ts.map +1 -0
  42. package/dist/{db/credentials-schema.d.ts → modules/credentials/schema.d.ts} +1 -5
  43. package/dist/modules/credentials/schema.d.ts.map +1 -0
  44. package/dist/modules/notify/index.d.ts +36 -0
  45. package/dist/modules/notify/index.d.ts.map +1 -0
  46. package/dist/modules/notify/providers/resend.d.ts +7 -0
  47. package/dist/modules/notify/providers/resend.d.ts.map +1 -0
  48. package/dist/modules/notify/providers/smtp.d.ts +18 -0
  49. package/dist/modules/notify/providers/smtp.d.ts.map +1 -0
  50. package/dist/modules/notify/providers/waba.d.ts +12 -0
  51. package/dist/modules/notify/providers/waba.d.ts.map +1 -0
  52. package/dist/modules/notify/schema.d.ts +337 -0
  53. package/dist/modules/notify/schema.d.ts.map +1 -0
  54. package/dist/modules/notify/service.d.ts +22 -0
  55. package/dist/modules/notify/service.d.ts.map +1 -0
  56. package/dist/modules/sequences/index.d.ts +4 -0
  57. package/dist/modules/sequences/index.d.ts.map +1 -0
  58. package/dist/{sequence.d.ts → modules/sequences/next-sequence.d.ts} +2 -2
  59. package/dist/modules/sequences/next-sequence.d.ts.map +1 -0
  60. package/dist/modules/sequences/schema.d.ts +72 -0
  61. package/dist/modules/sequences/schema.d.ts.map +1 -0
  62. package/dist/modules/storage/index.d.ts +24 -0
  63. package/dist/modules/storage/index.d.ts.map +1 -0
  64. package/dist/modules/storage/providers/local.d.ts +3 -0
  65. package/dist/modules/storage/providers/local.d.ts.map +1 -0
  66. package/dist/modules/storage/providers/s3.d.ts +3 -0
  67. package/dist/modules/storage/providers/s3.d.ts.map +1 -0
  68. package/dist/modules/storage/routes.d.ts +4 -0
  69. package/dist/modules/storage/routes.d.ts.map +1 -0
  70. package/dist/modules/storage/schema.d.ts +273 -0
  71. package/dist/modules/storage/schema.d.ts.map +1 -0
  72. package/dist/modules/storage/service.d.ts +35 -0
  73. package/dist/modules/storage/service.d.ts.map +1 -0
  74. package/dist/schemas.d.ts +17 -0
  75. package/dist/schemas.d.ts.map +1 -0
  76. package/dist/throw-proxy.d.ts +7 -0
  77. package/dist/throw-proxy.d.ts.map +1 -0
  78. package/dist/webhooks-schema.d.ts +60 -0
  79. package/dist/webhooks-schema.d.ts.map +1 -0
  80. package/dist/webhooks.d.ts +5 -12
  81. package/dist/webhooks.d.ts.map +1 -1
  82. package/package.json +1 -1
  83. package/dist/audit.d.ts.map +0 -1
  84. package/dist/auth.d.ts +0 -30
  85. package/dist/auth.d.ts.map +0 -1
  86. package/dist/credentials.d.ts.map +0 -1
  87. package/dist/db/credentials-schema.d.ts.map +0 -1
  88. package/dist/db/ensure-core-tables.d.ts +0 -12
  89. package/dist/db/ensure-core-tables.d.ts.map +0 -1
  90. package/dist/db/migrator.d.ts +0 -3
  91. package/dist/db/migrator.d.ts.map +0 -1
  92. package/dist/db/system-schema.d.ts.map +0 -1
  93. package/dist/middleware/audit.d.ts +0 -6
  94. package/dist/middleware/audit.d.ts.map +0 -1
  95. package/dist/middleware/session.d.ts +0 -14
  96. package/dist/middleware/session.d.ts.map +0 -1
  97. package/dist/sequence.d.ts.map +0 -1
  98. package/dist/storage.d.ts +0 -8
  99. package/dist/storage.d.ts.map +0 -1
  100. package/dist/system/handlers.d.ts +0 -90
  101. package/dist/system/handlers.d.ts.map +0 -1
  102. package/dist/system/index.d.ts +0 -8
  103. package/dist/system/index.d.ts.map +0 -1
  104. package/dist/system/schema.d.ts +0 -2
  105. package/dist/system/schema.d.ts.map +0 -1
package/dist/mcp.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- import { type VobaseDb } from './db';
2
+ import type { VobaseDb } from './db';
3
3
  import type { VobaseModule } from './module';
4
4
  export interface McpDeps {
5
5
  db: VobaseDb;
package/dist/mcp.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAK7C,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,QAAQ,CAAC;IACb,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAmBD,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,CAmFxD;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,OAAO,GACZ,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAgBrC"}
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAErC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAK7C,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,QAAQ,CAAC;IACb,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAmBD,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,CAmFxD;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,OAAO,GACZ,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAgBrC"}
package/dist/module.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { Hono } from 'hono';
2
+ import type { ModuleInitContext } from './contracts/module';
2
3
  import type { JobDefinition } from './job';
3
4
  export interface VobaseModule {
4
5
  name: string;
@@ -7,6 +8,7 @@ export interface VobaseModule {
7
8
  jobs?: JobDefinition[];
8
9
  pages?: Record<string, string>;
9
10
  seed?: () => Promise<void>;
11
+ init?: (ctx: ModuleInitContext) => Promise<void> | void;
10
12
  }
11
13
  export interface DefineModuleConfig {
12
14
  name: string;
@@ -15,6 +17,13 @@ export interface DefineModuleConfig {
15
17
  jobs?: JobDefinition[];
16
18
  pages?: Record<string, string>;
17
19
  seed?: () => Promise<void>;
20
+ init?: (ctx: ModuleInitContext) => Promise<void> | void;
18
21
  }
19
22
  export declare function defineModule(config: DefineModuleConfig): VobaseModule;
23
+ /**
24
+ * Internal-only factory for built-in modules. Bypasses user-facing name
25
+ * validation to allow the `_` prefix convention (e.g., `_audit`, `_sequences`).
26
+ * Not exported in the public API (index.ts).
27
+ */
28
+ export declare function defineBuiltinModule(config: DefineModuleConfig): VobaseModule;
20
29
  //# sourceMappingURL=module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAK3C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,EAAE,IAAI,CAAC;IACb,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,EAAE,IAAI,CAAC;IACb,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY,CA8CrE"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAM3C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,EAAE,IAAI,CAAC;IACb,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACzD;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,EAAE,IAAI,CAAC;IACb,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACzD;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY,CA6CrE;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,GAAG,YAAY,CA4B5E"}
@@ -0,0 +1,5 @@
1
+ export { auditLog, recordAudits } from './schema';
2
+ export { trackChanges } from './track-changes';
3
+ export { requestAuditMiddleware } from './middleware';
4
+ export declare function createAuditModule(): import("../..").VobaseModule;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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,MAAM,cAAc,CAAC;AAEtD,wBAAgB,iBAAiB,iCAOhC"}
@@ -0,0 +1,3 @@
1
+ import type { VobaseDb } from '../../db/client';
2
+ export declare function requestAuditMiddleware(db: VobaseDb): import("hono").MiddlewareHandler<any, string, {}, Response>;
3
+ //# sourceMappingURL=middleware.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -121,81 +121,6 @@ export declare const auditLog: import("drizzle-orm/sqlite-core").SQLiteTableWith
121
121
  };
122
122
  dialect: "sqlite";
123
123
  }>;
124
- /**
125
- * Sequences table for managing sequential ID generation per prefix
126
- * Used for human-readable sequence-based IDs (e.g., ORD-001, INV-002)
127
- */
128
- export declare const sequences: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
129
- name: "_sequences";
130
- schema: undefined;
131
- columns: {
132
- id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
133
- name: string;
134
- tableName: "_sequences";
135
- dataType: "string";
136
- data: string;
137
- driverParam: string;
138
- notNull: true;
139
- hasDefault: true;
140
- isPrimaryKey: true;
141
- isAutoincrement: false;
142
- hasRuntimeDefault: true;
143
- enumValues: [string, ...string[]];
144
- baseColumn: never;
145
- identity: undefined;
146
- generated: undefined;
147
- }, {}>;
148
- prefix: import("drizzle-orm/sqlite-core").SQLiteColumn<{
149
- name: string;
150
- tableName: "_sequences";
151
- dataType: "string";
152
- data: string;
153
- driverParam: string;
154
- notNull: true;
155
- hasDefault: false;
156
- isPrimaryKey: false;
157
- isAutoincrement: false;
158
- hasRuntimeDefault: false;
159
- enumValues: [string, ...string[]];
160
- baseColumn: never;
161
- identity: undefined;
162
- generated: undefined;
163
- }, {}>;
164
- currentValue: import("drizzle-orm/sqlite-core").SQLiteColumn<{
165
- name: string;
166
- tableName: "_sequences";
167
- dataType: "number int53";
168
- data: number;
169
- driverParam: number;
170
- notNull: true;
171
- hasDefault: true;
172
- isPrimaryKey: false;
173
- isAutoincrement: false;
174
- hasRuntimeDefault: false;
175
- enumValues: undefined;
176
- baseColumn: never;
177
- identity: undefined;
178
- generated: undefined;
179
- }, {}>;
180
- updatedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
181
- name: string;
182
- tableName: "_sequences";
183
- dataType: "object date";
184
- data: Date;
185
- driverParam: number;
186
- notNull: true;
187
- hasDefault: true;
188
- isPrimaryKey: false;
189
- isAutoincrement: false;
190
- hasRuntimeDefault: true;
191
- enumValues: undefined;
192
- baseColumn: never;
193
- identity: undefined;
194
- generated: undefined;
195
- }, {}>;
196
- };
197
- dialect: "sqlite";
198
- }>;
199
124
  /**
200
125
  * Record audits table for tracking changes to individual records
201
126
  * Stores before/after data for data change auditing
@@ -319,4 +244,4 @@ export declare const recordAudits: import("drizzle-orm/sqlite-core").SQLiteTable
319
244
  };
320
245
  dialect: "sqlite";
321
246
  }>;
322
- //# sourceMappingURL=system-schema.d.ts.map
247
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/modules/audit/schema.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUnB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUvB,CAAC"}
@@ -1,3 +1,3 @@
1
- import { type VobaseDb } from './db';
1
+ import type { VobaseDb } from '../../db/client';
2
2
  export declare function trackChanges(db: VobaseDb, tableName: string, recordId: string, oldData: Record<string, unknown> | null, newData: Record<string, unknown> | null, userId?: string): void;
3
- //# sourceMappingURL=audit.d.ts.map
3
+ //# sourceMappingURL=track-changes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"track-changes.d.ts","sourceRoot":"","sources":["../../../src/modules/audit/track-changes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAqBhD,wBAAgB,YAAY,CAC1B,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACvC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EACvC,MAAM,CAAC,EAAE,MAAM,GACd,IAAI,CAyCN"}
@@ -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"}
@@ -1,5 +1,4 @@
1
- import type { Database } from 'bun:sqlite';
2
- import type { VobaseDb } from './db/client';
1
+ import type { VobaseDb } from '../../db/client';
3
2
  /** Encrypt a plaintext string using AES-256-GCM. Returns base64-encoded ciphertext. */
4
3
  export declare function encrypt(plaintext: string): string;
5
4
  /** Decrypt a base64-encoded ciphertext using AES-256-GCM. */
@@ -10,9 +9,4 @@ export declare function getCredential(db: VobaseDb, key: string): Promise<string
10
9
  export declare function setCredential(db: VobaseDb, key: string, value: string): Promise<void>;
11
10
  /** Delete a single credential. */
12
11
  export declare function deleteCredential(db: VobaseDb, key: string): Promise<void>;
13
- /**
14
- * Create the _credentials table if it doesn't exist.
15
- * This is opt-in — call during app startup if your project uses credential encryption.
16
- */
17
- export declare function ensureCredentialTable(db: Database): void;
18
- //# sourceMappingURL=credentials.d.ts.map
12
+ //# sourceMappingURL=encrypt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encrypt.d.ts","sourceRoot":"","sources":["../../../src/modules/credentials/encrypt.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAkBhD,uFAAuF;AACvF,wBAAgB,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAUjD;AAED,6DAA6D;AAC7D,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAe/C;AAED,gGAAgG;AAChG,wBAAsB,aAAa,CACjC,EAAE,EAAE,QAAQ,EACZ,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAYxB;AAED,sEAAsE;AACtE,wBAAsB,aAAa,CACjC,EAAE,EAAE,QAAQ,EACZ,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CASf;AAED,kCAAkC;AAClC,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,QAAQ,EACZ,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAIf"}
@@ -0,0 +1,4 @@
1
+ export { credentialsTable } from './schema';
2
+ export { encrypt, decrypt, getCredential, setCredential, deleteCredential } from './encrypt';
3
+ export declare function createCredentialsModule(): import("../..").VobaseModule;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/credentials/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAE7F,wBAAgB,uBAAuB,iCAOtC"}
@@ -1,7 +1,3 @@
1
- /**
2
- * Credentials table for storing encrypted sensitive data (API keys, tokens, etc.)
3
- * Opt-in: projects must call ensureCredentialTable(db) to create this table.
4
- */
5
1
  export declare const credentialsTable: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
6
2
  name: "_credentials";
7
3
  schema: undefined;
@@ -57,4 +53,4 @@ export declare const credentialsTable: import("drizzle-orm/sqlite-core").SQLiteT
57
53
  };
58
54
  dialect: "sqlite";
59
55
  }>;
60
- //# sourceMappingURL=credentials-schema.d.ts.map
56
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/modules/credentials/schema.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO3B,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"}