1.5+
Map File
Map file (standard logic)

The version 1.5.0 just added its new map file for route files protection. A Map file stand as directory pointer for route files which allows an extended functionality of shifting route files directory into a different subdirectory of its parent window directory under a standard logic route system. This file which is placed directly within the "windows" directory is only identified with its .map extension name. However, the code structure of a map file is of a json syntax. It uses a predefined key and value to determine how to resolve standard routes. Some of the use case for map files under standard logic are explained below.


File protection #1
windows/Routes/.map
  {
    "*": "Mi\\"
  }
                                    
The addition of map files is to protect standard logic entry point names by selecting a custom subdirectory where route files are saved just by a single declaration. In the sample above, the ".map" file will direct the standard logic to look for route files within the windows/Routes/Mi directory. For example, rather than for a url http://localhost/home to call the main route "Home", from windows/Routes directory, it will be called from windows/Routes/Mi directory. This makes it easier to protect standard logic entry files path. We can also fake file names if the double slash is not added to the value, that is "Mi" instead of "Mi\\".

Entry inverse #2
windows/Routes/.map
    {
        ":root": {

            "!home" => 'Home'

        }
    }
                                    
By default under a standard window logic, the url entry point "home" or "Home" means the same thing as they forward the url to a route file "windows/Routes/Home" file to call. This is because the lowercase or sentence case is accepted. However, when an entry point file name which does not follow this pattern is called (e.g "HOme", "hoMe") is called, a 404 response is returned. We can however lessen this strictness using a map file. In the code above, the ":root" defines a set of entry names and the relative route files they call. Using an inverse operator on the entry point name, if known, will ensure that such route allows the entry point to have any form of text cases (e.g uppercase, camelcase, etc.).