frontend-hamroun 1.2.79 → 1.2.80

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 (219) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +129 -1513
  3. package/bin/cli.js +505 -144
  4. package/dist/index.cjs +2 -0
  5. package/dist/index.cjs.map +1 -0
  6. package/dist/index.client.cjs +2 -0
  7. package/dist/index.client.cjs.map +1 -0
  8. package/dist/index.client.js +26 -0
  9. package/dist/index.client.js.map +1 -0
  10. package/dist/index.js +298 -1
  11. package/dist/index.js.map +1 -0
  12. package/dist/jsx-runtime.cjs +2 -0
  13. package/dist/jsx-runtime.cjs.map +1 -0
  14. package/dist/jsx-runtime.js +93 -1
  15. package/dist/jsx-runtime.js.map +1 -0
  16. package/dist/renderer-Bo9zkUZ_.js +52 -0
  17. package/dist/renderer-Bo9zkUZ_.js.map +1 -0
  18. package/dist/renderer-Din1y3YM.cjs +2 -0
  19. package/dist/renderer-Din1y3YM.cjs.map +1 -0
  20. package/dist/server-renderer-CqIpQ-od.cjs +2 -0
  21. package/dist/server-renderer-CqIpQ-od.cjs.map +1 -0
  22. package/dist/server-renderer-QHt45Ip2.js +255 -0
  23. package/dist/server-renderer-QHt45Ip2.js.map +1 -0
  24. package/dist/server-renderer.cjs +2 -0
  25. package/dist/server-renderer.cjs.map +1 -0
  26. package/dist/server-renderer.js +5 -1
  27. package/dist/server-renderer.js.map +1 -0
  28. package/package.json +77 -120
  29. package/templates/basic-app/build.js +22 -0
  30. package/templates/basic-app/bun.lock +196 -0
  31. package/templates/basic-app/dev.js +27 -0
  32. package/templates/basic-app/docs/rapport_pfe.aux +27 -27
  33. package/templates/basic-app/docs/rapport_pfe.out +10 -10
  34. package/templates/basic-app/docs/rapport_pfe.toc +14 -14
  35. package/templates/basic-app/esbuild.config.js +28 -0
  36. package/templates/basic-app/index.html +1 -1
  37. package/templates/{fullstack-app → basic-app}/package-lock.json +4185 -5094
  38. package/templates/basic-app/package.json +29 -28
  39. package/templates/basic-app/server.js +24 -0
  40. package/templates/basic-app/src/App.tsx +26 -0
  41. package/templates/basic-app/src/client.tsx +11 -0
  42. package/templates/basic-app/src/components/Counter.tsx +18 -0
  43. package/templates/basic-app/src/jsx-shim.ts +4 -0
  44. package/templates/basic-app/src/main.tsx +0 -1
  45. package/templates/basic-app/src/server.ts +52 -0
  46. package/templates/basic-app/tsconfig.server.json +11 -0
  47. package/templates/fullstack-app/build/main.css +874 -874
  48. package/templates/fullstack-app/build/main.css.map +7 -7
  49. package/templates/fullstack-app/build/main.js +967 -967
  50. package/templates/fullstack-app/build/main.js.map +7 -7
  51. package/templates/fullstack-app/public/styles.css +768 -768
  52. package/templates/go/example.go +99 -154
  53. package/templates/go-wasm-app/babel.config.js +2 -8
  54. package/templates/go-wasm-app/package.json +12 -21
  55. package/templates/go-wasm-app/public/wasm/wasm_exec.js +561 -561
  56. package/templates/go-wasm-app/public/wasm/wasm_exec_node.js +39 -39
  57. package/templates/go-wasm-app/server.js +510 -59
  58. package/templates/go-wasm-app/src/app.js +2 -22
  59. package/templates/go-wasm-app/src/wasm/example.go +75 -75
  60. package/templates/go-wasm-app/vite.config.js +5 -16
  61. package/templates/ssr-template/server.js +2 -2
  62. package/templates/ssr-template/vite.config.js +5 -16
  63. package/dist/Counter.d.ts +0 -0
  64. package/dist/batch/package.json +0 -16
  65. package/dist/client-router/package.json +0 -16
  66. package/dist/component/package.json +0 -16
  67. package/dist/context/package.json +0 -16
  68. package/dist/event-bus/package.json +0 -16
  69. package/dist/forms/package.json +0 -16
  70. package/dist/hooks/package.json +0 -16
  71. package/dist/hooks-0728361a.cjs +0 -1
  72. package/dist/hooks-b58f947c.js +0 -133
  73. package/dist/hooks.js +0 -1
  74. package/dist/hooks.mjs +0 -13
  75. package/dist/index.mjs +0 -137
  76. package/dist/jsx-runtime/package.json +0 -16
  77. package/dist/jsx-runtime.mjs +0 -64
  78. package/dist/lifecycle-events/package.json +0 -16
  79. package/dist/package.json +0 -71
  80. package/dist/render-component/package.json +0 -16
  81. package/dist/renderer/package.json +0 -16
  82. package/dist/renderer.js +0 -1
  83. package/dist/renderer.mjs +0 -27
  84. package/dist/router/package.json +0 -16
  85. package/dist/server/package.json +0 -17
  86. package/dist/server/src/batch.d.ts +0 -3
  87. package/dist/server/src/batch.js +0 -23
  88. package/dist/server/src/batch.js.map +0 -1
  89. package/dist/server/src/client-router.d.ts +0 -60
  90. package/dist/server/src/client-router.js +0 -210
  91. package/dist/server/src/client-router.js.map +0 -1
  92. package/dist/server/src/component.d.ts +0 -14
  93. package/dist/server/src/component.js +0 -106
  94. package/dist/server/src/component.js.map +0 -1
  95. package/dist/server/src/context.d.ts +0 -13
  96. package/dist/server/src/context.js +0 -21
  97. package/dist/server/src/context.js.map +0 -1
  98. package/dist/server/src/event-bus.d.ts +0 -23
  99. package/dist/server/src/event-bus.js +0 -75
  100. package/dist/server/src/event-bus.js.map +0 -1
  101. package/dist/server/src/forms.d.ts +0 -40
  102. package/dist/server/src/forms.js +0 -148
  103. package/dist/server/src/forms.js.map +0 -1
  104. package/dist/server/src/hooks.d.ts +0 -12
  105. package/dist/server/src/hooks.js +0 -170
  106. package/dist/server/src/hooks.js.map +0 -1
  107. package/dist/server/src/index.client.d.ts +0 -12
  108. package/dist/server/src/index.client.js +0 -14
  109. package/dist/server/src/index.client.js.map +0 -1
  110. package/dist/server/src/index.d.ts +0 -88
  111. package/dist/server/src/index.js +0 -79
  112. package/dist/server/src/index.js.map +0 -1
  113. package/dist/server/src/jsx-runtime/jsx-dev-runtime.d.ts +0 -1
  114. package/dist/server/src/jsx-runtime/jsx-dev-runtime.js +0 -2
  115. package/dist/server/src/jsx-runtime/jsx-dev-runtime.js.map +0 -1
  116. package/dist/server/src/jsx-runtime/jsx-runtime.d.ts +0 -4
  117. package/dist/server/src/jsx-runtime/jsx-runtime.js +0 -41
  118. package/dist/server/src/jsx-runtime/jsx-runtime.js.map +0 -1
  119. package/dist/server/src/jsx-runtime.d.ts +0 -20
  120. package/dist/server/src/jsx-runtime.js +0 -105
  121. package/dist/server/src/jsx-runtime.js.map +0 -1
  122. package/dist/server/src/lifecycle-events.d.ts +0 -108
  123. package/dist/server/src/lifecycle-events.js +0 -177
  124. package/dist/server/src/lifecycle-events.js.map +0 -1
  125. package/dist/server/src/renderComponent.d.ts +0 -13
  126. package/dist/server/src/renderComponent.js +0 -30
  127. package/dist/server/src/renderComponent.js.map +0 -1
  128. package/dist/server/src/renderer.d.ts +0 -2
  129. package/dist/server/src/renderer.js +0 -31
  130. package/dist/server/src/renderer.js.map +0 -1
  131. package/dist/server/src/router.d.ts +0 -55
  132. package/dist/server/src/router.js +0 -166
  133. package/dist/server/src/router.js.map +0 -1
  134. package/dist/server/src/server/api-router.d.ts +0 -15
  135. package/dist/server/src/server/api-router.js +0 -111
  136. package/dist/server/src/server/api-router.js.map +0 -1
  137. package/dist/server/src/server/auth.d.ts +0 -32
  138. package/dist/server/src/server/auth.js +0 -80
  139. package/dist/server/src/server/auth.js.map +0 -1
  140. package/dist/server/src/server/database.d.ts +0 -24
  141. package/dist/server/src/server/database.js +0 -135
  142. package/dist/server/src/server/database.js.map +0 -1
  143. package/dist/server/src/server/index.d.ts +0 -116
  144. package/dist/server/src/server/index.js +0 -508
  145. package/dist/server/src/server/index.js.map +0 -1
  146. package/dist/server/src/server/middleware.d.ts +0 -11
  147. package/dist/server/src/server/middleware.js +0 -46
  148. package/dist/server/src/server/middleware.js.map +0 -1
  149. package/dist/server/src/server/server.d.ts +0 -9
  150. package/dist/server/src/server/server.js +0 -87
  151. package/dist/server/src/server/server.js.map +0 -1
  152. package/dist/server/src/server/templates.d.ts +0 -30
  153. package/dist/server/src/server/templates.js +0 -208
  154. package/dist/server/src/server/templates.js.map +0 -1
  155. package/dist/server/src/server/types.d.ts +0 -38
  156. package/dist/server/src/server/types.js +0 -4
  157. package/dist/server/src/server/types.js.map +0 -1
  158. package/dist/server/src/server/utils.d.ts +0 -70
  159. package/dist/server/src/server/utils.js +0 -156
  160. package/dist/server/src/server/utils.js.map +0 -1
  161. package/dist/server/src/server/wasm.d.ts +0 -9
  162. package/dist/server/src/server/wasm.js +0 -117
  163. package/dist/server/src/server/wasm.js.map +0 -1
  164. package/dist/server/src/server-renderer.d.ts +0 -5
  165. package/dist/server/src/server-renderer.js +0 -106
  166. package/dist/server/src/server-renderer.js.map +0 -1
  167. package/dist/server/src/server-types.d.ts +0 -42
  168. package/dist/server/src/server-types.js +0 -6
  169. package/dist/server/src/server-types.js.map +0 -1
  170. package/dist/server/src/store.d.ts +0 -41
  171. package/dist/server/src/store.js +0 -99
  172. package/dist/server/src/store.js.map +0 -1
  173. package/dist/server/src/types.d.ts +0 -19
  174. package/dist/server/src/types.js +0 -2
  175. package/dist/server/src/types.js.map +0 -1
  176. package/dist/server/src/utils.d.ts +0 -46
  177. package/dist/server/src/utils.js +0 -144
  178. package/dist/server/src/utils.js.map +0 -1
  179. package/dist/server/src/vdom.d.ts +0 -8
  180. package/dist/server/src/vdom.js +0 -22
  181. package/dist/server/src/vdom.js.map +0 -1
  182. package/dist/server/src/wasm.d.ts +0 -36
  183. package/dist/server/src/wasm.js +0 -159
  184. package/dist/server/src/wasm.js.map +0 -1
  185. package/dist/server/tsconfig.server.tsbuildinfo +0 -1
  186. package/dist/server-renderer/package.json +0 -16
  187. package/dist/server-renderer.mjs +0 -64
  188. package/dist/store/package.json +0 -16
  189. package/dist/types/package.json +0 -16
  190. package/dist/utils/package.json +0 -16
  191. package/dist/vdom/package.json +0 -16
  192. package/dist/wasm/package.json +0 -16
  193. package/dist/wasm.js +0 -1
  194. package/dist/wasm.mjs +0 -103
  195. package/templates/basic-app/docs/rapport_pfe.log +0 -399
  196. package/templates/complete-app/client.js +0 -58
  197. package/templates/complete-app/package-lock.json +0 -2536
  198. package/templates/complete-app/package.json +0 -17
  199. package/templates/complete-app/pages/about.js +0 -119
  200. package/templates/complete-app/pages/index.js +0 -157
  201. package/templates/complete-app/pages/wasm-demo.js +0 -290
  202. package/templates/complete-app/public/client.js +0 -80
  203. package/templates/complete-app/public/index.html +0 -47
  204. package/templates/complete-app/public/styles.css +0 -579
  205. package/templates/complete-app/readme.md +0 -188
  206. package/templates/complete-app/server.js +0 -417
  207. package/templates/complete-app/server.ts +0 -275
  208. package/templates/complete-app/src/App.tsx +0 -59
  209. package/templates/complete-app/src/client.ts +0 -61
  210. package/templates/complete-app/src/client.tsx +0 -18
  211. package/templates/complete-app/src/pages/index.tsx +0 -51
  212. package/templates/complete-app/src/server.ts +0 -218
  213. package/templates/complete-app/tsconfig.json +0 -22
  214. package/templates/complete-app/tsconfig.server.json +0 -19
  215. package/templates/complete-app/vite.config.js +0 -57
  216. package/templates/complete-app/vite.config.ts +0 -30
  217. package/templates/go-wasm-app/build.config.js +0 -62
  218. package/templates/go-wasm-app/build.js +0 -218
  219. package/templates/go-wasm-app/package-lock.json +0 -3732
