careerclaw-js 1.0.4 → 1.0.6

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/CHANGELOG.md CHANGED
@@ -10,6 +10,30 @@ Versioning follows [Semantic Versioning](https://semver.org/).
10
10
 
11
11
  ---
12
12
 
13
+ ## [1.0.6] - 2026-03-19
14
+
15
+ ### Fixed
16
+
17
+ - Triggered by the fast-xml-parser 5.5.7, upgrade (CVE-2026-33349),
18
+ which Entity Expansion Limits Bypassed When Set to Zero Due to JavaScript
19
+ Falsy Evaluation in fast-xml-parser
20
+
21
+ ---
22
+
23
+ ## [1.0.5] - 2026-03-18
24
+
25
+ ### Fixed
26
+
27
+ - Fixed hex and decimal numeric HTML entities (e.g. `/`, `/`) leaking
28
+ undecoded into job titles, descriptions, and outreach drafts
29
+ (`src/adapters/remoteok.ts`). Added generic catch-all decoding for both
30
+ `&#xHH;` and `&#DD;` forms before the named-entity block in `stripHtml`.
31
+ Triggered by the fast-xml-parser v5 upgrade (CVE-2026-26278), which stopped
32
+ silently pre-decoding entities inside CDATA content that v4 had handled
33
+ transparently.
34
+
35
+ ---
36
+
13
37
  ## [1.0.4] - 2026-03-08
14
38
 
15
39
  ### Changed
package/SKILL.md CHANGED
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: CareerClaw
3
- version: 1.0.4
3
+ version: 1.0.6
4
4
  description: >
5
5
  Run a job search briefing, find job matches, draft outreach emails,
6
6
  or track job applications. Triggers on: daily briefing, job search,
@@ -26,8 +26,8 @@ export declare function fetchRemoteOkJobs(): Promise<NormalizedJob[]>;
26
26
  */
27
27
  export declare function parseRss(xml: string): NormalizedJob[];
28
28
  /**
29
- * Strip HTML tags and decode common entities.
30
- * Intentionally minimal avoids a DOM/cheerio dependency.
29
+ * Clean HTML tags and decode entities.
30
+ * Shared by both RemoteOK (XML) and Hacker News (JSON).
31
31
  */
32
32
  export declare function stripHtml(html: string): string;
33
33
  /** SHA-256(text) → first 16 hex chars (matches Python job_id convention). */
@@ -1 +1 @@
1
- {"version":3,"file":"remoteok.d.ts","sourceRoot":"","sources":["../../src/adapters/remoteok.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AA+B5D,8DAA8D;AAC9D,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAiBlE;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,EAAE,CAqBrD;AAkHD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAoB9C;AAED,6EAA6E;AAC7E,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7C"}
1
+ {"version":3,"file":"remoteok.d.ts","sourceRoot":"","sources":["../../src/adapters/remoteok.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,cAAc,CAAC;AA+B5D,8DAA8D;AAC9D,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAiBlE;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,EAAE,CA0BrD;AAkHD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CA6B9C;AAED,6EAA6E;AAC7E,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7C"}
@@ -51,6 +51,12 @@ export function parseRss(xml) {
51
51
  const parser = new XMLParser({
52
52
  ignoreAttributes: false,
53
53
  cdataPropName: "__cdata",
54
+ processEntities: {
55
+ enabled: true,
56
+ // Increased to 50k to handle very large, HTML-heavy RSS feeds
57
+ maxTotalExpansions: 50000,
58
+ maxExpandedLength: 20 * 1024 * 1024, // 20MB
59
+ },
54
60
  isArray: (_name, jpath) => jpath === "rss.channel.item",
55
61
  });
56
62
  const feed = parser.parse(xml);
@@ -64,7 +70,6 @@ export function parseRss(xml) {
64
70
  return [normaliseItem(item, fetched_at)];
65
71
  }
66
72
  catch {
67
- // Skip malformed items rather than aborting the whole feed
68
73
  return [];
69
74
  }
70
75
  });
@@ -169,15 +174,23 @@ function parsePubDate(raw) {
169
174
  // Shared utilities
170
175
  // ---------------------------------------------------------------------------
171
176
  /**
172
- * Strip HTML tags and decode common entities.
173
- * Intentionally minimal avoids a DOM/cheerio dependency.
177
+ * Clean HTML tags and decode entities.
178
+ * Shared by both RemoteOK (XML) and Hacker News (JSON).
174
179
  */
175
180
  export function stripHtml(html) {
181
+ if (!html)
182
+ return "";
176
183
  return html
184
+ // 1. Handle common block elements for readable spacing
177
185
  .replace(/<br\s*\/?>/gi, "\n")
178
- .replace(/<p[^>]*>/gi, "\n") // opening <p> → newline (creates split point)
186
+ .replace(/<p[^>]*>/gi, "\n")
179
187
  .replace(/<\/p>/gi, "")
188
+ // 2. Strip all remaining tags
180
189
  .replace(/<[^>]+>/g, "")
190
+ // 3. Decode numeric entities first (hex and decimal) — catches &#x2F;, &#47;, etc.
191
+ .replace(/&#x([0-9a-fA-F]+);/gi, (_, hex) => String.fromCodePoint(parseInt(hex, 16)))
192
+ .replace(/&#(\d+);/g, (_, dec) => String.fromCodePoint(parseInt(dec, 10)))
193
+ // 4. Decode named entities (Essential for HN JSON data)
181
194
  .replace(/&amp;/g, "&")
182
195
  .replace(/&lt;/g, "<")
183
196
  .replace(/&gt;/g, ">")
@@ -185,9 +198,8 @@ export function stripHtml(html) {
185
198
  .replace(/&#x27;/g, "'")
186
199
  .replace(/&#39;/g, "'")
187
200
  .replace(/&apos;/g, "'")
188
- .replace(/&#x2F;/gi, "/")
189
- .replace(/&#x([0-9a-f]{1,6});/gi, (_, hex) => String.fromCodePoint(parseInt(hex, 16)))
190
201
  .replace(/&nbsp;/g, " ")
202
+ // 4. Final whitespace cleanup
191
203
  .replace(/\n{3,}/g, "\n\n")
192
204
  .trim();
193
205
  }
@@ -203,9 +215,10 @@ function coerceString(val) {
203
215
  return val;
204
216
  if (typeof val === "number")
205
217
  return String(val);
206
- // CDATA objects from fast-xml-parser
218
+ // Handing CDATA objects returned by the parser
207
219
  if (typeof val === "object" && val !== null && "__cdata" in val) {
208
- return String(val["__cdata"] ?? "");
220
+ const cdata = val["__cdata"];
221
+ return Array.isArray(cdata) ? cdata.join("") : String(cdata ?? "");
209
222
  }
210
223
  return "";
211
224
  }
@@ -1 +1 @@
1
- {"version":3,"file":"remoteok.js","sourceRoot":"","sources":["../../src/adapters/remoteok.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remoteok.js","sourceRoot":"","sources":["../../src/adapters/remoteok.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -19,7 +19,7 @@ export declare const HTTP_TIMEOUT_MS = 15000;
19
19
  * User-Agent sent with all outbound requests.
20
20
  * Identifies the tool and provides a contact point per robots.txt convention.
21
21
  */
22
- export declare const USER_AGENT = "careerclaw-js/1.0.4 (https://github.com/orestes-garcia-martinez/careerclaw-js)";
22
+ export declare const USER_AGENT = "careerclaw-js/1.0.6 (https://github.com/orestes-garcia-martinez/careerclaw-js)";
23
23
  /** RemoteOK RSS feed — public, no auth required. */
24
24
  export declare const REMOTEOK_RSS_URL = "https://remoteok.com/remote-jobs.rss";
25
25
  /**
package/dist/config.js CHANGED
@@ -34,7 +34,7 @@ export const HTTP_TIMEOUT_MS = 15_000;
34
34
  * User-Agent sent with all outbound requests.
35
35
  * Identifies the tool and provides a contact point per robots.txt convention.
36
36
  */
37
- export const USER_AGENT = "careerclaw-js/1.0.4 (https://github.com/orestes-garcia-martinez/careerclaw-js)";
37
+ export const USER_AGENT = "careerclaw-js/1.0.6 (https://github.com/orestes-garcia-martinez/careerclaw-js)";
38
38
  // ---------------------------------------------------------------------------
39
39
  // Job sources
40
40
  // ---------------------------------------------------------------------------
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "careerclaw-js",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
4
4
  "description": "AI-powered job search automation for OpenClaw — Node.js rewrite of CareerClaw",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -54,6 +54,6 @@
54
54
  "vitest": "^2.0.0"
55
55
  },
56
56
  "dependencies": {
57
- "fast-xml-parser": "^5.4.2"
57
+ "fast-xml-parser": "^5.5.7"
58
58
  }
59
59
  }