job-scout 1.2.0 → 1.3.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.

Potentially problematic release.


This version of job-scout might be problematic. Click here for more details.

Files changed (57) hide show
  1. package/README.md +35 -0
  2. package/dist/core/contracts.d.ts +36 -0
  3. package/dist/core/contracts.d.ts.map +1 -1
  4. package/dist/core/engine.d.ts +2 -1
  5. package/dist/core/engine.d.ts.map +1 -1
  6. package/dist/core/engine.js +205 -0
  7. package/dist/core/engine.js.map +1 -1
  8. package/dist/core/model.d.ts +2 -0
  9. package/dist/core/model.d.ts.map +1 -1
  10. package/dist/core/model.js +3 -0
  11. package/dist/core/model.js.map +1 -1
  12. package/dist/core/result-pipeline.d.ts +5 -4
  13. package/dist/core/result-pipeline.d.ts.map +1 -1
  14. package/dist/core/result-pipeline.js +8 -3
  15. package/dist/core/result-pipeline.js.map +1 -1
  16. package/dist/domain/types.d.ts +47 -0
  17. package/dist/domain/types.d.ts.map +1 -1
  18. package/dist/public/client.d.ts.map +1 -1
  19. package/dist/public/client.js +8 -0
  20. package/dist/public/client.js.map +1 -1
  21. package/dist/public/index.d.ts +3 -1
  22. package/dist/public/index.d.ts.map +1 -1
  23. package/dist/public/index.js +5 -1
  24. package/dist/public/index.js.map +1 -1
  25. package/dist/public/scout-job-rows-stream.d.ts +3 -0
  26. package/dist/public/scout-job-rows-stream.d.ts.map +1 -0
  27. package/dist/public/scout-job-rows-stream.js +21 -0
  28. package/dist/public/scout-job-rows-stream.js.map +1 -0
  29. package/dist/public/scout-jobs-stream.d.ts +3 -0
  30. package/dist/public/scout-jobs-stream.d.ts.map +1 -0
  31. package/dist/public/scout-jobs-stream.js +46 -0
  32. package/dist/public/scout-jobs-stream.js.map +1 -0
  33. package/dist/scrapers/bayt/index.d.ts.map +1 -1
  34. package/dist/scrapers/bayt/index.js +1 -0
  35. package/dist/scrapers/bayt/index.js.map +1 -1
  36. package/dist/scrapers/bdjobs/index.d.ts.map +1 -1
  37. package/dist/scrapers/bdjobs/index.js +1 -0
  38. package/dist/scrapers/bdjobs/index.js.map +1 -1
  39. package/dist/scrapers/glassdoor/index.d.ts.map +1 -1
  40. package/dist/scrapers/glassdoor/index.js +10 -4
  41. package/dist/scrapers/glassdoor/index.js.map +1 -1
  42. package/dist/scrapers/google/index.d.ts.map +1 -1
  43. package/dist/scrapers/google/index.js +27 -5
  44. package/dist/scrapers/google/index.js.map +1 -1
  45. package/dist/scrapers/indeed/index.d.ts.map +1 -1
  46. package/dist/scrapers/indeed/index.js +14 -3
  47. package/dist/scrapers/indeed/index.js.map +1 -1
  48. package/dist/scrapers/linkedin/index.d.ts.map +1 -1
  49. package/dist/scrapers/linkedin/index.js +1 -0
  50. package/dist/scrapers/linkedin/index.js.map +1 -1
  51. package/dist/scrapers/naukri/index.d.ts.map +1 -1
  52. package/dist/scrapers/naukri/index.js +1 -0
  53. package/dist/scrapers/naukri/index.js.map +1 -1
  54. package/dist/scrapers/ziprecruiter/index.d.ts.map +1 -1
  55. package/dist/scrapers/ziprecruiter/index.js +10 -4
  56. package/dist/scrapers/ziprecruiter/index.js.map +1 -1
  57. package/package.json +1 -1
