Skip to content

Commit

Permalink
Linter: enforce type-only imports and exports
Browse files Browse the repository at this point in the history
  • Loading branch information
larabr committed Sep 18, 2024
1 parent a64cd12 commit 473876f
Show file tree
Hide file tree
Showing 11 changed files with 46 additions and 45 deletions.
7 changes: 4 additions & 3 deletions .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -86,12 +86,13 @@
"@typescript-eslint/naming-convention": ["error", {
"selector": "typeLike",
"format": ["PascalCase", "UPPER_CASE"]
}],
}],
"@typescript-eslint/ban-ts-comment": "off",
"@typescript-eslint/no-unused-vars": ["error"],
"@typescript-eslint/consistent-type-imports": "error",
"@typescript-eslint/consistent-type-exports": "error",
"@typescript-eslint/no-unused-vars": "error",
"@typescript-eslint/no-empty-function": "off",
"@typescript-eslint/indent": ["error", 4],
"@typescript-eslint/comma-dangle": "off"

}
}
2 changes: 1 addition & 1 deletion lib/crypto/argon2.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Argon2S2K, Config, config as defaultConfig } from '../openpgp';
import { Argon2S2K, type Config, config as defaultConfig } from '../openpgp';
import { ARGON2_PARAMS } from '../constants';

