scrapex 1.0.0-beta.1 → 1.0.0-beta.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.
- package/dist/embeddings/index.cjs +52 -0
- package/dist/embeddings/index.d.cts +3 -0
- package/dist/embeddings/index.d.mts +3 -0
- package/dist/embeddings/index.mjs +4 -0
- package/dist/embeddings-BjNTQSG9.cjs +1455 -0
- package/dist/embeddings-BjNTQSG9.cjs.map +1 -0
- package/dist/embeddings-Bsymy_jA.mjs +1215 -0
- package/dist/embeddings-Bsymy_jA.mjs.map +1 -0
- package/dist/enhancer-Cs_WyWtJ.cjs +219 -0
- package/dist/enhancer-Cs_WyWtJ.cjs.map +1 -0
- package/dist/enhancer-INx5NlgO.mjs +177 -0
- package/dist/enhancer-INx5NlgO.mjs.map +1 -0
- package/dist/{enhancer-j0xqKDJm.cjs → http-base-CHLf-Tco.cjs} +36 -199
- package/dist/http-base-CHLf-Tco.cjs.map +1 -0
- package/dist/{enhancer-ByjRD-t5.mjs → http-base-DM7YNo6X.mjs} +25 -176
- package/dist/http-base-DM7YNo6X.mjs.map +1 -0
- package/dist/{index-CDgcRnig.d.cts → index-Bvseqli-.d.cts} +1 -1
- package/dist/{index-CDgcRnig.d.cts.map → index-Bvseqli-.d.cts.map} +1 -1
- package/dist/{index-piS5wtki.d.mts → index-CIFjNySr.d.mts} +1 -1
- package/dist/{index-piS5wtki.d.mts.map → index-CIFjNySr.d.mts.map} +1 -1
- package/dist/index-D6qfjmZQ.d.mts +401 -0
- package/dist/index-D6qfjmZQ.d.mts.map +1 -0
- package/dist/index-RFSpP5g8.d.cts +401 -0
- package/dist/index-RFSpP5g8.d.cts.map +1 -0
- package/dist/index.cjs +39 -1074
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -260
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +3 -260
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +4 -1039
- package/dist/index.mjs.map +1 -1
- package/dist/llm/index.cjs +7 -6
- package/dist/llm/index.cjs.map +1 -1
- package/dist/llm/index.d.cts +1 -1
- package/dist/llm/index.d.mts +1 -1
- package/dist/llm/index.mjs +2 -1
- package/dist/llm/index.mjs.map +1 -1
- package/dist/parsers/index.d.cts +1 -1
- package/dist/parsers/index.d.mts +1 -1
- package/dist/parsers/index.mjs +1 -1
- package/dist/{parsers-CwkYnyWY.mjs → parsers-DsawHeo0.mjs} +1 -1
- package/dist/{parsers-CwkYnyWY.mjs.map → parsers-DsawHeo0.mjs.map} +1 -1
- package/dist/{types-CadAXrme.d.mts → types-BOcHQU9s.d.mts} +308 -151
- package/dist/types-BOcHQU9s.d.mts.map +1 -0
- package/dist/{types-DPEtPihB.d.cts → types-DutdBpqd.d.cts} +308 -151
- package/dist/types-DutdBpqd.d.cts.map +1 -0
- package/package.json +1 -1
- package/dist/enhancer-ByjRD-t5.mjs.map +0 -1
- package/dist/enhancer-j0xqKDJm.cjs.map +0 -1
- package/dist/types-CadAXrme.d.mts.map +0 -1
- package/dist/types-DPEtPihB.d.cts.map +0 -1
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { $ as FetchResult, D as SafetyConfig, G as EnhancementType, J as ExtractionContext, K as ExtractedEntities, Q as FetchOptions, U as CompletionOptions, W as ContentType, X as ExtractionSchemaType, Y as ExtractionSchema, Z as Extractor, _ as EmbeddingSkipped, a as EmbedRequest, b as EmbeddingSuccessSingle, c as EmbeddingCache, et as Fetcher, f as EmbeddingMetrics, g as EmbeddingResult, h as EmbeddingProviderConfig, j as createHttpEmbedding, k as HttpEmbeddingConfig, l as EmbeddingCacheConfig, m as EmbeddingProvider, nt as ScrapeOptions, o as EmbedResponse, p as EmbeddingOptions, q as ExtractedLink, rt as ScrapedData, t as ChunkingConfig, tt as LLMProvider, u as EmbeddingInputConfig, v as EmbeddingSource, w as ResilienceConfig, x as OutputConfig, y as EmbeddingSuccessMultiple } from "./types-DutdBpqd.cjs";
|
|
2
|
+
import { L as aggregateVectors, R as cosineSimilarity, S as chunkText, _ as generateEmbeddings, a as createEmbeddingProvider, c as createAzureEmbedding, d as createOllamaEmbedding, f as createOpenAIEmbedding, g as embedScrapedData, h as embed, i as redactPii, k as InMemoryEmbeddingCache, p as createTransformersEmbedding, r as createPiiRedactor, s as TRANSFORMERS_MODELS, u as createHuggingFaceEmbedding, w as estimateTokens } from "./index-RFSpP5g8.cjs";
|
|
3
|
+
import { b as ParserResult, m as FeedMeta, n as RSSParserOptions, p as FeedItem, t as RSSParser, v as ParsedFeed } from "./index-Bvseqli-.cjs";
|
|
3
4
|
|
|
4
5
|
//#region src/core/context.d.ts
|
|
5
6
|
|
|
@@ -72,264 +73,6 @@ declare function scrape(url: string, options?: ScrapeOptions): Promise<ScrapedDa
|
|
|
72
73
|
*/
|
|
73
74
|
declare function scrapeHtml(html: string, url: string, options?: ScrapeOptions): Promise<ScrapedData>;
|
|
74
75
|
//#endregion
|
|
75
|
-
//#region src/embeddings/aggregation.d.ts
|
|
76
|
-
/**
|
|
77
|
-
* Aggregate multiple embedding vectors into a single vector or return all.
|
|
78
|
-
*
|
|
79
|
-
* @param vectors - Array of embedding vectors (must all have same dimensions)
|
|
80
|
-
* @param strategy - Aggregation strategy
|
|
81
|
-
* @returns Aggregated result based on strategy
|
|
82
|
-
*/
|
|
83
|
-
declare function aggregateVectors(vectors: number[][], strategy?: EmbeddingAggregation): AggregationResult;
|
|
84
|
-
/**
|
|
85
|
-
* Result of vector aggregation.
|
|
86
|
-
*/
|
|
87
|
-
type AggregationResult = {
|
|
88
|
-
type: 'single';
|
|
89
|
-
vector: number[];
|
|
90
|
-
dimensions: number;
|
|
91
|
-
} | {
|
|
92
|
-
type: 'multiple';
|
|
93
|
-
vectors: number[][];
|
|
94
|
-
dimensions: number;
|
|
95
|
-
};
|
|
96
|
-
/**
|
|
97
|
-
* Compute cosine similarity between two vectors.
|
|
98
|
-
* Both vectors should be normalized for accurate results.
|
|
99
|
-
*/
|
|
100
|
-
declare function cosineSimilarity(a: number[], b: number[]): number;
|
|
101
|
-
//#endregion
|
|
102
|
-
//#region src/embeddings/cache.d.ts
|
|
103
|
-
/**
|
|
104
|
-
* In-memory LRU cache with TTL support.
|
|
105
|
-
* Content-addressable: uses content hash as key, not URL.
|
|
106
|
-
*/
|
|
107
|
-
declare class InMemoryEmbeddingCache implements EmbeddingCache {
|
|
108
|
-
private cache;
|
|
109
|
-
private readonly maxEntries;
|
|
110
|
-
private readonly defaultTtlMs;
|
|
111
|
-
constructor(options?: {
|
|
112
|
-
maxEntries?: number;
|
|
113
|
-
ttlMs?: number;
|
|
114
|
-
});
|
|
115
|
-
get(key: string): Promise<EmbeddingResult | undefined>;
|
|
116
|
-
set(key: string, value: EmbeddingResult, options?: {
|
|
117
|
-
ttlMs?: number;
|
|
118
|
-
}): Promise<void>;
|
|
119
|
-
delete(key: string): Promise<boolean>;
|
|
120
|
-
clear(): Promise<void>;
|
|
121
|
-
/**
|
|
122
|
-
* Get cache statistics.
|
|
123
|
-
*/
|
|
124
|
-
getStats(): CacheStats;
|
|
125
|
-
/**
|
|
126
|
-
* Evict expired entries.
|
|
127
|
-
*/
|
|
128
|
-
cleanup(): number;
|
|
129
|
-
/**
|
|
130
|
-
* Evict least recently used entry.
|
|
131
|
-
*/
|
|
132
|
-
private evictLRU;
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Cache statistics.
|
|
136
|
-
*/
|
|
137
|
-
interface CacheStats {
|
|
138
|
-
/** Current number of entries */
|
|
139
|
-
size: number;
|
|
140
|
-
/** Maximum allowed entries */
|
|
141
|
-
maxEntries: number;
|
|
142
|
-
/** Number of expired entries (not yet cleaned up) */
|
|
143
|
-
expired: number;
|
|
144
|
-
/** Cache utilization (0-1) */
|
|
145
|
-
utilization: number;
|
|
146
|
-
}
|
|
147
|
-
//#endregion
|
|
148
|
-
//#region src/embeddings/chunking.d.ts
|
|
149
|
-
/**
|
|
150
|
-
* Split text into overlapping chunks optimized for embedding.
|
|
151
|
-
* Respects sentence boundaries when possible.
|
|
152
|
-
*/
|
|
153
|
-
declare function chunkText(text: string, config?: ChunkingConfig): TextChunk[];
|
|
154
|
-
/**
|
|
155
|
-
* Estimate total tokens for a text without chunking.
|
|
156
|
-
*/
|
|
157
|
-
declare function estimateTokens(text: string, tokenizer?: ChunkingConfig['tokenizer']): number;
|
|
158
|
-
//#endregion
|
|
159
|
-
//#region src/embeddings/pipeline.d.ts
|
|
160
|
-
/**
|
|
161
|
-
* Generate embeddings for scraped data.
|
|
162
|
-
* This is the main entry point for the embedding pipeline.
|
|
163
|
-
*/
|
|
164
|
-
declare function generateEmbeddings(data: Partial<ScrapedData>, options: EmbeddingOptions): Promise<EmbeddingResult>;
|
|
165
|
-
/**
|
|
166
|
-
* Embed arbitrary text directly.
|
|
167
|
-
* Standalone function for embedding text outside of scrape().
|
|
168
|
-
*/
|
|
169
|
-
declare function embed(text: string, options: EmbeddingOptions): Promise<EmbeddingResult>;
|
|
170
|
-
/**
|
|
171
|
-
* Embed from existing ScrapedData.
|
|
172
|
-
* Useful when you've already scraped and want to add embeddings later.
|
|
173
|
-
*/
|
|
174
|
-
declare function embedScrapedData(data: ScrapedData, options: EmbeddingOptions): Promise<EmbeddingResult>;
|
|
175
|
-
//#endregion
|
|
176
|
-
//#region src/embeddings/providers/presets.d.ts
|
|
177
|
-
/**
|
|
178
|
-
* Create an OpenAI embedding provider.
|
|
179
|
-
*
|
|
180
|
-
* @example
|
|
181
|
-
* ```ts
|
|
182
|
-
* const provider = createOpenAIEmbedding({ apiKey: 'sk-...' });
|
|
183
|
-
* const { embeddings } = await provider.embed(['Hello'], { model: 'text-embedding-3-small' });
|
|
184
|
-
* ```
|
|
185
|
-
*/
|
|
186
|
-
declare function createOpenAIEmbedding(options?: {
|
|
187
|
-
apiKey?: string;
|
|
188
|
-
model?: string;
|
|
189
|
-
baseUrl?: string;
|
|
190
|
-
organization?: string;
|
|
191
|
-
}): EmbeddingProvider;
|
|
192
|
-
/**
|
|
193
|
-
* Create an Azure OpenAI embedding provider.
|
|
194
|
-
*
|
|
195
|
-
* @example
|
|
196
|
-
* ```ts
|
|
197
|
-
* const provider = createAzureEmbedding({
|
|
198
|
-
* endpoint: 'https://my-resource.openai.azure.com',
|
|
199
|
-
* deploymentName: 'text-embedding-ada-002',
|
|
200
|
-
* apiVersion: '2023-05-15',
|
|
201
|
-
* });
|
|
202
|
-
* ```
|
|
203
|
-
*/
|
|
204
|
-
declare function createAzureEmbedding(options: {
|
|
205
|
-
endpoint: string;
|
|
206
|
-
deploymentName: string;
|
|
207
|
-
apiVersion: string;
|
|
208
|
-
apiKey?: string;
|
|
209
|
-
}): EmbeddingProvider;
|
|
210
|
-
/**
|
|
211
|
-
* Create an Ollama embedding provider for local models.
|
|
212
|
-
*
|
|
213
|
-
* LIMITATION: Ollama's /api/embeddings endpoint processes one text at a time,
|
|
214
|
-
* not batches. When multiple chunks are embedded, each chunk triggers a
|
|
215
|
-
* separate HTTP request. This is handled transparently by the pipeline's
|
|
216
|
-
* sequential chunk processing, but may be slower than batch-capable providers.
|
|
217
|
-
* For high-throughput scenarios, consider using OpenAI, Cohere, or HuggingFace
|
|
218
|
-
* which support batch embedding in a single request.
|
|
219
|
-
*
|
|
220
|
-
* @example
|
|
221
|
-
* ```ts
|
|
222
|
-
* const provider = createOllamaEmbedding({ model: 'nomic-embed-text' });
|
|
223
|
-
* ```
|
|
224
|
-
*/
|
|
225
|
-
declare function createOllamaEmbedding(options?: {
|
|
226
|
-
baseUrl?: string;
|
|
227
|
-
model?: string;
|
|
228
|
-
}): EmbeddingProvider;
|
|
229
|
-
/**
|
|
230
|
-
* Create a HuggingFace Inference API embedding provider.
|
|
231
|
-
*
|
|
232
|
-
* @example
|
|
233
|
-
* ```ts
|
|
234
|
-
* const provider = createHuggingFaceEmbedding({
|
|
235
|
-
* model: 'sentence-transformers/all-MiniLM-L6-v2',
|
|
236
|
-
* });
|
|
237
|
-
* ```
|
|
238
|
-
*/
|
|
239
|
-
declare function createHuggingFaceEmbedding(options: {
|
|
240
|
-
model: string;
|
|
241
|
-
apiKey?: string;
|
|
242
|
-
}): EmbeddingProvider;
|
|
243
|
-
/**
|
|
244
|
-
* Feature extraction pipeline type for Transformers.js
|
|
245
|
-
*/
|
|
246
|
-
type FeatureExtractionPipeline = (text: string, options?: {
|
|
247
|
-
pooling?: 'mean' | 'cls' | 'max';
|
|
248
|
-
normalize?: boolean;
|
|
249
|
-
}) => Promise<{
|
|
250
|
-
data: Float32Array;
|
|
251
|
-
}>;
|
|
252
|
-
/**
|
|
253
|
-
* Transformers.js module interface for dependency injection.
|
|
254
|
-
*/
|
|
255
|
-
interface TransformersModule {
|
|
256
|
-
pipeline: (task: 'feature-extraction', model: string, options?: {
|
|
257
|
-
quantized?: boolean;
|
|
258
|
-
}) => Promise<FeatureExtractionPipeline>;
|
|
259
|
-
env?: {
|
|
260
|
-
cacheDir?: string;
|
|
261
|
-
};
|
|
262
|
-
}
|
|
263
|
-
/**
|
|
264
|
-
* Create a local Transformers.js embedding provider.
|
|
265
|
-
* Uses dependency injection - user provides the imported transformers module.
|
|
266
|
-
*
|
|
267
|
-
* @example
|
|
268
|
-
* ```typescript
|
|
269
|
-
* import * as transformers from '@huggingface/transformers';
|
|
270
|
-
* import { createTransformersEmbedding } from 'scrapex/embeddings';
|
|
271
|
-
*
|
|
272
|
-
* const provider = createTransformersEmbedding(transformers, {
|
|
273
|
-
* model: 'Xenova/all-MiniLM-L6-v2',
|
|
274
|
-
* });
|
|
275
|
-
* ```
|
|
276
|
-
*
|
|
277
|
-
* Required Node.js dependencies:
|
|
278
|
-
* ```
|
|
279
|
-
* npm install @huggingface/transformers onnxruntime-node
|
|
280
|
-
* ```
|
|
281
|
-
*/
|
|
282
|
-
declare function createTransformersEmbedding(transformers: TransformersModule, options?: {
|
|
283
|
-
model?: string;
|
|
284
|
-
quantized?: boolean;
|
|
285
|
-
pooling?: 'mean' | 'cls' | 'max';
|
|
286
|
-
normalize?: boolean;
|
|
287
|
-
cacheDir?: string;
|
|
288
|
-
}): EmbeddingProvider;
|
|
289
|
-
/** Recommended models for Transformers.js */
|
|
290
|
-
declare const TRANSFORMERS_MODELS: {
|
|
291
|
-
/** Default - Fast, general purpose (384 dimensions, ~23MB) */
|
|
292
|
-
readonly DEFAULT: "Xenova/all-MiniLM-L6-v2";
|
|
293
|
-
/** Higher quality, more resources (768 dimensions, ~110MB) */
|
|
294
|
-
readonly QUALITY: "Xenova/all-mpnet-base-v2";
|
|
295
|
-
/** Optimized for retrieval (384 dimensions, ~33MB) */
|
|
296
|
-
readonly RETRIEVAL: "Xenova/bge-small-en-v1.5";
|
|
297
|
-
/** Multi-language support (384 dimensions, ~118MB) */
|
|
298
|
-
readonly MULTILINGUAL: "Xenova/multilingual-e5-small";
|
|
299
|
-
};
|
|
300
|
-
//#endregion
|
|
301
|
-
//#region src/embeddings/providers/index.d.ts
|
|
302
|
-
/**
|
|
303
|
-
* Create an embedding provider from configuration.
|
|
304
|
-
* This is the main factory function for creating providers.
|
|
305
|
-
*/
|
|
306
|
-
declare function createEmbeddingProvider(config: EmbeddingProviderConfig): EmbeddingProvider;
|
|
307
|
-
//#endregion
|
|
308
|
-
//#region src/embeddings/safety.d.ts
|
|
309
|
-
/**
|
|
310
|
-
* Create a redaction function based on configuration.
|
|
311
|
-
* Returns a function that applies all configured PII patterns.
|
|
312
|
-
*/
|
|
313
|
-
declare function createPiiRedactor(config: PiiRedactionConfig): (text: string) => RedactionResult;
|
|
314
|
-
/**
|
|
315
|
-
* Result of PII redaction operation.
|
|
316
|
-
*/
|
|
317
|
-
interface RedactionResult {
|
|
318
|
-
/** Redacted text */
|
|
319
|
-
text: string;
|
|
320
|
-
/** Whether any redactions were made */
|
|
321
|
-
redacted: boolean;
|
|
322
|
-
/** Total number of redactions */
|
|
323
|
-
redactionCount: number;
|
|
324
|
-
/** Count by redaction type */
|
|
325
|
-
redactionsByType: Record<string, number>;
|
|
326
|
-
}
|
|
327
|
-
/**
|
|
328
|
-
* Simple redaction that applies all default patterns.
|
|
329
|
-
* Use createPiiRedactor() for fine-grained control.
|
|
330
|
-
*/
|
|
331
|
-
declare function redactPii(text: string): RedactionResult;
|
|
332
|
-
//#endregion
|
|
333
76
|
//#region src/extractors/content.d.ts
|
|
334
77
|
/**
|
|
335
78
|
* Extracts main content using Mozilla Readability.
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/core/context.ts","../src/core/errors.ts","../src/core/scrape.ts","../src/
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/core/context.ts","../src/core/errors.ts","../src/core/scrape.ts","../src/extractors/content.ts","../src/extractors/favicon.ts","../src/extractors/jsonld.ts","../src/extractors/links.ts","../src/extractors/meta.ts","../src/extractors/index.ts","../src/fetchers/types.ts","../src/fetchers/fetch.ts","../src/fetchers/robots.ts","../src/utils/feed.ts","../src/utils/url.ts"],"sourcesContent":[],"mappings":"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"}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { $ as FetchResult, D as SafetyConfig, G as EnhancementType, J as ExtractionContext, K as ExtractedEntities, Q as FetchOptions, U as CompletionOptions, W as ContentType, X as ExtractionSchemaType, Y as ExtractionSchema, Z as Extractor, _ as EmbeddingSkipped, a as EmbedRequest, b as EmbeddingSuccessSingle, c as EmbeddingCache, et as Fetcher, f as EmbeddingMetrics, g as EmbeddingResult, h as EmbeddingProviderConfig, j as createHttpEmbedding, k as HttpEmbeddingConfig, l as EmbeddingCacheConfig, m as EmbeddingProvider, nt as ScrapeOptions, o as EmbedResponse, p as EmbeddingOptions, q as ExtractedLink, rt as ScrapedData, t as ChunkingConfig, tt as LLMProvider, u as EmbeddingInputConfig, v as EmbeddingSource, w as ResilienceConfig, x as OutputConfig, y as EmbeddingSuccessMultiple } from "./types-BOcHQU9s.mjs";
|
|
2
|
+
import { L as aggregateVectors, R as cosineSimilarity, S as chunkText, _ as generateEmbeddings, a as createEmbeddingProvider, c as createAzureEmbedding, d as createOllamaEmbedding, f as createOpenAIEmbedding, g as embedScrapedData, h as embed, i as redactPii, k as InMemoryEmbeddingCache, p as createTransformersEmbedding, r as createPiiRedactor, s as TRANSFORMERS_MODELS, u as createHuggingFaceEmbedding, w as estimateTokens } from "./index-D6qfjmZQ.mjs";
|
|
3
|
+
import { b as ParserResult, m as FeedMeta, n as RSSParserOptions, p as FeedItem, t as RSSParser, v as ParsedFeed } from "./index-CIFjNySr.mjs";
|
|
3
4
|
|
|
4
5
|
//#region src/core/context.d.ts
|
|
5
6
|
|
|
@@ -72,264 +73,6 @@ declare function scrape(url: string, options?: ScrapeOptions): Promise<ScrapedDa
|
|
|
72
73
|
*/
|
|
73
74
|
declare function scrapeHtml(html: string, url: string, options?: ScrapeOptions): Promise<ScrapedData>;
|
|
74
75
|
//#endregion
|
|
75
|
-
//#region src/embeddings/aggregation.d.ts
|
|
76
|
-
/**
|
|
77
|
-
* Aggregate multiple embedding vectors into a single vector or return all.
|
|
78
|
-
*
|
|
79
|
-
* @param vectors - Array of embedding vectors (must all have same dimensions)
|
|
80
|
-
* @param strategy - Aggregation strategy
|
|
81
|
-
* @returns Aggregated result based on strategy
|
|
82
|
-
*/
|
|
83
|
-
declare function aggregateVectors(vectors: number[][], strategy?: EmbeddingAggregation): AggregationResult;
|
|
84
|
-
/**
|
|
85
|
-
* Result of vector aggregation.
|
|
86
|
-
*/
|
|
87
|
-
type AggregationResult = {
|
|
88
|
-
type: 'single';
|
|
89
|
-
vector: number[];
|
|
90
|
-
dimensions: number;
|
|
91
|
-
} | {
|
|
92
|
-
type: 'multiple';
|
|
93
|
-
vectors: number[][];
|
|
94
|
-
dimensions: number;
|
|
95
|
-
};
|
|
96
|
-
/**
|
|
97
|
-
* Compute cosine similarity between two vectors.
|
|
98
|
-
* Both vectors should be normalized for accurate results.
|
|
99
|
-
*/
|
|
100
|
-
declare function cosineSimilarity(a: number[], b: number[]): number;
|
|
101
|
-
//#endregion
|
|
102
|
-
//#region src/embeddings/cache.d.ts
|
|
103
|
-
/**
|
|
104
|
-
* In-memory LRU cache with TTL support.
|
|
105
|
-
* Content-addressable: uses content hash as key, not URL.
|
|
106
|
-
*/
|
|
107
|
-
declare class InMemoryEmbeddingCache implements EmbeddingCache {
|
|
108
|
-
private cache;
|
|
109
|
-
private readonly maxEntries;
|
|
110
|
-
private readonly defaultTtlMs;
|
|
111
|
-
constructor(options?: {
|
|
112
|
-
maxEntries?: number;
|
|
113
|
-
ttlMs?: number;
|
|
114
|
-
});
|
|
115
|
-
get(key: string): Promise<EmbeddingResult | undefined>;
|
|
116
|
-
set(key: string, value: EmbeddingResult, options?: {
|
|
117
|
-
ttlMs?: number;
|
|
118
|
-
}): Promise<void>;
|
|
119
|
-
delete(key: string): Promise<boolean>;
|
|
120
|
-
clear(): Promise<void>;
|
|
121
|
-
/**
|
|
122
|
-
* Get cache statistics.
|
|
123
|
-
*/
|
|
124
|
-
getStats(): CacheStats;
|
|
125
|
-
/**
|
|
126
|
-
* Evict expired entries.
|
|
127
|
-
*/
|
|
128
|
-
cleanup(): number;
|
|
129
|
-
/**
|
|
130
|
-
* Evict least recently used entry.
|
|
131
|
-
*/
|
|
132
|
-
private evictLRU;
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Cache statistics.
|
|
136
|
-
*/
|
|
137
|
-
interface CacheStats {
|
|
138
|
-
/** Current number of entries */
|
|
139
|
-
size: number;
|
|
140
|
-
/** Maximum allowed entries */
|
|
141
|
-
maxEntries: number;
|
|
142
|
-
/** Number of expired entries (not yet cleaned up) */
|
|
143
|
-
expired: number;
|
|
144
|
-
/** Cache utilization (0-1) */
|
|
145
|
-
utilization: number;
|
|
146
|
-
}
|
|
147
|
-
//#endregion
|
|
148
|
-
//#region src/embeddings/chunking.d.ts
|
|
149
|
-
/**
|
|
150
|
-
* Split text into overlapping chunks optimized for embedding.
|
|
151
|
-
* Respects sentence boundaries when possible.
|
|
152
|
-
*/
|
|
153
|
-
declare function chunkText(text: string, config?: ChunkingConfig): TextChunk[];
|
|
154
|
-
/**
|
|
155
|
-
* Estimate total tokens for a text without chunking.
|
|
156
|
-
*/
|
|
157
|
-
declare function estimateTokens(text: string, tokenizer?: ChunkingConfig['tokenizer']): number;
|
|
158
|
-
//#endregion
|
|
159
|
-
//#region src/embeddings/pipeline.d.ts
|
|
160
|
-
/**
|
|
161
|
-
* Generate embeddings for scraped data.
|
|
162
|
-
* This is the main entry point for the embedding pipeline.
|
|
163
|
-
*/
|
|
164
|
-
declare function generateEmbeddings(data: Partial<ScrapedData>, options: EmbeddingOptions): Promise<EmbeddingResult>;
|
|
165
|
-
/**
|
|
166
|
-
* Embed arbitrary text directly.
|
|
167
|
-
* Standalone function for embedding text outside of scrape().
|
|
168
|
-
*/
|
|
169
|
-
declare function embed(text: string, options: EmbeddingOptions): Promise<EmbeddingResult>;
|
|
170
|
-
/**
|
|
171
|
-
* Embed from existing ScrapedData.
|
|
172
|
-
* Useful when you've already scraped and want to add embeddings later.
|
|
173
|
-
*/
|
|
174
|
-
declare function embedScrapedData(data: ScrapedData, options: EmbeddingOptions): Promise<EmbeddingResult>;
|
|
175
|
-
//#endregion
|
|
176
|
-
//#region src/embeddings/providers/presets.d.ts
|
|
177
|
-
/**
|
|
178
|
-
* Create an OpenAI embedding provider.
|
|
179
|
-
*
|
|
180
|
-
* @example
|
|
181
|
-
* ```ts
|
|
182
|
-
* const provider = createOpenAIEmbedding({ apiKey: 'sk-...' });
|
|
183
|
-
* const { embeddings } = await provider.embed(['Hello'], { model: 'text-embedding-3-small' });
|
|
184
|
-
* ```
|
|
185
|
-
*/
|
|
186
|
-
declare function createOpenAIEmbedding(options?: {
|
|
187
|
-
apiKey?: string;
|
|
188
|
-
model?: string;
|
|
189
|
-
baseUrl?: string;
|
|
190
|
-
organization?: string;
|
|
191
|
-
}): EmbeddingProvider;
|
|
192
|
-
/**
|
|
193
|
-
* Create an Azure OpenAI embedding provider.
|
|
194
|
-
*
|
|
195
|
-
* @example
|
|
196
|
-
* ```ts
|
|
197
|
-
* const provider = createAzureEmbedding({
|
|
198
|
-
* endpoint: 'https://my-resource.openai.azure.com',
|
|
199
|
-
* deploymentName: 'text-embedding-ada-002',
|
|
200
|
-
* apiVersion: '2023-05-15',
|
|
201
|
-
* });
|
|
202
|
-
* ```
|
|
203
|
-
*/
|
|
204
|
-
declare function createAzureEmbedding(options: {
|
|
205
|
-
endpoint: string;
|
|
206
|
-
deploymentName: string;
|
|
207
|
-
apiVersion: string;
|
|
208
|
-
apiKey?: string;
|
|
209
|
-
}): EmbeddingProvider;
|
|
210
|
-
/**
|
|
211
|
-
* Create an Ollama embedding provider for local models.
|
|
212
|
-
*
|
|
213
|
-
* LIMITATION: Ollama's /api/embeddings endpoint processes one text at a time,
|
|
214
|
-
* not batches. When multiple chunks are embedded, each chunk triggers a
|
|
215
|
-
* separate HTTP request. This is handled transparently by the pipeline's
|
|
216
|
-
* sequential chunk processing, but may be slower than batch-capable providers.
|
|
217
|
-
* For high-throughput scenarios, consider using OpenAI, Cohere, or HuggingFace
|
|
218
|
-
* which support batch embedding in a single request.
|
|
219
|
-
*
|
|
220
|
-
* @example
|
|
221
|
-
* ```ts
|
|
222
|
-
* const provider = createOllamaEmbedding({ model: 'nomic-embed-text' });
|
|
223
|
-
* ```
|
|
224
|
-
*/
|
|
225
|
-
declare function createOllamaEmbedding(options?: {
|
|
226
|
-
baseUrl?: string;
|
|
227
|
-
model?: string;
|
|
228
|
-
}): EmbeddingProvider;
|
|
229
|
-
/**
|
|
230
|
-
* Create a HuggingFace Inference API embedding provider.
|
|
231
|
-
*
|
|
232
|
-
* @example
|
|
233
|
-
* ```ts
|
|
234
|
-
* const provider = createHuggingFaceEmbedding({
|
|
235
|
-
* model: 'sentence-transformers/all-MiniLM-L6-v2',
|
|
236
|
-
* });
|
|
237
|
-
* ```
|
|
238
|
-
*/
|
|
239
|
-
declare function createHuggingFaceEmbedding(options: {
|
|
240
|
-
model: string;
|
|
241
|
-
apiKey?: string;
|
|
242
|
-
}): EmbeddingProvider;
|
|
243
|
-
/**
|
|
244
|
-
* Feature extraction pipeline type for Transformers.js
|
|
245
|
-
*/
|
|
246
|
-
type FeatureExtractionPipeline = (text: string, options?: {
|
|
247
|
-
pooling?: 'mean' | 'cls' | 'max';
|
|
248
|
-
normalize?: boolean;
|
|
249
|
-
}) => Promise<{
|
|
250
|
-
data: Float32Array;
|
|
251
|
-
}>;
|
|
252
|
-
/**
|
|
253
|
-
* Transformers.js module interface for dependency injection.
|
|
254
|
-
*/
|
|
255
|
-
interface TransformersModule {
|
|
256
|
-
pipeline: (task: 'feature-extraction', model: string, options?: {
|
|
257
|
-
quantized?: boolean;
|
|
258
|
-
}) => Promise<FeatureExtractionPipeline>;
|
|
259
|
-
env?: {
|
|
260
|
-
cacheDir?: string;
|
|
261
|
-
};
|
|
262
|
-
}
|
|
263
|
-
/**
|
|
264
|
-
* Create a local Transformers.js embedding provider.
|
|
265
|
-
* Uses dependency injection - user provides the imported transformers module.
|
|
266
|
-
*
|
|
267
|
-
* @example
|
|
268
|
-
* ```typescript
|
|
269
|
-
* import * as transformers from '@huggingface/transformers';
|
|
270
|
-
* import { createTransformersEmbedding } from 'scrapex/embeddings';
|
|
271
|
-
*
|
|
272
|
-
* const provider = createTransformersEmbedding(transformers, {
|
|
273
|
-
* model: 'Xenova/all-MiniLM-L6-v2',
|
|
274
|
-
* });
|
|
275
|
-
* ```
|
|
276
|
-
*
|
|
277
|
-
* Required Node.js dependencies:
|
|
278
|
-
* ```
|
|
279
|
-
* npm install @huggingface/transformers onnxruntime-node
|
|
280
|
-
* ```
|
|
281
|
-
*/
|
|
282
|
-
declare function createTransformersEmbedding(transformers: TransformersModule, options?: {
|
|
283
|
-
model?: string;
|
|
284
|
-
quantized?: boolean;
|
|
285
|
-
pooling?: 'mean' | 'cls' | 'max';
|
|
286
|
-
normalize?: boolean;
|
|
287
|
-
cacheDir?: string;
|
|
288
|
-
}): EmbeddingProvider;
|
|
289
|
-
/** Recommended models for Transformers.js */
|
|
290
|
-
declare const TRANSFORMERS_MODELS: {
|
|
291
|
-
/** Default - Fast, general purpose (384 dimensions, ~23MB) */
|
|
292
|
-
readonly DEFAULT: "Xenova/all-MiniLM-L6-v2";
|
|
293
|
-
/** Higher quality, more resources (768 dimensions, ~110MB) */
|
|
294
|
-
readonly QUALITY: "Xenova/all-mpnet-base-v2";
|
|
295
|
-
/** Optimized for retrieval (384 dimensions, ~33MB) */
|
|
296
|
-
readonly RETRIEVAL: "Xenova/bge-small-en-v1.5";
|
|
297
|
-
/** Multi-language support (384 dimensions, ~118MB) */
|
|
298
|
-
readonly MULTILINGUAL: "Xenova/multilingual-e5-small";
|
|
299
|
-
};
|
|
300
|
-
//#endregion
|
|
301
|
-
//#region src/embeddings/providers/index.d.ts
|
|
302
|
-
/**
|
|
303
|
-
* Create an embedding provider from configuration.
|
|
304
|
-
* This is the main factory function for creating providers.
|
|
305
|
-
*/
|
|
306
|
-
declare function createEmbeddingProvider(config: EmbeddingProviderConfig): EmbeddingProvider;
|
|
307
|
-
//#endregion
|
|
308
|
-
//#region src/embeddings/safety.d.ts
|
|
309
|
-
/**
|
|
310
|
-
* Create a redaction function based on configuration.
|
|
311
|
-
* Returns a function that applies all configured PII patterns.
|
|
312
|
-
*/
|
|
313
|
-
declare function createPiiRedactor(config: PiiRedactionConfig): (text: string) => RedactionResult;
|
|
314
|
-
/**
|
|
315
|
-
* Result of PII redaction operation.
|
|
316
|
-
*/
|
|
317
|
-
interface RedactionResult {
|
|
318
|
-
/** Redacted text */
|
|
319
|
-
text: string;
|
|
320
|
-
/** Whether any redactions were made */
|
|
321
|
-
redacted: boolean;
|
|
322
|
-
/** Total number of redactions */
|
|
323
|
-
redactionCount: number;
|
|
324
|
-
/** Count by redaction type */
|
|
325
|
-
redactionsByType: Record<string, number>;
|
|
326
|
-
}
|
|
327
|
-
/**
|
|
328
|
-
* Simple redaction that applies all default patterns.
|
|
329
|
-
* Use createPiiRedactor() for fine-grained control.
|
|
330
|
-
*/
|
|
331
|
-
declare function redactPii(text: string): RedactionResult;
|
|
332
|
-
//#endregion
|
|
333
76
|
//#region src/extractors/content.d.ts
|
|
334
77
|
/**
|
|
335
78
|
* Extracts main content using Mozilla Readability.
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/core/context.ts","../src/core/errors.ts","../src/core/scrape.ts","../src/
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/core/context.ts","../src/core/errors.ts","../src/core/scrape.ts","../src/extractors/content.ts","../src/extractors/favicon.ts","../src/extractors/jsonld.ts","../src/extractors/links.ts","../src/extractors/meta.ts","../src/extractors/index.ts","../src/fetchers/types.ts","../src/fetchers/fetch.ts","../src/fetchers/robots.ts","../src/utils/feed.ts","../src/utils/url.ts"],"sourcesContent":[],"mappings":"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"}
|