nuxt-ai-ready 1.7.12 → 1.7.13

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.
@@ -2,7 +2,7 @@ import { createHash } from 'node:crypto';
2
2
  import { realpath, readFile } from 'node:fs/promises';
3
3
  import { resolve, isAbsolute, relative, sep } from 'node:path';
4
4
  import { parseDocument } from 'yaml';
5
- import { A as AGENT_SKILLS_SCHEMA } from '../shared/nuxt-ai-ready.Cp2hOQih.mjs';
5
+ import { A as AGENT_SKILLS_SCHEMA } from '../shared/nuxt-ai-ready.DQXoppXw.mjs';
6
6
  import 'node:module';
7
7
  import '@nuxt/kit';
8
8
  import 'defu';
@@ -5,7 +5,7 @@ import { colorize } from 'consola/utils';
5
5
  import { resolveLocaleFromRoute } from 'nuxtseo-shared/i18n-runtime';
6
6
  import { collectSitemap } from 'sitemapd/parse';
7
7
  import { withLeadingSlash, withBase, joinURL } from 'ufo';
8
- import { l as logger, M as MARKDOWN_LINK_AVAILABILITY_FILE } from '../shared/nuxt-ai-ready.Cp2hOQih.mjs';
8
+ import { l as logger, M as MARKDOWN_LINK_AVAILABILITY_FILE } from '../shared/nuxt-ai-ready.DQXoppXw.mjs';
9
9
  import { normalizePagePath, toMarkdownPath } from '../../dist/runtime/markdown-path.js';
10
10
  import { toLogicalRoute, toDeployedRoute } from '../../dist/runtime/route-path.js';
11
11
  import { initSchema, computeContentHash, insertPage, queryAllPages, exportDbDump } from '../../dist/runtime/server/db/shared.js';
package/dist/module.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "nuxt": ">=4.0.0"
5
5
  },
6
6
  "configKey": "aiReady",
