@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.
- package/dist/app.d.ts +11 -93
- package/dist/app.d.ts.map +1 -1
- package/dist/contracts/auth.d.ts +33 -0
- package/dist/contracts/auth.d.ts.map +1 -0
- package/dist/contracts/module.d.ts +17 -0
- package/dist/contracts/module.d.ts.map +1 -0
- package/dist/contracts/notify.d.ts +46 -0
- package/dist/contracts/notify.d.ts.map +1 -0
- package/dist/contracts/storage.d.ts +54 -0
- package/dist/contracts/storage.d.ts.map +1 -0
- package/dist/ctx.d.ts +8 -4
- package/dist/ctx.d.ts.map +1 -1
- package/dist/db/index.d.ts +0 -3
- package/dist/db/index.d.ts.map +1 -1
- package/dist/index.d.ts +31 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +83798 -83170
- package/dist/mcp.d.ts +1 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/module.d.ts +9 -0
- package/dist/module.d.ts.map +1 -1
- package/dist/modules/audit/index.d.ts +5 -0
- package/dist/modules/audit/index.d.ts.map +1 -0
- package/dist/modules/audit/middleware.d.ts +3 -0
- package/dist/modules/audit/middleware.d.ts.map +1 -0
- package/dist/{db/system-schema.d.ts → modules/audit/schema.d.ts} +1 -76
- package/dist/modules/audit/schema.d.ts.map +1 -0
- package/dist/{audit.d.ts → modules/audit/track-changes.d.ts} +2 -2
- package/dist/modules/audit/track-changes.d.ts.map +1 -0
- package/dist/modules/auth/audit-hooks.d.ts +6 -0
- package/dist/modules/auth/audit-hooks.d.ts.map +1 -0
- package/dist/modules/auth/index.d.ts +17 -0
- package/dist/modules/auth/index.d.ts.map +1 -0
- package/dist/modules/auth/middleware.d.ts +14 -0
- package/dist/modules/auth/middleware.d.ts.map +1 -0
- package/dist/{db/auth-schema.d.ts → modules/auth/schema.d.ts} +1 -1
- package/dist/{db/auth-schema.d.ts.map → modules/auth/schema.d.ts.map} +1 -1
- package/dist/{credentials.d.ts → modules/credentials/encrypt.d.ts} +2 -8
- package/dist/modules/credentials/encrypt.d.ts.map +1 -0
- package/dist/modules/credentials/index.d.ts +4 -0
- package/dist/modules/credentials/index.d.ts.map +1 -0
- package/dist/{db/credentials-schema.d.ts → modules/credentials/schema.d.ts} +1 -5
- package/dist/modules/credentials/schema.d.ts.map +1 -0
- package/dist/modules/notify/index.d.ts +36 -0
- package/dist/modules/notify/index.d.ts.map +1 -0
- package/dist/modules/notify/providers/resend.d.ts +7 -0
- package/dist/modules/notify/providers/resend.d.ts.map +1 -0
- package/dist/modules/notify/providers/smtp.d.ts +18 -0
- package/dist/modules/notify/providers/smtp.d.ts.map +1 -0
- package/dist/modules/notify/providers/waba.d.ts +12 -0
- package/dist/modules/notify/providers/waba.d.ts.map +1 -0
- package/dist/modules/notify/schema.d.ts +337 -0
- package/dist/modules/notify/schema.d.ts.map +1 -0
- package/dist/modules/notify/service.d.ts +22 -0
- package/dist/modules/notify/service.d.ts.map +1 -0
- package/dist/modules/sequences/index.d.ts +4 -0
- package/dist/modules/sequences/index.d.ts.map +1 -0
- package/dist/{sequence.d.ts → modules/sequences/next-sequence.d.ts} +2 -2
- package/dist/modules/sequences/next-sequence.d.ts.map +1 -0
- package/dist/modules/sequences/schema.d.ts +72 -0
- package/dist/modules/sequences/schema.d.ts.map +1 -0
- package/dist/modules/storage/index.d.ts +24 -0
- package/dist/modules/storage/index.d.ts.map +1 -0
- package/dist/modules/storage/providers/local.d.ts +3 -0
- package/dist/modules/storage/providers/local.d.ts.map +1 -0
- package/dist/modules/storage/providers/s3.d.ts +3 -0
- package/dist/modules/storage/providers/s3.d.ts.map +1 -0
- package/dist/modules/storage/routes.d.ts +4 -0
- package/dist/modules/storage/routes.d.ts.map +1 -0
- package/dist/modules/storage/schema.d.ts +273 -0
- package/dist/modules/storage/schema.d.ts.map +1 -0
- package/dist/modules/storage/service.d.ts +35 -0
- package/dist/modules/storage/service.d.ts.map +1 -0
- package/dist/schemas.d.ts +17 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/throw-proxy.d.ts +7 -0
- package/dist/throw-proxy.d.ts.map +1 -0
- package/dist/webhooks-schema.d.ts +60 -0
- package/dist/webhooks-schema.d.ts.map +1 -0
- package/dist/webhooks.d.ts +5 -12
- package/dist/webhooks.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/audit.d.ts.map +0 -1
- package/dist/auth.d.ts +0 -30
- package/dist/auth.d.ts.map +0 -1
- package/dist/credentials.d.ts.map +0 -1
- package/dist/db/credentials-schema.d.ts.map +0 -1
- package/dist/db/ensure-core-tables.d.ts +0 -12
- package/dist/db/ensure-core-tables.d.ts.map +0 -1
- package/dist/db/migrator.d.ts +0 -3
- package/dist/db/migrator.d.ts.map +0 -1
- package/dist/db/system-schema.d.ts.map +0 -1
- package/dist/middleware/audit.d.ts +0 -6
- package/dist/middleware/audit.d.ts.map +0 -1
- package/dist/middleware/session.d.ts +0 -14
- package/dist/middleware/session.d.ts.map +0 -1
- package/dist/sequence.d.ts.map +0 -1
- package/dist/storage.d.ts +0 -8
- package/dist/storage.d.ts.map +0 -1
- package/dist/system/handlers.d.ts +0 -90
- package/dist/system/handlers.d.ts.map +0 -1
- package/dist/system/index.d.ts +0 -8
- package/dist/system/index.d.ts.map +0 -1
- package/dist/system/schema.d.ts +0 -2
- package/dist/system/schema.d.ts.map +0 -1
package/dist/mcp.d.ts
CHANGED
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,
|
|
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
|
package/dist/module.d.ts.map
CHANGED
|
@@ -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;
|
|
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 @@
|
|
|
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=
|
|
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 {
|
|
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=
|
|
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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"
|
|
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 {
|
|
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 @@
|
|
|
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=
|
|
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 @@
|
|
|
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"}
|