Feat v0.6.5 renderer pipeline (#40)
All checks were successful
CI/CD / detect-changes (push) Successful in 4s
CI/CD / test-frontend (push) Successful in 6s
CI/CD / test-go-pg (push) Successful in 2m48s
CI/CD / test-sqlite (push) Successful in 2m52s
CI/CD / build-and-deploy (push) Successful in 1m20s

Co-authored-by: Jeffrey Smith <jasafpro@gmail.com>
Co-committed-by: Jeffrey Smith <jasafpro@gmail.com>
This commit was merged in pull request #40.
This commit is contained in:
2026-03-31 16:37:33 +00:00
committed by xcaliber
parent 36d6158940
commit 81c28a50bf
33 changed files with 2089 additions and 1974 deletions

View File

@@ -22,6 +22,8 @@ import { createStorage } from './storage.js';
import { createSlots } from './slots.js';
import { createActions } from './actions.js';
import { createRealtime } from './realtime.js';
import { createRenderers } from './renderers.js';
import { createMarkdown } from './markdown.js';
import { confirm } from '../primitives/confirm.js';
import { prompt } from '../primitives/prompt.js';
@@ -72,6 +74,8 @@ export async function boot() {
const slots = createSlots(events.emit.bind(events));
const actions = createActions(events.emit.bind(events));
const realtime = createRealtime(events);
const renderers = createRenderers(events.emit.bind(events));
const markdown = createMarkdown(renderers);
// 7. Assemble sw object
const sw = Object.create(null);
@@ -107,6 +111,12 @@ export async function boot() {
// Realtime — room-scoped pub/sub over WebSocket
sw.realtime = realtime;
// Renderers — kernel-level block/post renderer registry
sw.renderers = renderers;
// Markdown — unified renderer (marked + DOMPurify + sw.renderers pipeline)
sw.markdown = markdown;
// Shell helpers — imperative confirm/prompt backed by primitives
sw.confirm = confirm;
sw.prompt = prompt;
@@ -167,7 +177,7 @@ export async function boot() {
};
// Marker for idempotency
sw._sdk = '0.5.1';
sw._sdk = '0.6.5';
// 8. Expose globally
window.sw = sw;