@siriux/core 1.0.0 → 1.0.1

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.
@@ -0,0 +1,335 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDatabaseConfig = exports.MockDatabaseFactory = exports.DatabaseType = void 0;
4
+ // Mock Database Factory - Support multiple database types
5
+ var DatabaseType;
6
+ (function (DatabaseType) {
7
+ DatabaseType["IN_MEMORY"] = "in-memory";
8
+ DatabaseType["SQLITE"] = "sqlite";
9
+ DatabaseType["SNOWFLAKE_MOCK"] = "snowflake-mock";
10
+ DatabaseType["SNOWFLAKE_REAL"] = "snowflake-real";
11
+ })(DatabaseType || (exports.DatabaseType = DatabaseType = {}));
12
+ // In-memory implementation (existing)
13
+ const inMemoryMockDatabase_1 = require("./inMemoryMockDatabase");
14
+ // SQLite implementation (placeholder for future)
15
+ class SQLiteMockDatabase {
16
+ constructor() {
17
+ this.db = null;
18
+ this.initialized = false;
19
+ }
20
+ async initialize() {
21
+ console.log('🗄️ Initializing SQLite mock database...');
22
+ // Future: Use actual SQLite with better-sqlite3
23
+ // For now, fall back to in-memory
24
+ this.initialized = true;
25
+ }
26
+ async getUserByEmail(email) {
27
+ // Placeholder implementation
28
+ return null;
29
+ }
30
+ async getUserById(id) {
31
+ // Placeholder implementation
32
+ return null;
33
+ }
34
+ async createUser(userData) {
35
+ // Placeholder implementation
36
+ return null;
37
+ }
38
+ async createSession(data) {
39
+ // Placeholder implementation
40
+ return null;
41
+ }
42
+ async getSessionByToken(token) {
43
+ // Placeholder implementation
44
+ return null;
45
+ }
46
+ async deleteSession(token) {
47
+ // Placeholder implementation
48
+ }
49
+ async logAudit(entry) {
50
+ // Placeholder implementation
51
+ }
52
+ async getStats() {
53
+ return {
54
+ totalUsers: 0,
55
+ totalSessions: 0,
56
+ totalAuditLogs: 0,
57
+ usersByRole: {},
58
+ databaseType: 'sqlite'
59
+ };
60
+ }
61
+ async getAuditLogs(userId) {
62
+ return [];
63
+ }
64
+ async reset() {
65
+ this.initialized = false;
66
+ await this.initialize();
67
+ }
68
+ async close() {
69
+ this.db = null;
70
+ this.initialized = false;
71
+ }
72
+ async healthCheck() {
73
+ return {
74
+ status: 'healthy',
75
+ databaseType: 'sqlite',
76
+ timestamp: new Date().toISOString()
77
+ };
78
+ }
79
+ }
80
+ // Snowflake mock implementation (existing)
81
+ class SnowflakeMockDatabase {
82
+ constructor() {
83
+ this.connection = null;
84
+ this.initialized = false;
85
+ }
86
+ async initialize() {
87
+ console.log('❄️ Initializing Snowflake mock database...');
88
+ // Simulate Snowflake connection
89
+ this.connection = {
90
+ execute: async (query) => {
91
+ console.log(`🔍 Snowflake Query: ${query}`);
92
+ return {
93
+ rows: [],
94
+ rowCount: 0
95
+ };
96
+ }
97
+ };
98
+ this.initialized = true;
99
+ }
100
+ async getUserByEmail(email) {
101
+ const query = `SELECT * FROM USERS WHERE EMAIL = '${email}'`;
102
+ const result = await this.connection.execute(query);
103
+ // Mock Snowflake user data
104
+ if (email === 'admin@siriux.dev') {
105
+ return {
106
+ ID: '1',
107
+ EMAIL: 'admin@siriux.dev',
108
+ PASSWORD: 'admin123',
109
+ FIRST_NAME: 'Admin',
110
+ LAST_NAME: 'User',
111
+ ROLE: 'admin',
112
+ CREATED_AT: new Date().toISOString(),
113
+ UPDATED_AT: new Date().toISOString()
114
+ };
115
+ }
116
+ if (email === 'user@siriux.dev') {
117
+ return {
118
+ ID: '2',
119
+ EMAIL: 'user@siriux.dev',
120
+ PASSWORD: 'user123',
121
+ FIRST_NAME: 'Demo',
122
+ LAST_NAME: 'User',
123
+ ROLE: 'user',
124
+ CREATED_AT: new Date().toISOString(),
125
+ UPDATED_AT: new Date().toISOString()
126
+ };
127
+ }
128
+ return null;
129
+ }
130
+ async getUserById(id) {
131
+ const query = `SELECT * FROM USERS WHERE ID = '${id}'`;
132
+ await this.connection.execute(query);
133
+ // Mock data based on ID
134
+ if (id === '1')
135
+ return this.getUserByEmail('admin@siriux.dev');
136
+ if (id === '2')
137
+ return this.getUserByEmail('user@siriux.dev');
138
+ if (id === '3')
139
+ return this.getUserByEmail('manager@siriux.dev');
140
+ return null;
141
+ }
142
+ async createUser(userData) {
143
+ const query = `INSERT INTO USERS (EMAIL, PASSWORD, FIRST_NAME, LAST_NAME, ROLE) VALUES ('${userData.email}', '${userData.password}', '${userData.firstName}', '${userData.lastName}', '${userData.role}')`;
144
+ await this.connection.execute(query);
145
+ return {
146
+ ID: Date.now().toString(),
147
+ ...userData,
148
+ CREATED_AT: new Date().toISOString(),
149
+ UPDATED_AT: new Date().toISOString()
150
+ };
151
+ }
152
+ async createSession(data) {
153
+ const query = `INSERT INTO SESSIONS (USER_ID, ACCESS_TOKEN, REFRESH_TOKEN, EXPIRES_AT) VALUES ('${data.userId}', '${data.accessToken}', '${data.refreshToken}', '${data.expiresAt}')`;
154
+ await this.connection.execute(query);
155
+ return {
156
+ ID: Date.now().toString(),
157
+ ...data,
158
+ CREATED_AT: new Date().toISOString()
159
+ };
160
+ }
161
+ async getSessionByToken(token) {
162
+ const query = `SELECT * FROM SESSIONS WHERE ACCESS_TOKEN = '${token}' AND EXPIRES_AT > CURRENT_TIMESTAMP()`;
163
+ const result = await this.connection.execute(query);
164
+ // Mock session data
165
+ return {
166
+ ID: 'session_1',
167
+ USER_ID: '1',
168
+ ACCESS_TOKEN: token,
169
+ REFRESH_TOKEN: 'refresh_token',
170
+ EXPIRES_AT: new Date(Date.now() + 24 * 60 * 60 * 1000).toISOString(),
171
+ CREATED_AT: new Date().toISOString()
172
+ };
173
+ }
174
+ async deleteSession(token) {
175
+ const query = `DELETE FROM SESSIONS WHERE ACCESS_TOKEN = '${token}'`;
176
+ await this.connection.execute(query);
177
+ }
178
+ async logAudit(entry) {
179
+ const query = `INSERT INTO AUDIT_LOGS (USER_ID, ACTION, RESOURCE, METADATA, TIMESTAMP) VALUES ('${entry.userId || 'NULL'}', '${entry.action}', '${entry.resource}', '${entry.metadata || 'NULL'}', CURRENT_TIMESTAMP())`;
180
+ await this.connection.execute(query);
181
+ }
182
+ async getStats() {
183
+ const query = 'SELECT COUNT(*) AS TOTAL_USERS FROM USERS';
184
+ await this.connection.execute(query);
185
+ return {
186
+ totalUsers: 3,
187
+ totalSessions: 2,
188
+ totalAuditLogs: 15,
189
+ usersByRole: {
190
+ admin: 1,
191
+ user: 1,
192
+ manager: 1
193
+ },
194
+ databaseType: 'snowflake',
195
+ warehouse: 'DEMO_WAREHOUSE',
196
+ schema: 'SIRIUX_DEMO'
197
+ };
198
+ }
199
+ async getAuditLogs(userId) {
200
+ const whereClause = userId ? `WHERE USER_ID = '${userId}'` : '';
201
+ const query = `SELECT * FROM AUDIT_LOGS ${whereClause} ORDER BY TIMESTAMP DESC LIMIT 50`;
202
+ await this.connection.execute(query);
203
+ // Mock audit logs
204
+ return [
205
+ {
206
+ ID: '1',
207
+ USER_ID: '1',
208
+ ACTION: 'LOGIN_SUCCESS',
209
+ RESOURCE: 'auth',
210
+ METADATA: '{}',
211
+ TIMESTAMP: new Date().toISOString()
212
+ },
213
+ {
214
+ ID: '2',
215
+ USER_ID: '2',
216
+ ACTION: 'LOGIN_FAILED',
217
+ RESOURCE: 'auth',
218
+ METADATA: '{"reason": "invalid_password"}',
219
+ TIMESTAMP: new Date(Date.now() - 60000).toISOString()
220
+ }
221
+ ];
222
+ }
223
+ async reset() {
224
+ console.log('🔄 Resetting Snowflake mock database...');
225
+ await this.initialize();
226
+ }
227
+ async close() {
228
+ this.connection = null;
229
+ this.initialized = false;
230
+ console.log('❄️ Snowflake mock database closed');
231
+ }
232
+ async healthCheck() {
233
+ return {
234
+ status: 'healthy',
235
+ databaseType: 'snowflake',
236
+ warehouse: 'DEMO_WAREHOUSE',
237
+ schema: 'SIRIUX_DEMO',
238
+ timestamp: new Date().toISOString(),
239
+ connectionState: 'connected'
240
+ };
241
+ }
242
+ }
243
+ // Real Snowflake implementation
244
+ const snowflakeDatabase_1 = require("../databases/snowflakeDatabase");
245
+ // Factory function
246
+ class MockDatabaseFactory {
247
+ static async create(config) {
248
+ console.log(`🏭 Creating database: ${config.type}`);
249
+ switch (config.type) {
250
+ case DatabaseType.IN_MEMORY:
251
+ return new inMemoryMockDatabase_1.InMemoryMockDatabase();
252
+ case DatabaseType.SQLITE:
253
+ return new SQLiteMockDatabase();
254
+ case DatabaseType.SNOWFLAKE_MOCK:
255
+ return new SnowflakeMockDatabase();
256
+ case DatabaseType.SNOWFLAKE_REAL:
257
+ try {
258
+ const snowflakeConfig = (0, snowflakeDatabase_1.getSnowflakeConfig)();
259
+ return new snowflakeDatabase_1.SnowflakeDatabase(snowflakeConfig);
260
+ }
261
+ catch (error) {
262
+ console.warn('⚠️ Snowflake config not found, falling back to mock:', error.message);
263
+ return new SnowflakeMockDatabase();
264
+ }
265
+ default:
266
+ throw new Error(`Unsupported database type: ${config.type}`);
267
+ }
268
+ }
269
+ static async createWithAutoDetection() {
270
+ // Auto-detect based on environment (defaults to real Snowflake)
271
+ const dbType = process.env.MOCK_DB_TYPE || DatabaseType.SNOWFLAKE_REAL;
272
+ return this.create({
273
+ type: dbType,
274
+ connectionString: process.env.MOCK_DB_CONNECTION_STRING,
275
+ options: {
276
+ warehouse: process.env.SNOWFLAKE_WAREHOUSE,
277
+ schema: process.env.SNOWFLAKE_SCHEMA
278
+ }
279
+ });
280
+ }
281
+ static getSupportedTypes() {
282
+ return [
283
+ DatabaseType.IN_MEMORY,
284
+ DatabaseType.SQLITE,
285
+ DatabaseType.SNOWFLAKE_MOCK,
286
+ DatabaseType.SNOWFLAKE_REAL
287
+ ];
288
+ }
289
+ static getDatabaseInfo(type) {
290
+ const databaseInfo = {
291
+ [DatabaseType.IN_MEMORY]: {
292
+ name: 'In-Memory',
293
+ description: 'Fast, zero-dependency in-memory database',
294
+ features: ['Zero setup', 'Fastest performance', 'No external deps', 'Auto-reset'],
295
+ useCase: 'Development, testing, demos'
296
+ },
297
+ [DatabaseType.SQLITE]: {
298
+ name: 'SQLite',
299
+ description: 'File-based SQL database with persistence',
300
+ features: ['Persistent storage', 'Real SQL queries', 'ACID compliance', 'Portable'],
301
+ useCase: 'Local development, small applications'
302
+ },
303
+ [DatabaseType.SNOWFLAKE_MOCK]: {
304
+ name: 'Snowflake (Mock)',
305
+ description: 'Simulated Snowflake for enterprise demos',
306
+ features: ['Cloud-native mock', 'Enterprise features', 'Data warehousing', 'Zero setup'],
307
+ useCase: 'Enterprise demos, training, sales'
308
+ },
309
+ [DatabaseType.SNOWFLAKE_REAL]: {
310
+ name: 'Snowflake (Real)',
311
+ description: 'Real Snowflake data warehouse connection',
312
+ features: ['Real Snowflake connection', 'Production queries', 'Enterprise features', 'Analytics'],
313
+ useCase: 'Production applications, enterprise deployments',
314
+ requiresConfig: true
315
+ }
316
+ };
317
+ return databaseInfo[type];
318
+ }
319
+ }
320
+ exports.MockDatabaseFactory = MockDatabaseFactory;
321
+ // Environment-based configuration
322
+ const getDatabaseConfig = () => {
323
+ const type = (process.env.MOCK_DB_TYPE || DatabaseType.IN_MEMORY);
324
+ return {
325
+ type,
326
+ connectionString: process.env.MOCK_DB_CONNECTION_STRING,
327
+ options: {
328
+ warehouse: process.env.SNOWFLAKE_WAREHOUSE,
329
+ schema: process.env.SNOWFLAKE_SCHEMA,
330
+ database: process.env.SNOWFLAKE_DATABASE
331
+ }
332
+ };
333
+ };
334
+ exports.getDatabaseConfig = getDatabaseConfig;
335
+ //# sourceMappingURL=mockDatabaseFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mockDatabaseFactory.js","sourceRoot":"","sources":["../../src/mock/mockDatabaseFactory.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  export declare enum UserRole {
2
2
  USER = "user",
