@copperline/rendex 1.4.1 → 1.5.1

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.md CHANGED
@@ -232,6 +232,67 @@ All options except `url` are optional:
232
232
  | `bestAttempt` | `boolean` | `true` | Return best-effort screenshot on timeout |
233
233
  | `selector` | `string` | — | Capture a specific element by CSS selector |
234
234
 
235
+ ## Rendex Watch
236
+
237
+ Monitor a URL on a schedule and get alerted when it changes — real-Chrome visual diff (with a highlighted overlay), an extracted-text diff, or both. One `rdx_` key, your shared credit pool.
238
+
239
+ ```typescript
240
+ // Create a watch (an active watch captures its baseline immediately — 1 credit)
241
+ const watch = await rendex.createWatch({
242
+ url: "https://example.com/pricing",
243
+ diffMode: "visual", // "visual" | "text" | "both"
244
+ intervalMinutes: 1440, // your plan's floor is the minimum (Free 1440 / Starter 180 / Pro 30 / Ent 5)
245
+ webhookUrl: "https://hooks.example.com/rendex", // Starter+; HMAC-signed
246
+ notifyEmail: "you@example.com", // any plan; must be your account email
247
+ });
248
+
249
+ // Dry-run a config BEFORE saving — what we'd capture + is the page reachable
250
+ const test = await rendex.testWatch({ url: "https://example.com", selector: "#price" });
251
+ if (test.reachable) console.log(test.screenshotUrl);
252
+
253
+ await rendex.listWatches({ status: "active" }); // { items, nextCursor }
254
+ await rendex.getWatch(watch.id);
255
+ await rendex.runWatch(watch.id); // run a check now → { runId }
256
+ const { items } = await rendex.listWatchRuns(watch.id, { limit: 10 });
257
+ await rendex.updateWatch(watch.id, { paused: true }); // pause; { paused: false } resumes
258
+ await rendex.deleteWatch(watch.id);
259
+ ```
260
+
261
+ | Method | Endpoint | Returns |
262
+ |--------|----------|---------|
263
+ | `createWatch(options)` | `POST /v1/watches` | `Watch` |
264
+ | `listWatches(query?)` | `GET /v1/watches` | `{ items: Watch[]; nextCursor }` |
265
+ | `getWatch(id)` | `GET /v1/watches/:id` | `Watch` |
266
+ | `updateWatch(id, patch)` | `PATCH /v1/watches/:id` | `Watch` |
267
+ | `deleteWatch(id)` | `DELETE /v1/watches/:id` | `void` |
268
+ | `runWatch(id)` | `POST /v1/watches/:id/run` | `{ runId, watchId, status }` |
269
+ | `listWatchRuns(id, query?)` | `GET /v1/watches/:id/runs` | `{ items: WatchRun[]; nextCursor }` |
270
+ | `testWatch(options)` | `POST /v1/watches/test` | `WatchTestResult` |
271
+
272
+ ### Verifying Watch webhooks
273
+
274
+ When a watched page changes Rendex POSTs an HMAC-signed `watch.changed` (or `watch.recovered` / `watch.error`) event to your `webhookUrl`. Verify it with the raw request body:
275
+
276
+ ```typescript
277
+ import { verifyWebhook, type RendexWebhookPayload } from "@copperline/rendex";
278
+
279
+ // rawBody is the unparsed request body string
280
+ const ok = await verifyWebhook({
281
+ payload: rawBody,
282
+ signature: req.headers["x-rendex-signature"],
283
+ timestamp: req.headers["x-rendex-timestamp"],
284
+ secret: process.env.WEBHOOK_SIGNING_SECRET,
285
+ });
286
+ if (!ok) return res.status(400).end();
287
+
288
+ const event = JSON.parse(rawBody) as RendexWebhookPayload;
289
+ if (event.event === "watch.changed") {
290
+ console.log(event.url, event.diffScore, event.diffOverlayUrl);
291
+ }
292
+ ```
293
+
294
+ > A `watch.changed` payload carries the same change fields as a `WatchRun`: `diffScore`, `diffPixels`, `beforeUrl`, `afterUrl`, `diffOverlayUrl`.
295
+
235
296
  ## Error Handling
236
297
 
237
298
  ```typescript
package/dist/client.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { BatchCreateResponse, BatchOptions, BatchStatusResponse, ExtractResult, JobStatusResponse, RenderHtmlOptions, RenderLinkResult, RenderMarkdownOptions, RendexConfig, ScreenshotJsonResponse, ScreenshotOptions, ScreenshotResult } from "./types.js";
1
+ import type { BatchCreateResponse, BatchOptions, BatchStatusResponse, CreateWatchOptions, ExtractResult, JobStatusResponse, ListWatchesQuery, ListWatchRunsQuery, RenderHtmlOptions, RenderLinkResult, RenderMarkdownOptions, RendexConfig, ScreenshotJsonResponse, ScreenshotOptions, ScreenshotResult, UpdateWatchOptions, Watch, WatchList, WatchRunList, WatchRunQueued, WatchTestResult } from "./types.js";
2
2
  export declare class Rendex {
3
3
  private readonly apiKey;
4
4
  private readonly baseUrl;
@@ -134,8 +134,90 @@ export declare class Rendex {
134
134
  * ```
135
135
  */
136
136
  batchStatus(batchId: string): Promise<BatchStatusResponse>;
