email-scrubber-core
Version:
A privacy-focused email sanitizer that removes trackers and cleans URLs, powered by the ClearURLs ruleset.
44 lines • 1.96 kB
TypeScript
/**
* Email Sanitizer Library
*
* A privacy-focused email sanitizer that removes trackers and cleans URLs.
* It can operate in two modes: buffered (for simple use cases) and streaming
* (for high-performance environments like Cloudflare Workers).
*
* @example
* // Buffered (non-streaming) usage for Node.js or similar environments:
* ```typescript
* import { sanitizeEmailBuffered, createMinimalRules } from 'email-scrubber-core';
*
* const rules = createMinimalRules();
* const originalHtml = '<a href="https://example.com/page?utm_source=news"><img src="https://track.com/pixel.gif"></a>';
* const result = sanitizeEmailBuffered(originalHtml, rules);
* console.log(`Cleaned ${result.urlsCleaned} URLs. Result: ${result.html}`);
* ```
*
* @example
* // Streaming usage for edge environments (e.g., Cloudflare Workers):
* ```typescript
* // In your Cloudflare Worker:
* import { getStreamingHandlers, createMinimalRules } from 'email-scrubber-core';
*
* async function handleRequest(request) {
* const response = await fetch(request); // Get response from origin
* const rules = createMinimalRules();
* const handlers = getStreamingHandlers(rules);
*
* const rewriter = new HTMLRewriter()
* .on("a[href]", handlers.linkHandler)
* .on("img", handlers.pixelHandler);
*
* return rewriter.transform(response);
* }
* ```
*/
export { type ClearUrlRules, LinkCleaner } from "./cleaners/LinkCleaner.js";
export { type SanitizableElement, TrackerPixelRemover, type TrackerPixelRemoverOptions, } from "./cleaners/TrackerPixelRemover.js";
export { type SanitizeEmailOptions, type SanitizeEmailResult, sanitizeEmail as sanitizeEmailBuffered, sanitizeEmailSimple as sanitizeEmailSimpleBuffered, } from "./sanitizer.js";
export { getStreamingHandlers } from "./stream-sanitizer.js";
export { createMinimalRules } from "./utils/fetchRules.js";
export declare const VERSION = "1.0.0";
//# sourceMappingURL=index.d.ts.map