slicejs-web-framework 2.4.8 → 3.1.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 (229) hide show
  1. package/.worktrees/bundling-v2-precompiled-registrars/LICENSE +21 -0
  2. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/ContextManager/ContextManager.js +369 -0
  3. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/ContextManager/ContextManagerDebugger.js +297 -0
  4. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/Controller/Controller.js +972 -0
  5. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/Debugger/Debugger.css +620 -0
  6. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/Debugger/Debugger.html +73 -0
  7. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/Debugger/Debugger.js +1548 -0
  8. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/EventManager/EventManager.js +338 -0
  9. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/EventManager/EventManagerDebugger.js +361 -0
  10. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/Logger/Log.js +10 -0
  11. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/Logger/Logger.js +146 -0
  12. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/Router/Router.js +721 -0
  13. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/StylesManager/StylesManager.js +78 -0
  14. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/StylesManager/ThemeManager/ThemeManager.js +84 -0
  15. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Slice.js +504 -0
  16. package/.worktrees/bundling-v2-precompiled-registrars/Slice/tests/bundle-v2-runtime-contract.test.js +268 -0
  17. package/.worktrees/bundling-v2-precompiled-registrars/Slice/tests/router-loading-finally.test.js +68 -0
  18. package/.worktrees/bundling-v2-precompiled-registrars/api/index.js +286 -0
  19. package/.worktrees/bundling-v2-precompiled-registrars/api/middleware/securityMiddleware.js +253 -0
  20. package/.worktrees/bundling-v2-precompiled-registrars/package.json +37 -0
  21. package/.worktrees/bundling-v2-precompiled-registrars/sliceConfig.schema.json +109 -0
  22. package/.worktrees/bundling-v2-precompiled-registrars/src/App/index.html +22 -0
  23. package/.worktrees/bundling-v2-precompiled-registrars/src/App/index.js +23 -0
  24. package/.worktrees/bundling-v2-precompiled-registrars/src/App/style.css +40 -0
  25. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/AppComponents/HomePage/HomePage.css +201 -0
  26. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/AppComponents/HomePage/HomePage.html +37 -0
  27. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/AppComponents/HomePage/HomePage.js +210 -0
  28. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/AppComponents/Playground/Playground.css +12 -0
  29. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/AppComponents/Playground/Playground.html +0 -0
  30. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/AppComponents/Playground/Playground.js +111 -0
  31. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Service/FetchManager/FetchManager.js +133 -0
  32. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Service/IndexedDbManager/IndexedDbManager.js +141 -0
  33. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Service/LocalStorageManager/LocalStorageManager.js +45 -0
  34. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Button/Button.css +47 -0
  35. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Button/Button.html +5 -0
  36. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Button/Button.js +93 -0
  37. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Card/Card.css +68 -0
  38. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Card/Card.html +7 -0
  39. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Card/Card.js +107 -0
  40. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Checkbox/Checkbox.css +87 -0
  41. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Checkbox/Checkbox.html +8 -0
  42. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Checkbox/Checkbox.js +86 -0
  43. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/CodeVisualizer/CodeVisualizer.css +130 -0
  44. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/CodeVisualizer/CodeVisualizer.html +4 -0
  45. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/CodeVisualizer/CodeVisualizer.js +262 -0
  46. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Details/Details.css +70 -0
  47. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Details/Details.html +9 -0
  48. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Details/Details.js +76 -0
  49. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/DropDown/DropDown.css +60 -0
  50. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/DropDown/DropDown.html +5 -0
  51. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/DropDown/DropDown.js +63 -0
  52. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Grid/Grid.css +7 -0
  53. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Grid/Grid.html +1 -0
  54. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Grid/Grid.js +57 -0
  55. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Icon/Icon.css +510 -0
  56. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Icon/Icon.html +1 -0
  57. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Icon/Icon.js +89 -0
  58. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Icon/slc.eot +0 -0
  59. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Icon/slc.json +555 -0
  60. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Icon/slc.styl +507 -0
  61. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Icon/slc.svg +1485 -0
  62. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Icon/slc.symbol.svg +1059 -0
  63. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Icon/slc.ttf +0 -0
  64. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Icon/slc.woff +0 -0
  65. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Icon/slc.woff2 +0 -0
  66. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Input/Input.css +91 -0
  67. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Input/Input.html +4 -0
  68. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Input/Input.js +215 -0
  69. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Layout/Layout.css +0 -0
  70. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Layout/Layout.html +0 -0
  71. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Layout/Layout.js +49 -0
  72. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Link/Link.css +8 -0
  73. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Link/Link.html +1 -0
  74. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Link/Link.js +63 -0
  75. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Loading/Loading.css +56 -0
  76. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Loading/Loading.html +83 -0
  77. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Loading/Loading.js +38 -0
  78. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/MultiRoute/MultiRoute.js +93 -0
  79. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Navbar/Navbar.css +115 -0
  80. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Navbar/Navbar.html +44 -0
  81. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Navbar/Navbar.js +141 -0
  82. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/NotFound/NotFound.css +117 -0
  83. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/NotFound/NotFound.html +24 -0
  84. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/NotFound/NotFound.js +16 -0
  85. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Route/Route.js +93 -0
  86. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Select/Select.css +84 -0
  87. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Select/Select.html +8 -0
  88. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Select/Select.js +195 -0
  89. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Switch/Switch.css +76 -0
  90. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Switch/Switch.html +8 -0
  91. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Switch/Switch.js +102 -0
  92. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/TreeItem/TreeItem.css +36 -0
  93. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/TreeItem/TreeItem.html +1 -0
  94. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/TreeItem/TreeItem.js +126 -0
  95. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/TreeView/TreeView.css +8 -0
  96. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/TreeView/TreeView.html +1 -0
  97. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/TreeView/TreeView.js +48 -0
  98. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/components.js +27 -0
  99. package/.worktrees/bundling-v2-precompiled-registrars/src/Styles/sliceStyles.css +34 -0
  100. package/.worktrees/bundling-v2-precompiled-registrars/src/Themes/Dark.css +42 -0
  101. package/.worktrees/bundling-v2-precompiled-registrars/src/Themes/Light.css +31 -0
  102. package/.worktrees/bundling-v2-precompiled-registrars/src/Themes/Slice.css +47 -0
  103. package/.worktrees/bundling-v2-precompiled-registrars/src/images/Slice.js-logo.png +0 -0
  104. package/.worktrees/bundling-v2-precompiled-registrars/src/images/favicon.ico +0 -0
  105. package/.worktrees/bundling-v2-precompiled-registrars/src/images/im2/Slice.js-logo.png +0 -0
  106. package/.worktrees/bundling-v2-precompiled-registrars/src/routes.js +16 -0
  107. package/.worktrees/bundling-v2-precompiled-registrars/src/sliceConfig.json +73 -0
  108. package/.worktrees/bundling-v2-precompiled-registrars/src/testing.js +888 -0
  109. package/.worktrees/public-env-browser-exposure/LICENSE +21 -0
  110. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/ContextManager/ContextManager.js +369 -0
  111. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/ContextManager/ContextManagerDebugger.js +297 -0
  112. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/Controller/Controller.js +972 -0
  113. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/Debugger/Debugger.css +620 -0
  114. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/Debugger/Debugger.html +73 -0
  115. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/Debugger/Debugger.js +1548 -0
  116. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/EventManager/EventManager.js +338 -0
  117. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/EventManager/EventManagerDebugger.js +361 -0
  118. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/Logger/Log.js +10 -0
  119. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/Logger/Logger.js +146 -0
  120. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/Router/Router.js +721 -0
  121. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/StylesManager/StylesManager.js +78 -0
  122. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/StylesManager/ThemeManager/ThemeManager.js +84 -0
  123. package/.worktrees/public-env-browser-exposure/Slice/Slice.js +533 -0
  124. package/.worktrees/public-env-browser-exposure/Slice/tests/bundle-v2-runtime-contract.test.js +268 -0
  125. package/.worktrees/public-env-browser-exposure/Slice/tests/public-env-runtime-accessors.test.js +44 -0
  126. package/.worktrees/public-env-browser-exposure/Slice/tests/router-loading-finally.test.js +68 -0
  127. package/.worktrees/public-env-browser-exposure/api/index.js +286 -0
  128. package/.worktrees/public-env-browser-exposure/api/middleware/securityMiddleware.js +253 -0
  129. package/.worktrees/public-env-browser-exposure/api/tests/public-env-resolver.test.js +193 -0
  130. package/.worktrees/public-env-browser-exposure/api/utils/publicEnvResolver.js +117 -0
  131. package/.worktrees/public-env-browser-exposure/package.json +37 -0
  132. package/.worktrees/public-env-browser-exposure/sliceConfig.schema.json +109 -0
  133. package/.worktrees/public-env-browser-exposure/src/App/index.html +22 -0
  134. package/.worktrees/public-env-browser-exposure/src/App/index.js +23 -0
  135. package/.worktrees/public-env-browser-exposure/src/App/style.css +40 -0
  136. package/.worktrees/public-env-browser-exposure/src/Components/AppComponents/HomePage/HomePage.css +201 -0
  137. package/.worktrees/public-env-browser-exposure/src/Components/AppComponents/HomePage/HomePage.html +37 -0
  138. package/.worktrees/public-env-browser-exposure/src/Components/AppComponents/HomePage/HomePage.js +210 -0
  139. package/.worktrees/public-env-browser-exposure/src/Components/AppComponents/Playground/Playground.css +12 -0
  140. package/.worktrees/public-env-browser-exposure/src/Components/AppComponents/Playground/Playground.html +0 -0
  141. package/.worktrees/public-env-browser-exposure/src/Components/AppComponents/Playground/Playground.js +111 -0
  142. package/.worktrees/public-env-browser-exposure/src/Components/Service/FetchManager/FetchManager.js +133 -0
  143. package/.worktrees/public-env-browser-exposure/src/Components/Service/IndexedDbManager/IndexedDbManager.js +141 -0
  144. package/.worktrees/public-env-browser-exposure/src/Components/Service/LocalStorageManager/LocalStorageManager.js +45 -0
  145. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Button/Button.css +47 -0
  146. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Button/Button.html +5 -0
  147. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Button/Button.js +93 -0
  148. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Card/Card.css +68 -0
  149. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Card/Card.html +7 -0
  150. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Card/Card.js +107 -0
  151. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Checkbox/Checkbox.css +87 -0
  152. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Checkbox/Checkbox.html +8 -0
  153. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Checkbox/Checkbox.js +86 -0
  154. package/.worktrees/public-env-browser-exposure/src/Components/Visual/CodeVisualizer/CodeVisualizer.css +130 -0
  155. package/.worktrees/public-env-browser-exposure/src/Components/Visual/CodeVisualizer/CodeVisualizer.html +4 -0
  156. package/.worktrees/public-env-browser-exposure/src/Components/Visual/CodeVisualizer/CodeVisualizer.js +262 -0
  157. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Details/Details.css +70 -0
  158. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Details/Details.html +9 -0
  159. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Details/Details.js +76 -0
  160. package/.worktrees/public-env-browser-exposure/src/Components/Visual/DropDown/DropDown.css +60 -0
  161. package/.worktrees/public-env-browser-exposure/src/Components/Visual/DropDown/DropDown.html +5 -0
  162. package/.worktrees/public-env-browser-exposure/src/Components/Visual/DropDown/DropDown.js +63 -0
  163. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Grid/Grid.css +7 -0
  164. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Grid/Grid.html +1 -0
  165. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Grid/Grid.js +57 -0
  166. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Icon/Icon.css +510 -0
  167. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Icon/Icon.html +1 -0
  168. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Icon/Icon.js +89 -0
  169. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Icon/slc.eot +0 -0
  170. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Icon/slc.json +555 -0
  171. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Icon/slc.styl +507 -0
  172. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Icon/slc.svg +1485 -0
  173. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Icon/slc.symbol.svg +1059 -0
  174. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Icon/slc.ttf +0 -0
  175. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Icon/slc.woff +0 -0
  176. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Icon/slc.woff2 +0 -0
  177. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Input/Input.css +91 -0
  178. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Input/Input.html +4 -0
  179. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Input/Input.js +215 -0
  180. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Layout/Layout.css +0 -0
  181. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Layout/Layout.html +0 -0
  182. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Layout/Layout.js +49 -0
  183. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Link/Link.css +8 -0
  184. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Link/Link.html +1 -0
  185. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Link/Link.js +63 -0
  186. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Loading/Loading.css +56 -0
  187. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Loading/Loading.html +83 -0
  188. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Loading/Loading.js +38 -0
  189. package/.worktrees/public-env-browser-exposure/src/Components/Visual/MultiRoute/MultiRoute.js +93 -0
  190. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Navbar/Navbar.css +115 -0
  191. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Navbar/Navbar.html +44 -0
  192. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Navbar/Navbar.js +141 -0
  193. package/.worktrees/public-env-browser-exposure/src/Components/Visual/NotFound/NotFound.css +117 -0
  194. package/.worktrees/public-env-browser-exposure/src/Components/Visual/NotFound/NotFound.html +24 -0
  195. package/.worktrees/public-env-browser-exposure/src/Components/Visual/NotFound/NotFound.js +16 -0
  196. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Route/Route.js +93 -0
  197. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Select/Select.css +84 -0
  198. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Select/Select.html +8 -0
  199. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Select/Select.js +195 -0
  200. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Switch/Switch.css +76 -0
  201. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Switch/Switch.html +8 -0
  202. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Switch/Switch.js +102 -0
  203. package/.worktrees/public-env-browser-exposure/src/Components/Visual/TreeItem/TreeItem.css +36 -0
  204. package/.worktrees/public-env-browser-exposure/src/Components/Visual/TreeItem/TreeItem.html +1 -0
  205. package/.worktrees/public-env-browser-exposure/src/Components/Visual/TreeItem/TreeItem.js +126 -0
  206. package/.worktrees/public-env-browser-exposure/src/Components/Visual/TreeView/TreeView.css +8 -0
  207. package/.worktrees/public-env-browser-exposure/src/Components/Visual/TreeView/TreeView.html +1 -0
  208. package/.worktrees/public-env-browser-exposure/src/Components/Visual/TreeView/TreeView.js +48 -0
  209. package/.worktrees/public-env-browser-exposure/src/Components/components.js +27 -0
  210. package/.worktrees/public-env-browser-exposure/src/Styles/sliceStyles.css +34 -0
  211. package/.worktrees/public-env-browser-exposure/src/Themes/Dark.css +42 -0
  212. package/.worktrees/public-env-browser-exposure/src/Themes/Light.css +31 -0
  213. package/.worktrees/public-env-browser-exposure/src/Themes/Slice.css +47 -0
  214. package/.worktrees/public-env-browser-exposure/src/images/Slice.js-logo.png +0 -0
  215. package/.worktrees/public-env-browser-exposure/src/images/favicon.ico +0 -0
  216. package/.worktrees/public-env-browser-exposure/src/images/im2/Slice.js-logo.png +0 -0
  217. package/.worktrees/public-env-browser-exposure/src/routes.js +16 -0
  218. package/.worktrees/public-env-browser-exposure/src/sliceConfig.json +73 -0
  219. package/.worktrees/public-env-browser-exposure/src/testing.js +888 -0
  220. package/Slice/Components/Structural/Controller/Controller.js +51 -29
  221. package/Slice/Components/Structural/Router/Router.js +25 -24
  222. package/Slice/Slice.js +79 -46
  223. package/Slice/tests/bundle-v2-runtime-contract.test.js +268 -0
  224. package/Slice/tests/public-env-runtime-accessors.test.js +44 -0
  225. package/Slice/tests/router-loading-finally.test.js +68 -0
  226. package/api/index.js +12 -12
  227. package/api/tests/public-env-resolver.test.js +193 -0
  228. package/api/utils/publicEnvResolver.js +117 -0
  229. package/package.json +1 -1
