@scefira/dfw 0.2.10 → 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 -280
  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
@@ -1,280 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- var __importDefault = (this && this.__importDefault) || function (mod) {
35
- return (mod && mod.__esModule) ? mod : { "default": mod };
36
- };
37
- Object.defineProperty(exports, "__esModule", { value: true });
38
- const util_1 = require("util");
39
- const DFWModule_1 = __importDefault(require("./DFWModule"));
40
- const md5_file_1 = __importDefault(require("md5-file"));
41
- const express_1 = __importDefault(require("express"));
42
- const DFWUtils_1 = __importDefault(require("../DFWUtils"));
43
- const luxon_1 = require("luxon");
44
- const fs = __importStar(require("fs"));
45
- const path = __importStar(require("path"));
46
- const fileExistsAsync = (0, util_1.promisify)(fs.exists);
47
- const fileRenameAsync = (0, util_1.promisify)(fs.rename);
48
- const fileMakeDir = (0, util_1.promisify)(fs.mkdir);
49
- const fileMakeTempDir = (0, util_1.promisify)(fs.mkdtemp);
50
- const fileStat = (0, util_1.promisify)(fs.stat);
51
- const fileUnlink = (0, util_1.promisify)(fs.unlink);
52
- const fileCopy = (0, util_1.promisify)(fs.copyFile);
53
- const DEFAULT_PUBLIC_STATIC_FILES_PATH = "/static/upload";
54
- class FileManager extends DFWModule_1.default {
55
- get PUBLIC_STATIC_FILES_PATH() {
56
- return this.publicStaticFilesPath;
57
- }
58
- constructor(DFW) {
59
- super(DFW);
60
- this.LOCAL_PUBLIC_UPLOAD_DIR = ".dfw/upload/public";
61
- this.LOCAL_PROTECTED_UPLOAD_DIR = ".dfw/upload/protected";
62
- this.publicStaticFilesPath = DEFAULT_PUBLIC_STATIC_FILES_PATH;
63
- this.middleware = (req, res) => __awaiter(this, void 0, void 0, function* () {
64
- req.dfw.FileManager = this;
65
- });
66
- if (DFW.config.upload && DFW.config.upload.tempDir) {
67
- this.tmpDir = DFW.config.upload.tempDir;
68
- }
69
- else {
70
- this.tmpDir = ".dfw/temp";
71
- }
72
- if (fs.existsSync(this.tmpDir)) {
73
- fs.rmSync(this.tmpDir, { recursive: true });
74
- fs.mkdirSync(this.tmpDir);
75
- }
76
- else {
77
- fs.mkdirSync(this.tmpDir);
78
- }
79
- this.tmpDir = path.normalize(fs.mkdtempSync(`${this.tmpDir}${path.sep}`));
80
- // Public static upload path
81
- DFW.APIManager.server.use(this.publicStaticFilesPath, express_1.default.static(this.LOCAL_PUBLIC_UPLOAD_DIR, { maxAge: 2592000 }));
82
- // Clear expired files each 6 hours
83
- /*
84
- setInterval(() => {
85
- this.sweepExpiredFilesAsync();
86
- }, 21600000);
87
- */
88
- }
89
- /**
90
- * Takes a local tmp file and move to the files on DFW folder and save db record
91
- */
92
- assignLocalFileAsync(filePath, cfg, moveLocalFile = false) {
93
- var _a;
94
- return __awaiter(this, void 0, void 0, function* () {
95
- if ((yield fileExistsAsync(filePath)) == false) {
96
- throw `Process uploaded file async error, unable to find file ${filePath}`;
97
- }
98
- let checksum = yield (0, md5_file_1.default)(filePath);
99
- let stats = yield fileStat(filePath);
100
- let filename = `${DFWUtils_1.default.uuid()}.${(_a = cfg.ext) !== null && _a !== void 0 ? _a : DFWUtils_1.default.getFilenameExtension(filePath)}`;
101
- let mimetype = DFWUtils_1.default.getFileMimetype(filename);
102
- let partialPath = `${cfg.protected ? this.LOCAL_PROTECTED_UPLOAD_DIR : this.LOCAL_PUBLIC_UPLOAD_DIR}/${luxon_1.DateTime.now().toFormat("y/MM")}`;
103
- let expire = cfg.expiration ? cfg.expiration : null;
104
- let finalFilePath = `${partialPath}/${filename}`;
105
- let description = cfg.description;
106
- let variant = cfg.variant;
107
- let idParent = typeof cfg.parent == "object" ? cfg.parent.id : cfg.parent;
108
- let idUser = typeof cfg.user === "object" ? cfg.user.id : cfg.user;
109
- if ((yield fileExistsAsync(partialPath)) == false) {
110
- yield fileMakeDir(partialPath, { recursive: true });
111
- }
112
- if (moveLocalFile) {
113
- yield fileRenameAsync(filePath, finalFilePath).catch((e) => {
114
- throw new Error("Process uploaded file async error, unable to move file uploaded: " + e);
115
- });
116
- }
117
- else {
118
- yield fileCopy(filePath, finalFilePath).catch((e) => {
119
- throw new Error("Process uploaded file async error, unable to copy file uploaded: " + e);
120
- });
121
- }
122
- // Removing same variant if has variant and parent
123
- if (cfg.parent && cfg.variant) {
124
- let variantFiles = yield this.db.dfw_file.findMany({
125
- where: {
126
- idParent,
127
- variant,
128
- }
129
- });
130
- for (let vFile of variantFiles) {
131
- yield this.removeFileAsync(vFile);
132
- }
133
- }
134
- return this.db.dfw_file.create({
135
- data: {
136
- idParent,
137
- mimetype,
138
- checksum,
139
- expire,
140
- variant,
141
- description,
142
- idUser,
143
- path: finalFilePath,
144
- slug: cfg.slug,
145
- size: stats.size,
146
- }
147
- });
148
- });
149
- }
150
- assignVirtualFileAsync(url, cfg) {
151
- return __awaiter(this, void 0, void 0, function* () {
152
- let checksum = cfg.checksum;
153
- let mimetype = DFWUtils_1.default.getFileMimetype(url);
154
- let expire = cfg.expire ? cfg.expire : null;
155
- let description = cfg.description;
156
- let variant = cfg.variant;
157
- let idParent = typeof cfg.parent == "object" ? cfg.parent.id : cfg.parent;
158
- let idUser = typeof cfg.user === "object" ? cfg.user.id : cfg.user;
159
- return this.db.dfw_file.create({
160
- data: {
161
- idParent,
162
- mimetype,
163
- checksum,
164
- expire,
165
- variant,
166
- description,
167
- idUser,
168
- path: url,
169
- slug: undefined,
170
- size: cfg.size,
171
- virtual: true
172
- }
173
- });
174
- });
175
- }
176
- /**
177
- *
178
- * @param bodyFileName
179
- * @param cfg
180
- */
181
- flushUpload(req, file, cfg = {}) {
182
- return __awaiter(this, void 0, void 0, function* () {
183
- if (!req.files)
184
- throw `DFW_ERROR_UPLOAD_ENPOINT_MUST_BE_ENABLED`;
185
- if (!req.files[file])
186
- throw `DFW_ERROR_UNABLE_TO_FOUND_FILE_UPLOAD_NAME`;
187
- if (Array.isArray(!req.files[file])) {
188
- return req.files[file].map((fileData, index) => __awaiter(this, void 0, void 0, function* () {
189
- return yield this.assignLocalFileAsync(fileData.tempFilePath, Object.assign({
190
- user: req.dfw.session.user,
191
- ext: DFWUtils_1.default.getFilenameExtension(fileData.name)
192
- }, cfg), true);
193
- }));
194
- }
195
- else {
196
- return yield this.assignLocalFileAsync(req.files[file].tempFilePath, Object.assign({
197
- user: req.dfw.session.user,
198
- ext: DFWUtils_1.default.getFilenameExtension(req.files[file].name)
199
- }, cfg), true);
200
- }
201
- });
202
- }
203
- /**
204
- *
205
- * @param posfix
206
- * @returns
207
- */
208
- generateTempFileName(posfix) {
209
- return path.join(this.tmpDir, `${DFWUtils_1.default.uuid()}${posfix ? `.${posfix}` : ""}`);
210
- }
211
- /**
212
- * Get an array of all childrens of the file in the tree (including 2 levels of nested files)
213
- * @param file
214
- */
215
- getChildrenFileIdsAsync(file) {
216
- return __awaiter(this, void 0, void 0, function* () {
217
- let queryRes = yield this.db.dfw_file.findMany({
218
- select: {
219
- id: true,
220
- idParent: true,
221
- children: true,
222
- },
223
- where: {
224
- idParent: typeof file == "number" ? file : file.id
225
- }
226
- });
227
- let res = [];
228
- for (let f of queryRes) {
229
- res.push(f.id);
230
- for (let fc of f.children) {
231
- res.push(fc.id);
232
- }
233
- }
234
- return res.flat();
235
- });
236
- }
237
- /**
238
- *
239
- * @param file
240
- */
241
- removeFileAsync(file) {
242
- return __awaiter(this, void 0, void 0, function* () {
243
- let ids = [typeof file == "object" ? file.id : file, ...yield this.getChildrenFileIdsAsync(file)];
244
- let deletableFiles = yield this.db.dfw_file.findMany({
245
- select: {
246
- id: true,
247
- path: true,
248
- virtual: true
249
- },
250
- where: {
251
- id: {
252
- in: ids
253
- }
254
- }
255
- });
256
- for (let file of deletableFiles) {
257
- if (fs.existsSync(file.path)) {
258
- if (!file.virtual) {
259
- yield fileUnlink(file.path);
260
- }
261
- yield this.db.dfw_file.delete({
262
- where: {
263
- id: file.id
264
- }
265
- });
266
- }
267
- }
268
- return deletableFiles;
269
- });
270
- }
271
- /**
272
- *
273
- */
274
- sweepExpiredFilesAsync() {
275
- return __awaiter(this, void 0, void 0, function* () {
276
- });
277
- }
278
- }
279
- exports.default = FileManager;
280
- //# sourceMappingURL=FileManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FileManager.js","sourceRoot":"","sources":["../../src/manager/FileManager.ts"],"names":[],"mappings":"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"}
@@ -1,51 +0,0 @@
1
- import { Request, Response } from "express";
2
- import { DFWRequest } from "../types/DFWRequestScheme";
3
- import { ListenerSecurityConfig } from "../types/APIListenerConfig";
4
- import DFWModule from "./DFWModule";
5
- import { dfw_access, dfw_credential, dfw_user } from "@prisma/client";
6
- export type SecurityScheme = {
7
- hasAccessAsync: (access: string | string[] | number | number[] | dfw_access | dfw_access[]) => Promise<boolean>;
8
- hasCredentialsAsync: (credentials: string | string[] | number | number[] | dfw_credential | dfw_credential[]) => Promise<boolean>;
9
- };
10
- export default class SecurityManager extends DFWModule {
11
- static readonly RULE_LOGGED_SESSION = 0;
12
- static readonly RULE_ACCESS = 1;
13
- static readonly RULE_CREDENTIAL = 2;
14
- static readonly RULE_BODY_PARAMS_SETTED = 3;
15
- static readonly RULE_QUERY_PARAMS_SETTED = 4;
16
- static readonly RULE_LABELS: {
17
- 0: string;
18
- 1: string;
19
- 2: string;
20
- 3: string;
21
- 4: string;
22
- };
23
- middleware: (req: DFWRequest, res: Response) => Promise<void>;
24
- /**
25
- * Genera un array de security bindings a partir de un obejto ListenerSecurityConfig
26
- * @param securityObject
27
- */
28
- static jsonToBindings(securityObject: ListenerSecurityConfig): [number, any][];
29
- static verifyPassword(encoded: string, test: string): Promise<boolean>;
30
- static encryptPassword(password: string): Promise<string>;
31
- /**
32
- * Check all security bindings from a request
33
- * @param req
34
- * @param bindings
35
- */
36
- checkBindingArrayAsync(req: DFWRequest, bindings: [number, any][]): Promise<boolean>;
37
- /**
38
- *
39
- * @param req
40
- * @param type
41
- * @param value
42
- */
43
- checkBindingAsync(req: DFWRequest, type: number, value: any | any[]): Promise<boolean>;
44
- createCredentialAsync(name: string): Promise<dfw_credential>;
45
- checkUserCredentialsAsync(user: dfw_user | null | undefined, credential: dfw_credential | dfw_credential[] | string | string[]): Promise<boolean>;
46
- checkUserAccessAsync(user: dfw_user | null | undefined, access: dfw_access | dfw_access[] | string | string[]): Promise<boolean>;
47
- addCredentialToAsync(user: number | dfw_user, credential: dfw_credential | number | string | any[]): any;
48
- checkBodyParams(req: Request, params: string[]): boolean;
49
- checkQueryParams(req: Request, params: string[]): boolean;
50
- }
51
- //# sourceMappingURL=SecurityManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SecurityManager.d.ts","sourceRoot":"","sources":["../../src/manager/SecurityManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAGtE,MAAM,MAAM,cAAc,GAAG;IACzB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,UAAU,GAAG,UAAU,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/G,mBAAmB,EAAE,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,cAAc,GAAG,cAAc,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CACpI,CAAA;AAED,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,SAAS;IAElD,MAAM,CAAC,QAAQ,CAAC,mBAAmB,KAAK;IACxC,MAAM,CAAC,QAAQ,CAAC,WAAW,KAAK;IAChC,MAAM,CAAC,QAAQ,CAAC,eAAe,KAAK;IACpC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,KAAK;IAC5C,MAAM,CAAC,QAAQ,CAAC,wBAAwB,KAAK;IAE7C,MAAM,CAAC,QAAQ,CAAC,WAAW;;;;;;MAM1B;IAEM,UAAU,QAAe,UAAU,OAAO,QAAQ,mBAExD;IAED;;;OAGG;WACW,cAAc,CAAC,cAAc,EAAE,sBAAsB,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;WAiCjE,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;WAS/D,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQtE;;;;OAIG;IACU,sBAAsB,CAAC,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAWjG;;;;;OAKG;IACU,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IA4BtF,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAI5D,yBAAyB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,EAAE,UAAU,EAAE,cAAc,GAAG,cAAc,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE;IAK9H,oBAAoB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,EAAE,MAAM,EAAE,UAAU,GAAG,UAAU,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE;IAK7G,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,UAAU,EAAE,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,GAAG,EAAE;IAkCxG,eAAe,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO;IAKxD,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO;CAKnE"}
@@ -1,201 +0,0 @@
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 DFWModule_1 = __importDefault(require("./DFWModule"));
16
- const bcrypt_1 = __importDefault(require("bcrypt"));
17
- class SecurityManager extends DFWModule_1.default {
18
- constructor() {
19
- super(...arguments);
20
- this.middleware = (req, res) => __awaiter(this, void 0, void 0, function* () {
21
- req.dfw.SecurityManager = this;
22
- });
23
- }
24
- /**
25
- * Genera un array de security bindings a partir de un obejto ListenerSecurityConfig
26
- * @param securityObject
27
- */
28
- static jsonToBindings(securityObject) {
29
- let bindings = [];
30
- if (securityObject.session !== undefined) {
31
- bindings.push([SecurityManager.RULE_LOGGED_SESSION, securityObject.session ? true : false]);
32
- }
33
- if (securityObject.credentials) {
34
- bindings.push([SecurityManager.RULE_CREDENTIAL, securityObject.credentials]);
35
- }
36
- if (securityObject.access) {
37
- bindings.push([SecurityManager.RULE_ACCESS, securityObject.access]);
38
- }
39
- if (securityObject.validation) {
40
- if (securityObject.validation.body) {
41
- bindings.push([SecurityManager.RULE_BODY_PARAMS_SETTED, securityObject.validation.body]);
42
- }
43
- if (securityObject.validation.query) {
44
- bindings.push([SecurityManager.RULE_QUERY_PARAMS_SETTED, securityObject.validation.query]);
45
- }
46
- }
47
- if (securityObject.bindings) {
48
- for (let binding of securityObject.bindings) {
49
- bindings.push(binding);
50
- }
51
- }
52
- return bindings;
53
- }
54
- ;
55
- static verifyPassword(encoded, test) {
56
- return __awaiter(this, void 0, void 0, function* () {
57
- return bcrypt_1.default
58
- .compare(test, encoded)
59
- .catch(err => {
60
- console.error(err.message);
61
- return false;
62
- });
63
- });
64
- }
65
- static encryptPassword(password) {
66
- return __awaiter(this, void 0, void 0, function* () {
67
- return bcrypt_1.default
68
- .hash(password, 9).catch(err => {
69
- console.error(err.message);
70
- throw "[DFW] ERROR HASHING PASSWORD";
71
- });
72
- });
73
- }
74
- /**
75
- * Check all security bindings from a request
76
- * @param req
77
- * @param bindings
78
- */
79
- checkBindingArrayAsync(req, bindings) {
80
- return __awaiter(this, void 0, void 0, function* () {
81
- for (let i = 0; i < bindings.length; i++) {
82
- let binding = bindings[i];
83
- if ((yield this.checkBindingAsync(req, binding[0], binding[1])) === false) {
84
- return false;
85
- }
86
- }
87
- return true;
88
- });
89
- }
90
- /**
91
- *
92
- * @param req
93
- * @param type
94
- * @param value
95
- */
96
- checkBindingAsync(req, type, value) {
97
- return __awaiter(this, void 0, void 0, function* () {
98
- switch (type) {
99
- case SecurityManager.RULE_LOGGED_SESSION: {
100
- return req.dfw.session.isLogged === value; // checks session state
101
- }
102
- case SecurityManager.RULE_CREDENTIAL: {
103
- return yield this.checkUserCredentialsAsync(req.dfw.session.user, value); // checks credentials array
104
- }
105
- case SecurityManager.RULE_ACCESS: {
106
- return yield this.checkUserAccessAsync(req.dfw.session.user, value); // checks access array
107
- }
108
- case SecurityManager.RULE_BODY_PARAMS_SETTED: {
109
- return this.checkBodyParams(req, value); // Check params array on body
110
- }
111
- case SecurityManager.RULE_QUERY_PARAMS_SETTED: {
112
- return this.checkQueryParams(req, value); // Check params array on body
113
- }
114
- default: {
115
- return false; // UNKNOWN RULE always return false
116
- }
117
- }
118
- });
119
- }
120
- createCredentialAsync(name) {
121
- return __awaiter(this, void 0, void 0, function* () {
122
- return this.db.dfw_credential.create({ data: { name, } });
123
- });
124
- }
125
- checkUserCredentialsAsync(user, credential) {
126
- return __awaiter(this, void 0, void 0, function* () {
127
- if (!user)
128
- return false;
129
- return false;
130
- });
131
- }
132
- checkUserAccessAsync(user, access) {
133
- return __awaiter(this, void 0, void 0, function* () {
134
- if (!user)
135
- return false;
136
- return false;
137
- });
138
- }
139
- addCredentialToAsync(user, credential) {
140
- return __awaiter(this, void 0, void 0, function* () {
141
- const idUser = typeof user === "object" ? user.id : user;
142
- if (Array.isArray(credential)) {
143
- let result = yield Promise.all(credential.map((credentialObj) => this.addCredentialToAsync(user, credentialObj)));
144
- return result.flat(1);
145
- }
146
- else {
147
- let idCredential;
148
- if (typeof credential == "number") {
149
- idCredential = credential;
150
- }
151
- else if (typeof credential == "string") {
152
- let credentialObj = (yield this.db.dfw_credential.findFirst({ where: { name: credential } }));
153
- if (credentialObj) {
154
- idCredential = credentialObj.id;
155
- }
156
- else {
157
- return [];
158
- }
159
- }
160
- else {
161
- idCredential = credential.id;
162
- }
163
- let newCredential = yield this.db.dfw_credential.update({
164
- data: {
165
- users: {
166
- connect: {
167
- id: idUser
168
- }
169
- }
170
- },
171
- where: {
172
- id: idCredential
173
- }
174
- }).catch((e) => []);
175
- return Array.isArray(newCredential) ? newCredential : [newCredential];
176
- }
177
- });
178
- }
179
- checkBodyParams(req, params) {
180
- let keys = req.body ? Object.keys(req.body) : [];
181
- return keys.length >= params.length && params.every(v => keys.includes(v));
182
- }
183
- checkQueryParams(req, params) {
184
- let keys = req.query ? Object.keys(req.query) : [];
185
- return keys.length >= params.length && params.every(v => keys.includes(v));
186
- }
187
- }
188
- SecurityManager.RULE_LOGGED_SESSION = 0;
189
- SecurityManager.RULE_ACCESS = 1;
190
- SecurityManager.RULE_CREDENTIAL = 2;
191
- SecurityManager.RULE_BODY_PARAMS_SETTED = 3;
192
- SecurityManager.RULE_QUERY_PARAMS_SETTED = 4;
193
- SecurityManager.RULE_LABELS = {
194
- [SecurityManager.RULE_LOGGED_SESSION]: "access denied (you need to be logged)",
195
- [SecurityManager.RULE_ACCESS]: "access denied (you dond have the access to this)",
196
- [SecurityManager.RULE_CREDENTIAL]: "access denied (you dond have the credentials to this)",
197
- [SecurityManager.RULE_BODY_PARAMS_SETTED]: "missing post arguments setted",
198
- [SecurityManager.RULE_QUERY_PARAMS_SETTED]: "missing query arguments setted",
199
- };
200
- exports.default = SecurityManager;
201
- //# sourceMappingURL=SecurityManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SecurityManager.js","sourceRoot":"","sources":["../../src/manager/SecurityManager.ts"],"names":[],"mappings":"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"}
@@ -1,41 +0,0 @@
1
- import { Response } from "express";
2
- import DFWInstance from "../DFWInstance";
3
- import { DFWRequest } from "../types/DFWRequestScheme";
4
- import DFWModule from "./DFWModule";
5
- export default class SessionManager extends DFWModule {
6
- readonly sessionExpirationDays: number;
7
- readonly stkFieldName: string;
8
- readonly sidFieldName: string;
9
- constructor(DFW: DFWInstance);
10
- middleware: (req: DFWRequest, res: Response) => Promise<void>;
11
- /**
12
- *
13
- * @param req
14
- * @param res
15
- */
16
- private regenerateSessionAsync;
17
- /**
18
- *
19
- * @param user
20
- * @param password
21
- * @param persist undefined => onli browser session time | number => number in days that sessiopn keeps opened
22
- */
23
- loginAsync(req: DFWRequest, user: string, password: string): Promise<boolean>;
24
- /**
25
- *
26
- * @param req
27
- * @param res
28
- */
29
- logoutAsync(req: DFWRequest): Promise<void>;
30
- /**
31
- * set (or reset) cookies if needed
32
- * @param req
33
- * @param res
34
- */
35
- setSessionCookies(req: DFWRequest, res: Response): void;
36
- /**
37
- * Destroy all sessions that expires 1 day ago
38
- */
39
- sweepExpiredSessionsAsync(): Promise<void>;
40
- }
41
- //# sourceMappingURL=SessionManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionManager.d.ts","sourceRoot":"","sources":["../../src/manager/SessionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,WAAW,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,SAAS,MAAM,aAAa,CAAC;AAQpC,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,SAAS;IAEjD,SAAgB,qBAAqB,EAAE,MAAM,CAAC;IAC9C,SAAgB,YAAY,EAAE,MAAM,CAAS;IAC7C,SAAgB,YAAY,EAAE,MAAM,CAAS;gBAEjC,GAAG,EAAE,WAAW;IAOrB,UAAU,QAAe,UAAU,OAAO,QAAQ,mBAuDvD;IAEF;;;;OAIG;YACW,sBAAsB;IAepC;;;;;OAKG;IACU,UAAU,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA2C1F;;;;OAIG;IACU,WAAW,CAAC,GAAG,EAAE,UAAU;IAWxC;;;;OAIG;IACI,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ;IAavD;;OAEG;IACU,yBAAyB;CASzC"}