frontend-hamroun 1.2.79 → 1.2.82

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 (259) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +129 -1513
  3. package/bin/cli.js +506 -145
  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 +299 -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/dev.js +27 -0
  31. package/templates/basic-app/esbuild.config.js +28 -0
  32. package/templates/basic-app/index.html +1 -1
  33. package/templates/basic-app/package.json +29 -28
  34. package/templates/basic-app/server.js +24 -0
  35. package/templates/basic-app/src/App.jsx +16 -0
  36. package/templates/basic-app/src/App.tsx +26 -0
  37. package/templates/basic-app/src/client.jsx +5 -0
  38. package/templates/basic-app/src/client.tsx +11 -0
  39. package/templates/basic-app/src/components/Counter.jsx +13 -0
  40. package/templates/basic-app/src/components/Counter.tsx +18 -0
  41. package/templates/basic-app/src/jsx-shim.js +3 -0
  42. package/templates/basic-app/src/jsx-shim.ts +11 -0
  43. package/templates/basic-app/src/main.jsx +98 -0
  44. package/templates/basic-app/src/main.tsx +0 -1
  45. package/templates/basic-app/src/server.js +47 -0
  46. package/templates/basic-app/src/server.ts +52 -0
  47. package/templates/basic-app/tsconfig.server.json +11 -0
  48. package/templates/complete-app/lib/frontend-hamroun.js +182 -0
  49. package/templates/complete-app/package.json +2 -1
  50. package/templates/complete-app/pages/about.jsx +0 -0
  51. package/templates/complete-app/pages/index.jsx +0 -0
  52. package/templates/complete-app/pages/wasm-demo.jsx +0 -0
  53. package/templates/complete-app/public/client.js +58 -49
  54. package/templates/complete-app/public/index.html +88 -17
  55. package/templates/complete-app/public/styles.css +30 -533
  56. package/templates/complete-app/server.js +31 -222
  57. package/templates/complete-app/wasm/build.bat +0 -0
  58. package/templates/complete-app/wasm/build.sh +0 -0
  59. package/templates/complete-app/wasm/example.go +0 -0
  60. package/templates/fullstack-app/build/main.js +130 -101
  61. package/templates/fullstack-app/build/main.js.map +4 -4
  62. package/templates/fullstack-app/package-lock.json +1773 -566
  63. package/templates/ssr-template/esbuild.config.js +33 -0
  64. package/templates/ssr-template/jsx-shim.js +1 -0
  65. package/templates/ssr-template/package.json +22 -16
  66. package/templates/ssr-template/src/App.tsx +12 -52
  67. package/templates/ssr-template/src/client.tsx +3 -17
  68. package/templates/ssr-template/src/server.ts +21 -204
  69. package/templates/ssr-template/tsconfig.json +10 -13
  70. package/templates/ssr-template/tsconfig.server.json +6 -14
  71. package/templates/wasm/build-wasm.js +228 -0
  72. package/templates/wasm/esbuild.config.js +63 -0
  73. package/templates/wasm/go/main.go +256 -0
  74. package/templates/wasm/go/wasm_exec.js +0 -0
  75. package/templates/wasm/index.html +97 -0
  76. package/templates/wasm/jsx-shim.js +9 -0
  77. package/templates/{go-wasm-app → wasm}/package-lock.json +5307 -3732
  78. package/templates/wasm/package.json +42 -0
  79. package/templates/wasm/public/example.wasm +0 -0
  80. package/templates/wasm/src/App.tsx +564 -0
  81. package/templates/wasm/src/client.tsx +220 -0
  82. package/templates/wasm/src/index.tsx +21 -0
  83. package/templates/wasm/src/server.ts +145 -0
  84. package/templates/wasm/tsconfig.json +21 -0
  85. package/templates/wasm/tsconfig.node.json +13 -0
  86. package/templates/wasm/tsconfig.server.json +23 -0
  87. package/templates/wasm/vite.config.ts +56 -0
  88. package/templates/wasm/wasm-loader.js +103 -0
  89. package/dist/batch/package.json +0 -16
  90. package/dist/client-router/package.json +0 -16
  91. package/dist/component/package.json +0 -16
  92. package/dist/context/package.json +0 -16
  93. package/dist/event-bus/package.json +0 -16
  94. package/dist/forms/package.json +0 -16
  95. package/dist/hooks/package.json +0 -16
  96. package/dist/hooks-0728361a.cjs +0 -1
  97. package/dist/hooks-b58f947c.js +0 -133
  98. package/dist/hooks.js +0 -1
  99. package/dist/hooks.mjs +0 -13
  100. package/dist/index.mjs +0 -137
  101. package/dist/jsx-runtime/package.json +0 -16
  102. package/dist/jsx-runtime.mjs +0 -64
  103. package/dist/lifecycle-events/package.json +0 -16
  104. package/dist/package.json +0 -71
  105. package/dist/render-component/package.json +0 -16
  106. package/dist/renderer/package.json +0 -16
  107. package/dist/renderer.js +0 -1
  108. package/dist/renderer.mjs +0 -27
  109. package/dist/router/package.json +0 -16
  110. package/dist/server/package.json +0 -17
  111. package/dist/server/src/batch.d.ts +0 -3
  112. package/dist/server/src/batch.js +0 -23
  113. package/dist/server/src/batch.js.map +0 -1
  114. package/dist/server/src/client-router.d.ts +0 -60
  115. package/dist/server/src/client-router.js +0 -210
  116. package/dist/server/src/client-router.js.map +0 -1
  117. package/dist/server/src/component.d.ts +0 -14
  118. package/dist/server/src/component.js +0 -106
  119. package/dist/server/src/component.js.map +0 -1
  120. package/dist/server/src/context.d.ts +0 -13
  121. package/dist/server/src/context.js +0 -21
  122. package/dist/server/src/context.js.map +0 -1
  123. package/dist/server/src/event-bus.d.ts +0 -23
  124. package/dist/server/src/event-bus.js +0 -75
  125. package/dist/server/src/event-bus.js.map +0 -1
  126. package/dist/server/src/forms.d.ts +0 -40
  127. package/dist/server/src/forms.js +0 -148
  128. package/dist/server/src/forms.js.map +0 -1
  129. package/dist/server/src/hooks.d.ts +0 -12
  130. package/dist/server/src/hooks.js +0 -170
  131. package/dist/server/src/hooks.js.map +0 -1
  132. package/dist/server/src/index.client.d.ts +0 -12
  133. package/dist/server/src/index.client.js +0 -14
  134. package/dist/server/src/index.client.js.map +0 -1
  135. package/dist/server/src/index.d.ts +0 -88
  136. package/dist/server/src/index.js +0 -79
  137. package/dist/server/src/index.js.map +0 -1
  138. package/dist/server/src/jsx-runtime/jsx-dev-runtime.d.ts +0 -1
  139. package/dist/server/src/jsx-runtime/jsx-dev-runtime.js +0 -2
  140. package/dist/server/src/jsx-runtime/jsx-dev-runtime.js.map +0 -1
  141. package/dist/server/src/jsx-runtime/jsx-runtime.d.ts +0 -4
  142. package/dist/server/src/jsx-runtime/jsx-runtime.js +0 -41
  143. package/dist/server/src/jsx-runtime/jsx-runtime.js.map +0 -1
  144. package/dist/server/src/jsx-runtime.d.ts +0 -20
  145. package/dist/server/src/jsx-runtime.js +0 -105
  146. package/dist/server/src/jsx-runtime.js.map +0 -1
  147. package/dist/server/src/lifecycle-events.d.ts +0 -108
  148. package/dist/server/src/lifecycle-events.js +0 -177
  149. package/dist/server/src/lifecycle-events.js.map +0 -1
  150. package/dist/server/src/renderComponent.d.ts +0 -13
  151. package/dist/server/src/renderComponent.js +0 -30
  152. package/dist/server/src/renderComponent.js.map +0 -1
  153. package/dist/server/src/renderer.d.ts +0 -2
  154. package/dist/server/src/renderer.js +0 -31
  155. package/dist/server/src/renderer.js.map +0 -1
  156. package/dist/server/src/router.d.ts +0 -55
  157. package/dist/server/src/router.js +0 -166
  158. package/dist/server/src/router.js.map +0 -1
  159. package/dist/server/src/server/api-router.d.ts +0 -15
  160. package/dist/server/src/server/api-router.js +0 -111
  161. package/dist/server/src/server/api-router.js.map +0 -1
  162. package/dist/server/src/server/auth.d.ts +0 -32
  163. package/dist/server/src/server/auth.js +0 -80
  164. package/dist/server/src/server/auth.js.map +0 -1
  165. package/dist/server/src/server/database.d.ts +0 -24
  166. package/dist/server/src/server/database.js +0 -135
  167. package/dist/server/src/server/database.js.map +0 -1
  168. package/dist/server/src/server/index.d.ts +0 -116
  169. package/dist/server/src/server/index.js +0 -508
  170. package/dist/server/src/server/index.js.map +0 -1
  171. package/dist/server/src/server/middleware.d.ts +0 -11
  172. package/dist/server/src/server/middleware.js +0 -46
  173. package/dist/server/src/server/middleware.js.map +0 -1
  174. package/dist/server/src/server/server.d.ts +0 -9
  175. package/dist/server/src/server/server.js +0 -87
  176. package/dist/server/src/server/server.js.map +0 -1
  177. package/dist/server/src/server/templates.d.ts +0 -30
  178. package/dist/server/src/server/templates.js +0 -208
  179. package/dist/server/src/server/templates.js.map +0 -1
  180. package/dist/server/src/server/types.d.ts +0 -38
  181. package/dist/server/src/server/types.js +0 -4
  182. package/dist/server/src/server/types.js.map +0 -1
  183. package/dist/server/src/server/utils.d.ts +0 -70
  184. package/dist/server/src/server/utils.js +0 -156
  185. package/dist/server/src/server/utils.js.map +0 -1
  186. package/dist/server/src/server/wasm.d.ts +0 -9
  187. package/dist/server/src/server/wasm.js +0 -117
  188. package/dist/server/src/server/wasm.js.map +0 -1
  189. package/dist/server/src/server-renderer.d.ts +0 -5
  190. package/dist/server/src/server-renderer.js +0 -106
  191. package/dist/server/src/server-renderer.js.map +0 -1
  192. package/dist/server/src/server-types.d.ts +0 -42
  193. package/dist/server/src/server-types.js +0 -6
  194. package/dist/server/src/server-types.js.map +0 -1
  195. package/dist/server/src/store.d.ts +0 -41
  196. package/dist/server/src/store.js +0 -99
  197. package/dist/server/src/store.js.map +0 -1
  198. package/dist/server/src/types.d.ts +0 -19
  199. package/dist/server/src/types.js +0 -2
  200. package/dist/server/src/types.js.map +0 -1
  201. package/dist/server/src/utils.d.ts +0 -46
  202. package/dist/server/src/utils.js +0 -144
  203. package/dist/server/src/utils.js.map +0 -1
  204. package/dist/server/src/vdom.d.ts +0 -8
  205. package/dist/server/src/vdom.js +0 -22
  206. package/dist/server/src/vdom.js.map +0 -1
  207. package/dist/server/src/wasm.d.ts +0 -36
  208. package/dist/server/src/wasm.js +0 -159
  209. package/dist/server/src/wasm.js.map +0 -1
  210. package/dist/server/tsconfig.server.tsbuildinfo +0 -1
  211. package/dist/server-renderer/package.json +0 -16
  212. package/dist/server-renderer.mjs +0 -64
  213. package/dist/store/package.json +0 -16
  214. package/dist/types/package.json +0 -16
  215. package/dist/utils/package.json +0 -16
  216. package/dist/vdom/package.json +0 -16
  217. package/dist/wasm/package.json +0 -16
  218. package/dist/wasm.js +0 -1
  219. package/dist/wasm.mjs +0 -103
  220. package/templates/basic-app/docs/rapport_pfe.aux +0 -27
  221. package/templates/basic-app/docs/rapport_pfe.log +0 -399
  222. package/templates/basic-app/docs/rapport_pfe.out +0 -10
  223. package/templates/basic-app/docs/rapport_pfe.pdf +0 -0
  224. package/templates/basic-app/docs/rapport_pfe.tex +0 -68
  225. package/templates/basic-app/docs/rapport_pfe.toc +0 -14
  226. package/templates/complete-app/package-lock.json +0 -2536
  227. package/templates/go-wasm-app/README.md +0 -38
  228. package/templates/go-wasm-app/babel.config.js +0 -21
  229. package/templates/go-wasm-app/build-client.js +0 -49
  230. package/templates/go-wasm-app/build-wasm.js +0 -237
  231. package/templates/go-wasm-app/build.config.js +0 -62
  232. package/templates/go-wasm-app/build.js +0 -218
  233. package/templates/go-wasm-app/package.json +0 -32
  234. package/templates/go-wasm-app/public/index.html +0 -128
  235. package/templates/go-wasm-app/public/styles.css +0 -197
  236. package/templates/go-wasm-app/public/wasm/example.wasm +0 -0
  237. package/templates/go-wasm-app/public/wasm/wasm_exec_node.js +0 -39
  238. package/templates/go-wasm-app/server.js +0 -70
  239. package/templates/go-wasm-app/src/App.jsx +0 -38
  240. package/templates/go-wasm-app/src/app.js +0 -173
  241. package/templates/go-wasm-app/src/client.js +0 -57
  242. package/templates/go-wasm-app/src/components/Footer.jsx +0 -13
  243. package/templates/go-wasm-app/src/components/Header.jsx +0 -19
  244. package/templates/go-wasm-app/src/components/WasmDemo.jsx +0 -120
  245. package/templates/go-wasm-app/src/main.jsx +0 -12
  246. package/templates/go-wasm-app/src/wasm/example.go +0 -75
  247. package/templates/go-wasm-app/tsconfig.server.json +0 -18
  248. package/templates/go-wasm-app/vite.config.js +0 -45
  249. package/templates/ssr-template/client.js +0 -58
  250. package/templates/ssr-template/package-lock.json +0 -2478
  251. package/templates/ssr-template/public/index.html +0 -47
  252. package/templates/ssr-template/readme.md +0 -188
  253. package/templates/ssr-template/server.js +0 -369
  254. package/templates/ssr-template/server.ts +0 -275
  255. package/templates/ssr-template/src/client.ts +0 -61
  256. package/templates/ssr-template/src/pages/index.tsx +0 -51
  257. package/templates/ssr-template/vite.config.js +0 -57
  258. /package/{dist/Counter.d.ts → templates/complete-app/api/hello.js} +0 -0
  259. /package/templates/{go-wasm-app/public/wasm → wasm/public}/wasm_exec.js +0 -0
