@growth-labs/seo 0.2.7 → 0.3.0

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.
Files changed (101) hide show
  1. package/README.md +20 -7
  2. package/dist/_internal/state.d.ts +7 -0
  3. package/dist/_internal/state.d.ts.map +1 -0
  4. package/dist/_internal/state.js +18 -0
  5. package/dist/_internal/state.js.map +1 -0
  6. package/dist/index.d.ts +2 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +161 -44
  9. package/dist/index.js.map +1 -1
  10. package/dist/middleware/seo.d.ts.map +1 -1
  11. package/dist/middleware/seo.js +1 -1
  12. package/dist/middleware/seo.js.map +1 -1
  13. package/dist/options.d.ts +87 -40
  14. package/dist/options.d.ts.map +1 -1
  15. package/dist/options.js +22 -6
  16. package/dist/options.js.map +1 -1
  17. package/dist/routes/aeo-twin.js +1 -1
  18. package/dist/routes/aeo-twin.js.map +1 -1
  19. package/dist/routes/apple-news.d.ts.map +1 -1
  20. package/dist/routes/apple-news.js +3 -2
  21. package/dist/routes/apple-news.js.map +1 -1
  22. package/dist/routes/llms-full.js +1 -1
  23. package/dist/routes/llms-full.js.map +1 -1
  24. package/dist/routes/llms.js +1 -1
  25. package/dist/routes/llms.js.map +1 -1
  26. package/dist/routes/podcast-narration.d.ts.map +1 -1
  27. package/dist/routes/podcast-narration.js +3 -2
  28. package/dist/routes/podcast-narration.js.map +1 -1
  29. package/dist/routes/podcast.d.ts.map +1 -1
  30. package/dist/routes/podcast.js +3 -2
  31. package/dist/routes/podcast.js.map +1 -1
  32. package/dist/routes/revalidate.d.ts.map +1 -1
  33. package/dist/routes/revalidate.js +5 -3
  34. package/dist/routes/revalidate.js.map +1 -1
  35. package/dist/routes/robots.d.ts.map +1 -1
  36. package/dist/routes/robots.js +9 -3
  37. package/dist/routes/robots.js.map +1 -1
  38. package/dist/routes/rss.d.ts.map +1 -1
  39. package/dist/routes/rss.js +3 -2
  40. package/dist/routes/rss.js.map +1 -1
  41. package/dist/routes/sitemap-articles.js +1 -1
  42. package/dist/routes/sitemap-articles.js.map +1 -1
  43. package/dist/routes/sitemap-index.d.ts.map +1 -1
  44. package/dist/routes/sitemap-index.js +3 -2
  45. package/dist/routes/sitemap-index.js.map +1 -1
  46. package/dist/routes/sitemap-markdown.js +1 -1
  47. package/dist/routes/sitemap-markdown.js.map +1 -1
  48. package/dist/routes/sitemap-pages.js +1 -1
  49. package/dist/routes/sitemap-pages.js.map +1 -1
  50. package/dist/routes/sitemap-products.js +1 -1
  51. package/dist/routes/sitemap-products.js.map +1 -1
  52. package/dist/routes/sitemap-videos.js +1 -1
  53. package/dist/routes/sitemap-videos.js.map +1 -1
  54. package/dist/runtime.d.ts +1 -5
  55. package/dist/runtime.d.ts.map +1 -1
  56. package/dist/runtime.js +3 -5
  57. package/dist/runtime.js.map +1 -1
  58. package/dist/site-url-core.d.ts +10 -0
  59. package/dist/site-url-core.d.ts.map +1 -0
  60. package/dist/site-url-core.js +46 -0
  61. package/dist/site-url-core.js.map +1 -0
  62. package/dist/site-url.d.ts +5 -0
  63. package/dist/site-url.d.ts.map +1 -0
  64. package/dist/site-url.js +9 -0
  65. package/dist/site-url.js.map +1 -0
  66. package/dist/utils/apple-news-rss.d.ts +2 -2
  67. package/dist/utils/apple-news-rss.d.ts.map +1 -1
  68. package/dist/utils/define-content-provider.d.ts +61 -0
  69. package/dist/utils/define-content-provider.d.ts.map +1 -0
  70. package/dist/utils/define-content-provider.js +38 -0
  71. package/dist/utils/define-content-provider.js.map +1 -0
  72. package/dist/utils/index.d.ts +2 -0
  73. package/dist/utils/index.d.ts.map +1 -1
  74. package/dist/utils/index.js +2 -0
  75. package/dist/utils/index.js.map +1 -1
  76. package/dist/utils/json-ld/organization.d.ts +2 -2
  77. package/dist/utils/json-ld/organization.d.ts.map +1 -1
  78. package/dist/utils/json-ld/organization.js.map +1 -1
  79. package/dist/utils/json-ld/website.d.ts +2 -2
  80. package/dist/utils/json-ld/website.d.ts.map +1 -1
  81. package/dist/utils/json-ld/website.js.map +1 -1
  82. package/dist/utils/podcast.d.ts +2 -2
  83. package/dist/utils/podcast.d.ts.map +1 -1
  84. package/dist/utils/podcast.js.map +1 -1
  85. package/dist/utils/robots.d.ts +13 -2
  86. package/dist/utils/robots.d.ts.map +1 -1
  87. package/dist/utils/robots.js +4 -4
  88. package/dist/utils/robots.js.map +1 -1
  89. package/dist/utils/rss.d.ts +2 -2
  90. package/dist/utils/rss.d.ts.map +1 -1
  91. package/dist/utils/rss.js.map +1 -1
  92. package/dist/utils/seo-head.d.ts +22 -0
  93. package/dist/utils/seo-head.d.ts.map +1 -0
  94. package/dist/utils/seo-head.js +40 -0
  95. package/dist/utils/seo-head.js.map +1 -0
  96. package/dist/vite-plugin.d.ts.map +1 -1
  97. package/dist/vite-plugin.js +2 -2
  98. package/dist/vite-plugin.js.map +1 -1
  99. package/package.json +8 -4
  100. package/src/components/AeoHead.astro +2 -1
  101. package/src/components/SeoHead.astro +30 -10
