diff --git a/index.ts b/index.ts index dbbafaf..55a3d69 100644 --- a/index.ts +++ b/index.ts @@ -3,12 +3,25 @@ import * as path from 'path'; import bodyParser from 'body-parser'; import cors from 'cors'; import express from 'express'; +import audit from 'express-requests-logger'; import apiRouter from './src/api'; const app = express(); const port = 5000; +app.use(audit({ + excludeURLs: ['images'], + request: { + excludeHeaders: ['*'], + maxBodyLength: 100, + }, + response: { + excludeBody: ['*'], + excludeHeaders: ['*'], + maxBodyLength: 50, + }, +})); app.use(cors()); app.use('/static', express.static(path.join(__dirname, 'static'))); diff --git a/package.json b/package.json index 5c84a63..d2a50c9 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "body-parser": "1.20.2", "cors": "2.8.5", "express": "4.18.2", + "express-requests-logger": "4.0.0", "nodemailer": "^6.9.3", "nodemon": "2.0.22", "ts-node": "10.9.1", @@ -18,16 +19,17 @@ "devDependencies": { "@types/cors": "2.8.13", "@types/express": "4.17.17", + "@types/express-requests-logger": "^3.0.1", "@types/uuid": "9.0.1", "@typescript-eslint/eslint-plugin": "5.59.0", "@typescript-eslint/parser": "5.59.0", "eslint": "8.39.0", "eslint-config-airbnb-base": "15.0.0", + "eslint-config-airbnb-typescript": "17.0.0", "eslint-plugin-import": "2.27.5", "eslint-plugin-sort-destructure-keys": "1.5.0", "eslint-plugin-sort-keys-fix": "1.1.2", - "eslint-plugin-typescript-sort-keys": "2.3.0", - "eslint-config-airbnb-typescript": "17.0.0" + "eslint-plugin-typescript-sort-keys": "2.3.0" }, "scripts": { "dev": "nodemon index.ts", diff --git a/src/api/index.ts b/src/api/index.ts index cfbf983..d79d1ca 100644 --- a/src/api/index.ts +++ b/src/api/index.ts @@ -7,13 +7,13 @@ import faqRouter from './routes/faq'; import hallsRouter from './routes/halls'; import imageRouter from './routes/image'; import infoRouter from './routes/info'; +import orderRouter from './routes/order'; import questRouter from './routes/quests'; import rateRouter from './routes/rate'; import servicesRouter from './routes/services'; import statisticsRouter from './routes/statistic'; import storiesRouter from './routes/stories'; import textRouter from './routes/text'; -import orderRouter from './routes/order'; const apiRouter = express.Router(); diff --git a/src/api/routes/breadcrumbs/controller.ts b/src/api/routes/breadcrumbs/controller.ts index fb24ae0..b1e3c43 100644 --- a/src/api/routes/breadcrumbs/controller.ts +++ b/src/api/routes/breadcrumbs/controller.ts @@ -59,7 +59,7 @@ const showProgramsPageBreadcrumbs: BreadcrumbsType[] = [ const themedCombosPageBreadcrumbs: BreadcrumbsType[] = [ { href: PAGE_LINK.HOME, label: PAGE_LINK_LABEL[PAGE_LINK.HOME] }, - { label: PAGE_LINK_LABEL[PAGE_LINK.SERVICES] }, + { label: PAGE_LINK_LABEL[PAGE_LINK.HOLIDAYS] }, { href: PAGE_LINK.THEMED_COMBOS, label: PAGE_LINK_LABEL[PAGE_LINK.THEMED_COMBOS] }, ]; diff --git a/src/api/routes/text/controller.ts b/src/api/routes/text/controller.ts index d3942ea..afa1777 100644 --- a/src/api/routes/text/controller.ts +++ b/src/api/routes/text/controller.ts @@ -65,7 +65,8 @@ const maintenanceTitleText = { description: 'Едете с детьми на свадьбу, корпоратив или сами организуете\n' + 'выездное мероприятие? Мы знаем, как помочь Вам отдохнуть\n' + 'и организовать детский досуг!', - title: 'СОПРОВОЖДЕНИЕ ДЕТЕЙ на мероприятиях', + subtitle: 'на мероприятиях', + title: 'СОПРОВОЖДЕНИЕ ДЕТЕЙ', }; const maintenanceSteps = [ diff --git a/src/constants/index.ts b/src/constants/index.ts index 6b32640..468294b 100644 --- a/src/constants/index.ts +++ b/src/constants/index.ts @@ -22,7 +22,7 @@ export const enum PAGE_LINK { RENT = '/rent', SERVICES = '/services', SHOW_PROGRAMS = '/services/show-programs', - THEMED_COMBOS = '/services/themed-combos', + THEMED_COMBOS = '/holidays/themed-combos', } export type PAGE_LINK_LABEL_TYPE = { @@ -119,13 +119,13 @@ export enum ApiRoute { HALLS = '/halls', IMAGE = '/image', INFO = '/info', + ORDER = '/order', QUESTS = '/quests', RATE = '/rate', SERVICES = '/services', STATISTIC_INFO = '/statistic', STORIES = '/stories', TEXT = '/text', - ORDER = '/order', } export const servicesList: { [k in SERVICE]: ServiceType } = { diff --git a/yarn-offline-mirror/@types-express-requests-logger-3.0.1.tgz b/yarn-offline-mirror/@types-express-requests-logger-3.0.1.tgz new file mode 100644 index 0000000..fe09901 Binary files /dev/null and b/yarn-offline-mirror/@types-express-requests-logger-3.0.1.tgz differ diff --git a/yarn-offline-mirror/@types-express-serve-static-core-4.17.35.tgz b/yarn-offline-mirror/@types-express-serve-static-core-4.17.35.tgz new file mode 100644 index 0000000..6419fd2 Binary files /dev/null and b/yarn-offline-mirror/@types-express-serve-static-core-4.17.35.tgz differ diff --git a/yarn-offline-mirror/bunyan-1.8.15.tgz b/yarn-offline-mirror/bunyan-1.8.15.tgz new file mode 100644 index 0000000..0468b28 Binary files /dev/null and b/yarn-offline-mirror/bunyan-1.8.15.tgz differ diff --git a/yarn-offline-mirror/dtrace-provider-0.8.8.tgz b/yarn-offline-mirror/dtrace-provider-0.8.8.tgz new file mode 100644 index 0000000..2d21f7a Binary files /dev/null and b/yarn-offline-mirror/dtrace-provider-0.8.8.tgz differ diff --git a/yarn-offline-mirror/express-requests-logger-4.0.0.tgz b/yarn-offline-mirror/express-requests-logger-4.0.0.tgz new file mode 100644 index 0000000..3709fdc Binary files /dev/null and b/yarn-offline-mirror/express-requests-logger-4.0.0.tgz differ diff --git a/yarn-offline-mirror/flat-5.0.2.tgz b/yarn-offline-mirror/flat-5.0.2.tgz new file mode 100644 index 0000000..5ca193f Binary files /dev/null and b/yarn-offline-mirror/flat-5.0.2.tgz differ diff --git a/yarn-offline-mirror/glob-6.0.4.tgz b/yarn-offline-mirror/glob-6.0.4.tgz new file mode 100644 index 0000000..655191e Binary files /dev/null and b/yarn-offline-mirror/glob-6.0.4.tgz differ diff --git a/yarn-offline-mirror/lodash-4.17.21.tgz b/yarn-offline-mirror/lodash-4.17.21.tgz new file mode 100644 index 0000000..f246135 Binary files /dev/null and b/yarn-offline-mirror/lodash-4.17.21.tgz differ diff --git a/yarn-offline-mirror/mkdirp-0.5.6.tgz b/yarn-offline-mirror/mkdirp-0.5.6.tgz new file mode 100644 index 0000000..7897dad Binary files /dev/null and b/yarn-offline-mirror/mkdirp-0.5.6.tgz differ diff --git a/yarn-offline-mirror/moment-2.29.4.tgz b/yarn-offline-mirror/moment-2.29.4.tgz new file mode 100644 index 0000000..8aeca7d Binary files /dev/null and b/yarn-offline-mirror/moment-2.29.4.tgz differ diff --git a/yarn-offline-mirror/mv-2.1.1.tgz b/yarn-offline-mirror/mv-2.1.1.tgz new file mode 100644 index 0000000..28f3a0c Binary files /dev/null and b/yarn-offline-mirror/mv-2.1.1.tgz differ diff --git a/yarn-offline-mirror/nan-2.17.0.tgz b/yarn-offline-mirror/nan-2.17.0.tgz new file mode 100644 index 0000000..e188861 Binary files /dev/null and b/yarn-offline-mirror/nan-2.17.0.tgz differ diff --git a/yarn-offline-mirror/ncp-2.0.0.tgz b/yarn-offline-mirror/ncp-2.0.0.tgz new file mode 100644 index 0000000..48e3b79 Binary files /dev/null and b/yarn-offline-mirror/ncp-2.0.0.tgz differ diff --git a/yarn-offline-mirror/rimraf-2.4.5.tgz b/yarn-offline-mirror/rimraf-2.4.5.tgz new file mode 100644 index 0000000..38de7a1 Binary files /dev/null and b/yarn-offline-mirror/rimraf-2.4.5.tgz differ diff --git a/yarn-offline-mirror/safe-json-stringify-1.2.0.tgz b/yarn-offline-mirror/safe-json-stringify-1.2.0.tgz new file mode 100644 index 0000000..a5e95a5 Binary files /dev/null and b/yarn-offline-mirror/safe-json-stringify-1.2.0.tgz differ diff --git a/yarn.lock b/yarn.lock index 50430cf..8d8fcf9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -141,6 +141,23 @@ dependencies: "@types/node" "*" +"@types/express-requests-logger@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/express-requests-logger/-/express-requests-logger-3.0.1.tgz#7be2082e3eaa28fb26baf523ae364066972d201d" + integrity sha512-PHcavUsRiD0SkMURFPfoHomXjdBdIHUL5bVR+PrmnFrOyG59ixN8XAUnWriO7/DUinBSEeSQ4kKq1jVd6YFNnA== + dependencies: + "@types/express-serve-static-core" "*" + +"@types/express-serve-static-core@*": + version "4.17.35" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz#c95dd4424f0d32e525d23812aa8ab8e4d3906c4f" + integrity sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg== + dependencies: + "@types/node" "*" + "@types/qs" "*" + "@types/range-parser" "*" + "@types/send" "*" + "@types/express-serve-static-core@^4.17.33": version "4.17.34" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.34.tgz#c119e85b75215178bc127de588e93100698ab4cc" @@ -554,6 +571,16 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" +bunyan@^1.8.14: + version "1.8.15" + resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.15.tgz#8ce34ca908a17d0776576ca1b2f6cbd916e93b46" + integrity sha512-0tECWShh6wUysgucJcBAoYegf3JJoZWibxdqhTm7OHPeT42qdjkZ29QCMcKwbgU1kiH+auSIasNRXMLWXafXig== + optionalDependencies: + dtrace-provider "~0.8" + moment "^2.19.3" + mv "~2" + safe-json-stringify "~1" + bytes@3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" @@ -731,6 +758,13 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" +dtrace-provider@~0.8: + version "0.8.8" + resolved "https://registry.yarnpkg.com/dtrace-provider/-/dtrace-provider-0.8.8.tgz#2996d5490c37e1347be263b423ed7b297fb0d97e" + integrity sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg== + dependencies: + nan "^2.14.0" + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -1020,6 +1054,15 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== +express-requests-logger@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/express-requests-logger/-/express-requests-logger-4.0.0.tgz#314978210bc9d57afd36101ee4074407b9830f2a" + integrity sha512-NHQptnDY0fceiTSWLnW0dbJSFlrvbFpCGHmY6LsTMmJLgkyO3x8qAJ+EsryQRMga20YH8Ynt/vnmg23QP07h1Q== + dependencies: + bunyan "^1.8.14" + flat "^5.0.2" + lodash "^4.17.14" + express@4.18.2: version "4.18.2" resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" @@ -1133,6 +1176,11 @@ flat-cache@^3.0.4: flatted "^3.1.0" rimraf "^3.0.2" +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + flatted@^3.1.0: version "3.2.7" resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" @@ -1216,6 +1264,17 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" +glob@^6.0.1: + version "6.0.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" + integrity sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A== + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@^7.1.3: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" @@ -1570,6 +1629,11 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== +lodash@^4.17.14: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -1627,7 +1691,7 @@ mime@1.6.0: resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== -minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: +"minimatch@2 || 3", minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -1639,6 +1703,18 @@ minimist@^1.2.0, minimist@^1.2.6: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== +mkdirp@~0.5.1: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +moment@^2.19.3: + version "2.29.4" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" + integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -1654,6 +1730,20 @@ ms@2.1.3, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +mv@~2: + version "2.1.1" + resolved "https://registry.yarnpkg.com/mv/-/mv-2.1.1.tgz#ae6ce0d6f6d5e0a4f7d893798d03c1ea9559b6a2" + integrity sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg== + dependencies: + mkdirp "~0.5.1" + ncp "~2.0.0" + rimraf "~2.4.0" + +nan@^2.14.0: + version "2.17.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb" + integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ== + natural-compare-lite@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" @@ -1664,6 +1754,11 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== +ncp@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ncp/-/ncp-2.0.0.tgz#195a21d6c46e361d2fb1281ba38b91e9df7bdbb3" + integrity sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA== + negotiator@0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" @@ -1939,6 +2034,13 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" +rimraf@~2.4.0: + version "2.4.5" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da" + integrity sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ== + dependencies: + glob "^6.0.1" + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -1951,6 +2053,11 @@ safe-buffer@5.2.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +safe-json-stringify@~1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz#356e44bc98f1f93ce45df14bcd7c01cda86e0afd" + integrity sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg== + safe-regex-test@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295"