@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
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":"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"}
@@ -0,0 +1,17 @@
1
+ import { PrismaClient } from "@prisma/client";
2
+ import * as runtime from "@prisma/client/runtime/library";
3
+ import DFWCore from "..";
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,IAAI,CAAA;AAExB,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 __1 = __importDefault(require(".."));
16
+ class DFWController {
17
+ constructor() {
18
+ this._db = __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 __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,2CAAwB;AAExB,MAAM,aAAa;IAAnB;QACY,QAAG,GAAiB,WAAO,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,WAAO,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"}
@@ -0,0 +1,69 @@
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 __rest = (this && this.__rest) || function (s, e) {
12
+ var t = {};
13
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
14
+ t[p] = s[p];
15
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
16
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
17
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
18
+ t[p[i]] = s[p[i]];
19
+ }
20
+ return t;
21
+ };
22
+ var __importDefault = (this && this.__importDefault) || function (mod) {
23
+ return (mod && mod.__esModule) ? mod : { "default": mod };
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const DFWUtils_1 = __importDefault(require("../DFWUtils"));
27
+ const DFWController_1 = __importDefault(require("./DFWController"));
28
+ const DFWSecurityController_1 = __importDefault(require("./DFWSecurityController"));
29
+ class DFWUserController extends DFWController_1.default {
30
+ validateUserPasswordAsync(identifier, password) {
31
+ return __awaiter(this, void 0, void 0, function* () {
32
+ const isEmail = DFWUtils_1.default.isEmail(identifier);
33
+ const nick = isEmail ? undefined : identifier;
34
+ const email = isEmail ? identifier : undefined;
35
+ const user = yield this.db.dfw_user.findUnique({
36
+ select: {
37
+ id: true,
38
+ encodedKey: true
39
+ },
40
+ where: {
41
+ nick,
42
+ email
43
+ }
44
+ });
45
+ if (!user || !user.encodedKey)
46
+ return null;
47
+ const check = yield DFWUtils_1.default.verifyPassword(user.encodedKey, password);
48
+ if (!check)
49
+ return false;
50
+ return user.id;
51
+ });
52
+ }
53
+ createUserAsync(_a) {
54
+ return __awaiter(this, void 0, void 0, function* () {
55
+ var { password } = _a, params = __rest(_a, ["password"]);
56
+ return this.db.dfw_user.create({
57
+ data: Object.assign(Object.assign({}, params), { encodedKey: password ? yield DFWUtils_1.default.encryptPassword(password) : undefined })
58
+ });
59
+ });
60
+ }
61
+ assignCredentialAsync(user, credential) {
62
+ return __awaiter(this, void 0, void 0, function* () {
63
+ const SecurityControl = new DFWSecurityController_1.default().use(this.db);
64
+ return SecurityControl.attachUserToCredentialAsync(user, credential);
65
+ });
66
+ }
67
+ }
68
+ exports.default = DFWUserController;
69
+ //# sourceMappingURL=DFWUserController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DFWUserController.js","sourceRoot":"","sources":["../../src/controller/DFWUserController.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AACA,2DAAmC;AACnC,oEAA4C;AAC5C,oFAA4D;AAE5D,MAAM,iBAAkB,SAAQ,uBAAa;IAE5B,yBAAyB,CAAC,UAAkB,EAAE,QAAa;;YACpE,MAAM,OAAO,GAAG,kBAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;YAC5C,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAA;YAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAA;YAE9C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;gBAC3C,MAAM,EAAE;oBACJ,EAAE,EAAE,IAAI;oBACR,UAAU,EAAE,IAAI;iBACnB;gBACD,KAAK,EAAE;oBACH,IAAI;oBACJ,KAAK;iBACR;aACJ,CAAC,CAAA;YAEF,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU;gBAAE,OAAO,IAAI,CAAA;YAE1C,MAAM,KAAK,GAAG,MAAM,kBAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;YAEtE,IAAI,CAAC,KAAK;gBAAE,OAAO,KAAK,CAAA;YAExB,OAAO,IAAI,CAAC,EAAE,CAAA;QAClB,CAAC;KAAA;IAEY,eAAe,CAAC,EAAgG;;gBAAhG,EAAE,QAAQ,OAAsF,EAAjF,MAAM,cAArB,YAAuB,CAAF;YAC9C,OAAO,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC3B,IAAI,kCACG,MAAM,KACT,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,kBAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,GAC9E;aACJ,CAAC,CAAA;QACN,CAAC;KAAA;IAEY,qBAAqB,CAAC,IAAgC,EAAE,UAAmF;;YACpJ,MAAM,eAAe,GAAG,IAAI,+BAAqB,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAChE,OAAO,eAAe,CAAC,2BAA2B,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACzE,CAAC;KAAA;CACJ;AAED,kBAAe,iBAAiB,CAAA"}
package/lib/index.d.ts CHANGED
@@ -1,11 +1,40 @@
1
- import DFWInstance from "./DFWInstance";
1
+ import { PrismaClient } from "@prisma/client";
2
+ import { Express, Router } from "express";
2
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
+ }
3
16
  export declare class DFWCore {
4
- static DFW: DFWInstance;
5
- private static instances;
6
- private static listeners;
7
- static createInstance(config?: DFWConfig, name?: string): DFWInstance;
8
- static get(name?: string): DFWInstance | undefined;
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>;
9
38
  }
10
39
  export default DFWCore;
11
40
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,qBAAa,OAAO;IAChB,OAAc,GAAG,EAAC,WAAW,CAAC;IAE9B,OAAO,CAAC,MAAM,CAAC,SAAS,CAAgC;IAExD,OAAO,CAAC,MAAM,CAAC,SAAS,CAAK;WAEf,cAAc,CAAC,MAAM,GAAC,SAAc,EAAC,IAAI,SAAS;WAWlD,GAAG,CAAC,IAAI,GAAC,MAAe,GAAE,WAAW,GAAC,SAAS;CAGhE;AAED,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.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"}