package/README.md CHANGED
@@ -77,8 +77,43 @@ const jobs = await client.scoutJobs({
77
77
  - `createClient(config?: JobScoutConfig): JobScoutClient`
78
78
  - `scoutJobs(request: JobSearchRequest, config?: JobScoutConfig): Promise<Job[]>`
79
79
  - `scoutJobRows(request: JobSearchRequest, config?: JobScoutConfig): Promise<JobRow[]>`
80
+ - `scoutJobsStream(request: JobSearchRequest, config?: JobScoutConfig, options?: JobStreamOptions): AsyncGenerator<JobStreamEvent>`
81
+ - `scoutJobRowsStream(request: JobSearchRequest, config?: JobScoutConfig, options?: JobStreamOptions): AsyncGenerator<JobRowStreamEvent>`
80
82
  - `toJobRows(jobs: Job[]): JobRow[]`
81
83
 
84
+ ## Streaming API
85
+
86
+ ```ts
87
+ import { scoutJobsStream } from 'job-scout'
88
+
89
+ for await (const event of scoutJobsStream(
90
+ {
91
+ sites: ['indeed', 'linkedin'],
92
+ query: 'software engineer',
93
+ pagination: { limitPerSite: 10 },
94
+ indeed: { country: 'usa' },
95
+ },
96
+ undefined,
97
+ {
98
+ includeLifecycleEvents: true,
99
+ dedupeStrategy: 'crossSite',
100
+ },
101
+ )) {
102
+ if (event.type === 'job') {
103
+ console.log(event.site, event.siteIndex, event.job.title)
104
+ continue
105
+ }
106
+
107
+ console.log(event.type)
108
+ }
109
+ ```
110
+
111
+ `JobStreamOptions`:
112
+
113
+ - `failFast?: boolean` (default `false`)
114
+ - `includeLifecycleEvents?: boolean` (default `false`)
115
+ - `dedupeStrategy?: 'batchCompatible' | 'crossSite'` (default `'crossSite'`)
116
+
82
117
  ## Request Model
83
118
 
84
119
  `JobSearchRequest` supports:
@@ -42,4 +42,40 @@ export interface SiteSearchResult {
42
42
  site: Site;
43
43
  jobs: JobPost[];
44
44
  }
45
+ export type StreamDedupeStrategy = 'batchCompatible' | 'crossSite';
46
+ export interface ResolvedSearchStreamOptions {
47
+ failFast: boolean;
48
+ includeLifecycleEvents: boolean;
49
+ dedupeStrategy: StreamDedupeStrategy;
50
+ }
51
+ export interface SearchStreamJobEvent {
52
+ type: 'job';
53
+ site: Site;
54
+ siteIndex: number;
55
+ globalIndex: number;
56
+ job: JobPost;
57
+ }
58
+ export interface SearchStreamSiteStartEvent {
59
+ type: 'siteStart';
60
+ site: Site;
61
+ }
62
+ export interface SearchStreamSiteErrorEvent {
63
+ type: 'siteError';
64
+ site: Site;
65
+ error: unknown;
66
+ }
67
+ export interface SearchStreamSiteDoneEvent {
68
+ type: 'siteDone';
69
+ site: Site;
70
+ emitted: number;
71
+ skippedByDedupe: number;
72
+ }
73
+ export interface SearchStreamCompleteEvent {
74
+ type: 'complete';
75
+ emittedTotal: number;
76
+ skippedByDedupeTotal: number;
77
+ siteCount: number;
78
+ }
79
+ export type SearchStreamLifecycleEvent = SearchStreamSiteStartEvent | SearchStreamSiteErrorEvent | SearchStreamSiteDoneEvent | SearchStreamCompleteEvent;
80
+ export type SearchStreamEvent = SearchStreamJobEvent | SearchStreamLifecycleEvent;
45
81
  //# sourceMappingURL=contracts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/core/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,OAAO,EACP,iBAAiB,EACjB,OAAO,EACP,YAAY,EACZ,cAAc,EACd,IAAI,EACJ,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE/D,OAAO,KAAK,EAAE,cAAc,EAAE,wBAAwB,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAEvF,MAAM,WAAW,sBAAsB;IACtC,GAAG,EAAE,OAAO,CAAA;IACZ,YAAY,EAAE;QACb,iBAAiB,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;KAC3C,CAAA;IACD,OAAO,EAAE;QACR,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;KAC1C,CAAA;IACD,SAAS,EAAE;QACV,IAAI,EAAE,gBAAgB,CAAA;QACtB,cAAc,EAAE,cAAc,CAAA;KAC9B,CAAA;IACD,MAAM,EAAE;QACP,iBAAiB,EAAE,iBAAiB,CAAA;QACpC,eAAe,EAAE,OAAO,CAAA;QACxB,cAAc,EAAE,QAAQ,CAAA;KACxB,CAAA;CACD;AAED,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,IAAI,CAAA;IACV,YAAY,EAAE,YAAY,CAAA;IAC1B,cAAc,EAAE,cAAc,CAAA;CAC9B;AAED,MAAM,WAAW,qBAAqB,CACrC,KAAK,SAAS,SAAS,OAAO,EAAE,GAAG,SAAS,OAAO,EAAE,EACrD,CAAC,SAAS,cAAc,GAAG,SAAS,GAAG,SAAS;IAEhD,OAAO,EAAE,wBAAwB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IAC3C,MAAM,EAAE,sBAAsB,CAAA;IAC9B,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,EAAE,mBAAmB,EAAE,CAAA;CACnC;AAED,MAAM,WAAW,aAAa;IAC7B,SAAS,EAAE,UAAU,CAAA;IACrB,MAAM,EAAE,sBAAsB,CAAA;CAC9B;AAED,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,MAAM,CACL,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,aAAa,GACpB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;CACrB;AAED,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,IAAI,CAAA;IACV,IAAI,EAAE,OAAO,EAAE,CAAA;CACf"}
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/core/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,OAAO,EACP,iBAAiB,EACjB,OAAO,EACP,YAAY,EACZ,cAAc,EACd,IAAI,EACJ,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE/D,OAAO,KAAK,EAAE,cAAc,EAAE,wBAAwB,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAEvF,MAAM,WAAW,sBAAsB;IACtC,GAAG,EAAE,OAAO,CAAA;IACZ,YAAY,EAAE;QACb,iBAAiB,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;KAC3C,CAAA;IACD,OAAO,EAAE;QACR,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;KAC1C,CAAA;IACD,SAAS,EAAE;QACV,IAAI,EAAE,gBAAgB,CAAA;QACtB,cAAc,EAAE,cAAc,CAAA;KAC9B,CAAA;IACD,MAAM,EAAE;QACP,iBAAiB,EAAE,iBAAiB,CAAA;QACpC,eAAe,EAAE,OAAO,CAAA;QACxB,cAAc,EAAE,QAAQ,CAAA;KACxB,CAAA;CACD;AAED,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,IAAI,CAAA;IACV,YAAY,EAAE,YAAY,CAAA;IAC1B,cAAc,EAAE,cAAc,CAAA;CAC9B;AAED,MAAM,WAAW,qBAAqB,CACrC,KAAK,SAAS,SAAS,OAAO,EAAE,GAAG,SAAS,OAAO,EAAE,EACrD,CAAC,SAAS,cAAc,GAAG,SAAS,GAAG,SAAS;IAEhD,OAAO,EAAE,wBAAwB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IAC3C,MAAM,EAAE,sBAAsB,CAAA;IAC9B,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,EAAE,mBAAmB,EAAE,CAAA;CACnC;AAED,MAAM,WAAW,aAAa;IAC7B,SAAS,EAAE,UAAU,CAAA;IACrB,MAAM,EAAE,sBAAsB,CAAA;CAC9B;AAED,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;IACnB,MAAM,CACL,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,aAAa,GACpB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;CACrB;AAED,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,IAAI,CAAA;IACV,IAAI,EAAE,OAAO,EAAE,CAAA;CACf;AAED,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,GAAG,WAAW,CAAA;AAElE,MAAM,WAAW,2BAA2B;IAC3C,QAAQ,EAAE,OAAO,CAAA;IACjB,sBAAsB,EAAE,OAAO,CAAA;IAC/B,cAAc,EAAE,oBAAoB,CAAA;CACpC;AAED,MAAM,WAAW,oBAAoB;IACpC,IAAI,EAAE,KAAK,CAAA;IACX,IAAI,EAAE,IAAI,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,OAAO,CAAA;CACZ;AAED,MAAM,WAAW,0BAA0B;IAC1C,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,EAAE,IAAI,CAAA;CACV;AAED,MAAM,WAAW,0BAA0B;IAC1C,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,OAAO,CAAA;CACd;AAED,MAAM,WAAW,yBAAyB;IACzC,IAAI,EAAE,UAAU,CAAA;IAChB,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,eAAe,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,yBAAyB;IACzC,IAAI,EAAE,UAAU,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,SAAS,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,MAAM,0BAA0B,GACnC,0BAA0B,GAC1B,0BAA0B,GAC1B,yBAAyB,GACzB,yBAAyB,CAAA;AAE5B,MAAM,MAAM,iBAAiB,GAAG,oBAAoB,GAAG,0BAA0B,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import type { JobPost } from "../core/model";
2
2
  import type { JobSite } from "../domain/types";
3
- import type { CompiledSearchRequest, SiteProvider } from "../core/contracts";
3
+ import type { CompiledSearchRequest, ResolvedSearchStreamOptions, SearchStreamEvent, SiteProvider } from "../core/contracts";
4
4
  export declare function executeSearch<const Sites extends readonly JobSite[]>(compiled: CompiledSearchRequest<Sites>, providers: SiteProvider[]): Promise<JobPost[]>;
5
+ export declare function executeSearchStream<const Sites extends readonly JobSite[]>(compiled: CompiledSearchRequest<Sites>, providers: SiteProvider[], options: ResolvedSearchStreamOptions): AsyncGenerator<SearchStreamEvent, void, void>;
5
6
  //# sourceMappingURL=engine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/core/engine.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAoB,MAAM,kBAAkB,CAAC;AAc9F,wBAAsB,aAAa,CAAC,KAAK,CAAC,KAAK,SAAS,SAAS,OAAO,EAAE,EACxE,QAAQ,EAAE,qBAAqB,CAAC,KAAK,CAAC,EACtC,SAAS,EAAE,YAAY,EAAE,GACxB,OAAO,CAAC,OAAO,EAAE,CAAC,CAuCpB"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/core/engine.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAQ,MAAM,cAAc,CAAC;AAGlD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,KAAK,EACV,qBAAqB,EACrB,2BAA2B,EAC3B,iBAAiB,EACjB,YAAY,EAEb,MAAM,kBAAkB,CAAC;AAkE1B,wBAAsB,aAAa,CAAC,KAAK,CAAC,KAAK,SAAS,SAAS,OAAO,EAAE,EACxE,QAAQ,EAAE,qBAAqB,CAAC,KAAK,CAAC,EACtC,SAAS,EAAE,YAAY,EAAE,GACxB,OAAO,CAAC,OAAO,EAAE,CAAC,CAuCpB;AAED,wBAAuB,mBAAmB,CAAC,KAAK,CAAC,KAAK,SAAS,SAAS,OAAO,EAAE,EAC/E,QAAQ,EAAE,qBAAqB,CAAC,KAAK,CAAC,EACtC,SAAS,EAAE,YAAY,EAAE,EACzB,OAAO,EAAE,2BAA2B,GACnC,cAAc,CAAC,iBAAiB,EAAE,IAAI,EAAE,IAAI,CAAC,CAoM/C"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.executeSearch = executeSearch;
4
+ exports.executeSearchStream = executeSearchStream;
4
5
  const logger_1 = require("../util/logger");
5
6
  const transport_1 = require("../internal/http/transport");
6
7
  const logging_1 = require("../internal/logging");
@@ -14,6 +15,43 @@ function buildProviderMap(providers) {
14
15
  }
15
16
  return map;
16
17
  }
18
+ function canonicalizeUrl(url) {
19
+ const trimmed = url.trim();
20
+ if (!trimmed) {
21
+ return "";
22
+ }
23
+ try {
24
+ const parsed = new URL(trimmed);
25
+ parsed.hash = "";
26
+ parsed.protocol = parsed.protocol.toLowerCase();
27
+ parsed.hostname = parsed.hostname.toLowerCase();
28
+ if ((parsed.protocol === "https:" && parsed.port === "443") || (parsed.protocol === "http:" && parsed.port === "80")) {
29
+ parsed.port = "";
30
+ }
31
+ parsed.pathname = parsed.pathname.replace(/\/+$/, "") || "/";
32
+ parsed.searchParams.sort();
33
+ return parsed.toString();
34
+ }
35
+ catch {
36
+ return trimmed.toLowerCase().replace(/\/+$/, "");
37
+ }
38
+ }
39
+ function buildCrossSiteDedupeKey(job) {
40
+ const canonicalUrl = canonicalizeUrl(job.job_url);
41
+ if (canonicalUrl) {
42
+ return `url|${canonicalUrl}`;
43
+ }
44
+ if (job.id) {
45
+ return `id|${job.id}`;
46
+ }
47
+ return `fallback|${(job.title ?? "").toLowerCase()}|${(job.company_name ?? "").toLowerCase()}`;
48
+ }
49
+ function buildStreamDedupeKey(dedupeStrategy, job) {
50
+ if (dedupeStrategy === "batchCompatible") {
51
+ return (0, result_pipeline_1.buildBatchDedupeKey)(job);
52
+ }
53
+ return buildCrossSiteDedupeKey(job);
54
+ }
17
55
  async function executeSearch(compiled, providers) {
18
56
  (0, logging_1.applyLogLevel)(compiled.config.logging.level);
19
57
  const providerMap = buildProviderMap(providers);
@@ -49,4 +87,171 @@ async function executeSearch(compiled, providers) {
49
87
  await transport.close();
50
88
  }
51
89
  }
90
+ async function* executeSearchStream(compiled, providers, options) {
91
+ (0, logging_1.applyLogLevel)(compiled.config.logging.level);
92
+ const providerMap = buildProviderMap(providers);
93
+ const transport = (0, transport_1.createTransport)(compiled.config.transport.http);
94
+ const events = [];
95
+ let notify = null;
96
+ let acceptingEvents = true;
97
+ let fatalError = null;
98
+ let completedSites = 0;
99
+ let globalIndex = 0;
100
+ const dedupeSet = new Set();
101
+ const siteCounters = new Map();
102
+ const emitEvent = (event) => {
103
+ if (!acceptingEvents) {
104
+ return;
105
+ }
106
+ events.push(event);
107
+ notify?.();
108
+ notify = null;
109
+ };
110
+ const emitLifecycleEvent = (event) => {
111
+ if (!options.includeLifecycleEvents) {
112
+ return;
113
+ }
114
+ emitEvent(event);
115
+ };
116
+ const pipelineOptions = {
117
+ country: compiled.country,
118
+ annualizeSalary: compiled.config.output.annualizeSalary,
119
+ salaryFallback: compiled.config.output.salaryFallback
120
+ };
121
+ const maybeEmitComplete = () => {
122
+ if (completedSites !== compiled.siteRequests.length) {
123
+ return;
124
+ }
125
+ const totals = [...siteCounters.values()].reduce((accumulator, counter) => {
126
+ accumulator.emitted += counter.emitted;
127
+ accumulator.skippedByDedupe += counter.skippedByDedupe;
128
+ return accumulator;
129
+ }, { emitted: 0, skippedByDedupe: 0 });
130
+ emitLifecycleEvent({
131
+ type: "complete",
132
+ emittedTotal: totals.emitted,
133
+ skippedByDedupeTotal: totals.skippedByDedupe,
134
+ siteCount: compiled.siteRequests.length
135
+ });
136
+ notify?.();
137
+ notify = null;
138
+ };
139
+ const markFatal = (error) => {
140
+ if (fatalError) {
141
+ return;
142
+ }
143
+ fatalError = error;
144
+ notify?.();
145
+ notify = null;
146
+ };
147
+ const siteTasks = compiled.siteRequests.map(async (siteRequest) => {
148
+ const counters = { emitted: 0, skippedByDedupe: 0, siteIndex: 0 };
149
+ siteCounters.set(siteRequest.site, counters);
150
+ const provider = providerMap.get(siteRequest.site);
151
+ if (!provider) {
152
+ const error = new errors_1.SiteExecutionError(siteRequest.site, "No provider registered for site.");
153
+ emitLifecycleEvent({
154
+ type: "siteError",
155
+ site: siteRequest.site,
156
+ error
157
+ });
158
+ if (options.failFast) {
159
+ markFatal(error);
160
+ }
161
+ completedSites += 1;
162
+ emitLifecycleEvent({
163
+ type: "siteDone",
164
+ site: siteRequest.site,
165
+ emitted: counters.emitted,
166
+ skippedByDedupe: counters.skippedByDedupe
167
+ });
168
+ maybeEmitComplete();
169
+ return;
170
+ }
171
+ emitLifecycleEvent({
172
+ type: "siteStart",
173
+ site: siteRequest.site
174
+ });
175
+ try {
176
+ await provider.search({
177
+ ...siteRequest,
178
+ scraperInput: {
179
+ ...siteRequest.scraperInput,
180
+ onJob: async (rawJob) => {
181
+ if (!acceptingEvents || fatalError) {
182
+ return;
183
+ }
184
+ const normalized = (0, result_pipeline_1.normalizeJobForSite)(rawJob, siteRequest.site, pipelineOptions);
185
+ const dedupeKey = buildStreamDedupeKey(options.dedupeStrategy, normalized);
186
+ if (dedupeSet.has(dedupeKey)) {
187
+ counters.skippedByDedupe += 1;
188
+ return;
189
+ }
190
+ dedupeSet.add(dedupeKey);
191
+ counters.emitted += 1;
192
+ counters.siteIndex += 1;
193
+ globalIndex += 1;
194
+ emitEvent({
195
+ type: "job",
196
+ site: siteRequest.site,
197
+ siteIndex: counters.siteIndex,
198
+ globalIndex,
199
+ job: normalized
200
+ });
201
+ }
202
+ }
203
+ }, {
204
+ transport,
205
+ config: compiled.config
206
+ });
207
+ log.info(`${siteRequest.site} finished scraping`);
208
+ }
209
+ catch (error) {
210
+ const wrappedError = new errors_1.SiteExecutionError(siteRequest.site, "Site scrape failed.", error);
211
+ emitLifecycleEvent({
212
+ type: "siteError",
213
+ site: siteRequest.site,
214
+ error: wrappedError
215
+ });
216
+ if (options.failFast) {
217
+ markFatal(wrappedError);
218
+ }
219
+ }
220
+ finally {
221
+ completedSites += 1;
222
+ emitLifecycleEvent({
223
+ type: "siteDone",
224
+ site: siteRequest.site,
225
+ emitted: counters.emitted,
226
+ skippedByDedupe: counters.skippedByDedupe
227
+ });
228
+ maybeEmitComplete();
229
+ }
230
+ });
231
+ try {
232
+ while (true) {
233
+ if (fatalError) {
234
+ throw fatalError;
235
+ }
236
+ if (events.length > 0) {
237
+ const event = events.shift();
238
+ if (event) {
239
+ yield event;
240
+ continue;
241
+ }
242
+ }
243
+ if (completedSites >= compiled.siteRequests.length) {
244
+ break;
245
+ }
246
+ await new Promise((resolve) => {
247
+ notify = resolve;
248
+ });
249
+ }
250
+ }
251
+ finally {
252
+ acceptingEvents = false;
253
+ await Promise.allSettled(siteTasks);
254
+ await transport.close();
255
+ }
256
+ }
52
257
  //# sourceMappingURL=engine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/core/engine.ts"],"names":[],"mappings":";;AAoBA,sCA0CC;AA9DD,0CAA6C;AAE7C,yDAA4D;AAC5D,gDAAmD;AAInD,0CAAmD;AACnD,4DAA2D;AAE3D,MAAM,GAAG,GAAG,IAAA,qBAAY,EAAC,QAAQ,CAAC,CAAC;AAEnC,SAAS,gBAAgB,CAAC,SAAyB;IACjD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAsC,CAAC;IAC1D,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,QAAsC,EACtC,SAAyB;IAEzB,IAAA,uBAAa,EAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAE7C,MAAM,WAAW,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,IAAA,2BAAe,EAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAElE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAA6B,EAAE;YACzE,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACnD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,2BAAkB,CAAC,WAAW,CAAC,IAAI,EAAE,kCAAkC,CAAC,CAAC;YACrF,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE;oBAC9C,SAAS;oBACT,MAAM,EAAE,QAAQ,CAAC,MAAM;iBACxB,CAAC,CAAC;gBAEH,GAAG,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,oBAAoB,CAAC,CAAC;gBAClD,OAAO;oBACL,IAAI,EAAE,WAAW,CAAC,IAAI;oBACtB,IAAI;iBACL,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,2BAAkB,CAAC,WAAW,CAAC,IAAI,EAAE,qBAAqB,EAAE,KAAK,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC,CAAC,CACH,CAAC;QAEF,OAAO,IAAA,mCAAiB,EAAC,OAAO,EAAE;YAChC,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe;YACvD,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc;SACtD,CAAC,CAAC;IACL,CAAC;YAAS,CAAC;QACT,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/core/engine.ts"],"names":[],"mappings":"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"}
@@ -234,6 +234,7 @@ export interface ScraperInput {
234
234
  requestTimeout: number;
235
235
  resultsWanted: number;
236
236
  hoursOld?: number | null;
237
+ onJob?: (job: JobPost) => void | Promise<void>;
237
238
  }
238
239
  export interface ScrapeJobsPerformanceConfig {
239
240
  maxConcurrencyPerSite?: Partial<Record<Site, number>>;
@@ -252,6 +253,7 @@ export declare abstract class Scraper {
252
253
  protected readonly http: HttpClient;
253
254
  protected readonly options: ScraperOptions;
254
255
  constructor(site: Site, http: HttpClient, options?: ScraperOptions);
256
+ protected emitJob(scraperInput: ScraperInput, job: JobPost): Promise<void>;
255
257
  abstract scrape(scraperInput: ScraperInput): Promise<JobResponse>;
256
258
  }
257
259
  export declare function getEnumFromJobType(jobTypeStr: string): JobType | null;
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/core/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/core/model.ts"],"names":[],"mappings":"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"}
@@ -529,6 +529,9 @@ class Scraper {
529
529
  this.http = http;
530
530
  this.options = options;
531
531
  }
532
+ async emitJob(scraperInput, job) {
533
+ await scraperInput.onJob?.(job);
534
+ }
532
535
  }
533
536
  exports.Scraper = Scraper;
534
537
  function getEnumFromJobType(jobTypeStr) {
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/core/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/core/model.ts"],"names":[],"mappings":";;;AAufA,0DAoBC;AAgKD,gDAQC;AAED,8CAEC;AArrBD,IAAY,OAWX;AAXD,WAAY,OAAO;IACjB,iCAAsB,CAAA;IACtB,iCAAsB,CAAA;IACtB,gCAAqB,CAAA;IACrB,kCAAuB,CAAA;IACvB,oCAAyB,CAAA;IACzB,+BAAoB,CAAA;IACpB,4BAAiB,CAAA;IACjB,0BAAe,CAAA;IACf,4BAAiB,CAAA;IACjB,kCAAuB,CAAA;AACzB,CAAC,EAXW,OAAO,uBAAP,OAAO,QAWlB;AAED,MAAM,gBAAgB,GAA8B;IAClD,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QACnB,UAAU;QACV,iBAAiB;QACjB,iBAAiB;QACjB,iBAAiB;QACjB,gBAAgB;QAChB,UAAU;QACV,UAAU;QACV,eAAe;QACf,IAAI;QACJ,YAAY;QACZ,SAAS;QACT,UAAU;QACV,cAAc;QACd,YAAY;QACZ,kBAAkB;QAClB,gBAAgB;QAChB,YAAY;QACZ,QAAQ;QACR,iBAAiB;QACjB,WAAW;QACX,KAAK;QACL,MAAM;QACN,IAAI;QACJ,UAAU;QACV,YAAY;QACZ,iBAAiB;QACjB,cAAc;KACf;IACD,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,QAAQ,CAAC;IACzE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC;IAC9C,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,WAAW,CAAC;IAClC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;QACpB,YAAY;QACZ,WAAW;QACX,uBAAuB;QACvB,WAAW;QACX,SAAS;KACV;IACD,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,SAAS,CAAC;IAC/B,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC;IAC5B,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC;IAC1B,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC;IAC5B,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,WAAW,CAAC;CACnC,CAAC;AAQF,MAAa,OAAO;IAMA;IACC;IANX,MAAM,CAAU,QAAQ,GAAc,EAAE,CAAC;IAEjC,OAAO,CAAW;IAElC,YACkB,IAAY,EACX,IAAiB;QADlB,SAAI,GAAJ,IAAI,CAAQ;QACX,SAAI,GAAJ,IAAI,CAAa;QAElC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU;aAC3B,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aAClC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IACpD,CAAC;IAED,IAAI,iBAAiB;QACnB,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtE,IAAI,SAAS,IAAI,cAAc,EAAE,CAAC;YAChC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,WAAW,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,oBAAoB;QACtB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjE,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;YACxB,OAAO,GAAG,SAAS,cAAc,MAAM,EAAE,CAAC;QAC5C,CAAC;QACD,OAAO,iBAAiB,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;IACtD,CAAC;IAED,eAAe;QACb,OAAO,WAAW,IAAI,CAAC,oBAAoB,GAAG,CAAC;IACjD,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,UAAkB;QAClC,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACnD,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACvC,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACzC,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QACD,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC9E,MAAM,IAAI,KAAK,CACb,4BAA4B,UAAU,2BAA2B,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7F,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,MAAM;QACX,OAAO,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,CAAU,SAAS,GAAG,IAAI,OAAO,CAAC,WAAW,EAAE;QACnD,UAAU,EAAE,WAAW;QACvB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,QAAQ;KAC1B,CAAC,CAAC;IACH,MAAM,CAAU,SAAS,GAAG,IAAI,OAAO,CAAC,WAAW,EAAE;QACnD,UAAU,EAAE,WAAW;QACvB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,QAAQ;KAC1B,CAAC,CAAC;IACH,MAAM,CAAU,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE;QAC/C,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,IAAI;KACtB,CAAC,CAAC;IACH,MAAM,CAAU,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE;QAC/C,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,UAAU,GAAG,IAAI,OAAO,CAAC,YAAY,EAAE;QACrD,UAAU,EAAE,YAAY;QACxB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE;QAC/C,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,OAAO;KACzB,CAAC,CAAC;IACH,MAAM,CAAU,QAAQ,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE;QACjD,UAAU,EAAE,UAAU;QACtB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE;QAC7C,UAAU,EAAE,QAAQ;QACpB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,QAAQ;KAC1B,CAAC,CAAC;IACH,MAAM,CAAU,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE;QAC7C,UAAU,EAAE,QAAQ;QACpB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,IAAI;KACtB,CAAC,CAAC;IACH,MAAM,CAAU,KAAK,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE;QAC3C,UAAU,EAAE,OAAO;QACnB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,KAAK,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE;QAC3C,UAAU,EAAE,OAAO;QACnB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,QAAQ,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE;QACjD,UAAU,EAAE,UAAU;QACtB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,SAAS,GAAG,IAAI,OAAO,CAAC,WAAW,EAAE;QACnD,UAAU,EAAE,YAAY;QACxB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE;QAC/C,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE;QAC7C,UAAU,EAAE,QAAQ;QACpB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,aAAa,GAAG,IAAI,OAAO,CAAC,eAAe,EAAE;QAC3D,UAAU,EAAE,wBAAwB;QACpC,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE;QAC/C,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE;QAC/C,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,KAAK,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE;QAC3C,UAAU,EAAE,OAAO;QACnB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE;QAC/C,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE;QAC/C,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE;QAC7C,UAAU,EAAE,QAAQ;QACpB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,IAAI;KACtB,CAAC,CAAC;IACH,MAAM,CAAU,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE;QAC/C,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,IAAI;KACtB,CAAC,CAAC;IACH,MAAM,CAAU,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE;QAC7C,UAAU,EAAE,QAAQ;QACpB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,QAAQ,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE;QACjD,UAAU,EAAE,WAAW;QACvB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,QAAQ;KAC1B,CAAC,CAAC;IACH,MAAM,CAAU,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE;QAC/C,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,KAAK,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE;QAC3C,UAAU,EAAE,OAAO;QACnB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,OAAO;KACzB,CAAC,CAAC;IACH,MAAM,CAAU,SAAS,GAAG,IAAI,OAAO,CAAC,WAAW,EAAE;QACnD,UAAU,EAAE,WAAW;QACvB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE;QAC/C,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,IAAI;KACtB,CAAC,CAAC;IACH,MAAM,CAAU,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE;QAC7C,UAAU,EAAE,QAAQ;QACpB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,KAAK,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE;QAC3C,UAAU,EAAE,OAAO;QACnB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,IAAI;KACtB,CAAC,CAAC;IACH,MAAM,CAAU,KAAK,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE;QAC3C,UAAU,EAAE,OAAO;QACnB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE;QAC7C,UAAU,EAAE,QAAQ;QACpB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE;QAC7C,UAAU,EAAE,QAAQ;QACpB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,SAAS,GAAG,IAAI,OAAO,CAAC,WAAW,EAAE;QACnD,UAAU,EAAE,WAAW;QACvB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,UAAU,GAAG,IAAI,OAAO,CAAC,YAAY,EAAE;QACrD,UAAU,EAAE,YAAY;QACxB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,QAAQ,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE;QACjD,UAAU,EAAE,UAAU;QACtB,YAAY,EAAE,aAAa;QAC3B,eAAe,EAAE,KAAK;KACvB,CAAC,CAAC;IACH,MAAM,CAAU,KAAK,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE;QAC3C,UAAU,EAAE,OAAO;QACnB,YAAY,EAAE,UAAU;QACxB,eAAe,EAAE,IAAI;KACtB,CAAC,CAAC;IACH,MAAM,CAAU,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE;QAC7C,UAAU,EAAE,QAAQ;QACpB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,QAAQ;KAC1B,CAAC,CAAC;IACH,MAAM,CAAU,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE;QAC/C,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,WAAW,GAAG,IAAI,OAAO,CAAC,aAAa,EAAE;QACvD,UAAU,EAAE,aAAa;QACzB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,IAAI;KACtB,CAAC,CAAC;IACH,MAAM,CAAU,UAAU,GAAG,IAAI,OAAO,CAAC,YAAY,EAAE;QACrD,UAAU,EAAE,aAAa;QACzB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,OAAO;KACzB,CAAC,CAAC;IACH,MAAM,CAAU,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE;QAC/C,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE;QAC7C,UAAU,EAAE,QAAQ;QACpB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE;QACzC,UAAU,EAAE,MAAM;QAClB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,QAAQ,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE;QACjD,UAAU,EAAE,UAAU;QACtB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE;QAC7C,UAAU,EAAE,QAAQ;QACpB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,IAAI,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE;QACzC,UAAU,EAAE,MAAM;QAClB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,WAAW,GAAG,IAAI,OAAO,CAAC,aAAa,EAAE;QACvD,UAAU,EAAE,aAAa;QACzB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE;QAC7C,UAAU,EAAE,QAAQ;QACpB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,QAAQ,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE;QACjD,UAAU,EAAE,UAAU;QACtB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,KAAK,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE;QAC3C,UAAU,EAAE,OAAO;QACnB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE;QAC/C,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,WAAW,GAAG,IAAI,OAAO,CAAC,aAAa,EAAE;QACvD,UAAU,EAAE,cAAc;QAC1B,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,SAAS,GAAG,IAAI,OAAO,CAAC,WAAW,EAAE;QACnD,UAAU,EAAE,WAAW;QACvB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,IAAI;KACtB,CAAC,CAAC;IACH,MAAM,CAAU,QAAQ,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE;QACjD,UAAU,EAAE,UAAU;QACtB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,QAAQ,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE;QACjD,UAAU,EAAE,UAAU;QACtB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,WAAW,GAAG,IAAI,OAAO,CAAC,aAAa,EAAE;QACvD,UAAU,EAAE,cAAc;QAC1B,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,UAAU,GAAG,IAAI,OAAO,CAAC,YAAY,EAAE;QACrD,UAAU,EAAE,aAAa;QACzB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,KAAK,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE;QAC3C,UAAU,EAAE,OAAO;QACnB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,IAAI;KACtB,CAAC,CAAC;IACH,MAAM,CAAU,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE;QAC7C,UAAU,EAAE,QAAQ;QACpB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,WAAW,GAAG,IAAI,OAAO,CAAC,aAAa,EAAE;QACvD,UAAU,EAAE,aAAa;QACzB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,OAAO;KACzB,CAAC,CAAC;IACH,MAAM,CAAU,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE;QAC7C,UAAU,EAAE,QAAQ;QACpB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,QAAQ,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE;QACjD,UAAU,EAAE,UAAU;QACtB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,MAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,EAAE;QAC7C,UAAU,EAAE,gBAAgB;QAC5B,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE;QAC/C,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,kBAAkB,GAAG,IAAI,OAAO,CAAC,oBAAoB,EAAE;QACrE,UAAU,EAAE,sBAAsB;QAClC,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,EAAE,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE;QACrC,UAAU,EAAE,mBAAmB;QAC/B,YAAY,EAAE,OAAO;QACrB,eAAe,EAAE,OAAO;KACzB,CAAC,CAAC;IACH,MAAM,CAAU,GAAG,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE;QACvC,UAAU,EAAE,sBAAsB;QAClC,YAAY,EAAE,QAAQ;QACtB,eAAe,EAAE,KAAK;KACvB,CAAC,CAAC;IACH,MAAM,CAAU,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE;QAC/C,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,SAAS,GAAG,IAAI,OAAO,CAAC,WAAW,EAAE;QACnD,UAAU,EAAE,WAAW;QACvB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,CAAU,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,EAAE;QAC/C,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,KAAK;KACvB,CAAC,CAAC;IACH,MAAM,CAAU,SAAS,GAAG,IAAI,OAAO,CAAC,WAAW,EAAE;QACnD,UAAU,EAAE,QAAQ;QACpB,YAAY,EAAE,KAAK;KACpB,CAAC,CAAC;IACH,MAAM,CAAU,SAAS,GAAG,IAAI,OAAO,CAAC,WAAW,EAAE;QACnD,UAAU,EAAE,WAAW;QACvB,YAAY,EAAE,KAAK;KACpB,CAAC,CAAC;;AA1XL,0BA2XC;AAED,MAAa,QAAQ;IACnB,OAAO,CAA0B;IACjC,IAAI,CAAgB;IACpB,KAAK,CAAgB;IAErB,YAAY,KAIX;QACC,IAAI,CAAC,OAAO,GAAG,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,KAAK,IAAI,IAAI,CAAC;IACpC,CAAC;IAED,eAAe;QACb,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACrC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;aAAM,IACL,IAAI,CAAC,OAAO;YACZ,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,SAAS;YAClC,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,SAAS,EAClC,CAAC;YACD,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YAC3C,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC9B,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC;YACzD,CAAC;YACD,IAAI,WAAW,KAAK,KAAK,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gBAClD,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACN,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;QAED,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;CACF;AA5CD,4BA4CC;AAED,IAAY,oBAMX;AAND,WAAY,oBAAoB;IAC9B,yCAAiB,CAAA;IACjB,2CAAmB,CAAA;IACnB,yCAAiB,CAAA;IACjB,uCAAe,CAAA;IACf,yCAAiB,CAAA;AACnB,CAAC,EANW,oBAAoB,oCAApB,oBAAoB,QAM/B;AAED,SAAgB,uBAAuB,CAAC,SAAiB;IACvD,MAAM,eAAe,GAAyC;QAC5D,IAAI,EAAE,oBAAoB,CAAC,MAAM;QACjC,IAAI,EAAE,oBAAoB,CAAC,MAAM;QACjC,IAAI,EAAE,oBAAoB,CAAC,MAAM;QACjC,GAAG,EAAE,oBAAoB,CAAC,KAAK;QAC/B,KAAK,EAAE,oBAAoB,CAAC,OAAO;QACnC,MAAM,EAAE,oBAAoB,CAAC,MAAM;KACpC,CAAC;IAEF,MAAM,MAAM,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,SAAiC,CAAC,EAAE,CAAC;QACpF,OAAO,SAAiC,CAAC;IAC3C,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AASD,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,0CAAqB,CAAA;IACrB,kCAAa,CAAA;IACb,oCAAe,CAAA;AACjB,CAAC,EAJW,iBAAiB,iCAAjB,iBAAiB,QAI5B;AAkFD,IAAY,IASX;AATD,WAAY,IAAI;IACd,6BAAqB,CAAA;IACrB,yBAAiB,CAAA;IACjB,uCAA+B,CAAA;IAC/B,+BAAuB,CAAA;IACvB,yBAAiB,CAAA;IACjB,qBAAa,CAAA;IACb,yBAAiB,CAAA;IACjB,yBAAiB,CAAA;AACnB,CAAC,EATW,IAAI,oBAAJ,IAAI,QASf;AAED,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,2CAA2B,CAAA;IAC3B,2CAA2B,CAAA;AAC7B,CAAC,EAHW,YAAY,4BAAZ,YAAY,QAGvB;AAqCD,MAAsB,OAAO;IAET;IACG;IACA;IAHrB,YACkB,IAAU,EACP,IAAgB,EAChB,UAA0B,EAAE;QAF/B,SAAI,GAAJ,IAAI,CAAM;QACP,SAAI,GAAJ,IAAI,CAAY;QAChB,YAAO,GAAP,OAAO,CAAqB;IAC9C,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,YAA0B,EAAE,GAAY;QAC9D,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;CAGF;AAZD,0BAYC;AAED,SAAgB,kBAAkB,CAAC,UAAkB;IACnD,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACnD,KAAK,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAA0B,EAAE,CAAC;QAC3F,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,iBAAiB,CAAC,OAAgB;IAChD,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC"}
@@ -1,10 +1,11 @@
1
- import { type JobPost, type Country as CountryType } from "../core/model";
1
+ import { Site, type JobPost, type Country as CountryType } from "../core/model";
2
2
  import type { SiteSearchResult } from "../core/contracts";
3
- interface PipelineOptions {
3
+ export interface ResultPipelineOptions {
4
4
  country: CountryType;
5
5
  annualizeSalary: boolean;
6
6
  salaryFallback: "usOnly";
7
7
  }
8
- export declare function runResultPipeline(results: SiteSearchResult[], options: PipelineOptions): JobPost[];
9
- export {};
8
+ export declare function buildBatchDedupeKey(job: JobPost): string;
9
+ export declare function normalizeJobForSite(job: JobPost, site: Site, options: ResultPipelineOptions): JobPost;
10
+ export declare function runResultPipeline(results: SiteSearchResult[], options: ResultPipelineOptions): JobPost[];
10
11
  //# sourceMappingURL=result-pipeline.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"result-pipeline.d.ts","sourceRoot":"","sources":["../../src/core/result-pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,OAAO,EACZ,KAAK,OAAO,IAAI,WAAW,EAC5B,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,UAAU,eAAe;IACvB,OAAO,EAAE,WAAW,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,QAAQ,CAAC;CAC1B;AA6ED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,EAAE,CAOlG"}
1
+ {"version":3,"file":"result-pipeline.d.ts","sourceRoot":"","sources":["../../src/core/result-pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,IAAI,EACJ,KAAK,OAAO,EACZ,KAAK,OAAO,IAAI,WAAW,EAC5B,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,WAAW,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,QAAQ,CAAC;CAC1B;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAExD;AAsCD,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAqCT;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,gBAAgB,EAAE,EAC3B,OAAO,EAAE,qBAAqB,GAC7B,OAAO,EAAE,CAOX"}
@@ -1,13 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildBatchDedupeKey = buildBatchDedupeKey;
4
+ exports.normalizeJobForSite = normalizeJobForSite;
3
5
  exports.runResultPipeline = runResultPipeline;
4
6
  const model_1 = require("../core/model");
5
7
  const salary_1 = require("../util/salary");
8
+ function buildBatchDedupeKey(job) {
9
+ return `${job.site ?? model_1.Site.BAYT}|${job.job_url}|${job.id ?? ""}`;
10
+ }
6
11
  function dedupeJobs(jobs) {
7
12
  const seen = new Set();
8
13
  const deduped = [];
9
14
  for (const job of jobs) {
10
- const key = `${job.site ?? model_1.Site.BAYT}|${job.job_url}|${job.id ?? ""}`;
15
+ const key = buildBatchDedupeKey(job);
11
16
  if (seen.has(key)) {
12
17
  continue;
13
18
  }
@@ -31,7 +36,7 @@ function sortJobs(jobs) {
31
36
  return rightDate - leftDate;
32
37
  });
33
38
  }
34
- function normalizeJob(job, site, options) {
39
+ function normalizeJobForSite(job, site, options) {
35
40
  const normalized = {
36
41
  ...job,
37
42
  site
@@ -64,7 +69,7 @@ function normalizeJob(job, site, options) {
64
69
  return normalized;
65
70
  }
66
71
  function runResultPipeline(results, options) {
67
- const normalized = results.flatMap((result) => result.jobs.map((job) => normalizeJob(job, result.site, options)));
72
+ const normalized = results.flatMap((result) => result.jobs.map((job) => normalizeJobForSite(job, result.site, options)));
68
73
  const deduped = dedupeJobs(normalized);
69
74
  return sortJobs(deduped);
70
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"result-pipeline.js","sourceRoot":"","sources":["../../src/core/result-pipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"result-pipeline.js","sourceRoot":"","sources":["../../src/core/result-pipeline.ts"],"names":[],"mappings":"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"}
@@ -248,9 +248,56 @@ export interface JobScoutConfig {
248
248
  level?: 'error' | 'warn' | 'info' | 'debug';
249
249
  };
250
250
  }
251
+ type StreamSiteFor<Sites extends readonly JobSite[]> = number extends Sites['length'] ? JobSite : Sites[number];
252
+ export type StreamDedupeStrategy = 'batchCompatible' | 'crossSite';
253
+ export interface JobStreamOptions {
254
+ failFast?: boolean;
255
+ includeLifecycleEvents?: boolean;
256
+ dedupeStrategy?: StreamDedupeStrategy;
257
+ }
258
+ export interface JobStreamJobEvent<Sites extends readonly JobSite[]> {
259
+ type: 'job';
260
+ site: StreamSiteFor<Sites>;
261
+ siteIndex: number;
262
+ globalIndex: number;
263
+ job: Job;
264
+ }
265
+ export interface JobRowStreamRowEvent<Sites extends readonly JobSite[]> {
266
+ type: 'row';
267
+ site: StreamSiteFor<Sites>;
268
+ siteIndex: number;
269
+ globalIndex: number;
270
+ row: JobRow;
271
+ }
272
+ export interface JobStreamSiteStartEvent<Sites extends readonly JobSite[]> {
273
+ type: 'siteStart';
274
+ site: StreamSiteFor<Sites>;
275
+ }
276
+ export interface JobStreamSiteErrorEvent<Sites extends readonly JobSite[]> {
277
+ type: 'siteError';
278
+ site: StreamSiteFor<Sites>;
279
+ error: unknown;
280
+ }
281
+ export interface JobStreamSiteDoneEvent<Sites extends readonly JobSite[]> {
282
+ type: 'siteDone';
283
+ site: StreamSiteFor<Sites>;
284
+ emitted: number;
285
+ skippedByDedupe: number;
286
+ }
287
+ export interface JobStreamCompleteEvent {
288
+ type: 'complete';
289
+ emittedTotal: number;
290
+ skippedByDedupeTotal: number;
291
+ siteCount: number;
292
+ }
293
+ export type JobStreamLifecycleEvent<Sites extends readonly JobSite[]> = JobStreamSiteStartEvent<Sites> | JobStreamSiteErrorEvent<Sites> | JobStreamSiteDoneEvent<Sites> | JobStreamCompleteEvent;
294
+ export type JobStreamEvent<Sites extends readonly JobSite[]> = JobStreamJobEvent<Sites> | JobStreamLifecycleEvent<Sites>;
295
+ export type JobRowStreamEvent<Sites extends readonly JobSite[]> = JobRowStreamRowEvent<Sites> | JobStreamLifecycleEvent<Sites>;
251
296
  export interface JobScoutClient<C = undefined> {
252
297
  scoutJobs<const Sites extends readonly JobSite[]>(request: JobSearchRequestForSites<Sites, C>): Promise<Job[]>;
253
298
  scoutJobRows<const Sites extends readonly JobSite[]>(request: JobSearchRequestForSites<Sites, C>): Promise<JobRow[]>;
299
+ scoutJobsStream<const Sites extends readonly JobSite[]>(request: JobSearchRequestForSites<Sites, C>, options?: JobStreamOptions): AsyncGenerator<JobStreamEvent<Sites>, void, void>;
300
+ scoutJobRowsStream<const Sites extends readonly JobSite[]>(request: JobSearchRequestForSites<Sites, C>, options?: JobStreamOptions): AsyncGenerator<JobRowStreamEvent<Sites>, void, void>;
254
301
  }
255
302
  export {};
256
303
  //# sourceMappingURL=types.d.ts.map