@scefira/dfw 0.2.10 → 1.0.1

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 (132) hide show
  1. package/lib/DFWCore.d.ts +40 -0
  2. package/lib/DFWCore.d.ts.map +1 -0
  3. package/lib/DFWCore.js +123 -0
  4. package/lib/DFWCore.js.map +1 -0
  5. package/lib/DFWUtils.d.ts +3 -0
  6. package/lib/DFWUtils.d.ts.map +1 -1
  7. package/lib/DFWUtils.js +34 -2
  8. package/lib/DFWUtils.js.map +1 -1
  9. package/lib/controller/DFWController.d.ts +17 -0
  10. package/lib/controller/DFWController.d.ts.map +1 -0
  11. package/lib/{manager/DatabaseManager.js → controller/DFWController.js} +28 -8
  12. package/lib/controller/DFWController.js.map +1 -0
  13. package/lib/controller/DFWSecurityController.d.ts +29 -0
  14. package/lib/controller/DFWSecurityController.d.ts.map +1 -0
  15. package/lib/controller/DFWSecurityController.js +107 -0
  16. package/lib/controller/DFWSecurityController.js.map +1 -0
  17. package/lib/controller/DFWSessionController.d.ts +8 -0
  18. package/lib/controller/DFWSessionController.d.ts.map +1 -0
  19. package/lib/controller/DFWSessionController.js +45 -0
  20. package/lib/controller/DFWSessionController.js.map +1 -0
  21. package/lib/controller/DFWUserController.d.ts +22 -0
  22. package/lib/controller/DFWUserController.d.ts.map +1 -0
  23. package/lib/controller/DFWUserController.js +69 -0
  24. package/lib/controller/DFWUserController.js.map +1 -0
  25. package/lib/index.d.ts +3 -10
  26. package/lib/index.d.ts.map +1 -1
  27. package/lib/index.js +20 -20
  28. package/lib/index.js.map +1 -1
  29. package/lib/lib/APIManager.d.ts +10 -0
  30. package/lib/lib/APIManager.d.ts.map +1 -0
  31. package/lib/lib/APIManager.js +130 -0
  32. package/lib/lib/APIManager.js.map +1 -0
  33. package/lib/lib/DFWSessionStore.d.ts +11 -0
  34. package/lib/lib/DFWSessionStore.d.ts.map +1 -0
  35. package/lib/lib/DFWSessionStore.js +60 -0
  36. package/lib/lib/DFWSessionStore.js.map +1 -0
  37. package/lib/lib/SessionManager.d.ts +6 -0
  38. package/lib/lib/SessionManager.d.ts.map +1 -0
  39. package/lib/lib/SessionManager.js +9 -0
  40. package/lib/lib/SessionManager.js.map +1 -0
  41. package/lib/lib/strategies/DFWPassportStrategy.d.ts +4 -0
  42. package/lib/lib/strategies/DFWPassportStrategy.d.ts.map +1 -0
  43. package/lib/lib/strategies/DFWPassportStrategy.js +33 -0
  44. package/lib/lib/strategies/DFWPassportStrategy.js.map +1 -0
  45. package/lib/listeners/DELETEListener.d.ts +4 -0
  46. package/lib/listeners/DELETEListener.d.ts.map +1 -0
  47. package/lib/listeners/DELETEListener.js +10 -0
  48. package/lib/listeners/DELETEListener.js.map +1 -0
  49. package/lib/listeners/GETListener.d.ts +4 -0
  50. package/lib/listeners/GETListener.d.ts.map +1 -0
  51. package/lib/listeners/GETListener.js +10 -0
  52. package/lib/listeners/GETListener.js.map +1 -0
  53. package/lib/listeners/PATCHListener.d.ts +4 -0
  54. package/lib/listeners/PATCHListener.d.ts.map +1 -0
  55. package/lib/listeners/PATCHListener.js +10 -0
  56. package/lib/listeners/PATCHListener.js.map +1 -0
  57. package/lib/listeners/POSTListener.d.ts +4 -0
  58. package/lib/listeners/POSTListener.d.ts.map +1 -0
  59. package/lib/listeners/POSTListener.js +10 -0
  60. package/lib/listeners/POSTListener.js.map +1 -0
  61. package/lib/listeners/PUTListener.d.ts +4 -0
  62. package/lib/listeners/PUTListener.d.ts.map +1 -0
  63. package/lib/listeners/PUTListener.js +10 -0
  64. package/lib/listeners/PUTListener.js.map +1 -0
  65. package/lib/listeners/RawListener.d.ts +5 -0
  66. package/lib/listeners/RawListener.d.ts.map +1 -0
  67. package/lib/listeners/RawListener.js +13 -0
  68. package/lib/listeners/RawListener.js.map +1 -0
  69. package/lib/listeners/auth/DFWAuthListener.d.ts +4 -0
  70. package/lib/listeners/auth/DFWAuthListener.d.ts.map +1 -0
  71. package/lib/listeners/auth/DFWAuthListener.js +31 -0
  72. package/lib/listeners/auth/DFWAuthListener.js.map +1 -0
  73. package/lib/test.js +86 -63
  74. package/lib/test.js.map +1 -1
  75. package/lib/types/APIListener.d.ts +51 -0
  76. package/lib/types/APIListener.d.ts.map +1 -0
  77. package/lib/types/{DFWRequestScheme.js → APIListener.js} +1 -1
  78. package/lib/types/APIListener.js.map +1 -0
  79. package/lib/types/DFWConfig.d.ts +23 -30
  80. package/lib/types/DFWConfig.d.ts.map +1 -1
  81. package/lib/types/DFWRequest.d.ts +26 -0
  82. package/lib/types/DFWRequest.d.ts.map +1 -0
  83. package/lib/types/{APIListenerConfig.js → DFWRequest.js} +1 -1
  84. package/lib/types/DFWRequest.js.map +1 -0
  85. package/lib/types/index.d.ts +4 -0
  86. package/lib/types/index.d.ts.map +1 -0
  87. package/lib/types/{DFWBoot.js → index.js} +1 -1
  88. package/lib/types/index.js.map +1 -0
  89. package/package.json +19 -11
  90. package/prisma/schema/dfw.prisma +91 -0
  91. package/prisma/schema/schema.prisma +9 -0
  92. package/lib/DFWInstance.d.ts +0 -21
  93. package/lib/DFWInstance.d.ts.map +0 -1
  94. package/lib/DFWInstance.js +0 -56
  95. package/lib/DFWInstance.js.map +0 -1
  96. package/lib/manager/APIManager.d.ts +0 -48
  97. package/lib/manager/APIManager.d.ts.map +0 -1
  98. package/lib/manager/APIManager.js +0 -211
  99. package/lib/manager/APIManager.js.map +0 -1
  100. package/lib/manager/DFWModule.d.ts +0 -14
  101. package/lib/manager/DFWModule.d.ts.map +0 -1
  102. package/lib/manager/DFWModule.js +0 -20
  103. package/lib/manager/DFWModule.js.map +0 -1
  104. package/lib/manager/DatabaseManager.d.ts +0 -9
  105. package/lib/manager/DatabaseManager.d.ts.map +0 -1
  106. package/lib/manager/DatabaseManager.js.map +0 -1
  107. package/lib/manager/FileManager.d.ts +0 -149
  108. package/lib/manager/FileManager.d.ts.map +0 -1
  109. package/lib/manager/FileManager.js +0 -280
  110. package/lib/manager/FileManager.js.map +0 -1
  111. package/lib/manager/SecurityManager.d.ts +0 -51
  112. package/lib/manager/SecurityManager.d.ts.map +0 -1
  113. package/lib/manager/SecurityManager.js +0 -201
  114. package/lib/manager/SecurityManager.js.map +0 -1
  115. package/lib/manager/SessionManager.d.ts +0 -41
  116. package/lib/manager/SessionManager.d.ts.map +0 -1
  117. package/lib/manager/SessionManager.js +0 -199
  118. package/lib/manager/SessionManager.js.map +0 -1
  119. package/lib/manager/UserManager.d.ts +0 -43
  120. package/lib/manager/UserManager.d.ts.map +0 -1
  121. package/lib/manager/UserManager.js +0 -63
  122. package/lib/manager/UserManager.js.map +0 -1
  123. package/lib/types/APIListenerConfig.d.ts +0 -53
  124. package/lib/types/APIListenerConfig.d.ts.map +0 -1
  125. package/lib/types/APIListenerConfig.js.map +0 -1
  126. package/lib/types/DFWBoot.d.ts +0 -19
  127. package/lib/types/DFWBoot.d.ts.map +0 -1
  128. package/lib/types/DFWBoot.js.map +0 -1
  129. package/lib/types/DFWRequestScheme.d.ts +0 -40
  130. package/lib/types/DFWRequestScheme.d.ts.map +0 -1
  131. package/lib/types/DFWRequestScheme.js.map +0 -1
  132. package/prisma/schema.prisma +0 -98
