@substrat-run/attachment-extractors 0.1.4 → 0.2.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.
package/README.md CHANGED
@@ -34,8 +34,9 @@ extractors" a valid configuration, not a broken one.
34
34
  | `docxExtractor` | Word documents: the body, then footnotes, endnotes, headers and footers |
35
35
  | `xlsxExtractor` | Spreadsheets: shared and inline strings, never a cell's number |
36
36
  | `pptxExtractor` | Presentations: slides in order, then speaker notes |
37
+ | `pdfExtractor` | PDF: the text each page draws, in page order. Written for hostile input: decompression, the cross-reference chain, object counts and every kind of nesting are bounded, and an encrypted file is refused with that reason |
37
38
 
38
- There is no PDF extractor yet, and nothing is OCR'd.
39
+ Nothing is OCR'd: a scanned PDF has no text layer and records `empty`.
39
40
 
40
41
  The HTML extractor **never indexes text the HTML parser keeps out of the rendered document**:
41
42
  comments, `script`, `style`, the other elements whose content a browser does not render, and
package/dist/index.d.ts CHANGED
@@ -24,8 +24,11 @@
24
24
  * central directory, inflates only the parts that carry text, and keeps the text of
25
25
  * their `t` elements. The inflate is the web-standard `DecompressionStream('deflate-raw')`,
26
26
  * present in Node and workerd alike, so the whole format costs no dependency.
27
- * - **No PDF yet, and no OCR.** A host given no extractor for a type records `unsupported`
28
- * with that reason — a legible outcome, never "indexed, no match".
27
+ * - **pdf**: the text layer its pages draw, read by `pdf.ts` — a parser written for hostile
28
+ * input, whose bounds that file lists. Encrypted files are refused with that reason.
29
+ * - **No OCR.** A scanned page has no text layer, so it extracts to nothing, which the kernel
30
+ * records `empty`; a host given no extractor for a type records `unsupported` with that
31
+ * reason — legible outcomes both, never "indexed, no match".
29
32
  *
30
33
  * ## The bounds this package owns, and why
31
34
  *
@@ -34,8 +37,8 @@
34
37
  *
35
38
  * - `maxInputBytes` is declared on each extractor, so the kernel can refuse an oversized
36
39
  * file on its RECORDED size before fetching a byte; each extractor checks it again.
37
- * - `maxInflatedBytes` is the zip-bomb cap: a counter on the bytes the inflater actually
38
- * produces, across every part of one file. An entry's declared size is checked first as
40
+ * - `maxInflatedBytes` is the decompression-bomb cap: a counter on the bytes the inflater
41
+ * actually produces, across every part (or every PDF stream) of one file. An entry's declared size is checked first as
39
42
  * a cheap refusal, and never trusted, because a bomb is exactly a file that lies about it.
40
43
  *
41
44
  * A file that is not what it says, or breaks a bound, is answered `{ failed }` with a
@@ -65,7 +68,8 @@
65
68
  * that are NOT cut to a stride are copies (joining the text collected) and the name tests
66
69
  * over the zip directory, at most 20 000 names of at most 255 bytes each.
67
70
  */
68
- import { type AttachmentExtractor } from '@substrat-run/kernel';
71
+ import type { AttachmentExtractor } from '@substrat-run/kernel';
72
+ export { PDF_OBJECTS_MAX, PDF_STREAM_MAX, PDF_XREF_SECTIONS, pdfTables } from './pdf.js';
69
73
  /** The bounds that protect the parsing process (K-43). */