7
- "version": "1.7.12",
7
+ "version": "1.7.13",
8
8
  "builder": {
9
9
  "@nuxt/module-builder": "1.0.3",
10
10
  "unbuild": "3.6.1"
package/dist/module.mjs CHANGED
@@ -7,7 +7,7 @@ import 'defu';
7
7
  import 'nuxt-site-config/kit';
8
8
  import 'nuxtseo-shared/kit';
9
9
  import 'pkg-types';
10
- export { m as default } from './shared/nuxt-ai-ready.Cp2hOQih.mjs';
10
+ export { m as default } from './shared/nuxt-ai-ready.DQXoppXw.mjs';
11
11
  import '../dist/runtime/server/utils/discovery-response.js';
12
12
  import 'node:url';
13
13
  import 'pathe';
@@ -0,0 +1,3 @@
1
+ import type { LocaleAlternate } from 'nuxtseo-shared/i18n-runtime';
2
+ /** Resolve a locale alternate against its configured domain or the current site. */
3
+ export declare function resolveLocaleAlternateUrl(alternate: Pick<LocaleAlternate, 'domain' | 'path'>, resolveUrl: (path: string) => string): string;
@@ -0,0 +1,8 @@
1
+ export function resolveLocaleAlternateUrl(alternate, resolveUrl) {
2
+ const resolved = resolveUrl(alternate.path);
3
+ if (!alternate.domain)
4
+ return resolved;
5
+ const origin = /^[a-z][a-z\d+.-]*:\/\//i.test(alternate.domain) ? alternate.domain : `https://${alternate.domain}`;
6
+ const deployed = new URL(resolved, "http://nuxtseo.local");
7
+ return new URL(`${deployed.pathname}${deployed.search}${deployed.hash}`, origin).href;
8
+ }
@@ -1,9 +1,4 @@
1
- /**
2
- * Pure formatting functions for llms.txt - no runtime dependencies
3
- */
4
- import type { RuntimeI18nConfig, RuntimeRouteContext } from './server/utils/i18n.js';
5
1
  import type { LlmsTxtConfig } from './types.js';
6
- export declare function formatAvailableLanguagesSection(i18n: RuntimeI18nConfig, pageCounts: Map<string, number>, resolveHref?: (pathname: string) => string, routeContext?: RuntimeRouteContext): string[];
7
2
  interface LlmsTxtPageLink {
8
3
  pathname: string;
9
4
  href?: string;
@@ -1,4 +1,3 @@
1
- import { computeLocaleAlternates, localePath, resolveLocaleAlternateUrl } from "./server/utils/i18n.js";
2
1
  const RE_INLINE_WHITESPACE = /\s+/g;
3
2
  const RE_LINK_TITLE_BRACKET = /[[\]]/g;
4
3
  const RE_LINK_HREF_UNSAFE = /[\s()]/g;
@@ -62,26 +61,6 @@ function normalizeOptionalSections(sections) {
62
61
  function normalizeRequiredSections(sections) {
63
62
  return sections.filter((section) => section.links?.length).map(normalizeSection);
64
63
  }
65
- export function formatAvailableLanguagesSection(i18n, pageCounts, resolveHref = (pathname) => pathname, routeContext = {}) {
66
- const lines = ["## Available Languages on Website", ""];
67
- const rootAlternates = new Map(computeLocaleAlternates("/", i18n, routeContext).map((alternate) => [alternate.code, alternate]));
68
- for (const locale of i18n.locales) {
69
- const isDefault = locale.code === i18n.defaultLocale;
70
- const alternate = rootAlternates.get(locale.code);
71
- const prefix = alternate?.path ?? localePath("/", locale.code, i18n, routeContext);
72
- const resolvedPath = resolveHref(prefix);
73
- const href = alternate ? resolveLocaleAlternateUrl({ ...alternate, path: resolvedPath }, (candidate) => candidate) : resolvedPath;
74
- const count = pageCounts.get(locale.code) ?? 0;
75
- const display = locale.nativeName ? `${locale.nativeName} (${locale.code})` : locale.name ? `${locale.name} (${locale.code})` : locale.code;
76
- const suffix = isDefault ? "content included below" : "visit this language for content";
77
- lines.push(normalizeLink({
78
- title: display,
79
- href,
80
- description: `${count} pages; ${suffix}.`
81
- }));
82
- }
83
- return lines;
84
- }
85
64
  export function formatLlmsTxtPageLink(page) {
86
65
  const description = page.description?.trim().replace(RE_INLINE_WHITESPACE, " ");
87
66
  const normalizedTitle = page.title ? normalizeInlineText(page.title) : "";
@@ -0,0 +1,3 @@
1
+ import type { RuntimeI18nConfig, RuntimeRouteContext } from './server/utils/i18n.js';
2
+ export { resolveLocaleFromRoute } from './server/utils/i18n.js';
3
+ export declare function formatAvailableLanguagesSection(i18n: RuntimeI18nConfig, pageCounts: Map<string, number>, resolveHref?: (pathname: string) => string, routeContext?: RuntimeRouteContext): string[];
@@ -0,0 +1,25 @@
1
+ import { resolveLocaleAlternateUrl } from "./i18n-url.js";
2
+ import { formatLlmsTxtPageLink } from "./llms-txt-format.js";
3
+ import { computeLocaleAlternates, localePath } from "./server/utils/i18n.js";
4
+ export { resolveLocaleFromRoute } from "./server/utils/i18n.js";
5
+ export function formatAvailableLanguagesSection(i18n, pageCounts, resolveHref = (pathname) => pathname, routeContext = {}) {
6
+ const lines = ["## Available Languages on Website", ""];
7
+ const rootAlternates = new Map(computeLocaleAlternates("/", i18n, routeContext).map((alternate) => [alternate.code, alternate]));
8
+ for (const locale of i18n.locales) {
9
+ const isDefault = locale.code === i18n.defaultLocale;
10
+ const alternate = rootAlternates.get(locale.code);
11
+ const prefix = alternate?.path ?? localePath("/", locale.code, i18n, routeContext);
12
+ const resolvedPath = resolveHref(prefix);
13
+ const href = alternate ? resolveLocaleAlternateUrl({ ...alternate, path: resolvedPath }, (candidate) => candidate) : resolvedPath;
14
+ const count = pageCounts.get(locale.code) ?? 0;
15
+ const display = locale.nativeName ? `${locale.nativeName} (${locale.code})` : locale.name ? `${locale.name} (${locale.code})` : locale.code;
16
+ const suffix = isDefault ? "content included below" : "visit this language for content";
17
+ lines.push(formatLlmsTxtPageLink({
18
+ pathname: href,
19
+ title: display,
20
+ href,
21
+ description: `${count} pages; ${suffix}.`
22
+ }));
23
+ }
24
+ return lines;
25
+ }
@@ -3,12 +3,11 @@ import { getRequestURL } from "#nuxtseo/h3";
3
3
  import { useRuntimeConfig } from "#nuxtseo/nitro";
4
4
  import { getSiteConfig } from "#site-config/server/composables/getSiteConfig";
5
5
  import { withSiteTrailingSlash, withSiteUrl } from "#site-config/server/composables/utils";
6
- import { formatAvailableLanguagesSection, formatLlmsTxtPageLink, normalizeLlmsTxtConfig } from "./llms-txt-format.js";
6
+ import { formatLlmsTxtPageLink, normalizeLlmsTxtConfig } from "./llms-txt-format.js";
7
7
  import { toMarkdownPath } from "./markdown-path.js";
8
8
  import { normalizePersistedRoute, toDeployedRoute, toLogicalRoute } from "./route-path.js";
9
9
  import { queryPages } from "./server/db/queries.js";
10
10
  import { logger } from "./server/logger.js";
11
- import { resolveLocaleFromRoute } from "./server/utils/i18n.js";
12
11
  import { fetchSitemapUrls } from "./server/utils/sitemap.js";
13
12
  export { normalizeLlmsTxtConfig };
14
13
  function hasRuntimeMarkdownHandler(pathname) {
@@ -123,6 +122,7 @@ export async function buildLlmsTxt(event) {
123
122
  const siteConfig = getSiteConfig(event);
124
123
  const llmsTxtConfig = aiReadyConfig.llmsTxt;
125
124
  const i18n = aiReadyConfig.i18n;
125
+ const i18nRuntime = i18n ? { _tag: "enabled", config: i18n, ...await import("./llms-txt-i18n.js") } : { _tag: "disabled" };
126
126
  const i18nContext = { host: getRequestURL(event).host };
127
127
  const baseURL = runtimeConfig.app.baseURL;
128
128
  const resolvePath = (path) => withSiteTrailingSlash(event, toDeployedRoute(path, baseURL));
@@ -194,7 +194,7 @@ Canonical Origin: ${canonicalSiteUrl}`);
194
194
  const other = [];
195
195
  for (const pathname of sitemapPaths) {
196
196
  if (!seenPaths.has(pathname) && !errorSet.has(pathname)) {
197
- const locale = i18n ? resolveLocaleFromRoute(pathname, i18n, i18nContext).locale : void 0;
197
+ const locale = i18nRuntime._tag === "enabled" ? i18nRuntime.resolveLocaleFromRoute(pathname, i18nRuntime.config, i18nContext).locale : void 0;
198
198
  other.push({ pathname, locale });
199
199
  seenPaths.add(pathname);
200
200
  }
@@ -213,24 +213,24 @@ Canonical Origin: ${canonicalSiteUrl}`);
213
213
  }
214
214
  for (const page of [...prerendered, ...other])
215
215
  page.href = resolvePageHref(page.pathname);
216
- if (i18n) {
216
+ if (i18nRuntime._tag === "enabled") {
217
217
  const pageCounts = /* @__PURE__ */ new Map();
218
- for (const locale of i18n.locales) pageCounts.set(locale.code, 0);
218
+ for (const locale of i18nRuntime.config.locales) pageCounts.set(locale.code, 0);
219
219
  for (const p of [...prerendered, ...other]) {
220
- const code = p.locale || resolveLocaleFromRoute(p.pathname, i18n, i18nContext).locale;
220
+ const code = p.locale || i18nRuntime.resolveLocaleFromRoute(p.pathname, i18nRuntime.config, i18nContext).locale;
221
221
  pageCounts.set(code, (pageCounts.get(code) ?? 0) + 1);
222
222
  }
223
- parts.push(...formatAvailableLanguagesSection(i18n, pageCounts, resolvePageHref, i18nContext));
223
+ parts.push(...i18nRuntime.formatAvailableLanguagesSection(i18nRuntime.config, pageCounts, resolvePageHref, i18nContext));
224
224
  parts.push("");
225
225
  }
226
226
  const isDefaultLocale = (item) => {
227
- if (!i18n)
227
+ if (i18nRuntime._tag === "disabled")
228
228
  return true;
229
- const code = item.locale || resolveLocaleFromRoute(item.pathname, i18n, i18nContext).locale;
230
- return code === i18n.defaultLocale;
229
+ const code = item.locale || i18nRuntime.resolveLocaleFromRoute(item.pathname, i18nRuntime.config, i18nContext).locale;
230
+ return code === i18nRuntime.config.defaultLocale;
231
231
  };
232
- const filteredPrerendered = i18n ? prerendered.filter(isDefaultLocale) : prerendered;
233
- const filteredOther = i18n ? other.filter(isDefaultLocale) : other;
232
+ const filteredPrerendered = i18nRuntime._tag === "enabled" ? prerendered.filter(isDefaultLocale) : prerendered;
233
+ const filteredOther = i18nRuntime._tag === "enabled" ? other.filter(isDefaultLocale) : other;
234
234
  const sortedPrerendered = sortPagesByPath(filteredPrerendered);
235
235
  const sortedOther = sortPagesByPath(filteredOther);
236
236
  if (sortedPrerendered.length > 0 && sortedOther.length > 0) {
@@ -2,12 +2,13 @@ import { createNitroRouteRuleMatcher } from "nuxtseo-shared/server";
2
2
  import { appendHeader, createError, defineEventHandler, getHeader, getRequestURL, getResponseHeader, sendRedirect, setHeader } from "#nuxtseo/h3";
3
3
  import { useRuntimeConfig } from "#nuxtseo/nitro";
4
4
  import { withSiteUrl } from "#site-config/server/composables/utils";
5
+ import { resolveLocaleAlternateUrl } from "../../i18n-url.js";
5
6
  import { toMarkdownPath } from "../../markdown-path.js";
6
7
  import { toDeployedRoute } from "../../route-path.js";
7
8
  import { logger } from "../logger.js";
8
9
  import { setStatusAwareLinkHeader } from "../plugins/link-header.js";
9
10
  import { CONTENT_NEGOTIATION_VARY, resolveContentNegotiation } from "../utils/content-negotiation.js";
10
- import { computeLocaleAlternates, resolveLocaleAlternateUrl, resolveLocaleFromRoute } from "../utils/i18n.js";
11
+ import { computeLocaleAlternates, resolveLocaleFromRoute } from "../utils/i18n.js";
11
12
  import { buildLinkHeader } from "../utils/link-header.js";
12
13
  import { getMarkdownRenderInfo } from "../utils/markdown-request.js";
13
14
  const INTERNAL_HEADER = "x-ai-ready-internal";
@@ -1,7 +1,7 @@
1
1
  import { useRuntimeConfig } from "#nuxtseo/nitro";
2
2
  import { getPageLastmods, getSitemapLastCrawledAt, markSitemapSeeded, seedRoutes } from "../db/queries.js";
3
3
  import { logger } from "../logger.js";
4
- import { mapSitemapRoutes } from "../utils/sitemap.js";
4
+ import { mapSitemapRoutes } from "../utils/sitemap-routes.js";
5
5
  const DIAGNOSTICS_KEY = "_aiReadySitemapDiagnostics";
6
6
  function isDebug(event) {
7
7
  return !!useRuntimeConfig(event)["nuxt-ai-ready"]?.debug;
@@ -1,8 +1,6 @@
1
- import type { LocaleAlternate, RuntimeI18nConfig } from 'nuxtseo-shared/i18n-runtime';
2
- export { computeLocaleAlternates, localePath, resolveLocaleAlternates, resolveLocaleFromRoute, } from 'nuxtseo-shared/i18n-runtime';
1
+ import type { RuntimeI18nConfig } from 'nuxtseo-shared/i18n-runtime';
2
+ export { computeLocaleAlternates, localePath, resolveLocaleAlternates, resolveLocaleFromRoute, } from '#ai-ready-virtual/i18n-runtime.mjs';
3
3
  export type { LocaleAlternate, LocaleAlternateResolution, LocalePages, RouteLocaleInfo, RuntimeI18nConfig, RuntimeLocale, RuntimeRouteContext, } from 'nuxtseo-shared/i18n-runtime';
4
- /** Resolve a locale alternate against its configured domain or the current site. */
5
- export declare function resolveLocaleAlternateUrl(alternate: Pick<LocaleAlternate, 'domain' | 'path'>, resolveUrl: (path: string) => string): string;
6
4
  /** Get the runtime i18n config from runtimeConfig, or null when disabled. */
7
5
  export declare function getRuntimeI18n(aiReadyConfig: {
8
6
  i18n?: RuntimeI18nConfig | null;
@@ -3,15 +3,7 @@ export {
3
3
  localePath,
4
4
  resolveLocaleAlternates,
5
5
  resolveLocaleFromRoute
6
- } from "nuxtseo-shared/i18n-runtime";
7
- export function resolveLocaleAlternateUrl(alternate, resolveUrl) {
8
- const resolved = resolveUrl(alternate.path);
9
- if (!alternate.domain)
10
- return resolved;
11
- const origin = /^[a-z][a-z\d+.-]*:\/\//i.test(alternate.domain) ? alternate.domain : `https://${alternate.domain}`;
12
- const deployed = new URL(resolved, "http://nuxtseo.local");
13
- return new URL(`${deployed.pathname}${deployed.search}${deployed.hash}`, origin).href;
14
- }
6
+ } from "#ai-ready-virtual/i18n-runtime.mjs";
15
7
  export function getRuntimeI18n(aiReadyConfig) {
16
8
  return aiReadyConfig.i18n || null;
17
9
  }
@@ -1,5 +1,6 @@
1
+ import { resolveLocaleAlternateUrl } from "../../i18n-url.js";
1
2
  import { toMarkdownPath } from "../../markdown-path.js";
2
- import { computeLocaleAlternates, resolveLocaleAlternateUrl } from "./i18n.js";
3
+ import { computeLocaleAlternates } from "./i18n.js";
3
4
  export function encodePathForHeader(path) {
4
5
  return encodeURI(path);
5
6
  }
@@ -5,7 +5,8 @@ import { batchIndexPages } from "./batchIndex.js";
5
5
  import { checkAndHandleStale, STALE_CHECK_INTERVAL_MS } from "./checkStale.js";
6
6
  import { resolveCronPlan, resolveSitemapIntervalMinutes } from "./cron-plan.js";
7
7
  import { syncToIndexNow } from "./indexnow.js";
8
- import { crawlSitemapByRoute, getSitemapsFromConfig, mapSitemapRoutes } from "./sitemap.js";
8
+ import { crawlSitemapByRoute, getSitemapsFromConfig } from "./sitemap.js";
9
+ import { mapSitemapRoutes } from "./sitemap-routes.js";
9
10
  export async function runCron(event, options) {
10
11
  if (import.meta.dev)
11
12
  return {};
@@ -0,0 +1,8 @@
1
+ export interface SitemapRouteSource {
2
+ loc: string;
3
+ _path?: {
4
+ pathname: string;
5
+ } | null;
6
+ }
7
+ /** Normalize sitemap URL records into the route map used by the page store. */
8
+ export declare function mapSitemapRoutes<T extends SitemapRouteSource>(urls: readonly T[]): Map<string, T>;
@@ -0,0 +1,9 @@
1
+ export function mapSitemapRoutes(urls) {
2
+ const routeToUrl = /* @__PURE__ */ new Map();
3
+ for (const url of urls) {
4
+ const route = url._path?.pathname ?? (url.loc.startsWith("/") ? url.loc.split("?")[0] ?? url.loc : new URL(url.loc).pathname);
5
+ if (!route.includes("."))
6
+ routeToUrl.set(route, url);
7
+ }
8
+ return routeToUrl;
9
+ }
@@ -8,12 +8,6 @@ export interface SitemapConfig {
8
8
  name: string;
9
9
  route: string;
10
10
  }
11
- export interface SitemapRouteSource {
12
- loc: string;
13
- _path?: {
14
- pathname: string;
15
- } | null;
16
- }
17
11
  interface SitemapCrawlResultBase {
18
12
  urls: SitemapUrl[];
19
13
  documentsAttempted: number;
@@ -39,8 +33,6 @@ export declare function getSitemapsFromConfig(event?: H3Event): SitemapConfig[];
39
33
  * Check if site has multiple sitemaps configured
40
34
  */
41
35
  export declare function hasMultipleSitemaps(event: H3Event): boolean;
42
- /** Normalize sitemap URL records into the route map used by the page store. */
43
- export declare function mapSitemapRoutes<T extends SitemapRouteSource>(urls: readonly T[]): Map<string, T>;
44
36
  /**
45
37
  * Execute one bounded sitemap traversal round. Partial results include the
46
38
  * exact pending frontier and committed document set needed by the next round.
@@ -39,15 +39,6 @@ export function hasMultipleSitemaps(event) {
39
39
  const sitemaps = getSitemapsFromConfig(event);
40
40
  return sitemaps.length > 1;
41
41
  }
42
- export function mapSitemapRoutes(urls) {
43
- const routeToUrl = /* @__PURE__ */ new Map();
44
- for (const url of urls) {
45
- const route = url._path?.pathname ?? (url.loc.startsWith("/") ? url.loc.split("?")[0] ?? url.loc : new URL(url.loc).pathname);
46
- if (!route.includes("."))
47
- routeToUrl.set(route, url);
48
- }
49
- return routeToUrl;
50
- }
51
42
  function normalizeUrl(entry) {
52
43
  return {
53
44
  loc: entry.loc,
@@ -177,6 +177,15 @@ declare module '#ai-ready-virtual/logger.mjs' {
177
177
  export const logger: ConsolaInstance
178
178
  }
179
179
 
180
+ declare module '#ai-ready-virtual/i18n-runtime.mjs' {
181
+ export {
182
+ computeLocaleAlternates,
183
+ localePath,
184
+ resolveLocaleAlternates,
185
+ resolveLocaleFromRoute,
186
+ } from 'nuxtseo-shared/i18n-runtime'
187
+ }
188
+
180
189
  declare module '#ai-ready-virtual/db-provider.mjs' {
181
190
  import type { H3Event } from '#nuxtseo/h3'
182
191
  import type { DrizzleDatabase } from '#ai-ready/server/db/drizzle/client'
@@ -886,6 +895,7 @@ const module$1 = defineNuxtModule({
886
895
  async setup(config, nuxt) {
887
896
  const moduleEntryUrl = resolveModuleEntryUrl(import.meta.url);
888
897
  const resolveFromModule = createRequire(moduleEntryUrl);
898
+ const nuxtSeoSharedI18nRuntimePath = resolveFromModule.resolve("nuxtseo-shared/i18n-runtime");
889
899
  const nuxtSeoSharedUtilsPath = resolveFromModule.resolve("nuxtseo-shared/utils");
890
900
  const { resolve } = createResolver(moduleEntryUrl);
891
901
  const { version } = await readPackageJSON(resolve("../package.json"));
@@ -1372,6 +1382,15 @@ ${details}`);
1372
1382
  }
1373
1383
  }
1374
1384
  nitroConfig.virtual = nitroConfig.virtual || {};
1385
+ nitroConfig.virtual["#ai-ready-virtual/i18n-runtime.mjs"] = () => {
1386
+ const runtimeConfig = nitroConfig.runtimeConfig?.["nuxt-ai-ready"];
1387
+ return runtimeConfig?.i18n ? `export { computeLocaleAlternates, localePath, resolveLocaleAlternates, resolveLocaleFromRoute } from ${JSON.stringify(nuxtSeoSharedI18nRuntimePath)}` : `
1388
+ const unavailable = () => {
1389
+ throw new Error('[nuxt-ai-ready] i18n runtime called without i18n configuration.')
1390
+ }
1391
+ export { unavailable as computeLocaleAlternates, unavailable as localePath, unavailable as resolveLocaleAlternates, unavailable as resolveLocaleFromRoute }
1392
+ `;
1393
+ };
1375
1394
  nitroConfig.virtual["#ai-ready-virtual/site-tools.mjs"] = `export default ${JSON.stringify(siteToolsConfig)}`;
1376
1395
  nitroConfig.virtual["#ai-ready-virtual/agent-skills.mjs"] = agentSkillsResult._tag === "Enabled" ? `export const agentSkillsIndex = ${JSON.stringify(agentSkillsResult.index)}
1377
1396
  export const localAgentSkillArtifacts = ${JSON.stringify(agentSkillsResult.localArtifacts)}` : "export const agentSkillsIndex = null\nexport const localAgentSkillArtifacts = {}";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "nuxt-ai-ready",
3
3
  "type": "module",
4
- "version": "1.7.12",
4
+ "version": "1.7.13",
5
5
  "description": "Best practice AI & LLM discoverability for Nuxt sites.",
6
6
  "author": {
7
7
  "name": "Harlan Wilton",
@@ -95,7 +95,7 @@
95
95
  "@vue/test-utils": "^2.4.11",
96
96
  "@vueuse/nuxt": "^14.4.0",
97
97
  "better-sqlite3": "^13.0.3",
98
- "bumpp": "^12.2.0",
98
+ "bumpp": "^12.2.1",
99
99
  "eslint": "^10.8.1",
100
100
  "eslint-plugin-harlanzw": "^0.17.1",
101
101
  "execa": "^10.0.1",
@@ -114,7 +114,7 @@
114
114
  "vue": "^3.5.41",
115
115
  "vue-router": "^5.2.0",
116
116
  "vue-tsc": "^3.3.9",
117
- "wrangler": "^4.121.0",
117
+ "wrangler": "^4.122.0",
118
118
  "zod": "^4.4.3"
119
119
  },
120
120
  "scripts": {