@@ -0,0 +1,40 @@
1
+ import { PrismaClient } from "@prisma/client";
2
+ import { Express, Router } from "express";
3
+ import { DFWConfig } from "./types/DFWConfig";
4
+ import { APIListener, APIListenerFunction, APIListenerParams } from "./types/APIListener";
5
+ import { DFWRequest, DFWRequestSchema } from "./types/DFWRequest";
6
+ type DFWRegisterItem = APIListener | {
7
+ [key: string]: DFWRegisterItem;
8
+ } | DFWRegisterItem[];
9
+ declare global {
10
+ namespace Express {
11
+ interface Request {
12
+ dfw?: DFWRequestSchema;
13
+ }
14
+ }
15
+ }
16
+ export declare class DFWCore {
17
+ static MAIN_INSTANCE: DFWCore;
18
+ static DFW_PATH: string;
19
+ readonly server: Express;
20
+ readonly RouterAPILevel: Router;
21
+ readonly RouterAccessLevel: Router;
22
+ readonly config: DFWConfig;
23
+ private database;
24
+ private APIManager;
25
+ constructor(config: DFWConfig);
26
+ start(): this;
27
+ addListener(path: string, params: APIListenerParams, listener: APIListenerFunction): any;
28
+ addListener(path: string, params: APIListenerParams): any;
29
+ addListener(path: string, listener: APIListenerFunction): any;
30
+ addAccessValidator(path: string, validator: (req: DFWRequest) => boolean | Promise<boolean>): void;
31
+ /**
32
+ * @param DFW
33
+ * @param node
34
+ * @param path
35
+ */
36
+ register(node: DFWRegisterItem | DFWRegisterItem[], path?: string): void;
37
+ get db(): PrismaClient<import(".prisma/client").Prisma.PrismaClientOptions, never, import("@prisma/client/runtime/library").DefaultArgs>;
38
+ }
39
+ export default DFWCore;
40
+ //# sourceMappingURL=DFWCore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DFWCore.d.ts","sourceRoot":"","sources":["../src/DFWCore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,EAA4B,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAK1F,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAElE,KAAK,eAAe,GAAG,WAAW,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAAA;CAAE,GAAG,eAAe,EAAE,CAAA;AAE3F,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,OAAO,CAAC;QACd,UAAiB,OAAO;YACpB,GAAG,CAAC,EAAE,gBAAgB,CAAA;SACzB;KACJ;CACJ;AAED,qBAAa,OAAO;IAEhB,OAAc,aAAa,EAAE,OAAO,CAAA;IAEpC,OAAc,QAAQ,SAAW;IAEjC,SAAgB,MAAM,EAAE,OAAO,CAAmB;IAClD,SAAgB,cAAc,EAAE,MAAM,CAAY;IAClD,SAAgB,iBAAiB,EAAE,MAAM,CAAY;IAErD,SAAgB,MAAM,EAAE,SAAS,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAe;IAE/B,OAAO,CAAC,UAAU,CAAuB;gBAE7B,MAAM,EAAE,SAAS;IAmBtB,KAAK;IAQL,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,mBAAmB;IAClF,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB;IACnD,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,mBAAmB;IAQvD,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,UAAU,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAYlG;;;;OAIG;IACI,QAAQ,CAAC,IAAI,EAAE,eAAe,GAAG,eAAe,EAAE,EAAE,IAAI,GAAE,MAAW;IAoB5E,IAAI,EAAE,mIAEL;CACJ;AAED,eAAe,OAAO,CAAC"}
package/lib/DFWCore.js ADDED
@@ -0,0 +1,123 @@
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
+ exports.DFWCore = void 0;
39
+ const client_1 = require("@prisma/client");
40
+ const express_1 = __importStar(require("express"));
41
+ const chalk_1 = __importDefault(require("chalk"));
42
+ const fs_1 = __importDefault(require("fs"));
43
+ const DFWUtils_1 = __importDefault(require("./DFWUtils"));
44
+ const APIManager_1 = __importDefault(require("./lib/APIManager"));
45
+ class DFWCore {
46
+ constructor(config) {
47
+ var _a, _b;
48
+ this.server = (0, express_1.default)();
49
+ this.RouterAPILevel = (0, express_1.Router)();
50
+ this.RouterAccessLevel = (0, express_1.Router)();
51
+ this.APIManager = new APIManager_1.default(this);
52
+ this.config = Object.freeze(config);
53
+ this.database = new client_1.PrismaClient({
54
+ log: config.database ? config.database.log ? ['query', 'info', 'warn', 'error'] : undefined : undefined,
55
+ });
56
+ if (fs_1.default.existsSync(DFWCore.DFW_PATH) == false) {
57
+ fs_1.default.mkdirSync(DFWCore.DFW_PATH);
58
+ }
59
+ if ((_a = config.server) === null || _a === void 0 ? void 0 : _a.trustProxy)
60
+ this.server.set('trust proxy', (_b = config.server) === null || _b === void 0 ? void 0 : _b.trustProxy);
61
+ this.APIManager.installAPILAyer();
62
+ this.APIManager.installSecurityLayer();
63
+ DFWCore.MAIN_INSTANCE = this;
64
+ }
65
+ start() {
66
+ var _a, _b;
67
+ const port = (_b = (_a = this.config.server) === null || _a === void 0 ? void 0 : _a.port) !== null && _b !== void 0 ? _b : 8080;
68
+ this.server.listen(port, () => {
69
+ DFWUtils_1.default.log(`Server listening on port ${chalk_1.default.yellow(port)}`);
70
+ });
71
+ return this;
72
+ }
73
+ addListener(path, b, c) {
74
+ const params = (typeof b == 'function' ? c : b);
75
+ const listener = typeof b === 'function' ? b : c;
76
+ this.APIManager.addListener(path, params, listener);
77
+ }
78
+ addAccessValidator(path, validator) {
79
+ this.RouterAccessLevel.use(path, (req, res, next) => __awaiter(this, void 0, void 0, function* () {
80
+ const isValid = yield Promise.resolve(validator(req));
81
+ if (!isValid) {
82
+ return res.status(403).json({ error: 'ACCESS_DENIED' }).end();
83
+ }
84
+ next();
85
+ }));
86
+ }
87
+ /**
88
+ * @param DFW
89
+ * @param node
90
+ * @param path
91
+ */
92
+ register(node, path = "") {
93
+ if (Array.isArray(node)) {
94
+ node.forEach((n) => { this.register(n, path); });
95
+ }
96
+ else if (!!node.listener || !!node.params) {
97
+ if (node.listener) {
98
+ this.addListener(path, node.params, node.listener);
99
+ }
100
+ else {
101
+ this.addListener(path, node.params);
102
+ }
103
+ }
104
+ else if (typeof node == "function") {
105
+ this.addListener(path, node);
106
+ }
107
+ else if (typeof node == "object") {
108
+ for (let okey in node) {
109
+ this.register(node[okey], `${path}/${okey}`);
110
+ }
111
+ }
112
+ else {
113
+ DFWUtils_1.default.log(`Unable to register '${path}' ${typeof node}`, true);
114
+ }
115
+ }
116
+ get db() {
117
+ return this.database;
118
+ }
119
+ }
120
+ exports.DFWCore = DFWCore;
121
+ DFWCore.DFW_PATH = "./.dfw";
122
+ exports.default = DFWCore;
123
+ //# sourceMappingURL=DFWCore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DFWCore.js","sourceRoot":"","sources":["../src/DFWCore.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA8C;AAC9C,mDAAoE;AAGpE,kDAA0B;AAC1B,4CAAmB;AACnB,0DAAkC;AAClC,kEAA0C;AAa1C,MAAa,OAAO;IAehB,YAAY,MAAiB;;QATb,WAAM,GAAY,IAAA,iBAAa,GAAE,CAAC;QAClC,mBAAc,GAAW,IAAA,gBAAM,GAAE,CAAC;QAClC,sBAAiB,GAAW,IAAA,gBAAM,GAAE,CAAC;QAK7C,eAAU,GAAG,IAAI,oBAAU,CAAC,IAAI,CAAC,CAAA;QAGrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAEnC,IAAI,CAAC,QAAQ,GAAG,IAAI,qBAAY,CAAC;YAC7B,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;SAC1G,CAAC,CAAC;QAEH,IAAI,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,EAAE,CAAC;YAC3C,YAAE,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,MAAA,MAAM,CAAC,MAAM,0CAAE,UAAU;YAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,MAAA,MAAM,CAAC,MAAM,0CAAE,UAAU,CAAC,CAAA;QAExF,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,CAAA;QACjC,IAAI,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAA;QAEtC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAA;IAChC,CAAC;IAEM,KAAK;;QACR,MAAM,IAAI,GAAG,MAAA,MAAA,IAAI,CAAC,MAAM,CAAC,MAAM,0CAAE,IAAI,mCAAI,IAAI,CAAA;QAC7C,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;YAC1B,kBAAQ,CAAC,GAAG,CAAC,4BAA4B,eAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnE,CAAC,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACf,CAAC;IAKM,WAAW,CAAC,IAAY,EAAE,CAA0C,EAAE,CAAuB;QAChG,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAsB,CAAA;QACpE,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAwB,CAAA;QAEvE,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;IACvD,CAAC;IAEM,kBAAkB,CAAC,IAAY,EAAE,SAA0D;QAC9F,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAO,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACtD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,GAAiB,CAAC,CAAC,CAAA;YACnE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACX,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC,GAAG,EAAE,CAAA;YACjE,CAAC;YACD,IAAI,EAAE,CAAA;QACV,CAAC,CAAA,CAAC,CAAA;IACN,CAAC;IAID;;;;OAIG;IACI,QAAQ,CAAC,IAAyC,EAAE,OAAe,EAAE;QACxE,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA,CAAC,CAAC,CAAC,CAAA;QACnD,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAC1C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,MAA2B,EAAE,IAAI,CAAC,QAA+B,CAAC,CAAA;YAClG,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,MAA2B,CAAC,CAAA;YAC5D,CAAC;QACL,CAAC;aAAM,IAAI,OAAO,IAAI,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAChC,CAAC;aAAM,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE,CAAC;YACjC,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;gBACpB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC,CAAA;YAChD,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,kBAAQ,CAAC,GAAG,CAAC,uBAAuB,IAAI,KAAK,OAAO,IAAI,EAAE,EAAE,IAAI,CAAC,CAAA;QACrE,CAAC;IACL,CAAC;IAED,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,QAAQ,CAAA;IACxB,CAAC;;AA3FL,0BA4FC;AAxFiB,gBAAQ,GAAG,QAAQ,AAAX,CAAW;AA0FrC,kBAAe,OAAO,CAAC"}
package/lib/DFWUtils.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export default class DFWUtils {
2
2
  static readonly EMAIL_REGEX: RegExp;
3
3
  static isEmail(email: string): boolean;
4
+ static log(message: string, isError?: boolean): void;
4
5
  /**
5
6
  *
6
7
  * @param duration ms of sleeping
@@ -24,5 +25,7 @@ export default class DFWUtils {
24
25
  *
25
26
  */
26
27
  static uuid(): string;
28
+ static verifyPassword(encoded: string, test: string): Promise<boolean>;
29
+ static encryptPassword(password: string): Promise<string>;
27
30
  }
