Spaces:
Running
Running
Hozifa Elgharbawy
commited on
Commit
·
3daae40
1
Parent(s):
f4ba000
feat: Add isDeleted field to exercise, meal, meal plan, muscle, ingredient, and equipment models
Browse files- package-lock.json +712 -0
- src/common/models/equipment.model.ts +2 -0
- src/common/models/exercise.model.ts +2 -0
- src/common/models/ingredient.model.ts +2 -0
- src/common/models/meal-plan.model.ts +2 -0
- src/common/models/meal.model.ts +2 -0
- src/common/models/muscle.model.ts +2 -0
- src/common/models/workout.model.ts +2 -0
- src/lib/services/crud.service.ts +11 -3
- src/modules/console/modules/equipments/controllers/equipments.controller.ts +3 -2
- src/modules/console/modules/exercises/controllers/exercises.controller.ts +3 -2
- src/modules/console/modules/ingredients/controller/ingredients.controller.ts +4 -3
- src/modules/console/modules/meal-plans/controller/meal-plans.controller.ts +4 -3
- src/modules/console/modules/meals/controller/meals.controller.ts +4 -3
- src/modules/console/modules/muscles/controllers/muscles.controller.ts +4 -3
- src/modules/console/modules/workouts/controllers/workouts.controller.ts +3 -2
- src/modules/users/modules/exercises/controllers/exercises.controller.ts +3 -2
- src/modules/users/modules/ingredients/controller/ingredients.controller.ts +2 -2
- src/modules/users/modules/meal-plans/controller/meal-plans.controller.ts +1 -1
- src/modules/users/modules/meals/controller/meals.controller.ts +1 -1
- src/modules/users/modules/templates/controllers/templates.controller.ts +1 -1
- src/modules/users/modules/templates/services/templates.service.ts +11 -1
- src/modules/users/modules/workouts/controllers/workouts.controller.ts +3 -3
- src/modules/users/modules/workouts/services/workouts.service.ts +12 -5
- src/resources/exercises.csv +0 -0
- src/seeder/helpers/load-exercises-dataset.ts +1 -0
- src/seeder/seeders/3-muscles.seeder.ts +1 -1
- src/seeder/seeders/4-equipments.seeder.ts +1 -1
- src/seeder/seeders/5-exercises.seeder.ts +27 -11
- src/seeder/seeders/6-workout.seeder.ts +2 -1
- src/seeder/seeders/8-ingredients.seeder.ts +1 -0
- src/seeder/seeders/9-meals.seeder.ts +1 -0
- src/seeder/seeders/{10-mealPlan.seeder.ts → 99-mealPlan.seeder.ts} +1 -0
- src/seeder/seeders/{11-mymealPlan.seeder.ts → 999-mymealPlan.seeder.ts} +0 -0
package-lock.json
CHANGED
@@ -337,6 +337,11 @@
|
|
337 |
"@types/node": "*"
|
338 |
}
|
339 |
},
|
|
|
|
|
|
|
|
|
|
|
340 |
"node_modules/@types/connect": {
|
341 |
"version": "3.4.38",
|
342 |
"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
|
@@ -385,6 +390,11 @@
|
|
385 |
"integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==",
|
386 |
"dev": true
|
387 |
},
|
|
|
|
|
|
|
|
|
|
|
388 |
"node_modules/@types/mime": {
|
389 |
"version": "1.3.5",
|
390 |
"resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
|
@@ -404,6 +414,15 @@
|
|
404 |
"undici-types": "~5.26.4"
|
405 |
}
|
406 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
407 |
"node_modules/@types/qs": {
|
408 |
"version": "6.9.11",
|
409 |
"resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz",
|
@@ -484,6 +503,17 @@
|
|
484 |
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
|
485 |
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
|
486 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
487 |
"node_modules/accepts": {
|
488 |
"version": "1.3.8",
|
489 |
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
|
@@ -528,6 +558,32 @@
|
|
528 |
"node": ">= 6.0.0"
|
529 |
}
|
530 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
531 |
"node_modules/ansi-regex": {
|
532 |
"version": "5.0.1",
|
533 |
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
@@ -595,6 +651,40 @@
|
|
595 |
"node": ">=8"
|
596 |
}
|
597 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
598 |
"node_modules/balanced-match": {
|
599 |
"version": "1.0.2",
|
600 |
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
@@ -613,6 +703,14 @@
|
|
613 |
"node": ">= 10.0.0"
|
614 |
}
|
615 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
616 |
"node_modules/binary-extensions": {
|
617 |
"version": "2.2.0",
|
618 |
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
|
@@ -681,6 +779,27 @@
|
|
681 |
"url": "https://github.com/sponsors/ljharb"
|
682 |
}
|
683 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
684 |
"node_modules/chokidar": {
|
685 |
"version": "3.5.3",
|
686 |
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
|
@@ -744,6 +863,17 @@
|
|
744 |
"color-support": "bin.js"
|
745 |
}
|
746 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
747 |
"node_modules/commander": {
|
748 |
"version": "9.5.0",
|
749 |
"resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
|
@@ -794,6 +924,11 @@
|
|
794 |
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
|
795 |
"integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
|
796 |
},
|
|
|
|
|
|
|
|
|
|
|
797 |
"node_modules/cors": {
|
798 |
"version": "2.8.5",
|
799 |
"resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
|
@@ -839,6 +974,29 @@
|
|
839 |
"node": ">= 10"
|
840 |
}
|
841 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
842 |
"node_modules/debug": {
|
843 |
"version": "4.3.4",
|
844 |
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
@@ -868,6 +1026,14 @@
|
|
868 |
"node": ">= 0.4"
|
869 |
}
|
870 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
871 |
"node_modules/delegates": {
|
872 |
"version": "1.0.0",
|
873 |
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
|
@@ -943,6 +1109,15 @@
|
|
943 |
"resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
|
944 |
"integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
|
945 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
946 |
"node_modules/ecdsa-sig-formatter": {
|
947 |
"version": "1.0.11",
|
948 |
"resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
|
@@ -992,11 +1167,73 @@
|
|
992 |
"node": ">=0.10.0"
|
993 |
}
|
994 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
995 |
"node_modules/escape-html": {
|
996 |
"version": "1.0.3",
|
997 |
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
|
998 |
"integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
|
999 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1000 |
"node_modules/etag": {
|
1001 |
"version": "1.8.1",
|
1002 |
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
|
@@ -1005,6 +1242,23 @@
|
|
1005 |
"node": ">= 0.6"
|
1006 |
}
|
1007 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1008 |
"node_modules/express": {
|
1009 |
"version": "4.18.2",
|
1010 |
"resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
|
@@ -1107,6 +1361,32 @@
|
|
1107 |
"node": ">= 0.8"
|
1108 |
}
|
1109 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1110 |
"node_modules/fast-glob": {
|
1111 |
"version": "3.3.2",
|
1112 |
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
|
@@ -1122,6 +1402,11 @@
|
|
1122 |
"node": ">=8.6.0"
|
1123 |
}
|
1124 |
},
|
|
|
|
|
|
|
|
|
|
|
1125 |
"node_modules/fastq": {
|
1126 |
"version": "1.17.1",
|
1127 |
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
|
@@ -1197,6 +1482,52 @@
|
|
1197 |
"url": "https://github.com/sponsors/isaacs"
|
1198 |
}
|
1199 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1200 |
"node_modules/forwarded": {
|
1201 |
"version": "0.2.0",
|
1202 |
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
|
@@ -1294,6 +1625,14 @@
|
|
1294 |
"url": "https://github.com/sponsors/ljharb"
|
1295 |
}
|
1296 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1297 |
"node_modules/glob": {
|
1298 |
"version": "10.3.10",
|
1299 |
"resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
|
@@ -1378,6 +1717,27 @@
|
|
1378 |
"url": "https://github.com/sponsors/ljharb"
|
1379 |
}
|
1380 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1381 |
"node_modules/has-flag": {
|
1382 |
"version": "3.0.0",
|
1383 |
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
@@ -1456,6 +1816,20 @@
|
|
1456 |
"node": ">= 0.8"
|
1457 |
}
|
1458 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1459 |
"node_modules/https-proxy-agent": {
|
1460 |
"version": "5.0.1",
|
1461 |
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
|
@@ -1468,6 +1842,14 @@
|
|
1468 |
"node": ">= 6"
|
1469 |
}
|
1470 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1471 |
"node_modules/i": {
|
1472 |
"version": "0.3.7",
|
1473 |
"resolved": "https://registry.npmjs.org/i/-/i-0.3.7.tgz",
|
@@ -1581,11 +1963,26 @@
|
|
1581 |
"node": ">=0.12.0"
|
1582 |
}
|
1583 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1584 |
"node_modules/isexe": {
|
1585 |
"version": "2.0.0",
|
1586 |
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
|
1587 |
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
|
1588 |
},
|
|
|
|
|
|
|
|
|
|
|
1589 |
"node_modules/jackspeak": {
|
1590 |
"version": "2.3.6",
|
1591 |
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz",
|
@@ -1615,6 +2012,26 @@
|
|
1615 |
"@sideway/pinpoint": "^2.0.0"
|
1616 |
}
|
1617 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1618 |
"node_modules/json5": {
|
1619 |
"version": "2.2.3",
|
1620 |
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
|
@@ -1648,6 +2065,20 @@
|
|
1648 |
"npm": ">=6"
|
1649 |
}
|
1650 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1651 |
"node_modules/jwa": {
|
1652 |
"version": "1.4.1",
|
1653 |
"resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
|
@@ -1721,6 +2152,14 @@
|
|
1721 |
"node": ">=10"
|
1722 |
}
|
1723 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1724 |
"node_modules/make-dir": {
|
1725 |
"version": "3.1.0",
|
1726 |
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
|
@@ -1757,6 +2196,24 @@
|
|
1757 |
"node": ">= 0.6"
|
1758 |
}
|
1759 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1760 |
"node_modules/memory-pager": {
|
1761 |
"version": "1.5.0",
|
1762 |
"resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
|
@@ -2010,11 +2467,34 @@
|
|
2010 |
"node": ">= 0.6"
|
2011 |
}
|
2012 |
},
|
|
|
|
|
|
|
|
|
|
|
2013 |
"node_modules/node-addon-api": {
|
2014 |
"version": "5.1.0",
|
2015 |
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz",
|
2016 |
"integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA=="
|
2017 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018 |
"node_modules/node-fetch": {
|
2019 |
"version": "2.7.0",
|
2020 |
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
|
@@ -4846,6 +5326,14 @@
|
|
4846 |
"set-blocking": "^2.0.0"
|
4847 |
}
|
4848 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4849 |
"node_modules/object-assign": {
|
4850 |
"version": "4.1.1",
|
4851 |
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
@@ -4881,6 +5369,40 @@
|
|
4881 |
"wrappy": "1"
|
4882 |
}
|
4883 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4884 |
"node_modules/parseurl": {
|
4885 |
"version": "1.3.3",
|
4886 |
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
|
@@ -4956,6 +5478,11 @@
|
|
4956 |
"node": ">=8"
|
4957 |
}
|
4958 |
},
|
|
|
|
|
|
|
|
|
|
|
4959 |
"node_modules/picomatch": {
|
4960 |
"version": "2.3.1",
|
4961 |
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
|
@@ -4998,6 +5525,11 @@
|
|
4998 |
"node": ">= 0.10"
|
4999 |
}
|
5000 |
},
|
|
|
|
|
|
|
|
|
|
|
5001 |
"node_modules/pstree.remy": {
|
5002 |
"version": "1.1.8",
|
5003 |
"resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
|
@@ -5085,6 +5617,67 @@
|
|
5085 |
"node": ">=8.10.0"
|
5086 |
}
|
5087 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5088 |
"node_modules/resolve": {
|
5089 |
"version": "1.22.8",
|
5090 |
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
|
@@ -5372,6 +5965,30 @@
|
|
5372 |
"memory-pager": "^1.0.2"
|
5373 |
}
|
5374 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5375 |
"node_modules/statuses": {
|
5376 |
"version": "2.0.1",
|
5377 |
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
|
@@ -5515,6 +6132,39 @@
|
|
5515 |
"node": ">=10"
|
5516 |
}
|
5517 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5518 |
"node_modules/to-regex-range": {
|
5519 |
"version": "5.0.1",
|
5520 |
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
@@ -5546,6 +6196,18 @@
|
|
5546 |
"nodetouch": "bin/nodetouch.js"
|
5547 |
}
|
5548 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5549 |
"node_modules/tr46": {
|
5550 |
"version": "3.0.0",
|
5551 |
"resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
|
@@ -5717,6 +6379,27 @@
|
|
5717 |
"node": ">=6"
|
5718 |
}
|
5719 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5720 |
"node_modules/type-is": {
|
5721 |
"version": "1.6.18",
|
5722 |
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
|
@@ -5761,6 +6444,14 @@
|
|
5761 |
"node": ">= 0.8"
|
5762 |
}
|
5763 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5764 |
"node_modules/util": {
|
5765 |
"version": "0.10.4",
|
5766 |
"resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
|
@@ -5813,6 +6504,27 @@
|
|
5813 |
"node": ">= 0.8"
|
5814 |
}
|
5815 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5816 |
"node_modules/webidl-conversions": {
|
5817 |
"version": "7.0.0",
|
5818 |
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
|
|
|
337 |
"@types/node": "*"
|
338 |
}
|
339 |
},
|
340 |
+
"node_modules/@types/chance": {
|
341 |
+
"version": "1.1.6",
|
342 |
+
"resolved": "https://registry.npmjs.org/@types/chance/-/chance-1.1.6.tgz",
|
343 |
+
"integrity": "sha512-V+pm3stv1Mvz8fSKJJod6CglNGVqEQ6OyuqitoDkWywEODM/eJd1eSuIp9xt6DrX8BWZ2eDSIzbw1tPCUTvGbQ=="
|
344 |
+
},
|
345 |
"node_modules/@types/connect": {
|
346 |
"version": "3.4.38",
|
347 |
"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
|
|
|
390 |
"integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==",
|
391 |
"dev": true
|
392 |
},
|
393 |
+
"node_modules/@types/memoizee": {
|
394 |
+
"version": "0.4.11",
|
395 |
+
"resolved": "https://registry.npmjs.org/@types/memoizee/-/memoizee-0.4.11.tgz",
|
396 |
+
"integrity": "sha512-2gyorIBZu8GoDr9pYjROkxWWcFtHCquF7TVbN2I+/OvgZhnIGQS0vX5KJz4lXNKb8XOSfxFOSG5OLru1ESqLUg=="
|
397 |
+
},
|
398 |
"node_modules/@types/mime": {
|
399 |
"version": "1.3.5",
|
400 |
"resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz",
|
|
|
414 |
"undici-types": "~5.26.4"
|
415 |
}
|
416 |
},
|
417 |
+
"node_modules/@types/node-fetch": {
|
418 |
+
"version": "2.6.11",
|
419 |
+
"resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.11.tgz",
|
420 |
+
"integrity": "sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==",
|
421 |
+
"dependencies": {
|
422 |
+
"@types/node": "*",
|
423 |
+
"form-data": "^4.0.0"
|
424 |
+
}
|
425 |
+
},
|
426 |
"node_modules/@types/qs": {
|
427 |
"version": "6.9.11",
|
428 |
"resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.11.tgz",
|
|
|
503 |
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
|
504 |
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
|
505 |
},
|
506 |
+
"node_modules/abort-controller": {
|
507 |
+
"version": "3.0.0",
|
508 |
+
"resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
|
509 |
+
"integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
|
510 |
+
"dependencies": {
|
511 |
+
"event-target-shim": "^5.0.0"
|
512 |
+
},
|
513 |
+
"engines": {
|
514 |
+
"node": ">=6.5"
|
515 |
+
}
|
516 |
+
},
|
517 |
"node_modules/accepts": {
|
518 |
"version": "1.3.8",
|
519 |
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
|
|
|
558 |
"node": ">= 6.0.0"
|
559 |
}
|
560 |
},
|
561 |
+
"node_modules/agentkeepalive": {
|
562 |
+
"version": "4.5.0",
|
563 |
+
"resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz",
|
564 |
+
"integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==",
|
565 |
+
"dependencies": {
|
566 |
+
"humanize-ms": "^1.2.1"
|
567 |
+
},
|
568 |
+
"engines": {
|
569 |
+
"node": ">= 8.0.0"
|
570 |
+
}
|
571 |
+
},
|
572 |
+
"node_modules/ajv": {
|
573 |
+
"version": "6.12.6",
|
574 |
+
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
|
575 |
+
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
|
576 |
+
"dependencies": {
|
577 |
+
"fast-deep-equal": "^3.1.1",
|
578 |
+
"fast-json-stable-stringify": "^2.0.0",
|
579 |
+
"json-schema-traverse": "^0.4.1",
|
580 |
+
"uri-js": "^4.2.2"
|
581 |
+
},
|
582 |
+
"funding": {
|
583 |
+
"type": "github",
|
584 |
+
"url": "https://github.com/sponsors/epoberezkin"
|
585 |
+
}
|
586 |
+
},
|
587 |
"node_modules/ansi-regex": {
|
588 |
"version": "5.0.1",
|
589 |
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
|
|
|
651 |
"node": ">=8"
|
652 |
}
|
653 |
},
|
654 |
+
"node_modules/asn1": {
|
655 |
+
"version": "0.2.6",
|
656 |
+
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
|
657 |
+
"integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
|
658 |
+
"dependencies": {
|
659 |
+
"safer-buffer": "~2.1.0"
|
660 |
+
}
|
661 |
+
},
|
662 |
+
"node_modules/assert-plus": {
|
663 |
+
"version": "1.0.0",
|
664 |
+
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
|
665 |
+
"integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
|
666 |
+
"engines": {
|
667 |
+
"node": ">=0.8"
|
668 |
+
}
|
669 |
+
},
|
670 |
+
"node_modules/asynckit": {
|
671 |
+
"version": "0.4.0",
|
672 |
+
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
673 |
+
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
|
674 |
+
},
|
675 |
+
"node_modules/aws-sign2": {
|
676 |
+
"version": "0.7.0",
|
677 |
+
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
|
678 |
+
"integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==",
|
679 |
+
"engines": {
|
680 |
+
"node": "*"
|
681 |
+
}
|
682 |
+
},
|
683 |
+
"node_modules/aws4": {
|
684 |
+
"version": "1.13.0",
|
685 |
+
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.0.tgz",
|
686 |
+
"integrity": "sha512-3AungXC4I8kKsS9PuS4JH2nc+0bVY/mjgrephHTIi8fpEeGsTHBUJeosp0Wc1myYMElmD0B3Oc4XL/HVJ4PV2g=="
|
687 |
+
},
|
688 |
"node_modules/balanced-match": {
|
689 |
"version": "1.0.2",
|
690 |
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
|
|
703 |
"node": ">= 10.0.0"
|
704 |
}
|
705 |
},
|
706 |
+
"node_modules/bcrypt-pbkdf": {
|
707 |
+
"version": "1.0.2",
|
708 |
+
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
|
709 |
+
"integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
|
710 |
+
"dependencies": {
|
711 |
+
"tweetnacl": "^0.14.3"
|
712 |
+
}
|
713 |
+
},
|
714 |
"node_modules/binary-extensions": {
|
715 |
"version": "2.2.0",
|
716 |
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
|
|
|
779 |
"url": "https://github.com/sponsors/ljharb"
|
780 |
}
|
781 |
},
|
782 |
+
"node_modules/caseless": {
|
783 |
+
"version": "0.12.0",
|
784 |
+
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
|
785 |
+
"integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw=="
|
786 |
+
},
|
787 |
+
"node_modules/chalk": {
|
788 |
+
"version": "5.3.0",
|
789 |
+
"resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz",
|
790 |
+
"integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==",
|
791 |
+
"engines": {
|
792 |
+
"node": "^12.17.0 || ^14.13 || >=16.0.0"
|
793 |
+
},
|
794 |
+
"funding": {
|
795 |
+
"url": "https://github.com/chalk/chalk?sponsor=1"
|
796 |
+
}
|
797 |
+
},
|
798 |
+
"node_modules/chance": {
|
799 |
+
"version": "1.1.11",
|
800 |
+
"resolved": "https://registry.npmjs.org/chance/-/chance-1.1.11.tgz",
|
801 |
+
"integrity": "sha512-kqTg3WWywappJPqtgrdvbA380VoXO2eu9VCV895JgbyHsaErXdyHK9LOZ911OvAk6L0obK7kDk9CGs8+oBawVA=="
|
802 |
+
},
|
803 |
"node_modules/chokidar": {
|
804 |
"version": "3.5.3",
|
805 |
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
|
|
|
863 |
"color-support": "bin.js"
|
864 |
}
|
865 |
},
|
866 |
+
"node_modules/combined-stream": {
|
867 |
+
"version": "1.0.8",
|
868 |
+
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
|
869 |
+
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
|
870 |
+
"dependencies": {
|
871 |
+
"delayed-stream": "~1.0.0"
|
872 |
+
},
|
873 |
+
"engines": {
|
874 |
+
"node": ">= 0.8"
|
875 |
+
}
|
876 |
+
},
|
877 |
"node_modules/commander": {
|
878 |
"version": "9.5.0",
|
879 |
"resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz",
|
|
|
924 |
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
|
925 |
"integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
|
926 |
},
|
927 |
+
"node_modules/core-util-is": {
|
928 |
+
"version": "1.0.2",
|
929 |
+
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
|
930 |
+
"integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="
|
931 |
+
},
|
932 |
"node_modules/cors": {
|
933 |
"version": "2.8.5",
|
934 |
"resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
|
|
|
974 |
"node": ">= 10"
|
975 |
}
|
976 |
},
|
977 |
+
"node_modules/d": {
|
978 |
+
"version": "1.0.2",
|
979 |
+
"resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz",
|
980 |
+
"integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==",
|
981 |
+
"dependencies": {
|
982 |
+
"es5-ext": "^0.10.64",
|
983 |
+
"type": "^2.7.2"
|
984 |
+
},
|
985 |
+
"engines": {
|
986 |
+
"node": ">=0.12"
|
987 |
+
}
|
988 |
+
},
|
989 |
+
"node_modules/dashdash": {
|
990 |
+
"version": "1.14.1",
|
991 |
+
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
|
992 |
+
"integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
|
993 |
+
"dependencies": {
|
994 |
+
"assert-plus": "^1.0.0"
|
995 |
+
},
|
996 |
+
"engines": {
|
997 |
+
"node": ">=0.10"
|
998 |
+
}
|
999 |
+
},
|
1000 |
"node_modules/debug": {
|
1001 |
"version": "4.3.4",
|
1002 |
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
|
|
1026 |
"node": ">= 0.4"
|
1027 |
}
|
1028 |
},
|
1029 |
+
"node_modules/delayed-stream": {
|
1030 |
+
"version": "1.0.0",
|
1031 |
+
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
1032 |
+
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
|
1033 |
+
"engines": {
|
1034 |
+
"node": ">=0.4.0"
|
1035 |
+
}
|
1036 |
+
},
|
1037 |
"node_modules/delegates": {
|
1038 |
"version": "1.0.0",
|
1039 |
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
|
|
|
1109 |
"resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
|
1110 |
"integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
|
1111 |
},
|
1112 |
+
"node_modules/ecc-jsbn": {
|
1113 |
+
"version": "0.1.2",
|
1114 |
+
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
|
1115 |
+
"integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
|
1116 |
+
"dependencies": {
|
1117 |
+
"jsbn": "~0.1.0",
|
1118 |
+
"safer-buffer": "^2.1.0"
|
1119 |
+
}
|
1120 |
+
},
|
1121 |
"node_modules/ecdsa-sig-formatter": {
|
1122 |
"version": "1.0.11",
|
1123 |
"resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
|
|
|
1167 |
"node": ">=0.10.0"
|
1168 |
}
|
1169 |
},
|
1170 |
+
"node_modules/es5-ext": {
|
1171 |
+
"version": "0.10.64",
|
1172 |
+
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz",
|
1173 |
+
"integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==",
|
1174 |
+
"hasInstallScript": true,
|
1175 |
+
"dependencies": {
|
1176 |
+
"es6-iterator": "^2.0.3",
|
1177 |
+
"es6-symbol": "^3.1.3",
|
1178 |
+
"esniff": "^2.0.1",
|
1179 |
+
"next-tick": "^1.1.0"
|
1180 |
+
},
|
1181 |
+
"engines": {
|
1182 |
+
"node": ">=0.10"
|
1183 |
+
}
|
1184 |
+
},
|
1185 |
+
"node_modules/es6-iterator": {
|
1186 |
+
"version": "2.0.3",
|
1187 |
+
"resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
|
1188 |
+
"integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==",
|
1189 |
+
"dependencies": {
|
1190 |
+
"d": "1",
|
1191 |
+
"es5-ext": "^0.10.35",
|
1192 |
+
"es6-symbol": "^3.1.1"
|
1193 |
+
}
|
1194 |
+
},
|
1195 |
+
"node_modules/es6-symbol": {
|
1196 |
+
"version": "3.1.4",
|
1197 |
+
"resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz",
|
1198 |
+
"integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==",
|
1199 |
+
"dependencies": {
|
1200 |
+
"d": "^1.0.2",
|
1201 |
+
"ext": "^1.7.0"
|
1202 |
+
},
|
1203 |
+
"engines": {
|
1204 |
+
"node": ">=0.12"
|
1205 |
+
}
|
1206 |
+
},
|
1207 |
+
"node_modules/es6-weak-map": {
|
1208 |
+
"version": "2.0.3",
|
1209 |
+
"resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz",
|
1210 |
+
"integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==",
|
1211 |
+
"dependencies": {
|
1212 |
+
"d": "1",
|
1213 |
+
"es5-ext": "^0.10.46",
|
1214 |
+
"es6-iterator": "^2.0.3",
|
1215 |
+
"es6-symbol": "^3.1.1"
|
1216 |
+
}
|
1217 |
+
},
|
1218 |
"node_modules/escape-html": {
|
1219 |
"version": "1.0.3",
|
1220 |
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
|
1221 |
"integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
|
1222 |
},
|
1223 |
+
"node_modules/esniff": {
|
1224 |
+
"version": "2.0.1",
|
1225 |
+
"resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz",
|
1226 |
+
"integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==",
|
1227 |
+
"dependencies": {
|
1228 |
+
"d": "^1.0.1",
|
1229 |
+
"es5-ext": "^0.10.62",
|
1230 |
+
"event-emitter": "^0.3.5",
|
1231 |
+
"type": "^2.7.2"
|
1232 |
+
},
|
1233 |
+
"engines": {
|
1234 |
+
"node": ">=0.10"
|
1235 |
+
}
|
1236 |
+
},
|
1237 |
"node_modules/etag": {
|
1238 |
"version": "1.8.1",
|
1239 |
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
|
|
|
1242 |
"node": ">= 0.6"
|
1243 |
}
|
1244 |
},
|
1245 |
+
"node_modules/event-emitter": {
|
1246 |
+
"version": "0.3.5",
|
1247 |
+
"resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
|
1248 |
+
"integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==",
|
1249 |
+
"dependencies": {
|
1250 |
+
"d": "1",
|
1251 |
+
"es5-ext": "~0.10.14"
|
1252 |
+
}
|
1253 |
+
},
|
1254 |
+
"node_modules/event-target-shim": {
|
1255 |
+
"version": "5.0.1",
|
1256 |
+
"resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
|
1257 |
+
"integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
|
1258 |
+
"engines": {
|
1259 |
+
"node": ">=6"
|
1260 |
+
}
|
1261 |
+
},
|
1262 |
"node_modules/express": {
|
1263 |
"version": "4.18.2",
|
1264 |
"resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
|
|
|
1361 |
"node": ">= 0.8"
|
1362 |
}
|
1363 |
},
|
1364 |
+
"node_modules/ext": {
|
1365 |
+
"version": "1.7.0",
|
1366 |
+
"resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz",
|
1367 |
+
"integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==",
|
1368 |
+
"dependencies": {
|
1369 |
+
"type": "^2.7.2"
|
1370 |
+
}
|
1371 |
+
},
|
1372 |
+
"node_modules/extend": {
|
1373 |
+
"version": "3.0.2",
|
1374 |
+
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
|
1375 |
+
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
|
1376 |
+
},
|
1377 |
+
"node_modules/extsprintf": {
|
1378 |
+
"version": "1.3.0",
|
1379 |
+
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
|
1380 |
+
"integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==",
|
1381 |
+
"engines": [
|
1382 |
+
"node >=0.6.0"
|
1383 |
+
]
|
1384 |
+
},
|
1385 |
+
"node_modules/fast-deep-equal": {
|
1386 |
+
"version": "3.1.3",
|
1387 |
+
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
|
1388 |
+
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
|
1389 |
+
},
|
1390 |
"node_modules/fast-glob": {
|
1391 |
"version": "3.3.2",
|
1392 |
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
|
|
|
1402 |
"node": ">=8.6.0"
|
1403 |
}
|
1404 |
},
|
1405 |
+
"node_modules/fast-json-stable-stringify": {
|
1406 |
+
"version": "2.1.0",
|
1407 |
+
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
|
1408 |
+
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
|
1409 |
+
},
|
1410 |
"node_modules/fastq": {
|
1411 |
"version": "1.17.1",
|
1412 |
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
|
|
|
1482 |
"url": "https://github.com/sponsors/isaacs"
|
1483 |
}
|
1484 |
},
|
1485 |
+
"node_modules/forever-agent": {
|
1486 |
+
"version": "0.6.1",
|
1487 |
+
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
|
1488 |
+
"integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
|
1489 |
+
"engines": {
|
1490 |
+
"node": "*"
|
1491 |
+
}
|
1492 |
+
},
|
1493 |
+
"node_modules/form-data": {
|
1494 |
+
"version": "4.0.0",
|
1495 |
+
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
|
1496 |
+
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
|
1497 |
+
"dependencies": {
|
1498 |
+
"asynckit": "^0.4.0",
|
1499 |
+
"combined-stream": "^1.0.8",
|
1500 |
+
"mime-types": "^2.1.12"
|
1501 |
+
},
|
1502 |
+
"engines": {
|
1503 |
+
"node": ">= 6"
|
1504 |
+
}
|
1505 |
+
},
|
1506 |
+
"node_modules/form-data-encoder": {
|
1507 |
+
"version": "1.7.2",
|
1508 |
+
"resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.2.tgz",
|
1509 |
+
"integrity": "sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A=="
|
1510 |
+
},
|
1511 |
+
"node_modules/formdata-node": {
|
1512 |
+
"version": "4.4.1",
|
1513 |
+
"resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-4.4.1.tgz",
|
1514 |
+
"integrity": "sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==",
|
1515 |
+
"dependencies": {
|
1516 |
+
"node-domexception": "1.0.0",
|
1517 |
+
"web-streams-polyfill": "4.0.0-beta.3"
|
1518 |
+
},
|
1519 |
+
"engines": {
|
1520 |
+
"node": ">= 12.20"
|
1521 |
+
}
|
1522 |
+
},
|
1523 |
+
"node_modules/formdata-node/node_modules/web-streams-polyfill": {
|
1524 |
+
"version": "4.0.0-beta.3",
|
1525 |
+
"resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.3.tgz",
|
1526 |
+
"integrity": "sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==",
|
1527 |
+
"engines": {
|
1528 |
+
"node": ">= 14"
|
1529 |
+
}
|
1530 |
+
},
|
1531 |
"node_modules/forwarded": {
|
1532 |
"version": "0.2.0",
|
1533 |
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
|
|
|
1625 |
"url": "https://github.com/sponsors/ljharb"
|
1626 |
}
|
1627 |
},
|
1628 |
+
"node_modules/getpass": {
|
1629 |
+
"version": "0.1.7",
|
1630 |
+
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
|
1631 |
+
"integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
|
1632 |
+
"dependencies": {
|
1633 |
+
"assert-plus": "^1.0.0"
|
1634 |
+
}
|
1635 |
+
},
|
1636 |
"node_modules/glob": {
|
1637 |
"version": "10.3.10",
|
1638 |
"resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
|
|
|
1717 |
"url": "https://github.com/sponsors/ljharb"
|
1718 |
}
|
1719 |
},
|
1720 |
+
"node_modules/har-schema": {
|
1721 |
+
"version": "2.0.0",
|
1722 |
+
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
|
1723 |
+
"integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==",
|
1724 |
+
"engines": {
|
1725 |
+
"node": ">=4"
|
1726 |
+
}
|
1727 |
+
},
|
1728 |
+
"node_modules/har-validator": {
|
1729 |
+
"version": "5.1.5",
|
1730 |
+
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
|
1731 |
+
"integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
|
1732 |
+
"deprecated": "this library is no longer supported",
|
1733 |
+
"dependencies": {
|
1734 |
+
"ajv": "^6.12.3",
|
1735 |
+
"har-schema": "^2.0.0"
|
1736 |
+
},
|
1737 |
+
"engines": {
|
1738 |
+
"node": ">=6"
|
1739 |
+
}
|
1740 |
+
},
|
1741 |
"node_modules/has-flag": {
|
1742 |
"version": "3.0.0",
|
1743 |
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
|
|
1816 |
"node": ">= 0.8"
|
1817 |
}
|
1818 |
},
|
1819 |
+
"node_modules/http-signature": {
|
1820 |
+
"version": "1.2.0",
|
1821 |
+
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
|
1822 |
+
"integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==",
|
1823 |
+
"dependencies": {
|
1824 |
+
"assert-plus": "^1.0.0",
|
1825 |
+
"jsprim": "^1.2.2",
|
1826 |
+
"sshpk": "^1.7.0"
|
1827 |
+
},
|
1828 |
+
"engines": {
|
1829 |
+
"node": ">=0.8",
|
1830 |
+
"npm": ">=1.3.7"
|
1831 |
+
}
|
1832 |
+
},
|
1833 |
"node_modules/https-proxy-agent": {
|
1834 |
"version": "5.0.1",
|
1835 |
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
|
|
|
1842 |
"node": ">= 6"
|
1843 |
}
|
1844 |
},
|
1845 |
+
"node_modules/humanize-ms": {
|
1846 |
+
"version": "1.2.1",
|
1847 |
+
"resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
|
1848 |
+
"integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==",
|
1849 |
+
"dependencies": {
|
1850 |
+
"ms": "^2.0.0"
|
1851 |
+
}
|
1852 |
+
},
|
1853 |
"node_modules/i": {
|
1854 |
"version": "0.3.7",
|
1855 |
"resolved": "https://registry.npmjs.org/i/-/i-0.3.7.tgz",
|
|
|
1963 |
"node": ">=0.12.0"
|
1964 |
}
|
1965 |
},
|
1966 |
+
"node_modules/is-promise": {
|
1967 |
+
"version": "2.2.2",
|
1968 |
+
"resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
|
1969 |
+
"integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ=="
|
1970 |
+
},
|
1971 |
+
"node_modules/is-typedarray": {
|
1972 |
+
"version": "1.0.0",
|
1973 |
+
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
|
1974 |
+
"integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
|
1975 |
+
},
|
1976 |
"node_modules/isexe": {
|
1977 |
"version": "2.0.0",
|
1978 |
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
|
1979 |
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
|
1980 |
},
|
1981 |
+
"node_modules/isstream": {
|
1982 |
+
"version": "0.1.2",
|
1983 |
+
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
|
1984 |
+
"integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="
|
1985 |
+
},
|
1986 |
"node_modules/jackspeak": {
|
1987 |
"version": "2.3.6",
|
1988 |
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz",
|
|
|
2012 |
"@sideway/pinpoint": "^2.0.0"
|
2013 |
}
|
2014 |
},
|
2015 |
+
"node_modules/jsbn": {
|
2016 |
+
"version": "0.1.1",
|
2017 |
+
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
|
2018 |
+
"integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg=="
|
2019 |
+
},
|
2020 |
+
"node_modules/json-schema": {
|
2021 |
+
"version": "0.4.0",
|
2022 |
+
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
|
2023 |
+
"integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="
|
2024 |
+
},
|
2025 |
+
"node_modules/json-schema-traverse": {
|
2026 |
+
"version": "0.4.1",
|
2027 |
+
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
|
2028 |
+
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
|
2029 |
+
},
|
2030 |
+
"node_modules/json-stringify-safe": {
|
2031 |
+
"version": "5.0.1",
|
2032 |
+
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
|
2033 |
+
"integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
|
2034 |
+
},
|
2035 |
"node_modules/json5": {
|
2036 |
"version": "2.2.3",
|
2037 |
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
|
|
|
2065 |
"npm": ">=6"
|
2066 |
}
|
2067 |
},
|
2068 |
+
"node_modules/jsprim": {
|
2069 |
+
"version": "1.4.2",
|
2070 |
+
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
|
2071 |
+
"integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
|
2072 |
+
"dependencies": {
|
2073 |
+
"assert-plus": "1.0.0",
|
2074 |
+
"extsprintf": "1.3.0",
|
2075 |
+
"json-schema": "0.4.0",
|
2076 |
+
"verror": "1.10.0"
|
2077 |
+
},
|
2078 |
+
"engines": {
|
2079 |
+
"node": ">=0.6.0"
|
2080 |
+
}
|
2081 |
+
},
|
2082 |
"node_modules/jwa": {
|
2083 |
"version": "1.4.1",
|
2084 |
"resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
|
|
|
2152 |
"node": ">=10"
|
2153 |
}
|
2154 |
},
|
2155 |
+
"node_modules/lru-queue": {
|
2156 |
+
"version": "0.1.0",
|
2157 |
+
"resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz",
|
2158 |
+
"integrity": "sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==",
|
2159 |
+
"dependencies": {
|
2160 |
+
"es5-ext": "~0.10.2"
|
2161 |
+
}
|
2162 |
+
},
|
2163 |
"node_modules/make-dir": {
|
2164 |
"version": "3.1.0",
|
2165 |
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
|
|
|
2196 |
"node": ">= 0.6"
|
2197 |
}
|
2198 |
},
|
2199 |
+
"node_modules/memoizee": {
|
2200 |
+
"version": "0.4.17",
|
2201 |
+
"resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.17.tgz",
|
2202 |
+
"integrity": "sha512-DGqD7Hjpi/1or4F/aYAspXKNm5Yili0QDAFAY4QYvpqpgiY6+1jOfqpmByzjxbWd/T9mChbCArXAbDAsTm5oXA==",
|
2203 |
+
"dependencies": {
|
2204 |
+
"d": "^1.0.2",
|
2205 |
+
"es5-ext": "^0.10.64",
|
2206 |
+
"es6-weak-map": "^2.0.3",
|
2207 |
+
"event-emitter": "^0.3.5",
|
2208 |
+
"is-promise": "^2.2.2",
|
2209 |
+
"lru-queue": "^0.1.0",
|
2210 |
+
"next-tick": "^1.1.0",
|
2211 |
+
"timers-ext": "^0.1.7"
|
2212 |
+
},
|
2213 |
+
"engines": {
|
2214 |
+
"node": ">=0.12"
|
2215 |
+
}
|
2216 |
+
},
|
2217 |
"node_modules/memory-pager": {
|
2218 |
"version": "1.5.0",
|
2219 |
"resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
|
|
|
2467 |
"node": ">= 0.6"
|
2468 |
}
|
2469 |
},
|
2470 |
+
"node_modules/next-tick": {
|
2471 |
+
"version": "1.1.0",
|
2472 |
+
"resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz",
|
2473 |
+
"integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ=="
|
2474 |
+
},
|
2475 |
"node_modules/node-addon-api": {
|
2476 |
"version": "5.1.0",
|
2477 |
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz",
|
2478 |
"integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA=="
|
2479 |
},
|
2480 |
+
"node_modules/node-domexception": {
|
2481 |
+
"version": "1.0.0",
|
2482 |
+
"resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
|
2483 |
+
"integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==",
|
2484 |
+
"funding": [
|
2485 |
+
{
|
2486 |
+
"type": "github",
|
2487 |
+
"url": "https://github.com/sponsors/jimmywarting"
|
2488 |
+
},
|
2489 |
+
{
|
2490 |
+
"type": "github",
|
2491 |
+
"url": "https://paypal.me/jimmywarting"
|
2492 |
+
}
|
2493 |
+
],
|
2494 |
+
"engines": {
|
2495 |
+
"node": ">=10.5.0"
|
2496 |
+
}
|
2497 |
+
},
|
2498 |
"node_modules/node-fetch": {
|
2499 |
"version": "2.7.0",
|
2500 |
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
|
|
|
5326 |
"set-blocking": "^2.0.0"
|
5327 |
}
|
5328 |
},
|
5329 |
+
"node_modules/oauth-sign": {
|
5330 |
+
"version": "0.9.0",
|
5331 |
+
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
|
5332 |
+
"integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
|
5333 |
+
"engines": {
|
5334 |
+
"node": "*"
|
5335 |
+
}
|
5336 |
+
},
|
5337 |
"node_modules/object-assign": {
|
5338 |
"version": "4.1.1",
|
5339 |
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
|
|
5369 |
"wrappy": "1"
|
5370 |
}
|
5371 |
},
|
5372 |
+
"node_modules/openai": {
|
5373 |
+
"version": "4.52.0",
|
5374 |
+
"resolved": "https://registry.npmjs.org/openai/-/openai-4.52.0.tgz",
|
5375 |
+
"integrity": "sha512-xmiNcdA9QJ5wffHpZDpIsge6AsPTETJ6h5iqDNuFQ7qGSNtonHn8Qe0VHy4UwLE8rBWiSqh4j+iSvuYZSeKkPg==",
|
5376 |
+
"dependencies": {
|
5377 |
+
"@types/node": "^18.11.18",
|
5378 |
+
"@types/node-fetch": "^2.6.4",
|
5379 |
+
"abort-controller": "^3.0.0",
|
5380 |
+
"agentkeepalive": "^4.2.1",
|
5381 |
+
"form-data-encoder": "1.7.2",
|
5382 |
+
"formdata-node": "^4.3.2",
|
5383 |
+
"node-fetch": "^2.6.7",
|
5384 |
+
"web-streams-polyfill": "^3.2.1"
|
5385 |
+
},
|
5386 |
+
"bin": {
|
5387 |
+
"openai": "bin/cli"
|
5388 |
+
}
|
5389 |
+
},
|
5390 |
+
"node_modules/openai-node": {
|
5391 |
+
"version": "1.0.5",
|
5392 |
+
"resolved": "https://registry.npmjs.org/openai-node/-/openai-node-1.0.5.tgz",
|
5393 |
+
"integrity": "sha512-DFHdyrbU2E+OKZHfR038XNuOZBr8MiU7n7QLUqGkEHNTXtDtTNaPTHs3kkbk7PQQPev6eSbuQIAvBmS+QoOeXw==",
|
5394 |
+
"dependencies": {
|
5395 |
+
"request": "^2.88.2"
|
5396 |
+
}
|
5397 |
+
},
|
5398 |
+
"node_modules/openai/node_modules/@types/node": {
|
5399 |
+
"version": "18.19.37",
|
5400 |
+
"resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.37.tgz",
|
5401 |
+
"integrity": "sha512-Pi53fdVMk7Ig5IfAMltQQMgtY7xLzHaEous8IQasYsdQbYK3v90FkxI3XYQCe/Qme58pqp14lXJIsFmGP8VoZQ==",
|
5402 |
+
"dependencies": {
|
5403 |
+
"undici-types": "~5.26.4"
|
5404 |
+
}
|
5405 |
+
},
|
5406 |
"node_modules/parseurl": {
|
5407 |
"version": "1.3.3",
|
5408 |
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
|
|
|
5478 |
"node": ">=8"
|
5479 |
}
|
5480 |
},
|
5481 |
+
"node_modules/performance-now": {
|
5482 |
+
"version": "2.1.0",
|
5483 |
+
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
|
5484 |
+
"integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="
|
5485 |
+
},
|
5486 |
"node_modules/picomatch": {
|
5487 |
"version": "2.3.1",
|
5488 |
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
|
|
|
5525 |
"node": ">= 0.10"
|
5526 |
}
|
5527 |
},
|
5528 |
+
"node_modules/psl": {
|
5529 |
+
"version": "1.9.0",
|
5530 |
+
"resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
|
5531 |
+
"integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag=="
|
5532 |
+
},
|
5533 |
"node_modules/pstree.remy": {
|
5534 |
"version": "1.1.8",
|
5535 |
"resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz",
|
|
|
5617 |
"node": ">=8.10.0"
|
5618 |
}
|
5619 |
},
|
5620 |
+
"node_modules/request": {
|
5621 |
+
"version": "2.88.2",
|
5622 |
+
"resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
|
5623 |
+
"integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
|
5624 |
+
"deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142",
|
5625 |
+
"dependencies": {
|
5626 |
+
"aws-sign2": "~0.7.0",
|
5627 |
+
"aws4": "^1.8.0",
|
5628 |
+
"caseless": "~0.12.0",
|
5629 |
+
"combined-stream": "~1.0.6",
|
5630 |
+
"extend": "~3.0.2",
|
5631 |
+
"forever-agent": "~0.6.1",
|
5632 |
+
"form-data": "~2.3.2",
|
5633 |
+
"har-validator": "~5.1.3",
|
5634 |
+
"http-signature": "~1.2.0",
|
5635 |
+
"is-typedarray": "~1.0.0",
|
5636 |
+
"isstream": "~0.1.2",
|
5637 |
+
"json-stringify-safe": "~5.0.1",
|
5638 |
+
"mime-types": "~2.1.19",
|
5639 |
+
"oauth-sign": "~0.9.0",
|
5640 |
+
"performance-now": "^2.1.0",
|
5641 |
+
"qs": "~6.5.2",
|
5642 |
+
"safe-buffer": "^5.1.2",
|
5643 |
+
"tough-cookie": "~2.5.0",
|
5644 |
+
"tunnel-agent": "^0.6.0",
|
5645 |
+
"uuid": "^3.3.2"
|
5646 |
+
},
|
5647 |
+
"engines": {
|
5648 |
+
"node": ">= 6"
|
5649 |
+
}
|
5650 |
+
},
|
5651 |
+
"node_modules/request/node_modules/form-data": {
|
5652 |
+
"version": "2.3.3",
|
5653 |
+
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
|
5654 |
+
"integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
|
5655 |
+
"dependencies": {
|
5656 |
+
"asynckit": "^0.4.0",
|
5657 |
+
"combined-stream": "^1.0.6",
|
5658 |
+
"mime-types": "^2.1.12"
|
5659 |
+
},
|
5660 |
+
"engines": {
|
5661 |
+
"node": ">= 0.12"
|
5662 |
+
}
|
5663 |
+
},
|
5664 |
+
"node_modules/request/node_modules/qs": {
|
5665 |
+
"version": "6.5.3",
|
5666 |
+
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
|
5667 |
+
"integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
|
5668 |
+
"engines": {
|
5669 |
+
"node": ">=0.6"
|
5670 |
+
}
|
5671 |
+
},
|
5672 |
+
"node_modules/request/node_modules/uuid": {
|
5673 |
+
"version": "3.4.0",
|
5674 |
+
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
|
5675 |
+
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
|
5676 |
+
"deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
|
5677 |
+
"bin": {
|
5678 |
+
"uuid": "bin/uuid"
|
5679 |
+
}
|
5680 |
+
},
|
5681 |
"node_modules/resolve": {
|
5682 |
"version": "1.22.8",
|
5683 |
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
|
|
|
5965 |
"memory-pager": "^1.0.2"
|
5966 |
}
|
5967 |
},
|
5968 |
+
"node_modules/sshpk": {
|
5969 |
+
"version": "1.18.0",
|
5970 |
+
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz",
|
5971 |
+
"integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==",
|
5972 |
+
"dependencies": {
|
5973 |
+
"asn1": "~0.2.3",
|
5974 |
+
"assert-plus": "^1.0.0",
|
5975 |
+
"bcrypt-pbkdf": "^1.0.0",
|
5976 |
+
"dashdash": "^1.12.0",
|
5977 |
+
"ecc-jsbn": "~0.1.1",
|
5978 |
+
"getpass": "^0.1.1",
|
5979 |
+
"jsbn": "~0.1.0",
|
5980 |
+
"safer-buffer": "^2.0.2",
|
5981 |
+
"tweetnacl": "~0.14.0"
|
5982 |
+
},
|
5983 |
+
"bin": {
|
5984 |
+
"sshpk-conv": "bin/sshpk-conv",
|
5985 |
+
"sshpk-sign": "bin/sshpk-sign",
|
5986 |
+
"sshpk-verify": "bin/sshpk-verify"
|
5987 |
+
},
|
5988 |
+
"engines": {
|
5989 |
+
"node": ">=0.10.0"
|
5990 |
+
}
|
5991 |
+
},
|
5992 |
"node_modules/statuses": {
|
5993 |
"version": "2.0.1",
|
5994 |
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
|
|
|
6132 |
"node": ">=10"
|
6133 |
}
|
6134 |
},
|
6135 |
+
"node_modules/text-generation": {
|
6136 |
+
"version": "0.1.2",
|
6137 |
+
"resolved": "https://registry.npmjs.org/text-generation/-/text-generation-0.1.2.tgz",
|
6138 |
+
"integrity": "sha512-H3pVia6ar8vcdtwQpxQp2A/cyXZZG78C4wN9vpg9kk7MtlgM2TjkL8mMc6sfjUysnKxFthB2C9ZAkvvjtSRd1w==",
|
6139 |
+
"dependencies": {
|
6140 |
+
"@types/chance": "^1.1.3",
|
6141 |
+
"@types/memoizee": "^0.4.8",
|
6142 |
+
"@types/node": "^14.14.31",
|
6143 |
+
"chalk": "^5.0.1",
|
6144 |
+
"chance": "^1.1.8",
|
6145 |
+
"memoizee": "^0.4.15"
|
6146 |
+
},
|
6147 |
+
"engines": {
|
6148 |
+
"node": ">=12.10.0"
|
6149 |
+
}
|
6150 |
+
},
|
6151 |
+
"node_modules/text-generation/node_modules/@types/node": {
|
6152 |
+
"version": "14.18.63",
|
6153 |
+
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.63.tgz",
|
6154 |
+
"integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ=="
|
6155 |
+
},
|
6156 |
+
"node_modules/timers-ext": {
|
6157 |
+
"version": "0.1.8",
|
6158 |
+
"resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.8.tgz",
|
6159 |
+
"integrity": "sha512-wFH7+SEAcKfJpfLPkrgMPvvwnEtj8W4IurvEyrKsDleXnKLCDw71w8jltvfLa8Rm4qQxxT4jmDBYbJG/z7qoww==",
|
6160 |
+
"dependencies": {
|
6161 |
+
"es5-ext": "^0.10.64",
|
6162 |
+
"next-tick": "^1.1.0"
|
6163 |
+
},
|
6164 |
+
"engines": {
|
6165 |
+
"node": ">=0.12"
|
6166 |
+
}
|
6167 |
+
},
|
6168 |
"node_modules/to-regex-range": {
|
6169 |
"version": "5.0.1",
|
6170 |
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
|
|
6196 |
"nodetouch": "bin/nodetouch.js"
|
6197 |
}
|
6198 |
},
|
6199 |
+
"node_modules/tough-cookie": {
|
6200 |
+
"version": "2.5.0",
|
6201 |
+
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
|
6202 |
+
"integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
|
6203 |
+
"dependencies": {
|
6204 |
+
"psl": "^1.1.28",
|
6205 |
+
"punycode": "^2.1.1"
|
6206 |
+
},
|
6207 |
+
"engines": {
|
6208 |
+
"node": ">=0.8"
|
6209 |
+
}
|
6210 |
+
},
|
6211 |
"node_modules/tr46": {
|
6212 |
"version": "3.0.0",
|
6213 |
"resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz",
|
|
|
6379 |
"node": ">=6"
|
6380 |
}
|
6381 |
},
|
6382 |
+
"node_modules/tunnel-agent": {
|
6383 |
+
"version": "0.6.0",
|
6384 |
+
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
|
6385 |
+
"integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
|
6386 |
+
"dependencies": {
|
6387 |
+
"safe-buffer": "^5.0.1"
|
6388 |
+
},
|
6389 |
+
"engines": {
|
6390 |
+
"node": "*"
|
6391 |
+
}
|
6392 |
+
},
|
6393 |
+
"node_modules/tweetnacl": {
|
6394 |
+
"version": "0.14.5",
|
6395 |
+
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
|
6396 |
+
"integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA=="
|
6397 |
+
},
|
6398 |
+
"node_modules/type": {
|
6399 |
+
"version": "2.7.3",
|
6400 |
+
"resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz",
|
6401 |
+
"integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ=="
|
6402 |
+
},
|
6403 |
"node_modules/type-is": {
|
6404 |
"version": "1.6.18",
|
6405 |
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
|
|
|
6444 |
"node": ">= 0.8"
|
6445 |
}
|
6446 |
},
|
6447 |
+
"node_modules/uri-js": {
|
6448 |
+
"version": "4.4.1",
|
6449 |
+
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
|
6450 |
+
"integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
|
6451 |
+
"dependencies": {
|
6452 |
+
"punycode": "^2.1.0"
|
6453 |
+
}
|
6454 |
+
},
|
6455 |
"node_modules/util": {
|
6456 |
"version": "0.10.4",
|
6457 |
"resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz",
|
|
|
6504 |
"node": ">= 0.8"
|
6505 |
}
|
6506 |
},
|
6507 |
+
"node_modules/verror": {
|
6508 |
+
"version": "1.10.0",
|
6509 |
+
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
|
6510 |
+
"integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
|
6511 |
+
"engines": [
|
6512 |
+
"node >=0.6.0"
|
6513 |
+
],
|
6514 |
+
"dependencies": {
|
6515 |
+
"assert-plus": "^1.0.0",
|
6516 |
+
"core-util-is": "1.0.2",
|
6517 |
+
"extsprintf": "^1.2.0"
|
6518 |
+
}
|
6519 |
+
},
|
6520 |
+
"node_modules/web-streams-polyfill": {
|
6521 |
+
"version": "3.3.3",
|
6522 |
+
"resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz",
|
6523 |
+
"integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==",
|
6524 |
+
"engines": {
|
6525 |
+
"node": ">= 8"
|
6526 |
+
}
|
6527 |
+
},
|
6528 |
"node_modules/webidl-conversions": {
|
6529 |
"version": "7.0.0",
|
6530 |
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
|
src/common/models/equipment.model.ts
CHANGED
@@ -4,11 +4,13 @@ const { Schema } = mongoose;
|
|
4 |
export interface IEquipment {
|
5 |
name: string;
|
6 |
image: string;
|
|
|
7 |
}
|
8 |
|
9 |
const equipmentSchema = new Schema({
|
10 |
name: { type: String, required: true, unique: true, dropDups: true },
|
11 |
image: { type: String, required: true },
|
|
|
12 |
});
|
13 |
|
14 |
export type EquipmentDocument = IEquipment & mongoose.Document;
|
|
|
4 |
export interface IEquipment {
|
5 |
name: string;
|
6 |
image: string;
|
7 |
+
isDeleted: boolean;
|
8 |
}
|
9 |
|
10 |
const equipmentSchema = new Schema({
|
11 |
name: { type: String, required: true, unique: true, dropDups: true },
|
12 |
image: { type: String, required: true },
|
13 |
+
isDeleted: { type: Boolean, default: false },
|
14 |
});
|
15 |
|
16 |
export type EquipmentDocument = IEquipment & mongoose.Document;
|
src/common/models/exercise.model.ts
CHANGED
@@ -25,6 +25,7 @@ export interface IExercise {
|
|
25 |
type: "image" | "video";
|
26 |
url: string;
|
27 |
};
|
|
|
28 |
}
|
29 |
|
30 |
const exerciseSchema = new Schema<IExercise>({
|
@@ -58,6 +59,7 @@ const exerciseSchema = new Schema<IExercise>({
|
|
58 |
},
|
59 |
url: { type: String, required: true },
|
60 |
},
|
|
|
61 |
});
|
62 |
|
63 |
export type ExerciseDocument = IExercise & mongoose.Document;
|
|
|
25 |
type: "image" | "video";
|
26 |
url: string;
|
27 |
};
|
28 |
+
isDeleted: boolean;
|
29 |
}
|
30 |
|
31 |
const exerciseSchema = new Schema<IExercise>({
|
|
|
59 |
},
|
60 |
url: { type: String, required: true },
|
61 |
},
|
62 |
+
isDeleted: { type: Boolean, default: false },
|
63 |
});
|
64 |
|
65 |
export type ExerciseDocument = IExercise & mongoose.Document;
|
src/common/models/ingredient.model.ts
CHANGED
@@ -11,6 +11,7 @@ export interface IIngredient {
|
|
11 |
carbs: number;
|
12 |
proteins: number;
|
13 |
fats: number;
|
|
|
14 |
}
|
15 |
|
16 |
const ingredientSchema = new Schema({
|
@@ -23,6 +24,7 @@ const ingredientSchema = new Schema({
|
|
23 |
carbs: { type: Number, required: true },
|
24 |
proteins: { type: Number, required: true },
|
25 |
fats: { type: Number, required: true },
|
|
|
26 |
});
|
27 |
|
28 |
|
|
|
11 |
carbs: number;
|
12 |
proteins: number;
|
13 |
fats: number;
|
14 |
+
isDeleted: boolean;
|
15 |
}
|
16 |
|
17 |
const ingredientSchema = new Schema({
|
|
|
24 |
carbs: { type: Number, required: true },
|
25 |
proteins: { type: Number, required: true },
|
26 |
fats: { type: Number, required: true },
|
27 |
+
isDeleted: { type: Boolean, default: false },
|
28 |
});
|
29 |
|
30 |
|
src/common/models/meal-plan.model.ts
CHANGED
@@ -17,6 +17,7 @@ export interface IMealPlan {
|
|
17 |
meals: mongoose.Types.ObjectId[];
|
18 |
}[];
|
19 |
aiGenerated: boolean;
|
|
|
20 |
}
|
21 |
|
22 |
const mealPlanSchema = new Schema({
|
@@ -38,6 +39,7 @@ const mealPlanSchema = new Schema({
|
|
38 |
},
|
39 |
],
|
40 |
aiGenerated: { type: Boolean, required: true, default: false },
|
|
|
41 |
});
|
42 |
|
43 |
|
|
|
17 |
meals: mongoose.Types.ObjectId[];
|
18 |
}[];
|
19 |
aiGenerated: boolean;
|
20 |
+
isDeleted: boolean;
|
21 |
}
|
22 |
|
23 |
const mealPlanSchema = new Schema({
|
|
|
39 |
},
|
40 |
],
|
41 |
aiGenerated: { type: Boolean, required: true, default: false },
|
42 |
+
isDeleted: { type: Boolean, default: false },
|
43 |
});
|
44 |
|
45 |
|
src/common/models/meal.model.ts
CHANGED
@@ -11,6 +11,7 @@ export interface IMeal {
|
|
11 |
proteins: number;
|
12 |
fats: number;
|
13 |
type: MealType;
|
|
|
14 |
}
|
15 |
|
16 |
const mealSchema = new Schema({
|
@@ -27,6 +28,7 @@ const mealSchema = new Schema({
|
|
27 |
carbs: { type: Number, required: true },
|
28 |
proteins: { type: Number, required: true },
|
29 |
fats: { type: Number, required: true },
|
|
|
30 |
});
|
31 |
|
32 |
|
|
|
11 |
proteins: number;
|
12 |
fats: number;
|
13 |
type: MealType;
|
14 |
+
isDeleted: boolean;
|
15 |
}
|
16 |
|
17 |
const mealSchema = new Schema({
|
|
|
28 |
carbs: { type: Number, required: true },
|
29 |
proteins: { type: Number, required: true },
|
30 |
fats: { type: Number, required: true },
|
31 |
+
isDeleted: { type: Boolean, default: false },
|
32 |
});
|
33 |
|
34 |
|
src/common/models/muscle.model.ts
CHANGED
@@ -4,11 +4,13 @@ const { Schema } = mongoose;
|
|
4 |
export interface IMuscle {
|
5 |
name: string;
|
6 |
image: string;
|
|
|
7 |
}
|
8 |
|
9 |
const muscleSchema = new Schema({
|
10 |
name: { type: String, required: true, unique: true, dropDups: true },
|
11 |
image: { type: String, required: true },
|
|
|
12 |
});
|
13 |
|
14 |
export type MuscleDocument = IMuscle & mongoose.Document;
|
|
|
4 |
export interface IMuscle {
|
5 |
name: string;
|
6 |
image: string;
|
7 |
+
isDeleted: boolean;
|
8 |
}
|
9 |
|
10 |
const muscleSchema = new Schema({
|
11 |
name: { type: String, required: true, unique: true, dropDups: true },
|
12 |
image: { type: String, required: true },
|
13 |
+
isDeleted: { type: Boolean, default: false },
|
14 |
});
|
15 |
|
16 |
export type MuscleDocument = IMuscle & mongoose.Document;
|
src/common/models/workout.model.ts
CHANGED
@@ -32,6 +32,7 @@ export interface IWorkout {
|
|
32 |
},
|
33 |
],
|
34 |
aiGenerated: boolean;
|
|
|
35 |
}
|
36 |
|
37 |
const workoutSchema = new Schema({
|
@@ -63,6 +64,7 @@ const workoutSchema = new Schema({
|
|
63 |
},
|
64 |
],
|
65 |
aiGenerated: { type: Boolean, required: true, default: false },
|
|
|
66 |
});
|
67 |
|
68 |
|
|
|
32 |
},
|
33 |
],
|
34 |
aiGenerated: boolean;
|
35 |
+
isDeleted: boolean;
|
36 |
}
|
37 |
|
38 |
const workoutSchema = new Schema({
|
|
|
64 |
},
|
65 |
],
|
66 |
aiGenerated: { type: Boolean, required: true, default: false },
|
67 |
+
isDeleted: { type: Boolean, default: false },
|
68 |
});
|
69 |
|
70 |
|
src/lib/services/crud.service.ts
CHANGED
@@ -31,7 +31,7 @@ export const CrudService = <ModelDoc extends Document>(
|
|
31 |
checkExists: boolean = true
|
32 |
): Promise<ModelDoc[]> {
|
33 |
filter = { ...crudOptions?.defaultFilter, ...filter };
|
34 |
-
if(checkExists)
|
35 |
await this.existsOrThrow(filter);
|
36 |
await this.model.updateMany(filter, data);
|
37 |
return this.model.find(filter);
|
@@ -42,9 +42,17 @@ export const CrudService = <ModelDoc extends Document>(
|
|
42 |
await this.existsOrThrow(filter);
|
43 |
return this.model.findOneAndDelete(filter);
|
44 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
45 |
|
46 |
async list(
|
47 |
-
filter: FilterQuery<ModelDoc>,
|
48 |
paginationOptions: {
|
49 |
limit?: number;
|
50 |
skip?: number;
|
@@ -66,7 +74,7 @@ export const CrudService = <ModelDoc extends Document>(
|
|
66 |
}> {
|
67 |
if (options?.filterOptions) filter = { ...filter, ...options.filterOptions };
|
68 |
filter = { ...crudOptions?.defaultFilter, ...filter };
|
69 |
-
|
70 |
const queryInstruction = this.model
|
71 |
.find(filter)
|
72 |
.limit(paginationOptions.limit)
|
|
|
31 |
checkExists: boolean = true
|
32 |
): Promise<ModelDoc[]> {
|
33 |
filter = { ...crudOptions?.defaultFilter, ...filter };
|
34 |
+
if (checkExists)
|
35 |
await this.existsOrThrow(filter);
|
36 |
await this.model.updateMany(filter, data);
|
37 |
return this.model.find(filter);
|
|
|
42 |
await this.existsOrThrow(filter);
|
43 |
return this.model.findOneAndDelete(filter);
|
44 |
}
|
45 |
+
async softDelete(
|
46 |
+
filter: FilterQuery<ModelDoc>
|
47 |
+
): Promise<ModelDoc> {
|
48 |
+
filter = { ...crudOptions?.defaultFilter, ...filter };
|
49 |
+
await this.existsOrThrow(filter);
|
50 |
+
await this.model.updateOne(filter, { isDeleted: true });
|
51 |
+
return this.findOneOrFail(filter);
|
52 |
+
}
|
53 |
|
54 |
async list(
|
55 |
+
filter: FilterQuery<ModelDoc>,
|
56 |
paginationOptions: {
|
57 |
limit?: number;
|
58 |
skip?: number;
|
|
|
74 |
}> {
|
75 |
if (options?.filterOptions) filter = { ...filter, ...options.filterOptions };
|
76 |
filter = { ...crudOptions?.defaultFilter, ...filter };
|
77 |
+
|
78 |
const queryInstruction = this.model
|
79 |
.find(filter)
|
80 |
.limit(paginationOptions.limit)
|
src/modules/console/modules/equipments/controllers/equipments.controller.ts
CHANGED
@@ -60,7 +60,7 @@ export class EquipmentsController extends BaseController {
|
|
60 |
list = async (req: Request, res: Response) => {
|
61 |
const paginationQuery = parsePaginationQuery(req.query);
|
62 |
const { docs, paginationData } = await this.equipmentsService.list(
|
63 |
-
{},
|
64 |
paginationQuery
|
65 |
);
|
66 |
|
@@ -80,6 +80,7 @@ export class EquipmentsController extends BaseController {
|
|
80 |
get = async (req: Request, res: Response) => {
|
81 |
const data = await this.equipmentsService.findOneOrFail({
|
82 |
_id: req.params.id,
|
|
|
83 |
});
|
84 |
return JsonResponse.success(
|
85 |
{
|
@@ -128,7 +129,7 @@ export class EquipmentsController extends BaseController {
|
|
128 |
@SwaggerSummary("Delete equipment")
|
129 |
@SwaggerDescription("Delete a equipment by id")
|
130 |
delete = async (req: Request, res: Response) => {
|
131 |
-
const data = await this.equipmentsService.
|
132 |
return JsonResponse.success(
|
133 |
{
|
134 |
data: serialize(data.toJSON(), EquipmentSerialization),
|
|
|
60 |
list = async (req: Request, res: Response) => {
|
61 |
const paginationQuery = parsePaginationQuery(req.query);
|
62 |
const { docs, paginationData } = await this.equipmentsService.list(
|
63 |
+
{ isDeleted: false },
|
64 |
paginationQuery
|
65 |
);
|
66 |
|
|
|
80 |
get = async (req: Request, res: Response) => {
|
81 |
const data = await this.equipmentsService.findOneOrFail({
|
82 |
_id: req.params.id,
|
83 |
+
isDeleted: false
|
84 |
});
|
85 |
return JsonResponse.success(
|
86 |
{
|
|
|
129 |
@SwaggerSummary("Delete equipment")
|
130 |
@SwaggerDescription("Delete a equipment by id")
|
131 |
delete = async (req: Request, res: Response) => {
|
132 |
+
const data = await this.equipmentsService.softDelete({ _id: req.params.id });
|
133 |
return JsonResponse.success(
|
134 |
{
|
135 |
data: serialize(data.toJSON(), EquipmentSerialization),
|
src/modules/console/modules/exercises/controllers/exercises.controller.ts
CHANGED
@@ -56,7 +56,7 @@ export class ExercisesController extends BaseController {
|
|
56 |
list = async (req: Request, res: Response) => {
|
57 |
const paginationQuery = parsePaginationQuery(req.query);
|
58 |
const { docs, paginationData } = await this.exercisesService.list(
|
59 |
-
{},
|
60 |
paginationQuery,
|
61 |
);
|
62 |
|
@@ -77,6 +77,7 @@ export class ExercisesController extends BaseController {
|
|
77 |
const data = await this.exercisesService.findOneOrFail(
|
78 |
{
|
79 |
_id: req.params.id,
|
|
|
80 |
},
|
81 |
);
|
82 |
return JsonResponse.success(
|
@@ -125,7 +126,7 @@ export class ExercisesController extends BaseController {
|
|
125 |
@SwaggerSummary("Delete exercise")
|
126 |
@SwaggerDescription("Delete a single exercise by id")
|
127 |
delete = async (req: Request, res: Response) => {
|
128 |
-
await this.exercisesService.
|
129 |
return JsonResponse.success({}, res);
|
130 |
};
|
131 |
}
|
|
|
56 |
list = async (req: Request, res: Response) => {
|
57 |
const paginationQuery = parsePaginationQuery(req.query);
|
58 |
const { docs, paginationData } = await this.exercisesService.list(
|
59 |
+
{ isDeleted: false },
|
60 |
paginationQuery,
|
61 |
);
|
62 |
|
|
|
77 |
const data = await this.exercisesService.findOneOrFail(
|
78 |
{
|
79 |
_id: req.params.id,
|
80 |
+
isDeleted: false
|
81 |
},
|
82 |
);
|
83 |
return JsonResponse.success(
|
|
|
126 |
@SwaggerSummary("Delete exercise")
|
127 |
@SwaggerDescription("Delete a single exercise by id")
|
128 |
delete = async (req: Request, res: Response) => {
|
129 |
+
await this.exercisesService.softDelete({ _id: req.params.id });
|
130 |
return JsonResponse.success({}, res);
|
131 |
};
|
132 |
}
|
src/modules/console/modules/ingredients/controller/ingredients.controller.ts
CHANGED
@@ -50,11 +50,11 @@ export class AdminsIngredientsController extends BaseController {
|
|
50 |
@SwaggerQuery({
|
51 |
limit: "number",
|
52 |
skip: "number",
|
53 |
-
|
54 |
list = async (req: Request, res: Response) => {
|
55 |
const paginationQuery = parsePaginationQuery(req.query);
|
56 |
const { docs, paginationData } = await this.ingredientsService.list(
|
57 |
-
{},
|
58 |
paginationQuery
|
59 |
);
|
60 |
|
@@ -74,6 +74,7 @@ export class AdminsIngredientsController extends BaseController {
|
|
74 |
get = async (req: Request, res: Response) => {
|
75 |
const data = await this.ingredientsService.findOneOrFail({
|
76 |
_id: req.params.id,
|
|
|
77 |
});
|
78 |
return JsonResponse.success(
|
79 |
{
|
@@ -122,7 +123,7 @@ export class AdminsIngredientsController extends BaseController {
|
|
122 |
@SwaggerSummary('Delete ingredient')
|
123 |
@SwaggerDescription('Delete an ingredient by id')
|
124 |
delete = async (req: Request, res: Response) => {
|
125 |
-
const data = await this.ingredientsService.
|
126 |
return JsonResponse.success(
|
127 |
{
|
128 |
data: serialize(data.toJSON(), IngredientSerialization),
|
|
|
50 |
@SwaggerQuery({
|
51 |
limit: "number",
|
52 |
skip: "number",
|
53 |
+
})
|
54 |
list = async (req: Request, res: Response) => {
|
55 |
const paginationQuery = parsePaginationQuery(req.query);
|
56 |
const { docs, paginationData } = await this.ingredientsService.list(
|
57 |
+
{ isDeleted: false },
|
58 |
paginationQuery
|
59 |
);
|
60 |
|
|
|
74 |
get = async (req: Request, res: Response) => {
|
75 |
const data = await this.ingredientsService.findOneOrFail({
|
76 |
_id: req.params.id,
|
77 |
+
isDeleted: false
|
78 |
});
|
79 |
return JsonResponse.success(
|
80 |
{
|
|
|
123 |
@SwaggerSummary('Delete ingredient')
|
124 |
@SwaggerDescription('Delete an ingredient by id')
|
125 |
delete = async (req: Request, res: Response) => {
|
126 |
+
const data = await this.ingredientsService.softDelete({ _id: req.params.id });
|
127 |
return JsonResponse.success(
|
128 |
{
|
129 |
data: serialize(data.toJSON(), IngredientSerialization),
|
src/modules/console/modules/meal-plans/controller/meal-plans.controller.ts
CHANGED
@@ -50,11 +50,11 @@ export class AdminsMealPlansController extends BaseController {
|
|
50 |
@SwaggerQuery({
|
51 |
limit: "number",
|
52 |
skip: "number",
|
53 |
-
|
54 |
list = async (req: Request, res: Response) => {
|
55 |
const paginationQuery = parsePaginationQuery(req.query);
|
56 |
const { docs, paginationData } = await this.mealPlansService.list(
|
57 |
-
{},
|
58 |
paginationQuery,
|
59 |
);
|
60 |
|
@@ -75,6 +75,7 @@ export class AdminsMealPlansController extends BaseController {
|
|
75 |
const data = await this.mealPlansService.findOneOrFail(
|
76 |
{
|
77 |
_id: req.params.id,
|
|
|
78 |
},
|
79 |
);
|
80 |
return JsonResponse.success(
|
@@ -124,7 +125,7 @@ export class AdminsMealPlansController extends BaseController {
|
|
124 |
@SwaggerSummary('Delete meal plan')
|
125 |
@SwaggerDescription('Delete a meal plan by id')
|
126 |
delete = async (req: Request, res: Response) => {
|
127 |
-
const data = await this.mealPlansService.
|
128 |
return JsonResponse.success(
|
129 |
{
|
130 |
data: serialize(data.toJSON(), MealPlanSerialization),
|
|
|
50 |
@SwaggerQuery({
|
51 |
limit: "number",
|
52 |
skip: "number",
|
53 |
+
})
|
54 |
list = async (req: Request, res: Response) => {
|
55 |
const paginationQuery = parsePaginationQuery(req.query);
|
56 |
const { docs, paginationData } = await this.mealPlansService.list(
|
57 |
+
{ isDeleted: false },
|
58 |
paginationQuery,
|
59 |
);
|
60 |
|
|
|
75 |
const data = await this.mealPlansService.findOneOrFail(
|
76 |
{
|
77 |
_id: req.params.id,
|
78 |
+
isDeleted: false
|
79 |
},
|
80 |
);
|
81 |
return JsonResponse.success(
|
|
|
125 |
@SwaggerSummary('Delete meal plan')
|
126 |
@SwaggerDescription('Delete a meal plan by id')
|
127 |
delete = async (req: Request, res: Response) => {
|
128 |
+
const data = await this.mealPlansService.softDelete({ _id: req.params.id });
|
129 |
return JsonResponse.success(
|
130 |
{
|
131 |
data: serialize(data.toJSON(), MealPlanSerialization),
|
src/modules/console/modules/meals/controller/meals.controller.ts
CHANGED
@@ -50,11 +50,11 @@ export class AdminsMealsController extends BaseController {
|
|
50 |
@SwaggerQuery({
|
51 |
limit: "number",
|
52 |
skip: "number",
|
53 |
-
|
54 |
list = async (req: Request, res: Response) => {
|
55 |
const paginationQuery = parsePaginationQuery(req.query);
|
56 |
const { docs, paginationData } = await this.mealsService.list(
|
57 |
-
{},
|
58 |
paginationQuery,
|
59 |
);
|
60 |
|
@@ -75,6 +75,7 @@ export class AdminsMealsController extends BaseController {
|
|
75 |
const data = await this.mealsService.findOneOrFail(
|
76 |
{
|
77 |
_id: req.params.id,
|
|
|
78 |
},
|
79 |
);
|
80 |
return JsonResponse.success(
|
@@ -124,7 +125,7 @@ export class AdminsMealsController extends BaseController {
|
|
124 |
@SwaggerSummary('Delete meal')
|
125 |
@SwaggerDescription('Delete a meal by id')
|
126 |
delete = async (req: Request, res: Response) => {
|
127 |
-
const data = await this.mealsService.
|
128 |
return JsonResponse.success(
|
129 |
{
|
130 |
data: serialize(data.toJSON(), MealSerialization),
|
|
|
50 |
@SwaggerQuery({
|
51 |
limit: "number",
|
52 |
skip: "number",
|
53 |
+
})
|
54 |
list = async (req: Request, res: Response) => {
|
55 |
const paginationQuery = parsePaginationQuery(req.query);
|
56 |
const { docs, paginationData } = await this.mealsService.list(
|
57 |
+
{ isDeleted: false },
|
58 |
paginationQuery,
|
59 |
);
|
60 |
|
|
|
75 |
const data = await this.mealsService.findOneOrFail(
|
76 |
{
|
77 |
_id: req.params.id,
|
78 |
+
isDeleted: false
|
79 |
},
|
80 |
);
|
81 |
return JsonResponse.success(
|
|
|
125 |
@SwaggerSummary('Delete meal')
|
126 |
@SwaggerDescription('Delete a meal by id')
|
127 |
delete = async (req: Request, res: Response) => {
|
128 |
+
const data = await this.mealsService.softDelete({ _id: req.params.id });
|
129 |
return JsonResponse.success(
|
130 |
{
|
131 |
data: serialize(data.toJSON(), MealSerialization),
|
src/modules/console/modules/muscles/controllers/muscles.controller.ts
CHANGED
@@ -50,11 +50,11 @@ export class MusclesController extends BaseController {
|
|
50 |
@SwaggerQuery({
|
51 |
limit: "number",
|
52 |
skip: "number",
|
53 |
-
|
54 |
list = async (req: Request, res: Response) => {
|
55 |
const paginationQuery = parsePaginationQuery(req.query);
|
56 |
const { docs, paginationData } = await this.musclesService.list(
|
57 |
-
{},
|
58 |
paginationQuery
|
59 |
);
|
60 |
|
@@ -74,6 +74,7 @@ export class MusclesController extends BaseController {
|
|
74 |
get = async (req: Request, res: Response) => {
|
75 |
const data = await this.musclesService.findOneOrFail({
|
76 |
_id: req.params.id,
|
|
|
77 |
});
|
78 |
return JsonResponse.success(
|
79 |
{
|
@@ -122,7 +123,7 @@ export class MusclesController extends BaseController {
|
|
122 |
@SwaggerSummary("Delete muscle")
|
123 |
@SwaggerDescription("Delete a muscle by id")
|
124 |
delete = async (req: Request, res: Response) => {
|
125 |
-
const data = await this.musclesService.
|
126 |
return JsonResponse.success(
|
127 |
{
|
128 |
data: serialize(data.toJSON(), MuscleSerialization),
|
|
|
50 |
@SwaggerQuery({
|
51 |
limit: "number",
|
52 |
skip: "number",
|
53 |
+
})
|
54 |
list = async (req: Request, res: Response) => {
|
55 |
const paginationQuery = parsePaginationQuery(req.query);
|
56 |
const { docs, paginationData } = await this.musclesService.list(
|
57 |
+
{ isDeleted: false },
|
58 |
paginationQuery
|
59 |
);
|
60 |
|
|
|
74 |
get = async (req: Request, res: Response) => {
|
75 |
const data = await this.musclesService.findOneOrFail({
|
76 |
_id: req.params.id,
|
77 |
+
isDeleted: false
|
78 |
});
|
79 |
return JsonResponse.success(
|
80 |
{
|
|
|
123 |
@SwaggerSummary("Delete muscle")
|
124 |
@SwaggerDescription("Delete a muscle by id")
|
125 |
delete = async (req: Request, res: Response) => {
|
126 |
+
const data = await this.musclesService.softDelete({ _id: req.params.id });
|
127 |
return JsonResponse.success(
|
128 |
{
|
129 |
data: serialize(data.toJSON(), MuscleSerialization),
|
src/modules/console/modules/workouts/controllers/workouts.controller.ts
CHANGED
@@ -61,7 +61,7 @@ export class WorkoutController extends BaseController {
|
|
61 |
list = async (req: Request, res: Response) => {
|
62 |
const paginationQuery = parsePaginationQuery(req.query);
|
63 |
const { docs, paginationData } = await this.workoutsService.list(
|
64 |
-
{},
|
65 |
paginationQuery,
|
66 |
);
|
67 |
|
@@ -82,6 +82,7 @@ export class WorkoutController extends BaseController {
|
|
82 |
const data = await this.workoutsService.findOneOrFail(
|
83 |
{
|
84 |
_id: req.params.id,
|
|
|
85 |
},
|
86 |
);
|
87 |
return JsonResponse.success(
|
@@ -131,7 +132,7 @@ export class WorkoutController extends BaseController {
|
|
131 |
@SwaggerSummary("Delete workout")
|
132 |
@SwaggerDescription("Delete a workout by id")
|
133 |
delete = async (req: Request, res: Response) => {
|
134 |
-
const data = await this.workoutsService.
|
135 |
return JsonResponse.success(
|
136 |
{
|
137 |
data: serialize(data.toJSON(), WorkoutSerialization),
|
|
|
61 |
list = async (req: Request, res: Response) => {
|
62 |
const paginationQuery = parsePaginationQuery(req.query);
|
63 |
const { docs, paginationData } = await this.workoutsService.list(
|
64 |
+
{ isDeleted: false },
|
65 |
paginationQuery,
|
66 |
);
|
67 |
|
|
|
82 |
const data = await this.workoutsService.findOneOrFail(
|
83 |
{
|
84 |
_id: req.params.id,
|
85 |
+
isDeleted: false
|
86 |
},
|
87 |
);
|
88 |
return JsonResponse.success(
|
|
|
132 |
@SwaggerSummary("Delete workout")
|
133 |
@SwaggerDescription("Delete a workout by id")
|
134 |
delete = async (req: Request, res: Response) => {
|
135 |
+
const data = await this.workoutsService.softDelete({ _id: req.params.id });
|
136 |
return JsonResponse.success(
|
137 |
{
|
138 |
data: serialize(data.toJSON(), WorkoutSerialization),
|
src/modules/users/modules/exercises/controllers/exercises.controller.ts
CHANGED
@@ -41,7 +41,7 @@ export class UsersExerciseController extends BaseController {
|
|
41 |
const paginationQuery = parsePaginationQuery(req.query);
|
42 |
|
43 |
let filterName = req.query.filterName, filterVal = req.query.filterVal;
|
44 |
-
let filter = {};
|
45 |
|
46 |
if (filterName && filterVal) {
|
47 |
filter[`${filterName}`] = filterVal;
|
@@ -76,6 +76,7 @@ export class UsersExerciseController extends BaseController {
|
|
76 |
const data = await this.exercisesService.findOneOrFail(
|
77 |
{
|
78 |
_id: req.params.id,
|
|
|
79 |
},
|
80 |
{
|
81 |
populateArray: [
|
@@ -136,7 +137,7 @@ export class UsersExerciseController extends BaseController {
|
|
136 |
};
|
137 |
}
|
138 |
}
|
139 |
-
|
140 |
const { docs, paginationData } = await this.exercisesService.search(
|
141 |
query,
|
142 |
paginationQuery,
|
|
|
41 |
const paginationQuery = parsePaginationQuery(req.query);
|
42 |
|
43 |
let filterName = req.query.filterName, filterVal = req.query.filterVal;
|
44 |
+
let filter = { isDeleted: false };
|
45 |
|
46 |
if (filterName && filterVal) {
|
47 |
filter[`${filterName}`] = filterVal;
|
|
|
76 |
const data = await this.exercisesService.findOneOrFail(
|
77 |
{
|
78 |
_id: req.params.id,
|
79 |
+
isDeleted: false
|
80 |
},
|
81 |
{
|
82 |
populateArray: [
|
|
|
137 |
};
|
138 |
}
|
139 |
}
|
140 |
+
query = { ...query, isDeleted: false }
|
141 |
const { docs, paginationData } = await this.exercisesService.search(
|
142 |
query,
|
143 |
paginationQuery,
|
src/modules/users/modules/ingredients/controller/ingredients.controller.ts
CHANGED
@@ -41,7 +41,7 @@ export class UsersIngredientsController extends BaseController {
|
|
41 |
const paginationQuery = parsePaginationQuery(req.query);
|
42 |
|
43 |
let filterName = req.query.filterName, filterVal = req.query.filterVal;
|
44 |
-
let filter = {};
|
45 |
|
46 |
if (filterName && filterVal) {
|
47 |
filter[`${filterName}`] = filterVal;
|
@@ -97,7 +97,7 @@ export class UsersIngredientsController extends BaseController {
|
|
97 |
name: { $regex: searchTerm, $options: "i" }
|
98 |
}
|
99 |
}
|
100 |
-
|
101 |
const { docs, paginationData } = await this.ingredientsService.search(
|
102 |
query,
|
103 |
paginationQuery,
|
|
|
41 |
const paginationQuery = parsePaginationQuery(req.query);
|
42 |
|
43 |
let filterName = req.query.filterName, filterVal = req.query.filterVal;
|
44 |
+
let filter = { isDeleted: false };
|
45 |
|
46 |
if (filterName && filterVal) {
|
47 |
filter[`${filterName}`] = filterVal;
|
|
|
97 |
name: { $regex: searchTerm, $options: "i" }
|
98 |
}
|
99 |
}
|
100 |
+
query = { ...query, isDeleted: false }
|
101 |
const { docs, paginationData } = await this.ingredientsService.search(
|
102 |
query,
|
103 |
paginationQuery,
|
src/modules/users/modules/meal-plans/controller/meal-plans.controller.ts
CHANGED
@@ -36,7 +36,7 @@ export class UsersMealPlansController extends BaseController {
|
|
36 |
list = async (req: Request, res: Response) => {
|
37 |
const paginationQuery = parsePaginationQuery(req.query);
|
38 |
const { docs, paginationData } = await this.mealPlansService.list(
|
39 |
-
{},
|
40 |
paginationQuery
|
41 |
);
|
42 |
|
|
|
36 |
list = async (req: Request, res: Response) => {
|
37 |
const paginationQuery = parsePaginationQuery(req.query);
|
38 |
const { docs, paginationData } = await this.mealPlansService.list(
|
39 |
+
{ isDeleted: false },
|
40 |
paginationQuery
|
41 |
);
|
42 |
|
src/modules/users/modules/meals/controller/meals.controller.ts
CHANGED
@@ -41,7 +41,7 @@ export class UsersMealsController extends BaseController {
|
|
41 |
list = async (req: Request, res: Response) => {
|
42 |
const paginationQuery = parsePaginationQuery(req.query);
|
43 |
const { docs, paginationData } = await this.mealsService.list(
|
44 |
-
{},
|
45 |
paginationQuery,
|
46 |
{
|
47 |
populateArray: [
|
|
|
41 |
list = async (req: Request, res: Response) => {
|
42 |
const paginationQuery = parsePaginationQuery(req.query);
|
43 |
const { docs, paginationData } = await this.mealsService.list(
|
44 |
+
{ isDeleted: false },
|
45 |
paginationQuery,
|
46 |
{
|
47 |
populateArray: [
|
src/modules/users/modules/templates/controllers/templates.controller.ts
CHANGED
@@ -101,7 +101,7 @@ export class templateController extends BaseController {
|
|
101 |
@SwaggerSummary("Create custom plan")
|
102 |
@SwaggerDescription("Create a new custom plan")
|
103 |
create = async (req: userRequest, res: Response) => {
|
104 |
-
const data = await this.templatesService.
|
105 |
return JsonResponse.success(
|
106 |
{
|
107 |
status: 201,
|
|
|
101 |
@SwaggerSummary("Create custom plan")
|
102 |
@SwaggerDescription("Create a new custom plan")
|
103 |
create = async (req: userRequest, res: Response) => {
|
104 |
+
const data = await this.templatesService.createForUser(req.body);
|
105 |
return JsonResponse.success(
|
106 |
{
|
107 |
status: 201,
|
src/modules/users/modules/templates/services/templates.service.ts
CHANGED
@@ -1,6 +1,16 @@
|
|
1 |
import { Template } from "@common/models/template.model";
|
|
|
2 |
import { CrudService } from "@lib/services/crud.service";
|
3 |
|
|
|
4 |
export class TemplateService extends CrudService(Template) {
|
5 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6 |
}
|
|
|
1 |
import { Template } from "@common/models/template.model";
|
2 |
+
import { HttpError } from "@lib/error-handling/http-error";
|
3 |
import { CrudService } from "@lib/services/crud.service";
|
4 |
|
5 |
+
|
6 |
export class TemplateService extends CrudService(Template) {
|
7 |
+
|
8 |
+
async createForUser(createParams: any) {
|
9 |
+
|
10 |
+
let template = await this.model.findOne({ name: createParams.name, user: createParams.user});
|
11 |
+
if (template) {
|
12 |
+
throw new HttpError(400, "template already exists");
|
13 |
+
}
|
14 |
+
return this.model.create(createParams);
|
15 |
+
}
|
16 |
}
|
src/modules/users/modules/workouts/controllers/workouts.controller.ts
CHANGED
@@ -40,9 +40,9 @@ export class UsersWorkoutController extends BaseController {
|
|
40 |
})
|
41 |
list = async (req: IUserRequest, res: Response): Promise<Response> => {
|
42 |
const paginationQuery = parsePaginationQuery(req.query);
|
43 |
-
|
44 |
let filterName = req.query.filterName, filterVal = req.query.filterVal;
|
45 |
-
let filter = {};
|
46 |
|
47 |
if (filterName && filterVal) {
|
48 |
filter[`${filterName}`] = filterVal;
|
@@ -68,7 +68,7 @@ export class UsersWorkoutController extends BaseController {
|
|
68 |
@SwaggerDescription("Get a single workout")
|
69 |
get = async (req: Request, res: Response): Promise<Response> => {
|
70 |
const data = await this.workoutsService.findOneOrFail(
|
71 |
-
{ _id: req.params.id },
|
72 |
{
|
73 |
populateArray: [
|
74 |
{ path: "template_weeks.days.exercises", select: "name media reps sets" },
|
|
|
40 |
})
|
41 |
list = async (req: IUserRequest, res: Response): Promise<Response> => {
|
42 |
const paginationQuery = parsePaginationQuery(req.query);
|
43 |
+
|
44 |
let filterName = req.query.filterName, filterVal = req.query.filterVal;
|
45 |
+
let filter = { isDeleted: false };
|
46 |
|
47 |
if (filterName && filterVal) {
|
48 |
filter[`${filterName}`] = filterVal;
|
|
|
68 |
@SwaggerDescription("Get a single workout")
|
69 |
get = async (req: Request, res: Response): Promise<Response> => {
|
70 |
const data = await this.workoutsService.findOneOrFail(
|
71 |
+
{ _id: req.params.id, isDeleted: false },
|
72 |
{
|
73 |
populateArray: [
|
74 |
{ path: "template_weeks.days.exercises", select: "name media reps sets" },
|
src/modules/users/modules/workouts/services/workouts.service.ts
CHANGED
@@ -6,7 +6,6 @@ import { CrudService } from "@lib/services/crud.service";
|
|
6 |
import { calcAge } from "@lib/utils/age";
|
7 |
import { ExerciseService } from "../../exercises/services/exercises.service";
|
8 |
import { UserRegisteredWorkoutsService } from "../../user-registered-workouts/services/user-registered-workouts.service";
|
9 |
-
import { v4 as uuidv4 } from 'uuid';
|
10 |
|
11 |
export class WorkoutService extends CrudService(Workout) {
|
12 |
private exerciseService = new ExerciseService();
|
@@ -48,18 +47,26 @@ export class WorkoutService extends CrudService(Workout) {
|
|
48 |
hour12: false
|
49 |
});
|
50 |
const milliseconds = today.getMilliseconds();
|
51 |
-
|
52 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
const workout = await this.create({
|
54 |
aiGenerated: true,
|
55 |
-
name: `AI Generated Workout (${user.preferences.fitness_goal} - ${user.fitness_level}) - ${todayDate} ${currentTime}.${milliseconds}
|
56 |
description: `This AI-generated workout plan, created on ${todayDate} at ${currentTime}.${milliseconds}, is tailored for your ${user.fitness_level.toLowerCase()} fitness level and ${user.preferences.fitness_goal.toLowerCase()} goal. It is designed to be performed ${user.preferences.workout_place === WorkoutPlace.GYM ? "at the gym" : "at home"} using your preferred equipment.`,
|
57 |
type: "AI Generated",
|
58 |
created_by: user._id,
|
59 |
image: "https://placehold.co/300x400",
|
60 |
fitness_level: user.fitness_level,
|
61 |
fitness_goal: user.preferences.fitness_goal,
|
62 |
-
place:
|
63 |
min_per_day: 30,
|
64 |
total_number_days: pworkout.flat().length,
|
65 |
template_weeks: weeks.map((week, i) => ({
|
|
|
6 |
import { calcAge } from "@lib/utils/age";
|
7 |
import { ExerciseService } from "../../exercises/services/exercises.service";
|
8 |
import { UserRegisteredWorkoutsService } from "../../user-registered-workouts/services/user-registered-workouts.service";
|
|
|
9 |
|
10 |
export class WorkoutService extends CrudService(Workout) {
|
11 |
private exerciseService = new ExerciseService();
|
|
|
47 |
hour12: false
|
48 |
});
|
49 |
const milliseconds = today.getMilliseconds();
|
50 |
+
|
51 |
+
let place = []
|
52 |
+
|
53 |
+
if (user.preferences.workout_place === WorkoutPlace.BOTH) {
|
54 |
+
place = [WorkoutPlace.GYM, WorkoutPlace.HOME]
|
55 |
+
}
|
56 |
+
else {
|
57 |
+
place = [user.preferences.workout_place]
|
58 |
+
}
|
59 |
+
|
60 |
const workout = await this.create({
|
61 |
aiGenerated: true,
|
62 |
+
name: `AI Generated Workout (${user.preferences.fitness_goal} - ${user.fitness_level}) - ${todayDate} ${currentTime}.${milliseconds}`,
|
63 |
description: `This AI-generated workout plan, created on ${todayDate} at ${currentTime}.${milliseconds}, is tailored for your ${user.fitness_level.toLowerCase()} fitness level and ${user.preferences.fitness_goal.toLowerCase()} goal. It is designed to be performed ${user.preferences.workout_place === WorkoutPlace.GYM ? "at the gym" : "at home"} using your preferred equipment.`,
|
64 |
type: "AI Generated",
|
65 |
created_by: user._id,
|
66 |
image: "https://placehold.co/300x400",
|
67 |
fitness_level: user.fitness_level,
|
68 |
fitness_goal: user.preferences.fitness_goal,
|
69 |
+
place: place,
|
70 |
min_per_day: 30,
|
71 |
total_number_days: pworkout.flat().length,
|
72 |
template_weeks: weeks.map((week, i) => ({
|
src/resources/exercises.csv
CHANGED
The diff for this file is too large to render.
See raw diff
|
|
src/seeder/helpers/load-exercises-dataset.ts
CHANGED
@@ -21,6 +21,7 @@ export interface IExerciseCSV {
|
|
21 |
bodyPart: EBodyPart;
|
22 |
type: EType;
|
23 |
sets: number;
|
|
|
24 |
}
|
25 |
|
26 |
|
|
|
21 |
bodyPart: EBodyPart;
|
22 |
type: EType;
|
23 |
sets: number;
|
24 |
+
instructions: string;
|
25 |
}
|
26 |
|
27 |
|
src/seeder/seeders/3-muscles.seeder.ts
CHANGED
@@ -4,6 +4,6 @@ import { seederWrapper } from "seeder/helpers/seeder-wrapper";
|
|
4 |
|
5 |
export default seederWrapper(Muscle, async () => {
|
6 |
await Promise.all(dbStore.musclesDataset.map(async function (m) {
|
7 |
-
return Muscle.create({ name: m, image: `https://placehold.co/600x400
|
8 |
}))
|
9 |
})
|
|
|
4 |
|
5 |
export default seederWrapper(Muscle, async () => {
|
6 |
await Promise.all(dbStore.musclesDataset.map(async function (m) {
|
7 |
+
return Muscle.create({ name: m, image: `https://placehold.co/600x400`, isDeleted: false})
|
8 |
}))
|
9 |
})
|
src/seeder/seeders/4-equipments.seeder.ts
CHANGED
@@ -3,6 +3,6 @@ import { dbStore } from "seeder/helpers/db-store";
|
|
3 |
import { seederWrapper } from "seeder/helpers/seeder-wrapper";
|
4 |
|
5 |
export default seederWrapper(Equipment, async () => { await Promise.all(dbStore.equipmentsDataset.map(async function (e) {
|
6 |
-
return Equipment.create({ name: e, image: `https://placehold.co/600x400
|
7 |
}))
|
8 |
})
|
|
|
3 |
import { seederWrapper } from "seeder/helpers/seeder-wrapper";
|
4 |
|
5 |
export default seederWrapper(Equipment, async () => { await Promise.all(dbStore.equipmentsDataset.map(async function (e) {
|
6 |
+
return Equipment.create({ name: e, image: `https://placehold.co/600x400`, isDeleted: false})
|
7 |
}))
|
8 |
})
|
src/seeder/seeders/5-exercises.seeder.ts
CHANGED
@@ -8,39 +8,55 @@ import { seederWrapper } from "seeder/helpers/seeder-wrapper";
|
|
8 |
|
9 |
export default seederWrapper(Exercise, async () => {
|
10 |
console.log('preparing exercises data... (this may take a while)');
|
|
|
11 |
const data = await Promise.all(dbStore.excerisesDataset.map(async function (e: IExerciseCSV) {
|
12 |
return {
|
13 |
name: e.name,
|
14 |
category: e.bodyPart,
|
15 |
exerciseType: e.type,
|
16 |
...(
|
17 |
-
e.type === ExerciseType.WEIGHT &&
|
18 |
{
|
19 |
-
reps: Math.floor(Math.random() * 10),
|
20 |
sets: e.sets,
|
21 |
duration: 0,
|
22 |
-
}
|
23 |
||
|
24 |
{
|
25 |
-
duration:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
}
|
27 |
),
|
28 |
-
expectedDurationRange: {
|
29 |
-
min: Math.floor(Math.random() * 10),
|
30 |
-
max: 10 + Math.floor(Math.random() * 10),
|
31 |
-
},
|
32 |
-
instructions: "Do this exercise",
|
33 |
benefits: "You will get stronger",
|
34 |
targetMuscles: {
|
35 |
primary: (await Muscle.findOne({ name: e.target }).exec())._id,
|
36 |
secondary: (await Muscle.findOne({ name: e.target }).exec())._id,
|
37 |
},
|
38 |
-
equipments: [(await Equipment.findOne({name: e.equipment}).exec())._id],
|
39 |
coverImage: "https://placehold.co/600x400",
|
40 |
media: {
|
41 |
type: 'image',
|
42 |
url: "https://placehold.co/600x400",
|
43 |
-
}
|
|
|
44 |
} satisfies IExercise;
|
45 |
}))
|
46 |
console.log('inserting exercises...');
|
|
|
8 |
|
9 |
export default seederWrapper(Exercise, async () => {
|
10 |
console.log('preparing exercises data... (this may take a while)');
|
11 |
+
let randomDuration = 30 + Math.floor(Math.random() * 60);
|
12 |
const data = await Promise.all(dbStore.excerisesDataset.map(async function (e: IExerciseCSV) {
|
13 |
return {
|
14 |
name: e.name,
|
15 |
category: e.bodyPart,
|
16 |
exerciseType: e.type,
|
17 |
...(
|
18 |
+
e.type === ExerciseType.WEIGHT &&
|
19 |
{
|
20 |
+
reps: 10 + Math.floor(Math.random() * 10),
|
21 |
sets: e.sets,
|
22 |
duration: 0,
|
23 |
+
}
|
24 |
||
|
25 |
{
|
26 |
+
duration: randomDuration,
|
27 |
+
}
|
28 |
+
),
|
29 |
+
|
30 |
+
expectedDurationRange: (e.type === ExerciseType.WEIGHT && {
|
31 |
+
min: 10 + Math.floor(Math.random() * 10),
|
32 |
+
max: 30 + Math.floor(Math.random() * 30),
|
33 |
+
} ||
|
34 |
+
{
|
35 |
+
min: randomDuration,
|
36 |
+
max: randomDuration,
|
37 |
+
}),
|
38 |
+
...(
|
39 |
+
e.instructions === "" &&
|
40 |
+
{
|
41 |
+
instructions: "Do this exercise",
|
42 |
+
}
|
43 |
+
||
|
44 |
+
{
|
45 |
+
instructions: e.instructions,
|
46 |
}
|
47 |
),
|
|
|
|
|
|
|
|
|
|
|
48 |
benefits: "You will get stronger",
|
49 |
targetMuscles: {
|
50 |
primary: (await Muscle.findOne({ name: e.target }).exec())._id,
|
51 |
secondary: (await Muscle.findOne({ name: e.target }).exec())._id,
|
52 |
},
|
53 |
+
equipments: [(await Equipment.findOne({ name: e.equipment }).exec())._id],
|
54 |
coverImage: "https://placehold.co/600x400",
|
55 |
media: {
|
56 |
type: 'image',
|
57 |
url: "https://placehold.co/600x400",
|
58 |
+
},
|
59 |
+
isDeleted: false,
|
60 |
} satisfies IExercise;
|
61 |
}))
|
62 |
console.log('inserting exercises...');
|
src/seeder/seeders/6-workout.seeder.ts
CHANGED
@@ -85,7 +85,8 @@ export default seederWrapper(Workout, async () => {
|
|
85 |
},
|
86 |
]
|
87 |
}
|
88 |
-
]
|
|
|
89 |
};
|
90 |
await Workout.create(o);
|
91 |
}))
|
|
|
85 |
},
|
86 |
]
|
87 |
}
|
88 |
+
],
|
89 |
+
isDeleted: false,
|
90 |
};
|
91 |
await Workout.create(o);
|
92 |
}))
|
src/seeder/seeders/8-ingredients.seeder.ts
CHANGED
@@ -14,6 +14,7 @@ export default seederWrapper(Ingredient, async () => {
|
|
14 |
carbs: faker.number.int({ min: 10, max: 20 }),
|
15 |
proteins: faker.number.int({ min: 10, max: 20 }),
|
16 |
fats: faker.number.int({ min: 10, max: 20 }),
|
|
|
17 |
} satisfies Partial<IIngredient>)));
|
18 |
|
19 |
await Ingredient.insertMany(data);
|
|
|
14 |
carbs: faker.number.int({ min: 10, max: 20 }),
|
15 |
proteins: faker.number.int({ min: 10, max: 20 }),
|
16 |
fats: faker.number.int({ min: 10, max: 20 }),
|
17 |
+
isDeleted: false,
|
18 |
} satisfies Partial<IIngredient>)));
|
19 |
|
20 |
await Ingredient.insertMany(data);
|
src/seeder/seeders/9-meals.seeder.ts
CHANGED
@@ -29,6 +29,7 @@ export default seederWrapper(Meal, async () => {
|
|
29 |
proteins: mealJson.ProteinContent,
|
30 |
fats: mealJson.FatContent,
|
31 |
type: mealJson.Category?.toLowerCase() as MealType,
|
|
|
32 |
} satisfies Partial<IMeal>)));
|
33 |
|
34 |
console.log('inserting meals...')
|
|
|
29 |
proteins: mealJson.ProteinContent,
|
30 |
fats: mealJson.FatContent,
|
31 |
type: mealJson.Category?.toLowerCase() as MealType,
|
32 |
+
isDeleted: false,
|
33 |
} satisfies Partial<IMeal>)));
|
34 |
|
35 |
console.log('inserting meals...')
|
src/seeder/seeders/{10-mealPlan.seeder.ts → 99-mealPlan.seeder.ts}
RENAMED
@@ -50,6 +50,7 @@ export default seederWrapper(MealPlan, async () => {
|
|
50 |
categorizedMeals['snacks'][i],
|
51 |
],
|
52 |
})),
|
|
|
53 |
}
|
54 |
|
55 |
await MealPlan.create(o);
|
|
|
50 |
categorizedMeals['snacks'][i],
|
51 |
],
|
52 |
})),
|
53 |
+
isDeleted: false,
|
54 |
}
|
55 |
|
56 |
await MealPlan.create(o);
|
src/seeder/seeders/{11-mymealPlan.seeder.ts → 999-mymealPlan.seeder.ts}
RENAMED
File without changes
|