package/README.md CHANGED
@@ -50,7 +50,7 @@ For paid publications where members see the full body and verified Googlebot get
50
50
 
51
51
  ```typescript
52
52
  seo({
53
- site: 'https://fronts.co',
53
+ site: { envVar: 'SITE_URL' },
54
54
  organization: { name: 'Fronts', logo: 'https://fronts.co/logo.png' },
55
55
  aeoTwins: {
56
56
  mode: 'middleware',
@@ -67,6 +67,18 @@ seo({
67
67
 
68
68
  Gated articles need `prerender: false` on their route file — enforced at build time via the prerender-gated-content guard.
69
69
 
70
+ ## Site URL Resolution
71
+
72
+ `site` accepts three forms:
73
+
74
+ ```typescript
75
+ seo({ site: 'https://fronts.co', ... })
76
+ seo({ site: () => 'https://fronts.co', ... })
77
+ seo({ site: { envVar: 'SITE_URL' }, ... })
78
+ ```
79
+
80
+ String values and resolver function return values are validated as URLs when Astro config is parsed. `{ envVar }` is resolved by runtime routes and head components from the standard Cloudflare Workers env binding (`cloudflare:workers`), then validated as a URL. `process.env` is only a Node/test fallback for local tooling; consumers do not need `nodejs_compat`, `process.env`, or a Fronts-local runtime shim for site URL resolution.
81
+
70
82
  ## wrangler.toml (required for middleware/both modes)
71
83
 
72
84
  ```toml
