one 1.2.35 → 1.2.36

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 (59) 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/vite/one.cjs +30 -14
  17. package/dist/cjs/vite/one.js +30 -14
  18. package/dist/cjs/vite/one.js.map +1 -1
  19. package/dist/cjs/vite/one.native.js +30 -14
  20. package/dist/cjs/vite/one.native.js.map +1 -1
  21. package/dist/esm/cli/build.js +14 -2
  22. package/dist/esm/cli/build.js.map +1 -1
  23. package/dist/esm/cli/build.mjs +16 -2
  24. package/dist/esm/cli/build.mjs.map +1 -1
  25. package/dist/esm/cli/build.native.js +20 -5
  26. package/dist/esm/cli/build.native.js.map +1 -1
  27. package/dist/esm/cli/generateSitemap.js +45 -0
  28. package/dist/esm/cli/generateSitemap.js.map +6 -0
  29. package/dist/esm/cli/generateSitemap.mjs +52 -0
  30. package/dist/esm/cli/generateSitemap.mjs.map +1 -0
  31. package/dist/esm/cli/generateSitemap.native.js +75 -0
  32. package/dist/esm/cli/generateSitemap.native.js.map +1 -0
  33. package/dist/esm/cli/generateSitemap.test.js +104 -0
  34. package/dist/esm/cli/generateSitemap.test.js.map +6 -0
  35. package/dist/esm/cli/generateSitemap.test.mjs +157 -0
  36. package/dist/esm/cli/generateSitemap.test.mjs.map +1 -0
  37. package/dist/esm/cli/generateSitemap.test.native.js +198 -0
  38. package/dist/esm/cli/generateSitemap.test.native.js.map +1 -0
  39. package/dist/esm/vite/one.js +30 -14
  40. package/dist/esm/vite/one.js.map +1 -1
  41. package/dist/esm/vite/one.mjs +30 -14
  42. package/dist/esm/vite/one.mjs.map +1 -1
  43. package/dist/esm/vite/one.native.js +30 -14
  44. package/dist/esm/vite/one.native.js.map +1 -1
  45. package/package.json +13 -10
  46. package/src/cli/build.ts +31 -0
  47. package/src/cli/generateSitemap.test.ts +207 -0
  48. package/src/cli/generateSitemap.ts +93 -0
  49. package/src/vite/one.ts +28 -11
  50. package/src/vite/types.ts +73 -0
  51. package/types/cli/build.d.ts.map +1 -1
  52. package/types/cli/generateSitemap.d.ts +13 -0
  53. package/types/cli/generateSitemap.d.ts.map +1 -0
  54. package/types/cli/generateSitemap.test.d.ts +2 -0
  55. package/types/cli/generateSitemap.test.d.ts.map +1 -0
  56. package/types/env.d.ts +43 -0
  57. package/types/vite/one.d.ts.map +1 -1
  58. package/types/vite/types.d.ts +62 -0
  59. 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": "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",
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":[]}
@@ -200,6 +200,15 @@ function one(options = {}) {
200
200
  config() {
201
201
  return {
202
202
  define: {
203
+ // we define this not in environment.client because there must be a bug in vite
204
+ // it doesnt define the import.meta.env at all if you do that
205
+ "process.env.TAMAGUI_ENVIRONMENT": '"client"',
206
+ "process.env.VITE_ENVIRONMENT": '"client"',
207
+ "import.meta.env.VITE_ENVIRONMENT": '"client"',
208
+ "process.env.VITE_PLATFORM": '"web"',
209
+ "import.meta.env.VITE_PLATFORM": '"web"',
210
+ "process.env.EXPO_OS": '"web"',
211
+ "import.meta.env.EXPO_OS": '"web"',
203
212
  ...(options.web?.defaultRenderMode && {
204
213
  "process.env.ONE_DEFAULT_RENDER_MODE": JSON.stringify(options.web.defaultRenderMode),
205
214
  "import.meta.env.ONE_DEFAULT_RENDER_MODE": JSON.stringify(options.web.defaultRenderMode)
@@ -238,37 +247,44 @@ function one(options = {}) {
238
247
  })
239
248
  },
240
249
  environments: {
241
- client: {
242
- define: {
243
- "process.env.VITE_ENVIRONMENT": '"client"',
244
- "process.env.TAMAGUI_ENVIRONMENT": '"client"',
245
- "import.meta.env.VITE_ENVIRONMENT": '"client"',
246
- "process.env.EXPO_OS": '"web"'
247
- }
248
- },
250
+ // we define client vars not in environment.client because there must be a bug in vite
251
+ // it doesnt define the import.meta.env at all if you do that
252
+ // client: {
253
+ // define: {
254
+ // },
255
+ // },
249
256
  ssr: {
250
257
  define: {
258
+ "process.env.TAMAGUI_ENVIRONMENT": '"ssr"',
251
259
  "process.env.VITE_ENVIRONMENT": '"ssr"',
252
260
  // Note that we are also setting `process.env.VITE_ENVIRONMENT = 'ssr'` for this current process. See `setServerGlobals()` and `setupServerGlobals.ts`.
253
- "process.env.TAMAGUI_ENVIRONMENT": '"ssr"',
254
261
  "import.meta.env.VITE_ENVIRONMENT": '"ssr"',
255
- "process.env.EXPO_OS": '"web"'
262
+ "process.env.VITE_PLATFORM": '"web"',
263
+ "import.meta.env.VITE_PLATFORM": '"web"',
264
+ "process.env.EXPO_OS": '"web"',
265
+ "import.meta.env.EXPO_OS": '"web"'
256
266
  }
257
267
  },
258
268
  ios: {
259
269
  define: {
260
- "process.env.VITE_ENVIRONMENT": '"ios"',
261
270
  "process.env.TAMAGUI_ENVIRONMENT": '"ios"',
271
+ "process.env.VITE_ENVIRONMENT": '"ios"',
262
272
  "import.meta.env.VITE_ENVIRONMENT": '"ios"',
263
- "process.env.EXPO_OS": '"ios"'
273
+ "process.env.VITE_PLATFORM": '"native"',
274
+ "import.meta.env.VITE_PLATFORM": '"native"',
275
+ "process.env.EXPO_OS": '"ios"',
276
+ "import.meta.env.EXPO_OS": '"ios"'
264
277
  }
265
278
  },
266
279
  android: {
267
280
  define: {
268
- "process.env.VITE_ENVIRONMENT": '"android"',
269
281
  "process.env.TAMAGUI_ENVIRONMENT": '"android"',
282
+ "process.env.VITE_ENVIRONMENT": '"android"',
270
283
  "import.meta.env.VITE_ENVIRONMENT": '"android"',
271
- "process.env.EXPO_OS": '"android"'
284
+ "process.env.VITE_PLATFORM": '"native"',
285
+ "import.meta.env.VITE_PLATFORM": '"native"',
286
+ "process.env.EXPO_OS": '"android"',
287
+ "import.meta.env.EXPO_OS": '"android"'
272
288
  }
273
289
  }
274
290
  }
@@ -186,6 +186,15 @@ function one(options = {}) {
186
186
  config() {
187
187
  return {
188
188
  define: {
189
+ // we define this not in environment.client because there must be a bug in vite
190
+ // it doesnt define the import.meta.env at all if you do that
191
+ "process.env.TAMAGUI_ENVIRONMENT": '"client"',
192
+ "process.env.VITE_ENVIRONMENT": '"client"',
193
+ "import.meta.env.VITE_ENVIRONMENT": '"client"',
194
+ "process.env.VITE_PLATFORM": '"web"',
195
+ "import.meta.env.VITE_PLATFORM": '"web"',
196
+ "process.env.EXPO_OS": '"web"',
197
+ "import.meta.env.EXPO_OS": '"web"',
189
198
  ...options.web?.defaultRenderMode && {
190
199
  "process.env.ONE_DEFAULT_RENDER_MODE": JSON.stringify(options.web.defaultRenderMode),
191
200
  "import.meta.env.ONE_DEFAULT_RENDER_MODE": JSON.stringify(
@@ -226,37 +235,44 @@ function one(options = {}) {
226
235
  }
227
236
  },
228
237
  environments: {
229
- client: {
230
- define: {
231
- "process.env.VITE_ENVIRONMENT": '"client"',
232
- "process.env.TAMAGUI_ENVIRONMENT": '"client"',
233
- "import.meta.env.VITE_ENVIRONMENT": '"client"',
234
- "process.env.EXPO_OS": '"web"'
235
- }
236
- },
238
+ // we define client vars not in environment.client because there must be a bug in vite
239
+ // it doesnt define the import.meta.env at all if you do that
240
+ // client: {
241
+ // define: {
242
+ // },
243
+ // },
237
244
  ssr: {
238
245
  define: {
246
+ "process.env.TAMAGUI_ENVIRONMENT": '"ssr"',
239
247
  "process.env.VITE_ENVIRONMENT": '"ssr"',
240
248
  // Note that we are also setting `process.env.VITE_ENVIRONMENT = 'ssr'` for this current process. See `setServerGlobals()` and `setupServerGlobals.ts`.
241
- "process.env.TAMAGUI_ENVIRONMENT": '"ssr"',
242
249
  "import.meta.env.VITE_ENVIRONMENT": '"ssr"',
243
- "process.env.EXPO_OS": '"web"'
250
+ "process.env.VITE_PLATFORM": '"web"',
251
+ "import.meta.env.VITE_PLATFORM": '"web"',
252
+ "process.env.EXPO_OS": '"web"',
253
+ "import.meta.env.EXPO_OS": '"web"'
244
254
  }
245
255
  },
246
256
  ios: {
247
257
  define: {
248
- "process.env.VITE_ENVIRONMENT": '"ios"',
249
258
  "process.env.TAMAGUI_ENVIRONMENT": '"ios"',
259
+ "process.env.VITE_ENVIRONMENT": '"ios"',
250
260
  "import.meta.env.VITE_ENVIRONMENT": '"ios"',
251
- "process.env.EXPO_OS": '"ios"'
261
+ "process.env.VITE_PLATFORM": '"native"',
262
+ "import.meta.env.VITE_PLATFORM": '"native"',
263
+ "process.env.EXPO_OS": '"ios"',
264
+ "import.meta.env.EXPO_OS": '"ios"'
252
265
  }
253
266
  },
254
267
  android: {
255
268
  define: {
256
- "process.env.VITE_ENVIRONMENT": '"android"',
257
269
  "process.env.TAMAGUI_ENVIRONMENT": '"android"',
270
+ "process.env.VITE_ENVIRONMENT": '"android"',
258
271
  "import.meta.env.VITE_ENVIRONMENT": '"android"',
259
- "process.env.EXPO_OS": '"android"'
272
+ "process.env.VITE_PLATFORM": '"native"',
273
+ "import.meta.env.VITE_PLATFORM": '"native"',
274
+ "process.env.EXPO_OS": '"android"',
275
+ "import.meta.env.EXPO_OS": '"android"'
260
276
  }
261
277
  }
262
278
  }