plevinjs 0.2.0 → 0.2.2

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 (63) hide show
  1. package/README.md +81 -16
  2. package/dist/cli.d.ts +4 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +16 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/compress.d.ts +5 -0
  7. package/dist/compress.d.ts.map +1 -0
  8. package/dist/compress.js +954 -0
  9. package/dist/compress.js.map +1 -0
  10. package/dist/countries.d.ts +1 -1
  11. package/dist/countries.d.ts.map +1 -1
  12. package/dist/countries.js +251 -250
  13. package/dist/countries.js.map +1 -1
  14. package/dist/derive.d.ts +1 -0
  15. package/dist/derive.d.ts.map +1 -1
  16. package/dist/derive.js +12 -6
  17. package/dist/derive.js.map +1 -1
  18. package/dist/estimate.d.ts +38 -0
  19. package/dist/estimate.d.ts.map +1 -0
  20. package/dist/estimate.js +263 -0
  21. package/dist/estimate.js.map +1 -0
  22. package/dist/extra.d.ts.map +1 -1
  23. package/dist/extra.js +12 -12
  24. package/dist/extra.js.map +1 -1
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +52 -6
  27. package/dist/index.js.map +1 -1
  28. package/dist/leaves.d.ts +30 -0
  29. package/dist/leaves.d.ts.map +1 -0
  30. package/dist/leaves.js +183 -0
  31. package/dist/leaves.js.map +1 -0
  32. package/dist/lzma.d.ts +18 -0
  33. package/dist/lzma.d.ts.map +1 -1
  34. package/dist/lzma.js +18 -18
  35. package/dist/lzma.js.map +1 -1
  36. package/dist/matcher.d.ts +25 -0
  37. package/dist/matcher.d.ts.map +1 -0
  38. package/dist/matcher.js +198 -0
  39. package/dist/matcher.js.map +1 -0
  40. package/dist/models.d.ts +8 -0
  41. package/dist/models.d.ts.map +1 -1
  42. package/dist/plevin.min.js +258 -257
  43. package/dist/reader.d.ts.map +1 -1
  44. package/dist/reader.js +13 -1
  45. package/dist/reader.js.map +1 -1
  46. package/dist/selection.d.ts +34 -0
  47. package/dist/selection.d.ts.map +1 -0
  48. package/dist/selection.js +338 -0
  49. package/dist/selection.js.map +1 -0
  50. package/dist/slim.d.ts +21 -0
  51. package/dist/slim.d.ts.map +1 -0
  52. package/dist/slim.js +639 -0
  53. package/dist/slim.js.map +1 -0
  54. package/dist/slim.min.js +1 -0
  55. package/dist/stats.d.ts +61 -0
  56. package/dist/stats.d.ts.map +1 -0
  57. package/dist/stats.js +368 -0
  58. package/dist/stats.js.map +1 -0
  59. package/dist/writer.d.ts +32 -0
  60. package/dist/writer.d.ts.map +1 -0
  61. package/dist/writer.js +325 -0
  62. package/dist/writer.js.map +1 -0
  63. package/package.json +7 -2
@@ -1 +1 @@
1
- {"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../src/reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../src/reader.ts"],"names":[],"mappings":"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"}
package/dist/reader.js CHANGED
@@ -8,13 +8,24 @@ const BREAKS = new Set(" \t-,./()&_+'");
8
8
  const DEGREES = 10000;
9
9
  const UNSEEN = 255;
10
10
  const RECORDS = 1 << 14;
11
- const CARRIED = ["place", "network", "abuse", "prefix", "rpki", "roas", "rir"];
11
+ const CARRIED = [
12
+ "place",
13
+ "network",
14
+ "abuse",
15
+ "prefix",
16
+ "rpki",
17
+ "roas",
18
+ "rir",
19
+ "country",
20
+ "since",
21
+ ];
12
22
  const LINKED = new Set(["place", "network", "abuse"]);