137
+ /**
138
+ * Create a watch — monitor a URL on a schedule and diff each capture against
139
+ * a baseline. An active watch captures its baseline immediately (1 credit).
140
+ *
141
+ * ```ts
142
+ * const watch = await rendex.createWatch({
143
+ * url: "https://example.com/pricing",
144
+ * diffMode: "visual",
145
+ * intervalMinutes: 1440,
146
+ * webhookUrl: "https://hooks.example.com/rendex", // Starter+
147
+ * });
148
+ * ```
149
+ */
150
+ createWatch(options: CreateWatchOptions): Promise<Watch>;
151
+ /**
152
+ * List your watches (newest first), optionally filtered by status and paged.
153
+ *
154
+ * ```ts
155
+ * const { items, nextCursor } = await rendex.listWatches({ status: "active" });
156
+ * ```
157
+ */
158
+ listWatches(query?: ListWatchesQuery): Promise<WatchList>;
159
+ /**
160
+ * Fetch one watch by ID.
161
+ *
162
+ * ```ts
163
+ * const watch = await rendex.getWatch("uuid-here");
164
+ * ```
165
+ */
166
+ getWatch(id: string): Promise<Watch>;
167
+ /**
168
+ * Update, pause, resume, or re-point a watch. Pass `{ paused: true }` to pause
169
+ * and `{ paused: false }` to resume; pass `webhookUrl: null` to clear a channel.
170
+ *
171
+ * ```ts
172
+ * await rendex.updateWatch("uuid-here", { paused: true });
173
+ * ```
174
+ */
175
+ updateWatch(id: string, patch: UpdateWatchOptions): Promise<Watch>;
176
+ /**
177
+ * Delete a watch and its run history (resolves on success; throws on failure).
178
+ *
179
+ * ```ts
180
+ * await rendex.deleteWatch("uuid-here");
181
+ * ```
182
+ */
183
+ deleteWatch(id: string): Promise<void>;
184
+ /**
185
+ * Run an immediate check now (charges 1 credit; returns the queued run).
186
+ * Poll `listWatchRuns(id)` for the result, or receive a `watch.changed` webhook.
187
+ *
188
+ * ```ts
189
+ * const { runId } = await rendex.runWatch("uuid-here");
190
+ * ```
191
+ */
192
+ runWatch(id: string): Promise<WatchRunQueued>;
193
+ /**
194
+ * Read a watch's run history (newest first), paged.
195
+ *
196
+ * ```ts
197
+ * const { items } = await rendex.listWatchRuns("uuid-here", { limit: 10 });
198
+ * ```
199
+ */
200
+ listWatchRuns(id: string, query?: ListWatchRunsQuery): Promise<WatchRunList>;
201
+ /**
202
+ * Dry-run a watch config BEFORE creating it — renders the proposed config once
203
+ * and reports what was captured + whether the page is reachable. Creates no
204
+ * watch, no baseline, no diff. Charges 1 credit (refunded if the page can't be
205
+ * read — a "couldn't reach" is a `{ ok: false }` RESULT, not an error).
206
+ *
207
+ * ```ts
208
+ * const result = await rendex.testWatch({ url: "https://example.com", diffMode: "visual" });
209
+ * if (result.reachable) console.log(result.screenshotUrl);
210
+ * ```
211
+ */
212
+ testWatch(options: CreateWatchOptions): Promise<WatchTestResult>;
137
213
  private _post;
138
214
  private _get;
215
+ private _patch;
216
+ private _delete;
217
+ /** Parse a `{ success, data, meta }` envelope, throwing RendexApiError on `success: false`. */
218
+ private _readData;
219
+ /** Build a query string (leading "?") from defined scalar params, or "" when empty. */
220
+ private _qs;
139
221
  private _handleErrorResponse;
140
222
  private _parseMetadataHeaders;
141
223
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACrB,YAAY,EACZ,sBAAsB,EAEtB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAWpB,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;gBAErC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY;IASjD;;;;;;OAMG;IACG,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IASvE;;;;;;;OAOG;IACG,cAAc,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAiBjF;;;;;;;;;;;;OAYG;IACG,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAiBhG;;;;;;;;;OASG;IACG,OAAO,CACX,OAAO,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAClG,OAAO,CAAC,aAAa,CAAC;IAiBzB;;;;;;;OAOG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAItF;;;;;;;;OAQG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAIhG;;;;;;;;OAQG;IACG,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAIlG;;;;;;;;;OASG;IACG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAI5G;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM;IAqBjD;;;;;;;;;;OAUG;IACG,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAiBhE;;;;;;;OAOG;IACG,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAiB1D;;;;;;;OAOG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;YAmBlD,KAAK;YA0BL,IAAI;YAwBJ,oBAAoB;IAoBlC,OAAO,CAAC,qBAAqB;CAiB9B"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -5,7 +5,7 @@ const DEFAULT_BASE_URL = "https://api.rendex.dev";
5
5
  // analytics (and distinguishable from raw fetch/axios). Kept in sync by
6
6
  // scripts/bump-version.sh. In a browser, fetch silently drops User-Agent
7
7
  // (forbidden header) — harmless; only Node/Bun/Workers callers are tagged.
8
- const SDK_VERSION = "1.4.1";
8
+ const SDK_VERSION = "1.5.1";
9
9
  const USER_AGENT = `rendex-js/${SDK_VERSION}`;
10
10
  export class Rendex {
11
11
  apiKey;
@@ -219,6 +219,106 @@ export class Rendex {
219
219
  }
220
220
  return body;
221
221
  }
