@felan-ai/ext-web-access 0.4.2 → 0.5.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 (58) hide show
  1. package/NOTICE +0 -8
  2. package/README.md +131 -79
  3. package/dist/boundary.d.ts +1 -3
  4. package/dist/boundary.d.ts.map +1 -1
  5. package/dist/boundary.js +1 -19
  6. package/dist/boundary.js.map +1 -1
  7. package/dist/config.d.ts +4 -10
  8. package/dist/config.d.ts.map +1 -1
  9. package/dist/config.js +82 -36
  10. package/dist/config.js.map +1 -1
  11. package/dist/content-find.d.ts +19 -10
  12. package/dist/content-find.d.ts.map +1 -1
  13. package/dist/content-find.js +104 -70
  14. package/dist/content-find.js.map +1 -1
  15. package/dist/credentials.d.ts.map +1 -1
  16. package/dist/credentials.js +12 -6
  17. package/dist/credentials.js.map +1 -1
  18. package/dist/extract.d.ts +7 -7
  19. package/dist/extract.d.ts.map +1 -1
  20. package/dist/extract.js +237 -84
  21. package/dist/extract.js.map +1 -1
  22. package/dist/http.d.ts +3 -3
  23. package/dist/http.d.ts.map +1 -1
  24. package/dist/http.js +19 -5
  25. package/dist/http.js.map +1 -1
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +444 -477
  28. package/dist/index.js.map +1 -1
  29. package/dist/pdf-service.d.ts +22 -0
  30. package/dist/pdf-service.d.ts.map +1 -0
  31. package/dist/pdf-service.js +61 -0
  32. package/dist/pdf-service.js.map +1 -0
  33. package/dist/providers.d.ts.map +1 -1
  34. package/dist/providers.js +191 -171
  35. package/dist/providers.js.map +1 -1
  36. package/dist/ssrf.d.ts +1 -0
  37. package/dist/ssrf.d.ts.map +1 -1
  38. package/dist/ssrf.js +36 -6
  39. package/dist/ssrf.js.map +1 -1
  40. package/dist/types.d.ts +5 -84
  41. package/dist/types.d.ts.map +1 -1
  42. package/dist/url.d.ts +2 -0
  43. package/dist/url.d.ts.map +1 -0
  44. package/dist/url.js +15 -0
  45. package/dist/url.js.map +1 -0
  46. package/package.json +7 -8
  47. package/dist/github.d.ts +0 -14
  48. package/dist/github.d.ts.map +0 -1
  49. package/dist/github.js +0 -374
  50. package/dist/github.js.map +0 -1
  51. package/dist/source-check.d.ts +0 -21
  52. package/dist/source-check.d.ts.map +0 -1
  53. package/dist/source-check.js +0 -136
  54. package/dist/source-check.js.map +0 -1
  55. package/dist/storage.d.ts +0 -19
  56. package/dist/storage.d.ts.map +0 -1
  57. package/dist/storage.js +0 -466
  58. package/dist/storage.js.map +0 -1
@@ -1,12 +1,21 @@
1
- export type FindMode = 'exact' | 'case-insensitive' | 'fuzzy';
2
- export declare function findContent(text: string, queries: string[], mode: FindMode): {
3
- mode: FindMode;
1
+ export declare const MAX_MERGED_SNIPPET_BYTES = 4000;
2
+ export interface ContentMatch {
3
+ start: number;
4
+ end: number;
5
+ contextStart: number;
6
+ contextEnd: number;
7
+ snippet: string;
8
+ }
9
+ export interface QueryMatches {
10
+ matches: ContentMatch[];
4
11
  matchCount: number;
5
- returnedMatches: number;
6
- queryResults: {
7
- query: string;
8
- matchCount: number;
9
- }[];
10
- snippets: string[];
11
- };
12
+ truncated: boolean;
13
+ }
14
+ export interface MergedContentMatch {
15
+ queryIndexes: number[];
16
+ matchCount: number;
17
+ snippet: string;
18
+ }
19
+ export declare function findContentMatches(text: string, queries: string[]): QueryMatches[];
20
+ export declare function mergeContentMatches(text: string, queryMatches: QueryMatches[]): MergedContentMatch[];
12
21
  //# sourceMappingURL=content-find.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"content-find.d.ts","sourceRoot":"","sources":["../src/content-find.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,kBAAkB,GAAG,OAAO,CAAC;AAW9D,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ;;;;;;;;;EAsB1E"}
