Skip to content

Commit

Permalink
Document pathMatch
Browse files Browse the repository at this point in the history
  • Loading branch information
colincasey committed Apr 12, 2024
1 parent 17c8081 commit 9682115
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 32 deletions.
1 change: 1 addition & 0 deletions api/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ docs/*.md

# subsequent PRs will un-ignore areas that are under review until
# all docs are complete and we can drop this ignore file entirely
!docs/tough-cookie.pathmatch.md
33 changes: 33 additions & 0 deletions api/docs/tough-cookie.pathmatch.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) &gt; [tough-cookie](./tough-cookie.md) &gt; [pathMatch](./tough-cookie.pathmatch.md)

## pathMatch() function

Answers "does the request-path path-match a given cookie-path?" as per [RFC6265 Section 5.1.4](https://www.rfc-editor.org/rfc/rfc6265.html#section-5.1.4)<!-- -->.

This is essentially a prefix-match where cookiePath is a prefix of reqPath.

**Signature:**

```typescript
export declare function pathMatch(reqPath: string, cookiePath: string): boolean;
```

## Parameters

| Parameter | Type | Description |
| --- | --- | --- |
| reqPath | string | the path of the request |
| cookiePath | string | the path of the cookie |

**Returns:**

boolean

## Remarks

A request-path path-matches a given cookie-path if at least one of the following conditions holds:

- The cookie-path and the request-path are identical. - The cookie-path is a prefix of the request-path, and the last character of the cookie-path is %x2F ("/"). - The cookie-path is a prefix of the request-path, and the first character of the request-path that is not included in the cookie-path is a %x2F ("/") character.

2 changes: 1 addition & 1 deletion api/tough-cookie.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -269,7 +269,7 @@ export const parse: (str: string, options?: {
// @public (undocumented)
export function parseDate(str: string | undefined | null): Date | undefined;

// @public (undocumented)
// @public
export function pathMatch(reqPath: string, cookiePath: string): boolean;

// @public (undocumented)
Expand Down
43 changes: 12 additions & 31 deletions lib/pathMatch.ts
Original file line number Diff line number Diff line change
@@ -1,37 +1,18 @@
/*!
* Copyright (c) 2015, Salesforce.com, Inc.
* All rights reserved.
/**
* Answers "does the request-path path-match a given cookie-path?" as per {@link https://www.rfc-editor.org/rfc/rfc6265.html#section-5.1.4 | RFC6265 Section 5.1.4}.
* This is essentially a prefix-match where cookiePath is a prefix of reqPath.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* @remarks
* A request-path path-matches a given cookie-path if at least one of
* the following conditions holds:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* - The cookie-path and the request-path are identical.
* - The cookie-path is a prefix of the request-path, and the last character of the cookie-path is %x2F ("/").
* - The cookie-path is a prefix of the request-path, and the first character of the request-path that is not included in the cookie-path is a %x2F ("/") character.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* 3. Neither the name of Salesforce.com nor the names of its contributors may
* be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/

/*
* "A request-path path-matches a given cookie-path if at least one of the
* following conditions holds:"
* @param reqPath - the path of the request
* @param cookiePath - the path of the cookie
* @public
*/
export function pathMatch(reqPath: string, cookiePath: string): boolean {
// "o The cookie-path and the request-path are identical."
Expand Down

0 comments on commit 9682115

Please sign in to comment.