222
+ // ─── Rendex Watch (website-change monitoring) ─────────────────────
223
+ /**
224
+ * Create a watch — monitor a URL on a schedule and diff each capture against
225
+ * a baseline. An active watch captures its baseline immediately (1 credit).
226
+ *
227
+ * ```ts
228
+ * const watch = await rendex.createWatch({
229
+ * url: "https://example.com/pricing",
230
+ * diffMode: "visual",
231
+ * intervalMinutes: 1440,
232
+ * webhookUrl: "https://hooks.example.com/rendex", // Starter+
233
+ * });
234
+ * ```
235
+ */
236
+ async createWatch(options) {
237
+ const response = await this._post("/v1/watches", options);
238
+ return this._readData(response);
239
+ }
240
+ /**
241
+ * List your watches (newest first), optionally filtered by status and paged.
242
+ *
243
+ * ```ts
244
+ * const { items, nextCursor } = await rendex.listWatches({ status: "active" });
245
+ * ```
246
+ */
247
+ async listWatches(query) {
248
+ const response = await this._get(`/v1/watches${this._qs(query)}`);
249
+ return this._readData(response);
250
+ }
251
+ /**
252
+ * Fetch one watch by ID.
253
+ *
254
+ * ```ts
255
+ * const watch = await rendex.getWatch("uuid-here");
256
+ * ```
257
+ */
258
+ async getWatch(id) {
259
+ const response = await this._get(`/v1/watches/${encodeURIComponent(id)}`);
260
+ return this._readData(response);
261
+ }
262
+ /**
263
+ * Update, pause, resume, or re-point a watch. Pass `{ paused: true }` to pause
264
+ * and `{ paused: false }` to resume; pass `webhookUrl: null` to clear a channel.
265
+ *
266
+ * ```ts
267
+ * await rendex.updateWatch("uuid-here", { paused: true });
268
+ * ```
269
+ */
270
+ async updateWatch(id, patch) {
271
+ const response = await this._patch(`/v1/watches/${encodeURIComponent(id)}`, patch);
272
+ return this._readData(response);
273
+ }
274
+ /**
275
+ * Delete a watch and its run history (resolves on success; throws on failure).
276
+ *
277
+ * ```ts
278
+ * await rendex.deleteWatch("uuid-here");
279
+ * ```
280
+ */
281
+ async deleteWatch(id) {
282
+ await this._delete(`/v1/watches/${encodeURIComponent(id)}`);
283
+ }
284
+ /**
285
+ * Run an immediate check now (charges 1 credit; returns the queued run).
286
+ * Poll `listWatchRuns(id)` for the result, or receive a `watch.changed` webhook.
287
+ *
288
+ * ```ts
289
+ * const { runId } = await rendex.runWatch("uuid-here");
290
+ * ```
291
+ */
292
+ async runWatch(id) {
293
+ const response = await this._post(`/v1/watches/${encodeURIComponent(id)}/run`, {});
294
+ return this._readData(response);
295
+ }
296
+ /**
297
+ * Read a watch's run history (newest first), paged.
298
+ *
299
+ * ```ts
300
+ * const { items } = await rendex.listWatchRuns("uuid-here", { limit: 10 });
301
+ * ```
302
+ */
303
+ async listWatchRuns(id, query) {
304
+ const response = await this._get(`/v1/watches/${encodeURIComponent(id)}/runs${this._qs(query)}`);
305
+ return this._readData(response);
306
+ }
307
+ /**
308
+ * Dry-run a watch config BEFORE creating it — renders the proposed config once
309
+ * and reports what was captured + whether the page is reachable. Creates no
310
+ * watch, no baseline, no diff. Charges 1 credit (refunded if the page can't be
311
+ * read — a "couldn't reach" is a `{ ok: false }` RESULT, not an error).
312
+ *
313
+ * ```ts
314
+ * const result = await rendex.testWatch({ url: "https://example.com", diffMode: "visual" });
315
+ * if (result.reachable) console.log(result.screenshotUrl);
316
+ * ```
317
+ */
318
+ async testWatch(options) {
319
+ const response = await this._post("/v1/watches/test", options);
320
+ return this._readData(response);
321
+ }
222
322
  // ─── Private ─────────────────────────────────────────────────────
223
323
  async _post(path, body) {
224
324
  let response;
@@ -260,6 +360,66 @@ export class Rendex {
260
360
  }
261
361
  return response;
262
362
  }
