@volcanicminds/backend 0.6.3 → 0.6.4

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 (106) 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 +173 -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/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../lib/util/logger.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;;;;;AAaZ,gDAAuB;AACvB,8CAAqB;AAErB,MAAM,SAAS,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;AAEtE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC,GAAG,CAAA;AAEtF,SAAS,WAAW;IAClB,MAAM,GAAG,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,WAAW,EAAE,CAAA;IACpC,OAAO,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAI,CAAC,CAAC,CAAC,CAAC,GAAI,CAAC,CAAC,CAAC,OAAO,CAAA;AAC/D,CAAC;AAED,MAAM,WAAW,GAAG,IAAA,YAAE,EAAC,YAAY,EAAE,IAAI,CAAC,CAAA;AAC1C,MAAM,YAAY,GAAG,IAAA,YAAE,EAAC,aAAa,EAAE,IAAI,CAAC,CAAA;AAC5C,MAAM,oBAAoB,GAAG,IAAA,YAAE,EAAC,sBAAsB,EAAE,IAAI,CAAC,CAAA;AAE7D,MAAM,YAAY,GAAG;IACnB,KAAK,EAAE,WAAW,EAAE;IACpB,SAAS,EAAE,YAAY;IACvB,SAAS,EAAE;QACT,MAAM,EAAE,aAAa;QACrB,OAAO,EAAE;YACP,aAAa,EAAE,oBAAoB,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,KAAK;YACnE,QAAQ,EAAE,WAAW;SACtB;KACF;CACF,CAAA;AAED,IAAI,MAAM,GAAG,IAAA,cAAI,EAAC,YAAY,CAAC,CAAA;AAC/B,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;AAKzD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;IACtC,CAAC,EAAE,QAAQ,GAAG,EAAE;IAChB,CAAC,EAAE,QAAQ,GAAG,EAAE;IAChB,CAAC,EAAE,QAAQ,GAAG,EAAE;IAChB,CAAC,EAAE,QAAQ,GAAG,EAAE;IAChB,CAAC,EAAE,QAAQ,GAAG,EAAE;IAChB,CAAC,EAAE,QAAQ,GAAG,EAAE;IAChB,WAAW,EAAE,WAAW;IACxB,YAAY,EAAE,YAAY;IAC1B,WAAW,EAAE,GAAG,EAAE;QAChB,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,QAAQ,GAAG,EAAE,CAAA;QACrC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,QAAQ,GAAG,EAAE,CAAA;QACrC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,QAAQ,GAAG,EAAE,CAAA;QACrC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,QAAQ,GAAG,EAAE,CAAA;QACrC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,QAAQ,GAAG,EAAE,CAAA;QACrC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAC,QAAQ,GAAG,EAAE,CAAA;IACvC,CAAC;CACF,CAAC,CAAA;AAEF,SAAS,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,EAAE;IAChC,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAA;AAChC,CAAC,CAAC,CAAA;AAEF,kBAAe,SAAS,CAAA"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.print = void 0;
4
+ const pkg = require('root-require')('package.json');
5
+ function print(logg = log) {
6
+ logg.i && logg.info('Ciao');
7
+ logg.i && logg.info(` ,--. ,--. `);
8
+ logg.i && logg.info(`.--. ,--,---.| |,---.,--,--,--,--\\\`--',---. `);
9
+ logg.i && logg.info(` \\ '' | .-. | / .--' ,-. | ,--/ .--' `);
10
+ logg.i && logg.info(` \\ /' '-' | \\ \`--\\ '-' | || | \\ \`--. `);
11
+ logg.i && logg.info(` \`--' \`---'\`--'\`---'\`--\`--\`--''--\`--'\`---' `);
12
+ logg.i && logg.info('');
13
+ logg.t && logg.trace(`Package ${pkg.name}`);
14
+ logg.i && logg.info(`License ${pkg.license}`);
15
+ logg.i && logg.info(`Version ${pkg.version}`);
16
+ logg.i && logg.info(`Codename ${pkg.codename}`);
17
+ logg.i && logg.info(`Environment ${process.env.NODE_ENV}`);
18
+ logg.t && logg.trace(`Platform ${process.platform} ${process.arch}`);
19
+ logg.t && logg.trace(`Root path ${process.cwd()}`);
20
+ logg.t && logg.trace(`Node ${process.version}`);
21
+ logg.t && logg.trace(`Release ${JSON.stringify(process.release)}`);
22
+ logg.t && logg.trace(`Versions ${JSON.stringify(process.versions)}`);
23
+ }
24
+ exports.print = print;
25
+ //# sourceMappingURL=mark.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mark.js","sourceRoot":"","sources":["../../../lib/util/mark.ts"],"names":[],"mappings":";;;AAAA,MAAM,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,cAAc,CAAC,CAAA;AAMnD,SAAgB,KAAK,CAAC,OAAY,GAAG;IACnC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC3B,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAA;IACrE,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAA;IACvE,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAA;IACtE,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAA;IAC3E,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAA;IAC9E,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACvB,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;IAC3C,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;IAC7C,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA;IAC7C,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC/C,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC1D,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;IACpE,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAClD,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;IAC/C,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAClE,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;AACtE,CAAC;AAlBD,sBAkBC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizePatterns = void 0;
4
+ const path = require('path');
5
+ function normalizePatterns(path1, path2) {
6
+ return [
7
+ path.join(__dirname, ...path1).replaceAll('\\', '/'),
8
+ path.join(process.cwd(), ...path2).replaceAll('\\', '/')
9
+ ];
10
+ }
11
+ exports.normalizePatterns = normalizePatterns;
12
+ //# sourceMappingURL=path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path.js","sourceRoot":"","sources":["../../../lib/util/path.ts"],"names":[],"mappings":";;;AAAA,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;AAC5B,SAAgB,iBAAiB,CAAC,KAAoB,EAAE,KAAoB;IAE1E,OAAO;QACL,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,KAAK,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC;KACzD,CAAA;AACH,CAAC;AAND,8CAMC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tollFreePhone = exports.landLinePhone = exports.mobilePhone = exports.iban = exports.taxCodeCompany = exports.taxCodePersona = exports.zipCode = exports.password = exports.email = exports.emailAlt = exports.username = void 0;
4
+ exports.username = /(?=^.{3,33}$)^[a-z][a-z0-9]*[._-]?[a-z0-9]+$/gi;
5
+ exports.emailAlt = /^(([^<>()\[\]\\.,;:\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,}))$/;
6
+ exports.email = /^\w+([\.+-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
7
+ exports.password = /^(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[^\w\d\s:])([^\s]){8,64}$/;
8
+ exports.zipCode = /(^\d{5}$)|(^\d{5}-\d{4}$)/;
9
+ exports.taxCodePersona = /^[a-zA-Z]{6}[0-9]{2}[abcdehlmprstABCDEHLMPRST]{1}[0-9]{2}([a-zA-Z]{1}[0-9]{3})[a-zA-Z]{1}$/;
10
+ exports.taxCodeCompany = /^([A-Z]{2}|)[0-9]{11}$/;
11
+ exports.iban = /^[a-zA-Z]{2}[0-9]{2}[a-zA-Z0-9]{4}[0-9]{7}([a-zA-Z0-9]?){0,16}$/;
12
+ exports.mobilePhone = /^((00|\+)39)?3[0-9]{8,9}$/;
13
+ exports.landLinePhone = /^(((00|\+)39))?[\s]?(0{1}[1-9]{1,3})[\s]?(\d{4,6})$/;
14
+ exports.tollFreePhone = /^((00|\+)39)?(800|803|167)\d{3,6}$/;
15
+ //# sourceMappingURL=regexp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regexp.js","sourceRoot":"","sources":["../../../lib/util/regexp.ts"],"names":[],"mappings":";;;AAIa,QAAA,QAAQ,GAAG,gDAAgD,CAAA;AAC3D,QAAA,QAAQ,GACnB,yJAAyJ,CAAA;AAM9I,QAAA,KAAK,GAAG,gDAAgD,CAAA;AASxD,QAAA,QAAQ,GAAG,+DAA+D,CAAA;AAC1E,QAAA,OAAO,GAAG,2BAA2B,CAAA;AACrC,QAAA,cAAc,GACzB,4FAA4F,CAAA;AAKjF,QAAA,cAAc,GAAG,wBAAwB,CAAA;AACzC,QAAA,IAAI,GAAG,iEAAiE,CAAA;AACxE,QAAA,WAAW,GAAG,2BAA2B,CAAA;AACzC,QAAA,aAAa,GAAG,qDAAqD,CAAA;AACrE,QAAA,aAAa,GAAG,oCAAoC,CAAA"}
@@ -0,0 +1,123 @@
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
+ exports.track = exports.initialize = void 0;
16
+ const dayjs_1 = __importDefault(require("dayjs"));
17
+ function initialize(req, reply) {
18
+ return __awaiter(this, void 0, void 0, function* () {
19
+ if (req.server['dataBaseManager'].isImplemented()) {
20
+ const tc = getTrackingConfigIfEnabled(req);
21
+ const allData = Object.assign(Object.assign({}, req.parameters()), req.data());
22
+ if (tc) {
23
+ try {
24
+ if (allData && tc.entity && tc.primaryKey && tc.primaryKey in allData) {
25
+ const key = allData[tc.primaryKey];
26
+ req.trackingData = yield req.server['dataBaseManager'].retrieveBy(tc.entity, key);
27
+ log.trace(`Tracking changes: found id ${req.trackingData ? req.trackingData[tc.primaryKey] : null}`);
28
+ }
29
+ }
30
+ catch (error) {
31
+ log.error(`Tracking changes: error on ${tc.code}`);
32
+ log.error(error);
33
+ }
34
+ }
35
+ }
36
+ });
37
+ }
38
+ exports.initialize = initialize;
39
+ function track(req, reply, payload) {
40
+ var _a, _b, _c, _d, _e;
41
+ return __awaiter(this, void 0, void 0, function* () {
42
+ if (req.server['dataBaseManager'].isImplemented()) {
43
+ const tc = getTrackingConfigIfEnabled(req);
44
+ if (tc) {
45
+ try {
46
+ const contents = [];
47
+ const { entity, changeEntity } = tc;
48
+ const userId = (_a = req.user) === null || _a === void 0 ? void 0 : _a.getId();
49
+ const oldData = req.trackingData;
50
+ const status = ((_b = req.method) === null || _b === void 0 ? void 0 : _b.toUpperCase()) === 'POST' ? 'create' : ((_c = req.method) === null || _c === void 0 ? void 0 : _c.toUpperCase()) === 'DELETE' ? 'delete' : 'update';
51
+ const id = tc.primaryKey && payload && tc.primaryKey in payload
52
+ ? payload[tc.primaryKey]
53
+ : tc.primaryKey && oldData && tc.primaryKey in oldData
54
+ ? oldData[tc.primaryKey]
55
+ : undefined;
56
+ if (!id) {
57
+ log.error('Tracking changes: id / primary key not found');
58
+ return;
59
+ }
60
+ let addChange = false;
61
+ if (status === 'delete') {
62
+ addChange = true;
63
+ }
64
+ else {
65
+ const fields = ((_d = tc.fields) === null || _d === void 0 ? void 0 : _d.includes) || Object.keys(payload) || [];
66
+ const excludes = ((_e = tc.fields) === null || _e === void 0 ? void 0 : _e.excludes) || [];
67
+ fields.forEach((field) => {
68
+ if (!excludes.includes(field)) {
69
+ const oldValue = oldData != null && field in oldData ? oldData[field] : undefined;
70
+ const newValue = payload != null && field in payload ? payload[field] : undefined;
71
+ if (newValue !== undefined && isFieldChanged(oldValue, newValue)) {
72
+ contents.push({ key: field, old: oldValue, new: newValue });
73
+ addChange = true;
74
+ }
75
+ }
76
+ });
77
+ }
78
+ if (addChange) {
79
+ log.trace(`Tracking changes: add ${changeEntity} for ${entity}, ${id}, ${userId}, ${status}`);
80
+ yield req.server['dataBaseManager'].addChange(entity, id, status, userId, contents, changeEntity);
81
+ }
82
+ }
83
+ catch (error) {
84
+ log.error(`Tracking changes: error on ${tc.code}`);
85
+ log.error(error);
86
+ }
87
+ }
88
+ }
89
+ });
90
+ }
91
+ exports.track = track;
92
+ function getTrackingConfigIfEnabled(req) {
93
+ var _a, _b, _c, _d;
94
+ try {
95
+ const code = `${(_a = req.method) === null || _a === void 0 ? void 0 : _a.toUpperCase()}::${((_c = (_b = req.routeOptions) === null || _b === void 0 ? void 0 : _b.config) === null || _c === void 0 ? void 0 : _c.url) || ((_d = req.routeConfig) === null || _d === void 0 ? void 0 : _d.url) || req.url}`;
96
+ return code in global.tracking && global.tracking[code].enable ? Object.assign({ code }, global.tracking[code]) : null;
97
+ }
98
+ catch (error) {
99
+ log.error(error);
100
+ }
101
+ }
102
+ function isFieldChanged(oldValue, newValue) {
103
+ var _a;
104
+ if ((oldValue instanceof Date || newValue instanceof Date) && oldValue != null && newValue != undefined) {
105
+ return !(0, dayjs_1.default)(oldValue).isSame((0, dayjs_1.default)(newValue));
106
+ }
107
+ if ((oldValue instanceof Object || newValue instanceof Object) && oldValue != null && newValue != undefined) {
108
+ const primaryKey = (_a = global.trackingConfig) === null || _a === void 0 ? void 0 : _a.primaryKey;
109
+ const oldId = oldValue != null && primaryKey in oldValue
110
+ ? oldValue[primaryKey]
111
+ : typeof oldValue === 'string'
112
+ ? oldValue
113
+ : undefined;
114
+ const newId = newValue != null && primaryKey in newValue
115
+ ? newValue[primaryKey]
116
+ : typeof newValue === 'string'
117
+ ? newValue
118
+ : undefined;
119
+ return oldId !== undefined && newId !== undefined ? oldId != newId : false;
120
+ }
121
+ return oldValue != newValue;
122
+ }
123
+ //# sourceMappingURL=tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracker.js","sourceRoot":"","sources":["../../../lib/util/tracker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ 'use strict';
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function yn(value, defaultValue) {
4
+ if (value === undefined || value === null) {
5
+ return defaultValue;
6
+ }
7
+ const val = String(value).trim();
8
+ if (/^(?:y|yes|true|1|on)$/i.test(val)) {
9
+ return true;
10
+ }
11
+ if (/^(?:n|no|false|0|off)$/i.test(val)) {
12
+ return false;
13
+ }
14
+ return defaultValue || false;
15
+ }
16
+ exports.default = yn;
17
+ //# sourceMappingURL=yn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yn.js","sourceRoot":"","sources":["../../../lib/util/yn.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,SAAwB,EAAE,CAAC,KAAU,EAAE,YAAqB;IAC1D,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO,YAAY,CAAA;IACrB,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAA;IAEhC,IAAI,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACvC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,YAAY,IAAI,KAAK,CAAA;AAC9B,CAAC;AAhBD,qBAgBC"}
@@ -0,0 +1,7 @@
1
+ {
2
+ "watch": ["lib"],
3
+ "verbose": true,
4
+ "ext": "js,ts,json,jsonc",
5
+ "ignore": [".git", "coverage", "dist", "lib/**/*.spec.ts", "node_modules"],
6
+ "exec": "ts-node ./lib/index.ts"
7
+ }
@@ -0,0 +1,101 @@
1
+ {
2
+ "name": "@volcanicminds/backend",
3
+ "version": "0.6.4",
4
+ "codename": "turin",
5
+ "license": "MIT",
6
+ "description": "The volcanic (minds) backend",
7
+ "keywords": [
8
+ "volcanic",
9
+ "open source",
10
+ "api",
11
+ "framework",
12
+ "backend",
13
+ "http",
14
+ "https",
15
+ "fastify",
16
+ "apollo",
17
+ "swagger",
18
+ "graphql",
19
+ "helmet",
20
+ "json",
21
+ "typescript",
22
+ "javascript",
23
+ "rest",
24
+ "restful",
25
+ "graphql",
26
+ "pino",
27
+ "rate limit",
28
+ "jest"
29
+ ],
30
+ "main": "dist/index",
31
+ "typings": "dist/index",
32
+ "engines": {
33
+ "node": ">=16"
34
+ },
35
+ "scripts": {
36
+ "clean": "rm -rf dist esm",
37
+ "prebuild": "npm run clean",
38
+ "build:esm": "tsc --target es2018 --outDir esm",
39
+ "build:cjs": "tsc --target es2015 --module commonjs --outDir dist",
40
+ "build": "npm run build:esm && npm run build:cjs",
41
+ "compile": "npm run build",
42
+ "preprod": "npm run build",
43
+ "prod": "cd dist && node server.js",
44
+ "server": "cd dist && node server.js",
45
+ "start": "ts-node server.ts",
46
+ "dev": "nodemon --exec \"ts-node\" server.ts",
47
+ "test": "yarn test:full",
48
+ "test:full": "cross-env PORT=2231 NODE_ENV=memory BROWSER=false mocha ./test/index.spec.ts -t 100000",
49
+ "reset": "yarn && yarn upgrade && yarn compile",
50
+ "upgrade-deps": "yarn upgrade-interactive"
51
+ },
52
+ "dependencies": {
53
+ "@apollo/server": "^4.9.3",
54
+ "@as-integrations/fastify": "^1.3.2",
55
+ "@fastify/compress": "^6.4.0",
56
+ "@fastify/cors": "^8.4.0",
57
+ "@fastify/helmet": "^10.1.1",
58
+ "@fastify/jwt": "^6.7.1",
59
+ "@fastify/rate-limit": "^7.6.0",
60
+ "@fastify/swagger": "^8.10.1",
61
+ "@fastify/swagger-ui": "^1.9.3",
62
+ "@types/node": "^20.7.0",
63
+ "dayjs": "^1.11.10",
64
+ "dotenv": "^16.3.1",
65
+ "fastify": "^4.23.2",
66
+ "glob": "^8.1.0",
67
+ "graphql": "^16.8.1",
68
+ "i18n": "^0.15.1",
69
+ "nanoid": "^4.0.2",
70
+ "object-sizeof": "^1.6.3",
71
+ "pino": "^8.15.1",
72
+ "pino-pretty": "^9.4.1",
73
+ "root-require": "^0.3.1",
74
+ "semver": "^7.5.4"
75
+ },
76
+ "devDependencies": {
77
+ "@types/mocha": "^10.0.1",
78
+ "cross-env": "^7.0.3",
79
+ "expect": "^29.7.0",
80
+ "mocha": "^10.2.0",
81
+ "nodemon": "^2.0.22",
82
+ "ts-node": "^10.9.1",
83
+ "typescript": "^5.3.3"
84
+ },
85
+ "repository": {
86
+ "type": "git",
87
+ "url": "git+https://github.com/volcanicminds/volcanic-backend.git"
88
+ },
89
+ "homepage": "https://volcanicminds.com",
90
+ "bugs": {
91
+ "url": "https://github.com/volcanicminds/volcanic-backend/issues"
92
+ },
93
+ "author": "Volcanic Minds <developers@volcanicminds.com> (https://volcanicminds.com)",
94
+ "maintainers": [
95
+ "Developers <developers@volcanicminds.com> (https://volcanicminds.com)"
96
+ ],
97
+ "directories": {
98
+ "lib": "lib",
99
+ "test": "test"
100
+ }
101
+ }
package/dist/server.js ADDED
@@ -0,0 +1,5 @@
1
+ 'use strict';
2
+ global.npmDebugServerStarted = true;
3
+ const { start } = require('./index');
4
+ start();
5
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../server.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,MAAM,CAAC,qBAAqB,GAAG,IAAI,CAAA;AACnC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;AACpC,KAAK,EAAE,CAAA"}
@@ -0,0 +1,32 @@
1
+ {
2
+ "extends": "ts-node/node16/tsconfig.json",
3
+ "ts-node": {
4
+ "files": true,
5
+ "compilerOptions": {
6
+ "module": "commonjs"
7
+ }
8
+ },
9
+ "compilerOptions": {
10
+ "module": "commonjs",
11
+ "moduleResolution": "node",
12
+ "declaration": false,
13
+ "noImplicitAny": false,
14
+ "noUnusedLocals": false,
15
+ "removeComments": true,
16
+ "noLib": false,
17
+ "emitDecoratorMetadata": true,
18
+ "experimentalDecorators": true,
19
+ "useUnknownInCatchVariables": false,
20
+ "target": "es6",
21
+ "sourceMap": true,
22
+ "allowJs": true,
23
+ "outDir": "dist",
24
+ "lib": ["es7"],
25
+ "resolveJsonModule": true,
26
+ "paths": {
27
+ "@types": ["./types"]
28
+ }
29
+ },
30
+ "include": ["*.ts", "*.d.ts", "*.json", "lib/**/*", "lib/**/*.json", "types/*"],
31
+ "exclude": ["node_modules", "test/**/*"]
32
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@volcanicminds/backend",
3
- "version": "0.6.3",
3
+ "version": "0.6.4",
4
4
  "codename": "turin",
5
5
  "license": "MIT",
6
6
  "description": "The volcanic (minds) backend",
@@ -80,7 +80,7 @@
80
80
  "mocha": "^10.2.0",
81
81
  "nodemon": "^2.0.22",
82
82
  "ts-node": "^10.9.1",
83
- "typescript": "^4.9.5"
83
+ "typescript": "^5.3.3"
84
84
  },
85
85
  "repository": {
86
86
  "type": "git",