fusee-framework 1.5.3 → 1.7.0

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 (115) hide show
  1. package/README.md +30 -13
  2. package/app/benchmark/benchmark.js +633 -0
  3. package/app/benchmark/index.html +102 -0
  4. package/app/benchmark/styles.css +249 -0
  5. package/app/components/Counter.js +17 -7
  6. package/app/components/Counter.ts +1 -1
  7. package/app/components/CounterSection.js +3 -4
  8. package/app/main.js +29 -62
  9. package/app/main.ts +72 -63
  10. package/app/pages/404.js +16 -0
  11. package/app/pages/[...all].js +35 -0
  12. package/app/pages/[...all].ts +35 -0
  13. package/app/pages/_layout.js +26 -0
  14. package/app/pages/_layout.ts +26 -0
  15. package/app/pages/about.js +23 -0
  16. package/app/pages/about.ts +29 -0
  17. package/app/pages/composables.js +158 -0
  18. package/app/pages/composables.ts +158 -0
  19. package/app/pages/dynamic.js +40 -0
  20. package/app/pages/dynamic.ts +40 -0
  21. package/app/pages/index.js +117 -0
  22. package/app/pages/index.ts +78 -0
  23. package/app/pages/login.ts +21 -0
  24. package/app/pages/objects/[id].js +56 -0
  25. package/app/pages/objects/[id].ts +56 -0
  26. package/app/pages/posts/[category]/[slug].js +56 -0
  27. package/app/pages/posts/[category]/[slug].ts +56 -0
  28. package/app/pages/router-example.js +56 -0
  29. package/app/pages/router-example.ts +56 -0
  30. package/app/pages/test-for.js +65 -0
  31. package/app/pages/test-for.ts +80 -0
  32. package/app/pages/users/[id].js +24 -0
  33. package/app/pages/users/[id].ts +46 -0
  34. package/app/pages/users/index.js +22 -0
  35. package/app/pages/users/index.ts +29 -0
  36. package/app/pages/users.js +43 -0
  37. package/app/pages/users.ts +78 -0
  38. package/app/routes/About.js +1 -1
  39. package/app/routes/About.ts +1 -1
  40. package/app/routes/AuthRoutes.ts +41 -0
  41. package/app/routes/Home.js +9 -0
  42. package/app/routes/NotFound.js +16 -0
  43. package/app/routes/NotFound.ts +16 -0
  44. package/app/routes/RouterExample.js +56 -0
  45. package/app/routes/RouterExample.ts +56 -0
  46. package/app/routes/WildcardDemo.js +35 -0
  47. package/app/routes/WildcardDemo.ts +35 -0
  48. package/auto-imports.d.ts +1 -0
  49. package/bin/create-fusee-linux +0 -0
  50. package/bin/create-fusee-mac-arm64 +0 -0
  51. package/bin/create-fusee-mac-intel +0 -0
  52. package/bin/create-fusee-win.exe +0 -0
  53. package/bin/create-fusee.exe +0 -0
  54. package/bin/index.js +38 -0
  55. package/create-fusee-go/cmd/generate.go +72 -0
  56. package/create-fusee-go/cmd/init.go +38 -0
  57. package/create-fusee-go/cmd/root.go +121 -0
  58. package/create-fusee-go/go.mod +10 -0
  59. package/create-fusee-go/go.sum +10 -0
  60. package/create-fusee-go/internal/assets/assets.go +78 -0
  61. package/create-fusee-go/internal/assets/embed/framework/auto-import-preset.js +9 -0
  62. package/create-fusee-go/internal/assets/embed/framework/core/compiler.js +253 -0
  63. package/create-fusee-go/internal/assets/embed/framework/core/component.js +266 -0
  64. package/create-fusee-go/internal/assets/embed/framework/core/composable.js +27 -0
  65. package/create-fusee-go/internal/assets/embed/framework/core/directives.js +875 -0
  66. package/create-fusee-go/internal/assets/embed/framework/core/evaluator.js +153 -0
  67. package/create-fusee-go/internal/assets/embed/framework/core/event-delegation.js +191 -0
  68. package/create-fusee-go/internal/assets/embed/framework/core/signal.js +412 -0
  69. package/create-fusee-go/internal/assets/embed/framework/core/store.js +81 -0
  70. package/create-fusee-go/internal/assets/embed/framework/index.d.ts +3 -0
  71. package/create-fusee-go/internal/assets/embed/framework/index.js +10 -0
  72. package/create-fusee-go/internal/assets/embed/framework/router/file-router.js +177 -0
  73. package/create-fusee-go/internal/assets/embed/framework/router/router.js +462 -0
  74. package/create-fusee-go/internal/assets/embed/framework/types/compiler.d.ts +15 -0
  75. package/create-fusee-go/internal/assets/embed/framework/types/component.d.ts +88 -0
  76. package/create-fusee-go/internal/assets/embed/framework/types/composable.d.ts +14 -0
  77. package/create-fusee-go/internal/assets/embed/framework/types/directives.d.ts +55 -0
  78. package/create-fusee-go/internal/assets/embed/framework/types/evaluator.d.ts +13 -0
  79. package/create-fusee-go/internal/assets/embed/framework/types/event-delegation.d.ts +32 -0
  80. package/create-fusee-go/internal/assets/embed/framework/types/index.d.ts +22 -0
  81. package/create-fusee-go/internal/assets/embed/framework/types/router.d.ts +32 -0
  82. package/create-fusee-go/internal/assets/embed/framework/types/signal.d.ts +79 -0
  83. package/create-fusee-go/internal/assets/embed/framework/types/store.d.ts +8 -0
  84. package/create-fusee-go/internal/assets/templates/Counter.tmpl +26 -0
  85. package/create-fusee-go/internal/assets/templates/component.tmpl +11 -0
  86. package/create-fusee-go/internal/assets/templates/components/Loading.tmpl +24 -0
  87. package/create-fusee-go/internal/assets/templates/index.html.tmpl +15 -0
  88. package/create-fusee-go/internal/assets/templates/main.tmpl +14 -0
  89. package/create-fusee-go/internal/assets/templates/package.json.tmpl +14 -0
  90. package/create-fusee-go/internal/assets/templates/page.tmpl +12 -0
  91. package/create-fusee-go/internal/assets/templates/pages/about.tmpl +20 -0
  92. package/create-fusee-go/internal/assets/templates/pages/index.tmpl +22 -0
  93. package/create-fusee-go/internal/assets/templates/pages/layout.tmpl +18 -0
  94. package/create-fusee-go/internal/assets/templates/tsconfig.json.tmpl +14 -0
  95. package/create-fusee-go/internal/assets/templates/vite.config.js.tmpl +18 -0
  96. package/create-fusee-go/main.go +7 -0
  97. package/framework/auto-import-preset.js +1 -1
  98. package/framework/core/compiler.js +252 -249
  99. package/framework/core/component.js +265 -260
  100. package/framework/core/directives.js +875 -632
  101. package/framework/core/evaluator.js +153 -70
  102. package/framework/core/event-delegation.js +191 -0
  103. package/framework/core/signal.js +412 -404
  104. package/framework/index.js +10 -11
  105. package/framework/router/file-router.js +177 -0
  106. package/framework/router/router.js +462 -80
  107. package/framework/types/component.d.ts +0 -4
  108. package/framework/types/event-delegation.d.ts +32 -0
  109. package/framework/types/index.d.ts +3 -0
  110. package/framework/types/router.d.ts +32 -15
  111. package/framework/types/signal.d.ts +1 -0
  112. package/index.html +638 -563
  113. package/package.json +5 -3
  114. package/tsconfig.json +1 -0
  115. /package/{framework → create-fusee-go/internal/assets/embed/framework}/bin/create-fusee.js +0 -0
