@elurjs/core 3.6.1 → 3.7.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. package/dist/lib/async.cjs +1 -1
  2. package/dist/lib/async.js +1 -1
  3. package/dist/lib/component.cjs +1 -2
  4. package/dist/lib/component.js +2 -66
  5. package/dist/lib/context.cjs +1 -1
  6. package/dist/lib/context.js +35 -23
  7. package/dist/lib/devtools.cjs +1 -1
  8. package/dist/lib/devtools.js +1 -1
  9. package/dist/lib/elur/async.cjs +1 -1
  10. package/dist/lib/elur/async.cjs.map +1 -1
  11. package/dist/lib/elur/async.js +1 -1
  12. package/dist/lib/elur/component.cjs +1 -2
  13. package/dist/lib/elur/component.d.cts +1 -17
  14. package/dist/lib/elur/component.d.ts +1 -17
  15. package/dist/lib/elur/component.js +2 -66
  16. package/dist/lib/elur/context.cjs +1 -1
  17. package/dist/lib/elur/context.cjs.map +1 -1
  18. package/dist/lib/elur/context.d.cts +5 -0
  19. package/dist/lib/elur/context.d.ts +5 -0
  20. package/dist/lib/elur/context.js +35 -23
  21. package/dist/lib/elur/context.js.map +1 -1
  22. package/dist/lib/elur/devtools.cjs +1 -1
  23. package/dist/lib/elur/devtools.cjs.map +1 -1
  24. package/dist/lib/elur/devtools.js +1 -1
  25. package/dist/lib/elur/form.cjs +1 -1
  26. package/dist/lib/elur/form.cjs.map +1 -1
  27. package/dist/lib/elur/form.js +1 -1
  28. package/dist/lib/elur/hydrate/index.cjs +1 -2
  29. package/dist/lib/elur/hydrate/index.d.cts +1 -13
  30. package/dist/lib/elur/hydrate/index.d.ts +1 -13
  31. package/dist/lib/elur/hydrate/index.js +2 -410
  32. package/dist/lib/elur/lifecycle.cjs +1 -1
  33. package/dist/lib/elur/lifecycle.cjs.map +1 -1
  34. package/dist/lib/elur/lifecycle.d.cts +27 -0
  35. package/dist/lib/elur/lifecycle.d.ts +27 -0
  36. package/dist/lib/elur/lifecycle.js +4 -0
  37. package/dist/lib/elur/lifecycle.js.map +1 -1
  38. package/dist/lib/elur/next/component.d.cts +281 -0
  39. package/dist/lib/elur/next/component.d.ts +281 -0
  40. package/dist/lib/elur/next/dom-write.d.cts +18 -0
  41. package/dist/lib/elur/next/dom-write.d.ts +18 -0
  42. package/dist/lib/elur/next/hydrate.d.cts +14 -0
  43. package/dist/lib/elur/next/hydrate.d.ts +14 -0
  44. package/dist/lib/elur/next/keyed-diff.d.cts +46 -0
  45. package/dist/lib/elur/next/keyed-diff.d.ts +46 -0
  46. package/dist/lib/elur/next/mount-helpers.d.cts +25 -0
  47. package/dist/lib/elur/next/mount-helpers.d.ts +25 -0
  48. package/dist/lib/elur/next/mount.d.cts +29 -0
  49. package/dist/lib/elur/next/mount.d.ts +29 -0
  50. package/dist/lib/elur/next/node-binding.d.cts +6 -0
  51. package/dist/lib/elur/next/node-binding.d.ts +6 -0
  52. package/dist/lib/elur/next/reactivity.d.cts +193 -0
  53. package/dist/lib/elur/next/reactivity.d.ts +193 -0
  54. package/dist/lib/elur/next-2/component.cjs +2 -0
  55. package/dist/lib/elur/next-2/component.cjs.map +1 -0
  56. package/dist/lib/elur/next-2/component.d.cts +283 -0
  57. package/dist/lib/elur/next-2/component.d.ts +283 -0
  58. package/dist/lib/elur/next-2/component.js +340 -0
  59. package/dist/lib/elur/next-2/component.js.map +1 -0
  60. package/dist/lib/elur/next-2/dom-write.cjs +2 -0
  61. package/dist/lib/elur/next-2/dom-write.cjs.map +1 -0
  62. package/dist/lib/elur/next-2/dom-write.d.cts +18 -0
  63. package/dist/lib/elur/next-2/dom-write.d.ts +18 -0
  64. package/dist/lib/elur/next-2/dom-write.js +31 -0
  65. package/dist/lib/elur/next-2/dom-write.js.map +1 -0
  66. package/dist/lib/elur/next-2/hydrate.cjs +2 -0
  67. package/dist/lib/elur/next-2/hydrate.cjs.map +1 -0
  68. package/dist/lib/elur/next-2/hydrate.d.cts +30 -0
  69. package/dist/lib/elur/next-2/hydrate.d.ts +30 -0
  70. package/dist/lib/elur/next-2/hydrate.js +449 -0
  71. package/dist/lib/elur/next-2/hydrate.js.map +1 -0
  72. package/dist/lib/elur/next-2/keyed-diff.cjs +2 -0
  73. package/dist/lib/elur/next-2/keyed-diff.cjs.map +1 -0
  74. package/dist/lib/elur/next-2/keyed-diff.d.cts +79 -0
  75. package/dist/lib/elur/next-2/keyed-diff.d.ts +79 -0
  76. package/dist/lib/elur/next-2/keyed-diff.js +208 -0
  77. package/dist/lib/elur/next-2/keyed-diff.js.map +1 -0
  78. package/dist/lib/elur/next-2/mount-helpers.cjs +2 -0
  79. package/dist/lib/elur/next-2/mount-helpers.cjs.map +1 -0
  80. package/dist/lib/elur/next-2/mount-helpers.d.cts +25 -0
  81. package/dist/lib/elur/next-2/mount-helpers.d.ts +25 -0
  82. package/dist/lib/elur/next-2/mount-helpers.js +87 -0
  83. package/dist/lib/elur/next-2/mount-helpers.js.map +1 -0
  84. package/dist/lib/elur/next-2/mount.cjs +2 -0
  85. package/dist/lib/elur/next-2/mount.cjs.map +1 -0
  86. package/dist/lib/elur/next-2/mount.d.cts +29 -0
  87. package/dist/lib/elur/next-2/mount.d.ts +29 -0
  88. package/dist/lib/elur/next-2/mount.js +34 -0
  89. package/dist/lib/elur/next-2/mount.js.map +1 -0
  90. package/dist/lib/elur/next-2/node-binding.cjs +2 -0
  91. package/dist/lib/elur/next-2/node-binding.cjs.map +1 -0
  92. package/dist/lib/elur/next-2/node-binding.d.cts +6 -0
  93. package/dist/lib/elur/next-2/node-binding.d.ts +6 -0
  94. package/dist/lib/elur/next-2/node-binding.js +130 -0
  95. package/dist/lib/elur/next-2/node-binding.js.map +1 -0
  96. package/dist/lib/elur/next-2/reactivity.cjs +2 -0
  97. package/dist/lib/elur/next-2/reactivity.cjs.map +1 -0
  98. package/dist/lib/elur/next-2/reactivity.d.cts +220 -0
  99. package/dist/lib/elur/next-2/reactivity.d.ts +220 -0
  100. package/dist/lib/elur/next-2/reactivity.js +614 -0
  101. package/dist/lib/elur/next-2/reactivity.js.map +1 -0
  102. package/dist/lib/elur/next-2/scheduler.cjs +2 -0
  103. package/dist/lib/elur/next-2/scheduler.cjs.map +1 -0
  104. package/dist/lib/elur/next-2/scheduler.d.cts +23 -0
  105. package/dist/lib/elur/next-2/scheduler.d.ts +23 -0
  106. package/dist/lib/elur/next-2/scheduler.js +26 -0
  107. package/dist/lib/elur/next-2/scheduler.js.map +1 -0
  108. package/dist/lib/elur/plugins.cjs +1 -1
  109. package/dist/lib/elur/plugins.cjs.map +1 -1
  110. package/dist/lib/elur/plugins.js +1 -1
  111. package/dist/lib/elur/reactivity.cjs +1 -2
  112. package/dist/lib/elur/reactivity.d.cts +1 -67
  113. package/dist/lib/elur/reactivity.d.ts +1 -67
  114. package/dist/lib/elur/reactivity.js +2 -218
  115. package/dist/lib/elur/router.cjs +2 -2
  116. package/dist/lib/elur/router.cjs.map +1 -1
  117. package/dist/lib/elur/router.js +2 -2
  118. package/dist/lib/elur/router.js.map +1 -1
  119. package/dist/lib/elur/server/index.cjs +1 -1
  120. package/dist/lib/elur/server/index.cjs.map +1 -1
  121. package/dist/lib/elur/server/index.js +180 -108
  122. package/dist/lib/elur/server/index.js.map +1 -1
  123. package/dist/lib/elur/store.cjs +1 -1
  124. package/dist/lib/elur/store.cjs.map +1 -1
  125. package/dist/lib/elur/store.js +10 -4
  126. package/dist/lib/elur/store.js.map +1 -1
  127. package/dist/lib/elur/template/bindings.cjs +1 -1
  128. package/dist/lib/elur/template/bindings.cjs.map +1 -1
  129. package/dist/lib/elur/template/bindings.js +98 -84
  130. package/dist/lib/elur/template/bindings.js.map +1 -1
  131. package/dist/lib/elur/template/dom-write.d.cts +1 -5
  132. package/dist/lib/elur/template/dom-write.d.ts +1 -5
  133. package/dist/lib/elur/template/error-boundary.cjs +1 -1
  134. package/dist/lib/elur/template/error-boundary.cjs.map +1 -1
  135. package/dist/lib/elur/template/error-boundary.js +56 -50
  136. package/dist/lib/elur/template/error-boundary.js.map +1 -1
  137. package/dist/lib/elur/template/html.cjs +1 -1
  138. package/dist/lib/elur/template/html.cjs.map +1 -1
  139. package/dist/lib/elur/template/html.js +40 -37
  140. package/dist/lib/elur/template/html.js.map +1 -1
  141. package/dist/lib/elur/template/index.cjs +1 -1
  142. package/dist/lib/elur/template/index.d.cts +2 -1
  143. package/dist/lib/elur/template/index.d.ts +2 -1
  144. package/dist/lib/elur/template/index.js +13 -12
  145. package/dist/lib/elur/template/keyed-diff.d.cts +1 -32
  146. package/dist/lib/elur/template/keyed-diff.d.ts +1 -32
  147. package/dist/lib/elur/template/keyed.cjs +1 -1
  148. package/dist/lib/elur/template/keyed.cjs.map +1 -1
  149. package/dist/lib/elur/template/keyed.d.cts +10 -2
  150. package/dist/lib/elur/template/keyed.d.ts +10 -2
  151. package/dist/lib/elur/template/keyed.js +12 -1
  152. package/dist/lib/elur/template/keyed.js.map +1 -1
  153. package/dist/lib/elur/template/mount-helpers.d.cts +1 -29
  154. package/dist/lib/elur/template/mount-helpers.d.ts +1 -29
  155. package/dist/lib/elur/template/node-binding.d.cts +1 -6
  156. package/dist/lib/elur/template/node-binding.d.ts +1 -6
  157. package/dist/lib/elur/template/portal.cjs +1 -1
  158. package/dist/lib/elur/template/portal.cjs.map +1 -1
  159. package/dist/lib/elur/template/portal.js +1 -1
  160. package/dist/lib/elur/template/transitions.cjs +1 -1
  161. package/dist/lib/elur/template/transitions.cjs.map +1 -1
  162. package/dist/lib/elur/template/transitions.js +2 -2
  163. package/dist/lib/elur/template/types.cjs +1 -1
  164. package/dist/lib/elur/template/types.cjs.map +1 -1
  165. package/dist/lib/elur/template/types.d.cts +55 -0
  166. package/dist/lib/elur/template/types.d.ts +55 -0
  167. package/dist/lib/elur/template/types.js +5 -1
  168. package/dist/lib/elur/template/types.js.map +1 -1
  169. package/dist/lib/elur.cjs +1 -1
  170. package/dist/lib/elur.js +2 -2
  171. package/dist/lib/form.cjs +1 -1
  172. package/dist/lib/form.js +1 -1
  173. package/dist/lib/hydrate.cjs +1 -2
  174. package/dist/lib/hydrate.js +2 -410
  175. package/dist/lib/index.cjs +1 -1
  176. package/dist/lib/index.js +2 -2
  177. package/dist/lib/lifecycle.cjs +1 -1
  178. package/dist/lib/lifecycle.js +4 -0
  179. package/dist/lib/plugins.cjs +1 -1
  180. package/dist/lib/plugins.js +1 -1
  181. package/dist/lib/router.cjs +2 -2
  182. package/dist/lib/router.js +2 -2
  183. package/dist/lib/server.cjs +1 -1
  184. package/dist/lib/server.js +180 -108
  185. package/dist/lib/signals.cjs +1 -2
  186. package/dist/lib/signals.js +2 -218
  187. package/dist/lib/store.cjs +1 -1
  188. package/dist/lib/store.js +10 -4
  189. package/dist/lib/template.cjs +1 -1
  190. package/dist/lib/template.js +13 -12
  191. package/package.json +7 -9
  192. package/dist/lib/elur/component.cjs.map +0 -1
  193. package/dist/lib/elur/component.js.map +0 -1
  194. package/dist/lib/elur/hydrate/index.cjs.map +0 -1
  195. package/dist/lib/elur/hydrate/index.js.map +0 -1
  196. package/dist/lib/elur/reactivity.cjs.map +0 -1
  197. package/dist/lib/elur/reactivity.js.map +0 -1
  198. package/dist/lib/elur/template/dom-write.cjs +0 -2
  199. package/dist/lib/elur/template/dom-write.cjs.map +0 -1
  200. package/dist/lib/elur/template/dom-write.js +0 -16
  201. package/dist/lib/elur/template/dom-write.js.map +0 -1
  202. package/dist/lib/elur/template/keyed-diff.cjs +0 -2
  203. package/dist/lib/elur/template/keyed-diff.cjs.map +0 -1
  204. package/dist/lib/elur/template/keyed-diff.js +0 -100
  205. package/dist/lib/elur/template/keyed-diff.js.map +0 -1
  206. package/dist/lib/elur/template/mount-helpers.cjs +0 -2
  207. package/dist/lib/elur/template/mount-helpers.cjs.map +0 -1
  208. package/dist/lib/elur/template/mount-helpers.js +0 -132
  209. package/dist/lib/elur/template/mount-helpers.js.map +0 -1
  210. package/dist/lib/elur/template/node-binding.cjs +0 -2
  211. package/dist/lib/elur/template/node-binding.cjs.map +0 -1
  212. package/dist/lib/elur/template/node-binding.js +0 -95
  213. package/dist/lib/elur/template/node-binding.js.map +0 -1
