frontend-hamroun 1.2.74 → 1.2.75

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 (99) hide show
  1. package/dist/Counter.d.ts +0 -0
  2. package/dist/hooks-0728361a.cjs +1 -0
  3. package/dist/hooks-b58f947c.js +133 -0
  4. package/dist/hooks.js +1 -0
  5. package/dist/hooks.mjs +13 -0
  6. package/dist/index.js +1 -384
  7. package/dist/index.mjs +130 -374
  8. package/dist/jsx-runtime.js +1 -0
  9. package/dist/jsx-runtime.mjs +64 -0
  10. package/dist/renderer.js +1 -0
  11. package/dist/renderer.mjs +27 -0
  12. package/dist/server/src/batch.d.ts +3 -0
  13. package/dist/server/src/batch.js +23 -0
  14. package/dist/server/src/batch.js.map +1 -0
  15. package/dist/server/src/component.d.ts +14 -0
  16. package/dist/server/src/component.js +106 -0
  17. package/dist/server/src/component.js.map +1 -0
  18. package/dist/server/src/context.d.ts +13 -0
  19. package/dist/server/src/context.js +21 -0
  20. package/dist/server/src/context.js.map +1 -0
  21. package/dist/server/src/hooks.d.ts +12 -0
  22. package/dist/server/src/hooks.js +170 -0
  23. package/dist/server/src/hooks.js.map +1 -0
  24. package/dist/server/src/index.client.d.ts +12 -0
  25. package/dist/server/src/index.client.js +14 -0
  26. package/dist/server/src/index.client.js.map +1 -0
  27. package/dist/server/src/index.d.ts +88 -0
  28. package/dist/server/src/index.js +70 -0
  29. package/dist/server/src/index.js.map +1 -0
  30. package/dist/server/src/jsx-runtime/jsx-dev-runtime.d.ts +1 -0
  31. package/dist/server/src/jsx-runtime/jsx-dev-runtime.js +2 -0
  32. package/dist/server/src/jsx-runtime/jsx-dev-runtime.js.map +1 -0
  33. package/dist/server/src/jsx-runtime/jsx-runtime.d.ts +4 -0
  34. package/dist/server/src/jsx-runtime/jsx-runtime.js +41 -0
  35. package/dist/server/src/jsx-runtime/jsx-runtime.js.map +1 -0
  36. package/dist/server/src/jsx-runtime.d.ts +20 -0
  37. package/dist/server/src/jsx-runtime.js +105 -0
  38. package/dist/server/src/jsx-runtime.js.map +1 -0
  39. package/dist/server/src/renderComponent.d.ts +14 -0
  40. package/dist/server/src/renderComponent.js +25 -0
  41. package/dist/server/src/renderComponent.js.map +1 -0
  42. package/dist/server/src/renderer.d.ts +2 -0
  43. package/dist/server/src/renderer.js +31 -0
  44. package/dist/server/src/renderer.js.map +1 -0
  45. package/dist/server/src/server/api-router.d.ts +15 -0
  46. package/dist/server/src/server/api-router.js +111 -0
  47. package/dist/server/src/server/api-router.js.map +1 -0
  48. package/dist/server/src/server/auth.d.ts +32 -0
  49. package/dist/server/src/server/auth.js +80 -0
  50. package/dist/server/src/server/auth.js.map +1 -0
  51. package/dist/server/src/server/database.d.ts +24 -0
  52. package/dist/server/src/server/database.js +135 -0
  53. package/dist/server/src/server/database.js.map +1 -0
  54. package/dist/server/src/server/index.d.ts +54 -0
  55. package/dist/server/src/server/index.js +172 -0
  56. package/dist/server/src/server/index.js.map +1 -0
  57. package/dist/server/src/server/middleware.d.ts +11 -0
  58. package/dist/server/src/server/middleware.js +46 -0
  59. package/dist/server/src/server/middleware.js.map +1 -0
  60. package/dist/server/src/server/server.d.ts +9 -0
  61. package/dist/server/src/server/server.js +87 -0
  62. package/dist/server/src/server/server.js.map +1 -0
  63. package/dist/server/src/server/types.d.ts +38 -0
  64. package/dist/server/src/server/types.js +4 -0
  65. package/dist/server/src/server/types.js.map +1 -0
  66. package/dist/server/src/server/wasm.d.ts +9 -0
  67. package/dist/server/src/server/wasm.js +117 -0
  68. package/dist/server/src/server/wasm.js.map +1 -0
  69. package/dist/server/src/server-renderer.d.ts +5 -0
  70. package/dist/server/src/server-renderer.js +106 -0
  71. package/dist/server/src/server-renderer.js.map +1 -0
  72. package/dist/server/src/server-types.d.ts +42 -0
  73. package/dist/server/src/server-types.js +6 -0
  74. package/dist/server/src/server-types.js.map +1 -0
  75. package/dist/server/src/types.d.ts +19 -0
  76. package/dist/server/src/types.js +2 -0
  77. package/dist/server/src/types.js.map +1 -0
  78. package/dist/server/src/vdom.d.ts +8 -0
  79. package/dist/server/src/vdom.js +22 -0
  80. package/dist/server/src/vdom.js.map +1 -0
  81. package/dist/server/src/wasm.d.ts +36 -0
  82. package/dist/server/src/wasm.js +159 -0
  83. package/dist/server/src/wasm.js.map +1 -0
  84. package/dist/server/tsconfig.server.tsbuildinfo +1 -0
  85. package/dist/server/wasm.d.ts +7 -0
  86. package/dist/server-renderer.js +1 -0
  87. package/dist/server-renderer.mjs +64 -0
  88. package/dist/wasm.d.ts +37 -0
  89. package/dist/wasm.js +1 -0
  90. package/dist/wasm.mjs +103 -0
  91. package/package.json +1 -1
  92. package/templates/go/build.sh +43 -43
  93. package/templates/go-wasm-app/build-wasm.js +84 -84
  94. package/templates/go-wasm-app/package.json +6 -5
  95. package/templates/go-wasm-app/public/index.html +49 -53
  96. package/templates/go-wasm-app/server.js +0 -188
  97. package/dist/index.d.ts +0 -1
  98. package/dist/index.js.map +0 -1
  99. package/dist/index.mjs.map +0 -1