package/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  # Fusée Framework 🚀
2
- **v1.5.3 — Signals-First JS Framework | Atomic Reactivity | Peak Performance**
2
+ **v1.7.0 — Signals-First JS Framework | Atomic Reactivity | Peak Performance**
3
3
 
4
4
  Fusée is a custom, high-performance fine-grained reactive JavaScript framework built for speed and simplicity. It features a recursive, non-greedy compiler, a signals-based reactivity engine, Dependency Injection for components and a comprehensive CLI for instant application scaffolding.
5
5
 
@@ -7,27 +7,44 @@ Fusée is a custom, high-performance fine-grained reactive JavaScript framework
7
7
 
8
8
  ## ⚡ Quick Start
9
9
 
10
- The fastest way to get started with Fusée is via the CLI:
10
+ The fastest way to get started with Fusée is via the **Go-Powered CLI**:
11
11
 
12
12
  ```bash
13
- # 1. Install Fusée globally
13
+ # 1. Install Fusée CLI globally
14
14
  npm install -g fusee-framework
15
15
 
16
- # 2. Scaffold your first project
17
- create-fusee-app .
16
+ # 2. Scaffold a new high-performance project
17
+ create-fusee-app my-awesome-app
18
+ # or simply
19
+ fusee init my-awesome-app
20
+ ```
21
+ Follow the interactive prompt to choose your template (**JavaScript** or **TypeScript**) and launch your app instantly!
22
+
23
+ ---
24
+
25
+ ## 🏗️ File-Based Routing (Nuxt-style)
26
+ Fusée now supports automated, file-based routing. No more manual route definitions!
27
+
28
+ - **Pages**: Just drop a file in `app/pages/` and it becomes a route.
29
+ - **Layouts**: Use `app/pages/_layout.js` to wrap your pages in consistent UI structures.
30
+ - **Dynamic Routes**: Support for `[id].js` style dynamic parameters.
31
+
32
+ ```bash
33
+ # Generate a new page instantly
34
+ fusee generate page contact
18
35
  ```
