From 56c9ebef900f8fa034bdd3edb4fe62993678023d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20B=C5=82a=C5=BCejewicz=20=28Peter=20Blazejewicz=29?= Date: Sun, 12 Jul 2020 21:37:22 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=A4=96=20Merge=20PR=20#46019=20feat(is-se?= =?UTF-8?q?cret):=20new=20type=20definition=20by=20@peterblazejewicz?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is a redo of staled #45475 The original PR author is listed here as the owner. This commit redos details of original PR as per comments - use default exports as per DT template and Don't/Do's - use default `tslint.json` without non essential overrides /cc @wrumsby https://github.com/watson/is-secret#readme Thanks! --- types/is-secret/index.d.ts | 23 +++++++++++++++++++++++ types/is-secret/is-secret-tests.ts | 20 ++++++++++++++++++++ types/is-secret/tsconfig.json | 23 +++++++++++++++++++++++ types/is-secret/tslint.json | 1 + 4 files changed, 67 insertions(+) create mode 100644 types/is-secret/index.d.ts create mode 100644 types/is-secret/is-secret-tests.ts create mode 100644 types/is-secret/tsconfig.json create mode 100644 types/is-secret/tslint.json diff --git a/types/is-secret/index.d.ts b/types/is-secret/index.d.ts new file mode 100644 index 0000000000..c5d036146f --- /dev/null +++ b/types/is-secret/index.d.ts @@ -0,0 +1,23 @@ +// Type definitions for is-secret 1.2 +// Project: https://github.com/watson/is-secret#readme +// Definitions by: Walter Rumsby +// Piotr Błażejewicz +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/** + * A distributed maintained collection of patterns that indicate that something probably is secret. + * This is useful if you want to filter sensitive values in a data set. + * This module uses a very simple algorithm that will not catch everything. Use at your own risk. + */ + +/** + * Validates the given string against a list of key names known to typically indicate secret data. + * Returns `true` if the string is considered secret. Otherwise `false`. + */ +export function key(str: string): boolean; + +/** + * Validates the given string against a list of patterns that indicates secret data. + * Returns `true` if the string is considered secret. Otherwise `false`. + */ +export function value(str: string): boolean; diff --git a/types/is-secret/is-secret-tests.ts b/types/is-secret/is-secret-tests.ts new file mode 100644 index 0000000000..a54c8ad9c3 --- /dev/null +++ b/types/is-secret/is-secret-tests.ts @@ -0,0 +1,20 @@ +import isSecret = require('is-secret'); + +interface Data { + username: string; + password: string; + card: string; +} + +const data: Data = { + username: 'watson', + password: 'f8bY2fg8', + card: '1234 1234 1234 1234', // credit card number +}; + +if (isSecret.key('password') || isSecret.value(data.password)) { + data.password = '********'; +} + +isSecret.key('secret-key'); // $ExpectType boolean +isSecret.value('secret-value'); // $ExpectType boolean diff --git a/types/is-secret/tsconfig.json b/types/is-secret/tsconfig.json new file mode 100644 index 0000000000..9db5d85f28 --- /dev/null +++ b/types/is-secret/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictFunctionTypes": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "is-secret-tests.ts" + ] +} diff --git a/types/is-secret/tslint.json b/types/is-secret/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/is-secret/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }