@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.
Files changed (125) hide show
  1. package/lib/DFWUtils.d.ts +3 -0
  2. package/lib/DFWUtils.d.ts.map +1 -1
  3. package/lib/DFWUtils.js +34 -2
  4. package/lib/DFWUtils.js.map +1 -1
  5. package/lib/controller/DFWController.d.ts +17 -0
  6. package/lib/controller/DFWController.d.ts.map +1 -0
  7. package/lib/{manager/DatabaseManager.js → controller/DFWController.js} +28 -8
  8. package/lib/controller/DFWController.js.map +1 -0
  9. package/lib/controller/DFWSecurityController.d.ts +29 -0
  10. package/lib/controller/DFWSecurityController.d.ts.map +1 -0
  11. package/lib/controller/DFWSecurityController.js +107 -0
  12. package/lib/controller/DFWSecurityController.js.map +1 -0
  13. package/lib/controller/DFWSessionController.d.ts +8 -0
  14. package/lib/controller/DFWSessionController.d.ts.map +1 -0
  15. package/lib/controller/DFWSessionController.js +45 -0
  16. package/lib/controller/DFWSessionController.js.map +1 -0
  17. package/lib/controller/DFWUserController.d.ts +22 -0
  18. package/lib/controller/DFWUserController.d.ts.map +1 -0
  19. package/lib/controller/DFWUserController.js +69 -0
  20. package/lib/controller/DFWUserController.js.map +1 -0
  21. package/lib/index.d.ts +35 -6
  22. package/lib/index.d.ts.map +1 -1
  23. package/lib/index.js +110 -13
  24. package/lib/index.js.map +1 -1
  25. package/lib/lib/APIManager.d.ts +10 -0
  26. package/lib/lib/APIManager.d.ts.map +1 -0
  27. package/lib/lib/APIManager.js +130 -0
  28. package/lib/lib/APIManager.js.map +1 -0
  29. package/lib/lib/DFWSessionStore.d.ts +11 -0
  30. package/lib/lib/DFWSessionStore.d.ts.map +1 -0
  31. package/lib/lib/DFWSessionStore.js +60 -0
  32. package/lib/lib/DFWSessionStore.js.map +1 -0
  33. package/lib/lib/SessionManager.d.ts +6 -0
  34. package/lib/lib/SessionManager.d.ts.map +1 -0
  35. package/lib/lib/SessionManager.js +9 -0
  36. package/lib/lib/SessionManager.js.map +1 -0
  37. package/lib/lib/strategies/DFWPassportStrategy.d.ts +4 -0
  38. package/lib/lib/strategies/DFWPassportStrategy.d.ts.map +1 -0
  39. package/lib/lib/strategies/DFWPassportStrategy.js +33 -0
  40. package/lib/lib/strategies/DFWPassportStrategy.js.map +1 -0
  41. package/lib/listeners/DELETEListener.d.ts +4 -0
  42. package/lib/listeners/DELETEListener.d.ts.map +1 -0
  43. package/lib/listeners/DELETEListener.js +10 -0
  44. package/lib/listeners/DELETEListener.js.map +1 -0
  45. package/lib/listeners/GETListener.d.ts +4 -0
  46. package/lib/listeners/GETListener.d.ts.map +1 -0
  47. package/lib/listeners/GETListener.js +10 -0
  48. package/lib/listeners/GETListener.js.map +1 -0
  49. package/lib/listeners/PATCHListener.d.ts +4 -0
  50. package/lib/listeners/PATCHListener.d.ts.map +1 -0
  51. package/lib/listeners/PATCHListener.js +10 -0
  52. package/lib/listeners/PATCHListener.js.map +1 -0
  53. package/lib/listeners/POSTListener.d.ts +4 -0
  54. package/lib/listeners/POSTListener.d.ts.map +1 -0
  55. package/lib/listeners/POSTListener.js +10 -0
  56. package/lib/listeners/POSTListener.js.map +1 -0
  57. package/lib/listeners/PUTListener.d.ts +4 -0
  58. package/lib/listeners/PUTListener.d.ts.map +1 -0
  59. package/lib/listeners/PUTListener.js +10 -0
  60. package/lib/listeners/PUTListener.js.map +1 -0
  61. package/lib/listeners/RawListener.d.ts +5 -0
  62. package/lib/listeners/RawListener.d.ts.map +1 -0
  63. package/lib/listeners/RawListener.js +13 -0
  64. package/lib/listeners/RawListener.js.map +1 -0
  65. package/lib/listeners/auth/DFWAuthListener.d.ts +4 -0
  66. package/lib/listeners/auth/DFWAuthListener.d.ts.map +1 -0
  67. package/lib/listeners/auth/DFWAuthListener.js +31 -0
  68. package/lib/listeners/auth/DFWAuthListener.js.map +1 -0
  69. package/lib/test.js +86 -63
  70. package/lib/test.js.map +1 -1
  71. package/lib/types/APIListener.d.ts +51 -0
  72. package/lib/types/APIListener.d.ts.map +1 -0
  73. package/lib/types/{DFWRequestScheme.js → APIListener.js} +1 -1
  74. package/lib/types/APIListener.js.map +1 -0
  75. package/lib/types/DFWConfig.d.ts +23 -30
  76. package/lib/types/DFWConfig.d.ts.map +1 -1
  77. package/lib/types/DFWRequest.d.ts +26 -0
  78. package/lib/types/DFWRequest.d.ts.map +1 -0
  79. package/lib/types/{DFWBoot.js → DFWRequest.js} +1 -1
  80. package/lib/types/DFWRequest.js.map +1 -0
  81. package/package.json +19 -11
  82. package/prisma/schema/dfw.prisma +91 -0
  83. package/prisma/schema/schema.prisma +9 -0
  84. package/lib/DFWInstance.d.ts +0 -21
  85. package/lib/DFWInstance.d.ts.map +0 -1
  86. package/lib/DFWInstance.js +0 -56
  87. package/lib/DFWInstance.js.map +0 -1
  88. package/lib/manager/APIManager.d.ts +0 -48
  89. package/lib/manager/APIManager.d.ts.map +0 -1
  90. package/lib/manager/APIManager.js +0 -211
  91. package/lib/manager/APIManager.js.map +0 -1
  92. package/lib/manager/DFWModule.d.ts +0 -14
  93. package/lib/manager/DFWModule.d.ts.map +0 -1
  94. package/lib/manager/DFWModule.js +0 -20
  95. package/lib/manager/DFWModule.js.map +0 -1
  96. package/lib/manager/DatabaseManager.d.ts +0 -9
  97. package/lib/manager/DatabaseManager.d.ts.map +0 -1
  98. package/lib/manager/DatabaseManager.js.map +0 -1
  99. package/lib/manager/FileManager.d.ts +0 -149
  100. package/lib/manager/FileManager.d.ts.map +0 -1
  101. package/lib/manager/FileManager.js +0 -279
  102. package/lib/manager/FileManager.js.map +0 -1
  103. package/lib/manager/SecurityManager.d.ts +0 -51
  104. package/lib/manager/SecurityManager.d.ts.map +0 -1
  105. package/lib/manager/SecurityManager.js +0 -201
  106. package/lib/manager/SecurityManager.js.map +0 -1
  107. package/lib/manager/SessionManager.d.ts +0 -41
  108. package/lib/manager/SessionManager.d.ts.map +0 -1
  109. package/lib/manager/SessionManager.js +0 -199
  110. package/lib/manager/SessionManager.js.map +0 -1
  111. package/lib/manager/UserManager.d.ts +0 -43
  112. package/lib/manager/UserManager.d.ts.map +0 -1
  113. package/lib/manager/UserManager.js +0 -63
  114. package/lib/manager/UserManager.js.map +0 -1
  115. package/lib/types/APIListenerConfig.d.ts +0 -53
  116. package/lib/types/APIListenerConfig.d.ts.map +0 -1
  117. package/lib/types/APIListenerConfig.js +0 -3
  118. package/lib/types/APIListenerConfig.js.map +0 -1
  119. package/lib/types/DFWBoot.d.ts +0 -19
  120. package/lib/types/DFWBoot.d.ts.map +0 -1
  121. package/lib/types/DFWBoot.js.map +0 -1
  122. package/lib/types/DFWRequestScheme.d.ts +0 -40
  123. package/lib/types/DFWRequestScheme.d.ts.map +0 -1
  124. package/lib/types/DFWRequestScheme.js.map +0 -1
  125. 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