File without changes
@@ -0,0 +1 @@
1
+ "use strict";exports.isBatching=!1;const l=[];function M(s){if(exports.isBatching){l.push(s);return}exports.isBatching=!0;try{for(s();l.length>0;){const t=l.shift();t==null||t()}}finally{exports.isBatching=!1}}function B(){return exports.isBatching}function y(s){return{Provider:({value:n,children:u})=>u,Consumer:({children:n})=>n(s),_id:Symbol(),useSelector:n=>n(s)}}function C(s){return s}let e=0;const h=new Map,c=new Map,a=new Map,d=new Map,p=new Map,E=typeof window>"u",f=new Map;let g=null,m=null,w=null;function v(s,t,n){g=s,m=n,w=t}function I(){return e++,c.set(e,0),e}function k(){E&&f.delete(e),e=0}function x(s){if(!e)throw new Error("useState must be called within a render");if(E){f.has(e)||f.set(e,new Map);const r=f.get(e),i=c.get(e)||0;r.has(i)||r.set(i,s);const R=r.get(i),S=O=>{};return c.set(e,i+1),[R,S]}h.has(e)||h.set(e,[]);const t=h.get(e),n=c.get(e)||0;n>=t.length&&t.push(s);const u=t[n],o=r=>{const i=typeof r=="function"?r(t[n]):r;t[n]!==i&&(t[n]=i,exports.isBatching?M(()=>b(e)):b(e))};return c.set(e,n+1),[u,o]}function q(s,t){if(!e)throw new Error("useEffect must be called within a render");if(E){const r=c.get(e)||0;c.set(e,r+1);return}const n=c.get(e)||0;a.has(e)||a.set(e,[]);const u=a.get(e),o=u[n];(!o||!t||!o.deps||t.some((r,i)=>r!==o.deps[i]))&&(o!=null&&o.cleanup&&o.cleanup(),queueMicrotask(()=>{const r=s()||void 0;u[n]={cleanup:r,deps:t||[]}})),c.set(e,n+1)}function U(s,t){if(!e)throw new Error("useMemo must be called within a render");const n=c.get(e)||0;d.has(e)||d.set(e,[]);const u=d.get(e),o=u[n];if(!o||t&&t.some((r,i)=>!Object.is(r,o.deps[i]))){const r=s();return u[n]={value:r,deps:t||[]},c.set(e,n+1),r}return c.set(e,n+1),o.value}function _(s){if(!e)throw new Error("useRef must be called within a render");const t=c.get(e)||0;p.has(e)||p.set(e,[]);const n=p.get(e);if(t>=n.length){const o={current:s};return n.push(o),c.set(e,t+1),o}const u=n[t];return c.set(e,t+1),u}async function b(s){try{const t=a.get(s);t&&(t.forEach(n=>{n.cleanup&&n.cleanup()}),a.set(s,[])),g&&m&&w&&await g(w,m)}catch(t){console.error("Error during rerender:",t)}}function j(){const[s,t]=x(null);return[s,()=>t(null)]}exports.batchUpdates=M;exports.createContext=y;exports.finishRender=k;exports.getIsBatching=B;exports.prepareRender=I;exports.setRenderCallback=v;exports.useContext=C;exports.useEffect=q;exports.useErrorBoundary=j;exports.useMemo=U;exports.useRef=_;exports.useState=x;
@@ -0,0 +1,133 @@
1
+ let i = !1;
2
+ const d = [];
3
+ function y(s) {
4
+ if (i) {
5
+ d.push(s);
6
+ return;
7
+ }
8
+ i = !0;
9
+ try {
10
+ for (s(); d.length > 0; ) {
11
+ const t = d.shift();
12
+ t == null || t();
13
+ }
14
+ } finally {
15
+ i = !1;
16
+ }
17
+ }
18
+ function C() {
19
+ return i;
20
+ }
21
+ function I(s) {
22
+ return {
23
+ Provider: ({ value: n, children: a }) => a,
24
+ Consumer: ({ children: n }) => n(s),
25
+ _id: Symbol(),
26
+ useSelector: (n) => n(s)
27
+ };
28
+ }
29
+ function k(s) {
30
+ return s;
31
+ }
32
+ let e = 0;
33
+ const h = /* @__PURE__ */ new Map(), c = /* @__PURE__ */ new Map(), f = /* @__PURE__ */ new Map(), p = /* @__PURE__ */ new Map(), g = /* @__PURE__ */ new Map(), E = typeof window > "u", l = /* @__PURE__ */ new Map();
34
+ let m = null, w = null, b = null;
35
+ function B(s, t, n) {
36
+ m = s, w = n, b = t;
37
+ }
38
+ function j() {
39
+ return e++, c.set(e, 0), e;
40
+ }
41
+ function q() {
42
+ E && l.delete(e), e = 0;
43
+ }
44
+ function R(s) {
45
+ if (!e)
46
+ throw new Error("useState must be called within a render");
47
+ if (E) {
48
+ l.has(e) || l.set(e, /* @__PURE__ */ new Map());
49
+ const r = l.get(e), u = c.get(e) || 0;
50
+ r.has(u) || r.set(u, s);
51
+ const x = r.get(u), S = (v) => {
52
+ };
53
+ return c.set(e, u + 1), [x, S];
54
+ }
55
+ h.has(e) || h.set(e, []);
56
+ const t = h.get(e), n = c.get(e) || 0;
57
+ n >= t.length && t.push(s);
58
+ const a = t[n], o = (r) => {
59
+ const u = typeof r == "function" ? r(t[n]) : r;
60
+ t[n] !== u && (t[n] = u, i ? y(() => M(e)) : M(e));
61
+ };
62
+ return c.set(e, n + 1), [a, o];
63
+ }
64
+ function _(s, t) {
65
+ if (!e)
66
+ throw new Error("useEffect must be called within a render");
67
+ if (E) {
68
+ const r = c.get(e) || 0;
69
+ c.set(e, r + 1);
70
+ return;
71
+ }
72
+ const n = c.get(e) || 0;
73
+ f.has(e) || f.set(e, []);
74
+ const a = f.get(e), o = a[n];
75
+ (!o || !t || !o.deps || t.some((r, u) => r !== o.deps[u])) && (o != null && o.cleanup && o.cleanup(), queueMicrotask(() => {
76
+ const r = s() || void 0;
77
+ a[n] = { cleanup: r, deps: t || [] };
78
+ })), c.set(e, n + 1);
79
+ }
80
+ function O(s, t) {
81
+ if (!e)
82
+ throw new Error("useMemo must be called within a render");
83
+ const n = c.get(e) || 0;
84
+ p.has(e) || p.set(e, []);
85
+ const a = p.get(e), o = a[n];
86
+ if (!o || t && t.some((r, u) => !Object.is(r, o.deps[u]))) {
87
+ const r = s();
88
+ return a[n] = { value: r, deps: t || [] }, c.set(e, n + 1), r;
89
+ }
90
+ return c.set(e, n + 1), o.value;
91
+ }
92
+ function P(s) {
93
+ if (!e)
94
+ throw new Error("useRef must be called within a render");
95
+ const t = c.get(e) || 0;
96
+ g.has(e) || g.set(e, []);
97
+ const n = g.get(e);
98
+ if (t >= n.length) {
99
+ const o = { current: s };
100
+ return n.push(o), c.set(e, t + 1), o;
101
+ }
102
+ const a = n[t];
103
+ return c.set(e, t + 1), a;
104
+ }
105
+ async function M(s) {
106
+ try {
107
+ const t = f.get(s);
108
+ t && (t.forEach((n) => {
109
+ n.cleanup && n.cleanup();
110
+ }), f.set(s, [])), m && w && b && await m(b, w);
111
+ } catch (t) {
112
+ console.error("Error during rerender:", t);
113
+ }
114
+ }
115
+ function U() {
116
+ const [s, t] = R(null);
117
+ return [s, () => t(null)];
118
+ }
119
+ export {
120
+ _ as a,
121
+ O as b,
122
+ P as c,
123
+ k as d,
124
+ U as e,
125
+ I as f,
126
+ y as g,
127
+ q as h,
128
+ i,
129
+ C as j,
130
+ j as p,
131
+ B as s,
132
+ R as u
133
+ };
package/dist/hooks.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./hooks-0728361a.cjs");exports.createContext=e.createContext;exports.finishRender=e.finishRender;exports.prepareRender=e.prepareRender;exports.setRenderCallback=e.setRenderCallback;exports.useContext=e.useContext;exports.useEffect=e.useEffect;exports.useErrorBoundary=e.useErrorBoundary;exports.useMemo=e.useMemo;exports.useRef=e.useRef;exports.useState=e.useState;
package/dist/hooks.mjs ADDED
@@ -0,0 +1,13 @@
1
+ import { f as a, h as r, p as t, s as u, d as n, a as o, e as f, b as d, c, u as p } from "./hooks-b58f947c.js";
2
+ export {
3
+ a as createContext,
4
+ r as finishRender,
5
+ t as prepareRender,
6
+ u as setRenderCallback,
7
+ n as useContext,
8
+ o as useEffect,
9
+ f as useErrorBoundary,
10
+ d as useMemo,
11
+ c as useRef,
12
+ p as useState
13
+ };
package/dist/index.js CHANGED
@@ -1,384 +1 @@
1
- (function(global, factory) {
2
- typeof exports === "object" && typeof module !== "undefined" ? factory(exports) : typeof define === "function" && define.amd ? define(["exports"], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, factory(global.FrontendHamroun = {}));
3
- })(this, function(exports2) {
4
- "use strict";
5
- let isBatching = false;
6
- const queue = [];
7
- function batchUpdates(fn) {
8
- if (isBatching) {
9
- queue.push(fn);
10
- return;
11
- }
12
- isBatching = true;
13
- try {
14
- fn();
15
- while (queue.length > 0) {
16
- const nextFn = queue.shift();
17
- nextFn == null ? void 0 : nextFn();
18
- }
19
- } finally {
20
- isBatching = false;
21
- }
22
- }
23
- let currentRender = 0;
24
- const states = /* @__PURE__ */ new Map();
25
- const stateIndices = /* @__PURE__ */ new Map();
26
- const effects = /* @__PURE__ */ new Map();
27
- const memos = /* @__PURE__ */ new Map();
28
- const refs = /* @__PURE__ */ new Map();
29
- let globalRenderCallback = null;
30
- let globalContainer = null;
31
- let currentElement = null;
32
- const isServer = typeof window === "undefined";
33
- const serverStates = /* @__PURE__ */ new Map();
34
- function setRenderCallback(callback, element, container) {
35
- globalRenderCallback = callback;
36
- globalContainer = container;
37
- currentElement = element;
38
- }
39
- function prepareRender() {
40
- currentRender++;
41
- stateIndices.set(currentRender, 0);
42
- return currentRender;
43
- }
44
- function finishRender() {
45
- if (isServer) {
46
- serverStates.delete(currentRender);
47
- }
48
- currentRender = 0;
49
- }
50
- function useState(initial) {
51
- if (!currentRender) {
52
- throw new Error("useState must be called within a render");
53
- }
54
- if (isServer) {
55
- if (!serverStates.has(currentRender)) {
56
- serverStates.set(currentRender, /* @__PURE__ */ new Map());
57
- }
58
- const componentState = serverStates.get(currentRender);
59
- const index2 = stateIndices.get(currentRender) || 0;
60
- if (!componentState.has(index2)) {
61
- componentState.set(index2, initial);
62
- }
63
- const state2 = componentState.get(index2);
64
- const setState2 = (newValue) => {
65
- };
66
- stateIndices.set(currentRender, index2 + 1);
67
- return [state2, setState2];
68
- }
69
- if (!states.has(currentRender)) {
70
- states.set(currentRender, []);
71
- }
72
- const componentStates = states.get(currentRender);
73
- const index = stateIndices.get(currentRender);
74
- if (index >= componentStates.length) {
75
- componentStates.push(initial);
76
- }
77
- const state = componentStates[index];
78
- const setState = (newValue) => {
79
- const nextValue = typeof newValue === "function" ? newValue(componentStates[index]) : newValue;
80
- if (componentStates[index] === nextValue)
81
- return;
82
- componentStates[index] = nextValue;
83
- if (isBatching) {
84
- batchUpdates(() => rerender(currentRender));
85
- } else {
86
- rerender(currentRender);
87
- }
88
- };
89
- stateIndices.set(currentRender, index + 1);
90
- return [state, setState];
91
- }
92
- function useEffect(callback, deps) {
93
- if (!currentRender)
94
- throw new Error("useEffect must be called within a render");
95
- const effectIndex = stateIndices.get(currentRender);
96
- if (!effects.has(currentRender)) {
97
- effects.set(currentRender, []);
98
- }
99
- const componentEffects = effects.get(currentRender);
100
- const prevEffect = componentEffects[effectIndex];
101
- if (!prevEffect || !deps || !prevEffect.deps || deps.some((dep, i) => dep !== prevEffect.deps[i])) {
102
- if (prevEffect == null ? void 0 : prevEffect.cleanup) {
103
- prevEffect.cleanup();
104
- }
105
- queueMicrotask(() => {
106
- const cleanup = callback() || void 0;
107
- componentEffects[effectIndex] = { cleanup, deps };
108
- });
109
- }
110
- stateIndices.set(currentRender, effectIndex + 1);
111
- }
112
- function useMemo(factory, deps) {
113
- if (!currentRender)
114
- throw new Error("useMemo must be called within a render");
115
- const memoIndex = stateIndices.get(currentRender);
116
- if (!memos.has(currentRender)) {
117
- memos.set(currentRender, []);
118
- }
119
- const componentMemos = memos.get(currentRender);
120
- const prevMemo = componentMemos[memoIndex];
121
- if (!prevMemo || deps && deps.some((dep, i) => !Object.is(dep, prevMemo.deps[i]))) {
122
- const value = factory();
123
- componentMemos[memoIndex] = { value, deps };
124
- stateIndices.set(currentRender, memoIndex + 1);
125
- return value;
126
- }
127
- stateIndices.set(currentRender, memoIndex + 1);
128
- return prevMemo.value;
129
- }
130
- function useRef(initial) {
131
- if (!currentRender)
132
- throw new Error("useRef must be called within a render");
133
- const refIndex = stateIndices.get(currentRender);
134
- if (!refs.has(currentRender)) {
135
- refs.set(currentRender, []);
136
- }
137
- const componentRefs = refs.get(currentRender);
138
- if (refIndex >= componentRefs.length) {
139
- const ref2 = { current: initial };
140
- componentRefs.push(ref2);
141
- stateIndices.set(currentRender, refIndex + 1);
142
- return ref2;
143
- }
144
- const ref = componentRefs[refIndex];
145
- stateIndices.set(currentRender, refIndex + 1);
146
- return ref;
147
- }
148
- async function rerender(rendererId) {
149
- try {
150
- const componentEffects = effects.get(rendererId);
151
- if (componentEffects) {
152
- componentEffects.forEach((effect) => {
153
- if (effect.cleanup)
154
- effect.cleanup();
155
- });
156
- effects.set(rendererId, []);
157
- }
158
- if (globalRenderCallback && globalContainer && currentElement) {
159
- await globalRenderCallback(currentElement, globalContainer);
160
- }
161
- } catch (error) {
162
- console.error("Error during rerender:", error);
163
- }
164
- }
165
- function useErrorBoundary() {
166
- const [error, setError] = useState(null);
167
- return [error, () => setError(null)];
168
- }
169
- function createContext(defaultValue) {
170
- const context = {
171
- currentValue: defaultValue,
172
- providers: /* @__PURE__ */ new Set()
173
- };
174
- return context;
175
- }
176
- function useContext(context) {
177
- return context.currentValue;
178
- }
179
- function jsx(type, props) {
180
- console.log("JSX Transform:", { type, props });
181
- const processedProps = { ...props };
182
- if (arguments.length > 2) {
183
- processedProps.children = Array.prototype.slice.call(arguments, 2);
184
- }
185
- return { type, props: processedProps };
186
- }
187
- const Fragment = ({ children }) => children;
188
- async function createElement(vnode) {
189
- var _a;
190
- console.log("Creating element from:", vnode);
191
- if (vnode == null) {
192
- return document.createTextNode("");
193
- }
194
- if (typeof vnode === "boolean") {
195
- return document.createTextNode("");
196
- }
197
- if (typeof vnode === "number" || typeof vnode === "string") {
198
- return document.createTextNode(String(vnode));
199
- }
200
- if (Array.isArray(vnode)) {
201
- const fragment = document.createDocumentFragment();
202
- for (const child of vnode) {
203
- const node = await createElement(child);
204
- fragment.appendChild(node);
205
- }
206
- return fragment;
207
- }
208
- if ("type" in vnode && vnode.props !== void 0) {
209
- const { type, props } = vnode;
210
- if (typeof type === "function") {
211
- try {
212
- const result = await type(props || {});
213
- const node = await createElement(result);
214
- if (node instanceof Element) {
215
- node.setAttribute("data-component-id", type.name || type.toString());
216
- }
217
- return node;
218
- } catch (error) {
219
- console.error("Error rendering component:", error);
220
- return document.createTextNode("");
221
- }
222
- }
223
- const element = document.createElement(type);
224
- for (const [key, value] of Object.entries(props || {})) {
225
- if (key === "children")
226
- continue;
227
- if (key.startsWith("on") && typeof value === "function") {
228
- const eventName = key.toLowerCase().slice(2);
229
- const existingHandler = (_a = element.__events) == null ? void 0 : _a[eventName];
230
- if (existingHandler) {
231
- element.removeEventListener(eventName, existingHandler);
232
- }
233
- element.addEventListener(eventName, value);
234
- if (!element.__events) {
235
- element.__events = {};
236
- }
237
- element.__events[eventName] = value;
238
- } else if (key === "style" && typeof value === "object") {
239
- Object.assign(element.style, value);
240
- } else if (key === "className") {
241
- element.setAttribute("class", String(value));
242
- } else if (key !== "key" && key !== "ref") {
243
- element.setAttribute(key, String(value));
244
- }
245
- }
246
- const children = props == null ? void 0 : props.children;
247
- if (children != null) {
248
- const childArray = Array.isArray(children) ? children.flat() : [children];
249
- for (const child of childArray) {
250
- const childNode = await createElement(child);
251
- element.appendChild(childNode);
252
- }
253
- }
254
- return element;
255
- }
256
- return document.createTextNode(String(vnode));
257
- }
258
- let isHydrating = false;
259
- async function hydrate(element, container) {
260
- isHydrating = true;
261
- try {
262
- await render(element, container);
263
- } finally {
264
- isHydrating = false;
265
- }
266
- }
267
- async function render(element, container) {
268
- console.log("Rendering to:", container.id);
269
- batchUpdates(async () => {
270
- const rendererId = prepareRender();
271
- try {
272
- setRenderCallback(render, element, container);
273
- const domNode = await createElement(element);
274
- if (!isHydrating) {
275
- container.innerHTML = "";
276
- }
277
- container.appendChild(domNode);
278
- } finally {
279
- finishRender();
280
- }
281
- });
282
- }
283
- function renderToString(vnode) {
284
- prepareRender();
285
- const html = renderNodeToString(vnode);
286
- finishRender();
287
- return html;
288
- }
289
- function renderNodeToString(vnode) {
290
- var _a, _b, _c;
291
- if (vnode === null || vnode === void 0)
292
- return "";
293
- if (typeof vnode === "boolean")
294
- return "";
295
- if (typeof vnode === "number" || typeof vnode === "string")
296
- return escapeHtml(String(vnode));
297
- if (typeof vnode.type === "function") {
298
- const Component2 = vnode.type;
299
- const renderedNode = Component2(vnode.props || {});
300
- return renderNodeToString(renderedNode);
301
- }
302
- if (typeof vnode.type === "string") {
303
- const tag = vnode.type;
304
- let attrs = "";
305
- let children = "";
306
- if (vnode.props) {
307
- for (const [key, value] of Object.entries(vnode.props)) {
308
- if (key === "children")
309
- continue;
310
- if (key.startsWith("on"))
311
- continue;
312
- if (key === "className") {
313
- attrs += ` class="${escapeHtml(value)}"`;
314
- continue;
315
- }
316
- if (typeof value === "string" || typeof value === "number") {
317
- attrs += ` ${key}="${escapeHtml(String(value))}"`;
318
- } else if (value === true) {
319
- attrs += ` ${key}`;
320
- }
321
- }
322
- }
323
- const childrenArray = ((_a = vnode.props) == null ? void 0 : _a.children) ? Array.isArray(vnode.props.children) ? vnode.props.children : [vnode.props.children] : [];
324
- for (const child of childrenArray) {
325
- children += renderNodeToString(child);
326
- }
327
- const selfClosing = [
328
- "area",
329
- "base",
330
- "br",
331
- "col",
332
- "embed",
333
- "hr",
334
- "img",
335
- "input",
336
- "link",
337
- "meta",
338
- "param",
339
- "source",
340
- "track",
341
- "wbr"
342
- ];
343
- if (selfClosing.includes(tag)) {
344
- return `<${tag}${attrs}/>`;
345
- }
346
- return `<${tag}${attrs}>${children}</${tag}>`;
347
- }
348
- if (vnode.type === Symbol.for("react.fragment")) {
349
- let fragmentOutput = "";
350
- const children = Array.isArray((_b = vnode.props) == null ? void 0 : _b.children) ? vnode.props.children : ((_c = vnode.props) == null ? void 0 : _c.children) ? [vnode.props.children] : [];
351
- for (const child of children) {
352
- fragmentOutput += renderNodeToString(child);
353
- }
354
- return fragmentOutput;
355
- }
356
- console.warn("Unknown vnode type:", vnode.type);
357
- return "";
358
- }
359
- function escapeHtml(text) {
360
- return text.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#039;");
361
- }
362
- const server = {
363
- async getServer() {
364
- throw new Error("Server module can only be used in Node.js environment");
365
- }
366
- };
367
- exports2.Fragment = Fragment;
368
- exports2.batchUpdates = batchUpdates;
369
- exports2.createContext = createContext;
370
- exports2.hydrate = hydrate;
371
- exports2.jsx = jsx;
372
- exports2.jsxs = jsx;
373
- exports2.render = render;
374
- exports2.renderToString = renderToString;
375
- exports2.server = server;
376
- exports2.useContext = useContext;
377
- exports2.useEffect = useEffect;
378
- exports2.useErrorBoundary = useErrorBoundary;
379
- exports2.useMemo = useMemo;
380
- exports2.useRef = useRef;
381
- exports2.useState = useState;
382
- Object.defineProperty(exports2, Symbol.toStringTag, { value: "Module" });
383
- });
384
- //# sourceMappingURL=index.js.map
1
+ "use strict";var x=Object.defineProperty;var C=(r,e,t)=>e in r?x(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var u=(r,e,t)=>(C(r,typeof e!="symbol"?e+"":e,t),t);Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("./jsx-runtime.js"),i=require("./wasm.js"),c=require("./renderer.js"),n=require("./hooks-0728361a.cjs"),l=require("./server-renderer.js");function m(r,e){const t=Object.keys(r).filter(s=>s!=="children"),a=Object.keys(e).filter(s=>s!=="children");return t.length!==a.length?!1:t.every(s=>r[s]===e[s])}function p(r,e){return r==null||e==null?r!==e:typeof r!=typeof e?!0:typeof e=="string"||typeof e=="number"?r!==e:e.type!==r.type?!0:!m(r.props,e.props)}function h(r,e){return!m(r,e)}class f{constructor(e={}){u(this,"state",{});u(this,"props");u(this,"element",null);u(this,"_mounted",!1);this.props=e}componentDidMount(){}async setState(e){const t={...this.state};this.state={...t,...e},console.log(`${this.constructor.name} state updated:`,{prev:t,next:this.state}),await Promise.resolve(),this._mounted?await this.update():await this.update()}_replayEvents(e,t){const a=e.__events||{};Object.entries(a).forEach(([s,d])=>{t.addEventListener(s,d)}),t.__events=a}_deepCloneWithEvents(e){const t=e.cloneNode(!1),a=e.__events||{};return t.__events=a,Object.entries(a).forEach(([s,d])=>{t.addEventListener(s,d)}),Array.from(e.childNodes).forEach(s=>{s instanceof HTMLElement?t.appendChild(this._deepCloneWithEvents(s)):t.appendChild(s.cloneNode(!0))}),t}async update(){const e=this.render();if(!e)return document.createTextNode("");const t=await o.createElement(e);if(t instanceof HTMLElement)return this._updateElement(t);const a=document.createElement("div");return a.appendChild(t),this._updateElement(a)}async _updateElement(e){const t=this._deepCloneWithEvents(e);return t.__instance=this,this.element?this.element.parentNode&&(this.element.parentNode.replaceChild(t,this.element),this.element=t):(this.element=t,this._mounted||(this._mounted=!0,queueMicrotask(()=>this.componentDidMount()))),this.element}render(){throw new Error("Component must implement render() method")}}const y={async getServer(){throw new Error("Server module can only be used in Node.js environment")}},E=i.loadGoWasm,g=i.createTypedWasmFunction,v=i.goValues,_={loadGoWasm:i.loadGoWasm,createTypedWasmFunction:i.createTypedWasmFunction,goValues:i.goValues};let j=!1;const b={Fragment:o.Fragment,jsx:o.jsx,jsxs:o.jsx,createElement:o.createElement,render:c.render,hydrate:c.hydrate,useState:n.useState,useEffect:n.useEffect,useMemo:n.useMemo,useRef:n.useRef,useContext:n.useContext,useErrorBoundary:n.useErrorBoundary,createContext:n.createContext,renderToString:l.renderToString,batchUpdates:n.batchUpdates,server:y,loadGoWasm:E,createTypedWasmFunction:g,goValues:v,wasm:_,Component:f,diff:p,shouldComponentUpdate:h};exports.Fragment=o.Fragment;exports.createElement=o.createElement;exports.jsx=o.jsx;exports.jsxDEV=o.jsx;exports.jsxs=o.jsx;exports.hydrate=c.hydrate;exports.render=c.render;exports.batchUpdates=n.batchUpdates;exports.createContext=n.createContext;exports.finishRender=n.finishRender;exports.getIsBatching=n.getIsBatching;Object.defineProperty(exports,"isBatching",{enumerable:!0,get:()=>n.isBatching});exports.prepareRender=n.prepareRender;exports.setRenderCallback=n.setRenderCallback;exports.useContext=n.useContext;exports.useEffect=n.useEffect;exports.useErrorBoundary=n.useErrorBoundary;exports.useMemo=n.useMemo;exports.useRef=n.useRef;exports.useState=n.useState;exports.renderToString=l.renderToString;exports.Component=f;exports.createTypedWasmFunction=g;exports.default=b;exports.diff=p;exports.goValues=v;exports.isHydrating=j;exports.loadGoWasm=E;exports.server=y;exports.shouldComponentUpdate=h;exports.wasm=_;