28
31
  //# sourceMappingURL=DFWUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DFWUtils.d.ts","sourceRoot":"","sources":["../src/DFWUtils.ts"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,OAAO,QAAQ;IAEzB,gBAAuB,WAAW,SAA6J;WAEjL,OAAO,CAAC,KAAK,EAAC,MAAM,GAAE,OAAO;IAI3C;;;OAGG;WACiB,UAAU,CAAC,QAAQ,EAAC,MAAM,GAAE,OAAO,CAAC,IAAI,CAAC;IAM7D;;;OAGG;WACW,eAAe,CAAC,IAAI,EAAC,MAAM,GAAE,MAAM,GAAC,IAAI;IAKtD;;;OAGG;WACW,oBAAoB,CAAC,QAAQ,EAAC,MAAM,GAAE,MAAM;IAI1D;;OAEG;WACW,uBAAuB,CAAC,GAAG,EAAC,MAAM,GAAE,MAAM;IAYxD;;OAEG;WACW,IAAI,IAAG,MAAM;CAG9B"}
1
+ {"version":3,"file":"DFWUtils.d.ts","sourceRoot":"","sources":["../src/DFWUtils.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,OAAO,OAAO,QAAQ;IAEzB,gBAAuB,WAAW,SAA6J;WAEjL,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;WAI/B,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe;IAQ3D;;;OAGG;WACiB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/D;;;OAGG;WACW,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAK1D;;;OAGG;WACW,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAI5D;;OAEG;WACW,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAY1D;;OAEG;WACW,IAAI,IAAI,MAAM;WAIR,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;CAOzE"}
package/lib/DFWUtils.js CHANGED
@@ -8,13 +8,26 @@ 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 });
15
+ const chalk_1 = __importDefault(require("chalk"));
16
+ const crypto_1 = require("crypto");
12
17
  const mime_types_1 = require("mime-types");