- var DFW = _1.DFWCore.createInstance({
14
- session: {
15
- sid: 'test_sid',
16
- stk: 'test_stk',
17
- cookieOptions: {
18
- sameSite: "lax",
19
- secure: false,
20
- httpOnly: true,
21
- domain: "localhost",
22
- maxAge: 60 * 1000 * 60 * 24 * 365 // 365 days
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
- //DFW.DatabaseManager.database.sync();
27
- DFW.APIManager.startServer(300);
28
- DFW.APIManager.addListener("/", (req, res) => __awaiter(void 0, void 0, void 0, function* () {
29
- return DFW.FileManager.removeFileAsync(1);
30
- }));
31
- DFW.APIManager.addListener("/login", (req, res, dfw) => __awaiter(void 0, void 0, void 0, function* () {
32
- yield dfw.SessionManager.loginAsync(req, "test", "test").catch(() => {
33
- throw 'ERROR';
34
- });
35
- return dfw.boot();
36
- }));
37
- DFW.APIManager.addListener("/logout", (req, res, dfw) => __awaiter(void 0, void 0, void 0, function* () {
38
- yield req.dfw.SessionManager.logoutAsync(req);
39
- return dfw.boot();
40
- }));
41
- DFW.APIManager.addListener("/security", (req, res, dfw) => __awaiter(void 0, void 0, void 0, function* () {
42
- console.log("Esto no debería haber pasado de aqui");
43
- return dfw.boot();
44
- }), {
45
- security: {
46
- session: true
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
- DFW.APIManager.addListener("/boot", (req, res) => __awaiter(void 0, void 0, void 0, function* () {
50
- const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
51
- req.dfw.addCallback(() => __awaiter(void 0, void 0, void 0, function* () {
52
- yield sleep(1000);
53
- console.log('callback called...');
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":"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"}
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"}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=DFWRequestScheme.js.map
3
+ //# sourceMappingURL=APIListener.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"APIListener.js","sourceRoot":"","sources":["../../src/types/APIListener.ts"],"names":[],"mappings":""}
@@ -1,53 +1,46 @@
1
- import { CookieOptions } from "express";
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
- * Session token name space in cookie
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
- sid?: string;
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
- * If session expiration will be rehidrated eachtime the user have an activity with the server
25
+ * Store every session in database no matter if is logged or not, ideal for tracking visitors
26
+ * @default false
21
27
  */
22
- persistent?: boolean;
28
+ saveAllSessions?: boolean;
23
29
  /**
24
- * Cookie options (for sessions)
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,SAAS,CAAC;AAExC,MAAM,MAAM,SAAS,GAAG;IACpB;;OAEG;IACH,OAAO,CAAC,EAAE;QACN;;WAEG;QACH,GAAG,CAAC,EAAE,MAAM,CAAC;QAEb;;WAEG;QACH,GAAG,CAAC,EAAE,MAAM,CAAC;QAEb;;WAEG;QACH,YAAY,CAAC,EAAE,MAAM,CAAC;QAEtB;;WAEG;QACH,UAAU,CAAC,EAAC,OAAO,CAAC;QAGpB;;WAEG;QACH,aAAa,CAAC,EAAE,aAAa,CAAC;KACjC,CAAA;IAED;;OAEG;IACH,MAAM,CAAC,EAAE;QACL,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;QAEjB,OAAO,CAAC,EAAE,GAAG,CAAC;QACd,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,MAAM,CAAC,EAAE;YACL,aAAa,CAAC,EAAE,MAAM,CAAC;YACvB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,WAAW,CAAC,EAAE,MAAM,CAAC;SACxB,CAAC;KACL,CAAC;IAEF,QAAQ,CAAC,EAAC;QACN,GAAG,CAAC,EAAC,OAAO,CAAC;KAChB,CAAA;CACJ,CAAA"}
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"}
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=DFWBoot.js.map
3
+ //# sourceMappingURL=DFWRequest.js.map
@@ -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.2.9",
4
- "description": "nodejs server prototype framework",
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.x",
23
- "luxon": "^2.x"
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
- "cookie-parser": "^1.4.6",
29
- "express": "^4.18.1",
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
- "uuid": "^8.3.2"
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": "^2.0.15",
49
- "prisma": "^5.3.1",
50
- "ts-node": "^10.9.1",
51
- "typescript": "^5.2.2"
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
+ }
@@ -0,0 +1,9 @@
1
+ generator client {
2
+ provider = "prisma-client-js"
3
+ previewFeatures = ["prismaSchemaFolder"]
4
+ }
5
+
6
+ datasource db {
7
+ provider = "mysql"
8
+ url = env("DATABASE_URL")
9
+ }
@@ -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
@@ -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"}