70
74
  export interface ExtractorBounds {
71
75
  /** Largest file an extractor will read, declared to the kernel and checked again here. */
@@ -88,6 +92,8 @@ export declare const docxExtractor: (bounds?: ExtractorBounds) => AttachmentExtr
88
92
  export declare const xlsxExtractor: (bounds?: ExtractorBounds) => AttachmentExtractor;
89
93
  /** Presentations: slides in order, then their speaker notes. */
90
94
  export declare const pptxExtractor: (bounds?: ExtractorBounds) => AttachmentExtractor;
95
+ /** PDF: the text each page draws, in page order (`pdf.ts`). */
96
+ export declare function pdfExtractor(bounds?: ExtractorBounds): AttachmentExtractor;
91
97
  /**
92
98
  * Every extractor this package has, in the order a host should try them — what a host is
93
99
  * constructed with when it has no list of its own:
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEG;AACH,OAAO,EAEL,KAAK,mBAAmB,EAIzB,MAAM,sBAAsB,CAAC;AAsB9B,0DAA0D;AAC1D,MAAM,WAAW,eAAe;IAC9B,0FAA0F;IAC1F,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,uFAAuF;IACvF,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,eAGtC,CAAC;AAmrCF,+FAA+F;AAC/F,wBAAgB,aAAa,CAAC,MAAM,GAAE,eAA0C,GAAG,mBAAmB,CAUrG;AAED,gEAAgE;AAChE,wBAAgB,aAAa,CAAC,MAAM,GAAE,eAA0C,GAAG,mBAAmB,CAOrG;AAWD,+EAA+E;AAC/E,eAAO,MAAM,aAAa,YAAY,eAAe,wBAAoE,CAAC;AAC1H,+EAA+E;AAC/E,eAAO,MAAM,aAAa,YAAY,eAAe,wBAAoE,CAAC;AAC1H,gEAAgE;AAChE,eAAO,MAAM,aAAa,YAAY,eAAe,wBAAoE,CAAC;AAE1H;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,GAAE,eAA0C,GAAG,mBAAmB,EAAE,CAErH"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqEG;AACH,OAAO,KAAK,EAAE,mBAAmB,EAAyE,MAAM,sBAAsB,CAAC;AAevI,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEzF,0DAA0D;AAC1D,MAAM,WAAW,eAAe;IAC9B,0FAA0F;IAC1F,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,uFAAuF;IACvF,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,eAGtC,CAAC;AAkiCF,+FAA+F;AAC/F,wBAAgB,aAAa,CAAC,MAAM,GAAE,eAA0C,GAAG,mBAAmB,CAUrG;AAED,gEAAgE;AAChE,wBAAgB,aAAa,CAAC,MAAM,GAAE,eAA0C,GAAG,mBAAmB,CAOrG;AAWD,+EAA+E;AAC/E,eAAO,MAAM,aAAa,YAAY,eAAe,wBAAoE,CAAC;AAC1H,+EAA+E;AAC/E,eAAO,MAAM,aAAa,YAAY,eAAe,wBAAoE,CAAC;AAC1H,gEAAgE;AAChE,eAAO,MAAM,aAAa,YAAY,eAAe,wBAAoE,CAAC;AAE1H,+DAA+D;AAC/D,wBAAgB,YAAY,CAAC,MAAM,GAAE,eAA0C,GAAG,mBAAmB,CAOpG;AAED;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,GAAE,eAA0C,GAAG,mBAAmB,EAAE,CASrH"}
package/dist/index.js CHANGED
@@ -1,71 +1,6 @@
1
- /**
2
- * `@substrat-run/attachment-extractors` — the parsers behind the kernel's attachment
3
- * extractor seam (#1575, K-43).
4
- *
5
- * **The kernel indexes attachment text; it does not parse file formats** (K-43). It owns the
6
- * text table, its index, the job, the outcome states, the output cap and the gated search,
7
- * and defines one seam, `AttachmentExtractor`. Everything that reads a file FORMAT lives
8
- * here, and the kernel and the adapters never import this package (`lint:deps` refuses it):
9
- * whoever constructs the host passes `defaultAttachmentExtractors()` in, or a list of its
10
- * own. Untrusted-input parsing belongs at the edge, not beside the permission checker.
11
- *
12
- * Best-effort by content type, and explicit about what it does not do:
13
- *
14
- * - **text** (`text/*` other than HTML): decoded as the declared charset, UTF-8 otherwise.
15
- * - **html** (`text/html`, `application/xhtml+xml`): tags stripped, each construct ended where
16
- * the HTML tokenizer ends it; comments, `script`, `style`, the other raw-text elements a
17
- * browser does not render, and `template` content, dropped — an unclosed one through to the
18
- * end; entities decoded. **Its contract: it never indexes text the HTML parser keeps out of
19
- * the rendered document**, and it may under-index what it does not model — inline SVG and
20
- * MathML, `select`, a honoured frameset — indexing nothing inside them, and nothing after one
21
- * whose end it cannot be sure of (`htmlText` lists the rules). It does not evaluate the
22
- * `hidden` attribute, CSS or interactive state, so text those hide is indexed.
23
- * - **docx / xlsx / pptx**: an OOXML file is a zip of XML parts, so this reads the zip's
24
- * central directory, inflates only the parts that carry text, and keeps the text of
25
- * their `t` elements. The inflate is the web-standard `DecompressionStream('deflate-raw')`,
26
- * present in Node and workerd alike, so the whole format costs no dependency.
27
- * - **No PDF yet, and no OCR.** A host given no extractor for a type records `unsupported`
28
- * with that reason — a legible outcome, never "indexed, no match".
29
- *
30
- * ## The bounds this package owns, and why
31
- *
32
- * The bounds that protect the PROCESS doing the parsing live here (K-43); the one that
33
- * protects the scope — the output cap — is the kernel's, enforced on whatever comes back.
34
- *
35
- * - `maxInputBytes` is declared on each extractor, so the kernel can refuse an oversized
36
- * file on its RECORDED size before fetching a byte; each extractor checks it again.
37
- * - `maxInflatedBytes` is the zip-bomb cap: a counter on the bytes the inflater actually
38
- * produces, across every part of one file. An entry's declared size is checked first as
39
- * a cheap refusal, and never trusted, because a bomb is exactly a file that lies about it.
40
- *
41
- * A file that is not what it says, or breaks a bound, is answered `{ failed }` with a
42
- * content-free reason — never a throw, and never a quote of the file: the reason lands in
43
- * the scope, and the content it would quote is what the read gate protects.
44
- *
45
- * ## CPU, bounded by construction — and stoppable
46
- *
47
- * Every parser here is a LINEAR scan (no regular expression that can rescan from each
48
- * opener), over an input with a fixed cap, so the worst case is a property of the code rather
49
- * than of the file. Per format, at the default bounds:
50
- *
51
- * - **text**: a decode of at most 4 × the kernel's output cap (2 MiB).
52
- * - **html**: a decode of at most 16 × the output cap (8 MiB), one forward scan of it, one
53
- * entity pass over what survives.
54
- * - **docx / xlsx / pptx**: the central directory (at most 20 000 entries), inflate and decode
55
- * of at most `maxInflatedBytes` (16 MiB) in total, and one forward scan of each inflated
56
- * part; parts stop being read once the text collected is twice the output cap.
57
- *
58
- * Each extractor honours the kernel's time budget cooperatively (`Pace`): it checks the
59
- * `signal`, and yields a turn of the event loop so the kernel's timer can fire, between zip
60
- * entries and at least every `EXTRACTION_STRIDE` (the kernel's, 256 Ki) units of work. That
61
- * holds for every pass over the content — decoding, inflating, the zip directory, the entity
62
- * pass, and each search for a construct's end, a native `indexOf` included, which is cut to
63
- * the window left before the next check. An aborted extraction answers
64
- * `{ failed: 'the extraction was aborted' }` within one stride. The steps between two checks
65
- * that are NOT cut to a stride are copies (joining the text collected) and the name tests
66
- * over the zip directory, at most 20 000 names of at most 255 bytes each.
67
- */
68
- import { EXTRACTION_STRIDE, } from '@substrat-run/kernel';
1
+ import { COLLECT_FACTOR, ExtractionAborted, ExtractionBoundExceeded, MalformedInput, Pace, TextDecoder, checkpoint, inflateChunks, } from './shared.js';
2
+ import { pdfExtract } from './pdf.js';
3
+ export { PDF_OBJECTS_MAX, PDF_STREAM_MAX, PDF_XREF_SECTIONS, pdfTables } from './pdf.js';
69
4
  /**
70
5
  * The defaults. 16 MiB of inflated XML is far more than the text of any ordinary office
71
6
  * document, and small enough that decoding it fits a Worker's memory.
@@ -101,119 +36,11 @@ function acceptsBy(types, extensions) {
101
36
  return true;
102
37
  if (type !== '' && type !== 'application/octet-stream')
103
38
  return false;
104
- const ext = /\.([A-Za-z0-9]+)$/.exec(filename)?.[1]?.toLowerCase();
105
- return ext !== undefined && extensions.includes(ext);
39
+ const dot = filename.lastIndexOf('.');
40
+ const ext = dot < 0 ? '' : filename.slice(dot + 1).toLowerCase();
41
+ return ext !== '' && extensions.includes(ext);
106
42
  };
107
43
  }
108
- /** Raised when a bound refuses the work. Distinct so the answer can say which bound. */
109
- class ExtractionBoundExceeded extends Error {
110
- }
111
- /** A file that is not what its type says, or is damaged. Carries a content-free reason. */
112
- class MalformedInput extends Error {
113
- }
114
- /** The kernel's budget ran out and aborted the signal: the extraction stops where it is. */
115
- class ExtractionAborted extends Error {
116
- }
117
- const runtime = globalThis;
118
- /**
119
- * One turn of the event loop, by the cheapest primitive that still lets a due timer — the
120
- * kernel's deadline — run before what follows. Every yield the parsers make comes through here.
121
- *
122
- * `setImmediate` where the runtime has it (Node, and workerd, which has it as a global): it goes
123
- * once round the loop, through the timers, without the 1 ms floor Node puts under
124
- * `setTimeout(…, 0)` — the floor that made pacing a large file cost more in waiting than in
125
- * parsing. `setTimeout(…, 0)` otherwise. Not `scheduler.yield()`: neither runtime has it, and
126
- * where it exists its continuation is scheduled AHEAD of other tasks, which is the opposite of
127
- * letting a timer in. Called through the global each time, never as a detached reference.
128
- */
129
- const nextTurn = typeof runtime.setImmediate === 'function'
130
- ? () => new Promise((resolve) => void runtime.setImmediate(resolve))
131
- : () => new Promise((resolve) => setTimeout(resolve, 0));
132
- /**
133
- * Cooperation with the kernel's time budget (K-43): stop if the signal is aborted, and yield
134
- * a turn first so a timer that is due gets to abort it. Without the yield a long parse would
135
- * hold the thread and the timer would never run until it was over.
136
- */
137
- async function checkpoint(signal) {
138
- if (signal.aborted)
139
- throw new ExtractionAborted('the extraction was aborted');
140
- await nextTurn();
141
- if (signal.aborted)
142
- throw new ExtractionAborted('the extraction was aborted');
143
- }
144
- /**
145
- * One extraction's pacing against the kernel's budget. Work is counted in units — a character
146
- * scanned or decoded, a byte inflated or decoded — and no step runs more than
147
- * `EXTRACTION_STRIDE` of them past the last `checkpoint`, give or take the few characters a
148
- * search must see whole (a needle's length, an entity's span). A native search goes through `find`,
149
- * which cuts it to the window left before the next check, and a hand-written loop through
150
- * `scan`; that is what makes "stops within one stride" true of an `indexOf` across a long run
151
- * of text, a comment or an unclosed tag, and not only of the loop around it.
152
- */
153
- class Pace {
154
- signal;
155
- left = EXTRACTION_STRIDE;
156
- constructor(signal) {
157
- this.signal = signal;
158
- }
159
- /** Units that may still run before the next check — positive once `turn` has returned. */
160
- get room() {
161
- return this.left;
162
- }
163
- charge(units) {
164
- this.left -= units;
165
- }
166
- /** Stop if the signal is aborted; once a stride is spent, yield a turn and check again. */
167
- async turn() {
168
- if (this.left > 0 && !this.signal.aborted)
169
- return;
170
- await checkpoint(this.signal);
171
- this.left = EXTRACTION_STRIDE;
172
- }
173
- /** `s.indexOf(needle, from)`, searched one window at a time. */
174
- async find(s, needle, from) {
175
- for (let at = from; at < s.length;) {
176
- await this.turn();
177
- const end = Math.min(s.length, at + this.left);
178
- // Each window reaches a needle's length less one into the next, so a match that
179
- // straddles the edge is found whole — and found in exactly one window.
180
- const k = s.slice(at, end + needle.length - 1).indexOf(needle);
181
- if (k >= 0) {
182
- this.charge(k + needle.length);
183
- return at + k;
184
- }
185
- this.charge(end - at);
186
- at = end;
187
- }
188
- return -1;
189
- }
190
- /** Visit `s` from `from`; `step(c, k)` returns true to stop at `k`. The index stopped at, or -1. */
191
- async scan(s, from, step) {
192
- for (let k = from; k < s.length;) {
193
- await this.turn();
194
- const start = k;
195
- const end = Math.min(s.length, k + this.left);
196
- for (; k < end; k += 1) {
197
- if (step(s.charCodeAt(k), k)) {
198
- this.charge(k + 1 - start);
199
- return k;
200
- }
201
- }
202
- this.charge(end - start);
203
- }
204
- return -1;
205
- }
206
- /** Bytes through `decoder` a window at a time; `stream` keeps a character cut by an edge whole. */
207
- async decode(decoder, bytes, out) {
208
- for (let at = 0; at < bytes.length;) {
209
- await this.turn();
210
- const end = Math.min(bytes.length, at + this.left);
211
- out.push(decoder.decode(bytes.subarray(at, end), { stream: true }));
212
- this.charge(end - at);
213
- at = end;
214
- }
215
- }
216
- }
217
44
  /** Decode bytes as text: a UTF-16 BOM wins, then a declared charset, then UTF-8. */
218
45
  async function decodeText(bytes, charset, pace) {
219
46
  let label = charset ?? 'utf-8';
@@ -1027,11 +854,8 @@ async function zipEntries(zip, pace) {
1027
854
  /**
1028
855
  * One entry's text: inflated under the budget, and decoded as UTF-8 as the inflater produces
1029
856
  * it — a window at a time, so neither step holds the thread for more than a stride.
1030
- *
1031
- * The write is NOT awaited before reading: a `DecompressionStream` applies backpressure,
1032
- * so awaiting the write of a chunk larger than its queue would wait for a reader that has
1033
- * not started. The read loop counts what the inflater actually produces and cancels the
1034
- * stream the moment the budget is spent.
857
+ * The count is of what the inflater actually produces (`inflateChunks`), and a throw past the
858
+ * budget cancels the stream.
1035
859
  */
1036
860
  async function readEntryText(zip, entry, budget, pace) {
1037
861
  if (entry.flags & 0x1)
@@ -1063,40 +887,16 @@ async function readEntryText(zip, entry, budget, pace) {
1063
887
  }
1064
888
  if (entry.method !== 8)
1065
889
  throw new MalformedInput('a zip entry uses an unsupported compression method');
1066
- const ds = new DecompressionStream('deflate-raw');
1067
- const writer = ds.writable.getWriter();
1068
- const writing = writer.write(raw).then(() => writer.close()).catch(() => { });
1069
- const reader = ds.readable.getReader();
1070
890
  let total = 0;
1071
- try {
1072
- for (;;) {
1073
- let next;
1074
- try {
1075
- next = await reader.read();
1076
- }
1077
- catch {
1078
- throw new MalformedInput('a zip entry is not valid deflate data');
1079
- }
1080
- if (next.done)
1081
- break;
1082
- const chunk = next.value;
1083
- total += chunk.length;
1084
- if (total > budget.remaining) {
1085
- await reader.cancel().catch(() => { });
1086
- throw new ExtractionBoundExceeded('the archive inflates past the extraction bound');
1087
- }
1088
- try {
1089
- await pace.decode(decoder, chunk, text);
1090
- }
1091
- catch (err) {
1092
- await reader.cancel().catch(() => { });
1093
- throw err;
1094
- }
1095
- }
1096
- }
1097
- finally {
1098
- await writing;
1099
- }
891
+ const outcome = await inflateChunks(raw, 'deflate-raw', pace, async (chunk) => {
892
+ total += chunk.length;
893
+ if (total > budget.remaining)
894
+ throw new ExtractionBoundExceeded('the archive inflates past the extraction bound');
895
+ await pace.decode(decoder, chunk, text);
896
+ return true;
897
+ });
898
+ if (outcome === 'damaged')
899
+ throw new MalformedInput('a zip entry is not valid deflate data');
1100
900
  budget.remaining -= total;
1101
901
  text.push(decoder.decode());
1102
902
  return text.join('');
@@ -1253,11 +1053,10 @@ async function ooxmlExtract(format, zip, bounds, maxTextBytes, signal) {
1253
1053
  const pieces = [];
1254
1054
  // Stop reading parts once the collected text is safely past the kernel's output cap: the
1255
1055
  // rest could only be cut off again, and inflating it would spend the budget for nothing.
1256
- // Twice the cap, because the kernel's normalizing can still shrink what was collected.
1257
1056
  let collected = 0;
1258
1057
  let stoppedEarly = false;
1259
1058
  for (const entry of ooxmlParts(format, entries)) {
1260
- if (collected > maxTextBytes * 2) {
1059
+ if (collected > maxTextBytes * COLLECT_FACTOR) {
1261
1060
  stoppedEarly = true;
1262
1061
  break;
1263
1062
  }
@@ -1333,6 +1132,15 @@ export const docxExtractor = (bounds = DEFAULT_EXTRACTOR_BOUNDS) => ooxmlExtract
1333
1132
  export const xlsxExtractor = (bounds = DEFAULT_EXTRACTOR_BOUNDS) => ooxmlExtractor('xlsx', XLSX, bounds);
1334
1133
  /** Presentations: slides in order, then their speaker notes. */
1335
1134
  export const pptxExtractor = (bounds = DEFAULT_EXTRACTOR_BOUNDS) => ooxmlExtractor('pptx', PPTX, bounds);
1135
+ /** PDF: the text each page draws, in page order (`pdf.ts`). */
1136
+ export function pdfExtractor(bounds = DEFAULT_EXTRACTOR_BOUNDS) {
1137
+ return {
1138
+ name: 'pdf',
1139
+ maxInputBytes: bounds.maxInputBytes,
1140
+ accepts: acceptsBy((type) => type === 'application/pdf' || type === 'application/x-pdf', ['pdf']),
1141
+ extract: extractWith(bounds, (input) => pdfExtract(input.body, bounds.maxInflatedBytes, input.maxTextBytes, input.signal)),
1142
+ };
1143
+ }
1336
1144
  /**
1337
1145
  * Every extractor this package has, in the order a host should try them — what a host is
1338
1146
  * constructed with when it has no list of its own:
@@ -1340,6 +1148,13 @@ export const pptxExtractor = (bounds = DEFAULT_EXTRACTOR_BOUNDS) => ooxmlExtract
1340
1148
  * new SqliteScopeHost({ dir, attachmentExtractors: defaultAttachmentExtractors() })
1341
1149
  */
1342
1150
  export function defaultAttachmentExtractors(bounds = DEFAULT_EXTRACTOR_BOUNDS) {
1343
- return [textExtractor(bounds), htmlExtractor(bounds), docxExtractor(bounds), xlsxExtractor(bounds), pptxExtractor(bounds)];
1151
+ return [
1152
+ textExtractor(bounds),
1153
+ htmlExtractor(bounds),
1154
+ docxExtractor(bounds),
1155
+ xlsxExtractor(bounds),
1156
+ pptxExtractor(bounds),
1157
+ pdfExtractor(bounds),
1158
+ ];
1344
1159
  }
1345
1160
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}