@volcanicminds/backend 0.6.3 → 0.6.5

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 (107) hide show
  1. package/dist/index.js +332 -0
  2. package/dist/index.js.map +1 -0
  3. package/dist/lib/api/auth/controller/auth.js +337 -0
  4. package/dist/lib/api/auth/controller/auth.js.map +1 -0
  5. package/dist/lib/api/auth/routes.js +195 -0
  6. package/dist/lib/api/auth/routes.js.map +1 -0
  7. package/dist/lib/api/health/controller/health.js +8 -0
  8. package/dist/lib/api/health/controller/health.js.map +1 -0
  9. package/dist/lib/api/health/routes.js +26 -0
  10. package/dist/lib/api/health/routes.js.map +1 -0
  11. package/dist/lib/api/token/controller/token.js +116 -0
  12. package/dist/lib/api/token/controller/token.js.map +1 -0
  13. package/dist/lib/api/token/routes.js +152 -0
  14. package/dist/lib/api/token/routes.js.map +1 -0
  15. package/dist/lib/api/tool/controller/tool.js +25 -0
  16. package/dist/lib/api/tool/controller/tool.js.map +1 -0
  17. package/dist/lib/api/tool/routes.js +26 -0
  18. package/dist/lib/api/tool/routes.js.map +1 -0
  19. package/dist/lib/api/users/controller/user.js +14 -0
  20. package/dist/lib/api/users/controller/user.js.map +1 -0
  21. package/dist/lib/api/users/routes.js +65 -0
  22. package/dist/lib/api/users/routes.js.map +1 -0
  23. package/dist/lib/apollo/context.js +19 -0
  24. package/dist/lib/apollo/context.js.map +1 -0
  25. package/dist/lib/apollo/resolvers.js +9 -0
  26. package/dist/lib/apollo/resolvers.js.map +1 -0
  27. package/dist/lib/apollo/type-defs.js +9 -0
  28. package/dist/lib/apollo/type-defs.js.map +1 -0
  29. package/dist/lib/config/general.js +9 -0
  30. package/dist/lib/config/general.js.map +1 -0
  31. package/dist/lib/config/plugins.js +57 -0
  32. package/dist/lib/config/plugins.js.map +1 -0
  33. package/dist/lib/config/roles.js +19 -0
  34. package/dist/lib/config/roles.js.map +1 -0
  35. package/dist/lib/config/tracking.js +10 -0
  36. package/dist/lib/config/tracking.js.map +1 -0
  37. package/dist/lib/hooks/onError.js +15 -0
  38. package/dist/lib/hooks/onError.js.map +1 -0
  39. package/dist/lib/hooks/onRequest.js +71 -0
  40. package/dist/lib/hooks/onRequest.js.map +1 -0
  41. package/dist/lib/hooks/onResponse.js +25 -0
  42. package/dist/lib/hooks/onResponse.js.map +1 -0
  43. package/dist/lib/hooks/preHandler.js +39 -0
  44. package/dist/lib/hooks/preHandler.js.map +1 -0
  45. package/dist/lib/hooks/preSerialization.js +47 -0
  46. package/dist/lib/hooks/preSerialization.js.map +1 -0
  47. package/dist/lib/loader/general.js +29 -0
  48. package/dist/lib/loader/general.js.map +1 -0
  49. package/dist/lib/loader/hooks.js +46 -0
  50. package/dist/lib/loader/hooks.js.map +1 -0
  51. package/dist/lib/loader/plugins.js +24 -0
  52. package/dist/lib/loader/plugins.js.map +1 -0
  53. package/dist/lib/loader/roles.js +22 -0
  54. package/dist/lib/loader/roles.js.map +1 -0
  55. package/dist/lib/loader/router.js +181 -0
  56. package/dist/lib/loader/router.js.map +1 -0
  57. package/dist/lib/loader/schemas.js +34 -0
  58. package/dist/lib/loader/schemas.js.map +1 -0
  59. package/dist/lib/loader/tracking.js +70 -0
  60. package/dist/lib/loader/tracking.js.map +1 -0
  61. package/dist/lib/loader/translation.js +53 -0
  62. package/dist/lib/loader/translation.js.map +1 -0
  63. package/dist/lib/locales/en.json +12 -0
  64. package/dist/lib/locales/it.json +12 -0
  65. package/dist/lib/middleware/dispatchForgotPasswordLink.js +19 -0
  66. package/dist/lib/middleware/dispatchForgotPasswordLink.js.map +1 -0
  67. package/dist/lib/middleware/isAdmin.js +17 -0
  68. package/dist/lib/middleware/isAdmin.js.map +1 -0
  69. package/dist/lib/middleware/isAuthenticated.js +18 -0
  70. package/dist/lib/middleware/isAuthenticated.js.map +1 -0
  71. package/dist/lib/middleware/postAuth.js +19 -0
  72. package/dist/lib/middleware/postAuth.js.map +1 -0
  73. package/dist/lib/middleware/preAuth.js +17 -0
  74. package/dist/lib/middleware/preAuth.js.map +1 -0
  75. package/dist/lib/middleware/preForgotPasswordHandler.js +17 -0
  76. package/dist/lib/middleware/preForgotPasswordHandler.js.map +1 -0
  77. package/dist/lib/schemas/auth.js +101 -0
  78. package/dist/lib/schemas/auth.js.map +1 -0
  79. package/dist/lib/schemas/common.js +66 -0
  80. package/dist/lib/schemas/common.js.map +1 -0
  81. package/dist/lib/schemas/token.js +38 -0
  82. package/dist/lib/schemas/token.js.map +1 -0
  83. package/dist/lib/util/common.js +19 -0
  84. package/dist/lib/util/common.js.map +1 -0
  85. package/dist/lib/util/errors.js +19 -0
  86. package/dist/lib/util/errors.js.map +1 -0
  87. package/dist/lib/util/generate.js +10 -0
  88. package/dist/lib/util/generate.js.map +1 -0
  89. package/dist/lib/util/logger.js +52 -0
  90. package/dist/lib/util/logger.js.map +1 -0
  91. package/dist/lib/util/mark.js +25 -0
  92. package/dist/lib/util/mark.js.map +1 -0
  93. package/dist/lib/util/path.js +12 -0
  94. package/dist/lib/util/path.js.map +1 -0
  95. package/dist/lib/util/regexp.js +15 -0
  96. package/dist/lib/util/regexp.js.map +1 -0
  97. package/dist/lib/util/tracker.js +123 -0
  98. package/dist/lib/util/tracker.js.map +1 -0
  99. package/dist/lib/util/yn.js +17 -0
  100. package/dist/lib/util/yn.js.map +1 -0
  101. package/dist/nodemon.json +7 -0
  102. package/dist/package.json +101 -0
  103. package/dist/server.js +5 -0
  104. package/dist/server.js.map +1 -0
  105. package/dist/tsconfig.json +32 -0
  106. package/lib/loader/router.ts +10 -2
  107. package/package.json +2 -2
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.load = void 0;
4
+ const path_1 = require("../util/path");
5
+ const glob = require('glob');
6
+ const METHODS = ['POST', 'PUT', 'DELETE'];
7
+ function load() {
8
+ const trackChangesList = {};
9
+ let trackConfig = {};
10
+ const patterns = (0, path_1.normalizePatterns)(['..', 'config', 'tracking.{ts,js}'], ['src', 'config', 'tracking.{ts,js}']);
11
+ patterns.forEach((pattern) => {
12
+ log.t && log.trace('Looking for ' + pattern);
13
+ glob.sync(pattern).forEach((f) => {
14
+ const configTracking = require(f);
15
+ const { config, changes } = configTracking || {};
16
+ const { enableAll = true, primaryKey = 'id', changeEntity = 'Change' } = config || {};
17
+ trackConfig = Object.assign(Object.assign({}, trackConfig), config);
18
+ enableAll &&
19
+ changes.forEach((change) => {
20
+ var _a;
21
+ const tc = Object.assign({ primaryKey: primaryKey, changeEntity: changeEntity }, change);
22
+ const code = getCodeBy(tc.method, tc.path);
23
+ if (code in trackChangesList) {
24
+ log.warn(`* Tracking changes on ${(_a = tc.method) === null || _a === void 0 ? void 0 : _a.toUpperCase()} ${tc.path} already loaded (override)`);
25
+ trackChangesList[code] = Object.assign(Object.assign({}, trackChangesList[code]), tc);
26
+ }
27
+ else if (isValid(tc)) {
28
+ trackChangesList[code] = tc;
29
+ }
30
+ });
31
+ });
32
+ });
33
+ const keys = Object.keys(trackChangesList) || [];
34
+ log.d && log.debug(`Tracking changes loaded: ${(keys === null || keys === void 0 ? void 0 : keys.length) || 0}`);
35
+ return { tracking: trackChangesList, trackingConfig: trackConfig };
36
+ }
37
+ exports.load = load;
38
+ function getCodeBy(method, path) {
39
+ if (method == null || path == null) {
40
+ throw new Error('Tracking changes: impossible retrieve code by method and path');
41
+ }
42
+ return `${method.toUpperCase()}::${path}`;
43
+ }
44
+ function isValid(tc) {
45
+ const { method: m, path, enable = true, primaryKey, entity } = tc;
46
+ const method = m === null || m === void 0 ? void 0 : m.toUpperCase();
47
+ const label = `${method} ${path}`;
48
+ if (!enable) {
49
+ log.warn(`* Tracking changes on ${label} disabled`);
50
+ return false;
51
+ }
52
+ if (!METHODS.includes(method)) {
53
+ log.error(`* Tracking changes on ${label} available only on methods ${METHODS.join(', ')}`);
54
+ return false;
55
+ }
56
+ if (path == null || path.length === 0) {
57
+ log.error(`* Tracking changes on ${label} specify a valid path (ex /users)`);
58
+ return false;
59
+ }
60
+ if (entity == null || entity.length === 0) {
61
+ log.error(`* Tracking changes on ${label} specify a valid entity (ex User)`);
62
+ return false;
63
+ }
64
+ if (primaryKey == null || primaryKey.length === 0) {
65
+ log.error(`* Tracking changes on ${label} specify a valid primaryKey (ex id)`);
66
+ return false;
67
+ }
68
+ return true;
69
+ }
70
+ //# sourceMappingURL=tracking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracking.js","sourceRoot":"","sources":["../../../lib/loader/tracking.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.load = void 0;
4
+ const path = require('path');
5
+ const glob = require('glob');
6
+ const { I18n } = require('i18n');
7
+ function load() {
8
+ const i18n = new I18n({
9
+ locales: ['en', 'it'],
10
+ defaultLocale: 'en',
11
+ autoReload: false,
12
+ updateFiles: false,
13
+ syncFiles: false,
14
+ extension: '.json',
15
+ prefix: '',
16
+ objectNotation: true,
17
+ logDebugFn: (msg) => log.debug(msg),
18
+ logWarnFn: (msg) => log.warn(msg),
19
+ logErrorFn: (msg) => log.error(msg)
20
+ });
21
+ const basePath = path.join(__dirname, '..', 'locales', '*.json').replaceAll('\\', '/');
22
+ glob.sync(basePath).forEach((f) => {
23
+ log.info('* Loading base dictionary %s', path.parse(f).base);
24
+ try {
25
+ const content = require(f);
26
+ addLocaleFile(i18n, path.parse(f).name, content);
27
+ }
28
+ catch (err) {
29
+ log.error(err);
30
+ }
31
+ });
32
+ const addPath = path.join(process.cwd(), 'src', 'locales', '*.json').replaceAll('\\', '/');
33
+ glob.sync(addPath).forEach((f) => {
34
+ log.info('* Loading additional dictionary %s', path.parse(f).base);
35
+ try {
36
+ const content = require(f);
37
+ addLocaleFile(i18n, path.parse(f).name, content);
38
+ }
39
+ catch (err) {
40
+ log.error(err);
41
+ }
42
+ });
43
+ i18n.setLocale(i18n.defaultLocale || 'en');
44
+ return i18n;
45
+ }
46
+ exports.load = load;
47
+ function addLocaleFile(i18n, locale, content) {
48
+ let catalog = i18n && i18n.getCatalog();
49
+ if (catalog && locale && content) {
50
+ catalog[locale] = catalog[locale] ? Object.assign(Object.assign({}, catalog[locale]), content) : content;
51
+ }
52
+ }
53
+ //# sourceMappingURL=translation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translation.js","sourceRoot":"","sources":["../../../lib/loader/translation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ {
2
+ "hello": "Hello",
3
+ "greeting": {
4
+ "formal": "Hello",
5
+ "informal": "Hi",
6
+ "placeholder": {
7
+ "formal": "Hello %s",
8
+ "informal": "Hi %s"
9
+ }
10
+ },
11
+ "complex": "Hello {{user.firstname}} {{user.lastname}}"
12
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "hello": "Ciao",
3
+ "greeting": {
4
+ "formal": "Ciao",
5
+ "informal": "Cià",
6
+ "placeholder": {
7
+ "formal": "Ciao %s",
8
+ "informal": "Cià %s"
9
+ }
10
+ },
11
+ "complex": "Ciao {{user.firstname}} {{user.lastname}}"
12
+ }
@@ -0,0 +1,19 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.preSerialization = void 0;
13
+ function preSerialization(req, res, payload) {
14
+ return __awaiter(this, void 0, void 0, function* () {
15
+ return payload;
16
+ });
17
+ }
18
+ exports.preSerialization = preSerialization;
19
+ //# sourceMappingURL=dispatchForgotPasswordLink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatchForgotPasswordLink.js","sourceRoot":"","sources":["../../../lib/middleware/dispatchForgotPasswordLink.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,SAAsB,gBAAgB,CAAC,GAAmB,EAAE,GAAiB,EAAE,OAAO;;QACpF,OAAO,OAAO,CAAA;IAChB,CAAC;CAAA;AAFD,4CAEC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.preHandler = void 0;
4
+ function preHandler(req, res, done) {
5
+ try {
6
+ if (req.user && req.user.getId() && req.hasRole(roles.admin)) {
7
+ return done();
8
+ }
9
+ throw new Error('User without this privilege');
10
+ }
11
+ catch (err) {
12
+ log.e && log.error(`Upps, something just happened ${err}`);
13
+ res.code(403).send(new Error('User without this privilege'));
14
+ }
15
+ }
16
+ exports.preHandler = preHandler;
17
+ //# sourceMappingURL=isAdmin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isAdmin.js","sourceRoot":"","sources":["../../../lib/middleware/isAdmin.ts"],"names":[],"mappings":";;;AAEA,SAAgB,UAAU,CAAC,GAAmB,EAAE,GAAiB,EAAE,IAAS;IAC1E,IAAI,CAAC;QACH,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7D,OAAO,IAAI,EAAE,CAAA;QACf,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;IAChD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,iCAAiC,GAAG,EAAE,CAAC,CAAA;QAC1D,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAA;IAC9D,CAAC;AACH,CAAC;AAXD,gCAWC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.preHandler = void 0;
4
+ function preHandler(req, res, done) {
5
+ var _a;
6
+ try {
7
+ if (!!((_a = req.user) === null || _a === void 0 ? void 0 : _a.getId())) {
8
+ return done();
9
+ }
10
+ throw new Error('Unauthorized');
11
+ }
12
+ catch (err) {
13
+ log.e && log.error(`Upps, something just happened ${err}`);
14
+ return res.code(401).send(new Error('Unauthorized'));
15
+ }
16
+ }
17
+ exports.preHandler = preHandler;
18
+ //# sourceMappingURL=isAuthenticated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isAuthenticated.js","sourceRoot":"","sources":["../../../lib/middleware/isAuthenticated.ts"],"names":[],"mappings":";;;AAEA,SAAgB,UAAU,CAAC,GAAmB,EAAE,GAAiB,EAAE,IAAS;;IAC1E,IAAI,CAAC;QACH,IAAI,CAAC,CAAC,CAAA,MAAA,GAAG,CAAC,IAAI,0CAAE,KAAK,EAAE,CAAA,EAAE,CAAC;YACxB,OAAO,IAAI,EAAE,CAAA;QACf,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAA;IACjC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,iCAAiC,GAAG,EAAE,CAAC,CAAA;QAC1D,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAA;IACtD,CAAC;AACH,CAAC;AAXD,gCAWC"}
@@ -0,0 +1,19 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.preSerialization = void 0;
13
+ function preSerialization(req, res, payload) {
14
+ return __awaiter(this, void 0, void 0, function* () {
15
+ return payload;
16
+ });
17
+ }
18
+ exports.preSerialization = preSerialization;
19
+ //# sourceMappingURL=postAuth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postAuth.js","sourceRoot":"","sources":["../../../lib/middleware/postAuth.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,SAAsB,gBAAgB,CAAC,GAAmB,EAAE,GAAiB,EAAE,OAAO;;QACpF,OAAO,OAAO,CAAA;IAChB,CAAC;CAAA;AAFD,4CAEC"}
@@ -0,0 +1,17 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.preHandler = void 0;
13
+ function preHandler(req, res) {
14
+ return __awaiter(this, void 0, void 0, function* () { });
15
+ }
16
+ exports.preHandler = preHandler;
17
+ //# sourceMappingURL=preAuth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preAuth.js","sourceRoot":"","sources":["../../../lib/middleware/preAuth.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,SAAsB,UAAU,CAAC,GAAmB,EAAE,GAAiB;0DAAG,CAAC;CAAA;AAA3E,gCAA2E"}
@@ -0,0 +1,17 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.preHandler = void 0;
13
+ function preHandler(req, res) {
14
+ return __awaiter(this, void 0, void 0, function* () { });
15
+ }
16
+ exports.preHandler = preHandler;
17
+ //# sourceMappingURL=preForgotPasswordHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preForgotPasswordHandler.js","sourceRoot":"","sources":["../../../lib/middleware/preForgotPasswordHandler.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,SAAsB,UAAU,CAAC,GAAmB,EAAE,GAAiB;0DAAG,CAAC;CAAA;AAA3E,gCAA2E"}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resetPasswordBodySchema = exports.authChangePasswordBodySchema = exports.authRegisterResponseSchema = exports.authRefreshTokenResponseSchema = exports.authRefreshTokenBodySchema = exports.authLoginResponseSchema = exports.authRegisterBodySchema = exports.authForgotPasswordBodySchema = exports.authLoginBodySchema = void 0;
4
+ exports.authLoginBodySchema = {
5
+ $id: 'authLoginBodySchema',
6
+ type: 'object',
7
+ nullable: true,
8
+ properties: {
9
+ email: { type: 'string' },
10
+ password: { type: 'string' }
11
+ }
12
+ };
13
+ exports.authForgotPasswordBodySchema = {
14
+ $id: 'authForgotPasswordBodySchema',
15
+ type: 'object',
16
+ nullable: true,
17
+ properties: {
18
+ username: { type: 'string' },
19
+ email: { type: 'string' }
20
+ }
21
+ };
22
+ exports.authRegisterBodySchema = {
23
+ $id: 'authRegisterBodySchema',
24
+ type: 'object',
25
+ nullable: true,
26
+ properties: {
27
+ username: { type: 'string' },
28
+ email: { type: 'string' },
29
+ password1: { type: 'string' },
30
+ password2: { type: 'string' },
31
+ requiredRoles: { type: 'array', items: { type: 'string' } }
32
+ }
33
+ };
34
+ exports.authLoginResponseSchema = {
35
+ $id: 'authLoginResponseSchema',
36
+ type: 'object',
37
+ nullable: true,
38
+ properties: {
39
+ id: { type: 'string' },
40
+ _id: { type: 'string' },
41
+ externalId: { type: 'string' },
42
+ username: { type: 'string' },
43
+ email: { type: 'string' },
44
+ roles: { type: 'array', items: { type: 'string' } },
45
+ token: { type: 'string' },
46
+ refreshToken: { type: 'string' }
47
+ }
48
+ };
49
+ exports.authRefreshTokenBodySchema = {
50
+ $id: 'authRefreshTokenBodySchema',
51
+ type: 'object',
52
+ nullable: true,
53
+ properties: {
54
+ token: { type: 'string' },
55
+ refreshToken: { type: 'string' }
56
+ }
57
+ };
58
+ exports.authRefreshTokenResponseSchema = {
59
+ $id: 'authRefreshTokenResponseSchema',
60
+ type: 'object',
61
+ nullable: true,
62
+ properties: {
63
+ token: { type: 'string' }
64
+ }
65
+ };
66
+ exports.authRegisterResponseSchema = {
67
+ $id: 'authRegisterResponseSchema',
68
+ type: 'object',
69
+ nullable: true,
70
+ properties: {
71
+ id: { type: 'string' },
72
+ _id: { type: 'string' },
73
+ externalId: { type: 'string' },
74
+ username: { type: 'string' },
75
+ email: { type: 'string' },
76
+ enabled: { type: 'boolean' },
77
+ roles: { type: 'array', items: { type: 'string' } }
78
+ }
79
+ };
80
+ exports.authChangePasswordBodySchema = {
81
+ $id: 'authChangePasswordBodySchema',
82
+ type: 'object',
83
+ nullable: true,
84
+ properties: {
85
+ email: { type: 'string' },
86
+ oldPassword: { type: 'string' },
87
+ newPassword1: { type: 'string' },
88
+ newPassword2: { type: 'string' }
89
+ }
90
+ };
91
+ exports.resetPasswordBodySchema = {
92
+ $id: 'resetPasswordBodySchema',
93
+ type: 'object',
94
+ nullable: true,
95
+ properties: {
96
+ code: { type: 'string' },
97
+ newPassword1: { type: 'string' },
98
+ newPassword2: { type: 'string' }
99
+ }
100
+ };
101
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../lib/schemas/auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultResponse = exports.blockBodySchema = exports.onlyPasswordSchema = exports.onlyCodeSchema = exports.onlyIdSchema = exports.getQueryParamsSchema = void 0;
4
+ exports.getQueryParamsSchema = {
5
+ $id: 'getQueryParamsSchema',
6
+ type: 'object',
7
+ nullable: true,
8
+ properties: {
9
+ page: {
10
+ type: 'number',
11
+ description: 'Page **number** (default 1)'
12
+ },
13
+ pageSize: {
14
+ type: 'number',
15
+ description: 'Page **size** (default 25)'
16
+ },
17
+ sort: {
18
+ type: 'array',
19
+ description: 'Sorting **order** (default ascending).<br/>\
20
+ Otherwise, use the postfix `:desc` or `:asc` (like `&sort=myfield:desc`)',
21
+ items: { type: 'string' }
22
+ }
23
+ }
24
+ };
25
+ exports.onlyIdSchema = {
26
+ $id: 'onlyIdSchema',
27
+ type: 'object',
28
+ nullable: true,
29
+ properties: {
30
+ id: { type: 'string', description: 'Entity id' }
31
+ }
32
+ };
33
+ exports.onlyCodeSchema = {
34
+ $id: 'onlyCodeSchema',
35
+ type: 'object',
36
+ nullable: true,
37
+ properties: {
38
+ code: { type: 'string', description: 'Code' }
39
+ }
40
+ };
41
+ exports.onlyPasswordSchema = {
42
+ $id: 'onlyPasswordSchema',
43
+ type: 'object',
44
+ nullable: true,
45
+ properties: {
46
+ password: { type: 'string', description: 'Password' }
47
+ }
48
+ };
49
+ exports.blockBodySchema = {
50
+ $id: 'blockBodySchema',
51
+ type: 'object',
52
+ nullable: true,
53
+ properties: {
54
+ reason: { type: 'string', description: 'Reason' }
55
+ }
56
+ };
57
+ exports.defaultResponse = {
58
+ $id: 'defaultResponse',
59
+ type: 'object',
60
+ description: 'Default response',
61
+ nullable: true,
62
+ properties: {
63
+ ok: { type: 'boolean' }
64
+ }
65
+ };
66
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../lib/schemas/common.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG;IAClC,GAAG,EAAE,sBAAsB;IAC3B,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,6BAA6B;SAC3C;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,4BAA4B;SAC1C;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,OAAO;YACb,WAAW,EACT;iFACyE;YAC3E,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC1B;KACF;CACF,CAAA;AAEY,QAAA,YAAY,GAAG;IAC1B,GAAG,EAAE,cAAc;IACnB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE;KACjD;CACF,CAAA;AAEY,QAAA,cAAc,GAAG;IAC5B,GAAG,EAAE,gBAAgB;IACrB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE;KAC9C;CACF,CAAA;AAEY,QAAA,kBAAkB,GAAG;IAChC,GAAG,EAAE,oBAAoB;IACzB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE;KACtD;CACF,CAAA;AAEY,QAAA,eAAe,GAAG;IAC7B,GAAG,EAAE,iBAAiB;IACtB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE;KAClD;CACF,CAAA;AAEY,QAAA,eAAe,GAAG;IAC7B,GAAG,EAAE,iBAAiB;IACtB,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,kBAAkB;IAC/B,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;KACxB;CACF,CAAA"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tokenSchema = exports.tokenUpdateBodySchema = exports.tokenCreateBodySchema = void 0;
4
+ exports.tokenCreateBodySchema = {
5
+ $id: 'tokenCreateBodySchema',
6
+ type: 'object',
7
+ nullable: true,
8
+ properties: {
9
+ name: { type: 'string' },
10
+ description: { type: 'string' },
11
+ expiresIn: { type: 'string', default: undefined },
12
+ requiredRoles: { type: 'array', items: { type: 'string' } }
13
+ }
14
+ };
15
+ exports.tokenUpdateBodySchema = {
16
+ $id: 'tokenUpdateBodySchema',
17
+ type: 'object',
18
+ nullable: true,
19
+ properties: {
20
+ name: { type: 'string' },
21
+ description: { type: 'string' }
22
+ }
23
+ };
24
+ exports.tokenSchema = {
25
+ $id: 'tokenSchema',
26
+ type: 'object',
27
+ nullable: true,
28
+ properties: {
29
+ id: { type: 'string' },
30
+ _id: { type: 'string' },
31
+ externalId: { type: 'string' },
32
+ name: { type: 'string' },
33
+ description: { type: 'string' },
34
+ token: { type: 'string' },
35
+ roles: { type: 'array', items: { type: 'string' } }
36
+ }
37
+ };
38
+ //# sourceMappingURL=token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.js","sourceRoot":"","sources":["../../../lib/schemas/token.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG;IACnC,GAAG,EAAE,uBAAuB;IAC5B,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE;QACjD,aAAa,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;KAC5D;CACF,CAAA;AAEY,QAAA,qBAAqB,GAAG;IACnC,GAAG,EAAE,uBAAuB;IAC5B,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAChC;CACF,CAAA;AAEY,QAAA,WAAW,GAAG;IACzB,GAAG,EAAE,aAAa;IAClB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE;QACV,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACtB,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACvB,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC9B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxB,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzB,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;KACpD;CACF,CAAA"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getParams = exports.getData = void 0;
4
+ function getData(req) {
5
+ if (!req)
6
+ return {};
7
+ const hasValues = (obj) => Object.values(obj || {}).some((v) => v !== null && typeof v !== 'undefined');
8
+ const data = hasValues(req.query) ? req.query : hasValues(req.body) ? req.body : null;
9
+ return !data ? {} : Object.assign({}, data);
10
+ }
11
+ exports.getData = getData;
12
+ function getParams(req) {
13
+ if (!req)
14
+ return {};
15
+ const data = req.params || {};
16
+ return !data ? {} : Object.assign({}, data);
17
+ }
18
+ exports.getParams = getParams;
19
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../lib/util/common.ts"],"names":[],"mappings":";;;AAGA,SAAgB,OAAO,CAAC,GAAmB;IACzC,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAA;IAEnB,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,WAAW,CAAC,CAAA;IACvG,MAAM,IAAI,GAAQ,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;IAC1F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,EAAW,CAAC,CAAC,mBAAM,IAAI,CAAE,CAAA;AAC3C,CAAC;AAND,0BAMC;AAED,SAAgB,SAAS,CAAC,GAAmB;IAC3C,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAA;IACnB,MAAM,IAAI,GAAQ,GAAG,CAAC,MAAM,IAAI,EAAE,CAAA;IAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAE,EAAW,CAAC,CAAC,mBAAM,IAAI,CAAE,CAAA;AAC3C,CAAC;AAJD,8BAIC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TranslatedError = void 0;
4
+ class TranslatedError extends Error {
5
+ constructor({ translationCode, data = {}, locale = 'en', defaultMessage = null, status = 400 }) {
6
+ var _a;
7
+ super();
8
+ this.name = ((_a = this.constructor) === null || _a === void 0 ? void 0 : _a.name) || 'TranslatedError';
9
+ this.locale = locale;
10
+ this.status = status;
11
+ this.translationCode = translationCode;
12
+ this.translatedMessage = global.t.__({ phrase: translationCode || defaultMessage, locale: locale || 'en' }, data);
13
+ this.message = this.translatedMessage || defaultMessage || 'generic error';
14
+ this.data = data;
15
+ Error.captureStackTrace(this, this.constructor || TranslatedError);
16
+ }
17
+ }
18
+ exports.TranslatedError = TranslatedError;
19
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../lib/util/errors.ts"],"names":[],"mappings":";;;AAAA,MAAa,eAAgB,SAAQ,KAAK;IAOxC,YAAY,EAAE,eAAe,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,GAAG,IAAI,EAAE,cAAc,GAAG,IAAI,EAAE,MAAM,GAAG,GAAG,EAAE;;QAC5F,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,IAAI,GAAG,CAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,IAAI,KAAI,iBAAiB,CAAA;QACvD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,eAAe,GAAG,eAAe,CAAA;QACtC,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,eAAe,IAAI,cAAc,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,CAAA;QACjH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,iBAAiB,IAAI,cAAc,IAAI,eAAe,CAAA;QAC1E,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAEhB,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,IAAI,eAAe,CAAC,CAAA;IACpE,CAAC;CACF;AAnBD,0CAmBC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.newAuthCode = void 0;
4
+ const { customAlphabet } = require('nanoid');
5
+ const nanoid = customAlphabet('AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789');
6
+ function newAuthCode() {
7
+ return nanoid(Number(process.env.AUTH_CODE_SIZE) || 10);
8
+ }
9
+ exports.newAuthCode = newAuthCode;
10
+ //# sourceMappingURL=generate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../lib/util/generate.ts"],"names":[],"mappings":";;;AAAA,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;AAC5C,MAAM,MAAM,GAAG,cAAc,CAAC,gEAAgE,CAAC,CAAA;AAE/F,SAAgB,WAAW;IACzB,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAA;AACzD,CAAC;AAFD,kCAEC"}
@@ -0,0 +1,52 @@
1
+ 'use strict';
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const pino_1 = __importDefault(require("pino"));
7
+ const yn_1 = __importDefault(require("./yn"));
8
+ const logLevels = ['fatal', 'error', 'warn', 'info', 'debug', 'trace'];
9
+ const { LOG_LEVEL, LOG_COLORIZE, LOG_TIMESTAMP, LOG_TIMESTAMP_READABLE } = process.env;
10
+ function getLogLevel() {
11
+ const lvl = LOG_LEVEL === null || LOG_LEVEL === void 0 ? void 0 : LOG_LEVEL.toLowerCase();
12
+ return LOG_LEVEL && logLevels.includes(lvl) ? lvl : 'debug';
13
+ }
14
+ const logColorize = (0, yn_1.default)(LOG_COLORIZE, true);
15
+ const logTimestamp = (0, yn_1.default)(LOG_TIMESTAMP, true);
16
+ const logTimestampReadable = (0, yn_1.default)(LOG_TIMESTAMP_READABLE, true);
17
+ const loggerConfig = {
18
+ level: getLogLevel(),
19
+ timestamp: logTimestamp,
20
+ transport: {
21
+ target: 'pino-pretty',
22
+ options: {
23
+ translateTime: logTimestampReadable ? 'yyyymmdd HH:MM:ss.l' : false,
24
+ colorize: logColorize
25
+ }
26
+ }
27
+ };
28
+ let logger = (0, pino_1.default)(loggerConfig);
29
+ const logLevel = logger.levels.values[loggerConfig.level];
30
+ const loggerExt = Object.assign(logger, {
31
+ t: logLevel < 11,
32
+ d: logLevel < 21,
33
+ i: logLevel < 31,
34
+ w: logLevel < 41,
35
+ e: logLevel < 51,
36
+ f: logLevel < 61,
37
+ getLogLevel: getLogLevel,
38
+ loggerConfig: loggerConfig,
39
+ updateLevel: () => {
40
+ loggerExt.t = loggerExt.levelVal < 11;
41
+ loggerExt.d = loggerExt.levelVal < 21;
42
+ loggerExt.i = loggerExt.levelVal < 31;
43
+ loggerExt.w = loggerExt.levelVal < 41;
44
+ loggerExt.e = loggerExt.levelVal < 51;
45
+ loggerExt.f = loggerExt.levelVal < 61;
46
+ }
47
+ });
48
+ loggerExt.on('level-change', () => {
49
+ log.trace('Log level changed');
50
+ });
51
+ exports.default = loggerExt;
52
+ //# sourceMappingURL=logger.js.map