Skip to content

Commit

Permalink
fix: Removes deprecations (#1439)
Browse files Browse the repository at this point in the history
BREAKING CHANGE: Removes support for deprecated Node 16
BREAKING CHANGE: Removes deprecated `isBasicAuthFromString` - instead use `isBasicAuthAsString`
BREAKING CHANGE: Removes deprecated `InvalidBasicAuthFromString` - instead use `InvalidBasicAuthAsString`
BREAKING CHANGE: Removes deprecated `sanitizeBooleanAsString` - instead use `sanitizeBooleanFromString`
BREAKING CHANGE: Removes deprecated `sanitizeJsonAsString` - instead use `sanitizeJsonFromString`
BREAKING CHANGE: Removes deprecated `sanitizeNumberAsString` - instead use `sanitizeNumberFromString`
  • Loading branch information
ryasmi committed Nov 4, 2023
1 parent 071a77d commit c6a2efb
Show file tree
Hide file tree
Showing 10 changed files with 15 additions and 58 deletions.
10 changes: 0 additions & 10 deletions src/rulr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -84,18 +84,12 @@ export { tuple } from './higherOrderRules/tuple/tuple'
export { union, UnionValidationError } from './higherOrderRules/union/union'
export {
sanitizeBasicAuthFromString,
// eslint-disable-next-line deprecation/deprecation
isBasicAuthFromString,
isBasicAuthAsString,
BasicAuthAsString,
BasicAuth,
// eslint-disable-next-line deprecation/deprecation
InvalidBasicAuthFromString,
InvalidBasicAuthAsString,
} from './sanitizationRules/sanitizeBasicAuthFromString/sanitizeBasicAuthFromString'
export {
// eslint-disable-next-line deprecation/deprecation
sanitizeBooleanAsString,
sanitizeBooleanFromString,
isBooleanAsString,
BooleanAsString,
Expand All @@ -104,16 +98,12 @@ export {
falsyBooleanStrings,
} from './sanitizationRules/sanitizeBooleanFromString/sanitizeBooleanFromString'
export {
// eslint-disable-next-line deprecation/deprecation
sanitizeJsonAsString,
sanitizeJsonFromString,
isJsonAsString,
JsonAsString,
InvalidJsonAsStringError,
} from './sanitizationRules/sanitizeJsonFromString/sanitizeJsonFromString'
export {
// eslint-disable-next-line deprecation/deprecation
sanitizeNumberAsString,
sanitizeNumberFromString,
isNumberAsString,
NumberAsString,
Expand Down
2 changes: 0 additions & 2 deletions src/sanitizationRules/sanitizeBasicAuthFromString/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@

This function uses `rulr.isBasicAuthAsString` and can be used when you want to sanitize an input to be basic auth from a string as shown in the example below. This function should only throw `rulr.InvalidBasicAuthAsString`.

Note: `isBasicAuthFromString` and `InvalidBasicAuthFromString` are deprecated, please use `isBasicAuthAsString` and `InvalidBasicAuthAsString` instead.

```ts
import * as rulr from 'rulr'

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import btoa from 'btoa'
import { sanitizeBasicAuthFromString, BasicAuth as BasicAuth } from '../../rulr'
import {
BasicAuthAsString,
InvalidBasicAuthFromString,
isBasicAuthFromString,
InvalidBasicAuthAsString,
isBasicAuthAsString,
} from './sanitizeBasicAuthFromString'

test('sanitizeBasicAuthFromString should return key and secret for valid tokens', () => {
Expand All @@ -16,48 +16,48 @@ test('sanitizeBasicAuthFromString should return key and secret for valid tokens'
assert.ok(output instanceof BasicAuth)
assert.strictEqual(output.key, key)
assert.strictEqual(output.secret, secret)
assert.ok(isBasicAuthFromString(input))
assert.ok(isBasicAuthAsString(input))
const typeOutput: BasicAuthAsString = input
assert.strictEqual(typeOutput, input)
})

test('sanitizeBasicAuthFromString should now allow value that is not a string', () => {
const input = 10
assert.throws(() => sanitizeBasicAuthFromString(input), InvalidBasicAuthFromString)
assert.strictEqual(isBasicAuthFromString(input), false)
assert.throws(() => sanitizeBasicAuthFromString(input), InvalidBasicAuthAsString)
assert.strictEqual(isBasicAuthAsString(input), false)
})

test('sanitizeBasicAuthFromString should now allow value that uses invalid base64 token', () => {
const input = 'Basic YTp6-'
assert.throws(() => sanitizeBasicAuthFromString(input), InvalidBasicAuthFromString)
assert.strictEqual(isBasicAuthFromString(input), false)
assert.throws(() => sanitizeBasicAuthFromString(input), InvalidBasicAuthAsString)
assert.strictEqual(isBasicAuthAsString(input), false)
})

test('sanitizeBasicAuthFromString should now allow value that is missing a base64 token', () => {
const input = 'Basic '
assert.throws(() => sanitizeBasicAuthFromString(input), InvalidBasicAuthFromString)
assert.strictEqual(isBasicAuthFromString(input), false)
assert.throws(() => sanitizeBasicAuthFromString(input), InvalidBasicAuthAsString)
assert.strictEqual(isBasicAuthAsString(input), false)
})

test('sanitizeBasicAuthFromString should now allow value that is missing a colon separator', () => {
const token = btoa('az')
const input = `Basic ${token}`
assert.throws(() => sanitizeBasicAuthFromString(input), InvalidBasicAuthFromString)
assert.strictEqual(isBasicAuthFromString(input), false)
assert.throws(() => sanitizeBasicAuthFromString(input), InvalidBasicAuthAsString)
assert.strictEqual(isBasicAuthAsString(input), false)
})

test('sanitizeBasicAuthFromString should now allow value that has too many colon separators', () => {
const token = btoa('a:b:c')
const input = `Basic ${token}`
assert.throws(() => sanitizeBasicAuthFromString(input), InvalidBasicAuthFromString)
assert.strictEqual(isBasicAuthFromString(input), false)
assert.throws(() => sanitizeBasicAuthFromString(input), InvalidBasicAuthAsString)
assert.strictEqual(isBasicAuthAsString(input), false)
})

test('sanitizeBasicAuthFromString should now allow value that uses incorrect prefix', () => {
const key = 'a'
const secret = 'z'
const basicAuthToken = `${key}:${secret}`
const input = ` Basic${btoa(basicAuthToken)}`
assert.throws(() => sanitizeBasicAuthFromString(input), InvalidBasicAuthFromString)
assert.strictEqual(isBasicAuthFromString(input), false)
assert.throws(() => sanitizeBasicAuthFromString(input), InvalidBasicAuthAsString)
assert.strictEqual(isBasicAuthAsString(input), false)
})
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,6 @@ export class InvalidBasicAuthAsString extends BaseError {
}
}

/**
* @deprecated - Use `InvalidBasicAuthAsString` instead
**/
export const InvalidBasicAuthFromString = InvalidBasicAuthAsString

// @TODO - Change to basicAuthAsStringSymbol
export const basicAuthFromStringSymbol = Symbol()

Expand All @@ -34,11 +29,6 @@ export function isBasicAuthAsString(input: unknown): input is BasicAuthAsString
)
}

/**
* @deprecated - Use `isBasicAuthAsString` instead
**/
export const isBasicAuthFromString = isBasicAuthAsString

export class BasicAuth {
constructor(public readonly key: string, public readonly secret: string) {}
}
Expand Down
2 changes: 0 additions & 2 deletions src/sanitizationRules/sanitizeBooleanFromString/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@

This function uses `rulr.isBooleanAsString` and can be used when you want to sanitize an input to be a string containing a boolean as shown in the example below. This function should only throw `rulr.InvalidBooleanAsStringError`.

Note: `sanitizeBooleanAsString` is deprecated, please use `sanitizeBooleanFromString` instead.

```ts
import * as rulr from 'rulr'

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,3 @@ export function sanitizeBooleanFromString(input: unknown) {
}
throw new InvalidBooleanAsStringError()
}

/**
* @deprecated - Use `sanitizeBooleanFromString` instead
**/
export const sanitizeBooleanAsString = sanitizeBooleanFromString
2 changes: 0 additions & 2 deletions src/sanitizationRules/sanitizeJsonFromString/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@

This function uses `rulr.isJsonAsString` and can be used when you want to sanitize an input to be a string containing JSON as shown in the example below. This function is a higher order rule as it uses a sub-rule to validate input that is JSON. This function should only throw `rulr.InvalidJsonAsStringError`, `SyntaxError`, and errors from the sub-rule.

Note: `sanitizeJsonAsString` is deprecated, please use `sanitizeJsonFromString` instead.

```ts
import * as rulr from 'rulr'

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,3 @@ export function sanitizeJsonFromString<T>(jsonRule: Rule<T>) {
throw new InvalidJsonAsStringError()
}
}

/**
* @deprecated - Use `sanitizeJsonFromString` instead
**/
export const sanitizeJsonAsString = sanitizeJsonFromString
2 changes: 0 additions & 2 deletions src/sanitizationRules/sanitizeNumberFromString/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@

This function uses `rulr.isNumberAsString` and can be used when you want to sanitize an input to be a string containing a number as shown in the example below. This function is a higher order rule as it uses a sub-rule to validate input that is a number. This function should only throw `rulr.InvalidNumberAsStringError` and errors from the sub-rule.

Note: `sanitizeNumberAsString` is deprecated, please use `sanitizeNumberFromString` instead.

```ts
import * as rulr from 'rulr'

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,3 @@ export function sanitizeNumberFromString<T>(numberRule: Rule<T>) {
throw new InvalidNumberAsStringError()
}
}

/**
* @deprecated - Use `sanitizeNumberFromString` instead
**/
export const sanitizeNumberAsString = sanitizeNumberFromString

0 comments on commit c6a2efb

Please sign in to comment.