@@ -1,18 +1,19 @@
1
- import { ELUR_RENDER_PROTOCOL as e, ELUR_TEMPLATE_DESCRIPTOR as t, isElurTemplate as n, isKeyedList as r } from "./elur/template/types.js";
2
- import { isElurComponent as i } from "./lifecycle.js";
3
- import { _popComponentContext as a, _pushComponentContext as o, _setContextScopeResolver as s } from "./context.js";
4
- import { normalizeRepeatKey as c, serializeRepeatKey as l } from "./elur/template/keyed.js";
5
- import { sanitizeUrl as u } from "./elur/template/sanitize.js";
6
- import { AsyncLocalStorage as d } from "node:async_hooks";
1
+ import { Signal as e, untrack as t } from "./elur/next-2/reactivity.js";
2
+ import { ELUR_RENDER_PROTOCOL as n, ELUR_TEMPLATE_DESCRIPTOR as r, isDerivedBinding as i, isElurTemplate as a, isKeyedList as o } from "./elur/template/types.js";
3
+ import { isElurComponent as s } from "./lifecycle.js";
4
+ import { _popComponentContext as c, _pushComponentContext as l, _setContextScopeResolver as u } from "./context.js";
5
+ import { normalizeRepeatKey as d, serializeRepeatKey as f } from "./elur/template/keyed.js";
6
+ import { sanitizeUrl as p } from "./elur/template/sanitize.js";
7
+ import { AsyncLocalStorage as m } from "node:async_hooks";
7
8
  //#region src/elur/server/index.ts
