@dealcrawl/sdk 2.0.2 → 2.1.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 (207) hide show
  1. package/README.md +47 -2
  2. package/dist/{sdk/src/client.d.ts → client.d.ts} +6 -6
  3. package/dist/client.d.ts.map +1 -0
  4. package/dist/{sdk/src/client.js → client.js} +8 -8
  5. package/dist/client.js.map +1 -0
  6. package/dist/{sdk/src/error.d.ts → error.d.ts} +3 -2
  7. package/dist/error.d.ts.map +1 -0
  8. package/dist/{sdk/src/error.js → error.js} +15 -2
  9. package/dist/error.js.map +1 -0
  10. package/dist/{sdk/src/index.d.ts → index.d.ts} +3 -3
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/resources/account.d.ts.map +1 -0
  14. package/dist/resources/account.js.map +1 -0
  15. package/dist/{sdk/src/resources → resources}/crawl.d.ts +19 -5
  16. package/dist/resources/crawl.d.ts.map +1 -0
  17. package/dist/{sdk/src/resources → resources}/crawl.js +44 -15
  18. package/dist/resources/crawl.js.map +1 -0
  19. package/dist/{sdk/src/resources → resources}/data.d.ts +2 -2
  20. package/dist/resources/data.d.ts.map +1 -0
  21. package/dist/{sdk/src/resources → resources}/data.js +6 -0
  22. package/dist/resources/data.js.map +1 -0
  23. package/dist/resources/dork.d.ts.map +1 -0
  24. package/dist/{sdk/src/resources → resources}/dork.js +6 -6
  25. package/dist/resources/dork.js.map +1 -0
  26. package/dist/resources/extract.d.ts.map +1 -0
  27. package/dist/resources/extract.js.map +1 -0
  28. package/dist/resources/index.d.ts.map +1 -0
  29. package/dist/resources/index.js.map +1 -0
  30. package/dist/{sdk/src/resources → resources}/keys.d.ts +1 -1
  31. package/dist/resources/keys.d.ts.map +1 -0
  32. package/dist/{sdk/src/resources → resources}/keys.js +1 -1
  33. package/dist/resources/keys.js.map +1 -0
  34. package/dist/resources/scrape.d.ts.map +1 -0
  35. package/dist/resources/scrape.js.map +1 -0
  36. package/dist/resources/status.d.ts.map +1 -0
  37. package/dist/resources/status.js.map +1 -0
  38. package/dist/resources/webhooks.d.ts.map +1 -0
  39. package/dist/resources/webhooks.js.map +1 -0
  40. package/dist/{sdk/src/types → types}/config.d.ts +1 -1
  41. package/dist/types/config.d.ts.map +1 -0
  42. package/dist/types/config.js.map +1 -0
  43. package/dist/types/index.d.ts.map +1 -0
  44. package/dist/types/index.js.map +1 -0
  45. package/dist/{sdk/src/types → types}/options.d.ts +45 -3
  46. package/dist/types/options.d.ts.map +1 -0
  47. package/dist/types/options.js.map +1 -0
  48. package/dist/{sdk/src/types → types}/responses.d.ts +38 -1
  49. package/dist/types/responses.d.ts.map +1 -0
  50. package/dist/types/responses.js.map +1 -0
  51. package/dist/types/shared.d.ts +234 -0
  52. package/dist/types/shared.d.ts.map +1 -0
  53. package/dist/{shared/src/constants/errors.js → types/shared.js} +8 -10
  54. package/dist/types/shared.js.map +1 -0
  55. package/dist/utils/polling.d.ts.map +1 -0
  56. package/dist/utils/polling.js.map +1 -0
  57. package/dist/{sdk/src/utils → utils}/request.d.ts +1 -1
  58. package/dist/utils/request.d.ts.map +1 -0
  59. package/dist/{sdk/src/utils → utils}/request.js +39 -8
  60. package/dist/utils/request.js.map +1 -0
  61. package/package.json +6 -6
  62. package/dist/sdk/src/client.d.ts.map +0 -1
  63. package/dist/sdk/src/client.js.map +0 -1
  64. package/dist/sdk/src/error.d.ts.map +0 -1
  65. package/dist/sdk/src/error.js.map +0 -1
  66. package/dist/sdk/src/index.d.ts.map +0 -1
  67. package/dist/sdk/src/index.js.map +0 -1
  68. package/dist/sdk/src/resources/account.d.ts.map +0 -1
  69. package/dist/sdk/src/resources/account.js.map +0 -1
  70. package/dist/sdk/src/resources/crawl.d.ts.map +0 -1
  71. package/dist/sdk/src/resources/crawl.js.map +0 -1
  72. package/dist/sdk/src/resources/data.d.ts.map +0 -1
  73. package/dist/sdk/src/resources/data.js.map +0 -1
  74. package/dist/sdk/src/resources/dork.d.ts.map +0 -1
  75. package/dist/sdk/src/resources/dork.js.map +0 -1
  76. package/dist/sdk/src/resources/extract.d.ts.map +0 -1
  77. package/dist/sdk/src/resources/extract.js.map +0 -1
  78. package/dist/sdk/src/resources/index.d.ts.map +0 -1
  79. package/dist/sdk/src/resources/index.js.map +0 -1
  80. package/dist/sdk/src/resources/keys.d.ts.map +0 -1
  81. package/dist/sdk/src/resources/keys.js.map +0 -1
  82. package/dist/sdk/src/resources/scrape.d.ts.map +0 -1
  83. package/dist/sdk/src/resources/scrape.js.map +0 -1
  84. package/dist/sdk/src/resources/status.d.ts.map +0 -1
  85. package/dist/sdk/src/resources/status.js.map +0 -1
  86. package/dist/sdk/src/resources/webhooks.d.ts.map +0 -1
  87. package/dist/sdk/src/resources/webhooks.js.map +0 -1
  88. package/dist/sdk/src/types/config.d.ts.map +0 -1
  89. package/dist/sdk/src/types/config.js.map +0 -1
  90. package/dist/sdk/src/types/index.d.ts.map +0 -1
  91. package/dist/sdk/src/types/index.js.map +0 -1
  92. package/dist/sdk/src/types/options.d.ts.map +0 -1
  93. package/dist/sdk/src/types/options.js.map +0 -1
  94. package/dist/sdk/src/types/responses.d.ts.map +0 -1
  95. package/dist/sdk/src/types/responses.js.map +0 -1
  96. package/dist/sdk/src/utils/polling.d.ts.map +0 -1
  97. package/dist/sdk/src/utils/polling.js.map +0 -1
  98. package/dist/sdk/src/utils/request.d.ts.map +0 -1
  99. package/dist/sdk/src/utils/request.js.map +0 -1
  100. package/dist/shared/src/constants/errors.d.ts +0 -26
  101. package/dist/shared/src/constants/errors.d.ts.map +0 -1
  102. package/dist/shared/src/constants/errors.js.map +0 -1
  103. package/dist/shared/src/constants/http.d.ts +0 -26
  104. package/dist/shared/src/constants/http.d.ts.map +0 -1
  105. package/dist/shared/src/constants/http.js +0 -26
  106. package/dist/shared/src/constants/http.js.map +0 -1
  107. package/dist/shared/src/constants/index.d.ts +0 -4
  108. package/dist/shared/src/constants/index.d.ts.map +0 -1
  109. package/dist/shared/src/constants/index.js +0 -5
  110. package/dist/shared/src/constants/index.js.map +0 -1
  111. package/dist/shared/src/constants/limits.d.ts +0 -52
  112. package/dist/shared/src/constants/limits.d.ts.map +0 -1
  113. package/dist/shared/src/constants/limits.js +0 -43
  114. package/dist/shared/src/constants/limits.js.map +0 -1
  115. package/dist/shared/src/index.d.ts +0 -5
  116. package/dist/shared/src/index.d.ts.map +0 -1
  117. package/dist/shared/src/index.js +0 -11
  118. package/dist/shared/src/index.js.map +0 -1
  119. package/dist/shared/src/lib/index.d.ts +0 -2
  120. package/dist/shared/src/lib/index.d.ts.map +0 -1
  121. package/dist/shared/src/lib/index.js +0 -2
  122. package/dist/shared/src/lib/index.js.map +0 -1
  123. package/dist/shared/src/lib/redis.d.ts +0 -14
  124. package/dist/shared/src/lib/redis.d.ts.map +0 -1
  125. package/dist/shared/src/lib/redis.js +0 -60
  126. package/dist/shared/src/lib/redis.js.map +0 -1
  127. package/dist/shared/src/types/api-key.types.d.ts +0 -94
  128. package/dist/shared/src/types/api-key.types.d.ts.map +0 -1
  129. package/dist/shared/src/types/api-key.types.js +0 -30
  130. package/dist/shared/src/types/api-key.types.js.map +0 -1
  131. package/dist/shared/src/types/api.types.d.ts +0 -38
  132. package/dist/shared/src/types/api.types.d.ts.map +0 -1
  133. package/dist/shared/src/types/api.types.js +0 -2
  134. package/dist/shared/src/types/api.types.js.map +0 -1
  135. package/dist/shared/src/types/client.types.d.ts +0 -73
  136. package/dist/shared/src/types/client.types.d.ts.map +0 -1
  137. package/dist/shared/src/types/client.types.js +0 -9
  138. package/dist/shared/src/types/client.types.js.map +0 -1
  139. package/dist/shared/src/types/crawl.types.d.ts +0 -65
  140. package/dist/shared/src/types/crawl.types.d.ts.map +0 -1
  141. package/dist/shared/src/types/crawl.types.js +0 -2
  142. package/dist/shared/src/types/crawl.types.js.map +0 -1
  143. package/dist/shared/src/types/deal.types.d.ts +0 -210
  144. package/dist/shared/src/types/deal.types.d.ts.map +0 -1
  145. package/dist/shared/src/types/deal.types.js +0 -6
  146. package/dist/shared/src/types/deal.types.js.map +0 -1
  147. package/dist/shared/src/types/dork.types.d.ts +0 -29
  148. package/dist/shared/src/types/dork.types.d.ts.map +0 -1
  149. package/dist/shared/src/types/dork.types.js +0 -2
  150. package/dist/shared/src/types/dork.types.js.map +0 -1
  151. package/dist/shared/src/types/index.d.ts +0 -8
  152. package/dist/shared/src/types/index.d.ts.map +0 -1
  153. package/dist/shared/src/types/index.js +0 -9
  154. package/dist/shared/src/types/index.js.map +0 -1
  155. package/dist/shared/src/types/scrape.types.d.ts +0 -151
  156. package/dist/shared/src/types/scrape.types.d.ts.map +0 -1
  157. package/dist/shared/src/types/scrape.types.js +0 -2
  158. package/dist/shared/src/types/scrape.types.js.map +0 -1
  159. package/dist/shared/src/utils/date.d.ts +0 -7
  160. package/dist/shared/src/utils/date.d.ts.map +0 -1
  161. package/dist/shared/src/utils/date.js +0 -25
  162. package/dist/shared/src/utils/date.js.map +0 -1
  163. package/dist/shared/src/utils/hash.d.ts +0 -4
  164. package/dist/shared/src/utils/hash.d.ts.map +0 -1
  165. package/dist/shared/src/utils/hash.js +0 -21
  166. package/dist/shared/src/utils/hash.js.map +0 -1
  167. package/dist/shared/src/utils/index.d.ts +0 -7
  168. package/dist/shared/src/utils/index.d.ts.map +0 -1
  169. package/dist/shared/src/utils/index.js +0 -8
  170. package/dist/shared/src/utils/index.js.map +0 -1
  171. package/dist/shared/src/utils/logger.d.ts +0 -66
  172. package/dist/shared/src/utils/logger.d.ts.map +0 -1
  173. package/dist/shared/src/utils/logger.js +0 -268
  174. package/dist/shared/src/utils/logger.js.map +0 -1
  175. package/dist/shared/src/utils/retry.d.ts +0 -11
  176. package/dist/shared/src/utils/retry.d.ts.map +0 -1
  177. package/dist/shared/src/utils/retry.js +0 -36
  178. package/dist/shared/src/utils/retry.js.map +0 -1
  179. package/dist/shared/src/utils/url-validator.d.ts +0 -37
  180. package/dist/shared/src/utils/url-validator.d.ts.map +0 -1
  181. package/dist/shared/src/utils/url-validator.js +0 -179
  182. package/dist/shared/src/utils/url-validator.js.map +0 -1
  183. package/dist/shared/src/utils/url.d.ts +0 -6
  184. package/dist/shared/src/utils/url.d.ts.map +0 -1
  185. package/dist/shared/src/utils/url.js +0 -56
  186. package/dist/shared/src/utils/url.js.map +0 -1
  187. /package/dist/{sdk/src/index.js → index.js} +0 -0
  188. /package/dist/{sdk/src/resources → resources}/account.d.ts +0 -0
  189. /package/dist/{sdk/src/resources → resources}/account.js +0 -0
  190. /package/dist/{sdk/src/resources → resources}/dork.d.ts +0 -0
  191. /package/dist/{sdk/src/resources → resources}/extract.d.ts +0 -0
  192. /package/dist/{sdk/src/resources → resources}/extract.js +0 -0
  193. /package/dist/{sdk/src/resources → resources}/index.d.ts +0 -0
  194. /package/dist/{sdk/src/resources → resources}/index.js +0 -0
  195. /package/dist/{sdk/src/resources → resources}/scrape.d.ts +0 -0
  196. /package/dist/{sdk/src/resources → resources}/scrape.js +0 -0
  197. /package/dist/{sdk/src/resources → resources}/status.d.ts +0 -0
  198. /package/dist/{sdk/src/resources → resources}/status.js +0 -0
  199. /package/dist/{sdk/src/resources → resources}/webhooks.d.ts +0 -0
  200. /package/dist/{sdk/src/resources → resources}/webhooks.js +0 -0
  201. /package/dist/{sdk/src/types → types}/config.js +0 -0
  202. /package/dist/{sdk/src/types → types}/index.d.ts +0 -0
  203. /package/dist/{sdk/src/types → types}/index.js +0 -0
  204. /package/dist/{sdk/src/types → types}/options.js +0 -0
  205. /package/dist/{sdk/src/types → types}/responses.js +0 -0
  206. /package/dist/{sdk/src/utils → utils}/polling.d.ts +0 -0
  207. /package/dist/{sdk/src/utils → utils}/polling.js +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"deal.types.js","sourceRoot":"","sources":["../../../../../shared/src/types/deal.types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -1,29 +0,0 @@
1
- export interface DorkOptions {
2
- query: string;
3
- site?: string;
4
- fileType?: string;
5
- inUrl?: string;
6
- inTitle?: string;
7
- maxResults?: number;
8
- region?: string;
9
- }
10
- export interface DorkResult {
11
- query: string;
12
- site?: string;
13
- results: DorkSearchResult[];
14
- totalResults?: number;
15
- searchedAt: string;
16
- }
17
- export interface DorkSearchResult {
18
- url: string;
19
- title: string;
20
- snippet: string;
21
- position: number;
22
- metadata?: Record<string, unknown>;
23
- }
24
- export type DorkOperator = "site" | "filetype" | "inurl" | "intitle" | "intext" | "cache" | "related" | "info";
25
- export interface DorkQuery {
26
- operator: DorkOperator;
27
- value: string;
28
- }
29
- //# sourceMappingURL=dork.types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dork.types.d.ts","sourceRoot":"","sources":["../../../../../shared/src/types/dork.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,UAAU,GACV,OAAO,GACP,SAAS,GACT,QAAQ,GACR,OAAO,GACP,SAAS,GACT,MAAM,CAAC;AAEX,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=dork.types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dork.types.js","sourceRoot":"","sources":["../../../../../shared/src/types/dork.types.ts"],"names":[],"mappings":""}
@@ -1,8 +0,0 @@
1
- export * from "./scrape.types";
2
- export * from "./crawl.types";
3
- export * from "./dork.types";
4
- export * from "./api.types";
5
- export * from "./client.types";
6
- export * from "./deal.types";
7
- export * from "./api-key.types";
8
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../shared/src/types/index.ts"],"names":[],"mappings":"AACA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC"}
@@ -1,9 +0,0 @@
1
- // Type exports
2
- export * from "./scrape.types";
3
- export * from "./crawl.types";
4
- export * from "./dork.types";
5
- export * from "./api.types";
6
- export * from "./client.types";
7
- export * from "./deal.types";
8
- export * from "./api-key.types";
9
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../shared/src/types/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC"}
@@ -1,151 +0,0 @@
1
- /** Screenshot configuration options */
2
- export interface ScreenshotOptions {
3
- /** Enable screenshot capture */
4
- enabled: boolean;
5
- /** Capture full page or viewport only (default: false = viewport) */
6
- fullPage?: boolean;
7
- /** Viewport width in pixels (default: 1280) */
8
- width?: number;
9
- /** Viewport height in pixels (default: 720) */
10
- height?: number;
11
- /** Image format (default: png) */
12
- format?: "png" | "jpeg" | "webp";
13
- /** JPEG/WebP quality 0-100 (default: 80) */
14
- quality?: number;
15
- }
16
- /** Screenshot result with metadata */
17
- export interface ScreenshotResult {
18
- /** Public URL to the screenshot */
19
- url: string;
20
- /** Screenshot width in pixels */
21
- width: number;
22
- /** Screenshot height in pixels */
23
- height: number;
24
- /** Image format */
25
- format: "png" | "jpeg" | "webp";
26
- /** File size in bytes */
27
- sizeBytes: number;
28
- }
29
- export interface ScrapeOptions {
30
- url?: string;
31
- headers?: Record<string, string>;
32
- timeout?: number;
33
- detectSignals?: boolean;
34
- extractWithAI?: boolean;
35
- /** Extract deal-specific information with AI */
36
- extractDeal?: boolean;
37
- /** Use advanced AI model for complex pages */
38
- useAdvancedModel?: boolean;
39
- /** Minimum deal score threshold (0-100) */
40
- minDealScore?: number;
41
- /** @deprecated Use screenshot.enabled instead */
42
- takeScreenshot?: boolean;
43
- /** Screenshot configuration */
44
- screenshot?: ScreenshotOptions;
45
- /** HTML tags to exclude from content (e.g., ["nav", "footer", "aside"]) */
46
- excludeTags?: string[];
47
- /** CSS selectors to exclude from content (e.g., [".sidebar", "#comments"]) */
48
- excludeSelectors?: string[];
49
- /** Only extract main content area (default: true) */
50
- onlyMainContent?: boolean;
51
- }
52
- /** Enhanced link metadata with internal/external classification */
53
- export interface LinkMetadata {
54
- /** Total number of links found */
55
- total: number;
56
- /** Internal links (same domain) */
57
- internal: string[];
58
- /** External links (different domain) */
59
- external: string[];
60
- }
61
- /** Enhanced image metadata */
62
- export interface ImageMetadata {
63
- /** Total number of images found */
64
- total: number;
65
- /** Image URLs */
66
- urls: string[];
67
- }
68
- /** OpenGraph metadata */
69
- export interface OpenGraphMetadata {
70
- title?: string;
71
- description?: string;
72
- image?: string;
73
- url?: string;
74
- siteName?: string;
75
- type?: string;
76
- locale?: string;
77
- localeAlternate?: string[];
78
- }
79
- export interface ParsedPage {
80
- url: string;
81
- /** Crawl depth (0 = start URL, 1 = first hop, etc.) */
82
- depth?: number;
83
- title?: string;
84
- description?: string;
85
- content?: string;
86
- /** Language of the page (from html lang attribute) */
87
- language?: string;
88
- /** @deprecated Use linksMetadata instead */
89
- links?: string[];
90
- /** Enhanced link metadata with internal/external classification */
91
- linksMetadata?: LinkMetadata;
92
- /** @deprecated Use imagesMetadata instead */
93
- images?: string[];
94
- /** Enhanced image metadata */
95
- imagesMetadata?: ImageMetadata;
96
- /** OpenGraph metadata */
97
- openGraph?: OpenGraphMetadata;
98
- /** Raw metadata (JSON-LD, microdata, etc.) */
99
- metadata?: Record<string, unknown>;
100
- /** HTTP status code */
101
- statusCode?: number;
102
- /** Crawl duration in milliseconds */
103
- crawlDurationMs?: number;
104
- signals?: Signal[];
105
- }
106
- export interface Signal {
107
- type: string;
108
- value: string;
109
- confidence: number;
110
- metadata?: Record<string, unknown>;
111
- }
112
- export interface DealScoreSummary {
113
- score: number;
114
- quality: "excellent" | "good" | "average" | "poor" | "very_poor";
115
- recommendation: "highly_recommended" | "recommended" | "consider" | "skip";
116
- breakdown: {
117
- discount: number;
118
- urgency: number;
119
- legitimacy: number;
120
- priceClarity: number;
121
- productInfo: number;
122
- };
123
- }
124
- export interface ScrapeResult {
125
- url: string;
126
- parsed: ParsedPage;
127
- signals: Signal[];
128
- aiExtraction?: AIExtraction;
129
- /** Deal extraction result from Phase 4 AI */
130
- dealExtraction?: import("./deal.types").ExtractedDeal;
131
- /** Deal quality score from AI */
132
- dealScore?: DealScoreSummary;
133
- /** Screenshot URL or base64 data */
134
- screenshot?: string;
135
- /** Screenshot metadata with dimensions and format */
136
- screenshotMetadata?: ScreenshotResult;
137
- scrapedAt: string;
138
- }
139
- export interface AIExtraction {
140
- summary?: string;
141
- entities?: Entity[];
142
- sentiment?: "positive" | "negative" | "neutral";
143
- topics?: string[];
144
- raw?: Record<string, unknown>;
145
- }
146
- export interface Entity {
147
- type: "person" | "organization" | "location" | "product" | "other";
148
- value: string;
149
- confidence: number;
150
- }
151
- //# sourceMappingURL=scrape.types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scrape.types.d.ts","sourceRoot":"","sources":["../../../../../shared/src/types/scrape.types.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=scrape.types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scrape.types.js","sourceRoot":"","sources":["../../../../../shared/src/types/scrape.types.ts"],"names":[],"mappings":""}
@@ -1,7 +0,0 @@
1
- export declare function now(): string;
2
- export declare function timestamp(): number;
3
- export declare function formatDuration(ms: number): string;
4
- export declare function startOfMonth(date?: Date): Date;
5
- export declare function endOfMonth(date?: Date): Date;
6
- export declare function isExpired(expiresAt: string | Date): boolean;
7
- //# sourceMappingURL=date.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../../../../shared/src/utils/date.ts"],"names":[],"mappings":"AAAA,wBAAgB,GAAG,IAAI,MAAM,CAE5B;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAKjD;AAED,wBAAgB,YAAY,CAAC,IAAI,GAAE,IAAiB,GAAG,IAAI,CAE1D;AAED,wBAAgB,UAAU,CAAC,IAAI,GAAE,IAAiB,GAAG,IAAI,CAExD;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAE3D"}
@@ -1,25 +0,0 @@
1
- export function now() {
2
- return new Date().toISOString();
3
- }
4
- export function timestamp() {
5
- return Date.now();
6
- }
7
- export function formatDuration(ms) {
8
- if (ms < 1000)
9
- return `${ms}ms`;
10
- if (ms < 60000)
11
- return `${(ms / 1000).toFixed(1)}s`;
12
- if (ms < 3600000)
13
- return `${Math.floor(ms / 60000)}m ${Math.floor((ms % 60000) / 1000)}s`;
14
- return `${Math.floor(ms / 3600000)}h ${Math.floor((ms % 3600000) / 60000)}m`;
15
- }
16
- export function startOfMonth(date = new Date()) {
17
- return new Date(date.getFullYear(), date.getMonth(), 1);
18
- }
19
- export function endOfMonth(date = new Date()) {
20
- return new Date(date.getFullYear(), date.getMonth() + 1, 0, 23, 59, 59, 999);
21
- }
22
- export function isExpired(expiresAt) {
23
- return new Date(expiresAt) < new Date();
24
- }
25
- //# sourceMappingURL=date.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"date.js","sourceRoot":"","sources":["../../../../../shared/src/utils/date.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,GAAG;IACjB,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAAU;IACvC,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,GAAG,EAAE,IAAI,CAAC;IAChC,IAAI,EAAE,GAAG,KAAK;QAAE,OAAO,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IACpD,IAAI,EAAE,GAAG,OAAO;QAAE,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC;IAC1F,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAa,IAAI,IAAI,EAAE;IAClD,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAa,IAAI,IAAI,EAAE;IAChD,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,SAAwB;IAChD,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;AAC1C,CAAC"}
@@ -1,4 +0,0 @@
1
- export declare function simpleHash(str: string): string;
2
- export declare function urlHash(url: string): string;
3
- export declare function generateId(prefix?: string): string;
4
- //# sourceMappingURL=hash.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../../../../shared/src/utils/hash.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQ9C;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI3C;AAED,wBAAgB,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAKlD"}
@@ -1,21 +0,0 @@
1
- export function simpleHash(str) {
2
- let hash = 0;
3
- for (let i = 0; i < str.length; i++) {
4
- const char = str.charCodeAt(i);
5
- hash = (hash << 5) - hash + char;
6
- hash = hash & hash; // Convert to 32bit integer
7
- }
8
- return Math.abs(hash).toString(36);
9
- }
10
- export function urlHash(url) {
11
- // Create a consistent hash for URL deduplication
12
- const normalized = url.toLowerCase().replace(/\/$/, "");
13
- return simpleHash(normalized);
14
- }
15
- export function generateId(prefix) {
16
- const random = Math.random().toString(36).substring(2, 15);
17
- const time = Date.now().toString(36);
18
- const id = `${time}${random}`;
19
- return prefix ? `${prefix}_${id}` : id;
20
- }
21
- //# sourceMappingURL=hash.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hash.js","sourceRoot":"","sources":["../../../../../shared/src/utils/hash.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAC,GAAW;IACpC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;QACjC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,2BAA2B;IACjD,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAW;IACjC,iDAAiD;IACjD,MAAM,UAAU,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACxD,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAe;IACxC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,EAAE,GAAG,GAAG,IAAI,GAAG,MAAM,EAAE,CAAC;IAC9B,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACzC,CAAC"}
@@ -1,7 +0,0 @@
1
- export * from "./url";
2
- export * from "./url-validator";
3
- export * from "./retry";
4
- export * from "./date";
5
- export * from "./hash";
6
- export * from "./logger";
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../shared/src/utils/index.ts"],"names":[],"mappings":"AACA,cAAc,OAAO,CAAC;AACtB,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC"}
@@ -1,8 +0,0 @@
1
- // Utility functions
2
- export * from "./url";
3
- export * from "./url-validator";
4
- export * from "./retry";
5
- export * from "./date";
6
- export * from "./hash";
7
- export * from "./logger";
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../shared/src/utils/index.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,cAAc,OAAO,CAAC;AACtB,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC"}
@@ -1,66 +0,0 @@
1
- /**
2
- * Professional structured logger for DealCrawl
3
- * - Environment-aware (verbose in dev, minimal in prod)
4
- * - Structured JSON output in production
5
- * - Colored console output in development
6
- * - Correlation ID support for request tracing
7
- */
8
- export type LogLevel = "debug" | "info" | "warn" | "error";
9
- export interface LogContext {
10
- /** Correlation/request ID for tracing */
11
- requestId?: string;
12
- /** Job ID for worker logs */
13
- jobId?: string;
14
- /** Client ID */
15
- clientId?: string;
16
- /** Operation being performed */
17
- operation?: string;
18
- /** Duration in ms */
19
- durationMs?: number;
20
- /** Any additional metadata */
21
- [key: string]: unknown;
22
- }
23
- declare class Logger {
24
- private service;
25
- private defaultContext;
26
- constructor(service: string, defaultContext?: LogContext);
27
- /**
28
- * Create a child logger with additional default context
29
- */
30
- child(context: LogContext): Logger;
31
- /**
32
- * Create a logger for a specific request/job
33
- */
34
- forRequest(requestId: string): Logger;
35
- forJob(jobId: string, clientId?: string): Logger;
36
- private log;
37
- private logDev;
38
- private logProd;
39
- debug(message: string, context?: LogContext): void;
40
- info(message: string, context?: LogContext): void;
41
- warn(message: string, context?: LogContext, error?: Error): void;
42
- error(message: string, error?: Error, context?: LogContext): void;
43
- /**
44
- * Log the start of an operation (returns a function to log completion with duration)
45
- */
46
- startOperation(operation: string, context?: LogContext): () => void;
47
- /**
48
- * Measure and log an async operation
49
- */
50
- measure<T>(operation: string, fn: () => Promise<T>, context?: LogContext): Promise<T>;
51
- /**
52
- * Log HTTP request (for API middleware)
53
- */
54
- request(method: string, path: string, statusCode: number, durationMs: number, context?: LogContext): void;
55
- /**
56
- * Log job progress
57
- */
58
- jobProgress(progress: number, step: string, context?: LogContext): void;
59
- }
60
- export declare const apiLogger: Logger;
61
- export declare const workerLogger: Logger;
62
- export declare const coreLogger: Logger;
63
- export declare const aiLogger: Logger;
64
- export declare function createLogger(service: string, defaultContext?: LogContext): Logger;
65
- export { Logger };
66
- //# sourceMappingURL=logger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../../../shared/src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,MAAM,WAAW,UAAU;IACzB,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gBAAgB;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qBAAqB;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAgJD,cAAM,MAAM;IACV,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAAa;gBAEvB,OAAO,EAAE,MAAM,EAAE,cAAc,GAAE,UAAe;IAK5D;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,UAAU,GAAG,MAAM;IAIlC;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAIrC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM;IAIhD,OAAO,CAAC,GAAG;IA0BX,OAAO,CAAC,MAAM;IA2Bd,OAAO,CAAC,OAAO;IAYf,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI;IAIlD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI;IAIjD,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI;IAIhE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI;IAMjE;;OAEG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,MAAM,IAAI;IAcnE;;OAEG;IACG,OAAO,CAAC,CAAC,EACb,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,CAAC,EAAE,UAAU,GACnB,OAAO,CAAC,CAAC,CAAC;IAwBb;;OAEG;IACH,OAAO,CACL,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,UAAU,GACnB,IAAI;IAUP;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI;CAMxE;AAGD,eAAO,MAAM,SAAS,QAAoB,CAAC;AAC3C,eAAO,MAAM,YAAY,QAAuB,CAAC;AACjD,eAAO,MAAM,UAAU,QAAqB,CAAC;AAC7C,eAAO,MAAM,QAAQ,QAAmB,CAAC;AAGzC,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,UAAU,GAC1B,MAAM,CAER;AAGD,OAAO,EAAE,MAAM,EAAE,CAAC"}