@plumix/core 0.3.0 → 0.4.0

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 (132) hide show
  1. package/dist/auth/bootstrap.d.ts.map +1 -1
  2. package/dist/auth/bootstrap.js +39 -22
  3. package/dist/auth/bootstrap.js.map +1 -1
  4. package/dist/cache/tags.d.ts.map +1 -1
  5. package/dist/cache/tags.js +9 -0
  6. package/dist/cache/tags.js.map +1 -1
  7. package/dist/db/errors.d.ts +8 -0
  8. package/dist/db/errors.d.ts.map +1 -1
  9. package/dist/db/errors.js +22 -0
  10. package/dist/db/errors.js.map +1 -1
  11. package/dist/db/index.d.ts +1 -1
  12. package/dist/db/index.d.ts.map +1 -1
  13. package/dist/db/index.js +1 -1
  14. package/dist/db/index.js.map +1 -1
  15. package/dist/db/schema/users.d.ts +57 -0
  16. package/dist/db/schema/users.d.ts.map +1 -1
  17. package/dist/db/schema/users.js +10 -2
  18. package/dist/db/schema/users.js.map +1 -1
  19. package/dist/debug-bar/template-node-label.d.ts.map +1 -1
  20. package/dist/debug-bar/template-node-label.js +8 -0
  21. package/dist/debug-bar/template-node-label.js.map +1 -1
  22. package/dist/index.d.ts +4 -4
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +2 -2
  25. package/dist/index.js.map +1 -1
  26. package/dist/plugin/manifest.d.ts +34 -0
  27. package/dist/plugin/manifest.d.ts.map +1 -1
  28. package/dist/plugin/manifest.js +1 -0
  29. package/dist/plugin/manifest.js.map +1 -1
  30. package/dist/plugin/setup-context.d.ts +10 -1
  31. package/dist/plugin/setup-context.d.ts.map +1 -1
  32. package/dist/plugin/setup-context.js +12 -0
  33. package/dist/plugin/setup-context.js.map +1 -1
  34. package/dist/route/compile.d.ts +21 -0
  35. package/dist/route/compile.d.ts.map +1 -1
  36. package/dist/route/compile.js +63 -1
  37. package/dist/route/compile.js.map +1 -1
  38. package/dist/route/current.d.ts +5 -3
  39. package/dist/route/current.d.ts.map +1 -1
  40. package/dist/route/date-range.d.ts +12 -0
  41. package/dist/route/date-range.d.ts.map +1 -0
  42. package/dist/route/date-range.js +39 -0
  43. package/dist/route/date-range.js.map +1 -0
  44. package/dist/route/intent.d.ts +7 -3
  45. package/dist/route/intent.d.ts.map +1 -1
  46. package/dist/route/match.d.ts +1 -0
  47. package/dist/route/match.d.ts.map +1 -1
  48. package/dist/route/match.js +1 -1
  49. package/dist/route/match.js.map +1 -1
  50. package/dist/route/render/build-resolved-entries.d.ts.map +1 -1
  51. package/dist/route/render/build-resolved-entries.js +6 -1
  52. package/dist/route/render/build-resolved-entries.js.map +1 -1
  53. package/dist/route/render/resolved-entry.d.ts +36 -0
  54. package/dist/route/render/resolved-entry.d.ts.map +1 -1
  55. package/dist/route/render/template-builders.d.ts +54 -2
  56. package/dist/route/render/template-builders.d.ts.map +1 -1
  57. package/dist/route/render/template-builders.js +63 -4
  58. package/dist/route/render/template-builders.js.map +1 -1
  59. package/dist/route/render/template-hierarchy.d.ts +17 -1
  60. package/dist/route/render/template-hierarchy.d.ts.map +1 -1
  61. package/dist/route/render/template-hierarchy.js +23 -0
  62. package/dist/route/render/template-hierarchy.js.map +1 -1
  63. package/dist/route/resolve.d.ts +3 -1
  64. package/dist/route/resolve.d.ts.map +1 -1
  65. package/dist/route/resolve.js +148 -4
  66. package/dist/route/resolve.js.map +1 -1
  67. package/dist/rpc/procedures/entry/create.d.ts +2 -2
  68. package/dist/rpc/procedures/entry/delete-permanent.d.ts +2 -2
  69. package/dist/rpc/procedures/entry/duplicate.d.ts +2 -2
  70. package/dist/rpc/procedures/entry/get.d.ts +2 -2
  71. package/dist/rpc/procedures/entry/index.d.ts +22 -22
  72. package/dist/rpc/procedures/entry/list.d.ts +2 -2
  73. package/dist/rpc/procedures/entry/publish.d.ts +2 -2
  74. package/dist/rpc/procedures/entry/restore.d.ts +2 -2
  75. package/dist/rpc/procedures/entry/revisions.d.ts +8 -8
  76. package/dist/rpc/procedures/entry/trash.d.ts +2 -2
  77. package/dist/rpc/procedures/entry/update.d.ts +2 -2
  78. package/dist/rpc/procedures/term/create.d.ts +2 -2
  79. package/dist/rpc/procedures/term/delete.d.ts +2 -2
  80. package/dist/rpc/procedures/term/get.d.ts +2 -2
  81. package/dist/rpc/procedures/term/index.d.ts +10 -10
  82. package/dist/rpc/procedures/term/list.d.ts +2 -2
  83. package/dist/rpc/procedures/term/update.d.ts +2 -2
  84. package/dist/rpc/procedures/user/delete.d.ts +2 -0
  85. package/dist/rpc/procedures/user/delete.d.ts.map +1 -1
  86. package/dist/rpc/procedures/user/disable.d.ts +2 -0
  87. package/dist/rpc/procedures/user/disable.d.ts.map +1 -1
  88. package/dist/rpc/procedures/user/enable.d.ts +2 -0
  89. package/dist/rpc/procedures/user/enable.d.ts.map +1 -1
  90. package/dist/rpc/procedures/user/get.d.ts +2 -0
  91. package/dist/rpc/procedures/user/get.d.ts.map +1 -1
  92. package/dist/rpc/procedures/user/index.d.ts +12 -0
  93. package/dist/rpc/procedures/user/index.d.ts.map +1 -1
  94. package/dist/rpc/procedures/user/invite.d.ts.map +1 -1
  95. package/dist/rpc/procedures/user/invite.js +28 -15
  96. package/dist/rpc/procedures/user/invite.js.map +1 -1
  97. package/dist/rpc/procedures/user/list.d.ts +2 -0
  98. package/dist/rpc/procedures/user/list.d.ts.map +1 -1
  99. package/dist/rpc/procedures/user/list.js +1 -0
  100. package/dist/rpc/procedures/user/list.js.map +1 -1
  101. package/dist/rpc/procedures/user/update.d.ts +2 -0
  102. package/dist/rpc/procedures/user/update.d.ts.map +1 -1
  103. package/dist/rpc/router.d.ts +44 -32
  104. package/dist/rpc/router.d.ts.map +1 -1
  105. package/dist/runtime/dispatcher.d.ts.map +1 -1
  106. package/dist/runtime/dispatcher.js +70 -6
  107. package/dist/runtime/dispatcher.js.map +1 -1
  108. package/dist/seo/feed.d.ts +19 -4
  109. package/dist/seo/feed.d.ts.map +1 -1
  110. package/dist/seo/feed.js +49 -12
  111. package/dist/seo/feed.js.map +1 -1
  112. package/dist/seo/head-defaults.d.ts.map +1 -1
  113. package/dist/seo/head-defaults.js +6 -3
  114. package/dist/seo/head-defaults.js.map +1 -1
  115. package/dist/template-registry.d.ts +31 -1
  116. package/dist/template-registry.d.ts.map +1 -1
  117. package/dist/test/default-theme.d.ts.map +1 -1
  118. package/dist/test/default-theme.js +3 -0
  119. package/dist/test/default-theme.js.map +1 -1
  120. package/dist/test/factories.d.ts +39 -21
  121. package/dist/test/factories.d.ts.map +1 -1
  122. package/dist/test/factories.js +1 -0
  123. package/dist/test/factories.js.map +1 -1
  124. package/dist/theme.d.ts +15 -7
  125. package/dist/theme.d.ts.map +1 -1
  126. package/dist/theme.js +9 -0
  127. package/dist/theme.js.map +1 -1
  128. package/dist/users/slug.d.ts +12 -0
  129. package/dist/users/slug.d.ts.map +1 -0
  130. package/dist/users/slug.js +32 -0
  131. package/dist/users/slug.js.map +1 -0
  132. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"current.d.ts","sourceRoot":"","sources":["../../src/route/current.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7D;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,UAAU,EACf,MAAM,EAAE,aAAa,GACpB,OAAO,CAOT"}
