@vobase/core 0.1.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 (100) hide show
  1. package/dist/__tests__/e2e.test.d.ts +2 -0
  2. package/dist/__tests__/e2e.test.d.ts.map +1 -0
  3. package/dist/__tests__/rpc-types.test.d.ts +43 -0
  4. package/dist/__tests__/rpc-types.test.d.ts.map +1 -0
  5. package/dist/app.d.ts +117 -0
  6. package/dist/app.d.ts.map +1 -0
  7. package/dist/app.test.d.ts +2 -0
  8. package/dist/app.test.d.ts.map +1 -0
  9. package/dist/audit.d.ts +3 -0
  10. package/dist/audit.d.ts.map +1 -0
  11. package/dist/audit.test.d.ts +2 -0
  12. package/dist/audit.test.d.ts.map +1 -0
  13. package/dist/auth.d.ts +25 -0
  14. package/dist/auth.d.ts.map +1 -0
  15. package/dist/auth.test.d.ts +2 -0
  16. package/dist/auth.test.d.ts.map +1 -0
  17. package/dist/circuit-breaker.d.ts +17 -0
  18. package/dist/circuit-breaker.d.ts.map +1 -0
  19. package/dist/ctx.d.ts +34 -0
  20. package/dist/ctx.d.ts.map +1 -0
  21. package/dist/ctx.test.d.ts +2 -0
  22. package/dist/ctx.test.d.ts.map +1 -0
  23. package/dist/db/auth-schema.d.ts +1337 -0
  24. package/dist/db/auth-schema.d.ts.map +1 -0
  25. package/dist/db/client.d.ts +4 -0
  26. package/dist/db/client.d.ts.map +1 -0
  27. package/dist/db/client.test.d.ts +2 -0
  28. package/dist/db/client.test.d.ts.map +1 -0
  29. package/dist/db/ensure-core-tables.d.ts +12 -0
  30. package/dist/db/ensure-core-tables.d.ts.map +1 -0
  31. package/dist/db/ensure-core-tables.test.d.ts +2 -0
  32. package/dist/db/ensure-core-tables.test.d.ts.map +1 -0
  33. package/dist/db/helpers.d.ts +26 -0
  34. package/dist/db/helpers.d.ts.map +1 -0
  35. package/dist/db/helpers.test.d.ts +2 -0
  36. package/dist/db/helpers.test.d.ts.map +1 -0
  37. package/dist/db/index.d.ts +6 -0
  38. package/dist/db/index.d.ts.map +1 -0
  39. package/dist/db/migrator.d.ts +3 -0
  40. package/dist/db/migrator.d.ts.map +1 -0
  41. package/dist/db/system-schema.d.ts +368 -0
  42. package/dist/db/system-schema.d.ts.map +1 -0
  43. package/dist/db/system-schema.test.d.ts +2 -0
  44. package/dist/db/system-schema.test.d.ts.map +1 -0
  45. package/dist/errors.d.ts +26 -0
  46. package/dist/errors.d.ts.map +1 -0
  47. package/dist/errors.test.d.ts +2 -0
  48. package/dist/errors.test.d.ts.map +1 -0
  49. package/dist/http-client.d.ts +31 -0
  50. package/dist/http-client.d.ts.map +1 -0
  51. package/dist/index.d.ts +22 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +85917 -0
  54. package/dist/job.d.ts +14 -0
  55. package/dist/job.d.ts.map +1 -0
  56. package/dist/job.test.d.ts +2 -0
  57. package/dist/job.test.d.ts.map +1 -0
  58. package/dist/logger.d.ts +7 -0
  59. package/dist/logger.d.ts.map +1 -0
  60. package/dist/logger.test.d.ts +2 -0
  61. package/dist/logger.test.d.ts.map +1 -0
  62. package/dist/mcp.d.ts +10 -0
  63. package/dist/mcp.d.ts.map +1 -0
  64. package/dist/mcp.test.d.ts +2 -0
  65. package/dist/mcp.test.d.ts.map +1 -0
  66. package/dist/middleware/audit.d.ts +6 -0
  67. package/dist/middleware/audit.d.ts.map +1 -0
  68. package/dist/middleware/audit.test.d.ts +2 -0
  69. package/dist/middleware/audit.test.d.ts.map +1 -0
  70. package/dist/middleware/session.d.ts +14 -0
  71. package/dist/middleware/session.d.ts.map +1 -0
  72. package/dist/module-registry.d.ts +3 -0
  73. package/dist/module-registry.d.ts.map +1 -0
  74. package/dist/module.d.ts +20 -0
  75. package/dist/module.d.ts.map +1 -0
  76. package/dist/module.test.d.ts +2 -0
  77. package/dist/module.test.d.ts.map +1 -0
  78. package/dist/queue.d.ts +18 -0
  79. package/dist/queue.d.ts.map +1 -0
  80. package/dist/queue.test.d.ts +2 -0
  81. package/dist/queue.test.d.ts.map +1 -0
  82. package/dist/sequence.d.ts +8 -0
  83. package/dist/sequence.d.ts.map +1 -0
  84. package/dist/sequence.test.d.ts +2 -0
  85. package/dist/sequence.test.d.ts.map +1 -0
  86. package/dist/storage.d.ts +8 -0
  87. package/dist/storage.d.ts.map +1 -0
  88. package/dist/storage.test.d.ts +2 -0
  89. package/dist/storage.test.d.ts.map +1 -0
  90. package/dist/system/handlers.d.ts +90 -0
  91. package/dist/system/handlers.d.ts.map +1 -0
  92. package/dist/system/index.d.ts +8 -0
  93. package/dist/system/index.d.ts.map +1 -0
  94. package/dist/system/schema.d.ts +2 -0
  95. package/dist/system/schema.d.ts.map +1 -0
  96. package/dist/system/system.test.d.ts +2 -0
  97. package/dist/system/system.test.d.ts.map +1 -0
  98. package/dist/webhooks.d.ts +53 -0
  99. package/dist/webhooks.d.ts.map +1 -0
  100. package/package.json +41 -0
