mcp-scraper 0.44.3 → 0.44.4

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
@@ -90,7 +90,7 @@ Build the branded one-click bundle:
90
90
  npm run build:mcpb
91
91
  ```
92
92
 
93
- The generated bundle is written to `build/mcpb/mcp-scraper-<version>.mcpb` and copied to `public/downloads/` for the hosted download. The current public bundle is `https://mcpscraper.dev/downloads/mcp-scraper.mcpb` (`0.44.3`, SHA-256 `421ad2771f6f4790e4122b88071d293659947dd37b06d7ed491a864f9484179e`). Install it by opening or dragging it into Claude Desktop. Claude displays the `MCP Scraper` install card, icon, and API-key configuration field from the bundle manifest.
93
+ The generated bundle is written to `build/mcpb/mcp-scraper-<version>.mcpb` and copied to `public/downloads/` for the hosted download. The current public bundle is `https://mcpscraper.dev/downloads/mcp-scraper.mcpb` (`0.44.4`, SHA-256 `707dbcce1bafc04fc49f3a12cfc4ab43710e686e2f31102767ed120a3e8ff474`). Install it by opening or dragging it into Claude Desktop. Claude displays the `MCP Scraper` install card, icon, and API-key configuration field from the bundle manifest.
94
94
 
95
95
  The MCPB install exposes every tool — web-intelligence plus all `browser_*` tools — through the one `mcp-scraper` server.
96
96
 
@@ -25458,7 +25458,7 @@ function rootDomain() {
25458
25458
  return configured.replace(/^https?:\/\//i, "").replace(/^www\./i, "").replace(/\/.*$/, "").replace(/\.+$/, "").toLowerCase();
25459
25459
  }
25460
25460
  function localSourcebookPublicUrls(category, state, slug2) {
25461
- const categoryUrl = `https://${category}.${rootDomain()}`;
25461
+ const categoryUrl = `https://${CATEGORY_PUBLIC_SLUGS[category]}.${rootDomain()}`;
25462
25462
  const statePath = `/${state.toLowerCase()}`;
25463
25463
  const profilePath = `${statePath}/${slug2}/`;
25464
25464
  const reviewsPath = `${statePath}/${slug2}/reviews`;
@@ -25479,11 +25479,20 @@ function localSourcebookPublicationLinks(submission) {
25479
25479
  isLive: submission.status === "published" && submission.publishedRevision !== null
25480
25480
  };
25481
25481
  }
25482
- var DEFAULT_ROOT_DOMAIN;
25482
+ var DEFAULT_ROOT_DOMAIN, CATEGORY_PUBLIC_SLUGS;
25483
25483
  var init_local_sourcebook_public_urls = __esm({
25484
25484
  "src/api/local-sourcebook-public-urls.ts"() {
25485
25485
  "use strict";
25486
25486
  DEFAULT_ROOT_DOMAIN = "localsourcebook.com";
25487
+ CATEGORY_PUBLIC_SLUGS = {
25488
+ home: "home-services",
25489
+ professional: "professional",
25490
+ restaurants: "restaurants",
25491
+ financial: "financial",
25492
+ realestate: "realestate",
25493
+ auto: "auto",
25494
+ wellness: "wellness"
25495
+ };
25487
25496
  }
25488
25497
  });
25489
25498
 
@@ -36818,6 +36827,18 @@ var init_local_sourcebook_governance = __esm({
36818
36827
  });
36819
36828
 
36820
36829
  // src/api/local-sourcebook-routes.ts
36830
+ function withCanonicalLocalSourcebookUrls(listing) {
36831
+ const category = import_zod30.z.enum(LOCAL_SOURCEBOOK_CATEGORIES).safeParse(listing.category);
36832
+ const state = typeof listing.state === "string" ? listing.state : "";
36833
+ const listingSlug = typeof listing.slug === "string" ? listing.slug : "";
36834
+ if (!category.success || !state || !listingSlug) return listing;
36835
+ const publicUrls = localSourcebookPublicUrls(category.data, state, listingSlug);
36836
+ return {
36837
+ ...listing,
36838
+ canonicalPaths: { profile: publicUrls.profilePath, reviews: publicUrls.reviewsPath },
36839
+ canonicalUrls: { profile: publicUrls.profileUrl, reviews: publicUrls.reviewsUrl }
36840
+ };
36841
+ }
36821
36842
  function acquisitionPlan(websiteUrl) {
36822
36843
  return {
36823
36844
  website: { startUrl: websiteUrl, mode: "broad_site_crawl", capture: ["homepage", "services", "products", "locations", "service_areas", "about", "team_staff", "contact", "policies"] },
@@ -36979,12 +37000,12 @@ var init_local_sourcebook_routes = __esm({
36979
37000
  }
36980
37001
  });
36981
37002
  publicLocalSourcebookApp = new import_hono17.Hono();
36982
- publicLocalSourcebookApp.get("/", async (c) => c.json({ ok: true, listings: await listAllPublicLocalSourcebook() }));
36983
- publicLocalSourcebookApp.get("/:category", async (c) => c.json({ ok: true, listings: await listAllPublicLocalSourcebook(c.req.param("category")) }));
36984
- publicLocalSourcebookApp.get("/:category/:state", async (c) => c.json({ ok: true, listings: await listPublicLocalSourcebook(c.req.param("category"), c.req.param("state").toLowerCase()) }));
37003
+ publicLocalSourcebookApp.get("/", async (c) => c.json({ ok: true, listings: (await listAllPublicLocalSourcebook()).map(withCanonicalLocalSourcebookUrls) }));
37004
+ publicLocalSourcebookApp.get("/:category", async (c) => c.json({ ok: true, listings: (await listAllPublicLocalSourcebook(c.req.param("category"))).map(withCanonicalLocalSourcebookUrls) }));
37005
+ publicLocalSourcebookApp.get("/:category/:state", async (c) => c.json({ ok: true, listings: (await listPublicLocalSourcebook(c.req.param("category"), c.req.param("state").toLowerCase())).map(withCanonicalLocalSourcebookUrls) }));
36985
37006
  publicLocalSourcebookApp.get("/:category/:state/:slug", async (c) => {
36986
37007
  const listing = await getPublicLocalSourcebook(c.req.param("category"), c.req.param("state").toLowerCase(), c.req.param("slug"));
36987
- return listing ? c.json({ ok: true, listing }) : c.json({ error: "not_found" }, 404);
37008
+ return listing ? c.json({ ok: true, listing: withCanonicalLocalSourcebookUrls(listing) }) : c.json({ error: "not_found" }, 404);
36988
37009
  });
36989
37010
  adminLocalSourcebookApp = new import_hono17.Hono();
36990
37011
  adminLocalSourcebookApp.use("*", adminAuth);
@@ -40998,7 +41019,7 @@ var PACKAGE_VERSION;
40998
41019
  var init_version = __esm({
40999
41020
  "src/version.ts"() {
41000
41021
  "use strict";
41001
- PACKAGE_VERSION = "0.44.3";
41022
+ PACKAGE_VERSION = "0.44.4";
41002
41023
  }
41003
41024
  });
41004
41025