parse-domain 8.2.2 → 8.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/README.md +9 -68
  2. package/dist/bin/update.d.ts +3 -0
  3. package/dist/bin/update.d.ts.map +1 -0
  4. package/dist/bin/update.js +18 -0
  5. package/dist/bin/update.js.map +1 -0
  6. package/{build → dist}/config.d.ts +1 -0
  7. package/dist/config.d.ts.map +1 -0
  8. package/{build → dist}/config.js +1 -1
  9. package/{build → dist}/config.js.map +1 -1
  10. package/{build → dist}/from-url.d.ts +1 -0
  11. package/dist/from-url.d.ts.map +1 -0
  12. package/{build → dist}/from-url.js +2 -2
  13. package/dist/from-url.js.map +1 -0
  14. package/dist/main.d.ts +6 -0
  15. package/dist/main.d.ts.map +1 -0
  16. package/dist/main.js +6 -0
  17. package/dist/main.js.map +1 -0
  18. package/{build → dist}/parse-domain.d.ts +30 -29
  19. package/dist/parse-domain.d.ts.map +1 -0
  20. package/{build → dist}/parse-domain.js +28 -16
  21. package/dist/parse-domain.js.map +1 -0
  22. package/{build → dist}/psl/build-tries.d.ts +1 -0
  23. package/dist/psl/build-tries.d.ts.map +1 -0
  24. package/{build → dist}/psl/build-tries.js +5 -5
  25. package/dist/psl/build-tries.js.map +1 -0
  26. package/{build → dist}/psl/fetch-psl.d.ts +1 -0
  27. package/dist/psl/fetch-psl.d.ts.map +1 -0
  28. package/dist/psl/fetch-psl.js +10 -0
  29. package/dist/psl/fetch-psl.js.map +1 -0
  30. package/{build → dist}/punycode.d.ts +1 -0
  31. package/dist/punycode.d.ts.map +1 -0
  32. package/{build → dist}/sanitize.d.ts +8 -7
  33. package/dist/sanitize.d.ts.map +1 -0
  34. package/{build → dist}/sanitize.js +12 -8
  35. package/dist/sanitize.js.map +1 -0
  36. package/dist/scripts/update-psl-fixture.d.ts +2 -0
  37. package/dist/scripts/update-psl-fixture.d.ts.map +1 -0
  38. package/dist/scripts/update-psl-fixture.js +7 -0
  39. package/dist/scripts/update-psl-fixture.js.map +1 -0
  40. package/dist/scripts/update-tries.d.ts +2 -0
  41. package/dist/scripts/update-tries.d.ts.map +1 -0
  42. package/dist/scripts/update-tries.js +26 -0
  43. package/dist/scripts/update-tries.js.map +1 -0
  44. package/dist/serialized-tries.d.ts +3 -0
  45. package/dist/serialized-tries.d.ts.map +1 -0
  46. package/dist/serialized-tries.js +3 -0
  47. package/dist/serialized-tries.js.map +1 -0
  48. package/{build → dist}/smoke-test.d.ts +1 -0
  49. package/dist/smoke-test.d.ts.map +1 -0
  50. package/{build → dist}/smoke-test.js +1 -1
  51. package/dist/smoke-test.js.map +1 -0
  52. package/{build → dist}/trie/characters.d.ts +1 -0
  53. package/dist/trie/characters.d.ts.map +1 -0
  54. package/{build → dist}/trie/create-trie.d.ts +1 -0
  55. package/dist/trie/create-trie.d.ts.map +1 -0
  56. package/{build → dist}/trie/create-trie.js +3 -1
  57. package/dist/trie/create-trie.js.map +1 -0
  58. package/dist/trie/look-up.d.ts +4 -0
  59. package/dist/trie/look-up.d.ts.map +1 -0
  60. package/{build → dist}/trie/look-up.js +2 -2
  61. package/dist/trie/look-up.js.map +1 -0
  62. package/{build → dist}/trie/nodes.d.ts +1 -0
  63. package/dist/trie/nodes.d.ts.map +1 -0
  64. package/{build → dist}/trie/parse-trie.d.ts +1 -0
  65. package/dist/trie/parse-trie.d.ts.map +1 -0
  66. package/{build → dist}/trie/parse-trie.js +1 -1
  67. package/dist/trie/parse-trie.js.map +1 -0
  68. package/dist/trie/serialize-trie.d.ts +3 -0
  69. package/dist/trie/serialize-trie.d.ts.map +1 -0
  70. package/{build → dist}/trie/serialize-trie.js +3 -3
  71. package/dist/trie/serialize-trie.js.map +1 -0
  72. package/{build → dist}/type-util.d.ts +1 -0
  73. package/dist/type-util.d.ts.map +1 -0
  74. package/dist/type-util.js +1 -0
  75. package/{build → dist}/update-tries.d.ts +1 -0
  76. package/dist/update-tries.d.ts.map +1 -0
  77. package/dist/update-tries.js +14 -0
  78. package/dist/update-tries.js.map +1 -0
  79. package/package.json +51 -48
  80. package/serialized-tries/icann.js +1 -1
  81. package/serialized-tries/info.json +1 -1
  82. package/serialized-tries/private.js +1 -1
  83. package/bin/update.js +0 -22
  84. package/build/from-url.js.map +0 -1
  85. package/build/main.d.ts +0 -3
  86. package/build/main.js +0 -6
  87. package/build/main.js.map +0 -1
  88. package/build/parse-domain.js.map +0 -1
  89. package/build/psl/build-tries.js.map +0 -1
  90. package/build/psl/fetch-psl.js +0 -19
  91. package/build/psl/fetch-psl.js.map +0 -1
  92. package/build/sanitize.js.map +0 -1
  93. package/build/scripts/update-psl-fixture.d.ts +0 -1
  94. package/build/scripts/update-psl-fixture.js +0 -20
  95. package/build/scripts/update-psl-fixture.js.map +0 -1
  96. package/build/scripts/update-tries.d.ts +0 -1
  97. package/build/scripts/update-tries.js +0 -39
  98. package/build/scripts/update-tries.js.map +0 -1
  99. package/build/serialized-tries.d.ts +0 -3
  100. package/build/serialized-tries.js +0 -4
  101. package/build/serialized-tries.js.map +0 -1
  102. package/build/smoke-test.js.map +0 -1
  103. package/build/trie/create-trie.js.map +0 -1
  104. package/build/trie/look-up.d.ts +0 -3
  105. package/build/trie/look-up.js.map +0 -1
  106. package/build/trie/parse-trie.js.map +0 -1
  107. package/build/trie/serialize-trie.d.ts +0 -2
  108. package/build/trie/serialize-trie.js.map +0 -1
  109. package/build/type-util.js +0 -2
  110. package/build/update-tries.js +0 -23
  111. package/build/update-tries.js.map +0 -1
  112. /package/{build → dist}/punycode.js +0 -0
  113. /package/{build → dist}/punycode.js.map +0 -0
  114. /package/{build → dist}/trie/characters.js +0 -0
  115. /package/{build → dist}/trie/characters.js.map +0 -0
  116. /package/{build → dist}/trie/nodes.js +0 -0
  117. /package/{build → dist}/trie/nodes.js.map +0 -0
  118. /package/{build → dist}/type-util.js.map +0 -0
