azon_seeker/scripts/verify-production-endpoint.mjs
Ktight 90110a48f0
Feat/advertisement (#26)
* feat: add Amazon collection metadata and reliable sync

* fix: route extension sync through configured server

* chore: release extension v0.7.13

* fix: handle extension ports across BFCache navigation

* fix: classify bottom Sponsored Brands video placements

* fix: exclude hidden Amazon ad cards

* fix: derive Amazon result page from URL

* fix: ignore hidden Amazon sponsored products

* fix: preserve base Amazon product collection

* fix: bind Amazon results to visible page

* fix: classify visible Amazon ad formats

* fix: wait for lazy Amazon ad modules

* perf: reduce Amazon lazy-load scroll stops

* fix: classify Amazon sponsored brand and video search ads

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix: collect Shop by type thematic SP ads via redirect chains without data-asin

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix: classify sponsored ads across new Amazon templates

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: PetrichorFun <127877748+PetrichorFun@users.noreply.github.com>
2026-09-10 18:03:11 +08:00

30 lines
1.2 KiB
JavaScript

import { readdir, readFile } from 'node:fs/promises';
import { join } from 'node:path';
const background = await readFile('extension/dist/background/index.mjs', 'utf8');
async function readJavaScriptFiles(directory) {
const entries = await readdir(directory, { withFileTypes: true });
const contents = await Promise.all(
entries.map(async (entry) => {
const path = join(directory, entry.name);
if (entry.isDirectory()) return readJavaScriptFiles(path);
if (!/\.(?:m?js)$/.test(entry.name)) return '';
return readFile(path, 'utf8');
}),
);
return contents.flat().join('\n');
}
const allJavaScript = await readJavaScriptFiles('extension/dist');
if (!background.includes('amzplugin.rekeymed.com')) {
throw new Error('Production background bundle does not target the public server.');
}
if (background.includes('127.0.0.1:18000')) {
throw new Error('Production background bundle still contains the local API endpoint.');
}
if (!allJavaScript.includes('wss://') || !background.includes('https://')) {
throw new Error('Production bundle is missing secure HTTP/WebSocket protocols.');
}
console.log('Production endpoint verification passed.');