@stackbox/cms 0.0.5 → 0.1.1

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 (119) hide show
  1. package/README.md +158 -10
  2. package/dist/AGENTS.md +218 -0
  3. package/dist/blocks.d.ts +6 -13
  4. package/dist/blocks.d.ts.map +1 -1
  5. package/dist/blocks.js +2 -0
  6. package/dist/blocks.js.map +1 -1
  7. package/dist/build.d.ts +14 -0
  8. package/dist/build.d.ts.map +1 -0
  9. package/dist/build.js +145 -0
  10. package/dist/build.js.map +1 -0
  11. package/dist/cache.d.ts +14 -0
  12. package/dist/cache.d.ts.map +1 -0
  13. package/dist/cache.js +93 -0
  14. package/dist/cache.js.map +1 -0
  15. package/dist/cli.d.ts +3 -0
  16. package/dist/cli.d.ts.map +1 -0
  17. package/dist/cli.js +16 -0
  18. package/dist/cli.js.map +1 -0
  19. package/dist/index.d.ts +12 -8
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +3 -0
  22. package/dist/index.js.map +1 -1
  23. package/dist/link.d.ts +3 -7
  24. package/dist/link.d.ts.map +1 -1
  25. package/dist/link.js +12 -19
  26. package/dist/link.js.map +1 -1
  27. package/dist/merge-hooks.d.ts +3 -0
  28. package/dist/merge-hooks.d.ts.map +1 -0
  29. package/dist/merge-hooks.js +54 -0
  30. package/dist/merge-hooks.js.map +1 -0
  31. package/dist/pages.d.ts +15 -46
  32. package/dist/pages.d.ts.map +1 -1
  33. package/dist/pages.js +2 -0
  34. package/dist/pages.js.map +1 -1
  35. package/dist/plugin.d.ts +22 -0
  36. package/dist/plugin.d.ts.map +1 -0
  37. package/dist/plugin.js +156 -0
  38. package/dist/plugin.js.map +1 -0
  39. package/dist/plugins/blog/index.d.ts +6 -5
  40. package/dist/plugins/blog/index.d.ts.map +1 -1
  41. package/dist/plugins/blog/index.js +16 -0
  42. package/dist/plugins/blog/index.js.map +1 -1
  43. package/dist/plugins/random-quote/assets/quotes.json +230 -0
  44. package/dist/plugins/random-quote/index.d.ts +3 -1
  45. package/dist/plugins/random-quote/index.d.ts.map +1 -1
  46. package/dist/plugins/random-quote/index.js +15 -1
  47. package/dist/plugins/random-quote/index.js.map +1 -1
  48. package/dist/plugins/sitemap/index.d.ts +14 -0
  49. package/dist/plugins/sitemap/index.d.ts.map +1 -0
  50. package/dist/plugins/sitemap/index.js +119 -0
  51. package/dist/plugins/sitemap/index.js.map +1 -0
  52. package/dist/render-head.d.ts +2 -2
  53. package/dist/render-head.d.ts.map +1 -1
  54. package/dist/render-page.d.ts +2 -4
  55. package/dist/render-page.d.ts.map +1 -1
  56. package/dist/render-page.js +7 -3
  57. package/dist/render-page.js.map +1 -1
  58. package/dist/site.d.ts +10 -17
  59. package/dist/site.d.ts.map +1 -1
  60. package/dist/site.js +155 -7
  61. package/dist/site.js.map +1 -1
  62. package/dist/slot-content.d.ts +3 -19
  63. package/dist/slot-content.d.ts.map +1 -1
  64. package/dist/slot-content.js.map +1 -1
  65. package/dist/slot-handle.d.ts +7 -25
  66. package/dist/slot-handle.d.ts.map +1 -1
  67. package/dist/slot-handle.js +29 -14
  68. package/dist/slot-handle.js.map +1 -1
  69. package/dist/stackbox/context.d.ts +2 -51
  70. package/dist/stackbox/context.d.ts.map +1 -1
  71. package/dist/stackbox/context.js.map +1 -1
  72. package/dist/templates.d.ts +7 -57
  73. package/dist/templates.d.ts.map +1 -1
  74. package/dist/templates.js.map +1 -1
  75. package/dist/types.d.ts +281 -0
  76. package/dist/types.d.ts.map +1 -0
  77. package/dist/types.js +2 -0
  78. package/dist/types.js.map +1 -0
  79. package/package.json +17 -6
  80. package/src/plugins/blog/AGENTS.md +5 -1
  81. package/src/plugins/blog/index.ts +22 -5
  82. package/src/plugins/random-quote/AGENTS.md +30 -7
  83. package/src/plugins/random-quote/index.ts +17 -1
  84. package/src/plugins/random-quote/public_assets/widget.css +5 -0
  85. package/src/plugins/sitemap/AGENTS.md +82 -0
  86. package/src/plugins/sitemap/index.ts +156 -0
  87. package/AGENTS.md +0 -87
  88. package/dist/modules/blog/module.d.ts +0 -20
  89. package/dist/modules/blog/module.d.ts.map +0 -1
  90. package/dist/modules/blog/module.js +0 -52
  91. package/dist/modules/blog/module.js.map +0 -1
  92. package/dist/modules/blog/posts.d.ts +0 -15
  93. package/dist/modules/blog/posts.d.ts.map +0 -1
  94. package/dist/modules/blog/posts.js +0 -46
  95. package/dist/modules/blog/posts.js.map +0 -1
  96. package/dist/modules.d.ts +0 -18
  97. package/dist/modules.d.ts.map +0 -1
  98. package/dist/modules.js +0 -25
  99. package/dist/modules.js.map +0 -1
  100. package/dist/plugins/blog/module.d.ts +0 -20
  101. package/dist/plugins/blog/module.d.ts.map +0 -1
  102. package/dist/plugins/blog/module.js +0 -52
  103. package/dist/plugins/blog/module.js.map +0 -1
  104. package/dist/plugins/blog/plugin.d.ts +0 -20
  105. package/dist/plugins/blog/plugin.d.ts.map +0 -1
  106. package/dist/plugins/blog/plugin.js +0 -52
  107. package/dist/plugins/blog/plugin.js.map +0 -1
  108. package/dist/plugins/random-quote/module.d.ts +0 -9
  109. package/dist/plugins/random-quote/module.d.ts.map +0 -1
  110. package/dist/plugins/random-quote/module.js +0 -31
  111. package/dist/plugins/random-quote/module.js.map +0 -1
  112. package/dist/plugins/random-quote/plugin.d.ts +0 -8
  113. package/dist/plugins/random-quote/plugin.d.ts.map +0 -1
  114. package/dist/plugins/random-quote/plugin.js +0 -31
  115. package/dist/plugins/random-quote/plugin.js.map +0 -1
  116. package/dist/plugins/random-quote/quotes.json +0 -230
  117. package/dist/public/_sb/plugins/random-quote/quotes.json +0 -230
  118. package/src/plugins/random-quote/public_assets/quotes.json +0 -230
  119. /package/{dist/plugins/random-quote/public_assets → src/plugins/random-quote/assets}/quotes.json +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/stackbox/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/stackbox/context.ts"],"names":[],"mappings":"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"}
