parse-domain 3.0.3 → 5.0.0

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 (80) hide show
  1. package/LICENSE +17 -20
  2. package/README.md +129 -60
  3. package/bin/update.js +13 -13
  4. package/build-cjs/serialized-tries/icann.json +1 -1
  5. package/build-cjs/serialized-tries/info.json +1 -1
  6. package/build-cjs/serialized-tries/private.json +1 -1
  7. package/build-cjs/src/config.js +1 -0
  8. package/build-cjs/src/config.js.map +1 -1
  9. package/build-cjs/src/from-url.js +4 -2
  10. package/build-cjs/src/from-url.js.map +1 -1
  11. package/build-cjs/src/main.d.ts +1 -1
  12. package/build-cjs/src/main.js +9 -5
  13. package/build-cjs/src/main.js.map +1 -1
  14. package/build-cjs/src/parse-domain.d.ts +8 -2
  15. package/build-cjs/src/parse-domain.js +8 -6
  16. package/build-cjs/src/parse-domain.js.map +1 -1
  17. package/build-cjs/src/psl/build-tries.js +16 -14
  18. package/build-cjs/src/psl/build-tries.js.map +1 -1
  19. package/build-cjs/src/psl/fetch-psl.js +5 -3
  20. package/build-cjs/src/psl/fetch-psl.js.map +1 -1
  21. package/build-cjs/src/sanitize.d.ts +26 -4
  22. package/build-cjs/src/sanitize.js +105 -38
  23. package/build-cjs/src/sanitize.js.map +1 -1
  24. package/build-cjs/src/scripts/update-psl-fixture.js +4 -3
  25. package/build-cjs/src/scripts/update-psl-fixture.js.map +1 -1
  26. package/build-cjs/src/scripts/update-tries.js +6 -5
  27. package/build-cjs/src/scripts/update-tries.js.map +1 -1
  28. package/build-cjs/src/serialized-tries.js +1 -0
  29. package/build-cjs/src/serialized-tries.js.map +1 -1
  30. package/build-cjs/src/smoke-test.js +7 -5
  31. package/build-cjs/src/smoke-test.js.map +1 -1
  32. package/build-cjs/src/trie/characters.js +1 -0
  33. package/build-cjs/src/trie/characters.js.map +1 -1
  34. package/build-cjs/src/trie/create-trie.d.ts +1 -1
  35. package/build-cjs/src/trie/create-trie.js +5 -3
  36. package/build-cjs/src/trie/create-trie.js.map +1 -1
  37. package/build-cjs/src/trie/look-up.d.ts +2 -1
  38. package/build-cjs/src/trie/look-up.js +17 -3
  39. package/build-cjs/src/trie/look-up.js.map +1 -1
  40. package/build-cjs/src/trie/nodes.js +5 -2
  41. package/build-cjs/src/trie/nodes.js.map +1 -1
  42. package/build-cjs/src/trie/parse-trie.js +19 -5
  43. package/build-cjs/src/trie/parse-trie.js.map +1 -1
  44. package/build-cjs/src/trie/serialize-trie.js +3 -1
  45. package/build-cjs/src/trie/serialize-trie.js.map +1 -1
  46. package/build-cjs/src/type-util.d.ts +1 -1
  47. package/build-cjs/src/update-tries.js +7 -5
  48. package/build-cjs/src/update-tries.js.map +1 -1
  49. package/build-esm/serialized-tries/icann.json +1 -1
  50. package/build-esm/serialized-tries/info.json +1 -1
  51. package/build-esm/serialized-tries/private.json +1 -1
  52. package/build-esm/src/config.js.map +1 -1
  53. package/build-esm/src/from-url.js +1 -1
  54. package/build-esm/src/from-url.js.map +1 -1
  55. package/build-esm/src/main.d.ts +1 -1
  56. package/build-esm/src/main.js +3 -1
  57. package/build-esm/src/main.js.map +1 -1
  58. package/build-esm/src/parse-domain.d.ts +8 -2
  59. package/build-esm/src/parse-domain.js +2 -2
  60. package/build-esm/src/parse-domain.js.map +1 -1
  61. package/build-esm/src/psl/build-tries.js +10 -10
  62. package/build-esm/src/psl/build-tries.js.map +1 -1
  63. package/build-esm/src/psl/fetch-psl.js.map +1 -1
  64. package/build-esm/src/sanitize.d.ts +26 -4
  65. package/build-esm/src/sanitize.js +103 -35
  66. package/build-esm/src/sanitize.js.map +1 -1
  67. package/build-esm/src/serialized-tries.js.map +1 -1
  68. package/build-esm/src/smoke-test.js.map +1 -1
  69. package/build-esm/src/trie/create-trie.d.ts +1 -1
  70. package/build-esm/src/trie/create-trie.js.map +1 -1
  71. package/build-esm/src/trie/look-up.d.ts +2 -1
  72. package/build-esm/src/trie/look-up.js.map +1 -1
  73. package/build-esm/src/trie/nodes.js.map +1 -1
  74. package/build-esm/src/trie/parse-trie.js.map +1 -1
  75. package/build-esm/src/trie/serialize-trie.js.map +1 -1
  76. package/build-esm/src/type-util.d.ts +1 -1
  77. package/build-esm/src/type-util.js +1 -0
  78. package/build-esm/src/update-tries.js.map +1 -1
  79. package/package.json +93 -85
  80. package/CHANGELOG.md +0 -260