type Argon2Params = Config['s2kArgon2Params'] & {
Expand Down
2 changes: 1 addition & 1 deletion lib/key/check.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { AlgorithmInfo, PublicKey, enums } from '../openpgp';
import { type AlgorithmInfo, type PublicKey, enums } from '../openpgp';

/**
* Checks whether the primary key and the subkeys meet our recommended security requirements.
Expand Down
2 changes: 1 addition & 1 deletion lib/key/forwarding.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { KDFParams, PrivateKey, UserID, SecretSubkeyPacket, SecretKeyPacket, MaybeArray, SubkeyOptions, enums, Subkey } from '../openpgp';
import { type PrivateKey, type UserID, type SecretSubkeyPacket, type MaybeArray, type SubkeyOptions, type Subkey, KDFParams, SecretKeyPacket, enums } from '../openpgp';
import { generateKey, reformatKey } from './utils';
import { serverTime } from '../serverTime';
import { bigIntToUint8Array, mod, modInv, uint8ArrayToBigInt } from '../bigInteger';
Expand Down
24 changes: 12 additions & 12 deletions lib/key/utils.d.ts
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
import {
generateKey,
reformatKey,
generateSessionKey as openpgp_generateSessionKey,
PrivateKey,
PublicKey,
Key,
SessionKey,
KeyOptions as GenerateKeyOptions,
UserID,
PartialConfig,
Signature,
Message
type generateSessionKey as openpgp_generateSessionKey,
type PrivateKey,
type PublicKey,
type Key,
type SessionKey,
type KeyOptions as GenerateKeyOptions,
type UserID,
type PartialConfig,
type Signature,
type Message
} from '../openpgp';
import { MaybeArray } from '../utils';
import type { MaybeArray } from '../utils';

export { generateKey, reformatKey, GenerateKeyOptions };
export { generateKey, reformatKey, type GenerateKeyOptions };

export interface ReformatKeyOptions {
privateKey: PrivateKey;
Expand Down
4 changes: 2 additions & 2 deletions lib/message/processMIME.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import { verifyMessage } from './verify';
import { VERIFICATION_STATUS, MAX_ENC_HEADER_LENGTH } from '../constants';
import { serverTime } from '../serverTime';
import { parseMail, generateFileName } from './parseMail';
import { readSignature, PublicKey, Signature as OpenPGPSignature } from '../openpgp';
import { arrayToHexString, utf8ArrayToString, MaybeArray } from '../utils';
import { readSignature, type PublicKey, type Signature as OpenPGPSignature } from '../openpgp';
import { arrayToHexString, utf8ArrayToString, type MaybeArray } from '../utils';

import type { Attachment } from './parseMail';

Expand Down
4 changes: 2 additions & 2 deletions lib/message/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import {
enums,
unarmor,
readMessage,
BasePacket as OpenPGPPacket,
AnyPacket
type BasePacket as OpenPGPPacket,
type AnyPacket
} from '../openpgp';
import type { OpenPGPMessage } from '../pmcrypto';

Expand Down
4 changes: 2 additions & 2 deletions lib/message/verify.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ import type {
CleartextMessage,
Signature as OpenPGPSignature
} from '../openpgp';
import { VERIFICATION_STATUS } from '../constants';
import { ContextVerificationOptions } from './context';
import type { VERIFICATION_STATUS } from '../constants';
import type { ContextVerificationOptions } from './context';

// Streaming not supported when verifying detached signatures
export interface VerifyOptionsPmcrypto<T extends Data> extends Omit<VerifyOptions, 'message'> {
Expand Down
36 changes: 18 additions & 18 deletions lib/pmcrypto.d.ts
Original file line number Diff line number Diff line change
@@ -1,32 +1,32 @@
/* eslint-disable @typescript-eslint/indent */
import {
DecryptOptions,
DecryptMessageResult as openpgp_DecryptMessageResult,
Message,
type DecryptOptions,
type DecryptMessageResult as openpgp_DecryptMessageResult,
type Message,
Key,
Signature,
SignOptions,
EncryptOptions,
type Signature,
type SignOptions,
type EncryptOptions,
PublicKey,
PrivateKey,
SessionKey,
EncryptSessionKeyOptions,
decryptSessionKeys as openpgp_decryptSessionKeys,
type SessionKey,
type EncryptSessionKeyOptions,
type decryptSessionKeys as openpgp_decryptSessionKeys,
decryptKey,
encryptKey,
WebStream,
type WebStream,
readMessage, readSignature, readCleartextMessage,
readKey, readKeys, readPrivateKey, readPrivateKeys,
PartialConfig,
AlgorithmInfo
type PartialConfig,
type AlgorithmInfo
} from 'openpgp/lightweight';

import { VERIFICATION_STATUS, SIGNATURE_TYPES } from './constants';
import type { ContextSigningOptions, ContextVerificationOptions } from './message/context';

export function init(): void;

export { VERIFICATION_STATUS, SIGNATURE_TYPES, PartialConfig };
export { VERIFICATION_STATUS, SIGNATURE_TYPES, type PartialConfig };
export { ContextError } from './message/context';

export type OpenPGPKey = Key;
Expand All @@ -47,8 +47,8 @@ export {
decryptKey, encryptKey,
readMessage, readSignature, readCleartextMessage,
readKey, readKeys, readPrivateKey, readPrivateKeys,
PrivateKey, PublicKey, Key, SessionKey,
AlgorithmInfo
PrivateKey, PublicKey, Key, type SessionKey,
type AlgorithmInfo
};

export { generateForwardingMaterial, doesKeySupportForwarding, isForwardingKey } from './key/forwarding';
Expand Down Expand Up @@ -97,7 +97,7 @@ export function decryptMessage<DataType extends MaybeWebStream<Data>, FormatType

export type Data = string | Uint8Array;
export type MaybeWebStream<T extends Data> = T | WebStream<T>;
export { WebStream };
export type { WebStream };

export interface EncryptOptionsPmcrypto<T extends MaybeWebStream<Data>> extends Omit<EncryptOptions, 'message' | 'signatureNotations'> {
textData?: T extends MaybeWebStream<string> ? T : never;
Expand Down Expand Up @@ -178,13 +178,13 @@ export {
} from './message/utils';

export { SHA256, SHA512, unsafeMD5, unsafeSHA1 } from './crypto/hash';
export { argon2, Argon2Options } from './crypto/argon2';
export { argon2, type Argon2Options } from './crypto/argon2';

export { verifyMessage, verifyCleartextMessage } from './message/verify';
export type { VerifyCleartextOptionsPmcrypto, VerifyMessageResult, VerifyOptionsPmcrypto } from './message/verify';
export type { ContextSigningOptions, ContextVerificationOptions };

export { MIMEAttachment, ProcessMIMEOptions, default as processMIME, ProcessMIMEResult } from './message/processMIME';
export { type MIMEAttachment, type ProcessMIMEOptions, default as processMIME, type ProcessMIMEResult } from './message/processMIME';

export { serverTime, updateServerTime } from './serverTime';
export { checkKeyStrength, checkKeyCompatibility } from './key/check';
2 changes: 1 addition & 1 deletion test/key/forwarding.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { expect } from 'chai';
import { ec as EllipticCurve } from 'elliptic';
import BN from 'bn.js';

import { decryptKey, enums, KeyID, PacketList } from '../../lib/openpgp';
import { decryptKey, enums, type KeyID, type PacketList } from '../../lib/openpgp';
import { generateKey, generateForwardingMaterial, doesKeySupportForwarding, encryptMessage, decryptMessage, readMessage, readKey, readPrivateKey, serverTime } from '../../lib';
import { computeProxyParameter, isForwardingKey } from '../../lib/key/forwarding';
import { hexStringToArray, concatArrays, arrayToHexString } from '../../lib/utils';
Expand Down
4 changes: 2 additions & 2 deletions test/message/encryptMessage.spec.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { expect } from 'chai';
import { readToEnd, toStream, WebStream } from '@openpgp/web-stream-tools';
import { config as globalConfig, CompressedDataPacket, enums, SymEncryptedSessionKeyPacket, PartialConfig, SymEncryptedIntegrityProtectedDataPacket } from '../../lib/openpgp';
import { readToEnd, toStream, type WebStream } from '@openpgp/web-stream-tools';
import { config as globalConfig, type CompressedDataPacket, enums, SymEncryptedSessionKeyPacket, type PartialConfig, SymEncryptedIntegrityProtectedDataPacket } from '../../lib/openpgp';

import { decryptKey, readPrivateKey, verifyMessage, encryptMessage, decryptMessage, generateSessionKey, readSignature, readMessage, encryptSessionKey, decryptSessionKey } from '../../lib';
import { hexStringToArray, arrayToBinaryString, stringToUtf8Array } from '../../lib/utils';
Expand Down

0 comments on commit 473876f

Please sign in to comment.