@@ -1,64 +0,0 @@
1
- function f(e, i) {
2
- console.log("JSX Transform:", { type: e, props: i });
3
- const o = { ...i };
4
- return arguments.length > 2 && (o.children = Array.prototype.slice.call(arguments, 2)), { type: e, props: o };
5
- }
6
- const m = ({ children: e }) => e;
7
- async function l(e) {
8
- var i;
9
- if (console.log("Creating element from:", e), e == null || typeof e == "boolean")
10
- return document.createTextNode("");
11
- if (typeof e == "number" || typeof e == "string")
12
- return document.createTextNode(String(e));
13
- if (Array.isArray(e)) {
14
- const o = document.createDocumentFragment();
15
- for (const s of e) {
16
- const n = await l(s);
17
- o.appendChild(n);
18
- }
19
- return o;
20
- }
21
- if ("type" in e && e.props !== void 0) {
22
- const { type: o, props: s } = e;
23
- if (typeof o == "function")
24
- try {
25
- const t = await o(s || {}), r = await l(t);
26
- return r instanceof Element && r.setAttribute("data-component-id", o.name || o.toString()), r;
27
- } catch (t) {
28
- return console.error("Error rendering component:", t), document.createTextNode("");
29
- }
30
- const n = document.createElement(o);
31
- for (const [t, r] of Object.entries(s || {}))
32
- if (t !== "children")
33
- if (t.startsWith("on") && typeof r == "function") {
34
- const c = t.toLowerCase().slice(2), u = (i = n.__events) == null ? void 0 : i[c];
35
- u && n.removeEventListener(c, u), n.addEventListener(c, r), n.__events || (n.__events = {}), n.__events[c] = r;
36
- } else
37
- t === "style" && typeof r == "object" ? Object.assign(n.style, r) : t === "className" ? n.setAttribute("class", String(r)) : t !== "key" && t !== "ref" && n.setAttribute(t, String(r));
38
- const a = s == null ? void 0 : s.children;
39
- if (a != null) {
40
- const t = Array.isArray(a) ? a.flat() : [a];
41
- for (const r of t) {
42
- const c = await l(r);
43
- n.appendChild(c);
44
- }
45
- }
46
- return n;
47
- }
48
- return document.createTextNode(String(e));
49
- }
50
- const d = {
51
- jsx: f,
52
- jsxs: f,
53
- jsxDEV: f,
54
- Fragment: m,
55
- createElement: l
56
- };
57
- export {
58
- m as Fragment,
59
- l as createElement,
60
- d as default,
61
- f as jsx,
62
- f as jsxDEV,
63
- f as jsxs
64
- };
@@ -1,16 +0,0 @@
1
- {
2
- "name": "frontend-hamroun/lifecycle-events",
3
- "version": "1.2.79",
4
- "type": "module",
5
- "main": "./index.js",
6
- "module": "./index.mjs",
7
- "types": "./index.d.ts",
8
- "exports": {
9
- ".": {
10
- "import": "./index.mjs",
11
- "require": "./index.js",
12
- "types": "./index.d.ts"
13
- }
14
- },
15
- "sideEffects": false
16
- }
package/dist/package.json DELETED
@@ -1,71 +0,0 @@
1
- {
2
- "name": "frontend-hamroun",
3
- "version": "1.2.79",
4
- "type": "module",
5
- "main": "./index.js",
6
- "module": "./index.mjs",
7
- "types": "./index.d.ts",
8
- "exports": {
9
- ".": {
10
- "import": "./index.mjs",
11
- "require": "./index.js",
12
- "types": "./index.d.ts"
13
- },
14
- "./jsx-runtime": {
15
- "import": "./jsx-runtime/index.mjs",
16
- "require": "./jsx-runtime/index.js",
17
- "types": "./jsx-runtime/index.d.ts"
18
- },
19
- "./server": {
20
- "import": "./server/index.mjs",
21
- "require": "./server/index.js",
22
- "types": "./server/index.d.ts"
23
- },
24
- "./wasm": {
25
- "import": "./wasm/index.mjs",
26
- "require": "./wasm/index.js",
27
- "types": "./wasm/index.d.ts"
28
- },
29
- "./router": {
30
- "import": "./router/index.mjs",
31
- "require": "./router/index.js",
32
- "types": "./router/index.d.ts"
33
- },
34
- "./forms": {
35
- "import": "./forms/index.mjs",
36
- "require": "./forms/index.js",
37
- "types": "./forms/index.d.ts"
38
- },
39
- "./store": {
40
- "import": "./store/index.mjs",
41
- "require": "./store/index.js",
42
- "types": "./store/index.d.ts"
43
- },
44
- "./utils": {
45
- "import": "./utils/index.mjs",
46
- "require": "./utils/index.js",
47
- "types": "./utils/index.d.ts"
48
- },
49
- "./event-bus": {
50
- "import": "./event-bus/index.mjs",
51
- "require": "./event-bus/index.js",
52
- "types": "./event-bus/index.d.ts"
53
- },
54
- "./lifecycle-events": {
55
- "import": "./lifecycle-events/index.mjs",
56
- "require": "./lifecycle-events/index.js",
57
- "types": "./lifecycle-events/index.d.ts"
58
- },
59
- "./client-router": {
60
- "import": "./client-router/index.mjs",
61
- "require": "./client-router/index.js",
62
- "types": "./client-router/index.d.ts"
63
- },
64
- "./render-component": {
65
- "import": "./render-component/index.mjs",
66
- "require": "./render-component/index.js",
67
- "types": "./render-component/index.d.ts"
68
- }
69
- },
70
- "sideEffects": false
71
- }
@@ -1,16 +0,0 @@
1
- {
2
- "name": "frontend-hamroun/render-component",
3
- "version": "1.2.79",
4
- "type": "module",
5
- "main": "./index.js",
6
- "module": "./index.mjs",
7
- "types": "./index.d.ts",
8
- "exports": {
9
- ".": {
10
- "import": "./index.mjs",
11
- "require": "./index.js",
12
- "types": "./index.d.ts"
13
- }
14
- },
15
- "sideEffects": false
16
- }
@@ -1,16 +0,0 @@
1
- {
2
- "name": "frontend-hamroun/renderer",
3
- "version": "1.2.79",
4
- "type": "module",
5
- "main": "./index.js",
6
- "module": "./index.mjs",
7
- "types": "./index.d.ts",
8
- "exports": {
9
- ".": {
10
- "import": "./index.mjs",
11
- "require": "./index.js",
12
- "types": "./index.d.ts"
13
- }
14
- },
15
- "sideEffects": false
16
- }
package/dist/renderer.js DELETED
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./jsx-runtime.js"),n=require("./hooks-0728361a.cjs");let t=!1;async function s(r,e){t=!0;try{await a(r,e)}finally{t=!1}}async function a(r,e){console.log("Rendering to:",e.id),n.batchUpdates(async()=>{const l=n.prepareRender();try{n.setRenderCallback(a,r,e);const d=await i.createElement(r);t||(e.innerHTML=""),e.appendChild(d)}finally{n.finishRender()}})}exports.hydrate=s;exports.render=a;
package/dist/renderer.mjs DELETED
@@ -1,27 +0,0 @@
1
- import { createElement as t } from "./jsx-runtime.mjs";
2
- import { g as d, p as i, s as l, h as o } from "./hooks-b58f947c.js";
3
- let r = !1;
4
- async function c(a, e) {
5
- r = !0;
6
- try {
7
- await n(a, e);
8
- } finally {
9
- r = !1;
10
- }
11
- }
12
- async function n(a, e) {
13
- console.log("Rendering to:", e.id), d(async () => {
14
- const f = i();
15
- try {
16
- l(n, a, e);
17
- const s = await t(a);
18
- r || (e.innerHTML = ""), e.appendChild(s);
19
- } finally {
20
- o();
21
- }
22
- });
23
- }
24
- export {
25
- c as hydrate,
26
- n as render
27
- };
@@ -1,16 +0,0 @@
1
- {
2
- "name": "frontend-hamroun/router",
3
- "version": "1.2.79",
4
- "type": "module",
5
- "main": "./index.js",
6
- "module": "./index.mjs",
7
- "types": "./index.d.ts",
8
- "exports": {
9
- ".": {
10
- "import": "./index.mjs",
11
- "require": "./index.js",
12
- "types": "./index.d.ts"
13
- }
14
- },
15
- "sideEffects": false
16
- }
@@ -1,17 +0,0 @@
1
- {
2
- "name": "frontend-hamroun/server",
3
- "version": "1.2.79",
4
- "type": "module",
5
- "main": "./index.js",
6
- "module": "./index.mjs",
7
- "types": "./index.d.ts",
8
- "exports": {
9
- ".": {
10
- "import": "./index.mjs",
11
- "require": "./index.js",
12
- "types": "./index.d.ts",
13
- "node": "./index.js"
14
- }
15
- },
16
- "sideEffects": false
17
- }
@@ -1,3 +0,0 @@
1
- export declare let isBatching: boolean;
2
- export declare function batchUpdates(fn: Function): void;
3
- export declare function getIsBatching(): boolean;
@@ -1,23 +0,0 @@
1
- export let isBatching = false;
2
- const queue = [];
3
- export function batchUpdates(fn) {
4
- if (isBatching) {
5
- queue.push(fn);
6
- return;
7
- }
8
- isBatching = true;
9
- try {
10
- fn();
11
- while (queue.length > 0) {
12
- const nextFn = queue.shift();
13
- nextFn?.();
14
- }
15
- }
16
- finally {
17
- isBatching = false;
18
- }
19
- }
20
- export function getIsBatching() {
21
- return isBatching;
22
- }
23
- //# sourceMappingURL=batch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../../src/batch.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAI,UAAU,GAAG,KAAK,CAAC;AAC9B,MAAM,KAAK,GAAe,EAAE,CAAC;AAE7B,MAAM,UAAU,YAAY,CAAC,EAAY;IACvC,IAAI,UAAU,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,OAAO;IACT,CAAC;IAED,UAAU,GAAG,IAAI,CAAC;IAClB,IAAI,CAAC;QACH,EAAE,EAAE,CAAC;QACL,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;YAC7B,MAAM,EAAE,EAAE,CAAC;QACb,CAAC;IACH,CAAC;YAAS,CAAC;QACT,UAAU,GAAG,KAAK,CAAC;IACrB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -1,60 +0,0 @@
1
- export interface Route {
2
- path: string;
3
- component: any;
4
- props?: Record<string, any>;
5
- exact?: boolean;
6
- }
7
- export interface RouterState {
8
- location: {
9
- pathname: string;
10
- search: string;
11
- hash: string;
12
- };
13
- params: Record<string, string>;
14
- navigate: (to: string, options?: NavigateOptions) => void;
15
- match: (path: string) => boolean;
16
- }
17
- export interface NavigateOptions {
18
- replace?: boolean;
19
- state?: any;
20
- }
21
- export declare const RouterContext: import("./context.js").Context<RouterState>;
22
- export declare function RouterProvider({ routes, children }: {
23
- routes: Route[];
24
- children: any;
25
- }): any;
26
- export declare function Route({ path, component: Component, props }: Route): any;
27
- export declare function Switch({ children }: {
28
- children: any;
29
- }): any;
30
- export declare function Link({ to, replace, state, className, activeClassName, children, ...rest }: {
31
- to: string;
32
- replace?: boolean;
33
- state?: any;
34
- className?: string;
35
- activeClassName?: string;
36
- children: any;
37
- [key: string]: any;
38
- }): any;
39
- export declare function Redirect({ to, replace }: {
40
- to: string;
41
- replace?: boolean;
42
- }): null;
43
- export declare function useLocation(): {
44
- pathname: string;
45
- search: string;
46
- hash: string;
47
- };
48
- export declare function useParams(): Record<string, string>;
49
- export declare function useNavigate(): (to: string, options?: NavigateOptions) => void;
50
- declare const _default: {
51
- RouterProvider: typeof RouterProvider;
52
- Route: typeof Route;
53
- Switch: typeof Switch;
54
- Link: typeof Link;
55
- Redirect: typeof Redirect;
56
- useLocation: typeof useLocation;
57
- useParams: typeof useParams;
58
- useNavigate: typeof useNavigate;
59
- };
60
- export default _default;
@@ -1,210 +0,0 @@
1
- /**
2
- * Client-side router for single-page applications
3
- */
4
- import { useState, useEffect } from './hooks';
5
- import { createContext, useContext } from './context';
6
- import { jsx } from './jsx-runtime';
7
- // Create context for router
8
- export const RouterContext = createContext({
9
- location: {
10
- pathname: '/',
11
- search: '',
12
- hash: ''
13
- },
14
- params: {},
15
- navigate: () => { },
16
- match: () => false
17
- });
18
- // Parse path pattern into regex
19
- function parsePath(path) {
20
- // Convert :param syntax to capture groups
21
- const pattern = path
22
- .replace(/\/+$/, '') // Remove trailing slashes
23
- .replace(/^\/+/, '/') // Ensure leading slash
24
- .replace(/\/:([^/]+)/g, '/([^/]+)');
25
- // Get param names
26
- const paramNames = [];
27
- path.replace(/\/:([^/]+)/g, (_, paramName) => {
28
- paramNames.push(paramName);
29
- return '';
30
- });
31
- return { pattern, paramNames };
32
- }
33
- // Match a path against a pattern
34
- function matchPath(pathname, route) {
35
- const { path, exact = false } = route;
36
- const { pattern, paramNames } = parsePath(path);
37
- // Create regex with or without exact matching
38
- const regex = new RegExp(`^${pattern}${exact ? '$' : ''}`);
39
- const match = pathname.match(regex);
40
- if (!match)
41
- return null;
42
- // Extract params
43
- const params = {};
44
- paramNames.forEach((name, index) => {
45
- params[name] = match[index + 1];
46
- });
47
- return params;
48
- }
49
- // Router Provider component
50
- export function RouterProvider({ routes, children }) {
51
- // Get initial location from window if available
52
- const getInitialLocation = () => {
53
- if (typeof window === 'undefined') {
54
- return { pathname: '/', search: '', hash: '' };
55
- }
56
- return {
57
- pathname: window.location.pathname,
58
- search: window.location.search,
59
- hash: window.location.hash
60
- };
61
- };
62
- // Fix: Call the function to get the initial value instead of passing the function itself
63
- const [location, setLocation] = useState(getInitialLocation());
64
- const [params, setParams] = useState({});
65
- // Update params when location changes
66
- useEffect(() => {
67
- for (const route of routes) {
68
- const matchedParams = matchPath(location.pathname, route);
69
- if (matchedParams) {
70
- setParams(matchedParams);
71
- break;
72
- }
73
- }
74
- }, [location, routes]);
75
- // Listen for popstate events
76
- useEffect(() => {
77
- if (typeof window === 'undefined')
78
- return;
79
- const handlePopState = () => {
80
- setLocation({
81
- pathname: window.location.pathname,
82
- search: window.location.search,
83
- hash: window.location.hash
84
- });
85
- };
86
- window.addEventListener('popstate', handlePopState);
87
- return () => window.removeEventListener('popstate', handlePopState);
88
- }, []);
89
- // Navigation function
90
- const navigate = (to, options = {}) => {
91
- if (typeof window === 'undefined')
92
- return;
93
- const { replace = false, state = null } = options;
94
- if (replace) {
95
- window.history.replaceState(state, '', to);
96
- }
97
- else {
98
- window.history.pushState(state, '', to);
99
- }
100
- // Update location
101
- setLocation({
102
- pathname: window.location.pathname,
103
- search: window.location.search,
104
- hash: window.location.hash
105
- });
106
- };
107
- // Match function to test if a path matches the current location
108
- const match = (path) => {
109
- const { pattern } = parsePath(path);
110
- const regex = new RegExp(`^${pattern}`);
111
- return regex.test(location.pathname);
112
- };
113
- // Router context value
114
- const routerValue = {
115
- location: {
116
- pathname: location.pathname,
117
- search: location.search,
118
- hash: location.hash
119
- },
120
- params,
121
- navigate,
122
- match
123
- };
124
- return jsx(RouterContext.Provider, { value: routerValue, children });
125
- }
126
- // Route component
127
- export function Route({ path, component: Component, props = {} }) {
128
- const context = useContext(RouterContext);
129
- const params = context.params;
130
- const locationPathname = context.location.pathname;
131
- const routeToMatch = { path, component: Component };
132
- const match = matchPath(locationPathname, routeToMatch);
133
- if (!match)
134
- return null;
135
- return jsx(Component, { ...props, params });
136
- }
137
- // Switch component
138
- export function Switch({ children }) {
139
- const context = useContext(RouterContext);
140
- const locationPathname = context.location.pathname;
141
- // Find the first matching route
142
- const child = Array.isArray(children)
143
- ? children.find(child => {
144
- if (!child || typeof child.type !== 'function' || !child.props.path)
145
- return false;
146
- const routeObj = {
147
- path: child.props.path,
148
- component: child.type,
149
- exact: child.props.exact || false
150
- };
151
- return matchPath(locationPathname, routeObj);
152
- })
153
- : children;
154
- return child || null;
155
- }
156
- // Link component
157
- export function Link({ to, replace = false, state = null, className = '', activeClassName = '', children, ...rest }) {
158
- const context = useContext(RouterContext);
159
- const navigate = context.navigate;
160
- const match = context.match;
161
- const handleClick = (e) => {
162
- e.preventDefault();
163
- navigate(to, { replace, state });
164
- };
165
- const isActive = match(to);
166
- const classes = [
167
- className,
168
- isActive ? activeClassName : ''
169
- ].filter(Boolean).join(' ');
170
- return jsx('a', {
171
- href: to,
172
- className: classes || undefined,
173
- onClick: handleClick,
174
- ...rest,
175
- children
176
- });
177
- }
178
- // Redirect component
179
- export function Redirect({ to, replace = true }) {
180
- const context = useContext(RouterContext);
181
- const navigate = context.navigate;
182
- useEffect(() => {
183
- navigate(to, { replace });
184
- }, [to]);
185
- return null;
186
- }
187
- // Hooks
188
- export function useLocation() {
189
- const context = useContext(RouterContext);
190
- return context.location;
191
- }
192
- export function useParams() {
193
- const context = useContext(RouterContext);
194
- return context.params;
195
- }
196
- export function useNavigate() {
197
- const context = useContext(RouterContext);
198
- return context.navigate;
199
- }
200
- export default {
201
- RouterProvider,
202
- Route,
203
- Switch,
204
- Link,
205
- Redirect,
206
- useLocation,
207
- useParams,
208
- useNavigate
209
- };
210
- //# sourceMappingURL=client-router.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client-router.js","sourceRoot":"","sources":["../../../src/client-router.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- export declare class Component {
2
- state: any;
3
- props: any;
4
- element: HTMLElement | null;
5
- private _mounted;
6
- constructor(props?: any);
7
- componentDidMount(): void;
8
- setState(newState: any): Promise<void>;
9
- private _replayEvents;
10
- private _deepCloneWithEvents;
11
- update(): Promise<HTMLElement | Text>;
12
- private _updateElement;
13
- render(): any;
14
- }