lamix 4.2.13 → 4.2.14
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/README.md +4 -16
- package/bin/cli.js +60 -1
- package/lib/index.d.ts +11 -0
- package/lib/index.js +0 -25
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -288,21 +288,9 @@ class User extends BaseModel {
|
|
|
288
288
|
return this.hasMany(Post', 'user_id', 'id').onDelete('cascade');
|
|
289
289
|
}
|
|
290
290
|
|
|
291
|
-
#
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
data TEXT NOT NULL,
|
|
295
|
-
expires BIGINT NOT NULL
|
|
296
|
-
);
|
|
297
|
-
CREATE INDEX idx_sessions_expires ON sessions (expires);
|
|
298
|
-
|
|
299
|
-
# Create sessions Table sqlite sql
|
|
300
|
-
CREATE TABLE sessions (
|
|
301
|
-
sid TEXT PRIMARY KEY,
|
|
302
|
-
data TEXT NOT NULL,
|
|
303
|
-
expires INTEGER NOT NULL
|
|
304
|
-
);
|
|
305
|
-
CREATE INDEX idx_sessions_expires ON sessions (expires);
|
|
291
|
+
# migrate sessions Table(whenever migration is run session is auto generated if missing)
|
|
292
|
+
npx lamix migrate
|
|
293
|
+
➡️ sessions table + index are guaranteed to exist.
|
|
306
294
|
|
|
307
295
|
# Session setup
|
|
308
296
|
const express = require('express');
|
|
@@ -340,4 +328,4 @@ class User extends BaseModel {
|
|
|
340
328
|
});
|
|
341
329
|
|
|
342
330
|
app.listen(3000);
|
|
343
|
-
}
|
|
331
|
+
}
|
package/bin/cli.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
1
|
+
#!/usr/bin/env node
|
|
2
2
|
|
|
3
3
|
const fs = require('fs');
|
|
4
4
|
const path = require('path');
|
|
@@ -274,6 +274,8 @@ async function runMigrations() {
|
|
|
274
274
|
DB.initFromEnv();
|
|
275
275
|
await DB.connect();
|
|
276
276
|
|
|
277
|
+
await ensureSessionsTable();
|
|
278
|
+
|
|
277
279
|
const applied = await getAppliedMigrations();
|
|
278
280
|
const files = fs.readdirSync(MIGRATIONS_DIR)
|
|
279
281
|
.filter(f => f.endsWith('.js'))
|
|
@@ -348,6 +350,63 @@ async function tableExists(tableName) {
|
|
|
348
350
|
return false;
|
|
349
351
|
}
|
|
350
352
|
|
|
353
|
+
// ------------------ SESSION hELPER ------------------
|
|
354
|
+
|
|
355
|
+
async function ensureSessionsTable() {
|
|
356
|
+
const exists = await tableExists('sessions');
|
|
357
|
+
if (exists) {
|
|
358
|
+
log.info('ℹ️ sessions table already exists. Skipping.');
|
|
359
|
+
return;
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
log.info('⚙️ Creating sessions table...');
|
|
363
|
+
|
|
364
|
+
if (DB.driver === 'mysql') {
|
|
365
|
+
await DB.raw(`
|
|
366
|
+
CREATE TABLE sessions (
|
|
367
|
+
sid VARCHAR(255) PRIMARY KEY,
|
|
368
|
+
data TEXT NOT NULL,
|
|
369
|
+
expires BIGINT NOT NULL
|
|
370
|
+
)
|
|
371
|
+
`);
|
|
372
|
+
|
|
373
|
+
await DB.raw(`
|
|
374
|
+
CREATE INDEX idx_sessions_expires ON sessions (expires)
|
|
375
|
+
`);
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
if (DB.driver === 'sqlite') {
|
|
379
|
+
await DB.raw(`
|
|
380
|
+
CREATE TABLE sessions (
|
|
381
|
+
sid TEXT PRIMARY KEY,
|
|
382
|
+
data TEXT NOT NULL,
|
|
383
|
+
expires INTEGER NOT NULL
|
|
384
|
+
)
|
|
385
|
+
`);
|
|
386
|
+
|
|
387
|
+
await DB.raw(`
|
|
388
|
+
CREATE INDEX idx_sessions_expires ON sessions (expires)
|
|
389
|
+
`);
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
if (DB.driver === 'pg') {
|
|
393
|
+
await DB.raw(`
|
|
394
|
+
CREATE TABLE sessions (
|
|
395
|
+
sid VARCHAR(255) PRIMARY KEY,
|
|
396
|
+
data TEXT NOT NULL,
|
|
397
|
+
expires BIGINT NOT NULL
|
|
398
|
+
)
|
|
399
|
+
`);
|
|
400
|
+
|
|
401
|
+
await DB.raw(`
|
|
402
|
+
CREATE INDEX idx_sessions_expires ON sessions (expires)
|
|
403
|
+
`);
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
log.success('✅ sessions table created successfully.');
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
|
|
351
410
|
|
|
352
411
|
async function rollbackLastMigration() {
|
|
353
412
|
DB.initFromEnv();
|
package/lib/index.d.ts
CHANGED
|
@@ -488,6 +488,17 @@ export class DBError extends Error {
|
|
|
488
488
|
constructor(message: any, meta?: {});
|
|
489
489
|
meta: {};
|
|
490
490
|
}
|
|
491
|
+
export class LamixSessionStore {
|
|
492
|
+
constructor(options?: {});
|
|
493
|
+
ttl: any;
|
|
494
|
+
cleanupInterval: any;
|
|
495
|
+
get(sid: any, cb: any): Promise<any>;
|
|
496
|
+
set(sid: any, sessionData: any, cb: any): Promise<void>;
|
|
497
|
+
destroy(sid: any, cb: any): Promise<void>;
|
|
498
|
+
touch(sid: any, sessionData: any, cb: any): Promise<any>;
|
|
499
|
+
_startCleanup(): void;
|
|
500
|
+
_cleanupTimer: NodeJS.Timeout;
|
|
501
|
+
}
|
|
491
502
|
export class BaseModel extends Model {
|
|
492
503
|
static passwordField: string;
|
|
493
504
|
static hashRounds: number;
|
package/lib/index.js
CHANGED
|
@@ -135,31 +135,6 @@ class DB {
|
|
|
135
135
|
}
|
|
136
136
|
|
|
137
137
|
/* ---------- Driver ---------- */
|
|
138
|
-
|
|
139
|
-
// static _ensureModule() {
|
|
140
|
-
// if (!this.driver) this.initFromEnv();
|
|
141
|
-
|
|
142
|
-
// if (this.driver === 'mysql') {
|
|
143
|
-
// const m = tryRequire('mysql2/promise');
|
|
144
|
-
// if (!m) throw new DBError('Missing mysql2');
|
|
145
|
-
// return m;
|
|
146
|
-
// }
|
|
147
|
-
|
|
148
|
-
// if (this.driver === 'pg') {
|
|
149
|
-
// const m = tryRequire('pg');
|
|
150
|
-
// if (!m) throw new DBError('Missing pg');
|
|
151
|
-
// return m;
|
|
152
|
-
// }
|
|
153
|
-
|
|
154
|
-
// if (this.driver === 'sqlite') {
|
|
155
|
-
// const m = tryRequire('sqlite3');
|
|
156
|
-
// if (!m) throw new DBError('Missing sqlite3');
|
|
157
|
-
// return m;
|
|
158
|
-
// }
|
|
159
|
-
|
|
160
|
-
// throw new DBError(`Unsupported driver: ${this.driver}`);
|
|
161
|
-
// }
|
|
162
|
-
|
|
163
138
|
static _ensureModule() {
|
|
164
139
|
if (!this.driver) this.initFromEnv();
|
|
165
140
|
|
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lamix",
|
|
3
|
-
"version": "4.2.
|
|
3
|
+
"version": "4.2.14",
|
|
4
4
|
"description": "lamix - ORM for Node-express js",
|
|
5
5
|
"main": "./lib",
|
|
6
|
+
"type": "commonjs",
|
|
6
7
|
"exports": {
|
|
7
8
|
".": {
|
|
8
9
|
"require": "./lib/index.js",
|
|
@@ -39,6 +40,7 @@
|
|
|
39
40
|
"orm",
|
|
40
41
|
"nodejs",
|
|
41
42
|
"database",
|
|
43
|
+
"express",
|
|
42
44
|
"sql"
|
|
43
45
|
],
|
|
44
46
|
"author": {
|