@@ -134,19 +146,20 @@ export default {
134
146
  - `/podcast.xml`, `/listen.xml`
135
147
  - `POST /_seo/revalidate` — CMS webhook target (when `onDemandRevalidation: true`)
136
148
 
137
- **Head-tag component** (`<AeoHead />`):
138
- - Consumers import `import AeoHead from '@growth-labs/seo/components/AeoHead.astro'` and render `<AeoHead />` inside their layout's `<head>`. Required because integrations can't directly inject arbitrary HTML into every page's `<head>`.
139
- - Emits the Apple News discovery link (`<link rel="alternate" type="application/rss+xml">`) when `appleNews.discoveryLink: true`.
140
- - Emits a per-page markdown twin link (`<link rel="alternate" type="text/markdown" href="<twinUrl>">`) for discoverability on prerendered HTML served by Cloudflare Assets where middleware doesn't run.
149
+ **Head-tag components**:
150
+ - `<SeoHead />` emits `<title>`, description, canonical, robots with `max-image-preview:large`, hreflang, OG/Twitter fields, Apple News discovery, markdown twin links, and JSON-LD. Use it in layouts instead of local meta shims.
151
+ - JSON-LD includes WebSite for non-content pages, Article/NewsArticle or Product for content pages, and VideoObject / AudioObject when `ContentItem.video` or `ContentItem.audio` is present.
152
+ - For `@growth-labs/opengraph`, pass `getOgImageUrl()` output as `item.image` or `defaults.defaultImage`; SeoHead uses that URL for `og:image` and `twitter:image`.
153
+ - `<AeoHead />` remains available standalone when a site only wants Apple News discovery and markdown twin links.
141
154
 
142
155
  ## Runtime behavior
143
156
 
144
- `@growth-labs/seo` already self-seeds config through `virtual:growth-labs/seo/config`. Runtime entrypoints now also resolve bindings from the standard Cloudflare surfaces instead of requiring a package-specific `locals.runtime` shim:
157
+ `@growth-labs/seo` self-seeds config through `virtual:growth-labs/seo/config`. Runtime entrypoints resolve bindings from the standard Cloudflare surfaces:
145
158
 
146
159
  - `cloudflare:workers` for env bindings
147
160
  - `Astro.locals.cfContext.waitUntil()` for background tasks
148
161
 
149
- Legacy `locals.runtime` remains a compatibility fallback, but consumer repos should not need a Growth Labs-specific runtime middleware just to make this package run.
162
+ For `site: { envVar: 'SITE_URL' }`, the package reads `SITE_URL` from the Worker env binding at request time. The Node `process.env` fallback exists only for tests and build tooling.
150
163
 
151
164
  **Build-time:**
152
165
  - Emits `.md` twins + summary twins for public items (static/both modes) under `dist/client/`.
@@ -0,0 +1,7 @@
1
+ import type { ResolvedSeoOptions } from '../options.js';
2
+ import type { ContentProvider } from '../types.js';
3
+ export declare function _setConfig(config: ResolvedSeoOptions): void;
4
+ export declare function _setContentProvider(provider: ContentProvider): void;
5
+ export declare function getConfig(): ResolvedSeoOptions;
6
+ export declare function getContentProvider(): ContentProvider | undefined;
7
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/_internal/state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAKlD,wBAAgB,UAAU,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAE3D;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAEnE;AAED,wBAAgB,SAAS,IAAI,kBAAkB,CAO9C;AAED,wBAAgB,kBAAkB,IAAI,eAAe,GAAG,SAAS,CAEhE"}
@@ -0,0 +1,18 @@
1
+ let _config = null;
2
+ let _contentProvider;
3
+ export function _setConfig(config) {
4
+ _config = config;
5
+ }
6
+ export function _setContentProvider(provider) {
7
+ _contentProvider = provider;
8
+ }
9
+ export function getConfig() {
10
+ if (!_config) {
11
+ throw new Error('@growth-labs/seo: integration not initialized. Ensure seo() is added to your Astro config.');
12
+ }
13
+ return _config;
14
+ }
15
+ export function getContentProvider() {
16
+ return _contentProvider;
17
+ }
18
+ //# sourceMappingURL=state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/_internal/state.ts"],"names":[],"mappings":"AAGA,IAAI,OAAO,GAA8B,IAAI,CAAA;AAC7C,IAAI,gBAA6C,CAAA;AAEjD,MAAM,UAAU,UAAU,CAAC,MAA0B;IACpD,OAAO,GAAG,MAAM,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAyB;IAC5D,gBAAgB,GAAG,QAAQ,CAAA;AAC5B,CAAC;AAED,MAAM,UAAU,SAAS;IACxB,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACd,4FAA4F,CAC5F,CAAA;IACF,CAAC;IACD,OAAO,OAAO,CAAA;AACf,CAAC;AAED,MAAM,UAAU,kBAAkB;IACjC,OAAO,gBAAgB,CAAA;AACxB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,9 @@
1
1
  import type { AstroIntegration } from 'astro';
2
2
  import { type SeoOptions } from './options.js';
3
3
  export default function seo(userOptions: SeoOptions): AstroIntegration;
4
+ export { getConfig, getContentProvider } from './_internal/state.js';
4
5
  export type { ResolvedSeoOptions, SeoOptions } from './options.js';
5
6
  export { resolveAeoTwins, seoOptionsSchema, validatedSeoOptionsSchema } from './options.js';
6
- export { getConfig, getContentProvider } from './state.js';
7
+ export { resolveSeoConfig, resolveSiteUrl } from './site-url-core.js';
7
8
  export type * from './types.js';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAmB,KAAK,UAAU,EAA6B,MAAM,cAAc,CAAA;AAW1F,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,WAAW,EAAE,UAAU,GAAG,gBAAgB,CAmOrE;AAeD,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AAC3F,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC1D,mBAAmB,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AAE7C,OAAO,EAAmB,KAAK,UAAU,EAA6B,MAAM,cAAc,CAAA;AAU1F,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,WAAW,EAAE,UAAU,GAAG,gBAAgB,CAyVrE;AAeD,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACpE,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AAC3F,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACrE,mBAAmB,YAAY,CAAA"}
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import { readdirSync, readFileSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
3
  import { fileURLToPath } from 'node:url';
4
+ import { _setConfig, _setContentProvider } from './_internal/state.js';
4
5
  import { resolveAeoTwins, validatedSeoOptionsSchema } from './options.js';
5
- import { _setConfig, _setContentProvider } from './state.js';
6
6
  import { SITEMAP_INDEX_PATH } from './utils/sitemap.js';
7
7
  import { validateJsonLd, validatePage, validatePrerenderedGatedRoutes } from './utils/validation.js';
8
8
  import { growthLabsSeoPlugin } from './vite-plugin.js';
@@ -17,10 +17,19 @@ export default function seo(userOptions) {
17
17
  if (userOptions.contentProvider) {
18
18
  _setContentProvider(userOptions.contentProvider);
19
19
  }
20
+ // ─── Provider-wired detection ───
21
+ // A "content source" is either the inline `contentProvider` function (main
22
+ // Worker only — deprecated) or a `contentProviderModule` specifier (canonical,
23
+ // survives the Cloudflare prerender Worker). When neither is set, we must not
24
+ // inject crawler-visible routes, because they would silently serve empty bodies
25
+ // and robots.txt would advertise the empty sitemap index to crawlers — the
26
+ // exact footgun 0.3.0 closes.
27
+ const providerWired = typeof userOptions.contentProvider === 'function' ||
28
+ (typeof options.contentProviderModule === 'string' && options.contentProviderModule.length > 0);
20
29
  return {
21
30
  name: '@growth-labs/seo',
22
31
  hooks: {
23
- 'astro:config:setup': ({ addMiddleware, injectRoute, updateConfig }) => {
32
+ 'astro:config:setup': ({ addMiddleware, injectRoute, updateConfig, logger }) => {
24
33
  updateConfig({
25
34
  vite: {
26
35
  plugins: [
@@ -32,113 +41,220 @@ export default function seo(userOptions) {
32
41
  },
33
42
  });
34
43
  addMiddleware({ entrypoint: resolveEntrypoint('./middleware/seo'), order: 'post' });
35
- // ─── Sitemaps ───
36
- injectRoute({
37
- pattern: SITEMAP_INDEX_PATH,
38
- entrypoint: resolveEntrypoint('./routes/sitemap-index'),
39
- prerender: false,
40
- });
41
- injectRoute({
42
- pattern: '/sitemap-articles.xml',
43
- entrypoint: resolveEntrypoint('./routes/sitemap-articles'),
44
- prerender: false,
45
- });
46
- injectRoute({
47
- pattern: '/sitemap-pages.xml',
48
- entrypoint: resolveEntrypoint('./routes/sitemap-pages'),
49
- prerender: false,
50
- });
51
- injectRoute({
52
- pattern: '/sitemap-videos.xml',
53
- entrypoint: resolveEntrypoint('./routes/sitemap-videos'),
54
- prerender: false,
55
- });
56
- if (options.commerce?.enabled) {
44
+ // ─── Deprecation warning for inline contentProvider ───
45
+ if (typeof userOptions.contentProvider === 'function') {
46
+ logger.warn('`contentProvider` (inline function) is deprecated and does not survive the ' +
47
+ 'Cloudflare prerender Worker. Move your provider into its own module and ' +
48
+ 'set `contentProviderModule: "/src/lib/content-provider.mjs"` instead. ' +
49
+ 'See packages-docs/seo-contentprovidermodule.md. The inline form will be ' +
50
+ 'removed in the next breaking release.');
51
+ }
52
+ // ─── Internally-inconsistent config throws ───
53
+ // Feature flags that only make sense with a content source. Failing
54
+ // here is louder than silently skipping the route injection below.
55
+ if (!providerWired) {
56
+ const needsProvider = [];
57
+ if (options.aeoTwins !== false)
58
+ needsProvider.push('aeoTwins');
59
+ if (options.rss)
60
+ needsProvider.push('rss: true');
61
+ if (options.llmsTxt)
62
+ needsProvider.push('llmsTxt: true');
63
+ if (options.llmsFullTxt)
64
+ needsProvider.push('llmsFullTxt: true');
65
+ if (options.flexibleSampling.enabled)
66
+ needsProvider.push('flexibleSampling.enabled: true');
67
+ if (options.appleNews?.enabled)
68
+ needsProvider.push('appleNews.enabled: true');
69
+ if (options.podcast?.enabled)
70
+ needsProvider.push('podcast.enabled: true');
71
+ if (options.audioNarration?.asPodcastFeed)
72
+ needsProvider.push('audioNarration.asPodcastFeed: true');
73
+ if (options.commerce?.enabled)
74
+ needsProvider.push('commerce.enabled: true');
75
+ if (needsProvider.length > 0) {
76
+ throw new Error(`@growth-labs/seo: ${needsProvider.join(', ')} require a content source, but ` +
77
+ 'neither `contentProvider` nor `contentProviderModule` is set.\n' +
78
+ ' Set `contentProviderModule: "/src/lib/content-provider.mjs"` whose ' +
79
+ 'default export is the ContentProvider function. See ' +
80
+ 'packages-docs/seo-contentprovidermodule.md for a worked D1-backed example.');
81
+ }
82
+ }
83
+ const injected = [];
84
+ const skipped = [];
85
+ // ─── Sitemaps (provider-wired gated) ───
86
+ if (providerWired) {
57
87
  injectRoute({
58
- pattern: '/sitemap-products.xml',
59
- entrypoint: resolveEntrypoint('./routes/sitemap-products'),
88
+ pattern: SITEMAP_INDEX_PATH,
89
+ entrypoint: resolveEntrypoint('./routes/sitemap-index'),
60
90
  prerender: false,
61
91
  });
92
+ injected.push(SITEMAP_INDEX_PATH);
93
+ injectRoute({
94
+ pattern: '/sitemap-articles.xml',
95
+ entrypoint: resolveEntrypoint('./routes/sitemap-articles'),
96
+ prerender: false,
97
+ });
98
+ injected.push('/sitemap-articles.xml');
99
+ injectRoute({
100
+ pattern: '/sitemap-pages.xml',
101
+ entrypoint: resolveEntrypoint('./routes/sitemap-pages'),
102
+ prerender: false,
103
+ });
104
+ injected.push('/sitemap-pages.xml');
105
+ injectRoute({
106
+ pattern: '/sitemap-videos.xml',
107
+ entrypoint: resolveEntrypoint('./routes/sitemap-videos'),
108
+ prerender: false,
109
+ });
110
+ injected.push('/sitemap-videos.xml');
111
+ if (options.commerce?.enabled) {
112
+ injectRoute({
113
+ pattern: '/sitemap-products.xml',
114
+ entrypoint: resolveEntrypoint('./routes/sitemap-products'),
115
+ prerender: false,
116
+ });
117
+ injected.push('/sitemap-products.xml');
118
+ }
119
+ else {
120
+ skipped.push({
121
+ pattern: '/sitemap-products.xml',
122
+ reason: 'commerce.enabled is false',
123
+ });
124
+ }
125
+ if (options.markdownSitemap && aeo && aeo.mode !== 'middleware') {
126
+ injectRoute({
127
+ pattern: '/sitemap-markdown.xml',
128
+ entrypoint: resolveEntrypoint('./routes/sitemap-markdown'),
129
+ prerender: false,
130
+ });
131
+ injected.push('/sitemap-markdown.xml');
132
+ }
133
+ else if (options.markdownSitemap) {
134
+ skipped.push({
135
+ pattern: '/sitemap-markdown.xml',
136
+ reason: aeo ? `aeoTwins.mode='${aeo.mode}'` : 'aeoTwins disabled',
137
+ });
138
+ }
62
139
  }
63
- // Markdown sitemap — only emitted when twin URLs exist (static or both mode).
64
- if (options.markdownSitemap && aeo && aeo.mode !== 'middleware') {
140
+ else {
141
+ for (const p of [
142
+ SITEMAP_INDEX_PATH,
143
+ '/sitemap-articles.xml',
144
+ '/sitemap-pages.xml',
145
+ '/sitemap-videos.xml',
146
+ '/sitemap-products.xml',
147
+ '/sitemap-markdown.xml',
148
+ ]) {
149
+ skipped.push({ pattern: p, reason: 'no contentProviderModule wired' });
150
+ }
151
+ }
152
+ // ─── robots.txt ───
153
+ // Inject only when we have something meaningful to emit: either a provider
154
+ // (so a Sitemap: line is worth advertising) or additionalRules the consumer
155
+ // configured. Otherwise the consumer can own /robots.txt themselves; we
156
+ // would only be shipping a no-op `User-agent: *\nAllow: /` anyway.
157
+ const robotsHasCustomRules = (options.robots.additionalRules?.length ?? 0) > 0;
158
+ if (providerWired || robotsHasCustomRules) {
65
159
  injectRoute({
66
- pattern: '/sitemap-markdown.xml',
67
- entrypoint: resolveEntrypoint('./routes/sitemap-markdown'),
160
+ pattern: '/robots.txt',
161
+ entrypoint: resolveEntrypoint('./routes/robots'),
68
162
  prerender: false,
69
163
  });
164
+ injected.push('/robots.txt');
70
165
  }
71
- // ─── Robots + llms.txt + llms-full.txt ───
72
- injectRoute({
73
- pattern: '/robots.txt',
74
- entrypoint: resolveEntrypoint('./routes/robots'),
75
- prerender: false,
76
- });
77
- if (options.llmsTxt) {
166
+ else {
167
+ skipped.push({
168
+ pattern: '/robots.txt',
169
+ reason: 'no contentProviderModule wired and no robots.additionalRules — consumer owns it',
170
+ });
171
+ }
172
+ // ─── llms.txt / llms-full.txt ───
173
+ if (options.llmsTxt && providerWired) {
78
174
  injectRoute({
79
175
  pattern: '/llms.txt',
80
176
  entrypoint: resolveEntrypoint('./routes/llms'),
81
177
  prerender: false,
82
178
  });
179
+ injected.push('/llms.txt');
83
180
  }
84
- if (options.llmsFullTxt) {
181
+ if (options.llmsFullTxt && providerWired) {
85
182
  injectRoute({
86
183
  pattern: '/llms-full.txt',
87
184
  entrypoint: resolveEntrypoint('./routes/llms-full'),
88
185
  prerender: false,
89
186
  });
187
+ injected.push('/llms-full.txt');
90
188
  }
91
189
  // ─── RSS ───
92
- if (options.rss) {
190
+ if (options.rss && providerWired) {
93
191
  injectRoute({
94
192
  pattern: '/feed.xml',
95
193
  entrypoint: resolveEntrypoint('./routes/rss'),
96
194
  prerender: false,
97
195
  });
196
+ injected.push('/feed.xml');
98
197
  }
99
198
  // ─── Apple News Publisher RSS ───
100
- if (options.appleNews?.enabled) {
199
+ if (options.appleNews?.enabled && providerWired) {
101
200
  injectRoute({
102
201
  pattern: options.appleNews.feedPath,
103
202
  entrypoint: resolveEntrypoint('./routes/apple-news'),
104
203
  prerender: false,
105
204
  });
205
+ injected.push(options.appleNews.feedPath);
106
206
  }
107
207
  // ─── Podcast ───
108
- if (options.podcast?.enabled) {
208
+ if (options.podcast?.enabled && providerWired) {
109
209
  injectRoute({
110
210
  pattern: options.podcast.feedPath,
111
211
  entrypoint: resolveEntrypoint('./routes/podcast'),
112
212
  prerender: false,
113
213
  });
214
+ injected.push(options.podcast.feedPath);
114
215
  }
115
216
  // ─── Narrated articles podcast feed ───
116
- if (options.audioNarration?.asPodcastFeed) {
217
+ if (options.audioNarration?.asPodcastFeed && providerWired) {
117
218
  injectRoute({
118
219
  pattern: options.audioNarration.podcastFeedPath,
119
220
  entrypoint: resolveEntrypoint('./routes/podcast-narration'),
120
221
  prerender: false,
121
222
  });
223
+ injected.push(options.audioNarration.podcastFeedPath);
122
224
  }
123
225
  // ─── Revalidation endpoint ───
226
+ // Only when onDemandRevalidation is enabled; the inconsistency throw above
227
+ // ensures that requires a provider when aeoTwins is enabled.
124
228
  if (aeo?.onDemandRevalidation) {
125
229
  injectRoute({
126
230
  pattern: '/_seo/revalidate',
127
231
  entrypoint: resolveEntrypoint('./routes/revalidate'),
128
232
  prerender: false,
129
233
  });
234
+ injected.push('/_seo/revalidate');
130
235
  }
131
236
  // ─── AEO twin emission (static + both modes) ───
132
237
  // Injected as a prerender route so contentProvider runs inside Astro's
133
238
  // build pipeline. Raw-Node astro:build:done couldn't resolve Vite-virtual
134
239
  // imports like `astro:content` that consumers commonly use in their
135
240
  // contentProvider implementations.
136
- if (aeo && aeo.mode !== 'middleware') {
241
+ if (aeo && aeo.mode !== 'middleware' && providerWired) {
137
242
  injectRoute({
138
243
  pattern: '/[...aeoPath].md',
139
244
  entrypoint: resolveEntrypoint('./routes/aeo-twin'),
140
245
  });
246
+ injected.push('/[...aeoPath].md');
141
247
  }
248
+ // ─── Injection summary ───
249
+ // One line covering injected + skipped routes. This is the crawler-visible
250
+ // contract consumers inherit; making it loud at build time prevents silent
251
+ // SEO regressions on bump-only adoption.
252
+ const skippedStr = skipped.length > 0
253
+ ? ` skipped ${skipped.length}: ${skipped
254
+ .map((s) => `${s.pattern} (${s.reason})`)
255
+ .join(', ')}`
256
+ : '';
257
+ logger.info(`SEO routes: injected ${injected.length} — ${injected.join(', ') || '(none)'}.${skippedStr}`);
142
258
  },
143
259
  'astro:build:done': async ({ dir, pages, logger }) => {
144
260
  const outDir = fileURLToPath(dir);
@@ -233,6 +349,7 @@ function findHtmlFiles(dir) {
233
349
  catch { }
234
350
  return results;
235
351
  }
352
+ export { getConfig, getContentProvider } from './_internal/state.js';
236
353
  export { resolveAeoTwins, seoOptionsSchema, validatedSeoOptionsSchema } from './options.js';
237
- export { getConfig, getContentProvider } from './state.js';
354
+ export { resolveSeoConfig, resolveSiteUrl } from './site-url-core.js';
238
355
  //# 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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"seo.d.ts","sourceRoot":"","sources":["../../src/middleware/seo.ts"],"names":[],"mappings":"AAAA,OAAO,gCAAgC,CAAA;AAEvC,OAAO,EAAE,KAAK,kBAAkB,EAAmB,MAAM,eAAe,CAAA;AAGxE,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAwB,MAAM,aAAa,CAAA;AAGnG,OAAO,EAA+B,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAE7F,OAAO,EAAE,KAAK,iBAAiB,EAAiC,MAAM,yBAAyB,CAAA;AAI/F,MAAM,WAAW,iBAAiB;IACjC,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;IACtD,wFAAwF;IACxF,UAAU,CAAC,EAAE,iBAAiB,CAAA;IAC9B,uEAAuE;IACvE,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;KAAE,CAAA;IACvD,wEAAwE;IACxE,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,cAAc,CAAA;IACrD,0FAA0F;IAC1F,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAA;CAC/C;AAED,MAAM,WAAW,oBAAoB;IACpC,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAChC;AAED,wBAAgB,mBAAmB,CAClC,OAAO,EAAE,kBAAkB,EAC3B,eAAe,CAAC,EAAE,eAAe,EACjC,IAAI,GAAE,iBAAsB,IAM3B,SAAS,oBAAoB,EAC7B,MAAM,MAAM,OAAO,CAAC,QAAQ,CAAC,KAC3B,OAAO,CAAC,QAAQ,CAAC,CAyFpB;AAMD,eAAO,MAAM,SAAS,GACrB,SAAS,oBAAoB,EAC7B,MAAM,MAAM,OAAO,CAAC,QAAQ,CAAC,KAC3B,OAAO,CAAC,QAAQ,CA2BlB,CAAA;AAqBD,iBAAS,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAIjD;AAED,iBAAS,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAM3C;AAOD,iBAAS,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;IAAE,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;CAAE,GAAG,MAAM,CAG9E;AAED,iBAAe,eAAe,CAC7B,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAmBlC;AA4GD,eAAO,MAAM,UAAU;;;;;CAKtB,CAAA"}
1
+ {"version":3,"file":"seo.d.ts","sourceRoot":"","sources":["../../src/middleware/seo.ts"],"names":[],"mappings":"AAAA,OAAO,gCAAgC,CAAA;AAGvC,OAAO,EAAE,KAAK,kBAAkB,EAAmB,MAAM,eAAe,CAAA;AAExE,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAwB,MAAM,aAAa,CAAA;AAGnG,OAAO,EAA+B,KAAK,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAE7F,OAAO,EAAE,KAAK,iBAAiB,EAAiC,MAAM,yBAAyB,CAAA;AAI/F,MAAM,WAAW,iBAAiB;IACjC,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,YAAY,CAAC,CAAA;IACtD,wFAAwF;IACxF,UAAU,CAAC,EAAE,iBAAiB,CAAA;IAC9B,uEAAuE;IACvE,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;KAAE,CAAA;IACvD,wEAAwE;IACxE,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,cAAc,CAAA;IACrD,0FAA0F;IAC1F,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAA;CAC/C;AAED,MAAM,WAAW,oBAAoB;IACpC,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAChC;AAED,wBAAgB,mBAAmB,CAClC,OAAO,EAAE,kBAAkB,EAC3B,eAAe,CAAC,EAAE,eAAe,EACjC,IAAI,GAAE,iBAAsB,IAM3B,SAAS,oBAAoB,EAC7B,MAAM,MAAM,OAAO,CAAC,QAAQ,CAAC,KAC3B,OAAO,CAAC,QAAQ,CAAC,CAyFpB;AAMD,eAAO,MAAM,SAAS,GACrB,SAAS,oBAAoB,EAC7B,MAAM,MAAM,OAAO,CAAC,QAAQ,CAAC,KAC3B,OAAO,CAAC,QAAQ,CA2BlB,CAAA;AAqBD,iBAAS,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAIjD;AAED,iBAAS,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAM3C;AAOD,iBAAS,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;IAAE,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;CAAE,GAAG,MAAM,CAG9E;AAED,iBAAe,eAAe,CAC7B,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAmBlC;AA4GD,eAAO,MAAM,UAAU;;;;;CAKtB,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import 'virtual:growth-labs/seo/config';
2
+ import { getConfig, getContentProvider } from '../_internal/state.js';
2
3
  import { resolveAeoTwins } from '../options.js';
3
4
  import { getRuntimeEnv, getWaitUntil } from '../runtime.js';
4
- import { getConfig, getContentProvider } from '../state.js';
5
5
  import { estimateTokenCount, generateAeoMarkdown } from '../utils/aeo.js';
6
6
  import { classifyRequest } from '../utils/crawler-class.js';
7
7
  import { computeEffectiveAuthSegment } from '../utils/effective-auth.js';
@@ -1 +1 @@
1
- {"version":3,"file":"seo.js","sourceRoot":"","sources":["../../src/middleware/seo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seo.js","sourceRoot":"","sources":["../../src/middleware/seo.ts"],"names":[],"mappings":"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"}