@@ -1,63 +1,13 @@
1
1
  import { type HSHtml } from "@hyperspan/html";
2
- import type { z } from "zod";
3
- import { type SiteConfig } from "./site.js";
4
- import type { PageRenderView } from "./pages.js";
5
- import { type TemplateSlotsFrom } from "./slot-handle.js";
6
- export type SlotOptions = {
7
- required?: boolean;
8
- primary?: true;
9
- schema?: z.ZodTypeAny;
10
- };
11
- export type SlotDefinition = {
12
- name: string;
13
- options?: SlotOptions;
14
- };
15
- export type SlotMeta = {
16
- isDefault: boolean;
17
- required: boolean;
18
- schema?: z.ZodTypeAny;
19
- };
20
- export type TemplateRenderContext<S extends readonly SlotDefinition[] = readonly SlotDefinition[]> = {
21
- head?: HSHtml;
22
- siteConfig: SiteConfig;
23
- page: PageRenderView;
24
- slots: TemplateSlotsFrom<S>;
25
- };
26
- /** Widened render signature stored on descriptors at runtime. */
27
- export type TemplateRenderFn = (ctx: {
28
- head?: HSHtml;
29
- siteConfig: SiteConfig;
30
- page: PageRenderView;
31
- slots: Record<string, import("./slot-handle.js").Slot>;
32
- }) => HSHtml;
33
- export type TemplateDescriptor<Slots extends string = string, RequiredSlots extends Slots = never, Definitions extends readonly SlotDefinition[] = readonly SlotDefinition[]> = {
34
- readonly __kind: "template";
35
- siteConfig: SiteConfig;
36
- formatPageTitle: (title: string) => string;
37
- render: TemplateRenderFn;
38
- slots: Record<Slots, SlotMeta>;
39
- requiredSlots: readonly RequiredSlots[];
40
- readonly __definitions?: Definitions;
41
- };
42
- export type SlotNamesFrom<S extends readonly SlotDefinition[]> = S[number]["name"];
43
- export type RequiredSlotNamesFrom<S extends readonly SlotDefinition[]> = Extract<S[number], {
44
- options: {
45
- required: true;
46
- };
47
- } | {
48
- options: {
49
- primary: true;
50
- };
51
- }>["name"];
52
- export declare function isTemplate(value: unknown): value is TemplateDescriptor;
2
+ import type { Stackbox as SB } from "./types.js";
3
+ export declare function isTemplate(value: unknown): value is SB.TemplateDescriptor;
53
4
  export declare class TemplateBuildError extends Error {
54
5
  constructor(message: string);
55
6
  }
56
- export declare function createTemplate<const S extends readonly SlotDefinition[]>(def: {
57
- siteConfig: SiteConfig;
7
+ export declare function createTemplate<const S extends readonly SB.SlotDefinition[]>(def: {
8
+ siteConfig: SB.SiteConfig;
58
9
  slots: S;
59
- title?: (pageTitle: string, siteConfig: SiteConfig) => string;
60
- render: (ctx: TemplateRenderContext<S>) => HSHtml;
61
- }): TemplateDescriptor<SlotNamesFrom<S>, RequiredSlotNamesFrom<S>, S>;
62
- export type { Slot, TemplateSlotsFrom } from "./slot-handle.js";
10
+ title?: (pageTitle: string, siteConfig: SB.SiteConfig) => string;
11
+ render: (ctx: SB.TemplateRenderContext<S>) => HSHtml;
12
+ }): SB.TemplateDescriptor<SB.SlotNamesFrom<S>, SB.RequiredSlotNamesFrom<S>, S>;
63
13
  //# sourceMappingURL=templates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAGL,KAAK,iBAAiB,EACvB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,MAAM,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,qBAAqB,CAC/B,CAAC,SAAS,SAAS,cAAc,EAAE,GAAG,SAAS,cAAc,EAAE,IAC7D;IACF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,UAAU,CAAC;IACvB,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;CAC7B,CAAC;AAEF,iEAAiE;AACjE,MAAM,MAAM,gBAAgB,GAAG,CAAC,GAAG,EAAE;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,UAAU,CAAC;IACvB,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,kBAAkB,EAAE,IAAI,CAAC,CAAC;CACxD,KAAK,MAAM,CAAC;AAEb,MAAM,MAAM,kBAAkB,CAC5B,KAAK,SAAS,MAAM,GAAG,MAAM,EAC7B,aAAa,SAAS,KAAK,GAAG,KAAK,EACnC,WAAW,SAAS,SAAS,cAAc,EAAE,GAAG,SAAS,cAAc,EAAE,IACvE;IACF,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,UAAU,EAAE,UAAU,CAAC;IACvB,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,MAAM,EAAE,gBAAgB,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC/B,aAAa,EAAE,SAAS,aAAa,EAAE,CAAC;IACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,WAAW,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,SAAS,cAAc,EAAE,IAC3D,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;AAEpB,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,SAAS,cAAc,EAAE,IACnE,OAAO,CACL,CAAC,CAAC,MAAM,CAAC,EACT;IAAE,OAAO,EAAE;QAAE,QAAQ,EAAE,IAAI,CAAA;KAAE,CAAA;CAAE,GAAG;IAAE,OAAO,EAAE;QAAE,OAAO,EAAE,IAAI,CAAA;KAAE,CAAA;CAAE,CACjE,CAAC,MAAM,CAAC,CAAC;AAEZ,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAYtE;AAiBD,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAI5B;AAgED,wBAAgB,cAAc,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,cAAc,EAAE,EACtE,GAAG,EAAE;IACH,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,KAAK,MAAM,CAAC;IAC9D,MAAM,EAAE,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;CACnD,GACA,kBAAkB,CACnB,aAAa,CAAC,CAAC,CAAC,EAChB,qBAAqB,CAAC,CAAC,CAAC,EACxB,CAAC,CACF,CAmDA;AAED,YAAY,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAOtD,OAAO,KAAK,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,YAAY,CAAC;AAEjD,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,EAAE,CAAC,kBAAkB,CAYzE;AAiBD,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,OAAO,EAAE,MAAM;CAI5B;AAgED,wBAAgB,cAAc,CAAC,KAAK,CAAC,CAAC,SAAS,SAAS,EAAE,CAAC,cAAc,EAAE,EACzE,GAAG,EAAE;IACH,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC;IAC1B,KAAK,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,KAAK,MAAM,CAAC;IACjE,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;CACtD,GACA,EAAE,CAAC,kBAAkB,CACtB,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EACnB,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAC3B,CAAC,CACF,CAmDA"}