8
- var f = n, p = r, m = new d();
9
- s(() => m.getStore());
10
- function h(e = {}) {
9
+ var h = a, g = o, _ = new m();
10
+ u(() => _.getStore());
11
+ function v(e = {}) {
11
12
  let t = new AbortController(), n = {
12
13
  markers: e.markers === "hydration",
13
14
  context: e.context,
14
15
  onError: e.onError
15
- }, r = (e) => Promise.resolve(m.run([], e));
16
+ }, r = (e) => Promise.resolve(_.run([], e));
16
17
  return {
17
18
  signal: t.signal,
18
19
  async render(e, i) {
@@ -22,11 +23,11 @@ function h(e = {}) {
22
23
  signal: t.signal
23
24
  }, o = "";
24
25
  return await r(() => (async () => {
25
- for await (let t of y(e, a)) o += t.value;
26
+ for await (let t of S(e, a)) o += t.value;
26
27
  })()), o;
27
28
  },
28
29
  renderToChunks(e, r) {
29
- return g(e, {
30
+ return y(e, {
30
31
  ...n,
31
32
  markers: r?.markers ?? n.markers,
32
33
  signal: t.signal
@@ -37,13 +38,13 @@ function h(e = {}) {
37
38
  }
38
39
  };
39
40
  }
40
- function g(e, t) {
41
+ function y(e, t) {
41
42
  return { async *[Symbol.asyncIterator]() {
42
43
  let n = [], r = [], i = !1, a, o = () => {
43
44
  r.shift()?.();
44
- }, s = m.run([], async () => {
45
+ }, s = _.run([], async () => {
45
46
  try {
46
- for await (let r of y(e, t)) n.push(r), o();
47
+ for await (let r of S(e, t)) n.push(r), o();
47
48
  } catch (e) {
48
49
  a = e;
49
50
  } finally {
@@ -56,7 +57,11 @@ function g(e, t) {
56
57
  let e = n.shift();
57
58
  e && (yield e);
58
59
  }
59
- if (a) throw a;
60
+ if (a) throw yield {
61
+ type: "error",
62
+ value: a instanceof Error ? a.message : String(a),
63
+ index: -1
64
+ }, a;
60
65
  yield {
61
66
  type: "done",
62
67
  value: "",
@@ -64,66 +69,66 @@ function g(e, t) {
64
69
  }, await s;
65
70
  } };
66
71
  }
67
- async function _(e, t = {}) {
72
+ async function b(e, t = {}) {
68
73
  let n = {
69
74
  markers: t.markers === "hydration",
70
75
  signal: t.signal,
71
76
  context: t.context,
72
77
  onError: t.onError
73
78
  }, r = "";
74
- return await Promise.resolve(m.run([], async () => {
75
- for await (let t of y(e, n)) r += t.value;
79
+ return await Promise.resolve(_.run([], async () => {
80
+ for await (let t of S(e, n)) r += t.value;
76
81
  })), r;
77
82
  }
78
- function v(e, t = {}) {
79
- return g(e, {
83
+ function x(e, t = {}) {
84
+ return y(e, {
80
85
  markers: t.markers === "hydration",
81
86
  signal: t.signal,
82
87
  context: t.context,
83
88
  onError: t.onError
84
89
  });
85
90
  }
86
- async function* y(n, r) {
87
- if (C(r), n instanceof Promise) {
88
- yield* y(await n, r);
91
+ async function* S(e, t) {
92
+ if (D(t), e instanceof Promise) {
93
+ yield* S(await e, t);
89
94
  return;
90
95
  }
91
- if (!(n == null || n === !1 || n === !0)) {
92
- if (typeof n == "string" || typeof n == "number" || typeof n == "bigint") {
96
+ if (!(e == null || e === !1 || e === !0)) {
97
+ if (typeof e == "string" || typeof e == "number" || typeof e == "bigint") {
93
98
  yield {
94
99
  type: "markup",
95
- value: E(String(n)),
100
+ value: A(String(e)),
96
101
  index: -1
97
102
  };
98
103
  return;
99
104
  }
100
- if (Array.isArray(n)) {
101
- let e = await Promise.all(n.map((e) => w(e)));
102
- C(r);
103
- for (let t of e) r.markers && (yield {
105
+ if (Array.isArray(e)) {
106
+ let n = await Promise.all(e.map((e) => O(e)));
107
+ D(t);
108
+ for (let e of n) t.markers && (yield {
104
109
  type: "markup",
105
110
  value: "<!--elur-ai-->",
106
111
  index: -1
107
- }), yield* y(t, r), r.markers && (yield {
112
+ }), yield* S(e, t), t.markers && (yield {
108
113
  type: "markup",
109
114
  value: "<!--elur-aiend-->",
110
115
  index: -1
111
116
  });
112
117
  return;
113
118
  }
114
- if ((typeof n == "object" || typeof n == "function") && n !== null) {
115
- let t = n[e];
116
- if (t?.renderServer) {
117
- let e = await t.renderServer({
118
- markers: r.markers,
119
- signal: r.signal,
120
- context: r.context,
121
- render: (e, t) => S(e, {
122
- ...r,
123
- markers: t?.markers ?? r.markers
119
+ if ((typeof e == "object" || typeof e == "function") && e !== null) {
120
+ let r = e[n];
121
+ if (r?.renderServer) {
122
+ let e = await r.renderServer({
123
+ markers: t.markers,
124
+ signal: t.signal,
125
+ context: t.context,
126
+ render: (e, n) => E(e, {
127
+ ...t,
128
+ markers: n?.markers ?? t.markers
124
129
  })
125
130
  });
126
- C(r), yield {
131
+ D(t), yield {
127
132
  type: "markup",
128
133
  value: e,
129
134
  index: -1
@@ -131,27 +136,27 @@ async function* y(n, r) {
131
136
  return;
132
137
  }
133
138
  }
134
- if (i(n)) {
135
- yield* b(n, r);
139
+ if (s(e)) {
140
+ yield* C(e, t);
136
141
  return;
137
142
  }
138
- if (p(n)) {
139
- if (!r.markers) {
143
+ if (g(e)) {
144
+ if (!t.markers) {
140
145
  yield {
141
146
  type: "markup",
142
- value: (await Promise.all(n.items.map((e, t) => S(n.renderFn(e, t), r)))).join(""),
147
+ value: (await Promise.all(e.items.map((n, r) => E(e.renderFn(n, r), t)))).join(""),
143
148
  index: -1
144
149
  };
145
150
  return;
146
151
  }
147
- let e = /* @__PURE__ */ new Set();
148
- for (let t = 0; t < n.items.length; t++) {
149
- let i = n.items[t], a = c(n.keyFn(i, t), t), o = l(a);
150
- e.has(o) && console.warn(`[elur] repeat(): duplicate key "${a}" during server render. Keys must be unique; entries after the first will leak during hydration.`), e.add(o), yield {
152
+ let n = /* @__PURE__ */ new Set();
153
+ for (let r = 0; r < e.items.length; r++) {
154
+ let i = e.items[r], a = d(e.keyFn(i, r), r), o = f(a);
155
+ n.has(o) && console.warn(`[elur] repeat(): duplicate key "${a}" during server render. Keys must be unique; entries after the first will leak during hydration.`), n.add(o), yield {
151
156
  type: "markup",
152
157
  value: `<!--elur-ki:${o}-->`,
153
158
  index: -1
154
- }, yield* y(n.renderFn(i, t), r), yield {
159
+ }, yield* S(e.renderFn(i, r), t), yield {
155
160
  type: "markup",
156
161
  value: "<!--elur-ke-->",
157
162
  index: -1
@@ -159,21 +164,21 @@ async function* y(n, r) {
159
164
  }
160
165
  return;
161
166
  }
162
- if (f(n)) {
163
- let e = n[t];
164
- if (!e) throw TypeError("[elur] Template does not support server rendering");
165
- yield* x(e, r);
167
+ if (h(e)) {
168
+ let n = e[r];
169
+ if (!n) throw TypeError("[elur] Template does not support server rendering");
170
+ yield* T(n, t);
166
171
  return;
167
172
  }
168
173
  yield {
169
174
  type: "markup",
170
- value: E(String(n)),
175
+ value: A(String(e)),
171
176
  index: -1
172
177
  };
173
178
  }
174
179
  }
175
- async function* b(e, t) {
176
- o();
180
+ async function* C(e, t) {
181
+ l();
177
182
  let n = {
178
183
  index: -1,
179
184
  context: "component",
@@ -188,7 +193,7 @@ async function* b(e, t) {
188
193
  else throw t;
189
194
  }
190
195
  try {
191
- yield* y(e.render(), t);
196
+ yield* S(e.render(), t);
192
197
  } catch (t) {
193
198
  if (e.onError) {
194
199
  e.onError(t);
@@ -202,106 +207,173 @@ async function* b(e, t) {
202
207
  cause: e
203
208
  }), e;
204
209
  } finally {
205
- a();
210
+ c();
206
211
  }
207
212
  }
208
- async function* x(e, t) {
209
- let n = new Uint8Array(e.strings.length);
210
- for (let r = 0; r < e.strings.length; r++) {
213
+ function w(e, t) {
214
+ return {
215
+ m: (e) => ({
216
+ type: "markup",
217
+ value: e,
218
+ index: -1
219
+ }),
220
+ node: async function* (t, n) {
221
+ e.markers && (yield {
222
+ type: "boundary-start",
223
+ value: `<!--elur-${t}-->`,
224
+ index: t
225
+ });
226
+ try {
227
+ let t = await O(n);
228
+ D(e), yield* S(t, e);
229
+ } catch (n) {
230
+ throw e.onError?.(n, {
231
+ index: t,
232
+ context: "node",
233
+ cause: n
234
+ }), n;
235
+ }
236
+ e.markers && (yield {
237
+ type: "boundary-end",
238
+ value: `<!--elur-end-${t}-->`,
239
+ index: t
240
+ });
241
+ },
242
+ attr: async (n, r, i, a, o, s) => {
243
+ let c = [{
244
+ type: "markup",
245
+ value: n,
246
+ index: r
247
+ }], l = await O(s);
248
+ if (D(e), i !== "ref" && l != null && l !== !1) {
249
+ let e = a ? p(String(l)) : String(l), t = /\s$/.test(n) ? "" : " ";
250
+ c.push({
251
+ type: "markup",
252
+ value: `${t}${i}="${j(e)}"`,
253
+ index: r
254
+ });
255
+ }
256
+ return e.markers && !t && c.push({
257
+ type: "markup",
258
+ value: ` data-elur-a-${r}="${j(i)}"`,
259
+ index: r
260
+ }), c;
261
+ },
262
+ event: (n, r, i) => e.markers && !t ? {
263
+ type: "markup",
264
+ value: `${r}${/\s$/.test(r) ? "" : " "}data-elur-e-${n}="${j(i)}"`,
265
+ index: n
266
+ } : {
267
+ type: "markup",
268
+ value: r.replace(/\s+$/, ""),
269
+ index: n
270
+ }
271
+ };
272
+ }
273
+ async function* T(e, t) {
274
+ let n = e.hydrate !== void 0;
275
+ if (e.ssr) {
276
+ yield* e.ssr(w(t, n), e.values);
277
+ return;
278
+ }
279
+ let r = new Uint8Array(e.strings.length);
280
+ for (let i = 0; i < e.strings.length; i++) {
211
281
  if (t.signal?.aborted) throw t.signal.reason ?? new DOMException("Render aborted", "AbortError");
212
- let i = e.strings[r];
213
- if (n[r] === 1 && (i[0] === "\"" || i[0] === "'") && (i = i.slice(1)), r >= e.contexts.length) {
282
+ let a = e.strings[i];
283
+ if (r[i] === 1 && (a[0] === "\"" || a[0] === "'") && (a = a.slice(1)), i >= e.contexts.length) {
214
284
  yield {
215
285
  type: "markup",
216
- value: i,
217
- index: r
286
+ value: a,
287
+ index: i
218
288
  };
219
289
  continue;
220
290
  }
221
- let a = e.contexts[r], o = e.values[r];
222
- if (a.type === "node") {
291
+ let o = e.contexts[i], s = e.values[i];
292
+ if (o.type === "node") {
223
293
  yield {
224
294
  type: "markup",
225
- value: i,
226
- index: r
295
+ value: a,
296
+ index: i
227
297
  }, t.markers && (yield {
228
298
  type: "boundary-start",
229
- value: `<!--elur-${r}-->`,
230
- index: r
299
+ value: `<!--elur-${i}-->`,
300
+ index: i
231
301
  });
232
302
  try {
233
- let e = await w(o);
234
- C(t), yield* y(e, t);
303
+ let e = await O(s);
304
+ D(t), yield* S(e, t);
235
305
  } catch (e) {
236
306
  throw t.onError?.(e, {
237
- index: r,
307
+ index: i,
238
308
  context: "node",
239
309
  cause: e
240
310
  }), e;
241
311
  }
242
312
  t.markers && (yield {
243
313
  type: "boundary-end",
244
- value: `<!--elur-end-${r}-->`,
245
- index: r
314
+ value: `<!--elur-end-${i}-->`,
315
+ index: i
246
316
  });
247
317
  continue;
248
318
  }
249
- let s = T(a), c = i.slice(0, -s);
250
- if (a.hadOpenQuote && (n[r + 1] = 1), a.type === "event") {
251
- t.markers ? yield {
319
+ let c = k(o), l = a.slice(0, -c);
320
+ if (o.hadOpenQuote && (r[i + 1] = 1), o.type === "event") {
321
+ t.markers && !n ? yield {
252
322
  type: "markup",
253
- value: `${c}${/\s$/.test(c) ? "" : " "}data-elur-e-${r}="${D(a.eventName)}"`,
254
- index: r
323
+ value: `${l}${/\s$/.test(l) ? "" : " "}data-elur-e-${i}="${j(o.eventName)}"`,
324
+ index: i
255
325
  } : yield {
256
326
  type: "markup",
257
- value: c.replace(/\s+$/, ""),
258
- index: r
327
+ value: l.replace(/\s+$/, ""),
328
+ index: i
259
329
  };
260
330
  continue;
261
331
  }
262
332
  yield {
263
333
  type: "markup",
264
- value: c,
265
- index: r
334
+ value: l,
335
+ index: i
266
336
  };
267
- let l = await w(o);
268
- if (C(t), a.attrName !== "ref" && l != null && l !== !1) {
269
- let e = a.url ? u(String(l)) : String(l);
337
+ let u = await O(s);
338
+ if (D(t), o.attrName !== "ref" && u != null && u !== !1) {
339
+ let e = o.url ? p(String(u)) : String(u);
270
340
  yield {
271
341
  type: "markup",
272
- value: `${/\s$/.test(c) ? "" : " "}${a.attrName}="${D(e)}"`,
273
- index: r
342
+ value: `${/\s$/.test(l) ? "" : " "}${o.attrName}="${j(e)}"`,
343
+ index: i
274
344
  };
275
345
  }
276
- t.markers && (yield {
346
+ t.markers && !n && (yield {
277
347
  type: "markup",
278
- value: ` data-elur-a-${r}="${D(a.attrName)}"`,
279
- index: r
348
+ value: ` data-elur-a-${i}="${j(o.attrName)}"`,
349
+ index: i
280
350
  });
281
351
  }
282
352
  }
283
- async function S(e, t) {
353
+ async function E(e, t) {
284
354
  let n = "";
285
- for await (let r of y(e, t)) n += r.value;
355
+ for await (let r of S(e, t)) n += r.value;
286
356
  return n;
287
357
  }
288
- function C(e) {
358
+ function D(e) {
289
359
  if (e.signal?.aborted) throw e.signal.reason ?? new DOMException("Render aborted", "AbortError");
290
360
  }
291
- async function w(e) {
292
- let t = typeof e == "function" ? e() : e;
293
- return t instanceof Promise ? await t : t;
361
+ async function O(n) {
362
+ if (n instanceof e) return n.peek();
363
+ if (i(n)) return t(n.get);
364
+ let r = typeof n == "function" ? n() : n;
365
+ return r instanceof Promise ? await r : r;
294
366
  }
295
- function T(e) {
367
+ function k(e) {
296
368
  return e.type === "event" ? `@${e.modifiers.length ? `${e.eventName}.${e.modifiers.join(".")}` : e.eventName}=`.length + +!!e.hadOpenQuote : `${e.attrName}=`.length + +!!e.hadOpenQuote;
297
369
  }
298
- function E(e) {
370
+ function A(e) {
299
371
  return e.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
300
372
  }
301
- function D(e) {
302
- return E(e).replace(/"/g, "&quot;");
373
+ function j(e) {
374
+ return A(e).replace(/"/g, "&quot;");
303
375
  }
304
376
  //#endregion
305
- export { h as createServerRenderScope, v as renderToChunks, _ as renderToString };
377
+ export { v as createServerRenderScope, x as renderToChunks, b as renderToString };
306
378
 
307
379
  //# sourceMappingURL=server.js.map
@@ -1,2 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});function e(){return{ctxPool:[],ctxStack:[],activeEffect:null,activeDeps:null,activeErrorHandler:null,errorHandlerStack:[],batchLevel:0,pendingEffectsSet:new Set,pendingEffectsArr:[],effectDepth:0,notifyBuf:[],notifyBase:0,signalDebugHooks:null}}var t=Symbol.for(`@elurjs/core/reactivity-state`),n=globalThis,r=(()=>{let r=n[t];if(r){let t=e(),n=r;for(let e of Object.keys(t))e in n||(n[e]=t[e]);return r}let i=e();return n[t]=i,i})();function i(e){r.errorHandlerStack.push(r.activeErrorHandler),r.activeErrorHandler=e}function a(){r.activeErrorHandler=r.errorHandlerStack.pop()??null}var o=100,s=64,c=16,l=32;function u(){let e=r.signalDebugHookSet;if(!e||e.size===0){r.signalDebugHooks=null;return}if(e.size===1){r.signalDebugHooks=e.values().next().value??null;return}r.signalDebugHooks={onCreate(t,n){for(let r of e)r.onCreate?.(t,n)},onWrite(t,n){for(let r of e)r.onWrite?.(t,n)}}}function d(e){let t=new Set;e&&t.add(e),r.signalDebugHookSet=t,u()}function f(e){let t=r.signalDebugHookSet;return t||(t=new Set,r.signalDebugHooks&&t.add(r.signalDebugHooks),r.signalDebugHookSet=t),t.add(e),u(),()=>{t.delete(e),u()}}function p(){return r.notifyBuf.length}var m=class{_value;_subs=new Set;constructor(e){this._value=e,r.signalDebugHooks?.onCreate?.(this,e)}get value(){return r.activeEffect&&(this._subs.add(r.activeEffect),r.activeDeps?.add(this)),this._value}set value(e){Object.is(this._value,e)||(this._value=e,r.signalDebugHooks?.onWrite?.(this,e),this._notify())}update(e){this.value=e(this._value)}peek(){return this._value}_removeSub(e){this._subs.delete(e)}_notify(){if(r.batchLevel>0){for(let e of this._subs)r.pendingEffectsSet.has(e)||(r.pendingEffectsSet.add(e),r.pendingEffectsArr.push(e));return}let e=r.notifyBase,t=0;for(let n of this._subs)r.notifyBuf[e+ t++]=n;r.notifyBase=e+t;try{for(let n=0;n<t;n++){let t=r.notifyBuf[e+n];r.notifyBuf[e+n]=null,t?.()}}finally{r.notifyBase=e,e===0&&r.notifyBuf.length>s&&t<c&&(r.notifyBuf.length=l)}}dispose(){this._subs.clear()}};function h(e){return new m(e)}function g(e){let t=!1,n,i=new Set,a=new Set,s=r.activeErrorHandler,c=()=>{if(t)return;typeof n==`function`&&n();let l=i;i=a,a=l,a.clear();let u=r.ctxPool.length>0?r.ctxPool.pop():{effect:null,deps:null};if(u.effect=r.activeEffect,u.deps=r.activeDeps,r.ctxStack.push(u),r.activeEffect=c,r.activeDeps=a,r.effectDepth++,r.effectDepth>o){r.effectDepth=0;let e=r.ctxStack.pop();throw r.activeEffect=e.effect,r.activeDeps=e.deps,e.effect=null,e.deps=null,r.ctxPool.push(e),Error(`[elur] Maximum effect re-execution depth exceeded (possible infinite loop).`)}try{n=e()}catch(e){if(s)s(e);else throw e}finally{r.effectDepth--;let e=r.ctxStack.pop();r.activeEffect=e.effect,r.activeDeps=e.deps,e.effect=null,e.deps=null,r.ctxPool.push(e);for(let e of i)a.has(e)||e._removeSub(c)}};return c(),()=>{t=!0,typeof n==`function`&&n();for(let e of a)e._removeSub(c);a.clear(),i.clear()}}var _=Symbol(`elur-computed-uninitialized`);function v(e,t=Object.is){let n=new m(_),r=null,i=!1,a=!1,o=()=>{i||a||(i=!0,b(()=>{r=g(()=>{let r=e(),i=n.peek();(i===_||!t(r,i))&&(n.value=r)})}))},s=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(n),`value`);if(!s?.get||!s?.set)throw Error(`[elur] Internal error: Signal.value descriptor not found.`);Object.defineProperty(n,`value`,{get(){return o(),s.get.call(this)},set(e){s.set.call(this,e)},configurable:!0});let c=n.dispose;return n.dispose=()=>{a=!0,r?.(),r=null,c.call(n)},n}function y(e){r.batchLevel++;try{e()}finally{if(r.batchLevel--,r.batchLevel===0&&r.pendingEffectsArr.length>0){let e=r.pendingEffectsArr.length;for(let t=0;t<e;t++)r.pendingEffectsArr[t]();r.pendingEffectsArr.length=0,r.pendingEffectsSet.clear()}}}function b(e){let t=r.activeEffect,n=r.activeDeps;r.activeEffect=null,r.activeDeps=null;try{return e()}finally{r.activeEffect=t,r.activeDeps=n}}function x(e,t,n={}){let{immediate:r=!1,once:i=!1}=n,a=e instanceof m?()=>e.value:e,o,s=!0,c=!1,l=g(()=>{let e=a();if(s){if(s=!1,r&&!c){let n=e;b(()=>t(n,void 0)),i&&(c=!0,Promise.resolve().then(l))}o=e;return}if(!c){let n=e,r=o;o=e,b(()=>t(n,r)),i&&(c=!0,Promise.resolve().then(l))}});return()=>{c=!0,l()}}function S(e){return e?Promise.resolve().then(e):Promise.resolve()}exports.Signal=m,exports._addSignalDebugHooks=f,exports._getNotifyBufSize=p,exports._popErrorHandler=a,exports._pushErrorHandler=i,exports._setSignalDebugHooks=d,exports.batch=y,exports.computed=v,exports.effect=g,exports.nextTick=S,exports.signal=h,exports.untrack=b,exports.watch=x;
2
- //# sourceMappingURL=signals.cjs.map
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./elur/next-2/reactivity.cjs`);exports.Computed=e.Computed,exports.Owner=e.Owner,exports.ReactiveCycleError=e.ReactiveCycleError,exports.Signal=e.Signal,exports._addSignalDebugHooks=e._addSignalDebugHooks,exports._bindDerived=e._bindDerived,exports._bindSignal=e._bindSignal,exports._bindText=e._bindText,exports._getNotifyBufSize=e._getNotifyBufSize,exports._popErrorHandler=e._popErrorHandler,exports._pushErrorHandler=e._pushErrorHandler,exports._renderEffect=e._renderEffect,exports._setSignalDebugHooks=e._setSignalDebugHooks,exports.batch=e.batch,exports.computed=e.computed,exports.constSignal=e.constSignal,exports.createRoot=e.createRoot,exports.effect=e.effect,exports.getOwner=e.getOwner,exports.nextTick=e.nextTick,exports.onCleanup=e.onCleanup,exports.runWithOwner=e.runWithOwner,exports.signal=e.signal,exports.untrack=e.untrack,exports.watch=e.watch;