@@ -1,39 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import * as path from "path";
11
- import * as url from "url";
12
- import * as fs from "fs";
13
- import { fetchBuildSerializeTries } from "../update-tries.js";
14
- import { PUBLIC_SUFFIX_URL } from "../config.js";
15
- const __dirname = path.dirname(url.fileURLToPath(import.meta.url));
16
- const writeTriesToFiles = (_a) => __awaiter(void 0, [_a], void 0, function* ({ serializedIcannTrie, serializedPrivateTrie, }) {
17
- const indexOfScriptArg = process.argv.lastIndexOf("--");
18
- const targetDirectories = process.argv.slice(indexOfScriptArg + 1);
19
- yield Promise.all(targetDirectories.map((targetDirectory) => __awaiter(void 0, void 0, void 0, function* () {
20
- const pathToIcannTrie = path.resolve(__dirname, targetDirectory, "icann.js");
21
- const pathToPrivateTrie = path.resolve(__dirname, targetDirectory, "private.js");
22
- const pathToTrieInfoFile = path.resolve(__dirname, targetDirectory, "info.json");
23
- console.warn(`Writing ${pathToIcannTrie}...`);
24
- console.warn(`Writing ${pathToPrivateTrie}...`);
25
- console.warn(`Writing ${pathToTrieInfoFile}...`);
26
- yield Promise.all([
27
- fs.promises.writeFile(pathToIcannTrie, `export default ${JSON.stringify(serializedIcannTrie)};`),
28
- fs.promises.writeFile(pathToPrivateTrie, `export default ${JSON.stringify(serializedPrivateTrie)};`),
29
- fs.promises.writeFile(pathToTrieInfoFile, JSON.stringify({
30
- updatedAt: new Date(),
31
- })),
32
- ]);
33
- })));
34
- });
35
- export const done = (() => __awaiter(void 0, void 0, void 0, function* () {
36
- console.warn(`Fetching public suffix list from ${PUBLIC_SUFFIX_URL}...`);
37
- yield writeTriesToFiles(yield fetchBuildSerializeTries());
38
- }))();
39
- //# sourceMappingURL=update-tries.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update-tries.js","sourceRoot":"","sources":["../../src/scripts/update-tries.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGjD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAEnE,MAAM,iBAAiB,GAAG,KAG6B,EAAE,4CAHxB,EAC/B,mBAAmB,EACnB,qBAAqB,GAC8B;IACnD,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC;IAEnE,MAAM,OAAO,CAAC,GAAG,CACf,iBAAiB,CAAC,GAAG,CAAC,CAAO,eAAe,EAAE,EAAE;QAC9C,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAClC,SAAS,EACT,eAAe,EACf,UAAU,CACX,CAAC;QACF,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CACpC,SAAS,EACT,eAAe,EACf,YAAY,CACb,CAAC;QACF,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CACrC,SAAS,EACT,eAAe,EACf,WAAW,CACZ,CAAC;QAEF,OAAO,CAAC,IAAI,CAAC,WAAW,eAAe,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,WAAW,iBAAiB,KAAK,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,WAAW,kBAAkB,KAAK,CAAC,CAAC;QAEjD,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,EAAE,CAAC,QAAQ,CAAC,SAAS,CACnB,eAAe,EACf,kBAAkB,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,GAAG,CACzD;YACD,EAAE,CAAC,QAAQ,CAAC,SAAS,CACnB,iBAAiB,EACjB,kBAAkB,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,GAAG,CAC3D;YACD,EAAE,CAAC,QAAQ,CAAC,SAAS,CACnB,kBAAkB,EAClB,IAAI,CAAC,SAAS,CAAC;gBACb,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC,CACH;SACF,CAAC,CAAC;IACL,CAAC,CAAA,CAAC,CACH,CAAC;AACJ,CAAC,CAAA,CAAC;AAEF,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,GAAS,EAAE;IAC9B,OAAO,CAAC,IAAI,CAAC,oCAAoC,iBAAiB,KAAK,CAAC,CAAC;IAEzE,MAAM,iBAAiB,CAAC,MAAM,wBAAwB,EAAE,CAAC,CAAC;AAC5D,CAAC,CAAA,CAAC,EAAE,CAAC","sourcesContent":["import * as path from \"path\";\nimport * as url from \"url\";\nimport * as fs from \"fs\";\nimport { fetchBuildSerializeTries } from \"../update-tries.js\";\nimport { PUBLIC_SUFFIX_URL } from \"../config.js\";\nimport { Await } from \"../type-util.js\";\n\nconst __dirname = path.dirname(url.fileURLToPath(import.meta.url));\n\nconst writeTriesToFiles = async ({\n serializedIcannTrie,\n serializedPrivateTrie,\n}: Await<ReturnType<typeof fetchBuildSerializeTries>>) => {\n const indexOfScriptArg = process.argv.lastIndexOf(\"--\");\n const targetDirectories = process.argv.slice(indexOfScriptArg + 1);\n\n await Promise.all(\n targetDirectories.map(async (targetDirectory) => {\n const pathToIcannTrie = path.resolve(\n __dirname,\n targetDirectory,\n \"icann.js\",\n );\n const pathToPrivateTrie = path.resolve(\n __dirname,\n targetDirectory,\n \"private.js\",\n );\n const pathToTrieInfoFile = path.resolve(\n __dirname,\n targetDirectory,\n \"info.json\",\n );\n\n console.warn(`Writing ${pathToIcannTrie}...`);\n console.warn(`Writing ${pathToPrivateTrie}...`);\n console.warn(`Writing ${pathToTrieInfoFile}...`);\n\n await Promise.all([\n fs.promises.writeFile(\n pathToIcannTrie,\n `export default ${JSON.stringify(serializedIcannTrie)};`,\n ),\n fs.promises.writeFile(\n pathToPrivateTrie,\n `export default ${JSON.stringify(serializedPrivateTrie)};`,\n ),\n fs.promises.writeFile(\n pathToTrieInfoFile,\n JSON.stringify({\n updatedAt: new Date(),\n }),\n ),\n ]);\n }),\n );\n};\n\nexport const done = (async () => {\n console.warn(`Fetching public suffix list from ${PUBLIC_SUFFIX_URL}...`);\n\n await writeTriesToFiles(await fetchBuildSerializeTries());\n})();\n"]}
@@ -1,3 +0,0 @@
1
- import icannTrie from "../serialized-tries/icann.js";
2
- import privateTrie from "../serialized-tries/private.js";
3
- export { icannTrie, privateTrie };
@@ -1,4 +0,0 @@
1
- import icannTrie from "../serialized-tries/icann.js";
2
- import privateTrie from "../serialized-tries/private.js";
3
- export { icannTrie, privateTrie };
4
- //# sourceMappingURL=serialized-tries.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serialized-tries.js","sourceRoot":"","sources":["../src/serialized-tries.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,8BAA8B,CAAC;AACrD,OAAO,WAAW,MAAM,gCAAgC,CAAC;AAEzD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC","sourcesContent":["import icannTrie from \"../serialized-tries/icann.js\";\nimport privateTrie from \"../serialized-tries/private.js\";\n\nexport { icannTrie, privateTrie };\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"smoke-test.js","sourceRoot":"","sources":["../src/smoke-test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAElE,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE;IAC/B,eAAe,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE;QAC9C,QAAQ,EAAE,iBAAiB;QAC3B,IAAI,EAAE,eAAe,CAAC,MAAM;QAC5B,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC;QACjC,UAAU,EAAE,CAAC,KAAK,CAAC;QACnB,MAAM,EAAE,SAAS;QACjB,eAAe,EAAE,CAAC,KAAK,CAAC;QACxB,KAAK,EAAE;YACL,UAAU,EAAE,CAAC,KAAK,CAAC;YACnB,MAAM,EAAE,SAAS;YACjB,eAAe,EAAE,CAAC,KAAK,CAAC;SACzB;KACF,CAAC,CAAC;IACH,eAAe,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAE;QAChD,QAAQ,EAAE,mBAAmB;QAC7B,IAAI,EAAE,eAAe,CAAC,MAAM;QAC5B,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC;QACtC,UAAU,EAAE,CAAC,KAAK,CAAC;QACnB,MAAM,EAAE,SAAS;QACjB,eAAe,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;QAC7B,KAAK,EAAE;YACL,UAAU,EAAE,CAAC,KAAK,CAAC;YACnB,MAAM,EAAE,SAAS;YACjB,eAAe,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;SAC9B;KACF,CAAC,CAAC;IACH,eAAe,CAAC,WAAW,CAAC,4BAA4B,CAAC,EAAE;QACzD,QAAQ,EAAE,4BAA4B;QACtC,IAAI,EAAE,eAAe,CAAC,MAAM;QAC5B,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,CAAC;QAC/C,UAAU,EAAE,CAAC,KAAK,CAAC;QACnB,MAAM,EAAE,SAAS;QACjB,eAAe,EAAE,CAAC,YAAY,EAAE,KAAK,CAAC;QACtC,KAAK,EAAE;YACL,UAAU,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC;YAC9B,MAAM,EAAE,YAAY;YACpB,eAAe,EAAE,CAAC,KAAK,CAAC;SACzB;KACF,CAAC,CAAC;IACH,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,EAAE;QACpD,QAAQ,EAAE,+BAA+B;QACzC,IAAI,EAAE,eAAe,CAAC,MAAM;QAC5B,MAAM,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,CAAC;QAClD,UAAU,EAAE,CAAC,KAAK,CAAC;QACnB,MAAM,EAAE,aAAa;QACrB,eAAe,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC;QACrC,KAAK,EAAE;YACL,UAAU,EAAE,CAAC,KAAK,CAAC;YACnB,MAAM,EAAE,aAAa;YACrB,eAAe,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC;SACtC;KACF,CAAC,CAAC;AACL,CAAC,CAAC","sourcesContent":["import { deepStrictEqual } from \"assert\";\nimport { fromUrl, parseDomain, ParseResultType } from \"./main.js\";\n\nexport const runSmokeTest = () => {\n deepStrictEqual(parseDomain(\"www.example.com\"), {\n hostname: \"www.example.com\",\n type: ParseResultType.Listed,\n labels: [\"www\", \"example\", \"com\"],\n subDomains: [\"www\"],\n domain: \"example\",\n topLevelDomains: [\"com\"],\n icann: {\n subDomains: [\"www\"],\n domain: \"example\",\n topLevelDomains: [\"com\"],\n },\n });\n deepStrictEqual(parseDomain(\"www.example.co.uk\"), {\n hostname: \"www.example.co.uk\",\n type: ParseResultType.Listed,\n labels: [\"www\", \"example\", \"co\", \"uk\"],\n subDomains: [\"www\"],\n domain: \"example\",\n topLevelDomains: [\"co\", \"uk\"],\n icann: {\n subDomains: [\"www\"],\n domain: \"example\",\n topLevelDomains: [\"co\", \"uk\"],\n },\n });\n deepStrictEqual(parseDomain(\"www.example.cloudfront.net\"), {\n hostname: \"www.example.cloudfront.net\",\n type: ParseResultType.Listed,\n labels: [\"www\", \"example\", \"cloudfront\", \"net\"],\n subDomains: [\"www\"],\n domain: \"example\",\n topLevelDomains: [\"cloudfront\", \"net\"],\n icann: {\n subDomains: [\"www\", \"example\"],\n domain: \"cloudfront\",\n topLevelDomains: [\"net\"],\n },\n });\n deepStrictEqual(parseDomain(fromUrl(\"www.食狮.公司.cn\")), {\n hostname: \"www.xn--85x722f.xn--55qx5d.cn\",\n type: ParseResultType.Listed,\n labels: [\"www\", \"xn--85x722f\", \"xn--55qx5d\", \"cn\"],\n subDomains: [\"www\"],\n domain: \"xn--85x722f\",\n topLevelDomains: [\"xn--55qx5d\", \"cn\"],\n icann: {\n subDomains: [\"www\"],\n domain: \"xn--85x722f\",\n topLevelDomains: [\"xn--55qx5d\", \"cn\"],\n },\n });\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-trie.js","sourceRoot":"","sources":["../../src/trie/create-trie.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAY,MAAM,YAAY,CAAC;AAExE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAmB,EAAE,EAAE;IACxD,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;IAE9B,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC;QACxB,IAAI,IAAI,GAAa,IAAI,CAAC;QAE1B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YAC9C,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC","sourcesContent":["import { createRootNode, createOrGetChild, TrieNode } from \"./nodes.js\";\n\nexport const createTrieFromList = (list: Array<string>) => {\n const root = createRootNode();\n\n for (const rule of list) {\n let node: TrieNode = root;\n\n for (const label of rule.split(\".\").reverse()) {\n node = createOrGetChild(node, label);\n }\n }\n\n return root;\n};\n"]}
@@ -1,3 +0,0 @@
1
- import { TrieNode } from "./nodes.js";
2
- import { Label } from "../parse-domain.js";
3
- export declare const lookUpTldsInTrie: (labels: Array<Label>, trie: TrieNode) => string[];
@@ -1 +0,0 @@
1
- {"version":3,"file":"look-up.js","sourceRoot":"","sources":["../../src/trie/look-up.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAI9C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAoB,EAAE,IAAc,EAAE,EAAE;IACvE,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IACrC,MAAM,IAAI,GAAiB,EAAE,CAAC;IAC9B,IAAI,IAAI,GAAG,IAAI,CAAC;IAEhB,OAAO,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,EAAG,CAAC;QACnC,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAE3C,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3C,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,GAAG,cAAc,CAAC,EAAE,CAAC;gBAC7D,MAAM;YACR,CAAC;YACD,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAa,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,KAAK,EAAE,CAAC;gBAChD,MAAM;YACR,CAAC;YACD,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAa,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC","sourcesContent":["import * as characters from \"./characters.js\";\nimport { TrieNode } from \"./nodes.js\";\nimport { Label } from \"../parse-domain.js\";\n\nexport const lookUpTldsInTrie = (labels: Array<Label>, trie: TrieNode) => {\n const labelsToCheck = labels.slice();\n const tlds: Array<Label> = [];\n let node = trie;\n\n while (labelsToCheck.length !== 0) {\n const label = labelsToCheck.pop()!;\n const labelLowerCase = label.toLowerCase();\n\n if (node.children.has(characters.WILDCARD)) {\n if (node.children.has(characters.EXCEPTION + labelLowerCase)) {\n break;\n }\n node = node.children.get(characters.WILDCARD) as TrieNode;\n } else {\n if (node.children.has(labelLowerCase) === false) {\n break;\n }\n node = node.children.get(labelLowerCase) as TrieNode;\n }\n\n tlds.unshift(label);\n }\n\n return tlds;\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse-trie.js","sourceRoot":"","sources":["../../src/trie/parse-trie.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EACL,cAAc,EACd,gBAAgB,EAEhB,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,cAAsB,EAAE,EAAE;IAClD,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,UAAU,GAAa,QAAQ,CAAC;IACpC,gEAAgE;IAChE,6EAA6E;IAC7E,IAAI,IAAI,GAAG,QAAoB,CAAC;IAEhC,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,IAAI,GAAG,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC5C,MAAM,GAAG,EAAE,CAAC;IACd,CAAC,CAAC;IAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/C,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAEtC,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;gBACrB,SAAS,EAAE,CAAC;gBACZ,SAAS;YACX,CAAC;YACD,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;gBACrB,SAAS,EAAE,CAAC;gBACZ,UAAU,GAAG,IAAI,CAAC;gBAClB,SAAS;YACX,CAAC;YACD,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtB,SAAS,EAAE,CAAC;gBACZ,UAAU,GAAG,QAAQ,CAAC;gBACtB,SAAS;YACX,CAAC;YACD,KAAK,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;gBACnB,IAAI,UAAU,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;oBACvC,MAAM,IAAI,KAAK,CACb,wCAAwC,CAAC,qDAAqD,CAC/F,CAAC;gBACJ,CAAC;gBACD,SAAS,EAAE,CAAC;gBACZ,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;gBAC/B,SAAS;YACX,CAAC;QACH,CAAC;QACD,MAAM,IAAI,IAAI,CAAC;IACjB,CAAC;IAED,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;QAClB,SAAS,EAAE,CAAC;IACd,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC","sourcesContent":["import * as characters from \"./characters.js\";\nimport {\n createRootNode,\n createOrGetChild,\n TrieNode,\n NODE_TYPE_ROOT,\n} from \"./nodes.js\";\n\nexport const parseTrie = (serializedTrie: string) => {\n const rootNode = createRootNode();\n let domain = \"\";\n let parentNode: TrieNode = rootNode;\n // Type assertion necessary here due to a TypeScript unsoundness\n // https://github.com/microsoft/TypeScript/issues/9998#issuecomment-235963457\n let node = rootNode as TrieNode;\n\n const addDomain = () => {\n node = createOrGetChild(parentNode, domain);\n domain = \"\";\n };\n\n for (let i = 0; i < serializedTrie.length; i++) {\n const char = serializedTrie.charAt(i);\n\n switch (char) {\n case characters.SAME: {\n addDomain();\n continue;\n }\n case characters.DOWN: {\n addDomain();\n parentNode = node;\n continue;\n }\n case characters.RESET: {\n addDomain();\n parentNode = rootNode;\n continue;\n }\n case characters.UP: {\n if (parentNode.type === NODE_TYPE_ROOT) {\n throw new Error(\n `Error in serialized trie at position ${i}: Cannot go up, current parent node is already root`,\n );\n }\n addDomain();\n parentNode = parentNode.parent;\n continue;\n }\n }\n domain += char;\n }\n\n if (domain !== \"\") {\n addDomain();\n }\n\n return rootNode;\n};\n"]}
@@ -1,2 +0,0 @@
1
- import { TrieRootNode } from "./nodes.js";
2
- export declare const serializeTrie: (root: TrieRootNode) => string;
@@ -1 +0,0 @@
1
- {"version":3,"file":"serialize-trie.js","sourceRoot":"","sources":["../../src/trie/serialize-trie.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAkB,EAAU,EAAE;IAkB1D,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,MAAM,KAAK,GAAqB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACnE,IAAI,OAA8B,CAAC;IAEnC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC;QAC/C,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;YACnB,UAAU,IAAI,EAAE,CAAC;YACjB,SAAS;QACX,CAAC;QACD,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC;QAC5B,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAChC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;gBACxC,UAAU,IAAI,IAAI,CAAC;YACrB,CAAC;YACD,SAAS;QACX,CAAC;QACD,UAAU,IAAI,IAAI,CAAC;QAEnB,MAAM,QAAQ,GAAqB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAEzE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC","sourcesContent":["import { TrieRootNode, TrieChildNode } from \"./nodes.js\";\nimport { DOWN, UP, SAME } from \"./characters.js\";\n\nexport const serializeTrie = (root: TrieRootNode): string => {\n /*\n\tA trie might look like this:\n\n\t root\n\t |\n\t +-------+-----+-----+-----------+\n\t | | | |\n\t com uk jp موقع\n\t | |\n\t +--+--+ +--+--+\n\t | | | |\n\t co gov 静岡 岐阜\n\n\tAnd the textual representation of the trie looks like this:\n\tcom|uk>co,gov|jp>静岡,岐阜|موقع\n\t*/\n type QueueItem = TrieChildNode | typeof UP;\n let serialized = \"\";\n const queue: Array<QueueItem> = Array.from(root.children.values());\n let current: QueueItem | undefined;\n\n while ((current = queue.shift()) !== undefined) {\n if (current === UP) {\n serialized += UP;\n continue;\n }\n serialized += current.label;\n if (current.children.size === 0) {\n if (queue.length > 0 && queue[0] !== UP) {\n serialized += SAME;\n }\n continue;\n }\n serialized += DOWN;\n\n const newItems: Array<QueueItem> = Array.from(current.children.values());\n\n if (queue.length > 0) {\n newItems.push(UP);\n }\n queue.unshift(...newItems);\n }\n\n return serialized;\n};\n"]}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=type-util.js.map
@@ -1,23 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { fetchPsl } from "./psl/fetch-psl.js";
11
- import { buildTries } from "./psl/build-tries.js";
12
- import { serializeTrie } from "./trie/serialize-trie.js";
13
- export const fetchBuildSerializeTries = () => __awaiter(void 0, void 0, void 0, function* () {
14
- const psl = yield fetchPsl();
15
- const { icannTrie, privateTrie } = buildTries(psl);
16
- const serializedIcannTrie = serializeTrie(icannTrie);
17
- const serializedPrivateTrie = serializeTrie(privateTrie);
18
- return {
19
- serializedIcannTrie,
20
- serializedPrivateTrie,
21
- };
22
- });
23
- //# sourceMappingURL=update-tries.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update-tries.js","sourceRoot":"","sources":["../src/update-tries.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAS,EAAE;IACjD,MAAM,GAAG,GAAG,MAAM,QAAQ,EAAE,CAAC;IAC7B,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IACnD,MAAM,mBAAmB,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IACrD,MAAM,qBAAqB,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAEzD,OAAO;QACL,mBAAmB;QACnB,qBAAqB;KACtB,CAAC;AACJ,CAAC,CAAA,CAAC","sourcesContent":["import { fetchPsl } from \"./psl/fetch-psl.js\";\nimport { buildTries } from \"./psl/build-tries.js\";\nimport { serializeTrie } from \"./trie/serialize-trie.js\";\n\nexport const fetchBuildSerializeTries = async () => {\n const psl = await fetchPsl();\n const { icannTrie, privateTrie } = buildTries(psl);\n const serializedIcannTrie = serializeTrie(icannTrie);\n const serializedPrivateTrie = serializeTrie(privateTrie);\n\n return {\n serializedIcannTrie,\n serializedPrivateTrie,\n };\n};\n"]}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes