@leadertechie/personal-site-kit 0.1.0-alpha.18 → 0.1.0-alpha.19

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 (31) hide show
  1. package/dist/api/content-utils.d.ts.map +1 -1
  2. package/dist/api/handlers/about-me.d.ts.map +1 -1
  3. package/dist/api/handlers/auth-handler.d.ts.map +1 -1
  4. package/dist/api/handlers/content-api.d.ts.map +1 -1
  5. package/dist/api/handlers/home.d.ts.map +1 -1
  6. package/dist/api/handlers/static-details.d.ts +1 -1
  7. package/dist/api/handlers/static-details.d.ts.map +1 -1
  8. package/dist/api/website-api.d.ts.map +1 -1
  9. package/dist/api.js +2 -2
  10. package/dist/chunks/{index-CGvOrVf8.js → index-C1krnvU3.js} +0 -2
  11. package/dist/chunks/{index-DAog9TQE.js → index-DrnbjP2Q.js} +2 -4
  12. package/dist/chunks/{template-DUdadCrH.js → template-DVy2k_na.js} +0 -4
  13. package/dist/chunks/{website-api-DBEh24zq.js → website-api-BjNkkALB.js} +17 -53
  14. package/dist/index.js +3 -3
  15. package/dist/prerender/data-fetcher.d.ts.map +1 -1
  16. package/dist/prerender/page-content.d.ts.map +1 -1
  17. package/dist/prerender/page-generators/base.d.ts +0 -1
  18. package/dist/prerender/page-generators/base.d.ts.map +1 -1
  19. package/dist/prerender.js +9 -31
  20. package/dist/shared/core/site-store.d.ts.map +1 -1
  21. package/dist/shared/core/theme-toggle.d.ts.map +1 -1
  22. package/dist/shared/router.d.ts.map +1 -1
  23. package/dist/shared.js +1 -1
  24. package/dist/ui/about-me/index.d.ts.map +1 -1
  25. package/dist/ui/admin/index.d.ts.map +1 -1
  26. package/dist/ui/banner/index.d.ts.map +1 -1
  27. package/dist/ui/blog-viewer/index.d.ts.map +1 -1
  28. package/dist/ui/footer/index.d.ts.map +1 -1
  29. package/dist/ui/story-viewer/index.d.ts.map +1 -1
  30. package/dist/ui.js +1 -1
  31. package/package.json +12 -5
