one 1.2.35 → 1.2.37

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 (71) hide show
  1. package/dist/cjs/cli/build.cjs +16 -2
  2. package/dist/cjs/cli/build.js +14 -3
  3. package/dist/cjs/cli/build.js.map +1 -1
  4. package/dist/cjs/cli/build.native.js +20 -5
  5. package/dist/cjs/cli/build.native.js.map +1 -1
  6. package/dist/cjs/cli/generateSitemap.cjs +86 -0
  7. package/dist/cjs/cli/generateSitemap.js +69 -0
  8. package/dist/cjs/cli/generateSitemap.js.map +6 -0
  9. package/dist/cjs/cli/generateSitemap.native.js +112 -0
  10. package/dist/cjs/cli/generateSitemap.native.js.map +1 -0
  11. package/dist/cjs/cli/generateSitemap.test.cjs +156 -0
  12. package/dist/cjs/cli/generateSitemap.test.js +103 -0
  13. package/dist/cjs/cli/generateSitemap.test.js.map +6 -0
  14. package/dist/cjs/cli/generateSitemap.test.native.js +200 -0
  15. package/dist/cjs/cli/generateSitemap.test.native.js.map +1 -0
  16. package/dist/cjs/createApp.cjs +6 -5
  17. package/dist/cjs/createApp.js +7 -3
  18. package/dist/cjs/createApp.js.map +2 -2
  19. package/dist/cjs/vite/one.cjs +30 -14
  20. package/dist/cjs/vite/one.js +30 -14
  21. package/dist/cjs/vite/one.js.map +1 -1
  22. package/dist/cjs/vite/one.native.js +30 -14
  23. package/dist/cjs/vite/one.native.js.map +1 -1
  24. package/dist/esm/cli/build.js +14 -2
  25. package/dist/esm/cli/build.js.map +1 -1
  26. package/dist/esm/cli/build.mjs +16 -2
  27. package/dist/esm/cli/build.mjs.map +1 -1
  28. package/dist/esm/cli/build.native.js +20 -5
  29. package/dist/esm/cli/build.native.js.map +1 -1
  30. package/dist/esm/cli/generateSitemap.js +45 -0
  31. package/dist/esm/cli/generateSitemap.js.map +6 -0
  32. package/dist/esm/cli/generateSitemap.mjs +52 -0
  33. package/dist/esm/cli/generateSitemap.mjs.map +1 -0
  34. package/dist/esm/cli/generateSitemap.native.js +75 -0
  35. package/dist/esm/cli/generateSitemap.native.js.map +1 -0
  36. package/dist/esm/cli/generateSitemap.test.js +104 -0
  37. package/dist/esm/cli/generateSitemap.test.js.map +6 -0
  38. package/dist/esm/cli/generateSitemap.test.mjs +157 -0
  39. package/dist/esm/cli/generateSitemap.test.mjs.map +1 -0
  40. package/dist/esm/cli/generateSitemap.test.native.js +198 -0
  41. package/dist/esm/cli/generateSitemap.test.native.js.map +1 -0
  42. package/dist/esm/createApp.js +6 -4
  43. package/dist/esm/createApp.js.map +1 -1
  44. package/dist/esm/createApp.mjs +5 -4
  45. package/dist/esm/createApp.mjs.map +1 -1
  46. package/dist/esm/vite/one.js +30 -14
  47. package/dist/esm/vite/one.js.map +1 -1
  48. package/dist/esm/vite/one.mjs +30 -14
  49. package/dist/esm/vite/one.mjs.map +1 -1
  50. package/dist/esm/vite/one.native.js +30 -14
  51. package/dist/esm/vite/one.native.js.map +1 -1
  52. package/package.json +13 -10
  53. package/src/cli/build.ts +31 -0
  54. package/src/cli/generateSitemap.test.ts +207 -0
  55. package/src/cli/generateSitemap.ts +93 -0
  56. package/src/createApp.tsx +12 -4
  57. package/src/interfaces/router.ts +28 -0
  58. package/src/vite/one.ts +28 -11
  59. package/src/vite/types.ts +50 -0
  60. package/types/cli/build.d.ts.map +1 -1
  61. package/types/cli/generateSitemap.d.ts +13 -0
  62. package/types/cli/generateSitemap.d.ts.map +1 -0
  63. package/types/cli/generateSitemap.test.d.ts +2 -0
  64. package/types/cli/generateSitemap.test.d.ts.map +1 -0
  65. package/types/createApp.d.ts.map +1 -1
  66. package/types/env.d.ts +43 -0
  67. package/types/interfaces/router.d.ts +19 -0
  68. package/types/interfaces/router.d.ts.map +1 -1
  69. package/types/vite/one.d.ts.map +1 -1
  70. package/types/vite/types.d.ts +46 -0
  71. package/types/vite/types.d.ts.map +1 -1
