@fiap-tech-challenge/shared-ftc 1.0.0 → 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/.github/workflows/publish.yml +31 -0
  2. package/dist/src/application/auth/auth.d.ts +7 -0
  3. package/dist/src/application/auth/auth.js +7 -0
  4. package/dist/src/application/auth/auth.js.map +1 -0
  5. package/dist/src/application/services/auth/auth.d.ts +7 -0
  6. package/dist/src/application/services/auth/auth.js +7 -0
  7. package/dist/src/application/services/auth/auth.js.map +1 -0
  8. package/dist/src/application/services/auth-service/auth-service.d.ts +7 -0
  9. package/dist/src/application/services/auth-service/auth-service.js +7 -0
  10. package/dist/src/application/services/auth-service/auth-service.js.map +1 -0
  11. package/dist/src/application/services/auth-service/auth.d.ts +7 -0
  12. package/dist/src/application/services/auth-service/auth.js +7 -0
  13. package/dist/src/application/services/auth-service/auth.js.map +1 -0
  14. package/dist/src/index.d.ts +7 -0
  15. package/dist/src/index.js +7 -0
  16. package/dist/src/index.js.map +1 -1
  17. package/dist/src/infra/services/auth/auth-dtos.d.ts +3 -0
  18. package/dist/src/infra/services/auth/auth-dtos.js +31 -0
  19. package/dist/src/infra/services/auth/auth-dtos.js.map +1 -0
  20. package/dist/src/infra/services/auth/auth.module.d.ts +2 -0
  21. package/dist/src/infra/services/auth/auth.module.js +34 -0
  22. package/dist/src/infra/services/auth/auth.module.js.map +1 -0
  23. package/dist/src/infra/services/auth/aws-lambda/aws-lamda.d.ts +8 -0
  24. package/dist/src/infra/services/auth/aws-lambda/aws-lamda.js +71 -0
  25. package/dist/src/infra/services/auth/aws-lambda/aws-lamda.js.map +1 -0
  26. package/dist/src/infra/services/auth/guards/auth.guard.d.ts +10 -0
  27. package/dist/src/infra/services/auth/guards/auth.guard.js +54 -0
  28. package/dist/src/infra/services/auth/guards/auth.guard.js.map +1 -0
  29. package/dist/src/infra/services/auth/guards/public.d.ts +2 -0
  30. package/dist/src/infra/services/auth/guards/public.js +8 -0
  31. package/dist/src/infra/services/auth/guards/public.js.map +1 -0
  32. package/dist/src/infra/services/auth/http-client/http-client-auth-service.d.ts +10 -0
  33. package/dist/src/infra/services/auth/http-client/http-client-auth-service.js +67 -0
  34. package/dist/src/infra/services/auth/http-client/http-client-auth-service.js.map +1 -0
  35. package/dist/src/infra/services/auth/token.service.d.ts +6 -0
  36. package/dist/src/infra/services/auth/token.service.js +34 -0
  37. package/dist/src/infra/services/auth/token.service.js.map +1 -0
  38. package/dist/src/infra/services/cart-service/mock/mock-cart-service.js +3 -3
  39. package/dist/src/infra/services/cart-service/mock/mock-cart-service.js.map +1 -1
  40. package/dist/src/infra/services/item-service/http-client/http-client.service.js +5 -5
  41. package/dist/src/infra/services/item-service/http-client/http-client.service.js.map +1 -1
  42. package/dist/tsconfig.tsbuildinfo +1 -1
  43. package/package.json +8 -4
