Skip to content

Commit

Permalink
Revert enum type change for PrefixSecurityEnum
Browse files Browse the repository at this point in the history
  • Loading branch information
colincasey committed Apr 15, 2024
1 parent 7ec0c8b commit b241544
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 116 deletions.
83 changes: 0 additions & 83 deletions api/docs/tough-cookie.prefixsecurity.md

This file was deleted.

10 changes: 5 additions & 5 deletions api/tough-cookie.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -281,11 +281,11 @@ export function permuteDomain(domain: string, allowSpecialUseDomain?: boolean):
export function permutePath(path: string): string[];

// @public
export enum PrefixSecurity {
DISABLED = "unsafe-disabled",
SILENT = "silent",
STRICT = "strict"
}
export const PrefixSecurityEnum: Readonly<{
SILENT: "silent";
STRICT: "strict";
DISABLED: "unsafe-disabled";
}>;

// @public (undocumented)
export class Store {
Expand Down
8 changes: 4 additions & 4 deletions lib/__tests__/cookiePrefixes.spec.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { PrefixSecurity } from '../cookie/constants'
import { PrefixSecurityEnum } from '../cookie/constants'
import { CookieJar } from '../cookie/cookieJar'

let cookieJar: CookieJar
Expand All @@ -11,7 +11,7 @@ describe('When `prefixSecurity` is enabled for `CookieJar`', () => {
cookieJar = new CookieJar(null, {
prefixSecurity: 'silent',
})
expect(cookieJar.prefixSecurity).toBe(PrefixSecurity.SILENT)
expect(cookieJar.prefixSecurity).toBe(PrefixSecurityEnum.SILENT)
})

describe('__Secure prefix', () => {
Expand Down Expand Up @@ -106,7 +106,7 @@ describe('When `prefixSecurity` is enabled for `CookieJar`', () => {
cookieJar = new CookieJar(null, {
prefixSecurity: 'strict',
})
expect(cookieJar.prefixSecurity).toBe(PrefixSecurity.STRICT)
expect(cookieJar.prefixSecurity).toBe(PrefixSecurityEnum.STRICT)
})

describe('__Secure prefix', () => {
Expand Down Expand Up @@ -173,7 +173,7 @@ describe('When `prefixSecurity` is enabled for `CookieJar`', () => {
cookieJar = new CookieJar(null, {
prefixSecurity: 'unsafe-disabled',
})
expect(cookieJar.prefixSecurity).toBe(PrefixSecurity.DISABLED)
expect(cookieJar.prefixSecurity).toBe(PrefixSecurityEnum.DISABLED)
})

describe('__Secure prefix', () => {
Expand Down
27 changes: 12 additions & 15 deletions lib/cookie/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,20 @@
* Cookie prefixes are a way to indicate that a given cookie was set with a set of attributes simply by inspecting the
* first few characters of the cookie's name. These are defined in {@link https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis-13#section-4.1.3 | RFC6265bis - Section 4.1.3}.
*
* The following values can be used to configure how a {@link CookieJar} enforces attribute restrictions for Cookie prefixes.
* The following values can be used to configure how a {@link CookieJar} enforces attribute restrictions for Cookie prefixes:
*
* - `silent` - Enable cookie prefix checking but silently ignores the cookie if conditions are not met. This is the default configuration for a {@link CookieJar}.
*
* - `strict` - Enables cookie prefix checking and will raise an error if conditions are not met.
*
* - `unsafe-disabled` - Disables cookie prefix checking.
* @public
*/
export enum PrefixSecurity {
/**
* Enable cookie prefix checking but silently ignores the cookie if conditions are not met. This is the default configuration for a {@link CookieJar}.
*/
SILENT = 'silent',
/**
* Enables cookie prefix checking and will raise an error if conditions are not met.
*/
STRICT = 'strict',
/**
* Disables cookie prefix checking.
*/
DISABLED = 'unsafe-disabled',
}
export const PrefixSecurityEnum = Object.freeze({
SILENT: 'silent',
STRICT: 'strict',
DISABLED: 'unsafe-disabled',
})

const IP_V6_REGEX = `
\\[?(?:
Expand Down
17 changes: 9 additions & 8 deletions lib/cookie/cookieJar.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import {
import { canonicalDomain } from './canonicalDomain'
import {
IP_V6_REGEX_OBJECT,
PrefixSecurity,
PrefixSecurityEnum,
SerializedCookieJar,
} from './constants'
import { defaultPath } from './defaultPath'
Expand Down Expand Up @@ -135,22 +135,23 @@ function isHostPrefixConditionMet(cookie: Cookie): boolean {
)
}

type PrefixSecurityValue = (typeof PrefixSecurity)[keyof typeof PrefixSecurity]
type PrefixSecurityValue =
(typeof PrefixSecurityEnum)[keyof typeof PrefixSecurityEnum]
function getNormalizedPrefixSecurity(
prefixSecurity: string,
): PrefixSecurityValue {
if (prefixSecurity != null) {
const normalizedPrefixSecurity = prefixSecurity.toLowerCase()
/* The three supported options */
switch (normalizedPrefixSecurity) {
case PrefixSecurity.STRICT:
case PrefixSecurity.SILENT:
case PrefixSecurity.DISABLED:
case PrefixSecurityEnum.STRICT:
case PrefixSecurityEnum.SILENT:
case PrefixSecurityEnum.DISABLED:
return normalizedPrefixSecurity
}
}
/* Default is SILENT */
return PrefixSecurity.SILENT
return PrefixSecurityEnum.SILENT
}

export class CookieJar {
Expand Down Expand Up @@ -401,9 +402,9 @@ export class CookieJar {

/* 6265bis-02 S5.4 Steps 15 & 16 */
const ignoreErrorForPrefixSecurity =
this.prefixSecurity === PrefixSecurity.SILENT
this.prefixSecurity === PrefixSecurityEnum.SILENT
const prefixSecurityDisabled =
this.prefixSecurity === PrefixSecurity.DISABLED
this.prefixSecurity === PrefixSecurityEnum.DISABLED
/* If prefix checking is not disabled ...*/
if (!prefixSecurityDisabled) {
let errorFound = false
Expand Down
2 changes: 1 addition & 1 deletion lib/cookie/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ export { ParameterError } from '../validators'
export { version } from '../version'

export { canonicalDomain } from './canonicalDomain'
export { PrefixSecurity } from './constants'
export { PrefixSecurityEnum } from './constants'
export { Cookie } from './cookie'
export { cookieCompare } from './cookieCompare'
export { CookieJar } from './cookieJar'
Expand Down

0 comments on commit b241544

Please sign in to comment.