@@ -0,0 +1,156 @@
1
+ var import_vitest = require("vitest"),
2
+ import_generateSitemap = require("./generateSitemap.cjs");
3
+ (0, import_vitest.describe)("generateSitemap", () => {
4
+ (0, import_vitest.it)("generates basic sitemap XML", () => {
5
+ const result = (0, import_generateSitemap.generateSitemap)([{
6
+ path: "/"
7
+ }, {
8
+ path: "/about"
9
+ }, {
10
+ path: "/blog"
11
+ }], {});
12
+ (0, import_vitest.expect)(result).toContain('<?xml version="1.0" encoding="UTF-8"?>'), (0, import_vitest.expect)(result).toContain('<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'), (0, import_vitest.expect)(result).toContain("<loc>/</loc>"), (0, import_vitest.expect)(result).toContain("<loc>/about</loc>"), (0, import_vitest.expect)(result).toContain("<loc>/blog</loc>"), (0, import_vitest.expect)(result).toContain("</urlset>");
13
+ }), (0, import_vitest.it)("uses baseUrl when provided", () => {
14
+ const result = (0, import_generateSitemap.generateSitemap)([{
15
+ path: "/"
16
+ }, {
17
+ path: "/about"
18
+ }], {
19
+ baseUrl: "https://example.com"
20
+ });
21
+ (0, import_vitest.expect)(result).toContain("<loc>https://example.com/</loc>"), (0, import_vitest.expect)(result).toContain("<loc>https://example.com/about</loc>");
22
+ }), (0, import_vitest.it)("strips trailing slash from baseUrl", () => {
23
+ const result = (0, import_generateSitemap.generateSitemap)([{
24
+ path: "/about"
25
+ }], {
26
+ baseUrl: "https://example.com/"
27
+ });
28
+ (0, import_vitest.expect)(result).toContain("<loc>https://example.com/about</loc>"), (0, import_vitest.expect)(result).not.toContain("https://example.com//about");
29
+ }), (0, import_vitest.it)("uses ONE_SERVER_URL env var when baseUrl not provided", () => {
30
+ const originalEnv = process.env.ONE_SERVER_URL;
31
+ process.env.ONE_SERVER_URL = "https://env-url.com";
32
+ try {
33
+ const result = (0, import_generateSitemap.generateSitemap)([{
34
+ path: "/test"
35
+ }], {});
36
+ (0, import_vitest.expect)(result).toContain("<loc>https://env-url.com/test</loc>");
37
+ } finally {
38
+ process.env.ONE_SERVER_URL = originalEnv;
39
+ }
40
+ }), (0, import_vitest.it)("applies default priority to all routes", () => {
41
+ const result = (0, import_generateSitemap.generateSitemap)([{
42
+ path: "/"
43
+ }, {
44
+ path: "/about"
45
+ }], {
46
+ priority: 0.8
47
+ });
48
+ (0, import_vitest.expect)(result).toMatch(/<url>\s*<loc>\/about<\/loc>\s*<priority>0\.8<\/priority>\s*<\/url>/s);
49
+ }), (0, import_vitest.it)("applies default changefreq to all routes", () => {
50
+ const result = (0, import_generateSitemap.generateSitemap)([{
51
+ path: "/"
52
+ }, {
53
+ path: "/about"
54
+ }], {
55
+ changefreq: "weekly"
56
+ });
57
+ (0, import_vitest.expect)(result).toContain("<changefreq>weekly</changefreq>");
58
+ }), (0, import_vitest.it)("respects route-level sitemap exports", () => {
59
+ const result = (0, import_generateSitemap.generateSitemap)([{
60
+ path: "/",
61
+ routeExport: {
62
+ priority: 1,
63
+ changefreq: "daily"
64
+ }
65
+ }, {
66
+ path: "/about",
67
+ routeExport: {
68
+ priority: 0.5,
69
+ changefreq: "monthly"
70
+ }
71
+ }], {
72
+ priority: 0.7,
73
+ changefreq: "weekly"
74
+ });
75
+ (0, import_vitest.expect)(result).toMatch(/<url>\s*<loc>\/<\/loc>\s*<changefreq>daily<\/changefreq>\s*<priority>1\.0<\/priority>\s*<\/url>/s), (0, import_vitest.expect)(result).toMatch(/<url>\s*<loc>\/about<\/loc>\s*<changefreq>monthly<\/changefreq>\s*<priority>0\.5<\/priority>\s*<\/url>/s);
76
+ }), (0, import_vitest.it)("excludes routes with routeExport.exclude = true", () => {
77
+ const result = (0, import_generateSitemap.generateSitemap)([{
78
+ path: "/"
79
+ }, {
80
+ path: "/admin",
81
+ routeExport: {
82
+ exclude: !0
83
+ }
84
+ }, {
85
+ path: "/about"
86
+ }], {});
87
+ (0, import_vitest.expect)(result).toContain("<loc>/</loc>"), (0, import_vitest.expect)(result).toContain("<loc>/about</loc>"), (0, import_vitest.expect)(result).not.toContain("/admin");
88
+ }), (0, import_vitest.it)("excludes routes matching exclude glob patterns", () => {
89
+ const result = (0, import_generateSitemap.generateSitemap)([{
90
+ path: "/"
91
+ }, {
92
+ path: "/admin/dashboard"
93
+ }, {
94
+ path: "/admin/users"
95
+ }, {
96
+ path: "/about"
97
+ }, {
98
+ path: "/api/health"
99
+ }], {
100
+ exclude: ["/admin/*", "/api/*"]
101
+ });
102
+ (0, import_vitest.expect)(result).toContain("<loc>/</loc>"), (0, import_vitest.expect)(result).toContain("<loc>/about</loc>"), (0, import_vitest.expect)(result).not.toContain("/admin"), (0, import_vitest.expect)(result).not.toContain("/api");
103
+ }), (0, import_vitest.it)("includes lastmod when provided in route export", () => {
104
+ const result = (0, import_generateSitemap.generateSitemap)([{
105
+ path: "/",
106
+ routeExport: {
107
+ lastmod: "2024-01-15"
108
+ }
109
+ }, {
110
+ path: "/about",
111
+ routeExport: {
112
+ lastmod: /* @__PURE__ */new Date("2024-06-20")
113
+ }
114
+ }], {});
115
+ (0, import_vitest.expect)(result).toContain("<lastmod>2024-01-15</lastmod>"), (0, import_vitest.expect)(result).toContain("<lastmod>2024-06-20</lastmod>");
116
+ }), (0, import_vitest.it)("escapes XML special characters in URLs", () => {
117
+ const result = (0, import_generateSitemap.generateSitemap)([{
118
+ path: "/search?q=foo&bar=baz"
119
+ }], {
120
+ baseUrl: "https://example.com"
121
+ });
122
+ (0, import_vitest.expect)(result).toContain("&amp;"), (0, import_vitest.expect)(result).not.toContain("&bar");
123
+ }), (0, import_vitest.it)("generates empty sitemap when no routes", () => {
124
+ const result = (0, import_generateSitemap.generateSitemap)([], {});
125
+ (0, import_vitest.expect)(result).toContain('<?xml version="1.0" encoding="UTF-8"?>'), (0, import_vitest.expect)(result).toContain('<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'), (0, import_vitest.expect)(result).toContain("</urlset>"), (0, import_vitest.expect)(result).not.toContain("<url>");
126
+ }), (0, import_vitest.it)("handles all valid changefreq values", () => {
127
+ const changefreqs = ["always", "hourly", "daily", "weekly", "monthly", "yearly", "never"];
128
+ for (const changefreq of changefreqs) {
129
+ const result = (0, import_generateSitemap.generateSitemap)([{
130
+ path: "/",
131
+ routeExport: {
132
+ changefreq
133
+ }
134
+ }], {});
135
+ (0, import_vitest.expect)(result).toContain(`<changefreq>${changefreq}</changefreq>`);
136
+ }
137
+ }), (0, import_vitest.it)("formats priority with one decimal place", () => {
138
+ const result = (0, import_generateSitemap.generateSitemap)([{
139
+ path: "/",
140
+ routeExport: {
141
+ priority: 1
142
+ }
143
+ }, {
144
+ path: "/about",
145
+ routeExport: {
146
+ priority: 0.5
147
+ }
148
+ }, {
149
+ path: "/blog",
150
+ routeExport: {
151
+ priority: 0.75
152
+ }
153
+ }], {});
154
+ (0, import_vitest.expect)(result).toContain("<priority>1.0</priority>"), (0, import_vitest.expect)(result).toContain("<priority>0.5</priority>"), (0, import_vitest.expect)(result).toContain("<priority>0.8</priority>");
155
+ });
156
+ });
@@ -0,0 +1,103 @@
1
+ var import_vitest = require("vitest"), import_generateSitemap = require("./generateSitemap");
2
+ (0, import_vitest.describe)("generateSitemap", () => {
3
+ (0, import_vitest.it)("generates basic sitemap XML", () => {
4
+ const result = (0, import_generateSitemap.generateSitemap)([{ path: "/" }, { path: "/about" }, { path: "/blog" }], {});
5
+ (0, import_vitest.expect)(result).toContain('<?xml version="1.0" encoding="UTF-8"?>'), (0, import_vitest.expect)(result).toContain('<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'), (0, import_vitest.expect)(result).toContain("<loc>/</loc>"), (0, import_vitest.expect)(result).toContain("<loc>/about</loc>"), (0, import_vitest.expect)(result).toContain("<loc>/blog</loc>"), (0, import_vitest.expect)(result).toContain("</urlset>");
6
+ }), (0, import_vitest.it)("uses baseUrl when provided", () => {
7
+ const result = (0, import_generateSitemap.generateSitemap)([{ path: "/" }, { path: "/about" }], {
8
+ baseUrl: "https://example.com"
9
+ });
10
+ (0, import_vitest.expect)(result).toContain("<loc>https://example.com/</loc>"), (0, import_vitest.expect)(result).toContain("<loc>https://example.com/about</loc>");
11
+ }), (0, import_vitest.it)("strips trailing slash from baseUrl", () => {
12
+ const result = (0, import_generateSitemap.generateSitemap)([{ path: "/about" }], {
13
+ baseUrl: "https://example.com/"
14
+ });
15
+ (0, import_vitest.expect)(result).toContain("<loc>https://example.com/about</loc>"), (0, import_vitest.expect)(result).not.toContain("https://example.com//about");
16
+ }), (0, import_vitest.it)("uses ONE_SERVER_URL env var when baseUrl not provided", () => {
17
+ const originalEnv = process.env.ONE_SERVER_URL;
18
+ process.env.ONE_SERVER_URL = "https://env-url.com";
19
+ try {
20
+ const result = (0, import_generateSitemap.generateSitemap)([{ path: "/test" }], {});
21
+ (0, import_vitest.expect)(result).toContain("<loc>https://env-url.com/test</loc>");
22
+ } finally {
23
+ process.env.ONE_SERVER_URL = originalEnv;
24
+ }
25
+ }), (0, import_vitest.it)("applies default priority to all routes", () => {
26
+ const result = (0, import_generateSitemap.generateSitemap)([{ path: "/" }, { path: "/about" }], {
27
+ priority: 0.8
28
+ });
29
+ (0, import_vitest.expect)(result).toMatch(/<url>\s*<loc>\/about<\/loc>\s*<priority>0\.8<\/priority>\s*<\/url>/s);
30
+ }), (0, import_vitest.it)("applies default changefreq to all routes", () => {
31
+ const result = (0, import_generateSitemap.generateSitemap)([{ path: "/" }, { path: "/about" }], {
32
+ changefreq: "weekly"
33
+ });
34
+ (0, import_vitest.expect)(result).toContain("<changefreq>weekly</changefreq>");
35
+ }), (0, import_vitest.it)("respects route-level sitemap exports", () => {
36
+ const result = (0, import_generateSitemap.generateSitemap)([
37
+ { path: "/", routeExport: { priority: 1, changefreq: "daily" } },
38
+ { path: "/about", routeExport: { priority: 0.5, changefreq: "monthly" } }
39
+ ], {
40
+ priority: 0.7,
41
+ changefreq: "weekly"
42
+ });
43
+ (0, import_vitest.expect)(result).toMatch(
44
+ /<url>\s*<loc>\/<\/loc>\s*<changefreq>daily<\/changefreq>\s*<priority>1\.0<\/priority>\s*<\/url>/s
45
+ ), (0, import_vitest.expect)(result).toMatch(
46
+ /<url>\s*<loc>\/about<\/loc>\s*<changefreq>monthly<\/changefreq>\s*<priority>0\.5<\/priority>\s*<\/url>/s
47
+ );
48
+ }), (0, import_vitest.it)("excludes routes with routeExport.exclude = true", () => {
49
+ const result = (0, import_generateSitemap.generateSitemap)([
50
+ { path: "/" },
51
+ { path: "/admin", routeExport: { exclude: !0 } },
52
+ { path: "/about" }
53
+ ], {});
54
+ (0, import_vitest.expect)(result).toContain("<loc>/</loc>"), (0, import_vitest.expect)(result).toContain("<loc>/about</loc>"), (0, import_vitest.expect)(result).not.toContain("/admin");
55
+ }), (0, import_vitest.it)("excludes routes matching exclude glob patterns", () => {
56
+ const result = (0, import_generateSitemap.generateSitemap)([
57
+ { path: "/" },
58
+ { path: "/admin/dashboard" },
59
+ { path: "/admin/users" },
60
+ { path: "/about" },
61
+ { path: "/api/health" }
62
+ ], {
63
+ exclude: ["/admin/*", "/api/*"]
64
+ });
65
+ (0, import_vitest.expect)(result).toContain("<loc>/</loc>"), (0, import_vitest.expect)(result).toContain("<loc>/about</loc>"), (0, import_vitest.expect)(result).not.toContain("/admin"), (0, import_vitest.expect)(result).not.toContain("/api");
66
+ }), (0, import_vitest.it)("includes lastmod when provided in route export", () => {
67
+ const result = (0, import_generateSitemap.generateSitemap)([
68
+ { path: "/", routeExport: { lastmod: "2024-01-15" } },
69
+ { path: "/about", routeExport: { lastmod: /* @__PURE__ */ new Date("2024-06-20") } }
70
+ ], {});
71
+ (0, import_vitest.expect)(result).toContain("<lastmod>2024-01-15</lastmod>"), (0, import_vitest.expect)(result).toContain("<lastmod>2024-06-20</lastmod>");
72
+ }), (0, import_vitest.it)("escapes XML special characters in URLs", () => {
73
+ const result = (0, import_generateSitemap.generateSitemap)([{ path: "/search?q=foo&bar=baz" }], {
74
+ baseUrl: "https://example.com"
75
+ });
76
+ (0, import_vitest.expect)(result).toContain("&amp;"), (0, import_vitest.expect)(result).not.toContain("&bar");
77
+ }), (0, import_vitest.it)("generates empty sitemap when no routes", () => {
78
+ const result = (0, import_generateSitemap.generateSitemap)([], {});
79
+ (0, import_vitest.expect)(result).toContain('<?xml version="1.0" encoding="UTF-8"?>'), (0, import_vitest.expect)(result).toContain('<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'), (0, import_vitest.expect)(result).toContain("</urlset>"), (0, import_vitest.expect)(result).not.toContain("<url>");
80
+ }), (0, import_vitest.it)("handles all valid changefreq values", () => {
81
+ const changefreqs = [
82
+ "always",
83
+ "hourly",
84
+ "daily",
85
+ "weekly",
86
+ "monthly",
87
+ "yearly",
88
+ "never"
89
+ ];
90
+ for (const changefreq of changefreqs) {
91
+ const result = (0, import_generateSitemap.generateSitemap)([{ path: "/", routeExport: { changefreq } }], {});
92
+ (0, import_vitest.expect)(result).toContain(`<changefreq>${changefreq}</changefreq>`);
93
+ }
94
+ }), (0, import_vitest.it)("formats priority with one decimal place", () => {
95
+ const result = (0, import_generateSitemap.generateSitemap)([
96
+ { path: "/", routeExport: { priority: 1 } },
97
+ { path: "/about", routeExport: { priority: 0.5 } },
98
+ { path: "/blog", routeExport: { priority: 0.75 } }
99
+ ], {});
100
+ (0, import_vitest.expect)(result).toContain("<priority>1.0</priority>"), (0, import_vitest.expect)(result).toContain("<priority>0.5</priority>"), (0, import_vitest.expect)(result).toContain("<priority>0.8</priority>");
101
+ });
102
+ });
103
+ //# sourceMappingURL=generateSitemap.test.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/cli/generateSitemap.test.ts"],
4
+ "mappings": "AAAA,oBAAqC,mBACrC,yBAAuD;AAAA,IAGvD,wBAAS,mBAAmB,MAAM;AAChC,wBAAG,+BAA+B,MAAM;AAItC,UAAM,aAAS,wCAHoB,CAAC,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,SAAS,GAAG,EAAE,MAAM,QAAQ,CAAC,GACpD,CAAC,CAES;AAE9C,8BAAO,MAAM,EAAE,UAAU,wCAAwC,OACjE,sBAAO,MAAM,EAAE,UAAU,8DAA8D,OACvF,sBAAO,MAAM,EAAE,UAAU,cAAc,OACvC,sBAAO,MAAM,EAAE,UAAU,mBAAmB,OAC5C,sBAAO,MAAM,EAAE,UAAU,kBAAkB,OAC3C,sBAAO,MAAM,EAAE,UAAU,WAAW;AAAA,EACtC,CAAC,OAED,kBAAG,8BAA8B,MAAM;AAMrC,UAAM,aAAS,wCALoB,CAAC,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,SAAS,CAAC,GACjC;AAAA,MAClC,SAAS;AAAA,IACX,CAE8C;AAE9C,8BAAO,MAAM,EAAE,UAAU,iCAAiC,OAC1D,sBAAO,MAAM,EAAE,UAAU,sCAAsC;AAAA,EACjE,CAAC,OAED,kBAAG,sCAAsC,MAAM;AAM7C,UAAM,aAAS,wCALoB,CAAC,EAAE,MAAM,SAAS,CAAC,GAClB;AAAA,MAClC,SAAS;AAAA,IACX,CAE8C;AAE9C,8BAAO,MAAM,EAAE,UAAU,sCAAsC,OAC/D,sBAAO,MAAM,EAAE,IAAI,UAAU,4BAA4B;AAAA,EAC3D,CAAC,OAED,kBAAG,yDAAyD,MAAM;AAChE,UAAM,cAAc,QAAQ,IAAI;AAChC,YAAQ,IAAI,iBAAiB;AAE7B,QAAI;AAIF,YAAM,aAAS,wCAHoB,CAAC,EAAE,MAAM,QAAQ,CAAC,GACjB,CAAC,CAES;AAE9C,gCAAO,MAAM,EAAE,UAAU,qCAAqC;AAAA,IAChE,UAAE;AACA,cAAQ,IAAI,iBAAiB;AAAA,IAC/B;AAAA,EACF,CAAC,OAED,kBAAG,0CAA0C,MAAM;AAMjD,UAAM,aAAS,wCALoB,CAAC,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,SAAS,CAAC,GACjC;AAAA,MAClC,UAAU;AAAA,IACZ,CAE8C;AAE9C,8BAAO,MAAM,EAAE,QAAQ,qEAAqE;AAAA,EAC9F,CAAC,OAED,kBAAG,4CAA4C,MAAM;AAMnD,UAAM,aAAS,wCALoB,CAAC,EAAE,MAAM,IAAI,GAAG,EAAE,MAAM,SAAS,CAAC,GACjC;AAAA,MAClC,YAAY;AAAA,IACd,CAE8C;AAE9C,8BAAO,MAAM,EAAE,UAAU,iCAAiC;AAAA,EAC5D,CAAC,OAED,kBAAG,wCAAwC,MAAM;AAU/C,UAAM,aAAS,wCAToB;AAAA,MACjC,EAAE,MAAM,KAAK,aAAa,EAAE,UAAU,GAAK,YAAY,QAAQ,EAAE;AAAA,MACjE,EAAE,MAAM,UAAU,aAAa,EAAE,UAAU,KAAK,YAAY,UAAU,EAAE;AAAA,IAC1E,GACoC;AAAA,MAClC,UAAU;AAAA,MACV,YAAY;AAAA,IACd,CAE8C;AAG9C,8BAAO,MAAM,EAAE;AAAA,MACb;AAAA,IACF,OACA,sBAAO,MAAM,EAAE;AAAA,MACb;AAAA,IACF;AAAA,EACF,CAAC,OAED,kBAAG,mDAAmD,MAAM;AAQ1D,UAAM,aAAS,wCAPoB;AAAA,MACjC,EAAE,MAAM,IAAI;AAAA,MACZ,EAAE,MAAM,UAAU,aAAa,EAAE,SAAS,GAAK,EAAE;AAAA,MACjD,EAAE,MAAM,SAAS;AAAA,IACnB,GACoC,CAAC,CAES;AAE9C,8BAAO,MAAM,EAAE,UAAU,cAAc,OACvC,sBAAO,MAAM,EAAE,UAAU,mBAAmB,OAC5C,sBAAO,MAAM,EAAE,IAAI,UAAU,QAAQ;AAAA,EACvC,CAAC,OAED,kBAAG,kDAAkD,MAAM;AAYzD,UAAM,aAAS,wCAXoB;AAAA,MACjC,EAAE,MAAM,IAAI;AAAA,MACZ,EAAE,MAAM,mBAAmB;AAAA,MAC3B,EAAE,MAAM,eAAe;AAAA,MACvB,EAAE,MAAM,SAAS;AAAA,MACjB,EAAE,MAAM,cAAc;AAAA,IACxB,GACoC;AAAA,MAClC,SAAS,CAAC,YAAY,QAAQ;AAAA,IAChC,CAE8C;AAE9C,8BAAO,MAAM,EAAE,UAAU,cAAc,OACvC,sBAAO,MAAM,EAAE,UAAU,mBAAmB,OAC5C,sBAAO,MAAM,EAAE,IAAI,UAAU,QAAQ,OACrC,sBAAO,MAAM,EAAE,IAAI,UAAU,MAAM;AAAA,EACrC,CAAC,OAED,kBAAG,kDAAkD,MAAM;AAOzD,UAAM,aAAS,wCANoB;AAAA,MACjC,EAAE,MAAM,KAAK,aAAa,EAAE,SAAS,aAAa,EAAE;AAAA,MACpD,EAAE,MAAM,UAAU,aAAa,EAAE,SAAS,oBAAI,KAAK,YAAY,EAAE,EAAE;AAAA,IACrE,GACoC,CAAC,CAES;AAE9C,8BAAO,MAAM,EAAE,UAAU,+BAA+B,OACxD,sBAAO,MAAM,EAAE,UAAU,+BAA+B;AAAA,EAC1D,CAAC,OAED,kBAAG,0CAA0C,MAAM;AAMjD,UAAM,aAAS,wCALoB,CAAC,EAAE,MAAM,wBAAwB,CAAC,GACjC;AAAA,MAClC,SAAS;AAAA,IACX,CAE8C;AAE9C,8BAAO,MAAM,EAAE,UAAU,OAAO,OAChC,sBAAO,MAAM,EAAE,IAAI,UAAU,MAAM;AAAA,EACrC,CAAC,OAED,kBAAG,0CAA0C,MAAM;AAIjD,UAAM,aAAS,wCAHoB,CAAC,GACA,CAAC,CAES;AAE9C,8BAAO,MAAM,EAAE,UAAU,wCAAwC,OACjE,sBAAO,MAAM,EAAE,UAAU,8DAA8D,OACvF,sBAAO,MAAM,EAAE,UAAU,WAAW,OACpC,sBAAO,MAAM,EAAE,IAAI,UAAU,OAAO;AAAA,EACtC,CAAC,OAED,kBAAG,uCAAuC,MAAM;AAC9C,UAAM,cAAuC;AAAA,MAC3C;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAEA,eAAW,cAAc,aAAa;AAEpC,YAAM,aAAS,wCADoB,CAAC,EAAE,MAAM,KAAK,aAAa,EAAE,WAAW,EAAE,CAAC,GACvC,CAAC,CAAC;AACzC,gCAAO,MAAM,EAAE,UAAU,eAAe,UAAU,eAAe;AAAA,IACnE;AAAA,EACF,CAAC,OAED,kBAAG,2CAA2C,MAAM;AAQlD,UAAM,aAAS,wCAPoB;AAAA,MACjC,EAAE,MAAM,KAAK,aAAa,EAAE,UAAU,EAAE,EAAE;AAAA,MAC1C,EAAE,MAAM,UAAU,aAAa,EAAE,UAAU,IAAI,EAAE;AAAA,MACjD,EAAE,MAAM,SAAS,aAAa,EAAE,UAAU,KAAK,EAAE;AAAA,IACnD,GACoC,CAAC,CAES;AAE9C,8BAAO,MAAM,EAAE,UAAU,0BAA0B,OACnD,sBAAO,MAAM,EAAE,UAAU,0BAA0B,OACnD,sBAAO,MAAM,EAAE,UAAU,0BAA0B;AAAA,EACrD,CAAC;AACH,CAAC;",
5
+ "names": []
6
+ }
@@ -0,0 +1,200 @@
1
+ "use strict";
2
+
3
+ var import_vitest = require("vitest"),
4
+ import_generateSitemap = require("./generateSitemap.native.js");
5
+ (0, import_vitest.describe)("generateSitemap", function () {
6
+ (0, import_vitest.it)("generates basic sitemap XML", function () {
7
+ var routes = [{
8
+ path: "/"
9
+ }, {
10
+ path: "/about"
11
+ }, {
12
+ path: "/blog"
13
+ }],
14
+ options = {},
15
+ result = (0, import_generateSitemap.generateSitemap)(routes, options);
16
+ (0, import_vitest.expect)(result).toContain('<?xml version="1.0" encoding="UTF-8"?>'), (0, import_vitest.expect)(result).toContain('<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'), (0, import_vitest.expect)(result).toContain("<loc>/</loc>"), (0, import_vitest.expect)(result).toContain("<loc>/about</loc>"), (0, import_vitest.expect)(result).toContain("<loc>/blog</loc>"), (0, import_vitest.expect)(result).toContain("</urlset>");
17
+ }), (0, import_vitest.it)("uses baseUrl when provided", function () {
18
+ var routes = [{
19
+ path: "/"
20
+ }, {
21
+ path: "/about"
22
+ }],
23
+ options = {
24
+ baseUrl: "https://example.com"
25
+ },
26
+ result = (0, import_generateSitemap.generateSitemap)(routes, options);
27
+ (0, import_vitest.expect)(result).toContain("<loc>https://example.com/</loc>"), (0, import_vitest.expect)(result).toContain("<loc>https://example.com/about</loc>");
28
+ }), (0, import_vitest.it)("strips trailing slash from baseUrl", function () {
29
+ var routes = [{
30
+ path: "/about"
31
+ }],
32
+ options = {
33
+ baseUrl: "https://example.com/"
34
+ },
35
+ result = (0, import_generateSitemap.generateSitemap)(routes, options);
36
+ (0, import_vitest.expect)(result).toContain("<loc>https://example.com/about</loc>"), (0, import_vitest.expect)(result).not.toContain("https://example.com//about");
37
+ }), (0, import_vitest.it)("uses ONE_SERVER_URL env var when baseUrl not provided", function () {
38
+ var originalEnv = process.env.ONE_SERVER_URL;
39
+ process.env.ONE_SERVER_URL = "https://env-url.com";
40
+ try {
41
+ var routes = [{
42
+ path: "/test"
43
+ }],
44
+ options = {},
45
+ result = (0, import_generateSitemap.generateSitemap)(routes, options);
46
+ (0, import_vitest.expect)(result).toContain("<loc>https://env-url.com/test</loc>");
47
+ } finally {
48
+ process.env.ONE_SERVER_URL = originalEnv;
49
+ }
50
+ }), (0, import_vitest.it)("applies default priority to all routes", function () {
51
+ var routes = [{
52
+ path: "/"
53
+ }, {
54
+ path: "/about"
55
+ }],
56
+ options = {
57
+ priority: 0.8
58
+ },
59
+ result = (0, import_generateSitemap.generateSitemap)(routes, options);
60
+ (0, import_vitest.expect)(result).toMatch(RegExp("<url>\\s*<loc>\\/about<\\/loc>\\s*<priority>0\\.8<\\/priority>\\s*<\\/url>", "s"));
61
+ }), (0, import_vitest.it)("applies default changefreq to all routes", function () {
62
+ var routes = [{
63
+ path: "/"
64
+ }, {
65
+ path: "/about"
66
+ }],
67
+ options = {
68
+ changefreq: "weekly"
69
+ },
70
+ result = (0, import_generateSitemap.generateSitemap)(routes, options);
71
+ (0, import_vitest.expect)(result).toContain("<changefreq>weekly</changefreq>");
72
+ }), (0, import_vitest.it)("respects route-level sitemap exports", function () {
73
+ var routes = [{
74
+ path: "/",
75
+ routeExport: {
76
+ priority: 1,
77
+ changefreq: "daily"
78
+ }
79
+ }, {
80
+ path: "/about",
81
+ routeExport: {
82
+ priority: 0.5,
83
+ changefreq: "monthly"
84
+ }
85
+ }],
86
+ options = {
87
+ priority: 0.7,
88
+ changefreq: "weekly"
89
+ },
90
+ result = (0, import_generateSitemap.generateSitemap)(routes, options);
91
+ (0, import_vitest.expect)(result).toMatch(RegExp("<url>\\s*<loc>\\/<\\/loc>\\s*<changefreq>daily<\\/changefreq>\\s*<priority>1\\.0<\\/priority>\\s*<\\/url>", "s")), (0, import_vitest.expect)(result).toMatch(RegExp("<url>\\s*<loc>\\/about<\\/loc>\\s*<changefreq>monthly<\\/changefreq>\\s*<priority>0\\.5<\\/priority>\\s*<\\/url>", "s"));
92
+ }), (0, import_vitest.it)("excludes routes with routeExport.exclude = true", function () {
93
+ var routes = [{
94
+ path: "/"
95
+ }, {
96
+ path: "/admin",
97
+ routeExport: {
98
+ exclude: !0
99
+ }
100
+ }, {
101
+ path: "/about"
102
+ }],
103
+ options = {},
104
+ result = (0, import_generateSitemap.generateSitemap)(routes, options);
105
+ (0, import_vitest.expect)(result).toContain("<loc>/</loc>"), (0, import_vitest.expect)(result).toContain("<loc>/about</loc>"), (0, import_vitest.expect)(result).not.toContain("/admin");
106
+ }), (0, import_vitest.it)("excludes routes matching exclude glob patterns", function () {
107
+ var routes = [{
108
+ path: "/"
109
+ }, {
110
+ path: "/admin/dashboard"
111
+ }, {
112
+ path: "/admin/users"
113
+ }, {
114
+ path: "/about"
115
+ }, {
116
+ path: "/api/health"
117
+ }],
118
+ options = {
119
+ exclude: ["/admin/*", "/api/*"]
120
+ },
121
+ result = (0, import_generateSitemap.generateSitemap)(routes, options);
122
+ (0, import_vitest.expect)(result).toContain("<loc>/</loc>"), (0, import_vitest.expect)(result).toContain("<loc>/about</loc>"), (0, import_vitest.expect)(result).not.toContain("/admin"), (0, import_vitest.expect)(result).not.toContain("/api");
123
+ }), (0, import_vitest.it)("includes lastmod when provided in route export", function () {
124
+ var routes = [{
125
+ path: "/",
126
+ routeExport: {
127
+ lastmod: "2024-01-15"
128
+ }
129
+ }, {
130
+ path: "/about",
131
+ routeExport: {
132
+ lastmod: /* @__PURE__ */new Date("2024-06-20")
133
+ }
134
+ }],
135
+ options = {},
136
+ result = (0, import_generateSitemap.generateSitemap)(routes, options);
137
+ (0, import_vitest.expect)(result).toContain("<lastmod>2024-01-15</lastmod>"), (0, import_vitest.expect)(result).toContain("<lastmod>2024-06-20</lastmod>");
138
+ }), (0, import_vitest.it)("escapes XML special characters in URLs", function () {
139
+ var routes = [{
140
+ path: "/search?q=foo&bar=baz"
141
+ }],
142
+ options = {
143
+ baseUrl: "https://example.com"
144
+ },
145
+ result = (0, import_generateSitemap.generateSitemap)(routes, options);
146
+ (0, import_vitest.expect)(result).toContain("&amp;"), (0, import_vitest.expect)(result).not.toContain("&bar");
147
+ }), (0, import_vitest.it)("generates empty sitemap when no routes", function () {
148
+ var routes = [],
149
+ options = {},
150
+ result = (0, import_generateSitemap.generateSitemap)(routes, options);
151
+ (0, import_vitest.expect)(result).toContain('<?xml version="1.0" encoding="UTF-8"?>'), (0, import_vitest.expect)(result).toContain('<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'), (0, import_vitest.expect)(result).toContain("</urlset>"), (0, import_vitest.expect)(result).not.toContain("<url>");
152
+ }), (0, import_vitest.it)("handles all valid changefreq values", function () {
153
+ var changefreqs = ["always", "hourly", "daily", "weekly", "monthly", "yearly", "never"],
154
+ _iteratorNormalCompletion = !0,
155
+ _didIteratorError = !1,
156
+ _iteratorError = void 0;
157
+ try {
158
+ for (var _iterator = changefreqs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
159
+ var changefreq = _step.value,
160
+ routes = [{
161
+ path: "/",
162
+ routeExport: {
163
+ changefreq
164
+ }
165
+ }],
166
+ result = (0, import_generateSitemap.generateSitemap)(routes, {});
167
+ (0, import_vitest.expect)(result).toContain(`<changefreq>${changefreq}</changefreq>`);
168
+ }
169
+ } catch (err) {
170
+ _didIteratorError = !0, _iteratorError = err;
171
+ } finally {
172
+ try {
173
+ !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
174
+ } finally {
175
+ if (_didIteratorError) throw _iteratorError;
176
+ }
177
+ }
178
+ }), (0, import_vitest.it)("formats priority with one decimal place", function () {
179
+ var routes = [{
180
+ path: "/",
181
+ routeExport: {
182
+ priority: 1
183
+ }
184
+ }, {
185
+ path: "/about",
186
+ routeExport: {
187
+ priority: 0.5
188
+ }
189
+ }, {
190
+ path: "/blog",
191
+ routeExport: {
192
+ priority: 0.75
193
+ }
194
+ }],
195
+ options = {},
196
+ result = (0, import_generateSitemap.generateSitemap)(routes, options);
197
+ (0, import_vitest.expect)(result).toContain("<priority>1.0</priority>"), (0, import_vitest.expect)(result).toContain("<priority>0.5</priority>"), (0, import_vitest.expect)(result).toContain("<priority>0.8</priority>");
198
+ });
199
+ });
200
+ //# sourceMappingURL=generateSitemap.test.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["import_vitest","require","import_generateSitemap","describe","it","routes","path","options","result","generateSitemap","expect","toContain","baseUrl","not","originalEnv","process","env","ONE_SERVER_URL","priority","toMatch","RegExp","changefreq","routeExport"],"sources":["../../../src/cli/generateSitemap.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -36,13 +36,11 @@ __export(createApp_exports, {
36
36
  module.exports = __toCommonJS(createApp_exports);
