- Introduced `UnpublishedShare` component for displaying empty state with actions for assigning and viewing history. - Added `PublicationOperationSummary` component to summarize publication context and actions based on the current state. - Implemented `CompanyNetworkShareDetail` to manage and display network share details for companies. - Created `NetworkShareResourceTitle` for collapsible display of resource names with accessibility features. - Developed `ResourceDetailActions` for managing resource actions like edit, activate/deactivate, and delete. - Added `ResourceRevisionHistory` to display the history of resource revisions with detailed information. - Implemented a comprehensive audit script for network share detail UI, including accessibility checks and error handling.
472 lines
22 KiB
Plaintext
472 lines
22 KiB
Plaintext
$ biome lint .
|
||
docs/auditorias/ficha-puesto-trabajo/implementacion-v3/mediciones.json lint ━━━━━━━━━━━━━━━━━━━━━━━━
|
||
|
||
i The size of the file is 2.5 MiB, which exceeds the configured maximum of 1.0 MiB for this project.
|
||
Use the `files.maxSize` configuration to change the maximum size of files processed, or `files.includes` to ignore the file.
|
||
|
||
|
||
modules/companies/src/api/application/person-photo.use-cases.ts:33:9 lint/complexity/useSimplifiedLogicExpression FIXABLE ━━━━━━━━━━
|
||
|
||
i Logical expression contains unnecessary complexity.
|
||
|
||
32 │ async save(companyId: string, personId: string, data: Uint8Array) {
|
||
> 33 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success)
|
||
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST"));
|
||
35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes)
|
||
|
||
i Safe fix: Reduce the complexity of the logical expression.
|
||
|
||
31 31 │
|
||
32 32 │ async save(companyId: string, personId: string, data: Uint8Array) {
|
||
33 │ - ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success)
|
||
33 │ + ····if·(!(z.uuid().safeParse(companyId).success·&&·z.uuid().safeParse(personId).success))
|
||
34 34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST"));
|
||
35 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes)
|
||
|
||
|
||
modules/companies/src/api/application/person-photo.use-cases.ts:49:9 lint/complexity/useSimplifiedLogicExpression FIXABLE ━━━━━━━━━━
|
||
|
||
i Logical expression contains unnecessary complexity.
|
||
|
||
48 │ async remove(companyId: string, personId: string) {
|
||
> 49 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success)
|
||
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
50 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST"));
|
||
51 │
|
||
|
||
i Safe fix: Reduce the complexity of the logical expression.
|
||
|
||
47 47 │
|
||
48 48 │ async remove(companyId: string, personId: string) {
|
||
49 │ - ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success)
|
||
49 │ + ····if·(!(z.uuid().safeParse(companyId).success·&&·z.uuid().safeParse(personId).success))
|
||
50 50 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST"));
|
||
51 51 │
|
||
|
||
|
||
modules/companies/src/api/infrastructure/person-photo-processor.ts:18:9 lint/complexity/useSimplifiedLogicExpression FIXABLE ━━━━━━━━━━
|
||
|
||
i Logical expression contains unnecessary complexity.
|
||
|
||
17 │ if (
|
||
> 18 │ !metadata.width ||
|
||
│ ^^^^^^^^^^^^^^^^^^
|
||
> 19 │ !metadata.height ||
|
||
│ ^^^^^^^^^^^^^^^^
|
||
20 │ metadata.width > PERSON_PHOTO_LIMITS.inputDimension ||
|
||
21 │ metadata.height > PERSON_PHOTO_LIMITS.inputDimension ||
|
||
|
||
i Safe fix: Reduce the complexity of the logical expression.
|
||
|
||
16 16 │
|
||
17 17 │ if (
|
||
18 │ - ········!metadata.width·||
|
||
19 │ - ········!metadata.height·||
|
||
18 │ + ········!(metadata.width·&&metadata.height·)·||
|
||
20 19 │ metadata.width > PERSON_PHOTO_LIMITS.inputDimension ||
|
||
21 20 │ metadata.height > PERSON_PHOTO_LIMITS.inputDimension ||
|
||
|
||
|
||
.agents/skills/shadcn/assets/showcase/color-pair.tsx:81:17 lint/style/noNegationElse FIXABLE ━━━━━━━━━━
|
||
|
||
! Invert blocks when performing a negation test.
|
||
|
||
79 │ }, [])
|
||
80 │
|
||
> 81 │ const level = !info
|
||
│ ^^^^^
|
||
> 82 │ ? ""
|
||
...
|
||
> 88 │ ? "AA Large"
|
||
> 89 │ : "Fail"
|
||
│ ^^^^^^^^
|
||
90 │
|
||
91 │ return (
|
||
|
||
i Safe fix: Invert the condition and the blocks.
|
||
|
||
79 79 │ }, [])
|
||
80 80 │
|
||
81 │ - ··const·level·=·!info
|
||
82 │ - ····?·""
|
||
83 │ - ····:·info.ratio·>=·7
|
||
81 │ + ··const·level·=·info
|
||
82 │ + ····?·info.ratio·>=·7
|
||
84 83 │ ? "AAA"
|
||
85 84 │ : info.ratio >= 4.5
|
||
······· │
|
||
87 86 │ : info.ratio >= 3
|
||
88 87 │ ? "AA Large"
|
||
89 │ - ··········:·"Fail"
|
||
88 │ + ··········:·"Fail"
|
||
89 │ + ····:·""
|
||
90 90 │
|
||
91 91 │ return (
|
||
|
||
|
||
.agents/skills/shadcn/assets/showcase/state-matrix.tsx:1:8 lint/style/useImportType FIXABLE ━━━━━━━━━━
|
||
|
||
× All these imports are only used as types.
|
||
|
||
> 1 │ import * as React from "react"
|
||
│ ^^^^^^^^^^^^^^^^^^^^^^^
|
||
2 │
|
||
3 │ import { cn } from "@/lib/utils"
|
||
|
||
i Importing the types with import type ensures that they are removed by the compilers and avoids loading unnecessary modules.
|
||
|
||
i Safe fix: Use import type.
|
||
|
||
1 │ import·type·*·as·React·from·"react"
|
||
│ +++++
|
||
|
||
modules/companies/src/api/application/person-photo.use-cases.ts:25:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━
|
||
|
||
× Block statements are preferred in this position.
|
||
|
||
24 │ async get(personId: string) {
|
||
> 25 │ if (!z.uuid().safeParse(personId).success)
|
||
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
> 26 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST"));
|
||
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
27 │ const photo = await this.repository.get(personId);
|
||
28 │
|
||
|
||
i Unsafe fix: Wrap the statement with a `JsBlockStatement`
|
||
|
||
23 23 │
|
||
24 24 │ async get(personId: string) {
|
||
25 │ - ····if·(!z.uuid().safeParse(personId).success)
|
||
26 │ - ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST"));
|
||
25 │ + ····if·(!z.uuid().safeParse(personId).success)·{
|
||
26 │ + ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST"));
|
||
27 │ + ····}
|
||
27 28 │ const photo = await this.repository.get(personId);
|
||
28 29 │
|
||
|
||
|
||
modules/companies/src/api/application/person-photo.use-cases.ts:33:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━
|
||
|
||
× Block statements are preferred in this position.
|
||
|
||
32 │ async save(companyId: string, personId: string, data: Uint8Array) {
|
||
> 33 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success)
|
||
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
> 34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST"));
|
||
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes)
|
||
36 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE"));
|
||
|
||
i Unsafe fix: Wrap the statement with a `JsBlockStatement`
|
||
|
||
31 31 │
|
||
32 32 │ async save(companyId: string, personId: string, data: Uint8Array) {
|
||
33 │ - ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success)
|
||
34 │ - ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST"));
|
||
33 │ + ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success)·{
|
||
34 │ + ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST"));
|
||
35 │ + ····}
|
||
35 36 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes)
|
||
36 37 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE"));
|
||
|
||
|
||
modules/companies/src/api/application/person-photo.use-cases.ts:35:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━
|
||
|
||
× Block statements are preferred in this position.
|
||
|
||
33 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success)
|
||
34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST"));
|
||
> 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes)
|
||
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
> 36 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE"));
|
||
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
37 │ if (!(await this.repository.exists(companyId, personId)))
|
||
38 │ return Result.fail(new PersonPhotoError("PERSON_NOT_FOUND"));
|
||
|
||
i Unsafe fix: Wrap the statement with a `JsBlockStatement`
|
||
|
||
33 33 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success)
|
||
34 34 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST"));
|
||
35 │ - ····if·(data.length·>·PERSON_PHOTO_LIMITS.inputBytes)
|
||
36 │ - ······return·Result.fail(new·PersonPhotoError("PHOTO_TOO_LARGE"));
|
||
35 │ + ····if·(data.length·>·PERSON_PHOTO_LIMITS.inputBytes)·{
|
||
36 │ + ······return·Result.fail(new·PersonPhotoError("PHOTO_TOO_LARGE"));
|
||
37 │ + ····}
|
||
37 38 │ if (!(await this.repository.exists(companyId, personId)))
|
||
38 39 │ return Result.fail(new PersonPhotoError("PERSON_NOT_FOUND"));
|
||
|
||
|
||
modules/companies/src/api/application/person-photo.use-cases.ts:37:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━
|
||
|
||
× Block statements are preferred in this position.
|
||
|
||
35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes)
|
||
36 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE"));
|
||
> 37 │ if (!(await this.repository.exists(companyId, personId)))
|
||
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
> 38 │ return Result.fail(new PersonPhotoError("PERSON_NOT_FOUND"));
|
||
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
39 │ const processed = await this.processor.optimize(data);
|
||
40 │
|
||
|
||
i Unsafe fix: Wrap the statement with a `JsBlockStatement`
|
||
|
||
35 35 │ if (data.length > PERSON_PHOTO_LIMITS.inputBytes)
|
||
36 36 │ return Result.fail(new PersonPhotoError("PHOTO_TOO_LARGE"));
|
||
37 │ - ····if·(!(await·this.repository.exists(companyId,·personId)))
|
||
38 │ - ······return·Result.fail(new·PersonPhotoError("PERSON_NOT_FOUND"));
|
||
37 │ + ····if·(!(await·this.repository.exists(companyId,·personId)))·{
|
||
38 │ + ······return·Result.fail(new·PersonPhotoError("PERSON_NOT_FOUND"));
|
||
39 │ + ····}
|
||
39 40 │ const processed = await this.processor.optimize(data);
|
||
40 41 │
|
||
|
||
|
||
modules/companies/src/api/application/person-photo.use-cases.ts:41:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━
|
||
|
||
× Block statements are preferred in this position.
|
||
|
||
39 │ const processed = await this.processor.optimize(data);
|
||
40 │
|
||
> 41 │ if (!processed.isSuccess) return Result.fail(processed.error);
|
||
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
42 │
|
||
43 │ return (await this.repository.replace(companyId, personId, processed.data))
|
||
|
||
i Unsafe fix: Wrap the statement with a `JsBlockStatement`
|
||
|
||
41 │ ····if·(!processed.isSuccess)·{·return·Result.fail(processed.error);·}
|
||
│ ++ ++
|
||
|
||
modules/companies/src/api/application/person-photo.use-cases.ts:49:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━
|
||
|
||
× Block statements are preferred in this position.
|
||
|
||
48 │ async remove(companyId: string, personId: string) {
|
||
> 49 │ if (!z.uuid().safeParse(companyId).success || !z.uuid().safeParse(personId).success)
|
||
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
> 50 │ return Result.fail(new PersonPhotoError("INVALID_REQUEST"));
|
||
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
51 │
|
||
52 │ return (await this.repository.replace(companyId, personId, null))
|
||
|
||
i Unsafe fix: Wrap the statement with a `JsBlockStatement`
|
||
|
||
47 47 │
|
||
48 48 │ async remove(companyId: string, personId: string) {
|
||
49 │ - ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success)
|
||
50 │ - ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST"));
|
||
49 │ + ····if·(!z.uuid().safeParse(companyId).success·||·!z.uuid().safeParse(personId).success)·{
|
||
50 │ + ······return·Result.fail(new·PersonPhotoError("INVALID_REQUEST"));
|
||
51 │ + ····}
|
||
51 52 │
|
||
52 53 │ return (await this.repository.replace(companyId, personId, null))
|
||
|
||
|
||
modules/companies/src/api/application/process.use-cases.ts:127:5 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━
|
||
|
||
× Block statements are preferred in this position.
|
||
|
||
125 │ const process = UniqueID.create(id);
|
||
126 │
|
||
> 127 │ if (!(company.isSuccess && process.isSuccess))
|
||
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
> 128 │ return Promise.resolve(Result.fail(new ProcessError("INVALID_REQUEST")));
|
||
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
129 │
|
||
130 │ return this.repository.remove(company.data, process.data);
|
||
|
||
i Unsafe fix: Wrap the statement with a `JsBlockStatement`
|
||
|
||
125 125 │ const process = UniqueID.create(id);
|
||
126 126 │
|
||
127 │ - ····if·(!(company.isSuccess·&&·process.isSuccess))
|
||
128 │ - ······return·Promise.resolve(Result.fail(new·ProcessError("INVALID_REQUEST")));
|
||
127 │ + ····if·(!(company.isSuccess·&&·process.isSuccess))·{
|
||
128 │ + ······return·Promise.resolve(Result.fail(new·ProcessError("INVALID_REQUEST")));
|
||
129 │ + ····}
|
||
129 130 │
|
||
130 131 │ return this.repository.remove(company.data, process.data);
|
||
|
||
|
||
modules/companies/src/api/infrastructure/persistence/migrate-people.ts:11:3 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━
|
||
|
||
× Block statements are preferred in this position.
|
||
|
||
9 │ const columns = await query.describeTable("company_contacts");
|
||
10 │
|
||
> 11 │ if (!columns.photoVersion)
|
||
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
> 12 │ await query.addColumn("company_contacts", "photoVersion", {
|
||
> 13 │ type: DataTypes.STRING(64),
|
||
> 14 │ allowNull: true,
|
||
> 15 │ });
|
||
│ ^^^
|
||
16 │ for (const [name, length] of [
|
||
17 │ ["position", 100],
|
||
|
||
i Unsafe fix: Wrap the statement with a `JsBlockStatement`
|
||
|
||
9 9 │ const columns = await query.describeTable("company_contacts");
|
||
10 10 │
|
||
11 │ - ··if·(!columns.photoVersion)
|
||
11 │ + ··if·(!columns.photoVersion)·{
|
||
12 12 │ await query.addColumn("company_contacts", "photoVersion", {
|
||
13 13 │ type: DataTypes.STRING(64),
|
||
14 14 │ allowNull: true,
|
||
15 │ - ····});
|
||
15 │ + ····});
|
||
16 │ + ··}
|
||
16 17 │ for (const [name, length] of [
|
||
17 18 │ ["position", 100],
|
||
|
||
|
||
modules/companies/src/api/infrastructure/persistence/person-photo-migration.ts:10:3 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━
|
||
|
||
× Block statements are preferred in this position.
|
||
|
||
8 │ );
|
||
9 │
|
||
> 10 │ if (rows.some((row) => row.name === "person_photos")) return;
|
||
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
11 │ await database
|
||
12 │ .getQueryInterface()
|
||
|
||
i Unsafe fix: Wrap the statement with a `JsBlockStatement`
|
||
|
||
10 │ ··if·(rows.some((row)·=>·row.name·===·"person_photos"))·{·return;·}
|
||
│ ++ ++
|
||
|
||
modules/companies/src/api/infrastructure/persistence/sequelize-person-photo.repository.ts:49:7 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━
|
||
|
||
× Block statements are preferred in this position.
|
||
|
||
47 │ });
|
||
48 │
|
||
> 49 │ if (!person) return false;
|
||
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
50 │ if (photo)
|
||
51 │ await PersonPhotoModel.upsert(
|
||
|
||
i Unsafe fix: Wrap the statement with a `JsBlockStatement`
|
||
|
||
49 │ ······if·(!person)·{·return·false;·}
|
||
│ ++ ++
|
||
|
||
modules/companies/src/api/infrastructure/persistence/sequelize-person-photo.repository.ts:50:7 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━
|
||
|
||
× Block statements are preferred in this position.
|
||
|
||
49 │ if (!person) return false;
|
||
> 50 │ if (photo)
|
||
│ ^^^^^^^^^^
|
||
> 51 │ await PersonPhotoModel.upsert(
|
||
> 52 │ { personId, companyId, data: Buffer.from(photo.data), version: photo.version },
|
||
> 53 │ { transaction }
|
||
> 54 │ );
|
||
> 55 │ else await PersonPhotoModel.destroy({ where: { personId }, transaction });
|
||
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
56 │ await person.update({ photoVersion: photo?.version ?? null }, { transaction });
|
||
57 │
|
||
|
||
i Unsafe fix: Wrap the statement with a `JsBlockStatement`
|
||
|
||
48 48 │
|
||
49 49 │ if (!person) return false;
|
||
50 │ - ······if·(photo)
|
||
50 │ + ······if·(photo)·{
|
||
51 51 │ await PersonPhotoModel.upsert(
|
||
52 52 │ { personId, companyId, data: Buffer.from(photo.data), version: photo.version },
|
||
53 53 │ { transaction }
|
||
54 │ - ········);
|
||
54 │ + ········);
|
||
55 │ + ······}
|
||
55 56 │ else await PersonPhotoModel.destroy({ where: { personId }, transaction });
|
||
56 57 │ await person.update({ photoVersion: photo?.version ?? null }, { transaction });
|
||
|
||
|
||
modules/companies/src/api/infrastructure/persistence/sequelize-person-photo.repository.ts:55:7 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━
|
||
|
||
× Block statements are preferred in this position.
|
||
|
||
53 │ { transaction }
|
||
54 │ );
|
||
> 55 │ else await PersonPhotoModel.destroy({ where: { personId }, transaction });
|
||
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
56 │ await person.update({ photoVersion: photo?.version ?? null }, { transaction });
|
||
57 │
|
||
|
||
i Unsafe fix: Wrap the statement with a `JsBlockStatement`
|
||
|
||
55 │ ······else·{·await·PersonPhotoModel.destroy({·where:·{·personId·},·transaction·});·}
|
||
│ ++ ++
|
||
|
||
modules/companies/src/api/infrastructure/person-photo-processor.ts:17:7 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━
|
||
|
||
× Block statements are preferred in this position.
|
||
|
||
15 │ }).metadata();
|
||
16 │
|
||
> 17 │ if (
|
||
│ ^^^^
|
||
> 18 │ !metadata.width ||
|
||
...
|
||
> 23 │ )
|
||
> 24 │ return Result.fail(new PersonPhotoError("INVALID_PHOTO"));
|
||
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
25 │ const output = await sharp(input)
|
||
26 │ .rotate()
|
||
|
||
i Unsafe fix: Wrap the statement with a `JsBlockStatement`
|
||
|
||
21 21 │ metadata.height > PERSON_PHOTO_LIMITS.inputDimension ||
|
||
22 22 │ !["jpeg", "png", "webp"].includes(metadata.format ?? "")
|
||
23 │ - ······)
|
||
24 │ - ········return·Result.fail(new·PersonPhotoError("INVALID_PHOTO"));
|
||
23 │ + ······)·{
|
||
24 │ + ········return·Result.fail(new·PersonPhotoError("INVALID_PHOTO"));
|
||
25 │ + ······}
|
||
25 26 │ const output = await sharp(input)
|
||
26 27 │ .rotate()
|
||
|
||
|
||
modules/companies/src/api/infrastructure/person-photo-processor.ts:34:7 lint/style/useBlockStatements FIXABLE ━━━━━━━━━━
|
||
|
||
× Block statements are preferred in this position.
|
||
|
||
32 │ .toBuffer();
|
||
33 │
|
||
> 34 │ if (output.length > PERSON_PHOTO_LIMITS.outputBytes)
|
||
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
> 35 │ return Result.fail(new PersonPhotoError("INVALID_PHOTO"));
|
||
│ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
36 │
|
||
37 │ return Result.ok({
|
||
|
||
i Unsafe fix: Wrap the statement with a `JsBlockStatement`
|
||
|
||
32 32 │ .toBuffer();
|
||
33 33 │
|
||
34 │ - ······if·(output.length·>·PERSON_PHOTO_LIMITS.outputBytes)
|
||
35 │ - ········return·Result.fail(new·PersonPhotoError("INVALID_PHOTO"));
|
||
34 │ + ······if·(output.length·>·PERSON_PHOTO_LIMITS.outputBytes)·{
|
||
35 │ + ········return·Result.fail(new·PersonPhotoError("INVALID_PHOTO"));
|
||
36 │ + ······}
|
||
36 37 │
|
||
37 38 │ return Result.ok({
|
||
|
||
|
||
The number of diagnostics exceeds the limit allowed. Use --max-diagnostics to increase it.
|
||
Diagnostics not shown: 1.
|
||
Checked 2261 files in 1081ms. No fixes applied.
|
||
Found 15 errors.
|
||
Found 1 warning.
|
||
Found 5 infos.
|
||
lint ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||
|
||
× Some errors were emitted while running checks.
|
||
|
||
|
||
[ELIFECYCLE] Command failed with exit code 1.
|