363
+ async _patch(path, body) {
364
+ let response;
365
+ try {
366
+ response = await this._fetch(`${this.baseUrl}${path}`, {
367
+ method: "PATCH",
368
+ headers: {
369
+ "Content-Type": "application/json",
370
+ Authorization: `Bearer ${this.apiKey}`,
371
+ "User-Agent": USER_AGENT,
372
+ },
373
+ body: JSON.stringify(body),
374
+ });
375
+ }
376
+ catch (err) {
377
+ throw new RendexNetworkError(`Network request to ${this.baseUrl}${path} failed: ${err instanceof Error ? err.message : String(err)}`, err);
378
+ }
379
+ if (!response.ok) {
380
+ await this._handleErrorResponse(response);
381
+ }
382
+ return response;
383
+ }
384
+ async _delete(path) {
385
+ let response;
386
+ try {
387
+ response = await this._fetch(`${this.baseUrl}${path}`, {
388
+ method: "DELETE",
389
+ headers: {
390
+ Authorization: `Bearer ${this.apiKey}`,
391
+ "User-Agent": USER_AGENT,
392
+ },
393
+ });
394
+ }
395
+ catch (err) {
396
+ throw new RendexNetworkError(`Network request to ${this.baseUrl}${path} failed: ${err instanceof Error ? err.message : String(err)}`, err);
397
+ }
398
+ if (!response.ok) {
399
+ await this._handleErrorResponse(response);
400
+ }
401
+ return response;
402
+ }
403
+ /** Parse a `{ success, data, meta }` envelope, throwing RendexApiError on `success: false`. */
404
+ async _readData(response) {
405
+ const body = await response.json();
406
+ if (!body.success) {
407
+ throw new RendexApiError(body.error?.message ?? "Unknown error", response.status, body.error?.code ?? "UNKNOWN", body.meta?.requestId, body.error?.details);
408
+ }
409
+ return body.data;
410
+ }
411
+ /** Build a query string (leading "?") from defined scalar params, or "" when empty. */
412
+ _qs(query) {
413
+ if (!query)
414
+ return "";
415
+ const params = new URLSearchParams();
416
+ for (const [key, value] of Object.entries(query)) {
417
+ if (value !== undefined && value !== null)
418
+ params.set(key, String(value));
419
+ }
420
+ const s = params.toString();
421
+ return s ? `?${s}` : "";
422
+ }
263
423
  async _handleErrorResponse(response) {
264
424
  let body;
265
425
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  export { Rendex } from "./client.js";
2
2
  export { RendexError, RendexApiError, RendexNetworkError } from "./errors.js";
3
- export type { ScreenshotOptions, RenderHtmlOptions, RenderMarkdownOptions, ScreenshotResult, ScreenshotMetadata, ScreenshotJsonResponse, ScreenshotData, RenderLinkResult, ExtractResult, BatchOptions, BatchCreateResponse, BatchStatusResponse, JobStatusResponse, JobStatus, BatchStatus, CookieParam, PdfMargin, ResponseMeta, UsageInfo, RendexConfig, ApiErrorCode, } from "./types.js";
3
+ export { verifyWebhook } from "./webhook.js";
4
+ export type { RendexWebhookEvent, RendexWebhookPayload, VerifyWebhookOptions, } from "./webhook.js";
5
+ export type { ScreenshotOptions, RenderHtmlOptions, RenderMarkdownOptions, ScreenshotResult, ScreenshotMetadata, ScreenshotJsonResponse, ScreenshotData, RenderLinkResult, ExtractResult, BatchOptions, BatchCreateResponse, BatchStatusResponse, JobStatusResponse, JobStatus, BatchStatus, CookieParam, PdfMargin, ResponseMeta, UsageInfo, RendexConfig, ApiErrorCode, WatchDiffMode, WatchStatus, WatchRunStatus, WatchUaMode, WatchIgnoreRegion, WatchRenderParams, CreateWatchOptions, UpdateWatchOptions, ListWatchesQuery, ListWatchRunsQuery, Watch, WatchRun, WatchTestResult, WatchRunQueued, WatchList, WatchRunList, } from "./types.js";
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC9E,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,WAAW,EACX,SAAS,EACT,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,YAAY,GACb,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,WAAW,EACX,SAAS,EACT,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,YAAY,EAEZ,aAAa,EACb,WAAW,EACX,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,EACL,QAAQ,EACR,eAAe,EACf,cAAc,EACd,SAAS,EACT,YAAY,GACb,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  // ─── @copperline/rendex — Official TypeScript SDK ────────────────────
2
2
  export { Rendex } from "./client.js";
3
3
  export { RendexError, RendexApiError, RendexNetworkError } from "./errors.js";
4
+ export { verifyWebhook } from "./webhook.js";
4
5
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAExE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAExE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC"}
package/dist/types.d.ts CHANGED
@@ -295,6 +295,216 @@ export interface BatchStatusResponse {
295
295
  };
296
296
  meta: ResponseMeta;
297
297
  }