37
37
  var import_setup = require("./setup.cjs"),
38
38
  import_react = require("react"),
39
- import_server = __toESM(require("react-dom/server.browser"), 1),
40
39
  import_react_native = require("react-native-web"),
41
40
  import_clientLoaderResolver = require("./clientLoaderResolver.cjs"),
42
- import_Root = require("./Root.cjs"),
43
41
  import_render = require("./render.cjs"),
42
+ import_Root = require("./Root.cjs"),
44
43
  import_useViteRoutes = require("./router/useViteRoutes.cjs"),
45
- import_server_render = require("./server-render.cjs"),
46
44
  import_useServerHeadInsertion = require("./useServerHeadInsertion.cjs"),
47
45
  import_ensureExists = require("./utils/ensureExists.cjs"),
48
46
  import_constants = require("./vite/constants.cjs"),
@@ -53,6 +51,9 @@ function createApp(options) {
53
51
  if (import_meta.env.SSR) return {
54
52
  options,
55
53
  render: async props => {
54
+ const [ReactDOMServer, serverRender] = await Promise.all([import("react-dom/server.browser"), import("./server-render")]),
55
+ renderToStaticMarkup = ReactDOMServer.renderToStaticMarkup || ReactDOMServer.default?.renderToStaticMarkup,
56
+ renderToString = serverRender.renderToString;
56
57
  let {
57
58
  loaderData,
58
59
  loaderProps,
@@ -84,7 +85,7 @@ function createApp(options) {
84
85
  import_react_native.AppRegistry.registerComponent("App", () => App);
85
86
  const Application = import_react_native.AppRegistry.getApplication("App", {}),
86
87
  rootElement = Application.element.props.children;
87
- let html = await (0, import_server_render.renderToString)(rootElement, {
88
+ let html = await renderToString(rootElement, {
88
89
  preloads: props.preloads
89
90
  });
90
91
  try {
@@ -99,7 +100,7 @@ function createApp(options) {
99
100
  out && extraHeadElements.push(out);
100
101
  }
101
102
  if (extraHeadElements.length) {
102
- const extraHeadHTML = import_server.default.renderToStaticMarkup(/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {
103
+ const extraHeadHTML = renderToStaticMarkup(/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, {
103
104
  children: extraHeadElements.map((x, i) => (0, import_react.cloneElement)(x, {
104
105
  key: i
105
106
  }))
@@ -25,13 +25,17 @@ __export(createApp_exports, {
25
25
  createApp: () => createApp
26
26
  });
27
27
  module.exports = __toCommonJS(createApp_exports);
28
- var import_setup = require("./setup"), import_react = require("react"), import_server = __toESM(require("react-dom/server.browser"), 1), import_react_native = require("react-native-web"), import_clientLoaderResolver = require("./clientLoaderResolver"), import_Root = require("./Root"), import_render = require("./render"), import_useViteRoutes = require("./router/useViteRoutes"), import_server_render = require("./server-render"), import_useServerHeadInsertion = require("./useServerHeadInsertion"), import_ensureExists = require("./utils/ensureExists"), import_constants = require("./vite/constants"), import_one_server_only = require("./vite/one-server-only"), import_jsx_runtime = require("react/jsx-runtime");
28
+ var import_setup = require("./setup"), import_react = require("react"), import_react_native = require("react-native-web"), import_clientLoaderResolver = require("./clientLoaderResolver"), import_render = require("./render"), import_Root = require("./Root"), import_useViteRoutes = require("./router/useViteRoutes"), import_useServerHeadInsertion = require("./useServerHeadInsertion"), import_ensureExists = require("./utils/ensureExists"), import_constants = require("./vite/constants"), import_one_server_only = require("./vite/one-server-only"), import_jsx_runtime = require("react/jsx-runtime");
29
29
  const import_meta = {};
30
30
  function createApp(options) {
31
31
  if (import_meta.env.SSR)
32
32
  return {
33
33
  options,
34
34
  render: async (props) => {
35
+ const [ReactDOMServer, serverRender] = await Promise.all([
36
+ import("react-dom/server.browser"),
37
+ import("./server-render")
38
+ ]), renderToStaticMarkup = ReactDOMServer.renderToStaticMarkup || ReactDOMServer.default?.renderToStaticMarkup, renderToString = serverRender.renderToString;
35
39
  let { loaderData, loaderProps, css, cssContents, mode, loaderServerData, routePreloads: routePreloads2 } = props;
36
40
  (0, import_one_server_only.setServerContext)({
37
41
  postRenderData: loaderServerData,
@@ -57,7 +61,7 @@ function createApp(options) {
57
61
  );
58
62
  import_react_native.AppRegistry.registerComponent("App", () => App);
59
63
  const Application = import_react_native.AppRegistry.getApplication("App", {}), rootElement = Application.element.props.children;
60
- let html = await (0, import_server_render.renderToString)(rootElement, {
64
+ let html = await renderToString(rootElement, {
61
65
  preloads: props.preloads
62
66
  });
63
67
  try {
@@ -70,7 +74,7 @@ function createApp(options) {
70
74
  out && extraHeadElements.push(out);
71
75
  }
72
76
  if (extraHeadElements.length) {
73
- const extraHeadHTML = import_server.default.renderToStaticMarkup(
77
+ const extraHeadHTML = renderToStaticMarkup(
74
78
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: extraHeadElements.map((x, i) => (0, import_react.cloneElement)(x, { key: i })) })
75
79
  );
76
80
  extraHeadHTML && (html = html.replace("</head>", `${extraHeadHTML}</head>`));
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/createApp.tsx"],
4
- "mappings": "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",
5
- "names": ["routePreloads", "ReactDOMServer"]
4
+ "mappings": "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",
5
+ "names": ["routePreloads"]
6
6
  }