free-framework 4.6.5 → 4.6.7

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.
package/compiler/lexer.js CHANGED
@@ -23,7 +23,8 @@ const KEYWORDS = new Set([
23
23
  'route', 'model', 'component', 'page', 'view', 'link', 'state', 'on', 'style',
24
24
  'middleware', 'auth', 'login', 'register', 'upload', 'path', 'maxSize', 'error',
25
25
  'text', 'action', 'validate', 'store', 'onMount', 'onDestroy', 'queue', 'mail',
26
- 'loop', 'condition', 'script', 'if', 'for'
26
+ 'loop', 'condition', 'script', 'if', 'for',
27
+ 'get', 'post', 'put', 'delete', 'patch', 'head', 'options'
27
28
  ]);
28
29
 
29
30
  function tokenize(code, filename = 'unknown.free') {
@@ -21,6 +21,9 @@ function parse(tokens, filename = 'unknown.free', source = '') {
21
21
  if (token.type === 'KEYWORD') {
22
22
  if (token.value === 'route') {
23
23
  ast.push(parseRoute(tokens, filename, source));
24
+ } else if (['get', 'post', 'put', 'delete', 'patch', 'head', 'options'].includes(token.value)) {
25
+ tokens.unshift(token); // put back the method
26
+ ast.push(parseRoute(tokens, filename, source));
24
27
  } else if (token.value === 'model') {
25
28
  ast.push(parseModel(tokens));
26
29
  } else if (token.value === 'component') {
@@ -66,6 +69,10 @@ function parseRoute(tokens, filename, source) {
66
69
  }
67
70
  }
68
71
  if (tokens[0] && tokens[0].value === '}') tokens.shift();
72
+ } else if (tokens[0] && tokens[0].value === '-' && tokens[1] && tokens[1].value === '>') {
73
+ tokens.shift(); // consume -
74
+ tokens.shift(); // consume >
75
+ view = tokens.shift().value;
69
76
  }
70
77
  return { type: 'route', method, path, view, middleware, handler, line: methodToken.line };
71
78
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "free-framework",
3
- "version": "4.6.5",
3
+ "version": "4.6.7",
4
4
  "description": "Professional Node.js engine for the .free language. Blazing-fast SSR, Islands Architecture, and built-in ORM.",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -1,12 +1,6 @@
1
1
  /**
2
2
  * Base Application Routes
3
3
  * Powered by Free Framework MVC
4
+ *
5
+ * Note: Routes are now organized in routes/web.free and routes/api.free
4
6
  */
5
-
6
- get "/" -> Home
7
-
8
- // Example of a protected view route (Optional Server-Side checking logic can go here)
9
- get "/dashboard" {
10
- // You can access req.user if middleware is attached globally or per route
11
- return Dashboard;
12
- }