slicejs-web-framework 3.1.2 → 3.1.3

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 (220) hide show
  1. package/package.json +1 -1
  2. package/.worktrees/bundling-v2-precompiled-registrars/LICENSE +0 -21
  3. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/ContextManager/ContextManager.js +0 -369
  4. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/ContextManager/ContextManagerDebugger.js +0 -297
  5. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/Controller/Controller.js +0 -972
  6. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/Debugger/Debugger.css +0 -620
  7. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/Debugger/Debugger.html +0 -73
  8. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/Debugger/Debugger.js +0 -1548
  9. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/EventManager/EventManager.js +0 -338
  10. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/EventManager/EventManagerDebugger.js +0 -361
  11. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/Logger/Log.js +0 -10
  12. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/Logger/Logger.js +0 -146
  13. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/Router/Router.js +0 -721
  14. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/StylesManager/StylesManager.js +0 -78
  15. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/StylesManager/ThemeManager/ThemeManager.js +0 -84
  16. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Slice.js +0 -504
  17. package/.worktrees/bundling-v2-precompiled-registrars/Slice/tests/bundle-v2-runtime-contract.test.js +0 -268
  18. package/.worktrees/bundling-v2-precompiled-registrars/Slice/tests/router-loading-finally.test.js +0 -68
  19. package/.worktrees/bundling-v2-precompiled-registrars/api/index.js +0 -286
  20. package/.worktrees/bundling-v2-precompiled-registrars/api/middleware/securityMiddleware.js +0 -253
  21. package/.worktrees/bundling-v2-precompiled-registrars/package.json +0 -37
  22. package/.worktrees/bundling-v2-precompiled-registrars/sliceConfig.schema.json +0 -109
  23. package/.worktrees/bundling-v2-precompiled-registrars/src/App/index.html +0 -22
  24. package/.worktrees/bundling-v2-precompiled-registrars/src/App/index.js +0 -23
  25. package/.worktrees/bundling-v2-precompiled-registrars/src/App/style.css +0 -40
  26. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/AppComponents/HomePage/HomePage.css +0 -201
  27. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/AppComponents/HomePage/HomePage.html +0 -37
  28. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/AppComponents/HomePage/HomePage.js +0 -210
  29. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/AppComponents/Playground/Playground.css +0 -12
  30. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/AppComponents/Playground/Playground.html +0 -0
  31. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/AppComponents/Playground/Playground.js +0 -111
  32. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Service/FetchManager/FetchManager.js +0 -133
  33. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Service/IndexedDbManager/IndexedDbManager.js +0 -141
  34. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Service/LocalStorageManager/LocalStorageManager.js +0 -45
  35. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Button/Button.css +0 -47
  36. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Button/Button.html +0 -5
  37. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Button/Button.js +0 -93
  38. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Card/Card.css +0 -68
  39. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Card/Card.html +0 -7
  40. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Card/Card.js +0 -107
  41. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Checkbox/Checkbox.css +0 -87
  42. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Checkbox/Checkbox.html +0 -8
  43. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Checkbox/Checkbox.js +0 -86
  44. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/CodeVisualizer/CodeVisualizer.css +0 -130
  45. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/CodeVisualizer/CodeVisualizer.html +0 -4
  46. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/CodeVisualizer/CodeVisualizer.js +0 -262
  47. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Details/Details.css +0 -70
  48. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Details/Details.html +0 -9
  49. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Details/Details.js +0 -76
  50. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/DropDown/DropDown.css +0 -60
  51. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/DropDown/DropDown.html +0 -5
  52. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/DropDown/DropDown.js +0 -63
  53. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Grid/Grid.css +0 -7
  54. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Grid/Grid.html +0 -1
  55. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Grid/Grid.js +0 -57
  56. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Icon/Icon.css +0 -510
  57. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Icon/Icon.html +0 -1
  58. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Icon/Icon.js +0 -89
  59. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Icon/slc.eot +0 -0
  60. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Icon/slc.json +0 -555
  61. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Icon/slc.styl +0 -507
  62. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Icon/slc.svg +0 -1485
  63. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Icon/slc.symbol.svg +0 -1059
  64. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Icon/slc.ttf +0 -0
  65. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Icon/slc.woff +0 -0
  66. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Icon/slc.woff2 +0 -0
  67. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Input/Input.css +0 -91
  68. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Input/Input.html +0 -4
  69. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Input/Input.js +0 -215
  70. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Layout/Layout.css +0 -0
  71. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Layout/Layout.html +0 -0
  72. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Layout/Layout.js +0 -49
  73. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Link/Link.css +0 -8
  74. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Link/Link.html +0 -1
  75. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Link/Link.js +0 -63
  76. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Loading/Loading.css +0 -56
  77. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Loading/Loading.html +0 -83
  78. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Loading/Loading.js +0 -38
  79. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/MultiRoute/MultiRoute.js +0 -93
  80. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Navbar/Navbar.css +0 -115
  81. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Navbar/Navbar.html +0 -44
  82. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Navbar/Navbar.js +0 -141
  83. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/NotFound/NotFound.css +0 -117
  84. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/NotFound/NotFound.html +0 -24
  85. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/NotFound/NotFound.js +0 -16
  86. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Route/Route.js +0 -93
  87. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Select/Select.css +0 -84
  88. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Select/Select.html +0 -8
  89. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Select/Select.js +0 -195
  90. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Switch/Switch.css +0 -76
  91. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Switch/Switch.html +0 -8
  92. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Switch/Switch.js +0 -102
  93. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/TreeItem/TreeItem.css +0 -36
  94. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/TreeItem/TreeItem.html +0 -1
  95. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/TreeItem/TreeItem.js +0 -126
  96. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/TreeView/TreeView.css +0 -8
  97. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/TreeView/TreeView.html +0 -1
  98. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/TreeView/TreeView.js +0 -48
  99. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/components.js +0 -27
  100. package/.worktrees/bundling-v2-precompiled-registrars/src/Styles/sliceStyles.css +0 -34
  101. package/.worktrees/bundling-v2-precompiled-registrars/src/Themes/Dark.css +0 -42
  102. package/.worktrees/bundling-v2-precompiled-registrars/src/Themes/Light.css +0 -31
  103. package/.worktrees/bundling-v2-precompiled-registrars/src/Themes/Slice.css +0 -47
  104. package/.worktrees/bundling-v2-precompiled-registrars/src/images/Slice.js-logo.png +0 -0
  105. package/.worktrees/bundling-v2-precompiled-registrars/src/images/favicon.ico +0 -0
  106. package/.worktrees/bundling-v2-precompiled-registrars/src/images/im2/Slice.js-logo.png +0 -0
  107. package/.worktrees/bundling-v2-precompiled-registrars/src/routes.js +0 -16
  108. package/.worktrees/bundling-v2-precompiled-registrars/src/sliceConfig.json +0 -73
  109. package/.worktrees/bundling-v2-precompiled-registrars/src/testing.js +0 -888
  110. package/.worktrees/public-env-browser-exposure/LICENSE +0 -21
  111. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/ContextManager/ContextManager.js +0 -369
  112. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/ContextManager/ContextManagerDebugger.js +0 -297
  113. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/Controller/Controller.js +0 -972
  114. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/Debugger/Debugger.css +0 -620
  115. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/Debugger/Debugger.html +0 -73
  116. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/Debugger/Debugger.js +0 -1548
  117. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/EventManager/EventManager.js +0 -338
  118. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/EventManager/EventManagerDebugger.js +0 -361
  119. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/Logger/Log.js +0 -10
  120. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/Logger/Logger.js +0 -146
  121. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/Router/Router.js +0 -721
  122. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/StylesManager/StylesManager.js +0 -78
  123. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/StylesManager/ThemeManager/ThemeManager.js +0 -84
  124. package/.worktrees/public-env-browser-exposure/Slice/Slice.js +0 -533
  125. package/.worktrees/public-env-browser-exposure/Slice/tests/bundle-v2-runtime-contract.test.js +0 -268
  126. package/.worktrees/public-env-browser-exposure/Slice/tests/public-env-runtime-accessors.test.js +0 -44
  127. package/.worktrees/public-env-browser-exposure/Slice/tests/router-loading-finally.test.js +0 -68
  128. package/.worktrees/public-env-browser-exposure/api/index.js +0 -286
  129. package/.worktrees/public-env-browser-exposure/api/middleware/securityMiddleware.js +0 -253
  130. package/.worktrees/public-env-browser-exposure/api/tests/public-env-resolver.test.js +0 -193
  131. package/.worktrees/public-env-browser-exposure/api/utils/publicEnvResolver.js +0 -117
  132. package/.worktrees/public-env-browser-exposure/package.json +0 -37
  133. package/.worktrees/public-env-browser-exposure/sliceConfig.schema.json +0 -109
  134. package/.worktrees/public-env-browser-exposure/src/App/index.html +0 -22
  135. package/.worktrees/public-env-browser-exposure/src/App/index.js +0 -23
  136. package/.worktrees/public-env-browser-exposure/src/App/style.css +0 -40
  137. package/.worktrees/public-env-browser-exposure/src/Components/AppComponents/HomePage/HomePage.css +0 -201
  138. package/.worktrees/public-env-browser-exposure/src/Components/AppComponents/HomePage/HomePage.html +0 -37
  139. package/.worktrees/public-env-browser-exposure/src/Components/AppComponents/HomePage/HomePage.js +0 -210
  140. package/.worktrees/public-env-browser-exposure/src/Components/AppComponents/Playground/Playground.css +0 -12
  141. package/.worktrees/public-env-browser-exposure/src/Components/AppComponents/Playground/Playground.html +0 -0
  142. package/.worktrees/public-env-browser-exposure/src/Components/AppComponents/Playground/Playground.js +0 -111
  143. package/.worktrees/public-env-browser-exposure/src/Components/Service/FetchManager/FetchManager.js +0 -133
  144. package/.worktrees/public-env-browser-exposure/src/Components/Service/IndexedDbManager/IndexedDbManager.js +0 -141
  145. package/.worktrees/public-env-browser-exposure/src/Components/Service/LocalStorageManager/LocalStorageManager.js +0 -45
  146. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Button/Button.css +0 -47
  147. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Button/Button.html +0 -5
  148. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Button/Button.js +0 -93
  149. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Card/Card.css +0 -68
  150. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Card/Card.html +0 -7
  151. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Card/Card.js +0 -107
  152. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Checkbox/Checkbox.css +0 -87
  153. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Checkbox/Checkbox.html +0 -8
  154. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Checkbox/Checkbox.js +0 -86
  155. package/.worktrees/public-env-browser-exposure/src/Components/Visual/CodeVisualizer/CodeVisualizer.css +0 -130
  156. package/.worktrees/public-env-browser-exposure/src/Components/Visual/CodeVisualizer/CodeVisualizer.html +0 -4
  157. package/.worktrees/public-env-browser-exposure/src/Components/Visual/CodeVisualizer/CodeVisualizer.js +0 -262
  158. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Details/Details.css +0 -70
  159. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Details/Details.html +0 -9
  160. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Details/Details.js +0 -76
  161. package/.worktrees/public-env-browser-exposure/src/Components/Visual/DropDown/DropDown.css +0 -60
  162. package/.worktrees/public-env-browser-exposure/src/Components/Visual/DropDown/DropDown.html +0 -5
  163. package/.worktrees/public-env-browser-exposure/src/Components/Visual/DropDown/DropDown.js +0 -63
  164. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Grid/Grid.css +0 -7
  165. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Grid/Grid.html +0 -1
  166. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Grid/Grid.js +0 -57
  167. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Icon/Icon.css +0 -510
  168. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Icon/Icon.html +0 -1
  169. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Icon/Icon.js +0 -89
  170. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Icon/slc.eot +0 -0
  171. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Icon/slc.json +0 -555
  172. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Icon/slc.styl +0 -507
  173. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Icon/slc.svg +0 -1485
  174. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Icon/slc.symbol.svg +0 -1059
  175. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Icon/slc.ttf +0 -0
  176. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Icon/slc.woff +0 -0
  177. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Icon/slc.woff2 +0 -0
  178. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Input/Input.css +0 -91
  179. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Input/Input.html +0 -4
  180. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Input/Input.js +0 -215
  181. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Layout/Layout.css +0 -0
  182. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Layout/Layout.html +0 -0
  183. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Layout/Layout.js +0 -49
  184. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Link/Link.css +0 -8
  185. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Link/Link.html +0 -1
  186. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Link/Link.js +0 -63
  187. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Loading/Loading.css +0 -56
  188. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Loading/Loading.html +0 -83
  189. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Loading/Loading.js +0 -38
  190. package/.worktrees/public-env-browser-exposure/src/Components/Visual/MultiRoute/MultiRoute.js +0 -93
  191. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Navbar/Navbar.css +0 -115
  192. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Navbar/Navbar.html +0 -44
  193. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Navbar/Navbar.js +0 -141
  194. package/.worktrees/public-env-browser-exposure/src/Components/Visual/NotFound/NotFound.css +0 -117
  195. package/.worktrees/public-env-browser-exposure/src/Components/Visual/NotFound/NotFound.html +0 -24
  196. package/.worktrees/public-env-browser-exposure/src/Components/Visual/NotFound/NotFound.js +0 -16
  197. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Route/Route.js +0 -93
  198. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Select/Select.css +0 -84
  199. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Select/Select.html +0 -8
  200. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Select/Select.js +0 -195
  201. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Switch/Switch.css +0 -76
  202. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Switch/Switch.html +0 -8
  203. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Switch/Switch.js +0 -102
  204. package/.worktrees/public-env-browser-exposure/src/Components/Visual/TreeItem/TreeItem.css +0 -36
  205. package/.worktrees/public-env-browser-exposure/src/Components/Visual/TreeItem/TreeItem.html +0 -1
  206. package/.worktrees/public-env-browser-exposure/src/Components/Visual/TreeItem/TreeItem.js +0 -126
  207. package/.worktrees/public-env-browser-exposure/src/Components/Visual/TreeView/TreeView.css +0 -8
  208. package/.worktrees/public-env-browser-exposure/src/Components/Visual/TreeView/TreeView.html +0 -1
  209. package/.worktrees/public-env-browser-exposure/src/Components/Visual/TreeView/TreeView.js +0 -48
  210. package/.worktrees/public-env-browser-exposure/src/Components/components.js +0 -27
  211. package/.worktrees/public-env-browser-exposure/src/Styles/sliceStyles.css +0 -34
  212. package/.worktrees/public-env-browser-exposure/src/Themes/Dark.css +0 -42
  213. package/.worktrees/public-env-browser-exposure/src/Themes/Light.css +0 -31
  214. package/.worktrees/public-env-browser-exposure/src/Themes/Slice.css +0 -47
  215. package/.worktrees/public-env-browser-exposure/src/images/Slice.js-logo.png +0 -0
  216. package/.worktrees/public-env-browser-exposure/src/images/favicon.ico +0 -0
  217. package/.worktrees/public-env-browser-exposure/src/images/im2/Slice.js-logo.png +0 -0
  218. package/.worktrees/public-env-browser-exposure/src/routes.js +0 -16
  219. package/.worktrees/public-env-browser-exposure/src/sliceConfig.json +0 -73
  220. package/.worktrees/public-env-browser-exposure/src/testing.js +0 -888