@@ -1 +1 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../src/templates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,281 @@
1
+ import { html, type HSHtml } from "@hyperspan/html";
2
+ import type { z } from "zod";
3
+ type HtmlSafe = ReturnType<typeof html.raw>;
4
+ export declare namespace Stackbox {
5
+ type CookieOptions = {
6
+ maxAge?: number;
7
+ domain?: string;
8
+ path?: string;
9
+ expires?: Date;
10
+ httpOnly?: boolean;
11
+ secure?: boolean;
12
+ sameSite?: "lax" | "strict" | true;
13
+ };
14
+ type Cookies = {
15
+ _req: globalThis.Request;
16
+ _responseHeaders: Headers | undefined;
17
+ _parsedCookies: Record<string, string>;
18
+ _encrypt: ((str: string) => string) | undefined;
19
+ _decrypt: ((str: string) => string) | undefined;
20
+ get: (name: string) => string | undefined;
21
+ set: (name: string, value: string, options?: CookieOptions) => void;
22
+ delete: (name: string) => void;
23
+ };
24
+ type Request = {
25
+ url: URL;
26
+ raw: globalThis.Request;
27
+ method: string;
28
+ headers: Headers;
29
+ query: URLSearchParams;
30
+ cookies: Cookies;
31
+ text: () => Promise<string>;
32
+ json: <T = unknown>() => Promise<T>;
33
+ formData: () => Promise<FormData>;
34
+ urlencoded: () => Promise<URLSearchParams>;
35
+ };
36
+ type Response = {
37
+ cookies: Cookies;
38
+ headers: Headers;
39
+ status: number | undefined;
40
+ html: (html: string, options?: ResponseInit) => Promise<globalThis.Response>;
41
+ json: (json: unknown, options?: ResponseInit) => Promise<globalThis.Response>;
42
+ text: (text: string, options?: ResponseInit) => Promise<globalThis.Response>;
43
+ redirect: (url: string, options?: ResponseInit) => Promise<globalThis.Response>;
44
+ error: (error: Error, options?: ResponseInit) => Promise<globalThis.Response>;
45
+ notFound: (options?: ResponseInit) => Promise<globalThis.Response>;
46
+ merge: (response: globalThis.Response) => Promise<globalThis.Response>;
47
+ };
48
+ interface Context<TEnv extends Record<string, unknown> = Record<string, unknown>> {
49
+ env: TEnv;
50
+ req: Request;
51
+ res: Response;
52
+ }
53
+ type CacheBounds = {
54
+ min?: number;
55
+ max?: number;
56
+ };
57
+ type CacheConfig = CacheBounds | false;
58
+ type CacheEntry = {
59
+ html: string;
60
+ expiresAt: number;
61
+ };
62
+ type CacheAdapter = {
63
+ get(key: string): CacheEntry | undefined | Promise<CacheEntry | undefined>;
64
+ set(key: string, entry: CacheEntry): void | Promise<void>;
65
+ };
66
+ type SiteConfig<T extends Record<string, unknown> = Record<string, unknown>> = {
67
+ readonly __kind: "siteConfig";
68
+ readonly config: T;
69
+ };
70
+ type BlockRenderResult = HSHtml | Promise<HSHtml>;
71
+ type RenderContext = {
72
+ siteConfig: SiteConfig;
73
+ ctx?: Context;
74
+ page?: SitePage;
75
+ hooks?: SiteHooks;
76
+ };
77
+ type Block = {
78
+ readonly __kind: "block";
79
+ readonly name: string;
80
+ readonly cache?: CacheConfig;
81
+ readonly source?: string;
82
+ render(ctx: RenderContext): BlockRenderResult;
83
+ };
84
+ type BlockOptionsOf<F> = F extends (options?: infer O) => unknown ? [O] extends [undefined] ? undefined : O : never;
85
+ type BlockFactory<TOptions = undefined> = (options?: TOptions) => Block;
86
+ type DefaultSlotContent = Block | string;
87
+ type SlotOptions = {
88
+ required?: boolean;
89
+ primary?: true;
90
+ schema?: z.ZodTypeAny;
91
+ };
92
+ type SlotDefinition = {
93
+ name: string;
94
+ options?: SlotOptions;
95
+ };
96
+ type SlotMeta = {
97
+ isDefault: boolean;
98
+ required: boolean;
99
+ schema?: z.ZodTypeAny;
100
+ };
101
+ type SlotNamesFrom<S extends readonly SlotDefinition[]> = S[number]["name"];
102
+ type RequiredSlotNamesFrom<S extends readonly SlotDefinition[]> = Extract<S[number], {
103
+ options: {
104
+ required: true;
105
+ };
106
+ } | {
107
+ options: {
108
+ primary: true;
109
+ };
110
+ }>["name"];
111
+ type SlotContentFromDefinition<D extends SlotDefinition> = D extends {
112
+ options: {
113
+ schema: infer Schema extends z.ZodTypeAny;
114
+ };
115
+ } ? z.input<Schema> : DefaultSlotContent;
116
+ type PageSlotsInput<S extends readonly SlotDefinition[], Required extends string> = {
117
+ [K in Required]: SlotContentFromDefinition<Extract<S[number], {
118
+ name: K;
119
+ }>>[];
120
+ } & Partial<{
121
+ [K in Exclude<SlotNamesFrom<S>, Required>]: SlotContentFromDefinition<Extract<S[number], {
122
+ name: K;
123
+ }>>[];
124
+ }>;
125
+ type SlotRenderValue = HSHtml | HtmlSafe | Promise<HSHtml>;
126
+ type Slot<TContent = DefaultSlotContent, D extends SlotDefinition = SlotDefinition> = {
127
+ readonly name: D["name"];
128
+ readonly definition: D;
129
+ readonly content: readonly TContent[];
130
+ render(): SlotRenderValue;
131
+ };
132
+ type TemplateSlotsFrom<S extends readonly SlotDefinition[]> = {
133
+ [K in SlotNamesFrom<S>]: Slot<SlotContentFromDefinition<Extract<S[number], {
134
+ name: K;
135
+ }>>, Extract<S[number], {
136
+ name: K;
137
+ }>>;
138
+ };
139
+ type PageMeta = {
140
+ description?: string;
141
+ robots?: string;
142
+ canonical?: string;
143
+ ogTitle?: string;
144
+ ogDescription?: string;
145
+ ogImage?: string;
146
+ twitterCard?: string;
147
+ };
148
+ type Page<Slots extends string = string, RequiredSlots extends Slots = never, Definitions extends readonly SlotDefinition[] = readonly SlotDefinition[]> = {
149
+ readonly __kind: "page";
150
+ path: string;
151
+ template: TemplateDescriptor<Slots, RequiredSlots, Definitions>;
152
+ title: string;
153
+ meta?: PageMeta;
154
+ cache?: CacheConfig;
155
+ source?: string;
156
+ slots: PageSlotsInput<Definitions, RequiredSlots>;
157
+ };
158
+ type SitePage = {
159
+ readonly __kind: "page";
160
+ path: string;
161
+ template: TemplateDescriptor<string, string>;
162
+ title: string;
163
+ meta?: PageMeta;
164
+ cache?: CacheConfig;
165
+ source?: string;
166
+ slots: Partial<Record<string, DefaultSlotContent[]>>;
167
+ };
168
+ type PageRenderView = Omit<Page, "template" | "slots">;
169
+ type TemplateRenderContext<S extends readonly SlotDefinition[] = readonly SlotDefinition[]> = {
170
+ head?: HSHtml;
171
+ siteConfig: SiteConfig;
172
+ page: PageRenderView;
173
+ slots: TemplateSlotsFrom<S>;
174
+ };
175
+ type TemplateRenderFn = (ctx: {
176
+ head?: HSHtml;
177
+ siteConfig: SiteConfig;
178
+ page: PageRenderView;
179
+ slots: Record<string, Slot>;
180
+ }) => HSHtml;
181
+ type TemplateDescriptor<Slots extends string = string, RequiredSlots extends Slots = never, Definitions extends readonly SlotDefinition[] = readonly SlotDefinition[]> = {
182
+ readonly __kind: "template";
183
+ siteConfig: SiteConfig;
184
+ formatPageTitle: (title: string) => string;
185
+ render: TemplateRenderFn;
186
+ slots: Record<Slots, SlotMeta>;
187
+ requiredSlots: readonly RequiredSlots[];
188
+ readonly __definitions?: Definitions;
189
+ };
190
+ type PluginRoute = {
191
+ path: string;
192
+ fetch: (request: globalThis.Request, ctx: Context) => globalThis.Response | Promise<globalThis.Response>;
193
+ };
194
+ type PluginContext = {
195
+ site: Site;
196
+ };
197
+ /** @deprecated Use PluginContext */
198
+ type PluginRouteContext = PluginContext;
199
+ type PluginBuildContext = {
200
+ site: Site;
201
+ outDir: string;
202
+ publicDir: string;
203
+ };
204
+ type Plugin = {
205
+ readonly __kind: "plugin";
206
+ readonly name: string;
207
+ readonly description: string;
208
+ readonly version: string;
209
+ readonly keywords: readonly string[];
210
+ readonly root: string;
211
+ readonly assetsDir: string;
212
+ readonly publicAssetsDir: string;
213
+ routes?: (ctx: PluginContext) => readonly PluginRoute[] | Promise<readonly PluginRoute[]>;
214
+ build?: (ctx: PluginBuildContext) => void | Promise<void>;
215
+ hooks?: (ctx: PluginContext) => SiteHooks | void | Promise<SiteHooks>;
216
+ };
217
+ type CreatePluginOptions = {
218
+ name: string;
219
+ description: string;
220
+ version: string;
221
+ keywords: readonly string[];
222
+ root: string;
223
+ routes?: (ctx: PluginContext) => readonly PluginRoute[] | Promise<readonly PluginRoute[]>;
224
+ build?: (ctx: PluginBuildContext) => void | Promise<void>;
225
+ hooks?: (ctx: PluginContext) => SiteHooks | void | Promise<SiteHooks>;
226
+ };
227
+ type Site<T extends Record<string, unknown> = Record<string, unknown>> = {
228
+ readonly __kind: "site";
229
+ readonly siteConfig: SiteConfig<T>;
230
+ readonly pages: readonly SitePage[];
231
+ readonly plugins: readonly Plugin[];
232
+ fetch(request: globalThis.Request, env?: Record<string, unknown>): Promise<globalThis.Response>;
233
+ };
234
+ type RenderSlotItemInfo = {
235
+ item: Block | string;
236
+ slot: string;
237
+ index: number;
238
+ page: SitePage;
239
+ ctx?: Context;
240
+ };
241
+ type AfterRenderInfo = {
242
+ page: SitePage;
243
+ ctx?: Context;
244
+ };
245
+ type BeforeResponseInfo = {
246
+ request: globalThis.Request;
247
+ page?: SitePage;
248
+ ctx: Context;
249
+ };
250
+ type SiteHooks = {
251
+ shouldCache?: (request: globalThis.Request) => boolean;
252
+ renderSlotItem?: (html: string, info: RenderSlotItemInfo) => string | Promise<string>;
253
+ afterRender?: (html: string, info: AfterRenderInfo) => string | Promise<string>;
254
+ beforeResponse?: (response: globalThis.Response, info: BeforeResponseInfo) => globalThis.Response | Promise<globalThis.Response>;
255
+ };
256
+ type BuildSettings = {
257
+ readonly outDir: string;
258
+ readonly publicDir: string;
259
+ };
260
+ type BuildOptions = {
261
+ site: Site;
262
+ outDir?: string;
263
+ publicDir?: string;
264
+ };
265
+ type BuildResult = {
266
+ readonly settings: BuildSettings;
267
+ readonly plugins: readonly Plugin[];
268
+ };
269
+ type BuildCliArgs = {
270
+ readonly command: "build";
271
+ readonly site?: string;
272
+ readonly outDir?: string;
273
+ readonly publicDir?: string;
274
+ };
275
+ type PluginAssetRequest = {
276
+ plugin: string;
277
+ relativePath: string;
278
+ };
279
+ }
280
+ export {};
281
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stackbox/cms",
3
- "version": "0.0.5",
3
+ "version": "0.1.1",
4
4
  "description": "Stackbox CMS engine",
