lmcs-db 1.0.0 → 1.0.2
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 +6 -6
- package/dist/LmcsDB.d.ts +1 -0
- package/dist/LmcsDB.js +24 -3
- package/dist/LmcsDB.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces.d.ts +8 -0
- package/dist/interfaces.js.map +1 -1
- package/dist/storage/BinaryStorage.d.ts +2 -1
- package/dist/storage/BinaryStorage.js +15 -5
- package/dist/storage/BinaryStorage.js.map +1 -1
- package/dist/storage/JsonStorage.d.ts +1 -1
- package/dist/storage/JsonStorage.js +3 -2
- package/dist/storage/JsonStorage.js.map +1 -1
- package/package.json +5 -1
package/README.md
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
**Lightweight Modular Collection Storage (LMCS)** — um micro SGBD baseado em arquivos locais, com suporte a coleções tipadas, filtros avançados e criptografia opcional.
|
|
4
4
|
|
|
5
5
|

|
|
6
|
-

|
|
7
6
|
|
|
8
7
|
---
|
|
9
8
|
|
|
@@ -18,16 +17,13 @@
|
|
|
18
17
|
|
|
19
18
|
---
|
|
20
19
|
|
|
21
|
-
## 📦 Instalação
|
|
22
20
|
|
|
23
21
|
```bash
|
|
24
22
|
npm install lmcs-db
|
|
25
23
|
# ou
|
|
26
24
|
yarn add lmcs-db
|
|
25
|
+
|
|
27
26
|
🚀 Exemplo de uso
|
|
28
|
-
ts
|
|
29
|
-
Copiar
|
|
30
|
-
Editar
|
|
31
27
|
import DatabaseFactory from 'lmcs-db';
|
|
32
28
|
|
|
33
29
|
interface User {
|
|
@@ -80,12 +76,16 @@ Obtém uma coleção tipada com suporte a:
|
|
|
80
76
|
|
|
81
77
|
### insert
|
|
82
78
|
|
|
79
|
+
### find
|
|
80
|
+
|
|
83
81
|
### findAll
|
|
84
82
|
|
|
85
83
|
### update
|
|
86
84
|
|
|
87
85
|
### delete
|
|
88
86
|
|
|
87
|
+
### count
|
|
88
|
+
|
|
89
89
|
entre outros métodos utilitários
|
|
90
90
|
|
|
91
91
|
📂 Estrutura esperada
|
|
@@ -103,4 +103,4 @@ Para executar os testes de demonstração:
|
|
|
103
103
|
MIT
|
|
104
104
|
|
|
105
105
|
✍️ Autor
|
|
106
|
-
Desenvolvido por Leandro da Silva.
|
|
106
|
+
Desenvolvido por Leandro A da Silva.
|
package/dist/LmcsDB.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ declare class LmcsDB {
|
|
|
13
13
|
findAll: (options?: FindOptions<T>) => Promise<T[]>;
|
|
14
14
|
update: (id: string, update: Partial<T>) => Promise<T | null>;
|
|
15
15
|
delete: (id: string) => Promise<boolean>;
|
|
16
|
+
count: (options?: FindOptions<T>) => Promise<number>;
|
|
16
17
|
};
|
|
17
18
|
}
|
|
18
19
|
export default LmcsDB;
|
package/dist/LmcsDB.js
CHANGED
|
@@ -18,10 +18,10 @@ class LmcsDB {
|
|
|
18
18
|
this.storage = new InMemoryStorage_1.default();
|
|
19
19
|
break;
|
|
20
20
|
case 'json':
|
|
21
|
-
this.storage = new JsonStorage_1.default(config.databaseName || 'default');
|
|
21
|
+
this.storage = new JsonStorage_1.default(config.databaseName || 'default', config.customPath);
|
|
22
22
|
break;
|
|
23
23
|
case 'binary':
|
|
24
|
-
this.storage = new BinaryStorage_1.default(config.databaseName || 'default');
|
|
24
|
+
this.storage = new BinaryStorage_1.default(config.databaseName || 'default', config.customPath);
|
|
25
25
|
break;
|
|
26
26
|
default:
|
|
27
27
|
throw new Error('Invalid storage type');
|
|
@@ -34,7 +34,7 @@ class LmcsDB {
|
|
|
34
34
|
async initialize() {
|
|
35
35
|
let rawData = await this.storage.load();
|
|
36
36
|
// Decriptografar dados se necessário
|
|
37
|
-
if (this.encryptionService && rawData && rawData.trim() !== '') {
|
|
37
|
+
if (this.encryptionService && rawData && rawData.trim() !== '' && rawData !== '{}') {
|
|
38
38
|
try {
|
|
39
39
|
rawData = this.encryptionService.decrypt(rawData);
|
|
40
40
|
}
|
|
@@ -104,6 +104,20 @@ class LmcsDB {
|
|
|
104
104
|
return false;
|
|
105
105
|
if (operators.$in !== undefined && !operators.$in.includes(doc[key]))
|
|
106
106
|
return false;
|
|
107
|
+
if (operators.$nin !== undefined && operators.$nin.includes(doc[key]))
|
|
108
|
+
return false;
|
|
109
|
+
if (operators.$contains !== undefined && !doc[key].includes(operators.$contains))
|
|
110
|
+
return false;
|
|
111
|
+
if (operators.$regex !== undefined && !new RegExp(operators.$regex).test(doc[key]))
|
|
112
|
+
return false;
|
|
113
|
+
if (operators.$exists !== undefined && doc[key] === undefined)
|
|
114
|
+
return false;
|
|
115
|
+
if (operators.$startsWith !== undefined && !doc[key].startsWith(operators.$startsWith))
|
|
116
|
+
return false;
|
|
117
|
+
if (operators.$endsWith !== undefined && !doc[key].endsWith(operators.$endsWith))
|
|
118
|
+
return false;
|
|
119
|
+
if (operators.$between !== undefined && (doc[key] < operators.$between[0] || doc[key] > operators.$between[1]))
|
|
120
|
+
return false;
|
|
107
121
|
return true;
|
|
108
122
|
}
|
|
109
123
|
return doc[key] === value;
|
|
@@ -153,6 +167,13 @@ class LmcsDB {
|
|
|
153
167
|
}
|
|
154
168
|
await this.save();
|
|
155
169
|
return true;
|
|
170
|
+
},
|
|
171
|
+
count: async (options) => {
|
|
172
|
+
if (options) {
|
|
173
|
+
return (await this.collection(name).findAll(options)).length;
|
|
174
|
+
}
|
|
175
|
+
const collection = this.schema.collections[name];
|
|
176
|
+
return collection ? Object.keys(collection.documents).length : 0;
|
|
156
177
|
}
|
|
157
178
|
};
|
|
158
179
|
}
|
package/dist/LmcsDB.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LmcsDB.js","sourceRoot":"","sources":["../src/LmcsDB.ts"],"names":[],"mappings":";;;;;AAAA,+BAAoC;AACpC,4EAAoD;AACpD,gFAAwD;AACxD,wEAAgD;AAChD,4EAAoD;AAGpD,MAAM,MAAM;IAMV,YAAY,MAAsB;QAJ1B,WAAM,GAAmB,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;QAKnD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,2BAA2B;QAC3B,QAAQ,MAAM,CAAC,WAAW,EAAE,CAAC;YAC3B,KAAK,QAAQ;gBACX,IAAI,CAAC,OAAO,GAAG,IAAI,yBAAe,EAAE,CAAC;gBACrC,MAAM;YACR,KAAK,MAAM;gBACT,IAAI,CAAC,OAAO,GAAG,IAAI,qBAAW,CAAC,MAAM,CAAC,YAAY,IAAI,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"LmcsDB.js","sourceRoot":"","sources":["../src/LmcsDB.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,2 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.DatabaseStorageType = exports.DatabaseFactory = void 0;
|
|
7
|
+
var DatabaseFactory_1 = require("./DatabaseFactory");
|
|
8
|
+
Object.defineProperty(exports, "DatabaseFactory", { enumerable: true, get: function () { return __importDefault(DatabaseFactory_1).default; } });
|
|
9
|
+
var interfaces_1 = require("./interfaces");
|
|
10
|
+
Object.defineProperty(exports, "DatabaseStorageType", { enumerable: true, get: function () { return interfaces_1.DatabaseStorageType; } });
|
|
2
11
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,qDAA+D;AAAtD,mIAAA,OAAO,OAAmB;AACnC,2CAAmD;AAA1C,iHAAA,mBAAmB,OAAA"}
|
package/dist/interfaces.d.ts
CHANGED
|
@@ -23,6 +23,13 @@ interface FindOptions<T> {
|
|
|
23
23
|
$gt?: T[key];
|
|
24
24
|
$lt?: T[key];
|
|
25
25
|
$in?: T[key][];
|
|
26
|
+
$nin?: T[key][];
|
|
27
|
+
$contains?: T[key];
|
|
28
|
+
$regex?: RegExp;
|
|
29
|
+
$exists?: boolean;
|
|
30
|
+
$startsWith?: string;
|
|
31
|
+
$endsWith?: string;
|
|
32
|
+
$between?: [T[key], T[key]];
|
|
26
33
|
};
|
|
27
34
|
};
|
|
28
35
|
limit?: number;
|
|
@@ -34,6 +41,7 @@ interface DatabaseConfig {
|
|
|
34
41
|
encryptionKey?: string;
|
|
35
42
|
storageType: 'memory' | 'json' | 'binary';
|
|
36
43
|
databaseName?: string;
|
|
44
|
+
customPath?: string;
|
|
37
45
|
}
|
|
38
46
|
declare enum DatabaseStorageType {
|
|
39
47
|
Memory = "memory",
|
package/dist/interfaces.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";;;AAmDA,IAAK,mBAIJ;AAJD,WAAK,mBAAmB;IACtB,wCAAiB,CAAA;IACjB,oCAAa,CAAA;IACb,wCAAiB,CAAA;AACnB,CAAC,EAJI,mBAAmB,mCAAnB,mBAAmB,QAIvB"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { IDatabaseStorage } from '../interfaces';
|
|
2
2
|
declare class BinaryStorage implements IDatabaseStorage {
|
|
3
3
|
private filePath;
|
|
4
|
-
constructor(databaseName: string);
|
|
4
|
+
constructor(databaseName: string, customPath?: string);
|
|
5
|
+
private xorBuffer;
|
|
5
6
|
save(data: string): Promise<void>;
|
|
6
7
|
load(): Promise<string>;
|
|
7
8
|
}
|
|
@@ -6,17 +6,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const fs_1 = __importDefault(require("fs"));
|
|
7
7
|
const path_1 = __importDefault(require("path"));
|
|
8
8
|
class BinaryStorage {
|
|
9
|
-
constructor(databaseName) {
|
|
10
|
-
|
|
9
|
+
constructor(databaseName, customPath) {
|
|
10
|
+
const basePath = customPath ?? process.cwd();
|
|
11
|
+
this.filePath = path_1.default.resolve(basePath, `${databaseName}.db`);
|
|
12
|
+
}
|
|
13
|
+
xorBuffer(buffer, key = 0xAA) {
|
|
14
|
+
const result = Buffer.alloc(buffer.length);
|
|
15
|
+
for (let i = 0; i < buffer.length; i++) {
|
|
16
|
+
result[i] = buffer[i] ^ key;
|
|
17
|
+
}
|
|
18
|
+
return result;
|
|
11
19
|
}
|
|
12
20
|
async save(data) {
|
|
13
|
-
const
|
|
14
|
-
|
|
21
|
+
const raw = Buffer.from(data, 'utf-8');
|
|
22
|
+
const obfuscated = this.xorBuffer(raw);
|
|
23
|
+
await fs_1.default.promises.writeFile(this.filePath, obfuscated);
|
|
15
24
|
}
|
|
16
25
|
async load() {
|
|
17
26
|
try {
|
|
18
27
|
const buffer = await fs_1.default.promises.readFile(this.filePath);
|
|
19
|
-
|
|
28
|
+
const deobfuscated = this.xorBuffer(buffer);
|
|
29
|
+
return deobfuscated.toString('utf-8');
|
|
20
30
|
}
|
|
21
31
|
catch (error) {
|
|
22
32
|
if (error.code === 'ENOENT') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BinaryStorage.js","sourceRoot":"","sources":["../../src/storage/BinaryStorage.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAGxB,MAAM,aAAa;IAGjB,YAAY,YAAoB;
|
|
1
|
+
{"version":3,"file":"BinaryStorage.js","sourceRoot":"","sources":["../../src/storage/BinaryStorage.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAGxB,MAAM,aAAa;IAGjB,YAAY,YAAoB,EAAE,UAAmB;QACnD,MAAM,QAAQ,GAAG,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC;IAC/D,CAAC;IAEO,SAAS,CAAC,MAAc,EAAE,MAAc,IAAI;QAClD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QAC9B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAY;QACrB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,YAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzD,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC5C,OAAO,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF;AAED,kBAAe,aAAa,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { IDatabaseStorage } from '../interfaces';
|
|
2
2
|
declare class JsonStorage implements IDatabaseStorage {
|
|
3
3
|
private filePath;
|
|
4
|
-
constructor(databaseName: string);
|
|
4
|
+
constructor(databaseName: string, customPath?: string);
|
|
5
5
|
save(data: string): Promise<void>;
|
|
6
6
|
load(): Promise<string>;
|
|
7
7
|
}
|
|
@@ -6,8 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const path_1 = __importDefault(require("path"));
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
class JsonStorage {
|
|
9
|
-
constructor(databaseName) {
|
|
10
|
-
|
|
9
|
+
constructor(databaseName, customPath) {
|
|
10
|
+
const basePath = customPath ?? process.cwd();
|
|
11
|
+
this.filePath = path_1.default.resolve(basePath, `${databaseName}.db`);
|
|
11
12
|
}
|
|
12
13
|
async save(data) {
|
|
13
14
|
await fs_1.default.promises.writeFile(this.filePath, data, 'utf-8');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonStorage.js","sourceRoot":"","sources":["../../src/storage/JsonStorage.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,4CAAoB;AAGpB,MAAM,WAAW;IAGf,YAAY,YAAoB;
|
|
1
|
+
{"version":3,"file":"JsonStorage.js","sourceRoot":"","sources":["../../src/storage/JsonStorage.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AACxB,4CAAoB;AAGpB,MAAM,WAAW;IAGf,YAAY,YAAoB,EAAE,UAAmB;QACnD,MAAM,QAAQ,GAAG,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAC7C,IAAI,CAAC,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAY;QACrB,MAAM,YAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC;YACH,OAAO,MAAM,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF;AAED,kBAAe,WAAW,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lmcs-db",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "LmcsDb is a database with multiple storage engines and criptography",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -32,6 +32,10 @@
|
|
|
32
32
|
"publishConfig": {
|
|
33
33
|
"access": "public"
|
|
34
34
|
},
|
|
35
|
+
"bugs": {
|
|
36
|
+
"url": "https://github.com/leandroasilva/lmcs-db/issues"
|
|
37
|
+
},
|
|
38
|
+
"homepage": "https://github.com/leandroasilva/lmcs-db#readme",
|
|
35
39
|
"dependencies": {
|
|
36
40
|
"uuid": "^11.1.0"
|
|
37
41
|
},
|