1
+ {"version":3,"file":"content-find.d.ts","sourceRoot":"","sources":["../src/content-find.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,wBAAwB,OAAQ,CAAC;AAE9C,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAOD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,CA2BlF;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,kBAAkB,EAAE,CAgDpG"}
@@ -1,80 +1,114 @@
1
- const CONTEXT_CHARACTERS = 400;
2
- const MAX_OUTPUT_CHARACTERS = 20_000;
3
- export function findContent(text, queries, mode) {
4
- const normalizedQueries = [...new Set(queries.map((query) => query.trim()).filter(Boolean))];
5
- const matches = normalizedQueries.flatMap((query) => mode === 'fuzzy'
6
- ? fuzzyMatches(text, query)
7
- : literalMatches(text, query, mode === 'case-insensitive'));
8
- const queryResults = normalizedQueries.map((query) => ({
9
- query,
10
- matchCount: matches.filter((match) => match.query === query).length,
11
- }));
12
- const snippets = [];
13
- let outputCharacters = 0;
14
- let returnedMatches = 0;
15
- for (const match of matches) {
16
- const start = Math.max(0, match.start - CONTEXT_CHARACTERS);
17
- const end = Math.min(text.length, match.end + CONTEXT_CHARACTERS);
18
- const snippet = `${start > 0 ? '…' : ''}${text.slice(start, end).replace(/\s+/gu, ' ').trim()}${end < text.length ? '…' : ''}`;
19
- if (outputCharacters + snippet.length > MAX_OUTPUT_CHARACTERS)
20
- break;
21
- snippets.push(snippet);
22
- outputCharacters += snippet.length;
23
- returnedMatches += 1;
24
- }
25
- return { mode, matchCount: matches.length, returnedMatches, queryResults, snippets };
1
+ const CONTEXT_CHARACTERS = 160;
2
+ const MAX_MATCHES_PER_QUERY = 100;
3
+ const MAX_IDENTIFIER_QUERY_CHARACTERS = 500;
4
+ const MAX_IDENTIFIER_TOKENS = 32;
5
+ const IDENTIFIER_SEPARATOR_PATTERN = '[ _.\\/:\\-]{1,8}';
6
+ export const MAX_MERGED_SNIPPET_BYTES = 4_000;
7
+ export function findContentMatches(text, queries) {
8
+ return queries.map((query) => {
9
+ if (!query)
10
+ return { matches: [], matchCount: 0, truncated: false };
11
+ const scans = matchingExpressions(query).map((expression) => scanMatches(text, expression));
12
+ const unique = new Map();
13
+ for (const scan of scans) {
14
+ for (const match of scan.matches)
15
+ unique.set(`${match.start}:${match.end}`, match);
16
+ }
17
+ const located = [...unique.values()].sort((left, right) => left.start - right.start || left.end - right.end);
18
+ const matches = located.slice(0, MAX_MATCHES_PER_QUERY).map((match) => {
19
+ const index = match.start;
20
+ const start = Math.max(0, index - CONTEXT_CHARACTERS);
21
+ const end = Math.min(text.length, match.end + CONTEXT_CHARACTERS);
22
+ return {
23
+ start: index,
24
+ end: match.end,
25
+ contextStart: start,
26
+ contextEnd: end,
27
+ snippet: snippetForRange(text, start, end),
28
+ };
29
+ });
30
+ return {
31
+ matches,
32
+ matchCount: matches.length,
33
+ truncated: located.length > MAX_MATCHES_PER_QUERY || scans.some((scan) => scan.truncated),
34
+ };
35
+ });
26
36
  }
27
- function literalMatches(text, query, caseInsensitive) {
28
- const haystack = caseInsensitive ? text.toLocaleLowerCase() : text;
29
- const needle = caseInsensitive ? query.toLocaleLowerCase() : query;
30
- const matches = [];
31
- for (let index = haystack.indexOf(needle); index >= 0; index = haystack.indexOf(needle, index + Math.max(needle.length, 1))) {
32
- matches.push({ query, start: index, end: index + query.length });
37
+ export function mergeContentMatches(text, queryMatches) {
38
+ const ordered = queryMatches
39
+ .flatMap((result, queryIndex) => result.matches.map((match) => ({ ...match, queryIndex })))
40
+ .sort((left, right) => left.contextStart - right.contextStart
41
+ || left.contextEnd - right.contextEnd
42
+ || left.queryIndex - right.queryIndex);
43
+ const ranges = [];
44
+ for (const match of ordered) {
45
+ const current = ranges.at(-1);
46
+ if (current && match.contextStart <= current.contextEnd) {
47
+ const contextEnd = Math.max(current.contextEnd, match.contextEnd);
48
+ const snippetBytes = Buffer.byteLength(snippetForRange(text, current.contextStart, contextEnd), 'utf8');
49
+ if (snippetBytes <= MAX_MERGED_SNIPPET_BYTES) {
50
+ current.contextEnd = contextEnd;
51
+ current.queryIndexes.add(match.queryIndex);
52
+ current.matchCount += 1;
53
+ continue;
54
+ }
55
+ }
56
+ ranges.push({
57
+ contextStart: match.contextStart,
58
+ contextEnd: match.contextEnd,
59
+ queryIndexes: new Set([match.queryIndex]),
60
+ matchCount: 1,
61
+ });
33
62
  }
34
- return matches;
35
- }
36
- function fuzzyMatches(text, query) {
37
- const queryTokens = normalize(query).match(/[\p{L}\p{N}]+/gu) ?? [];
38
- if (queryTokens.length === 0)
39
- return [];
40
- const matches = [];
41
- for (const paragraph of text.matchAll(/[^\n]+(?:\n(?!\n)[^\n]+)*/gu)) {
42
- if (paragraph.index === undefined)
43
- continue;
44
- const tokens = [...paragraph[0].matchAll(/[\p{L}\p{N}]+/gu)];
45
- const matched = queryTokens.filter((queryToken) => tokens.some((token) => {
46
- const candidate = normalize(token[0]);
47
- const maximum = queryToken.length >= 9 ? 2 : queryToken.length >= 5 ? 1 : 0;
48
- return editDistanceWithin(queryToken, candidate, maximum);
49
- }));
50
- const required = queryTokens.length === 1 ? 1 : Math.ceil(queryTokens.length * 0.6);
51
- if (matched.length < required)
63
+ const deduplicated = new Map();
64
+ for (const range of ranges) {
65
+ const snippet = snippetForRange(text, range.contextStart, range.contextEnd);
66
+ const existing = deduplicated.get(snippet);
67
+ if (existing) {
68
+ existing.queryIndexes = [...new Set([...existing.queryIndexes, ...range.queryIndexes])].sort((a, b) => a - b);
69
+ existing.matchCount += range.matchCount;
52
70
  continue;
53
- const first = tokens.find((token) => matched.some((queryToken) => editDistanceWithin(queryToken, normalize(token[0]), queryToken.length >= 9 ? 2 : queryToken.length >= 5 ? 1 : 0)));
54
- const start = paragraph.index + (first?.index ?? 0);
55
- matches.push({ query, start, end: start + (first?.[0].length ?? query.length) });
71
+ }
72
+ deduplicated.set(snippet, {
73
+ queryIndexes: [...range.queryIndexes].sort((a, b) => a - b),
74
+ matchCount: range.matchCount,
75
+ snippet,
76
+ });
56
77
  }
57
- return matches;
78
+ return [...deduplicated.values()];
79
+ }
80
+ function matchingExpressions(query) {
81
+ const variantPattern = separatorAwareIdentifierPattern(query);
82
+ if (variantPattern === null)
83
+ return [new RegExp(escapeRegExp(query), 'giu')];
84
+ const leftBoundary = '(?<![\\p{L}\\p{N}])(?<![\\p{L}\\p{N}][_.\\/:\\-])';
85
+ const rightBoundary = '(?![\\p{L}\\p{N}])(?!(?:[_.\\/:\\-][\\p{L}\\p{N}]))';
86
+ return [escapeRegExp(query), variantPattern].map((pattern) => (new RegExp(`${leftBoundary}${pattern}${rightBoundary}`, 'giu')));
58
87
  }
59
- function normalize(value) {
60
- return value.normalize('NFD').replace(/\p{Diacritic}/gu, '').toLocaleLowerCase();
88
+ function separatorAwareIdentifierPattern(query) {
89
+ if (query.length > MAX_IDENTIFIER_QUERY_CHARACTERS || !/[_.\/\-:]/u.test(query))
90
+ return null;
91
+ const tokens = query.split(/[_.\/\-:]+/u);
92
+ if (tokens.length < 2 || tokens.length > MAX_IDENTIFIER_TOKENS
93
+ || tokens.some((token) => !/^[\p{L}\p{N}]+$/u.test(token))) {
94
+ return null;
95
+ }
96
+ return tokens.map(escapeRegExp).join(IDENTIFIER_SEPARATOR_PATTERN);
61
97
  }
62
- function editDistanceWithin(left, right, maximum) {
63
- if (Math.abs(left.length - right.length) > maximum)
64
- return false;
65
- let previous = Array.from({ length: right.length + 1 }, (_, index) => index);
66
- for (let leftIndex = 1; leftIndex <= left.length; leftIndex += 1) {
67
- const current = [leftIndex];
68
- let rowMinimum = leftIndex;
69
- for (let rightIndex = 1; rightIndex <= right.length; rightIndex += 1) {
70
- const value = Math.min(previous[rightIndex] + 1, current[rightIndex - 1] + 1, previous[rightIndex - 1] + (left[leftIndex - 1] === right[rightIndex - 1] ? 0 : 1));
71
- current[rightIndex] = value;
72
- rowMinimum = Math.min(rowMinimum, value);
98
+ function scanMatches(text, expression) {
99
+ const matches = [];
100
+ for (const result of text.matchAll(expression)) {
101
+ matches.push({ start: result.index, end: result.index + result[0].length });
102
+ if (matches.length > MAX_MATCHES_PER_QUERY) {
103
+ return { matches, truncated: true };
73
104
  }
74
- if (rowMinimum > maximum)
75
- return false;
76
- previous = current;
77
105
  }
78
- return previous[right.length] <= maximum;
106
+ return { matches, truncated: false };
107
+ }
108
+ function snippetForRange(text, start, end) {
109
+ return `${start > 0 ? '…' : ''}${text.slice(start, end).replace(/\s+/gu, ' ').trim()}${end < text.length ? '…' : ''}`;
110
+ }
111
+ function escapeRegExp(value) {
112
+ return value.replace(/[.*+?^${}()|[\]\\]/gu, '\\$&');
79
113
  }
80
114
  //# sourceMappingURL=content-find.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"content-find.js","sourceRoot":"","sources":["../src/content-find.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content-find.js","sourceRoot":"","sources":["../src/content-find.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAqBzD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAE9F;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAwC/F;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAEtF"}
1
+ {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAqBzD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,wBAAgB,mBAAmB,CAAC,eAAe,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAE9F;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA2C/F;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAEtF"}
@@ -28,22 +28,25 @@ export async function resolveCredential(options) {
28
28
  if (!command)
29
29
  throw new Error(`${options.provider} credential source is empty`);
30
30
  const environment = commandEnvironment(process.env);
31
- const args = [
31
+ const isolatedCommand = [
32
+ 'env',
32
33
  '-i',
33
- ...Object.entries(environment).map(([name, value]) => `${name}=${value}`),
34
+ ...Object.entries(environment).map(([name, value]) => `${name}=${shellQuote(value)}`),
34
35
  '/bin/sh',
35
36
  '-lc',
36
- command,
37
- ];
38
- const result = await options.runtime.exec('/usr/bin/env', args, {
37
+ shellQuote(command),
38
+ ].join(' ');
39
+ const result = await options.runtime.shell(isolatedCommand, {
39
40
  ...(options.signal ? { signal: options.signal } : {}),
41
+ maxOutputBytes: MAX_CREDENTIAL_BYTES,
42
+ shellFlavor: 'posix',
40
43
  timeout: COMMAND_TIMEOUT_MS,
41
44
  });
42
45
  if (options.signal?.aborted || result.killed)
43
46
  throw new Error(`${options.provider} credential command was aborted`);
44
47
  if (result.code !== 0)
45
48
  throw new Error(`${options.provider} credential command failed`);
46
- if (Buffer.byteLength(result.stdout, 'utf8') > MAX_CREDENTIAL_BYTES) {
49
+ if (result.truncated || Buffer.byteLength(result.stdout, 'utf8') > MAX_CREDENTIAL_BYTES) {
47
50
  throw new Error(`${options.provider} credential command output is too large`);
48
51
  }
49
52
  const value = result.stdout.trim();
@@ -71,6 +74,9 @@ export function redactCredential(value, credential) {
71
74
  function normalize(value) {
72
75
  return typeof value === 'string' && value.trim() ? value.trim() : undefined;
73
76
  }
77
+ function shellQuote(value) {
78
+ return `'${value.replaceAll("'", `'"'"'`)}'`;
79
+ }
74
80
  function commandEnvironment(source) {
75
81
  const environment = {};
76
82
  for (const name of COMMAND_ENVIRONMENT_NAMES) {
@@ -1 +1 @@
1
- {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"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"}
package/dist/extract.d.ts CHANGED
@@ -1,11 +1,11 @@
1
- import type { AgentRuntime } from '@felan-ai/agent-core';
2
1
  import { type WebAccessConfig } from './config.js';
2
+ import { type PdfConversionEvents } from './pdf-service.js';
3
3
  import type { ExtractedContent } from './types.js';
4
- export interface ExtractOptions {
5
- mode?: 'readable' | 'raw';
6
- forceClone?: boolean;
7
- allowGitHub?: boolean;
4
+ export type LlmsTxtProbeMap = Map<string, Promise<ExtractedContent | undefined>>;
5
+ export interface ExtractContentOptions {
6
+ ignoreLlmsTxt?: boolean;
7
+ llmsTxtProbes?: LlmsTxtProbeMap;
8
8
  }
9
- export declare function extractContent(rawUrl: string, runtime: AgentRuntime, config: WebAccessConfig, signal?: AbortSignal, options?: ExtractOptions): Promise<ExtractedContent>;
10
- export declare function fetchWithConcurrency(urls: string[], concurrency: number, fetchOne: (url: string) => Promise<ExtractedContent>, captureErrors?: boolean): Promise<ExtractedContent[]>;
9
+ export declare function extractContent(rawUrl: string, config: WebAccessConfig, pdfEvents?: PdfConversionEvents, signal?: AbortSignal, timeoutMs?: number, options?: ExtractContentOptions): Promise<ExtractedContent>;
10
+ export declare function fetchWithConcurrency(urls: string[], concurrency: number, fetchOne: (url: string) => Promise<ExtractedContent>, signal?: AbortSignal): Promise<ExtractedContent[]>;
11
11
  //# sourceMappingURL=extract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../src/extract.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAmC,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAIpF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAUnD,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,YAAY,EACrB,MAAM,EAAE,eAAe,EACvB,MAAM,CAAC,EAAE,WAAW,EACpB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,gBAAgB,CAAC,CAyD3B;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EAAE,EACd,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,CAAC,EACpD,aAAa,UAAO,GACnB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAkB7B"}
1
+ {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../src/extract.ts"],"names":[],"mappings":"AAGA,OAAO,EAAe,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAEhE,OAAO,EAKL,KAAK,mBAAmB,EACzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAQnD,MAAM,MAAM,eAAe,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAC,CAAC;AAEjF,MAAM,WAAW,qBAAqB;IACpC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,aAAa,CAAC,EAAE,eAAe,CAAC;CACjC;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,eAAe,EACvB,SAAS,CAAC,EAAE,mBAAmB,EAC/B,MAAM,CAAC,EAAE,WAAW,EACpB,SAAS,SAAkB,EAC3B,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,gBAAgB,CAAC,CAwF3B;AAwID,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EAAE,EACd,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,CAAC,EACpD,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAqB7B"}