3
- ADMIN = "admin"
3
+ ADMIN = "admin",
4
+ MANAGER = "manager"
4
5
  }
5
6
  export interface JwtPayload {
6
7
  userId: string;
@@ -43,22 +44,79 @@ export interface DatabaseConfig {
43
44
  connection: string;
44
45
  options?: Record<string, any>;
45
46
  }
46
- export interface SiriuxConfig {
47
+ export interface BaseSiriuxConfig {
47
48
  jwtSecret: string;
48
49
  jwtRefreshSecret: string;
49
50
  database: DatabaseConfig;
50
- email?: {
51
- host: string;
52
- port: number;
53
- user: string;
54
- password: string;
55
- from: string;
56
- };
57
- features?: {
58
- mfa?: boolean;
59
- sso?: boolean;
60
- rbac?: boolean;
61
- emailVerification?: boolean;
51
+ }
52
+ export interface EmailConfig {
53
+ host: string;
54
+ port: number;
55
+ user: string;
56
+ password: string;
57
+ from: string;
58
+ }
59
+ export interface FeatureFlags {
60
+ mfa?: boolean;
61
+ sso?: boolean;
62
+ rbac?: boolean;
63
+ emailVerification?: boolean;
64
+ auditLogging?: boolean;
65
+ analytics?: boolean;
66
+ }
67
+ export interface SiriuxConfig extends BaseSiriuxConfig {
68
+ email?: EmailConfig;
69
+ features?: FeatureFlags;
70
+ }
71
+ export interface SiriuxError {
72
+ code: string;
73
+ message: string;
74
+ statusCode?: number;
75
+ details?: Record<string, any>;
76
+ }
77
+ export interface ApiResponse<T = any> {
78
+ success: boolean;
79
+ data?: T;
80
+ error?: SiriuxError;
81
+ meta?: {
82
+ pagination?: {
83
+ page: number;
84
+ limit: number;
85
+ total: number;
86
+ };
87
+ timestamp: string;
62
88
  };
63
89
  }
90
+ export interface LifecycleHooks {
91
+ beforeAuth?: (credentials: LoginCredentials) => Promise<void>;
92
+ afterAuth?: (user: AuthenticatedUser) => Promise<void>;
93
+ beforeLogout?: (user: AuthenticatedUser) => Promise<void>;
94
+ afterLogout?: (userId: string) => Promise<void>;
95
+ }
96
+ export interface ServiceContainer {
97
+ get<T>(key: string): T;
98
+ register<T>(key: string, factory: () => T): void;
99
+ }
100
+ export interface EventBus {
101
+ emit<T>(event: string, data: T): void;
102
+ on<T>(event: string, handler: (data: T) => void): void;
103
+ off<T>(event: string, handler: (data: T) => void): void;
104
+ }
105
+ export interface Logger {
106
+ debug(message: string, meta?: Record<string, any>): void;
107
+ info(message: string, meta?: Record<string, any>): void;
108
+ warn(message: string, meta?: Record<string, any>): void;
109
+ error(message: string, error?: Error, meta?: Record<string, any>): void;
110
+ }
111
+ export interface Plugin {
112
+ name: string;
113
+ version: string;
114
+ initialize(container: ServiceContainer): Promise<void>;
115
+ destroy(): Promise<void>;
116
+ }
117
+ export interface PluginManager {
118
+ load(plugin: Plugin): Promise<void>;
119
+ unload(pluginName: string): Promise<void>;
120
+ getLoadedPlugins(): string[];
121
+ }
64
122
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,IAAI,SAAS;IACb,KAAK,UAAU;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,GAAG,YAAY,GAAG,OAAO,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,cAAc,CAAC;IACzB,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,GAAG,CAAC,EAAE,OAAO,CAAC;QACd,GAAG,CAAC,EAAE,OAAO,CAAC;QACd,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,iBAAiB,CAAC,EAAE,OAAO,CAAC;KAC7B,CAAC;CACH"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,12 @@
1
1
  "use strict";
2
+ // Core Siriux contracts and interfaces
3
+ // This is the stable center that all other packages depend on
2
4
  Object.defineProperty(exports, "__esModule", { value: true });
3
5
  exports.UserRole = void 0;
4
6
  var UserRole;
5
7
  (function (UserRole) {
6
8
  UserRole["USER"] = "user";
7
9
  UserRole["ADMIN"] = "admin";
10
+ UserRole["MANAGER"] = "manager"; // Extended role for future use
8
11
  })(UserRole || (exports.UserRole = UserRole = {}));
9
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;AAAA,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,yBAAa,CAAA;IACb,2BAAe,CAAA;AACjB,CAAC,EAHW,QAAQ,wBAAR,QAAQ,QAGnB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,8DAA8D;;;AAE9D,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,yBAAa,CAAA;IACb,2BAAe,CAAA;IACf,+BAAmB,CAAA,CAAC,+BAA+B;AACrD,CAAC,EAJW,QAAQ,wBAAR,QAAQ,QAInB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@siriux/core",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Siriux Core - Authentication, Database, and API utilities",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -22,30 +22,36 @@
22
22
  "author": "jawwad@alsirius.co.uk",
23
23
  "license": "MIT",
24
24
  "dependencies": {
25
- "express": "^4.18.2",
26
- "jsonwebtoken": "^9.0.2",
25
+ "@types/snowflake-sdk": "^1.6.24",
27
26
  "bcryptjs": "^2.4.3",
28
- "joi": "^17.11.0",
29
27
  "cors": "^2.8.5",
30
28
  "dotenv": "^16.3.1",
29
+ "express": "^4.18.2",
30
+ "joi": "^17.11.0",
31
+ "jsonwebtoken": "^9.0.2",
32
+ "snowflake-sdk": "^2.3.6",
31
33
  "uuid": "^9.0.1",
32
34
  "winston": "^3.11.0"
33
35
  },
34
36
  "devDependencies": {
35
- "@types/node": "^20.10.5",
36
- "@types/express": "^4.17.21",
37
- "@types/jsonwebtoken": "^9.0.5",
38
37
  "@types/bcryptjs": "^2.4.6",
39
38
  "@types/cors": "^2.8.17",
39
+ "@types/express": "^4.17.21",
40
+ "@types/jest": "^29.5.8",
41
+ "@types/jsonwebtoken": "^9.0.5",
42
+ "@types/node": "^20.10.5",
43
+ "@types/sqlite3": "^3.1.11",
40
44
  "@types/uuid": "^9.0.7",
41
- "typescript": "^5.3.3",
42
45
  "jest": "^29.7.0",
43
- "@types/jest": "^29.5.8"
46
+ "sqlite": "^5.1.1",
47
+ "sqlite3": "^6.0.1",
48
+ "typescript": "^5.3.3"
44
49
  },
45
50
  "files": [
46
51
  "dist/**/*"
47
52
  ],
48
53
  "publishConfig": {
49
54
  "access": "public"
50
- }
55
+ },
56
+ "gitHead": "7a9592f8e9ed3f1301046046e1e05811cecc24be"
51
57
  }