298
+ /** Diff strategy: visual = pixel diff + overlay; text = extracted-text diff; both runs each. */
299
+ export type WatchDiffMode = "visual" | "text" | "both";
300
+ /** Whether a watch is currently checking on its schedule. */
301
+ export type WatchStatus = "active" | "paused";
302
+ /** Lifecycle of a single executed check. */
303
+ export type WatchRunStatus = "queued" | "processing" | "completed" | "failed";
304
+ /** How the monitor presents its User-Agent. See https://rendex.dev/bot */
305
+ export type WatchUaMode = "auto" | "identify" | "stealth";
306
+ /** A pixel rectangle masked in BOTH captures before the visual diff. */
307
+ export interface WatchIgnoreRegion {
308
+ x: number;
309
+ y: number;
310
+ width: number;
311
+ height: number;
312
+ }
313
+ /**
314
+ * Render knobs applied on every check — a subset of the screenshot capture
315
+ * params (inline source params `url`/`html`/`markdown`/`data` and credential
316
+ * knobs `cookies`/`headers`/`css`/`js` are NOT accepted; the target is the
317
+ * watch's top-level `url`).
318
+ */
319
+ export interface WatchRenderParams {
320
+ /** A pdf cannot be visually diffed — pair it with diffMode "text". @default "png" */
321
+ format?: "png" | "jpeg" | "webp" | "pdf";
322
+ width?: number;
323
+ height?: number;
324
+ /** Whole-page monitoring. Defaults to true for watches (the screenshot default is false). @default true */
325
+ fullPage?: boolean;
326
+ device?: "desktop" | "iphone_15" | "iphone_se" | "pixel_8" | "ipad" | "ipad_pro";
327
+ deviceScaleFactor?: number;
328
+ darkMode?: boolean;
329
+ blockAds?: boolean;
330
+ blockCookieBanners?: boolean;
331
+ hideSelectors?: string[];
332
+ waitUntil?: "load" | "domcontentloaded" | "networkidle0" | "networkidle2";
333
+ delay?: number;
334
+ timeout?: number;
335
+ /** Pro+ — ISO country code to render from. Cannot be combined with a text diffMode. */
336
+ geo?: string;
337
+ geoCity?: string;
338
+ geoState?: string;
339
+ /** Capture and diff ONLY this CSS element — watch one price/banner/section. */
340
+ selector?: string;
341
+ /** Pixel rectangles masked in both captures before the visual diff (max 20). Visual mode only. */
342
+ ignoreRegions?: WatchIgnoreRegion[];
343
+ /** Substrings or `/regex/flags` patterns stripped from both texts before the text diff (max 50). */
344
+ ignoreText?: string[];
345
+ /** Minimum added + removed characters for a text change to count. */
346
+ minTextChars?: number;
347
+ /** While the page text contains any of these markers, the run is treated as unchanged (max 20). */
348
+ suppressWhilePresent?: string[];
349
+ uaMode?: WatchUaMode;
350
+ }
351
+ /** Options for `Rendex.createWatch()` / `testWatch()`. Only `url` is required. */
352
+ export interface CreateWatchOptions {
353
+ /** The page to monitor. */
354
+ url: string;
355
+ /** Optional label. */
356
+ name?: string;
357
+ /**
358
+ * Check frequency in minutes. The accepted minimum is your plan's floor —
359
+ * Free 1440 (daily), Starter 180, Pro 30, Enterprise 5. A faster value returns
360
+ * 403 WATCH_INTERVAL_TOO_FAST. @default 1440
361
+ */
362
+ intervalMinutes?: number;
363
+ /** @default "visual" */
364
+ diffMode?: WatchDiffMode;
365
+ /** Visual-change noise floor as a 0..1 fraction; the diff must EXCEED it. @default 0.01 */
366
+ threshold?: number;
367
+ renderParams?: WatchRenderParams;
368
+ /** Pro+ — attach an AI "what changed" summary (roadmap). @default false */
369
+ aiSummary?: boolean;
370
+ /** Starter+ — HMAC-signed change-webhook target. */
371
+ webhookUrl?: string;
372
+ /** Any plan — send change alerts here. Must be your OWN account email. Defaults to it if omitted. */
373
+ notifyEmail?: string;
374
+ /** Create the watch paused (no baseline capture or charge until resumed). @default false */
375
+ paused?: boolean;
376
+ }
377
+ /**
378
+ * Options for `Rendex.updateWatch()`. All fields optional. `webhookUrl` and
379
+ * `notifyEmail` additionally accept `null` to clear a channel. Set `paused`
380
+ * true to pause, false to resume.
381
+ */
382
+ export interface UpdateWatchOptions {
383
+ url?: string;
384
+ name?: string;
385
+ intervalMinutes?: number;
386
+ diffMode?: WatchDiffMode;
387
+ threshold?: number;
388
+ renderParams?: WatchRenderParams;
389
+ aiSummary?: boolean;
390
+ webhookUrl?: string | null;
391
+ notifyEmail?: string | null;
392
+ paused?: boolean;
393
+ }
394
+ /** Query for `Rendex.listWatches()`. */
395
+ export interface ListWatchesQuery {
396
+ /** @default "all" */
397
+ status?: "active" | "paused" | "all";
398
+ /** Opaque pagination cursor from a previous `nextCursor`. */
399
+ cursor?: string;
400
+ /** Page size (1–100). @default 20 */
401
+ limit?: number;
402
+ }
403
+ /** Query for `Rendex.listWatchRuns()`. */
404
+ export interface ListWatchRunsQuery {
405
+ cursor?: string;
406
+ /** Page size (1–100). @default 20 */
407
+ limit?: number;
408
+ }
409
+ /** A monitoring configuration. `webhookUrl` is redacted to its host on read. */
410
+ export interface Watch {
411
+ id: string;
412
+ url: string;
413
+ name: string | null;
414
+ intervalMinutes: number;
415
+ diffMode: WatchDiffMode;
416
+ /** 0..1 fraction. */
417
+ threshold: number;
418
+ renderParams: WatchRenderParams;
419
+ aiSummary: boolean;
420
+ /** Redacted to host; null when no webhook channel. */
421
+ webhookUrl: string | null;
422
+ notifyEmail: string | null;
423
+ status: WatchStatus;
424
+ /** Short-lived signed URL; null until a baseline exists. */
425
+ baselineImageUrl: string | null;
426
+ baselineCapturedAt: string | null;
427
+ lastRunAt: string | null;
428
+ /** Null while paused. */
429
+ nextRunAt: string | null;
430
+ lastChangedAt: string | null;
431
+ lastStatus: string | null;
432
+ consecutiveFailures: number;
433
+ /** When the target last blocked the RendexWatch identity; null if never. */
434
+ uaBlockedAt: string | null;
435
+ createdAt: string;
436
+ updatedAt: string;
437
+ }
438
+ /** One execution of a watch. Image URLs are short-lived signed links. */
439
+ /** Structured reason a watch run failed — branch on this instead of parsing `error`. */
440
+ export type WatchRunErrorCode = "blocked" | "timeout" | "selector" | "http_error" | "network" | "storage" | "unknown";
441
+ export interface WatchRun {
442
+ id: string;
443
+ watchId: string;
444
+ status: WatchRunStatus;
445
+ /** Null until the run completes. */
446
+ changed: boolean | null;
447
+ /** 0..1 fraction of the page that changed; null for text-only or failed runs. */
448
+ diffScore: number | null;
449
+ diffPixels: number | null;
450
+ /** Signed "before" baseline — the image this run was diffed against. */
451
+ beforeUrl: string | null;
452
+ /** Signed "after" capture — the image taken on this run. */
453
+ afterUrl: string | null;
454
+ /** Signed highlighted overlay. */
455
+ diffOverlayUrl: string | null;
456
+ /** Present for text/both runs; null otherwise. */
457
+ textDiff: {
458
+ added?: string[];
459
+ removed?: string[];
460
+ summary?: string;
461
+ } | null;
462
+ /** Net credits charged for this run (0 after a refund or for the demo account). */
463
+ creditsCharged: number;
464
+ /** Free-text failure reason when status is "failed". */
465
+ error: string | null;
466
+ /** Structured failure reason; null until/unless the run fails. */
467
+ errorCode: WatchRunErrorCode | null;
468
+ createdAt: string;
469
+ completedAt: string | null;
470
+ }
471
+ /** Result of `Rendex.testWatch()` — the pre-create dry-run (creates nothing). */
472
+ export interface WatchTestResult {
473
+ /** True when the page was rendered. */
474
+ ok: boolean;
475
+ /** True when the page could be read (not blocked/errored). */
476
+ reachable: boolean;
477
+ /** Capture format (png/jpeg/webp/pdf). */
478
+ format?: string;
479
+ /** Navigated page HTTP status (URL mode; null for geo). */
480
+ httpStatus?: number | null;
481
+ /** Whether the geo (Decodo) render path was used. */
482
+ usedGeo?: boolean;
483
+ /** Signed URL of the captured screenshot (short-lived). */
484
+ screenshotUrl?: string | null;
485
+ /** Text a text-watch would compare (text mode only). */
486
+ extractedText?: string | null;
487
+ capturedAt?: string;
488
+ /** Actionable reason when `reachable` is false (blocked / needs login / HTTP error). */
489
+ reason?: string;
490
+ }
491
+ /** Result of `Rendex.runWatch()` — the run was queued (202). */
492
+ export interface WatchRunQueued {
493
+ runId: string;
494
+ watchId: string;
495
+ status: "queued";
496
+ }
497
+ /** A page of watches from `Rendex.listWatches()`. */
498
+ export interface WatchList {
499
+ items: Watch[];
500
+ /** Pass to the next `listWatches({ cursor })` call; null when no more pages. */
501
+ nextCursor: string | null;
502
+ }
503
+ /** A page of runs from `Rendex.listWatchRuns()`. */
504
+ export interface WatchRunList {
505
+ items: WatchRun[];
506
+ nextCursor: string | null;
507
+ }
298
508
  /** Known API error codes returned by the Rendex API. */