13
- const uuid = require("uuid");
18
+ const bcrypt_1 = __importDefault(require("bcrypt"));
14
19
  class DFWUtils {
15
20
  static isEmail(email) {
16
21
  return this.EMAIL_REGEX.test(String(email).toLowerCase());
17
22
  }
23
+ static log(message, isError = false) {
24
+ if (isError) {
25
+ console.error(`${chalk_1.default.blueBright('[DFW]')} ${chalk_1.default.red('ERROR')} ${message}`);
26
+ }
27
+ else {
28
+ console.log(`${chalk_1.default.blueBright('[DFW]')} ${message}`);
29
+ }
30
+ }
18
31
  /**
19
32
  *
20
33
  * @param duration ms of sleeping
@@ -56,7 +69,26 @@ class DFWUtils {
56
69
  *
57
70
  */
58
71
  static uuid() {
59
- return uuid.v4();
72
+ return (0, crypto_1.randomUUID)();
73
+ }
74
+ static verifyPassword(encoded, test) {
75
+ return __awaiter(this, void 0, void 0, function* () {
76
+ return bcrypt_1.default
77
+ .compare(test, encoded)
78
+ .catch(err => {
79
+ console.error(err.message);
80
+ return false;
81
+ });
82
+ });
83
+ }
84
+ static encryptPassword(password) {
85
+ return __awaiter(this, void 0, void 0, function* () {
86
+ return bcrypt_1.default
87
+ .hash(password, 9).catch(err => {
88
+ console.error(err.message);
89
+ throw "[DFW] ERROR HASHING PASSWORD";
90
+ });
91
+ });
60
92
  }
61
93
  }