5
5
  "type": "module",
6
6
  "license": "BSD-3-Clause",
@@ -10,11 +10,11 @@
10
10
  "homepage": "https://github.com/stackboxcms/cms",
11
11
  "repository": {
12
12
  "type": "git",
13
- "url": "git+https://github.com/stackboxcms/cms.git"
13
+ "url": "git+https://github.com/stackboxcms/cms.git",
14
+ "directory": "packages/cms"
14
15
  },
15
16
  "files": [
16
17
  "dist",
17
- "AGENTS.md",
18
18
  "src/plugins"
19
19
  ],
20
20
  "exports": {
@@ -30,16 +30,27 @@
30
30
  "types": "./dist/plugins/random-quote/index.d.ts",
31
31
  "import": "./dist/plugins/random-quote/index.js"
32
32
  },
33
+ "./plugins/sitemap": {
34
+ "types": "./dist/plugins/sitemap/index.d.ts",
35
+ "import": "./dist/plugins/sitemap/index.js"
36
+ },
33
37
  "./link": {
34
38
  "types": "./dist/link.d.ts",
35
39
  "import": "./dist/link.js"
40
+ },
41
+ "./build": {
42
+ "types": "./dist/build.d.ts",
43
+ "import": "./dist/build.js"
36
44
  }
