Spaces:
Sleeping
Sleeping
Merge pull request #17 from PBL6-team-CATS/feat/backend/feeds
Browse files- backend/package-lock.json +454 -14
- backend/package.json +1 -0
- backend/src/app.module.ts +2 -0
- backend/src/entities/feed.entity.ts +22 -0
- backend/src/migrations/1729780814885-AddFeeds.ts +14 -0
- backend/src/modules/feeds/dto/create-feed.dto.ts +12 -0
- backend/src/modules/feeds/dto/update-feed.dto.ts +15 -0
- backend/src/modules/feeds/feeds.controller.ts +45 -0
- backend/src/modules/feeds/feeds.module.ts +9 -0
- backend/src/modules/feeds/feeds.service.ts +59 -0
- backend/src/modules/menu-item/menu-item.controller.ts +3 -2
- backend/src/modules/menu-item/menu-item.service.ts +28 -2
backend/package-lock.json
CHANGED
@@ -22,6 +22,7 @@
|
|
22 |
"dotenv": "^16.4.5",
|
23 |
"mysql2": "^3.11.3",
|
24 |
"nest-access-control": "^3.1.0",
|
|
|
25 |
"pg": "^8.13.0",
|
26 |
"reflect-metadata": "^0.2.0",
|
27 |
"rxjs": "^7.8.1",
|
@@ -906,6 +907,45 @@
|
|
906 |
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
907 |
}
|
908 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
909 |
"node_modules/@humanwhocodes/config-array": {
|
910 |
"version": "0.13.0",
|
911 |
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz",
|
@@ -1603,6 +1643,13 @@
|
|
1603 |
"semver": "bin/semver.js"
|
1604 |
}
|
1605 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1606 |
"node_modules/@nestjs/cli": {
|
1607 |
"version": "10.4.5",
|
1608 |
"resolved": "https://registry.npmjs.org/@nestjs/cli/-/cli-10.4.5.tgz",
|
@@ -1815,6 +1862,40 @@
|
|
1815 |
"integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==",
|
1816 |
"dev": true
|
1817 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1818 |
"node_modules/@nestjs/testing": {
|
1819 |
"version": "10.4.3",
|
1820 |
"resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-10.4.3.tgz",
|
@@ -2597,6 +2678,13 @@
|
|
2597 |
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
|
2598 |
"license": "ISC"
|
2599 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2600 |
"node_modules/accepts": {
|
2601 |
"version": "1.3.8",
|
2602 |
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
|
@@ -2676,7 +2764,6 @@
|
|
2676 |
"version": "8.12.0",
|
2677 |
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
|
2678 |
"integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
|
2679 |
-
"dev": true,
|
2680 |
"dependencies": {
|
2681 |
"fast-deep-equal": "^3.1.1",
|
2682 |
"json-schema-traverse": "^1.0.0",
|
@@ -2692,7 +2779,6 @@
|
|
2692 |
"version": "2.1.1",
|
2693 |
"resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
|
2694 |
"integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
|
2695 |
-
"dev": true,
|
2696 |
"dependencies": {
|
2697 |
"ajv": "^8.0.0"
|
2698 |
},
|
@@ -2849,8 +2935,7 @@
|
|
2849 |
"node_modules/argparse": {
|
2850 |
"version": "2.0.1",
|
2851 |
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
|
2852 |
-
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
|
2853 |
-
"dev": true
|
2854 |
},
|
2855 |
"node_modules/array-flatten": {
|
2856 |
"version": "1.1.1",
|
@@ -2881,6 +2966,27 @@
|
|
2881 |
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
|
2882 |
"dev": true
|
2883 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2884 |
"node_modules/aws-ssl-profiles": {
|
2885 |
"version": "1.1.2",
|
2886 |
"resolved": "https://registry.npmjs.org/aws-ssl-profiles/-/aws-ssl-profiles-1.1.2.tgz",
|
@@ -4543,11 +4649,24 @@
|
|
4543 |
"node": ">=4"
|
4544 |
}
|
4545 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4546 |
"node_modules/fast-deep-equal": {
|
4547 |
"version": "3.1.3",
|
4548 |
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
|
4549 |
-
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
|
4550 |
-
"dev": true
|
4551 |
},
|
4552 |
"node_modules/fast-diff": {
|
4553 |
"version": "1.3.0",
|
@@ -4577,22 +4696,117 @@
|
|
4577 |
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
|
4578 |
"dev": true
|
4579 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4580 |
"node_modules/fast-levenshtein": {
|
4581 |
"version": "2.0.6",
|
4582 |
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
|
4583 |
"integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
|
4584 |
"dev": true
|
4585 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4586 |
"node_modules/fast-safe-stringify": {
|
4587 |
"version": "2.1.1",
|
4588 |
"resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
|
4589 |
"integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA=="
|
4590 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4591 |
"node_modules/fastq": {
|
4592 |
"version": "1.17.1",
|
4593 |
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
|
4594 |
"integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
|
4595 |
-
"dev": true,
|
4596 |
"dependencies": {
|
4597 |
"reusify": "^1.0.4"
|
4598 |
}
|
@@ -4705,6 +4919,21 @@
|
|
4705 |
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
4706 |
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
|
4707 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4708 |
"node_modules/find-up": {
|
4709 |
"version": "5.0.0",
|
4710 |
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
|
@@ -6311,7 +6540,6 @@
|
|
6311 |
"version": "4.1.0",
|
6312 |
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
|
6313 |
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
|
6314 |
-
"dev": true,
|
6315 |
"dependencies": {
|
6316 |
"argparse": "^2.0.1"
|
6317 |
},
|
@@ -6343,11 +6571,20 @@
|
|
6343 |
"integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
|
6344 |
"dev": true
|
6345 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6346 |
"node_modules/json-schema-traverse": {
|
6347 |
"version": "1.0.0",
|
6348 |
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
|
6349 |
-
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
|
6350 |
-
"dev": true
|
6351 |
},
|
6352 |
"node_modules/json-stable-stringify-without-jsonify": {
|
6353 |
"version": "1.0.1",
|
@@ -6474,6 +6711,28 @@
|
|
6474 |
"integrity": "sha512-QkJn9/D7zZ1ucvT++TQSvZuSA2xAWeUytU+DiEQwbPKLyrDpvbul2AFs1CGbRAPpSCCk47aRAb5DX5mmcayp4g==",
|
6475 |
"license": "MIT"
|
6476 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6477 |
"node_modules/lines-and-columns": {
|
6478 |
"version": "1.2.4",
|
6479 |
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
|
@@ -6961,6 +7220,22 @@
|
|
6961 |
}
|
6962 |
}
|
6963 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6964 |
"node_modules/node-abort-controller": {
|
6965 |
"version": "3.1.1",
|
6966 |
"resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz",
|
@@ -7087,6 +7362,16 @@
|
|
7087 |
"url": "https://github.com/sponsors/ljharb"
|
7088 |
}
|
7089 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7090 |
"node_modules/on-finished": {
|
7091 |
"version": "2.4.1",
|
7092 |
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
|
@@ -7442,6 +7727,53 @@
|
|
7442 |
"url": "https://github.com/sponsors/jonschlinkert"
|
7443 |
}
|
7444 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7445 |
"node_modules/pirates": {
|
7446 |
"version": "4.0.6",
|
7447 |
"resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
|
@@ -7630,6 +7962,13 @@
|
|
7630 |
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
|
7631 |
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
|
7632 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7633 |
"node_modules/prompts": {
|
7634 |
"version": "2.4.2",
|
7635 |
"resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
|
@@ -7659,7 +7998,6 @@
|
|
7659 |
"version": "2.3.1",
|
7660 |
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
|
7661 |
"integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
|
7662 |
-
"dev": true,
|
7663 |
"engines": {
|
7664 |
"node": ">=6"
|
7665 |
}
|
@@ -7714,6 +8052,13 @@
|
|
7714 |
}
|
7715 |
]
|
7716 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7717 |
"node_modules/randombytes": {
|
7718 |
"version": "2.1.0",
|
7719 |
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
|
@@ -7794,6 +8139,16 @@
|
|
7794 |
"url": "https://github.com/sponsors/jonschlinkert"
|
7795 |
}
|
7796 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7797 |
"node_modules/reflect-metadata": {
|
7798 |
"version": "0.2.2",
|
7799 |
"resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz",
|
@@ -7820,7 +8175,6 @@
|
|
7820 |
"version": "2.0.2",
|
7821 |
"resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
|
7822 |
"integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
|
7823 |
-
"dev": true,
|
7824 |
"engines": {
|
7825 |
"node": ">=0.10.0"
|
7826 |
}
|
@@ -7900,16 +8254,32 @@
|
|
7900 |
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
|
7901 |
"dev": true
|
7902 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7903 |
"node_modules/reusify": {
|
7904 |
"version": "1.0.4",
|
7905 |
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
|
7906 |
"integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
|
7907 |
-
"dev": true,
|
7908 |
"engines": {
|
7909 |
"iojs": ">=1.0.0",
|
7910 |
"node": ">=0.10.0"
|
7911 |
}
|
7912 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7913 |
"node_modules/rimraf": {
|
7914 |
"version": "3.0.2",
|
7915 |
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
|
@@ -8024,6 +8394,26 @@
|
|
8024 |
}
|
8025 |
]
|
8026 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8027 |
"node_modules/safer-buffer": {
|
8028 |
"version": "2.1.2",
|
8029 |
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
|
@@ -8078,6 +8468,13 @@
|
|
8078 |
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
|
8079 |
"dev": true
|
8080 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8081 |
"node_modules/semver": {
|
8082 |
"version": "7.6.3",
|
8083 |
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
|
@@ -8167,6 +8564,13 @@
|
|
8167 |
"integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
|
8168 |
"license": "ISC"
|
8169 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8170 |
"node_modules/set-function-length": {
|
8171 |
"version": "1.2.2",
|
8172 |
"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
|
@@ -8262,6 +8666,16 @@
|
|
8262 |
"node": ">=8"
|
8263 |
}
|
8264 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8265 |
"node_modules/source-map": {
|
8266 |
"version": "0.7.4",
|
8267 |
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
|
@@ -8524,6 +8938,13 @@
|
|
8524 |
"url": "https://github.com/sponsors/ljharb"
|
8525 |
}
|
8526 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8527 |
"node_modules/symbol-observable": {
|
8528 |
"version": "4.0.0",
|
8529 |
"resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz",
|
@@ -8771,6 +9192,16 @@
|
|
8771 |
"node": ">=0.8"
|
8772 |
}
|
8773 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8774 |
"node_modules/through": {
|
8775 |
"version": "2.3.8",
|
8776 |
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
|
@@ -8816,6 +9247,16 @@
|
|
8816 |
"node": ">=8.0"
|
8817 |
}
|
8818 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8819 |
"node_modules/toidentifier": {
|
8820 |
"version": "1.0.1",
|
8821 |
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
|
@@ -9276,7 +9717,6 @@
|
|
9276 |
"version": "4.4.1",
|
9277 |
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
|
9278 |
"integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
|
9279 |
-
"dev": true,
|
9280 |
"dependencies": {
|
9281 |
"punycode": "^2.1.0"
|
9282 |
}
|
|
|
22 |
"dotenv": "^16.4.5",
|
23 |
"mysql2": "^3.11.3",
|
24 |
"nest-access-control": "^3.1.0",
|
25 |
+
"nestjs-paginate": "^9.3.0",
|
26 |
"pg": "^8.13.0",
|
27 |
"reflect-metadata": "^0.2.0",
|
28 |
"rxjs": "^7.8.1",
|
|
|
907 |
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
|
908 |
}
|
909 |
},
|
910 |
+
"node_modules/@fastify/ajv-compiler": {
|
911 |
+
"version": "3.6.0",
|
912 |
+
"resolved": "https://registry.npmjs.org/@fastify/ajv-compiler/-/ajv-compiler-3.6.0.tgz",
|
913 |
+
"integrity": "sha512-LwdXQJjmMD+GwLOkP7TVC68qa+pSSogeWWmznRJ/coyTcfe9qA05AHFSe1eZFwK6q+xVRpChnvFUkf1iYaSZsQ==",
|
914 |
+
"license": "MIT",
|
915 |
+
"peer": true,
|
916 |
+
"dependencies": {
|
917 |
+
"ajv": "^8.11.0",
|
918 |
+
"ajv-formats": "^2.1.1",
|
919 |
+
"fast-uri": "^2.0.0"
|
920 |
+
}
|
921 |
+
},
|
922 |
+
"node_modules/@fastify/error": {
|
923 |
+
"version": "3.4.1",
|
924 |
+
"resolved": "https://registry.npmjs.org/@fastify/error/-/error-3.4.1.tgz",
|
925 |
+
"integrity": "sha512-wWSvph+29GR783IhmvdwWnN4bUxTD01Vm5Xad4i7i1VuAOItLvbPAb69sb0IQ2N57yprvhNIwAP5B6xfKTmjmQ==",
|
926 |
+
"license": "MIT",
|
927 |
+
"peer": true
|
928 |
+
},
|
929 |
+
"node_modules/@fastify/fast-json-stringify-compiler": {
|
930 |
+
"version": "4.3.0",
|
931 |
+
"resolved": "https://registry.npmjs.org/@fastify/fast-json-stringify-compiler/-/fast-json-stringify-compiler-4.3.0.tgz",
|
932 |
+
"integrity": "sha512-aZAXGYo6m22Fk1zZzEUKBvut/CIIQe/BapEORnxiD5Qr0kPHqqI69NtEMCme74h+at72sPhbkb4ZrLd1W3KRLA==",
|
933 |
+
"license": "MIT",
|
934 |
+
"peer": true,
|
935 |
+
"dependencies": {
|
936 |
+
"fast-json-stringify": "^5.7.0"
|
937 |
+
}
|
938 |
+
},
|
939 |
+
"node_modules/@fastify/merge-json-schemas": {
|
940 |
+
"version": "0.1.1",
|
941 |
+
"resolved": "https://registry.npmjs.org/@fastify/merge-json-schemas/-/merge-json-schemas-0.1.1.tgz",
|
942 |
+
"integrity": "sha512-fERDVz7topgNjtXsJTTW1JKLy0rhuLRcquYqNR9rF7OcVpCa2OVW49ZPDIhaRRCaUuvVxI+N416xUoF76HNSXA==",
|
943 |
+
"license": "MIT",
|
944 |
+
"peer": true,
|
945 |
+
"dependencies": {
|
946 |
+
"fast-deep-equal": "^3.1.3"
|
947 |
+
}
|
948 |
+
},
|
949 |
"node_modules/@humanwhocodes/config-array": {
|
950 |
"version": "0.13.0",
|
951 |
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz",
|
|
|
1643 |
"semver": "bin/semver.js"
|
1644 |
}
|
1645 |
},
|
1646 |
+
"node_modules/@microsoft/tsdoc": {
|
1647 |
+
"version": "0.15.0",
|
1648 |
+
"resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.15.0.tgz",
|
1649 |
+
"integrity": "sha512-HZpPoABogPvjeJOdzCOSJsXeL/SMCBgBZMVC3X3d7YYp2gf31MfxhUoYUNwf1ERPJOnQc0wkFn9trqI6ZEdZuA==",
|
1650 |
+
"license": "MIT",
|
1651 |
+
"peer": true
|
1652 |
+
},
|
1653 |
"node_modules/@nestjs/cli": {
|
1654 |
"version": "10.4.5",
|
1655 |
"resolved": "https://registry.npmjs.org/@nestjs/cli/-/cli-10.4.5.tgz",
|
|
|
1862 |
"integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==",
|
1863 |
"dev": true
|
1864 |
},
|
1865 |
+
"node_modules/@nestjs/swagger": {
|
1866 |
+
"version": "7.4.2",
|
1867 |
+
"resolved": "https://registry.npmjs.org/@nestjs/swagger/-/swagger-7.4.2.tgz",
|
1868 |
+
"integrity": "sha512-Mu6TEn1M/owIvAx2B4DUQObQXqo2028R2s9rSZ/hJEgBK95+doTwS0DjmVA2wTeZTyVtXOoN7CsoM5pONBzvKQ==",
|
1869 |
+
"license": "MIT",
|
1870 |
+
"peer": true,
|
1871 |
+
"dependencies": {
|
1872 |
+
"@microsoft/tsdoc": "^0.15.0",
|
1873 |
+
"@nestjs/mapped-types": "2.0.5",
|
1874 |
+
"js-yaml": "4.1.0",
|
1875 |
+
"lodash": "4.17.21",
|
1876 |
+
"path-to-regexp": "3.3.0",
|
1877 |
+
"swagger-ui-dist": "5.17.14"
|
1878 |
+
},
|
1879 |
+
"peerDependencies": {
|
1880 |
+
"@fastify/static": "^6.0.0 || ^7.0.0",
|
1881 |
+
"@nestjs/common": "^9.0.0 || ^10.0.0",
|
1882 |
+
"@nestjs/core": "^9.0.0 || ^10.0.0",
|
1883 |
+
"class-transformer": "*",
|
1884 |
+
"class-validator": "*",
|
1885 |
+
"reflect-metadata": "^0.1.12 || ^0.2.0"
|
1886 |
+
},
|
1887 |
+
"peerDependenciesMeta": {
|
1888 |
+
"@fastify/static": {
|
1889 |
+
"optional": true
|
1890 |
+
},
|
1891 |
+
"class-transformer": {
|
1892 |
+
"optional": true
|
1893 |
+
},
|
1894 |
+
"class-validator": {
|
1895 |
+
"optional": true
|
1896 |
+
}
|
1897 |
+
}
|
1898 |
+
},
|
1899 |
"node_modules/@nestjs/testing": {
|
1900 |
"version": "10.4.3",
|
1901 |
"resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-10.4.3.tgz",
|
|
|
2678 |
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
|
2679 |
"license": "ISC"
|
2680 |
},
|
2681 |
+
"node_modules/abstract-logging": {
|
2682 |
+
"version": "2.0.1",
|
2683 |
+
"resolved": "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.1.tgz",
|
2684 |
+
"integrity": "sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==",
|
2685 |
+
"license": "MIT",
|
2686 |
+
"peer": true
|
2687 |
+
},
|
2688 |
"node_modules/accepts": {
|
2689 |
"version": "1.3.8",
|
2690 |
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
|
|
|
2764 |
"version": "8.12.0",
|
2765 |
"resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz",
|
2766 |
"integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==",
|
|
|
2767 |
"dependencies": {
|
2768 |
"fast-deep-equal": "^3.1.1",
|
2769 |
"json-schema-traverse": "^1.0.0",
|
|
|
2779 |
"version": "2.1.1",
|
2780 |
"resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz",
|
2781 |
"integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==",
|
|
|
2782 |
"dependencies": {
|
2783 |
"ajv": "^8.0.0"
|
2784 |
},
|
|
|
2935 |
"node_modules/argparse": {
|
2936 |
"version": "2.0.1",
|
2937 |
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
|
2938 |
+
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
|
|
|
2939 |
},
|
2940 |
"node_modules/array-flatten": {
|
2941 |
"version": "1.1.1",
|
|
|
2966 |
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
|
2967 |
"dev": true
|
2968 |
},
|
2969 |
+
"node_modules/atomic-sleep": {
|
2970 |
+
"version": "1.0.0",
|
2971 |
+
"resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz",
|
2972 |
+
"integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==",
|
2973 |
+
"license": "MIT",
|
2974 |
+
"peer": true,
|
2975 |
+
"engines": {
|
2976 |
+
"node": ">=8.0.0"
|
2977 |
+
}
|
2978 |
+
},
|
2979 |
+
"node_modules/avvio": {
|
2980 |
+
"version": "8.4.0",
|
2981 |
+
"resolved": "https://registry.npmjs.org/avvio/-/avvio-8.4.0.tgz",
|
2982 |
+
"integrity": "sha512-CDSwaxINFy59iNwhYnkvALBwZiTydGkOecZyPkqBpABYR1KqGEsET0VOOYDwtleZSUIdeY36DC2bSZ24CO1igA==",
|
2983 |
+
"license": "MIT",
|
2984 |
+
"peer": true,
|
2985 |
+
"dependencies": {
|
2986 |
+
"@fastify/error": "^3.3.0",
|
2987 |
+
"fastq": "^1.17.1"
|
2988 |
+
}
|
2989 |
+
},
|
2990 |
"node_modules/aws-ssl-profiles": {
|
2991 |
"version": "1.1.2",
|
2992 |
"resolved": "https://registry.npmjs.org/aws-ssl-profiles/-/aws-ssl-profiles-1.1.2.tgz",
|
|
|
4649 |
"node": ">=4"
|
4650 |
}
|
4651 |
},
|
4652 |
+
"node_modules/fast-content-type-parse": {
|
4653 |
+
"version": "1.1.0",
|
4654 |
+
"resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-1.1.0.tgz",
|
4655 |
+
"integrity": "sha512-fBHHqSTFLVnR61C+gltJuE5GkVQMV0S2nqUO8TJ+5Z3qAKG8vAx4FKai1s5jq/inV1+sREynIWSuQ6HgoSXpDQ==",
|
4656 |
+
"license": "MIT",
|
4657 |
+
"peer": true
|
4658 |
+
},
|
4659 |
+
"node_modules/fast-decode-uri-component": {
|
4660 |
+
"version": "1.0.1",
|
4661 |
+
"resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz",
|
4662 |
+
"integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==",
|
4663 |
+
"license": "MIT",
|
4664 |
+
"peer": true
|
4665 |
+
},
|
4666 |
"node_modules/fast-deep-equal": {
|
4667 |
"version": "3.1.3",
|
4668 |
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
|
4669 |
+
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
|
|
|
4670 |
},
|
4671 |
"node_modules/fast-diff": {
|
4672 |
"version": "1.3.0",
|
|
|
4696 |
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
|
4697 |
"dev": true
|
4698 |
},
|
4699 |
+
"node_modules/fast-json-stringify": {
|
4700 |
+
"version": "5.16.1",
|
4701 |
+
"resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-5.16.1.tgz",
|
4702 |
+
"integrity": "sha512-KAdnLvy1yu/XrRtP+LJnxbBGrhN+xXu+gt3EUvZhYGKCr3lFHq/7UFJHHFgmJKoqlh6B40bZLEv7w46B0mqn1g==",
|
4703 |
+
"license": "MIT",
|
4704 |
+
"peer": true,
|
4705 |
+
"dependencies": {
|
4706 |
+
"@fastify/merge-json-schemas": "^0.1.0",
|
4707 |
+
"ajv": "^8.10.0",
|
4708 |
+
"ajv-formats": "^3.0.1",
|
4709 |
+
"fast-deep-equal": "^3.1.3",
|
4710 |
+
"fast-uri": "^2.1.0",
|
4711 |
+
"json-schema-ref-resolver": "^1.0.1",
|
4712 |
+
"rfdc": "^1.2.0"
|
4713 |
+
}
|
4714 |
+
},
|
4715 |
+
"node_modules/fast-json-stringify/node_modules/ajv-formats": {
|
4716 |
+
"version": "3.0.1",
|
4717 |
+
"resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz",
|
4718 |
+
"integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==",
|
4719 |
+
"license": "MIT",
|
4720 |
+
"peer": true,
|
4721 |
+
"dependencies": {
|
4722 |
+
"ajv": "^8.0.0"
|
4723 |
+
},
|
4724 |
+
"peerDependencies": {
|
4725 |
+
"ajv": "^8.0.0"
|
4726 |
+
},
|
4727 |
+
"peerDependenciesMeta": {
|
4728 |
+
"ajv": {
|
4729 |
+
"optional": true
|
4730 |
+
}
|
4731 |
+
}
|
4732 |
+
},
|
4733 |
"node_modules/fast-levenshtein": {
|
4734 |
"version": "2.0.6",
|
4735 |
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
|
4736 |
"integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
|
4737 |
"dev": true
|
4738 |
},
|
4739 |
+
"node_modules/fast-querystring": {
|
4740 |
+
"version": "1.1.2",
|
4741 |
+
"resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.1.2.tgz",
|
4742 |
+
"integrity": "sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==",
|
4743 |
+
"license": "MIT",
|
4744 |
+
"peer": true,
|
4745 |
+
"dependencies": {
|
4746 |
+
"fast-decode-uri-component": "^1.0.1"
|
4747 |
+
}
|
4748 |
+
},
|
4749 |
+
"node_modules/fast-redact": {
|
4750 |
+
"version": "3.5.0",
|
4751 |
+
"resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz",
|
4752 |
+
"integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==",
|
4753 |
+
"license": "MIT",
|
4754 |
+
"peer": true,
|
4755 |
+
"engines": {
|
4756 |
+
"node": ">=6"
|
4757 |
+
}
|
4758 |
+
},
|
4759 |
"node_modules/fast-safe-stringify": {
|
4760 |
"version": "2.1.1",
|
4761 |
"resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
|
4762 |
"integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA=="
|
4763 |
},
|
4764 |
+
"node_modules/fast-uri": {
|
4765 |
+
"version": "2.4.0",
|
4766 |
+
"resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-2.4.0.tgz",
|
4767 |
+
"integrity": "sha512-ypuAmmMKInk5q7XcepxlnUWDLWv4GFtaJqAzWKqn62IpQ3pejtr5dTVbt3vwqVaMKmkNR55sTT+CqUKIaT21BA==",
|
4768 |
+
"license": "MIT",
|
4769 |
+
"peer": true
|
4770 |
+
},
|
4771 |
+
"node_modules/fastify": {
|
4772 |
+
"version": "4.28.1",
|
4773 |
+
"resolved": "https://registry.npmjs.org/fastify/-/fastify-4.28.1.tgz",
|
4774 |
+
"integrity": "sha512-kFWUtpNr4i7t5vY2EJPCN2KgMVpuqfU4NjnJNCgiNB900oiDeYqaNDRcAfeBbOF5hGixixxcKnOU4KN9z6QncQ==",
|
4775 |
+
"funding": [
|
4776 |
+
{
|
4777 |
+
"type": "github",
|
4778 |
+
"url": "https://github.com/sponsors/fastify"
|
4779 |
+
},
|
4780 |
+
{
|
4781 |
+
"type": "opencollective",
|
4782 |
+
"url": "https://opencollective.com/fastify"
|
4783 |
+
}
|
4784 |
+
],
|
4785 |
+
"license": "MIT",
|
4786 |
+
"peer": true,
|
4787 |
+
"dependencies": {
|
4788 |
+
"@fastify/ajv-compiler": "^3.5.0",
|
4789 |
+
"@fastify/error": "^3.4.0",
|
4790 |
+
"@fastify/fast-json-stringify-compiler": "^4.3.0",
|
4791 |
+
"abstract-logging": "^2.0.1",
|
4792 |
+
"avvio": "^8.3.0",
|
4793 |
+
"fast-content-type-parse": "^1.1.0",
|
4794 |
+
"fast-json-stringify": "^5.8.0",
|
4795 |
+
"find-my-way": "^8.0.0",
|
4796 |
+
"light-my-request": "^5.11.0",
|
4797 |
+
"pino": "^9.0.0",
|
4798 |
+
"process-warning": "^3.0.0",
|
4799 |
+
"proxy-addr": "^2.0.7",
|
4800 |
+
"rfdc": "^1.3.0",
|
4801 |
+
"secure-json-parse": "^2.7.0",
|
4802 |
+
"semver": "^7.5.4",
|
4803 |
+
"toad-cache": "^3.3.0"
|
4804 |
+
}
|
4805 |
+
},
|
4806 |
"node_modules/fastq": {
|
4807 |
"version": "1.17.1",
|
4808 |
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
|
4809 |
"integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
|
|
|
4810 |
"dependencies": {
|
4811 |
"reusify": "^1.0.4"
|
4812 |
}
|
|
|
4919 |
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
4920 |
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
|
4921 |
},
|
4922 |
+
"node_modules/find-my-way": {
|
4923 |
+
"version": "8.2.2",
|
4924 |
+
"resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-8.2.2.tgz",
|
4925 |
+
"integrity": "sha512-Dobi7gcTEq8yszimcfp/R7+owiT4WncAJ7VTTgFH1jYJ5GaG1FbhjwDG820hptN0QDFvzVY3RfCzdInvGPGzjA==",
|
4926 |
+
"license": "MIT",
|
4927 |
+
"peer": true,
|
4928 |
+
"dependencies": {
|
4929 |
+
"fast-deep-equal": "^3.1.3",
|
4930 |
+
"fast-querystring": "^1.0.0",
|
4931 |
+
"safe-regex2": "^3.1.0"
|
4932 |
+
},
|
4933 |
+
"engines": {
|
4934 |
+
"node": ">=14"
|
4935 |
+
}
|
4936 |
+
},
|
4937 |
"node_modules/find-up": {
|
4938 |
"version": "5.0.0",
|
4939 |
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
|
|
|
6540 |
"version": "4.1.0",
|
6541 |
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
|
6542 |
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
|
|
|
6543 |
"dependencies": {
|
6544 |
"argparse": "^2.0.1"
|
6545 |
},
|
|
|
6571 |
"integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
|
6572 |
"dev": true
|
6573 |
},
|
6574 |
+
"node_modules/json-schema-ref-resolver": {
|
6575 |
+
"version": "1.0.1",
|
6576 |
+
"resolved": "https://registry.npmjs.org/json-schema-ref-resolver/-/json-schema-ref-resolver-1.0.1.tgz",
|
6577 |
+
"integrity": "sha512-EJAj1pgHc1hxF6vo2Z3s69fMjO1INq6eGHXZ8Z6wCQeldCuwxGK9Sxf4/cScGn3FZubCVUehfWtcDM/PLteCQw==",
|
6578 |
+
"license": "MIT",
|
6579 |
+
"peer": true,
|
6580 |
+
"dependencies": {
|
6581 |
+
"fast-deep-equal": "^3.1.3"
|
6582 |
+
}
|
6583 |
+
},
|
6584 |
"node_modules/json-schema-traverse": {
|
6585 |
"version": "1.0.0",
|
6586 |
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
|
6587 |
+
"integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
|
|
|
6588 |
},
|
6589 |
"node_modules/json-stable-stringify-without-jsonify": {
|
6590 |
"version": "1.0.1",
|
|
|
6711 |
"integrity": "sha512-QkJn9/D7zZ1ucvT++TQSvZuSA2xAWeUytU+DiEQwbPKLyrDpvbul2AFs1CGbRAPpSCCk47aRAb5DX5mmcayp4g==",
|
6712 |
"license": "MIT"
|
6713 |
},
|
6714 |
+
"node_modules/light-my-request": {
|
6715 |
+
"version": "5.14.0",
|
6716 |
+
"resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-5.14.0.tgz",
|
6717 |
+
"integrity": "sha512-aORPWntbpH5esaYpGOOmri0OHDOe3wC5M2MQxZ9dvMLZm6DnaAn0kJlcbU9hwsQgLzmZyReKwFwwPkR+nHu5kA==",
|
6718 |
+
"license": "BSD-3-Clause",
|
6719 |
+
"peer": true,
|
6720 |
+
"dependencies": {
|
6721 |
+
"cookie": "^0.7.0",
|
6722 |
+
"process-warning": "^3.0.0",
|
6723 |
+
"set-cookie-parser": "^2.4.1"
|
6724 |
+
}
|
6725 |
+
},
|
6726 |
+
"node_modules/light-my-request/node_modules/cookie": {
|
6727 |
+
"version": "0.7.2",
|
6728 |
+
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
|
6729 |
+
"integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
|
6730 |
+
"license": "MIT",
|
6731 |
+
"peer": true,
|
6732 |
+
"engines": {
|
6733 |
+
"node": ">= 0.6"
|
6734 |
+
}
|
6735 |
+
},
|
6736 |
"node_modules/lines-and-columns": {
|
6737 |
"version": "1.2.4",
|
6738 |
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
|
|
|
7220 |
}
|
7221 |
}
|
7222 |
},
|
7223 |
+
"node_modules/nestjs-paginate": {
|
7224 |
+
"version": "9.3.0",
|
7225 |
+
"resolved": "https://registry.npmjs.org/nestjs-paginate/-/nestjs-paginate-9.3.0.tgz",
|
7226 |
+
"integrity": "sha512-wqg7qzH0Li19oS0X9eN5n1r37adlZiUwcZM9QJ8iIdMyDAG/faD8U5uUgqOd+hGhBbIOgat5yRGNxfW4UlXhSw==",
|
7227 |
+
"license": "MIT",
|
7228 |
+
"dependencies": {
|
7229 |
+
"lodash": "^4.17.21"
|
7230 |
+
},
|
7231 |
+
"peerDependencies": {
|
7232 |
+
"@nestjs/common": "^10.0.0",
|
7233 |
+
"@nestjs/swagger": "^7.0.0",
|
7234 |
+
"express": "^4.0.0",
|
7235 |
+
"fastify": "^4.0.0",
|
7236 |
+
"typeorm": "^0.3.17"
|
7237 |
+
}
|
7238 |
+
},
|
7239 |
"node_modules/node-abort-controller": {
|
7240 |
"version": "3.1.1",
|
7241 |
"resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz",
|
|
|
7362 |
"url": "https://github.com/sponsors/ljharb"
|
7363 |
}
|
7364 |
},
|
7365 |
+
"node_modules/on-exit-leak-free": {
|
7366 |
+
"version": "2.1.2",
|
7367 |
+
"resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz",
|
7368 |
+
"integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==",
|
7369 |
+
"license": "MIT",
|
7370 |
+
"peer": true,
|
7371 |
+
"engines": {
|
7372 |
+
"node": ">=14.0.0"
|
7373 |
+
}
|
7374 |
+
},
|
7375 |
"node_modules/on-finished": {
|
7376 |
"version": "2.4.1",
|
7377 |
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
|
|
|
7727 |
"url": "https://github.com/sponsors/jonschlinkert"
|
7728 |
}
|
7729 |
},
|
7730 |
+
"node_modules/pino": {
|
7731 |
+
"version": "9.5.0",
|
7732 |
+
"resolved": "https://registry.npmjs.org/pino/-/pino-9.5.0.tgz",
|
7733 |
+
"integrity": "sha512-xSEmD4pLnV54t0NOUN16yCl7RIB1c5UUOse5HSyEXtBp+FgFQyPeDutc+Q2ZO7/22vImV7VfEjH/1zV2QuqvYw==",
|
7734 |
+
"license": "MIT",
|
7735 |
+
"peer": true,
|
7736 |
+
"dependencies": {
|
7737 |
+
"atomic-sleep": "^1.0.0",
|
7738 |
+
"fast-redact": "^3.1.1",
|
7739 |
+
"on-exit-leak-free": "^2.1.0",
|
7740 |
+
"pino-abstract-transport": "^2.0.0",
|
7741 |
+
"pino-std-serializers": "^7.0.0",
|
7742 |
+
"process-warning": "^4.0.0",
|
7743 |
+
"quick-format-unescaped": "^4.0.3",
|
7744 |
+
"real-require": "^0.2.0",
|
7745 |
+
"safe-stable-stringify": "^2.3.1",
|
7746 |
+
"sonic-boom": "^4.0.1",
|
7747 |
+
"thread-stream": "^3.0.0"
|
7748 |
+
},
|
7749 |
+
"bin": {
|
7750 |
+
"pino": "bin.js"
|
7751 |
+
}
|
7752 |
+
},
|
7753 |
+
"node_modules/pino-abstract-transport": {
|
7754 |
+
"version": "2.0.0",
|
7755 |
+
"resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz",
|
7756 |
+
"integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==",
|
7757 |
+
"license": "MIT",
|
7758 |
+
"peer": true,
|
7759 |
+
"dependencies": {
|
7760 |
+
"split2": "^4.0.0"
|
7761 |
+
}
|
7762 |
+
},
|
7763 |
+
"node_modules/pino-std-serializers": {
|
7764 |
+
"version": "7.0.0",
|
7765 |
+
"resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz",
|
7766 |
+
"integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==",
|
7767 |
+
"license": "MIT",
|
7768 |
+
"peer": true
|
7769 |
+
},
|
7770 |
+
"node_modules/pino/node_modules/process-warning": {
|
7771 |
+
"version": "4.0.0",
|
7772 |
+
"resolved": "https://registry.npmjs.org/process-warning/-/process-warning-4.0.0.tgz",
|
7773 |
+
"integrity": "sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==",
|
7774 |
+
"license": "MIT",
|
7775 |
+
"peer": true
|
7776 |
+
},
|
7777 |
"node_modules/pirates": {
|
7778 |
"version": "4.0.6",
|
7779 |
"resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
|
|
|
7962 |
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
|
7963 |
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
|
7964 |
},
|
7965 |
+
"node_modules/process-warning": {
|
7966 |
+
"version": "3.0.0",
|
7967 |
+
"resolved": "https://registry.npmjs.org/process-warning/-/process-warning-3.0.0.tgz",
|
7968 |
+
"integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==",
|
7969 |
+
"license": "MIT",
|
7970 |
+
"peer": true
|
7971 |
+
},
|
7972 |
"node_modules/prompts": {
|
7973 |
"version": "2.4.2",
|
7974 |
"resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
|
|
|
7998 |
"version": "2.3.1",
|
7999 |
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
|
8000 |
"integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
|
|
|
8001 |
"engines": {
|
8002 |
"node": ">=6"
|
8003 |
}
|
|
|
8052 |
}
|
8053 |
]
|
8054 |
},
|
8055 |
+
"node_modules/quick-format-unescaped": {
|
8056 |
+
"version": "4.0.4",
|
8057 |
+
"resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz",
|
8058 |
+
"integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==",
|
8059 |
+
"license": "MIT",
|
8060 |
+
"peer": true
|
8061 |
+
},
|
8062 |
"node_modules/randombytes": {
|
8063 |
"version": "2.1.0",
|
8064 |
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
|
|
|
8139 |
"url": "https://github.com/sponsors/jonschlinkert"
|
8140 |
}
|
8141 |
},
|
8142 |
+
"node_modules/real-require": {
|
8143 |
+
"version": "0.2.0",
|
8144 |
+
"resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz",
|
8145 |
+
"integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==",
|
8146 |
+
"license": "MIT",
|
8147 |
+
"peer": true,
|
8148 |
+
"engines": {
|
8149 |
+
"node": ">= 12.13.0"
|
8150 |
+
}
|
8151 |
+
},
|
8152 |
"node_modules/reflect-metadata": {
|
8153 |
"version": "0.2.2",
|
8154 |
"resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz",
|
|
|
8175 |
"version": "2.0.2",
|
8176 |
"resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
|
8177 |
"integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
|
|
|
8178 |
"engines": {
|
8179 |
"node": ">=0.10.0"
|
8180 |
}
|
|
|
8254 |
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
|
8255 |
"dev": true
|
8256 |
},
|
8257 |
+
"node_modules/ret": {
|
8258 |
+
"version": "0.4.3",
|
8259 |
+
"resolved": "https://registry.npmjs.org/ret/-/ret-0.4.3.tgz",
|
8260 |
+
"integrity": "sha512-0f4Memo5QP7WQyUEAYUO3esD/XjOc3Zjjg5CPsAq1p8sIu0XPeMbHJemKA0BO7tV0X7+A0FoEpbmHXWxPyD3wQ==",
|
8261 |
+
"license": "MIT",
|
8262 |
+
"peer": true,
|
8263 |
+
"engines": {
|
8264 |
+
"node": ">=10"
|
8265 |
+
}
|
8266 |
+
},
|
8267 |
"node_modules/reusify": {
|
8268 |
"version": "1.0.4",
|
8269 |
"resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
|
8270 |
"integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
|
|
|
8271 |
"engines": {
|
8272 |
"iojs": ">=1.0.0",
|
8273 |
"node": ">=0.10.0"
|
8274 |
}
|
8275 |
},
|
8276 |
+
"node_modules/rfdc": {
|
8277 |
+
"version": "1.4.1",
|
8278 |
+
"resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz",
|
8279 |
+
"integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==",
|
8280 |
+
"license": "MIT",
|
8281 |
+
"peer": true
|
8282 |
+
},
|
8283 |
"node_modules/rimraf": {
|
8284 |
"version": "3.0.2",
|
8285 |
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
|
|
|
8394 |
}
|
8395 |
]
|
8396 |
},
|
8397 |
+
"node_modules/safe-regex2": {
|
8398 |
+
"version": "3.1.0",
|
8399 |
+
"resolved": "https://registry.npmjs.org/safe-regex2/-/safe-regex2-3.1.0.tgz",
|
8400 |
+
"integrity": "sha512-RAAZAGbap2kBfbVhvmnTFv73NWLMvDGOITFYTZBAaY8eR+Ir4ef7Up/e7amo+y1+AH+3PtLkrt9mvcTsG9LXug==",
|
8401 |
+
"license": "MIT",
|
8402 |
+
"peer": true,
|
8403 |
+
"dependencies": {
|
8404 |
+
"ret": "~0.4.0"
|
8405 |
+
}
|
8406 |
+
},
|
8407 |
+
"node_modules/safe-stable-stringify": {
|
8408 |
+
"version": "2.5.0",
|
8409 |
+
"resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz",
|
8410 |
+
"integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==",
|
8411 |
+
"license": "MIT",
|
8412 |
+
"peer": true,
|
8413 |
+
"engines": {
|
8414 |
+
"node": ">=10"
|
8415 |
+
}
|
8416 |
+
},
|
8417 |
"node_modules/safer-buffer": {
|
8418 |
"version": "2.1.2",
|
8419 |
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
|
|
|
8468 |
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
|
8469 |
"dev": true
|
8470 |
},
|
8471 |
+
"node_modules/secure-json-parse": {
|
8472 |
+
"version": "2.7.0",
|
8473 |
+
"resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz",
|
8474 |
+
"integrity": "sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==",
|
8475 |
+
"license": "BSD-3-Clause",
|
8476 |
+
"peer": true
|
8477 |
+
},
|
8478 |
"node_modules/semver": {
|
8479 |
"version": "7.6.3",
|
8480 |
"resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz",
|
|
|
8564 |
"integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
|
8565 |
"license": "ISC"
|
8566 |
},
|
8567 |
+
"node_modules/set-cookie-parser": {
|
8568 |
+
"version": "2.7.1",
|
8569 |
+
"resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.7.1.tgz",
|
8570 |
+
"integrity": "sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==",
|
8571 |
+
"license": "MIT",
|
8572 |
+
"peer": true
|
8573 |
+
},
|
8574 |
"node_modules/set-function-length": {
|
8575 |
"version": "1.2.2",
|
8576 |
"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
|
|
|
8666 |
"node": ">=8"
|
8667 |
}
|
8668 |
},
|
8669 |
+
"node_modules/sonic-boom": {
|
8670 |
+
"version": "4.2.0",
|
8671 |
+
"resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.0.tgz",
|
8672 |
+
"integrity": "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==",
|
8673 |
+
"license": "MIT",
|
8674 |
+
"peer": true,
|
8675 |
+
"dependencies": {
|
8676 |
+
"atomic-sleep": "^1.0.0"
|
8677 |
+
}
|
8678 |
+
},
|
8679 |
"node_modules/source-map": {
|
8680 |
"version": "0.7.4",
|
8681 |
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
|
|
|
8938 |
"url": "https://github.com/sponsors/ljharb"
|
8939 |
}
|
8940 |
},
|
8941 |
+
"node_modules/swagger-ui-dist": {
|
8942 |
+
"version": "5.17.14",
|
8943 |
+
"resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-5.17.14.tgz",
|
8944 |
+
"integrity": "sha512-CVbSfaLpstV65OnSjbXfVd6Sta3q3F7Cj/yYuvHMp1P90LztOLs6PfUnKEVAeiIVQt9u2SaPwv0LiH/OyMjHRw==",
|
8945 |
+
"license": "Apache-2.0",
|
8946 |
+
"peer": true
|
8947 |
+
},
|
8948 |
"node_modules/symbol-observable": {
|
8949 |
"version": "4.0.0",
|
8950 |
"resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz",
|
|
|
9192 |
"node": ">=0.8"
|
9193 |
}
|
9194 |
},
|
9195 |
+
"node_modules/thread-stream": {
|
9196 |
+
"version": "3.1.0",
|
9197 |
+
"resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz",
|
9198 |
+
"integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==",
|
9199 |
+
"license": "MIT",
|
9200 |
+
"peer": true,
|
9201 |
+
"dependencies": {
|
9202 |
+
"real-require": "^0.2.0"
|
9203 |
+
}
|
9204 |
+
},
|
9205 |
"node_modules/through": {
|
9206 |
"version": "2.3.8",
|
9207 |
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
|
|
|
9247 |
"node": ">=8.0"
|
9248 |
}
|
9249 |
},
|
9250 |
+
"node_modules/toad-cache": {
|
9251 |
+
"version": "3.7.0",
|
9252 |
+
"resolved": "https://registry.npmjs.org/toad-cache/-/toad-cache-3.7.0.tgz",
|
9253 |
+
"integrity": "sha512-/m8M+2BJUpoJdgAHoG+baCwBT+tf2VraSfkBgl0Y00qIWt41DJ8R5B8nsEw0I58YwF5IZH6z24/2TobDKnqSWw==",
|
9254 |
+
"license": "MIT",
|
9255 |
+
"peer": true,
|
9256 |
+
"engines": {
|
9257 |
+
"node": ">=12"
|
9258 |
+
}
|
9259 |
+
},
|
9260 |
"node_modules/toidentifier": {
|
9261 |
"version": "1.0.1",
|
9262 |
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
|
|
|
9717 |
"version": "4.4.1",
|
9718 |
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
|
9719 |
"integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
|
|
|
9720 |
"dependencies": {
|
9721 |
"punycode": "^2.1.0"
|
9722 |
}
|
backend/package.json
CHANGED
@@ -38,6 +38,7 @@
|
|
38 |
"dotenv": "^16.4.5",
|
39 |
"mysql2": "^3.11.3",
|
40 |
"nest-access-control": "^3.1.0",
|
|
|
41 |
"pg": "^8.13.0",
|
42 |
"reflect-metadata": "^0.2.0",
|
43 |
"rxjs": "^7.8.1",
|
|
|
38 |
"dotenv": "^16.4.5",
|
39 |
"mysql2": "^3.11.3",
|
40 |
"nest-access-control": "^3.1.0",
|
41 |
+
"nestjs-paginate": "^9.3.0",
|
42 |
"pg": "^8.13.0",
|
43 |
"reflect-metadata": "^0.2.0",
|
44 |
"rxjs": "^7.8.1",
|
backend/src/app.module.ts
CHANGED
@@ -11,6 +11,7 @@ import { UserModule } from './modules/user/user.module.js';
|
|
11 |
import { BranchModule } from './modules/branch/branch.module.js';
|
12 |
import { AuthenticationModule } from './modules/authentication/authentication.module.js';
|
13 |
import { MenuItemModule } from './modules/menu-item/menu-item.module.js';
|
|
|
14 |
@Module({
|
15 |
imports: [
|
16 |
ConfigModule.forRoot({
|
@@ -25,6 +26,7 @@ import { MenuItemModule } from './modules/menu-item/menu-item.module.js';
|
|
25 |
BranchModule,
|
26 |
AuthenticationModule,
|
27 |
MenuItemModule,
|
|
|
28 |
],
|
29 |
controllers: [AppController],
|
30 |
providers: [AppService],
|
|
|
11 |
import { BranchModule } from './modules/branch/branch.module.js';
|
12 |
import { AuthenticationModule } from './modules/authentication/authentication.module.js';
|
13 |
import { MenuItemModule } from './modules/menu-item/menu-item.module.js';
|
14 |
+
import { FeedsModule } from './modules/feeds/feeds.module.js';
|
15 |
@Module({
|
16 |
imports: [
|
17 |
ConfigModule.forRoot({
|
|
|
26 |
BranchModule,
|
27 |
AuthenticationModule,
|
28 |
MenuItemModule,
|
29 |
+
FeedsModule,
|
30 |
],
|
31 |
controllers: [AppController],
|
32 |
providers: [AppService],
|
backend/src/entities/feed.entity.ts
ADDED
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import { Entity, Column, BaseEntity, PrimaryGeneratedColumn } from 'typeorm';
|
2 |
+
|
3 |
+
@Entity('feeds')
|
4 |
+
export class FeedEntity extends BaseEntity {
|
5 |
+
@PrimaryGeneratedColumn()
|
6 |
+
id: number;
|
7 |
+
|
8 |
+
@Column({ nullable: true })
|
9 |
+
author_id: string;
|
10 |
+
|
11 |
+
@Column({ nullable: true })
|
12 |
+
image_url: string;
|
13 |
+
|
14 |
+
@Column()
|
15 |
+
title: string;
|
16 |
+
|
17 |
+
@Column({ nullable: true })
|
18 |
+
description: string;
|
19 |
+
|
20 |
+
@Column({ type: 'timestamp', default: () => 'CURRENT_TIMESTAMP' })
|
21 |
+
create_at: Date;
|
22 |
+
}
|
backend/src/migrations/1729780814885-AddFeeds.ts
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import { MigrationInterface, QueryRunner } from "typeorm";
|
2 |
+
|
3 |
+
export class AddFeeds1729780814885 implements MigrationInterface {
|
4 |
+
name = 'AddFeeds1729780814885'
|
5 |
+
|
6 |
+
public async up(queryRunner: QueryRunner): Promise<void> {
|
7 |
+
await queryRunner.query(`CREATE TABLE "feeds" ("id" SERIAL NOT NULL, "author_id" character varying, "image_url" character varying, "title" character varying NOT NULL, "description" character varying, "create_at" TIMESTAMP NOT NULL DEFAULT now(), CONSTRAINT "PK_3dafbf766ecbb1eb2017732153f" PRIMARY KEY ("id"))`);
|
8 |
+
}
|
9 |
+
|
10 |
+
public async down(queryRunner: QueryRunner): Promise<void> {
|
11 |
+
await queryRunner.query(`DROP TABLE "feeds"`);
|
12 |
+
}
|
13 |
+
|
14 |
+
}
|
backend/src/modules/feeds/dto/create-feed.dto.ts
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import { IsString, IsUrl } from 'class-validator';
|
2 |
+
|
3 |
+
export class CreateFeedDto {
|
4 |
+
@IsUrl()
|
5 |
+
image_url: string;
|
6 |
+
|
7 |
+
@IsString()
|
8 |
+
title: string;
|
9 |
+
|
10 |
+
@IsString()
|
11 |
+
description: string;
|
12 |
+
}
|
backend/src/modules/feeds/dto/update-feed.dto.ts
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import { IsOptional, IsString, IsUrl } from 'class-validator';
|
2 |
+
|
3 |
+
export class UpdateFeedDto {
|
4 |
+
@IsUrl()
|
5 |
+
@IsOptional()
|
6 |
+
image_url?: string;
|
7 |
+
|
8 |
+
@IsString()
|
9 |
+
@IsOptional()
|
10 |
+
title?: string;
|
11 |
+
|
12 |
+
@IsString()
|
13 |
+
@IsOptional()
|
14 |
+
description?: string;
|
15 |
+
}
|
backend/src/modules/feeds/feeds.controller.ts
ADDED
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import {
|
2 |
+
Controller,
|
3 |
+
Get,
|
4 |
+
Post,
|
5 |
+
Body,
|
6 |
+
Patch,
|
7 |
+
Param,
|
8 |
+
Delete,
|
9 |
+
} from '@nestjs/common';
|
10 |
+
import { FeedsService } from './feeds.service.js';
|
11 |
+
import { CreateFeedDto } from './dto/create-feed.dto.js';
|
12 |
+
import { UpdateFeedDto } from './dto/update-feed.dto.js';
|
13 |
+
import { Public } from '../authentication/authentication.decorator.js';
|
14 |
+
import { Paginate, PaginateQuery } from 'nestjs-paginate';
|
15 |
+
|
16 |
+
@Public()
|
17 |
+
@Controller('feeds')
|
18 |
+
export class FeedsController {
|
19 |
+
constructor(private readonly feedsService: FeedsService) {}
|
20 |
+
|
21 |
+
@Post()
|
22 |
+
create(@Body() createFeedDto: CreateFeedDto) {
|
23 |
+
return this.feedsService.create(createFeedDto);
|
24 |
+
}
|
25 |
+
|
26 |
+
@Get()
|
27 |
+
findAll(@Paginate() paginateQuery: PaginateQuery) {
|
28 |
+
return this.feedsService.findAll(paginateQuery);
|
29 |
+
}
|
30 |
+
|
31 |
+
@Get(':id')
|
32 |
+
findOne(@Param('id') id: string) {
|
33 |
+
return this.feedsService.findOne(+id);
|
34 |
+
}
|
35 |
+
|
36 |
+
@Patch(':id')
|
37 |
+
update(@Param('id') id: string, @Body() updateFeedDto: UpdateFeedDto) {
|
38 |
+
return this.feedsService.update(+id, updateFeedDto);
|
39 |
+
}
|
40 |
+
|
41 |
+
@Delete(':id')
|
42 |
+
remove(@Param('id') id: string) {
|
43 |
+
return this.feedsService.remove(+id);
|
44 |
+
}
|
45 |
+
}
|
backend/src/modules/feeds/feeds.module.ts
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import { Module } from '@nestjs/common';
|
2 |
+
import { FeedsService } from './feeds.service.js';
|
3 |
+
import { FeedsController } from './feeds.controller.js';
|
4 |
+
|
5 |
+
@Module({
|
6 |
+
controllers: [FeedsController],
|
7 |
+
providers: [FeedsService],
|
8 |
+
})
|
9 |
+
export class FeedsModule {}
|
backend/src/modules/feeds/feeds.service.ts
ADDED
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import { Injectable, NotFoundException } from '@nestjs/common';
|
2 |
+
import { CreateFeedDto } from './dto/create-feed.dto.js';
|
3 |
+
import { UpdateFeedDto } from './dto/update-feed.dto.js';
|
4 |
+
import { FeedEntity } from '../../entities/feed.entity.js';
|
5 |
+
import { plainToClass } from 'class-transformer';
|
6 |
+
import {
|
7 |
+
FilterOperator,
|
8 |
+
paginate,
|
9 |
+
PaginateConfig,
|
10 |
+
PaginateQuery,
|
11 |
+
} from 'nestjs-paginate';
|
12 |
+
|
13 |
+
@Injectable()
|
14 |
+
export class FeedsService {
|
15 |
+
async create(createFeedDto: CreateFeedDto) {
|
16 |
+
return await FeedEntity.create({ ...createFeedDto }).save();
|
17 |
+
}
|
18 |
+
|
19 |
+
async findAll(paginateQuery: PaginateQuery) {
|
20 |
+
const paginateConfig: PaginateConfig<FeedEntity> = {
|
21 |
+
sortableColumns: ['id', 'create_at', 'author_id'],
|
22 |
+
filterableColumns: {
|
23 |
+
author_id: [FilterOperator.EQ],
|
24 |
+
},
|
25 |
+
defaultSortBy: [['id', 'DESC']],
|
26 |
+
};
|
27 |
+
return paginate(
|
28 |
+
paginateQuery,
|
29 |
+
FeedEntity.createQueryBuilder(),
|
30 |
+
paginateConfig,
|
31 |
+
);
|
32 |
+
}
|
33 |
+
|
34 |
+
async findOne(id: number) {
|
35 |
+
return await FeedEntity.findOneBy({ id: id });
|
36 |
+
}
|
37 |
+
|
38 |
+
async getFeedOrError(id: number) {
|
39 |
+
let feed = await FeedEntity.findOneBy({ id });
|
40 |
+
if (!feed) {
|
41 |
+
throw new NotFoundException('Menu item not found');
|
42 |
+
}
|
43 |
+
return feed;
|
44 |
+
}
|
45 |
+
|
46 |
+
async update(id: number, updateFeedDto: UpdateFeedDto) {
|
47 |
+
let feed = await this.getFeedOrError(id);
|
48 |
+
feed = plainToClass(FeedEntity, {
|
49 |
+
...feed,
|
50 |
+
...updateFeedDto,
|
51 |
+
});
|
52 |
+
return await feed.save();
|
53 |
+
}
|
54 |
+
|
55 |
+
async remove(id: number) {
|
56 |
+
let feed = await this.getFeedOrError(id);
|
57 |
+
return await feed.remove();
|
58 |
+
}
|
59 |
+
}
|
backend/src/modules/menu-item/menu-item.controller.ts
CHANGED
@@ -11,6 +11,7 @@ import { MenuItemService } from './menu-item.service.js';
|
|
11 |
import { CreateMenuItemDto } from './dto/create-menu-item.dto.js';
|
12 |
import { UpdateMenuItemDto } from './dto/update-menu-item.dto.js';
|
13 |
import { Public } from '../authentication/authentication.decorator.js';
|
|
|
14 |
|
15 |
@Public()
|
16 |
@Controller('menu-items')
|
@@ -23,8 +24,8 @@ export class MenuItemController {
|
|
23 |
}
|
24 |
|
25 |
@Get()
|
26 |
-
async findAll() {
|
27 |
-
return this.menuItemService.findAll();
|
28 |
}
|
29 |
|
30 |
@Get(':id')
|
|
|
11 |
import { CreateMenuItemDto } from './dto/create-menu-item.dto.js';
|
12 |
import { UpdateMenuItemDto } from './dto/update-menu-item.dto.js';
|
13 |
import { Public } from '../authentication/authentication.decorator.js';
|
14 |
+
import { Paginate, PaginateQuery } from 'nestjs-paginate';
|
15 |
|
16 |
@Public()
|
17 |
@Controller('menu-items')
|
|
|
24 |
}
|
25 |
|
26 |
@Get()
|
27 |
+
async findAll(@Paginate() query: PaginateQuery) {
|
28 |
+
return this.menuItemService.findAll(query);
|
29 |
}
|
30 |
|
31 |
@Get(':id')
|
backend/src/modules/menu-item/menu-item.service.ts
CHANGED
@@ -4,6 +4,12 @@ import { UpdateMenuItemDto } from './dto/update-menu-item.dto.js';
|
|
4 |
import { MenuItemEntity } from '../../entities/menu-item.entity.js';
|
5 |
import { Public } from '../authentication/authentication.decorator.js';
|
6 |
import { plainToClass } from 'class-transformer';
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
|
8 |
@Public()
|
9 |
@Injectable()
|
@@ -12,8 +18,28 @@ export class MenuItemService {
|
|
12 |
return await MenuItemEntity.create({ ...createMenuItemDto }).save();
|
13 |
}
|
14 |
|
15 |
-
async findAll() {
|
16 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
17 |
}
|
18 |
|
19 |
async findOne(id: string) {
|
|
|
4 |
import { MenuItemEntity } from '../../entities/menu-item.entity.js';
|
5 |
import { Public } from '../authentication/authentication.decorator.js';
|
6 |
import { plainToClass } from 'class-transformer';
|
7 |
+
import {
|
8 |
+
FilterOperator,
|
9 |
+
paginate,
|
10 |
+
PaginateConfig,
|
11 |
+
PaginateQuery,
|
12 |
+
} from 'nestjs-paginate';
|
13 |
|
14 |
@Public()
|
15 |
@Injectable()
|
|
|
18 |
return await MenuItemEntity.create({ ...createMenuItemDto }).save();
|
19 |
}
|
20 |
|
21 |
+
async findAll(query: PaginateQuery) {
|
22 |
+
const paginateConfig: PaginateConfig<MenuItemEntity> = {
|
23 |
+
sortableColumns: [
|
24 |
+
'id',
|
25 |
+
'item_group_id',
|
26 |
+
'item_name',
|
27 |
+
'price',
|
28 |
+
'create_at',
|
29 |
+
],
|
30 |
+
nullSort: 'last',
|
31 |
+
defaultSortBy: [['id', 'DESC']],
|
32 |
+
searchableColumns: ['item_name'],
|
33 |
+
filterableColumns: {
|
34 |
+
price: [
|
35 |
+
FilterOperator.LT,
|
36 |
+
FilterOperator.LTE,
|
37 |
+
FilterOperator.GT,
|
38 |
+
FilterOperator.GTE,
|
39 |
+
],
|
40 |
+
},
|
41 |
+
};
|
42 |
+
return paginate(query, MenuItemEntity.createQueryBuilder(), paginateConfig);
|
43 |
}
|
44 |
|
45 |
async findOne(id: string) {
|