@@ -1 +1 @@
1
- {"version":3,"file":"content-utils.d.ts","sourceRoot":"","sources":["../../src/api/content-utils.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,QAAS,SAAQ,eAAe;IAC/C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAU,SAAQ,eAAe;IAChD,OAAO,EAAE,MAAM,CAAC;CACjB;AASD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAoBtF;AAED,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAMvD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CA6BhG;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,QAAQ,GAAG,IAAI,CAK5D;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAqB1H;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAiB1H;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAC,CA2BjG"}
1
+ {"version":3,"file":"content-utils.d.ts","sourceRoot":"","sources":["../../src/api/content-utils.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,QAAS,SAAQ,eAAe;IAC/C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAU,SAAQ,eAAe;IAChD,OAAO,EAAE,MAAM,CAAC;CACjB;AASD,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAoBtF;AAED,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAMvD;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAMhG;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,QAAQ,GAAG,IAAI,CAK5D;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAqB1H;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,GAAG,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAiB1H;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAC,CA2BjG"}
@@ -1 +1 @@
1
- {"version":3,"file":"about-me.d.ts","sourceRoot":"","sources":["../../../src/api/handlers/about-me.ts"],"names":[],"mappings":"AA0DA,wBAAgB,iBAAiB,SAEhC;AAED,wBAAsB,aAAa,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CA4DhE"}
1
+ {"version":3,"file":"about-me.d.ts","sourceRoot":"","sources":["../../../src/api/handlers/about-me.ts"],"names":[],"mappings":"AAmDA,wBAAgB,iBAAiB,SAEhC;AAED,wBAAsB,aAAa,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CA4DhE"}
@@ -1 +1 @@
1
- {"version":3,"file":"auth-handler.d.ts","sourceRoot":"","sources":["../../../src/api/handlers/auth-handler.ts"],"names":[],"mappings":"AA0BA,wBAAsB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAiC/F"}
1
+ {"version":3,"file":"auth-handler.d.ts","sourceRoot":"","sources":["../../../src/api/handlers/auth-handler.ts"],"names":[],"mappings":"AAwBA,wBAAsB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAgC/F"}
@@ -1 +1 @@
1
- {"version":3,"file":"content-api.d.ts","sourceRoot":"","sources":["../../../src/api/handlers/content-api.ts"],"names":[],"mappings":"AAcA,wBAAsB,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAmB9F;AAED,wBAAsB,aAAa,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAmBhG;AAED,wBAAsB,YAAY,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAkB/E"}
1
+ {"version":3,"file":"content-api.d.ts","sourceRoot":"","sources":["../../../src/api/handlers/content-api.ts"],"names":[],"mappings":"AAWA,wBAAsB,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAmB9F;AAED,wBAAsB,aAAa,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAmBhG;AAED,wBAAsB,YAAY,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAkB/E"}
@@ -1 +1 @@
1
- {"version":3,"file":"home.d.ts","sourceRoot":"","sources":["../../../src/api/handlers/home.ts"],"names":[],"mappings":"AA+CA,wBAAgB,iBAAiB,SAEhC;AAED,wBAAsB,UAAU,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAwC7D"}
1
+ {"version":3,"file":"home.d.ts","sourceRoot":"","sources":["../../../src/api/handlers/home.ts"],"names":[],"mappings":"AAwCA,wBAAgB,iBAAiB,SAEhC;AAED,wBAAsB,UAAU,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAwC7D"}
@@ -1,2 +1,2 @@
1
- export declare function handleStaticDetails(env?: any, method?: string, body?: any): Promise<Response>;
1
+ export declare function handleStaticDetails(env?: any, method?: string, _body?: any): Promise<Response>;
2
2
  //# sourceMappingURL=static-details.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"static-details.d.ts","sourceRoot":"","sources":["../../../src/api/handlers/static-details.ts"],"names":[],"mappings":"AAQA,wBAAsB,mBAAmB,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAuCnG"}
1
+ {"version":3,"file":"static-details.d.ts","sourceRoot":"","sources":["../../../src/api/handlers/static-details.ts"],"names":[],"mappings":"AAQA,wBAAsB,mBAAmB,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAuCpG"}
@@ -1 +1 @@
1
- {"version":3,"file":"website-api.d.ts","sourceRoot":"","sources":["../../src/api/website-api.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAE3E,qBAAa,UAAU;IACrB,OAAO,CAAC,cAAc,CAAiC;IAEhD,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU;IAIzD,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,UAAU;IAqBL,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;CAgGlE"}
1
+ {"version":3,"file":"website-api.d.ts","sourceRoot":"","sources":["../../src/api/website-api.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAE3E,qBAAa,UAAU;IACrB,OAAO,CAAC,cAAc,CAAiC;IAEhD,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU;IAIzD,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,UAAU;IAqBL,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC;CAkGlE"}
package/dist/api.js CHANGED
@@ -1,5 +1,5 @@
1
- import { W as WebsiteAPI } from "./chunks/website-api-DBEh24zq.js";
2
- import { A, B, M, R, c, a, g, b, d, h, e, r, s, v } from "./chunks/website-api-DBEh24zq.js";
1
+ import { W as WebsiteAPI } from "./chunks/website-api-BjNkkALB.js";
2
+ import { A, B, M, R, c, a, g, b, d, h, e, r, s, v } from "./chunks/website-api-BjNkkALB.js";
3
3
  const defaultAPI = new WebsiteAPI();
4
4
  export {
5
5
  A as AUTH_KV,
@@ -16,8 +16,6 @@ class BasePageGenerator {
16
16
  footerlinks='${JSON.stringify(footerLinks)}'>
17
17
  </my-footer>`;
18
18
  }
19
- generateMeta(title, description, canonicalUrl) {
20
- }
21
19
  wrapContent(banner, mainContent, footer) {
22
20
  return `${banner}${mainContent}${footer}`;
23
21
  }
@@ -2475,8 +2475,7 @@ class BlogViewer extends (_a$1 = LitElement, _slug_dec$1 = [property({ type: Str
2475
2475
  }
2476
2476
  renderMarkdown(content) {
2477
2477
  if (!content) return "";
2478
- const nodes = pipeline$1.parse(content);
2479
- return pipeline$1.render(nodes);
2478
+ return pipeline$1.renderMarkdown(content);
2480
2479
  }
2481
2480
  }
2482
2481
  _init$1 = __decoratorStart$1(_a$1);
@@ -2681,8 +2680,7 @@ class StoryViewer extends (_a = LitElement, _slug_dec = [property({ type: String
2681
2680
  }
2682
2681
  renderMarkdown(content) {
2683
2682
  if (!content) return "";
2684
- const nodes = pipeline.parse(content);
2685
- return pipeline.render(nodes);
2683
+ return pipeline.renderMarkdown(content);
2686
2684
  }
2687
2685
  }
2688
2686
  _init = __decoratorStart(_a);
@@ -383,10 +383,6 @@ class Router {
383
383
  this.afterRender();
384
384
  }
385
385
  async renderAdminPage() {
386
- generatePageContent("/admin", this.routes, this.footerLinks, {
387
- siteTitle: this.siteTitle,
388
- copyright: this.copyright
389
- });
390
386
  if (this.appElement) {
391
387
  this.appElement.innerHTML = `
392
388
  <my-banner header="${this.siteTitle}" logo="${this.logo}">
@@ -1,4 +1,4 @@
1
- import { ContentCacheV2, R2ContentLoader } from "@leadertechie/r2tohtml";
1
+ import { R2ContentLoader, ContentCacheV2, parseFrontmatter as parseFrontmatter$1 } from "@leadertechie/r2tohtml";
2
2
  function createJSONResponse(data, status = 200) {
3
3
  return new Response(JSON.stringify(data), {
4
4
  status,
@@ -9,14 +9,6 @@ function createErrorResponse(message, status = 500) {
9
9
  return createJSONResponse({ error: message }, status);
10
10
  }
11
11
  let loader$1 = null;
12
- new ContentCacheV2(
13
- 5 * 60 * 1e3,
14
- // TTL: 5 minutes fresh
15
- true,
16
- // enabled
17
- 30 * 60 * 1e3
18
- // SWR TTL: 30 minutes stale window
19
- );
20
12
  function getLoader$1(env) {
21
13
  if (!env?.CONTENT_BUCKET) {
22
14
  return null;
@@ -107,14 +99,6 @@ async function handleAboutMe(env) {
107
99
  }
108
100
  }
109
101
  let loader = null;
110
- new ContentCacheV2(
111
- 5 * 60 * 1e3,
112
- // TTL: 5 minutes fresh
113
- true,
114
- // enabled
115
- 30 * 60 * 1e3
116
- // SWR TTL: 30 minutes stale window
117
- );
118
102
  function getLoader(env) {
119
103
  if (!loader && env?.CONTENT_BUCKET) {
120
104
  loader = new R2ContentLoader(
@@ -157,8 +141,8 @@ async function handleHome(env) {
157
141
  });
158
142
  }
159
143
  const r2 = getLoader(env);
160
- let astResult = await r2.getWithAST("pages/home.md");
161
- let renderedResult = await r2.getRendered("pages/home.md");
144
+ const astResult = await r2.getWithAST("pages/home.md");
145
+ const renderedResult = await r2.getRendered("pages/home.md");
162
146
  if (!astResult || !renderedResult) {
163
147
  return new Response(JSON.stringify({
164
148
  contentNodes: [],
@@ -268,7 +252,7 @@ async function clearRateLimit(env, ip) {
268
252
  const kvKey = `rate:${ip}`;
269
253
  await env.KV.delete(kvKey);
270
254
  }
271
- async function getAuthStore(env) {
255
+ async function getAuthStore$1(env) {
272
256
  const store = await env.KV.get(AUTH_KV, "json");
273
257
  return store;
274
258
  }
@@ -282,7 +266,7 @@ async function setupAuth(env, username, password) {
282
266
  }));
283
267
  }
284
268
  async function verifyCredentials(env, username, password) {
285
- const store = await getAuthStore(env);
269
+ const store = await getAuthStore$1(env);
286
270
  if (!store) {
287
271
  return false;
288
272
  }
@@ -327,31 +311,10 @@ function clearContentCache(prefix) {
327
311
  }
328
312
  }
329
313
  function parseFrontmatter(content) {
330
- const lines = content.split("\n");
331
- const metadata = {};
332
- let contentStart = 0;
333
- if (lines[0]?.trim() === "---") {
334
- for (let i = 1; i < lines.length; i++) {
335
- if (lines[i]?.trim() === "---") {
336
- contentStart = i + 1;
337
- break;
338
- }
339
- const colonIdx = lines[i].indexOf(":");
340
- if (colonIdx > 0) {
341
- const key = lines[i].slice(0, colonIdx).trim();
342
- let value = lines[i].slice(colonIdx + 1).trim();
343
- if (value.startsWith("[") && value.endsWith("]")) {
344
- value = value.slice(1, -1);
345
- metadata[key] = value.split(",").map((v) => v.trim());
346
- } else {
347
- metadata[key] = value;
348
- }
349
- }
350
- }
351
- }
314
+ const parsed = parseFrontmatter$1(content);
352
315
  return {
353
- metadata,
354
- content: lines.slice(contentStart).join("\n").trim()
316
+ metadata: parsed.metadata,
317
+ content: parsed.content.trim()
355
318
  };
356
319
  }
357
320
  function checkContentBucket(env) {
@@ -446,7 +409,7 @@ async function handleContent(request, env, subpath) {
446
409
  if (method === "GET" && subpath.startsWith("images/")) {
447
410
  return handleGet(request, bucket, subpath);
448
411
  }
449
- const store = await getAuthStore(env);
412
+ const store = await getAuthStore$1(env);
450
413
  if (!store) {
451
414
  if (method === "GET") {
452
415
  return handleGet(request, bucket, subpath);
@@ -555,7 +518,6 @@ function createSessionCookie(token, origin) {
555
518
  return cookie;
556
519
  }
557
520
  async function handleAuth(request, env, subpath) {
558
- request.method;
559
521
  const clientIP = getClientIP(request);
560
522
  const path = subpath.replace(/^\//, "").split("/")[0];
561
523
  const origin = request.headers.get("Origin") || new URL(request.url).origin;
@@ -811,7 +773,7 @@ const DEFAULT_STATIC_DETAILS = {
811
773
  github: "https://github.com/yourname",
812
774
  email: "yourname@domain.com"
813
775
  };
814
- async function handleStaticDetails(env, method, body) {
776
+ async function handleStaticDetails(env, method, _body) {
815
777
  try {
816
778
  if (!env?.CONTENT_BUCKET) {
817
779
  return new Response(JSON.stringify(DEFAULT_STATIC_DETAILS), {
@@ -924,7 +886,7 @@ class WebsiteAPI {
924
886
  return this.addCORSHeaders(await handleInfo());
925
887
  case "home":
926
888
  return this.addAdminCORSHeaders(await handleHome(env), origin);
927
- case "cache-clear":
889
+ case "cache-clear": {
928
890
  const cookieHeader = request.headers.get("Cookie");
929
891
  const sessionToken = cookieHeader?.split(";").find((c) => c.trim().startsWith("session="))?.split("=")[1];
930
892
  const session = sessionToken ? await env.KV.get(`session:${sessionToken}`, "json") : null;
@@ -933,6 +895,7 @@ class WebsiteAPI {
933
895
  }
934
896
  clearContentCache$2();
935
897
  return this.addAdminCORSHeaders(new Response(JSON.stringify({ success: true, message: "Cache cleared" }), { status: 200, headers: { "Content-Type": "application/json" } }), origin);
898
+ }
936
899
  case "aboutme":
937
900
  return this.addAdminCORSHeaders(await handleAboutMe(env), origin);
938
901
  case "logo":
@@ -941,9 +904,10 @@ class WebsiteAPI {
941
904
  return this.addAdminCORSHeaders(await handleStaticDetails(env), origin);
942
905
  case "blogs":
943
906
  return this.addAdminCORSHeaders(await handleBlogs(env), origin);
944
- case "blogs/latest":
907
+ case "blogs/latest": {
945
908
  const latestCount = url.searchParams.get("count");
946
909
  return this.addAdminCORSHeaders(await handleBlogs(env, void 0, latestCount ? parseInt(latestCount) : 5), origin);
910
+ }
947
911
  default:
948
912
  if (route.startsWith("images/")) {
949
913
  return this.addAdminCORSHeaders(await handleContent(request, env, route), origin);
@@ -957,8 +921,8 @@ class WebsiteAPI {
957
921
  return this.addAdminCORSHeaders(await handleStories(env), origin);
958
922
  }
959
923
  if (route === "stories/latest") {
960
- const latestCount2 = url.searchParams.get("count");
961
- return this.addAdminCORSHeaders(await handleStories(env, void 0, latestCount2 ? parseInt(latestCount2) : 5), origin);
924
+ const latestCount = url.searchParams.get("count");
925
+ return this.addAdminCORSHeaders(await handleStories(env, void 0, latestCount ? parseInt(latestCount) : 5), origin);
962
926
  }
963
927
  const slug = route.replace("stories/", "");
964
928
  return this.addAdminCORSHeaders(await handleStories(env, slug), origin);
@@ -982,7 +946,7 @@ export {
982
946
  RATE_LIMIT_KV as R,
983
947
  WebsiteAPI as W,
984
948
  clearRateLimit as a,
985
- getAuthStore as b,
949
+ getAuthStore$1 as b,
986
950
  checkRateLimit as c,
987
951
  getClientIP as d,
988
952
  hashPassword as e,
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
- import { A, B, M, R, W, c, a, g, b, d, h, e, r, s, v } from "./chunks/website-api-DBEh24zq.js";
1
+ import { A, B, M, R, W, c, a, g, b, d, h, e, r, s, v } from "./chunks/website-api-BjNkkALB.js";
2
2
  import { WebsitePrerender } from "./prerender.js";
3
- import { A as A2, a as a2, b as b2, c as c2, d as d2, e as e2, f, g as g2, h as h2, i, B as B2, F, M as M2, j, S, k } from "./chunks/index-DAog9TQE.js";
3
+ import { A as A2, a as a2, b as b2, c as c2, d as d2, e as e2, f, g as g2, h as h2, i, B as B2, F, M as M2, j, S, k } from "./chunks/index-DrnbjP2Q.js";
4
4
  import { S as S2, g as g3, i as i2, r as r2 } from "./chunks/site-store-CGV9c2DI.js";
5
- import { R as R2, T, W as W2, b as b3, c as c3, g as g4, r as r3 } from "./chunks/template-DUdadCrH.js";
5
+ import { R as R2, T, W as W2, b as b3, c as c3, g as g4, r as r3 } from "./chunks/template-DVy2k_na.js";
6
6
  export {
7
7
  A as AUTH_KV,
8
8
  A2 as AdminAboutMeSection,
@@ -1 +1 @@
1
- {"version":3,"file":"data-fetcher.d.ts","sourceRoot":"","sources":["../../src/prerender/data-fetcher.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAwCD,wBAAsB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAQpE;AAED,wBAAsB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAO5D;AAED,wBAAsB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAOzD;AAED,wBAAsB,wBAAwB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAgB/F;AAED,wBAAsB,yBAAyB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAgBhG"}
1
+ {"version":3,"file":"data-fetcher.d.ts","sourceRoot":"","sources":["../../src/prerender/data-fetcher.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAiCD,wBAAsB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAQpE;AAED,wBAAsB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAO5D;AAED,wBAAsB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAOzD;AAED,wBAAsB,wBAAwB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAgB/F;AAED,wBAAsB,yBAAyB,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAgBhG"}
@@ -1 +1 @@
1
- {"version":3,"file":"page-content.d.ts","sourceRoot":"","sources":["../../src/prerender/page-content.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAgHD,eAAO,MAAM,mBAAmB,GAC9B,UAAU,MAAM,EAChB,QAAQ,MAAM,EAAE,EAChB,aAAa,WAAW,EAAE,EAC1B,MAAM,GAAG,KACR,OAAO,CAAC,WAAW,CAqJrB,CAAC"}
1
+ {"version":3,"file":"page-content.d.ts","sourceRoot":"","sources":["../../src/prerender/page-content.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAgGD,eAAO,MAAM,mBAAmB,GAC9B,UAAU,MAAM,EAChB,QAAQ,MAAM,EAAE,EAChB,aAAa,WAAW,EAAE,EAC1B,MAAM,GAAG,KACR,OAAO,CAAC,WAAW,CAkJrB,CAAC"}
@@ -19,7 +19,6 @@ export interface BasePageData {
19
19
  export declare class BasePageGenerator {
20
20
  protected generateBanner(routes: IRoute[], siteTitle: string, logo: string): string;
21
21
  protected generateFooter(footerLinks: IFooterLink[], copyright: string): string;
22
- protected generateMeta(title: string, description: string, canonicalUrl: string): void;
23
22
  protected wrapContent(banner: string, mainContent: string, footer: string): string;
24
23
  generatePage(pathname: string, routes: IRoute[], footerLinks: IFooterLink[], staticDetails: StaticDetails, apiUrl: string, baseUrl: string, mainContent: string, title: string, description: string): PageContent;
25
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/prerender/page-generators/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnE,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,iBAAiB;IAC5B,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAcnF,SAAS,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAQ/E,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAItF,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAI3E,YAAY,CACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EAAE,EAChB,WAAW,EAAE,WAAW,EAAE,EAC1B,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAClB,WAAW;CAcf"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/prerender/page-generators/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnE,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,aAAa,EAAE,aAAa,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,iBAAiB;IAC5B,SAAS,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAcnF,SAAS,CAAC,cAAc,CAAC,WAAW,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAQ/E,SAAS,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAI3E,YAAY,CACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EAAE,EAChB,WAAW,EAAE,WAAW,EAAE,EAC1B,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,GAClB,WAAW;CAcf"}
package/dist/prerender.js CHANGED
@@ -1,4 +1,4 @@
1
- import { ContentCacheV2, R2ContentLoader } from "@leadertechie/r2tohtml";
1
+ import { R2ContentLoader } from "@leadertechie/r2tohtml";
2
2
  let cachedAssets = null;
3
3
  let isDiscovering = false;
4
4
  async function getAssetPaths(baseSiteUrl) {
@@ -103,14 +103,6 @@ const createHtmlTemplate = async ({
103
103
  </html>`;
104
104
  };
105
105
  let loader = null;
106
- new ContentCacheV2(
107
- 5 * 60 * 1e3,
108
- // TTL: 5 minutes fresh
109
- true,
110
- // enabled
111
- 30 * 60 * 1e3
112
- // SWR TTL: 30 minutes stale window
113
- );
114
106
  function getLoader(env) {
115
107
  if (!loader) {
116
108
  if (!env?.CONTENT_BUCKET) return null;
@@ -153,16 +145,6 @@ async function fetchProfile(env) {
153
145
  return null;
154
146
  }
155
147
  }
156
- async function fetchAboutMe(env) {
157
- try {
158
- const r2 = getLoader(env);
159
- if (!r2) return "";
160
- const result = await r2.getRendered("about-me.md");
161
- return result?.content || "";
162
- } catch {
163
- return "";
164
- }
165
- }
166
148
  async function fetchHome(env) {
167
149
  try {
168
150
  const r2 = getLoader(env);
@@ -229,25 +211,21 @@ const generatePageContent = async (pathname, routes, footerLinks, env) => {
229
211
  } catch (e) {
230
212
  }
231
213
  let profile = null;
232
- let aboutMeContent = "";
233
214
  let homeContent = "";
234
215
  let latestBlogs = [];
235
216
  let latestStories = [];
236
217
  if (env?.CONTENT_BUCKET) {
237
- [profile, aboutMeContent, homeContent, latestBlogs, latestStories] = await Promise.all([
218
+ [profile, homeContent, latestBlogs, latestStories] = await Promise.all([
238
219
  fetchProfile(env),
239
- fetchAboutMe(env),
240
220
  fetchHome(env),
241
221
  fetchLatestBlogSummaries(env, 3),
242
222
  fetchLatestStorySummaries(env, 3)
243
223
  ]);
244
224
  }
245
225
  const name = profile?.name || "User";
246
- profile?.title || "Professional";
247
- new URL(pathname, baseUrl).toString();
248
226
  const strategies = {
249
227
  home: async () => {
250
- const { HomePageGenerator } = await import("./chunks/index-CGvOrVf8.js");
228
+ const { HomePageGenerator } = await import("./chunks/index-C1krnvU3.js");
251
229
  const generator = new HomePageGenerator();
252
230
  return generator.generate({
253
231
  routes,
@@ -263,7 +241,7 @@ const generatePageContent = async (pathname, routes, footerLinks, env) => {
263
241
  });
264
242
  },
265
243
  about: async () => {
266
- const { AboutPageGenerator } = await import("./chunks/index-CGvOrVf8.js");
244
+ const { AboutPageGenerator } = await import("./chunks/index-C1krnvU3.js");
267
245
  const generator = new AboutPageGenerator();
268
246
  return generator.generate({
269
247
  routes,
@@ -276,7 +254,7 @@ const generatePageContent = async (pathname, routes, footerLinks, env) => {
276
254
  });
277
255
  },
278
256
  blogsList: async () => {
279
- const { BlogsListPageGenerator } = await import("./chunks/index-CGvOrVf8.js");
257
+ const { BlogsListPageGenerator } = await import("./chunks/index-C1krnvU3.js");
280
258
  const generator = new BlogsListPageGenerator();
281
259
  return generator.generate({
282
260
  routes,
@@ -290,7 +268,7 @@ const generatePageContent = async (pathname, routes, footerLinks, env) => {
290
268
  });
291
269
  },
292
270
  storiesList: async () => {
293
- const { StoriesListPageGenerator } = await import("./chunks/index-CGvOrVf8.js");
271
+ const { StoriesListPageGenerator } = await import("./chunks/index-C1krnvU3.js");
294
272
  const generator = new StoriesListPageGenerator();
295
273
  return generator.generate({
296
274
  routes,
@@ -304,7 +282,7 @@ const generatePageContent = async (pathname, routes, footerLinks, env) => {
304
282
  });
305
283
  },
306
284
  blogDetail: async (slug) => {
307
- const { BlogDetailPageGenerator } = await import("./chunks/index-CGvOrVf8.js");
285
+ const { BlogDetailPageGenerator } = await import("./chunks/index-C1krnvU3.js");
308
286
  const generator = new BlogDetailPageGenerator();
309
287
  return generator.generate({
310
288
  routes,
@@ -317,7 +295,7 @@ const generatePageContent = async (pathname, routes, footerLinks, env) => {
317
295
  });
318
296
  },
319
297
  storyDetail: async (slug) => {
320
- const { StoryDetailPageGenerator } = await import("./chunks/index-CGvOrVf8.js");
298
+ const { StoryDetailPageGenerator } = await import("./chunks/index-C1krnvU3.js");
321
299
  const generator = new StoryDetailPageGenerator();
322
300
  return generator.generate({
323
301
  routes,
@@ -330,7 +308,7 @@ const generatePageContent = async (pathname, routes, footerLinks, env) => {
330
308
  });
331
309
  },
332
310
  notFound: async () => {
333
- const { NotFoundPageGenerator } = await import("./chunks/index-CGvOrVf8.js");
311
+ const { NotFoundPageGenerator } = await import("./chunks/index-C1krnvU3.js");
334
312
  const generator = new NotFoundPageGenerator();
335
313
  return generator.generate({
336
314
  routes,
@@ -1 +1 @@
1
- {"version":3,"file":"site-store.d.ts","sourceRoot":"","sources":["../../../src/shared/core/site-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,aAAa,EAA8C,MAAM,WAAW,CAAC;AAErG,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAY;IACnC,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,SAAS,CAAmD;IAEpE,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,SAAS;IAOzB,IAAI,CAAC,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAMtD,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI;IAMnD,OAAO,CAAC,MAAM;IAMR,OAAO;IAQb,SAAS,IAAI,aAAa;CAG3B"}
1
+ {"version":3,"file":"site-store.d.ts","sourceRoot":"","sources":["../../../src/shared/core/site-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA8C,MAAM,WAAW,CAAC;AAEtF,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAY;IACnC,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,SAAS,CAAmD;IAEpE,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,SAAS;IAOzB,IAAI,CAAC,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAMtD,SAAS,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI;IAMnD,OAAO,CAAC,MAAM;IAMR,OAAO;IAQb,SAAS,IAAI,aAAa;CAG3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"theme-toggle.d.ts","sourceRoot":"","sources":["../../../src/shared/core/theme-toggle.ts"],"names":[],"mappings":"AAEA,qBAAa,WAAY,SAAQ,WAAW;;IAQ1C,iBAAiB;IAIjB,oBAAoB;IAIpB,MAAM;IAiCN,0BAA0B;IAc1B,WAAW,aAOT;IAEF,kBAAkB,CAAC,KAAK,EAAE,MAAM;IAUhC,UAAU,IAAI,MAAM;IAgBpB,WAAW,IAAI,MAAM;IAQrB,wBAAwB,CAAC,KAAK,EAAE,MAAM;CAQvC"}
1
+ {"version":3,"file":"theme-toggle.d.ts","sourceRoot":"","sources":["../../../src/shared/core/theme-toggle.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAY,SAAQ,WAAW;;IAQ1C,iBAAiB;IAIjB,oBAAoB;IAIpB,MAAM;IAiCN,0BAA0B;IAc1B,WAAW,aAOT;IAEF,kBAAkB,CAAC,KAAK,EAAE,MAAM;IAUhC,UAAU,IAAI,MAAM;IAgBpB,WAAW,IAAI,MAAM;IAQrB,wBAAwB,CAAC,KAAK,EAAE,MAAM;CAQvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/shared/router.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,qBAAa,MAAM;IAML,OAAO,CAAC,EAAE;IALtB,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,IAAI,CAAuB;IACnC,OAAO,CAAC,UAAU,CAA4B;gBAE1B,EAAE,EAAE,SAAS;IAejC,OAAO,KAAK,MAAM,GAEjB;IAED,OAAO,KAAK,SAAS,GAEpB;IAED,OAAO,KAAK,SAAS,GAEpB;IAED,OAAO,KAAK,WAAW,GAatB;IAEM,IAAI,CAAC,YAAY,GAAE,MAAc;IAWxC,OAAO,CAAC,mBAAmB;IAmCd,QAAQ,CAAC,IAAI,EAAE,MAAM;IA6BlC,OAAO,CAAC,WAAW;IAgCnB;;;OAGG;IACH,OAAO,CAAC,WAAW;YAIL,cAAc;IAmC5B,OAAO,CAAC,iBAAiB;YASX,qBAAqB;YAkBrB,uBAAuB;YAoBvB,eAAe;CAsB9B"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/shared/router.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,qBAAa,MAAM;IAML,OAAO,CAAC,EAAE;IALtB,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,IAAI,CAAuB;IACnC,OAAO,CAAC,UAAU,CAA4B;gBAE1B,EAAE,EAAE,SAAS;IAejC,OAAO,KAAK,MAAM,GAEjB;IAED,OAAO,KAAK,SAAS,GAEpB;IAED,OAAO,KAAK,SAAS,GAEpB;IAED,OAAO,KAAK,WAAW,GAatB;IAEM,IAAI,CAAC,YAAY,GAAE,MAAc;IAWxC,OAAO,CAAC,mBAAmB;IAmCd,QAAQ,CAAC,IAAI,EAAE,MAAM;IA6BlC,OAAO,CAAC,WAAW;IAgCnB;;;OAGG;IACH,OAAO,CAAC,WAAW;YAIL,cAAc;IAmC5B,OAAO,CAAC,iBAAiB;YASX,qBAAqB;YAkBrB,uBAAuB;YAoBvB,eAAe;CAiB9B"}
package/dist/shared.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { S, g, i, r } from "./chunks/site-store-CGV9c2DI.js";
2
- import { R, T, W, b, c, g as g2, r as r2 } from "./chunks/template-DUdadCrH.js";
2
+ import { R, T, W, b, c, g as g2, r as r2 } from "./chunks/template-DVy2k_na.js";
3
3
  export {
4
4
  R as Router,
5
5
  S as SiteStore,
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/about-me/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAErC,qBACa,SAAU,SAAQ,UAAU;IACvC,MAAM,CAAC,MAAM,0BAAiB;IAG9B,QAAQ,CAAC,OAAO,SAAM;IAGtB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAQ;IAGxC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAM;IAGlC,QAAQ,CAAC,OAAO,UAAQ;IAEjB,OAAO,sBAAgB;;IAM9B,OAAO,KAAK,UAAU,GAErB;IAEK,iBAAiB;IAcvB,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;YAY7B,WAAW;IAuBzB,OAAO,CAAC,kBAAkB;IAS1B,MAAM;CA6BP"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/about-me/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAGvC,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAErC,qBACa,SAAU,SAAQ,UAAU;IACvC,MAAM,CAAC,MAAM,0BAAiB;IAG9B,QAAQ,CAAC,OAAO,SAAM;IAGtB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAQ;IAGxC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAM;IAGlC,QAAQ,CAAC,OAAO,UAAQ;IAEjB,OAAO,sBAAgB;;IAM9B,OAAO,KAAK,UAAU,GAErB;IAEK,iBAAiB;IAcvB,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;YAY7B,WAAW;IAuBzB,OAAO,CAAC,kBAAkB;IAS1B,MAAM;CA6BP"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/admin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAK5C,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE1D,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EACnB,CAAC;AAEF,qBACa,WAAY,SAAQ,UAAU;IACzC,MAAM,CAAC,MAAM,0BAAe;IAG5B,QAAQ,CAAC,eAAe,UAAS;IAGjC,QAAQ,CAAC,OAAO,UAAS;IAGzB,QAAQ,CAAC,SAAS,UAAQ;IAG1B,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,CAAM;IAGzC,QAAQ,CAAC,aAAa,SAAM;IAG5B,QAAQ,CAAC,aAAa,SAAa;IAGnC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAM;IAG3C,QAAQ,CAAC,UAAU,SAAM;IAEzB,OAAO,CAAC,UAAU,CAAkB;;IAQpC,OAAO,CAAC,gBAAgB;IAIlB,iBAAiB;IAMjB,eAAe;IAcf,YAAY;IASZ,WAAW,CAAC,CAAC,EAAE,WAAW;IAkB1B,WAAW,CAAC,CAAC,EAAE,WAAW;IAkC1B,YAAY;IAQZ,YAAY;IAQZ,kBAAkB;IAMlB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI;IAkBpC,gBAAgB;IAUhB,YAAY,CAAC,GAAG,EAAE,MAAM;IAS9B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,mBAAmB;IAY3B,eAAe;IAUf,WAAW;IAUX,MAAM;CAyDP;AAED,eAAO,MAAM,WAAW,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/admin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAKvC,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE1D,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EACnB,CAAC;AAEF,qBACa,WAAY,SAAQ,UAAU;IACzC,MAAM,CAAC,MAAM,0BAAe;IAG5B,QAAQ,CAAC,eAAe,UAAS;IAGjC,QAAQ,CAAC,OAAO,UAAS;IAGzB,QAAQ,CAAC,SAAS,UAAQ;IAG1B,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,CAAM;IAGzC,QAAQ,CAAC,aAAa,SAAM;IAG5B,QAAQ,CAAC,aAAa,SAAa;IAGnC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAM;IAG3C,QAAQ,CAAC,UAAU,SAAM;IAEzB,OAAO,CAAC,UAAU,CAAkB;;IAQpC,OAAO,CAAC,gBAAgB;IAIlB,iBAAiB;IAMjB,eAAe;IAcf,YAAY;IASZ,WAAW,CAAC,CAAC,EAAE,WAAW;IAkB1B,WAAW,CAAC,CAAC,EAAE,WAAW;IAkC1B,YAAY;IAQZ,YAAY;IAQZ,kBAAkB;IAMlB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI;IAkBpC,gBAAgB;IAUhB,YAAY,CAAC,GAAG,EAAE,MAAM;IAS9B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,mBAAmB;IAY3B,eAAe;IAUf,WAAW;IAUX,MAAM;CAyDP;AAED,eAAO,MAAM,WAAW,OAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/banner/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAK5C,qBACa,QAAS,SAAQ,UAAU;IACtC,MAAM,CAAC,MAAM,0BAAgB;IAE7B,MAAM,CAAC,UAAU;;;;;;;MAGf;IAEM,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;;IAQrB,MAAM;CAcP"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/banner/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAKvC,qBACa,QAAS,SAAQ,UAAU;IACtC,MAAM,CAAC,MAAM,0BAAgB;IAE7B,MAAM,CAAC,UAAU;;;;;;;MAGf;IAEM,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;;IAQrB,MAAM;CAcP"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/blog-viewer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AA0B5C,UAAU,QAAQ;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBACa,UAAW,SAAQ,UAAU;IACxC,MAAM,CAAC,MAAM,0BAAoB;IAGjC,QAAQ,CAAC,IAAI,SAAM;IAGnB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAQ;IAG1C,QAAQ,CAAC,OAAO,UAAQ;IAGxB,QAAQ,CAAC,KAAK,SAAM;IAEpB,OAAO,KAAK,UAAU,GAMrB;IAED,iBAAiB;IAOjB,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAM/C,QAAQ;IA4BR,MAAM;IA+BN,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAKxC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/blog-viewer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AA0BvC,UAAU,QAAQ;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBACa,UAAW,SAAQ,UAAU;IACxC,MAAM,CAAC,MAAM,0BAAoB;IAGjC,QAAQ,CAAC,IAAI,SAAM;IAGnB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAQ;IAG1C,QAAQ,CAAC,OAAO,UAAQ;IAGxB,QAAQ,CAAC,KAAK,SAAM;IAEpB,OAAO,KAAK,UAAU,GAMrB;IAED,iBAAiB;IAOjB,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAM/C,QAAQ;IA4BR,MAAM;IA+BN,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAIxC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/footer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAInE,qBACa,eAAgB,SAAQ,UAAU;IAC7C,MAAM,CAAC,MAAM,0BAAgB;IAG7B,QAAQ,CAAC,SAAS,SAAM;IAGxB,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,CAAM;IAEzC,MAAM;CA2BP"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/footer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAGvC,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAInE,qBACa,eAAgB,SAAQ,UAAU;IAC7C,MAAM,CAAC,MAAM,0BAAgB;IAG7B,QAAQ,CAAC,SAAS,SAAM;IAGxB,QAAQ,CAAC,WAAW,EAAE,WAAW,EAAE,CAAM;IAEzC,MAAM;CA2BP"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/story-viewer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AA0B5C,UAAU,SAAS;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBACa,WAAY,SAAQ,UAAU;IACzC,MAAM,CAAC,MAAM,0BAAqB;IAGlC,QAAQ,CAAC,IAAI,SAAM;IAGnB,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAQ;IAG5C,QAAQ,CAAC,OAAO,UAAQ;IAGxB,QAAQ,CAAC,KAAK,SAAM;IAEpB,OAAO,KAAK,UAAU,GAKrB;IAEK,iBAAiB;IAOvB,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;IAMrC,SAAS;IAuBf,MAAM;IA+BN,OAAO,CAAC,cAAc;CAKvB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/story-viewer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AA0BvC,UAAU,SAAS;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBACa,WAAY,SAAQ,UAAU;IACzC,MAAM,CAAC,MAAM,0BAAqB;IAGlC,QAAQ,CAAC,IAAI,SAAM;IAGnB,QAAQ,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAQ;IAG5C,QAAQ,CAAC,OAAO,UAAQ;IAGxB,QAAQ,CAAC,KAAK,SAAM;IAEpB,OAAO,KAAK,UAAU,GAKrB;IAEK,iBAAiB;IAOvB,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;IAMrC,SAAS;IAuBf,MAAM;IA+BN,OAAO,CAAC,cAAc;CAIvB"}
package/dist/ui.js CHANGED
@@ -1,4 +1,4 @@
1
- import { A, a, b, c, d, e, f, g, h, i, B, F, M, j, S, k } from "./chunks/index-DAog9TQE.js";
1
+ import { A, a, b, c, d, e, f, g, h, i, B, F, M, j, S, k } from "./chunks/index-DrnbjP2Q.js";
2
2
  export {
3
3
  A as AdminAboutMeSection,
4
4
  a as AdminBlogsSection,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leadertechie/personal-site-kit",
3
- "version": "0.1.0-alpha.18",
3
+ "version": "0.1.0-alpha.19",
4
4
  "type": "module",
5
5
  "description": "A high-performance personal website engine for Cloudflare Workers and R2",
6
6
  "repository": {
@@ -40,18 +40,25 @@
40
40
  "scripts": {
41
41
  "build": "vite build && npm run postbuild",
42
42
  "postbuild": "cp -r src/styles dist/",
43
- "test": "vitest run"
43
+ "test": "vitest run",
44
+ "lint": "eslint \"src/**/*.ts\"",
45
+ "lint:fix": "eslint \"src/**/*.ts\" --fix"
44
46
  },
45
47
  "dependencies": {
46
- "@leadertechie/md2html": "^0.1.0-alpha.15",
47
- "@leadertechie/md2interact": "^0.1.0-alpha.1",
48
- "@leadertechie/r2tohtml": "^0.1.0-alpha.14",
48
+ "@leadertechie/md2html": "^0.1.0-alpha.20",
49
+ "@leadertechie/md2interact": "^0.1.0-alpha.4",
50
+ "@leadertechie/r2tohtml": "^0.1.0-alpha.17",
49
51
  "lit": "^3.2.1"
50
52
  },
51
53
  "devDependencies": {
54
+ "@eslint/js": "^9.39.4",
52
55
  "@types/node": "^20.11.0",
56
+ "@typescript-eslint/eslint-plugin": "^8.20.0",
57
+ "@typescript-eslint/parser": "^8.20.0",
58
+ "eslint": "^9.18.0",
53
59
  "jsdom": "^29.0.1",
54
60
  "typescript": "^5.7.3",
61
+ "typescript-eslint": "^8.20.0",
55
62
  "vite": "^7.3.0",
56
63
  "vite-plugin-dts": "^4.5.4",
57
64
  "vitest": "^4.0.16"