@ozzylabs/feedradar 0.1.3 → 0.1.5
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/README.ja.md +31 -6
- package/README.md +31 -6
- package/dist/agents/claude-code.d.ts +12 -1
- package/dist/agents/claude-code.d.ts.map +1 -1
- package/dist/agents/claude-code.js +9 -5
- package/dist/agents/claude-code.js.map +1 -1
- package/dist/agents/codex-cli.d.ts +7 -1
- package/dist/agents/codex-cli.d.ts.map +1 -1
- package/dist/agents/codex-cli.js +9 -5
- package/dist/agents/codex-cli.js.map +1 -1
- package/dist/agents/copilot.d.ts +7 -1
- package/dist/agents/copilot.d.ts.map +1 -1
- package/dist/agents/copilot.js +9 -5
- package/dist/agents/copilot.js.map +1 -1
- package/dist/agents/gemini-cli.d.ts +7 -1
- package/dist/agents/gemini-cli.d.ts.map +1 -1
- package/dist/agents/gemini-cli.js +9 -5
- package/dist/agents/gemini-cli.js.map +1 -1
- package/dist/agents/index.d.ts +1 -1
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/types.d.ts +33 -0
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/cli/_progress.d.ts +138 -0
- package/dist/cli/_progress.d.ts.map +1 -0
- package/dist/cli/_progress.js +176 -0
- package/dist/cli/_progress.js.map +1 -0
- package/dist/cli/doctor.d.ts +20 -0
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +291 -2
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/research.d.ts +18 -20
- package/dist/cli/research.d.ts.map +1 -1
- package/dist/cli/research.js +318 -203
- package/dist/cli/research.js.map +1 -1
- package/dist/cli/respawn.d.ts +53 -0
- package/dist/cli/respawn.d.ts.map +1 -0
- package/dist/cli/respawn.js +120 -0
- package/dist/cli/respawn.js.map +1 -0
- package/dist/cli/review.d.ts +7 -0
- package/dist/cli/review.d.ts.map +1 -1
- package/dist/cli/review.js +46 -1
- package/dist/cli/review.js.map +1 -1
- package/dist/cli/source.d.ts +23 -2
- package/dist/cli/source.d.ts.map +1 -1
- package/dist/cli/source.js +425 -7
- package/dist/cli/source.js.map +1 -1
- package/dist/cli/update.d.ts +7 -0
- package/dist/cli/update.d.ts.map +1 -1
- package/dist/cli/update.js +41 -1
- package/dist/cli/update.js.map +1 -1
- package/dist/cli/watch.d.ts.map +1 -1
- package/dist/cli/watch.js +65 -3
- package/dist/cli/watch.js.map +1 -1
- package/dist/cli/workflow/generate-combined.d.ts +100 -0
- package/dist/cli/workflow/generate-combined.d.ts.map +1 -0
- package/dist/cli/workflow/generate-combined.js +387 -0
- package/dist/cli/workflow/generate-combined.js.map +1 -0
- package/dist/cli/workflow/generate-watch.d.ts +142 -0
- package/dist/cli/workflow/generate-watch.d.ts.map +1 -0
- package/dist/cli/workflow/generate-watch.js +338 -0
- package/dist/cli/workflow/generate-watch.js.map +1 -0
- package/dist/cli/workflow.d.ts +29 -0
- package/dist/cli/workflow.d.ts.map +1 -0
- package/dist/cli/workflow.js +66 -0
- package/dist/cli/workflow.js.map +1 -0
- package/dist/core/feeds/_fetch.d.ts +103 -0
- package/dist/core/feeds/_fetch.d.ts.map +1 -0
- package/dist/core/feeds/_fetch.js +364 -0
- package/dist/core/feeds/_fetch.js.map +1 -0
- package/dist/core/feeds/_jsonpath.d.ts +57 -0
- package/dist/core/feeds/_jsonpath.d.ts.map +1 -0
- package/dist/core/feeds/_jsonpath.js +207 -0
- package/dist/core/feeds/_jsonpath.js.map +1 -0
- package/dist/core/feeds/github-api.d.ts.map +1 -1
- package/dist/core/feeds/github-api.js +2 -1
- package/dist/core/feeds/github-api.js.map +1 -1
- package/dist/core/feeds/html-js.d.ts +29 -0
- package/dist/core/feeds/html-js.d.ts.map +1 -1
- package/dist/core/feeds/html-js.js +86 -2
- package/dist/core/feeds/html-js.js.map +1 -1
- package/dist/core/feeds/html.d.ts.map +1 -1
- package/dist/core/feeds/html.js +2 -1
- package/dist/core/feeds/html.js.map +1 -1
- package/dist/core/feeds/index.d.ts +1 -1
- package/dist/core/feeds/index.d.ts.map +1 -1
- package/dist/core/feeds/index.js +4 -0
- package/dist/core/feeds/index.js.map +1 -1
- package/dist/core/feeds/json-api.d.ts +3 -0
- package/dist/core/feeds/json-api.d.ts.map +1 -0
- package/dist/core/feeds/json-api.js +723 -0
- package/dist/core/feeds/json-api.js.map +1 -0
- package/dist/core/feeds/json-feed.d.ts +11 -0
- package/dist/core/feeds/json-feed.d.ts.map +1 -0
- package/dist/core/feeds/json-feed.js +242 -0
- package/dist/core/feeds/json-feed.js.map +1 -0
- package/dist/core/feeds/npm-registry.d.ts.map +1 -1
- package/dist/core/feeds/npm-registry.js +2 -1
- package/dist/core/feeds/npm-registry.js.map +1 -1
- package/dist/core/feeds/rss.d.ts.map +1 -1
- package/dist/core/feeds/rss.js +2 -1
- package/dist/core/feeds/rss.js.map +1 -1
- package/dist/core/feeds/types.d.ts +123 -0
- package/dist/core/feeds/types.d.ts.map +1 -1
- package/dist/core/progress.d.ts +101 -0
- package/dist/core/progress.d.ts.map +1 -0
- package/dist/core/progress.js +212 -0
- package/dist/core/progress.js.map +1 -0
- package/dist/core/proxy.d.ts +87 -0
- package/dist/core/proxy.d.ts.map +1 -0
- package/dist/core/proxy.js +146 -0
- package/dist/core/proxy.js.map +1 -0
- package/dist/core/recipes.d.ts +138 -0
- package/dist/core/recipes.d.ts.map +1 -0
- package/dist/core/recipes.js +238 -0
- package/dist/core/recipes.js.map +1 -0
- package/dist/core/watcher.d.ts +61 -1
- package/dist/core/watcher.d.ts.map +1 -1
- package/dist/core/watcher.js +99 -2
- package/dist/core/watcher.js.map +1 -1
- package/dist/index.js +17 -4
- package/dist/index.js.map +1 -1
- package/dist/recipes/aws-whats-new.yaml +61 -0
- package/dist/recipes/dev-to.yaml +40 -0
- package/dist/schemas/index.d.ts +1 -0
- package/dist/schemas/index.d.ts.map +1 -1
- package/dist/schemas/index.js +1 -0
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/recipe.d.ts +115 -0
- package/dist/schemas/recipe.d.ts.map +1 -0
- package/dist/schemas/recipe.js +54 -0
- package/dist/schemas/recipe.js.map +1 -0
- package/dist/schemas/source.d.ts +130 -0
- package/dist/schemas/source.d.ts.map +1 -1
- package/dist/schemas/source.js +130 -0
- package/dist/schemas/source.js.map +1 -1
- package/dist/templates/agents/AGENTS.md +31 -3
- package/dist/templates/feedradar.md +23 -8
- package/dist/templates/workflows/combined.template.yaml.tmpl +110 -0
- package/dist/templates/workflows/watch.template.yaml.tmpl +103 -0
- package/dist/templates/workflows/watch.yaml +5 -1
- package/package.json +2 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-api.js","sourceRoot":"","sources":["../../../src/core/feeds/json-api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Item, Source } from "../../schemas/index.js";
|
|
2
|
+
import type { FeedAdapter } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Parse a single JSON Feed document into `Item[]` (no pagination). Exposed
|
|
5
|
+
* for unit tests so fixtures can exercise the parser without a fetch stub.
|
|
6
|
+
*/
|
|
7
|
+
export declare function parseJsonFeed(body: string, source: Source, fetchedAt: string): Item[];
|
|
8
|
+
/** Extract `next_url` if it is a non-empty string; ignore non-string / empty. */
|
|
9
|
+
export declare function extractNextUrl(body: string): string | undefined;
|
|
10
|
+
export declare const jsonFeedAdapter: FeedAdapter;
|
|
11
|
+
//# sourceMappingURL=json-feed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-feed.d.ts","sourceRoot":"","sources":["../../../src/core/feeds/json-feed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAI3D,OAAO,KAAK,EAAE,WAAW,EAAiC,MAAM,YAAY,CAAC;AA4J7E;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,CAkBrF;AAED,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAO/D;AAgCD,eAAO,MAAM,eAAe,EAAE,WAqD7B,CAAC"}
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
import { ItemSchema } from "../../schemas/index.js";
|
|
2
|
+
import { fetchWithRetry } from "./_fetch.js";
|
|
3
|
+
import { deriveItemId, deriveStableKey } from "./derive-id.js";
|
|
4
|
+
/**
|
|
5
|
+
* `kind: json-feed` adapter — JSON Feed 1.0 / 1.1 zero-config parser.
|
|
6
|
+
*
|
|
7
|
+
* JSON Feed (https://jsonfeed.org/version/1.1) is a standardized JSON-based
|
|
8
|
+
* feed format. Because it is a real standard with a fixed schema, a single
|
|
9
|
+
* adapter can handle every conforming site with **URL only** — no recipe,
|
|
10
|
+
* no per-site config (ADR-0012 L0 tier, alongside `kind: rss`).
|
|
11
|
+
*
|
|
12
|
+
* What this adapter handles:
|
|
13
|
+
* - JSON Feed 1.0 (`version: "https://jsonfeed.org/version/1"`) and 1.1
|
|
14
|
+
* (`"https://jsonfeed.org/version/1.1"`). Both share the same item shape,
|
|
15
|
+
* so version is only validated up-front for fail-fast safety.
|
|
16
|
+
* - `items[].{id, url, title, content_text, content_html, date_published,
|
|
17
|
+
* tags}` — the fields downstream filters / research / dedup actually use.
|
|
18
|
+
* - `next_url` pagination: when present, we follow links transitively up to
|
|
19
|
+
* `MAX_PAGES` to gather full history in a single fetch round.
|
|
20
|
+
*
|
|
21
|
+
* What is intentionally NOT handled:
|
|
22
|
+
* - JSON Feed extensions (`_*` keys, `author`, `attachments`, …). The full
|
|
23
|
+
* payload is preserved in `Item.raw` so future code can grow into them
|
|
24
|
+
* without breaking persisted state.
|
|
25
|
+
* - HTTP `next_url` cycles or unbounded chains — both are bounded by
|
|
26
|
+
* `MAX_PAGES` to keep memory and rate-limit usage predictable.
|
|
27
|
+
*/
|
|
28
|
+
const USER_AGENT = "feedradar/0.0.0 (+https://github.com/ozzy-labs/feedradar)";
|
|
29
|
+
/**
|
|
30
|
+
* Page-traversal cap for `next_url`. Each page is a single JSON parse + items
|
|
31
|
+
* loop, so 50 pages with the default ~100 items/page is well below the OOM
|
|
32
|
+
* threshold while still covering history-heavy personal blogs in one fetch.
|
|
33
|
+
* Higher caps belong behind the `--backfill` flag (#173) when it lands.
|
|
34
|
+
*/
|
|
35
|
+
const MAX_PAGES = 50;
|
|
36
|
+
/**
|
|
37
|
+
* Accepted `version` URIs. JSON Feed has only ever published 1.0 and 1.1;
|
|
38
|
+
* both share the item schema fields this adapter reads, so we accept either.
|
|
39
|
+
* Anything else (typo, `application/json` mistakenly served, future major
|
|
40
|
+
* version) is rejected so we fail fast instead of silently producing junk.
|
|
41
|
+
*/
|
|
42
|
+
const VERSION_PREFIX = "https://jsonfeed.org/version/";
|
|
43
|
+
/** Treat empty / whitespace-only strings as missing, like other adapters do. */
|
|
44
|
+
function asString(value) {
|
|
45
|
+
if (typeof value !== "string")
|
|
46
|
+
return undefined;
|
|
47
|
+
const trimmed = value.trim();
|
|
48
|
+
return trimmed.length === 0 ? undefined : trimmed;
|
|
49
|
+
}
|
|
50
|
+
/** Normalize `tags` to a `string[]`, dropping non-string entries silently. */
|
|
51
|
+
function asTags(value) {
|
|
52
|
+
if (!Array.isArray(value))
|
|
53
|
+
return [];
|
|
54
|
+
return value.map((t) => (typeof t === "string" ? t.trim() : "")).filter((t) => t.length > 0);
|
|
55
|
+
}
|
|
56
|
+
/** Parse `date_published` (ISO 8601 per spec) into our canonical ISO string. */
|
|
57
|
+
function toIsoDate(value) {
|
|
58
|
+
const s = asString(value);
|
|
59
|
+
if (!s)
|
|
60
|
+
return undefined;
|
|
61
|
+
const date = new Date(s);
|
|
62
|
+
if (Number.isNaN(date.getTime()))
|
|
63
|
+
return undefined;
|
|
64
|
+
return date.toISOString();
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Validate the top-level `version` field. Returns `true` for the two
|
|
68
|
+
* published versions, `false` for anything else (including missing).
|
|
69
|
+
*
|
|
70
|
+
* We do strict equality on the canonical version URIs rather than a prefix
|
|
71
|
+
* match because the spec defines exactly two values; a future 2.0 will need
|
|
72
|
+
* an explicit code change here so we never quietly mis-parse.
|
|
73
|
+
*/
|
|
74
|
+
function isAcceptedVersion(value) {
|
|
75
|
+
const s = asString(value);
|
|
76
|
+
if (!s)
|
|
77
|
+
return false;
|
|
78
|
+
return s === `${VERSION_PREFIX}1` || s === `${VERSION_PREFIX}1.1`;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Normalize one JSON Feed item into our canonical `Item`.
|
|
82
|
+
*
|
|
83
|
+
* Stable id derivation follows ADR-0002 §"Item ID 派生のコントラクト":
|
|
84
|
+
* - `publisherId`: `item.id` — JSON Feed spec mandates this is unique per
|
|
85
|
+
* item, so it is the strongest identity signal we have.
|
|
86
|
+
* - `url`: `item.url` — preferred fallback when `id` is missing (some
|
|
87
|
+
* real-world feeds skip `id` even though spec requires it; we mirror
|
|
88
|
+
* the lenient parsing of mainstream readers).
|
|
89
|
+
* - Title slug: prefer `item.title`; spec marks it optional so we tolerate
|
|
90
|
+
* missing titles and fall through to hash-only id via `deriveItemId`.
|
|
91
|
+
*/
|
|
92
|
+
function itemToItem(raw, source, fetchedAt) {
|
|
93
|
+
const id = asString(raw.id);
|
|
94
|
+
const url = asString(raw.url);
|
|
95
|
+
if (!url)
|
|
96
|
+
return null; // Item.url is required by our schema (z.string().url()).
|
|
97
|
+
const title = asString(raw.title) ?? "";
|
|
98
|
+
// content_html wins over content_text when both are present (per issue
|
|
99
|
+
// #177 spec). When only one exists, use that one. Falling back to
|
|
100
|
+
// `summary` keeps short-form feeds (microblogs) from producing empty items.
|
|
101
|
+
const html = asString(raw.content_html);
|
|
102
|
+
const text = asString(raw.content_text);
|
|
103
|
+
const summary = html ?? text ?? asString(raw.summary);
|
|
104
|
+
const publishedAt = toIsoDate(raw.date_published);
|
|
105
|
+
// Normalize `tags` defensively (drop non-strings, trim, drop empties) so a
|
|
106
|
+
// malformed `tags` array does not poison the downstream `raw` consumers.
|
|
107
|
+
// The Item schema does not yet surface a structured `tags` field, so the
|
|
108
|
+
// normalized value lives inside `raw` for now; ADR-0006 marks tag-filter
|
|
109
|
+
// routing as a future extension. See issue #177.
|
|
110
|
+
const tags = asTags(raw.tags);
|
|
111
|
+
const normalizedRaw = { ...raw, tags };
|
|
112
|
+
const stableKey = deriveStableKey({
|
|
113
|
+
publisherId: id,
|
|
114
|
+
url,
|
|
115
|
+
fallbackHashInputs: [title, publishedAt],
|
|
116
|
+
});
|
|
117
|
+
const itemId = deriveItemId(title, stableKey);
|
|
118
|
+
const candidate = {
|
|
119
|
+
id: itemId,
|
|
120
|
+
sourceId: source.id,
|
|
121
|
+
title,
|
|
122
|
+
url,
|
|
123
|
+
summary,
|
|
124
|
+
publishedAt,
|
|
125
|
+
fetchedAt,
|
|
126
|
+
raw: normalizedRaw,
|
|
127
|
+
};
|
|
128
|
+
// Items that fail validation (malformed URL etc.) are dropped silently — the
|
|
129
|
+
// alternative is failing the whole feed for one bad entry, which surprises
|
|
130
|
+
// users running large feeds where one broken entry is common.
|
|
131
|
+
const result = ItemSchema.safeParse(candidate);
|
|
132
|
+
return result.success ? result.data : null;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Parse a single JSON Feed document into `Item[]` (no pagination). Exposed
|
|
136
|
+
* for unit tests so fixtures can exercise the parser without a fetch stub.
|
|
137
|
+
*/
|
|
138
|
+
export function parseJsonFeed(body, source, fetchedAt) {
|
|
139
|
+
let doc;
|
|
140
|
+
try {
|
|
141
|
+
doc = JSON.parse(body);
|
|
142
|
+
}
|
|
143
|
+
catch (e) {
|
|
144
|
+
throw new Error(`json-feed adapter: failed to parse JSON: ${e instanceof Error ? e.message : String(e)}`);
|
|
145
|
+
}
|
|
146
|
+
if (!isAcceptedVersion(doc.version)) {
|
|
147
|
+
throw new Error(`json-feed adapter: unsupported or missing 'version' field (expected ${VERSION_PREFIX}1 or ${VERSION_PREFIX}1.1)`);
|
|
148
|
+
}
|
|
149
|
+
const items = Array.isArray(doc.items) ? doc.items : [];
|
|
150
|
+
return items
|
|
151
|
+
.map((entry) => itemToItem(entry, source, fetchedAt))
|
|
152
|
+
.filter((i) => i !== null);
|
|
153
|
+
}
|
|
154
|
+
/** Extract `next_url` if it is a non-empty string; ignore non-string / empty. */
|
|
155
|
+
export function extractNextUrl(body) {
|
|
156
|
+
try {
|
|
157
|
+
const doc = JSON.parse(body);
|
|
158
|
+
return asString(doc.next_url);
|
|
159
|
+
}
|
|
160
|
+
catch {
|
|
161
|
+
return undefined;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Issue an HTTP GET with conditional headers, honoring previously stored
|
|
166
|
+
* `ETag` / `Last-Modified` so well-behaved servers can reply 304 and let us
|
|
167
|
+
* skip parsing work. Shared fetch wrapper supplies timeout + retry.
|
|
168
|
+
*/
|
|
169
|
+
async function fetchJsonFeed(url, fetchImpl, options = {}) {
|
|
170
|
+
const headers = {
|
|
171
|
+
accept: "application/feed+json, application/json;q=0.9, */*;q=0.5",
|
|
172
|
+
"user-agent": USER_AGENT,
|
|
173
|
+
};
|
|
174
|
+
if (options.etag)
|
|
175
|
+
headers["if-none-match"] = options.etag;
|
|
176
|
+
if (options.lastModified)
|
|
177
|
+
headers["if-modified-since"] = options.lastModified;
|
|
178
|
+
const response = await fetchWithRetry(fetchImpl, url, { headers, signal: options.signal });
|
|
179
|
+
const etag = response.headers.get("etag");
|
|
180
|
+
const lastModified = response.headers.get("last-modified");
|
|
181
|
+
if (response.status === 304) {
|
|
182
|
+
return { status: 304, body: "", etag, lastModified };
|
|
183
|
+
}
|
|
184
|
+
if (response.status < 200 || response.status >= 300) {
|
|
185
|
+
throw new Error(`json-feed adapter: HTTP ${response.status} from ${url}`);
|
|
186
|
+
}
|
|
187
|
+
const body = await response.text();
|
|
188
|
+
return { status: response.status, body, etag, lastModified };
|
|
189
|
+
}
|
|
190
|
+
export const jsonFeedAdapter = {
|
|
191
|
+
kind: "json-feed",
|
|
192
|
+
fetch: async (source, options = {}) => {
|
|
193
|
+
const fetchImpl = options.fetch ?? globalThis.fetch;
|
|
194
|
+
if (typeof fetchImpl !== "function") {
|
|
195
|
+
throw new Error("json-feed adapter: no fetch implementation available (Node 22+ required)");
|
|
196
|
+
}
|
|
197
|
+
const previous = options.state;
|
|
198
|
+
const fetchedAt = new Date().toISOString();
|
|
199
|
+
// First page uses conditional headers; subsequent pages do not (the
|
|
200
|
+
// server-side `next_url` chain is page-specific, not feed-wide, so a 304
|
|
201
|
+
// would be meaningless after the first hop).
|
|
202
|
+
const response = await fetchJsonFeed(source.url, fetchImpl, {
|
|
203
|
+
etag: previous?.lastEtag,
|
|
204
|
+
lastModified: previous?.lastModified,
|
|
205
|
+
});
|
|
206
|
+
if (response.status === 304) {
|
|
207
|
+
return {
|
|
208
|
+
items: [],
|
|
209
|
+
notModified: true,
|
|
210
|
+
state: {
|
|
211
|
+
lastFetchedAt: fetchedAt,
|
|
212
|
+
lastEtag: response.etag ?? previous?.lastEtag,
|
|
213
|
+
lastModified: response.lastModified ?? previous?.lastModified,
|
|
214
|
+
},
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
const collected = parseJsonFeed(response.body, source, fetchedAt);
|
|
218
|
+
let nextUrl = extractNextUrl(response.body);
|
|
219
|
+
const visited = new Set([source.url]);
|
|
220
|
+
let pages = 1;
|
|
221
|
+
while (nextUrl && pages < MAX_PAGES && !visited.has(nextUrl)) {
|
|
222
|
+
visited.add(nextUrl);
|
|
223
|
+
const pageResponse = await fetchJsonFeed(nextUrl, fetchImpl);
|
|
224
|
+
// 304 has no body so we just stop walking the chain.
|
|
225
|
+
if (pageResponse.status === 304)
|
|
226
|
+
break;
|
|
227
|
+
const pageItems = parseJsonFeed(pageResponse.body, source, fetchedAt);
|
|
228
|
+
collected.push(...pageItems);
|
|
229
|
+
nextUrl = extractNextUrl(pageResponse.body);
|
|
230
|
+
pages += 1;
|
|
231
|
+
}
|
|
232
|
+
return {
|
|
233
|
+
items: collected,
|
|
234
|
+
state: {
|
|
235
|
+
lastFetchedAt: fetchedAt,
|
|
236
|
+
lastEtag: response.etag ?? previous?.lastEtag,
|
|
237
|
+
lastModified: response.lastModified ?? previous?.lastModified,
|
|
238
|
+
},
|
|
239
|
+
};
|
|
240
|
+
},
|
|
241
|
+
};
|
|
242
|
+
//# sourceMappingURL=json-feed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-feed.js","sourceRoot":"","sources":["../../../src/core/feeds/json-feed.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npm-registry.d.ts","sourceRoot":"","sources":["../../../src/core/feeds/npm-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"npm-registry.d.ts","sourceRoot":"","sources":["../../../src/core/feeds/npm-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAI3D,OAAO,KAAK,EAAE,WAAW,EAAiC,MAAM,YAAY,CAAC;AAsB7E;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAqBrE;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE5D;AA8DD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,IAAI,EAAE,CAiBR;AAkCD,eAAO,MAAM,kBAAkB,EAAE,WAwChC,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ItemSchema } from "../../schemas/index.js";
|
|
2
|
+
import { fetchWithRetry } from "./_fetch.js";
|
|
2
3
|
import { deriveItemId, deriveStableKey } from "./derive-id.js";
|
|
3
4
|
const USER_AGENT = "feedradar/0.0.0 (+https://github.com/ozzy-labs/feedradar)";
|
|
4
5
|
const REGISTRY_BASE = "https://registry.npmjs.org";
|
|
@@ -146,7 +147,7 @@ async function fetchPackument(url, fetchImpl, options = {}) {
|
|
|
146
147
|
};
|
|
147
148
|
if (options.etag)
|
|
148
149
|
headers["if-none-match"] = options.etag;
|
|
149
|
-
const response = await fetchImpl
|
|
150
|
+
const response = await fetchWithRetry(fetchImpl, url, { headers, signal: options.signal });
|
|
150
151
|
const etag = response.headers.get("etag");
|
|
151
152
|
if (response.status === 304) {
|
|
152
153
|
return { status: 304, body: "", etag };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npm-registry.js","sourceRoot":"","sources":["../../../src/core/feeds/npm-registry.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"npm-registry.js","sourceRoot":"","sources":["../../../src/core/feeds/npm-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rss.d.ts","sourceRoot":"","sources":["../../../src/core/feeds/rss.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"rss.d.ts","sourceRoot":"","sources":["../../../src/core/feeds/rss.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAI3D,OAAO,KAAK,EAAE,WAAW,EAAiC,MAAM,YAAY,CAAC;AAyJ7E;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,CAsCnF;AAgCD,eAAO,MAAM,UAAU,EAAE,WAkCxB,CAAC"}
|
package/dist/core/feeds/rss.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { XMLParser } from "fast-xml-parser";
|
|
2
2
|
import { ItemSchema } from "../../schemas/index.js";
|
|
3
|
+
import { fetchWithRetry } from "./_fetch.js";
|
|
3
4
|
import { deriveItemId, deriveStableKey } from "./derive-id.js";
|
|
4
5
|
const USER_AGENT = "feedradar/0.0.0 (+https://github.com/ozzy-labs/feedradar)";
|
|
5
6
|
/** Coerce an `fast-xml-parser` text-or-object to a plain string. */
|
|
@@ -172,7 +173,7 @@ async function fetchFeed(url, fetchImpl, options = {}) {
|
|
|
172
173
|
headers["if-none-match"] = options.etag;
|
|
173
174
|
if (options.lastModified)
|
|
174
175
|
headers["if-modified-since"] = options.lastModified;
|
|
175
|
-
const response = await fetchImpl
|
|
176
|
+
const response = await fetchWithRetry(fetchImpl, url, { headers, signal: options.signal });
|
|
176
177
|
const etag = response.headers.get("etag");
|
|
177
178
|
const lastModified = response.headers.get("last-modified");
|
|
178
179
|
if (response.status === 304) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rss.js","sourceRoot":"","sources":["../../../src/core/feeds/rss.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"rss.js","sourceRoot":"","sources":["../../../src/core/feeds/rss.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Item, Source, SourceState } from "../../schemas/index.js";
|
|
2
|
+
import type { ProgressReporter } from "../progress.js";
|
|
2
3
|
/**
|
|
3
4
|
* Minimal `fetch` signature an adapter needs.
|
|
4
5
|
*
|
|
@@ -16,6 +17,40 @@ export type FetchLike = (input: string | URL, init?: {
|
|
|
16
17
|
};
|
|
17
18
|
text(): Promise<string>;
|
|
18
19
|
}>;
|
|
20
|
+
/**
|
|
21
|
+
* Per-fetch diagnostic information surfaced by an adapter for tooling
|
|
22
|
+
* (`radar source test --show-content`), never persisted to state/items.
|
|
23
|
+
*
|
|
24
|
+
* Currently used by `kind: json-api` to expose which fallback selector
|
|
25
|
+
* matched per field (so users can audit the default-chain decision) and how
|
|
26
|
+
* pagination would advance (`Link` header / `nextCursor` extraction) without
|
|
27
|
+
* the dry-run actually walking past page 0.
|
|
28
|
+
*/
|
|
29
|
+
export interface FeedFetchDiag {
|
|
30
|
+
/**
|
|
31
|
+
* For each output field (`items`, `title`, `link`, `publishedAt`,
|
|
32
|
+
* `summary`), the JSONPath expression the adapter ended up using. The
|
|
33
|
+
* value is either the path from the recipe (when explicit) or a default
|
|
34
|
+
* chain candidate (when fallback). `null` means "all candidates returned
|
|
35
|
+
* undefined" — useful for debugging totally-unmapped fields.
|
|
36
|
+
*/
|
|
37
|
+
selectorAdoption?: Record<string, string | null>;
|
|
38
|
+
/**
|
|
39
|
+
* Pagination preview surfaced from page 0 only. Lets `source test` show
|
|
40
|
+
* whether the recipe's `pagination` block would advance correctly without
|
|
41
|
+
* actually fetching page 1 (which would mutate state on real runs).
|
|
42
|
+
*/
|
|
43
|
+
paginationPreview?: {
|
|
44
|
+
/** The pagination strategy declared by the recipe. */
|
|
45
|
+
strategy: string;
|
|
46
|
+
/** Computed next-page URL (or null when traversal would end here). */
|
|
47
|
+
nextUrl: string | null;
|
|
48
|
+
/** `Link: <...>; rel="next"` parse result, when strategy is `link-header`. */
|
|
49
|
+
linkHeaderNext?: string | null;
|
|
50
|
+
/** Cursor / token value extracted from `nextCursorPath`, when applicable. */
|
|
51
|
+
nextCursor?: string | null;
|
|
52
|
+
};
|
|
53
|
+
}
|
|
19
54
|
/** Result of a single adapter fetch — the items plus the next state to persist. */
|
|
20
55
|
export interface FeedFetchResult {
|
|
21
56
|
items: Item[];
|
|
@@ -31,12 +66,100 @@ export interface FeedFetchResult {
|
|
|
31
66
|
* while still bumping `lastFetchedAt`.
|
|
32
67
|
*/
|
|
33
68
|
notModified?: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Optional diagnostic payload. Adapters fill this in when they have useful
|
|
71
|
+
* tooling info (json-api's selector adoption + pagination preview); other
|
|
72
|
+
* adapters leave it undefined. The watcher propagates it to
|
|
73
|
+
* `WatchRunResult.diag[sourceId]` so `source test` can render it.
|
|
74
|
+
*/
|
|
75
|
+
diag?: FeedFetchDiag;
|
|
34
76
|
}
|
|
35
77
|
export interface FeedAdapterOptions {
|
|
36
78
|
/** Caller-supplied fetch (defaults to global fetch). Injected by tests. */
|
|
37
79
|
fetch?: FetchLike;
|
|
38
80
|
/** Previous state for this source (`state/<id>.yaml`). */
|
|
39
81
|
state?: SourceState;
|
|
82
|
+
/**
|
|
83
|
+
* Backfill hint (ADR-0012 §D4). When true, adapters that support page
|
|
84
|
+
* traversal walk all available history pages until `pagination.maxPages`
|
|
85
|
+
* (or `maxPagesOverride`) is exhausted, emitting items rather than only
|
|
86
|
+
* the most-recent page. The watcher / CLI propagates this from
|
|
87
|
+
* `radar watch run --backfill`.
|
|
88
|
+
*
|
|
89
|
+
* Adapters that do not support backfill (rss / html / html-js — feed
|
|
90
|
+
* formats with no pagination contract) simply ignore the flag.
|
|
91
|
+
*/
|
|
92
|
+
backfill?: boolean;
|
|
93
|
+
/**
|
|
94
|
+
* Optional override for the per-source `pagination.maxPages` cap. Used by
|
|
95
|
+
* `--max-pages N` to widen / narrow the backfill traversal without editing
|
|
96
|
+
* the source YAML. Adapters that do not paginate ignore this field.
|
|
97
|
+
*/
|
|
98
|
+
maxPagesOverride?: number;
|
|
99
|
+
/**
|
|
100
|
+
* Environment lookup for `${VAR}` interpolation inside `http.headers`
|
|
101
|
+
* (json-api adapter, ADR-0012 §D5c). Defaults to `process.env`; tests
|
|
102
|
+
* inject a controlled record so credential-shaped values never escape into
|
|
103
|
+
* test output / fixtures.
|
|
104
|
+
*/
|
|
105
|
+
env?: Record<string, string | undefined>;
|
|
106
|
+
/**
|
|
107
|
+
* Dry-run hint (#174). When true, paginating adapters fetch only page 0
|
|
108
|
+
* (preserving the `radar source test` "no state mutation" contract for
|
|
109
|
+
* `kind: json-api` where pagination would otherwise walk multiple pages).
|
|
110
|
+
* Adapters that do not paginate ignore the flag. Tooling can inspect the
|
|
111
|
+
* computed next-page URL via `FeedFetchResult.diag.paginationPreview`
|
|
112
|
+
* without an extra round-trip.
|
|
113
|
+
*/
|
|
114
|
+
dryRun?: boolean;
|
|
115
|
+
/**
|
|
116
|
+
* Diagnostic warning sink (#174). Adapters call this for non-fatal
|
|
117
|
+
* surprises like "all default selector candidates resolved to null". The
|
|
118
|
+
* watcher / CLI route it to `console.warn` so users notice. Defaults to
|
|
119
|
+
* a no-op when unset.
|
|
120
|
+
*/
|
|
121
|
+
warn?: (message: string) => void;
|
|
122
|
+
/**
|
|
123
|
+
* Optional progress reporter for long-running fetches (ADR-0015 D3 / #198).
|
|
124
|
+
*
|
|
125
|
+
* - `kind: html-js` calls `phase()` around Playwright Chromium lifecycle
|
|
126
|
+
* (`Launching Chromium…` / `Navigating to <url>…` / `Waiting for
|
|
127
|
+
* selector "<sel>" (timeout: <ms>ms)…` / `Capturing page content…` /
|
|
128
|
+
* `Closing browser…`).
|
|
129
|
+
* - `kind: json-api` in `--backfill` mode fires page-level progress via
|
|
130
|
+
* {@link FeedAdapterOptions.onPage} (see below) and uses `phase()` for
|
|
131
|
+
* one-shot start/stop markers.
|
|
132
|
+
* - Other adapters (rss / atom / html / github-releases / npm-registry)
|
|
133
|
+
* currently ignore the reporter — fetches complete in a single
|
|
134
|
+
* short-lived HTTP round trip with no meaningful intermediate phase.
|
|
135
|
+
*
|
|
136
|
+
* Unset is byte-equivalent to the pre-#198 behaviour (no progress output).
|
|
137
|
+
*/
|
|
138
|
+
onProgress?: ProgressReporter;
|
|
139
|
+
/**
|
|
140
|
+
* Per-page progress callback for paginating adapters (json-api / future
|
|
141
|
+
* github-releases / npm-registry). Fired after each page is fetched and
|
|
142
|
+
* normalized so the watcher / CLI can update a `Page <i>/<n>: <items>`
|
|
143
|
+
* spinner row without the adapter needing to know about the
|
|
144
|
+
* `ProgressReporter` shape.
|
|
145
|
+
*
|
|
146
|
+
* - `pageIndex` is 0-based (page 0 = the first response).
|
|
147
|
+
* - `pageTotal` is the recipe-implied cap (`pagination.maxPages` or
|
|
148
|
+
* `--max-pages`); when `totalPath` resolves on page 0 it tightens
|
|
149
|
+
* further so the user sees a meaningful denominator instead of the
|
|
150
|
+
* conservative cap.
|
|
151
|
+
* - `items` is the count of items extracted from this page (post-schema
|
|
152
|
+
* validation, pre-filter / pre-dedup).
|
|
153
|
+
*
|
|
154
|
+
* Unset means no per-page callback. Independent of `onProgress`: callers
|
|
155
|
+
* that want the spinner but not per-page metrics can wire one and not the
|
|
156
|
+
* other.
|
|
157
|
+
*/
|
|
158
|
+
onPage?: (info: {
|
|
159
|
+
pageIndex: number;
|
|
160
|
+
pageTotal: number;
|
|
161
|
+
items: number;
|
|
162
|
+
}) => void;
|
|
40
163
|
}
|
|
41
164
|
export interface FeedAdapter {
|
|
42
165
|
kind: Source["kind"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/feeds/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/feeds/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,MAAM,SAAS,GAAG,CACtB,KAAK,EAAE,MAAM,GAAG,GAAG,EACnB,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,KAC9D,OAAO,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE;QAAE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAC9C,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CACzB,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;IACjD;;;;OAIG;IACH,iBAAiB,CAAC,EAAE;QAClB,sDAAsD;QACtD,QAAQ,EAAE,MAAM,CAAC;QACjB,sEAAsE;QACtE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,8EAA8E;QAC9E,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,6EAA6E;QAC7E,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC5B,CAAC;CACH;AAED,mFAAmF;AACnF,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd;;;;OAIG;IACH,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5B;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,2EAA2E;IAC3E,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC;;;;;;;;;;;;;;;OAeG;IACH,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAClF;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACrB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;CACnF"}
|