@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.
- package/dist/index.js +332 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/api/auth/controller/auth.js +337 -0
- package/dist/lib/api/auth/controller/auth.js.map +1 -0
- package/dist/lib/api/auth/routes.js +195 -0
- package/dist/lib/api/auth/routes.js.map +1 -0
- package/dist/lib/api/health/controller/health.js +8 -0
- package/dist/lib/api/health/controller/health.js.map +1 -0
- package/dist/lib/api/health/routes.js +26 -0
- package/dist/lib/api/health/routes.js.map +1 -0
- package/dist/lib/api/token/controller/token.js +116 -0
- package/dist/lib/api/token/controller/token.js.map +1 -0
- package/dist/lib/api/token/routes.js +152 -0
- package/dist/lib/api/token/routes.js.map +1 -0
- package/dist/lib/api/tool/controller/tool.js +25 -0
- package/dist/lib/api/tool/controller/tool.js.map +1 -0
- package/dist/lib/api/tool/routes.js +26 -0
- package/dist/lib/api/tool/routes.js.map +1 -0
- package/dist/lib/api/users/controller/user.js +14 -0
- package/dist/lib/api/users/controller/user.js.map +1 -0
- package/dist/lib/api/users/routes.js +65 -0
- package/dist/lib/api/users/routes.js.map +1 -0
- package/dist/lib/apollo/context.js +19 -0
- package/dist/lib/apollo/context.js.map +1 -0
- package/dist/lib/apollo/resolvers.js +9 -0
- package/dist/lib/apollo/resolvers.js.map +1 -0
- package/dist/lib/apollo/type-defs.js +9 -0
- package/dist/lib/apollo/type-defs.js.map +1 -0
- package/dist/lib/config/general.js +9 -0
- package/dist/lib/config/general.js.map +1 -0
- package/dist/lib/config/plugins.js +57 -0
- package/dist/lib/config/plugins.js.map +1 -0
- package/dist/lib/config/roles.js +19 -0
- package/dist/lib/config/roles.js.map +1 -0
- package/dist/lib/config/tracking.js +10 -0
- package/dist/lib/config/tracking.js.map +1 -0
- package/dist/lib/hooks/onError.js +15 -0
- package/dist/lib/hooks/onError.js.map +1 -0
- package/dist/lib/hooks/onRequest.js +71 -0
- package/dist/lib/hooks/onRequest.js.map +1 -0
- package/dist/lib/hooks/onResponse.js +25 -0
- package/dist/lib/hooks/onResponse.js.map +1 -0
- package/dist/lib/hooks/preHandler.js +39 -0
- package/dist/lib/hooks/preHandler.js.map +1 -0
- package/dist/lib/hooks/preSerialization.js +47 -0
- package/dist/lib/hooks/preSerialization.js.map +1 -0
- package/dist/lib/loader/general.js +29 -0
- package/dist/lib/loader/general.js.map +1 -0
- package/dist/lib/loader/hooks.js +46 -0
- package/dist/lib/loader/hooks.js.map +1 -0
- package/dist/lib/loader/plugins.js +24 -0
- package/dist/lib/loader/plugins.js.map +1 -0
- package/dist/lib/loader/roles.js +22 -0
- package/dist/lib/loader/roles.js.map +1 -0
- package/dist/lib/loader/router.js +181 -0
- package/dist/lib/loader/router.js.map +1 -0
- package/dist/lib/loader/schemas.js +34 -0
- package/dist/lib/loader/schemas.js.map +1 -0
- package/dist/lib/loader/tracking.js +70 -0
- package/dist/lib/loader/tracking.js.map +1 -0
- package/dist/lib/loader/translation.js +53 -0
- package/dist/lib/loader/translation.js.map +1 -0
- package/dist/lib/locales/en.json +12 -0
- package/dist/lib/locales/it.json +12 -0
- package/dist/lib/middleware/dispatchForgotPasswordLink.js +19 -0
- package/dist/lib/middleware/dispatchForgotPasswordLink.js.map +1 -0
- package/dist/lib/middleware/isAdmin.js +17 -0
- package/dist/lib/middleware/isAdmin.js.map +1 -0
- package/dist/lib/middleware/isAuthenticated.js +18 -0
- package/dist/lib/middleware/isAuthenticated.js.map +1 -0
- package/dist/lib/middleware/postAuth.js +19 -0
- package/dist/lib/middleware/postAuth.js.map +1 -0
- package/dist/lib/middleware/preAuth.js +17 -0
- package/dist/lib/middleware/preAuth.js.map +1 -0
- package/dist/lib/middleware/preForgotPasswordHandler.js +17 -0
- package/dist/lib/middleware/preForgotPasswordHandler.js.map +1 -0
- package/dist/lib/schemas/auth.js +101 -0
- package/dist/lib/schemas/auth.js.map +1 -0
- package/dist/lib/schemas/common.js +66 -0
- package/dist/lib/schemas/common.js.map +1 -0
- package/dist/lib/schemas/token.js +38 -0
- package/dist/lib/schemas/token.js.map +1 -0
- package/dist/lib/util/common.js +19 -0
- package/dist/lib/util/common.js.map +1 -0
- package/dist/lib/util/errors.js +19 -0
- package/dist/lib/util/errors.js.map +1 -0
- package/dist/lib/util/generate.js +10 -0
- package/dist/lib/util/generate.js.map +1 -0
- package/dist/lib/util/logger.js +52 -0
- package/dist/lib/util/logger.js.map +1 -0
- package/dist/lib/util/mark.js +25 -0
- package/dist/lib/util/mark.js.map +1 -0
- package/dist/lib/util/path.js +12 -0
- package/dist/lib/util/path.js.map +1 -0
- package/dist/lib/util/regexp.js +15 -0
- package/dist/lib/util/regexp.js.map +1 -0
- package/dist/lib/util/tracker.js +123 -0
- package/dist/lib/util/tracker.js.map +1 -0
- package/dist/lib/util/yn.js +17 -0
- package/dist/lib/util/yn.js.map +1 -0
- package/dist/nodemon.json +7 -0
- package/dist/package.json +101 -0
- package/dist/server.js +5 -0
- package/dist/server.js.map +1 -0
- package/dist/tsconfig.json +32 -0
- package/lib/loader/router.ts +10 -2
- 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,101 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@volcanicminds/backend",
|
|
3
|
+
"version": "0.6.5",
|
|
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 @@
|
|
|
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/lib/loader/router.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import yn from '../util/yn'
|
|
2
|
-
import { Route, ConfiguredRoute, RouteConfig } from '../../types/global'
|
|
2
|
+
import { Role, Route, ConfiguredRoute, RouteConfig } from '../../types/global'
|
|
3
3
|
import { FastifyReply, FastifyRequest } from 'fastify'
|
|
4
4
|
import { normalizePatterns } from '../util/path'
|
|
5
5
|
|
|
@@ -37,7 +37,15 @@ export function load(): ConfiguredRoute[] {
|
|
|
37
37
|
} = route
|
|
38
38
|
|
|
39
39
|
const rsp = !rs.length ? [roles.public] : rs
|
|
40
|
-
|
|
40
|
+
let requiredRoles: Role[] = []
|
|
41
|
+
|
|
42
|
+
try {
|
|
43
|
+
requiredRoles = rsp.some((r) => r.code === roles.admin.code) ? rsp : [...rsp, roles.admin] // admin is always present
|
|
44
|
+
} catch (err) {
|
|
45
|
+
log.e && log.error(`Error in loading roles for ${methodCase} ${pathName} (${handler})`)
|
|
46
|
+
log.t && log.trace(err)
|
|
47
|
+
config.enable = false
|
|
48
|
+
}
|
|
41
49
|
|
|
42
50
|
const reqAuth: boolean =
|
|
43
51
|
middlewares.some((m) => authMiddlewares.includes(m)) ||
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@volcanicminds/backend",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.5",
|
|
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": "^
|
|
83
|
+
"typescript": "^5.3.3"
|
|
84
84
|
},
|
|
85
85
|
"repository": {
|
|
86
86
|
"type": "git",
|