diff --git a/api/.gitignore b/api/.gitignore index 043f3fa0..0450c053 100644 --- a/api/.gitignore +++ b/api/.gitignore @@ -3,6 +3,7 @@ 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 !docs/tough-cookie.canonicaldomain.md !docs/tough-cookie.getpublicsuffix.md !docs/tough-cookie.getpublicsuffixoptions.md diff --git a/api/docs/tough-cookie.pathmatch.md b/api/docs/tough-cookie.pathmatch.md new file mode 100644 index 00000000..406adac4 --- /dev/null +++ b/api/docs/tough-cookie.pathmatch.md @@ -0,0 +1,75 @@ + + +[Home](./index.md) > [tough-cookie](./tough-cookie.md) > [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. + diff --git a/api/tough-cookie.api.md b/api/tough-cookie.api.md index 59e2f9f8..869d032f 100644 --- a/api/tough-cookie.api.md +++ b/api/tough-cookie.api.md @@ -275,7 +275,7 @@ export const parse: (str: string, options?: { // @public (undocumented) export function parseDate(str: Nullable): Date | undefined; -// @public (undocumented) +// @public export function pathMatch(reqPath: string, cookiePath: string): boolean; // @public (undocumented) diff --git a/lib/pathMatch.ts b/lib/pathMatch.ts index 36245607..927aa4a1 100644 --- a/lib/pathMatch.ts +++ b/lib/pathMatch.ts @@ -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."