@scefira/dfw 0.2.9 → 1.0.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.
- package/lib/DFWUtils.d.ts +3 -0
- package/lib/DFWUtils.d.ts.map +1 -1
- package/lib/DFWUtils.js +34 -2
- package/lib/DFWUtils.js.map +1 -1
- package/lib/controller/DFWController.d.ts +17 -0
- package/lib/controller/DFWController.d.ts.map +1 -0
- package/lib/{manager/DatabaseManager.js → controller/DFWController.js} +28 -8
- package/lib/controller/DFWController.js.map +1 -0
- package/lib/controller/DFWSecurityController.d.ts +29 -0
- package/lib/controller/DFWSecurityController.d.ts.map +1 -0
- package/lib/controller/DFWSecurityController.js +107 -0
- package/lib/controller/DFWSecurityController.js.map +1 -0
- package/lib/controller/DFWSessionController.d.ts +8 -0
- package/lib/controller/DFWSessionController.d.ts.map +1 -0
- package/lib/controller/DFWSessionController.js +45 -0
- package/lib/controller/DFWSessionController.js.map +1 -0
- package/lib/controller/DFWUserController.d.ts +22 -0
- package/lib/controller/DFWUserController.d.ts.map +1 -0
- package/lib/controller/DFWUserController.js +69 -0
- package/lib/controller/DFWUserController.js.map +1 -0
- package/lib/index.d.ts +35 -6
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +110 -13
- package/lib/index.js.map +1 -1
- package/lib/lib/APIManager.d.ts +10 -0
- package/lib/lib/APIManager.d.ts.map +1 -0
- package/lib/lib/APIManager.js +130 -0
- package/lib/lib/APIManager.js.map +1 -0
- package/lib/lib/DFWSessionStore.d.ts +11 -0
- package/lib/lib/DFWSessionStore.d.ts.map +1 -0
- package/lib/lib/DFWSessionStore.js +60 -0
- package/lib/lib/DFWSessionStore.js.map +1 -0
- package/lib/lib/SessionManager.d.ts +6 -0
- package/lib/lib/SessionManager.d.ts.map +1 -0
- package/lib/lib/SessionManager.js +9 -0
- package/lib/lib/SessionManager.js.map +1 -0
- package/lib/lib/strategies/DFWPassportStrategy.d.ts +4 -0
- package/lib/lib/strategies/DFWPassportStrategy.d.ts.map +1 -0
- package/lib/lib/strategies/DFWPassportStrategy.js +33 -0
- package/lib/lib/strategies/DFWPassportStrategy.js.map +1 -0
- package/lib/listeners/DELETEListener.d.ts +4 -0
- package/lib/listeners/DELETEListener.d.ts.map +1 -0
- package/lib/listeners/DELETEListener.js +10 -0
- package/lib/listeners/DELETEListener.js.map +1 -0
- package/lib/listeners/GETListener.d.ts +4 -0
- package/lib/listeners/GETListener.d.ts.map +1 -0
- package/lib/listeners/GETListener.js +10 -0
- package/lib/listeners/GETListener.js.map +1 -0
- package/lib/listeners/PATCHListener.d.ts +4 -0
- package/lib/listeners/PATCHListener.d.ts.map +1 -0
- package/lib/listeners/PATCHListener.js +10 -0
- package/lib/listeners/PATCHListener.js.map +1 -0
- package/lib/listeners/POSTListener.d.ts +4 -0
- package/lib/listeners/POSTListener.d.ts.map +1 -0
- package/lib/listeners/POSTListener.js +10 -0
- package/lib/listeners/POSTListener.js.map +1 -0
- package/lib/listeners/PUTListener.d.ts +4 -0
- package/lib/listeners/PUTListener.d.ts.map +1 -0
- package/lib/listeners/PUTListener.js +10 -0
- package/lib/listeners/PUTListener.js.map +1 -0
- package/lib/listeners/RawListener.d.ts +5 -0
- package/lib/listeners/RawListener.d.ts.map +1 -0
- package/lib/listeners/RawListener.js +13 -0
- package/lib/listeners/RawListener.js.map +1 -0
- package/lib/listeners/auth/DFWAuthListener.d.ts +4 -0
- package/lib/listeners/auth/DFWAuthListener.d.ts.map +1 -0
- package/lib/listeners/auth/DFWAuthListener.js +31 -0
- package/lib/listeners/auth/DFWAuthListener.js.map +1 -0
- package/lib/test.js +86 -63
- package/lib/test.js.map +1 -1
- package/lib/types/APIListener.d.ts +51 -0
- package/lib/types/APIListener.d.ts.map +1 -0
- package/lib/types/{DFWRequestScheme.js → APIListener.js} +1 -1
- package/lib/types/APIListener.js.map +1 -0
- package/lib/types/DFWConfig.d.ts +23 -30
- package/lib/types/DFWConfig.d.ts.map +1 -1
- package/lib/types/DFWRequest.d.ts +26 -0
- package/lib/types/DFWRequest.d.ts.map +1 -0
- package/lib/types/{DFWBoot.js → DFWRequest.js} +1 -1
- package/lib/types/DFWRequest.js.map +1 -0
- package/package.json +19 -11
- package/prisma/schema/dfw.prisma +91 -0
- package/prisma/schema/schema.prisma +9 -0
- package/lib/DFWInstance.d.ts +0 -21
- package/lib/DFWInstance.d.ts.map +0 -1
- package/lib/DFWInstance.js +0 -56
- package/lib/DFWInstance.js.map +0 -1
- package/lib/manager/APIManager.d.ts +0 -48
- package/lib/manager/APIManager.d.ts.map +0 -1
- package/lib/manager/APIManager.js +0 -211
- package/lib/manager/APIManager.js.map +0 -1
- package/lib/manager/DFWModule.d.ts +0 -14
- package/lib/manager/DFWModule.d.ts.map +0 -1
- package/lib/manager/DFWModule.js +0 -20
- package/lib/manager/DFWModule.js.map +0 -1
- package/lib/manager/DatabaseManager.d.ts +0 -9
- package/lib/manager/DatabaseManager.d.ts.map +0 -1
- package/lib/manager/DatabaseManager.js.map +0 -1
- package/lib/manager/FileManager.d.ts +0 -149
- package/lib/manager/FileManager.d.ts.map +0 -1
- package/lib/manager/FileManager.js +0 -279
- package/lib/manager/FileManager.js.map +0 -1
- package/lib/manager/SecurityManager.d.ts +0 -51
- package/lib/manager/SecurityManager.d.ts.map +0 -1
- package/lib/manager/SecurityManager.js +0 -201
- package/lib/manager/SecurityManager.js.map +0 -1
- package/lib/manager/SessionManager.d.ts +0 -41
- package/lib/manager/SessionManager.d.ts.map +0 -1
- package/lib/manager/SessionManager.js +0 -199
- package/lib/manager/SessionManager.js.map +0 -1
- package/lib/manager/UserManager.d.ts +0 -43
- package/lib/manager/UserManager.d.ts.map +0 -1
- package/lib/manager/UserManager.js +0 -63
- package/lib/manager/UserManager.js.map +0 -1
- package/lib/types/APIListenerConfig.d.ts +0 -53
- package/lib/types/APIListenerConfig.d.ts.map +0 -1
- package/lib/types/APIListenerConfig.js +0 -3
- package/lib/types/APIListenerConfig.js.map +0 -1
- package/lib/types/DFWBoot.d.ts +0 -19
- package/lib/types/DFWBoot.d.ts.map +0 -1
- package/lib/types/DFWBoot.js.map +0 -1
- package/lib/types/DFWRequestScheme.d.ts +0 -40
- package/lib/types/DFWRequestScheme.d.ts.map +0 -1
- package/lib/types/DFWRequestScheme.js.map +0 -1
- package/prisma/schema.prisma +0 -98
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DFWAuthListener.d.ts","sourceRoot":"","sources":["../../../src/listeners/auth/DFWAuthListener.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAG3E,QAAA,MAAM,eAAe,EAAE,CAAC,EAAE,CAAC,EAAE,mBAAmB,KAAK,WAYpD,CAAA;AAED,eAAe,eAAe,CAAA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
const passport_1 = __importDefault(require("passport"));
|
|
16
|
+
const DFWSessionController_1 = __importDefault(require("../../controller/DFWSessionController"));
|
|
17
|
+
const DFWAuthListener = (fn) => {
|
|
18
|
+
return {
|
|
19
|
+
params: {
|
|
20
|
+
method: 'post',
|
|
21
|
+
middleware: [passport_1.default.authenticate('dfw')],
|
|
22
|
+
callback: (req) => __awaiter(void 0, void 0, void 0, function* () {
|
|
23
|
+
const SessionControl = new DFWSessionController_1.default();
|
|
24
|
+
yield SessionControl.updateSessionAgentAsync(req);
|
|
25
|
+
}),
|
|
26
|
+
},
|
|
27
|
+
listener: fn !== null && fn !== void 0 ? fn : (() => { return { success: true }; })
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
exports.default = DFWAuthListener;
|
|
31
|
+
//# sourceMappingURL=DFWAuthListener.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DFWAuthListener.js","sourceRoot":"","sources":["../../../src/listeners/auth/DFWAuthListener.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,wDAAgC;AAEhC,iGAAwE;AAExE,MAAM,eAAe,GAA8C,CAAC,EAAE,EAAE,EAAE;IACtE,OAAO;QACH,MAAM,EAAE;YACJ,MAAM,EAAE,MAAM;YACd,UAAU,EAAE,CAAC,kBAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC1C,QAAQ,EAAE,CAAO,GAAG,EAAE,EAAE;gBACpB,MAAM,cAAc,GAAG,IAAI,8BAAmB,EAAE,CAAA;gBAChD,MAAM,cAAc,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAA;YACrD,CAAC,CAAA;SACJ;QACD,QAAQ,EAAE,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,CAAC,GAAG,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA,CAAC,CAAC,CAAC;KACvD,CAAA;AACL,CAAC,CAAA;AAED,kBAAe,eAAe,CAAA"}
|
package/lib/test.js
CHANGED
|
@@ -8,73 +8,96 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
11
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
15
|
const _1 = require(".");
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
16
|
+
const DFWSecurityController_1 = __importDefault(require("./controller/DFWSecurityController"));
|
|
17
|
+
const DFWSessionController_1 = __importDefault(require("./controller/DFWSessionController"));
|
|
18
|
+
const DFWUserController_1 = __importDefault(require("./controller/DFWUserController"));
|
|
19
|
+
const DFWAuthListener_1 = __importDefault(require("./listeners/auth/DFWAuthListener"));
|
|
20
|
+
const GETListener_1 = __importDefault(require("./listeners/GETListener"));
|
|
21
|
+
const POSTListener_1 = __importDefault(require("./listeners/POSTListener"));
|
|
22
|
+
const RawListener_1 = __importDefault(require("./listeners/RawListener"));
|
|
23
|
+
var DFW = new _1.DFWCore({
|
|
24
|
+
server: {
|
|
25
|
+
port: 300,
|
|
26
|
+
trustProxy: true
|
|
24
27
|
}
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
})
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
})
|
|
45
|
-
|
|
46
|
-
|
|
28
|
+
}).start();
|
|
29
|
+
DFW.register({
|
|
30
|
+
api: {
|
|
31
|
+
boot: [
|
|
32
|
+
(0, POSTListener_1.default)((_a, res_1) => __awaiter(void 0, [_a, res_1], void 0, function* ({ dfw, user }, res) {
|
|
33
|
+
return dfw.db.$transaction((db) => __awaiter(void 0, void 0, void 0, function* () {
|
|
34
|
+
const SecurityControl = new DFWSecurityController_1.default().use(db);
|
|
35
|
+
const UserControl = new DFWUserController_1.default().use(db);
|
|
36
|
+
const conty = yield UserControl.createUserAsync({
|
|
37
|
+
nick: 'conty',
|
|
38
|
+
password: 'test'
|
|
39
|
+
});
|
|
40
|
+
const adminCred = yield SecurityControl.createCredentiaAsync("ADMIN");
|
|
41
|
+
const devCred = yield SecurityControl.createCredentiaAsync("DEVELOPER");
|
|
42
|
+
const keyAcc = yield SecurityControl.createAccessAsync("SMALL_KEY");
|
|
43
|
+
yield SecurityControl.attachAccessToCredentialAsync(keyAcc, adminCred);
|
|
44
|
+
yield SecurityControl.attachUserToCredentialAsync(user === null || user === void 0 ? void 0 : user['id'], adminCred);
|
|
45
|
+
return { conty, adminCred, devCred, keyAcc };
|
|
46
|
+
}));
|
|
47
|
+
}))
|
|
48
|
+
],
|
|
49
|
+
error: [
|
|
50
|
+
(0, GETListener_1.default)(({ dfw }, res) => {
|
|
51
|
+
throw "ERROR_HAS_BEEN_OCURRED";
|
|
52
|
+
})
|
|
53
|
+
],
|
|
54
|
+
raw: (0, RawListener_1.default)('get', (req, res, next) => {
|
|
55
|
+
}),
|
|
56
|
+
test: (0, POSTListener_1.default)((req, res) => __awaiter(void 0, void 0, void 0, function* () {
|
|
57
|
+
const SessionControl = new DFWSessionController_1.default();
|
|
58
|
+
yield SessionControl.updateSessionAgentAsync(req);
|
|
59
|
+
return {
|
|
60
|
+
isAuthenticated: req.isAuthenticated(),
|
|
61
|
+
session: req.session,
|
|
62
|
+
user: req.user
|
|
63
|
+
};
|
|
64
|
+
})),
|
|
65
|
+
login: (0, DFWAuthListener_1.default)((req, res) => {
|
|
66
|
+
return {
|
|
67
|
+
isAuthenticated: req.isAuthenticated(),
|
|
68
|
+
session: req.session,
|
|
69
|
+
user: req.user
|
|
70
|
+
};
|
|
71
|
+
}),
|
|
72
|
+
logout: (0, POSTListener_1.default)((req, res) => __awaiter(void 0, void 0, void 0, function* () {
|
|
73
|
+
const SessionControl = new DFWSessionController_1.default();
|
|
74
|
+
yield SessionControl.logoutAsync(req);
|
|
75
|
+
//req.session = null as any
|
|
76
|
+
return {
|
|
77
|
+
isAuthenticated: req.isAuthenticated(),
|
|
78
|
+
session: req.session,
|
|
79
|
+
user: req.user
|
|
80
|
+
};
|
|
81
|
+
})),
|
|
82
|
+
signup: (0, POSTListener_1.default)((_a) => __awaiter(void 0, [_a], void 0, function* ({ dfw }) {
|
|
83
|
+
const UserControl = new DFWUserController_1.default();
|
|
84
|
+
return UserControl.createUserAsync({
|
|
85
|
+
nick: 'zerozelta',
|
|
86
|
+
password: 'test'
|
|
87
|
+
}).catch(() => { throw "UNABLE_TO_CREATE"; });
|
|
88
|
+
})),
|
|
89
|
+
secured: [
|
|
90
|
+
(0, POSTListener_1.default)(() => {
|
|
91
|
+
return { access: true };
|
|
92
|
+
})
|
|
93
|
+
]
|
|
47
94
|
}
|
|
48
95
|
});
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
return req.dfw.boot();
|
|
56
|
-
}));
|
|
57
|
-
DFW.APIManager.addListener("/file", (req, res) => __awaiter(void 0, void 0, void 0, function* () {
|
|
58
|
-
return req.dfw.FileManager.flushUpload(req, "file", { description: "File test" });
|
|
59
|
-
}), { method: "post", upload: true, security: { session: true } });
|
|
60
|
-
DFW.APIManager.addListener("/error", (req, res, dfw) => __awaiter(void 0, void 0, void 0, function* () {
|
|
61
|
-
return yield dfw.db.$transaction((db) => __awaiter(void 0, void 0, void 0, function* () {
|
|
62
|
-
let t1 = performance.now();
|
|
63
|
-
yield dfw.UserManager.use(db).createCredentiaASync("DUMMY-1");
|
|
64
|
-
console.log(performance.now() - t1);
|
|
65
|
-
throw new Error("ERROR");
|
|
66
|
-
yield dfw.UserManager.use(db).createCredentiaASync("DUMMY-2");
|
|
67
|
-
yield dfw.UserManager.use(db).createCredentiaASync("DUMMY-2");
|
|
68
|
-
})).catch((e) => {
|
|
69
|
-
throw e.message;
|
|
70
|
-
console.log(Object.keys(e));
|
|
71
|
-
});
|
|
72
|
-
}));
|
|
73
|
-
DFW.APIManager.addListener("/strap", ({ dfw }, res) => __awaiter(void 0, void 0, void 0, function* () {
|
|
74
|
-
let newUser = yield dfw.UserManager.createUserAsync("test@gmail.com", "test", "test");
|
|
75
|
-
//let newCredential = await dfw.SecurityManager.createCredentialAsync("TESTER");
|
|
76
|
-
let user = yield dfw.db.dfw_user.findUnique({ where: { id: newUser.id } });
|
|
77
|
-
let credential = yield dfw.UserManager.assignCredentialAsync(user, ["ADMIN", "TESTER"]);
|
|
78
|
-
return { credential };
|
|
96
|
+
// Path protegido
|
|
97
|
+
DFW.addAccessValidator('/api/secured', (_a) => __awaiter(void 0, [_a], void 0, function* ({ dfw: { isAuthenticated, user } }) {
|
|
98
|
+
if (!isAuthenticated())
|
|
99
|
+
return false;
|
|
100
|
+
const SecurityControl = new DFWSecurityController_1.default();
|
|
101
|
+
return SecurityControl.userHasCredentialAsync(user.id, "ADMINO");
|
|
79
102
|
}));
|
|
80
103
|
//# sourceMappingURL=test.js.map
|
package/lib/test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { RequestHandler } from "express";
|
|
2
|
+
import { DFWRequest } from "./DFWRequest";
|
|
3
|
+
export type APIMethod = 'get' | 'post' | 'put' | 'delete' | 'options' | 'patch';
|
|
4
|
+
export type APIListenerFunction = (req: DFWRequest, res: Response) => (Promise<any> | any);
|
|
5
|
+
export type APIListener = {
|
|
6
|
+
params?: APIListenerParams;
|
|
7
|
+
listener?: APIListenerFunction;
|
|
8
|
+
};
|
|
9
|
+
export type APIListenerParams = {
|
|
10
|
+
/**
|
|
11
|
+
*
|
|
12
|
+
*/
|
|
13
|
+
method?: APIMethod;
|
|
14
|
+
/**
|
|
15
|
+
* if true the listiner will be simple express function without any dfw middleware layers
|
|
16
|
+
*/
|
|
17
|
+
raw?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
*
|
|
20
|
+
*/
|
|
21
|
+
middleware?: RequestHandler | RequestHandler[];
|
|
22
|
+
/**
|
|
23
|
+
*
|
|
24
|
+
*/
|
|
25
|
+
access?: APIListenerAccess;
|
|
26
|
+
/**
|
|
27
|
+
* Disable the autosend system, allows you to specify what send to the clien and when
|
|
28
|
+
*/
|
|
29
|
+
disableAutoSend?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Disable body parser (body parser is installed only on post methods)
|
|
32
|
+
*/
|
|
33
|
+
disableBodyParser?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Callback function after the server responses to the client (after the connection was closed)
|
|
36
|
+
* @param req
|
|
37
|
+
* @param listenerRes
|
|
38
|
+
* @returns
|
|
39
|
+
*/
|
|
40
|
+
callback?: (req: DFWRequest, listenerRes: any) => Promise<void>;
|
|
41
|
+
};
|
|
42
|
+
export interface APIListenerAccess {
|
|
43
|
+
session?: boolean;
|
|
44
|
+
validation?: {
|
|
45
|
+
body?: string[];
|
|
46
|
+
query?: string[];
|
|
47
|
+
};
|
|
48
|
+
credentials?: number[] | string[];
|
|
49
|
+
access?: number[] | string[];
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=APIListener.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"APIListener.d.ts","sourceRoot":"","sources":["../../src/types/APIListener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,UAAU,EAAoB,MAAM,cAAc,CAAC;AAE5D,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAA;AAC/E,MAAM,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAA;AAE1F,MAAM,MAAM,WAAW,GAAG;IACtB,MAAM,CAAC,EAAE,iBAAiB,CAAA;IAC1B,QAAQ,CAAC,EAAE,mBAAmB,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC5B;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IAEnB;;OAEG;IACH,GAAG,CAAC,EAAE,OAAO,CAAA;IAEb;;OAEG;IACH,UAAU,CAAC,EAAE,cAAc,GAAG,cAAc,EAAE,CAAC;IAE/C;;OAEG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAE3B;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAClE,CAAA;AAED,MAAM,WAAW,iBAAiB;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KACpB,CAAA;IACD,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;CAChC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"APIListener.js","sourceRoot":"","sources":["../../src/types/APIListener.ts"],"names":[],"mappings":""}
|
package/lib/types/DFWConfig.d.ts
CHANGED
|
@@ -1,53 +1,46 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CorsOptions } from "cors";
|
|
2
|
+
import { CookieOptions } from "express-session";
|
|
2
3
|
export type DFWConfig = {
|
|
4
|
+
server?: {
|
|
5
|
+
port?: number;
|
|
6
|
+
/** CORS config for entire server */
|
|
7
|
+
cors?: CorsOptions;
|
|
8
|
+
trustProxy?: boolean | number;
|
|
9
|
+
};
|
|
3
10
|
/**
|
|
4
11
|
*
|
|
5
12
|
*/
|
|
6
13
|
session?: {
|
|
7
14
|
/**
|
|
8
|
-
*
|
|
9
|
-
*/
|
|
10
|
-
stk?: string;
|
|
11
|
-
/**
|
|
12
|
-
* Session id name space in cookie
|
|
15
|
+
* Passport auth config, by default dfw is always enabled unless you set it to false
|
|
13
16
|
*/
|
|
14
|
-
|
|
17
|
+
authenticators?: {
|
|
18
|
+
dfw?: false;
|
|
19
|
+
};
|
|
15
20
|
/**
|
|
16
21
|
* Default days to expire session in database (only in database cookie will not be affected)
|
|
17
22
|
*/
|
|
18
23
|
daysToExpire?: number;
|
|
19
24
|
/**
|
|
20
|
-
*
|
|
25
|
+
* Store every session in database no matter if is logged or not, ideal for tracking visitors
|
|
26
|
+
* @default false
|
|
21
27
|
*/
|
|
22
|
-
|
|
28
|
+
saveAllSessions?: boolean;
|
|
23
29
|
/**
|
|
24
|
-
*
|
|
30
|
+
* Secret to encode cookie session
|
|
31
|
+
* @default "default"
|
|
25
32
|
*/
|
|
33
|
+
secret?: string;
|
|
34
|
+
/**
|
|
35
|
+
* Session cookie name
|
|
36
|
+
* @default stk
|
|
37
|
+
*/
|
|
38
|
+
cookieName?: string;
|
|
26
39
|
cookieOptions?: CookieOptions;
|
|
27
40
|
};
|
|
28
41
|
/**
|
|
29
42
|
*
|
|
30
43
|
*/
|
|
31
|
-
upload?: {
|
|
32
|
-
localPrivateUploadDir?: string;
|
|
33
|
-
localUploadDir?: string;
|
|
34
|
-
staticUploadPath?: string;
|
|
35
|
-
tempDir?: string;
|
|
36
|
-
headers?: any;
|
|
37
|
-
highWaterMark?: number;
|
|
38
|
-
fileHwm?: number;
|
|
39
|
-
defCharset?: string;
|
|
40
|
-
preservePath?: boolean;
|
|
41
|
-
limits?: {
|
|
42
|
-
fieldNameSize?: number;
|
|
43
|
-
fieldSize?: number;
|
|
44
|
-
fields?: number;
|
|
45
|
-
fileSize?: number;
|
|
46
|
-
files?: number;
|
|
47
|
-
parts?: number;
|
|
48
|
-
headerPairs?: number;
|
|
49
|
-
};
|
|
50
|
-
};
|
|
51
44
|
database?: {
|
|
52
45
|
log?: boolean;
|
|
53
46
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DFWConfig.d.ts","sourceRoot":"","sources":["../../src/types/DFWConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"DFWConfig.d.ts","sourceRoot":"","sources":["../../src/types/DFWConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE/C,MAAM,MAAM,SAAS,GAAG;IAEpB,MAAM,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAA;QAEb,oCAAoC;QACpC,IAAI,CAAC,EAAE,WAAW,CAAA;QAGlB,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;KAChC,CAAA;IAED;;OAEG;IACH,OAAO,CAAC,EAAE;QACN;;WAEG;QACH,cAAc,CAAC,EAAE;YACb,GAAG,CAAC,EAAE,KAAK,CAAA;SACd,CAAA;QAED;;WAEG;QACH,YAAY,CAAC,EAAE,MAAM,CAAC;QAEtB;;;WAGG;QACH,eAAe,CAAC,EAAE,OAAO,CAAA;QAEzB;;;WAGG;QACH,MAAM,CAAC,EAAE,MAAM,CAAA;QAEf;;;WAGG;QACH,UAAU,CAAC,EAAE,MAAM,CAAA;QAEnB,aAAa,CAAC,EAAE,aAAa,CAAA;KAChC,CAAA;IAED;;OAEG;IACH,QAAQ,CAAC,EAAE;QACP,GAAG,CAAC,EAAE,OAAO,CAAC;KACjB,CAAA;CACJ,CAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Request } from "express";
|
|
2
|
+
import { dfw_user, PrismaClient } from "@prisma/client";
|
|
3
|
+
import DFWCore from "..";
|
|
4
|
+
export type DFWRequest = {
|
|
5
|
+
dfw: DFWRequestSchema;
|
|
6
|
+
} & Request;
|
|
7
|
+
export type DFWRequestSchema = {
|
|
8
|
+
instance: DFWCore;
|
|
9
|
+
isAuthenticated: () => boolean;
|
|
10
|
+
user?: {
|
|
11
|
+
id: number;
|
|
12
|
+
} & Partial<dfw_user>;
|
|
13
|
+
session: {
|
|
14
|
+
getUserAsync: () => Promise<dfw_user | undefined>;
|
|
15
|
+
checkCredentials: () => Promise<boolean>;
|
|
16
|
+
checkAccess: () => Promise<boolean>;
|
|
17
|
+
};
|
|
18
|
+
db: PrismaClient;
|
|
19
|
+
/**
|
|
20
|
+
* Callback called in background after finish the api response
|
|
21
|
+
* @param cb callback function or promise
|
|
22
|
+
* @returns
|
|
23
|
+
*/
|
|
24
|
+
addCallback: (cb: () => void | Promise<void>) => void;
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=DFWRequest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DFWRequest.d.ts","sourceRoot":"","sources":["../../src/types/DFWRequest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,OAAO,MAAM,IAAI,CAAC;AAEzB,MAAM,MAAM,UAAU,GAAG;IACrB,GAAG,EAAE,gBAAgB,CAAC;CACzB,GAAG,OAAO,CAAA;AAEX,MAAM,MAAM,gBAAgB,GAAG;IAC3B,QAAQ,EAAE,OAAO,CAAA;IACjB,eAAe,EAAE,MAAM,OAAO,CAAC;IAC/B,IAAI,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IACzC,OAAO,EAAE;QACL,YAAY,EAAE,MAAM,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAA;QACjD,gBAAgB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;QACxC,WAAW,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;KACtC,CAAC;IACF,EAAE,EAAE,YAAY,CAAC;IAEjB;;;;OAIG;IACH,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAA;CACxD,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DFWRequest.js","sourceRoot":"","sources":["../../src/types/DFWRequest.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@scefira/dfw",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "NodeJS API prototype",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
7
7
|
"files": [
|
|
@@ -19,35 +19,43 @@
|
|
|
19
19
|
"author": "Scefira Technologies",
|
|
20
20
|
"license": "ISC",
|
|
21
21
|
"peerDependencies": {
|
|
22
|
-
"@prisma/client": "^5
|
|
23
|
-
"luxon": "^
|
|
22
|
+
"@prisma/client": "^5",
|
|
23
|
+
"luxon": "^3.x"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"bcrypt": "^5.1.1",
|
|
27
27
|
"body-parser": "^1.20.0",
|
|
28
|
-
"
|
|
29
|
-
"
|
|
28
|
+
"chalk": "^4.1.2",
|
|
29
|
+
"cors": "^2.8.5",
|
|
30
|
+
"express": "^4.19.2",
|
|
30
31
|
"express-fileupload": "^1.4.0",
|
|
32
|
+
"express-session": "^1.18.0",
|
|
31
33
|
"md5-file": "^5.0.0",
|
|
32
34
|
"mime-types": "^2.1.35",
|
|
33
|
-
"
|
|
35
|
+
"passport": "^0.7.0",
|
|
36
|
+
"passport-local": "^1.0.0"
|
|
34
37
|
},
|
|
35
38
|
"devDependencies": {
|
|
36
39
|
"@types/bcrypt": "^5.0.2",
|
|
37
40
|
"@types/body-parser": "^1.19.2",
|
|
38
41
|
"@types/busboy": "^1.3.0",
|
|
39
42
|
"@types/cookie-parser": "^1.4.2",
|
|
43
|
+
"@types/cors": "^2.8.17",
|
|
40
44
|
"@types/express": "^4.17.13",
|
|
41
45
|
"@types/express-fileupload": "^1.2.2",
|
|
46
|
+
"@types/express-session": "^1.18.0",
|
|
47
|
+
"@types/jsonwebtoken": "^9.0.6",
|
|
42
48
|
"@types/luxon": "^2.0.9",
|
|
43
49
|
"@types/md5-file": "^5.0.0",
|
|
44
50
|
"@types/mime-types": "^2.1.1",
|
|
45
51
|
"@types/node": "^20.4.2",
|
|
52
|
+
"@types/passport": "^1.0.16",
|
|
53
|
+
"@types/passport-local": "^1.0.38",
|
|
46
54
|
"@types/uuid": "^8.3.4",
|
|
47
55
|
"cross-env": "^7.0.3",
|
|
48
|
-
"nodemon": "^
|
|
49
|
-
"prisma": "^5
|
|
50
|
-
"ts-node": "^10.9.
|
|
51
|
-
"typescript": "^5.
|
|
56
|
+
"nodemon": "^3.1.4",
|
|
57
|
+
"prisma": "^5",
|
|
58
|
+
"ts-node": "^10.9.2",
|
|
59
|
+
"typescript": "^5.5.4"
|
|
52
60
|
}
|
|
53
61
|
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
model dfw_user {
|
|
2
|
+
id Int @id @default(autoincrement()) @db.UnsignedInt
|
|
3
|
+
nick String? @unique @db.VarChar(255)
|
|
4
|
+
email String? @unique @db.VarChar(255)
|
|
5
|
+
displayName String?
|
|
6
|
+
encodedKey String? @db.VarChar(255)
|
|
7
|
+
|
|
8
|
+
createdAt DateTime @default(now())
|
|
9
|
+
updatedAt DateTime @updatedAt
|
|
10
|
+
|
|
11
|
+
credentials dfw_credential[]
|
|
12
|
+
files dfw_file[]
|
|
13
|
+
sessions dfw_session[]
|
|
14
|
+
|
|
15
|
+
@@index([email])
|
|
16
|
+
@@index([nick])
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
model dfw_session {
|
|
20
|
+
id String @id @db.Char(36)
|
|
21
|
+
agent String? @db.VarChar(255)
|
|
22
|
+
ip String? @db.VarChar(255)
|
|
23
|
+
expire DateTime? @db.Date
|
|
24
|
+
idUser Int? @db.UnsignedInt
|
|
25
|
+
|
|
26
|
+
createdAt DateTime @default(now())
|
|
27
|
+
updatedAt DateTime @updatedAt
|
|
28
|
+
|
|
29
|
+
user dfw_user? @relation(fields: [idUser], references: [id], onDelete: Cascade)
|
|
30
|
+
|
|
31
|
+
@@index([idUser])
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
model dfw_access {
|
|
35
|
+
id Int @id @default(autoincrement()) @db.UnsignedInt
|
|
36
|
+
name String @unique @db.VarChar(255)
|
|
37
|
+
description String?
|
|
38
|
+
|
|
39
|
+
createdAt DateTime @default(now())
|
|
40
|
+
updatedAt DateTime @updatedAt
|
|
41
|
+
|
|
42
|
+
credentials dfw_credential[]
|
|
43
|
+
|
|
44
|
+
@@index([name])
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
model dfw_credential {
|
|
48
|
+
id Int @id @default(autoincrement()) @db.UnsignedInt
|
|
49
|
+
name String @unique @db.VarChar(255)
|
|
50
|
+
description String?
|
|
51
|
+
|
|
52
|
+
createdAt DateTime @default(now())
|
|
53
|
+
updatedAt DateTime @updatedAt
|
|
54
|
+
|
|
55
|
+
users dfw_user[]
|
|
56
|
+
access dfw_access[]
|
|
57
|
+
|
|
58
|
+
@@index([name])
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
model dfw_file {
|
|
62
|
+
id Int @id @default(autoincrement()) @db.UnsignedInt
|
|
63
|
+
name String? @db.VarChar(255)
|
|
64
|
+
path String? @db.VarChar(255) // Path to resource
|
|
65
|
+
url String? @db.VarChar(255) // Public resource url
|
|
66
|
+
variant String? @db.VarChar(255)
|
|
67
|
+
size Int? @db.UnsignedInt
|
|
68
|
+
checksum String? @db.VarChar(255)
|
|
69
|
+
mimetype String? @db.VarChar(255)
|
|
70
|
+
storage DFW_FILE_STORAGE @default(LOCAL)
|
|
71
|
+
expire DateTime? @db.Date
|
|
72
|
+
idParent Int? @db.UnsignedInt
|
|
73
|
+
idUser Int? @db.UnsignedInt
|
|
74
|
+
|
|
75
|
+
createdAt DateTime @default(now())
|
|
76
|
+
updatedAt DateTime @updatedAt
|
|
77
|
+
|
|
78
|
+
user dfw_user? @relation(fields: [idUser], references: [id])
|
|
79
|
+
parent dfw_file? @relation("parent", fields: [idParent], references: [id], onDelete: Cascade)
|
|
80
|
+
children dfw_file[] @relation("parent")
|
|
81
|
+
|
|
82
|
+
@@index([expire])
|
|
83
|
+
@@index([id])
|
|
84
|
+
@@index([idParent])
|
|
85
|
+
@@index([idUser])
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
enum DFW_FILE_STORAGE {
|
|
89
|
+
LOCAL
|
|
90
|
+
EXTERNAL
|
|
91
|
+
}
|
package/lib/DFWInstance.d.ts
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import APIManager from "./manager/APIManager";
|
|
2
|
-
import DatabaseManager from "./manager/DatabaseManager";
|
|
3
|
-
import FileManager from "./manager/FileManager";
|
|
4
|
-
import SecurityManager from "./manager/SecurityManager";
|
|
5
|
-
import SessionManager from "./manager/SessionManager";
|
|
6
|
-
import UserManager from "./manager/UserManager";
|
|
7
|
-
import { DFWConfig } from "./types/DFWConfig";
|
|
8
|
-
import { PrismaClient } from "@prisma/client";
|
|
9
|
-
declare class DFWInstance {
|
|
10
|
-
readonly config: DFWConfig;
|
|
11
|
-
readonly database: PrismaClient;
|
|
12
|
-
DatabaseManager: DatabaseManager;
|
|
13
|
-
APIManager: APIManager;
|
|
14
|
-
SessionManager: SessionManager;
|
|
15
|
-
SecurityManager: SecurityManager;
|
|
16
|
-
UserManager: UserManager;
|
|
17
|
-
FileManager: FileManager;
|
|
18
|
-
constructor(config: DFWConfig);
|
|
19
|
-
}
|
|
20
|
-
export default DFWInstance;
|
|
21
|
-
//# sourceMappingURL=DFWInstance.d.ts.map
|
package/lib/DFWInstance.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DFWInstance.d.ts","sourceRoot":"","sources":["../src/DFWInstance.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,sBAAsB,CAAC;AAC9C,OAAO,eAAe,MAAM,2BAA2B,CAAC;AACxD,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,eAAe,MAAM,2BAA2B,CAAC;AACxD,OAAO,cAAc,MAAM,0BAA0B,CAAC;AACtD,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,cAAM,WAAW;IAEb,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAEhC,eAAe,EAAE,eAAe,CAAC;IACjC,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,cAAc,CAAC;IAC/B,eAAe,EAAE,eAAe,CAAC;IACjC,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;gBAEb,MAAM,EAAE,SAAS;CAqBhC;AAED,eAAe,WAAW,CAAC"}
|