@@ -0,0 +1,253 @@
1
+ // api/middleware/securityMiddleware.js
2
+ import path from 'path';
3
+
4
+ /**
5
+ * Middleware de seguridad para prevenir acceso directo malicioso
6
+ * pero permitir que la aplicación cargue sus dependencias normalmente
7
+ */
8
+ export function securityMiddleware(options = {}) {
9
+ const {
10
+ allowedExtensions = ['.js', '.css', '.html', '.json', '.svg', '.png', '.jpg', '.jpeg', '.gif', '.woff', '.woff2', '.ttf'],
11
+ blockedPaths = [
12
+ '/node_modules',
13
+ '/package.json',
14
+ '/package-lock.json',
15
+ '/.env',
16
+ '/.git'
17
+ ],
18
+ allowPublicAssets = true
19
+ } = options;
20
+
21
+ return (req, res, next) => {
22
+ const requestPath = req.path;
23
+
24
+ // 1. Bloquear acceso a rutas definitivamente sensibles (configuración, dependencias)
25
+ const isBlockedPath = blockedPaths.some(blocked =>
26
+ requestPath.startsWith(blocked) || requestPath.includes(blocked)
27
+ );
28
+
29
+ if (isBlockedPath) {
30
+ console.warn(`🚫 Blocked access to sensitive path: ${requestPath}`);
31
+ return res.status(403).json({
32
+ error: 'Forbidden',
33
+ message: 'Access to this resource is not allowed',
34
+ path: requestPath
35
+ });
36
+ }
37
+
38
+ // 2. Permitir acceso a assets públicos
39
+ if (allowPublicAssets) {
40
+ const publicPaths = ['/assets', '/public', '/images', '/styles'];
41
+ const isPublicAsset = publicPaths.some(publicPath =>
42
+ requestPath.startsWith(publicPath)
43
+ );
44
+
45
+ if (isPublicAsset) {
46
+ return next();
47
+ }
48
+ }
49
+
50
+ // 3. Validar extensiones de archivo
51
+ const fileExtension = path.extname(requestPath).toLowerCase();
52
+
53
+ if (fileExtension && !allowedExtensions.includes(fileExtension)) {
54
+ console.warn(`🚫 Blocked file type: ${requestPath}`);
55
+ return res.status(403).json({
56
+ error: 'Forbidden',
57
+ message: 'File type not allowed',
58
+ extension: fileExtension
59
+ });
60
+ }
61
+
62
+ // 4. Prevenir path traversal attacks
63
+ const normalizedPath = path.normalize(requestPath);
64
+ if (normalizedPath.includes('..') || normalizedPath.includes('~')) {
65
+ console.warn(`🚫 Path traversal attempt: ${requestPath}`);
66
+ return res.status(403).json({
67
+ error: 'Forbidden',
68
+ message: 'Invalid path',
69
+ path: requestPath
70
+ });
71
+ }
72
+
73
+ // Todo está bien, continuar
74
+ next();
75
+ };
76
+ }
77
+
78
+ /**
79
+ * Middleware específico para proteger archivos del framework Slice.js
80
+ * PERMITE acceso cuando viene desde la propia aplicación (Referer válido)
81
+ * BLOQUEA acceso directo desde navegador o herramientas externas
82
+ */
83
+ export function sliceFrameworkProtection(options = {}) {
84
+ const {
85
+ port = 3000,
86
+ strictMode = false,
87
+ allowedDomains = [] // Dominios personalizados permitidos
88
+ } = options;
89
+
90
+ return (req, res, next) => {
91
+ const requestPath = req.path;
92
+
93
+ // Rutas del framework que requieren verificación
94
+ const frameworkPaths = [
95
+ '/Slice/Components/Structural',
96
+ '/Slice/Core',
97
+ '/Slice/Services'
98
+ ];
99
+
100
+ const isFrameworkFile = frameworkPaths.some(fwPath =>
101
+ requestPath.startsWith(fwPath)
102
+ );
103
+
104
+ if (!isFrameworkFile) {
105
+ return next();
106
+ }
107
+
108
+ // Verificar el origen de la petición
109
+ const referer = req.get('Referer') || req.get('Referrer');
110
+ const origin = req.get('Origin');
111
+ const host = req.get('Host');
112
+
113
+ // Construir lista de orígenes válidos dinámicamente
114
+ const validOrigins = [
115
+ `http://localhost:${port}`,
116
+ `http://127.0.0.1:${port}`,
117
+ `http://0.0.0.0:${port}`,
118
+ `https://localhost:${port}`,
119
+ ...allowedDomains // Dominios personalizados del usuario
120
+ ];
121
+
122
+ // Si hay un Host header, agregarlo automáticamente
123
+ if (host) {
124
+ validOrigins.push(`http://${host}`);
125
+ validOrigins.push(`https://${host}`);
126
+ }
127
+
128
+ // Verificar si la petición viene de un origen válido
129
+ const hasValidReferer = referer && validOrigins.some(valid => referer.startsWith(valid));
130
+ const hasValidOrigin = origin && validOrigins.some(valid => origin === valid);
131
+ const isSameHost = host && referer && referer.includes(host);
132
+
133
+ // Permitir si viene desde la aplicación
134
+ if (hasValidReferer || hasValidOrigin || isSameHost) {
135
+ return next();
136
+ }
137
+
138
+ // En modo estricto, bloquear todo acceso sin referer válido
139
+ if (strictMode) {
140
+ console.warn(`🚫 Blocked direct framework file access: ${requestPath}`);
141
+ return res.status(403).json({
142
+ error: 'Framework Protection',
143
+ message: 'Direct access to Slice.js framework files is blocked',
144
+ tip: 'Framework files must be loaded through the application',
145
+ path: requestPath
146
+ });
147
+ }
148
+
149
+ // En modo normal (desarrollo), permitir pero advertir
150
+ console.warn(`⚠️ Framework file accessed without valid referer: ${requestPath}`);
151
+ next();
152
+ };
153
+ }
154
+
155
+ /**
156
+ * Middleware para logging de peticiones sospechosas
157
+ */
158
+ export function suspiciousRequestLogger() {
159
+ const suspiciousPatterns = [
160
+ /\.\.\//, // Path traversal
161
+ /~/, // Home directory access
162
+ /\.env/, // Environment files
163
+ /\.git/, // Git files
164
+ /package\.json/, // Package files
165
+ /package-lock\.json/,
166
+ /node_modules/, // Dependencies
167
+ ];
168
+
169
+ return (req, res, next) => {
170
+ const requestPath = req.path;
171
+
172
+ const isSuspicious = suspiciousPatterns.some(pattern =>
173
+ pattern.test(requestPath)
174
+ );
175
+
176
+ if (isSuspicious) {
177
+ const clientIp = req.ip || req.connection.remoteAddress;
178
+ console.warn(`⚠️ Suspicious request: ${requestPath} from ${clientIp}`);
179
+ }
180
+
181
+ next();
182
+ };
183
+ }
184
+
185
+ /**
186
+ * Middleware para bloquear acceso directo vía navegador (typing en la URL)
187
+ * pero permitir peticiones desde scripts (fetch, import, etc.)
188
+ */
189
+ export function directAccessProtection(options = {}) {
190
+ const { protectedPaths = [] } = options;
191
+
192
+ return (req, res, next) => {
193
+ const requestPath = req.path;
194
+
195
+ const isProtectedPath = protectedPaths.some(protectedPath =>
196
+ requestPath.startsWith(protectedPath)
197
+ );
198
+
199
+ if (!isProtectedPath) {
200
+ return next();
201
+ }
202
+
203
+ // Detectar acceso directo:
204
+ // - No tiene Referer (usuario escribió la URL directamente)
205
+ // - Accept header indica navegación HTML
206
+ const referer = req.get('Referer');
207
+ const accept = req.get('Accept') || '';
208
+
209
+ const isDirectBrowserAccess = !referer && accept.includes('text/html');
210
+
211
+ if (isDirectBrowserAccess) {
212
+ console.warn(`🚫 Blocked direct browser access: ${requestPath}`);
213
+ return res.status(403).send(`
214
+ <!DOCTYPE html>
215
+ <html>
216
+ <head>
217
+ <title>Access Denied</title>
218
+ <style>
219
+ body {
220
+ font-family: system-ui;
221
+ max-width: 600px;
222
+ margin: 100px auto;
223
+ padding: 20px;
224
+ }
225
+ h1 { color: #d32f2f; }
226
+ code {
227
+ background: #f5f5f5;
228
+ padding: 2px 6px;
229
+ border-radius: 3px;
230
+ }
231
+ </style>
232
+ </head>
233
+ <body>
234
+ <h1>🚫 Direct Access Denied</h1>
235
+ <p>This file cannot be accessed directly.</p>
236
+ <p>Path: <code>${requestPath}</code></p>
237
+ <p>Framework files are automatically loaded by the application.</p>
238
+ <p><a href="/">← Return to application</a></p>
239
+ </body>
240
+ </html>
241
+ `);
242
+ }
243
+
244
+ next();
245
+ };
246
+ }
247
+
248
+ export default {
249
+ securityMiddleware,
250
+ sliceFrameworkProtection,
251
+ suspiciousRequestLogger,
252
+ directAccessProtection
253
+ };
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "slicejs-web-framework",
3
+ "version": "2.4.8",
4
+ "description": "",
5
+ "engines": {
6
+ "node": ">=20"
7
+ },
8
+ "scripts": {
9
+ "test": "echo \"Error: no test specified\" && exit 1",
10
+ "slice:init": "node node_modules/slicejs-cli/client.js init",
11
+ "slice:create": "node node_modules/slicejs-cli/client.js component create",
12
+ "slice:delete": "node node_modules/slicejs-cli/client.js component delete",
13
+ "slice:list": "node node_modules/slicejs-cli/client.js component list",
14
+ "slice:start": "node api/index.js",
15
+ "format": "prettier --write \"**/*.js\"",
16
+ "run": "node api/index.js",
17
+ "development": "npm run",
18
+ "slice:modify": "node node_modules/slicejs-cli/client.js modify"
19
+ },
20
+ "keywords": [],
21
+ "author": "",
22
+ "license": "ISC",
23
+ "type": "module",
24
+ "dependencies": {
25
+ "express": "^4.19.2"
26
+ },
27
+ "devDependencies": {
28
+ "prettier": "3.3.3"
29
+ },
30
+ "prettier": {
31
+ "trailingComma": "es5",
32
+ "tabWidth": 3,
33
+ "semi": true,
34
+ "singleQuote": true,
35
+ "printWidth": 120
36
+ }
37
+ }
@@ -0,0 +1,109 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://slicejs.local/sliceConfig.schema.json",
4
+ "title": "Slice.js Config",
5
+ "type": "object",
6
+ "additionalProperties": true,
7
+ "properties": {
8
+ "debugger": {
9
+ "type": "object",
10
+ "additionalProperties": true,
11
+ "properties": {
12
+ "enabled": { "type": "boolean" },
13
+ "click": { "type": "string", "enum": ["right", "left"] }
14
+ }
15
+ },
16
+ "stylesManager": {
17
+ "type": "object",
18
+ "additionalProperties": true,
19
+ "properties": {
20
+ "requestedStyles": { "type": "array", "items": { "type": "string" } }
21
+ }
22
+ },
23
+ "themeManager": {
24
+ "type": "object",
25
+ "additionalProperties": true,
26
+ "properties": {
27
+ "enabled": { "type": "boolean" },
28
+ "defaultTheme": { "type": "string" },
29
+ "saveThemeLocally": { "type": "boolean" },
30
+ "useBrowserTheme": { "type": "boolean" }
31
+ }
32
+ },
33
+ "logger": {
34
+ "type": "object",
35
+ "additionalProperties": true,
36
+ "properties": {
37
+ "enabled": { "type": "boolean" },
38
+ "showLogs": { "type": "object", "additionalProperties": true }
39
+ }
40
+ },
41
+ "events": {
42
+ "type": "object",
43
+ "additionalProperties": true,
44
+ "properties": {
45
+ "enabled": { "type": "boolean" },
46
+ "ui": {
47
+ "type": "object",
48
+ "additionalProperties": true,
49
+ "properties": {
50
+ "enabled": { "type": "boolean" },
51
+ "shortcut": { "type": "string" }
52
+ }
53
+ }
54
+ }
55
+ },
56
+ "context": {
57
+ "type": "object",
58
+ "additionalProperties": true,
59
+ "properties": {
60
+ "enabled": { "type": "boolean" },
61
+ "ui": {
62
+ "type": "object",
63
+ "additionalProperties": true,
64
+ "properties": {
65
+ "enabled": { "type": "boolean" },
66
+ "shortcut": { "type": "string" }
67
+ }
68
+ }
69
+ }
70
+ },
71
+ "paths": {
72
+ "type": "object",
73
+ "additionalProperties": true,
74
+ "properties": {
75
+ "components": { "type": "object", "additionalProperties": true },
76
+ "themes": { "type": "string" },
77
+ "styles": { "type": "string" },
78
+ "routesFile": { "type": "string" }
79
+ },
80
+ "required": ["components", "themes", "styles", "routesFile"]
81
+ },
82
+ "router": {
83
+ "type": "object",
84
+ "additionalProperties": true,
85
+ "properties": {
86
+ "defaultRoute": { "type": "string" }
87
+ }
88
+ },
89
+ "loading": {
90
+ "type": "object",
91
+ "additionalProperties": true,
92
+ "properties": {
93
+ "enabled": { "type": "boolean" }
94
+ }
95
+ },
96
+ "publicFolders": {
97
+ "type": "array",
98
+ "items": { "type": "string" }
99
+ },
100
+ "server": {
101
+ "type": "object",
102
+ "additionalProperties": true,
103
+ "properties": {
104
+ "port": { "type": "number" },
105
+ "host": { "type": "string" }
106
+ }
107
+ }
108
+ }
109
+ }
@@ -0,0 +1,22 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Slice - Documentation</title>
7
+ <link rel="icon" type="image/x-icon" href="/../../images/favicon.ico" />
8
+ <link rel="stylesheet" type="text/css" href="/App/style.css" />
9
+
10
+ <!-- Prism -->
11
+
12
+
13
+
14
+ <!-- Eliminar Prism despues-->
15
+ </head>
16
+
17
+ <body>
18
+ <div id="app">
19
+ <script src="/App/index.js" type="module"></script>
20
+ </div>
21
+ </body>
22
+ </html>
@@ -0,0 +1,23 @@
1
+ import Slice from '/Slice/Slice.js';
2
+
3
+
4
+ /*
5
+ slice.router.beforeEach(async (to, from, next) => {
6
+
7
+ if(to.metadata.private){
8
+ const isAuthenticated = await //fetchlogic for validation
9
+ if(!isAuthenticated){
10
+ return next({ path: '/login', replace: true });
11
+ }
12
+ return next();
13
+ }
14
+
15
+ return next();
16
+ });
17
+
18
+
19
+ If any beforeEach or afterEach is defined, start the router after defining them
20
+
21
+ await slice.router.start();
22
+
23
+ */
@@ -0,0 +1,40 @@
1
+ /* :root {
2
+ --docs-width: 64%;
3
+ }
4
+ slice-layout {
5
+ display: flex;
6
+ justify-content: center;
7
+ }
8
+
9
+ p {
10
+ text-align: justify;
11
+ }
12
+ h1 {
13
+ padding-top: 10px;
14
+ padding-bottom: 10px;
15
+ border-bottom: 1px solid var(--secondary-background-color);
16
+ }
17
+ h2 {
18
+ padding-top: 10px;
19
+ }
20
+ .grid-container {
21
+ overflow-x: auto;
22
+ }
23
+ @media only screen and (max-width: 770px) {
24
+ :root {
25
+ --docs-width: 100%;
26
+ }
27
+ }
28
+ * {
29
+ font-family: var(--font-family);
30
+ }
31
+ .docs_container {
32
+ color: var(--font-primary-color);
33
+ margin-top: 100px;
34
+ overflow-y: scroll;
35
+ overflow-x: hidden;
36
+ width: var(--docs-width);
37
+ padding-left: 10px;
38
+ padding-right: 10px;
39
+ padding-bottom: 25px;
40
+ } */
@@ -0,0 +1,201 @@
1
+ /* Home page styles */
2
+ slice-home-page {
3
+ display: block;
4
+ width: 100%;
5
+ font-family: var(--font-family);
6
+ color: var(--font-primary-color);
7
+ }
8
+
9
+ /* ── HERO ── */
10
+ .hero-section {
11
+ min-height: 80vh;
12
+ display: flex;
13
+ align-items: center;
14
+ justify-content: center;
15
+ text-align: center;
16
+ padding: 7rem 2rem 5rem;
17
+ background-color: var(--primary-background-color);
18
+ position: relative;
19
+ overflow: hidden;
20
+ }
21
+
22
+ .hero-section::before {
23
+ content: '';
24
+ position: absolute;
25
+ top: -150px;
26
+ left: 50%;
27
+ transform: translateX(-50%);
28
+ width: 700px;
29
+ height: 700px;
30
+ background: radial-gradient(
31
+ circle,
32
+ rgba(var(--primary-color-rgb), 0.07) 0%,
33
+ transparent 70%
34
+ );
35
+ pointer-events: none;
36
+ }
37
+
38
+ .hero-content {
39
+ max-width: 640px;
40
+ position: relative;
41
+ z-index: 1;
42
+ }
43
+
44
+ .hero-badge {
45
+ display: inline-block;
46
+ background: rgba(var(--primary-color-rgb), 0.1);
47
+ color: var(--primary-color);
48
+ font-size: 0.75rem;
49
+ font-weight: 700;
50
+ letter-spacing: 0.08em;
51
+ text-transform: uppercase;
52
+ padding: 0.3rem 0.85rem;
53
+ border-radius: 20px;
54
+ margin-bottom: 1.5rem;
55
+ }
56
+
57
+ .hero-title {
58
+ font-size: 3rem;
59
+ font-weight: 800;
60
+ color: var(--font-primary-color);
61
+ line-height: 1.1;
62
+ margin-bottom: 1rem;
63
+ letter-spacing: -0.03em;
64
+ }
65
+
66
+ .hero-title .highlight {
67
+ color: var(--primary-color);
68
+ }
69
+
70
+ .hero-sub {
71
+ font-size: 1.05rem;
72
+ color: var(--font-secondary-color);
73
+ margin-bottom: 2rem;
74
+ line-height: 1.6;
75
+ }
76
+
77
+ .hero-cta {
78
+ display: flex;
79
+ gap: 0.75rem;
80
+ justify-content: center;
81
+ margin-bottom: 2.5rem;
82
+ }
83
+
84
+ .hero-chips {
85
+ display: flex;
86
+ gap: 0.5rem;
87
+ justify-content: center;
88
+ flex-wrap: wrap;
89
+ }
90
+
91
+ .hero-chip {
92
+ background: white;
93
+ border: 1px solid var(--disabled-color);
94
+ color: var(--primary-color);
95
+ font-size: 0.75rem;
96
+ font-weight: 600;
97
+ padding: 0.3rem 0.75rem;
98
+ border-radius: 20px;
99
+ box-shadow: var(--box-shadow-primary);
100
+ }
101
+
102
+ /* ── FEATURES ── */
103
+ .features-section {
104
+ padding: 5rem 2rem;
105
+ background: white;
106
+ border-top: 1px solid var(--disabled-color);
107
+ }
108
+
109
+ .section-header {
110
+ text-align: center;
111
+ margin-bottom: 2.5rem;
112
+ }
113
+
114
+ .section-label {
115
+ font-size: 0.72rem;
116
+ font-weight: 700;
117
+ color: var(--accent-color);
118
+ text-transform: uppercase;
119
+ letter-spacing: 0.1em;
120
+ margin-bottom: 0.4rem;
121
+ }
122
+
123
+ .section-title {
124
+ font-size: 1.9rem;
125
+ font-weight: 800;
126
+ color: var(--font-primary-color);
127
+ letter-spacing: -0.02em;
128
+ }
129
+
130
+ .feature-grid {
131
+ display: grid;
132
+ grid-template-columns: repeat(3, 1fr);
133
+ gap: 1.2rem;
134
+ max-width: 820px;
135
+ margin: 0 auto;
136
+ }
137
+
138
+ .feature-item {
139
+ background: var(--primary-background-color);
140
+ border-radius: 10px;
141
+ padding: 1.4rem 1.2rem;
142
+ border: 1px solid var(--disabled-color);
143
+ transition: box-shadow 0.2s, transform 0.15s;
144
+ }
145
+
146
+ .feature-item:hover {
147
+ box-shadow: var(--box-shadow-primary);
148
+ transform: translateY(-2px);
149
+ }
150
+
151
+ .feature-title {
152
+ font-size: 0.9rem;
153
+ font-weight: 700;
154
+ color: var(--font-primary-color);
155
+ margin-bottom: 0.35rem;
156
+ }
157
+
158
+ .feature-description {
159
+ font-size: 0.78rem;
160
+ color: var(--medium-color);
161
+ line-height: 1.5;
162
+ }
163
+
164
+ /* ── SHOWCASE ── */
165
+ .showcase-section {
166
+ padding: 5rem 2rem;
167
+ background: var(--primary-background-color);
168
+ border-top: 1px solid var(--disabled-color);
169
+ }
170
+
171
+ .showcase-grid {
172
+ display: grid;
173
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
174
+ gap: 1rem;
175
+ max-width: 860px;
176
+ margin: 0 auto;
177
+ }
178
+
179
+ .comp-card {
180
+ background: white;
181
+ border-radius: 10px;
182
+ padding: 1.3rem 1.2rem;
183
+ border: 1px solid var(--disabled-color);
184
+ box-shadow: 0 2px 8px rgba(var(--primary-color-rgb), 0.06);
185
+ }
186
+
187
+ .comp-label {
188
+ font-size: 0.65rem;
189
+ font-weight: 700;
190
+ color: var(--medium-color);
191
+ text-transform: uppercase;
192
+ letter-spacing: 0.1em;
193
+ margin-bottom: 0.75rem;
194
+ }
195
+
196
+ .comp-demo {
197
+ display: flex;
198
+ align-items: center;
199
+ gap: 0.6rem;
200
+ flex-wrap: wrap;
201
+ }