13
23
  const STEPPED = new Set(["signed", "delta"]);
14
24
  const SPAN = "network";
15
25
  const BOOKS = {
16
26
  rpki: "rpki",
17
27
  rir: "rirs",
28
+ country: "countries",
18
29
  "place.granularity": "granularity",
19
30
  "city.timezone": "timezones",
20
31
  "city.type": "place_types",
@@ -22,6 +33,7 @@ const BOOKS = {
22
33
  "abuse.user_type": "categories",
23
34
  "abuse.service": "services",
24
35
  "abuse.evidence": "evidence",
36
+ "abuse.threat": "threats",
25
37
  "abuse.level": "levels",
26
38
  };
27
39
  const risk = (value) => (value === UNSEEN ? null : value / 100);
@@ -1 +1 @@
1
- {"version":3,"file":"reader.js","sourceRoot":"","sources":["../src/reader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reader.js","sourceRoot":"","sources":["../src/reader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /** What a build carries: fields asked for, the columns they need, rows narrowed. */
2
+ export type Kind = "number" | "signed" | "degrees" | "text" | "link";
3
+ export type Column = {
4
+ id: string;
5
+ kind: Kind;
6
+ table: string;
7
+ name: string;
8
+ };
9
+ export type Books = Record<string, string[]>;
10
+ type Narrow = Map<string, number[] | null>;
11
+ export declare const COLUMNS: Column[];
12
+ export declare const section: ({ id, kind }: Column) => string;
13
+ export declare const TABLES: string[];
14
+ export declare const ORDERED: Record<string, string[]>;
15
+ export declare const CARRIED: readonly ["place", "network", "abuse", "prefix", "rpki", "roas", "rir", "country", "since"];
16
+ export type Carried = (typeof CARRIED)[number];
17
+ export declare const FIELD_NAMES: string[];
18
+ export declare const FIELD_NEEDS: Record<string, string[]>;
19
+ export declare const VOCABULARIES: [string, string[]][];
20
+ export type Selection = {
21
+ name: string;
22
+ columns: Set<string>;
23
+ narrow: Narrow;
24
+ fields: string[];
25
+ sparse: boolean;
26
+ has: (id: string) => boolean;
27
+ table: (table: string) => boolean;
28
+ };
29
+ /** The file the builder names for these terms: `plevin.metro-place.plv`, or `plevin.plv`. */
30
+ export declare const fileName: (terms: string) => string;
31
+ /** The terms as the builder reads them: `place+metro`, or `full` for all that exists. */
32
+ export declare const parse: (terms: string, available?: Set<string>, books?: Books) => Selection;
33
+ export {};
34
+ //# sourceMappingURL=selection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection.d.ts","sourceRoot":"","sources":["../src/selection.ts"],"names":[],"mappings":"AAAA,oFAAoF;AAEpF,MAAM,MAAM,IAAI,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AACrE,MAAM,MAAM,MAAM,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAC7E,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;AAC7C,KAAK,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;AAqE3C,eAAO,MAAM,OAAO,EAAE,MAAM,EAG1B,CAAC;AAEH,eAAO,MAAM,OAAO,iBAAkB,MAAM,KAAG,MACF,CAAC;AAE9C,eAAO,MAAM,MAAM,UAUlB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAQ5C,CAAC;AAEF,eAAO,MAAM,OAAO,YAClB,OAAO,EACP,SAAS,EACT,OAAO,EACP,QAAQ,EACR,MAAM,EACN,MAAM,EACN,KAAK,EACL,SAAS,EACT,OAAO,CACC,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;AAkJ/C,eAAO,MAAM,WAAW,UAAiC,CAAC;AAE1D,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAA8B,CAAC;AAEhF,eAAO,MAAM,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAY5C,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IAC7B,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;CACnC,CAAC;AAwFF,6FAA6F;AAC7F,eAAO,MAAM,QAAQ,UAAW,MAAM,KAAG,MAG2B,CAAC;AAErE,yFAAyF;AACzF,eAAO,MAAM,KAAK,UACT,MAAM,cACF,GAAG,CAAC,MAAM,CAAC,UACf,KAAK,KACX,SAcF,CAAC"}
@@ -0,0 +1,338 @@
1
+ /** What a build carries: fields asked for, the columns they need, rows narrowed. */
2
+ const KINDS = [
3
+ ["region.name", "text"],
4
+ ["region.code", "text"],
5
+ ["region.iso", "text"],
6
+ ["region.type", "text"],
7
+ ["region.id", "number"],
8
+ ["region.country", "text"],
9
+ ["district.name", "text"],
10
+ ["district.code", "text"],
11
+ ["district.id", "number"],
12
+ ["metro.code", "number"],
13
+ ["metro.label", "text"],
14
+ ["city.name", "text"],
15
+ ["city.ascii", "text"],
16
+ ["city.id", "number"],
17
+ ["city.population", "number"],
18
+ ["city.type", "number"],
19
+ ["city.postal", "text"],
20
+ ["city.postal_partial", "number"],
21
+ ["city.timezone", "number"],
22
+ ["city.elevation", "signed"],
23
+ ["city.country", "text"],
24
+ ["city.metro", "link"],
25
+ ["city.region", "link"],
26
+ ["city.district", "link"],
27
+ ["place.lat", "degrees"],
28
+ ["place.lon", "degrees"],
29
+ ["place.accuracy", "number"],
30
+ ["place.granularity", "number"],
31
+ ["place.confidence", "number"],
32
+ ["place.city", "link"],
33
+ ["operator.company", "text"],
34
+ ["operator.website", "text"],
35
+ ["operator.category", "number"],
36
+ ["operator.tier", "number"],
37
+ ["operator.peering", "number"],
38
+ ["operator.scope", "text"],
39
+ ["operator.rir", "text"],
40
+ ["operator.since", "number"],
41
+ ["operator.street", "text"],
42
+ ["operator.state", "text"],
43
+ ["operator.postal", "text"],
44
+ ["operator.abuse_email", "text"],
45
+ ["operator.country", "text"],
46
+ ["operator.city", "link"],
47
+ ["carrier.user_count", "number"],
48
+ ["carrier.mcc", "number"],
49
+ ["carrier.mnc", "number"],
50
+ ["abuse.name", "text"],
51
+ ["abuse.user_type", "number"],
52
+ ["abuse.service", "number"],
53
+ ["abuse.evidence", "number"],
54
+ ["abuse.threat", "number"],
55
+ ["abuse.is_anycast", "number"],
56
+ ["abuse.is_satellite", "number"],
57
+ ["abuse.risk", "number"],
58
+ ["abuse.level", "number"],
59
+ ["abuse.last_seen_days", "number"],
60
+ ["network.asn", "number"],
61
+ ["network.handle", "text"],
62
+ ["network.brand", "text"],
63
+ ["network.operator", "link"],
64
+ ["network.carrier", "link"],
65
+ ["network.abuse", "link"],
66
+ ];
67
+ export const COLUMNS = KINDS.map(([id, kind]) => {
68
+ const [table, name] = id.split(".");
69
+ return { id, kind, table, name };
70
+ });
71
+ export const section = ({ id, kind }) => `${kind === "link" ? "link" : "col"}.${id}`;
72
+ export const TABLES = [
73
+ "region",
74
+ "district",
75
+ "metro",
76
+ "city",
77
+ "place",
78
+ "operator",
79
+ "carrier",
80
+ "abuse",
81
+ "network",
82
+ ];
83
+ export const ORDERED = {
84
+ region: ["region.name"],
85
+ district: ["district.name"],
86
+ metro: ["metro.code"],
87
+ city: ["city.country", "city.ascii", "city.name"],
88
+ place: ["place.city", "place.lat", "place.lon"],
89
+ operator: ["operator.country", "operator.company"],
90
+ network: ["network.asn"],
91
+ };
92
+ export const CARRIED = [
93
+ "place",
94
+ "network",
95
+ "abuse",
96
+ "prefix",
97
+ "rpki",
98
+ "roas",
99
+ "rir",
100
+ "country",
101
+ "since",
102
+ ];
103
+ const COUNTRY = ["place.city", "city.country"];
104
+ const SERVERS = ["hosting", "cdn", "content"];
105
+ const FIELDS = [
106
+ ["abuse.evidence", ["abuse.evidence"]],
107
+ ["abuse.is_anonymous", ["abuse.service"]],
108
+ ["abuse.is_anonymous_vpn", ["abuse.service"]],
109
+ ["abuse.is_anycast", ["abuse.is_anycast"]],
110
+ ["abuse.is_crawler", ["abuse.user_type"]],
111
+ ["abuse.is_hosting_provider", ["abuse.user_type", "operator.category"]],
112
+ ["abuse.is_malicious", ["abuse.level"]],
113
+ ["abuse.is_private_relay", ["abuse.service"]],
114
+ ["abuse.is_proxy", ["abuse.service"]],
115
+ ["abuse.is_public_proxy", ["abuse.service"]],
116
+ ["abuse.is_residential_proxy", ["abuse.service"]],
117
+ ["abuse.is_satellite", ["network.abuse", "abuse.is_satellite"]],
118
+ ["abuse.is_tor_exit_node", ["abuse.service"]],
119
+ ["abuse.last_seen_days", ["abuse.last_seen_days"]],
120
+ ["abuse.level", ["abuse.level"]],
121
+ ["abuse.name", ["abuse.name"]],
122
+ ["abuse.network_risk", ["network.abuse", "abuse.risk"]],
123
+ ["abuse.provider", ["abuse.name", "abuse.service", "network.brand"]],
124
+ ["abuse.risk", ["abuse.risk"]],
125
+ ["abuse.service", ["abuse.service"]],
126
+ ["abuse.threat", ["abuse.threat"]],
127
+ ["metro.code", ["place.city", "city.metro", "metro.code"]],
128
+ ["metro.label", ["place.city", "city.metro", "metro.label"]],
129
+ ["network.asn", ["network.asn"]],
130
+ ["network.carrier.is_mobile", ["abuse.user_type", "operator.category"]],
131
+ ["network.carrier.mcc", ["network.carrier", "carrier.mcc"]],
132
+ ["network.carrier.mnc", ["network.carrier", "carrier.mnc"]],
133
+ ["network.carrier.user_count", ["network.carrier", "carrier.user_count"]],
134
+ ["network.carrier.user_type", ["abuse.user_type", "operator.category"]],
135
+ ["network.country", ["spine.country"]],
136
+ ["network.handle", ["network.handle"]],
137
+ ["network.operator.abuse_email", ["network.operator", "operator.abuse_email"]],
138
+ ["network.operator.brand", ["network.brand"]],
139
+ ["network.operator.category", ["network.operator", "operator.category"]],
140
+ [
141
+ "network.operator.city",
142
+ ["network.operator", "operator.city", "city.name", "city.id"],
143
+ ],
144
+ ["network.operator.company", ["network.operator", "operator.company"]],
145
+ ["network.operator.country", ["network.operator", "operator.country"]],
146
+ [
147
+ "network.operator.domain",
148
+ ["network.operator", "operator.website", "operator.abuse_email"],
149
+ ],
150
+ ["network.operator.peering", ["network.operator", "operator.peering"]],
151
+ ["network.operator.postal", ["network.operator", "operator.postal"]],
152
+ ["network.operator.rir", ["network.operator", "operator.rir"]],
153
+ ["network.operator.scope", ["network.operator", "operator.scope"]],
154
+ ["network.operator.since", ["network.operator", "operator.since"]],
155
+ ["network.operator.state", ["network.operator", "operator.state"]],
156
+ ["network.operator.street", ["network.operator", "operator.street"]],
157
+ ["network.operator.tier", ["network.operator", "operator.tier"]],
158
+ ["network.operator.website", ["network.operator", "operator.website"]],
159
+ ["network.prefix", ["spine.prefix"]],
160
+ ["network.rir", ["spine.rir"]],
161
+ ["network.roas", ["spine.roas"]],
162
+ ["network.rpki", ["spine.rpki"]],
163
+ ["network.since", ["spine.since"]],
164
+ ["place.city.ascii", ["place.city", "city.ascii"]],
165
+ ["place.city.elevation", ["place.city", "city.elevation"]],
166
+ ["place.city.id", ["place.city", "city.id"]],
167
+ ["place.city.name", ["place.city", "city.name"]],
168
+ ["place.city.population", ["place.city", "city.population"]],
169
+ ["place.city.postal", ["place.city", "city.postal"]],
170
+ ["place.city.postal_partial", ["place.city", "city.postal", "city.postal_partial"]],
171
+ ["place.city.timezone", ["place.city", "city.timezone"]],
172
+ ["place.city.type", ["place.city", "city.type"]],
173
+ ["place.country.code", COUNTRY],
174
+ ["place.country.common", COUNTRY],
175
+ ["place.country.driving_side", COUNTRY],
176
+ ["place.country.european_union", COUNTRY],
177
+ ["place.country.flag", COUNTRY],
178
+ ["place.country.iso3", COUNTRY],
179
+ ["place.country.name", COUNTRY],
180
+ ["place.country.numeric", COUNTRY],
181
+ ["place.country.official", COUNTRY],
182
+ ["place.district.code", ["place.city", "city.district", "district.code"]],
183
+ ["place.district.id", ["place.city", "city.district", "district.id"]],
184
+ ["place.district.name", ["place.city", "city.district", "district.name"]],
185
+ ["place.point.accuracy", ["place.accuracy"]],
186
+ ["place.point.confidence", ["place.confidence"]],
187
+ ["place.point.granularity", ["place.granularity"]],
188
+ ["place.point.lat", ["place.lat"]],
189
+ ["place.point.lon", ["place.lon"]],
190
+ ["place.region.code", ["place.city", "city.region", "region.code"]],
191
+ ["place.region.id", ["place.city", "city.region", "region.id"]],
192
+ ["place.region.iso", ["place.city", "city.region", "region.iso"]],
193
+ ["place.region.name", ["place.city", "city.region", "region.name"]],
194
+ ["place.region.type", ["place.city", "city.region", "region.type"]],
195
+ ];
196
+ const NARROW = [
197
+ ["abuse.is_tor_exit_node", "abuse.service", ["tor_exit_node"]],
198
+ ["abuse.is_private_relay", "abuse.service", ["private_relay"]],
199
+ ["abuse.is_anonymous_vpn", "abuse.service", ["anonymous_vpn"]],
200
+ ["abuse.is_public_proxy", "abuse.service", ["public_proxy"]],
201
+ ["abuse.is_residential_proxy", "abuse.service", ["residential_proxy"]],
202
+ ["abuse.is_proxy", "abuse.service", ["public_proxy", "residential_proxy"]],
203
+ ["abuse.is_crawler", "abuse.user_type", ["search_engine_spider"]],
204
+ ["abuse.is_hosting_provider", "abuse.user_type", SERVERS],
205
+ ["abuse.is_hosting_provider", "operator.category", SERVERS],
206
+ ["network.carrier.is_mobile", "abuse.user_type", ["cellular"]],
207
+ ["network.carrier.is_mobile", "operator.category", ["cellular"]],
208
+ ];
209
+ const WORDS = {
210
+ categories: [
211
+ "",
212
+ "residential",
213
+ "business",
214
+ "hosting",
215
+ "education",
216
+ "government",
217
+ "military",
218
+ "cdn",
219
+ "content",
220
+ "infrastructure",
221
+ "cellular",
222
+ "search_engine_spider",
223
+ "traveler",
224
+ "transit",
225
+ "exchange",
226
+ "non-profit",
227
+ ],
228
+ services: [
229
+ "",
230
+ "public_proxy",
231
+ "residential_proxy",
232
+ "anonymous_vpn",
233
+ "tor_exit_node",
234
+ "private_relay",
235
+ ],
236
+ };
237
+ const BOOKS = {
238
+ "abuse.service": "services",
239
+ "abuse.user_type": "categories",
240
+ "operator.category": "categories",
241
+ };
242
+ export const FIELD_NAMES = FIELDS.map(([field]) => field);
243
+ export const FIELD_NEEDS = Object.fromEntries(FIELDS);
244
+ export const VOCABULARIES = [
245
+ ["categories", ["abuse.user_type", "operator.category"]],
246
+ ["services", ["abuse.service"]],
247
+ ["evidence", ["abuse.evidence"]],
248
+ ["threats", ["abuse.threat"]],
249
+ ["levels", ["abuse.level"]],
250
+ ["granularity", ["place.granularity"]],
251
+ ["rpki", ["spine.rpki"]],
252
+ ["rirs", ["spine.rir"]],
253
+ ["place_types", ["city.type"]],
254
+ ["timezones", ["city.timezone"]],
255
+ ["countries", ["spine.country"]],
256
+ ];
257
+ const covers = (term, field) => field === term || field.startsWith(`${term}.`);
258
+ const valuesFor = (field, column, books) => {
259
+ const held = NARROW.filter(([one, two]) => one === field && two === column);
260
+ if (held.length === 0)
261
+ return null;
262
+ const book = books[BOOKS[column]] ?? WORDS[BOOKS[column]] ?? [];
263
+ return held.flatMap(([, , values]) => values.map((value) => Math.max(book.indexOf(value), 0)));
264
+ };
265
+ const narrowing = (chosen, books) => {
266
+ const narrow = new Map();
267
+ for (const [field, needs] of chosen) {
268
+ for (const need of needs) {
269
+ const more = valuesFor(field, need, books);
270
+ if (!narrow.has(need)) {
271
+ narrow.set(need, more);
272
+ continue;
273
+ }
274
+ const kept = narrow.get(need);
275
+ narrow.set(need, kept && more ? [...kept, ...more] : null);
276
+ }
277
+ }
278
+ return narrow;
279
+ };
280
+ const isAnswered = (field, needs, narrow, books) => needs.every((need) => {
281
+ const kept = narrow.get(need);
282
+ if (kept === undefined)
283
+ return false;
284
+ if (kept === null)
285
+ return true;
286
+ const mine = valuesFor(field, need, books);
287
+ return mine?.every((one) => kept.includes(one)) ?? false;
288
+ });
289
+ const select = (name, needed, chosen, books, available) => {
290
+ const columns = new Set(needed);
291
+ if ([...columns].some((id) => id.startsWith("region.")) &&
292
+ columns.has("city.country")) {
293
+ columns.add("region.country");
294
+ }
295
+ if (columns.has("abuse.risk") && available.has("abuse.level")) {
296
+ columns.add("abuse.level");
297
+ }
298
+ const named = ["network.handle", "network.operator", "operator.company"];
299
+ if (named.every((id) => columns.has(id)))
300
+ columns.delete("network.brand");
301
+ const narrow = narrowing(chosen, books);
302
+ for (const id of columns)
303
+ if (!narrow.has(id))
304
+ narrow.set(id, null);
305
+ const picked = chosen.map(([field]) => field);
306
+ const sparse = picked.includes("abuse.provider") && !picked.includes("network.operator.brand");
307
+ const fields = FIELDS.filter(([field, needs]) => isAnswered(field, needs, narrow, books))
308
+ .map(([field]) => field)
309
+ .filter((field) => available.has(field))
310
+ .filter((field) => !sparse || field !== "network.operator.brand");
311
+ return {
312
+ name,
313
+ columns,
314
+ narrow,
315
+ fields,
316
+ sparse,
317
+ has: (id) => columns.has(id),
318
+ table: (table) => COLUMNS.some((one) => one.table === table && columns.has(one.id)),
319
+ };
320
+ };
321
+ const termsOf = (terms) => [...new Set(terms.split("+").filter(Boolean))].sort();
322
+ /** The file the builder names for these terms: `plevin.metro-place.plv`, or `plevin.plv`. */
323
+ export const fileName = (terms) => terms === "full"
324
+ ? "plevin.plv"
325
+ : `plevin.${termsOf(terms).join("+").replace(/[.+]/g, "-")}.plv`;
326
+ /** The terms as the builder reads them: `place+metro`, or `full` for all that exists. */
327
+ export const parse = (terms, available = new Set(FIELD_NAMES), books = WORDS) => {
328
+ const parts = termsOf(terms);
329
+ const full = terms === "full";
330
+ const chosen = FIELDS.filter(([field]) => available.has(field)).filter(([field]) => full || parts.some((term) => covers(term, field)));
331
+ const unknown = parts.filter((term) => !full && !chosen.some(([field]) => covers(term, field)));
332
+ if (chosen.length === 0 || unknown.length > 0) {
333
+ throw new Error(`the database holds no field for: ${unknown.join(", ") || terms}`);
334
+ }
335
+ const needed = new Set(chosen.flatMap(([, needs]) => needs));
336
+ return select(full ? "full" : parts.join("+"), needed, chosen, books, available);
337
+ };
338
+ //# sourceMappingURL=selection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection.js","sourceRoot":"","sources":["../src/selection.ts"],"names":[],"mappings":"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"}
package/dist/slim.d.ts ADDED
@@ -0,0 +1,21 @@
1
+ /** A database cut down to the fields asked for, rebuilt the way the builder writes it. */
2
+ import { type Selection } from "./selection.ts";
3
+ import { type Stats } from "./stats.ts";
4
+ import { type Progress } from "./writer.ts";
5
+ export { fileName } from "./selection.ts";
6
+ export type { Progress } from "./writer.ts";
7
+ /** One database held open: each selection cut from it reuses what was already decoded. */
8
+ export declare class Slimmer {
9
+ private readonly source;
10
+ constructor(bytes: Uint8Array);
11
+ get built(): string;
12
+ get fields(): string[];
13
+ plan(terms: string): Selection;
14
+ /** The database for `terms` (`place+metro`, `network.asn`), as bytes to save. */
15
+ slim(terms: string, progress?: Progress): Uint8Array;
16
+ /** The counted facts `estimate` reads instead of this file, a few kilobytes of JSON. */
17
+ stats(): Stats;
18
+ }
19
+ /** A database rebuilt with only what `terms` (`place+metro`, `network.asn`) need. */
20
+ export declare const slim: (bytes: Uint8Array, terms: string, progress?: Progress) => Uint8Array;
21
+ //# sourceMappingURL=slim.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slim.d.ts","sourceRoot":"","sources":["../src/slim.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAG1F,OAAO,EAQL,KAAK,SAAS,EAIf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAqB,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAwB,KAAK,QAAQ,EAAuB,MAAM,aAAa,CAAC;AAEvF,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAqtB5C,0FAA0F;AAC1F,qBAAa,OAAO;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAEhC,YAAY,KAAK,EAAE,UAAU,EAE5B;IAED,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,MAAM,IAAI,MAAM,EAAE,CAErB;IAED,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAG7B;IAED,iFAAiF;IACjF,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,UAAU,CAInD;IAED,wFAAwF;IACxF,KAAK,IAAI,KAAK,CAeb;CACF;AAED,qFAAqF;AACrF,eAAO,MAAM,IAAI,UAAW,UAAU,SAAS,MAAM,aAAa,QAAQ,KAAG,UACnC,CAAC"}