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,177 +0,0 @@
1
- /**
2
- * Lifecycle events for components and application
3
- */
4
- import { eventBus } from './event-bus';
5
- export var LifecycleEvents;
6
- (function (LifecycleEvents) {
7
- LifecycleEvents["APP_INIT"] = "app:init";
8
- LifecycleEvents["APP_MOUNTED"] = "app:mounted";
9
- LifecycleEvents["APP_UPDATED"] = "app:updated";
10
- LifecycleEvents["APP_ERROR"] = "app:error";
11
- LifecycleEvents["APP_DESTROYED"] = "app:destroyed";
12
- LifecycleEvents["COMPONENT_CREATED"] = "component:created";
13
- LifecycleEvents["COMPONENT_MOUNTED"] = "component:mounted";
14
- LifecycleEvents["COMPONENT_UPDATED"] = "component:updated";
15
- LifecycleEvents["COMPONENT_ERROR"] = "component:error";
16
- LifecycleEvents["COMPONENT_UNMOUNTED"] = "component:unmounted";
17
- LifecycleEvents["ROUTER_BEFORE_CHANGE"] = "router:before-change";
18
- LifecycleEvents["ROUTER_AFTER_CHANGE"] = "router:after-change";
19
- LifecycleEvents["ROUTER_ERROR"] = "router:error";
20
- LifecycleEvents["STORE_INITIALIZED"] = "store:initialized";
21
- LifecycleEvents["STORE_BEFORE_ACTION"] = "store:before-action";
22
- LifecycleEvents["STORE_AFTER_ACTION"] = "store:after-action";
23
- LifecycleEvents["STORE_ERROR"] = "store:error";
24
- })(LifecycleEvents || (LifecycleEvents = {}));
25
- // Event emitters
26
- export function emitAppInit(data) {
27
- eventBus.emit(LifecycleEvents.APP_INIT, data);
28
- }
29
- export function emitAppMounted(rootElement) {
30
- eventBus.emit(LifecycleEvents.APP_MOUNTED, rootElement);
31
- }
32
- export function emitAppUpdated() {
33
- eventBus.emit(LifecycleEvents.APP_UPDATED);
34
- }
35
- export function emitAppError(error) {
36
- eventBus.emit(LifecycleEvents.APP_ERROR, error);
37
- }
38
- export function emitAppDestroyed() {
39
- eventBus.emit(LifecycleEvents.APP_DESTROYED);
40
- }
41
- export function emitComponentCreated(info) {
42
- eventBus.emit(LifecycleEvents.COMPONENT_CREATED, info);
43
- }
44
- export function emitComponentMounted(info, element) {
45
- eventBus.emit(LifecycleEvents.COMPONENT_MOUNTED, info, element);
46
- }
47
- export function emitComponentUpdated(info, prevProps, newProps) {
48
- eventBus.emit(LifecycleEvents.COMPONENT_UPDATED, info, prevProps, newProps);
49
- }
50
- export function emitComponentError(info, error) {
51
- eventBus.emit(LifecycleEvents.COMPONENT_ERROR, info, error);
52
- }
53
- export function emitComponentUnmounted(info) {
54
- eventBus.emit(LifecycleEvents.COMPONENT_UNMOUNTED, info);
55
- }
56
- export function emitRouterBeforeChange(info) {
57
- return new Promise(resolve => {
58
- // Allow hooks to prevent navigation
59
- let prevented = false;
60
- const prevent = () => {
61
- prevented = true;
62
- };
63
- eventBus.emit(LifecycleEvents.ROUTER_BEFORE_CHANGE, info, prevent);
64
- // Resolve with whether navigation should continue
65
- resolve(!prevented);
66
- });
67
- }
68
- export function emitRouterAfterChange(info) {
69
- eventBus.emit(LifecycleEvents.ROUTER_AFTER_CHANGE, info);
70
- }
71
- export function emitRouterError(error, info) {
72
- eventBus.emit(LifecycleEvents.ROUTER_ERROR, error, info);
73
- }
74
- export function emitStoreInitialized(state) {
75
- eventBus.emit(LifecycleEvents.STORE_INITIALIZED, state);
76
- }
77
- export function emitStoreBeforeAction(actionType, payload, state) {
78
- eventBus.emit(LifecycleEvents.STORE_BEFORE_ACTION, actionType, payload, state);
79
- }
80
- export function emitStoreAfterAction(info) {
81
- eventBus.emit(LifecycleEvents.STORE_AFTER_ACTION, info);
82
- }
83
- export function emitStoreError(error, actionType, payload) {
84
- eventBus.emit(LifecycleEvents.STORE_ERROR, error, actionType, payload);
85
- }
86
- // Event listeners
87
- export function onAppInit(handler) {
88
- return eventBus.on(LifecycleEvents.APP_INIT, handler);
89
- }
90
- export function onAppMounted(handler) {
91
- return eventBus.on(LifecycleEvents.APP_MOUNTED, handler);
92
- }
93
- export function onAppUpdated(handler) {
94
- return eventBus.on(LifecycleEvents.APP_UPDATED, handler);
95
- }
96
- export function onAppError(handler) {
97
- return eventBus.on(LifecycleEvents.APP_ERROR, handler);
98
- }
99
- export function onAppDestroyed(handler) {
100
- return eventBus.on(LifecycleEvents.APP_DESTROYED, handler);
101
- }
102
- export function onComponentCreated(handler) {
103
- return eventBus.on(LifecycleEvents.COMPONENT_CREATED, handler);
104
- }
105
- export function onComponentMounted(handler) {
106
- return eventBus.on(LifecycleEvents.COMPONENT_MOUNTED, handler);
107
- }
108
- export function onComponentUpdated(handler) {
109
- return eventBus.on(LifecycleEvents.COMPONENT_UPDATED, handler);
110
- }
111
- export function onComponentError(handler) {
112
- return eventBus.on(LifecycleEvents.COMPONENT_ERROR, handler);
113
- }
114
- export function onComponentUnmounted(handler) {
115
- return eventBus.on(LifecycleEvents.COMPONENT_UNMOUNTED, handler);
116
- }
117
- export function onRouterBeforeChange(handler) {
118
- return eventBus.on(LifecycleEvents.ROUTER_BEFORE_CHANGE, handler);
119
- }
120
- export function onRouterAfterChange(handler) {
121
- return eventBus.on(LifecycleEvents.ROUTER_AFTER_CHANGE, handler);
122
- }
123
- export function onRouterError(handler) {
124
- return eventBus.on(LifecycleEvents.ROUTER_ERROR, handler);
125
- }
126
- export function onStoreInitialized(handler) {
127
- return eventBus.on(LifecycleEvents.STORE_INITIALIZED, handler);
128
- }
129
- export function onStoreBeforeAction(handler) {
130
- return eventBus.on(LifecycleEvents.STORE_BEFORE_ACTION, handler);
131
- }
132
- export function onStoreAfterAction(handler) {
133
- return eventBus.on(LifecycleEvents.STORE_AFTER_ACTION, handler);
134
- }
135
- export function onStoreError(handler) {
136
- return eventBus.on(LifecycleEvents.STORE_ERROR, handler);
137
- }
138
- export default {
139
- LifecycleEvents,
140
- // Emitters
141
- emitAppInit,
142
- emitAppMounted,
143
- emitAppUpdated,
144
- emitAppError,
145
- emitAppDestroyed,
146
- emitComponentCreated,
147
- emitComponentMounted,
148
- emitComponentUpdated,
149
- emitComponentError,
150
- emitComponentUnmounted,
151
- emitRouterBeforeChange,
152
- emitRouterAfterChange,
153
- emitRouterError,
154
- emitStoreInitialized,
155
- emitStoreBeforeAction,
156
- emitStoreAfterAction,
157
- emitStoreError,
158
- // Listeners
159
- onAppInit,
160
- onAppMounted,
161
- onAppUpdated,
162
- onAppError,
163
- onAppDestroyed,
164
- onComponentCreated,
165
- onComponentMounted,
166
- onComponentUpdated,
167
- onComponentError,
168
- onComponentUnmounted,
169
- onRouterBeforeChange,
170
- onRouterAfterChange,
171
- onRouterError,
172
- onStoreInitialized,
173
- onStoreBeforeAction,
174
- onStoreAfterAction,
175
- onStoreError
176
- };
177
- //# sourceMappingURL=lifecycle-events.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lifecycle-events.js","sourceRoot":"","sources":["../../../src/lifecycle-events.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Result of component rendering
3
- */
4
- export interface RenderResult {
5
- html: string;
6
- success: boolean;
7
- error?: Error;
8
- }
9
- /**
10
- * Renders a component to an HTML string with error handling
11
- */
12
- export declare function renderComponent(Component: any, props?: any): Promise<RenderResult>;
13
- export default renderComponent;
@@ -1,30 +0,0 @@
1
- /**
2
- * Utility for rendering components to strings and hydrating them
3
- */
4
- import { renderToString } from './server-renderer';
5
- /**
6
- * Renders a component to an HTML string with error handling
7
- */
8
- export async function renderComponent(Component, props = {}) {
9
- try {
10
- // Call the component function with props
11
- const element = Component(props);
12
- // Convert the element to an HTML string
13
- const html = renderToString(element);
14
- return {
15
- html,
16
- success: true
17
- };
18
- }
19
- catch (error) {
20
- console.error('Error rendering component:', error);
21
- return {
22
- html: `<div class="error">Error rendering component</div>`,
23
- success: false,
24
- // Fix the type error by ensuring error is an Error object
25
- error: error instanceof Error ? error : new Error(String(error))
26
- };
27
- }
28
- }
29
- export default renderComponent;
30
- //# sourceMappingURL=renderComponent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"renderComponent.js","sourceRoot":"","sources":["../../../src/renderComponent.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAWtD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,SAAc,EAAE,QAAa,EAAE;IACnE,IAAI,CAAC;QACH,yCAAyC;QACzC,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QAEjC,wCAAwC;QACxC,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QAErC,OAAO;YACL,IAAI;YACJ,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;QACnD,OAAO;YACL,IAAI,EAAE,oDAAoD;YAC1D,OAAO,EAAE,KAAK;YACd,0DAA0D;YAC1D,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACjE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,eAAe,eAAe,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare function hydrate(element: any, container: HTMLElement): Promise<void>;
2
- export declare function render(element: any, container: HTMLElement): Promise<void>;
@@ -1,31 +0,0 @@
1
- import { createElement } from './jsx-runtime';
2
- import { prepareRender, finishRender, setRenderCallback } from './hooks';
3
- import { batchUpdates } from './batch';
4
- let isHydrating = false;
5
- export async function hydrate(element, container) {
6
- isHydrating = true;
7
- try {
8
- await render(element, container);
9
- }
10
- finally {
11
- isHydrating = false;
12
- }
13
- }
14
- export async function render(element, container) {
15
- console.log('Rendering to:', container.id);
16
- batchUpdates(async () => {
17
- const rendererId = prepareRender();
18
- try {
19
- setRenderCallback(render, element, container);
20
- const domNode = await createElement(element);
21
- if (!isHydrating) {
22
- container.innerHTML = '';
23
- }
24
- container.appendChild(domNode);
25
- }
26
- finally {
27
- finishRender();
28
- }
29
- });
30
- }
31
- //# sourceMappingURL=renderer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAY,EAAE,SAAsB;IAChE,WAAW,GAAG,IAAI,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACnC,CAAC;YAAS,CAAC;QACT,WAAW,GAAG,KAAK,CAAC;IACtB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,OAAY,EAAE,SAAsB;IAC/D,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;IAE3C,YAAY,CAAC,KAAK,IAAI,EAAE;QACtB,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YAC9C,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;YAE7C,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC;YAC3B,CAAC;YACD,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEjC,CAAC;gBAAS,CAAC;YACT,YAAY,EAAE,CAAC;QACjB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,55 +0,0 @@
1
- export interface Route {
2
- path: string;
3
- component: any;
4
- exact?: boolean;
5
- children?: Route[];
6
- }
7
- export interface RouterContextValue {
8
- currentPath: string;
9
- navigate: (path: string) => void;
10
- params: Record<string, string>;
11
- query: Record<string, string>;
12
- }
13
- export interface RouteParams {
14
- [key: string]: string;
15
- }
16
- export declare const RouterContext: import("./context.js").Context<RouterContextValue>;
17
- export declare function useRouter(): RouterContextValue;
18
- export declare function useLocation(): {
19
- pathname: string;
20
- search: string;
21
- hash: string;
22
- state: {};
23
- };
24
- export declare function useParams<T extends RouteParams = RouteParams>(): T;
25
- export declare function useNavigate(): (path: string) => void;
26
- export declare function RouterProvider({ children }: {
27
- children: any;
28
- }): any;
29
- export declare function Router({ routes }: {
30
- routes: Route[];
31
- }): any;
32
- export declare function Link({ to, children, ...rest }: {
33
- to: string;
34
- children: any;
35
- [key: string]: any;
36
- }): any;
37
- export declare function Route({ path, component }: {
38
- path: string;
39
- component: any;
40
- }): null;
41
- export declare function Switch({ children }: {
42
- children: any;
43
- }): any;
44
- declare const _default: {
45
- RouterProvider: typeof RouterProvider;
46
- Router: typeof Router;
47
- Link: typeof Link;
48
- Route: typeof Route;
49
- Switch: typeof Switch;
50
- useRouter: typeof useRouter;
51
- useParams: typeof useParams;
52
- useNavigate: typeof useNavigate;
53
- useLocation: typeof useLocation;
54
- };
55
- export default _default;
@@ -1,166 +0,0 @@
1
- /**
2
- * Router implementation for client and server navigation
3
- */
4
- import { useState, useEffect } from './hooks';
5
- import { createContext, useContext } from './context';
6
- import { jsx } from './jsx-runtime';
7
- export const RouterContext = createContext({
8
- currentPath: '/',
9
- navigate: () => { },
10
- params: {},
11
- query: {}
12
- });
13
- export function useRouter() {
14
- return useContext(RouterContext);
15
- }
16
- export function useLocation() {
17
- const router = useContext(RouterContext);
18
- return {
19
- pathname: router.currentPath,
20
- search: '', // TODO: Implement search parsing
21
- hash: '', // TODO: Implement hash parsing
22
- state: {} // TODO: Implement history state
23
- };
24
- }
25
- export function useParams() {
26
- const router = useContext(RouterContext);
27
- return router.params;
28
- }
29
- export function useNavigate() {
30
- const router = useContext(RouterContext);
31
- return router.navigate;
32
- }
33
- export function RouterProvider({ children }) {
34
- // Initial path should be window.location.pathname on client, or passed from server context
35
- const [currentPath, setCurrentPath] = useState(typeof window !== 'undefined' ? window.location.pathname : '/');
36
- const [params, setParams] = useState({});
37
- const [query, setQuery] = useState({});
38
- // Update path when URL changes
39
- useEffect(() => {
40
- if (typeof window === 'undefined')
41
- return;
42
- const handlePopState = () => {
43
- setCurrentPath(window.location.pathname);
44
- parseQuery(window.location.search);
45
- };
46
- window.addEventListener('popstate', handlePopState);
47
- // Parse initial query
48
- parseQuery(window.location.search);
49
- return () => {
50
- window.removeEventListener('popstate', handlePopState);
51
- };
52
- }, []);
53
- // Parse query string into object
54
- const parseQuery = (queryString) => {
55
- const queryObj = {};
56
- if (queryString.startsWith('?')) {
57
- queryString = queryString.substring(1);
58
- }
59
- queryString.split('&').forEach(pair => {
60
- if (!pair)
61
- return;
62
- const [key, value] = pair.split('=');
63
- queryObj[decodeURIComponent(key)] = decodeURIComponent(value || '');
64
- });
65
- setQuery(queryObj);
66
- };
67
- // Navigate programmatically
68
- const navigate = (path) => {
69
- if (typeof window === 'undefined')
70
- return;
71
- window.history.pushState(null, '', path);
72
- setCurrentPath(path);
73
- parseQuery(window.location.search);
74
- };
75
- return jsx(RouterContext.Provider, {
76
- value: { currentPath, navigate, params, query },
77
- children
78
- });
79
- }
80
- export function Router({ routes }) {
81
- const router = useRouter();
82
- const currentPath = router.currentPath;
83
- // Find matching route
84
- const matchedRoute = findMatchingRoute(routes, currentPath);
85
- if (!matchedRoute) {
86
- return jsx('div', { children: '404 - Page Not Found' });
87
- }
88
- return matchedRoute.component({ children: matchedRoute.children });
89
- }
90
- function findMatchingRoute(routes, path) {
91
- for (const route of routes) {
92
- const match = matchPath(path, route);
93
- if (match) {
94
- return {
95
- ...route,
96
- params: match.params
97
- };
98
- }
99
- }
100
- return null;
101
- }
102
- function matchPath(pathname, route) {
103
- const { path, exact = true } = route;
104
- // Convert route pattern to regex
105
- const pattern = path.replace(/:[a-zA-Z0-9_]+/g, '([^/]+)');
106
- const regex = new RegExp(`^${pattern}${exact ? '$' : ''}`);
107
- const match = pathname.match(regex);
108
- if (!match) {
109
- return null;
110
- }
111
- // Extract params
112
- const params = {};
113
- const paramNames = path.match(/:[a-zA-Z0-9_]+/g) || [];
114
- paramNames.forEach((paramName, index) => {
115
- params[paramName.substring(1)] = match[index + 1];
116
- });
117
- return { params };
118
- }
119
- export function Link({ to, children, ...rest }) {
120
- const router = useRouter();
121
- const navigate = router.navigate;
122
- const handleClick = (e) => {
123
- e.preventDefault();
124
- navigate(to);
125
- };
126
- return jsx('a', {
127
- href: to,
128
- onClick: handleClick,
129
- ...rest,
130
- children
131
- });
132
- }
133
- export function Route({ path, component }) {
134
- // This is a configuration component, not actually rendered
135
- return null;
136
- }
137
- export function Switch({ children }) {
138
- const router = useRouter();
139
- const currentPath = router.currentPath;
140
- // Find the first matching route
141
- const child = Array.isArray(children)
142
- ? children.find(child => {
143
- if (!child || !child.props)
144
- return false;
145
- const routeObj = {
146
- path: child.props.path,
147
- component: child.props.component,
148
- exact: child.props.exact
149
- };
150
- return matchPath(currentPath, routeObj);
151
- })
152
- : children;
153
- return child || null;
154
- }
155
- export default {
156
- RouterProvider,
157
- Router,
158
- Link,
159
- Route,
160
- Switch,
161
- useRouter,
162
- useParams,
163
- useNavigate,
164
- useLocation
165
- };
166
- //# sourceMappingURL=router.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/router.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAoBvC,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAqB;IAC7D,WAAW,EAAE,GAAG;IAChB,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;IAClB,MAAM,EAAE,EAAE;IACV,KAAK,EAAE,EAAE;CACV,CAAC,CAAC;AAEH,MAAM,UAAU,SAAS;IACvB,OAAO,UAAU,CAAqB,aAAa,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,MAAM,MAAM,GAAG,UAAU,CAAqB,aAAa,CAAC,CAAC;IAC7D,OAAO;QACL,QAAQ,EAAE,MAAM,CAAC,WAAW;QAC5B,MAAM,EAAE,EAAE,EAAE,iCAAiC;QAC7C,IAAI,EAAE,EAAE,EAAE,+BAA+B;QACzC,KAAK,EAAE,EAAE,CAAC,gCAAgC;KAC3C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,MAAM,MAAM,GAAG,UAAU,CAAqB,aAAa,CAAC,CAAC;IAC7D,OAAO,MAAM,CAAC,MAAW,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,MAAM,MAAM,GAAG,UAAU,CAAqB,aAAa,CAAC,CAAC;IAC7D,OAAO,MAAM,CAAC,QAAQ,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAAE,QAAQ,EAAqB;IAC5D,2FAA2F;IAC3F,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAC5C,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAC/D,CAAC;IAEF,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAyB,EAAE,CAAC,CAAC;IACjE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAyB,EAAE,CAAC,CAAC;IAE/D,+BAA+B;IAC/B,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;QAE1C,MAAM,cAAc,GAAG,GAAG,EAAE;YAC1B,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACzC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC,CAAC;QAEF,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QAEpD,sBAAsB;QACtB,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEnC,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;QACzD,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,iCAAiC;IACjC,MAAM,UAAU,GAAG,CAAC,WAAmB,EAAE,EAAE;QACzC,MAAM,QAAQ,GAA2B,EAAE,CAAC;QAE5C,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC;QAED,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACpC,IAAI,CAAC,IAAI;gBAAE,OAAO;YAElB,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACrC,QAAQ,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,GAAG,kBAAkB,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACrB,CAAC,CAAC;IAEF,4BAA4B;IAC5B,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE;QAChC,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;QAE1C,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACzC,cAAc,CAAC,IAAI,CAAC,CAAC;QACrB,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC,CAAC;IAEF,OAAO,GAAG,CAAC,aAAa,CAAC,QAAQ,EAAE;QACjC,KAAK,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE;QAC/C,QAAQ;KACT,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,EAAE,MAAM,EAAuB;IACpD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IAEvC,sBAAsB;IACtB,MAAM,YAAY,GAAG,iBAAiB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAE5D,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,sBAAsB,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,YAAY,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAe,EAAE,IAAY;IACtD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACrC,IAAI,KAAK,EAAE,CAAC;YACV,OAAO;gBACL,GAAG,KAAK;gBACR,MAAM,EAAE,KAAK,CAAC,MAAM;aACZ,CAAC;QACb,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,SAAS,CAAC,QAAgB,EAAE,KAAY;IAC/C,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,KAAK,CAAC;IAErC,iCAAiC;IACjC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAE3D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEpC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;IAED,iBAAiB;IACjB,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;IAEvD,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;QACtC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAqD;IAC/F,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IAEjC,MAAM,WAAW,GAAG,CAAC,CAAM,EAAE,EAAE;QAC7B,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,QAAQ,CAAC,EAAE,CAAC,CAAC;IACf,CAAC,CAAC;IAEF,OAAO,GAAG,CAAC,GAAG,EAAE;QACd,IAAI,EAAE,EAAE;QACR,OAAO,EAAE,WAAW;QACpB,GAAG,IAAI;QACP,QAAQ;KACT,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,EAAE,IAAI,EAAE,SAAS,EAAoC;IACzE,2DAA2D;IAC3D,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,EAAE,QAAQ,EAAqB;IACpD,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IAEvC,gCAAgC;IAChC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QACnC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACpB,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK;gBAAE,OAAO,KAAK,CAAC;YACzC,MAAM,QAAQ,GAAU;gBACtB,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;gBACtB,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS;gBAChC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK;aACzB,CAAC;YACF,OAAO,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC1C,CAAC,CAAC;QACJ,CAAC,CAAC,QAAQ,CAAC;IAEb,OAAO,KAAK,IAAI,IAAI,CAAC;AACvB,CAAC;AAED,eAAe;IACb,cAAc;IACd,MAAM;IACN,IAAI;IACJ,KAAK;IACL,MAAM;IACN,SAAS;IACT,SAAS;IACT,WAAW;IACX,WAAW;CACZ,CAAC"}
@@ -1,15 +0,0 @@
1
- import { Router } from 'express';
2
- import { AuthService } from './auth.js';
3
- export declare class ApiRouter {
4
- router: Router;
5
- private apiDir;
6
- private auth;
7
- constructor(apiDir: string, auth?: AuthService | null);
8
- private setupRoutes;
9
- private scanDirectory;
10
- private isRouteFile;
11
- private getRoutePath;
12
- private registerRoute;
13
- private isValidRouteModule;
14
- private wrapHandler;
15
- }
@@ -1,111 +0,0 @@
1
- import express from 'express';
2
- import path from 'path';
3
- import fs from 'fs';
4
- export class ApiRouter {
5
- constructor(apiDir, auth = null) {
6
- Object.defineProperty(this, "router", {
7
- enumerable: true,
8
- configurable: true,
9
- writable: true,
10
- value: void 0
11
- });
12
- Object.defineProperty(this, "apiDir", {
13
- enumerable: true,
14
- configurable: true,
15
- writable: true,
16
- value: void 0
17
- });
18
- Object.defineProperty(this, "auth", {
19
- enumerable: true,
20
- configurable: true,
21
- writable: true,
22
- value: void 0
23
- });
24
- this.router = express.Router();
25
- this.apiDir = path.resolve(process.cwd(), apiDir);
26
- this.auth = auth;
27
- this.setupRoutes();
28
- }
29
- setupRoutes() {
30
- if (!fs.existsSync(this.apiDir)) {
31
- console.log(`API directory not found: ${this.apiDir}`);
32
- return;
33
- }
34
- this.scanDirectory(this.apiDir, '');
35
- }
36
- scanDirectory(dirPath, routePrefix) {
37
- const entries = fs.readdirSync(dirPath, { withFileTypes: true });
38
- for (const entry of entries) {
39
- const fullPath = path.join(dirPath, entry.name);
40
- if (entry.isDirectory()) {
41
- // Recursively scan subdirectories
42
- this.scanDirectory(fullPath, `${routePrefix}/${entry.name}`);
43
- }
44
- else if (this.isRouteFile(entry.name)) {
45
- // Process route file
46
- const routePath = this.getRoutePath(entry.name, routePrefix);
47
- this.registerRoute(fullPath, routePath);
48
- }
49
- }
50
- }
51
- isRouteFile(filename) {
52
- return filename.endsWith('.js') ||
53
- filename.endsWith('.ts') ||
54
- filename.endsWith('.mjs');
55
- }
56
- getRoutePath(filename, routePrefix) {
57
- // Remove extension and handle special names
58
- const baseName = path.basename(filename, path.extname(filename));
59
- if (baseName === 'index') {
60
- return routePrefix || '/';
61
- }
62
- // Handle dynamic routes [param]
63
- const paramMatch = baseName.match(/^\[(.+)\]$/);
64
- if (paramMatch) {
65
- return `${routePrefix}/:${paramMatch[1]}`;
66
- }
67
- return `${routePrefix}/${baseName}`;
68
- }
69
- async registerRoute(filePath, routePath) {
70
- try {
71
- // Dynamic import the route file
72
- const routeModule = await import(filePath);
73
- if (!this.isValidRouteModule(routeModule)) {
74
- console.warn(`Invalid route module: ${filePath}`);
75
- return;
76
- }
77
- console.log(`Registering API route: ${routePath}`);
78
- // Register middleware if any
79
- const middleware = routeModule.middleware || [];
80
- // Register HTTP methods
81
- for (const method of ['get', 'post', 'put', 'delete', 'patch', 'options']) {
82
- const handler = routeModule[method];
83
- if (typeof handler === 'function') {
84
- const routerMethod = this.router[method];
85
- routerMethod(routePath, ...middleware, this.wrapHandler(handler));
86
- }
87
- }
88
- }
89
- catch (error) {
90
- console.error(`Error registering route (${filePath}):`, error);
91
- }
92
- }
93
- isValidRouteModule(module) {
94
- if (!module)
95
- return false;
96
- // Check if at least one HTTP method handler is defined
97
- return ['get', 'post', 'put', 'delete', 'patch', 'options']
98
- .some(method => typeof module[method] === 'function');
99
- }
100
- wrapHandler(handler) {
101
- return async (req, res, next) => {
102
- try {
103
- await handler(req, res, next);
104
- }
105
- catch (error) {
106
- next(error);
107
- }
108
- };
109
- }
110
- }
111
- //# sourceMappingURL=api-router.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"api-router.js","sourceRoot":"","sources":["../../../../src/server/api-router.ts"],"names":[],"mappings":"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"}