From d9cb5734d779df26c3e717a9f4f23d18b856dc5f Mon Sep 17 00:00:00 2001 From: Filip Skokan Date: Sun, 15 Nov 2020 12:33:42 +0100 Subject: [PATCH] fix(typescript): fix compiling by adding .d.ts files for runtime modules --- .gitignore | 2 +- package.json | 5 +++-- src/.eslintrc.json | 2 +- src/runtime/aesgcmkw.d.ts | 3 +++ src/runtime/aeskw.d.ts | 3 +++ src/runtime/base64url.d.ts | 3 +++ src/runtime/decrypt.d.ts | 3 +++ src/runtime/digest.d.ts | 3 +++ src/runtime/ecdhes.d.ts | 6 ++++++ src/runtime/encrypt.d.ts | 3 +++ src/runtime/fetch.d.ts | 2 ++ src/runtime/generate.d.ts | 11 +++++++++++ src/runtime/interfaces.d.ts | 8 ++++++++ src/runtime/jwk_to_key.d.ts | 3 +++ src/runtime/pbes2kw.d.ts | 3 +++ src/runtime/random.d.ts | 3 +++ src/runtime/rsaes.d.ts | 3 +++ src/runtime/sign.d.ts | 3 +++ src/runtime/verify.d.ts | 3 +++ src/runtime/zlib.d.ts | 3 +++ 20 files changed, 71 insertions(+), 4 deletions(-) create mode 100644 src/runtime/aesgcmkw.d.ts create mode 100644 src/runtime/aeskw.d.ts create mode 100644 src/runtime/base64url.d.ts create mode 100644 src/runtime/decrypt.d.ts create mode 100644 src/runtime/digest.d.ts create mode 100644 src/runtime/ecdhes.d.ts create mode 100644 src/runtime/encrypt.d.ts create mode 100644 src/runtime/fetch.d.ts create mode 100644 src/runtime/generate.d.ts create mode 100644 src/runtime/jwk_to_key.d.ts create mode 100644 src/runtime/pbes2kw.d.ts create mode 100644 src/runtime/random.d.ts create mode 100644 src/runtime/rsaes.d.ts create mode 100644 src/runtime/sign.d.ts create mode 100644 src/runtime/verify.d.ts create mode 100644 src/runtime/zlib.d.ts diff --git a/.gitignore b/.gitignore index 8e8c1e8b..b8e76dca 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,6 @@ # crypto runtime copies src/runtime/*.ts -+src/runtime/interfaces.d.ts ++src/runtime/*.d.ts # cjs clone of the test suite test/cjs diff --git a/package.json b/package.json index 10a5bf5f..9f0a12fa 100644 --- a/package.json +++ b/package.json @@ -425,8 +425,9 @@ "dist/**/*.js", "src/**/*.d.ts", "src/**/*.ts", + "!src/runtime/*/*.ts", "!src/runtime/*.ts", - "src/runtime/interfaces.d.ts" + "src/runtime/*.d.ts" ], "scripts": { "build": "tsc", @@ -447,7 +448,7 @@ "runtime-node-webcrypto": "run-s runtime:clear runtime:browser:* && cp ./src/runtime/node/webcrypto.ts ./src/runtime/ && cp ./src/runtime/node/fetch.ts ./src/runtime/ && cp ./src/runtime/node/base64url.ts ./src/runtime/ && cp ./src/runtime/node/zlib.ts ./src/runtime/ && run-s runtime:refs", "runtime:browser:copy": "cp ./src/runtime/browser/*.ts ./src/runtime", "runtime:clear": "run-s -s runtime:find | xargs -0 rm -f", - "runtime:find": "find src/runtime -not -name 'interfaces.d.ts' -maxdepth 1 -type f -print0", + "runtime:find": "find src/runtime -not -name '*.d.ts' -maxdepth 1 -type f -print0", "runtime:node:copy": "cp ./src/runtime/node/*.ts ./src/runtime", "runtime:refs": "run-s -s runtime:find | xargs -0 sed -i '' -e \"s/'\\.\\.\\//'\\.\\//g\" -e \"s/'\\.\\/\\.\\./'../g\"", "test": "npm run-script test-rollup && ava", diff --git a/src/.eslintrc.json b/src/.eslintrc.json index df09868e..712c6ecc 100644 --- a/src/.eslintrc.json +++ b/src/.eslintrc.json @@ -34,5 +34,5 @@ "globals": { "window": "readonly" }, - "ignorePatterns": ["src/runtime/*/*.ts", "src/runtime/webcrypto.ts", "dist"] + "ignorePatterns": ["src/runtime/*/*.ts", "src/runtime/webcrypto.ts", "dist", "src/runtime/*.d.ts"] } diff --git a/src/runtime/aesgcmkw.d.ts b/src/runtime/aesgcmkw.d.ts new file mode 100644 index 00000000..38014a76 --- /dev/null +++ b/src/runtime/aesgcmkw.d.ts @@ -0,0 +1,3 @@ +import type { AesGcmKwUnwrapFunction, AesGcmKwWrapFunction } from './interfaces.d'; +export declare const wrap: AesGcmKwWrapFunction; +export declare const unwrap: AesGcmKwUnwrapFunction; diff --git a/src/runtime/aeskw.d.ts b/src/runtime/aeskw.d.ts new file mode 100644 index 00000000..66cf8bc6 --- /dev/null +++ b/src/runtime/aeskw.d.ts @@ -0,0 +1,3 @@ +import type { AesKwUnwrapFunction, AesKwWrapFunction } from './interfaces.d'; +export declare const wrap: AesKwWrapFunction; +export declare const unwrap: AesKwUnwrapFunction; diff --git a/src/runtime/base64url.d.ts b/src/runtime/base64url.d.ts new file mode 100644 index 00000000..9d12a10d --- /dev/null +++ b/src/runtime/base64url.d.ts @@ -0,0 +1,3 @@ +import type { Base64UrlDecode, Base64UrlEncode } from './interfaces.d'; +export declare const encode: Base64UrlEncode; +export declare const decode: Base64UrlDecode; diff --git a/src/runtime/decrypt.d.ts b/src/runtime/decrypt.d.ts new file mode 100644 index 00000000..8708b890 --- /dev/null +++ b/src/runtime/decrypt.d.ts @@ -0,0 +1,3 @@ +import type { DecryptFunction } from './interfaces.d'; +declare const decrypt: DecryptFunction; +export default decrypt; diff --git a/src/runtime/digest.d.ts b/src/runtime/digest.d.ts new file mode 100644 index 00000000..e072a733 --- /dev/null +++ b/src/runtime/digest.d.ts @@ -0,0 +1,3 @@ +import type { AsyncOrSync } from '../types.i.d' +declare const _default: (digest: string, data: Uint8Array) => AsyncOrSync; +export default _default; diff --git a/src/runtime/ecdhes.d.ts b/src/runtime/ecdhes.d.ts new file mode 100644 index 00000000..7b99495a --- /dev/null +++ b/src/runtime/ecdhes.d.ts @@ -0,0 +1,6 @@ +import type { EcdhAllowedFunction, EcdhESDeriveKeyFunction, EphemeralKeyToPublicJwkFunction, GenerateEpkFunction, PublicJwkToEphemeralKeyFunction } from './interfaces.d'; +export declare const deriveKey: EcdhESDeriveKeyFunction; +export declare const ephemeralKeyToPublicJWK: EphemeralKeyToPublicJwkFunction; +export declare const generateEpk: GenerateEpkFunction; +export declare const publicJwkToEphemeralKey: PublicJwkToEphemeralKeyFunction; +export declare const ecdhAllowed: EcdhAllowedFunction; diff --git a/src/runtime/encrypt.d.ts b/src/runtime/encrypt.d.ts new file mode 100644 index 00000000..fff91590 --- /dev/null +++ b/src/runtime/encrypt.d.ts @@ -0,0 +1,3 @@ +import type { EncryptFunction } from './interfaces.d'; +declare const encrypt: EncryptFunction; +export default encrypt; diff --git a/src/runtime/fetch.d.ts b/src/runtime/fetch.d.ts new file mode 100644 index 00000000..d84a1169 --- /dev/null +++ b/src/runtime/fetch.d.ts @@ -0,0 +1,2 @@ +declare const _default: (url: URL, timeout: number) => Promise; +export default _default; diff --git a/src/runtime/generate.d.ts b/src/runtime/generate.d.ts new file mode 100644 index 00000000..61d259b7 --- /dev/null +++ b/src/runtime/generate.d.ts @@ -0,0 +1,11 @@ +import type { KeyObject } from 'crypto'; +import type { KeyLike } from '../types.d'; +export declare function generateSecret(alg: string): Promise; +interface Options { + crv?: string; +} +export declare function generateKeyPair(alg: string, options?: Options): Promise<{ + privateKey: CryptoKey | KeyObject, + publicKey: CryptoKey | KeyObject +}>; +export {}; diff --git a/src/runtime/interfaces.d.ts b/src/runtime/interfaces.d.ts index a4b93ab2..12000264 100644 --- a/src/runtime/interfaces.d.ts +++ b/src/runtime/interfaces.d.ts @@ -109,3 +109,11 @@ export interface DecryptFunction { additionalData: Uint8Array, ): Promise } +// TODO: +export interface FetchFunction { + (url: URL, timeout: number): Promise +} +// TODO: +export interface DigestFunction { + (digest: string, data: Uint8Array): AsyncOrSync +} diff --git a/src/runtime/jwk_to_key.d.ts b/src/runtime/jwk_to_key.d.ts new file mode 100644 index 00000000..99490257 --- /dev/null +++ b/src/runtime/jwk_to_key.d.ts @@ -0,0 +1,3 @@ +import type { KeyLike, JWK } from '../types.d'; +declare const _default: (jwk: JWK) => Promise; +export default _default; diff --git a/src/runtime/pbes2kw.d.ts b/src/runtime/pbes2kw.d.ts new file mode 100644 index 00000000..d677b11d --- /dev/null +++ b/src/runtime/pbes2kw.d.ts @@ -0,0 +1,3 @@ +import type { Pbes2KWDecryptFunction, Pbes2KWEncryptFunction } from './interfaces.d'; +export declare const encrypt: Pbes2KWEncryptFunction; +export declare const decrypt: Pbes2KWDecryptFunction; diff --git a/src/runtime/random.d.ts b/src/runtime/random.d.ts new file mode 100644 index 00000000..e46f1489 --- /dev/null +++ b/src/runtime/random.d.ts @@ -0,0 +1,3 @@ +import type { GetRandomValuesFunction } from './interfaces.d'; +declare const random: GetRandomValuesFunction; +export default random; diff --git a/src/runtime/rsaes.d.ts b/src/runtime/rsaes.d.ts new file mode 100644 index 00000000..1ed4efc8 --- /dev/null +++ b/src/runtime/rsaes.d.ts @@ -0,0 +1,3 @@ +import type { RsaEsDecryptFunction, RsaEsEncryptFunction } from './interfaces.d'; +export declare const encrypt: RsaEsEncryptFunction; +export declare const decrypt: RsaEsDecryptFunction; diff --git a/src/runtime/sign.d.ts b/src/runtime/sign.d.ts new file mode 100644 index 00000000..1d60c09b --- /dev/null +++ b/src/runtime/sign.d.ts @@ -0,0 +1,3 @@ +import type { SignFunction } from './interfaces.d'; +declare const sign: SignFunction; +export default sign; diff --git a/src/runtime/verify.d.ts b/src/runtime/verify.d.ts new file mode 100644 index 00000000..666aa518 --- /dev/null +++ b/src/runtime/verify.d.ts @@ -0,0 +1,3 @@ +import type { VerifyFunction } from './interfaces.d'; +declare const verify: VerifyFunction; +export default verify; diff --git a/src/runtime/zlib.d.ts b/src/runtime/zlib.d.ts new file mode 100644 index 00000000..88877e14 --- /dev/null +++ b/src/runtime/zlib.d.ts @@ -0,0 +1,3 @@ +import type { InflateFunction, DeflateFunction } from '../types.d'; +export declare const inflate: InflateFunction; +export declare const deflate: DeflateFunction;