@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
@@ -0,0 +1,273 @@
1
+ export declare const storageObjects: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
2
+ name: "_storage_objects";
3
+ schema: undefined;
4
+ columns: {
5
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
6
+ name: string;
7
+ tableName: "_storage_objects";
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
+ bucket: import("drizzle-orm/sqlite-core").SQLiteColumn<{
22
+ name: string;
23
+ tableName: "_storage_objects";
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
+ key: import("drizzle-orm/sqlite-core").SQLiteColumn<{
38
+ name: string;
39
+ tableName: "_storage_objects";
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
+ size: import("drizzle-orm/sqlite-core").SQLiteColumn<{
54
+ name: string;
55
+ tableName: "_storage_objects";
56
+ dataType: "number int53";
57
+ data: number;
58
+ driverParam: number;
59
+ notNull: true;
60
+ hasDefault: false;
61
+ isPrimaryKey: false;
62
+ isAutoincrement: false;
63
+ hasRuntimeDefault: false;
64
+ enumValues: undefined;
65
+ baseColumn: never;
66
+ identity: undefined;
67
+ generated: undefined;
68
+ }, {}>;
69
+ contentType: import("drizzle-orm/sqlite-core").SQLiteColumn<{
70
+ name: string;
71
+ tableName: "_storage_objects";
72
+ dataType: "string";
73
+ data: string;
74
+ driverParam: string;
75
+ notNull: true;
76
+ hasDefault: true;
77
+ isPrimaryKey: false;
78
+ isAutoincrement: false;
79
+ hasRuntimeDefault: false;
80
+ enumValues: [string, ...string[]];
81
+ baseColumn: never;
82
+ identity: undefined;
83
+ generated: undefined;
84
+ }, {}>;
85
+ metadata: import("drizzle-orm/sqlite-core").SQLiteColumn<{
86
+ name: string;
87
+ tableName: "_storage_objects";
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
+ uploadedBy: import("drizzle-orm/sqlite-core").SQLiteColumn<{
102
+ name: string;
103
+ tableName: "_storage_objects";
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
+ createdAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
118
+ name: string;
119
+ tableName: "_storage_objects";
120
+ dataType: "object date";
121
+ data: Date;
122
+ driverParam: number;
123
+ notNull: true;
124
+ hasDefault: true;
125
+ isPrimaryKey: false;
126
+ isAutoincrement: false;
127
+ hasRuntimeDefault: true;
128
+ enumValues: undefined;
129
+ baseColumn: never;
130
+ identity: undefined;
131
+ generated: undefined;
132
+ }, {}>;
133
+ };
134
+ dialect: "sqlite";
135
+ }>;
136
+ export declare const storageSchema: {
137
+ storageObjects: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
138
+ name: "_storage_objects";
139
+ schema: undefined;
140
+ columns: {
141
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
142
+ name: string;
143
+ tableName: "_storage_objects";
144
+ dataType: "string";
145
+ data: string;
146
+ driverParam: string;
147
+ notNull: true;
148
+ hasDefault: true;
149
+ isPrimaryKey: true;
150
+ isAutoincrement: false;
151
+ hasRuntimeDefault: true;
152
+ enumValues: [string, ...string[]];
153
+ baseColumn: never;
154
+ identity: undefined;
155
+ generated: undefined;
156
+ }, {}>;
157
+ bucket: import("drizzle-orm/sqlite-core").SQLiteColumn<{
158
+ name: string;
159
+ tableName: "_storage_objects";
160
+ dataType: "string";
161
+ data: string;
162
+ driverParam: string;
163
+ notNull: true;
164
+ hasDefault: false;
165
+ isPrimaryKey: false;
166
+ isAutoincrement: false;
167
+ hasRuntimeDefault: false;
168
+ enumValues: [string, ...string[]];
169
+ baseColumn: never;
170
+ identity: undefined;
171
+ generated: undefined;
172
+ }, {}>;
173
+ key: import("drizzle-orm/sqlite-core").SQLiteColumn<{
174
+ name: string;
175
+ tableName: "_storage_objects";
176
+ dataType: "string";
177
+ data: string;
178
+ driverParam: string;
179
+ notNull: true;
180
+ hasDefault: false;
181
+ isPrimaryKey: false;
182
+ isAutoincrement: false;
183
+ hasRuntimeDefault: false;
184
+ enumValues: [string, ...string[]];
185
+ baseColumn: never;
186
+ identity: undefined;
187
+ generated: undefined;
188
+ }, {}>;
189
+ size: import("drizzle-orm/sqlite-core").SQLiteColumn<{
190
+ name: string;
191
+ tableName: "_storage_objects";
192
+ dataType: "number int53";
193
+ data: number;
194
+ driverParam: number;
195
+ notNull: true;
196
+ hasDefault: false;
197
+ isPrimaryKey: false;
198
+ isAutoincrement: false;
199
+ hasRuntimeDefault: false;
200
+ enumValues: undefined;
201
+ baseColumn: never;
202
+ identity: undefined;
203
+ generated: undefined;
204
+ }, {}>;
205
+ contentType: import("drizzle-orm/sqlite-core").SQLiteColumn<{
206
+ name: string;
207
+ tableName: "_storage_objects";
208
+ dataType: "string";
209
+ data: string;
210
+ driverParam: string;
211
+ notNull: true;
212
+ hasDefault: true;
213
+ isPrimaryKey: false;
214
+ isAutoincrement: false;
215
+ hasRuntimeDefault: false;
216
+ enumValues: [string, ...string[]];
217
+ baseColumn: never;
218
+ identity: undefined;
219
+ generated: undefined;
220
+ }, {}>;
221
+ metadata: import("drizzle-orm/sqlite-core").SQLiteColumn<{
222
+ name: string;
223
+ tableName: "_storage_objects";
224
+ dataType: "string";
225
+ data: string;
226
+ driverParam: string;
227
+ notNull: false;
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
+ uploadedBy: import("drizzle-orm/sqlite-core").SQLiteColumn<{
238
+ name: string;
239
+ tableName: "_storage_objects";
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
+ createdAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
254
+ name: string;
255
+ tableName: "_storage_objects";
256
+ dataType: "object date";
257
+ data: Date;
258
+ driverParam: number;
259
+ notNull: true;
260
+ hasDefault: true;
261
+ isPrimaryKey: false;
262
+ isAutoincrement: false;
263
+ hasRuntimeDefault: true;
264
+ enumValues: undefined;
265
+ baseColumn: never;
266
+ identity: undefined;
267
+ generated: undefined;
268
+ }, {}>;
269
+ };
270
+ dialect: "sqlite";
271
+ }>;
272
+ };
273
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/modules/storage/schema.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmB1B,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAAqB,CAAC"}
@@ -0,0 +1,35 @@
1
+ import type { VobaseDb } from '../../db/client';
2
+ import type { StorageProvider, UploadOptions, PresignOptions, StorageListResult } from '../../contracts/storage';
3
+ export interface BucketConfig {
4
+ access: 'public' | 'private';
5
+ maxSize?: number;
6
+ allowedTypes?: string[];
7
+ }
8
+ export interface StorageObject {
9
+ id: string;
10
+ bucket: string;
11
+ key: string;
12
+ size: number;
13
+ contentType: string;
14
+ metadata: Record<string, string> | null;
15
+ uploadedBy: string | null;
16
+ createdAt: Date;
17
+ }
18
+ export interface BucketHandle {
19
+ upload(key: string, data: Buffer | Uint8Array, opts?: UploadOptions): Promise<StorageObject>;
20
+ download(key: string): Promise<Uint8Array>;
21
+ delete(key: string): Promise<void>;
22
+ presign(key: string, opts?: PresignOptions): string;
23
+ list(opts?: BucketListOptions): Promise<StorageListResult>;
24
+ metadata(key: string): Promise<StorageObject | null>;
25
+ }
26
+ export interface BucketListOptions {
27
+ prefix?: string;
28
+ cursor?: string;
29
+ limit?: number;
30
+ }
31
+ export interface StorageService {
32
+ bucket(name: string): BucketHandle;
33
+ }
34
+ export declare function createStorageService(provider: StorageProvider, buckets: Record<string, BucketConfig>, db: VobaseDb): StorageService;
35
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/modules/storage/service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,cAAc,EACd,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AAIjC,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACxC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC7F,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,MAAM,CAAC;IACpD,IAAI,CAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC3D,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;CACtD;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC;CACpC;AAED,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EACrC,EAAE,EAAE,QAAQ,GACX,cAAc,CAqJhB"}
@@ -0,0 +1,17 @@
1
+ export interface SchemaConfig {
2
+ /** Include credentials table. Default: true */
3
+ credentials?: boolean;
4
+ /** Include storage tables (Phase 2). Default: false */
5
+ storage?: boolean;
6
+ /** Include notify tables (Phase 3). Default: false */
7
+ notify?: boolean;
8
+ }
9
+ /**
10
+ * Returns a merged schema object containing all active Drizzle table
11
+ * definitions based on config. Use with drizzle-kit for migration generation.
12
+ *
13
+ * Always included: auth, audit, sequences, webhook dedup.
14
+ * Conditionally included: credentials, storage (Phase 2), notify (Phase 3).
15
+ */
16
+ export declare function getActiveSchemas(config?: SchemaConfig): Record<string, unknown>;
17
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,YAAY;IAC3B,+CAA+C;IAC/C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uDAAuD;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sDAAsD;IACtD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA6B/E"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Creates a proxy that throws a descriptive error when any property is accessed.
3
+ * Used for optional services (storage, notify) that are typed as non-optional
4
+ * in VobaseCtx but may not be configured.
5
+ */
6
+ export declare function createThrowProxy<T>(serviceName: string): T;
7
+ //# sourceMappingURL=throw-proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"throw-proxy.d.ts","sourceRoot":"","sources":["../src/throw-proxy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,GAAG,CAAC,CAW1D"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Webhook deduplication table. Tracks processed webhook IDs
3
+ * to prevent duplicate processing.
4
+ */
5
+ export declare const webhookDedup: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
6
+ name: "_webhook_dedup";
7
+ schema: undefined;
8
+ columns: {
9
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
10
+ name: string;
11
+ tableName: "_webhook_dedup";
12
+ dataType: "string";
13
+ data: string;
14
+ driverParam: string;
15
+ notNull: true;
16
+ hasDefault: false;
17
+ isPrimaryKey: false;
18
+ isAutoincrement: false;
19
+ hasRuntimeDefault: false;
20
+ enumValues: [string, ...string[]];
21
+ baseColumn: never;
22
+ identity: undefined;
23
+ generated: undefined;
24
+ }, {}>;
25
+ source: import("drizzle-orm/sqlite-core").SQLiteColumn<{
26
+ name: string;
27
+ tableName: "_webhook_dedup";
28
+ dataType: "string";
29
+ data: string;
30
+ driverParam: string;
31
+ notNull: true;
32
+ hasDefault: false;
33
+ isPrimaryKey: false;
34
+ isAutoincrement: false;
35
+ hasRuntimeDefault: false;
36
+ enumValues: [string, ...string[]];
37
+ baseColumn: never;
38
+ identity: undefined;
39
+ generated: undefined;
40
+ }, {}>;
41
+ receivedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
42
+ name: string;
43
+ tableName: "_webhook_dedup";
44
+ dataType: "object date";
45
+ data: Date;
46
+ driverParam: number;
47
+ notNull: true;
48
+ hasDefault: true;
49
+ isPrimaryKey: false;
50
+ isAutoincrement: false;
51
+ hasRuntimeDefault: true;
52
+ enumValues: undefined;
53
+ baseColumn: never;
54
+ identity: undefined;
55
+ generated: undefined;
56
+ }, {}>;
57
+ };
58
+ dialect: "sqlite";
59
+ }>;
60
+ //# sourceMappingURL=webhooks-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhooks-schema.d.ts","sourceRoot":"","sources":["../src/webhooks-schema.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUxB,CAAC"}
@@ -1,6 +1,7 @@
1
- import type { Database } from 'bun:sqlite';
2
1
  import { Hono } from 'hono';