@@ -1,12 +1,32 @@
1
- import isIp from "is-ip";
1
+ import { version as getIpVersion } from "is-ip";
2
2
  import { Label } from "./parse-domain";
3
3
  import { NO_HOSTNAME } from "./from-url";
4
+ export declare enum Validation {
5
+ /**
6
+ * Allows any octets as labels
7
+ * but still restricts the length of labels and the overall domain.
8
+ *
9
+ * @see https://www.rfc-editor.org/rfc/rfc2181#section-11
10
+ **/
11
+ Lax = "LAX",
12
+ /**
13
+ * Only allows ASCII letters, digits and hyphens (aka LDH),
14
+ * forbids hyphens at the beginning or end of a label
15
+ * and requires top-level domain names not to be all-numeric.
16
+ *
17
+ * This is the default if no validation is configured.
18
+ *
19
+ * @see https://datatracker.ietf.org/doc/html/rfc3696#section-2
20
+ */
21
+ Strict = "STRICT"
22
+ }
4
23
  export declare enum ValidationErrorType {
5
24
  NoHostname = "NO_HOSTNAME",
6
25
  DomainMaxLength = "DOMAIN_MAX_LENGTH",
7
26
  LabelMinLength = "LABEL_MIN_LENGTH",
8
27
  LabelMaxLength = "LABEL_MAX_LENGTH",
9
- LabelInvalidCharacter = "LABEL_INVALID_CHARACTER"
28
+ LabelInvalidCharacter = "LABEL_INVALID_CHARACTER",
29
+ LastLabelInvalid = "LAST_LABEL_INVALID"
10
30
  }
