12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- "use strict";
- function findRelation_upToPath(urlObj, siteUrlObj, options)
- {
-
- var pathOnly = urlObj.extra.hrefInfo.minimumPathOnly;
-
-
- var minimumScheme = (urlObj.scheme===siteUrlObj.scheme || !urlObj.scheme);
-
-
- var minimumAuth = minimumScheme && (urlObj.auth===siteUrlObj.auth || options.removeAuth || pathOnly);
-
-
- var www = options.ignore_www ? "stripped" : "full";
- var minimumHost = minimumAuth && (urlObj.host[www]===siteUrlObj.host[www] || pathOnly);
-
-
- var minimumPort = minimumHost && (urlObj.port===siteUrlObj.port || pathOnly);
-
- urlObj.extra.relation.minimumScheme = minimumScheme;
- urlObj.extra.relation.minimumAuth = minimumAuth;
- urlObj.extra.relation.minimumHost = minimumHost;
- urlObj.extra.relation.minimumPort = minimumPort;
-
- urlObj.extra.relation.maximumScheme = !minimumScheme || minimumScheme && !minimumAuth;
- urlObj.extra.relation.maximumAuth = !minimumScheme || minimumScheme && !minimumHost;
- urlObj.extra.relation.maximumHost = !minimumScheme || minimumScheme && !minimumPort;
- }
- function findRelation_pathOn(urlObj, siteUrlObj, options)
- {
- var queryOnly = urlObj.extra.hrefInfo.minimumQueryOnly;
- var hashOnly = urlObj.extra.hrefInfo.minimumHashOnly;
- var empty = urlObj.extra.hrefInfo.empty;
-
-
- var minimumPort = urlObj.extra.relation.minimumPort;
- var minimumScheme = urlObj.extra.relation.minimumScheme;
-
-
- var minimumPath = minimumPort && urlObj.path.absolute.string===siteUrlObj.path.absolute.string;
-
-
- var matchingResource = (urlObj.resource===siteUrlObj.resource || !urlObj.resource && siteUrlObj.extra.resourceIsIndex) || (options.removeDirectoryIndexes && urlObj.extra.resourceIsIndex && !siteUrlObj.resource);
- var minimumResource = minimumPath && (matchingResource || queryOnly || hashOnly || empty);
-
-
- var query = options.removeEmptyQueries ? "stripped" : "full";
- var urlQuery = urlObj.query.string[query];
- var siteUrlQuery = siteUrlObj.query.string[query];
- var minimumQuery = (minimumResource && !!urlQuery && urlQuery===siteUrlQuery) || ((hashOnly || empty) && !urlObj.extra.hrefInfo.separatorOnlyQuery);
-
- var minimumHash = minimumQuery && urlObj.hash===siteUrlObj.hash;
-
- urlObj.extra.relation.minimumPath = minimumPath;
- urlObj.extra.relation.minimumResource = minimumResource;
- urlObj.extra.relation.minimumQuery = minimumQuery;
- urlObj.extra.relation.minimumHash = minimumHash;
-
- urlObj.extra.relation.maximumPort = !minimumScheme || minimumScheme && !minimumPath;
- urlObj.extra.relation.maximumPath = !minimumScheme || minimumScheme && !minimumResource;
- urlObj.extra.relation.maximumResource = !minimumScheme || minimumScheme && !minimumQuery;
- urlObj.extra.relation.maximumQuery = !minimumScheme || minimumScheme && !minimumHash;
- urlObj.extra.relation.maximumHash = !minimumScheme || minimumScheme && !minimumHash;
-
-
- urlObj.extra.relation.overridesQuery = minimumPath && urlObj.extra.relation.maximumResource && !minimumQuery && !!siteUrlQuery;
- }
- module.exports =
- {
- pathOn: findRelation_pathOn,
- upToPath: findRelation_upToPath
- };
|