@@ -0,0 +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"}
@@ -0,0 +1,4 @@
1
+ import { drizzle } from 'drizzle-orm/bun-sqlite';
2
+ export type VobaseDb = ReturnType<typeof drizzle>;
3
+ export declare function createDatabase(dbPath: string): VobaseDb;
4
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/db/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAIjD,MAAM,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC;AAElD,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CASvD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=client.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.test.d.ts","sourceRoot":"","sources":["../../src/db/client.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ensure-core-tables.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ensure-core-tables.test.d.ts","sourceRoot":"","sources":["../../src/db/ensure-core-tables.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ export declare const NANOID_LENGTH: {
2
+ readonly SHORT: 8;
3
+ readonly DEFAULT: 12;
4
+ readonly LONG: 16;
5
+ };
6
+ export declare const NANOID_ALPHABET = "0123456789abcdefghijklmnopqrstuvwxyz";
7
+ /**
8
+ * Create or retrieve a cached nanoid generator with the specified length.
9
+ * Uses a custom alphabet of lowercase alphanumeric characters.
10
+ */
11
+ export declare function createNanoid(length?: number): () => string;
12
+ /**
13
+ * Create a nanoid-based primary key column for SQLite.
14
+ * Generates a 12-character ID by default (customizable).
15
+ */
16
+ export declare const nanoidPrimaryKey: (length?: number) => import("drizzle-orm").HasRuntimeDefault<import("drizzle-orm").HasDefault<import("drizzle-orm").IsPrimaryKey<import("drizzle-orm").NotNull<import("drizzle-orm/sqlite-core").SQLiteTextBuilderInitial<"id", [string, ...string[]], number | undefined>>>>>;
17
+ /**
18
+ * Default timestamp columns for SQLite using timestamp_ms mode.
19
+ * createdAt: set on insert and never updated
20
+ * updatedAt: set on insert and updated on every row modification
21
+ */
22
+ export declare const DEFAULT_COLUMNS: {
23
+ readonly createdAt: import("drizzle-orm").HasRuntimeDefault<import("drizzle-orm").HasDefault<import("drizzle-orm").NotNull<import("drizzle-orm/sqlite-core").SQLiteTimestampBuilderInitial<"created_at">>>>;
24
+ readonly updatedAt: import("drizzle-orm").HasDefault<import("drizzle-orm").HasRuntimeDefault<import("drizzle-orm").HasDefault<import("drizzle-orm").NotNull<import("drizzle-orm/sqlite-core").SQLiteTimestampBuilderInitial<"updated_at">>>>>;
25
+ };
26
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/db/helpers.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa;;;;CAA+C,CAAC;AAC1E,eAAO,MAAM,eAAe,yCAAyC,CAAC;AAKtE;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,MAAM,GAAE,MAA8B,GACrC,MAAM,MAAM,CAWd;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,SAAQ,MAA8B,8PAG1B,CAAC;AAE9C;;;;GAIG;AACH,eAAO,MAAM,eAAe;;;CAQlB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=helpers.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.test.d.ts","sourceRoot":"","sources":["../../src/db/helpers.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ export { createDatabase, type VobaseDb } from './client';
2
+ export { createNanoid, DEFAULT_COLUMNS, NANOID_ALPHABET, NANOID_LENGTH, nanoidPrimaryKey, } from './helpers';
3
+ export { runMigrations } from './migrator';
4
+ export { ensureCoreTables } from './ensure-core-tables';
5
+ export * from './system-schema';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,EACL,YAAY,EACZ,eAAe,EACf,eAAe,EACf,aAAa,EACb,gBAAgB,GACjB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { VobaseDb } from './client';
2
+ export declare function runMigrations(db: VobaseDb, migrationsFolder: string): void;
3
+ //# sourceMappingURL=migrator.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,368 @@
1
+ /**
2
+ * Audit log table for tracking system events (sign-in, sign-up, role changes, etc.)
3
+ * Events are immutable - no updatedAt column
4
+ */
5
+ export declare const auditLog: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
6
+ name: "_audit_log";
7
+ schema: undefined;
8
+ columns: {
9
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
10
+ name: "id";
11
+ tableName: "_audit_log";
12
+ dataType: "string";
13
+ columnType: "SQLiteText";
14
+ data: string;
15
+ driverParam: string;
16
+ notNull: true;
17
+ hasDefault: true;
18
+ isPrimaryKey: true;
19
+ isAutoincrement: false;
20
+ hasRuntimeDefault: true;
21
+ enumValues: [string, ...string[]];
22
+ baseColumn: never;
23
+ identity: undefined;
24
+ generated: undefined;
25
+ }, {}, {
26
+ length: number | undefined;
27
+ }>;
28
+ event: import("drizzle-orm/sqlite-core").SQLiteColumn<{
29
+ name: "event";
30
+ tableName: "_audit_log";
31
+ dataType: "string";
32
+ columnType: "SQLiteText";
33
+ data: string;
34
+ driverParam: string;
35
+ notNull: true;
36
+ hasDefault: false;
37
+ isPrimaryKey: false;
38
+ isAutoincrement: false;
39
+ hasRuntimeDefault: false;
40
+ enumValues: [string, ...string[]];
41
+ baseColumn: never;
42
+ identity: undefined;
43
+ generated: undefined;
44
+ }, {}, {
45
+ length: number | undefined;
46
+ }>;
47
+ actorId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
48
+ name: "actor_id";
49
+ tableName: "_audit_log";
50
+ dataType: "string";
51
+ columnType: "SQLiteText";
52
+ data: string;
53
+ driverParam: string;
54
+ notNull: false;
55
+ hasDefault: false;
56
+ isPrimaryKey: false;
57
+ isAutoincrement: false;
58
+ hasRuntimeDefault: false;
59
+ enumValues: [string, ...string[]];
60
+ baseColumn: never;
61
+ identity: undefined;
62
+ generated: undefined;
63
+ }, {}, {
64
+ length: number | undefined;
65
+ }>;
66
+ actorEmail: import("drizzle-orm/sqlite-core").SQLiteColumn<{
67
+ name: "actor_email";
68
+ tableName: "_audit_log";
69
+ dataType: "string";
70
+ columnType: "SQLiteText";
71
+ data: string;
72
+ driverParam: string;
73
+ notNull: false;
74
+ hasDefault: false;
75
+ isPrimaryKey: false;
76
+ isAutoincrement: false;
77
+ hasRuntimeDefault: false;
78
+ enumValues: [string, ...string[]];
79
+ baseColumn: never;
80
+ identity: undefined;
81
+ generated: undefined;
82
+ }, {}, {
83
+ length: number | undefined;
84
+ }>;
85
+ ip: import("drizzle-orm/sqlite-core").SQLiteColumn<{
86
+ name: "ip";
87
+ tableName: "_audit_log";
88
+ dataType: "string";
89
+ columnType: "SQLiteText";
90
+ data: string;
91
+ driverParam: string;
92
+ notNull: false;
93
+ hasDefault: false;
94
+ isPrimaryKey: false;
95
+ isAutoincrement: false;
96
+ hasRuntimeDefault: false;
97
+ enumValues: [string, ...string[]];
98
+ baseColumn: never;
99
+ identity: undefined;
100
+ generated: undefined;
101
+ }, {}, {
102
+ length: number | undefined;
103
+ }>;
104
+ details: import("drizzle-orm/sqlite-core").SQLiteColumn<{
105
+ name: "details";
106
+ tableName: "_audit_log";
107
+ dataType: "string";
108
+ columnType: "SQLiteText";
109
+ data: string;
110
+ driverParam: string;
111
+ notNull: false;
112
+ hasDefault: false;
113
+ isPrimaryKey: false;
114
+ isAutoincrement: false;
115
+ hasRuntimeDefault: false;
116
+ enumValues: [string, ...string[]];
117
+ baseColumn: never;
118
+ identity: undefined;
119
+ generated: undefined;
120
+ }, {}, {
121
+ length: number | undefined;
122
+ }>;
123
+ createdAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
124
+ name: "created_at";
125
+ tableName: "_audit_log";
126
+ dataType: "date";
127
+ columnType: "SQLiteTimestamp";
128
+ data: Date;
129
+ driverParam: number;
130
+ notNull: true;
131
+ hasDefault: true;
132
+ isPrimaryKey: false;
133
+ isAutoincrement: false;
134
+ hasRuntimeDefault: true;
135
+ enumValues: undefined;
136
+ baseColumn: never;
137
+ identity: undefined;
138
+ generated: undefined;
139
+ }, {}, {}>;
140
+ };
141
+ dialect: "sqlite";
142
+ }>;
143
+ /**
144
+ * Sequences table for managing sequential ID generation per prefix
145
+ * Used for human-readable sequence-based IDs (e.g., ORD-001, INV-002)
146
+ */
147
+ export declare const sequences: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
148
+ name: "_sequences";
149
+ schema: undefined;
150
+ columns: {
151
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
152
+ name: "id";
153
+ tableName: "_sequences";
154
+ dataType: "string";
155
+ columnType: "SQLiteText";
156
+ data: string;
157
+ driverParam: string;
158
+ notNull: true;
159
+ hasDefault: true;
160
+ isPrimaryKey: true;
161
+ isAutoincrement: false;
162
+ hasRuntimeDefault: true;
163
+ enumValues: [string, ...string[]];
164
+ baseColumn: never;
165
+ identity: undefined;
166
+ generated: undefined;
167
+ }, {}, {
168
+ length: number | undefined;
169
+ }>;
170
+ prefix: import("drizzle-orm/sqlite-core").SQLiteColumn<{
171
+ name: "prefix";
172
+ tableName: "_sequences";
173
+ dataType: "string";
174
+ columnType: "SQLiteText";
175
+ data: string;
176
+ driverParam: string;
177
+ notNull: true;
178
+ hasDefault: false;
179
+ isPrimaryKey: false;
180
+ isAutoincrement: false;
181
+ hasRuntimeDefault: false;
182
+ enumValues: [string, ...string[]];
183
+ baseColumn: never;
184
+ identity: undefined;
185
+ generated: undefined;
186
+ }, {}, {
187
+ length: number | undefined;
188
+ }>;
189
+ currentValue: import("drizzle-orm/sqlite-core").SQLiteColumn<{
190
+ name: "current_value";
191
+ tableName: "_sequences";
192
+ dataType: "number";
193
+ columnType: "SQLiteInteger";
194
+ data: number;
195
+ driverParam: number;
196
+ notNull: true;
197
+ hasDefault: true;
198
+ isPrimaryKey: false;
199
+ isAutoincrement: false;
200
+ hasRuntimeDefault: false;
201
+ enumValues: undefined;
202
+ baseColumn: never;
203
+ identity: undefined;
204
+ generated: undefined;
205
+ }, {}, {}>;
206
+ updatedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
207
+ name: "updated_at";
208
+ tableName: "_sequences";
209
+ dataType: "date";
210
+ columnType: "SQLiteTimestamp";
211
+ data: Date;
212
+ driverParam: number;
213
+ notNull: true;
214
+ hasDefault: true;
215
+ isPrimaryKey: false;
216
+ isAutoincrement: false;
217
+ hasRuntimeDefault: true;
218
+ enumValues: undefined;
219
+ baseColumn: never;
220
+ identity: undefined;
221
+ generated: undefined;
222
+ }, {}, {}>;
223
+ };
224
+ dialect: "sqlite";
225
+ }>;
226
+ /**
227
+ * Record audits table for tracking changes to individual records
228
+ * Stores before/after data for data change auditing
229
+ */
230
+ export declare const recordAudits: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
231
+ name: "_record_audits";
232
+ schema: undefined;
233
+ columns: {
234
+ id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
235
+ name: "id";
236
+ tableName: "_record_audits";
237
+ dataType: "string";
238
+ columnType: "SQLiteText";
239
+ data: string;
240
+ driverParam: string;
241
+ notNull: true;
242
+ hasDefault: true;
243
+ isPrimaryKey: true;
244
+ isAutoincrement: false;
245
+ hasRuntimeDefault: true;
246
+ enumValues: [string, ...string[]];
247
+ baseColumn: never;
248
+ identity: undefined;
249
+ generated: undefined;
250
+ }, {}, {
251
+ length: number | undefined;
252
+ }>;
253
+ tableName: import("drizzle-orm/sqlite-core").SQLiteColumn<{
254
+ name: "table_name";
255
+ tableName: "_record_audits";
256
+ dataType: "string";
257
+ columnType: "SQLiteText";
258
+ data: string;
259
+ driverParam: string;
260
+ notNull: true;
261
+ hasDefault: false;
262
+ isPrimaryKey: false;
263
+ isAutoincrement: false;
264
+ hasRuntimeDefault: false;
265
+ enumValues: [string, ...string[]];
266
+ baseColumn: never;
267
+ identity: undefined;
268
+ generated: undefined;
269
+ }, {}, {
270
+ length: number | undefined;
271
+ }>;
272
+ recordId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
273
+ name: "record_id";
274
+ tableName: "_record_audits";
275
+ dataType: "string";
276
+ columnType: "SQLiteText";
277
+ data: string;
278
+ driverParam: string;
279
+ notNull: true;
280
+ hasDefault: false;
281
+ isPrimaryKey: false;
282
+ isAutoincrement: false;
283
+ hasRuntimeDefault: false;
284
+ enumValues: [string, ...string[]];
285
+ baseColumn: never;
286
+ identity: undefined;
287
+ generated: undefined;
288
+ }, {}, {
289
+ length: number | undefined;
290
+ }>;
291
+ oldData: import("drizzle-orm/sqlite-core").SQLiteColumn<{
292
+ name: "old_data";
293
+ tableName: "_record_audits";
294
+ dataType: "string";
295
+ columnType: "SQLiteText";
296
+ data: string;
297
+ driverParam: string;
298
+ notNull: false;
299
+ hasDefault: false;
300
+ isPrimaryKey: false;
301
+ isAutoincrement: false;
302
+ hasRuntimeDefault: false;
303
+ enumValues: [string, ...string[]];
304
+ baseColumn: never;
305
+ identity: undefined;
306
+ generated: undefined;
307
+ }, {}, {
308
+ length: number | undefined;
309
+ }>;
310
+ newData: import("drizzle-orm/sqlite-core").SQLiteColumn<{
311
+ name: "new_data";
312
+ tableName: "_record_audits";
313
+ dataType: "string";
314
+ columnType: "SQLiteText";
315
+ data: string;
316
+ driverParam: string;
317
+ notNull: false;
318
+ hasDefault: false;
319
+ isPrimaryKey: false;
320
+ isAutoincrement: false;
321
+ hasRuntimeDefault: false;
322
+ enumValues: [string, ...string[]];
323
+ baseColumn: never;
324
+ identity: undefined;
325
+ generated: undefined;
326
+ }, {}, {
327
+ length: number | undefined;
328
+ }>;
329
+ changedBy: import("drizzle-orm/sqlite-core").SQLiteColumn<{
330
+ name: "changed_by";
331
+ tableName: "_record_audits";
332
+ dataType: "string";
333
+ columnType: "SQLiteText";
334
+ data: string;
335
+ driverParam: string;
336
+ notNull: false;
337
+ hasDefault: false;
338
+ isPrimaryKey: false;
339
+ isAutoincrement: false;
340
+ hasRuntimeDefault: false;
341
+ enumValues: [string, ...string[]];
342
+ baseColumn: never;
343
+ identity: undefined;
344
+ generated: undefined;
345
+ }, {}, {
346
+ length: number | undefined;
347
+ }>;
348
+ createdAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
349
+ name: "created_at";
350
+ tableName: "_record_audits";
351
+ dataType: "date";
352
+ columnType: "SQLiteTimestamp";
353
+ data: Date;
354
+ driverParam: number;
355
+ notNull: true;
356
+ hasDefault: true;
357
+ isPrimaryKey: false;
358
+ isAutoincrement: false;
359
+ hasRuntimeDefault: true;
360
+ enumValues: undefined;
361
+ baseColumn: never;
362
+ identity: undefined;
363
+ generated: undefined;
364
+ }, {}, {}>;
365
+ };
366
+ dialect: "sqlite";
367
+ }>;
368
+ //# sourceMappingURL=system-schema.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=system-schema.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-schema.test.d.ts","sourceRoot":"","sources":["../../src/db/system-schema.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ import type { Context } from 'hono';
2
+ import type { ContentfulStatusCode } from 'hono/utils/http-status';
3
+ export declare const ERROR_CODES: {
4
+ readonly UNAUTHORIZED: "UNAUTHORIZED";
5
+ readonly FORBIDDEN: "FORBIDDEN";
6
+ readonly NOT_FOUND: "NOT_FOUND";
7
+ readonly VALIDATION: "VALIDATION";
8
+ readonly CONFLICT: "CONFLICT";
9
+ readonly INTERNAL: "INTERNAL";
10
+ readonly DB_BUSY: "DB_BUSY";
11
+ };
12
+ export type ErrorCode = keyof typeof ERROR_CODES;
13
+ export declare class VobaseError extends Error {
14
+ readonly code: ErrorCode;
15
+ readonly statusCode: ContentfulStatusCode;
16
+ readonly details?: object | undefined;
17
+ constructor(message: string, code: ErrorCode, statusCode: ContentfulStatusCode, details?: object | undefined);
18
+ }
19
+ export declare const unauthorized: (message?: string) => VobaseError;
20
+ export declare const forbidden: (message?: string) => VobaseError;
21
+ export declare const notFound: (resource: string) => VobaseError;
22
+ export declare const validation: (details: object, message?: string) => VobaseError;
23
+ export declare const conflict: (resource: string) => VobaseError;
24
+ export declare const dbBusy: () => VobaseError;
25
+ export declare const errorHandler: (err: Error, c: Context) => Response;
26
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,eAAO,MAAM,WAAW;;;;;;;;CAQd,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,WAAW,CAAC;AAEjD,qBAAa,WAAY,SAAQ,KAAK;aAGlB,IAAI,EAAE,SAAS;aACf,UAAU,EAAE,oBAAoB;aAChC,OAAO,CAAC,EAAE,MAAM;gBAHhC,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,SAAS,EACf,UAAU,EAAE,oBAAoB,EAChC,OAAO,CAAC,EAAE,MAAM,YAAA;CAKnC;AAED,eAAO,MAAM,YAAY,GAAI,gBAAwB,gBACN,CAAC;AAEhD,eAAO,MAAM,SAAS,GAAI,gBAAqB,gBACH,CAAC;AAE7C,eAAO,MAAM,QAAQ,GAAI,UAAU,MAAM,gBACmB,CAAC;AAE7D,eAAO,MAAM,UAAU,GAAI,SAAS,MAAM,EAAE,gBAA6B,gBACnB,CAAC;AAEvD,eAAO,MAAM,QAAQ,GAAI,UAAU,MAAM,gBACuB,CAAC;AAEjE,eAAO,MAAM,MAAM,mBAC0C,CAAC;AAE9D,eAAO,MAAM,YAAY,GAAI,KAAK,KAAK,EAAE,GAAG,OAAO,KAAG,QAkBrD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=errors.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.test.d.ts","sourceRoot":"","sources":["../src/errors.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,31 @@
1
+ import { type CircuitBreakerOptions } from './circuit-breaker';
2
+ export interface HttpClientOptions {
3
+ baseUrl?: string;
4
+ timeout?: number;
5
+ retries?: number;
6
+ retryDelay?: number;
7
+ circuitBreaker?: CircuitBreakerOptions;
8
+ }
9
+ export interface RequestOptions {
10
+ method?: string;
11
+ headers?: Record<string, string>;
12
+ body?: unknown;
13
+ timeout?: number;
14
+ retries?: number;
15
+ }
16
+ export interface HttpResponse<T = unknown> {
17
+ ok: boolean;
18
+ status: number;
19
+ headers: Headers;
20
+ data: T;
21
+ raw: Response;
22
+ }
23
+ export interface HttpClient {
24
+ fetch<T = unknown>(url: string, options?: RequestOptions): Promise<HttpResponse<T>>;
25
+ get<T = unknown>(url: string, options?: Omit<RequestOptions, 'method' | 'body'>): Promise<HttpResponse<T>>;
26
+ post<T = unknown>(url: string, body?: unknown, options?: Omit<RequestOptions, 'method' | 'body'>): Promise<HttpResponse<T>>;
27
+ put<T = unknown>(url: string, body?: unknown, options?: Omit<RequestOptions, 'method' | 'body'>): Promise<HttpResponse<T>>;
28
+ delete<T = unknown>(url: string, options?: Omit<RequestOptions, 'method' | 'body'>): Promise<HttpResponse<T>>;
29
+ }
30
+ export declare function createHttpClient(defaults?: HttpClientOptions): HttpClient;
31
+ //# sourceMappingURL=http-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../src/http-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE/E,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,qBAAqB,CAAC;CACxC;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,OAAO;IACvC,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,CAAC,CAAC;IACR,GAAG,EAAE,QAAQ,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,CAAC,GAAG,OAAO,EACf,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,GAAG,CAAC,CAAC,GAAG,OAAO,EACb,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,MAAM,CAAC,GAChD,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,CAAC,CAAC,GAAG,OAAO,EACd,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,MAAM,CAAC,GAChD,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,GAAG,CAAC,CAAC,GAAG,OAAO,EACb,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,MAAM,CAAC,GAChD,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,CAAC,CAAC,GAAG,OAAO,EAChB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,MAAM,CAAC,GAChD,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;CAC7B;AA2CD,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,iBAAiB,GAAG,UAAU,CAgIzE"}
@@ -0,0 +1,22 @@
1
+ export { type CreateAppConfig, createApp } from './app';
2
+ export { type Auth, type CreateAuthOptions, createAuth } from './auth';
3
+ export type { VobaseCtx, VobaseUser } from './ctx';
4
+ export { CircuitBreaker, type CircuitBreakerOptions } from './circuit-breaker';
5
+ export { contextMiddleware, getCtx } from './ctx';
6
+ export { createHttpClient, type HttpClient, type HttpClientOptions, type HttpResponse, type RequestOptions, } from './http-client';
7
+ export { createDatabase, runMigrations, type VobaseDb } from './db';
8
+ export { ensureCoreTables } from './db/ensure-core-tables';
9
+ export { createNanoid, DEFAULT_COLUMNS, NANOID_ALPHABET, NANOID_LENGTH, nanoidPrimaryKey, } from './db/helpers';
10
+ export { conflict, dbBusy, ERROR_CODES, type ErrorCode, errorHandler, forbidden, notFound, unauthorized, VobaseError, validation, } from './errors';
11
+ export type { JobDefinition, JobHandler, WorkerOptions } from './job';
12
+ export { createWorker, defineJob } from './job';
13
+ export { logger } from './logger';
14
+ export { optionalSessionMiddleware, sessionMiddleware, } from './middleware/session';
15
+ export type { DefineModuleConfig, VobaseModule } from './module';
16
+ export { defineModule } from './module';
17
+ export { registerModules } from './module-registry';
18
+ export { createScheduler, type JobOptions, type Scheduler } from './queue';
19
+ export { nextSequence, type SequenceOptions } from './sequence';
20
+ export { createSystemModule, createSystemRoutes, type SystemRoutes } from './system';
21
+ export { type WebhookConfig, verifyHmacSignature, createWebhookRoutes } from './webhooks';
22
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,eAAe,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAExD,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,iBAAiB,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACvE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAElD,OAAO,EACL,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,cAAc,GACpB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,KAAK,QAAQ,EAAE,MAAM,MAAM,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,YAAY,EACZ,eAAe,EACf,eAAe,EACf,aAAa,EACb,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,QAAQ,EACR,MAAM,EACN,WAAW,EACX,KAAK,SAAS,EACd,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,UAAU,GACX,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEtE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EACL,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAEjE,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AAE3E,OAAO,EAAE,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAEhE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AAErF,OAAO,EAAE,KAAK,aAAa,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC"}