@zenithbuild/runtime 0.1.9 → 0.2.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.
package/dist/index.js ADDED
@@ -0,0 +1,505 @@
1
+ // Zenith Runtime
2
+ // Ported from hydration_runtime.js
3
+ // Internal reactivity state
4
+ let cE = null;
5
+ let cS = [];
6
+ let bD = 0;
7
+ let isFlushing = false;
8
+ let flushScheduled = false;
9
+ const pE = new Set();
10
+ // Lifecycle State
11
+ let isMounted = false;
12
+ const unmountCallbacks = new Set();
13
+ // Public Reactivity Utilities
14
+ export const trackDependency = (s) => { if (cE) {
15
+ s.add(cE);
16
+ cE.dependencies.add(s);
17
+ } };
18
+ export const notifySubscribers = (s) => {
19
+ if (!s)
20
+ return;
21
+ const es = Array.from(s);
22
+ for (const e of es) {
23
+ if (e.isRunning)
24
+ continue;
25
+ if (bD > 0 || isFlushing)
26
+ pE.add(e);
27
+ else
28
+ e.run();
29
+ }
30
+ };
31
+ export const getCurrentContext = () => cE;
32
+ export const pushContext = (e) => { cS.push(cE); cE = e; };
33
+ export const popContext = () => { cE = cS.pop(); };
34
+ export const cleanupContext = (e) => { for (const d of e.dependencies)
35
+ d.delete(e); e.dependencies.clear(); };
36
+ export const startBatch = () => { bD++; };
37
+ export const endBatch = () => { bD--; if (bD === 0)
38
+ flushEffects(); };
39
+ export const isBatching = () => bD > 0;
40
+ export const runUntracked = (fn) => {
41
+ pushContext(null);
42
+ try {
43
+ return fn();
44
+ }
45
+ finally {
46
+ popContext();
47
+ }
48
+ };
49
+ // Public Lifecycle Utilities
50
+ export const triggerMount = () => { isMounted = true; };
51
+ export const triggerUnmount = () => {
52
+ isMounted = false;
53
+ executeUnmountCallbacks();
54
+ };
55
+ export const executeUnmountCallbacks = () => {
56
+ for (const cb of unmountCallbacks) {
57
+ try {
58
+ cb();
59
+ }
60
+ catch (e) {
61
+ console.error('Error in unmount callback:', e);
62
+ }
63
+ }
64
+ unmountCallbacks.clear();
65
+ };
66
+ export const getIsMounted = () => isMounted;
67
+ export const getUnmountCallbackCount = () => unmountCallbacks.size;
68
+ export const resetMountState = () => { isMounted = false; };
69
+ export const resetUnmountState = () => { unmountCallbacks.clear(); };
70
+ if (typeof window !== 'undefined') {
71
+ window.__ZENITH_EXPRESSIONS__ = new Map();
72
+ window.__ZENITH_SCOPES__ = {};
73
+ }
74
+ // Phase A3: Post-Mount Execution Hook
75
+ const mountedScopes = new Set();
76
+ export function mountComponent(scopeId) {
77
+ if (mountedScopes.has(scopeId))
78
+ return;
79
+ mountedScopes.add(scopeId);
80
+ const scope = window.__ZENITH_SCOPES__[scopeId];
81
+ if (!scope)
82
+ return;
83
+ if (typeof scope.__run === 'function') {
84
+ scope.__run();
85
+ }
86
+ }
87
+ // Internal shorthand helpers (matching original compiled code requirements if any)
88
+ const pC = pushContext;
89
+ const oC = popContext;
90
+ const tD = trackDependency;
91
+ const nS = notifySubscribers;
92
+ const cEf = cleanupContext;
93
+ export function zenRoute() {
94
+ if (typeof window === 'undefined')
95
+ return { path: '/', slugs: [] };
96
+ const path = window.location.pathname;
97
+ return {
98
+ path: path,
99
+ slugs: path.split('/').filter(Boolean)
100
+ };
101
+ }
102
+ function scheduleFlush() {
103
+ if (flushScheduled)
104
+ return;
105
+ flushScheduled = true;
106
+ queueMicrotask(() => {
107
+ flushScheduled = false;
108
+ flushEffects();
109
+ });
110
+ }
111
+ function flushEffects() {
112
+ if (isFlushing || bD > 0)
113
+ return;
114
+ isFlushing = true;
115
+ try {
116
+ while (pE.size > 0) {
117
+ const efs = Array.from(pE);
118
+ pE.clear();
119
+ for (const e of efs) {
120
+ if (!e.isRunning)
121
+ e.run();
122
+ }
123
+ }
124
+ }
125
+ finally {
126
+ isFlushing = false;
127
+ }
128
+ }
129
+ export const signal = function (v) {
130
+ const s = new Set();
131
+ function sig(nV) {
132
+ if (arguments.length === 0) {
133
+ tD(s);
134
+ return v;
135
+ }
136
+ if (nV !== v) {
137
+ v = nV;
138
+ nS(s);
139
+ scheduleFlush();
140
+ }
141
+ return v;
142
+ }
143
+ sig._isSignal = true;
144
+ sig.toString = () => String(v);
145
+ sig.valueOf = () => v;
146
+ return sig;
147
+ };
148
+ export const state = function (o) {
149
+ const subs = new Map();
150
+ function gS(p) { if (!subs.has(p))
151
+ subs.set(p, new Set()); return subs.get(p); }
152
+ function notify(p) { nS(gS(p)); scheduleFlush(); }
153
+ function subscribe(p, ef) { gS(p).add(ef); ef.dependencies.add(gS(p)); }
154
+ function cP(obj, pPath = '') {
155
+ if (obj === null || typeof obj !== 'object' || obj._isSignal)
156
+ return obj;
157
+ return new Proxy(obj, {
158
+ get(t, p) {
159
+ if (p === Symbol.for('zenith_notify'))
160
+ return notify;
161
+ if (p === Symbol.for('zenith_subscribe'))
162
+ return subscribe;
163
+ if (typeof p === 'symbol')
164
+ return t[p];
165
+ const path = pPath ? `${pPath}.${String(p)}` : String(p);
166
+ tD(gS(path));
167
+ const v = t[p];
168
+ if (v !== null && typeof v === 'object' && !v._isSignal)
169
+ return cP(v, path);
170
+ return v;
171
+ },
172
+ set(t, p, nV) {
173
+ if (typeof p === 'symbol') {
174
+ t[p] = nV;
175
+ return true;
176
+ }
177
+ const path = pPath ? `${pPath}.${String(p)}` : String(p);
178
+ const oV = t[p];
179
+ if (oV && typeof oV === 'function' && oV._isSignal)
180
+ oV(nV);
181
+ else if (oV !== nV) {
182
+ t[p] = nV;
183
+ nS(gS(path));
184
+ const pts = path.split('.');
185
+ for (let i = pts.length - 1; i >= 0; i--) {
186
+ const pp = pts.slice(0, i).join('.');
187
+ if (pp)
188
+ nS(gS(pp));
189
+ }
190
+ scheduleFlush();
191
+ }
192
+ return true;
193
+ }
194
+ });
195
+ }
196
+ return cP(o);
197
+ };
198
+ export const effect = function (fn, opts = {}) {
199
+ let cl, tm;
200
+ const ef = {
201
+ dependencies: new Set(),
202
+ isRunning: false,
203
+ run: () => {
204
+ if (ef.isRunning)
205
+ return;
206
+ const schedule = opts.scheduler || ((f) => f());
207
+ if (opts.debounce) {
208
+ if (tm)
209
+ clearTimeout(tm);
210
+ tm = setTimeout(() => schedule(ex), opts.debounce);
211
+ }
212
+ else
213
+ schedule(ex);
214
+ }
215
+ };
216
+ function ex() {
217
+ if (ef.isRunning)
218
+ return;
219
+ ef.isRunning = true;
220
+ cEf(ef);
221
+ pC(ef);
222
+ try {
223
+ if (cl)
224
+ cl();
225
+ cl = fn();
226
+ }
227
+ finally {
228
+ oC();
229
+ ef.isRunning = false;
230
+ }
231
+ }
232
+ if (!opts.defer)
233
+ ex();
234
+ return () => { cEf(ef); if (cl)
235
+ cl(); };
236
+ };
237
+ export const memo = function (fn) {
238
+ const sig = signal(undefined);
239
+ effect(() => sig(fn()));
240
+ const m = () => sig();
241
+ m._isSignal = true;
242
+ return m;
243
+ };
244
+ export const batch = function (fn) {
245
+ startBatch();
246
+ try {
247
+ fn();
248
+ }
249
+ finally {
250
+ endBatch();
251
+ }
252
+ };
253
+ export const untrack = function (fn) {
254
+ return runUntracked(fn);
255
+ };
256
+ export const ref = (i) => ({ current: i || null });
257
+ export const onMount = (cb) => {
258
+ if (typeof window !== 'undefined' && window.__zenith && window.__zenith.activeInstance) {
259
+ window.__zenith.activeInstance.mountHooks.push(cb);
260
+ }
261
+ else {
262
+ // Fallback for non-component context or SSR
263
+ if (isMounted)
264
+ cb();
265
+ }
266
+ };
267
+ export const onUnmount = (cb) => {
268
+ unmountCallbacks.add(cb);
269
+ };
270
+ // DOM Helper (hC)
271
+ function hC(parent, child) {
272
+ if (child == null || child === false)
273
+ return;
274
+ let fn = child;
275
+ let id = null;
276
+ if (typeof child === 'object' && child.fn) {
277
+ fn = child.fn;
278
+ id = child.id;
279
+ }
280
+ const isTitle = parent && parent.tagName && parent.tagName.toLowerCase() === 'title';
281
+ if (typeof fn === 'function') {
282
+ if (isTitle) {
283
+ const val = fn();
284
+ if (val != null && val !== false) {
285
+ const text = String(val);
286
+ parent.appendChild(document.createTextNode(text));
287
+ document.title = text;
288
+ }
289
+ effect(() => {
290
+ const newVal = fn();
291
+ if (newVal != null && newVal !== false) {
292
+ const newText = String(newVal);
293
+ if (document.title !== newText) {
294
+ parent.textContent = newText;
295
+ document.title = newText;
296
+ }
297
+ }
298
+ }, { id: id ? `title-${id}` : 'title-sync' });
299
+ }
300
+ else {
301
+ const ph = document.createComment('expr' + (id ? ':' + id : ''));
302
+ parent.appendChild(ph);
303
+ let curNodes = [];
304
+ effect(() => {
305
+ const r = fn();
306
+ curNodes.forEach(n => { if (n.parentNode)
307
+ n.parentNode.removeChild(n); });
308
+ curNodes = [];
309
+ if (r == null || r === false)
310
+ return;
311
+ const items = Array.isArray(r) ? r.flat(Infinity) : [r];
312
+ items.forEach(item => {
313
+ if (item == null || item === false)
314
+ return;
315
+ const node = item instanceof Node ? item : document.createTextNode(String(item));
316
+ if (ph.parentNode) {
317
+ ph.parentNode.insertBefore(node, ph);
318
+ curNodes.push(node);
319
+ }
320
+ });
321
+ }, { id });
322
+ }
323
+ }
324
+ else if (Array.isArray(child)) {
325
+ child.flat(Infinity).forEach(c => hC(parent, c));
326
+ }
327
+ else {
328
+ parent.appendChild(child instanceof Node ? child : document.createTextNode(String(child)));
329
+ }
330
+ }
331
+ // Global Hydration
332
+ export function hydrate(state, container = document, locals = {}) {
333
+ const ir = window.canonicalIR;
334
+ if (!ir)
335
+ return;
336
+ window.__ZENITH_STATE__ = state;
337
+ const rootScope = { state, props: {}, locals: locals };
338
+ const nodes = ir(rootScope);
339
+ function findTag(items, tag) {
340
+ const list = Array.isArray(items) ? items : [items];
341
+ for (const item of list) {
342
+ if (item instanceof Element && item.tagName.toLowerCase() === tag)
343
+ return item;
344
+ if (item instanceof DocumentFragment) {
345
+ const found = findTag(Array.from(item.childNodes), tag);
346
+ if (found)
347
+ return found;
348
+ }
349
+ }
350
+ return null;
351
+ }
352
+ const headNode = findTag(nodes, 'head');
353
+ const bodyNode = findTag(nodes, 'body');
354
+ if (headNode) {
355
+ const headMount = document.head;
356
+ const newTitle = headNode.querySelector('title');
357
+ if (newTitle) {
358
+ let oldTitle = headMount.querySelector('title');
359
+ if (!oldTitle) {
360
+ oldTitle = document.createElement('title');
361
+ headMount.appendChild(oldTitle);
362
+ }
363
+ const titleContent = newTitle.childNodes.length > 0
364
+ ? Array.from(newTitle.childNodes).map((n) => n.textContent).join('')
365
+ : '';
366
+ oldTitle.textContent = titleContent;
367
+ document.title = titleContent;
368
+ effect(() => {
369
+ const text = oldTitle.textContent?.trim();
370
+ if (text && document.title !== text) {
371
+ document.title = text;
372
+ }
373
+ }, { id: 'title-sync' });
374
+ }
375
+ headNode.querySelectorAll('meta').forEach((newMeta) => {
376
+ const name = newMeta.getAttribute('name');
377
+ if (name) {
378
+ const oldMeta = headMount.querySelector(`meta[name="${name}"]`);
379
+ if (oldMeta)
380
+ oldMeta.setAttribute('content', newMeta.getAttribute('content'));
381
+ else
382
+ headMount.appendChild(newMeta.cloneNode(true));
383
+ }
384
+ });
385
+ headNode.childNodes.forEach((n) => {
386
+ if (n.tagName === 'TITLE' || n.tagName === 'META')
387
+ return;
388
+ headMount.appendChild(n.cloneNode(true));
389
+ });
390
+ }
391
+ const bodyMount = container === document ? document.body : container;
392
+ if (bodyNode) {
393
+ bodyMount.innerHTML = '';
394
+ Array.from(bodyNode.childNodes).forEach(n => hC(bodyMount, n));
395
+ }
396
+ else {
397
+ bodyMount.innerHTML = '';
398
+ const items = Array.isArray(nodes) ? nodes : [nodes];
399
+ items.forEach(n => hC(bodyMount, n));
400
+ }
401
+ for (const scopeId in window.__ZENITH_SCOPES__) {
402
+ mountComponent(scopeId);
403
+ }
404
+ queueMicrotask(() => {
405
+ flushEffects();
406
+ const titleEl = document.querySelector('title');
407
+ if (titleEl && titleEl.textContent) {
408
+ const text = titleEl.textContent.trim();
409
+ if (text && document.title !== text) {
410
+ document.title = text;
411
+ }
412
+ }
413
+ });
414
+ }
415
+ // Ordered Effects
416
+ export function order(fn) {
417
+ if (typeof fn === 'function')
418
+ fn();
419
+ }
420
+ // Hyperscript
421
+ let currentNamespace = null;
422
+ export function h(tag, props, children) {
423
+ const SVG_NS = 'http://www.w3.org/2000/svg';
424
+ const SVG_TAGS = new Set(['svg', 'path', 'circle', 'ellipse', 'line', 'polygon', 'polyline', 'rect', 'g', 'defs', 'clipPath', 'mask', 'use', 'symbol', 'text', 'tspan', 'textPath', 'image', 'foreignObject', 'switch', 'desc', 'title', 'metadata', 'linearGradient', 'radialGradient', 'stop', 'pattern', 'filter', 'feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feFlood', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'feSpecularLighting', 'feTile', 'feTurbulence', 'animate', 'animateMotion', 'animateTransform', 'set', 'marker']);
425
+ const isSvgTag = SVG_TAGS.has(tag) || SVG_TAGS.has(tag.toLowerCase());
426
+ const useSvgNamespace = isSvgTag || currentNamespace === SVG_NS;
427
+ const el = useSvgNamespace ? document.createElementNS(SVG_NS, tag) : document.createElement(tag);
428
+ const previousNamespace = currentNamespace;
429
+ if (tag === 'svg' || tag === 'SVG') {
430
+ currentNamespace = SVG_NS;
431
+ }
432
+ if (props) {
433
+ const setClass = (element, value) => {
434
+ if (useSvgNamespace && 'className' in element && typeof element.className === 'object') {
435
+ element.className.baseVal = String(value || '');
436
+ }
437
+ else {
438
+ element.className = String(value || '');
439
+ }
440
+ };
441
+ for (const [k, v] of Object.entries(props)) {
442
+ if (k === 'ref') {
443
+ if (v && typeof v === 'object' && 'current' in v)
444
+ v.current = el;
445
+ else if (typeof v === 'string') {
446
+ const s = window.__ZENITH_STATE__;
447
+ if (s && s[v] && typeof s[v] === 'object' && 'current' in s[v])
448
+ s[v].current = el;
449
+ }
450
+ }
451
+ else if (k.startsWith('on')) {
452
+ let fn = v;
453
+ if (v && typeof v === 'object' && v.fn)
454
+ fn = v.fn;
455
+ if (typeof fn === 'function') {
456
+ el.addEventListener(k.slice(2).toLowerCase(), (e) => {
457
+ const h = fn.call(el, e, el);
458
+ if (typeof h === 'function')
459
+ h.call(el, e, el);
460
+ });
461
+ }
462
+ }
463
+ else {
464
+ let fn = v;
465
+ let id = null;
466
+ if (typeof v === 'object' && v.fn) {
467
+ fn = v.fn;
468
+ id = v.id;
469
+ }
470
+ if (typeof fn === 'function') {
471
+ effect(() => {
472
+ const val = fn();
473
+ if (k === 'class' || k === 'className')
474
+ setClass(el, val);
475
+ else if (val == null || val === false)
476
+ el.removeAttribute(k);
477
+ else if (el.setAttribute)
478
+ el.setAttribute(k, String(val));
479
+ }, { id });
480
+ }
481
+ else {
482
+ if (k === 'class' || k === 'className')
483
+ setClass(el, v);
484
+ else if (el.setAttribute)
485
+ el.setAttribute(k, String(v));
486
+ }
487
+ }
488
+ }
489
+ }
490
+ if (children) {
491
+ const items = Array.isArray(children) ? children : [children];
492
+ items.forEach(c => hC(el, c));
493
+ }
494
+ currentNamespace = previousNamespace;
495
+ return el;
496
+ }
497
+ export function fragment(c) {
498
+ const f = document.createDocumentFragment();
499
+ const items = Array.isArray(c) ? c : [c];
500
+ items.forEach(i => hC(f, i));
501
+ return f;
502
+ }
503
+ export * from './dom-hydration.js';
504
+ export * from './thin-runtime.js';
505
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Thin Runtime
3
+ *
4
+ * Phase 8/9/10: Declarative runtime for DOM updates and event binding
5
+ *
6
+ * This runtime is purely declarative - it:
7
+ * - Updates DOM nodes by ID
8
+ * - Binds event handlers
9
+ * - Reacts to state changes
10
+ * - Does NOT parse templates or expressions
11
+ * - Does NOT use eval, new Function, or with(window)
12
+ */
13
+ /**
14
+ * Generate thin declarative runtime code
15
+ *
16
+ * This runtime is minimal and safe - it only:
17
+ * 1. Updates DOM nodes using pre-compiled expression functions
18
+ * 2. Binds event handlers by ID
19
+ * 3. Provides reactive state updates
20
+ *
21
+ * All expressions are pre-compiled at build time.
22
+ */
23
+ export declare function generateThinRuntime(): string;
24
+ //# sourceMappingURL=thin-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thin-runtime.d.ts","sourceRoot":"","sources":["../src/thin-runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAuI5C"}