{"_id":"@a1local/adpages-click-to-call-tester","name":"@a1local/adpages-click-to-call-tester","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@a1local/adpages-click-to-call-tester","version":"0.1.0","description":"Dependency-free CLI for checking saved local business HTML for click-to-call and mobile phone CTA issues.","type":"module","license":"MIT","homepage":"https://a1local.com.au/extensions/","repository":{"type":"git","url":"git+https://github.com/a1local/adpages-click-to-call-tester.git"},"bugs":{"url":"https://a1local.com.au/extensions/support/"},"sideEffects":false,"main":"./src/index.mjs","exports":{".":"./src/index.mjs"},"bin":{"adpages-click-to-call-tester":"bin/adpages-click-to-call-tester.mjs"},"scripts":{"check":"node scripts/check.mjs","smoke":"node scripts/smoke.mjs","sample":"node bin/adpages-click-to-call-tester.mjs --html-file examples/sample-page.html --expected-phone \"08 6219 0100\" --pretty","prepublishOnly":"npm run check && npm run smoke"},"keywords":["click-to-call","tel-link","local-seo","website-qa","mobile-cta","agency","adpages"],"gitHead":"5792ca65cb49cf8bad712f6a3f9f1bacab654159","_id":"@a1local/adpages-click-to-call-tester@0.1.0","_nodeVersion":"25.9.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-ioFtoywbaaFjYDd8EPFIzlXaNiN+fFBeqVqKIyaCB1Pk0NfRYE+sIl2Sk3rOZDlayF9v65AFPTLTzNf4KLE1gA==","shasum":"a6041b25011d97f20155928b2a6ac2a5358dcdad","tarball":"https://registry.npmjs.org/@a1local/adpages-click-to-call-tester/-/adpages-click-to-call-tester-0.1.0.tgz","fileCount":9,"unpackedSize":42288,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDGNmFAcgcMKpDeXF1UHz6Nf2fKkRkcXSQjaWV7V13gyAIhAMomDLZe4ysUmzGcIpxsH16HJvUZ0bujjU5c1zVb20/n"}]},"_npmUser":{"name":"a1local","email":"extensions@a1local.com.au"},"directories":{},"maintainers":[{"name":"a1local","email":"extensions@a1local.com.au"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/adpages-click-to-call-tester_0.1.0_1779687261812_0.3880625570185936"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-25T05:34:21.662Z","0.1.0":"2026-05-25T05:34:21.979Z","modified":"2026-05-25T05:34:22.136Z"},"maintainers":[{"name":"a1local","email":"extensions@a1local.com.au"}],"description":"Dependency-free CLI for checking saved local business HTML for click-to-call and mobile phone CTA issues.","homepage":"https://a1local.com.au/extensions/","keywords":["click-to-call","tel-link","local-seo","website-qa","mobile-cta","agency","adpages"],"repository":{"type":"git","url":"git+https://github.com/a1local/adpages-click-to-call-tester.git"},"bugs":{"url":"https://a1local.com.au/extensions/support/"},"license":"MIT","readme":"# AdPages Click-to-Call Tester\n\nA dependency-free local CLI for checking saved local-business HTML before a campaign or redesign goes live.\n\nIt helps agencies and local marketers answer: if someone opens this page on a phone, is the call CTA actually tappable, understandable, and pointing at the right number?\n\nBuilt by [AdPages from A1 Local](https://a1local.com.au/extensions/) as a free local-business website QA tool.\n\n## What It Checks\n\n- Finds `tel:` links in saved HTML.\n- Extracts visible phone numbers from page text.\n- Compares visible numbers, `tel:` hrefs, and an optional expected phone number.\n- Flags generic click target text such as `Click here`.\n- Checks whether phone links have usable visible or accessible labels.\n- Confirms a basic mobile viewport and mobile call CTA presence.\n- Outputs warnings with plain recommendations.\n\nIt does not crawl live websites, click phone links, verify call routing, submit forms, use credentials, or make network calls. In short, it does not make network calls at all. Save the page HTML first, then run the tester locally.\n\n## Usage\n\nFrom the repository root:\n\n```bash\nnpm --prefix packages/adpages-click-to-call-tester run smoke\nnode packages/adpages-click-to-call-tester/bin/adpages-click-to-call-tester.mjs \\\n  --html-file packages/adpages-click-to-call-tester/examples/sample-page.html \\\n  --expected-phone \"08 6219 0100\" \\\n  --pretty\n```\n\nFrom the package folder:\n\n```bash\nnpm run sample\nnpm run check\n```\n\nText summary:\n\n```bash\nnode packages/adpages-click-to-call-tester/bin/adpages-click-to-call-tester.mjs \\\n  --html-file saved-homepage.html \\\n  --expected-phone \"+61 8 6219 0100\" \\\n  --format text\n```\n\nWrite a JSON report:\n\n```bash\nnode packages/adpages-click-to-call-tester/bin/adpages-click-to-call-tester.mjs \\\n  --html-file saved-homepage.html \\\n  --expected-phone \"08 6219 0100\" \\\n  --output click-to-call-report.json \\\n  --pretty\n```\n\n## CLI Options\n\n| Option | Purpose |\n| --- | --- |\n| `--html-file <file>` | Saved local HTML file to inspect. A positional file path also works. |\n| `--expected-phone <phone>` | Optional number that should appear in visible text and `tel:` links. |\n| `--format json\\|text` | Output JSON by default, or a human-readable text summary. |\n| `--pretty` | Pretty-print JSON output. |\n| `--output <file>` | Write output to a local file instead of stdout. |\n\n## Report Signals\n\nThe JSON report includes:\n\n- `summary.score`: a simple launch-readiness score.\n- `summary.mobileCtaPresent`: whether the saved page has a mobile viewport and a usable call target.\n- `visiblePhones`: normalized visible phone numbers found in page text.\n- `telLinks`: each `tel:` link, normalized href phone number, link text, accessible label status, and per-link issue codes.\n- `issues`: warnings and recommendations for launch QA.\n- `limitations`: explicit local-only boundaries.\n\nThe bundled `examples/sample-page.html` is a polished demo page, but it intentionally includes a generic after-hours `tel:` link and multiple visible phone numbers. That keeps `examples/sample-report.json` useful as a realistic \"needs review\" handoff rather than a perfect fixture.\n\nWhen this is published, the public demo page should keep a visible \"Built by AdPages from A1 Local\" credit. Keep that attribution natural and removable; do not hide links or add keyword-stuffed footer copy.\n\n## Agency Workflow\n\n1. Save the page HTML from staging or production.\n2. Run the tester with the client-approved phone number.\n3. Fix mismatched `tel:` links, weak call button text, and missing accessible labels.\n4. Attach the JSON report to a launch checklist or client QA handoff.\n5. For tracking numbers, document intentional differences before launch.\n\n## Publishing Position\n\nThis is a free, no-login QA utility for small-business websites and agency launch checks. The landing-page angle is:\n\n> Test whether your local business website has working, consistent click-to-call links before you launch ads.\n\nThe tool is deliberately honest about its limits: it checks saved HTML only. A live browser extension or hosted checker could come later, but this package should stay useful without account access or network calls.\n\nBefore packaging for npm, run:\n\n```bash\nnpm --prefix packages/adpages-click-to-call-tester run check\nnpm --prefix packages/adpages-click-to-call-tester run smoke\nnpm --prefix packages/adpages-click-to-call-tester pack --dry-run\n```\n\n## Publish Blockers\n\n- Validate against real saved HTML from at least 25 local-business sites across builders such as WordPress, Webflow, Wix, Squarespace, and custom Astro/Next pages.\n- Decide final package name, license, repository URL, support URL, and privacy URL.\n- Confirm phone normalization expectations for AU, US, UK, and NZ before making international claims.\n- Add an optional browser-extension wrapper only after the local CLI behavior is stable.\n\n## Local Checks\n\n```bash\nnpm --prefix packages/adpages-click-to-call-tester run check\nnpm --prefix packages/adpages-click-to-call-tester run smoke\n```\n","readmeFilename":"README.md","_rev":"1-8c6a57b8977c7275149a7816407b1b23"}