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
@@ -4,202 +4,147 @@
4
4
  package main
5
5
 
6
6
  import (
7
+ "encoding/json"
7
8
  "fmt"
8
- "strconv"
9
- "strings"
10
9
  "syscall/js"
11
10
  )
12
11
 
13
- // Main function required for Go WebAssembly
14
- func main() {
15
- // Set up global functions that will be accessible from JavaScript
16
- js.Global().Set("goAdd", js.FuncOf(goAdd))
17
- js.Global().Set("goSubtract", js.FuncOf(goSubtract))
18
- js.Global().Set("goMultiply", js.FuncOf(goMultiply))
19
- js.Global().Set("goDivide", js.FuncOf(goDivide))
20
- js.Global().Set("goReverseString", js.FuncOf(goReverseString))
21
- js.Global().Set("goCalculateFactorial", js.FuncOf(goCalculateFactorial))
22
- js.Global().Set("goProcessArray", js.FuncOf(goProcessArray))
23
-
24
- // Keep the Go program running until the context is done
25
- // This is necessary for WebAssembly modules
26
- <-make(chan bool)
27
- }
28
-
29
- // goAdd adds two numbers and returns the result
30
- func goAdd(this js.Value, args []js.Value) interface{} {
12
+ // Basic arithmetic functions
13
+ func add(this js.Value, args []js.Value) interface{} {
31
14
  if len(args) != 2 {
32
- return map[string]interface{}{
33
- "error": "Expected 2 arguments: number, number",
34
- }
35
- }
36
-
37
- // Parse string arguments as numbers
38
- a, errA := strconv.ParseFloat(args[0].String(), 64)
39
- b, errB := strconv.ParseFloat(args[1].String(), 64)
40
-
41
- // Check for parsing errors
42
- if errA != nil || errB != nil {
43
- return map[string]interface{}{
44
- "error": "Arguments must be valid numbers",
45
- }
15
+ return js.ValueOf("Error: add requires 2 arguments")
46
16
  }
47
17
 
48
- // Return the result
49
- return fmt.Sprintf("%g", a+b)
18
+ a := args[0].Int()
19
+ b := args[1].Int()
20
+ return js.ValueOf(a + b)
50
21
  }
51
22
 
52
- // goSubtract subtracts the second number from the first
53
- func goSubtract(this js.Value, args []js.Value) interface{} {
23
+ func subtract(this js.Value, args []js.Value) interface{} {
54
24
  if len(args) != 2 {
55
- return map[string]interface{}{
56
- "error": "Expected 2 arguments: number, number",
57
- }
58
- }
59
-
60
- // Parse string arguments as numbers
61
- a, errA := strconv.ParseFloat(args[0].String(), 64)
62
- b, errB := strconv.ParseFloat(args[1].String(), 64)
63
-
64
- // Check for parsing errors
65
- if errA != nil || errB != nil {
66
- return map[string]interface{}{
67
- "error": "Arguments must be valid numbers",
68
- }
25
+ return js.ValueOf("Error: subtract requires 2 arguments")
69
26
  }
70
27
 
71
- // Return the result
72
- return fmt.Sprintf("%g", a-b)
28
+ a := args[0].Int()
29
+ b := args[1].Int()
30
+ return js.ValueOf(a - b)
73
31
  }
74
32
 
75
- // goMultiply multiplies two numbers
76
- func goMultiply(this js.Value, args []js.Value) interface{} {
33
+ func multiply(this js.Value, args []js.Value) interface{} {
77
34
  if len(args) != 2 {
78
- return map[string]interface{}{
79
- "error": "Expected 2 arguments: number, number",
80
- }
81
- }
82
-
83
- // Parse string arguments as numbers
84
- a, errA := strconv.ParseFloat(args[0].String(), 64)
85
- b, errB := strconv.ParseFloat(args[1].String(), 64)
86
-
87
- // Check for parsing errors
88
- if errA != nil || errB != nil {
89
- return map[string]interface{}{
90
- "error": "Arguments must be valid numbers",
91
- }
35
+ return js.ValueOf("Error: multiply requires 2 arguments")
92
36
  }
93
37
 
94
- // Return the result
95
- return fmt.Sprintf("%g", a*b)
38
+ a := args[0].Int()
39
+ b := args[1].Int()
40
+ return js.ValueOf(a * b)
96
41
  }
97
42
 
98
- // goDivide divides the first number by the second
99
- func goDivide(this js.Value, args []js.Value) interface{} {
100
- if len(args) != 2 {
101
- return map[string]interface{}{
102
- "error": "Expected 2 arguments: number, number",
103
- }
104
- }
105
-
106
- // Parse string arguments as numbers
107
- a, errA := strconv.ParseFloat(args[0].String(), 64)
108
- b, errB := strconv.ParseFloat(args[1].String(), 64)
109
-
110
- // Check for parsing errors
111
- if errA != nil || errB != nil {
112
- return map[string]interface{}{
113
- "error": "Arguments must be valid numbers",
114
- }
43
+ // String operations
44
+ func concat(this js.Value, args []js.Value) interface{} {
45
+ if len(args) < 1 {
46
+ return js.ValueOf("")
115
47
  }
116
48
 
117
- // Check for division by zero
118
- if b == 0 {
119
- return map[string]interface{}{
120
- "error": "Division by zero is not allowed",
121
- }
49
+ result := ""
50
+ for _, arg := range args {
51
+ result += arg.String()
122
52
  }
123
-
124
- // Return the result
125
- return fmt.Sprintf("%g", a/b)
53
+ return js.ValueOf(result)
126
54
  }
127
55
 
128
- // goReverseString reverses a string
129
- func goReverseString(this js.Value, args []js.Value) interface{} {
56
+ // JSON operations
57
+ func parseJSON(this js.Value, args []js.Value) interface{} {
130
58
  if len(args) != 1 {
131
- return map[string]interface{}{
132
- "error": "Expected 1 argument: string",
133
- }
59
+ return js.ValueOf("Error: parseJSON requires 1 argument")
134
60
  }
135
61
 
136
- input := args[0].String()
137
- runes := []rune(input)
138
-
139
- // Reverse the string
140
- for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {
141
- runes[i], runes[j] = runes[j], runes[i]
62
+ jsonStr := args[0].String()
63
+ var result interface{}
64
+ err := json.Unmarshal([]byte(jsonStr), &result)
65
+ if err != nil {
66
+ return js.ValueOf("Error parsing JSON: " + err.Error())
142
67
  }
143
68
 
144
- return string(runes)
69
+ // Convert result to JS value
70
+ return mapToJSValue(result)
145
71
  }
146
72
 
147
- // goCalculateFactorial calculates the factorial of a number
148
- func goCalculateFactorial(this js.Value, args []js.Value) interface{} {
149
- if len(args) != 1 {
150
- return map[string]interface{}{
151
- "error": "Expected 1 argument: number",
73
+ // Helper functions for JSON conversion
74
+ func mapToJSValue(value interface{}) js.Value {
75
+ switch v := value.(type) {
76
+ case map[string]interface{}:
77
+ result := js.Global().Get("Object").New()
78
+ for key, val := range v {
79
+ result.Set(key, mapToJSValue(val))
152
80
  }
153
- }
154
-
155
- // Parse string argument as number
156
- n, err := strconv.ParseInt(args[0].String(), 10, 64)
157
-
158
- // Check for parsing errors
159
- if err != nil {
160
- return map[string]interface{}{
161
- "error": "Argument must be a valid integer",
81
+ return result
82
+ case []interface{}:
83
+ result := js.Global().Get("Array").New(len(v))
84
+ for i, val := range v {
85
+ result.SetIndex(i, mapToJSValue(val))
162
86
  }
87
+ return result
88
+ case string:
89
+ return js.ValueOf(v)
90
+ case float64:
91
+ return js.ValueOf(v)
92
+ case bool:
93
+ return js.ValueOf(v)
94
+ case nil:
95
+ return js.ValueOf(nil)
96
+ default:
97
+ return js.ValueOf(fmt.Sprint(v))
163
98
  }
99
+ }
164
100
 
165
- // Check for negative numbers
166
- if n < 0 {
167
- return map[string]interface{}{
168
- "error": "Factorial is not defined for negative numbers",
169
- }
101
+ // Special utility functions for string handling between Go and JS
102
+ func __stringToGo(this js.Value, args []js.Value) interface{} {
103
+ if len(args) != 1 {
104
+ return js.ValueOf(-1)
170
105
  }
106
+ return args[0] // Pass through
107
+ }
171
108
 
172
- // Calculate factorial
173
- result := int64(1)
174
- for i := int64(2); i <= n; i++ {
175
- result *= i
109
+ func __stringFromGo(this js.Value, args []js.Value) interface{} {
110
+ if len(args) != 1 {
111
+ return js.ValueOf("")
176
112
  }
177
-
178
- return fmt.Sprintf("%d", result)
113
+ return args[0] // Pass through
179
114
  }
180
115
 
181
- // goProcessArray processes an array of values
182
- func goProcessArray(this js.Value, args []js.Value) interface{} {
183
- if len(args) != 1 || args[0].Type() != js.TypeString {
184
- return map[string]interface{}{
185
- "error": "Expected 1 argument: comma-separated string",
186
- }
116
+ func __objectToGo(this js.Value, args []js.Value) interface{} {
117
+ if len(args) != 1 {
118
+ return js.ValueOf(-1)
187
119
  }
120
+ return args[0] // Pass through
121
+ }
188
122
 
189
- // Split the input string by commas
190
- input := args[0].String()
191
- parts := strings.Split(input, ",")
192
-
193
- // Process each part
194
- var results []string
195
- for _, part := range parts {
196
- // Trim whitespace
197
- trimmed := strings.TrimSpace(part)
198
-
199
- // Convert to uppercase and add to results
200
- results = append(results, strings.ToUpper(trimmed))
123
+ func __objectFromGo(this js.Value, args []js.Value) interface{} {
124
+ if len(args) != 1 {
125
+ return js.ValueOf("")
201
126
  }
127
+ return args[0] // Pass through
128
+ }
202
129
 
203
- // Join the processed parts with commas
204
- return strings.Join(results, ",")
130
+ func main() {
131
+ fmt.Println("Go WebAssembly module initialized")
132
+
133
+ // Register functions to make available to JavaScript
134
+ js.Global().Set("goAdd", js.FuncOf(add))
135
+ js.Global().Set("goSubtract", js.FuncOf(subtract))
136
+ js.Global().Set("goMultiply", js.FuncOf(multiply))
137
+ js.Global().Set("goConcat", js.FuncOf(concat))
138
+ js.Global().Set("goParseJSON", js.FuncOf(parseJSON))
139
+
140
+ // Register special utility functions for frontend-hamroun integration
141
+ js.Global().Set("__stringToGo", js.FuncOf(__stringToGo))
142
+ js.Global().Set("__stringFromGo", js.FuncOf(__stringFromGo))
143
+ js.Global().Set("__objectToGo", js.FuncOf(__objectToGo))
144
+ js.Global().Set("__objectFromGo", js.FuncOf(__objectFromGo))
145
+
146
+ // Keep the program running
147
+ c := make(chan struct{}, 0)
148
+ fmt.Println("Go WebAssembly module ready")
149
+ <-c
205
150
  }
@@ -1,11 +1,9 @@
1
- const config = {
1
+ export default {
2
2
  presets: [
3
3
  ['@babel/preset-env', {
4
4
  targets: {
5
5
  node: 'current'
6
- },
7
- // Enable dynamic imports for both ESM and CommonJS
8
- modules: false
6
+ }
9
7
  }]
10
8
  ],
11
9
  plugins: [
@@ -15,7 +13,3 @@ const config = {
15
13
  }]
16
14
  ]
17
15
  };
18
-
19
- // Support both ESM and CommonJS
20
- export default config;
21
- module.exports = config;
@@ -1,32 +1,23 @@
1
1
  {
2
2
  "name": "go-wasm-app",
3
3
  "version": "1.0.0",
4
- "type": "commonjs",
5
- "description": "Frontend Hamroun app with Go WebAssembly integration",
4
+ "description": "WebAssembly integration with Go for Frontend Hamroun with SSR",
5
+ "type": "module",
6
+ "main": "server.js",
6
7
  "scripts": {
7
- "dev": "cross-env NODE_ENV=development node server.js",
8
- "build": "cross-env NODE_ENV=production node build.js",
9
- "build:wasm": "node build.js --wasm-only",
10
- "start": "cross-env NODE_ENV=production node dist/server/server.js",
11
- "test": "vitest run"
8
+ "build:wasm": "node build-wasm.js",
9
+ "prepare": "node -e \"if (!require('fs').existsSync('public/wasm')) { require('fs').mkdirSync('public/wasm', {recursive: true}); }\"",
10
+ "dev": "npm run build:wasm && node --watch server.js",
11
+ "build": "npm run build:wasm && node -e \"require('fs').mkdirSync('dist', {recursive: true}); require('fs-extra').copySync('public', 'dist')\"",
12
+ "start": "cross-env NODE_ENV=production node server.js"
12
13
  },
13
14
  "dependencies": {
14
15
  "express": "^4.18.2",
15
- "frontend-hamroun": "latest"
16
+ "frontend-hamroun": "^1.2.71",
17
+ "fs-extra": "^10.0.0"
16
18
  },
17
19
  "devDependencies": {
18
- "cross-env": "^7.0.3",
19
- "esbuild": "^0.19.5",
20
- "nodemon": "^3.0.1",
21
- "vitest": "^0.34.6"
22
- },
23
- "engines": {
24
- "node": ">=16.0.0"
25
- },
26
- "exports": {
27
- ".": {
28
- "import": "./dist/assets/client.mjs",
29
- "require": "./dist/assets/client.js"
30
- }
20
+ "@babel/core": "^7.22.9",
21
+ "cross-env": "^7.0.3"
31
22
  }
32
23
  }