{"_id":"@a1local/nuxt-adpages","name":"@a1local/nuxt-adpages","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@a1local/nuxt-adpages","version":"0.1.0","description":"Dependency-light Nuxt module helpers for local-service schema, metadata QA, and UTM capture.","type":"module","license":"MIT","author":{"name":"A1 Local","url":"https://a1local.com.au/"},"homepage":"https://github.com/a1local/nuxt-adpages#readme","repository":{"type":"git","url":"git+https://github.com/a1local/nuxt-adpages.git"},"bugs":{"url":"https://github.com/a1local/nuxt-adpages/issues"},"funding":{"type":"custom","url":"https://a1local.com.au/extensions/"},"publishConfig":{"access":"public"},"sideEffects":false,"main":"./dist/module.js","types":"./dist/module.d.ts","exports":{".":{"types":"./dist/module.d.ts","default":"./dist/module.js"},"./runtime/schema":{"types":"./dist/runtime/schema.d.ts","default":"./dist/runtime/schema.js"}},"scripts":{"build":"tsc -p tsconfig.json","lint":"tsc --noEmit -p tsconfig.json","prepublishOnly":"npm run build"},"keywords":["nuxt","nuxt-module","local-seo","landing-pages","schema-org","utm"],"peerDependencies":{"nuxt":">=3.0.0 || >=4.0.0"},"peerDependenciesMeta":{"nuxt":{"optional":true}},"devDependencies":{"typescript":"^5.9.3"},"nuxt":{"compatibility":{"nuxt":">=3.0.0"}},"gitHead":"0051b08e303680b1f851a3980ab4207b2b954405","_id":"@a1local/nuxt-adpages@0.1.0","_nodeVersion":"25.9.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-JY4h/HHNpnVNH1FUg/mGugGZdabC8XdkyKP+mODF19/18k6F3BEJhyZqNzYVrnfDHmv+/Nst/h5A9sh1RHQQRA==","shasum":"45ce73c46dd9cf8cab93d1a6c7a85a4774c8503f","tarball":"https://registry.npmjs.org/@a1local/nuxt-adpages/-/nuxt-adpages-0.1.0.tgz","fileCount":11,"unpackedSize":53216,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDGhix2lCPHfMMLMI+Bsphq8xI2zne/jm5onKgW60M9swIgEzY8l7He9iiMuGMiemdMrU/HF5rkCIKO2nM/03+aI2M="}]},"_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/nuxt-adpages_0.1.0_1779689359883_0.8767942116112808"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-25T06:09:19.770Z","0.1.0":"2026-05-25T06:09:20.021Z","modified":"2026-05-25T06:09:20.235Z"},"maintainers":[{"name":"a1local","email":"extensions@a1local.com.au"}],"description":"Dependency-light Nuxt module helpers for local-service schema, metadata QA, and UTM capture.","homepage":"https://github.com/a1local/nuxt-adpages#readme","keywords":["nuxt","nuxt-module","local-seo","landing-pages","schema-org","utm"],"repository":{"type":"git","url":"git+https://github.com/a1local/nuxt-adpages.git"},"author":{"name":"A1 Local","url":"https://a1local.com.au/"},"bugs":{"url":"https://github.com/a1local/nuxt-adpages/issues"},"license":"MIT","readme":"# @a1local/nuxt-adpages\n\nDependency-light Nuxt helpers for local-service landing pages. The package ships a Nuxt module-shaped export plus plain runtime helpers for LocalBusiness JSON-LD, metadata QA, and UTM capture without making network calls.\n\n## What is included\n\n- A Nuxt module object that can inject LocalBusiness JSON-LD into `app.head.script`.\n- Runtime helpers for building schema.org LocalBusiness JSON-LD.\n- Nuxt-shaped SEO metadata helpers for `useSeoMeta()` and `useHead()`.\n- Metadata checklist helpers for title, description, canonical, Open Graph, local signals, and indexability.\n- UTM builder, inspector, validator, and server-side cookie capture plan helpers.\n\n## Install\n\n```sh\nnpm install @a1local/nuxt-adpages\n```\n\nNuxt is an optional peer dependency so the package can be built and tested without installing a Nuxt app. Real projects should install it inside a Nuxt 3 or Nuxt 4 workspace.\n\n## Nuxt module\n\nAdd the module to `nuxt.config.ts`:\n\n```ts\nexport default defineNuxtConfig({\n  modules: [\"@a1local/nuxt-adpages\"],\n  adpages: {\n    business: {\n      name: \"Example Plumbing\",\n      businessType: \"Plumber\",\n      url: \"https://example.com\",\n      telephone: \"+61 8 0000 0000\",\n      areaServed: [\"Perth\", \"Fremantle\"],\n      services: [\"Emergency plumbing\", \"Blocked drains\"]\n    }\n  }\n});\n```\n\nThe module writes a single JSON-LD script into Nuxt app head config. It does not register remote services, analytics, or third-party calls.\n\n## Runtime schema helper\n\nUse the head-script helper directly if the site needs per-page schema:\n\n```ts\nimport { createNuxtLocalBusinessHeadScript } from \"@a1local/nuxt-adpages\";\n\nuseHead({\n  script: [\n    createNuxtLocalBusinessHeadScript({\n      name: \"Example Plumbing\",\n      areaServed: [\"Perth\"],\n      services: [\"Hot water repairs\"]\n    })\n  ]\n});\n```\n\n## Metadata helpers\n\nGenerate Nuxt-compatible page metadata:\n\n```ts\nimport { buildLocalServiceSeoMeta, checkNuxtPageMetadata } from \"@a1local/nuxt-adpages\";\n\nconst meta = buildLocalServiceSeoMeta({\n  businessName: \"Example Plumbing\",\n  service: \"Emergency plumber\",\n  area: \"Perth\",\n  baseUrl: \"https://example.com\",\n  path: \"/emergency-plumber/perth/\"\n});\n\nuseSeoMeta({\n  title: meta.title,\n  description: meta.description,\n  ogTitle: meta.ogTitle,\n  ogDescription: meta.ogDescription,\n  ogUrl: meta.ogUrl\n});\n\nuseHead({ link: meta.link });\n\nconst result = checkNuxtPageMetadata(meta, {\n  service: \"Emergency plumber\",\n  area: \"Perth\",\n  businessName: \"Example Plumbing\"\n});\n```\n\nThe checklist result includes `ok`, `score`, `missing`, `warnings`, and item-level messages suitable for build logs, CI output, or a future dev overlay.\n\n## UTM helpers\n\nBuild and inspect UTM URLs:\n\n```ts\nimport { buildUtmUrl, createNuxtUtmCapturePlan } from \"@a1local/nuxt-adpages\";\n\nconst url = buildUtmUrl(\"https://example.com/quote\", {\n  source: \"google\",\n  medium: \"cpc\",\n  campaign: \"emergency-plumber-perth\"\n});\n\nconst plan = createNuxtUtmCapturePlan(url);\n```\n\n`createNuxtUtmCapturePlan()` returns plain data plus a `Set-Cookie` header string when UTM parameters are present. Append that header from server middleware or a Nitro handler; client-only middleware cannot safely set an HTTP-only attribution cookie.\n\n## Publish status\n\nThis is an initial Nuxt package scaffold. Before publishing, validate it in a real Nuxt starter, finalize package ownership, add examples, and publish support/privacy URLs.\n","readmeFilename":"README.md","_rev":"1-0837123dd8762d0553e8c154ab5a9333"}