@@ -0,0 +1,31 @@
1
+ name: Publish Package
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*'
7
+
8
+ permissions:
9
+ id-token: write # Required for OIDC
10
+ contents: read
11
+
12
+ jobs:
13
+ publish:
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+
18
+ - uses: actions/setup-node@v4
19
+ with:
20
+ node-version: '24'
21
+ registry-url: 'https://registry.npmjs.org'
22
+
23
+ - name: Setup pnpm
24
+ uses: pnpm/action-setup@v4.1.0
25
+ with:
26
+ version: latest
27
+ run_install: true
28
+
29
+ - run: pnpm i --frozen-lockfile
30
+ - run: pnpm build
31
+ - run: npm publish
@@ -0,0 +1,7 @@
1
+ export declare abstract class Auth {
2
+ abstract authenticate(cpf?: string): Promise<{
3
+ token: string;
4
+ customerId: string | null;
5
+ }>;
6
+ abstract authorize(token: string): Promise<string | null>;
7
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Auth = void 0;
4
+ class Auth {
5
+ }
6
+ exports.Auth = Auth;
7
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../src/application/auth/auth.ts"],"names":[],"mappings":";;;AAAA,MAAsB,IAAI;CAKzB;AALD,oBAKC"}
@@ -0,0 +1,7 @@
1
+ export declare abstract class Auth {
2
+ abstract authenticate(cpf?: string): Promise<{
3
+ token: string;
4
+ customerId: string | null;
5
+ }>;
6
+ abstract authorize(token: string): Promise<string | null>;
7
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Auth = void 0;
4
+ class Auth {
5
+ }
6
+ exports.Auth = Auth;
7
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../../src/application/services/auth/auth.ts"],"names":[],"mappings":";;;AAAA,MAAsB,IAAI;CAKzB;AALD,oBAKC"}
@@ -0,0 +1,7 @@
1
+ export declare abstract class AuthService {
2
+ abstract authenticate(cpf?: string): Promise<{
3
+ token: string;
4
+ customerId: string | null;
5
+ }>;
6
+ abstract authorize(token: string): Promise<string | null>;
7
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AuthService = void 0;
4
+ class AuthService {
5
+ }
6
+ exports.AuthService = AuthService;
7
+ //# sourceMappingURL=auth-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-service.js","sourceRoot":"","sources":["../../../../../src/application/services/auth-service/auth-service.ts"],"names":[],"mappings":";;;AAAA,MAAsB,WAAW;CAKhC;AALD,kCAKC"}
@@ -0,0 +1,7 @@
1
+ export declare abstract class Auth {
2
+ abstract authenticate(cpf?: string): Promise<{
3
+ token: string;
4
+ customerId: string | null;
5
+ }>;
6
+ abstract authorize(token: string): Promise<string | null>;
7
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Auth = void 0;
4
+ class Auth {
5
+ }
6
+ exports.Auth = Auth;
7
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../../src/application/services/auth-service/auth.ts"],"names":[],"mappings":";;;AAAA,MAAsB,IAAI;CAKzB;AALD,oBAKC"}
@@ -9,5 +9,12 @@ export * from "./infra/services/cart-service/mock/mock-cart-service";
9
9
  export * from "./application/entities/common-cart";
10
10
  export * from "./application/entities/common-cart-item";
11
11
  export * from "./application/services/cart-service/cart-service";
12
+ export * from "./application/services/auth-service/auth-service";
13
+ export * from "./infra/services/auth/auth.module";
14
+ export * from "./infra/services/auth/aws-lambda/aws-lamda";
15
+ export * from "./infra/services/auth/guards/auth.guard";
16
+ export * from "./infra/services/auth/guards/public";
17
+ export * from "./utils/is-cpf-valid";
18
+ export * from "./infra/services/auth/auth-dtos";
12
19
  export * from "./infra/services/cart-service/cart-dtos";
13
20
  export * from "./infra/services/item-service/item-dtos";
package/dist/src/index.js CHANGED
@@ -25,6 +25,13 @@ __exportStar(require("./infra/services/cart-service/mock/mock-cart-service"), ex
25
25
  __exportStar(require("./application/entities/common-cart"), exports);
26
26
  __exportStar(require("./application/entities/common-cart-item"), exports);
27
27
  __exportStar(require("./application/services/cart-service/cart-service"), exports);
28
+ __exportStar(require("./application/services/auth-service/auth-service"), exports);
29
+ __exportStar(require("./infra/services/auth/auth.module"), exports);
30
+ __exportStar(require("./infra/services/auth/aws-lambda/aws-lamda"), exports);
31
+ __exportStar(require("./infra/services/auth/guards/auth.guard"), exports);
32
+ __exportStar(require("./infra/services/auth/guards/public"), exports);
33
+ __exportStar(require("./utils/is-cpf-valid"), exports);
34
+ __exportStar(require("./infra/services/auth/auth-dtos"), exports);
28
35
  __exportStar(require("./infra/services/cart-service/cart-dtos"), exports);
29
36
  __exportStar(require("./infra/services/item-service/item-dtos"), exports);
30
37
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oFAAkE;AAClE,gGAA8E;AAC9E,uFAAqE;AACrE,8DAA4C;AAC5C,mFAAiE;AAEjE,oFAAkE;AAClE,qGAAmF;AACnF,uFAAqE;AACrE,qEAAmD;AACnD,0EAAwD;AACxD,mFAAiE;AAEjE,0EAAwD;AACxD,0EAAwD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oFAAkE;AAClE,gGAA8E;AAC9E,uFAAqE;AACrE,8DAA4C;AAC5C,mFAAiE;AAEjE,oFAAkE;AAClE,qGAAmF;AACnF,uFAAqE;AACrE,qEAAmD;AACnD,0EAAwD;AACxD,mFAAiE;AACjE,mFAAiE;AACjE,oEAAkD;AAClD,6EAA2D;AAC3D,0EAAwD;AACxD,sEAAoD;AACpD,uDAAqC;AAErC,kEAAgD;AAChD,0EAAwD;AACxD,0EAAwD"}
@@ -0,0 +1,3 @@
1
+ export declare class LoginBody {
2
+ cpf?: string;
3
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.LoginBody = void 0;
13
+ const swagger_1 = require("@nestjs/swagger");
14
+ const class_validator_1 = require("class-validator");
15
+ const is_cpf_valid_1 = require("../../../utils/is-cpf-valid");
16
+ class LoginBody {
17
+ }
18
+ exports.LoginBody = LoginBody;
19
+ __decorate([
20
+ (0, swagger_1.ApiProperty)({
21
+ example: "12345678901",
22
+ required: false,
23
+ description: "CPF do cliente (opcional para autenticação anônima)",
24
+ }),
25
+ (0, class_validator_1.IsString)(),
26
+ (0, class_validator_1.IsOptional)(),
27
+ (0, class_validator_1.Validate)(is_cpf_valid_1.IsCPFValid),
28
+ (0, class_validator_1.Length)(11, 11),
29
+ __metadata("design:type", String)
30
+ ], LoginBody.prototype, "cpf", void 0);
31
+ //# sourceMappingURL=auth-dtos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-dtos.js","sourceRoot":"","sources":["../../../../../src/infra/services/auth/auth-dtos.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,qDAAyE;AACzE,yDAAoD;AAEpD,MAAa,SAAS;CAWrB;AAXD,8BAWC;AADC;IATC,IAAA,qBAAW,EAAC;QACX,OAAO,EAAE,aAAa;QACtB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,qDAAqD;KACnE,CAAC;IACD,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,EAAC,yBAAU,CAAC;IACpB,IAAA,wBAAM,EAAC,EAAE,EAAE,EAAE,CAAC;;sCACF"}
@@ -0,0 +1,2 @@
1
+ export declare class AuthModule {
2
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.AuthModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const aws_lamda_1 = require("./aws-lambda/aws-lamda");
12
+ const auth_service_1 = require("../../../application/services/auth-service/auth-service");
13
+ const core_1 = require("@nestjs/core");
14
+ const auth_guard_1 = require("./guards/auth.guard");
15
+ let AuthModule = class AuthModule {
16
+ };
17
+ exports.AuthModule = AuthModule;
18
+ exports.AuthModule = AuthModule = __decorate([
19
+ (0, common_1.Module)({
20
+ providers: [
21
+ {
22
+ provide: auth_service_1.AuthService,
23
+ useClass: aws_lamda_1.AWSLambdaAuth,
24
+ },
25
+ {
26
+ provide: core_1.APP_GUARD,
27
+ useClass: auth_guard_1.AuthGuard,
28
+ },
29
+ core_1.Reflector,
30
+ ],
31
+ exports: [auth_service_1.AuthService],
32
+ })
33
+ ], AuthModule);
34
+ //# sourceMappingURL=auth.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.module.js","sourceRoot":"","sources":["../../../../../src/infra/services/auth/auth.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,sDAAuD;AACvD,kFAA8E;AAC9E,uCAAoD;AACpD,oDAAgD;AAgBzC,IAAM,UAAU,GAAhB,MAAM,UAAU;CAAG,CAAA;AAAb,gCAAU;qBAAV,UAAU;IAdtB,IAAA,eAAM,EAAC;QACN,SAAS,EAAE;YACT;gBACE,OAAO,EAAE,0BAAW;gBACpB,QAAQ,EAAE,yBAAa;aACxB;YACD;gBACE,OAAO,EAAE,gBAAS;gBAClB,QAAQ,EAAE,sBAAS;aACpB;YACD,gBAAS;SACV;QACD,OAAO,EAAE,CAAC,0BAAW,CAAC;KACvB,CAAC;GACW,UAAU,CAAG"}
@@ -0,0 +1,8 @@
1
+ import { AuthService } from "../../../../application/services/auth-service/auth-service";
2
+ export declare class AWSLambdaAuth implements AuthService {
3
+ authenticate(cpf?: string): Promise<{
4
+ token: string;
5
+ customerId: string | null;
6
+ }>;
7
+ authorize(token: string): Promise<string | null>;
8
+ }
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.AWSLambdaAuth = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const aws_sdk_1 = require("aws-sdk");
12
+ let AWSLambdaAuth = class AWSLambdaAuth {
13
+ async authenticate(cpf) {
14
+ if (process.env.NODE_ENV === "development") {
15
+ return { token: "dev-token", customerId: null };
16
+ }
17
+ const lambda = new aws_sdk_1.Lambda({
18
+ region: process.env.AWS_REGION,
19
+ accessKeyId: process.env.AWS_ACCESS_KEY_ID,
20
+ secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
21
+ sessionToken: process.env.AWS_SESSION_TOKEN,
22
+ });
23
+ const params = {
24
+ FunctionName: process.env.AWS_LAMBDA_FUNCTION_NAME || "my-service",
25
+ Payload: JSON.stringify({ cpf }),
26
+ };
27
+ const response = await lambda.invoke(params).promise();
28
+ console.log("Lambda response:", response);
29
+ if (response.StatusCode !== 200) {
30
+ console.error("Error invoking Lambda:", response);
31
+ throw new Error("Error invoking Lambda function");
32
+ }
33
+ if (!response.Payload) {
34
+ throw new Error("Invalid response from Lambda function");
35
+ }
36
+ const payload = JSON.parse(response.Payload.toString());
37
+ if (payload.statusCode !== 200) {
38
+ const errorPayload = JSON.parse(response.Payload.toString());
39
+ console.error("Authentication error", errorPayload);
40
+ throw new Error(errorPayload.body || "Authentication failed");
41
+ }
42
+ return { token: payload.token, customerId: payload.customerId };
43
+ }
44
+ async authorize(token) {
45
+ const lambda = new aws_sdk_1.Lambda({
46
+ region: process.env.AWS_REGION,
47
+ accessKeyId: process.env.AWS_ACCESS_KEY_ID,
48
+ secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
49
+ sessionToken: process.env.AWS_SESSION_TOKEN,
50
+ });
51
+ const params = {
52
+ FunctionName: process.env.AWS_LAMBDA_FUNCTION_NAME || "my-service",
53
+ Payload: JSON.stringify({ action: "validate", token }),
54
+ };
55
+ const response = await lambda.invoke(params).promise();
56
+ if (response.StatusCode !== 200) {
57
+ console.error("Error invoking Lambda:", response);
58
+ throw new Error("Error invoking Lambda function");
59
+ }
60
+ if (!response.Payload) {
61
+ throw new Error("Invalid response from Lambda function");
62
+ }
63
+ const payload = JSON.parse(response.Payload.toString());
64
+ return payload.customerId;
65
+ }
66
+ };
67
+ exports.AWSLambdaAuth = AWSLambdaAuth;
68
+ exports.AWSLambdaAuth = AWSLambdaAuth = __decorate([
69
+ (0, common_1.Injectable)()
70
+ ], AWSLambdaAuth);
71
+ //# sourceMappingURL=aws-lamda.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aws-lamda.js","sourceRoot":"","sources":["../../../../../../src/infra/services/auth/aws-lambda/aws-lamda.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { AuthService } from "../../../../application/services/auth-service/auth-service";
2
+ import { CanActivate, ExecutionContext } from "@nestjs/common";
3
+ import { Reflector } from "@nestjs/core";
4
+ export declare class AuthGuard implements CanActivate {
5
+ private auth;
6
+ private reflector;
7
+ constructor(auth: AuthService, reflector: Reflector);
8
+ canActivate(context: ExecutionContext): Promise<boolean>;
9
+ private extractTokenFromHeader;
10
+ }
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AuthGuard = void 0;
13
+ const auth_service_1 = require("../../../../application/services/auth-service/auth-service");
14
+ const common_1 = require("@nestjs/common");
15
+ const public_1 = require("./public");
16
+ const core_1 = require("@nestjs/core");
17
+ let AuthGuard = class AuthGuard {
18
+ constructor(auth, reflector) {
19
+ this.auth = auth;
20
+ this.reflector = reflector;
21
+ }
22
+ async canActivate(context) {
23
+ const isPublic = this.reflector.getAllAndOverride(public_1.IS_PUBLIC_KEY, [
24
+ context.getHandler(),
25
+ context.getClass(),
26
+ ]);
27
+ if (isPublic || process.env.NODE_ENV === "development")
28
+ return true;
29
+ const request = context.switchToHttp().getRequest();
30
+ const token = this.extractTokenFromHeader(request);
31
+ if (!token) {
32
+ throw new common_1.UnauthorizedException();
33
+ }
34
+ try {
35
+ const payload = await this.auth.authorize(token);
36
+ request["customerId"] = payload;
37
+ }
38
+ catch (_a) {
39
+ throw new common_1.UnauthorizedException();
40
+ }
41
+ return true;
42
+ }
43
+ extractTokenFromHeader(request) {
44
+ var _a, _b;
45
+ const [type, token] = (_b = (_a = request.headers.authorization) === null || _a === void 0 ? void 0 : _a.split(" ")) !== null && _b !== void 0 ? _b : [];
46
+ return type === "Bearer" ? token : undefined;
47
+ }
48
+ };
49
+ exports.AuthGuard = AuthGuard;
50
+ exports.AuthGuard = AuthGuard = __decorate([
51
+ (0, common_1.Injectable)(),
52
+ __metadata("design:paramtypes", [auth_service_1.AuthService, core_1.Reflector])
53
+ ], AuthGuard);
54
+ //# sourceMappingURL=auth.guard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.guard.js","sourceRoot":"","sources":["../../../../../../src/infra/services/auth/guards/auth.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,kFAA8E;AAC9E,2CAKwB;AAExB,qCAAyC;AACzC,uCAAyC;AAGlC,IAAM,SAAS,GAAf,MAAM,SAAS;IACpB,YAAoB,IAAiB,EAAU,SAAoB;QAA/C,SAAI,GAAJ,IAAI,CAAa;QAAU,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAEvE,KAAK,CAAC,WAAW,CAAC,OAAyB;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAU,sBAAa,EAAE;YACxE,OAAO,CAAC,UAAU,EAAE;YACpB,OAAO,CAAC,QAAQ,EAAE;SACnB,CAAC,CAAC;QAEH,IAAI,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa;YAAE,OAAO,IAAI,CAAC;QAEpE,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAEnD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,8BAAqB,EAAE,CAAC;QACpC,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAEjD,OAAO,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC;QAClC,CAAC;QAAC,WAAM,CAAC;YACP,MAAM,IAAI,8BAAqB,EAAE,CAAC;QACpC,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,sBAAsB,CAAC,OAAgB;;QAC7C,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,MAAA,MAAA,OAAO,CAAC,OAAO,CAAC,aAAa,0CAAE,KAAK,CAAC,GAAG,CAAC,mCAAI,EAAE,CAAC;QACtE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/C,CAAC;CACF,CAAA;AAjCY,8BAAS;oBAAT,SAAS;IADrB,IAAA,mBAAU,GAAE;qCAEe,0BAAW,EAAqB,gBAAS;GADxD,SAAS,CAiCrB"}
@@ -0,0 +1,2 @@
1
+ export declare const IS_PUBLIC_KEY = "isPublic";
2
+ export declare const Public: () => import("@nestjs/common").CustomDecorator<string>;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Public = exports.IS_PUBLIC_KEY = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ exports.IS_PUBLIC_KEY = 'isPublic';
6
+ const Public = () => (0, common_1.SetMetadata)(exports.IS_PUBLIC_KEY, true);
7
+ exports.Public = Public;
8
+ //# sourceMappingURL=public.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.js","sourceRoot":"","sources":["../../../../../../src/infra/services/auth/guards/public.ts"],"names":[],"mappings":";;;AAAA,2CAA6C;AAEhC,QAAA,aAAa,GAAG,UAAU,CAAC;AACjC,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,IAAA,oBAAW,EAAC,qBAAa,EAAE,IAAI,CAAC,CAAC;AAAhD,QAAA,MAAM,UAA0C"}
@@ -0,0 +1,10 @@
1
+ import { AuthService } from "../../../../application/services/auth-service/auth-service";
2
+ export declare class HttpClientAuthService extends AuthService {
3
+ private baseUrl;
4
+ constructor();
5
+ authenticate(cpf?: string): Promise<{
6
+ token: string;
7
+ customerId: string | null;
8
+ }>;
9
+ authorize(token: string): Promise<string | null>;
10
+ }
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.HttpClientAuthService = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const auth_service_1 = require("../../../../application/services/auth-service/auth-service");
15
+ let HttpClientAuthService = class HttpClientAuthService extends auth_service_1.AuthService {
16
+ constructor() {
17
+ super();
18
+ this.baseUrl = process.env.AUTH_SERVICE_URL || "http://localhost:3002";
19
+ }
20
+ async authenticate(cpf) {
21
+ try {
22
+ const response = await fetch(`${this.baseUrl}/auth/authenticate`, {
23
+ method: "POST",
24
+ headers: {
25
+ "Content-Type": "application/json",
26
+ },
27
+ body: JSON.stringify({ cpf }),
28
+ });
29
+ if (!response.ok) {
30
+ throw new Error(`HTTP error! status: ${response.status}`);
31
+ }
32
+ const data = await response.json();
33
+ if (data.statusCode !== 200) {
34
+ throw new Error(data.message || "Authentication failed");
35
+ }
36
+ return { token: data.token, customerId: data.customerId };
37
+ }
38
+ catch (error) {
39
+ throw error;
40
+ }
41
+ }
42
+ async authorize(token) {
43
+ try {
44
+ const response = await fetch(`${this.baseUrl}/auth/authorize`, {
45
+ method: "POST",
46
+ headers: {
47
+ "Content-Type": "application/json",
48
+ },
49
+ body: JSON.stringify({ token }),
50
+ });
51
+ if (!response.ok) {
52
+ throw new Error(`HTTP error! status: ${response.status}`);
53
+ }
54
+ const data = await response.json();
55
+ return data.customerId;
56
+ }
57
+ catch (error) {
58
+ throw error;
59
+ }
60
+ }
61
+ };
62
+ exports.HttpClientAuthService = HttpClientAuthService;
63
+ exports.HttpClientAuthService = HttpClientAuthService = __decorate([
64
+ (0, common_1.Injectable)(),
65
+ __metadata("design:paramtypes", [])
66
+ ], HttpClientAuthService);
67
+ //# sourceMappingURL=http-client-auth-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client-auth-service.js","sourceRoot":"","sources":["../../../../../../src/infra/services/auth/http-client/http-client-auth-service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,kFAA8E;AAiBvE,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,0BAAW;IAGpD;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,uBAAuB,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,GAAY;QAEZ,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,oBAAoB,EAAE;gBAChE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;aAC9B,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,IAAI,GAAyB,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAEzD,IAAI,IAAI,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,uBAAuB,CAAC,CAAC;YAC3D,CAAC;YAED,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;QAC5D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAa;QAC3B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,iBAAiB,EAAE;gBAC7D,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;gBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;aAChC,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YAC5D,CAAC;YAED,MAAM,IAAI,GAAsB,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAEtD,OAAO,IAAI,CAAC,UAAU,CAAC;QACzB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF,CAAA;AAzDY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;;GACA,qBAAqB,CAyDjC"}
@@ -0,0 +1,6 @@
1
+ import { JwtService } from "@nestjs/jwt";
2
+ export declare class TokenService {
3
+ private jwtService;
4
+ constructor(jwtService: JwtService);
5
+ getCustomerIdFromToken(token: string): string | null;
6
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.TokenService = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const jwt_1 = require("@nestjs/jwt");
15
+ let TokenService = class TokenService {
16
+ constructor(jwtService) {
17
+ this.jwtService = jwtService;
18
+ }
19
+ getCustomerIdFromToken(token) {
20
+ try {
21
+ const decoded = this.jwtService.verify(token);
22
+ return decoded.sub;
23
+ }
24
+ catch (_a) {
25
+ return null;
26
+ }
27
+ }
28
+ };
29
+ exports.TokenService = TokenService;
30
+ exports.TokenService = TokenService = __decorate([
31
+ (0, common_1.Injectable)(),
32
+ __metadata("design:paramtypes", [jwt_1.JwtService])
33
+ ], TokenService);
34
+ //# sourceMappingURL=token.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.service.js","sourceRoot":"","sources":["../../../../../src/infra/services/auth/token.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,qCAAyC;AAGlC,IAAM,YAAY,GAAlB,MAAM,YAAY;IACvB,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAE9C,sBAAsB,CAAC,KAAa;QAClC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9C,OAAO,OAAO,CAAC,GAAG,CAAC;QACrB,CAAC;QAAC,WAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF,CAAA;AAXY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;qCAEqB,gBAAU;GAD/B,YAAY,CAWxB"}
@@ -40,7 +40,7 @@ let MockCartService = class MockCartService extends cart_service_1.CartService {
40
40
  quantity: 2,
41
41
  }, "cart-item-3"),
42
42
  ],
43
- }, "cart-1");
43
+ }, "123e4567-e89b-12d3-a456-426614174000");
44
44
  const cart2 = new common_cart_1.CommonCart({
45
45
  customerId: null,
46
46
  items: [
@@ -55,11 +55,11 @@ let MockCartService = class MockCartService extends cart_service_1.CartService {
55
55
  quantity: 1,
56
56
  }, "cart-item-5"),
57
57
  ],
58
- }, "cart-2");
58
+ }, "123e4567-e89b-12d3-a456-426614174001");
59
59
  const cart3 = new common_cart_1.CommonCart({
60
60
  customerId: "98765432109",
61
61
  items: [],
62
- }, "cart-3");
62
+ }, "123e4567-e89b-12d3-a456-426614174002");
63
63
  [cart1, cart2, cart3].forEach((cart) => {
64
64
  this.carts.set(cart.id, cart);
65
65
  });
