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,45 @@
1
+ import MicroMatch from "micromatch";
2
+ function generateSitemap(routes, options) {
3
+ const envUrl = process.env.ONE_SERVER_URL, baseUrl = options.baseUrl ?? (envUrl && envUrl !== "undefined" ? envUrl : ""), defaultPriority = options.priority ?? 0.5, defaultChangefreq = options.changefreq, excludePatterns = options.exclude || [], entries = [];
4
+ for (const route of routes) {
5
+ const { path, routeExport } = route;
6
+ if (routeExport?.exclude || excludePatterns.length > 0 && MicroMatch.isMatch(path, excludePatterns))
7
+ continue;
8
+ const priority = routeExport?.priority ?? defaultPriority, changefreq = routeExport?.changefreq ?? defaultChangefreq, lastmod = routeExport?.lastmod;
9
+ entries.push({
10
+ path,
11
+ priority,
12
+ changefreq,
13
+ lastmod
14
+ });
15
+ }
16
+ return buildSitemapXml(entries, baseUrl);
17
+ }
18
+ function buildSitemapXml(entries, baseUrl) {
19
+ return `<?xml version="1.0" encoding="UTF-8"?>
20
+ <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
21
+ ${entries.map((entry) => {
22
+ const loc = baseUrl ? `${baseUrl.replace(/\/$/, "")}${entry.path}` : entry.path;
23
+ let xml = ` <url>
24
+ <loc>${escapeXml(loc)}</loc>`;
25
+ if (entry.lastmod) {
26
+ const date = entry.lastmod instanceof Date ? entry.lastmod.toISOString().split("T")[0] : entry.lastmod;
27
+ xml += `
28
+ <lastmod>${escapeXml(date)}</lastmod>`;
29
+ }
30
+ return entry.changefreq && (xml += `
31
+ <changefreq>${entry.changefreq}</changefreq>`), entry.priority !== void 0 && (xml += `
32
+ <priority>${entry.priority.toFixed(1)}</priority>`), xml += `
33
+ </url>`, xml;
34
+ }).join(`
35
+ `)}
36
+ </urlset>
37
+ `;
38
+ }
39
+ function escapeXml(str) {
40
+ return str.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&apos;");
41
+ }
42
+ export {
43
+ generateSitemap
44
+ };
45
+ //# sourceMappingURL=generateSitemap.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/cli/generateSitemap.ts"],
4
+ "mappings": "AAAA,OAAO,gBAAgB;AAehB,SAAS,gBAAgB,QAA4B,SAAqC;AAC/F,QAAM,SAAS,QAAQ,IAAI,gBACrB,UAAU,QAAQ,YAAY,UAAU,WAAW,cAAc,SAAS,KAC1E,kBAAkB,QAAQ,YAAY,KACtC,oBAAoB,QAAQ,YAC5B,kBAAkB,QAAQ,WAAW,CAAC,GAEtC,UAA0B,CAAC;AAEjC,aAAW,SAAS,QAAQ;AAC1B,UAAM,EAAE,MAAM,YAAY,IAAI;AAQ9B,QALI,aAAa,WAKb,gBAAgB,SAAS,KAAK,WAAW,QAAQ,MAAM,eAAe;AACxE;AAGF,UAAM,WAAW,aAAa,YAAY,iBACpC,aAAa,aAAa,cAAc,mBACxC,UAAU,aAAa;AAE7B,YAAQ,KAAK;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AAEA,SAAO,gBAAgB,SAAS,OAAO;AACzC;AAEA,SAAS,gBAAgB,SAAyB,SAAyB;AA0BzE,SAAO;AAAA;AAAA,EAzBY,QAChB,IAAI,CAAC,UAAU;AACd,UAAM,MAAM,UAAU,GAAG,QAAQ,QAAQ,OAAO,EAAE,CAAC,GAAG,MAAM,IAAI,KAAK,MAAM;AAE3E,QAAI,MAAM;AAAA,WAAqB,UAAU,GAAG,CAAC;AAE7C,QAAI,MAAM,SAAS;AACjB,YAAM,OACJ,MAAM,mBAAmB,OAAO,MAAM,QAAQ,YAAY,EAAE,MAAM,GAAG,EAAE,CAAC,IAAI,MAAM;AACpF,aAAO;AAAA,eAAkB,UAAU,IAAI,CAAC;AAAA,IAC1C;AAEA,WAAI,MAAM,eACR,OAAO;AAAA,kBAAqB,MAAM,UAAU,kBAG1C,MAAM,aAAa,WACrB,OAAO;AAAA,gBAAmB,MAAM,SAAS,QAAQ,CAAC,CAAC,gBAGrD,OAAO;AAAA,WACA;AAAA,EACT,CAAC,EACA,KAAK;AAAA,CAAI,CAIF;AAAA;AAAA;AAGZ;AAEA,SAAS,UAAU,KAAqB;AACtC,SAAO,IACJ,QAAQ,MAAM,OAAO,EACrB,QAAQ,MAAM,MAAM,EACpB,QAAQ,MAAM,MAAM,EACpB,QAAQ,MAAM,QAAQ,EACtB,QAAQ,MAAM,QAAQ;AAC3B;",
5
+ "names": []
6
+ }
@@ -0,0 +1,52 @@
1
+ import MicroMatch from "micromatch";
2
+ function generateSitemap(routes, options) {
3
+ const envUrl = process.env.ONE_SERVER_URL,
4
+ baseUrl = options.baseUrl ?? (envUrl && envUrl !== "undefined" ? envUrl : ""),
5
+ defaultPriority = options.priority ?? 0.5,
6
+ defaultChangefreq = options.changefreq,
7
+ excludePatterns = options.exclude || [],
8
+ entries = [];
9
+ for (const route of routes) {
10
+ const {
11
+ path,
12
+ routeExport
13
+ } = route;
14
+ if (routeExport?.exclude || excludePatterns.length > 0 && MicroMatch.isMatch(path, excludePatterns)) continue;
15
+ const priority = routeExport?.priority ?? defaultPriority,
16
+ changefreq = routeExport?.changefreq ?? defaultChangefreq,
17
+ lastmod = routeExport?.lastmod;
18
+ entries.push({
19
+ path,
20
+ priority,
21
+ changefreq,
22
+ lastmod
23
+ });
24
+ }
25
+ return buildSitemapXml(entries, baseUrl);
26
+ }
27
+ function buildSitemapXml(entries, baseUrl) {
28
+ return `<?xml version="1.0" encoding="UTF-8"?>
29
+ <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
30
+ ${entries.map(entry => {
31
+ const loc = baseUrl ? `${baseUrl.replace(/\/$/, "")}${entry.path}` : entry.path;
32
+ let xml = ` <url>
33
+ <loc>${escapeXml(loc)}</loc>`;
34
+ if (entry.lastmod) {
35
+ const date = entry.lastmod instanceof Date ? entry.lastmod.toISOString().split("T")[0] : entry.lastmod;
36
+ xml += `
37
+ <lastmod>${escapeXml(date)}</lastmod>`;
38
+ }
39
+ return entry.changefreq && (xml += `
40
+ <changefreq>${entry.changefreq}</changefreq>`), entry.priority !== void 0 && (xml += `
41
+ <priority>${entry.priority.toFixed(1)}</priority>`), xml += `
42
+ </url>`, xml;
43
+ }).join(`
44
+ `)}
45
+ </urlset>
46
+ `;
47
+ }
48
+ function escapeXml(str) {
49
+ return str.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&apos;");
50
+ }
51
+ export { generateSitemap };
52
+ //# sourceMappingURL=generateSitemap.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["MicroMatch","generateSitemap","routes","options","envUrl","process","env","ONE_SERVER_URL","baseUrl","defaultPriority","priority","defaultChangefreq","changefreq","excludePatterns","exclude","entries","route","path","routeExport","length","isMatch","lastmod","push","buildSitemapXml","map","entry","loc","replace","xml","escapeXml","date","Date","toISOString","split","toFixed","join","str"],"sources":["../../../src/cli/generateSitemap.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,UAAA,MAAgB;AAehB,SAASC,gBAAgBC,MAAA,EAA4BC,OAAA,EAAqC;EAC/F,MAAMC,MAAA,GAASC,OAAA,CAAQC,GAAA,CAAIC,cAAA;IACrBC,OAAA,GAAUL,OAAA,CAAQK,OAAA,KAAYJ,MAAA,IAAUA,MAAA,KAAW,cAAcA,MAAA,GAAS;IAC1EK,eAAA,GAAkBN,OAAA,CAAQO,QAAA,IAAY;IACtCC,iBAAA,GAAoBR,OAAA,CAAQS,UAAA;IAC5BC,eAAA,GAAkBV,OAAA,CAAQW,OAAA,IAAW,EAAC;IAEtCC,OAAA,GAA0B,EAAC;EAEjC,WAAWC,KAAA,IAASd,MAAA,EAAQ;IAC1B,MAAM;MAAEe,IAAA;MAAMC;IAAY,IAAIF,KAAA;IAQ9B,IALIE,WAAA,EAAaJ,OAAA,IAKbD,eAAA,CAAgBM,MAAA,GAAS,KAAKnB,UAAA,CAAWoB,OAAA,CAAQH,IAAA,EAAMJ,eAAe,GACxE;IAGF,MAAMH,QAAA,GAAWQ,WAAA,EAAaR,QAAA,IAAYD,eAAA;MACpCG,UAAA,GAAaM,WAAA,EAAaN,UAAA,IAAcD,iBAAA;MACxCU,OAAA,GAAUH,WAAA,EAAaG,OAAA;IAE7BN,OAAA,CAAQO,IAAA,CAAK;MACXL,IAAA;MACAP,QAAA;MACAE,UAAA;MACAS;IACF,CAAC;EACH;EAEA,OAAOE,eAAA,CAAgBR,OAAA,EAASP,OAAO;AACzC;AAEA,SAASe,gBAAgBR,OAAA,EAAyBP,OAAA,EAAyB;EA0BzE,OAAO;AAAA;AAAA,EAzBYO,OAAA,CAChBS,GAAA,CAAKC,KAAA,IAAU;IACd,MAAMC,GAAA,GAAMlB,OAAA,GAAU,GAAGA,OAAA,CAAQmB,OAAA,CAAQ,OAAO,EAAE,CAAC,GAAGF,KAAA,CAAMR,IAAI,KAAKQ,KAAA,CAAMR,IAAA;IAE3E,IAAIW,GAAA,GAAM;AAAA,WAAqBC,SAAA,CAAUH,GAAG,CAAC;IAE7C,IAAID,KAAA,CAAMJ,OAAA,EAAS;MACjB,MAAMS,IAAA,GACJL,KAAA,CAAMJ,OAAA,YAAmBU,IAAA,GAAON,KAAA,CAAMJ,OAAA,CAAQW,WAAA,CAAY,EAAEC,KAAA,CAAM,GAAG,EAAE,CAAC,IAAIR,KAAA,CAAMJ,OAAA;MACpFO,GAAA,IAAO;AAAA,eAAkBC,SAAA,CAAUC,IAAI,CAAC;IAC1C;IAEA,OAAIL,KAAA,CAAMb,UAAA,KACRgB,GAAA,IAAO;AAAA,kBAAqBH,KAAA,CAAMb,UAAU,kBAG1Ca,KAAA,CAAMf,QAAA,KAAa,WACrBkB,GAAA,IAAO;AAAA,gBAAmBH,KAAA,CAAMf,QAAA,CAASwB,OAAA,CAAQ,CAAC,CAAC,gBAGrDN,GAAA,IAAO;AAAA,WACAA,GAAA;EACT,CAAC,EACAO,IAAA,CAAK;AAAA,CAAI,CAIF;AAAA;AAAA;AAGZ;AAEA,SAASN,UAAUO,GAAA,EAAqB;EACtC,OAAOA,GAAA,CACJT,OAAA,CAAQ,MAAM,OAAO,EACrBA,OAAA,CAAQ,MAAM,MAAM,EACpBA,OAAA,CAAQ,MAAM,MAAM,EACpBA,OAAA,CAAQ,MAAM,QAAQ,EACtBA,OAAA,CAAQ,MAAM,QAAQ;AAC3B","ignoreList":[]}
@@ -0,0 +1,75 @@
1
+ import MicroMatch from "micromatch";
2
+ function _instanceof(left, right) {
3
+ return right != null && typeof Symbol < "u" && right[Symbol.hasInstance] ? !!right[Symbol.hasInstance](left) : left instanceof right;
4
+ }
5
+ function generateSitemap(routes, options) {
6
+ var envUrl = process.env.ONE_SERVER_URL,
7
+ _options_baseUrl,
8
+ baseUrl = (_options_baseUrl = options.baseUrl) !== null && _options_baseUrl !== void 0 ? _options_baseUrl : envUrl && envUrl !== "undefined" ? envUrl : "",
9
+ _options_priority,
10
+ defaultPriority = (_options_priority = options.priority) !== null && _options_priority !== void 0 ? _options_priority : 0.5,
11
+ defaultChangefreq = options.changefreq,
12
+ excludePatterns = options.exclude || [],
13
+ entries = [],
14
+ _iteratorNormalCompletion = !0,
15
+ _didIteratorError = !1,
16
+ _iteratorError = void 0;
17
+ try {
18
+ for (var _iterator = routes[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
19
+ var route = _step.value,
20
+ {
21
+ path,
22
+ routeExport
23
+ } = route;
24
+ if (!routeExport?.exclude && !(excludePatterns.length > 0 && MicroMatch.isMatch(path, excludePatterns))) {
25
+ var _routeExport_priority,
26
+ priority = (_routeExport_priority = routeExport?.priority) !== null && _routeExport_priority !== void 0 ? _routeExport_priority : defaultPriority,
27
+ _routeExport_changefreq,
28
+ changefreq = (_routeExport_changefreq = routeExport?.changefreq) !== null && _routeExport_changefreq !== void 0 ? _routeExport_changefreq : defaultChangefreq,
29
+ lastmod = routeExport?.lastmod;
30
+ entries.push({
31
+ path,
32
+ priority,
33
+ changefreq,
34
+ lastmod
35
+ });
36
+ }
37
+ }
38
+ } catch (err) {
39
+ _didIteratorError = !0, _iteratorError = err;
40
+ } finally {
41
+ try {
42
+ !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
43
+ } finally {
44
+ if (_didIteratorError) throw _iteratorError;
45
+ }
46
+ }
47
+ return buildSitemapXml(entries, baseUrl);
48
+ }
49
+ function buildSitemapXml(entries, baseUrl) {
50
+ var urlEntries = entries.map(function (entry) {
51
+ var loc = baseUrl ? `${baseUrl.replace(/\/$/, "")}${entry.path}` : entry.path,
52
+ xml = ` <url>
53
+ <loc>${escapeXml(loc)}</loc>`;
54
+ if (entry.lastmod) {
55
+ var date = _instanceof(entry.lastmod, Date) ? entry.lastmod.toISOString().split("T")[0] : entry.lastmod;
56
+ xml += `
57
+ <lastmod>${escapeXml(date)}</lastmod>`;
58
+ }
59
+ return entry.changefreq && (xml += `
60
+ <changefreq>${entry.changefreq}</changefreq>`), entry.priority !== void 0 && (xml += `
61
+ <priority>${entry.priority.toFixed(1)}</priority>`), xml += `
62
+ </url>`, xml;
63
+ }).join(`
64
+ `);
65
+ return `<?xml version="1.0" encoding="UTF-8"?>
66
+ <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
67
+ ${urlEntries}
68
+ </urlset>
69
+ `;
70
+ }
71
+ function escapeXml(str) {
72
+ return str.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&apos;");
73
+ }
74
+ export { generateSitemap };
75
+ //# sourceMappingURL=generateSitemap.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["MicroMatch","_instanceof","left","right","Symbol","hasInstance","generateSitemap","routes","options","envUrl","process","env","ONE_SERVER_URL","_options_baseUrl","baseUrl","_options_priority","defaultPriority","priority","defaultChangefreq","changefreq","excludePatterns","exclude","entries","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_iterator","iterator","_step","next","done","route","value","path","routeExport","length","isMatch","_routeExport_priority","_routeExport_changefreq","lastmod","push","err","return","buildSitemapXml","urlEntries","map","entry","loc","replace","xml","escapeXml","date","Date","toISOString","split"],"sources":["../../../src/cli/generateSitemap.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAOA,UAAA,MAAgB;AAehB,SAASC,YAAAC,IAAgB,EAAAC,KAAA,EAA4B;EAC1D,OAAMA,KAAA,IAAS,QAAQ,OAAIC,MAAA,MACrB,IAAAD,KAAA,CAAUC,MAAA,CAAAC,WAAQ,IAAY,EAAAF,KAAA,CAAUC,MAAA,CAAAC,WAAW,EAAAH,IAAA,CAAc,GAAAA,IAAA,YACjEC,KAAA;AAMN;AACE,SAAAG,eAAcA,CAAAC,MAAY,EAAAC,OAAI;EAQ9B,IAAAC,MALI,GAAAC,OAAa,CAAAC,GAAA,CAAAC,cAKb;IAAAC,gBAAyB;IAAAC,OAAK,IAAAD,gBAAyB,GAAAL,OAAA,CAAAM,OAAe,cAAAD,gBAAA,cAAAA,gBAAA,GAAAJ,MAAA,IAAAA,MAAA,mBAAAA,MAAA;IAAAM,iBAAA;IAAAC,eAAA,IAAAD,iBAAA,GAAAP,OAAA,CAAAS,QAAA,cAAAF,iBAAA,cAAAA,iBAAA;IAAAG,iBAAA,GAAAV,OAAA,CAAAW,UAAA;IAAAC,eAAA,GAAAZ,OAAA,CAAAa,OAAA;IAAAC,OAAA;IAAAC,yBAAA;IAAAC,iBAAA;IAAAC,cAAA;EACxE;IAGF,SAAMC,SAAW,GAAAnB,MAAA,CAAAH,MAAa,CAAAuB,QAAY,KAAAC,KAAA,IAAAL,yBACvB,GAAa,CAAAK,KAAA,GAAAF,SAAc,CAAAG,IAAA,IAAAC,IAAA,GACxCP,yBAAuB;MAE7B,IAAAQ,KAAQ,GAAKH,KAAA,CAAAI,KAAA;QAAA;UAAAC,IAAA;UAAAC;QAAA,IAAAH,KAAA;MACX,KAAAG,WAAA,EAAAb,OAAA,MAAAD,eAAA,CAAAe,MAAA,QAAAnC,UAAA,CAAAoC,OAAA,CAAAH,IAAA,EAAAb,eAAA;QACA,IAAAiB,qBAAA;UAAApB,QAAA,IAAAoB,qBAAA,GAAAH,WAAA,EAAAjB,QAAA,cAAAoB,qBAAA,cAAAA,qBAAA,GAAArB,eAAA;UAAAsB,uBAAA;UAAAnB,UAAA,IAAAmB,uBAAA,GAAAJ,WAAA,EAAAf,UAAA,cAAAmB,uBAAA,cAAAA,uBAAA,GAAApB,iBAAA;UAAAqB,OAAA,GAAAL,WAAA,EAAAK,OAAA;QACAjB,OAAA,CAAAkB,IAAA;UACAP,IAAA;UACDhB,QAAA;UACHE,UAAA;UAEOoB;QACT;MAEA;IA0BE;EAAO,SAAAE,GAAA;IAzBYjB,iBACX,IAAU,GAAAC,cAAA,GAAAgB,GAAA;EACd,UAAM;IAEN,IAAI;MAAM,CAAAlB,yBAAmC,IAAAG,SAAA,CAAAgB,MAAA,YAAAhB,SAAA,CAAAgB,MAAA;IAE7C,UAAU;MACR,IAAAlB,iBACQ,EACR,MAAOC,cAAA;IAAA;EAAiC;EAG1C,OAAAkB,eAAU,CAAArB,OACR,EAAAR,OAAO;AAAA;AAIA,SAAA6B,eAAyBA,CAAArB,OAAS,EAAAR,OAAU;EAG9C,IAAA8B,UACA,GAAAtB,OAAA,CAAAuB,GAAA,WAAAC,KAAA;IACR,IACAC,GAAK,GAAAjC,OAAA,MAAAA,OAAA,CAAAkC,OAAA,cAAAF,KAAA,CAAAb,IAAA,KAAAa,KAAA,CAAAb,IAAA;MAAAgB,GAAA;AAAA,WAIEC,SAAA,CAAAH,GAAA;IAAA,IAAAD,KAAA,CAAAP,OAAA;MAAA,IAAAY,IAAA,GAAAlD,WAAA,CAAA6C,KAAA,CAAAP,OAAA,EAAAa,IAAA,IAAAN,KAAA,CAAAP,OAAA,CAAAc,WAAA,GAAAC,KAAA,WAAAR,KAAA,CAAAP,OAAA;MAGZU,GAAA;AAEA,eAASC,SAA+B,CAAAC,IAAA;IACtC;IAMF,OAAAL,KAAA,CAAA3B,UAAA,KAAA8B,GAAA","ignoreList":[]}
@@ -0,0 +1,104 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { generateSitemap } from "./generateSitemap";
3
+ describe("generateSitemap", () => {
4
+ it("generates basic sitemap XML", () => {
5
+ const result = generateSitemap([{ path: "/" }, { path: "/about" }, { path: "/blog" }], {});
6
+ expect(result).toContain('<?xml version="1.0" encoding="UTF-8"?>'), expect(result).toContain('<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'), expect(result).toContain("<loc>/</loc>"), expect(result).toContain("<loc>/about</loc>"), expect(result).toContain("<loc>/blog</loc>"), expect(result).toContain("</urlset>");
7
+ }), it("uses baseUrl when provided", () => {
8
+ const result = generateSitemap([{ path: "/" }, { path: "/about" }], {
9
+ baseUrl: "https://example.com"
10
+ });
11
+ expect(result).toContain("<loc>https://example.com/</loc>"), expect(result).toContain("<loc>https://example.com/about</loc>");
12
+ }), it("strips trailing slash from baseUrl", () => {
13
+ const result = generateSitemap([{ path: "/about" }], {
14
+ baseUrl: "https://example.com/"
15
+ });
16
+ expect(result).toContain("<loc>https://example.com/about</loc>"), expect(result).not.toContain("https://example.com//about");
17
+ }), it("uses ONE_SERVER_URL env var when baseUrl not provided", () => {
18
+ const originalEnv = process.env.ONE_SERVER_URL;
19
+ process.env.ONE_SERVER_URL = "https://env-url.com";
20
+ try {
21
+ const result = generateSitemap([{ path: "/test" }], {});
22
+ expect(result).toContain("<loc>https://env-url.com/test</loc>");
23
+ } finally {
24
+ process.env.ONE_SERVER_URL = originalEnv;
25
+ }
26
+ }), it("applies default priority to all routes", () => {
27
+ const result = generateSitemap([{ path: "/" }, { path: "/about" }], {
28
+ priority: 0.8
29
+ });
30
+ expect(result).toMatch(/<url>\s*<loc>\/about<\/loc>\s*<priority>0\.8<\/priority>\s*<\/url>/s);
31
+ }), it("applies default changefreq to all routes", () => {
32
+ const result = generateSitemap([{ path: "/" }, { path: "/about" }], {
33
+ changefreq: "weekly"
34
+ });
35
+ expect(result).toContain("<changefreq>weekly</changefreq>");
36
+ }), it("respects route-level sitemap exports", () => {
37
+ const result = generateSitemap([
38
+ { path: "/", routeExport: { priority: 1, changefreq: "daily" } },
39
+ { path: "/about", routeExport: { priority: 0.5, changefreq: "monthly" } }
40
+ ], {
41
+ priority: 0.7,
42
+ changefreq: "weekly"
43
+ });
44
+ expect(result).toMatch(
45
+ /<url>\s*<loc>\/<\/loc>\s*<changefreq>daily<\/changefreq>\s*<priority>1\.0<\/priority>\s*<\/url>/s
46
+ ), expect(result).toMatch(
47
+ /<url>\s*<loc>\/about<\/loc>\s*<changefreq>monthly<\/changefreq>\s*<priority>0\.5<\/priority>\s*<\/url>/s
48
+ );
49
+ }), it("excludes routes with routeExport.exclude = true", () => {
50
+ const result = generateSitemap([
51
+ { path: "/" },
52
+ { path: "/admin", routeExport: { exclude: !0 } },
53
+ { path: "/about" }
54
+ ], {});
55
+ expect(result).toContain("<loc>/</loc>"), expect(result).toContain("<loc>/about</loc>"), expect(result).not.toContain("/admin");
56
+ }), it("excludes routes matching exclude glob patterns", () => {
57
+ const result = generateSitemap([
58
+ { path: "/" },
59
+ { path: "/admin/dashboard" },
60
+ { path: "/admin/users" },
61
+ { path: "/about" },
62
+ { path: "/api/health" }
63
+ ], {
64
+ exclude: ["/admin/*", "/api/*"]
65
+ });
66
+ expect(result).toContain("<loc>/</loc>"), expect(result).toContain("<loc>/about</loc>"), expect(result).not.toContain("/admin"), expect(result).not.toContain("/api");
67
+ }), it("includes lastmod when provided in route export", () => {
68
+ const result = generateSitemap([
69
+ { path: "/", routeExport: { lastmod: "2024-01-15" } },
70
+ { path: "/about", routeExport: { lastmod: /* @__PURE__ */ new Date("2024-06-20") } }
71
+ ], {});
72
+ expect(result).toContain("<lastmod>2024-01-15</lastmod>"), expect(result).toContain("<lastmod>2024-06-20</lastmod>");
73
+ }), it("escapes XML special characters in URLs", () => {
74
+ const result = generateSitemap([{ path: "/search?q=foo&bar=baz" }], {
75
+ baseUrl: "https://example.com"
76
+ });
77
+ expect(result).toContain("&amp;"), expect(result).not.toContain("&bar");
78
+ }), it("generates empty sitemap when no routes", () => {
79
+ const result = generateSitemap([], {});
80
+ expect(result).toContain('<?xml version="1.0" encoding="UTF-8"?>'), expect(result).toContain('<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'), expect(result).toContain("</urlset>"), expect(result).not.toContain("<url>");
81
+ }), it("handles all valid changefreq values", () => {
82
+ const changefreqs = [
83
+ "always",
84
+ "hourly",
85
+ "daily",
86
+ "weekly",
87
+ "monthly",
88
+ "yearly",
89
+ "never"
90
+ ];
91
+ for (const changefreq of changefreqs) {
92
+ const result = generateSitemap([{ path: "/", routeExport: { changefreq } }], {});
93
+ expect(result).toContain(`<changefreq>${changefreq}</changefreq>`);
94
+ }
95
+ }), it("formats priority with one decimal place", () => {
96
+ const result = generateSitemap([
97
+ { path: "/", routeExport: { priority: 1 } },
98
+ { path: "/about", routeExport: { priority: 0.5 } },
99
+ { path: "/blog", routeExport: { priority: 0.75 } }
100
+ ], {});
101
+ expect(result).toContain("<priority>1.0</priority>"), expect(result).toContain("<priority>0.5</priority>"), expect(result).toContain("<priority>0.8</priority>");
102
+ });
103
+ });
104
+ //# 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,157 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { generateSitemap } from "./generateSitemap.mjs";
3
+ describe("generateSitemap", () => {
4
+ it("generates basic sitemap XML", () => {
5
+ const result = generateSitemap([{
6
+ path: "/"
7
+ }, {
8
+ path: "/about"
9
+ }, {
10
+ path: "/blog"
11
+ }], {});
12
+ expect(result).toContain('<?xml version="1.0" encoding="UTF-8"?>'), expect(result).toContain('<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'), expect(result).toContain("<loc>/</loc>"), expect(result).toContain("<loc>/about</loc>"), expect(result).toContain("<loc>/blog</loc>"), expect(result).toContain("</urlset>");
13
+ }), it("uses baseUrl when provided", () => {
14
+ const result = generateSitemap([{
15
+ path: "/"
16
+ }, {
17
+ path: "/about"
18
+ }], {
19
+ baseUrl: "https://example.com"
20
+ });
21
+ expect(result).toContain("<loc>https://example.com/</loc>"), expect(result).toContain("<loc>https://example.com/about</loc>");
22
+ }), it("strips trailing slash from baseUrl", () => {
23
+ const result = generateSitemap([{
24
+ path: "/about"
25
+ }], {
26
+ baseUrl: "https://example.com/"
27
+ });
28
+ expect(result).toContain("<loc>https://example.com/about</loc>"), expect(result).not.toContain("https://example.com//about");
29
+ }), 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 = generateSitemap([{
34
+ path: "/test"
35
+ }], {});
36
+ expect(result).toContain("<loc>https://env-url.com/test</loc>");
37
+ } finally {
38
+ process.env.ONE_SERVER_URL = originalEnv;
39
+ }
40
+ }), it("applies default priority to all routes", () => {
41
+ const result = generateSitemap([{
42
+ path: "/"
43
+ }, {
44
+ path: "/about"
45
+ }], {
46
+ priority: 0.8
47
+ });
48
+ expect(result).toMatch(/<url>\s*<loc>\/about<\/loc>\s*<priority>0\.8<\/priority>\s*<\/url>/s);
49
+ }), it("applies default changefreq to all routes", () => {
50
+ const result = generateSitemap([{
51
+ path: "/"
52
+ }, {
53
+ path: "/about"
54
+ }], {
55
+ changefreq: "weekly"
56
+ });
57
+ expect(result).toContain("<changefreq>weekly</changefreq>");
58
+ }), it("respects route-level sitemap exports", () => {
59
+ const result = 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
+ expect(result).toMatch(/<url>\s*<loc>\/<\/loc>\s*<changefreq>daily<\/changefreq>\s*<priority>1\.0<\/priority>\s*<\/url>/s), expect(result).toMatch(/<url>\s*<loc>\/about<\/loc>\s*<changefreq>monthly<\/changefreq>\s*<priority>0\.5<\/priority>\s*<\/url>/s);
76
+ }), it("excludes routes with routeExport.exclude = true", () => {
77
+ const result = generateSitemap([{
78
+ path: "/"
79
+ }, {
80
+ path: "/admin",
81
+ routeExport: {
82
+ exclude: !0
83
+ }
84
+ }, {
85
+ path: "/about"
86
+ }], {});
87
+ expect(result).toContain("<loc>/</loc>"), expect(result).toContain("<loc>/about</loc>"), expect(result).not.toContain("/admin");
88
+ }), it("excludes routes matching exclude glob patterns", () => {
89
+ const result = 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
+ expect(result).toContain("<loc>/</loc>"), expect(result).toContain("<loc>/about</loc>"), expect(result).not.toContain("/admin"), expect(result).not.toContain("/api");
103
+ }), it("includes lastmod when provided in route export", () => {
104
+ const result = 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
+ expect(result).toContain("<lastmod>2024-01-15</lastmod>"), expect(result).toContain("<lastmod>2024-06-20</lastmod>");
116
+ }), it("escapes XML special characters in URLs", () => {
117
+ const result = generateSitemap([{
118
+ path: "/search?q=foo&bar=baz"
119
+ }], {
120
+ baseUrl: "https://example.com"
121
+ });
122
+ expect(result).toContain("&amp;"), expect(result).not.toContain("&bar");
123
+ }), it("generates empty sitemap when no routes", () => {
124
+ const result = generateSitemap([], {});
125
+ expect(result).toContain('<?xml version="1.0" encoding="UTF-8"?>'), expect(result).toContain('<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'), expect(result).toContain("</urlset>"), expect(result).not.toContain("<url>");
126
+ }), 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 = generateSitemap([{
130
+ path: "/",
131
+ routeExport: {
132
+ changefreq
133
+ }
134
+ }], {});
135
+ expect(result).toContain(`<changefreq>${changefreq}</changefreq>`);
136
+ }
137
+ }), it("formats priority with one decimal place", () => {
138
+ const result = 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
+ expect(result).toContain("<priority>1.0</priority>"), expect(result).toContain("<priority>0.5</priority>"), expect(result).toContain("<priority>0.8</priority>");
155
+ });
156
+ });
157
+ //# sourceMappingURL=generateSitemap.test.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["describe","expect","it","generateSitemap","result","path","toContain","baseUrl","not","originalEnv","process","env","ONE_SERVER_URL","priority","toMatch","changefreq","routeExport","exclude","lastmod","Date","changefreqs"],"sources":["../../../src/cli/generateSitemap.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}