37
45
  },
46
+ "bin": {
47
+ "stackbox-cms": "./dist/cli.js"
48
+ },
38
49
  "scripts": {
39
- "build": "tsc -p tsconfig.json && node scripts/copy-plugin-assets.mjs",
40
- "test": "npm run build && node --import tsx --test test/*.test.ts",
50
+ "build": "node scripts/emit-dist.mjs && node scripts/copy-plugin-assets.mjs && node scripts/generate-agents-md.mjs",
51
+ "test": "pnpm run build && node --import tsx --test test/*.test.ts",
41
52
  "typecheck": "tsc --noEmit -p tsconfig.json",
42
- "prepack": "npm run build"
53
+ "prepack": "pnpm run build"
43
54
  },
44
55
  "dependencies": {
45
56
  "@hyperspan/html": "^1.0.3",
@@ -18,6 +18,7 @@ The user asks for any of:
18
18
 
19
19
  ## Exports
20
20
 
21
+ - **default export** — `createPlugin()` registration; pass to `createSite({ plugins })`
21
22
  - `createBlog()` — factory; returns `{ posts, listings }`
22
23
  - `BlogPostContent`, `BlogListingContent`, `Blog`, `BlogPost`, `BlogOptions` — types
23
24
  - `content[]` on post/listing objects accepts **blocks or HTML strings** — optional plugin blocks can be added later (e.g. share buttons)
@@ -60,7 +61,8 @@ Post paths: `{pathPrefix}/{slug}` where slug comes from frontmatter or filename.
60
61
  | --- | --- |
61
62
  | `content/blog/*.md` | Create markdown posts with frontmatter |
62
63
  | `pages/blog.ts` | Call `createBlog()`, map `listings` and `posts` to `createPage()` |
63
- | `server.ts` | Register `...blogListingPages` and `...blogPostPages` in `createSite({ pages })` |
64
+ | `server.ts` | Register the default export plus `...blogListingPages` and `...blogPostPages` in `createSite({ pages, plugins })` |
65
+ | `package.json` | Add `"build": "stackbox-cms build"` so registered plugin assets are copied |
64
66
  | `templates/site-template.ts` | Reuse existing site template (or create one) — blog does not ship its own |
65
67
 
66
68
  ## Markdown contract
@@ -121,10 +123,12 @@ export const blogPostPages = blog.posts.map((post) =>
121
123
 
122
124
  ```ts
123
125
  // server.ts
126
+ import blogPlugin from "@stackbox/cms/plugins/blog";
124
127
  import { blogListingPages, blogPostPages } from "./pages/blog";
125
128
 
126
129
  export default createSite(siteConfig, {
127
130
  pages: [homePage, ...blogListingPages, ...blogPostPages],
131
+ plugins: [blogPlugin],
128
132
  });
129
133
  ```
130
134
 
@@ -1,19 +1,36 @@
1
- import type { PageMeta } from "../../pages.js";
2
- import type { DefaultSlotContent } from "../../slot-content.js";
1
+ import { createPlugin } from "../../plugin.js";
2
+ import type { Stackbox as SB } from "../../types.js";
3
3
  import { loadPosts, type BlogOptions, type BlogPost } from "./posts.js";
4
4
 
5
+ export default createPlugin({
6
+ name: "sb-blog",
7
+ description:
8
+ "Load markdown posts at bundle time and return listing and post content objects to wire into createPage().",
9
+ version: "1.0.0",
10
+ keywords: [
11
+ "blog",
12
+ "posts",
13
+ "articles",
14
+ "journal",
15
+ "markdown posts",
16
+ "blog listing",
17
+ "blog page",
18
+ ],
19
+ root: import.meta.dirname,
20
+ });
21
+
5
22
  export type { BlogPost, BlogOptions } from "./posts.js";
6
23
 
7
24
  export type BlogPostContent = {
8
25
  path: string;
9
26
  title: string;
10
- meta?: PageMeta;
11
- content: DefaultSlotContent[];
27
+ meta?: SB.PageMeta;
28
+ content: SB.DefaultSlotContent[];
12
29
  };
13
30
 
14
31
  export type BlogListingContent = {
15
32
  path: string;
16
- content: DefaultSlotContent[];
33
+ content: SB.DefaultSlotContent[];
17
34
  };
18
35
 
19
36
  export type Blog = {
@@ -17,8 +17,9 @@ This plugin is a **block-only** example — it exports no page factory or conten
17
17
 
18
18
  ## Exports
19
19
 
20
+ - **default export** — `createPlugin()` registration; pass to `createSite({ plugins })` to serve `public_assets/`
20
21
  - `randomQuoteBlock(options?)` — block factory; `{ quotes }` overrides bundled defaults
21
- - `defaultQuotes` — bundled quote array (imported from `public_assets/quotes.json`)
22
+ - `defaultQuotes` — bundled quote array (imported from `assets/quotes.json`)
22
23
  - `pickRandomQuote(quotes)` — picks one quote at random
23
24
  - `Quote` — type `{ text, author }`
24
25
  - `RandomQuoteBlockOptions` — type `{ quotes?: readonly Quote[] }`
@@ -37,25 +38,37 @@ import myQuotes from "../content/quotes.json" with { type: "json" };
37
38
  slots: { sidebar: [randomQuoteBlock({ quotes: myQuotes })] }
38
39
  ```
39
40
 
40
- Custom JSON must be an array of `{ text, author }` objects — same shape as bundled `public_assets/quotes.json`.
41
-
42
- Bundled quotes are also served as a public asset at `/_sb/plugins/random-quote/quotes.json` (via `pluginAssetPath("random-quote", "quotes.json")` from `@stackbox/cms/link`).
41
+ Custom JSON must be an array of `{ text, author }` objects — same shape as bundled `assets/quotes.json`.
43
42
 
44
43
  Each request renders a randomly selected quote from the configured list.
45
44
 
46
- ## Public assets
45
+ ## Assets
46
+
47
+ - `assets/quotes.json` — private; imported into JS as `defaultQuotes`
48
+ - `public_assets/widget.css` — public; served at `/_sb/plugins/sb-random-quote/widget.css` **only after** this plugin is registered
49
+
50
+ ```ts
51
+ import randomQuotePlugin from "@stackbox/cms/plugins/random-quote";
52
+
53
+ export default createSite(siteConfig, {
54
+ pages: [homePage],
55
+ plugins: [randomQuotePlugin],
56
+ });
57
+ ```
47
58
 
48
- Bundled quotes live in `public_assets/quotes.json`. The build copies this folder to `dist/public/_sb/plugins/random-quote/` automatically — do not edit the copy script.
59
+ Use `pluginAssetPath("sb-random-quote", "widget.css")` from `@stackbox/cms/link` for the stylesheet href. Do not copy plugin assets by scanning a `plugins/` folder — run `npx stackbox-cms build` so the package build script copies only registered plugins.
49
60
 
50
61
  ## Files to create or update
51
62
 
52
63
  | File | Action |
53
64
  | --- | --- |
65
+ | `server.ts` | Register the default export in `createSite({ plugins })` so public assets are served |
66
+ | `package.json` | Add `"build": "stackbox-cms build"` so registered plugin assets are copied |
54
67
  | Any page using the block | Import `randomQuoteBlock` and add to a slot array |
55
68
  | `content/quotes.json` | Optional — user's own quotes when not using bundled defaults |
56
69
  | `templates/site-template.ts` | Ensure the target slot exists (e.g. `sidebar`, `content`) |
57
70
 
58
- No `pages/*.ts` or `server.ts` changes required unless adding the block to a new page.
71
+ Register the plugin in `server.ts` whenever the block is used so `public_assets/` are served. No `pages/*.ts` changes unless adding the block to a new page.
59
72
 
60
73
  ## Wiring example
61
74
 
@@ -76,4 +89,14 @@ export const homePage = createPage(siteTemplate, {
76
89
  });
77
90
  ```
78
91
 
92
+ ```ts
93
+ // server.ts
94
+ import randomQuotePlugin from "@stackbox/cms/plugins/random-quote";
95
+
96
+ export default createSite(siteConfig, {
97
+ pages: [homePage],
98
+ plugins: [randomQuotePlugin],
99
+ });
100
+ ```
101
+
79
102
  Use `randomQuoteBlock()` without options to keep bundled defaults. Combine with other blocks or HTML strings in the same slot.