11
31
  export declare type ValidationError = {
12
32
  type: ValidationErrorType;
@@ -21,7 +41,7 @@ export declare enum SanitizationResultType {
21
41
  export declare type SanitizationResultValidIp = {
22
42
  type: SanitizationResultType.ValidIp;
23
43
  ip: string;
24
- ipVersion: Exclude<ReturnType<typeof isIp.version>, undefined>;
44
+ ipVersion: Exclude<ReturnType<typeof getIpVersion>, undefined>;
25
45
  };
26
46
  export declare type SanitizationResultValidDomain = {
27
47
  type: SanitizationResultType.ValidDomain;
@@ -33,4 +53,6 @@ export declare type SanitizationResultError = {
33
53
  errors: Array<ValidationError>;
34
54
  };
35
55
  export declare type SanitizationResult = SanitizationResultValidIp | SanitizationResultValidDomain | SanitizationResultError;
36
- export declare const sanitize: (input: string | typeof NO_HOSTNAME) => SanitizationResult;
56
+ export declare const sanitize: (input: string | typeof NO_HOSTNAME, options?: {
57
+ validation?: Validation;
58
+ }) => SanitizationResult;
@@ -1,12 +1,35 @@
1
- // eslint-disable-next-line import/default
2
- import isIp from "is-ip";
1
+ import { version as getIpVersion } from "is-ip";
3
2
  // See https://en.wikipedia.org/wiki/Domain_name
4
3
  // See https://tools.ietf.org/html/rfc1034
5
4
  const LABEL_SEPARATOR = ".";
6
- const LABEL_ROOT = "";
7
5
  const LABEL_LENGTH_MIN = 1;
8
6
  const LABEL_LENGTH_MAX = 63;
7
+ /**
8
+ * 255 octets - 2 octets if you remove the last dot
9
+ * @see https://devblogs.microsoft.com/oldnewthing/20120412-00/?p=7873
10
+ */
9
11
  const DOMAIN_LENGTH_MAX = 253;
12
+ const textEncoder = new TextEncoder();
13
+ export var Validation;
14
+ (function (Validation) {
15
+ /**
16
+ * Allows any octets as labels
17
+ * but still restricts the length of labels and the overall domain.
18
+ *
19
+ * @see https://www.rfc-editor.org/rfc/rfc2181#section-11
20
+ **/
21
+ Validation["Lax"] = "LAX";
22
+ /**
23
+ * Only allows ASCII letters, digits and hyphens (aka LDH),
24
+ * forbids hyphens at the beginning or end of a label
25
+ * and requires top-level domain names not to be all-numeric.
26
+ *
27
+ * This is the default if no validation is configured.
28
+ *
29
+ * @see https://datatracker.ietf.org/doc/html/rfc3696#section-2
30
+ */
31
+ Validation["Strict"] = "STRICT";
32
+ })(Validation || (Validation = {}));
10
33
  export var ValidationErrorType;
11
34
  (function (ValidationErrorType) {
12
35
  ValidationErrorType["NoHostname"] = "NO_HOSTNAME";
@@ -14,6 +37,7 @@ export var ValidationErrorType;
14
37
  ValidationErrorType["LabelMinLength"] = "LABEL_MIN_LENGTH";
15
38
  ValidationErrorType["LabelMaxLength"] = "LABEL_MAX_LENGTH";
16
39
  ValidationErrorType["LabelInvalidCharacter"] = "LABEL_INVALID_CHARACTER";
40
+ ValidationErrorType["LastLabelInvalid"] = "LAST_LABEL_INVALID";
17
41
  })(ValidationErrorType || (ValidationErrorType = {}));
18
42
  export var SanitizationResultType;
19
43
  (function (SanitizationResultType) {
@@ -28,8 +52,7 @@ const createNoHostnameError = (input) => {
28
52
  column: 1,
29
53
  };
30
54
  };
31
- const createDomainMaxLengthError = (domain) => {
32
- const length = domain.length;
55
+ const createDomainMaxLengthError = (domain, length) => {
33
56
  return {
34
57
  type: ValidationErrorType.DomainMaxLength,
35
58
  message: `Domain "${domain}" is too long. Domain is ${length} octets long but should not be longer than ${DOMAIN_LENGTH_MAX}.`,
@@ -59,7 +82,14 @@ const createLabelInvalidCharacterError = (label, invalidCharacter, column) => {
59
82
  column,
60
83
  };
61
84
  };
62
- export const sanitize = (input) => {
85
+ const createLastLabelInvalidError = (label, column) => {
86
+ return {
87
+ type: ValidationErrorType.LabelInvalidCharacter,
88
+ message: `Last label "${label}" must not be all-numeric.`,
89
+ column,
90
+ };
91
+ };
92
+ export const sanitize = (input, options = {}) => {
63
93
  // Extra check for non-TypeScript users
64
94
  if (typeof input !== "string") {
65
95
  return {
@@ -68,10 +98,17 @@ export const sanitize = (input) => {
68
98
  };
69
99
  }
70
100
  const inputTrimmed = input.trim();
101
+ if (inputTrimmed === "") {
102
+ return {
103
+ type: SanitizationResultType.ValidDomain,
104
+ domain: inputTrimmed,
105
+ labels: [],
106
+ };
107
+ }
71
108
  // IPv6 addresses are surrounded by square brackets in URLs
72
109
  // See https://tools.ietf.org/html/rfc3986#section-3.2.2
73
110
  const inputTrimmedAsIp = inputTrimmed.replace(/^\[|]$/g, "");
74
- const ipVersion = isIp.version(inputTrimmedAsIp);
111
+ const ipVersion = getIpVersion(inputTrimmedAsIp);
75
112
  if (ipVersion !== undefined) {
76
113
  return {
77
114
  type: SanitizationResultType.ValidIp,
@@ -79,38 +116,18 @@ export const sanitize = (input) => {
79
116
  ipVersion,
80
117
  };
81
118
  }
82
- if (inputTrimmed.length > DOMAIN_LENGTH_MAX) {
119
+ const lastChar = inputTrimmed.charAt(inputTrimmed.length - 1);
120
+ const canonicalInput = lastChar === LABEL_SEPARATOR ? inputTrimmed.slice(0, -1) : inputTrimmed;
121
+ const octets = new TextEncoder().encode(canonicalInput);
122
+ if (octets.length > DOMAIN_LENGTH_MAX) {
83
123
  return {
84
124
  type: SanitizationResultType.Error,
85
- errors: [createDomainMaxLengthError(inputTrimmed)],
125
+ errors: [createDomainMaxLengthError(inputTrimmed, octets.length)],
86
126
  };
87
127
  }
88
- const labels = inputTrimmed.split(LABEL_SEPARATOR);
89
- const lastLabel = labels[labels.length - 1];
90
- // If the last label is the special root label, ignore it
91
- if (lastLabel === LABEL_ROOT) {
92
- labels.pop();
93
- }
94
- const labelValidationErrors = [];
95
- let column = 1;
96
- for (const label of labels) {
97
- // According to https://tools.ietf.org/html/rfc6761 labels should
98
- // only contain ASCII letters, digits and hyphens (LDH).
99
- const invalidCharacter = /[^\d\-a-z]/iu.exec(label);
100
- if (invalidCharacter) {
101
- labelValidationErrors.push(createLabelInvalidCharacterError(label, invalidCharacter[0], invalidCharacter.index + 1));
102
- }
103
- else if (
104
- // We can use .length here to check for the octet size because
105
- // label can only contain ASCII LDH characters at this point.
106
- label.length < LABEL_LENGTH_MIN) {
107
- labelValidationErrors.push(createLabelMinLengthError(label, column));
108
- }
109
- else if (label.length > LABEL_LENGTH_MAX) {
110
- labelValidationErrors.push(createLabelMaxLengthError(label, column));
111
- }
112
- column += label.length + LABEL_SEPARATOR.length;
113
- }
128
+ const labels = canonicalInput.split(LABEL_SEPARATOR);
129
+ const { validation = Validation.Strict } = options;
130
+ const labelValidationErrors = validateLabels[validation](labels);
114
131
  if (labelValidationErrors.length > 0) {
115
132
  return {
116
133
  type: SanitizationResultType.Error,
@@ -123,4 +140,55 @@ export const sanitize = (input) => {
123
140
  labels,
124
141
  };
125
142
  };
143
+ const validateLabels = {
144
+ [Validation.Lax]: (labels) => {
145
+ const labelValidationErrors = [];
146
+ let column = 1;
147
+ for (const label of labels) {
148
+ const octets = textEncoder.encode(label);
149
+ if (octets.length < LABEL_LENGTH_MIN) {
150
+ labelValidationErrors.push(createLabelMinLengthError(label, column));
151
+ }
152
+ else if (octets.length > LABEL_LENGTH_MAX) {
153
+ labelValidationErrors.push(createLabelMaxLengthError(label, column));
154
+ }
155
+ column += label.length + LABEL_SEPARATOR.length;
156
+ }
157
+ return labelValidationErrors;
158
+ },
159
+ [Validation.Strict]: (labels) => {
160
+ const labelValidationErrors = [];
161
+ let column = 1;
162
+ let lastLabel;
163
+ for (const label of labels) {
164
+ // According to https://tools.ietf.org/html/rfc6761 labels should
165
+ // only contain ASCII letters, digits and hyphens (LDH).
166
+ const invalidCharacter = /[^\da-z-]/i.exec(label);
167
+ if (invalidCharacter) {
168
+ labelValidationErrors.push(createLabelInvalidCharacterError(label, invalidCharacter[0], invalidCharacter.index + 1));
169
+ }
170
+ if (label.startsWith("-")) {
171
+ labelValidationErrors.push(createLabelInvalidCharacterError(label, "-", column));
172
+ }
173
+ else if (label.endsWith("-")) {
174
+ labelValidationErrors.push(createLabelInvalidCharacterError(label, "-", column + label.length - 1));
175
+ }
176
+ if (
177
+ // We can use .length here to check for the octet size because
178
+ // label can only contain ASCII LDH characters at this point.
179
+ label.length < LABEL_LENGTH_MIN) {
180
+ labelValidationErrors.push(createLabelMinLengthError(label, column));
181
+ }
182
+ else if (label.length > LABEL_LENGTH_MAX) {
183
+ labelValidationErrors.push(createLabelMaxLengthError(label, column));
184
+ }
185
+ column += label.length + LABEL_SEPARATOR.length;
186
+ lastLabel = label;
187
+ }
188
+ if (lastLabel !== undefined && /[a-z-]/iu.test(lastLabel) === false) {
189
+ labelValidationErrors.push(createLastLabelInvalidError(lastLabel, column - lastLabel.length - LABEL_SEPARATOR.length));
190
+ }
191
+ return labelValidationErrors;
192
+ },
193
+ };
126
194
  //# sourceMappingURL=sanitize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../../src/sanitize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sanitize.js","sourceRoot":"","sources":["../../src/sanitize.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"serialized-tries.js","sourceRoot":"","sources":["../../src/serialized-tries.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gCAAgC,CAAC;AACvD,OAAO,WAAW,MAAM,kCAAkC,CAAC;AAE3D,OAAO,EAAC,SAAS,EAAE,WAAW,EAAC,CAAC"}
1
+ {"version":3,"file":"serialized-tries.js","sourceRoot":"","sources":["../../src/serialized-tries.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gCAAgC,CAAC;AACvD,OAAO,WAAW,MAAM,kCAAkC,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"smoke-test.js","sourceRoot":"","sources":["../../src/smoke-test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAC,WAAW,EAAC,MAAM,QAAQ,CAAC;AAEnC,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE;IAChC,eAAe,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE;QAC/C,QAAQ,EAAE,iBAAiB;QAC3B,IAAI,EAAE,QAAQ;QACd,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;YACN,UAAU,EAAE,CAAC,KAAK,CAAC;YACnB,MAAM,EAAE,SAAS;YACjB,eAAe,EAAE,CAAC,KAAK,CAAC;SACxB;KACD,CAAC,CAAC;IACH,eAAe,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAE;QACjD,QAAQ,EAAE,mBAAmB;QAC7B,IAAI,EAAE,QAAQ;QACd,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;YACN,UAAU,EAAE,CAAC,KAAK,CAAC;YACnB,MAAM,EAAE,SAAS;YACjB,eAAe,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;SAC7B;KACD,CAAC,CAAC;IACH,eAAe,CAAC,WAAW,CAAC,4BAA4B,CAAC,EAAE;QAC1D,QAAQ,EAAE,4BAA4B;QACtC,IAAI,EAAE,QAAQ;QACd,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;YACN,UAAU,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC;YAC9B,MAAM,EAAE,YAAY;YACpB,eAAe,EAAE,CAAC,KAAK,CAAC;SACxB;KACD,CAAC,CAAC;IACH,oDAAoD;IACpD,0DAA0D;IAC1D,eAAe,CAAC,WAAW,CAAC,+BAA+B,CAAC,EAAE;QAC7D,QAAQ,EAAE,+BAA+B;QACzC,IAAI,EAAE,QAAQ;QACd,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;YACN,UAAU,EAAE,CAAC,KAAK,CAAC;YACnB,MAAM,EAAE,aAAa;YACrB,eAAe,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC;SACrC;KACD,CAAC,CAAC;AACJ,CAAC,CAAC"}
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,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE;IAC/B,eAAe,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE;QAC9C,QAAQ,EAAE,iBAAiB;QAC3B,IAAI,EAAE,QAAQ;QACd,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,QAAQ;QACd,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,QAAQ;QACd,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,oDAAoD;IACpD,0DAA0D;IAC1D,eAAe,CAAC,WAAW,CAAC,+BAA+B,CAAC,EAAE;QAC5D,QAAQ,EAAE,+BAA+B;QACzC,IAAI,EAAE,QAAQ;QACd,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"}
@@ -1 +1 @@
1
- export declare const createTrieFromList: (list: string[]) => import("./nodes").TrieRootNode;
1
+ export declare const createTrieFromList: (list: Array<string>) => import("./nodes").TrieRootNode;
@@ -1 +1 @@
1
- {"version":3,"file":"create-trie.js","sourceRoot":"","sources":["../../../src/trie/create-trie.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,gBAAgB,EAAW,MAAM,SAAS,CAAC;AAEnE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAmB,EAAE,EAAE;IACzD,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;IAE9B,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;QACxB,IAAI,IAAI,GAAa,IAAI,CAAC;QAE1B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YAC9C,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACrC;KACD;IAED,OAAO,IAAI,CAAC;AACb,CAAC,CAAC"}
1
+ {"version":3,"file":"create-trie.js","sourceRoot":"","sources":["../../../src/trie/create-trie.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAY,MAAM,SAAS,CAAC;AAErE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,IAAmB,EAAE,EAAE;IACxD,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;IAE9B,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE;QACvB,IAAI,IAAI,GAAa,IAAI,CAAC;QAE1B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7C,IAAI,GAAG,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACtC;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
@@ -1,2 +1,3 @@
1
1
  import { TrieNode } from "./nodes";
2
- export declare const lookUpTldsInTrie: (labels: string[], trie: TrieNode) => string[];
2
+ import { Label } from "../parse-domain";
3
+ export declare const lookUpTldsInTrie: (labels: Array<Label>, trie: TrieNode) => string[];
@@ -1 +1 @@
1
- {"version":3,"file":"look-up.js","sourceRoot":"","sources":["../../../src/trie/look-up.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAI3C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAoB,EAAE,IAAc,EAAE,EAAE;IACxE,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;QAClC,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,EAAY,CAAC;QAC5C,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAE3C,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;YAC3C,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,GAAG,cAAc,CAAC,EAAE;gBAC7D,MAAM;aACN;YACD,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAa,CAAC;SAC1D;aAAM;YACN,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,KAAK,EAAE;gBAChD,MAAM;aACN;YACD,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAa,CAAC;SACrD;QAED,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KACpB;IAED,OAAO,IAAI,CAAC;AACb,CAAC,CAAC"}
1
+ {"version":3,"file":"look-up.js","sourceRoot":"","sources":["../../../src/trie/look-up.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAI3C,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;QACjC,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;YAC1C,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,GAAG,cAAc,CAAC,EAAE;gBAC5D,MAAM;aACP;YACD,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAa,CAAC;SAC3D;aAAM;YACL,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,KAAK,KAAK,EAAE;gBAC/C,MAAM;aACP;YACD,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAa,CAAC;SACtD;QAED,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KACrB;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../../src/trie/nodes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAC7C,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AAe/C,MAAM,CAAC,MAAM,cAAc,GAAG,GAAiB,EAAE;IAChD,OAAO;QACN,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,IAAI,GAAG,EAAE;KACnB,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAgB,EAAE,KAAa,EAAE,EAAE;IACnE,IAAI,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEvC,IAAI,KAAK,KAAK,SAAS,EAAE;QACxB,KAAK,GAAG;YACP,IAAI,EAAE,eAAe;YACrB,KAAK;YACL,QAAQ,EAAE,IAAI,GAAG,EAAE;YACnB,MAAM;SACN,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;KAClC;IAED,OAAO,KAAK,CAAC;AACd,CAAC,CAAC"}
1
+ {"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../../src/trie/nodes.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAC7C,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AAe/C,MAAM,CAAC,MAAM,cAAc,GAAG,GAAiB,EAAE;IAC/C,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,IAAI,GAAG,EAAE;KACpB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAAgB,EAAE,KAAa,EAAE,EAAE;IAClE,IAAI,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEvC,IAAI,KAAK,KAAK,SAAS,EAAE;QACvB,KAAK,GAAG;YACN,IAAI,EAAE,eAAe;YACrB,KAAK;YACL,QAAQ,EAAE,IAAI,GAAG,EAAE;YACnB,MAAM;SACP,CAAC;QACF,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;KACnC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse-trie.js","sourceRoot":"","sources":["../../../src/trie/parse-trie.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,EACN,cAAc,EACd,gBAAgB,EAEhB,cAAc,GACd,MAAM,SAAS,CAAC;AAEjB,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,cAAsB,EAAE,EAAE;IACnD,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;QACtB,IAAI,GAAG,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC5C,MAAM,GAAG,EAAE,CAAC;IACb,CAAC,CAAC;IAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC/C,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAEtC,QAAQ,IAAI,EAAE;YACb,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC;gBACrB,SAAS,EAAE,CAAC;gBACZ,SAAS;aACT;YACD,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC;gBACrB,SAAS,EAAE,CAAC;gBACZ,UAAU,GAAG,IAAI,CAAC;gBAClB,SAAS;aACT;YACD,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC;gBACtB,SAAS,EAAE,CAAC;gBACZ,UAAU,GAAG,QAAQ,CAAC;gBACtB,SAAS;aACT;YACD,KAAK,UAAU,CAAC,EAAE,CAAC,CAAC;gBACnB,IAAI,UAAU,CAAC,IAAI,KAAK,cAAc,EAAE;oBACvC,MAAM,IAAI,KAAK,CACd,wCAAwC,CAAC,qDAAqD,CAC9F,CAAC;iBACF;gBACD,SAAS,EAAE,CAAC;gBACZ,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;gBAC/B,SAAS;aACT;SACD;QACD,MAAM,IAAI,IAAI,CAAC;KACf;IAED,IAAI,MAAM,KAAK,EAAE,EAAE;QAClB,SAAS,EAAE,CAAC;KACZ;IAED,OAAO,QAAQ,CAAC;AACjB,CAAC,CAAC"}
1
+ {"version":3,"file":"parse-trie.js","sourceRoot":"","sources":["../../../src/trie/parse-trie.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,EACL,cAAc,EACd,gBAAgB,EAEhB,cAAc,GACf,MAAM,SAAS,CAAC;AAEjB,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;QAC9C,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAEtC,QAAQ,IAAI,EAAE;YACZ,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC;gBACpB,SAAS,EAAE,CAAC;gBACZ,SAAS;aACV;YACD,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC;gBACpB,SAAS,EAAE,CAAC;gBACZ,UAAU,GAAG,IAAI,CAAC;gBAClB,SAAS;aACV;YACD,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC;gBACrB,SAAS,EAAE,CAAC;gBACZ,UAAU,GAAG,QAAQ,CAAC;gBACtB,SAAS;aACV;YACD,KAAK,UAAU,CAAC,EAAE,CAAC,CAAC;gBAClB,IAAI,UAAU,CAAC,IAAI,KAAK,cAAc,EAAE;oBACtC,MAAM,IAAI,KAAK,CACb,wCAAwC,CAAC,qDAAqD,CAC/F,CAAC;iBACH;gBACD,SAAS,EAAE,CAAC;gBACZ,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;gBAC/B,SAAS;aACV;SACF;QACD,MAAM,IAAI,IAAI,CAAC;KAChB;IAED,IAAI,MAAM,KAAK,EAAE,EAAE;QACjB,SAAS,EAAE,CAAC;KACb;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"serialize-trie.js","sourceRoot":"","sources":["../../../src/trie/serialize-trie.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAC,MAAM,cAAc,CAAC;AAE5C,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAkB,EAAU,EAAE;IAkB3D,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;QAC/C,IAAI,OAAO,KAAK,EAAE,EAAE;YACnB,UAAU,IAAI,EAAE,CAAC;YACjB,SAAS;SACT;QACD,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC;QAC5B,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE;YAChC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;gBACxC,UAAU,IAAI,IAAI,CAAC;aACnB;YACD,SAAS;SACT;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;YACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAClB;QACD,KAAK,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;KAC3B;IAED,OAAO,UAAU,CAAC;AACnB,CAAC,CAAC"}
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,cAAc,CAAC;AAE9C,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;QAC9C,IAAI,OAAO,KAAK,EAAE,EAAE;YAClB,UAAU,IAAI,EAAE,CAAC;YACjB,SAAS;SACV;QACD,UAAU,IAAI,OAAO,CAAC,KAAK,CAAC;QAC5B,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE;YAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;gBACvC,UAAU,IAAI,IAAI,CAAC;aACpB;YACD,SAAS;SACV;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;YACpB,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACnB;QACD,KAAK,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;KAC5B;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC"}
@@ -1,3 +1,3 @@
1
1
  export declare type Await<T> = T extends {
2
- then(onFulfilled?: (value: infer U) => unknown): unknown;
2
+ then: (onFulfilled?: (value: infer U) => unknown) => unknown;
3
3
  } ? U : T;
@@ -1 +1,2 @@
1
+ export {};
1
2
  //# sourceMappingURL=type-util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update-tries.js","sourceRoot":"","sources":["../../src/update-tries.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AAEpD,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAS,EAAE;IAClD,MAAM,GAAG,GAAG,MAAM,QAAQ,EAAE,CAAC;IAC7B,MAAM,EAAC,SAAS,EAAE,WAAW,EAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IACjD,MAAM,mBAAmB,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IACrD,MAAM,qBAAqB,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;IAEzD,OAAO;QACN,mBAAmB;QACnB,qBAAqB;KACrB,CAAC;AACH,CAAC,CAAA,CAAC"}
1
+ {"version":3,"file":"update-tries.js","sourceRoot":"","sources":["../../src/update-tries.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,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"}
package/package.json CHANGED
@@ -1,87 +1,95 @@
1
1
  {
2
- "name": "parse-domain",
3
- "version": "3.0.3",
4
- "description": "Splits a hostname into subdomains, domain and (effective) top-level domains",
5
- "keywords": [
6
- "domain",
7
- "url",
8
- "sub-domain",
9
- "tld",
10
- "parse",
11
- "sanitize",
12
- "top-level"
13
- ],
14
- "main": "./build-cjs/src/main.js",
15
- "module": "./build-esm/src/main.js",
16
- "types": "./build-esm/src/main.d.ts",
17
- "exports": {
18
- "require": "./build-cjs/src/main.js",
19
- "node": "./build-cjs/src/main.mjs",
20
- "import": "./build-esm/src/main.js"
21
- },
22
- "scripts": {
23
- "test": "jest",
24
- "posttest": "run-s build posttest:*",
25
- "posttest:lint": "eslint *.js src bin --ext js,ts",
26
- "build": "run-s build:*",
27
- "build:cleanup": "rimraf build-cjs build-esm",
28
- "build:tsc": "run-p build:tsc:cjs build:tsc:esm",
29
- "build:tsc:cjs": "tsc -p ./tsconfig.build-cjs.json",
30
- "build:tsc:esm": "tsc -p ./tsconfig.build-esm.json",
31
- "build:cpy": "cpy ./src/main.mjs ./build-cjs/src",
32
- "build:update": "./bin/update.js",
33
- "update:psl-fixture": "ts-node --transpile-only ./src/scripts/update-psl-fixture.ts",
34
- "update:tries": "ts-node --transpile-only ./src/scripts/update-tries.ts -- ../../serialized-tries",
35
- "update:dependencies": "updtr"
36
- },
37
- "bin": {
38
- "parse-domain-update": "./bin/update.js"
39
- },
40
- "repository": {
41
- "type": "git",
42
- "url": "https://github.com/peerigon/parse-domain.git"
43
- },
44
- "author": "peerigon <developers@peerigon.com>",
45
- "license": "Unlicense",
46
- "files": [
47
- "bin",
48
- "build-cjs",
49
- "build-esm"
50
- ],
51
- "sideEffects": false,
52
- "dependencies": {
53
- "is-ip": "^3.1.0",
54
- "node-fetch": "^2.6.0",
55
- "punycode": "^2.1.1"
56
- },
57
- "devDependencies": {
58
- "@types/jest": "^25.2.1",
59
- "@types/node": "^13.11.0",
60
- "@types/node-fetch": "^2.5.5",
61
- "@types/punycode": "^2.1.0",
62
- "@typescript-eslint/eslint-plugin": "^2.26.0",
63
- "@typescript-eslint/parser": "^2.26.0",
64
- "cpy-cli": "^3.1.0",
65
- "eslint": "^6.8.0",
66
- "eslint-config-peerigon": "^27.6.0",
67
- "eslint-import-resolver-typescript": "^2.0.0",
68
- "eslint-plugin-no-null": "^1.0.2",
69
- "eslint-plugin-prefer-arrow": "^1.1.7",
70
- "husky": "^4.2.3",
71
- "jest": "^25.2.7",
72
- "nock": "^12.0.3",
73
- "npm-run-all": "^4.1.5",
74
- "prettier": "^2.0.2",
75
- "pretty-quick": "^2.0.1",
76
- "rimraf": "^3.0.2",
77
- "ts-jest": "^25.3.1",
78
- "ts-node": "^8.8.2",
79
- "typescript": "^3.8.3",
80
- "updtr": "^3.1.0"
81
- },
82
- "husky": {
83
- "hooks": {
84
- "pre-commit": "pretty-quick --staged"
85
- }
86
- }
2
+ "name": "parse-domain",
3
+ "version": "5.0.0",
4
+ "description": "Splits a hostname into subdomains, domain and (effective) top-level domains",
5
+ "keywords": [
6
+ "domain",
7
+ "url",
8
+ "sub-domain",
9
+ "tld",
10
+ "parse",
11
+ "sanitize",
12
+ "top-level"
13
+ ],
14
+ "main": "./build-cjs/src/main.js",
15
+ "module": "./build-esm/src/main.js",
16
+ "types": "./build-esm/src/main.d.ts",
17
+ "exports": {
18
+ "require": "./build-cjs/src/main.js",
19
+ "node": "./build-cjs/src/main.mjs",
20
+ "default": "./build-esm/src/main.js"
21
+ },
22
+ "scripts": {
23
+ "test": "run-p test:*",
24
+ "test:suite": "jest",
25
+ "posttest": "run-s build posttest:*",
26
+ "posttest:lint": "eslint --cache --ext js,ts *.js src bin",
27
+ "build": "run-s build:*",
28
+ "build:cleanup": "rimraf build-cjs build-esm",
29
+ "build:tsc": "run-p build:tsc:cjs build:tsc:esm",
30
+ "build:tsc:cjs": "tsc -p ./tsconfig.build-cjs.json",
31
+ "build:tsc:esm": "tsc -p ./tsconfig.build-esm.json",
32
+ "build:cpy": "cpy ./src/main.mjs ./build-cjs/src",
33
+ "build:update": "./bin/update.js",
34
+ "prepare": "husky install",
35
+ "update:psl-fixture": "ts-node --transpile-only ./src/scripts/update-psl-fixture.ts",
36
+ "update:tries": "ts-node --transpile-only ./src/scripts/update-tries.ts -- ../../serialized-tries",
37
+ "update:dependencies": "updtr"
38
+ },
39
+ "bin": {
40
+ "parse-domain-update": "./bin/update.js"
41
+ },
42
+ "repository": {
43
+ "type": "git",
44
+ "url": "https://github.com/peerigon/parse-domain.git"
45
+ },
46
+ "author": "peerigon <developers@peerigon.com>",
47
+ "license": "MIT",
48
+ "files": [
49
+ "bin",
50
+ "build-cjs",
51
+ "build-esm"
52
+ ],
53
+ "sideEffects": false,
54
+ "lint-staged": {
55
+ "*.{ts,tsx,js,cjs,mjs,jsx}": [
56
+ "eslint --cache --fix",
57
+ "prettier --write"
58
+ ],
59
+ ".github/workflows/*.{yml,yaml}": [
60
+ "pin-github-action --allow-empty",
61
+ "prettier --write"
62
+ ],
63
+ "*.{json,css,md,yml,yaml}": "prettier --write"
64
+ },
65
+ "dependencies": {
66
+ "is-ip": "^3.1.0",
67
+ "node-fetch": "^2.6.1",
68
+ "punycode": "^2.1.1"
69
+ },
70
+ "devDependencies": {
71
+ "@types/jest": "^27.0.1",
72
+ "@types/node": "^16.7.10",
73
+ "@types/node-fetch": "^2.5.12",
74
+ "@types/punycode": "^2.1.0",
75
+ "@typescript-eslint/eslint-plugin": "^4.30.0",
76
+ "@typescript-eslint/parser": "^4.30.0",
77
+ "cpy-cli": "^3.1.1",
78
+ "eslint": "^7.32.0",
79
+ "eslint-config-peerigon": "^31.0.2",
80
+ "eslint-plugin-no-null": "^1.0.2",
81
+ "eslint-plugin-node": "^11.1.0",
82
+ "husky": "^7.0.2",
83
+ "jest": "^27.1.0",
84
+ "lint-staged": "^11.1.2",
85
+ "nock": "^13.1.3",
86
+ "npm-run-all": "^4.1.5",
87
+ "pin-github-action": "^1.4.0",
88
+ "prettier": "^2.3.2",
89
+ "rimraf": "^3.0.2",
90
+ "ts-jest": "^27.0.5",
91
+ "ts-node": "^10.2.1",
92
+ "typescript": "^4.4.2",
93
+ "updtr": "^4.0.0"
94
+ }
87
95
  }