nuxt-ai-ready 0.5.0 → 0.5.1

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/dist/module.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "nuxt": ">=4.0.0"
5
5
  },
6
6
  "configKey": "aiReady",
7
- "version": "0.5.0",
7
+ "version": "0.5.1",
8
8
  "builder": {
9
9
  "@nuxt/module-builder": "1.0.2",
10
10
  "unbuild": "3.6.1"
package/dist/module.mjs CHANGED
@@ -374,11 +374,11 @@ function setupPrerenderHandler(pageDataPath, siteInfo, llmsTxtConfig) {
374
374
  }));
375
375
  const errorRoutes = entries.filter((e) => e._error).map((e) => e.route);
376
376
  const jsonContent = JSON.stringify({ pages, errorRoutes });
377
- const serverAssetsDir = join(nitro.options.output.serverDir, "chunks/raw/ai-ready-data");
378
- await mkdir(serverAssetsDir, { recursive: true });
379
- const serverAssetsJsonPath = join(serverAssetsDir, "pages.json");
380
- await writeFile(serverAssetsJsonPath, jsonContent, "utf-8");
381
- logger.debug(`Wrote ${pages.length} pages to server assets`);
377
+ const publicDataDir = join(nitro.options.output.publicDir, "__ai-ready");
378
+ await mkdir(publicDataDir, { recursive: true });
379
+ const publicJsonPath = join(publicDataDir, "pages.json");
380
+ await writeFile(publicJsonPath, jsonContent, "utf-8");
381
+ logger.debug(`Wrote ${pages.length} pages to __ai-ready/pages.json`);
382
382
  }
383
383
  }
384
384
  const llmsStats = await prerenderRoute(nitro, "/llms.txt");
@@ -591,12 +591,6 @@ export async function readPageDataFromFilesystem() {
591
591
  `;
592
592
  nitroConfig.virtual["#ai-ready-virtual/page-data.mjs"] = `export const pages = []
593
593
  export const errorRoutes = []`;
594
- nitroConfig.serverAssets = nitroConfig.serverAssets || [];
595
- nitroConfig.serverAssets.push({
596
- baseName: "ai-ready-data",
597
- dir: "./.nitro/ai-ready-data"
598
- // Placeholder, actual data written during prerender
599
- });
600
594
  });
601
595
  nuxt.options.runtimeConfig["nuxt-ai-ready"] = {
602
596
  version: version || "0.0.0",
@@ -1,5 +1,5 @@
1
1
  import { createError, eventHandler, setHeader } from "h3";
2
- import { useRuntimeConfig, useStorage } from "nitropack/runtime";
2
+ import { useRuntimeConfig } from "nitropack/runtime";
3
3
  import { getErrorRoutes, getPages, getPagesList } from "../utils/pageData.js";
4
4
  export default eventHandler(async (event) => {
5
5
  const runtimeConfig = useRuntimeConfig(event)["nuxt-ai-ready"];
@@ -28,7 +28,7 @@ export default eventHandler(async (event) => {
28
28
  } else if (isPrerender) {
29
29
  source = "#ai-ready-virtual/read-page-data.mjs (reads from filesystem)";
30
30
  } else {
31
- source = "useStorage('assets:ai-ready-data') (server assets)";
31
+ source = "fetch('/__ai-ready/pages.json') (public directory)";
32
32
  }
33
33
  let pageDataModuleInfo = { available: false, pagesCount: 0, errorRoutesCount: 0 };
34
34
  let readPageDataModuleInfo = { available: false, note: "" };
@@ -51,12 +51,13 @@ export default eventHandler(async (event) => {
51
51
  } catch {
52
52
  readPageDataModuleInfo = { available: false, note: "Module not available" };
53
53
  }
54
- const storage = useStorage("assets:ai-ready-data");
55
- const storageData = await storage.getItem("pages.json");
54
+ const publicData = await globalThis.$fetch("/__ai-ready/pages.json", {
55
+ baseURL: "/"
56
+ }).catch(() => null);
56
57
  const jsonFileStatus = {
57
- available: !!storageData,
58
- pageCount: storageData?.pages?.length ?? 0,
59
- source: "useStorage('assets:ai-ready-data')"
58
+ available: !!publicData,
59
+ pageCount: publicData?.pages?.length ?? 0,
60
+ source: "fetch('/__ai-ready/pages.json')"
60
61
  };
61
62
  const issues = [];
62
63
  const suggestions = [];
@@ -65,10 +66,10 @@ export default eventHandler(async (event) => {
65
66
  suggestions.push("Run `nuxi generate` or `nuxi build --prerender` to generate page data");
66
67
  } else if (mode === "production" && pages.size === 0) {
67
68
  if (!jsonFileStatus.available) {
68
- issues.push("Production mode with no page data - server assets not found");
69
+ issues.push("Production mode with no page data - /__ai-ready/pages.json not found");
69
70
  suggestions.push("Run `nuxi generate` or `nuxi build --prerender` to generate the page data");
70
71
  } else {
71
- issues.push("Server assets exist but returned empty page data");
72
+ issues.push("pages.json exists but returned empty page data");
72
73
  suggestions.push("Check if pages were prerendered correctly");
73
74
  }
74
75
  } else if (mode === "prerender" && pages.size === 0) {
@@ -1,4 +1,3 @@
1
- import { useStorage } from "nitropack/runtime";
2
1
  export async function getPages() {
3
2
  if (import.meta.dev)
4
3
  return /* @__PURE__ */ new Map();
@@ -23,8 +22,9 @@ export async function getPagesList() {
23
22
  }));
24
23
  }
25
24
  async function readServerAssets() {
26
- const storage = useStorage("assets:ai-ready-data");
27
- const data = await storage.getItem("pages.json");
25
+ const data = await globalThis.$fetch("/__ai-ready/pages.json", {
26
+ baseURL: "/"
27
+ }).catch(() => null);
28
28
  if (!data)
29
29
  return { pages: /* @__PURE__ */ new Map(), errorRoutes: /* @__PURE__ */ new Set() };
30
30
  return {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "nuxt-ai-ready",
3
3
  "type": "module",
4
- "version": "0.5.0",
4
+ "version": "0.5.1",
5
5
  "description": "Best practice AI & LLM discoverability for Nuxt sites.",
6
6
  "author": {
7
7
  "name": "Harlan Wilton",
@@ -65,6 +65,7 @@
65
65
  "@nuxtjs/sitemap": "7.5.0",
66
66
  "@vitest/coverage-v8": "^4.0.16",
67
67
  "@vueuse/nuxt": "^14.1.0",
68
+ "agents": "^0.3.0",
68
69
  "better-sqlite3": "^12.5.0",
69
70
  "bumpp": "^10.3.2",
70
71
  "eslint": "^9.39.2",