1
+ {"version":3,"file":"current.d.ts","sourceRoot":"","sources":["../../src/route/current.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7D;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,UAAU,EACf,MAAM,EAAE,aAAa,GACpB,OAAO,CAOT"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * The half-open `[start, end)` UTC instant range a `/YYYY[/MM[/DD]]` archive
3
+ * covers, or `null` when the components don't form a real date (month 13,
4
+ * Feb 30, …) so the caller 404s. `month`/`day` are 1-based; `null` = a coarser
5
+ * granularity (a year has `month`/`day` null). Shared by the date-archive
6
+ * resolver and the date feed so both agree on boundaries and validation.
7
+ */
8
+ export declare function dateRange(year: number, month: number | null, day: number | null): {
9
+ readonly start: Date;
10
+ readonly end: Date;
11
+ } | null;
12
+ //# sourceMappingURL=date-range.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-range.d.ts","sourceRoot":"","sources":["../../src/route/date-range.ts"],"names":[],"mappings":"AAUA;;;;;;GAMG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB;IAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAA;CAAE,GAAG,IAAI,CAsBrD"}
@@ -0,0 +1,39 @@
1
+ // Midnight UTC for the given components, via `setUTCFullYear` rather than
2
+ // `Date.UTC`/`new Date(y, …)` — the latter two remap a 0–99 year to 1900–1999,
3
+ // which would send `/0050` to 1950. `setUTCFullYear` takes the literal year and
4
+ // still overflows an out-of-range month/day, which the callers rely on.
5
+ function utcMidnight(year, monthIndex, day) {
6
+ const d = new Date(0);
7
+ d.setUTCFullYear(year, monthIndex, day);
8
+ return d;
9
+ }
10
+ /**
11
+ * The half-open `[start, end)` UTC instant range a `/YYYY[/MM[/DD]]` archive
12
+ * covers, or `null` when the components don't form a real date (month 13,
13
+ * Feb 30, …) so the caller 404s. `month`/`day` are 1-based; `null` = a coarser
14
+ * granularity (a year has `month`/`day` null). Shared by the date-archive
15
+ * resolver and the date feed so both agree on boundaries and validation.
16
+ */
17
+ export function dateRange(year, month, day) {
18
+ if (month === null) {
19
+ return { start: utcMidnight(year, 0, 1), end: utcMidnight(year + 1, 0, 1) };
20
+ }
21
+ if (month < 1 || month > 12)
22
+ return null;
23
+ if (day === null) {
24
+ return {
25
+ start: utcMidnight(year, month - 1, 1),
26
+ end: utcMidnight(year, month, 1),
27
+ };
28
+ }
29
+ const start = utcMidnight(year, month - 1, day);
30
+ // An out-of-range day overflows into the next month; reject when the
31
+ // round-trip doesn't match, catching Feb 30, Apr 31, etc.
32
+ if (start.getUTCFullYear() !== year ||
33
+ start.getUTCMonth() !== month - 1 ||
34
+ start.getUTCDate() !== day) {
35
+ return null;
36
+ }
37
+ return { start, end: utcMidnight(year, month - 1, day + 1) };
38
+ }
39
+ //# sourceMappingURL=date-range.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-range.js","sourceRoot":"","sources":["../../src/route/date-range.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,+EAA+E;AAC/E,gFAAgF;AAChF,wEAAwE;AACxE,SAAS,WAAW,CAAC,IAAY,EAAE,UAAkB,EAAE,GAAW;IAChE,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;IACxC,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CACvB,IAAY,EACZ,KAAoB,EACpB,GAAkB;IAElB,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAC9E,CAAC;IACD,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;QACjB,OAAO;YACL,KAAK,EAAE,WAAW,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC;YACtC,GAAG,EAAE,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;SACjC,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;IAChD,qEAAqE;IACrE,0DAA0D;IAC1D,IACE,KAAK,CAAC,cAAc,EAAE,KAAK,IAAI;QAC/B,KAAK,CAAC,WAAW,EAAE,KAAK,KAAK,GAAG,CAAC;QACjC,KAAK,CAAC,UAAU,EAAE,KAAK,GAAG,EAC1B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;AAC/D,CAAC"}
@@ -3,9 +3,6 @@
3
3
  * into a Response by the public-route resolver. URL params (slug, term,
4
4
  * page) live on `RouteMatch.params`, not on the intent itself — the
5
5
  * intent describes the *route shape*, the match carries the request.
6
- *
7
- * `search` / `front-page` / `handler` / `redirect` land when a plugin
8
- * actually needs them.
9
6
  */
10
7
  export type RouteIntent = {
11
8
  readonly kind: "single";
@@ -16,10 +13,17 @@ export type RouteIntent = {
16
13
  } | {
17
14
  readonly kind: "taxonomy";
18
15
  readonly taxonomy: string;
16
+ } | {
17
+ readonly kind: "author";
18
+ } | {
19
+ readonly kind: "date";
19
20
  } | {
20
21
  readonly kind: "front-page";
21
22
  } | {
22
23
  readonly kind: "search";
24
+ } | {
25
+ readonly kind: "custom";
26
+ readonly name: string;
23
27
  };
24
28
  /**
25
29
  * Compiled rule. `priority` preserves arch-doc ordering semantics — lower
@@ -1 +1 @@
1
- {"version":3,"file":"intent.d.ts","sourceRoot":"","sources":["../../src/route/intent.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GAC/B;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEhC;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B"}
1
+ {"version":3,"file":"intent.d.ts","sourceRoot":"","sources":["../../src/route/intent.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GAC/B;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAI3B;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvD;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B"}
@@ -4,4 +4,5 @@ export interface RouteMatch {
4
4
  readonly params: Record<string, string>;
5
5
  }
6
6
  export declare function matchRoute(url: URL, rules: readonly RouteRule[]): RouteMatch | null;
7
+ export declare function extractParams(pathname: URLPatternComponentResult): Record<string, string>;
7
8
  //# sourceMappingURL=match.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"match.d.ts","sourceRoot":"","sources":["../../src/route/match.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE1D,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED,wBAAgB,UAAU,CACxB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,SAAS,SAAS,EAAE,GAC1B,UAAU,GAAG,IAAI,CAOnB"}
1
+ {"version":3,"file":"match.d.ts","sourceRoot":"","sources":["../../src/route/match.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE1D,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED,wBAAgB,UAAU,CACxB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,SAAS,SAAS,EAAE,GAC1B,UAAU,GAAG,IAAI,CAOnB;AAED,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,yBAAyB,GAClC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMxB"}
@@ -7,7 +7,7 @@ export function matchRoute(url, rules) {
7
7
  }
8
8
  return null;
9
9
  }
10
- function extractParams(pathname) {
10
+ export function extractParams(pathname) {
11
11
  const out = {};
12
12
  for (const [key, value] of Object.entries(pathname.groups)) {
13
13
  if (typeof value === "string")
@@ -1 +1 @@
1
- {"version":3,"file":"match.js","sourceRoot":"","sources":["../../src/route/match.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,UAAU,CACxB,GAAQ,EACR,KAA2B;IAE3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7D,IAAI,MAAM,KAAK,IAAI;YAAE,SAAS;QAC9B,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IACzE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,aAAa,CACpB,QAAmC;IAEnC,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3D,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAClD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"match.js","sourceRoot":"","sources":["../../src/route/match.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,UAAU,CACxB,GAAQ,EACR,KAA2B;IAE3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7D,IAAI,MAAM,KAAK,IAAI;YAAE,SAAS;QAC9B,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;IACzE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,QAAmC;IAEnC,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3D,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAClD,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"build-resolved-entries.d.ts","sourceRoot":"","sources":["../../../src/route/render/build-resolved-entries.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AASzD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,UAAU,EACf,IAAI,EAAE,SAAS,KAAK,EAAE,GACrB,OAAO,CAAC,SAAS,aAAa,EAAE,CAAC,CAqDnC"}
1
+ {"version":3,"file":"build-resolved-entries.d.ts","sourceRoot":"","sources":["../../../src/route/render/build-resolved-entries.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AASzD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,UAAU,EACf,IAAI,EAAE,SAAS,KAAK,EAAE,GACrB,OAAO,CAAC,SAAS,aAAa,EAAE,CAAC,CA0DnC"}
@@ -17,7 +17,12 @@ export async function buildResolvedEntries(ctx, rows) {
17
17
  const authorIds = Array.from(new Set(rows.map((r) => r.authorId)));
18
18
  const [authorRows, joinRows] = await Promise.all([
19
19
  ctx.db
20
- .select({ id: users.id, name: users.name, avatarUrl: users.avatarUrl })
20
+ .select({
21
+ id: users.id,
22
+ slug: users.slug,
23
+ name: users.name,
24
+ avatarUrl: users.avatarUrl,
25
+ })
21
26
  .from(users)
22
27
  .where(inArray(users.id, authorIds)),
23
28
  ctx.db
@@ -1 +1 @@
1
- {"version":3,"file":"build-resolved-entries.js","sourceRoot":"","sources":["../../../src/route/render/build-resolved-entries.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build-resolved-entries.js","sourceRoot":"","sources":["../../../src/route/render/build-resolved-entries.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import type { Term } from "../../db/schema/terms.js";
4
4
  /** Public-safe author projection — query select narrows away email + auth columns. */
5
5
  export interface ResolvedAuthor {
6
6
  readonly id: number;
7
+ readonly slug: string;
7
8
  readonly name: string | null;
8
9
  readonly avatarUrl: string | null;
9
10
  }
@@ -39,6 +40,29 @@ export interface TaxonomyData<TTerm extends ResolvedTerm = ResolvedTerm, TEntry
39
40
  readonly entries: readonly TEntry[];
40
41
  readonly pagination: Pagination;
41
42
  }
43
+ /**
44
+ * Payload for an author archive (`/authors/{slug}`). Carries the resolved author
45
+ * as the subject (like `TaxonomyData.term`) plus their published entries.
46
+ */
47
+ export interface AuthorArchiveData<TEntry extends ResolvedEntry = ResolvedEntry> {
48
+ readonly kind: "author";
49
+ readonly author: ResolvedAuthor;
50
+ readonly entries: readonly TEntry[];
51
+ readonly pagination: Pagination;
52
+ }
53
+ /**
54
+ * Payload for a date archive (`/YYYY[/MM[/DD]]`). `year` is always set;
55
+ * `month`/`day` are 1-based and `null` at a coarser granularity (a year archive
56
+ * has `month: null, day: null`).
57
+ */
58
+ export interface DateArchiveData<TEntry extends ResolvedEntry = ResolvedEntry> {
59
+ readonly kind: "date";
60
+ readonly year: number;
61
+ readonly month: number | null;
62
+ readonly day: number | null;
63
+ readonly entries: readonly TEntry[];
64
+ readonly pagination: Pagination;
65
+ }
42
66
  export interface FrontPageData<TEntry extends ResolvedEntry = ResolvedEntry> {
43
67
  readonly kind: "frontPage";
44
68
  readonly entries: readonly TEntry[];
@@ -50,6 +74,18 @@ export interface SearchData<TEntry extends ResolvedEntry = ResolvedEntry> {
50
74
  readonly entries: readonly TEntry[];
51
75
  readonly pagination: Pagination;
52
76
  }
77
+ /**
78
+ * Base payload for a plugin-registered archive (`registerArchiveType`). The
79
+ * `kind`/`name` discriminate it; a plugin extends this with its own fields
80
+ * (entries, pagination, whatever the archive lists) and declares the extended
81
+ * shape in `ArchiveTypeRegistry` so `forArchiveType(name)` types `data`. Core
82
+ * only ever sees the base — the resolver and template come from the plugin.
83
+ */
84
+ export interface CustomArchiveData {
85
+ readonly kind: "custom";
86
+ /** The registered archive-type name (`registerArchiveType(name, …)`). */
87
+ readonly name: string;
88
+ }
53
89
  /**
54
90
  * Payload threaded to a theme's `404` / `500` template. Public-safe by
55
91
  * shape — there is no Error field, so internal exception messages have
@@ -1 +1 @@
1
- {"version":3,"file":"resolved-entry.d.ts","sourceRoot":"","sources":["../../../src/route/render/resolved-entry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAErD,sFAAsF;AACtF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAKD,MAAM,WAAW,YAAa,SAAQ,IAAI;IACxC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAQD,MAAM,WAAW,aAAc,SAAQ,KAAK;IAC1C,QAAQ,CAAC,aAAa,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAMD,MAAM,WAAW,SAAS,CAAC,MAAM,SAAS,aAAa,GAAG,aAAa;IACrE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW,CAAC,MAAM,SAAS,aAAa,GAAG,aAAa;IACvE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC;AAED,MAAM,WAAW,YAAY,CAC3B,KAAK,SAAS,YAAY,GAAG,YAAY,EACzC,MAAM,SAAS,aAAa,GAAG,aAAa;IAE5C,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC;AAED,MAAM,WAAW,aAAa,CAAC,MAAM,SAAS,aAAa,GAAG,aAAa;IACzE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC;AAED,MAAM,WAAW,UAAU,CAAC,MAAM,SAAS,aAAa,GAAG,aAAa;IACtE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;CACjC;AAED;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB"}
1
+ {"version":3,"file":"resolved-entry.d.ts","sourceRoot":"","sources":["../../../src/route/render/resolved-entry.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import type { EntryProjection, EntryTypeName, MetaOf, TermProjection, TermTaxonomyName } from "../../template-registry.js";
1
+ import type { ArchiveDataOf, ArchiveTypeName, EntryProjection, EntryTypeName, MetaOf, TermMetaOf, TermProjection, TermTaxonomyName } from "../../template-registry.js";
2
2
  import type { TemplateData, TemplateEntry, TemplateRule, ThemeDescriptor } from "../../theme.js";
3
- import type { ArchiveData, EntryData, ErrorData, FrontPageData, SearchData, TaxonomyData } from "./resolved-entry.js";
3
+ import type { ArchiveData, AuthorArchiveData, DateArchiveData, EntryData, ErrorData, FrontPageData, SearchData, TaxonomyData } from "./resolved-entry.js";
4
4
  /** Universal catch-all — matches any resolved node. */
5
5
  export declare function fallback(template: TemplateEntry<TemplateData>): TemplateRule;
6
6
  /** A single entry (any type). */
@@ -9,6 +9,10 @@ export declare function entry(template: TemplateEntry<EntryData>): TemplateRule;
9
9
  export declare function archive(template: TemplateEntry<ArchiveData>): TemplateRule;
10
10
  /** A term archive (any taxonomy). */
11
11
  export declare function taxonomy(template: TemplateEntry<TaxonomyData>): TemplateRule;
12
+ /** An author archive (any author). */
13
+ export declare function author(template: TemplateEntry<AuthorArchiveData>): TemplateRule;
14
+ /** A date archive (any year/month/day). */
15
+ export declare function date(template: TemplateEntry<DateArchiveData>): TemplateRule;
12
16
  /** The static front page. */
13
17
  export declare function frontPage(template: TemplateEntry<FrontPageData>): TemplateRule;
14
18
  /** Search results. */
@@ -62,11 +66,59 @@ interface TermTaxonomyBuilder<K extends TermTaxonomyName> extends TaxonomySelect
62
66
  slug(slug: string): TaxonomySelector<K>;
63
67
  /** Narrow to one term by numeric id. */
64
68
  id(id: number): TaxonomySelector<K>;
69
+ /** Narrow by a term-meta value, typed against the taxonomy's meta projection. */
70
+ whereMeta<M extends keyof TermMetaOf<K>>(key: M, value: TermMetaOf<K>[M]): TaxonomySelector<K>;
71
+ /** Narrow by an arbitrary predicate over the resolved taxonomy data. */
72
+ where(predicate: (data: TaxonomyData<TermProjection<K>>) => boolean): TaxonomySelector<K>;
73
+ /** Register an author-selectable template, matched from stored term meta. */
74
+ named(id: string, label: string): TaxonomySelector<K>;
65
75
  }
66
76
  /**
67
77
  * Target a registered taxonomy. `name` autocompletes and rejects typos; the
68
78
  * template's `data.term` is typed from the taxonomy's term projection.
69
79
  */
70
80
  export declare function forTermTaxonomy<K extends TermTaxonomyName>(name: K): TermTaxonomyBuilder<K>;
81
+ interface AuthorSelector {
82
+ /** Bind the template for the selected author. */
83
+ template(t: TemplateEntry<AuthorArchiveData>): TemplateRule;
84
+ }
85
+ interface AuthorBuilder extends AuthorSelector {
86
+ /** Narrow to one author by slug. */
87
+ slug(slug: string): AuthorSelector;
88
+ /** Narrow to one author by numeric id. */
89
+ id(id: number): AuthorSelector;
90
+ }
91
+ /**
92
+ * Target author archives. There is a single author "kind" (no registry to
93
+ * autocomplete), so `forAuthor()` takes no name — chain `.slug(...)` / `.id(...)`
94
+ * to narrow to one author, mirroring `forEntryType` / `forTermTaxonomy`. The
95
+ * bare `.template()` matches every author archive (like the `author()` tier).
96
+ */
97
+ export declare function forAuthor(): AuthorBuilder;
98
+ interface DateSelector {
99
+ /** Bind the template for the selected period. */
100
+ template(t: TemplateEntry<DateArchiveData>): TemplateRule;
101
+ }
102
+ /**
103
+ * Target one date archive. Date components are hierarchical (a month has no
104
+ * meaning without a year), so `forDate` takes them positionally and matches the
105
+ * archive of that exact granularity: `forDate(2026)` → the year archive,
106
+ * `forDate(2026, 7)` → that month, `forDate(2026, 7, 21)` → that day. The
107
+ * generic `date()` tier styles every date archive.
108
+ */
109
+ export declare function forDate(year: number): DateSelector;
110
+ export declare function forDate(year: number, month: number): DateSelector;
111
+ export declare function forDate(year: number, month: number, day: number): DateSelector;
112
+ interface ArchiveTypeSelector<K extends ArchiveTypeName> {
113
+ /** Bind the template for the selected archive type. */
114
+ template(t: TemplateEntry<ArchiveDataOf<K>>): TemplateRule;
115
+ }
116
+ /**
117
+ * Target a plugin-registered archive type (`registerArchiveType`). `name`
118
+ * autocompletes against `ArchiveTypeRegistry` and types the template's `data`
119
+ * from the registered projection — the same shape as `forEntryType` /
120
+ * `forTermTaxonomy`, for archives that live in a plugin rather than core.
121
+ */
122
+ export declare function forArchiveType<K extends ArchiveTypeName>(name: K): ArchiveTypeSelector<K>;
71
123
  export {};
72
124
  //# sourceMappingURL=template-builders.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"template-builders.d.ts","sourceRoot":"","sources":["../../../src/route/render/template-builders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template-builders.d.ts","sourceRoot":"","sources":["../../../src/route/render/template-builders.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,14 @@ export function archive(template) {
22
22
  export function taxonomy(template) {
23
23
  return rule("taxonomy", template);
24
24
  }
25
+ /** An author archive (any author). */
26
+ export function author(template) {
27
+ return rule("author", template);
28
+ }
29
+ /** A date archive (any year/month/day). */
30
+ export function date(template) {
31
+ return rule("date", template);
32
+ }
25
33
  /** The static front page. */
26
34
  export function frontPage(template) {
27
35
  return rule("frontPage", template);
@@ -68,6 +76,10 @@ export const NAMED_TEMPLATE_META_KEY = "__plumix_template";
68
76
  function metaEquals(key, value) {
69
77
  return (data) => "entry" in data && data.entry.meta[key] === value;
70
78
  }
79
+ /** A predicate matching when a resolved term's meta value equals `value`. */
80
+ function termMetaEquals(key, value) {
81
+ return (data) => "term" in data && data.term.meta[key] === value;
82
+ }
71
83
  /**
72
84
  * Target a registered entry type. `name` autocompletes and rejects typos
73
85
  * (`keyof EntryTypeRegistry`); the template's `data.entry` is typed from the
@@ -100,14 +112,61 @@ export function forEntryType(name) {
100
112
  * template's `data.term` is typed from the taxonomy's term projection.
101
113
  */
102
114
  export function forTermTaxonomy(name) {
115
+ // Each selector adds its narrowing to the shared term-node prefix.
116
+ const term = (extra) => ({
117
+ template: (t) => matchRule({ nodeKind: "term", type: name, ...extra }, t),
118
+ });
103
119
  return {
104
120
  template: (t) => matchRule({ nodeKind: "term", type: name }, t),
105
- slug: (slug) => ({
106
- template: (t) => matchRule({ nodeKind: "term", type: name, slug }, t),
121
+ slug: (slug) => term({ slug }),
122
+ id: (id) => term({ id }),
123
+ whereMeta: (key, value) => term({ predicate: termMetaEquals(String(key), value) }),
124
+ where: (predicate) => term({
125
+ predicate: predicate,
107
126
  }),
108
- id: (id) => ({
109
- template: (t) => matchRule({ nodeKind: "term", type: name, id }, t),
127
+ named: (id, label) => term({
128
+ named: { id, label },
129
+ predicate: termMetaEquals(NAMED_TEMPLATE_META_KEY, id),
110
130
  }),
111
131
  };
112
132
  }
133
+ /**
134
+ * Target author archives. There is a single author "kind" (no registry to
135
+ * autocomplete), so `forAuthor()` takes no name — chain `.slug(...)` / `.id(...)`
136
+ * to narrow to one author, mirroring `forEntryType` / `forTermTaxonomy`. The
137
+ * bare `.template()` matches every author archive (like the `author()` tier).
138
+ */
139
+ export function forAuthor() {
140
+ // Each selector adds its narrowing to the shared author-node prefix.
141
+ const authorNode = (extra) => ({
142
+ template: (t) => matchRule({ nodeKind: "author", type: "author", ...extra }, t),
143
+ });
144
+ return {
145
+ template: (t) => matchRule({ nodeKind: "author", type: "author" }, t),
146
+ slug: (slug) => authorNode({ slug }),
147
+ id: (id) => authorNode({ id }),
148
+ };
149
+ }
150
+ export function forDate(year, month, day) {
151
+ return {
152
+ template: (t) => matchRule({
153
+ nodeKind: "date",
154
+ type: "date",
155
+ year,
156
+ ...(month !== undefined ? { month } : {}),
157
+ ...(day !== undefined ? { day } : {}),
158
+ }, t),
159
+ };
160
+ }
161
+ /**
162
+ * Target a plugin-registered archive type (`registerArchiveType`). `name`
163
+ * autocompletes against `ArchiveTypeRegistry` and types the template's `data`
164
+ * from the registered projection — the same shape as `forEntryType` /
165
+ * `forTermTaxonomy`, for archives that live in a plugin rather than core.
166
+ */
167
+ export function forArchiveType(name) {
168
+ return {
169
+ template: (t) => matchRule({ nodeKind: "custom", type: name }, t),
170
+ };
171
+ }
113
172
  //# sourceMappingURL=template-builders.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"template-builders.js","sourceRoot":"","sources":["../../../src/route/render/template-builders.ts"],"names":[],"mappings":"AAwBA,yEAAyE;AACzE,gFAAgF;AAChF,8EAA8E;AAC9E,6EAA6E;AAC7E,uEAAuE;AACvE,SAAS,IAAI,CACX,IAAiB,EACjB,QAA6B;IAE7B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAkD,EAAE,CAAC;AAChF,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,QAAQ,CAAC,QAAqC;IAC5D,OAAO,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED,iCAAiC;AACjC,MAAM,UAAU,KAAK,CAAC,QAAkC;IACtD,OAAO,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,OAAO,CAAC,QAAoC;IAC1D,OAAO,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,QAAQ,CAAC,QAAqC;IAC5D,OAAO,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED,6BAA6B;AAC7B,MAAM,UAAU,SAAS,CACvB,QAAsC;IAEtC,OAAO,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AACrC,CAAC;AAED,sBAAsB;AACtB,MAAM,UAAU,MAAM,CAAC,QAAmC;IACxD,OAAO,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED,uBAAuB;AACvB,MAAM,UAAU,QAAQ,CAAC,QAAkC;IACzD,OAAO,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED,uBAAuB;AACvB,MAAM,UAAU,WAAW,CAAC,QAAkC;IAC5D,OAAO,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,SAAuC;IAEvC,+EAA+E;IAC/E,iEAAiE;IACjE,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QAC7B,CAAC,CAAE,SAAqC;QACxC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAwC,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,+EAA+E;AAC/E,gFAAgF;AAChF,6EAA6E;AAC7E,gFAAgF;AAEhF,SAAS,SAAS,CAChB,KAAoB,EACpB,QAA6B;IAE7B,OAAO;QACL,KAAK;QACL,QAAQ,EAAE,QAAkD;KAC7D,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,mBAAmB,CAAC;AAE3D,6EAA6E;AAC7E,SAAS,UAAU,CACjB,GAAW,EACX,KAAc;IAEd,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC;AACrE,CAAC;AA6BD;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,IAAO;IAEP,sEAAsE;IACtE,MAAM,OAAO,GAAG,CAAC,KAA8B,EAAoB,EAAE,CAAC,CAAC;QACrE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CACd,SAAS,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC;KAC9D,CAAC,CAAC;IACH,OAAO;QACL,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAClE,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC;QACjC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;QAC3B,SAAS,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CACxB,OAAO,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QACxD,KAAK,EAAE,CAAC,SAAS,EAAE,EAAE,CACnB,OAAO,CAAC;YACN,SAAS,EAAE,SAAoD;SAChE,CAAC;QACJ,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CACnB,OAAO,CAAC;YACN,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE;YACpB,SAAS,EAAE,UAAU,CAAC,uBAAuB,EAAE,EAAE,CAAC;SACnD,CAAC;QACJ,OAAO,EAAE;YACP,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CACd,SAAS,CAAC,EAAE,QAAQ,EAAE,sBAAsB,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;SACjE;KACF,CAAC;AACJ,CAAC;AAgBD;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAO;IAEP,OAAO;QACL,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAC/D,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACf,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;SACtE,CAAC;QACF,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YACX,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;SACpE,CAAC;KACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"template-builders.js","sourceRoot":"","sources":["../../../src/route/render/template-builders.ts"],"names":[],"mappings":"AA6BA,yEAAyE;AACzE,gFAAgF;AAChF,8EAA8E;AAC9E,6EAA6E;AAC7E,uEAAuE;AACvE,SAAS,IAAI,CACX,IAAiB,EACjB,QAA6B;IAE7B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAkD,EAAE,CAAC;AAChF,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,QAAQ,CAAC,QAAqC;IAC5D,OAAO,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED,iCAAiC;AACjC,MAAM,UAAU,KAAK,CAAC,QAAkC;IACtD,OAAO,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,OAAO,CAAC,QAAoC;IAC1D,OAAO,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,QAAQ,CAAC,QAAqC;IAC5D,OAAO,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,MAAM,CACpB,QAA0C;IAE1C,OAAO,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED,2CAA2C;AAC3C,MAAM,UAAU,IAAI,CAAC,QAAwC;IAC3D,OAAO,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAChC,CAAC;AAED,6BAA6B;AAC7B,MAAM,UAAU,SAAS,CACvB,QAAsC;IAEtC,OAAO,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AACrC,CAAC;AAED,sBAAsB;AACtB,MAAM,UAAU,MAAM,CAAC,QAAmC;IACxD,OAAO,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED,uBAAuB;AACvB,MAAM,UAAU,QAAQ,CAAC,QAAkC;IACzD,OAAO,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED,uBAAuB;AACvB,MAAM,UAAU,WAAW,CAAC,QAAkC;IAC5D,OAAO,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,SAAuC;IAEvC,+EAA+E;IAC/E,iEAAiE;IACjE,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC;QAC7B,CAAC,CAAE,SAAqC;QACxC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAwC,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,+EAA+E;AAC/E,gFAAgF;AAChF,6EAA6E;AAC7E,gFAAgF;AAEhF,SAAS,SAAS,CAChB,KAAoB,EACpB,QAA6B;IAE7B,OAAO;QACL,KAAK;QACL,QAAQ,EAAE,QAAkD;KAC7D,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,mBAAmB,CAAC;AAE3D,6EAA6E;AAC7E,SAAS,UAAU,CACjB,GAAW,EACX,KAAc;IAEd,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC;AACrE,CAAC;AAED,6EAA6E;AAC7E,SAAS,cAAc,CACrB,GAAW,EACX,KAAc;IAEd,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC;AACnE,CAAC;AA6BD;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,IAAO;IAEP,sEAAsE;IACtE,MAAM,OAAO,GAAG,CAAC,KAA8B,EAAoB,EAAE,CAAC,CAAC;QACrE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CACd,SAAS,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC;KAC9D,CAAC,CAAC;IACH,OAAO;QACL,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAClE,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC;QACjC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC;QAC3B,SAAS,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CACxB,OAAO,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QACxD,KAAK,EAAE,CAAC,SAAS,EAAE,EAAE,CACnB,OAAO,CAAC;YACN,SAAS,EAAE,SAAoD;SAChE,CAAC;QACJ,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CACnB,OAAO,CAAC;YACN,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE;YACpB,SAAS,EAAE,UAAU,CAAC,uBAAuB,EAAE,EAAE,CAAC;SACnD,CAAC;QACJ,OAAO,EAAE;YACP,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CACd,SAAS,CAAC,EAAE,QAAQ,EAAE,sBAAsB,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;SACjE;KACF,CAAC;AACJ,CAAC;AA2BD;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAO;IAEP,mEAAmE;IACnE,MAAM,IAAI,GAAG,CAAC,KAA8B,EAAuB,EAAE,CAAC,CAAC;QACrE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC;KAC1E,CAAC,CAAC;IACH,OAAO;QACL,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAC/D,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;QAC9B,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;QACxB,SAAS,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CACxB,IAAI,CAAC,EAAE,SAAS,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QACzD,KAAK,EAAE,CAAC,SAAS,EAAE,EAAE,CACnB,IAAI,CAAC;YACH,SAAS,EAAE,SAAoD;SAChE,CAAC;QACJ,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CACnB,IAAI,CAAC;YACH,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE;YACpB,SAAS,EAAE,cAAc,CAAC,uBAAuB,EAAE,EAAE,CAAC;SACvD,CAAC;KACL,CAAC;AACJ,CAAC;AAcD;;;;;GAKG;AACH,MAAM,UAAU,SAAS;IACvB,qEAAqE;IACrE,MAAM,UAAU,GAAG,CAAC,KAA8B,EAAkB,EAAE,CAAC,CAAC;QACtE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CACd,SAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,CAAC,CAAC;KACjE,CAAC,CAAC;IACH,OAAO;QACL,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QACrE,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC;QACpC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC;KAC/B,CAAC;AACJ,CAAC;AAiBD,MAAM,UAAU,OAAO,CACrB,IAAY,EACZ,KAAc,EACd,GAAY;IAEZ,OAAO;QACL,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CACd,SAAS,CACP;YACE,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,MAAM;YACZ,IAAI;YACJ,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtC,EACD,CAAC,CACF;KACJ,CAAC;AACJ,CAAC;AAOD;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,IAAO;IAEP,OAAO;QACL,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;KAClE,CAAC;AACJ,CAAC"}
@@ -8,13 +8,29 @@
8
8
  * type + slug/id).
9
9
  */
10
10
  import type { TemplateData, TemplateRule } from "../../theme.js";
11
- export type ResolvedNode = ResolvedTermNode | ResolvedContentNode | ResolvedContentTypeArchive | ResolvedFrontPage | ResolvedSearch;
11
+ export type ResolvedNode = ResolvedTermNode | ResolvedContentNode | ResolvedContentTypeArchive | ResolvedAuthorNode | ResolvedDateNode | ResolvedCustomNode | ResolvedFrontPage | ResolvedSearch;
12
12
  interface ResolvedTermNode {
13
13
  readonly kind: "term";
14
14
  readonly taxonomy: string;
15
15
  readonly slug: string;
16
16
  readonly databaseId: number;
17
17
  }
18
+ interface ResolvedAuthorNode {
19
+ readonly kind: "author";
20
+ readonly slug: string;
21
+ readonly databaseId: number;
22
+ }
23
+ interface ResolvedDateNode {
24
+ readonly kind: "date";
25
+ readonly year: number;
26
+ readonly month: number | null;
27
+ readonly day: number | null;
28
+ }
29
+ interface ResolvedCustomNode {
30
+ readonly kind: "custom";
31
+ /** The registered archive-type name (`registerArchiveType`). */
32
+ readonly name: string;
33
+ }
18
34
  interface ResolvedContentNode {
19
35
  readonly kind: "content";
20
36
  readonly entryType: string;
@@ -1 +1 @@
1
- {"version":3,"file":"template-hierarchy.d.ts","sourceRoot":"","sources":["../../../src/route/render/template-hierarchy.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAGV,YAAY,EACZ,YAAY,EACb,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,YAAY,GACpB,gBAAgB,GAChB,mBAAmB,GACnB,0BAA0B,GAC1B,iBAAiB,GACjB,cAAc,CAAC;AAEnB,UAAU,gBAAgB;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,UAAU,0BAA0B;IAClC,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,UAAU,iBAAiB;IACzB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;CAC7B;AAED,UAAU,cAAc;IACtB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;CACzB;AAsDD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,YAAY,EAAE,EAC9B,IAAI,EAAE,YAAY,EAClB,IAAI,CAAC,EAAE,YAAY,GAClB,YAAY,GAAG,SAAS,CAW1B;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,YAAY,EAAE,EAC9B,IAAI,EAAE,UAAU,GAAG,aAAa,GAC/B,YAAY,GAAG,SAAS,CAE1B;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CASpD;AAED,iDAAiD;AACjD,KAAK,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,iBAAiB,CAAC;AAElE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;CAC5E;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;IAC1C,wEAAwE;IACxE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,SAAS,YAAY,EAAE,EAC9B,IAAI,EAAE,YAAY,EAClB,IAAI,CAAC,EAAE,YAAY,GAClB,eAAe,CAoCjB"}
1
+ {"version":3,"file":"template-hierarchy.d.ts","sourceRoot":"","sources":["../../../src/route/render/template-hierarchy.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAGV,YAAY,EACZ,YAAY,EACb,MAAM,gBAAgB,CAAC;AAExB,MAAM,MAAM,YAAY,GACpB,gBAAgB,GAChB,mBAAmB,GACnB,0BAA0B,GAC1B,kBAAkB,GAClB,gBAAgB,GAChB,kBAAkB,GAClB,iBAAiB,GACjB,cAAc,CAAC;AAEnB,UAAU,gBAAgB;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,UAAU,gBAAgB;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,gEAAgE;IAChE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,UAAU,mBAAmB;IAC3B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAED,UAAU,0BAA0B;IAClC,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,UAAU,iBAAiB;IACzB,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;CAC7B;AAED,UAAU,cAAc;IACtB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;CACzB;AAiFD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,YAAY,EAAE,EAC9B,IAAI,EAAE,YAAY,EAClB,IAAI,CAAC,EAAE,YAAY,GAClB,YAAY,GAAG,SAAS,CAW1B;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,YAAY,EAAE,EAC9B,IAAI,EAAE,UAAU,GAAG,aAAa,GAC/B,YAAY,GAAG,SAAS,CAE1B;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CASpD;AAED,iDAAiD;AACjD,KAAK,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,iBAAiB,CAAC;AAElE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;CAC5E;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;IAC1C,wEAAwE;IACxE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,SAAS,YAAY,EAAE,EAC9B,IAAI,EAAE,YAAY,EAClB,IAAI,CAAC,EAAE,YAAY,GAClB,eAAe,CAoCjB"}
@@ -14,6 +14,11 @@ const GENERIC_TIER_FOR_NODE = {
14
14
  content: "entry",
15
15
  "content-type-archive": "archive",
16
16
  term: "taxonomy",
17
+ author: "author",
18
+ date: "date",
19
+ // Plugin archives have no dedicated generic tier — they template via a
20
+ // `forArchiveType(name)` targeted rule, else the universal `fallback`.
21
+ custom: "fallback",
17
22
  "front-page": "frontPage",
18
23
  search: "search",
19
24
  };
@@ -35,6 +40,24 @@ function matchesIdentity(match, node) {
35
40
  return (match.type === node.taxonomy &&
36
41
  (match.slug === undefined || match.slug === node.slug) &&
37
42
  (match.id === undefined || match.id === node.databaseId));
43
+ case "author":
44
+ // Author matchers carry a fixed `type` of "author"; identity narrows by
45
+ // slug/id like a term.
46
+ return (match.type === "author" &&
47
+ (match.slug === undefined || match.slug === node.slug) &&
48
+ (match.id === undefined || match.id === node.databaseId));
49
+ case "date":
50
+ // Date matchers carry a fixed `type` of "date" and match one exact
51
+ // granularity: an unset component (`forDate(2026)` has no month/day)
52
+ // requires the node's component to be null, so a year matcher matches the
53
+ // year archive only, not that year's month/day archives.
54
+ return (match.type === "date" &&
55
+ match.year === node.year &&
56
+ (match.month ?? null) === node.month &&
57
+ (match.day ?? null) === node.day);
58
+ case "custom":
59
+ // A `forArchiveType(name)` matcher carries the archive-type name as `type`.
60
+ return match.type === node.name;
38
61
  default:
39
62
  return false;
40
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"template-hierarchy.js","sourceRoot":"","sources":["../../../src/route/render/template-hierarchy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template-hierarchy.js","sourceRoot":"","sources":["../../../src/route/render/template-hierarchy.ts"],"names":[],"mappings":"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"}
@@ -3,12 +3,14 @@ import type { RegisteredTemplateDep } from "../template-deps.js";
3
3
  import type { DocumentManifest, ThemeDescriptor } from "../theme.js";
4
4
  import type { RouteMatch } from "./match.js";
5
5
  import type { AssetManifest } from "./render/asset-manifest.js";
6
- import type { ArchiveData, EntryData, FrontPageData, SearchData, TaxonomyData } from "./render/resolved-entry.js";
6
+ import type { ArchiveData, AuthorArchiveData, DateArchiveData, EntryData, FrontPageData, SearchData, TaxonomyData } from "./render/resolved-entry.js";
7
7
  declare module "../hooks/types.js" {
8
8
  interface FilterRegistry {
9
9
  "resolve:single:data": (data: EntryData) => EntryData | Promise<EntryData>;
10
10
  "resolve:archive:data": (data: ArchiveData) => ArchiveData | Promise<ArchiveData>;
11
11
  "resolve:term:data": (data: TaxonomyData) => TaxonomyData | Promise<TaxonomyData>;
12
+ "resolve:author:data": (data: AuthorArchiveData) => AuthorArchiveData | Promise<AuthorArchiveData>;
13
+ "resolve:date:data": (data: DateArchiveData) => DateArchiveData | Promise<DateArchiveData>;
12
14
  "resolve:front-page:data": (data: FrontPageData) => FrontPageData | Promise<FrontPageData>;
13
15
  "resolve:search:data": (data: SearchData) => SearchData | Promise<SearchData>;
14
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/route/resolve.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAErE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,aAAa,EACb,UAAU,EACV,YAAY,EACb,MAAM,4BAA4B,CAAC;AAoBpC,OAAO,QAAQ,mBAAmB,CAAC;IACjC,UAAU,cAAc;QACtB,qBAAqB,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAC3E,sBAAsB,EAAE,CACtB,IAAI,EAAE,WAAW,KACd,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QACxC,mBAAmB,EAAE,CACnB,IAAI,EAAE,YAAY,KACf,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;QAC1C,yBAAyB,EAAE,CACzB,IAAI,EAAE,aAAa,KAChB,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;QAC5C,qBAAqB,EAAE,CACrB,IAAI,EAAE,UAAU,KACb,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;KACvC;CACF;AAaD,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,gBAAgB,EAC1B,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,qBAAqB,CAAC,EACxD,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,QAAQ,CAAC,CAmDnB"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/route/resolve.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAErE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,SAAS,EACT,aAAa,EACb,UAAU,EACV,YAAY,EACb,MAAM,4BAA4B,CAAC;AA+BpC,OAAO,QAAQ,mBAAmB,CAAC;IACjC,UAAU,cAAc;QACtB,qBAAqB,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAC3E,sBAAsB,EAAE,CACtB,IAAI,EAAE,WAAW,KACd,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QACxC,mBAAmB,EAAE,CACnB,IAAI,EAAE,YAAY,KACf,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;QAC1C,qBAAqB,EAAE,CACrB,IAAI,EAAE,iBAAiB,KACpB,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;QACpD,mBAAmB,EAAE,CACnB,IAAI,EAAE,eAAe,KAClB,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;QAChD,yBAAyB,EAAE,CACzB,IAAI,EAAE,aAAa,KAChB,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;QAC5C,qBAAqB,EAAE,CACrB,IAAI,EAAE,UAAU,KACb,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;KACvC;CACF;AAyBD,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,UAAU,EACf,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,gBAAgB,EAC1B,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,qBAAqB,CAAC,EACxD,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,QAAQ,CAAC,CA+EnB"}