Add eslint rule and fix as many issues as possible

This commit is contained in:
Khoa Le
2023-06-19 23:42:04 -04:00
parent e9eacc445d
commit 9d33e4756b
689 changed files with 9446 additions and 21821 deletions
@@ -1,18 +1,18 @@
/* eslint-disable @typescript-eslint/naming-convention */
import crypto from 'crypto';
import crypto from "crypto";
import * as yup from 'yup';
import * as yup from "yup";
import {
decryptAssymmetric,
encryptSymmetric
} from '@app/components/utilities/cryptography/crypto';
import { BatchSecretDTO, DecryptedSecret } from '@app/hooks/api/secrets/types';
} from "@app/components/utilities/cryptography/crypto";
import { BatchSecretDTO, DecryptedSecret } from "@app/hooks/api/secrets/types";
export enum SecretActionType {
Created = 'created',
Modified = 'modified',
Deleted = 'deleted'
Created = "created",
Modified = "modified",
Deleted = "deleted"
}
export const DEFAULT_SECRET_VALUE = {
@@ -20,9 +20,9 @@ export const DEFAULT_SECRET_VALUE = {
overrideAction: undefined,
idOverride: undefined,
valueOverride: undefined,
comment: '',
key: '',
value: '',
comment: "",
key: "",
value: "",
tags: []
};
@@ -32,12 +32,12 @@ const secretSchema = yup.object({
.string()
.trim()
.required()
.label('Secret key')
.test('starts-with-number', 'Should start with an alphabet', (val) =>
.label("Secret key")
.test("starts-with-number", "Should start with an alphabet", (val) =>
Boolean(val?.charAt(0)?.match(/[a-zA-Z]/i))
)
.test({
name: 'duplicate-keys',
name: "duplicate-keys",
// TODO:(akhilmhdh) ts keeps throwing from not found need to see how to resolve this
test: (val, ctx: any) => {
const secrets: Array<{ key: string }> = ctx?.from?.[1]?.value?.secrets || [];
@@ -49,7 +49,7 @@ const secretSchema = yup.object({
if (pos.length <= 1) {
return true;
}
return ctx.createError({ message: `Same key in row ${pos.join(', ')}` });
return ctx.createError({ message: `Same key in row ${pos.join(", ")}` });
}
}),
value: yup.string().trim(),
@@ -75,14 +75,14 @@ export type FormData = yup.InferType<typeof schema>;
export type TSecretDetailsOpen = { index: number; id: string };
export type TSecOverwriteOpt = { secrets: Record<string, { comments: string[]; value: string }> };
export const downloadSecret = (secrets: FormData['secrets'] = [], env: string = 'unknown') => {
export const downloadSecret = (secrets: FormData["secrets"] = [], env: string = "unknown") => {
const finalSecret = secrets.map(({ key, value, valueOverride, overrideAction, comment }) => ({
key,
value: overrideAction && overrideAction !== SecretActionType.Deleted ? valueOverride : value,
comment
}));
let file = '';
let file = "";
finalSecret.forEach(({ key, value, comment }) => {
if (comment) {
file += `# ${comment}\n${key}=${value}\n`;
@@ -93,7 +93,7 @@ export const downloadSecret = (secrets: FormData['secrets'] = [], env: string =
const blob = new Blob([file]);
const fileDownloadUrl = URL.createObjectURL(blob);
const alink = document.createElement('a');
const alink = document.createElement("a");
alink.href = fileDownloadUrl;
alink.download = `${env}.env`;
alink.click();
@@ -121,7 +121,7 @@ const encryptASecret = (randomBytes: string, key: string, value?: string, commen
iv: secretValueIV,
tag: secretValueTag
} = encryptSymmetric({
plaintext: value ?? '',
plaintext: value ?? "",
key: randomBytes
});
@@ -131,7 +131,7 @@ const encryptASecret = (randomBytes: string, key: string, value?: string, commen
iv: secretCommentIV,
tag: secretCommentTag
} = encryptSymmetric({
plaintext: comment ?? '',
plaintext: comment ?? "",
key: randomBytes
});
@@ -158,18 +158,18 @@ const deepCompareSecrets = (lhs: DecryptedSecret, rhs: any) =>
export const transformSecretsToBatchSecretReq = (
deletedSecretIds: string[],
latestFileKey: any,
secrets: FormData['secrets'],
secrets: FormData["secrets"],
intialValues: DecryptedSecret[] = []
) => {
// deleted secrets
const secretsToBeDeleted: BatchSecretDTO['requests'] = deletedSecretIds.map((id) => ({
method: 'DELETE',
const secretsToBeDeleted: BatchSecretDTO["requests"] = deletedSecretIds.map((id) => ({
method: "DELETE",
secret: { _id: id }
}));
const secretsToBeUpdated: BatchSecretDTO['requests'] = [];
const secretsToBeCreated: BatchSecretDTO['requests'] = [];
const PRIVATE_KEY = localStorage.getItem('PRIVATE_KEY') as string;
const secretsToBeUpdated: BatchSecretDTO["requests"] = [];
const secretsToBeCreated: BatchSecretDTO["requests"] = [];
const PRIVATE_KEY = localStorage.getItem("PRIVATE_KEY") as string;
const randomBytes = latestFileKey
? decryptAssymmetric({
@@ -178,7 +178,7 @@ export const transformSecretsToBatchSecretReq = (
publicKey: latestFileKey.sender.publicKey,
privateKey: PRIVATE_KEY
})
: crypto.randomBytes(16).toString('hex');
: crypto.randomBytes(16).toString("hex");
secrets?.forEach((secret) => {
const {
@@ -193,9 +193,9 @@ export const transformSecretsToBatchSecretReq = (
} = secret;
if (!idOverride && overrideAction === SecretActionType.Created) {
secretsToBeCreated.push({
method: 'POST',
method: "POST",
secret: {
type: 'personal',
type: "personal",
tags,
secretName: key,
...encryptASecret(randomBytes, key, valueOverride, comment)
@@ -205,9 +205,9 @@ export const transformSecretsToBatchSecretReq = (
// to be created ones as they don't have server generated id
if (!_id) {
secretsToBeCreated.push({
method: 'POST',
method: "POST",
secret: {
type: 'shared',
type: "shared",
tags,
secretName: key,
...encryptASecret(randomBytes, key, value, comment)
@@ -221,10 +221,10 @@ export const transformSecretsToBatchSecretReq = (
const initialSecretValue = intialValues?.find(({ _id: secId }) => secId === _id)!;
if (!deepCompareSecrets(initialSecretValue, secret)) {
secretsToBeUpdated.push({
method: 'PATCH',
method: "PATCH",
secret: {
_id,
type: 'shared',
type: "shared",
tags,
secretName: key,
...encryptASecret(randomBytes, key, value, comment)
@@ -235,16 +235,16 @@ export const transformSecretsToBatchSecretReq = (
if (idOverride) {
// if action is deleted meaning override has been removed but id is kept to collect at this point
if (overrideAction === SecretActionType.Deleted) {
secretsToBeDeleted.push({ method: 'DELETE', secret: { _id: idOverride } });
secretsToBeDeleted.push({ method: "DELETE", secret: { _id: idOverride } });
} else {
// if not deleted action then as id is there its an updated
const initialSecretValue = intialValues?.find(({ _id: secId }) => secId === _id)!;
if (!deepCompareSecrets(initialSecretValue, secret)) {
secretsToBeUpdated.push({
method: 'PATCH',
method: "PATCH",
secret: {
_id: idOverride,
type: 'personal',
type: "personal",
tags,
secretName: key,
...encryptASecret(randomBytes, key, valueOverride, comment)