ugly-app 0.1.1047 → 0.1.1048
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/buildWorkers.d.ts.map +1 -1
- package/dist/cli/buildWorkers.js +15 -7
- package/dist/cli/buildWorkers.js.map +1 -1
- package/dist/cli/version.d.ts +1 -1
- package/dist/cli/version.js +1 -1
- package/dist/server/adapter/workers/edgeCache.d.ts +12 -1
- package/dist/server/adapter/workers/edgeCache.d.ts.map +1 -1
- package/dist/server/adapter/workers/edgeCache.js +20 -6
- package/dist/server/adapter/workers/edgeCache.js.map +1 -1
- package/dist/server/adapter/workers/seo.d.ts +19 -0
- package/dist/server/adapter/workers/seo.d.ts.map +1 -0
- package/dist/server/adapter/workers/seo.js +74 -0
- package/dist/server/adapter/workers/seo.js.map +1 -0
- package/dist/server/adapter/workers/wrapWithAssets.d.ts.map +1 -1
- package/dist/server/adapter/workers/wrapWithAssets.js +45 -18
- package/dist/server/adapter/workers/wrapWithAssets.js.map +1 -1
- package/dist/shared/Router.d.ts +8 -0
- package/dist/shared/Router.d.ts.map +1 -1
- package/dist/shared/Router.js +1 -0
- package/dist/shared/Router.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/buildWorkers.ts +19 -7
- package/src/cli/version.ts +1 -1
- package/src/server/adapter/workers/edgeCache.ts +28 -5
- package/src/server/adapter/workers/seo.test.ts +131 -0
- package/src/server/adapter/workers/seo.ts +78 -0
- package/src/server/adapter/workers/wrapWithAssets.ts +41 -18
- package/src/shared/Router.ts +9 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildWorkers.d.ts","sourceRoot":"","sources":["../../src/cli/buildWorkers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AA2CH,UAAU,mBAAmB;IAC3B,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,6DAA6D;IAC7D,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED,UAAU,kBAAkB;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,eAAe,CACnC,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CAwP7B;AAkDD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,IAAI,GACP,MAAM,
|
|
1
|
+
{"version":3,"file":"buildWorkers.d.ts","sourceRoot":"","sources":["../../src/cli/buildWorkers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AA2CH,UAAU,mBAAmB;IAC3B,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,6DAA6D;IAC7D,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED,UAAU,kBAAkB;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,eAAe,CACnC,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,kBAAkB,CAAC,CAwP7B;AAkDD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,IAAI,GACP,MAAM,CAuER;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,GAAG,IAAI,GACP,MAAM,CA0CR;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAgC3E;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,MAAM,CAOR;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,MAAM,GAAG,IAAI,CAoBf;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,IAAI,CAkCN"}
|
package/dist/cli/buildWorkers.js
CHANGED
|
@@ -316,24 +316,32 @@ export function injectDefaultMeta(html, cfg) {
|
|
|
316
316
|
if (!/name=["']theme-color["']/.test(html)) {
|
|
317
317
|
tags.push(`<meta name="theme-color" content="${esc(cfg?.themeColor ?? '#000000')}">`);
|
|
318
318
|
}
|
|
319
|
-
// ── OpenGraph defaults — only when the app declares metadata
|
|
319
|
+
// ── OpenGraph defaults — only when the app declares metadata, and only for
|
|
320
|
+
// tags its index.html doesn't already carry. An app that writes its own
|
|
321
|
+
// description or og:image must not get a second one: crawlers disagree on
|
|
322
|
+
// which copy wins, and the default image is the icon, often a relative path.
|
|
320
323
|
if (cfg) {
|
|
324
|
+
const has = (attr, key) => new RegExp(`<meta\\b[^>]*\\b${attr}=["']${key}["']`, 'i').test(html);
|
|
321
325
|
const title = cfg.title ?? cfg.name;
|
|
322
326
|
const description = cfg.shortDescription ?? cfg.description;
|
|
323
327
|
const image = cfg.image ?? cfg.icon;
|
|
324
328
|
const og = [];
|
|
325
|
-
if (title)
|
|
329
|
+
if (title && !has('property', 'og:title'))
|
|
326
330
|
og.push(`<meta property="og:title" content="${esc(title)}">`);
|
|
327
331
|
if (description) {
|
|
328
|
-
|
|
329
|
-
|
|
332
|
+
if (!has('name', 'description'))
|
|
333
|
+
og.push(`<meta name="description" content="${esc(description)}">`);
|
|
334
|
+
if (!has('property', 'og:description'))
|
|
335
|
+
og.push(`<meta property="og:description" content="${esc(description)}">`);
|
|
330
336
|
}
|
|
331
|
-
if (image) {
|
|
337
|
+
if (image && !has('property', 'og:image')) {
|
|
332
338
|
og.push(`<meta property="og:image" content="${esc(image)}">`);
|
|
333
|
-
|
|
339
|
+
if (!has('name', 'twitter:card'))
|
|
340
|
+
og.push(`<meta name="twitter:card" content="summary_large_image">`);
|
|
334
341
|
}
|
|
335
342
|
if (og.length) {
|
|
336
|
-
|
|
343
|
+
if (!has('property', 'og:type'))
|
|
344
|
+
og.push(`<meta property="og:type" content="website">`);
|
|
337
345
|
tags.push(...og);
|
|
338
346
|
}
|
|
339
347
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildWorkers.js","sourceRoot":"","sources":["../../src/cli/buildWorkers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"buildWorkers.js","sourceRoot":"","sources":["../../src/cli/buildWorkers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,KAAK,EAAiB,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EACL,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,OAAO,EACP,EAAE,EACF,IAAI,EACJ,SAAS,GACV,MAAM,aAAa,CAAC;AACrB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CAwBrB,CAAC;AAwBF,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAA4B,EAAE;IAE9B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,IAAI,mBAAmB,CAAC,CAAC;IAC1E,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,MAAM,IAAI,aAAa,CAAC,CAAC;IACtE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,IAAI,aAAa,CAAC,CAAC;IAE5E,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC7C,MAAM,IAAI,KAAK,CACb,mBAAmB,GAAG,iBAAiB;YACrC,gFAAgF;YAChF,aAAa;YACb,IAAI;YACJ,0CAA0C,CAC7C,CAAC;IACJ,CAAC;IAED,IACE,CAAC,UAAU,CAAC,SAAS,CAAC;QACtB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,EAC/C,CAAC;QACD,MAAM,IAAI,KAAK,CACb,mBAAmB,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,0BAA0B;YAC/E,kGAAkG,CACrG,CAAC;IACJ,CAAC;IAED,8DAA8D;IAC9D,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,MAAM,KAAK,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEzC,wEAAwE;IACxE,uEAAuE;IACvE,uEAAuE;IACvE,MAAM,OAAO,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACpD,+EAA+E;IAC/E,yEAAyE;IACzE,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC;IAEpD,qCAAqC;IACrC,EAAE;IACF,2EAA2E;IAC3E,wEAAwE;IACxE,kEAAkE;IAClE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACnD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChE,MAAM,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhD,0EAA0E;IAC1E,mEAAmE;IACnE,2EAA2E;IAC3E,0EAA0E;IAC1E,iDAAiD;IACjD,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC;IACvE,MAAM,OAAO,GACX,WAAW,CAAC,kBAAkB,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC;IAC1E,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,CAAC;IAC7B,wEAAwE;IACxE,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,IAAI,UAAU,EAAE,CAAC;QACf,yEAAyE;QACzE,2EAA2E;QAC3E,yEAAyE;QACzE,uEAAuE;QACvE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACrD,MAAM,UAAU,CACd,SAAS,EACT,WAAW;QACX,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,YAAY,CACzC,CAAC;QACF,KAAK,MAAM,GAAG,IAAI,MAAM,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;YAClD,UAAU,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7D,CAAC;QAED,uEAAuE;QACvE,2EAA2E;QAC3E,2EAA2E;QAC3E,oEAAoE;QACpE,WAAW;QACX,KAAK,MAAM,GAAG,IAAI,MAAM,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACpE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY;gBAAE,SAAS;YACzD,MAAM,QAAQ,CACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,EAC9B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,CACnC,CAAC;QACJ,CAAC;QACD,sCAAsC;QACtC,OAAO,CAAC,GAAG,CACT,oCAAoC,OAAO,MAAM,UAAU,CAAC,MAAM,+BAA+B,CAClG,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,UAAU,CACd,SAAS,EACT,aAAa;QACb,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,YAAY,CACzC,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,uEAAuE;IACvE,yEAAyE;IACzE,sDAAsD;IACtD,MAAM,SAAS,CACb,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,EACrC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,EACnC,OAAO,CACR,CAAC;IACF,qEAAqE;IACrE,wDAAwD;IACxD,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAE3E,2EAA2E;IAC3E,6EAA6E;IAC7E,yEAAyE;IACzE,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;IAC5E,MAAM,GAAG,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAC1C,MAAM,YAAY,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,CAAC;IAC7C,MAAM,aAAa,GAAG,uBAAuB,CAC3C,iBAAiB,CACf,WAAW,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,YAAY,CAAC,EAClE,GAAG,CACJ,EACD,OAAO,CACR,CAAC;IACF,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IAEzE,uEAAuE;IACvE,0EAA0E;IAC1E,2EAA2E;IAC3E,sEAAsE;IACtE,sBAAsB,CACpB,aAAa,EACb,WAAW,EACX,SAAS,EACT,OAAO,EACP,OAAO,CACR,CAAC;IAEF,wEAAwE;IACxE,iFAAiF;IACjF,MAAM,WAAW,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAE1C,kEAAkE;IAClE,uEAAuE;IACvE,yEAAyE;IACzE,oEAAoE;IACpE,8DAA8D;IAC9D,qEAAqE;IACrE,4EAA4E;IAC5E,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAC/D,MAAM,SAAS,CACb,cAAc,EACd,8DAA8D;QAC5D,qEAAqE;QACrE,uBAAuB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK;QACjD,iBAAiB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK;QAC3C,qBAAqB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK;QACvD,mBAAmB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK;QAC/C,mBAAmB,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK;QAClD,gFAAgF;QAChF,iFAAiF;QACjF,iFAAiF;QACjF,2EAA2E;QAC3E,yEAAyE;QACzE,8EAA8E;QAC9E,yEAAyE;QACzE,gCAAgC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,oBAAoB,IAAI,IAAI,CAAC,KAAK;QACtF,oBAAoB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK;QACpD,yGAAyG;QACzG,uBAAuB,EACzB,OAAO,CACR,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC;QACzB,WAAW,EAAE,CAAC,cAAc,CAAC;QAC7B,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,SAAS;QACnB,0EAA0E;QAC1E,8EAA8E;QAC9E,4EAA4E;QAC5E,wEAAwE;QACxE,wCAAwC;QACxC,UAAU,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC;QAC5C,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC;QACvC,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE,CAAC,cAAc,EAAE,QAAQ,CAAC;QACpC,0EAA0E;QAC1E,2EAA2E;QAC3E,6EAA6E;QAC7E,2EAA2E;QAC3E,sDAAsD;QACtD,MAAM,EAAE,EAAE,sBAAsB,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE;QAChE,aAAa,EAAE,UAAU;KAC1B,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAChD,MAAM,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAEpC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;IAE5C,sCAAsC;IACtC,OAAO,CAAC,GAAG,CACT,2BAA2B,OAAO,gBAAgB,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CAC5I,CAAC;IAEF,+EAA+E;IAC/E,6EAA6E;IAC7E,8EAA8E;IAC9E,+EAA+E;IAC/E,+EAA+E;IAC/E,8CAA8C;IAC9C,MAAM,UAAU,GAAG,KAAK,GAAG,gBAAgB,CAAC;IAC5C,MAAM,UAAU,GAAG,KAAK,GAAG,iBAAiB,CAAC;IAC7C,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,UAAU,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpD,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC;YACjD,sCAAsC;YACtC,OAAO,CAAC,GAAG,CACT,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,IAAI,EAAE,CACnE,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,gCAAgC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB;YAC1E,GAAG,CAAC,gBAAgB,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;YACrD,4EAA4E;YAC5E,qEAAqE;YACrE,qEAAqE,CACxE,CAAC;IACJ,CAAC;IACD,IAAI,UAAU,EAAE,CAAC;QACf,sCAAsC;QACtC,OAAO,CAAC,IAAI,CACV,yCAAyC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU;YACzE,WAAW,CAAC,gBAAgB,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CACxD,CAAC;IACJ,CAAC;IAED,MAAM,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAErC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AAC5D,CAAC;AAED;6EAC6E;AAC7E,MAAM,gBAAgB,GACpB,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AACnE,MAAM,iBAAiB,GAAG,gBAAgB,GAAG,GAAG,CAAC;AAEjD,uEAAuE;AACvE,UAAU;AAEV,KAAK,UAAU,iBAAiB,CAAC,UAAkB;IACjD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC9D,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,CAAC,GAAG,gCAAgC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC1D,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1B,CAAC;IACD,iEAAiE;IACjE,iEAAiE;IACjE,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5B,CAAC;AAED;mEACmE;AACnE,KAAK,UAAU,cAAc,CAAC,UAAkB;IAC9C,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CACtC,CAAC;QAC3B,OAAO,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAAC,IAAY,EAAE,KAAyB;IAC1D,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,OAAO,GAAG,KAAK;SAClB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzB,OAAO,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,UAAU,OAAO,UAAU,CAAC,CAAC;AAC5E,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAY,EACZ,GAQQ;IAER,MAAM,GAAG,GAAG,CAAC,CAAS,EAAU,EAAE,CAChC,CAAC;SACE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAE7B,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,8EAA8E;IAC9E,yEAAyE;IACzE,+EAA+E;IAC/E,2EAA2E;IAC3E,sEAAsE;IACtE,MAAM,SAAS,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,KAAK,CAAC;IACnD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;QACtE,IAAI,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,CACP,uEAAuE,CACxE,CAAC;QACF,IAAI,CAAC,IAAI,CACP,oDAAoD,GAAG,CAAC,SAAS,CAAC,IAAI,CACvE,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,IAAI,CAAC,IAAI,CACP,qCAAqC,GAAG,CAAC,GAAG,EAAE,UAAU,IAAI,SAAS,CAAC,IAAI,CAC3E,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,wEAAwE;IACxE,0EAA0E;IAC1E,6EAA6E;IAC7E,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,GAAG,GAAG,CAAC,IAAyB,EAAE,GAAW,EAAW,EAAE,CAC9D,IAAI,MAAM,CAAC,mBAAmB,IAAI,QAAQ,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvE,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC;QACpC,MAAM,WAAW,GAAG,GAAG,CAAC,gBAAgB,IAAI,GAAG,CAAC,WAAW,CAAC;QAC5D,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC;QACpC,MAAM,EAAE,GAAa,EAAE,CAAC;QACxB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC;YACvC,EAAE,CAAC,IAAI,CAAC,sCAAsC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChE,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC;gBAC7B,EAAE,CAAC,IAAI,CAAC,qCAAqC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACrE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,gBAAgB,CAAC;gBACpC,EAAE,CAAC,IAAI,CACL,4CAA4C,GAAG,CAAC,WAAW,CAAC,IAAI,CACjE,CAAC;QACN,CAAC;QACD,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC;YAC1C,EAAE,CAAC,IAAI,CAAC,sCAAsC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9D,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC;gBAC9B,EAAE,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,EAAE,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC;gBAC7B,EAAE,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;YACzD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACpC,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,GAYQ;IAER,MAAM,WAAW,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,KAAK,CAAC;IACrD,MAAM,SAAS,GAAG,GAAG,EAAE,KAAK,IAAI,GAAG,EAAE,IAAI,IAAI,KAAK,CAAC;IACnD,MAAM,WAAW,GAAG,GAAG,EAAE,gBAAgB,IAAI,GAAG,EAAE,WAAW,IAAI,EAAE,CAAC;IACpE,0EAA0E;IAC1E,4EAA4E;IAC5E,sEAAsE;IACtE,MAAM,OAAO,GAAG,GAAG,EAAE,IAAI,IAAI,UAAU,CAAC;IACxC,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;QAC9C,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;IACtC,MAAM,QAAQ,GAA4B;QACxC,IAAI,EAAE,WAAW;QACjB,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,GAAG;QACd,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,YAAY;QACrB,WAAW,EAAE,GAAG,EAAE,UAAU,IAAI,SAAS;QACzC,gBAAgB,EAAE,GAAG,EAAE,eAAe,IAAI,SAAS;QACnD,KAAK,EAAE;YACL,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE;YACrE,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE;YACrE;gBACE,GAAG,EAAE,OAAO;gBACZ,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,UAAU;aACpB;SACF;KACF,CAAC;IACF,wEAAwE;IACxE,4EAA4E;IAC5E,uEAAuE;IACvE,4DAA4D;IAC5D,IAAI,GAAG,EAAE,cAAc;QAAE,QAAQ,CAAC,gBAAgB,GAAG,GAAG,CAAC,cAAc,CAAC;IACxE,IAAI,GAAG,EAAE,mBAAmB;QAC1B,QAAQ,CAAC,qBAAqB,GAAG,GAAG,CAAC,mBAAmB,CAAC;IAC3D,IAAI,GAAG,EAAE,eAAe;QAAE,QAAQ,CAAC,gBAAgB,GAAG,GAAG,CAAC,eAAe,CAAC;IAC1E,IAAI,GAAG,EAAE,mBAAmB;QAC1B,QAAQ,CAAC,qBAAqB,GAAG,GAAG,CAAC,mBAAmB,CAAC;IAC3D,IAAI,WAAW;QAAE,QAAQ,CAAC,WAAW,GAAG,WAAW,CAAC;IACpD,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,OAAe;IACjE,kEAAkE;IAClE,mEAAmE;IACnE,sDAAsD;IACtD,+DAA+D;IAC/D,2CAA2C;IAC3C,OAAO,IAAI,CAAC,OAAO,CACjB,+BAA+B,EAC/B,CAAC,IAAI,EAAE,IAAY,EAAE,QAAgB,EAAE,EAAE;QACvC,wEAAwE;QACxE,yEAAyE;QACzE,yEAAyE;QACzE,yEAAyE;QACzE,wEAAwE;QACxE,uEAAuE;QACvE,0EAA0E;QAC1E,sBAAsB;QACtB,IAAI,6CAA6C,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACjE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,kEAAkE;QAClE,wEAAwE;QACxE,gDAAgD;QAChD,IACE,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC;YAC9B,8BAA8B,CAAC,IAAI,CAAC,QAAQ,CAAC,EAC7C,CAAC;YACD,OAAO,GAAG,IAAI,IAAI,OAAO,IAAI,QAAQ,GAAG,CAAC;QAC3C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CACF,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,uBAAuB,CACrC,IAAY,EACZ,OAAsB;IAEtB,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAC/D,OAAO,IAAI,CAAC,OAAO,CACjB,IAAI,MAAM,CAAC,mBAAmB,OAAO,WAAW,EAAE,GAAG,CAAC,EACtD,QAAQ,CACT,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,GAAW,EACX,OAAe,EACf,OAAsB;IAEtB,IAAI,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAEvD,4EAA4E;IAC5E,6EAA6E;IAC7E,mDAAmD;IACnD,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,CAAC;IAC3C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC;QAAE,OAAO,IAAI,CAAC;IAEzD,IAAI,OAAO,IAAI,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAChD,OAAO,UAAU,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;IAC5E,CAAC;IACD,IAAI,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,4BAA4B;IACjF,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/C,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,IAAI,KAAK,sBAAsB,IAAI,IAAI,KAAK,eAAe;QAAE,OAAO,IAAI,CAAC;IAC7E,MAAM,EAAE,GAAG,GAAG,OAAO,GAAG,CAAC;IACzB,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACxB,CAAC,CAAC,UAAU,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE;QAC9C,CAAC,CAAC,UAAU,OAAO,IAAI,IAAI,EAAE,CAAC;AAClC,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAAY,EACZ,WAAmB,EACnB,SAAiB,EACjB,OAAe,EACf,OAAsB;IAEtB,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC,EAAE,CAAC;QAC3D,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAE,CAAC;QAClB,MAAM,GAAG,GAAG,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,SAAS;QACpE,4EAA4E;QAC5E,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACvE,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,iBAAiB,GAAG,EAAE,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,sCAAsC;QACtC,OAAO,CAAC,IAAI,CACV,2CAA2C,QAAQ,CAAC,MAAM,gBAAgB;YACxE,8DAA8D;YAC9D,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;YAC5B,kEAAkE;YAClE,kDAAkD,CACrD,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,2CAA2C,KAAK,CAAC,MAAM,iBAAiB;YACtE,kEAAkE;YAClE,yBAAyB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;YAC/C,8DAA8D,CACjE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,uDAAuD;AACvD,KAAK,UAAU,YAAY,CAAC,GAAW,EAAE,IAAI,GAAG,GAAG;IACjD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,GAAG,IAAI,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACtC,IAAI,GAAG,CAAC,WAAW,EAAE;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;aAChE,IAAI,GAAG,CAAC,MAAM,EAAE;YAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,UAAU,CACvB,GAAW,EACX,IAAY,EACZ,IAAmC,EACnC,IAAa;IAEb,MAAM,OAAO,GAAG,IAAI,IAAI,GAAG,CAAC;IAC5B,MAAM,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5C,IAAI,IAAI,EAAE,CAAC,GAAG,CAAC;YAAE,SAAS;QAC1B,IAAI,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;YACtB,MAAM,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACrD,CAAC;aAAM,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;YACxB,MAAM,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;AACH,CAAC;AAOD,SAAS,SAAS,CAAC,QAAkB,EAAE,CAAS;IAC9C,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;SACnC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;SACpD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;SACjC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjB,CAAC;AAED,MAAM,eAAe,GAAsB;IACzC,WAAW;IACX,KAAK;IACL,OAAO;IACP,SAAS;IACT,SAAS;IACT,UAAU;IACV,WAAW;CACZ,CAAC;AAEF,KAAK,UAAU,oBAAoB,CAAC,QAAgB;IAClD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAa,CAAC;IACvE,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;YACrC,IAAI,CAAC,CAAC,QAAQ,CAAC,gBAAgB,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC/D,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,+DAA+D;YAC7D,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAC3C,iIAAiI,CACpI,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/dist/cli/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const CLI_VERSION = "0.1.
|
|
1
|
+
export declare const CLI_VERSION = "0.1.1048";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/cli/version.js
CHANGED
|
@@ -20,6 +20,14 @@ export interface EdgeCacheDecision {
|
|
|
20
20
|
* only ever stores one entry per document.
|
|
21
21
|
*/
|
|
22
22
|
canonicalPath?: string;
|
|
23
|
+
/**
|
|
24
|
+
* The URL carries ad/analytics params (`utm_*`, `fbclid`, …). Render the SSR
|
|
25
|
+
* document anyway, but UNCACHED and WITHOUT redirecting: those params are read
|
|
26
|
+
* by the page's own attribution and by ad pixels, so a redirect that strips
|
|
27
|
+
* them silently breaks every campaign pointed at the page. A crawler never
|
|
28
|
+
* sends them, so the clean URL is still the one that gets cached.
|
|
29
|
+
*/
|
|
30
|
+
ssrUncached?: boolean;
|
|
23
31
|
}
|
|
24
32
|
/**
|
|
25
33
|
* Decide whether this request may be edge-cached, at what TTL, and under which
|
|
@@ -33,7 +41,10 @@ export interface EdgeCacheDecision {
|
|
|
33
41
|
* • an UNDECLARED, non-tracking param ⇒ not cacheable — falls through to the
|
|
34
42
|
* uncached shell with the param intact, so a page that reads an ad-hoc param
|
|
35
43
|
* client-side still works and junk can't fill the cache;
|
|
36
|
-
* • tracking params
|
|
44
|
+
* • tracking params ⇒ `ssrUncached`: rendered, not cached, NOT redirected —
|
|
45
|
+
* a redirect would strip the params before the page and the ad pixels read
|
|
46
|
+
* them;
|
|
47
|
+
* • unsorted allowlisted params or a trailing slash ⇒ `canonicalPath` differs
|
|
37
48
|
* from the request, and the caller redirects to collapse them onto one entry.
|
|
38
49
|
*/
|
|
39
50
|
export declare function edgeCacheDecision(request: Request, url: URL, pages: PageRegistry | undefined, env: Record<string, unknown>): EdgeCacheDecision;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edgeCache.d.ts","sourceRoot":"","sources":["../../../../src/server/adapter/workers/edgeCache.ts"],"names":[],"mappings":"AAyBA,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,cAAc,EACpB,MAAM,2BAA2B,CAAC;AAEnC;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAClD,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;AAqB/C,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"edgeCache.d.ts","sourceRoot":"","sources":["../../../../src/server/adapter/workers/edgeCache.ts"],"names":[],"mappings":"AAyBA,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,cAAc,EACpB,MAAM,2BAA2B,CAAC;AAEnC;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAClD,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;AAqB/C,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,kDAAkD;IAClD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAID;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,OAAO,EAChB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,YAAY,GAAG,SAAS,EAC/B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,iBAAiB,CA8CnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,EAAO,GAAG,MAAM,CAK5E"}
|
|
@@ -31,9 +31,9 @@ import { DEFAULT_SSR_CACHE_TIMEOUT, parseUrl, } from '../../../shared/Router.js'
|
|
|
31
31
|
*/
|
|
32
32
|
export const CACHE_STATUS_HEADER = 'x-ugly-cache';
|
|
33
33
|
/**
|
|
34
|
-
* Ad/analytics params that never change the rendered document.
|
|
35
|
-
*
|
|
36
|
-
* per click.
|
|
34
|
+
* Ad/analytics params that never change the rendered document. A URL carrying
|
|
35
|
+
* them is rendered but not cached (`ssrUncached`), so a campaign link neither
|
|
36
|
+
* mints a cache entry per click nor loses its params to a redirect.
|
|
37
37
|
*/
|
|
38
38
|
const TRACKING_PARAM = /^(?:utm_|mc_|_ga|_gl)/;
|
|
39
39
|
const TRACKING_PARAM_EXACT = new Set([
|
|
@@ -60,7 +60,10 @@ const NOT_CACHEABLE = { cacheable: false };
|
|
|
60
60
|
* • an UNDECLARED, non-tracking param ⇒ not cacheable — falls through to the
|
|
61
61
|
* uncached shell with the param intact, so a page that reads an ad-hoc param
|
|
62
62
|
* client-side still works and junk can't fill the cache;
|
|
63
|
-
* • tracking params
|
|
63
|
+
* • tracking params ⇒ `ssrUncached`: rendered, not cached, NOT redirected —
|
|
64
|
+
* a redirect would strip the params before the page and the ad pixels read
|
|
65
|
+
* them;
|
|
66
|
+
* • unsorted allowlisted params or a trailing slash ⇒ `canonicalPath` differs
|
|
64
67
|
* from the request, and the caller redirects to collapse them onto one entry.
|
|
65
68
|
*/
|
|
66
69
|
export function edgeCacheDecision(request, url, pages, env) {
|
|
@@ -81,13 +84,24 @@ export function edgeCacheDecision(request, url, pages, env) {
|
|
|
81
84
|
return NOT_CACHEABLE;
|
|
82
85
|
const allow = new Set(meta.cacheQuery ?? []);
|
|
83
86
|
const kept = [];
|
|
87
|
+
let tracked = false;
|
|
84
88
|
for (const [k, v] of url.searchParams) {
|
|
85
|
-
if (isTrackingParam(k))
|
|
86
|
-
|
|
89
|
+
if (isTrackingParam(k)) {
|
|
90
|
+
tracked = true;
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
87
93
|
if (!allow.has(k))
|
|
88
94
|
return NOT_CACHEABLE; // undeclared param → uncached shell
|
|
89
95
|
kept.push([k, v]);
|
|
90
96
|
}
|
|
97
|
+
if (tracked) {
|
|
98
|
+
return {
|
|
99
|
+
cacheable: false,
|
|
100
|
+
ssrUncached: true,
|
|
101
|
+
route,
|
|
102
|
+
ttl: meta.ssrCacheTimeout ?? DEFAULT_SSR_CACHE_TIMEOUT,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
91
105
|
kept.sort((a, b) => a[0] === b[0] ? (a[1] < b[1] ? -1 : 1) : a[0] < b[0] ? -1 : 1);
|
|
92
106
|
const qs = new URLSearchParams(kept).toString();
|
|
93
107
|
const path = url.pathname.replace(/\/+$/, '') || '/';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edgeCache.js","sourceRoot":"","sources":["../../../../src/server/adapter/workers/edgeCache.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,EAAE;AACF,8EAA8E;AAC9E,8EAA8E;AAC9E,EAAE;AACF,iFAAiF;AACjF,4EAA4E;AAC5E,kFAAkF;AAClF,2EAA2E;AAC3E,gFAAgF;AAChF,8EAA8E;AAC9E,iEAAiE;AACjE,EAAE;AACF,gFAAgF;AAChF,iFAAiF;AACjF,kFAAkF;AAClF,+EAA+E;AAC/E,wEAAwE;AACxE,gFAAgF;AAChF,EAAE;AACF,kFAAkF;AAClF,gFAAgF;AAChF,gFAAgF;AAChF,mCAAmC;AAEnC,OAAO,EACL,yBAAyB,EACzB,QAAQ,GAGT,MAAM,2BAA2B,CAAC;AAEnC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAGlD;;;;GAIG;AACH,MAAM,cAAc,GAAG,uBAAuB,CAAC;AAC/C,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,QAAQ;IACR,OAAO;IACP,SAAS;IACT,QAAQ;IACR,KAAK;IACL,SAAS;CACV,CAAC,CAAC;AAEH,SAAS,eAAe,CAAC,GAAW;IAClC,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnE,CAAC;
|
|
1
|
+
{"version":3,"file":"edgeCache.js","sourceRoot":"","sources":["../../../../src/server/adapter/workers/edgeCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type PageRegistry } from '../../../shared/Router.js';
|
|
2
|
+
/**
|
|
3
|
+
* The public-file path (no leading slash) this request is for, or null.
|
|
4
|
+
*
|
|
5
|
+
* Any depth — `/hero/bus-1200.webp` as well as `/icon.png` — and text files too,
|
|
6
|
+
* so `robots.txt` and `sitemap.xml` are served rather than answered with the app
|
|
7
|
+
* page. `/api/*` never matches, whatever its extension.
|
|
8
|
+
*/
|
|
9
|
+
export declare function staticAssetPath(path: string): string | null;
|
|
10
|
+
/** The route's declared robots directive, or null. */
|
|
11
|
+
export declare function robotsFor(pages: PageRegistry | undefined, url: URL): string | null;
|
|
12
|
+
/**
|
|
13
|
+
* Write `tags` into the document head, REPLACING any existing tag with the same
|
|
14
|
+
* identity (title, meta name/property, canonical link) rather than adding a
|
|
15
|
+
* second. Two `og:image`s or two descriptions leave the choice to whichever
|
|
16
|
+
* crawler reads which one first.
|
|
17
|
+
*/
|
|
18
|
+
export declare function upsertHeadTags(html: string, tags: string[]): string;
|
|
19
|
+
//# sourceMappingURL=seo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seo.d.ts","sourceRoot":"","sources":["../../../../src/server/adapter/workers/seo.ts"],"names":[],"mappings":"AAMA,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,2BAA2B,CAAC;AASxE;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAS3D;AAED,sDAAsD;AACtD,wBAAgB,SAAS,CACvB,KAAK,EAAE,YAAY,GAAG,SAAS,EAC/B,GAAG,EAAE,GAAG,GACP,MAAM,GAAG,IAAI,CAKf;AAoBD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CASnE"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// src/server/adapter/workers/seo.ts
|
|
2
|
+
//
|
|
3
|
+
// Small, pure helpers for what search engines and link previews see: which
|
|
4
|
+
// paths are static files, which robots directive a route carries, and how head
|
|
5
|
+
// tags are written without duplicating ones the document already has.
|
|
6
|
+
import { parseUrl } from '../../../shared/Router.js';
|
|
7
|
+
/**
|
|
8
|
+
* File types served straight from the build's public files. Anything else that
|
|
9
|
+
* isn't an API call falls through to the app (a route, or the SPA shell).
|
|
10
|
+
*/
|
|
11
|
+
const STATIC_EXT = /\.(?:png|svg|jpg|jpeg|gif|webp|avif|woff2?|ttf|otf|ico|map|txt|xml|pdf|mp4|webm)$/i;
|
|
12
|
+
/**
|
|
13
|
+
* The public-file path (no leading slash) this request is for, or null.
|
|
14
|
+
*
|
|
15
|
+
* Any depth — `/hero/bus-1200.webp` as well as `/icon.png` — and text files too,
|
|
16
|
+
* so `robots.txt` and `sitemap.xml` are served rather than answered with the app
|
|
17
|
+
* page. `/api/*` never matches, whatever its extension.
|
|
18
|
+
*/
|
|
19
|
+
export function staticAssetPath(path) {
|
|
20
|
+
if (path.startsWith('/api/'))
|
|
21
|
+
return null;
|
|
22
|
+
if (path === '/favicon.ico')
|
|
23
|
+
return 'favicon.ico';
|
|
24
|
+
if (!STATIC_EXT.test(path))
|
|
25
|
+
return null;
|
|
26
|
+
// No empty segments or traversal: `/a//b.png`, `/../x.png`.
|
|
27
|
+
const rest = path.slice(1);
|
|
28
|
+
if (rest.split('/').some((seg) => seg === '' || seg === '..' || seg === '.'))
|
|
29
|
+
return null;
|
|
30
|
+
return rest;
|
|
31
|
+
}
|
|
32
|
+
/** The route's declared robots directive, or null. */
|
|
33
|
+
export function robotsFor(pages, url) {
|
|
34
|
+
if (!pages)
|
|
35
|
+
return null;
|
|
36
|
+
const route = parseUrl(pages, url.pathname, url.search);
|
|
37
|
+
if (!route)
|
|
38
|
+
return null;
|
|
39
|
+
return pages[route.routeName]?.robots ?? null;
|
|
40
|
+
}
|
|
41
|
+
/** The identity of a head tag: `<title>`, a meta name/property, or a link rel. */
|
|
42
|
+
function tagKey(tag) {
|
|
43
|
+
if (/^<title[\s>]/i.test(tag))
|
|
44
|
+
return 'title';
|
|
45
|
+
const attr = (name) => new RegExp(`\\b${name}=["']([^"']+)["']`, 'i').exec(tag)?.[1];
|
|
46
|
+
if (/^<meta\b/i.test(tag)) {
|
|
47
|
+
const n = attr('name') ?? attr('property');
|
|
48
|
+
return n ? `meta:${n.toLowerCase()}` : null;
|
|
49
|
+
}
|
|
50
|
+
if (/^<link\b/i.test(tag)) {
|
|
51
|
+
const rel = attr('rel');
|
|
52
|
+
return rel === 'canonical' ? 'link:canonical' : null;
|
|
53
|
+
}
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
const HEAD_TAG = /<title>[\s\S]*?<\/title>|<meta\b[^>]*>|<link\b[^>]*>/gi;
|
|
57
|
+
/**
|
|
58
|
+
* Write `tags` into the document head, REPLACING any existing tag with the same
|
|
59
|
+
* identity (title, meta name/property, canonical link) rather than adding a
|
|
60
|
+
* second. Two `og:image`s or two descriptions leave the choice to whichever
|
|
61
|
+
* crawler reads which one first.
|
|
62
|
+
*/
|
|
63
|
+
export function upsertHeadTags(html, tags) {
|
|
64
|
+
const headEnd = html.indexOf('</head>');
|
|
65
|
+
if (headEnd === -1)
|
|
66
|
+
return tags.join('') + html;
|
|
67
|
+
const keys = new Set(tags.map(tagKey).filter((k) => !!k));
|
|
68
|
+
const head = html.slice(0, headEnd).replace(HEAD_TAG, (t) => {
|
|
69
|
+
const k = tagKey(t);
|
|
70
|
+
return k && keys.has(k) ? '' : t;
|
|
71
|
+
});
|
|
72
|
+
return head + tags.join('') + html.slice(headEnd);
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=seo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seo.js","sourceRoot":"","sources":["../../../../src/server/adapter/workers/seo.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapWithAssets.d.ts","sourceRoot":"","sources":["../../../../src/server/adapter/workers/wrapWithAssets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AASH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"wrapWithAssets.d.ts","sourceRoot":"","sources":["../../../../src/server/adapter/workers/wrapWithAssets.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AASH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAUxD;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAE/D,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA6VD,wBAAgB,cAAc,CAC5B,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,YAAY,GACnB,UAAU,CAwZZ"}
|
|
@@ -32,6 +32,7 @@ import { getUglyBotUrl } from '../../../shared/uglyBotUrl.js';
|
|
|
32
32
|
import { setBuildInfo } from '../../BuildInfo.js';
|
|
33
33
|
import { getAppContext } from './createWorkersApp.js';
|
|
34
34
|
import { CACHE_STATUS_HEADER, edgeCacheDecision, ssrCacheControl, ssrCacheTags, } from './edgeCache.js';
|
|
35
|
+
import { robotsFor, staticAssetPath, upsertHeadTags } from './seo.js';
|
|
35
36
|
/**
|
|
36
37
|
* Set `<NO_SPA_FALLBACK_HEADER>: '1'` on a raw route's 404 to keep it a 404 instead
|
|
37
38
|
* of letting the SPA fallback answer with an HTML 200. Use it on paths served to
|
|
@@ -183,6 +184,20 @@ function guessContentType(path) {
|
|
|
183
184
|
return 'font/ttf';
|
|
184
185
|
if (lower.endsWith('.map'))
|
|
185
186
|
return 'application/json; charset=utf-8';
|
|
187
|
+
if (lower.endsWith('.txt'))
|
|
188
|
+
return 'text/plain; charset=utf-8';
|
|
189
|
+
if (lower.endsWith('.xml'))
|
|
190
|
+
return 'application/xml; charset=utf-8';
|
|
191
|
+
if (lower.endsWith('.avif'))
|
|
192
|
+
return 'image/avif';
|
|
193
|
+
if (lower.endsWith('.otf'))
|
|
194
|
+
return 'font/otf';
|
|
195
|
+
if (lower.endsWith('.pdf'))
|
|
196
|
+
return 'application/pdf';
|
|
197
|
+
if (lower.endsWith('.mp4'))
|
|
198
|
+
return 'video/mp4';
|
|
199
|
+
if (lower.endsWith('.webm'))
|
|
200
|
+
return 'video/webm';
|
|
186
201
|
return 'application/octet-stream';
|
|
187
202
|
}
|
|
188
203
|
function htmlResponse(html, extraHeaders) {
|
|
@@ -320,17 +335,11 @@ function escapeAttr(s) {
|
|
|
320
335
|
* reason this exists: it retires the user-agent sniffing that used to be the
|
|
321
336
|
* only way to hand a crawler a social card.
|
|
322
337
|
*/
|
|
323
|
-
function injectMeta(html, meta, canonicalUrl) {
|
|
338
|
+
function injectMeta(html, meta, canonicalUrl, robots = null) {
|
|
324
339
|
const tags = [];
|
|
325
340
|
const push = (t) => tags.push(t);
|
|
326
|
-
let out = html;
|
|
327
341
|
if (meta.title) {
|
|
328
|
-
|
|
329
|
-
out = /<title>[\s\S]*?<\/title>/.test(out)
|
|
330
|
-
? out.replace(/<title>[\s\S]*?<\/title>/, titleTag)
|
|
331
|
-
: out;
|
|
332
|
-
if (!out.includes(titleTag))
|
|
333
|
-
push(titleTag);
|
|
342
|
+
push(`<title>${escapeAttr(meta.title)}</title>`);
|
|
334
343
|
push(`<meta property="og:title" content="${escapeAttr(meta.title)}">`);
|
|
335
344
|
}
|
|
336
345
|
if (meta.description) {
|
|
@@ -347,7 +356,12 @@ function injectMeta(html, meta, canonicalUrl) {
|
|
|
347
356
|
push(`<meta property="og:type" content="${escapeAttr(meta.type ?? 'website')}">`);
|
|
348
357
|
push(`<meta property="og:url" content="${escapeAttr(canonicalUrl)}">`);
|
|
349
358
|
push(`<link rel="canonical" href="${escapeAttr(canonicalUrl)}">`);
|
|
350
|
-
|
|
359
|
+
if (robots)
|
|
360
|
+
push(`<meta name="robots" content="${escapeAttr(robots)}">`);
|
|
361
|
+
// Replace, don't append: the app's index.html usually carries its own
|
|
362
|
+
// description and og:* defaults, and a second copy of each leaves the choice
|
|
363
|
+
// to whichever crawler reads which one first.
|
|
364
|
+
return upsertHeadTags(html, tags);
|
|
351
365
|
}
|
|
352
366
|
function injectIntoHead(html, scripts) {
|
|
353
367
|
const idx = html.indexOf('</head>');
|
|
@@ -436,10 +450,12 @@ export function wrapWithAssets(base, config) {
|
|
|
436
450
|
assetRest = path.slice(assetPrefix.length);
|
|
437
451
|
}
|
|
438
452
|
else if (isMethodIdempotent &&
|
|
439
|
-
(path.startsWith('/assets/') ||
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
453
|
+
(path.startsWith('/assets/') || staticAssetPath(path) !== null)) {
|
|
454
|
+
// Public files at any depth, text files included (robots.txt,
|
|
455
|
+
// sitemap.xml). Only root-level images used to match, so everything
|
|
456
|
+
// else was answered with the app page — a 200 of HTML where a crawler
|
|
457
|
+
// or an <img> expected a file.
|
|
458
|
+
assetRest = staticAssetPath(path) ?? path.slice(1);
|
|
443
459
|
immutable = assetRest.startsWith('assets/');
|
|
444
460
|
}
|
|
445
461
|
if (assetRest !== null) {
|
|
@@ -563,12 +579,17 @@ export function wrapWithAssets(base, config) {
|
|
|
563
579
|
// visitor — the browser resolves its session afterwards via
|
|
564
580
|
// `/auth/token`. Do not add anything request-specific below.
|
|
565
581
|
const decision = edgeCacheDecision(request, url, appCtx.pages ?? undefined, env);
|
|
566
|
-
|
|
582
|
+
const robots = robotsFor(appCtx.pages ?? undefined, url);
|
|
583
|
+
const robotsHeader = robots
|
|
584
|
+
? { 'x-robots-tag': robots }
|
|
585
|
+
: {};
|
|
586
|
+
if ((decision.cacheable || decision.ssrUncached) && appCtx.ssrRender) {
|
|
567
587
|
// Collapse tracking params / trailing slash / query order onto ONE
|
|
568
588
|
// cache entry: the declarative cache keys on the raw path+query and
|
|
569
589
|
// can't be customized per request, so we redirect to the canonical URL
|
|
570
590
|
// instead. Only canonical URLs are ever rendered + cached.
|
|
571
|
-
if (decision.
|
|
591
|
+
if (decision.cacheable &&
|
|
592
|
+
decision.canonicalPath &&
|
|
572
593
|
url.pathname + url.search !== decision.canonicalPath) {
|
|
573
594
|
return new Response(null, {
|
|
574
595
|
status: 301,
|
|
@@ -598,7 +619,7 @@ export function wrapWithAssets(base, config) {
|
|
|
598
619
|
if (result) {
|
|
599
620
|
html = injectSSR(html, result.html, result.pageData);
|
|
600
621
|
if (result.meta) {
|
|
601
|
-
html = injectMeta(html, result.meta, canonicalUrl(url));
|
|
622
|
+
html = injectMeta(html, result.meta, canonicalUrl(url), robots);
|
|
602
623
|
}
|
|
603
624
|
appTags = result.tags ?? [];
|
|
604
625
|
ssrOk = true;
|
|
@@ -609,13 +630,18 @@ export function wrapWithAssets(base, config) {
|
|
|
609
630
|
}
|
|
610
631
|
if (!ssrOk) {
|
|
611
632
|
// A render failure must never be cached — no-store keeps it out.
|
|
612
|
-
return htmlResponse(injectIntoHead(indexHtml, buildScript + buildPublicScripts()), { [CACHE_STATUS_HEADER]: 'BYPASS' });
|
|
633
|
+
return htmlResponse(injectIntoHead(indexHtml, buildScript + buildPublicScripts()), { [CACHE_STATUS_HEADER]: 'BYPASS', ...robotsHeader });
|
|
613
634
|
}
|
|
614
635
|
return new Response(html, {
|
|
615
636
|
status: 200,
|
|
616
637
|
headers: {
|
|
617
638
|
'content-type': 'text/html; charset=utf-8',
|
|
618
|
-
|
|
639
|
+
// A URL with ad params is rendered for this one visitor and never
|
|
640
|
+
// stored: caching it would mint an entry per click.
|
|
641
|
+
'cache-control': decision.ssrUncached
|
|
642
|
+
? 'private, no-store'
|
|
643
|
+
: ssrCacheControl(decision.ttl ?? 0),
|
|
644
|
+
...robotsHeader,
|
|
619
645
|
'cache-tag': ssrCacheTags(decision.route?.routeName ?? '', appTags),
|
|
620
646
|
// The Worker only runs on a cache MISS now, so this marks "rendered
|
|
621
647
|
// fresh"; `cf-cache-status` reports whether the platform served from
|
|
@@ -630,6 +656,7 @@ export function wrapWithAssets(base, config) {
|
|
|
630
656
|
const { scripts, clearAuthCookie } = await buildAuthInjection(request);
|
|
631
657
|
const extraHeaders = {
|
|
632
658
|
[CACHE_STATUS_HEADER]: 'BYPASS',
|
|
659
|
+
...robotsHeader,
|
|
633
660
|
};
|
|
634
661
|
if (clearAuthCookie) {
|
|
635
662
|
extraHeaders['Set-Cookie'] =
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapWithAssets.js","sourceRoot":"","sources":["../../../../src/server/adapter/workers/wrapWithAssets.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wrapWithAssets.js","sourceRoot":"","sources":["../../../../src/server/adapter/workers/wrapWithAssets.ts"],"names":[],"mappings":"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"}
|
package/dist/shared/Router.d.ts
CHANGED
|
@@ -29,6 +29,14 @@ export interface PageMeta {
|
|
|
29
29
|
* ugly.bot deploy following — so it uses `ssrCacheTimeout: 3600`.
|
|
30
30
|
*/
|
|
31
31
|
ssrCacheTimeout?: number;
|
|
32
|
+
/**
|
|
33
|
+
* A robots directive for this page, e.g. `'noindex, follow'`. Sent as an
|
|
34
|
+
* `X-Robots-Tag` header on every response for the route — the SPA shell and
|
|
35
|
+
* the SSR document alike — and as `<meta name="robots">` in SSR output. Use it
|
|
36
|
+
* to keep a page reachable but out of search results; `robots.txt` Disallow
|
|
37
|
+
* would stop crawlers seeing the directive at all.
|
|
38
|
+
*/
|
|
39
|
+
robots?: string;
|
|
32
40
|
}
|
|
33
41
|
/** Default edge TTL: effectively "until the next deploy moves the cache key". */
|
|
34
42
|
export declare const DEFAULT_SSR_CACHE_TIMEOUT = 31536000;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../../src/shared/Router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAEzD,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;AACjE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;AAC1E,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,aAAa,CAAC;AAC9D,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CAChC;AAGD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,OAAO,CAAC;IACd,GAAG,EAAE,OAAO,CAAC;IACb;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;;;;;;;;;OAUG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"Router.d.ts","sourceRoot":"","sources":["../../src/shared/Router.ts"],"names":[],"mappings":"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"}
|
package/dist/shared/Router.js
CHANGED
|
@@ -22,6 +22,7 @@ export function definePage(options = {}) {
|
|
|
22
22
|
...(options.ssrCacheTimeout !== undefined
|
|
23
23
|
? { ssrCacheTimeout: options.ssrCacheTimeout }
|
|
24
24
|
: {}),
|
|
25
|
+
...(options.robots ? { robots: options.robots } : {}),
|
|
25
26
|
};
|
|
26
27
|
}
|
|
27
28
|
// Pass-through identity (mirrors defineFunctions pattern)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Router.js","sourceRoot":"","sources":["../../src/shared/Router.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Router.js","sourceRoot":"","sources":["../../src/shared/Router.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ugly-app",
|
|
3
3
|
"packageManager": "pnpm@10.34.5",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.1048",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"comment:files": "Allowlist what ships to npm. dist = runtime; src = sourcemap targets (dist/*.js.map reference ../../src/); templates = CLI scaffold. Everything else at repo root (.pgdata local Postgres, coverage, assets/icons sources, test/, test-results/) is excluded by omission. The !negations strip the scaffold's installed deps + cruft (templates/node_modules is 200MB+ and must never ship). package.json/README/LICENSE ship automatically.",
|
|
7
7
|
"files": [
|
package/src/cli/buildWorkers.ts
CHANGED
|
@@ -442,23 +442,35 @@ export function injectDefaultMeta(
|
|
|
442
442
|
);
|
|
443
443
|
}
|
|
444
444
|
|
|
445
|
-
// ── OpenGraph defaults — only when the app declares metadata
|
|
445
|
+
// ── OpenGraph defaults — only when the app declares metadata, and only for
|
|
446
|
+
// tags its index.html doesn't already carry. An app that writes its own
|
|
447
|
+
// description or og:image must not get a second one: crawlers disagree on
|
|
448
|
+
// which copy wins, and the default image is the icon, often a relative path.
|
|
446
449
|
if (cfg) {
|
|
450
|
+
const has = (attr: 'name' | 'property', key: string): boolean =>
|
|
451
|
+
new RegExp(`<meta\\b[^>]*\\b${attr}=["']${key}["']`, 'i').test(html);
|
|
447
452
|
const title = cfg.title ?? cfg.name;
|
|
448
453
|
const description = cfg.shortDescription ?? cfg.description;
|
|
449
454
|
const image = cfg.image ?? cfg.icon;
|
|
450
455
|
const og: string[] = [];
|
|
451
|
-
if (title
|
|
456
|
+
if (title && !has('property', 'og:title'))
|
|
457
|
+
og.push(`<meta property="og:title" content="${esc(title)}">`);
|
|
452
458
|
if (description) {
|
|
453
|
-
|
|
454
|
-
|
|
459
|
+
if (!has('name', 'description'))
|
|
460
|
+
og.push(`<meta name="description" content="${esc(description)}">`);
|
|
461
|
+
if (!has('property', 'og:description'))
|
|
462
|
+
og.push(
|
|
463
|
+
`<meta property="og:description" content="${esc(description)}">`,
|
|
464
|
+
);
|
|
455
465
|
}
|
|
456
|
-
if (image) {
|
|
466
|
+
if (image && !has('property', 'og:image')) {
|
|
457
467
|
og.push(`<meta property="og:image" content="${esc(image)}">`);
|
|
458
|
-
|
|
468
|
+
if (!has('name', 'twitter:card'))
|
|
469
|
+
og.push(`<meta name="twitter:card" content="summary_large_image">`);
|
|
459
470
|
}
|
|
460
471
|
if (og.length) {
|
|
461
|
-
|
|
472
|
+
if (!has('property', 'og:type'))
|
|
473
|
+
og.push(`<meta property="og:type" content="website">`);
|
|
462
474
|
tags.push(...og);
|
|
463
475
|
}
|
|
464
476
|
}
|
package/src/cli/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// Auto-generated by prebuild — do not edit manually
|
|
2
|
-
export const CLI_VERSION = "0.1.
|
|
2
|
+
export const CLI_VERSION = "0.1.1048";
|
|
@@ -40,9 +40,9 @@ export const CACHE_STATUS_HEADER = 'x-ugly-cache';
|
|
|
40
40
|
export type CacheStatus = 'DYNAMIC' | 'BYPASS';
|
|
41
41
|
|
|
42
42
|
/**
|
|
43
|
-
* Ad/analytics params that never change the rendered document.
|
|
44
|
-
*
|
|
45
|
-
* per click.
|
|
43
|
+
* Ad/analytics params that never change the rendered document. A URL carrying
|
|
44
|
+
* them is rendered but not cached (`ssrUncached`), so a campaign link neither
|
|
45
|
+
* mints a cache entry per click nor loses its params to a redirect.
|
|
46
46
|
*/
|
|
47
47
|
const TRACKING_PARAM = /^(?:utm_|mc_|_ga|_gl)/;
|
|
48
48
|
const TRACKING_PARAM_EXACT = new Set([
|
|
@@ -71,6 +71,14 @@ export interface EdgeCacheDecision {
|
|
|
71
71
|
* only ever stores one entry per document.
|
|
72
72
|
*/
|
|
73
73
|
canonicalPath?: string;
|
|
74
|
+
/**
|
|
75
|
+
* The URL carries ad/analytics params (`utm_*`, `fbclid`, …). Render the SSR
|
|
76
|
+
* document anyway, but UNCACHED and WITHOUT redirecting: those params are read
|
|
77
|
+
* by the page's own attribution and by ad pixels, so a redirect that strips
|
|
78
|
+
* them silently breaks every campaign pointed at the page. A crawler never
|
|
79
|
+
* sends them, so the clean URL is still the one that gets cached.
|
|
80
|
+
*/
|
|
81
|
+
ssrUncached?: boolean;
|
|
74
82
|
}
|
|
75
83
|
|
|
76
84
|
const NOT_CACHEABLE: EdgeCacheDecision = { cacheable: false };
|
|
@@ -87,7 +95,10 @@ const NOT_CACHEABLE: EdgeCacheDecision = { cacheable: false };
|
|
|
87
95
|
* • an UNDECLARED, non-tracking param ⇒ not cacheable — falls through to the
|
|
88
96
|
* uncached shell with the param intact, so a page that reads an ad-hoc param
|
|
89
97
|
* client-side still works and junk can't fill the cache;
|
|
90
|
-
* • tracking params
|
|
98
|
+
* • tracking params ⇒ `ssrUncached`: rendered, not cached, NOT redirected —
|
|
99
|
+
* a redirect would strip the params before the page and the ad pixels read
|
|
100
|
+
* them;
|
|
101
|
+
* • unsorted allowlisted params or a trailing slash ⇒ `canonicalPath` differs
|
|
91
102
|
* from the request, and the caller redirects to collapse them onto one entry.
|
|
92
103
|
*/
|
|
93
104
|
export function edgeCacheDecision(
|
|
@@ -112,11 +123,23 @@ export function edgeCacheDecision(
|
|
|
112
123
|
|
|
113
124
|
const allow = new Set(meta.cacheQuery ?? []);
|
|
114
125
|
const kept: [string, string][] = [];
|
|
126
|
+
let tracked = false;
|
|
115
127
|
for (const [k, v] of url.searchParams) {
|
|
116
|
-
if (isTrackingParam(k))
|
|
128
|
+
if (isTrackingParam(k)) {
|
|
129
|
+
tracked = true;
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
117
132
|
if (!allow.has(k)) return NOT_CACHEABLE; // undeclared param → uncached shell
|
|
118
133
|
kept.push([k, v]);
|
|
119
134
|
}
|
|
135
|
+
if (tracked) {
|
|
136
|
+
return {
|
|
137
|
+
cacheable: false,
|
|
138
|
+
ssrUncached: true,
|
|
139
|
+
route,
|
|
140
|
+
ttl: meta.ssrCacheTimeout ?? DEFAULT_SSR_CACHE_TIMEOUT,
|
|
141
|
+
};
|
|
142
|
+
}
|
|
120
143
|
kept.sort((a, b) =>
|
|
121
144
|
a[0] === b[0] ? (a[1] < b[1] ? -1 : 1) : a[0] < b[0] ? -1 : 1,
|
|
122
145
|
);
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { definePage, definePages } from '../../../shared/Router.js';
|
|
3
|
+
import { edgeCacheDecision } from './edgeCache.js';
|
|
4
|
+
import { staticAssetPath, upsertHeadTags, robotsFor } from './seo.js';
|
|
5
|
+
import { injectDefaultMeta } from '../../../cli/buildWorkers.js';
|
|
6
|
+
|
|
7
|
+
const pages = definePages({
|
|
8
|
+
'': definePage<{}>({ auth: false, ssr: true, cacheQuery: ['message'] }),
|
|
9
|
+
'docs': definePage<{}>({ auth: false, ssr: true, robots: 'noindex, follow' }),
|
|
10
|
+
'app': definePage<{}>({ auth: false }),
|
|
11
|
+
});
|
|
12
|
+
const get = (u: string): [Request, URL] => [new Request(u), new URL(u)];
|
|
13
|
+
|
|
14
|
+
describe('edgeCacheDecision with ad tracking params', () => {
|
|
15
|
+
it('renders an ad click uncached instead of redirecting its tags away', () => {
|
|
16
|
+
const d = edgeCacheDecision(
|
|
17
|
+
...get('https://x.co/?utm_source=meta&fbclid=abc&message=freedom'),
|
|
18
|
+
pages,
|
|
19
|
+
{},
|
|
20
|
+
);
|
|
21
|
+
expect(d.cacheable).toBe(false);
|
|
22
|
+
expect(d.ssrUncached).toBe(true);
|
|
23
|
+
expect(d.route?.routeName).toBe('');
|
|
24
|
+
// No canonicalPath: the caller must not redirect, or the tags are lost
|
|
25
|
+
// before the page can read them.
|
|
26
|
+
expect(d.canonicalPath).toBeUndefined();
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
it('still caches the clean URL a crawler asks for', () => {
|
|
30
|
+
const d = edgeCacheDecision(
|
|
31
|
+
...get('https://x.co/?message=freedom'),
|
|
32
|
+
pages,
|
|
33
|
+
{},
|
|
34
|
+
);
|
|
35
|
+
expect(d.cacheable).toBe(true);
|
|
36
|
+
expect(d.ssrUncached).toBeFalsy();
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
it('does not redirect a clean URL', () => {
|
|
40
|
+
const d = edgeCacheDecision(...get('https://x.co/docs'), pages, {});
|
|
41
|
+
expect(d.cacheable).toBe(true);
|
|
42
|
+
expect(d.canonicalPath).toBe('/docs');
|
|
43
|
+
});
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
describe('robotsFor', () => {
|
|
47
|
+
it("returns a page's declared directive", () => {
|
|
48
|
+
expect(robotsFor(pages, new URL('https://x.co/docs'))).toBe(
|
|
49
|
+
'noindex, follow',
|
|
50
|
+
);
|
|
51
|
+
});
|
|
52
|
+
it('returns null for pages without one, and for unknown paths', () => {
|
|
53
|
+
expect(robotsFor(pages, new URL('https://x.co/'))).toBeNull();
|
|
54
|
+
expect(robotsFor(pages, new URL('https://x.co/nope/deep'))).toBeNull();
|
|
55
|
+
expect(robotsFor(undefined, new URL('https://x.co/docs'))).toBeNull();
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
describe('staticAssetPath', () => {
|
|
60
|
+
it('serves robots.txt and sitemap.xml from the build', () => {
|
|
61
|
+
expect(staticAssetPath('/robots.txt')).toBe('robots.txt');
|
|
62
|
+
expect(staticAssetPath('/sitemap.xml')).toBe('sitemap.xml');
|
|
63
|
+
});
|
|
64
|
+
it('serves public files in subfolders', () => {
|
|
65
|
+
expect(staticAssetPath('/hero/bus-1200.webp')).toBe('hero/bus-1200.webp');
|
|
66
|
+
expect(staticAssetPath('/img/a.avif')).toBe('img/a.avif');
|
|
67
|
+
});
|
|
68
|
+
it('keeps serving what it served before', () => {
|
|
69
|
+
expect(staticAssetPath('/icon.png')).toBe('icon.png');
|
|
70
|
+
expect(staticAssetPath('/favicon.ico')).toBe('favicon.ico');
|
|
71
|
+
});
|
|
72
|
+
it('never claims routes or the API', () => {
|
|
73
|
+
expect(staticAssetPath('/configure')).toBeNull();
|
|
74
|
+
expect(staticAssetPath('/doc/business-plan')).toBeNull();
|
|
75
|
+
expect(staticAssetPath('/api/export.xml')).toBeNull();
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
describe('upsertHeadTags', () => {
|
|
80
|
+
const html =
|
|
81
|
+
'<html><head><title>Old</title><meta name="description" content="old">' +
|
|
82
|
+
'<meta property="og:image" content="/old.jpg"><link rel="canonical" href="/old"></head></html>';
|
|
83
|
+
|
|
84
|
+
it('replaces a tag with the same name or property instead of adding a second', () => {
|
|
85
|
+
const out = upsertHeadTags(html, [
|
|
86
|
+
'<meta name="description" content="new">',
|
|
87
|
+
'<meta property="og:image" content="/new.jpg">',
|
|
88
|
+
'<link rel="canonical" href="https://x.co/">',
|
|
89
|
+
]);
|
|
90
|
+
expect(out.match(/name="description"/g)).toHaveLength(1);
|
|
91
|
+
expect(out).toContain('content="new"');
|
|
92
|
+
expect(out.match(/property="og:image"/g)).toHaveLength(1);
|
|
93
|
+
expect(out).toContain('/new.jpg');
|
|
94
|
+
expect(out.match(/rel="canonical"/g)).toHaveLength(1);
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
it('adds tags that were not there', () => {
|
|
98
|
+
const out = upsertHeadTags(html, [
|
|
99
|
+
'<meta name="robots" content="noindex">',
|
|
100
|
+
]);
|
|
101
|
+
expect(out).toContain('<meta name="robots" content="noindex">');
|
|
102
|
+
expect(out.indexOf('name="robots"')).toBeLessThan(out.indexOf('</head>'));
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
describe('injectDefaultMeta', () => {
|
|
107
|
+
it("never duplicates a tag the app's index.html already declares", () => {
|
|
108
|
+
const html =
|
|
109
|
+
'<html><head><meta name="description" content="mine">' +
|
|
110
|
+
'<meta property="og:image" content="https://x.co/og.jpg">' +
|
|
111
|
+
'<meta property="og:title" content="Mine"></head></html>';
|
|
112
|
+
const out = injectDefaultMeta(html, {
|
|
113
|
+
title: 'App',
|
|
114
|
+
description: 'default',
|
|
115
|
+
icon: 'icon.png',
|
|
116
|
+
});
|
|
117
|
+
expect(out.match(/name="description"/g)).toHaveLength(1);
|
|
118
|
+
expect(out.match(/property="og:image"/g)).toHaveLength(1);
|
|
119
|
+
expect(out.match(/property="og:title"/g)).toHaveLength(1);
|
|
120
|
+
expect(out).not.toMatch(/og:image" content="icon\.png/);
|
|
121
|
+
});
|
|
122
|
+
|
|
123
|
+
it('still fills in what is missing', () => {
|
|
124
|
+
const out = injectDefaultMeta('<html><head></head></html>', {
|
|
125
|
+
title: 'App',
|
|
126
|
+
description: 'default',
|
|
127
|
+
});
|
|
128
|
+
expect(out).toContain('property="og:title" content="App"');
|
|
129
|
+
expect(out).toContain('name="description" content="default"');
|
|
130
|
+
});
|
|
131
|
+
});
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
// src/server/adapter/workers/seo.ts
|
|
2
|
+
//
|
|
3
|
+
// Small, pure helpers for what search engines and link previews see: which
|
|
4
|
+
// paths are static files, which robots directive a route carries, and how head
|
|
5
|
+
// tags are written without duplicating ones the document already has.
|
|
6
|
+
|
|
7
|
+
import { parseUrl, type PageRegistry } from '../../../shared/Router.js';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* File types served straight from the build's public files. Anything else that
|
|
11
|
+
* isn't an API call falls through to the app (a route, or the SPA shell).
|
|
12
|
+
*/
|
|
13
|
+
const STATIC_EXT =
|
|
14
|
+
/\.(?:png|svg|jpg|jpeg|gif|webp|avif|woff2?|ttf|otf|ico|map|txt|xml|pdf|mp4|webm)$/i;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* The public-file path (no leading slash) this request is for, or null.
|
|
18
|
+
*
|
|
19
|
+
* Any depth — `/hero/bus-1200.webp` as well as `/icon.png` — and text files too,
|
|
20
|
+
* so `robots.txt` and `sitemap.xml` are served rather than answered with the app
|
|
21
|
+
* page. `/api/*` never matches, whatever its extension.
|
|
22
|
+
*/
|
|
23
|
+
export function staticAssetPath(path: string): string | null {
|
|
24
|
+
if (path.startsWith('/api/')) return null;
|
|
25
|
+
if (path === '/favicon.ico') return 'favicon.ico';
|
|
26
|
+
if (!STATIC_EXT.test(path)) return null;
|
|
27
|
+
// No empty segments or traversal: `/a//b.png`, `/../x.png`.
|
|
28
|
+
const rest = path.slice(1);
|
|
29
|
+
if (rest.split('/').some((seg) => seg === '' || seg === '..' || seg === '.'))
|
|
30
|
+
return null;
|
|
31
|
+
return rest;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/** The route's declared robots directive, or null. */
|
|
35
|
+
export function robotsFor(
|
|
36
|
+
pages: PageRegistry | undefined,
|
|
37
|
+
url: URL,
|
|
38
|
+
): string | null {
|
|
39
|
+
if (!pages) return null;
|
|
40
|
+
const route = parseUrl(pages, url.pathname, url.search);
|
|
41
|
+
if (!route) return null;
|
|
42
|
+
return pages[route.routeName]?.robots ?? null;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/** The identity of a head tag: `<title>`, a meta name/property, or a link rel. */
|
|
46
|
+
function tagKey(tag: string): string | null {
|
|
47
|
+
if (/^<title[\s>]/i.test(tag)) return 'title';
|
|
48
|
+
const attr = (name: string): string | undefined =>
|
|
49
|
+
new RegExp(`\\b${name}=["']([^"']+)["']`, 'i').exec(tag)?.[1];
|
|
50
|
+
if (/^<meta\b/i.test(tag)) {
|
|
51
|
+
const n = attr('name') ?? attr('property');
|
|
52
|
+
return n ? `meta:${n.toLowerCase()}` : null;
|
|
53
|
+
}
|
|
54
|
+
if (/^<link\b/i.test(tag)) {
|
|
55
|
+
const rel = attr('rel');
|
|
56
|
+
return rel === 'canonical' ? 'link:canonical' : null;
|
|
57
|
+
}
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
const HEAD_TAG = /<title>[\s\S]*?<\/title>|<meta\b[^>]*>|<link\b[^>]*>/gi;
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Write `tags` into the document head, REPLACING any existing tag with the same
|
|
65
|
+
* identity (title, meta name/property, canonical link) rather than adding a
|
|
66
|
+
* second. Two `og:image`s or two descriptions leave the choice to whichever
|
|
67
|
+
* crawler reads which one first.
|
|
68
|
+
*/
|
|
69
|
+
export function upsertHeadTags(html: string, tags: string[]): string {
|
|
70
|
+
const headEnd = html.indexOf('</head>');
|
|
71
|
+
if (headEnd === -1) return tags.join('') + html;
|
|
72
|
+
const keys = new Set(tags.map(tagKey).filter((k): k is string => !!k));
|
|
73
|
+
const head = html.slice(0, headEnd).replace(HEAD_TAG, (t) => {
|
|
74
|
+
const k = tagKey(t);
|
|
75
|
+
return k && keys.has(k) ? '' : t;
|
|
76
|
+
});
|
|
77
|
+
return head + tags.join('') + html.slice(headEnd);
|
|
78
|
+
}
|
|
@@ -43,6 +43,7 @@ import {
|
|
|
43
43
|
ssrCacheControl,
|
|
44
44
|
ssrCacheTags,
|
|
45
45
|
} from './edgeCache.js';
|
|
46
|
+
import { robotsFor, staticAssetPath, upsertHeadTags } from './seo.js';
|
|
46
47
|
|
|
47
48
|
/**
|
|
48
49
|
* Set `<NO_SPA_FALLBACK_HEADER>: '1'` on a raw route's 404 to keep it a 404 instead
|
|
@@ -226,6 +227,13 @@ function guessContentType(path: string): string {
|
|
|
226
227
|
if (lower.endsWith('.woff')) return 'font/woff';
|
|
227
228
|
if (lower.endsWith('.ttf')) return 'font/ttf';
|
|
228
229
|
if (lower.endsWith('.map')) return 'application/json; charset=utf-8';
|
|
230
|
+
if (lower.endsWith('.txt')) return 'text/plain; charset=utf-8';
|
|
231
|
+
if (lower.endsWith('.xml')) return 'application/xml; charset=utf-8';
|
|
232
|
+
if (lower.endsWith('.avif')) return 'image/avif';
|
|
233
|
+
if (lower.endsWith('.otf')) return 'font/otf';
|
|
234
|
+
if (lower.endsWith('.pdf')) return 'application/pdf';
|
|
235
|
+
if (lower.endsWith('.mp4')) return 'video/mp4';
|
|
236
|
+
if (lower.endsWith('.webm')) return 'video/webm';
|
|
229
237
|
return 'application/octet-stream';
|
|
230
238
|
}
|
|
231
239
|
|
|
@@ -382,17 +390,17 @@ function escapeAttr(s: string): string {
|
|
|
382
390
|
* reason this exists: it retires the user-agent sniffing that used to be the
|
|
383
391
|
* only way to hand a crawler a social card.
|
|
384
392
|
*/
|
|
385
|
-
function injectMeta(
|
|
393
|
+
function injectMeta(
|
|
394
|
+
html: string,
|
|
395
|
+
meta: SsrMeta,
|
|
396
|
+
canonicalUrl: string,
|
|
397
|
+
robots: string | null = null,
|
|
398
|
+
): string {
|
|
386
399
|
const tags: string[] = [];
|
|
387
400
|
const push = (t: string): number => tags.push(t);
|
|
388
401
|
|
|
389
|
-
let out = html;
|
|
390
402
|
if (meta.title) {
|
|
391
|
-
|
|
392
|
-
out = /<title>[\s\S]*?<\/title>/.test(out)
|
|
393
|
-
? out.replace(/<title>[\s\S]*?<\/title>/, titleTag)
|
|
394
|
-
: out;
|
|
395
|
-
if (!out.includes(titleTag)) push(titleTag);
|
|
403
|
+
push(`<title>${escapeAttr(meta.title)}</title>`);
|
|
396
404
|
push(`<meta property="og:title" content="${escapeAttr(meta.title)}">`);
|
|
397
405
|
}
|
|
398
406
|
if (meta.description) {
|
|
@@ -412,8 +420,12 @@ function injectMeta(html: string, meta: SsrMeta, canonicalUrl: string): string {
|
|
|
412
420
|
);
|
|
413
421
|
push(`<meta property="og:url" content="${escapeAttr(canonicalUrl)}">`);
|
|
414
422
|
push(`<link rel="canonical" href="${escapeAttr(canonicalUrl)}">`);
|
|
423
|
+
if (robots) push(`<meta name="robots" content="${escapeAttr(robots)}">`);
|
|
415
424
|
|
|
416
|
-
|
|
425
|
+
// Replace, don't append: the app's index.html usually carries its own
|
|
426
|
+
// description and og:* defaults, and a second copy of each leaves the choice
|
|
427
|
+
// to whichever crawler reads which one first.
|
|
428
|
+
return upsertHeadTags(html, tags);
|
|
417
429
|
}
|
|
418
430
|
|
|
419
431
|
function injectIntoHead(html: string, scripts: string): string {
|
|
@@ -523,13 +535,13 @@ export function wrapWithAssets(
|
|
|
523
535
|
assetRest = path.slice(assetPrefix.length);
|
|
524
536
|
} else if (
|
|
525
537
|
isMethodIdempotent &&
|
|
526
|
-
(path.startsWith('/assets/') ||
|
|
527
|
-
path === '/favicon.ico' ||
|
|
528
|
-
/^\/[^/]+\.(?:png|svg|jpg|jpeg|gif|webp|woff2?|ttf|ico|map)$/i.test(
|
|
529
|
-
path,
|
|
530
|
-
))
|
|
538
|
+
(path.startsWith('/assets/') || staticAssetPath(path) !== null)
|
|
531
539
|
) {
|
|
532
|
-
|
|
540
|
+
// Public files at any depth, text files included (robots.txt,
|
|
541
|
+
// sitemap.xml). Only root-level images used to match, so everything
|
|
542
|
+
// else was answered with the app page — a 200 of HTML where a crawler
|
|
543
|
+
// or an <img> expected a file.
|
|
544
|
+
assetRest = staticAssetPath(path) ?? path.slice(1);
|
|
533
545
|
immutable = assetRest.startsWith('assets/');
|
|
534
546
|
}
|
|
535
547
|
if (assetRest !== null) {
|
|
@@ -667,12 +679,17 @@ export function wrapWithAssets(
|
|
|
667
679
|
appCtx.pages ?? undefined,
|
|
668
680
|
env as unknown as Record<string, unknown>,
|
|
669
681
|
);
|
|
670
|
-
|
|
682
|
+
const robots = robotsFor(appCtx.pages ?? undefined, url);
|
|
683
|
+
const robotsHeader: Record<string, string> = robots
|
|
684
|
+
? { 'x-robots-tag': robots }
|
|
685
|
+
: {};
|
|
686
|
+
if ((decision.cacheable || decision.ssrUncached) && appCtx.ssrRender) {
|
|
671
687
|
// Collapse tracking params / trailing slash / query order onto ONE
|
|
672
688
|
// cache entry: the declarative cache keys on the raw path+query and
|
|
673
689
|
// can't be customized per request, so we redirect to the canonical URL
|
|
674
690
|
// instead. Only canonical URLs are ever rendered + cached.
|
|
675
691
|
if (
|
|
692
|
+
decision.cacheable &&
|
|
676
693
|
decision.canonicalPath &&
|
|
677
694
|
url.pathname + url.search !== decision.canonicalPath
|
|
678
695
|
) {
|
|
@@ -709,7 +726,7 @@ export function wrapWithAssets(
|
|
|
709
726
|
if (result) {
|
|
710
727
|
html = injectSSR(html, result.html, result.pageData);
|
|
711
728
|
if (result.meta) {
|
|
712
|
-
html = injectMeta(html, result.meta, canonicalUrl(url));
|
|
729
|
+
html = injectMeta(html, result.meta, canonicalUrl(url), robots);
|
|
713
730
|
}
|
|
714
731
|
appTags = result.tags ?? [];
|
|
715
732
|
ssrOk = true;
|
|
@@ -721,14 +738,19 @@ export function wrapWithAssets(
|
|
|
721
738
|
// A render failure must never be cached — no-store keeps it out.
|
|
722
739
|
return htmlResponse(
|
|
723
740
|
injectIntoHead(indexHtml, buildScript + buildPublicScripts()),
|
|
724
|
-
{ [CACHE_STATUS_HEADER]: 'BYPASS' },
|
|
741
|
+
{ [CACHE_STATUS_HEADER]: 'BYPASS', ...robotsHeader },
|
|
725
742
|
);
|
|
726
743
|
}
|
|
727
744
|
return new Response(html, {
|
|
728
745
|
status: 200,
|
|
729
746
|
headers: {
|
|
730
747
|
'content-type': 'text/html; charset=utf-8',
|
|
731
|
-
|
|
748
|
+
// A URL with ad params is rendered for this one visitor and never
|
|
749
|
+
// stored: caching it would mint an entry per click.
|
|
750
|
+
'cache-control': decision.ssrUncached
|
|
751
|
+
? 'private, no-store'
|
|
752
|
+
: ssrCacheControl(decision.ttl ?? 0),
|
|
753
|
+
...robotsHeader,
|
|
732
754
|
'cache-tag': ssrCacheTags(
|
|
733
755
|
decision.route?.routeName ?? '',
|
|
734
756
|
appTags,
|
|
@@ -747,6 +769,7 @@ export function wrapWithAssets(
|
|
|
747
769
|
const { scripts, clearAuthCookie } = await buildAuthInjection(request);
|
|
748
770
|
const extraHeaders: Record<string, string> = {
|
|
749
771
|
[CACHE_STATUS_HEADER]: 'BYPASS',
|
|
772
|
+
...robotsHeader,
|
|
750
773
|
};
|
|
751
774
|
if (clearAuthCookie) {
|
|
752
775
|
extraHeaders['Set-Cookie'] =
|
package/src/shared/Router.ts
CHANGED
|
@@ -32,6 +32,14 @@ export interface PageMeta {
|
|
|
32
32
|
* ugly.bot deploy following — so it uses `ssrCacheTimeout: 3600`.
|
|
33
33
|
*/
|
|
34
34
|
ssrCacheTimeout?: number;
|
|
35
|
+
/**
|
|
36
|
+
* A robots directive for this page, e.g. `'noindex, follow'`. Sent as an
|
|
37
|
+
* `X-Robots-Tag` header on every response for the route — the SPA shell and
|
|
38
|
+
* the SSR document alike — and as `<meta name="robots">` in SSR output. Use it
|
|
39
|
+
* to keep a page reachable but out of search results; `robots.txt` Disallow
|
|
40
|
+
* would stop crawlers seeing the directive at all.
|
|
41
|
+
*/
|
|
42
|
+
robots?: string;
|
|
35
43
|
}
|
|
36
44
|
|
|
37
45
|
/** Default edge TTL: effectively "until the next deploy moves the cache key". */
|
|
@@ -80,6 +88,7 @@ export function definePage<Params extends Record<string, unknown>>(
|
|
|
80
88
|
...(options.ssrCacheTimeout !== undefined
|
|
81
89
|
? { ssrCacheTimeout: options.ssrCacheTimeout }
|
|
82
90
|
: {}),
|
|
91
|
+
...(options.robots ? { robots: options.robots } : {}),
|
|
83
92
|
};
|
|
84
93
|
}
|
|
85
94
|
|