62
94
  DFWUtils.EMAIL_REGEX = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
@@ -1 +1 @@
1
- {"version":3,"file":"DFWUtils.js","sourceRoot":"","sources":["../src/DFWUtils.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,2CAAoC;AAEpC,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAE7B,MAAqB,QAAQ;IAIlB,MAAM,CAAC,OAAO,CAAC,KAAY;QAC9B,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACI,MAAM,CAAO,UAAU,CAAC,QAAe;;YAC1C,MAAM,IAAI,OAAO,CAAC,UAAS,OAAO;gBAChC,UAAU,CAAC,GAAE,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAA;QACN,CAAC;KAAA;IAED;;;OAGG;IACI,MAAM,CAAC,eAAe,CAAC,IAAW;QACrC,IAAI,QAAQ,GAAG,IAAA,mBAAM,EAAC,IAAI,CAAC,CAAC;QAC5B,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IACtC,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,oBAAoB,CAAC,QAAe;QAC9C,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACrE,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,uBAAuB,CAAC,GAAU;QAC5C,IAAI,MAAM,GAAG,CAAC,EACV,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAC,MAAM,CAAC,GAAC,CAAC,CAAC,EACzC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAC3C,CAAC,GAAK,IAAI,CAAC,KAAK,CAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAC,GAAG,GAAC,CAAC,CAAC,CAAE,GAAG,GAAG,EACrD,CAAC,GAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACzB,OAAQ,CAAC,CAAC,MAAM,GAAG,GAAG,EAAG;YACtB,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,uBAAuB,CAAE,GAAG,GAAG,MAAM,CAAE,CAAC;SAC3D;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IAAA,CAAC;IAEF;;OAEG;IACI,MAAM,CAAC,IAAI;QACd,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC;IACrB,CAAC;;AArDsB,oBAAW,GAAG,yJAAyJ,CAAC;kBAF9K,QAAQ"}
1
+ {"version":3,"file":"DFWUtils.js","sourceRoot":"","sources":["../src/DFWUtils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,mCAAoC;AACpC,2CAAoC;AACpC,oDAA2B;AAE3B,MAAqB,QAAQ;IAIlB,MAAM,CAAC,OAAO,CAAC,KAAa;QAC/B,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9D,CAAC;IAEM,MAAM,CAAC,GAAG,CAAC,OAAe,EAAE,UAAmB,KAAK;QACvD,IAAI,OAAO,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,GAAG,eAAK,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,eAAK,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,OAAO,EAAE,CAAC,CAAA;QAClF,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,GAAG,CAAC,GAAG,eAAK,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,EAAE,CAAC,CAAA;QAC1D,CAAC;IACL,CAAC;IAED;;;OAGG;IACI,MAAM,CAAO,UAAU,CAAC,QAAgB;;YAC3C,MAAM,IAAI,OAAO,CAAC,UAAU,OAAO;gBAC/B,UAAU,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YAC/C,CAAC,CAAC,CAAA;QACN,CAAC;KAAA;IAED;;;OAGG;IACI,MAAM,CAAC,eAAe,CAAC,IAAY;QACtC,IAAI,QAAQ,GAAG,IAAA,mBAAM,EAAC,IAAI,CAAC,CAAC;QAC5B,OAAO,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IACtC,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,oBAAoB,CAAC,QAAgB;QAC/C,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACrE,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,uBAAuB,CAAC,GAAW;QAC7C,IAAI,MAAM,GAAG,CAAC,EACV,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAC7C,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,EAC7C,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,EACrD,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACvB,OAAO,CAAC,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YACpB,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,uBAAuB,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,CAAC,CAAC;IACb,CAAC;IAAA,CAAC;IAEF;;OAEG;IACI,MAAM,CAAC,IAAI;QACd,OAAO,IAAA,mBAAU,GAAE,CAAA;IACvB,CAAC;IAEM,MAAM,CAAO,cAAc,CAAC,OAAe,EAAE,IAAY;;YAC5D,OAAO,gBAAM;iBACR,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;iBACtB,KAAK,CAAC,GAAG,CAAC,EAAE;gBACT,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;gBAC1B,OAAO,KAAK,CAAA;YAChB,CAAC,CAAC,CAAA;QACV,CAAC;KAAA;IAEM,MAAM,CAAO,eAAe,CAAC,QAAgB;;YAChD,OAAO,gBAAM;iBACR,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;gBAC3B,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;gBAC1B,MAAM,8BAA8B,CAAA;YACxC,CAAC,CAAC,CAAA;QACV,CAAC;KAAA;;AA9EsB,oBAAW,GAAG,yJAAyJ,CAAC;kBAF9K,QAAQ"}
@@ -0,0 +1,17 @@
1
+ import { PrismaClient } from "@prisma/client";
2
+ import * as runtime from "@prisma/client/runtime/library";
3
+ import DFWCore from "../DFWCore";
4
+ declare class DFWController {
5
+ private _db;
6
+ get db(): PrismaClient<import(".prisma/client").Prisma.PrismaClientOptions, never, runtime.DefaultArgs>;
7
+ get DFW(): DFWCore;
8
+ /**
9
+ *
10
+ * @param db
11
+ * @returns
12
+ */
13
+ use(db: PrismaClient | Omit<PrismaClient, runtime.ITXClientDenyList>): this;
14
+ transaction: (cb: (tx: PrismaClient | Omit<PrismaClient, runtime.ITXClientDenyList>) => Promise<any>) => Promise<any>;
15
+ }
16
+ export default DFWController;
17
+ //# sourceMappingURL=DFWController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DFWController.d.ts","sourceRoot":"","sources":["../../src/controller/DFWController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,KAAK,OAAO,MAAM,gCAAgC,CAAA;AACzD,OAAO,OAAO,MAAM,YAAY,CAAA;AAEhC,cAAM,aAAa;IACf,OAAO,CAAC,GAAG,CAAyC;IAEpD,IAAI,EAAE,kGAEL;IAED,IAAI,GAAG,YAEN;IAED;;;;OAIG;IACI,GAAG,CACN,EAAE,EAAE,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,iBAAiB,CAAC,GACjE,IAAI;IAKA,WAAW,OACV,CACA,EAAE,EAAE,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,iBAAiB,CAAC,KAC/D,OAAO,CAAC,GAAG,CAAC,kBAOpB;CACJ;AAED,eAAe,aAAa,CAAA"}
@@ -12,14 +12,34 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
12
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- const DFWModule_1 = __importDefault(require("./DFWModule"));
16
- class DatabaseManager extends DFWModule_1.default {
17
- constructor(DFW) {
18
- super(DFW);
19
- this.middleware = (req, res) => __awaiter(this, void 0, void 0, function* () {
20
- req.dfw.db = this.instance.database; //Extends sequelize database object to dfw var (quick access)
15
+ const DFWCore_1 = __importDefault(require("../DFWCore"));
16
+ class DFWController {
17
+ constructor() {
18
+ this._db = DFWCore_1.default.MAIN_INSTANCE.db;
19
+ this.transaction = (cb) => __awaiter(this, void 0, void 0, function* () {
20
+ if (this.db.$transaction) {
21
+ return this.db.$transaction(cb);
22
+ }
23
+ else {
24
+ return cb(this.db);
25
+ }
21
26
  });
22
27
  }
28
+ get db() {
29
+ return this._db;
30
+ }
31
+ get DFW() {
32
+ return DFWCore_1.default.MAIN_INSTANCE;
33
+ }
34
+ /**
35
+ *
36
+ * @param db
37
+ * @returns
38
+ */
39
+ use(db) {
40
+ this._db = db;
41
+ return this;
42
+ }
23
43
  }
24
- exports.default = DatabaseManager;
25
- //# sourceMappingURL=DatabaseManager.js.map
44
+ exports.default = DFWController;
45
+ //# sourceMappingURL=DFWController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DFWController.js","sourceRoot":"","sources":["../../src/controller/DFWController.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAEA,yDAAgC;AAEhC,MAAM,aAAa;IAAnB;QACY,QAAG,GAAiB,iBAAO,CAAC,aAAa,CAAC,EAAE,CAAA;QAsB7C,gBAAW,GAAG,CACjB,EAEiB,EACnB,EAAE;YACA,IAAI,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;gBACvB,OAAO,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;YACnC,CAAC;iBAAM,CAAC;gBACJ,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACtB,CAAC;QACL,CAAC,CAAA,CAAA;IACL,CAAC;IA/BG,IAAI,EAAE;QACF,OAAO,IAAI,CAAC,GAAG,CAAA;IACnB,CAAC;IAED,IAAI,GAAG;QACH,OAAO,iBAAO,CAAC,aAAa,CAAA;IAChC,CAAC;IAED;;;;OAIG;IACI,GAAG,CACN,EAAgE;QAEhE,IAAI,CAAC,GAAG,GAAG,EAAkB,CAAA;QAC7B,OAAO,IAAI,CAAA;IACf,CAAC;CAaJ;AAED,kBAAe,aAAa,CAAA"}
@@ -0,0 +1,29 @@
1
+ import { dfw_access, dfw_credential, dfw_user } from "@prisma/client";
2
+ import DFWController from "./DFWController";
3
+ declare class DFWSecurityController extends DFWController {
4
+ createCredentiaAsync(name: string, description?: string): Promise<{
5
+ id: number;
6
+ name: string;
7
+ description: string | null;
8
+ createdAt: Date;
9
+ updatedAt: Date;
10
+ }>;
11
+ createAccessAsync(name: string, description?: string): Promise<{
12
+ id: number;
13
+ name: string;
14
+ description: string | null;
15
+ createdAt: Date;
16
+ updatedAt: Date;
17
+ }>;
18
+ attachUserToCredentialAsync(user: number | Partial<dfw_user>, credential: dfw_credential | number | string | (dfw_credential | number | string)[]): any;
19
+ attachAccessToCredentialAsync(access: number | Partial<dfw_access>, credential: Partial<dfw_credential> | number): Promise<{
20
+ id: number;
21
+ name: string;
22
+ description: string | null;
23
+ createdAt: Date;
24
+ updatedAt: Date;
25
+ } | never[]>;
26
+ userHasCredentialAsync(userSource: number | Partial<dfw_user>, credential: string): Promise<boolean>;
27
+ }
28
+ export default DFWSecurityController;
29
+ //# sourceMappingURL=DFWSecurityController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DFWSecurityController.d.ts","sourceRoot":"","sources":["../../src/controller/DFWSecurityController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,cAAM,qBAAsB,SAAQ,aAAa;IAChC,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;;;;;;;IAIvD,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;;;;;;;IAIpD,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE;IAkCjJ,6BAA6B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,MAAM;;;;;;;IAoBhH,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,MAAM;CAmBjG;AAED,eAAe,qBAAqB,CAAA"}
@@ -0,0 +1,107 @@
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 DFWController_1 = __importDefault(require("./DFWController"));
16
+ class DFWSecurityController extends DFWController_1.default {
17
+ createCredentiaAsync(name, description) {
18
+ return __awaiter(this, void 0, void 0, function* () {
19
+ return this.db.dfw_credential.create({ data: { name, description } });
20
+ });
21
+ }
22
+ createAccessAsync(name, description) {
23
+ return __awaiter(this, void 0, void 0, function* () {
24
+ return this.db.dfw_access.create({ data: { name, description } });
25
+ });
26
+ }
27
+ attachUserToCredentialAsync(user, credential) {
28
+ return __awaiter(this, void 0, void 0, function* () {
29
+ const idUser = typeof user === "object" ? user.id : user;
30
+ if (Array.isArray(credential)) {
31
+ let result = yield Promise.all(credential.map((credentialObj) => this.attachUserToCredentialAsync(user, credentialObj)));
32
+ return result.flat(1);
33
+ }
34
+ else {
35
+ let idCredential;
36
+ if (typeof credential == "number") {
37
+ idCredential = credential;
38
+ }
39
+ else if (typeof credential == "string") {
40
+ let credentialObj = (yield this.db.dfw_credential.findFirst({ select: { id: true }, where: { name: credential } }));
41
+ if (credentialObj) {
42
+ idCredential = credentialObj.id;
43
+ }
44
+ else {
45
+ return [];
46
+ }
47
+ }
48
+ else {
49
+ idCredential = credential.id;
50
+ }
51
+ const newCredential = yield this.db.dfw_credential.update({
52
+ data: {
53
+ users: {
54
+ connect: {
55
+ id: idUser
56
+ }
57
+ }
58
+ },
59
+ where: {
60
+ id: idCredential
61
+ }
62
+ }).catch((e) => []);
63
+ return Array.isArray(newCredential) ? newCredential : [newCredential];
64
+ }
65
+ });
66
+ }
67
+ attachAccessToCredentialAsync(access, credential) {
68
+ return __awaiter(this, void 0, void 0, function* () {
69
+ const idAccess = typeof access === 'object' ? access.id : access;
70
+ const idCredential = typeof credential === 'object' ? credential.id : credential;
71
+ const newCredential = yield this.db.dfw_credential.update({
72
+ data: {
73
+ access: {
74
+ connect: {
75
+ id: idAccess
76
+ }
77
+ }
78
+ },
79
+ where: {
80
+ id: idCredential
81
+ }
82
+ }).catch(() => []);
83
+ return newCredential;
84
+ });
85
+ }
86
+ userHasCredentialAsync(userSource, credential) {
87
+ return __awaiter(this, void 0, void 0, function* () {
88
+ const idUser = typeof userSource === 'object' ? userSource.id : userSource;
89
+ const user = yield this.db.dfw_user.findUnique({
90
+ select: { id: true },
91
+ where: {
92
+ id: idUser,
93
+ credentials: {
94
+ some: {
95
+ OR: [
96
+ { name: credential }
97
+ ]
98
+ }
99
+ }
100
+ }
101
+ });
102
+ return !!user;
103
+ });
104
+ }
105
+ }
106
+ exports.default = DFWSecurityController;
107
+ //# sourceMappingURL=DFWSecurityController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DFWSecurityController.js","sourceRoot":"","sources":["../../src/controller/DFWSecurityController.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { DFWRequest } from "../types/DFWRequest";
2
+ import DFWController from "./DFWController";
3
+ declare class DFWSessionControler extends DFWController {
4
+ updateSessionAgentAsync({ dfw, sessionID, ip, socket, headers }: DFWRequest): Promise<import(".prisma/client").Prisma.BatchPayload | undefined>;
5
+ logoutAsync(req: DFWRequest): Promise<void>;
6
+ }
7
+ export default DFWSessionControler;
8
+ //# sourceMappingURL=DFWSessionController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DFWSessionController.d.ts","sourceRoot":"","sources":["../../src/controller/DFWSessionController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,cAAM,mBAAoB,SAAQ,aAAa;IACrC,uBAAuB,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,UAAU;IAY3E,WAAW,CAAC,GAAG,EAAE,UAAU;CAWpC;AAED,eAAe,mBAAmB,CAAA"}
@@ -0,0 +1,45 @@
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 DFWController_1 = __importDefault(require("./DFWController"));
16
+ class DFWSessionControler extends DFWController_1.default {
17
+ updateSessionAgentAsync(_a) {
18
+ return __awaiter(this, arguments, void 0, function* ({ dfw, sessionID, ip, socket, headers }) {
19
+ if (sessionID) {
20
+ return dfw.db.dfw_session.updateMany({
21
+ data: {
22
+ ip: ip || (socket === null || socket === void 0 ? void 0 : socket.remoteAddress),
23
+ agent: headers['user-agent']
24
+ },
25
+ where: { id: sessionID }
26
+ });
27
+ }
28
+ });
29
+ }
30
+ logoutAsync(req) {
31
+ return __awaiter(this, void 0, void 0, function* () {
32
+ return new Promise((resolve) => {
33
+ req.logout((err) => {
34
+ console.log('passport logout', err);
35
+ req.session.destroy((err) => {
36
+ console.log('session destroyed', err);
37
+ resolve();
38
+ });
39
+ });
40
+ });
41
+ });
42
+ }
43
+ }
44
+ exports.default = DFWSessionControler;
45
+ //# sourceMappingURL=DFWSessionController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DFWSessionController.js","sourceRoot":"","sources":["../../src/controller/DFWSessionController.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,oEAA4C;AAE5C,MAAM,mBAAoB,SAAQ,uBAAa;IACrC,uBAAuB;6DAAC,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAc;YAC7E,IAAI,SAAS,EAAE,CAAC;gBACZ,OAAO,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC;oBACjC,IAAI,EAAE;wBACF,EAAE,EAAE,EAAE,KAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,CAAA;wBAC/B,KAAK,EAAE,OAAO,CAAC,YAAY,CAAC;qBAC/B;oBACD,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;iBAC3B,CAAC,CAAA;YACN,CAAC;QACL,CAAC;KAAA;IAEK,WAAW,CAAC,GAAe;;YAC7B,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBACjC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;oBACf,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAA;oBACnC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;wBACxB,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAA;wBACrC,OAAO,EAAE,CAAA;oBACb,CAAC,CAAC,CAAA;gBACN,CAAC,CAAC,CAAA;YACN,CAAC,CAAC,CAAA;QACN,CAAC;KAAA;CACJ;AAED,kBAAe,mBAAmB,CAAA"}
@@ -0,0 +1,22 @@
1
+ import { dfw_credential, dfw_user } from "@prisma/client";
2
+ import DFWController from "./DFWController";
3
+ declare class DFWUserController extends DFWController {
4
+ validateUserPasswordAsync(identifier: string, password: any): Promise<number | false | null>;
5
+ createUserAsync({ password, ...params }: {
6
+ [key: string]: any;
7
+ nick?: string;
8
+ email?: string;
9
+ password: string;
10
+ }): Promise<{
11
+ id: number;
12
+ nick: string | null;
13
+ email: string | null;
14
+ displayName: string | null;
15
+ encodedKey: string | null;
16
+ createdAt: Date;
17
+ updatedAt: Date;
18
+ }>;
19
+ assignCredentialAsync(user: number | Partial<dfw_user>, credential: dfw_credential | number | string | (dfw_credential | number | string)[]): Promise<dfw_credential[]>;
20
+ }
21
+ export default DFWUserController;
22
+ //# sourceMappingURL=DFWUserController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DFWUserController.d.ts","sourceRoot":"","sources":["../../src/controller/DFWUserController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1D,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAG5C,cAAM,iBAAkB,SAAQ,aAAa;IAE5B,yBAAyB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG;IAyB3D,eAAe,CAAC,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE;;;;;;;;;IAShH,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;CAIvL;AAED,eAAe,iBAAiB,CAAA"}