feat: initial commit of Railtrack Pro prototype with complete test suite
This commit is contained in:
commit
40500bb503
7790 files changed
+986332
No files matched your search
+33
@@ -0,0 +1,33 @@
|
||||
import { getEmptyResult, parseImpl, resetResult, } from 'tldts-core';
|
||||
import suffixLookup from './src/suffix-trie';
|
||||
// For all methods but 'parse', it does not make sense to allocate an object
|
||||
// every single time to only return the value of a specific attribute. To avoid
|
||||
// this un-necessary allocation, we use a global object which is re-used.
|
||||
const RESULT = getEmptyResult();
|
||||
export function parse(url, options = {}) {
|
||||
return parseImpl(url, 5 /* FLAG.ALL */, suffixLookup, options, getEmptyResult());
|
||||
}
|
||||
export function getHostname(url, options = {}) {
|
||||
/*@__INLINE__*/ resetResult(RESULT);
|
||||
return parseImpl(url, 0 /* FLAG.HOSTNAME */, suffixLookup, options, RESULT).hostname;
|
||||
}
|
||||
export function getPublicSuffix(url, options = {}) {
|
||||
/*@__INLINE__*/ resetResult(RESULT);
|
||||
return parseImpl(url, 2 /* FLAG.PUBLIC_SUFFIX */, suffixLookup, options, RESULT)
|
||||
.publicSuffix;
|
||||
}
|
||||
export function getDomain(url, options = {}) {
|
||||
/*@__INLINE__*/ resetResult(RESULT);
|
||||
return parseImpl(url, 3 /* FLAG.DOMAIN */, suffixLookup, options, RESULT).domain;
|
||||
}
|
||||
export function getSubdomain(url, options = {}) {
|
||||
/*@__INLINE__*/ resetResult(RESULT);
|
||||
return parseImpl(url, 4 /* FLAG.SUB_DOMAIN */, suffixLookup, options, RESULT)
|
||||
.subdomain;
|
||||
}
|
||||
export function getDomainWithoutSuffix(url, options = {}) {
|
||||
/*@__INLINE__*/ resetResult(RESULT);
|
||||
return parseImpl(url, 5 /* FLAG.ALL */, suffixLookup, options, RESULT)
|
||||
.domainWithoutSuffix;
|
||||
}
|
||||
//# sourceMappingURL=index.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,cAAc,EAGd,SAAS,EACT,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAE7C,4EAA4E;AAC5E,+EAA+E;AAC/E,yEAAyE;AACzE,MAAM,MAAM,GAAY,cAAc,EAAE,CAAC;AAEzC,MAAM,UAAU,KAAK,CAAC,GAAW,EAAE,UAA6B,EAAE;IAChE,OAAO,SAAS,CAAC,GAAG,oBAAY,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,GAAW,EACX,UAA6B,EAAE;IAE/B,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,OAAO,SAAS,CAAC,GAAG,yBAAiB,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,GAAW,EACX,UAA6B,EAAE;IAE/B,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,OAAO,SAAS,CAAC,GAAG,8BAAsB,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC;SACrE,YAAY,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,GAAW,EACX,UAA6B,EAAE;IAE/B,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,OAAO,SAAS,CAAC,GAAG,uBAAe,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,GAAW,EACX,UAA6B,EAAE;IAE/B,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,OAAO,SAAS,CAAC,GAAG,2BAAmB,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC;SAClE,SAAS,CAAC;AACf,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,GAAW,EACX,UAA6B,EAAE;IAE/B,eAAe,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,OAAO,SAAS,CAAC,GAAG,oBAAY,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC;SAC3D,mBAAmB,CAAC;AACzB,CAAC"}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
export const exceptions = (function () {
|
||||
const _0 = [1, {}], _1 = [0, { "city": _0 }];
|
||||
const exceptions = [0, { "ck": [0, { "www": _0 }], "jp": [0, { "kawasaki": _1, "kitakyushu": _1, "kobe": _1, "nagoya": _1, "sapporo": _1, "sendai": _1, "yokohama": _1 }] }];
|
||||
return exceptions;
|
||||
})();
|
||||
export const rules = (function () {
|
||||
const _2 = [1, {}], _3 = [2, {}], _4 = [1, { "com": _2, "edu": _2, "gov": _2, "net": _2, "org": _2 }], _5 = [1, { "com": _2, "edu": _2, "gov": _2, "mil": _2, "net": _2, "org": _2 }], _6 = [0, { "*": _3 }], _7 = [2, { "s": _6 }], _8 = [0, { "relay": _3 }], _9 = [2, { "id": _3 }], _10 = [1, { "gov": _2 }], _11 = [0, { "airflow": _6, "lambda-url": _3, "transfer-webapp": _3 }], _12 = [0, { "airflow": _6, "transfer-webapp": _3 }], _13 = [0, { "transfer-webapp": _3 }], _14 = [0, { "transfer-webapp": _3, "transfer-webapp-fips": _3 }], _15 = [0, { "notebook": _3, "studio": _3 }], _16 = [0, { "labeling": _3, "notebook": _3, "studio": _3 }], _17 = [0, { "notebook": _3 }], _18 = [0, { "labeling": _3, "notebook": _3, "notebook-fips": _3, "studio": _3 }], _19 = [0, { "notebook": _3, "notebook-fips": _3, "studio": _3, "studio-fips": _3 }], _20 = [0, { "shop": _3 }], _21 = [0, { "*": _2 }], _22 = [1, { "co": _3 }], _23 = [0, { "objects": _3 }], _24 = [2, { "eu-west-1": _3, "us-east-1": _3 }], _25 = [2, { "nodes": _3 }], _26 = [0, { "my": _3 }], _27 = [0, { "s3": _3, "s3-accesspoint": _3, "s3-website": _3 }], _28 = [0, { "s3": _3, "s3-accesspoint": _3 }], _29 = [0, { "direct": _3 }], _30 = [0, { "webview-assets": _3 }], _31 = [0, { "vfs": _3, "webview-assets": _3 }], _32 = [0, { "execute-api": _3, "emrappui-prod": _3, "emrnotebooks-prod": _3, "emrstudio-prod": _3, "dualstack": _27, "s3": _3, "s3-accesspoint": _3, "s3-object-lambda": _3, "s3-website": _3, "aws-cloud9": _30, "cloud9": _31 }], _33 = [0, { "execute-api": _3, "emrappui-prod": _3, "emrnotebooks-prod": _3, "emrstudio-prod": _3, "dualstack": _28, "s3": _3, "s3-accesspoint": _3, "s3-object-lambda": _3, "s3-website": _3, "aws-cloud9": _30, "cloud9": _31 }], _34 = [0, { "execute-api": _3, "emrappui-prod": _3, "emrnotebooks-prod": _3, "emrstudio-prod": _3, "dualstack": _27, "s3": _3, "s3-accesspoint": _3, "s3-object-lambda": _3, "s3-website": _3, "analytics-gateway": _3, "aws-cloud9": _30, "cloud9": _31 }], _35 = [0, { "execute-api": _3, "emrappui-prod": _3, "emrnotebooks-prod": _3, "emrstudio-prod": _3, "dualstack": _27, "s3": _3, "s3-accesspoint": _3, "s3-object-lambda": _3, "s3-website": _3 }], _36 = [0, { "s3": _3, "s3-accesspoint": _3, "s3-accesspoint-fips": _3, "s3-fips": _3, "s3-website": _3 }], _37 = [0, { "execute-api": _3, "emrappui-prod": _3, "emrnotebooks-prod": _3, "emrstudio-prod": _3, "dualstack": _36, "s3": _3, "s3-accesspoint": _3, "s3-accesspoint-fips": _3, "s3-fips": _3, "s3-object-lambda": _3, "s3-website": _3, "aws-cloud9": _30, "cloud9": _31 }], _38 = [0, { "execute-api": _3, "emrappui-prod": _3, "emrnotebooks-prod": _3, "emrstudio-prod": _3, "dualstack": _36, "s3": _3, "s3-accesspoint": _3, "s3-accesspoint-fips": _3, "s3-fips": _3, "s3-object-lambda": _3, "s3-website": _3 }], _39 = [0, { "execute-api": _3, "emrappui-prod": _3, "emrnotebooks-prod": _3, "emrstudio-prod": _3, "dualstack": _36, "s3": _3, "s3-accesspoint": _3, "s3-accesspoint-fips": _3, "s3-deprecated": _3, "s3-fips": _3, "s3-object-lambda": _3, "s3-website": _3, "analytics-gateway": _3, "aws-cloud9": _30, "cloud9": _31 }], _40 = [0, { "auth": _3 }], _41 = [0, { "auth": _3, "auth-fips": _3 }], _42 = [0, { "auth-fips": _3 }], _43 = [0, { "apps": _3 }], _44 = [0, { "paas": _3 }], _45 = [2, { "eu": _3 }], _46 = [0, { "app": _3 }], _47 = [0, { "site": _3 }], _48 = [1, { "com": _2, "edu": _2, "net": _2, "org": _2 }], _49 = [0, { "j": _3 }], _50 = [0, { "dyn": _3 }], _51 = [2, { "web": _3 }], _52 = [1, { "co": _2, "com": _2, "edu": _2, "gov": _2, "net": _2, "org": _2 }], _53 = [0, { "p": _3 }], _54 = [0, { "user": _3 }], _55 = [1, { "ms": _3 }], _56 = [0, { "cdn": _3 }], _57 = [2, { "raw": _6 }], _58 = [0, { "cust": _3, "reservd": _3 }], _59 = [0, { "cust": _3 }], _60 = [0, { "s3": _3 }], _61 = [1, { "biz": _2, "com": _2, "edu": _2, "gov": _2, "info": _2, "net": _2, "org": _2 }], _62 = [0, { "ipfs": _3 }], _63 = [1, { "framer": _3 }], _64 = [0, { "forgot": _3 }], _65 = [0, { "blob": _3, "file": _3, "web": _3 }], _66 = [0, { "core": _65, "servicebus": _3 }], _67 = [1, { "gs": _2 }], _68 = [0, { "nes": _2 }], _69 = [1, { "k12": _2, "cc": _2, "lib": _2 }], _70 = [1, { "cc": _2 }], _71 = [1, { "cc": _2, "lib": _2 }];
|
||||
const rules = [0, { "ac": [1, { "com": _2, "edu": _2, "gov": _2, "mil": _2, "net": _2, "org": _2, "drr": _3, "feedback": _3, "forms": _3 }], "ad": _2, "ae": [1, { "ac": _2, "co": _2, "gov": _2, "mil": _2, "net": _2, "org": _2, "sch": _2 }], "aero": [1, { "airline": _2, "airport": _2, "accident-investigation": _2, "accident-prevention": _2, "aerobatic": _2, "aeroclub": _2, "aerodrome": _2, "agents": _2, "air-surveillance": _2, "air-traffic-control": _2, "aircraft": _2, "airtraffic": _2, "ambulance": _2, "association": _2, "author": _2, "ballooning": _2, "broker": _2, "caa": _2, "cargo": _2, "catering": _2, "certification": _2, "championship": _2, "charter": _2, "civilaviation": _2, "club": _2, "conference": _2, "consultant": _2, "consulting": _2, "control": _2, "council": _2, "crew": _2, "design": _2, "dgca": _2, "educator": _2, "emergency": _2, "engine": _2, "engineer": _2, "entertainment": _2, "equipment": _2, "exchange": _2, "express": _2, "federation": _2, "flight": _2, "freight": _2, "fuel": _2, "gliding": _2, "government": _2, "groundhandling": _2, "group": _2, "hanggliding": _2, "homebuilt": _2, "insurance": _2, "journal": _2, "journalist": _2, "leasing": _2, "logistics": _2, "magazine": _2, "maintenance": _2, "marketplace": _2, "media": _2, "microlight": _2, "modelling": _2, "navigation": _2, "parachuting": _2, "paragliding": _2, "passenger-association": _2, "pilot": _2, "press": _2, "production": _2, "recreation": _2, "repbody": _2, "res": _2, "research": _2, "rotorcraft": _2, "safety": _2, "scientist": _2, "services": _2, "show": _2, "skydiving": _2, "software": _2, "student": _2, "taxi": _2, "trader": _2, "trading": _2, "trainer": _2, "union": _2, "workinggroup": _2, "works": _2 }], "af": _4, "ag": [1, { "co": _2, "com": _2, "net": _2, "nom": _2, "org": _2, "obj": _3 }], "ai": [1, { "com": _2, "net": _2, "off": _2, "org": _2, "uwu": _3, "framer": _3, "kiloapps": _3 }], "al": _5, "am": [1, { "co": _2, "com": _2, "commune": _2, "net": _2, "org": _2, "radio": _3 }], "ao": [1, { "co": _2, "ed": _2, "edu": _2, "gov": _2, "gv": _2, "it": _2, "og": _2, "org": _2, "pb": _2 }], "aq": _2, "ar": [1, { "bet": _2, "com": _2, "coop": _2, "edu": _2, "gob": _2, "gov": _2, "int": _2, "mil": _2, "musica": _2, "mutual": _2, "net": _2, "org": _2, "seg": _2, "senasa": _2, "tur": _2 }], "arpa": [1, { "e164": _2, "home": _2, "in-addr": _2, "ip6": _2, "iris": _2, "uri": _2, "urn": _2 }], "as": _10, "asia": [1, { "cloudns": _3, "daemon": _3, "dix": _3 }], "at": [1, { "4": _3, "ac": [1, { "sth": _2 }], "co": _2, "gv": _2, "or": _2, "funkfeuer": [0, { "wien": _3 }], "futurecms": [0, { "*": _3, "ex": _6, "in": _6 }], "futurehosting": _3, "futuremailing": _3, "ortsinfo": [0, { "ex": _6, "kunden": _6 }], "biz": _3, "info": _3, "123webseite": _3, "priv": _3, "my": _3, "myspreadshop": _3, "12hp": _3, "2ix": _3, "4lima": _3, "lima-city": _3 }], "au": [1, { "asn": _2, "com": [1, { "cloudlets": [0, { "mel": _3 }], "myspreadshop": _3 }], "edu": [1, { "act": _2, "catholic": _2, "nsw": _2, "nt": _2, "qld": _2, "sa": _2, "tas": _2, "vic": _2, "wa": _2 }], "gov": [1, { "qld": _2, "sa": _2, "tas": _2, "vic": _2, "wa": _2 }], "id": _2, "net": _2, "org": _2, "conf": _2, "oz": _2, "act": _2, "nsw": _2, "nt": _2, "qld": _2, "sa": _2, "tas": _2, "vic": _2, "wa": _2, "hrsn": [0, { "vps": _3 }] }], "aw": [1, { "com": _2 }], "ax": _2, "az": [1, { "biz": _2, "co": _2, "com": _2, "edu": _2, "gov": _2, "info": _2, "int": _2, "mil": _2, "name": _2, "net": _2, "org": _2, "pp": _2, "pro": _2 }], "ba": [1, { "com": _2, "edu": _2, "gov": _2, "mil": _2, "net": _2, "org": _2, "brendly": _20, "rs": _3 }], "bb": [1, { "biz": _2, "co": _2, "com": _2, "edu": _2, "gov": _2, "info": _2, "net": _2, "org": _2, "store": _2, "tv": _2 }], "bd": [1, { "ac": _2, "ai": _2, "co": _2, "com": _2, "edu": _2, "gov": _2, "id": _2, "info": _2, "it": _2, "mil": _2, "net": _2, "org": _2, "sch": _2, "tv": _2 }], "be": [1, { "ac": _2, "cloudns": _3, "webhosting": _3, "interhostsolutions": [0, { "cloud": _3 }], "kuleuven": [0, { "ezproxy": _3 }], "my": _3, "123website": _3, "myspreadshop": _3, "transurl": _6 }], "bf": _10, "bg": [1, { "0": _2, "1": _2, "2": _2, "3": _2, "4": _2, "5": _2, "6": _2, "7": _2, "8": _2, "9": _2, "a": _2, "b": _2, "c": _2, "d": _2, "e": _2, "f": _2, "g": _2, "h": _2, "i": _2, "j": _2, "k": _2, "l": _2, "m": _2, "n": _2, "o": _2, "p": _2, "q": _2, "r": _2, "s": _2, "t": _2, "u": _2, "v": _2, "w": _2, "x": _2, "y": _2, "z": _2, "barsy": _3 }], "bh": _4, "bi": [1, { "co": _2, "com": _2, "edu": _2, "or": _2, "org": _2 }], "biz": [1, { "activetrail": _3, "cloud-ip": _3, "cloudns": _3, "jozi": _3, "dyndns": _3, "for-better": _3, "for-more": _3, "for-some": _3, "for-the": _3, "selfip": _3, "webhop": _3, "orx": _3, "mmafan": _3, "myftp": _3, "no-ip": _3, "dscloud": _3 }], "bj": [1, { "africa": _2, "agro": _2, "architectes": _2, "assur": _2, "avocats": _2, "co": _2, "com": _2, "eco": _2, "econo": _2, "edu": _2, "info": _2, "loisirs": _2, "money": _2, "net":
Line truncated
|
||||
return rules;
|
||||
})();
|
||||
//# sourceMappingURL=trie.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"trie.js","sourceRoot":"","sources":["../../../../src/data/trie.ts"],"names":[],"mappings":"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 truncated
|
||||
+64
@@ -0,0 +1,64 @@
|
||||
import { fastPathLookup, } from 'tldts-core';
|
||||
import { exceptions, rules } from './data/trie';
|
||||
/**
|
||||
* Lookup parts of domain in Trie
|
||||
*/
|
||||
function lookupInTrie(parts, trie, index, allowedMask) {
|
||||
let result = null;
|
||||
let node = trie;
|
||||
while (node !== undefined) {
|
||||
// We have a match!
|
||||
if ((node[0] & allowedMask) !== 0) {
|
||||
result = {
|
||||
index: index + 1,
|
||||
isIcann: (node[0] & 1 /* RULE_TYPE.ICANN */) !== 0,
|
||||
isPrivate: (node[0] & 2 /* RULE_TYPE.PRIVATE */) !== 0,
|
||||
};
|
||||
}
|
||||
// No more `parts` to look for
|
||||
if (index === -1) {
|
||||
break;
|
||||
}
|
||||
const succ = node[1];
|
||||
node = Object.prototype.hasOwnProperty.call(succ, parts[index])
|
||||
? succ[parts[index]]
|
||||
: succ['*'];
|
||||
index -= 1;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
/**
|
||||
* Check if `hostname` has a valid public suffix in `trie`.
|
||||
*/
|
||||
export default function suffixLookup(hostname, options, out) {
|
||||
var _a;
|
||||
if (fastPathLookup(hostname, options, out)) {
|
||||
return;
|
||||
}
|
||||
const hostnameParts = hostname.split('.');
|
||||
const allowedMask = (options.allowPrivateDomains ? 2 /* RULE_TYPE.PRIVATE */ : 0) |
|
||||
(options.allowIcannDomains ? 1 /* RULE_TYPE.ICANN */ : 0);
|
||||
// Look for exceptions
|
||||
const exceptionMatch = lookupInTrie(hostnameParts, exceptions, hostnameParts.length - 1, allowedMask);
|
||||
if (exceptionMatch !== null) {
|
||||
out.isIcann = exceptionMatch.isIcann;
|
||||
out.isPrivate = exceptionMatch.isPrivate;
|
||||
out.publicSuffix = hostnameParts.slice(exceptionMatch.index + 1).join('.');
|
||||
return;
|
||||
}
|
||||
// Look for a match in rules
|
||||
const rulesMatch = lookupInTrie(hostnameParts, rules, hostnameParts.length - 1, allowedMask);
|
||||
if (rulesMatch !== null) {
|
||||
out.isIcann = rulesMatch.isIcann;
|
||||
out.isPrivate = rulesMatch.isPrivate;
|
||||
out.publicSuffix = hostnameParts.slice(rulesMatch.index).join('.');
|
||||
return;
|
||||
}
|
||||
// No match found...
|
||||
// Prevailing rule is '*' so we consider the top-level domain to be the
|
||||
// public suffix of `hostname` (e.g.: 'example.org' => 'org').
|
||||
out.isIcann = false;
|
||||
out.isPrivate = false;
|
||||
out.publicSuffix = (_a = hostnameParts[hostnameParts.length - 1]) !== null && _a !== void 0 ? _a : null;
|
||||
}
|
||||
//# sourceMappingURL=suffix-trie.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"suffix-trie.js","sourceRoot":"","sources":["../../../src/suffix-trie.ts"],"names":[],"mappings":"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"}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"fileNames":["../../../../node_modules/typescript/lib/lib.es5.d.ts","../../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../../node_modules/typescript/lib/lib.dom.d.ts","../../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../../../../node_modules/typescript/lib/lib.scripthost.d.ts","../../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../../node_modules/typescript/lib/lib.esnext.float16.d.ts","../../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../../node_modules/typescript/lib/lib.es2017.full.d.ts","../../../tldts-core/dist/types/src/lookup/interface.d.ts","../../../tldts-core/dist/types/src/options.d.ts","../../../tldts-core/dist/types/src/factory.d.ts","../../../tldts-core/dist/types/src/lookup/fast-path.d.ts","../../../tldts-core/dist/types/index.d.ts","../../src/data/trie.ts","../../src/suffix-trie.ts","../../index.ts","../../../../node_modules/@types/deep-eql/index.d.ts","../../../../node_modules/assertion-error/index.d.ts","../../../../node_modules/@types/chai/index.d.ts","../../../../node_modules/@types/command-line-args/index.d.ts","../../../../node_modules/@types/command-line-usage/index.d.ts","../../../../node_modules/@types/estree/index.d.ts","../../../../node_modules/@types/json-schema/index.d.ts","../../../../node_modules/@types/minimatch/index.d.ts","../../../../node_modules/@types/minimist/index.d.ts","../../../../node_modules/@types/mocha/index.d.ts","../../../../node_modules/@types/node/compatibility/iterators.d.ts","../../../../node_modules/@types/node/globals.typedarray.d.ts","../../../../node_modules/@types/node/buffer.buffer.d.ts","../../../../node_modules/@types/node/globals.d.ts","../../../../node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../../node_modules/@types/node/web-globals/blob.d.ts","../../../../node_modules/@types/node/web-globals/console.d.ts","../../../../node_modules/@types/node/web-globals/crypto.d.ts","../../../../node_modules/@types/node/web-globals/domexception.d.ts","../../../../node_modules/@types/node/web-globals/encoding.d.ts","../../../../node_modules/@types/node/web-globals/events.d.ts","../../../../noLine truncated
|
||||
Reference in new issue
Block a user