diff --git a/package-lock.json b/package-lock.json index 11481105..50abb80a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,11 +12,8 @@ "@nestjs/common": "^11.0.1", "@nestjs/core": "^11.0.1", "@nestjs/platform-express": "^11.0.1", -<<<<<<< HEAD -======= "class-transformer": "^0.5.1", "class-validator": "^0.14.2", ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "reflect-metadata": "^0.2.2", "rxjs": "^7.8.1" }, @@ -37,11 +34,8 @@ "eslint-plugin-prettier": "^5.5.4", "globals": "^16.0.0", "jest": "^30.0.0", -<<<<<<< HEAD "prettier": "^3.4.2", -======= "prettier": "^3.6.2", ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "source-map-support": "^0.5.21", "supertest": "^7.0.0", "ts-jest": "^29.2.5", @@ -2060,7 +2054,6 @@ "node": ">=8" } }, -<<<<<<< HEAD "node_modules/@napi-rs/nice": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@napi-rs/nice/-/nice-1.1.1.tgz", @@ -2422,7 +2415,6 @@ "dev": true, "license": "MIT", "dependencies": { -======= "node_modules/@napi-rs/wasm-runtime": { "version": "0.2.12", "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", @@ -2443,7 +2435,6 @@ "dev": true, "license": "MIT", "dependencies": { ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "@angular-devkit/core": "19.2.15", "@angular-devkit/schematics": "19.2.15", "@angular-devkit/schematics-cli": "19.2.15", @@ -2555,7 +2546,6 @@ "node": ">=4.0" } }, -<<<<<<< HEAD "node_modules/@nestjs/cli/node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", @@ -2566,8 +2556,6 @@ "node": ">=0.8.x" } }, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/@nestjs/cli/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -2712,8 +2700,6 @@ } } }, -<<<<<<< HEAD -======= "node_modules/@nestjs/config": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@nestjs/config/-/config-4.0.2.tgz", @@ -2729,7 +2715,6 @@ "rxjs": "^7.1.0" } }, ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/@nestjs/core": { "version": "11.1.6", "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-11.1.6.tgz", @@ -2942,7 +2927,6 @@ "version": "0.34.41", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.41.tgz", "integrity": "sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==", -<<<<<<< HEAD "dev": true, "license": "MIT" }, @@ -2960,10 +2944,8 @@ "funding": { "url": "https://github.com/sindresorhus/is?sponsor=1" } -======= "dev": true, "license": "MIT" ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f }, "node_modules/@sinonjs/commons": { "version": "3.0.1", @@ -2983,7 +2965,6 @@ "license": "BSD-3-Clause", "dependencies": { "@sinonjs/commons": "^3.0.1" -<<<<<<< HEAD } }, "node_modules/@swc/cli": { @@ -3316,24 +3297,21 @@ "optional": true, "peer": true, "dependencies": { - "@swc/counter": "^0.1.3" + "type-detect": "4.0.8" } }, - "node_modules/@szmarczak/http-timer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz", - "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==", + "node_modules/@sinonjs/fake-timers": { + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz", + "integrity": "sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==", "dev": true, - "license": "MIT", - "optional": true, - "peer": true, + "license": "BSD-3-Clause", "dependencies": { + "@sinonjs/commons": "^3.0.1" "defer-to-connect": "^2.0.1" }, "engines": { "node": ">=14.16" -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f } }, "node_modules/@tokenizer/inflate": { @@ -3526,7 +3504,6 @@ "@types/send": "*" } }, -<<<<<<< HEAD "node_modules/@types/http-cache-semantics": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", @@ -3536,8 +3513,6 @@ "optional": true, "peer": true }, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/@types/http-errors": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", @@ -3686,13 +3661,10 @@ "version": "13.15.3", "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.15.3.tgz", "integrity": "sha512-7bcUmDyS6PN3EuD9SlGGOxM77F8WLVsrwkxyWxKnxzmXoequ6c7741QBrANq6htVRGOITJ7z72mTP6Z4XyuG+Q==", -<<<<<<< HEAD "license": "MIT", "optional": true, "peer": true -======= "license": "MIT" ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f }, "node_modules/@types/yargs": { "version": "17.0.33", @@ -4406,7 +4378,6 @@ "@xtuc/long": "4.2.2" } }, -<<<<<<< HEAD "node_modules/@xhmikosr/archive-type": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/@xhmikosr/archive-type/-/archive-type-7.1.0.tgz", @@ -4710,8 +4681,6 @@ "node": "^14.14.0 || >=16.0.0" } }, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -4954,7 +4923,6 @@ "resolved": "https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz", "integrity": "sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw==", "license": "MIT" -<<<<<<< HEAD }, "node_modules/arch": { "version": "3.0.0", @@ -4978,8 +4946,6 @@ "license": "MIT", "optional": true, "peer": true -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f }, "node_modules/arg": { "version": "4.1.3", @@ -5015,7 +4981,6 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "dev": true, "license": "MIT" -<<<<<<< HEAD }, "node_modules/b4a": { "version": "1.7.2", @@ -5033,8 +4998,6 @@ "optional": true } } -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f }, "node_modules/babel-jest": { "version": "30.1.2", @@ -5141,7 +5104,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", -<<<<<<< HEAD "dev": true, "license": "MIT" }, @@ -5153,10 +5115,8 @@ "license": "Apache-2.0", "optional": true, "peer": true -======= "dev": true, "license": "MIT" ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f }, "node_modules/base64-js": { "version": "1.5.1", @@ -5180,20 +5140,16 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { -<<<<<<< HEAD "version": "2.8.6", "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.6.tgz", "integrity": "sha512-wrH5NNqren/QMtKUEEJf7z86YjfqW/2uw3IL3/xpqZUC95SSVIFXYQeeGjL6FT/X68IROu6RMehZQS5foy2BXw==", -======= "version": "2.8.7", "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.7.tgz", "integrity": "sha512-bxxN2M3a4d1CRoQC//IqsR5XrLh0IJ8TCv2x6Y9N0nckNz/rTjZB3//GGscZziZOxmjP55rzxg/ze7usFI9FqQ==", ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "dev": true, "license": "Apache-2.0", "bin": { "baseline-browser-mapping": "dist/cli.js" -<<<<<<< HEAD } }, "node_modules/bin-version": { @@ -5233,8 +5189,6 @@ }, "funding": { "url": "https://github.com/sponsors/sindresorhus" -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f } }, "node_modules/bl": { @@ -5249,9 +5203,7 @@ "readable-stream": "^3.4.0" } }, -<<<<<<< HEAD "node_modules/bl/node_modules/buffer": { -======= "node_modules/body-parser": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.0.tgz", @@ -5366,7 +5318,6 @@ } }, "node_modules/buffer": { ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", @@ -5391,7 +5342,6 @@ "ieee754": "^1.1.13" } }, -<<<<<<< HEAD "node_modules/body-parser": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.0.tgz", @@ -5517,8 +5467,6 @@ "node": "*" } }, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -5545,7 +5493,6 @@ "node": ">= 0.8" } }, -<<<<<<< HEAD "node_modules/cacheable-lookup": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", @@ -5579,8 +5526,6 @@ "node": ">=14.16" } }, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/call-bind-apply-helpers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", @@ -5738,24 +5683,18 @@ "version": "0.5.1", "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.5.1.tgz", "integrity": "sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==", -<<<<<<< HEAD "license": "MIT", "optional": true, "peer": true -======= "license": "MIT" ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f }, "node_modules/class-validator": { "version": "0.14.2", "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.14.2.tgz", "integrity": "sha512-3kMVRF2io8N8pY1IFIXlho9r8IPUUIfHe2hYVtiebvAzU2XeQFXTv+XI4WX+TnXmtwXMDcjngcpkiPM0O9PvLw==", "license": "MIT", -<<<<<<< HEAD "optional": true, "peer": true, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "dependencies": { "@types/validator": "^13.11.8", "libphonenumber-js": "^1.11.1", @@ -5870,8 +5809,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, -<<<<<<< HEAD -======= "node_modules/clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", @@ -5882,7 +5819,6 @@ "node": ">=0.8" } }, ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -6003,7 +5939,6 @@ } }, "node_modules/content-disposition": { -<<<<<<< HEAD "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", @@ -6011,12 +5946,10 @@ "license": "MIT", "optional": true, "peer": true, -======= "version": "1.0.0", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz", "integrity": "sha512-Au9nRL8VNUut/XSzbQA38+M78dzP4D+eqg3gfJHMIHHYa3bg067xj1KxMUWj+VULbiZMowKngFFbKczUrNJ1mg==", "license": "MIT", ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "dependencies": { "safe-buffer": "5.2.1" }, @@ -6151,7 +6084,6 @@ } } }, -<<<<<<< HEAD "node_modules/decompress-response": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", @@ -6185,8 +6117,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/dedent": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.0.tgz", @@ -6220,7 +6150,6 @@ } }, "node_modules/defaults": { -<<<<<<< HEAD "version": "2.0.2", "resolved": "https://registry.npmjs.org/defaults/-/defaults-2.0.2.tgz", "integrity": "sha512-cuIw0PImdp76AOfgkjbW4VhQODRmNNcKR73vdCH5cLd/ifj7aamfoXvYgfGkEAjNJZ3ozMIy9Gu2LutUkGEPbA==", @@ -6230,7 +6159,6 @@ "peer": true, "engines": { "node": ">=16" -======= "version": "1.0.4", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", @@ -6238,13 +6166,11 @@ "license": "MIT", "dependencies": { "clone": "^1.0.2" ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, -<<<<<<< HEAD "node_modules/defer-to-connect": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", @@ -6257,8 +6183,6 @@ "node": ">=10" } }, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -6309,8 +6233,6 @@ "node": ">=0.3.1" } }, -<<<<<<< HEAD -======= "node_modules/dotenv": { "version": "16.4.7", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", @@ -6338,7 +6260,6 @@ "url": "https://dotenvx.com" } }, ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -6733,7 +6654,6 @@ "node": ">= 0.6" } }, -<<<<<<< HEAD "node_modules/events-universal": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz", @@ -6744,7 +6664,6 @@ "peer": true, "dependencies": { "bare-events": "^2.7.0" -======= "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", @@ -6753,7 +6672,6 @@ "license": "MIT", "engines": { "node": ">=0.8.x" ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f } }, "node_modules/execa": { @@ -6857,7 +6775,6 @@ "url": "https://opencollective.com/express" } }, -<<<<<<< HEAD "node_modules/express/node_modules/content-disposition": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.0.0.tgz", @@ -6901,8 +6818,6 @@ "node": ">=4" } }, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -6916,7 +6831,6 @@ "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", "dev": true, "license": "Apache-2.0" -<<<<<<< HEAD }, "node_modules/fast-fifo": { "version": "1.3.2", @@ -6926,8 +6840,6 @@ "license": "MIT", "optional": true, "peer": true -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f }, "node_modules/fast-glob": { "version": "3.3.3", @@ -7053,7 +6965,6 @@ "url": "https://github.com/sindresorhus/file-type?sponsor=1" } }, -<<<<<<< HEAD "node_modules/filename-reserved-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-3.0.0.tgz", @@ -7087,8 +6998,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -7136,7 +7045,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, -<<<<<<< HEAD "node_modules/find-versions": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-5.1.0.tgz", @@ -7155,8 +7063,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/flat-cache": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", @@ -7240,7 +7146,6 @@ "node": ">= 6" } }, -<<<<<<< HEAD "node_modules/form-data-encoder": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz", @@ -7253,8 +7158,6 @@ "node": ">= 14.17" } }, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/form-data/node_modules/mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", @@ -7532,7 +7435,6 @@ "url": "https://github.com/sponsors/ljharb" } }, -<<<<<<< HEAD "node_modules/got": { "version": "13.0.0", "resolved": "https://registry.npmjs.org/got/-/got-13.0.0.tgz", @@ -7561,8 +7463,6 @@ "url": "https://github.com/sindresorhus/got?sponsor=1" } }, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -7675,7 +7575,6 @@ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true, "license": "MIT" -<<<<<<< HEAD }, "node_modules/http-cache-semantics": { "version": "4.2.0", @@ -7685,8 +7584,6 @@ "license": "BSD-2-Clause", "optional": true, "peer": true -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f }, "node_modules/http-errors": { "version": "2.0.0", @@ -7713,7 +7610,6 @@ "node": ">= 0.8" } }, -<<<<<<< HEAD "node_modules/http2-wrapper": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz", @@ -7730,8 +7626,6 @@ "node": ">=10.19.0" } }, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -7759,12 +7653,10 @@ } }, "node_modules/ieee754": { -<<<<<<< HEAD "version": "1.1.13", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", "dev": true, -======= "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", @@ -7782,7 +7674,6 @@ "url": "https://feross.org/support" } ], ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "license": "BSD-3-Clause" }, "node_modules/ignore": { @@ -7859,7 +7750,6 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "license": "ISC" -<<<<<<< HEAD }, "node_modules/inspect-with-kind": { "version": "1.0.5", @@ -7872,8 +7762,6 @@ "dependencies": { "kind-of": "^6.0.2" } -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f }, "node_modules/ipaddr.js": { "version": "1.9.1", @@ -7954,21 +7842,16 @@ "node": ">=0.12.0" } }, -<<<<<<< HEAD "node_modules/is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", "dev": true, "license": "MIT", - "optional": true, - "peer": true, "engines": { - "node": ">=0.10.0" + "node": ">=0.12.0" } }, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/is-promise": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz", @@ -8983,7 +8866,6 @@ "json-buffer": "3.0.1" } }, -<<<<<<< HEAD "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -8996,8 +8878,6 @@ "node": ">=0.10.0" } }, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -9026,13 +8906,10 @@ "version": "1.12.22", "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.12.22.tgz", "integrity": "sha512-nzdkDyqlcLV754o1RrOJxh8kycG+63odJVUqnK4dxhw7buNkdTqJc/a/CE0h599dTJgFbzvr6GEOemFBSBryAA==", -<<<<<<< HEAD "license": "MIT", "optional": true, "peer": true -======= "license": "MIT" ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f }, "node_modules/lines-and-columns": { "version": "1.2.4", @@ -9090,10 +8967,7 @@ "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", -<<<<<<< HEAD "dev": true, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "license": "MIT" }, "node_modules/lodash.memoize": { @@ -9127,7 +9001,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, -<<<<<<< HEAD "node_modules/lowercase-keys": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", @@ -9143,8 +9016,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -9339,7 +9210,6 @@ "node": ">=6" } }, -<<<<<<< HEAD "node_modules/mimic-response": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", @@ -9355,8 +9225,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -9558,7 +9426,6 @@ "node": ">=0.10.0" } }, -<<<<<<< HEAD "node_modules/normalize-url": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.1.0.tgz", @@ -9574,8 +9441,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -9712,7 +9577,6 @@ "node": ">=8" } }, -<<<<<<< HEAD "node_modules/p-cancelable": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", @@ -9725,8 +9589,6 @@ "node": ">=12.20" } }, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -9893,7 +9755,6 @@ "node": ">=8" } }, -<<<<<<< HEAD "node_modules/pend": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", @@ -9903,8 +9764,6 @@ "optional": true, "peer": true }, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -9935,7 +9794,6 @@ "node": ">= 6" } }, -<<<<<<< HEAD "node_modules/piscina": { "version": "4.9.2", "resolved": "https://registry.npmjs.org/piscina/-/piscina-4.9.2.tgz", @@ -9948,8 +9806,6 @@ "@napi-rs/nice": "^1.0.1" } }, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -10171,7 +10027,6 @@ } ], "license": "MIT" -<<<<<<< HEAD }, "node_modules/quick-lru": { "version": "5.1.1", @@ -10187,8 +10042,6 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f }, "node_modules/randombytes": { "version": "2.1.0", @@ -10295,7 +10148,6 @@ "node": ">=0.10.0" } }, -<<<<<<< HEAD "node_modules/resolve-alpn": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", @@ -10305,8 +10157,6 @@ "optional": true, "peer": true }, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/resolve-cwd": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", @@ -10340,7 +10190,6 @@ "node": ">=4" } }, -<<<<<<< HEAD "node_modules/responselike": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", @@ -10359,8 +10208,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", @@ -10487,7 +10334,6 @@ "url": "https://opencollective.com/webpack" } }, -<<<<<<< HEAD "node_modules/seek-bzip": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-2.0.0.tgz", @@ -10516,8 +10362,6 @@ "node": ">= 6" } }, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/semver": { "version": "7.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", @@ -10531,7 +10375,6 @@ "node": ">=10" } }, -<<<<<<< HEAD "node_modules/semver-regex": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-4.0.5.tgz", @@ -10565,8 +10408,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/send": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/send/-/send-1.2.0.tgz", @@ -10738,7 +10579,6 @@ "node": ">=8" } }, -<<<<<<< HEAD "node_modules/sort-keys": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", @@ -10769,8 +10609,6 @@ "node": ">=0.10.0" } }, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/source-map": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", @@ -10849,7 +10687,6 @@ "node": ">=10.0.0" } }, -<<<<<<< HEAD "node_modules/streamx": { "version": "2.23.0", "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.23.0.tgz", @@ -10864,8 +10701,6 @@ "text-decoder": "^1.1.0" } }, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -11039,7 +10874,6 @@ "node": ">=8" } }, -<<<<<<< HEAD "node_modules/strip-dirs": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-3.0.0.tgz", @@ -11053,8 +10887,6 @@ "is-plain-obj": "^1.1.0" } }, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", @@ -11180,7 +11012,6 @@ "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" -<<<<<<< HEAD } }, "node_modules/tar-stream": { @@ -11195,8 +11026,6 @@ "b4a": "^1.6.4", "fast-fifo": "^1.2.0", "streamx": "^2.15.0" -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f } }, "node_modules/terser": { @@ -11403,7 +11232,6 @@ "url": "https://github.com/sponsors/isaacs" } }, -<<<<<<< HEAD "node_modules/text-decoder": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", @@ -11425,8 +11253,6 @@ "optional": true, "peer": true }, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", @@ -11827,7 +11653,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, -<<<<<<< HEAD "node_modules/unbzip2-stream": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", @@ -11868,8 +11693,6 @@ "ieee754": "^1.1.13" } }, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/undici-types": { "version": "6.21.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", @@ -12005,11 +11828,8 @@ "resolved": "https://registry.npmjs.org/validator/-/validator-13.15.15.tgz", "integrity": "sha512-BgWVbCI72aIQy937xbawcs+hrVaN/CZ2UwutgaJ36hGqRrLNM+f5LUT/YPRbo8IV/ASeFzXszezV+y2+rq3l8A==", "license": "MIT", -<<<<<<< HEAD "optional": true, "peer": true, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "engines": { "node": ">= 0.10" } @@ -12057,7 +11877,6 @@ "defaults": "^1.0.3" } }, -<<<<<<< HEAD "node_modules/wcwidth/node_modules/clone": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", @@ -12081,8 +11900,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, -======= ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "node_modules/webpack": { "version": "5.101.3", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.101.3.tgz", @@ -12477,7 +12294,6 @@ "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", -<<<<<<< HEAD "dev": true, "license": "ISC", "engines": { @@ -12496,10 +12312,8 @@ "buffer-crc32": "~0.2.3", "pend": "~1.2.0" }, -======= "dev": true, "license": "ISC", ->>>>>>> 2f6646665edc609a99d3db7751070822a67fd02f "engines": { "node": ">=12" } diff --git a/src/app.module.ts b/src/app.module.ts index 8c077c53..02173ad1 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -1,6 +1,8 @@ import { Module } from '@nestjs/common'; import { AppController } from './app.controller'; import { AppService } from './app.service'; +import { OrganizerController } from './organizer/organizer.controller'; +import { OrganizerService } from './organizer/organizer.service'; import { ConfigModule } from './config/config.module'; import { HealthModule } from './modules/health/health.module'; import { UsersModule } from './user/user.module'; @@ -23,7 +25,7 @@ import { ConfigService } from '@nestjs/config'; }), }), ], - providers: [AppService], - controllers: [AppController], + providers: [AppService, OrganizerService], + controllers: [AppController, OrganizerController], }) export class AppModule {} diff --git a/src/dto/event.dto.ts b/src/dto/event.dto.ts new file mode 100644 index 00000000..00aaeaeb --- /dev/null +++ b/src/dto/event.dto.ts @@ -0,0 +1,31 @@ +export interface Attendee { + id: string; + name: string; + email: string; + ticketId: string; + purchaseDate: Date; +} + +export interface EventStats { + ticketsSold: number; + ticketsRemaining: number; + totalRevenue: number; +} + +export interface Event { + id: string; + title: string; + description: string; + date: Date; + location: string; + organizerId: string; + totalTickets: number; + ticketPrice: number; + stats: EventStats; + attendees: Attendee[]; +} + +export interface OrganizerEventsResponse { + organizerId: string; + events: Event[]; +} diff --git a/src/organizer/organizer.controller.ts b/src/organizer/organizer.controller.ts new file mode 100644 index 00000000..814874b3 --- /dev/null +++ b/src/organizer/organizer.controller.ts @@ -0,0 +1,23 @@ +import { Controller, Get, Param, ForbiddenException } from '@nestjs/common'; +import { OrganizerService } from './organizer.service'; +import { OrganizerEventsResponse } from '../dto/event.dto'; + +@Controller('organizer') +export class OrganizerController { + constructor(private readonly organizerService: OrganizerService) {} + + @Get(':id/events') + async getOrganizerEvents( + @Param('id') organizerId: string, + ): Promise { + // In a real app, we'd get the current user from authentication context + // For now, we'll assume the organizerId is provided and check authorization + const currentUserId = organizerId; // This would come from JWT token or session + + if (currentUserId !== organizerId) { + throw new ForbiddenException('You can only access your own events'); + } + + return this.organizerService.getOrganizerEvents(organizerId); + } +} diff --git a/src/organizer/organizer.service.ts b/src/organizer/organizer.service.ts new file mode 100644 index 00000000..ef1ca853 --- /dev/null +++ b/src/organizer/organizer.service.ts @@ -0,0 +1,83 @@ +import { Injectable } from '@nestjs/common'; +import { + Event, + Attendee, + OrganizerEventsResponse, + EventStats, +} from '../dto/event.dto'; + +@Injectable() +export class OrganizerService { + // Mock data - in a real app, this would come from a database + private mockEvents: Event[] = [ + { + id: '1', + title: 'Tech Conference 2025', + description: 'Annual technology conference', + date: new Date('2025-10-15'), + location: 'San Francisco, CA', + organizerId: 'org1', + totalTickets: 500, + ticketPrice: 150, + stats: { + ticketsSold: 350, + ticketsRemaining: 150, + totalRevenue: 52500, + }, + attendees: [ + { + id: 'att1', + name: 'John Doe', + email: 'john@example.com', + ticketId: 'tkt1', + purchaseDate: new Date('2025-09-01'), + }, + { + id: 'att2', + name: 'Jane Smith', + email: 'jane@example.com', + ticketId: 'tkt2', + purchaseDate: new Date('2025-09-02'), + }, + ], + }, + { + id: '2', + title: 'Music Festival', + description: 'Summer music festival', + date: new Date('2025-07-20'), + location: 'Austin, TX', + organizerId: 'org1', + totalTickets: 1000, + ticketPrice: 100, + stats: { + ticketsSold: 800, + ticketsRemaining: 200, + totalRevenue: 80000, + }, + attendees: [ + { + id: 'att3', + name: 'Bob Johnson', + email: 'bob@example.com', + ticketId: 'tkt3', + purchaseDate: new Date('2025-08-15'), + }, + ], + }, + ]; + + async getOrganizerEvents( + organizerId: string, + ): Promise { + // In a real app, this would query the database + const events = this.mockEvents.filter( + (event) => event.organizerId === organizerId, + ); + + return { + organizerId, + events, + }; + } +}