@@ -1,253 +0,0 @@
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
- };
@@ -1,193 +0,0 @@
1
- import test from 'node:test';
2
- import assert from 'node:assert/strict';
3
- import { mkdtemp, rm, writeFile } from 'node:fs/promises';
4
- import path from 'node:path';
5
- import { tmpdir } from 'node:os';
6
-
7
- const resolverModulePath = new URL('../utils/publicEnvResolver.js', import.meta.url);
8
-
9
- async function withTempEnvFile(contents, callback) {
10
- const dir = await mkdtemp(path.join(tmpdir(), 'slice-public-env-'));
11
- const envFilePath = path.join(dir, '.env');
12
-
13
- try {
14
- await writeFile(envFilePath, contents, 'utf8');
15
- await callback(envFilePath);
16
- } finally {
17
- await rm(dir, { recursive: true, force: true });
18
- }
19
- }
20
-
21
- test('resolvePublicEnv filters only SLICE_PUBLIC_ keys', async () => {
22
- const { resolvePublicEnv } = await import(resolverModulePath.href);
23
-
24
- await withTempEnvFile(
25
- ['SLICE_PUBLIC_FROM_FILE=file-visible', 'PRIVATE_KEY=hidden-file-value', 'SLICE_API_URL=hidden-file-api-url'].join('\n'),
26
- async (envFilePath) => {
27
- const payload = resolvePublicEnv({
28
- mode: 'development',
29
- envFilePath,
30
- processEnv: {
31
- SLICE_PUBLIC_FROM_PROCESS: 'process-visible',
32
- SECRET_TOKEN: 'hidden-process-token',
33
- NODE_ENV: 'development',
34
- },
35
- });
36
-
37
- assert.equal(payload.mode, 'development');
38
- assert.deepEqual(payload.env, {
39
- SLICE_PUBLIC_FROM_FILE: 'file-visible',
40
- SLICE_PUBLIC_FROM_PROCESS: 'process-visible',
41
- });
42
- }
43
- );
44
- });
45
-
46
- test('resolvePublicEnv uses process.env values over .env values', async () => {
47
- const { resolvePublicEnv } = await import(resolverModulePath.href);
48
-
49
- await withTempEnvFile('SLICE_PUBLIC_API_URL=https://from-file.example', async (envFilePath) => {
50
- const payload = resolvePublicEnv({
51
- mode: 'development',
52
- envFilePath,
53
- processEnv: {
54
- SLICE_PUBLIC_API_URL: 'https://from-process.example',
55
- },
56
- });
57
-
58
- assert.equal(payload.mode, 'development');
59
- assert.equal(payload.env.SLICE_PUBLIC_API_URL, 'https://from-process.example');
60
- });
61
- });
62
-
63
- test('resolvePublicEnv warns about suspicious public key names without exposing values', async () => {
64
- const { resolvePublicEnv } = await import(resolverModulePath.href);
65
- const warnings = [];
66
- const logger = {
67
- warn: (...args) => warnings.push(args.map(String).join(' ')),
68
- };
69
-
70
- await withTempEnvFile('SLICE_PUBLIC_API_KEY=super-secret-value', async (envFilePath) => {
71
- const payload = resolvePublicEnv({
72
- mode: 'development',
73
- envFilePath,
74
- processEnv: {},
75
- logger,
76
- });
77
-
78
- assert.equal(payload.mode, 'development');
79
- assert.equal(payload.env.SLICE_PUBLIC_API_KEY, 'super-secret-value');
80
- assert.equal(warnings.length, 1);
81
- assert.match(warnings[0], /SLICE_PUBLIC_API_KEY/);
82
- assert.doesNotMatch(warnings[0], /super-secret-value/);
83
- });
84
- });
85
-
86
- test('resolvePublicEnv warns once when suspicious key appears in .env and processEnv', async () => {
87
- const { resolvePublicEnv } = await import(resolverModulePath.href);
88
- const warnings = [];
89
- const logger = {
90
- warn: (...args) => warnings.push(args.map(String).join(' ')),
91
- };
92
-
93
- await withTempEnvFile('SLICE_PUBLIC_API_KEY=from-file-secret', async (envFilePath) => {
94
- const payload = resolvePublicEnv({
95
- mode: 'development',
96
- envFilePath,
97
- processEnv: {
98
- SLICE_PUBLIC_API_KEY: 'from-process-secret',
99
- },
100
- logger,
101
- });
102
-
103
- assert.equal(payload.env.SLICE_PUBLIC_API_KEY, 'from-process-secret');
104
- assert.equal(warnings.length, 1);
105
- assert.match(warnings[0], /SLICE_PUBLIC_API_KEY/);
106
- assert.doesNotMatch(warnings[0], /from-file-secret|from-process-secret/);
107
- });
108
- });
109
-
110
- test('resolvePublicEnv parses first key when .env starts with BOM', async () => {
111
- const { resolvePublicEnv } = await import(resolverModulePath.href);
112
-
113
- await withTempEnvFile('\uFEFFSLICE_PUBLIC_TITLE=Slice App', async (envFilePath) => {
114
- const payload = resolvePublicEnv({
115
- mode: 'development',
116
- envFilePath,
117
- processEnv: {},
118
- });
119
-
120
- assert.equal(payload.env.SLICE_PUBLIC_TITLE, 'Slice App');
121
- });
122
- });
123
-
124
- test('resolvePublicEnv strips inline comments for unquoted values', async () => {
125
- const { resolvePublicEnv } = await import(resolverModulePath.href);
126
-
127
- await withTempEnvFile('SLICE_PUBLIC_ORIGIN=https://slice.dev # dev origin', async (envFilePath) => {
128
- const payload = resolvePublicEnv({
129
- mode: 'development',
130
- envFilePath,
131
- processEnv: {},
132
- });
133
-
134
- assert.equal(payload.env.SLICE_PUBLIC_ORIGIN, 'https://slice.dev');
135
- });
136
- });
137
-
138
- test('resolvePublicEnv strips trailing comments after quoted values', async () => {
139
- const { resolvePublicEnv } = await import(resolverModulePath.href);
140
-
141
- await withTempEnvFile('SLICE_PUBLIC_X="value" # comment', async (envFilePath) => {
142
- const payload = resolvePublicEnv({
143
- mode: 'development',
144
- envFilePath,
145
- processEnv: {},
146
- });
147
-
148
- assert.equal(payload.env.SLICE_PUBLIC_X, 'value');
149
- });
150
- });
151
-
152
- test('createPublicEnvProvider caches in production and recomputes in development', async () => {
153
- const { createPublicEnvProvider } = await import(resolverModulePath.href);
154
-
155
- await withTempEnvFile('SLICE_PUBLIC_COUNTER=from-file', async (envFilePath) => {
156
- let processValue = 'first-value';
157
- const processEnv = {
158
- get SLICE_PUBLIC_COUNTER() {
159
- return processValue;
160
- },
161
- };
162
-
163
- const productionProvider = createPublicEnvProvider({
164
- mode: 'production',
165
- envFilePath,
166
- processEnv,
167
- });
168
- assert.equal(typeof productionProvider.getPayload, 'function');
169
-
170
- const firstProduction = productionProvider.getPayload();
171
- processValue = 'second-value';
172
- const secondProduction = productionProvider.getPayload();
173
-
174
- assert.equal(firstProduction.mode, 'production');
175
- assert.equal(firstProduction.env.SLICE_PUBLIC_COUNTER, 'first-value');
176
- assert.equal(secondProduction.env.SLICE_PUBLIC_COUNTER, 'first-value');
177
-
178
- const developmentProvider = createPublicEnvProvider({
179
- mode: 'development',
180
- envFilePath,
181
- processEnv,
182
- });
183
- assert.equal(typeof developmentProvider.getPayload, 'function');
184
-
185
- const firstDevelopment = developmentProvider.getPayload();
186
- processValue = 'third-value';
187
- const secondDevelopment = developmentProvider.getPayload();
188
-
189
- assert.equal(firstDevelopment.mode, 'development');
190
- assert.equal(firstDevelopment.env.SLICE_PUBLIC_COUNTER, 'second-value');
191
- assert.equal(secondDevelopment.env.SLICE_PUBLIC_COUNTER, 'third-value');
192
- });
193
- });
@@ -1,117 +0,0 @@
1
- import { readFileSync, existsSync } from 'node:fs';
2
-
3
- const PUBLIC_PREFIX = 'SLICE_PUBLIC_';
4
- const SUSPICIOUS_TERMS = ['SECRET', 'TOKEN', 'PASSWORD', 'PRIVATE', 'API_KEY', 'ACCESS_KEY', 'CREDENTIAL'];
5
-
6
- function parseEnvFile(envFilePath) {
7
- if (!envFilePath || !existsSync(envFilePath)) {
8
- return {};
9
- }
10
-
11
- const fileContent = readFileSync(envFilePath, 'utf8').replace(/^\uFEFF/, '');
12
- const parsed = {};
13
- const lines = fileContent.split(/\r?\n/);
14
-
15
- for (const rawLine of lines) {
16
- const line = rawLine.trim();
17
-
18
- if (!line || line.startsWith('#')) {
19
- continue;
20
- }
21
-
22
- const equalsIndex = line.indexOf('=');
23
- if (equalsIndex === -1) {
24
- continue;
25
- }
26
-
27
- let key = line.slice(0, equalsIndex).trim();
28
- if (!key) {
29
- continue;
30
- }
31
-
32
- if (key.startsWith('export ')) {
33
- key = key.slice('export '.length).trim();
34
- }
35
-
36
- let value = line.slice(equalsIndex + 1).trim();
37
-
38
- const quotedWithOptionalCommentMatch = value.match(/^(["'])(.*?)\1(?:\s+#.*)?$/);
39
-
40
- if (quotedWithOptionalCommentMatch) {
41
- value = quotedWithOptionalCommentMatch[2];
42
- } else {
43
- value = value.replace(/\s+#.*$/, '').trimEnd();
44
- }
45
-
46
- parsed[key] = value;
47
- }
48
-
49
- return parsed;
50
- }
51
-
52
- function warnSuspiciousKey(key, logger, warnedKeys) {
53
- const upperKey = key.toUpperCase();
54
- const isSuspicious = SUSPICIOUS_TERMS.some((term) => upperKey.includes(term));
55
-
56
- if (isSuspicious && !warnedKeys.has(key) && logger && typeof logger.warn === 'function') {
57
- logger.warn(`[slice-env] Suspicious public environment key detected: ${key}`);
58
- warnedKeys.add(key);
59
- }
60
- }
61
-
62
- function buildPublicPayload({ envFromFile, processEnv, logger }) {
63
- const env = {};
64
- const warnedKeys = new Set();
65
-
66
- for (const [key, value] of Object.entries(envFromFile)) {
67
- if (key.startsWith(PUBLIC_PREFIX)) {
68
- env[key] = String(value ?? '');
69
- warnSuspiciousKey(key, logger, warnedKeys);
70
- }
71
- }
72
-
73
- for (const [key, value] of Object.entries(processEnv || {})) {
74
- if (key.startsWith(PUBLIC_PREFIX)) {
75
- env[key] = String(value ?? '');
76
- warnSuspiciousKey(key, logger, warnedKeys);
77
- }
78
- }
79
-
80
- return env;
81
- }
82
-
83
- export function resolvePublicEnv({ mode, envFilePath, processEnv = process.env, logger = console }) {
84
- const envFromFile = parseEnvFile(envFilePath);
85
- const env = buildPublicPayload({
86
- envFromFile,
87
- processEnv,
88
- logger,
89
- });
90
-
91
- return {
92
- mode,
93
- env,
94
- };
95
- }
96
-
97
- export function createPublicEnvProvider({ mode, envFilePath, processEnv = process.env, logger = console }) {
98
- if (mode === 'production') {
99
- let cachedPayload;
100
-
101
- return {
102
- getPayload() {
103
- if (!cachedPayload) {
104
- cachedPayload = resolvePublicEnv({ mode, envFilePath, processEnv, logger });
105
- }
106
-
107
- return cachedPayload;
108
- },
109
- };
110
- }
111
-
112
- return {
113
- getPayload() {
114
- return resolvePublicEnv({ mode, envFilePath, processEnv, logger });
115
- },
116
- };
117
- }
@@ -1,37 +0,0 @@
1
- {
2
- "name": "slicejs-web-framework",
3
- "version": "3.0.0",
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
- }