299
- export type ApiErrorCode = "VALIDATION_ERROR" | "INVALID_URL" | "INVALID_JSON" | "TIMEOUT" | "CAPTURE_FAILED" | "MISSING_API_KEY" | "INVALID_API_KEY" | "KEY_DISABLED" | "RATE_LIMITED" | "USAGE_EXCEEDED" | "NOT_FOUND" | "GEO_FEATURE_UNAVAILABLE" | "PLAN_UPGRADE_REQUIRED" | "CONFIGURATION_ERROR" | "UNSAFE_URL" | "INVALID_WEBHOOK_URL" | "QUEUE_LIMIT_REACHED" | "BATCH_LIMIT_EXCEEDED" | "INTERNAL_ERROR" | "FORBIDDEN";
509
+ export type ApiErrorCode = "VALIDATION_ERROR" | "INVALID_URL" | "INVALID_JSON" | "TIMEOUT" | "CAPTURE_FAILED" | "MISSING_API_KEY" | "INVALID_API_KEY" | "KEY_DISABLED" | "RATE_LIMITED" | "USAGE_EXCEEDED" | "NOT_FOUND" | "GEO_FEATURE_UNAVAILABLE" | "PLAN_UPGRADE_REQUIRED" | "CONFIGURATION_ERROR" | "UNSAFE_URL" | "INVALID_WEBHOOK_URL" | "QUEUE_LIMIT_REACHED" | "BATCH_LIMIT_EXCEEDED" | "WATCH_NOT_FOUND" | "WATCH_PAUSED" | "WATCH_LIMIT_REACHED" | "WATCH_HOST_LIMIT_REACHED" | "WATCH_INTERVAL_TOO_FAST" | "INTERNAL_ERROR" | "FORBIDDEN";
300
510
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,uCAAuC;AACvC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;IACrC,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,sEAAsE;AACtE,MAAM,WAAW,SAAS;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,sGAAsG;AACtG,MAAM,WAAW,iBAAiB;IAChC,yEAAyE;IACzE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6GAA6G;IAC7G,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;;;;;OAUG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,sFAAsF;IACtF,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;IACzC,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2CAA2C;IAC3C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+BAA+B;IAC/B,kBAAkB,CAAC,EAAE,CAAC,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,YAAY,GAAG,OAAO,CAAC,EAAE,CAAC;IAC7E,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,GAAG,kBAAkB,GAAG,cAAc,GAAG,cAAc,CAAC;IAC1E,wDAAwD;IACxD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kFAAkF;IAClF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,CAAC;IACjF,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,wEAAwE;IACxE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,4FAA4F;IAC5F,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,4FAA4F;IAC5F,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0DAA0D;IAC1D,aAAa,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;IAC7C,mHAAmH;IACnH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,mEAAmE;IACnE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,EAAE,CAAC,EAAE,MAAM,CAAC;IAGZ,gDAAgD;IAChD,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,mCAAmC;IACnC,SAAS,CAAC,EAAE,IAAI,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IACzD,gDAAgD;IAChD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,2DAA2D;IAC3D,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oCAAoC;IACpC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,8GAA8G;IAC9G,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,qEAAqE;IACrE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,EAAE,KAAK,GAAG,MAAM,GAAG,UAAU,CAAC,CAAC;AAErF;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,iBAAiB,EAAE,KAAK,GAAG,MAAM,GAAG,UAAU,CAAC,CAAC;AAEzF,uEAAuE;AACvE,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,cAAc,CAAC;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,YAAY,GAAG,WAAW,CAAC;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,sEAAsE;AACtE,MAAM,WAAW,gBAAgB;IAC/B,yDAAyD;IACzD,KAAK,EAAE,UAAU,CAAC;IAClB,wDAAwD;IACxD,QAAQ,EAAE,kBAAkB,CAAC;CAC9B;AAED,+CAA+C;AAC/C,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,kCAAkC;AAClC,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,8CAA8C;AAC9C,MAAM,WAAW,cAAc;IAC7B,iCAAiC;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,cAAc,CAAC;IAC9C,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iFAAiF;IACjF,SAAS,CAAC,EAAE;QACV,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;QACrC,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,6CAA6C;AAC7C,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,YAAY,CAAC;CACpB;AAED,qFAAqF;AACrF,MAAM,WAAW,gBAAgB;IAC/B,kFAAkF;IAClF,GAAG,EAAE,MAAM,CAAC;IACZ,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,iEAAiE;AACjE,MAAM,WAAW,aAAa;IAC5B,yCAAyC;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,iCAAiC;AACjC,MAAM,WAAW,YAAY;IAC3B,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAID,6CAA6C;AAC7C,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEzE,0CAA0C;AAC1C,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,SAAS,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,IAAI,EAAE,YAAY,CAAC;CACpB;AAID,oBAAoB;AACpB,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE5E,oCAAoC;AACpC,MAAM,WAAW,YAAY;IAC3B,iDAAiD;IACjD,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,kDAAkD;IAClD,QAAQ,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,CAAC,CAAC;IAClG,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qDAAqD;AACrD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,QAAQ,CAAA;SAAE,CAAC,CAAC;KAC/D,CAAC;IACF,IAAI,EAAE,YAAY,CAAC;CACpB;AAED,4CAA4C;AAC5C,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,WAAW,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,KAAK,CAAC;YACV,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,SAAS,CAAC;YAClB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,SAAS,EAAE,MAAM,CAAC;YAClB,WAAW,CAAC,EAAE,MAAM,CAAC;SACtB,CAAC,CAAC;KACJ,CAAC;IACF,IAAI,EAAE,YAAY,CAAC;CACpB;AAED,wDAAwD;AACxD,MAAM,MAAM,YAAY,GACpB,kBAAkB,GAClB,aAAa,GACb,cAAc,GACd,SAAS,GACT,gBAAgB,GAChB,iBAAiB,GACjB,iBAAiB,GACjB,cAAc,GACd,cAAc,GACd,gBAAgB,GAChB,WAAW,GACX,yBAAyB,GACzB,uBAAuB,GACvB,qBAAqB,GACrB,YAAY,GACZ,qBAAqB,GACrB,qBAAqB,GACrB,sBAAsB,GACtB,gBAAgB,GAChB,WAAW,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ /** Webhook event names Rendex can deliver. */
2
+ export type RendexWebhookEvent = "job.completed" | "job.failed" | "batch.completed" | "watch.changed" | "watch.recovered" | "watch.error";
3
+ /**
4
+ * Parsed body of a Rendex webhook. Watch-specific fields are populated only on
5
+ * `watch.*` events. A `watch.*` change carries the same change vocabulary as a
6
+ * `WatchRun`: `diffScore`, `diffPixels`, `beforeUrl`, `afterUrl`, `diffOverlayUrl`.
7
+ */
8
+ export interface RendexWebhookPayload {
9
+ event: RendexWebhookEvent;
10
+ status: string;
11
+ completedAt: string;
12
+ jobId?: string;
13
+ batchId?: string;
14
+ resultUrl?: string;
15
+ error?: string;
16
+ metadata?: Record<string, unknown>;
17
+ totalJobs?: number;
18
+ completedJobs?: number;
19
+ failedJobs?: number;
20
+ jobs?: Array<{
21
+ jobId: string;
22
+ status: string;
23
+ resultUrl?: string;
24
+ error?: string;
25
+ }>;
26
+ watchId?: string;
27
+ runId?: string;
28
+ url?: string;
29
+ changed?: boolean;
30
+ /** 0..1 fraction of the page that changed. */
31
+ diffScore?: number;
32
+ diffPixels?: number;
33
+ beforeUrl?: string;
34
+ afterUrl?: string;
35
+ diffOverlayUrl?: string;
36
+ textDiff?: {
37
+ added?: string[];
38
+ removed?: string[];
39
+ summary?: string;
40
+ };
41
+ summary?: string | null;
42
+ }
43
+ /** Options for {@link verifyWebhook}. */
44
+ export interface VerifyWebhookOptions {
45
+ /**
46
+ * The RAW request body, exactly as received — the bytes the signature was
47
+ * computed over. Do NOT `JSON.parse` and re-stringify first (key order/spacing
48
+ * would change and the HMAC would no longer match).
49
+ */
50
+ payload: string;
51
+ /** The `x-rendex-signature` header value (hex HMAC-SHA256). */
52
+ signature: string;
53
+ /** The `x-rendex-timestamp` header value (unix seconds). */
54
+ timestamp: string;
55
+ /** Your webhook signing secret (`WEBHOOK_SIGNING_SECRET`). */
56
+ secret: string;
57
+ /**
58
+ * Reject deliveries whose timestamp is older than this many seconds (replay
59
+ * defense). Set to 0 to disable the freshness check. @default 300
60
+ */
61
+ toleranceSeconds?: number;
62
+ }
63
+ /**
64
+ * Verify a Rendex webhook signature. Returns `true` only when the signature
65
+ * matches AND (unless disabled) the timestamp is within `toleranceSeconds`.
66
+ * Never throws on a bad signature — returns `false` so callers can reply 400.
67
+ *
68
+ * ```ts
69
+ * // In your webhook handler (raw body string + headers):
70
+ * const ok = await verifyWebhook({
71
+ * payload: rawBody,
72
+ * signature: req.headers["x-rendex-signature"],
73
+ * timestamp: req.headers["x-rendex-timestamp"],
74
+ * secret: process.env.WEBHOOK_SIGNING_SECRET,
75
+ * });
76
+ * if (!ok) return res.status(400).end();
77
+ * const payload: RendexWebhookPayload = JSON.parse(rawBody);
78
+ * if (payload.event === "watch.changed") { ... }
79
+ * ```
80
+ */
81
+ export declare function verifyWebhook(options: VerifyWebhookOptions): Promise<boolean>;
82
+ //# sourceMappingURL=webhook.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook.d.ts","sourceRoot":"","sources":["../src/webhook.ts"],"names":[],"mappings":"AAeA,8CAA8C;AAC9C,MAAM,MAAM,kBAAkB,GAC1B,eAAe,GACf,YAAY,GACZ,iBAAiB,GAKjB,eAAe,GACf,iBAAiB,GACjB,aAAa,CAAC;AAElB;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IAEpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEpF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,yCAAyC;AACzC,MAAM,WAAW,oBAAoB;IACnC;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,SAAS,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAoBD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAuBnF"}
@@ -0,0 +1,67 @@
1
+ // ─── Rendex Webhook Verification ─────────────────────────────────────
2
+ // Verify the HMAC-SHA256 signature Rendex attaches to every webhook (async
3
+ // job results AND Rendex Watch change alerts). Zero-dependency: uses the Web
4
+ // Crypto API (`crypto.subtle`), available in Node 18+, Bun, Workers, Deno, and
5
+ // browsers. The contract mirrors the server exactly (services/webhook.ts):
6
+ //
7
+ // message = `${timestamp}.${rawBody}`
8
+ // signature = hex( HMAC-SHA256(secret, message) )
9
+ //
10
+ // delivered as headers:
11
+ // x-rendex-signature hex HMAC-SHA256 (compare against this)
12
+ // x-rendex-timestamp unix seconds (used in the signed message; replay window)
13
+ // x-rendex-event the event name (e.g. "watch.changed")
14
+ // x-rendex-delivery-id stable across retries (idempotency key)
15
+ const encoder = new TextEncoder();
16
+ /** Constant-time comparison of two hex strings (avoids leaking via early-exit). */
17
+ function timingSafeEqualHex(a, b) {
18
+ if (a.length !== b.length)
19
+ return false;
20
+ let mismatch = 0;
21
+ for (let i = 0; i < a.length; i++) {
22
+ mismatch |= a.charCodeAt(i) ^ b.charCodeAt(i);
23
+ }
24
+ return mismatch === 0;
25
+ }
26
+ function toHex(buffer) {
27
+ return Array.from(new Uint8Array(buffer))
28
+ .map((b) => b.toString(16).padStart(2, "0"))
29
+ .join("");
30
+ }
31
+ /**
32
+ * Verify a Rendex webhook signature. Returns `true` only when the signature
33
+ * matches AND (unless disabled) the timestamp is within `toleranceSeconds`.
34
+ * Never throws on a bad signature — returns `false` so callers can reply 400.
35
+ *
36
+ * ```ts
37
+ * // In your webhook handler (raw body string + headers):
38
+ * const ok = await verifyWebhook({
39
+ * payload: rawBody,
40
+ * signature: req.headers["x-rendex-signature"],
41
+ * timestamp: req.headers["x-rendex-timestamp"],
42
+ * secret: process.env.WEBHOOK_SIGNING_SECRET,
43
+ * });
44
+ * if (!ok) return res.status(400).end();
45
+ * const payload: RendexWebhookPayload = JSON.parse(rawBody);
46
+ * if (payload.event === "watch.changed") { ... }
47
+ * ```
48
+ */
49
+ export async function verifyWebhook(options) {
50
+ const { payload, signature, timestamp, secret, toleranceSeconds = 300 } = options;
51
+ if (!payload || !signature || !timestamp || !secret)
52
+ return false;
53
+ // Optional replay-window check.
54
+ if (toleranceSeconds > 0) {
55
+ const ts = Number(timestamp);
56
+ if (!Number.isFinite(ts))
57
+ return false;
58
+ const ageSeconds = Math.abs(Date.now() / 1000 - ts);
59
+ if (ageSeconds > toleranceSeconds)
60
+ return false;
61
+ }
62
+ const key = await crypto.subtle.importKey("raw", encoder.encode(secret), { name: "HMAC", hash: "SHA-256" }, false, ["sign"]);
63
+ const sig = await crypto.subtle.sign("HMAC", key, encoder.encode(`${timestamp}.${payload}`));
64
+ const expected = toHex(sig);
65
+ return timingSafeEqualHex(expected, signature.trim().toLowerCase());
66
+ }
67
+ //# sourceMappingURL=webhook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook.js","sourceRoot":"","sources":["../src/webhook.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,2EAA2E;AAC3E,6EAA6E;AAC7E,+EAA+E;AAC/E,2EAA2E;AAC3E,EAAE;AACF,0CAA0C;AAC1C,oDAAoD;AACpD,EAAE;AACF,wBAAwB;AACxB,gEAAgE;AAChE,kFAAkF;AAClF,+DAA+D;AAC/D,iEAAiE;AAsEjE,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAElC,mFAAmF;AACnF,SAAS,kBAAkB,CAAC,CAAS,EAAE,CAAS;IAC9C,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,QAAQ,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,QAAQ,KAAK,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,KAAK,CAAC,MAAmB;IAChC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;SACtC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC3C,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAA6B;IAC/D,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC;IAClF,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAElE,gCAAgC;IAChC,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,EAAE,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC;QACvC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC;QACpD,IAAI,UAAU,GAAG,gBAAgB;YAAE,OAAO,KAAK,CAAC;IAClD,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CACvC,KAAK,EACL,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EACtB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EACjC,KAAK,EACL,CAAC,MAAM,CAAC,CACT,CAAC;IACF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,SAAS,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC;IAC7F,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IAE5B,OAAO,kBAAkB,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AACtE,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@copperline/rendex",
3
- "version": "1.4.1",
4
- "description": "Official TypeScript SDK for Rendex — render HTML or Markdown to images, generate PDFs, and capture screenshots",
3
+ "version": "1.5.1",
4
+ "description": "Official TypeScript SDK for Rendex — render HTML or Markdown to images, generate PDFs, capture screenshots, and monitor pages for changes with Rendex Watch",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",