@@ -1,148 +0,0 @@
1
- /**
2
- * Form handling utilities for the framework
3
- */
4
- import { useState, useEffect } from './hooks';
5
- export function useForm(options) {
6
- const { initialValues, validate, onSubmit } = options;
7
- const [values, setValues] = useState(initialValues);
8
- const [errors, setErrors] = useState({});
9
- const [touched, setTouched] = useState({});
10
- const [dirty, setDirty] = useState({});
11
- const [isSubmitting, setIsSubmitting] = useState(false);
12
- const [submitCount, setSubmitCount] = useState(0);
13
- // Track form validity and dirty state
14
- const isValid = Object.keys(errors).length === 0;
15
- const isDirty = Object.values(dirty).some(Boolean);
16
- // Validate form when values or validate function changes
17
- useEffect(() => {
18
- if (validate) {
19
- const validationErrors = validate(values);
20
- setErrors(validationErrors || {});
21
- }
22
- }, [values, validate]);
23
- // Handle form input changes
24
- const handleChange = (e) => {
25
- const { name, value, type, checked } = e.target;
26
- const fieldValue = type === 'checkbox' ? checked : value;
27
- setValues(prev => ({
28
- ...prev,
29
- [name]: fieldValue
30
- }));
31
- setDirty(prev => ({
32
- ...prev,
33
- [name]: true
34
- }));
35
- };
36
- // Handle field blur
37
- const handleBlur = (e) => {
38
- const { name } = e.target;
39
- setTouched(prev => ({
40
- ...prev,
41
- [name]: true
42
- }));
43
- };
44
- // Set field value programmatically
45
- const setFieldValue = (field, value) => {
46
- setValues(prev => ({
47
- ...prev,
48
- [field]: value
49
- }));
50
- setDirty(prev => ({
51
- ...prev,
52
- [field]: true
53
- }));
54
- };
55
- // Set field error programmatically
56
- const setFieldError = (field, error) => {
57
- setErrors(prev => ({
58
- ...prev,
59
- [field]: error
60
- }));
61
- };
62
- // Update multiple values at once
63
- const updateValues = (newValues) => {
64
- setValues(prev => ({
65
- ...prev,
66
- ...newValues
67
- }));
68
- // Mark changed fields as dirty
69
- const dirtyFields = {};
70
- Object.keys(newValues).forEach(key => {
71
- dirtyFields[key] = true;
72
- });
73
- setDirty(prev => ({
74
- ...prev,
75
- ...dirtyFields
76
- }));
77
- };
78
- // Reset form to initial state
79
- const resetForm = () => {
80
- setValues(initialValues);
81
- setErrors({});
82
- setTouched({});
83
- setDirty({});
84
- setIsSubmitting(false);
85
- };
86
- // Handle form submission
87
- const handleSubmit = async (e) => {
88
- e.preventDefault();
89
- // Mark all fields as touched
90
- const allTouched = {};
91
- Object.keys(values).forEach(key => {
92
- allTouched[key] = true;
93
- });
94
- setTouched(allTouched);
95
- // Validate before submission
96
- let validationErrors = {};
97
- if (validate) {
98
- validationErrors = validate(values);
99
- setErrors(validationErrors || {});
100
- }
101
- // Only proceed if valid
102
- if (Object.keys(validationErrors).length === 0 && onSubmit) {
103
- setIsSubmitting(true);
104
- setSubmitCount(count => count + 1);
105
- try {
106
- await onSubmit(values, {
107
- fields: Object.keys(values).reduce((acc, key) => {
108
- acc[key] = {
109
- value: values[key],
110
- error: errors[key],
111
- touched: touched[key] || false,
112
- dirty: dirty[key] || false
113
- };
114
- return acc;
115
- }, {}),
116
- isValid,
117
- isDirty,
118
- isSubmitting: true,
119
- submitCount: submitCount + 1
120
- });
121
- }
122
- finally {
123
- setIsSubmitting(false);
124
- }
125
- }
126
- };
127
- return {
128
- values,
129
- errors,
130
- touched,
131
- dirty,
132
- isValid,
133
- isDirty,
134
- isSubmitting,
135
- submitCount,
136
- handleChange,
137
- handleBlur,
138
- handleSubmit,
139
- setFieldValue,
140
- setFieldError,
141
- setValues: updateValues,
142
- resetForm
143
- };
144
- }
145
- export default {
146
- useForm
147
- };
148
- //# sourceMappingURL=forms.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"forms.js","sourceRoot":"","sources":["../../../src/forms.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import { createContext, useContext } from './context.js';
2
- export declare function setRenderCallback(callback: any, element: any, container: any): void;
3
- export declare function prepareRender(): number;
4
- export declare function finishRender(): void;
5
- export declare function useState<T>(initial: T): [T, (newValue: T | ((prev: T) => T)) => void];
6
- export declare function useEffect(callback: () => void | (() => void), deps?: any[]): void;
7
- export declare function useMemo<T>(factory: () => T, deps?: any[]): T;
8
- export declare function useRef<T>(initial: T): {
9
- current: T;
10
- };
11
- export declare function useErrorBoundary(): ((() => void) | null)[];
12
- export { createContext, useContext };
@@ -1,170 +0,0 @@
1
- import { batchUpdates, isBatching } from './batch';
2
- import { createContext, useContext } from './context';
3
- // Current render ID counter
4
- let currentRender = 0;
5
- // State storage
6
- const states = new Map();
7
- const stateIndices = new Map();
8
- const effects = new Map();
9
- const memos = new Map();
10
- const refs = new Map();
11
- // Server-side rendering detection
12
- const isServer = typeof window === 'undefined';
13
- const serverStates = new Map();
14
- // Rendering callbacks
15
- let globalRenderCallback = null;
16
- let globalContainer = null;
17
- let currentElement = null;
18
- export function setRenderCallback(callback, element, container) {
19
- globalRenderCallback = callback;
20
- globalContainer = container;
21
- currentElement = element;
22
- }
23
- export function prepareRender() {
24
- currentRender++;
25
- stateIndices.set(currentRender, 0);
26
- return currentRender;
27
- }
28
- export function finishRender() {
29
- if (isServer) {
30
- serverStates.delete(currentRender);
31
- }
32
- currentRender = 0;
33
- }
34
- export function useState(initial) {
35
- if (!currentRender) {
36
- throw new Error("useState must be called within a render");
37
- }
38
- // Handle server-side rendering separately
39
- if (isServer) {
40
- if (!serverStates.has(currentRender)) {
41
- serverStates.set(currentRender, new Map());
42
- }
43
- const componentState = serverStates.get(currentRender);
44
- const index = stateIndices.get(currentRender) || 0;
45
- if (!componentState.has(index)) {
46
- componentState.set(index, initial);
47
- }
48
- const state = componentState.get(index);
49
- // In SSR, setState is a no-op
50
- const setState = (_newValue) => { };
51
- stateIndices.set(currentRender, index + 1);
52
- return [state, setState];
53
- }
54
- // Client-side implementation
55
- if (!states.has(currentRender)) {
56
- states.set(currentRender, []);
57
- }
58
- const componentStates = states.get(currentRender);
59
- const index = stateIndices.get(currentRender) || 0;
60
- if (index >= componentStates.length) {
61
- componentStates.push(initial);
62
- }
63
- const state = componentStates[index];
64
- const setState = (newValue) => {
65
- const nextValue = typeof newValue === 'function'
66
- ? newValue(componentStates[index])
67
- : newValue;
68
- if (componentStates[index] === nextValue)
69
- return;
70
- componentStates[index] = nextValue;
71
- if (isBatching) {
72
- batchUpdates(() => rerender(currentRender));
73
- }
74
- else {
75
- rerender(currentRender);
76
- }
77
- };
78
- stateIndices.set(currentRender, index + 1);
79
- return [state, setState];
80
- }
81
- export function useEffect(callback, deps) {
82
- if (!currentRender)
83
- throw new Error("useEffect must be called within a render");
84
- // Skip effects on server
85
- if (isServer) {
86
- const effectIndex = stateIndices.get(currentRender) || 0;
87
- stateIndices.set(currentRender, effectIndex + 1);
88
- return;
89
- }
90
- const effectIndex = stateIndices.get(currentRender) || 0;
91
- if (!effects.has(currentRender)) {
92
- effects.set(currentRender, []);
93
- }
94
- const componentEffects = effects.get(currentRender);
95
- const prevEffect = componentEffects[effectIndex];
96
- if (!prevEffect || !deps || !prevEffect.deps || deps.some((dep, i) => dep !== prevEffect.deps[i])) {
97
- if (prevEffect?.cleanup) {
98
- prevEffect.cleanup();
99
- }
100
- // Schedule effect execution after render is complete
101
- queueMicrotask(() => {
102
- const cleanup = callback() || undefined;
103
- componentEffects[effectIndex] = { cleanup, deps: deps || [] };
104
- });
105
- }
106
- stateIndices.set(currentRender, effectIndex + 1);
107
- }
108
- export function useMemo(factory, deps) {
109
- if (!currentRender)
110
- throw new Error("useMemo must be called within a render");
111
- const memoIndex = stateIndices.get(currentRender) || 0;
112
- if (!memos.has(currentRender)) {
113
- memos.set(currentRender, []);
114
- }
115
- const componentMemos = memos.get(currentRender);
116
- const prevMemo = componentMemos[memoIndex];
117
- if (!prevMemo || (deps && deps.some((dep, i) => !Object.is(dep, prevMemo.deps[i])))) {
118
- const value = factory();
119
- componentMemos[memoIndex] = { value, deps: deps || [] };
120
- stateIndices.set(currentRender, memoIndex + 1);
121
- return value;
122
- }
123
- stateIndices.set(currentRender, memoIndex + 1);
124
- return prevMemo.value;
125
- }
126
- export function useRef(initial) {
127
- if (!currentRender)
128
- throw new Error("useRef must be called within a render");
129
- const refIndex = stateIndices.get(currentRender) || 0;
130
- if (!refs.has(currentRender)) {
131
- refs.set(currentRender, []);
132
- }
133
- const componentRefs = refs.get(currentRender);
134
- if (refIndex >= componentRefs.length) {
135
- const ref = { current: initial };
136
- componentRefs.push(ref);
137
- stateIndices.set(currentRender, refIndex + 1);
138
- return ref;
139
- }
140
- const ref = componentRefs[refIndex];
141
- stateIndices.set(currentRender, refIndex + 1);
142
- return ref;
143
- }
144
- async function rerender(rendererId) {
145
- try {
146
- // Clean up effects
147
- const componentEffects = effects.get(rendererId);
148
- if (componentEffects) {
149
- componentEffects.forEach(effect => {
150
- if (effect.cleanup)
151
- effect.cleanup();
152
- });
153
- effects.set(rendererId, []);
154
- }
155
- // Trigger re-render
156
- if (globalRenderCallback && globalContainer && currentElement) {
157
- await globalRenderCallback(currentElement, globalContainer);
158
- }
159
- }
160
- catch (error) {
161
- console.error('Error during rerender:', error);
162
- }
163
- }
164
- export function useErrorBoundary() {
165
- const [error, setError] = useState(null);
166
- return [error, () => setError(null)];
167
- }
168
- // Re-export from context to match index.js
169
- export { createContext, useContext };
170
- //# sourceMappingURL=hooks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../src/hooks.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- export { useState, useEffect, useMemo, useRef, useErrorBoundary } from './hooks.js';
2
- export { createContext, useContext } from './context.js';
3
- export { batchUpdates } from './batch.js';
4
- export { jsx, jsxs, Fragment } from './jsx-runtime.js';
5
- export { render, hydrate } from './renderer.js';
6
- export { renderToString } from './server-renderer.js';
7
- export type { Context } from './context.js';
8
- export type { VNode } from './types.js';
9
- export type { Server, ServerConfig, User, DbConfig, MiddlewareFunction } from './server-types.js';
10
- export declare const server: {
11
- getServer(): Promise<never>;
12
- };
@@ -1,14 +0,0 @@
1
- export { useState, useEffect, useMemo, useRef, useErrorBoundary } from './hooks.js';
2
- export { createContext, useContext } from './context.js';
3
- export { batchUpdates } from './batch.js';
4
- export { jsx, jsxs, Fragment } from './jsx-runtime.js';
5
- export { render, hydrate } from './renderer.js';
6
- export { renderToString } from './server-renderer.js';
7
- // Provide placeholder server functionality
8
- export const server = {
9
- async getServer() {
10
- throw new Error('Server module can only be used in Node.js environment');
11
- }
12
- };
13
- let isHydrating = false;
14
- //# sourceMappingURL=index.client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.client.js","sourceRoot":"","sources":["../../../src/index.client.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,QAAQ,EACR,SAAS,EACT,OAAO,EACP,MAAM,EACN,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAetD,2CAA2C;AAC3C,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,KAAK,CAAC,SAAS;QACb,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;CACF,CAAC;AAEF,IAAI,WAAW,GAAG,KAAK,CAAC"}
@@ -1,88 +0,0 @@
1
- import { createElement } from './jsx-runtime.js';
2
- import { loadGoWasm as loadGoWasmImpl, createTypedWasmFunction as createTypedWasmFunctionImpl, type GoWasmInstance } from './wasm.js';
3
- import { jsx } from './jsx-runtime.js';
4
- import { render, hydrate } from './renderer.js';
5
- import { useState, useEffect, useMemo, useRef, useContext, useErrorBoundary } from './hooks.js';
6
- import { createContext } from './context.js';
7
- import { renderToString } from './server-renderer.js';
8
- import { batchUpdates } from './batch.js';
9
- import { diff, shouldComponentUpdate } from './vdom.js';
10
- import { Component } from './component.js';
11
- export { render, hydrate } from './renderer.js';
12
- export { jsx, jsxs, jsxDEV, Fragment, createElement } from './jsx-runtime.js';
13
- export { useState, useEffect, useMemo, useRef, useContext, useErrorBoundary, prepareRender, finishRender, setRenderCallback } from './hooks.js';
14
- export { createContext } from './context.js';
15
- export { renderToString } from './server-renderer.js';
16
- export { batchUpdates, isBatching, getIsBatching } from './batch.js';
17
- export { diff, shouldComponentUpdate } from './vdom.js';
18
- export { Component } from './component.js';
19
- export declare const server: {
20
- getServer(): Promise<never>;
21
- };
22
- export declare const loadGoWasm: typeof loadGoWasmImpl;
23
- export declare const createTypedWasmFunction: typeof createTypedWasmFunctionImpl;
24
- export declare const goValues: {
25
- stringToGo: (instance: GoWasmInstance, str: string) => number;
26
- stringFromGo: (instance: GoWasmInstance, ptr: number) => string;
27
- objectToGo: (instance: GoWasmInstance, obj: any) => number;
28
- objectFromGo: (instance: GoWasmInstance, ptr: number) => any;
29
- };
30
- export type { GoWasmInstance, GoWasmOptions } from './wasm.js';
31
- export declare const wasm: {
32
- loadGoWasm: typeof loadGoWasmImpl;
33
- createTypedWasmFunction: typeof createTypedWasmFunctionImpl;
34
- goValues: {
35
- stringToGo: (instance: GoWasmInstance, str: string) => number;
36
- stringFromGo: (instance: GoWasmInstance, ptr: number) => string;
37
- objectToGo: (instance: GoWasmInstance, obj: any) => number;
38
- objectFromGo: (instance: GoWasmInstance, ptr: number) => any;
39
- };
40
- };
41
- export type { Context } from './context.js';
42
- export type { VNode } from './types.js';
43
- export type { Server, ServerConfig, User, DbConfig, MiddlewareFunction } from './server-types.js';
44
- export declare let isHydrating: boolean;
45
- declare const _default: {
46
- Fragment: ({ children }: {
47
- children: any;
48
- }) => any;
49
- jsx: typeof jsx;
50
- jsxs: typeof jsx;
51
- createElement: typeof createElement;
52
- render: typeof render;
53
- hydrate: typeof hydrate;
54
- useState: typeof useState;
55
- useEffect: typeof useEffect;
56
- useMemo: typeof useMemo;
57
- useRef: typeof useRef;
58
- useContext: typeof useContext;
59
- useErrorBoundary: typeof useErrorBoundary;
60
- createContext: typeof createContext;
61
- renderToString: typeof renderToString;
62
- batchUpdates: typeof batchUpdates;
63
- server: {
64
- getServer(): Promise<never>;
65
- };
66
- loadGoWasm: typeof loadGoWasmImpl;
67
- createTypedWasmFunction: typeof createTypedWasmFunctionImpl;
68
- goValues: {
69
- stringToGo: (instance: GoWasmInstance, str: string) => number;
70
- stringFromGo: (instance: GoWasmInstance, ptr: number) => string;
71
- objectToGo: (instance: GoWasmInstance, obj: any) => number;
72
- objectFromGo: (instance: GoWasmInstance, ptr: number) => any;
73
- };
74
- wasm: {
75
- loadGoWasm: typeof loadGoWasmImpl;
76
- createTypedWasmFunction: typeof createTypedWasmFunctionImpl;
77
- goValues: {
78
- stringToGo: (instance: GoWasmInstance, str: string) => number;
79
- stringFromGo: (instance: GoWasmInstance, ptr: number) => string;
80
- objectToGo: (instance: GoWasmInstance, obj: any) => number;
81
- objectFromGo: (instance: GoWasmInstance, ptr: number) => any;
82
- };
83
- };
84
- Component: typeof Component;
85
- diff: typeof diff;
86
- shouldComponentUpdate: typeof shouldComponentUpdate;
87
- };
88
- export default _default;
@@ -1,79 +0,0 @@
1
- import { createElement } from './jsx-runtime';
2
- import { loadGoWasm as loadGoWasmImpl, createTypedWasmFunction as createTypedWasmFunctionImpl, goValues as goValuesImpl } from './wasm';
3
- // Import items needed for the default export
4
- import { jsx, jsxs, Fragment } from './jsx-runtime';
5
- import { render, hydrate } from './renderer';
6
- import { useState, useEffect, useMemo, useRef, useContext, useErrorBoundary } from './hooks';
7
- import { createContext } from './context';
8
- import { renderToString } from './server-renderer';
9
- import { batchUpdates } from './batch';
10
- import { diff, shouldComponentUpdate } from './vdom';
11
- import { Component } from './component';
12
- // Re-export core modules with explicit names to ensure they appear in bundle
13
- export { render, hydrate } from './renderer.js';
14
- export { jsx, jsxs, jsxDEV, Fragment, createElement } from './jsx-runtime.js';
15
- export { useState, useEffect, useMemo, useRef, useContext, useErrorBoundary, prepareRender, finishRender, setRenderCallback } from './hooks.js';
16
- // Context API
17
- export { createContext } from './context.js';
18
- // Server-side rendering
19
- export { renderToString } from './server-renderer.js';
20
- // Batch updates utility
21
- export { batchUpdates, isBatching, getIsBatching } from './batch.js';
22
- // VDOM utilities
23
- export { diff, shouldComponentUpdate } from './vdom.js';
24
- // Export Component class
25
- export { Component } from './component.js';
26
- // Server module stub for browser environments
27
- export const server = {
28
- async getServer() {
29
- throw new Error("Server module can only be used in Node.js environment");
30
- }
31
- };
32
- // Export WASM functionality explicitly
33
- export const loadGoWasm = loadGoWasmImpl;
34
- export const createTypedWasmFunction = createTypedWasmFunctionImpl;
35
- export const goValues = goValuesImpl;
36
- // Add wasm object to ensure compatibility with existing dist/index.js
37
- export const wasm = {
38
- loadGoWasm: loadGoWasmImpl,
39
- createTypedWasmFunction: createTypedWasmFunctionImpl,
40
- goValues: goValuesImpl
41
- };
42
- // Export this so it can be properly identified in the bundle
43
- export let isHydrating = false;
44
- // Default export for compatibility with some module systems
45
- export default {
46
- Fragment,
47
- jsx,
48
- jsxs,
49
- createElement,
50
- render,
51
- hydrate,
52
- useState,
53
- useEffect,
54
- useMemo,
55
- useRef,
56
- useContext,
57
- useErrorBoundary,
58
- createContext,
59
- renderToString,
60
- batchUpdates,
61
- server,
62
- loadGoWasm,
63
- createTypedWasmFunction,
64
- goValues,
65
- wasm,
66
- Component,
67
- diff,
68
- shouldComponentUpdate
69
- // Server functionality is exposed through the server export
70
- };
71
- //# sourceMappingURL=index.js.map
72
- // This module is compatible with both ESM and CommonJS
73
- if (typeof exports === 'object' && typeof module !== 'undefined') {
74
- // CommonJS environment
75
- module.exports = exports;
76
- } else if (typeof define === 'function' && define.amd) {
77
- // AMD environment
78
- define(['exports'], factory);
79
- } // ESM environment is handled by default exports
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EACL,UAAU,IAAI,cAAc,EAC5B,uBAAuB,IAAI,2BAA2B,EACtD,QAAQ,IAAI,YAAY,EAGzB,MAAM,WAAW,CAAC;AAEnB,6CAA6C;AAC7C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAU,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EACL,QAAQ,EACR,SAAS,EACT,OAAO,EACP,MAAM,EACN,UAAU,EACV,gBAAgB,EACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAA6B,MAAM,YAAY,CAAC;AACrE,OAAO,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,6EAA6E;AAC7E,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EACL,GAAG,EACH,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,aAAa,EACd,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,QAAQ,EACR,SAAS,EACT,OAAO,EACP,MAAM,EACN,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB,cAAc;AACd,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,wBAAwB;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,wBAAwB;AACxB,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAErE,iBAAiB;AACjB,OAAO,EAAE,IAAI,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAExD,yBAAyB;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,8CAA8C;AAC9C,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,KAAK,CAAC,SAAS;QACb,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;CACF,CAAC;AAEF,uCAAuC;AACvC,MAAM,CAAC,MAAM,UAAU,GAAG,cAAc,CAAC;AACzC,MAAM,CAAC,MAAM,uBAAuB,GAAG,2BAA2B,CAAC;AACnE,MAAM,CAAC,MAAM,QAAQ,GAAG,YAAY,CAAC;AAGrC,sEAAsE;AACtE,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,UAAU,EAAE,cAAc;IAC1B,uBAAuB,EAAE,2BAA2B;IACpD,QAAQ,EAAE,YAAY;CACvB,CAAC;AAeF,6DAA6D;AAC7D,MAAM,CAAC,IAAI,WAAW,GAAG,KAAK,CAAC;AAE/B,4DAA4D;AAC5D,eAAe;IACb,QAAQ;IACR,GAAG;IACH,IAAI;IACJ,aAAa;IACb,MAAM;IACN,OAAO;IACP,QAAQ;IACR,SAAS;IACT,OAAO;IACP,MAAM;IACN,UAAU;IACV,gBAAgB;IAChB,aAAa;IACb,cAAc;IACd,YAAY;IACZ,MAAM;IACN,UAAU;IACV,uBAAuB;IACvB,QAAQ;IACR,IAAI;IACJ,SAAS;IACT,IAAI;IACJ,qBAAqB;IACrB,4DAA4D;CAC7D,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=jsx-dev-runtime.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jsx-dev-runtime.js","sourceRoot":"","sources":["../../../../src/jsx-runtime/jsx-dev-runtime.ts"],"names":[],"mappings":""}
@@ -1,4 +0,0 @@
1
- export declare function jsx(type: string | Function, props: any, key?: string): any;
2
- export declare function jsxs(type: string | Function, props: any, key?: string): any;
3
- export declare function createElement(vnode: any): HTMLElement | Text;
4
- export declare const Fragment: unique symbol;
@@ -1,41 +0,0 @@
1
- // This file serves as the entry point for the library, re-exporting core functionalities
2
- export function jsx(type, props, key) {
3
- return {
4
- type,
5
- props: props || {},
6
- key
7
- };
8
- }
9
- export function jsxs(type, props, key) {
10
- return jsx(type, props, key);
11
- }
12
- export function createElement(vnode) {
13
- if (typeof vnode === 'string' || typeof vnode === 'number') {
14
- return document.createTextNode(String(vnode));
15
- }
16
- if (typeof vnode.type === 'function') {
17
- const result = vnode.type(vnode.props);
18
- return createElement(result);
19
- }
20
- const element = document.createElement(vnode.type);
21
- Object.entries(vnode.props || {}).forEach(([name, value]) => {
22
- if (name === 'children') {
23
- const children = Array.isArray(value) ? value : [value];
24
- children.forEach((child) => {
25
- if (child != null) {
26
- element.appendChild(createElement(child));
27
- }
28
- });
29
- }
30
- else if (name.startsWith('on')) {
31
- const eventName = name.toLowerCase().substring(2);
32
- element.addEventListener(eventName, value);
33
- }
34
- else {
35
- element.setAttribute(name, value);
36
- }
37
- });
38
- return element;
39
- }
40
- export const Fragment = Symbol('Fragment');
41
- //# sourceMappingURL=jsx-runtime.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jsx-runtime.js","sourceRoot":"","sources":["../../../../src/jsx-runtime/jsx-runtime.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,MAAM,UAAU,GAAG,CAAC,IAAuB,EAAE,KAAU,EAAE,GAAY;IACnE,OAAO;QACL,IAAI;QACJ,KAAK,EAAE,KAAK,IAAI,EAAE;QAClB,GAAG;KACJ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,IAAuB,EAAE,KAAU,EAAE,GAAY;IACpE,OAAO,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAU;IACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC3D,OAAO,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvC,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEnD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAgB,EAAE,EAAE;QACzE,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YACxD,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAU,EAAE,EAAE;gBAC9B,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;oBAClB,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC5C,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAClD,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC"}
@@ -1,20 +0,0 @@
1
- interface VNode {
2
- type: string | Function;
3
- props: Record<string, any>;
4
- }
5
- declare function jsx(type: string | Function, props: any): VNode;
6
- declare const Fragment: ({ children }: {
7
- children: any;
8
- }) => any;
9
- declare function createElement(vnode: VNode | any): Promise<Node>;
10
- export { jsx, jsx as jsxs, jsx as jsxDEV, Fragment, createElement };
11
- declare const jsxRuntime: {
12
- jsx: typeof jsx;
13
- jsxs: typeof jsx;
14
- jsxDEV: typeof jsx;
15
- Fragment: ({ children }: {
16
- children: any;
17
- }) => any;
18
- createElement: typeof createElement;
19
- };
20
- export default jsxRuntime;