19
- Follow the interactive prompt to choose your template (**JavaScript** or **TypeScript**) and launch your app with `npm run dev`!
20
36
 
21
37
  ---
22
38
 
23
39
  ## 🔥 Key Features
24
40
 
41
+ - **New Go-Powered CLI**: Blazing fast project scaffolding and resource generation.
25
42
  - **Signals-First Reactivity**: Modern atomic updates that ensure only the modified parts of the DOM are touched.
26
- - **Recursive Hybrid Compiler**: A robust architectural approach to node traversal, eliminating rendering bugs while maintaining "greedy" directive processing for speed.
27
- - **Strict Component System**: Use `defineComponent` for prop validation, lifecycle hooks (`onMount`, `onUnmount`), and automated cleanup.
43
+ - **Nuxt-style File Routing**: Automated route discovery with layout support.
44
+ - **Recursive Hybrid Compiler**: A robust architectural approach to node traversal.
28
45
  - **Optimized Directives**: Native support for `f-if`, `f-for`, `f-model`, `f-text`, `f-cloak` and more.
29
- - **Performance Shield (`f-once`)**: Isolate and stabilize static subtrees to prevent unnecessary reactivity.
30
- - **Vite Integration**: Full support for the fastest development workflow and Hot Module Replacement (HMR).
46
+ - **Performance Shield (`f-once`)**: Isolate and stabilize static subtrees.
47
+ - **Vite Integration**: Full support for the fastest development workflow and HMR.
31
48
 
32
49
  ---
33
50
 
@@ -80,7 +97,7 @@ export const Welcome = defineComponent({
80
97
 
81
98
  Fusée is built with a test-driven mindset to ensure the reliability of its reactivity engine and component lifecycle.
82
99
 
83
- - **Total Tests:** `360`
100
+ - **Total Tests:** `468`
84
101
  - **Status:** `All Passed`
85
102
  - **Framework:** [Vitest](https://vitest.dev/)
86
103
  - **Environment:** JSDOM (Browser simulation)
@@ -106,6 +123,7 @@ npx vitest
106
123
  * **Component System:** Props, Slots, Async Components, and Lifecycle Hooks.
107
124
  * **Dependency Injection:** Nested Provide/Inject and Shadowing.
108
125
  * **Directives:** `f-if`, `f-for`, `f-model`, and Event Modifiers.
126
+ * **Events:** Event delegation and native event handling.
109
127
  * **Memory Safety:** Explicit checks for memory leaks and automatic effect disposal.
110
128
  * **Type Safety:** Comprehensive TypeScript definitions and type tests.
111
129
  * **Integration Tests:** Advanced module combinations and edge cases.
@@ -114,8 +132,7 @@ npx vitest
114
132
 
115
133
  ## 🚀 Future Roadmap
116
134
 
117
- - [ ] Advanced file-based routing support and state management
118
- - [ ] SSR support
135
+ - [ ] Advanced state management and SSR support
119
136
  - [ ] Lightweight compiler which transforms declarative HTML into optimized runtime instructions
120
137
  - [ ] Integrated backend development support
121
138