@@ -1 +1 @@
1
- {"version":3,"file":"mock-cart-service.js","sourceRoot":"","sources":["../../../../../../src/infra/services/cart-service/mock/mock-cart-service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,mEAA+D;AAC/D,6EAAwE;AACxE,kFAA8E;AAIvE,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,0BAAW;IAG9C;QACE,KAAK,EAAE,CAAC;QAHF,UAAK,GAA4B,IAAI,GAAG,EAAE,CAAC;QAIjD,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAEO,YAAY;QAClB,MAAM,KAAK,GAAG,IAAI,wBAAU,CAC1B;YACE,UAAU,EAAE,aAAa;YACzB,KAAK,EAAE;gBACL,IAAI,iCAAc,CAChB;oBACE,MAAM,EAAE,sCAAsC;oBAC9C,KAAK,EAAE,EAAE;oBACT,QAAQ,EAAE,CAAC;iBACZ,EACD,aAAa,CACd;gBACD,IAAI,iCAAc,CAChB;oBACE,MAAM,EAAE,sCAAsC;oBAC9C,KAAK,EAAE,EAAE;oBACT,QAAQ,EAAE,CAAC;iBACZ,EACD,aAAa,CACd;gBACD,IAAI,iCAAc,CAChB;oBACE,MAAM,EAAE,sCAAsC;oBAC9C,KAAK,EAAE,CAAC;oBACR,QAAQ,EAAE,CAAC;iBACZ,EACD,aAAa,CACd;aACF;SACF,EACD,QAAQ,CACT,CAAC;QAEF,MAAM,KAAK,GAAG,IAAI,wBAAU,CAC1B;YACE,UAAU,EAAE,IAAI;YAChB,KAAK,EAAE;gBACL,IAAI,iCAAc,CAChB;oBACE,MAAM,EAAE,sCAAsC;oBAC9C,KAAK,EAAE,EAAE;oBACT,QAAQ,EAAE,CAAC;iBACZ,EACD,aAAa,CACd;gBACD,IAAI,iCAAc,CAChB;oBACE,MAAM,EAAE,sCAAsC;oBAC9C,KAAK,EAAE,EAAE;oBACT,QAAQ,EAAE,CAAC;iBACZ,EACD,aAAa,CACd;aACF;SACF,EACD,QAAQ,CACT,CAAC;QAEF,MAAM,KAAK,GAAG,IAAI,wBAAU,CAC1B;YACE,UAAU,EAAE,aAAa;YACzB,KAAK,EAAE,EAAE;SACV,EACD,QAAQ,CACT,CAAC;QAEF,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,IAAI,CAAC;IACtB,CAAC;CACF,CAAA;AApFY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;;GACA,eAAe,CAoF3B"}
1
+ {"version":3,"file":"mock-cart-service.js","sourceRoot":"","sources":["../../../../../../src/infra/services/cart-service/mock/mock-cart-service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,mEAA+D;AAC/D,6EAAwE;AACxE,kFAA8E;AAIvE,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,0BAAW;IAG9C;QACE,KAAK,EAAE,CAAC;QAHF,UAAK,GAA4B,IAAI,GAAG,EAAE,CAAC;QAIjD,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAEO,YAAY;QAClB,MAAM,KAAK,GAAG,IAAI,wBAAU,CAC1B;YACE,UAAU,EAAE,aAAa;YACzB,KAAK,EAAE;gBACL,IAAI,iCAAc,CAChB;oBACE,MAAM,EAAE,sCAAsC;oBAC9C,KAAK,EAAE,EAAE;oBACT,QAAQ,EAAE,CAAC;iBACZ,EACD,aAAa,CACd;gBACD,IAAI,iCAAc,CAChB;oBACE,MAAM,EAAE,sCAAsC;oBAC9C,KAAK,EAAE,EAAE;oBACT,QAAQ,EAAE,CAAC;iBACZ,EACD,aAAa,CACd;gBACD,IAAI,iCAAc,CAChB;oBACE,MAAM,EAAE,sCAAsC;oBAC9C,KAAK,EAAE,CAAC;oBACR,QAAQ,EAAE,CAAC;iBACZ,EACD,aAAa,CACd;aACF;SACF,EACD,sCAAsC,CACvC,CAAC;QAEF,MAAM,KAAK,GAAG,IAAI,wBAAU,CAC1B;YACE,UAAU,EAAE,IAAI;YAChB,KAAK,EAAE;gBACL,IAAI,iCAAc,CAChB;oBACE,MAAM,EAAE,sCAAsC;oBAC9C,KAAK,EAAE,EAAE;oBACT,QAAQ,EAAE,CAAC;iBACZ,EACD,aAAa,CACd;gBACD,IAAI,iCAAc,CAChB;oBACE,MAAM,EAAE,sCAAsC;oBAC9C,KAAK,EAAE,EAAE;oBACT,QAAQ,EAAE,CAAC;iBACZ,EACD,aAAa,CACd;aACF;SACF,EACD,sCAAsC,CACvC,CAAC;QAEF,MAAM,KAAK,GAAG,IAAI,wBAAU,CAC1B;YACE,UAAU,EAAE,aAAa;YACzB,KAAK,EAAE,EAAE;SACV,EACD,sCAAsC,CACvC,CAAC;QAEF,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,IAAI,CAAC;IACtB,CAAC;CACF,CAAA;AApFY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;;GACA,eAAe,CAoF3B"}
@@ -13,20 +13,20 @@ exports.HttpClientItemService = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
14
  const http_service_mapper_1 = require("./http-service-mapper");
15
15
  let HttpClientItemService = class HttpClientItemService {
16
- constructor() {
17
- }
16
+ constructor() { }
18
17
  async findById(itemId) {
19
18
  if (!process.env.ITEM_SERVICE_URL) {
20
19
  throw new Error("ITEM_SERVICE_URL is not defined");
21
20
  }
22
21
  const url = `${process.env.ITEM_SERVICE_URL}/items/${itemId}`;
23
22
  const response = await fetch(url, {
24
- method: 'GET',
23
+ method: "GET",
25
24
  headers: {
26
- 'Content-Type': 'application/json',
25
+ "Content-Type": "application/json",
26
+ Authorization: `Bearer ${process.env.ITEM_SERVICE_API_KEY}`,
27
27
  },
28
28
  });
29
- const data = await response.json();
29
+ const data = (await response.json());
30
30
  if (!data)
31
31
  return null;
32
32
  return http_service_mapper_1.HttpServiceMapper.toDomainItem(data);
@@ -1 +1 @@
1
- {"version":3,"file":"http-client.service.js","sourceRoot":"","sources":["../../../../../../src/infra/services/item-service/http-client/http-client.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAE5C,+DAA0D;AAInD,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAChC;IACA,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc;QAC3B,IAAG,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,UAAU,MAAM,EAAE,CAAC;QAE9D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAkB,CAAA;QAElD,IAAG,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAEtB,OAAO,uCAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;CACF,CAAA;AAxBY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;;GACA,qBAAqB,CAwBjC"}
1
+ {"version":3,"file":"http-client.service.js","sourceRoot":"","sources":["../../../../../../src/infra/services/item-service/http-client/http-client.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAE5C,+DAA0D;AAInD,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAChC,gBAAe,CAAC;IAEhB,KAAK,CAAC,QAAQ,CAAC,MAAc;QAC3B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,UAAU,MAAM,EAAE,CAAC;QAE9D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE;aAC5D;SACF,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAiB,CAAC;QAErD,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAEvB,OAAO,uCAAiB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;CACF,CAAA;AAxBY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;;GACA,qBAAqB,CAwBjC"}