2
+ import type { VobaseDb } from './db/client';
3
3
  import type { Scheduler } from './queue';
4
+ export { webhookDedup } from './webhooks-schema';
4
5
  export interface WebhookConfig {
5
6
  /** Route path, e.g. '/webhooks/stripe' */
6
7
  path: string;
@@ -22,22 +23,14 @@ export interface WebhookConfig {
22
23
  * Returns false for any malformed or invalid signature (never throws).
23
24
  */
24
25
  export declare function verifyHmacSignature(payload: string, signature: string, secret: string): boolean;
25
- /**
26
- * Creates the `_webhook_dedup` table if it doesn't exist.
27
- *
28
- * Uses raw SQL via the bun:sqlite Database handle, matching the pattern
29
- * used by `ensureCoreTables`.
30
- */
31
- export declare function ensureWebhookDedupTable(db: Database): void;
32
26
  /**
33
27
  * Check whether a webhook has already been processed and record it if not.
34
28
  *
35
- * Uses INSERT OR IGNORE and inspects changes to determine whether the
36
- * row was newly inserted (not a duplicate) or already existed (duplicate).
29
+ * Checks for existing record first, then inserts if not found.
37
30
  *
38
31
  * @returns `true` if the webhook is a duplicate, `false` if it's new.
39
32
  */
40
- export declare function checkAndRecordWebhook(db: Database, webhookId: string, source: string): boolean;
33
+ export declare function checkAndRecordWebhook(db: VobaseDb, webhookId: string, source: string): boolean;
41
34
  /**
42
35
  * Create a Hono router that handles incoming webhook POST requests.
43
36
  *
@@ -47,7 +40,7 @@ export declare function checkAndRecordWebhook(db: Database, webhookId: string, s
47
40
  * 3. Enqueues the payload to the configured job
48
41
  */
49
42
  export declare function createWebhookRoutes(configs: Record<string, WebhookConfig>, deps: {
50
- db: Database;
43
+ db: VobaseDb;
51
44
  scheduler: Scheduler;
52
45
  }): Hono;
53
46
  //# sourceMappingURL=webhooks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../src/webhooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,WAAW,aAAa;IAC5B,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sDAAsD;IACtD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAoBT;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAS1D;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAOT;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EACtC,IAAI,EAAE;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,GAC3C,IAAI,CA8CN"}
1
+ {"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../src/webhooks.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGzC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,WAAW,aAAa;IAC5B,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sDAAsD;IACtD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAoBT;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAoBT;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,EACtC,IAAI,EAAE;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,GAC3C,IAAI,CA6CN"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vobase/core",
3
- "version": "0.6.2",
3
+ "version": "0.8.0",
4
4
  "license": "MIT",
5
5
  "description": "The app framework built for AI coding agents - core runtime",
6
6
  "repository": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../src/audit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,MAAM,CAAC;AAmBnD,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"}
package/dist/auth.d.ts DELETED
@@ -1,30 +0,0 @@
1
- import type { SocialProviders } from 'better-auth/social-providers';
2
- import type { VobaseDb } from './db';
3
- export interface CreateAuthOptions {
4
- baseURL?: string;
5
- trustedOrigins?: string[];
6
- socialProviders?: SocialProviders;
7
- }
8
- export declare function createAuth(db: VobaseDb, options?: CreateAuthOptions): import("better-auth").Auth<{
9
- trustedOrigins?: string[] | undefined;
10
- user: {
11
- additionalFields: {
12
- role: {
13
- type: "string";
14
- defaultValue: string;
15
- input: false;
16
- };
17
- };
18
- };
19
- hooks: {
20
- after: (inputContext: import("better-auth").MiddlewareInputContext<import("better-auth").MiddlewareOptions>) => Promise<void>;
21
- };
22
- socialProviders?: SocialProviders | undefined;
23
- emailAndPassword: {
24
- enabled: true;
25
- };
26
- baseURL?: string | undefined;
27
- database: (options: import("better-auth").BetterAuthOptions) => import("better-auth").DBAdapter<import("better-auth").BetterAuthOptions>;
28
- }>;
29
- export type Auth = ReturnType<typeof createAuth>;
30
- //# sourceMappingURL=auth.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAGpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAIrC,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,iBAAiB;;;;;;;;;;;;;;;;;;;;GAqBnE;AAED,MAAM,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAkB5C,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;AAUD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAExD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"credentials-schema.d.ts","sourceRoot":"","sources":["../../src/db/credentials-schema.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAO3B,CAAC"}
@@ -1,12 +0,0 @@
1
- import type { Database } from 'bun:sqlite';
2
- /**
3
- * Ensures all core framework tables exist in the database.
4
- *
5
- * Creates auth tables (user, session, account, verification) and system tables
6
- * (_audit_log, _sequences, _record_audits) using idempotent CREATE TABLE IF NOT EXISTS.
7
- *
8
- * This runs before Drizzle migrations so that core tables are always available
9
- * regardless of the user project's migration state.
10
- */
11
- export declare function ensureCoreTables(db: Database): void;
12
- //# sourceMappingURL=ensure-core-tables.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ensure-core-tables.d.ts","sourceRoot":"","sources":["../../src/db/ensure-core-tables.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAEnD"}
@@ -1,3 +0,0 @@
1
- import type { VobaseDb } from './client';
2
- export declare function runMigrations(db: VobaseDb, migrationsFolder: string): void;
3
- //# sourceMappingURL=migrator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"migrator.d.ts","sourceRoot":"","sources":["../../src/db/migrator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAKzC,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAG1E"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"system-schema.d.ts","sourceRoot":"","sources":["../../src/db/system-schema.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUnB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQpB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUvB,CAAC"}
@@ -1,6 +0,0 @@
1
- import { type VobaseDb } from '../db';
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
- //# sourceMappingURL=audit.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/middleware/audit.ts"],"names":[],"mappings":"AAGA,OAAO,EAAY,KAAK,QAAQ,EAAE,MAAM,OAAO,CAAC;AAkChD,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,QAAQ,+DAkBlD;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,QAAQ;;EAoBhD"}
@@ -1,14 +0,0 @@
1
- import type { Auth } from '../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(auth: Auth): import("hono").MiddlewareHandler<any, string, {}, Response>;
13
- export declare function optionalSessionMiddleware(auth: Auth): import("hono").MiddlewareHandler<any, string, {}, Response>;
14
- //# sourceMappingURL=session.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/middleware/session.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAUpC,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,IAAI,EAAE,IAAI,+DAiB3C;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,IAAI,+DAkBnD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sequence.d.ts","sourceRoot":"","sources":["../src/sequence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,QAAQ,EAAE,MAAM,MAAM,CAAC;AAEnD,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAQD,wBAAgB,YAAY,CAC1B,EAAE,EAAE,QAAQ,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,eAAe,GACxB,MAAM,CA4BR"}
package/dist/storage.d.ts DELETED
@@ -1,8 +0,0 @@
1
- export interface Storage {
2
- upload(path: string, buffer: Buffer | Uint8Array): Promise<void>;
3
- download(path: string): Promise<Uint8Array>;
4
- getUrl(path: string): string;
5
- delete(path: string): Promise<void>;
6
- }
7
- export declare function createStorage(basePath: string, db?: unknown): Storage;
8
- //# sourceMappingURL=storage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAiBA,MAAM,WAAW,OAAO;IACtB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAwCrE"}