gina 0.1.1-alpha.17 → 0.1.1-alpha.171

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 (356) hide show
  1. package/AUTHORS +2 -1
  2. package/LICENSE +1 -1
  3. package/README-4Contributors.md +30 -0
  4. package/README.md +202 -32
  5. package/bin/cli +165 -68
  6. package/bin/cli-debug +49 -18
  7. package/bin/cmd +40 -18
  8. package/bin/gina +48 -37
  9. package/{framework/v0.1.1-alpha.17/core/template/command/gina.bat.tpl → bin/gina.bat} +0 -0
  10. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/AUTHORS +0 -0
  11. package/framework/{v0.1.1-alpha.17/lib/inherits → v0.1.1-alpha.171}/LICENSE +1 -1
  12. package/framework/v0.1.1-alpha.171/VERSION +1 -0
  13. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/asset/html/nolayout.html +0 -0
  14. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/asset/html/static.html +0 -0
  15. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/asset/img/android-chrome-192x192.png +0 -0
  16. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/asset/img/android-chrome-512x512.png +0 -0
  17. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/asset/img/apple-touch-icon.png +0 -0
  18. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/asset/img/favicon-16x16.png +0 -0
  19. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/asset/img/favicon-32x32.png +0 -0
  20. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/asset/img/favicon.ico +0 -0
  21. package/framework/{v0.1.1-alpha.17/core/asset/js/plugin/readme.md → v0.1.1-alpha.171/core/asset/plugin/README.md} +31 -9
  22. package/framework/v0.1.1-alpha.171/core/asset/plugin/dist/vendor/gina/css/gina.min.css +1 -0
  23. package/framework/v0.1.1-alpha.171/core/asset/plugin/dist/vendor/gina/css/gina.min.css.map +1 -0
  24. package/framework/v0.1.1-alpha.171/core/asset/plugin/dist/vendor/gina/html/toolbar.html +251 -0
  25. package/framework/{v0.1.1-alpha.17/core/asset/js/plugin/dist → v0.1.1-alpha.171/core/asset/plugin/dist/vendor/gina/js}/gina.js +3786 -3007
  26. package/framework/v0.1.1-alpha.171/core/asset/plugin/dist/vendor/gina/js/gina.min.js +756 -0
  27. package/framework/v0.1.1-alpha.171/core/asset/plugin/dist/vendor/gina/js/gina.min.js.map +8 -0
  28. package/framework/v0.1.1-alpha.171/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +5 -0
  29. package/framework/v0.1.1-alpha.171/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.map +8 -0
  30. package/framework/{v0.1.1-alpha.17/core/asset/js → v0.1.1-alpha.171/core/asset}/plugin/uuid.json +0 -0
  31. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/config.js +95 -39
  32. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/connectors/couchbase/index.js +332 -223
  33. package/framework/v0.1.1-alpha.171/core/connectors/couchbase/lib/connector.js +22 -0
  34. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/connectors/couchbase/lib/connector.v2.js +51 -51
  35. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/connectors/couchbase/lib/connector.v3.js +51 -51
  36. package/framework/v0.1.1-alpha.171/core/connectors/couchbase/lib/connector.v4.js +384 -0
  37. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/connectors/couchbase/lib/n1ql.js +3 -2
  38. package/framework/v0.1.1-alpha.171/core/connectors/couchbase/lib/session-store.js +22 -0
  39. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/connectors/couchbase/lib/session-store.v2.js +0 -0
  40. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/connectors/couchbase/lib/session-store.v3.js +12 -12
  41. package/framework/v0.1.1-alpha.171/core/connectors/couchbase/lib/session-store.v4.js +361 -0
  42. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/controller/controller.framework.js +0 -0
  43. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/controller/controller.js +787 -743
  44. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/controller/index.js +0 -0
  45. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/deps/busboy/.travis.yml +0 -0
  46. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/deps/busboy/LICENSE +0 -0
  47. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/deps/busboy/README.md +0 -0
  48. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/deps/busboy/deps/encoding/encoding-indexes.js +0 -0
  49. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/deps/busboy/deps/encoding/encoding.js +0 -0
  50. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/deps/busboy/lib/main.js +0 -0
  51. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/deps/busboy/lib/types/multipart.js +0 -0
  52. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/deps/busboy/lib/types/urlencoded.js +0 -0
  53. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/deps/busboy/lib/utils.js +0 -0
  54. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/deps/busboy/package.json +0 -0
  55. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/deps/swig-client/swig-2.0.0.min.js +0 -0
  56. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/dev/index.js +1 -1
  57. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/dev/lib/class.js +1 -1
  58. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/dev/lib/factory.js +2 -2
  59. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/dev/lib/tools.js +0 -0
  60. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/gna.js +13 -9
  61. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/locales/README.md +5 -0
  62. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/locales/currency.json +0 -0
  63. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/locales/dist/language/en.json +0 -0
  64. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/locales/dist/language/fr.json +0 -0
  65. package/framework/v0.1.1-alpha.171/core/locales/dist/region/en.json +5727 -0
  66. package/framework/v0.1.1-alpha.171/core/locales/dist/region/fr.json +11452 -0
  67. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/locales/index.js +2 -2
  68. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/locales/src/make.js +39 -41
  69. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/locales/src/resources/currency.csv +0 -0
  70. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/locales/src/resources/region.csv +0 -0
  71. package/framework/v0.1.1-alpha.171/core/locales/src/resources/region.mapping.json +43 -0
  72. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/mime.types +0 -0
  73. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/model/entity.js +87 -67
  74. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/model/index.js +16 -16
  75. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/model/template/entityFactory.js +1 -1
  76. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/model/template/index.js +15 -14
  77. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/plugins/README.md +0 -0
  78. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/plugins/index.js +1 -1
  79. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/plugins/lib/file/README.md +0 -0
  80. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/plugins/lib/file/build.json +0 -0
  81. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/plugins/lib/file/package.json +1 -1
  82. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/plugins/lib/intl/README.md +0 -0
  83. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/plugins/lib/intl/build.json +0 -0
  84. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/plugins/lib/intl/package.json +1 -1
  85. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/plugins/lib/intl/src/main.js +5 -5
  86. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/plugins/lib/storage/README.md +0 -0
  87. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/plugins/lib/storage/build.json +0 -0
  88. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/plugins/lib/storage/package.json +1 -1
  89. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/plugins/lib/storage/src/main.js +4 -4
  90. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/plugins/lib/validator/README.md +0 -0
  91. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/plugins/lib/validator/build.json +0 -0
  92. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/plugins/lib/validator/package.json +1 -1
  93. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/plugins/lib/validator/src/form-validator.js +397 -296
  94. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/plugins/lib/validator/src/main.js +1279 -1256
  95. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/router.js +95 -79
  96. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/server.express.js +0 -0
  97. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/server.isaac.js +118 -109
  98. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/server.js +230 -57
  99. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/status.codes +0 -0
  100. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/template/boilerplate/bundle/config/app.json +0 -0
  101. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/template/boilerplate/bundle/config/routing.json +0 -0
  102. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/template/boilerplate/bundle/config/settings.json +0 -0
  103. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/template/boilerplate/bundle/config/settings.server.json +4 -4
  104. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/template/boilerplate/bundle/config/templates.json +4 -4
  105. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/template/boilerplate/bundle/controllers/controller.content.js +1 -1
  106. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  107. package/framework/v0.1.1-alpha.171/core/template/boilerplate/bundle/controllers/setup.js +111 -0
  108. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/template/boilerplate/bundle/index.js +13 -1
  109. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  110. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  111. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  112. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  113. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  114. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/template/boilerplate/bundle_public/readme.md +0 -0
  115. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  116. package/framework/v0.1.1-alpha.171/core/template/boilerplate/bundle_templates/html/content/homepage.html +8 -0
  117. package/framework/v0.1.1-alpha.171/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +11 -0
  118. package/framework/v0.1.1-alpha.171/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +8 -0
  119. package/framework/{v0.1.1-alpha.17/core/template/boilerplate/bundle_templates/html/layout → v0.1.1-alpha.171/core/template/boilerplate/bundle_templates/html/layouts}/main.html +10 -3
  120. package/framework/v0.1.1-alpha.171/core/template/command/gina.bat.tpl +8 -0
  121. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/template/command/gina.tpl +4 -4
  122. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/template/conf/env.json +11 -0
  123. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/template/conf/manifest.json +0 -0
  124. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/template/conf/package.json +1 -1
  125. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/template/conf/settings.json +0 -0
  126. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/template/conf/statics.json +3 -3
  127. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/template/conf/templates.json +2 -2
  128. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/template/error/client/json/401.json +0 -0
  129. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/template/error/client/json/403.json +0 -0
  130. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/template/error/client/json/404.json +0 -0
  131. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/template/error/server/html/50x.html +0 -0
  132. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/template/error/server/json/500.json +0 -0
  133. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/template/error/server/json/503.json +0 -0
  134. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/core/template/extensions/logger/config.json +0 -0
  135. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/helpers/console.js +3 -3
  136. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/helpers/context.js +146 -6
  137. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/helpers/dateFormat.js +9 -7
  138. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/helpers/index.js +13 -8
  139. package/framework/v0.1.1-alpha.171/helpers/json/LICENSE +9 -0
  140. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/helpers/json/README.md +0 -0
  141. package/framework/{v0.1.1-alpha.17/helpers/plugins → v0.1.1-alpha.171/helpers/json}/package.json +2 -2
  142. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/helpers/json/src/main.js +25 -25
  143. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/helpers/path.js +163 -96
  144. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/helpers/plugins/README.md +0 -0
  145. package/framework/{v0.1.1-alpha.17/helpers/json → v0.1.1-alpha.171/helpers/plugins}/package.json +2 -2
  146. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/helpers/plugins/src/api-error.js +23 -23
  147. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/helpers/plugins/src/main.js +3 -3
  148. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/helpers/prototypes.js +46 -38
  149. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/helpers/task.js +21 -14
  150. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/helpers/text.js +2 -2
  151. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/archiver/README.md +0 -0
  152. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/archiver/build.json +0 -0
  153. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/archiver/package.json +1 -1
  154. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/archiver/src/dep/jszip.min.js +3 -3
  155. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/archiver/src/main.js +168 -168
  156. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/aliases.json +4 -1
  157. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/bundle/add.js +43 -17
  158. package/framework/v0.1.1-alpha.171/lib/cmd/bundle/arguments.json +6 -0
  159. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/bundle/copy.js +0 -0
  160. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/bundle/cp.js +0 -0
  161. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/bundle/help.js +0 -0
  162. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/bundle/help.txt +2 -2
  163. package/framework/v0.1.1-alpha.171/lib/cmd/bundle/list.js +176 -0
  164. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/bundle/remove.js +22 -22
  165. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/bundle/rename.js +0 -0
  166. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/bundle/restart.js +0 -0
  167. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/bundle/rm.js +0 -0
  168. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/bundle/start.js +264 -46
  169. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/bundle/status.js +0 -0
  170. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/bundle/stop.js +93 -74
  171. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/env/add.js +0 -0
  172. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/env/get.js +0 -0
  173. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/env/help.js +0 -0
  174. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/env/help.txt +0 -0
  175. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/env/link-dev.js +0 -0
  176. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/env/list.js +20 -4
  177. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/env/remove.js +0 -0
  178. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/env/rm.js +0 -0
  179. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/env/set.js +0 -0
  180. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/env/unset.js +0 -0
  181. package/framework/{v0.1.1-alpha.17/lib/cmd/scope → v0.1.1-alpha.171/lib/cmd/env}/use.js +21 -1
  182. package/framework/v0.1.1-alpha.171/lib/cmd/framework/build.js +85 -0
  183. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/framework/dot.js +0 -0
  184. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/framework/get.js +0 -0
  185. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/framework/help.js +0 -0
  186. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/framework/help.txt +0 -0
  187. package/framework/v0.1.1-alpha.171/lib/cmd/framework/init.js +798 -0
  188. package/framework/v0.1.1-alpha.171/lib/cmd/framework/link-node-modules.js +86 -0
  189. package/framework/v0.1.1-alpha.171/lib/cmd/framework/link.js +110 -0
  190. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/framework/msg.json +0 -0
  191. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/framework/open.js +15 -0
  192. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/framework/restart.js +58 -26
  193. package/framework/v0.1.1-alpha.171/lib/cmd/framework/set.js +264 -0
  194. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/framework/start.js +43 -20
  195. package/framework/v0.1.1-alpha.171/lib/cmd/framework/status.js +138 -0
  196. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/framework/stop.js +44 -28
  197. package/framework/v0.1.1-alpha.171/lib/cmd/framework/tail.js +299 -0
  198. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/framework/update.js +0 -0
  199. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/framework/version.js +12 -3
  200. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/gina-dev.1.md +0 -0
  201. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/gina-framework.1.md +0 -0
  202. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/gina.1.md +0 -0
  203. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/helper.js +74 -5
  204. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/index.js +23 -23
  205. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/msg.json +0 -0
  206. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/port/help.js +0 -0
  207. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/port/help.txt +0 -0
  208. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/port/inc/scan.js +32 -17
  209. package/framework/v0.1.1-alpha.171/lib/cmd/port/list.js +459 -0
  210. package/framework/v0.1.1-alpha.171/lib/cmd/port/reset.js +426 -0
  211. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/port/set.js +0 -0
  212. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/project/add.js +146 -122
  213. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/project/arguments.json +0 -0
  214. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/project/build.js +0 -0
  215. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/project/help.js +0 -0
  216. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/project/help.txt +0 -0
  217. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/project/import.js +0 -0
  218. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/project/list.js +16 -2
  219. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/project/move.js +0 -0
  220. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/project/remove.js +17 -17
  221. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/project/rename.js +0 -0
  222. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/project/restart.js +0 -0
  223. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/project/rm.js +0 -0
  224. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/project/start.js +0 -0
  225. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/project/status.js +0 -0
  226. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/project/stop.js +0 -0
  227. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/protocol/help.js +0 -0
  228. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/protocol/help.txt +0 -0
  229. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/protocol/list.js +0 -0
  230. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/protocol/set.js +239 -201
  231. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/scope/help.js +0 -0
  232. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/scope/help.txt +0 -0
  233. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/scope/link-local.js +0 -0
  234. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/scope/list.js +24 -8
  235. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/scope/remove.js +0 -0
  236. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/scope/rm.js +0 -0
  237. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/scope/set.js +0 -0
  238. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/scope/unset.js +0 -0
  239. package/framework/{v0.1.1-alpha.17/lib/cmd/env → v0.1.1-alpha.171/lib/cmd/scope}/use.js +0 -0
  240. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cmd/view/add.js +34 -9
  241. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/collection/README.md +0 -0
  242. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/collection/build.json +0 -0
  243. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/collection/package.json +1 -1
  244. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/collection/src/main.js +241 -241
  245. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/config.js +31 -30
  246. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cron/README.md +0 -0
  247. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cron/package.json +1 -1
  248. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/cron/src/main.js +10 -9
  249. package/framework/v0.1.1-alpha.171/lib/domain/LICENSE +9 -0
  250. package/framework/v0.1.1-alpha.171/lib/domain/README.md +46 -0
  251. package/framework/v0.1.1-alpha.171/lib/domain/dist/public_suffix_list.dat +14186 -0
  252. package/framework/{v0.1.1-alpha.17/lib/routing/README.md → v0.1.1-alpha.171/lib/domain/exemples/backend.js} +0 -0
  253. package/framework/{v0.1.1-alpha.17/lib/routing/build.json → v0.1.1-alpha.171/lib/domain/exemples/frontend.html} +0 -0
  254. package/framework/v0.1.1-alpha.171/lib/domain/package.json +20 -0
  255. package/framework/v0.1.1-alpha.171/lib/domain/src/main.js +442 -0
  256. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/generator/index.js +4 -4
  257. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/index.js +3 -2
  258. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171/lib/inherits}/LICENSE +1 -1
  259. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/inherits/README.md +2 -2
  260. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/inherits/example/inheriting_eventemitter.js +0 -0
  261. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/inherits/example/protected_inheritance.js +0 -0
  262. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/inherits/example/simple_inheritance.js +0 -0
  263. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/inherits/example/super_attribute_overridden_by_child_on_init.js +0 -0
  264. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/inherits/package.json +3 -4
  265. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/inherits/src/main.js +3 -3
  266. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/logger/README.md +0 -0
  267. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/logger/package.json +2 -2
  268. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/logger/src/containers/default/index.js +13 -2
  269. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/logger/src/containers/file/index.js +105 -14
  270. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  271. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  272. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/logger/src/containers/mq/index.js +7 -1
  273. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/logger/src/containers/mq/listener.js +16 -14
  274. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/logger/src/containers/mq/speaker.js +32 -3
  275. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/logger/src/helper.js +21 -1
  276. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/logger/src/main.js +27 -7
  277. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/math/index.js +9 -9
  278. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/merge/README.md +2 -2
  279. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/merge/example/merge.js +0 -0
  280. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/merge/example/merge_2_literal objects.js +0 -0
  281. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/merge/example/merge_and_preserve_first.js +0 -0
  282. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/merge/package.json +1 -1
  283. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/merge/src/main.js +0 -0
  284. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/model.js +10 -10
  285. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/proc.js +87 -49
  286. package/framework/{v0.1.1-alpha.17/lib/swig-filters → v0.1.1-alpha.171/lib/routing}/README.md +0 -0
  287. package/framework/{v0.1.1-alpha.17/lib/url/README.md → v0.1.1-alpha.171/lib/routing/build.json} +0 -0
  288. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/routing/package.json +1 -1
  289. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/routing/src/main.js +270 -264
  290. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/session-store.js +6 -6
  291. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/shell.js +3 -3
  292. package/framework/v0.1.1-alpha.171/lib/swig-filters/README.md +0 -0
  293. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/swig-filters/package.json +1 -1
  294. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/swig-filters/src/main.js +55 -52
  295. package/framework/v0.1.1-alpha.171/lib/url/README.md +0 -0
  296. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/url/index.js +0 -0
  297. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/url/mocks.json +0 -0
  298. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/url/routing.json +0 -0
  299. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/url/test.js +0 -0
  300. package/framework/{v0.1.1-alpha.17 → v0.1.1-alpha.171}/lib/validator.js +2 -2
  301. package/framework/v0.1.1-alpha.171/package.json +14 -0
  302. package/package.json +33 -24
  303. package/resources/home/main.json +44 -1
  304. package/resources/home/settings.json +7 -0
  305. package/resources/home/user/extensions/logger/default/config.json +1 -1
  306. package/resources/package.json.template +29 -18
  307. package/script/post_install.js +411 -123
  308. package/script/post_publish.js +186 -0
  309. package/script/pre_install.js +425 -77
  310. package/script/prepare_version.js +275 -98
  311. package/services/.gna/67fdf1b224a2ed5597e63d4b64283834468e05e3.txt +0 -0
  312. package/services/.gna/arch +1 -0
  313. package/services/.gna/locals.json +14 -0
  314. package/services/.gna/platform +1 -0
  315. package/services/configure +6 -0
  316. package/services/env.json +10 -0
  317. package/services/manifest.json +18 -0
  318. package/services/package.json +11 -0
  319. package/services/src/proxy/config/app.json +6 -0
  320. package/services/src/proxy/config/routing.json +11 -0
  321. package/services/src/proxy/config/settings.json +9 -0
  322. package/services/src/proxy/config/settings.server.json +31 -0
  323. package/services/src/proxy/config/statics.json +3 -0
  324. package/services/src/proxy/controllers/controller.content.js +58 -0
  325. package/services/src/proxy/controllers/controller.js +30 -0
  326. package/{framework/v0.1.1-alpha.17/core/template/boilerplate/bundle → services/src/proxy}/controllers/setup.js +14 -14
  327. package/services/src/proxy/index.js +31 -0
  328. package/services/src/proxy/lib/domain/README.md +48 -0
  329. package/services/src/proxy/lib/domain/src/config/public_suffix_list.dat +14186 -0
  330. package/utils/helper.js +236 -185
  331. package/utils/prototypes.js +9 -9
  332. package/utils/prototypes.json_clone.js +36 -35
  333. package/doc/framework/cli/doc.json +0 -9
  334. package/doc/framework/index.md +0 -60
  335. package/framework/v0.1.1-alpha.17/VERSION +0 -1
  336. package/framework/v0.1.1-alpha.17/core/asset/js/plugin/dist/gina.js.map +0 -56
  337. package/framework/v0.1.1-alpha.17/core/asset/js/plugin/dist/gina.min.css +0 -1
  338. package/framework/v0.1.1-alpha.17/core/asset/js/plugin/dist/gina.min.css.map +0 -1
  339. package/framework/v0.1.1-alpha.17/core/asset/js/plugin/dist/gina.min.js +0 -736
  340. package/framework/v0.1.1-alpha.17/core/asset/js/plugin/dist/gina.min.js.map +0 -56
  341. package/framework/v0.1.1-alpha.17/core/asset/js/plugin/dist/gina.onload.min.js +0 -5
  342. package/framework/v0.1.1-alpha.17/core/asset/js/plugin/dist/gina.onload.min.js.map +0 -8
  343. package/framework/v0.1.1-alpha.17/core/connectors/couchbase/lib/connector.js +0 -20
  344. package/framework/v0.1.1-alpha.17/core/connectors/couchbase/lib/session-store.js +0 -21
  345. package/framework/v0.1.1-alpha.17/core/locales/dist/region/en.json +0 -9492
  346. package/framework/v0.1.1-alpha.17/core/locales/dist/region/fr.json +0 -9492
  347. package/framework/v0.1.1-alpha.17/core/locales/src/resources/region.mapping.json +0 -28
  348. package/framework/v0.1.1-alpha.17/core/template/boilerplate/bundle_templates/html/homepage.html +0 -4
  349. package/framework/v0.1.1-alpha.17/lib/cmd/bundle/arguments.json +0 -4
  350. package/framework/v0.1.1-alpha.17/lib/cmd/bundle/list.js +0 -129
  351. package/framework/v0.1.1-alpha.17/lib/cmd/framework/init.js +0 -514
  352. package/framework/v0.1.1-alpha.17/lib/cmd/framework/set.js +0 -161
  353. package/framework/v0.1.1-alpha.17/lib/cmd/framework/status.js +0 -72
  354. package/framework/v0.1.1-alpha.17/lib/cmd/framework/tail.js +0 -183
  355. package/framework/v0.1.1-alpha.17/lib/cmd/port/list.js +0 -176
  356. package/framework/v0.1.1-alpha.17/package.json +0 -14
@@ -15,7 +15,7 @@ const swig = require( _(GINA_FRAMEWORK_DIR +'/node_modules/swig', true)
15
15
  var Config = require('./config');
16
16
  var Router = require('./router');
17
17
  var lib = require('./../lib');
18
- var routingUtils = lib.routing;
18
+ var routingLib = lib.routing;
19
19
  var inherits = lib.inherits;
20
20
  var merge = lib.merge;
21
21
  var Proc = lib.Proc;
@@ -227,13 +227,56 @@ function Server(options) {
227
227
  })
228
228
  });
229
229
  } catch (err) {
230
- console.emerg(sslDetails +'\n'+ err.stack);
231
- return;
230
+ if (!sslDetails) {
231
+ throw new Error('DNS issue ? Did you check your `/etc/hosts` or your DNS configuration ?\n'+ err.stack);
232
+ }
233
+ throw new Error(sslDetails +'\n'+ err.stack);
232
234
  }
233
235
 
234
236
 
235
237
  const failed = !sslDetails.valid;
236
238
  const humanView = JSON.stringify(sslDetails, null, ' ');
239
+
240
+ // Wildcard exception - See https://github.com/dyaa/ssl-checker/issues/381
241
+ // Date of the test: 2022-12-18T00:00:00.000Z
242
+ // container-87546.dev.sample.app -> not valid when it should return true.
243
+ // {
244
+ // "daysRemaining": 290,
245
+ // "valid": false,
246
+ // "validFrom": "2022-10-03T00:00:00.000Z",
247
+ // "validTo": "2023-10-03T23:59:59.000Z",
248
+ // "validFor": [
249
+ // "*.sample.app",
250
+ // "sample.app"
251
+ // ]
252
+ // }
253
+
254
+ const isHandleByWildcardCert = function(endpoint, hv) {
255
+ var isAllowed = false;
256
+ const start = new Date(hv.validFrom).format('longIsoDateTime');
257
+ const end = new Date(hv.validTo).format('longIsoDateTime');
258
+ const today = new Date().format('longIsoDateTime');
259
+ const allowed = hv.validFor;
260
+
261
+ for (let i=0, len=allowed.length; i<len; ++i ) {
262
+ // skip if not a wildcard
263
+ if ( ! /^[*]\./.test(allowed[i]) ) continue;
264
+
265
+ let re = new RegExp( allowed[i].replace(/^[*]/, '')+'$' );
266
+ if ( ! re.test(endpoint) ) continue;
267
+
268
+ if ( today >= start && today < end) {
269
+ isAllowed = true;
270
+ break
271
+ }
272
+ }
273
+ return isAllowed;
274
+ }
275
+ if ( failed && Array.isArray(sslDetails.validFor) && isHandleByWildcardCert(endpoint, sslDetails) ) {
276
+ return;
277
+ }
278
+
279
+
237
280
  if (failed) {
238
281
  if (sslDetails.daysRemaining > -1) {
239
282
  console.emerg(`[Certificate] ${endpoint} : It is like there is a problem with your CA certificate${'\n'} ${humanView}`);
@@ -1128,7 +1171,12 @@ function Server(options) {
1128
1171
 
1129
1172
  var headerValue = null;
1130
1173
  for (var h in resHeaders) {
1131
- if (!response.headersSent) {
1174
+ if (
1175
+ // typeof(response.finished) != 'undefined' && !response.finished
1176
+ // || typeof(response.writableEnded) != 'undefined' && !response.writableEnded
1177
+ // ||
1178
+ !response.headersSent
1179
+ ) {
1132
1180
  // handles multiple origins
1133
1181
  if ( /access\-control\-allow\-origin/i.test(h) ) { // re.test(resHeaders[h]
1134
1182
  if (sameOrigin) {
@@ -1151,13 +1199,26 @@ function Server(options) {
1151
1199
  origin = sameOrigin;
1152
1200
 
1153
1201
 
1154
- response.setHeader(h, origin);
1202
+ // if (
1203
+ // typeof(response.finished) != 'undefined' && !response.finished
1204
+ // || typeof(response.writableEnded) != 'undefined' && !response.writableEnded
1205
+ // || !response.headersSent
1206
+ // ) {
1207
+ response.setHeader(h, origin);
1208
+ // }
1209
+
1155
1210
  }
1156
1211
  sameOrigin = false;
1157
1212
  } else {
1158
1213
  headerValue = resHeaders[h];
1159
1214
  try {
1160
- response.setHeader(h, headerValue)
1215
+ // if (
1216
+ // typeof(response.finished) != 'undefined' && !response.finished
1217
+ // || typeof(response.writableEnded) != 'undefined' && !response.writableEnded
1218
+ // || !response.headersSent
1219
+ // ) {
1220
+ response.setHeader(h, headerValue)
1221
+ // }
1161
1222
  } catch (headerError) {
1162
1223
  console.error(headerError)
1163
1224
  }
@@ -1178,11 +1239,88 @@ function Server(options) {
1178
1239
  }
1179
1240
 
1180
1241
  this.onHttp2Stream = function(stream, headers, response) {
1242
+ var header = null
1243
+ , isWebroot = false
1244
+ , pathname = null
1245
+ , asset = null
1246
+ , assets = this._options.template.assets
1247
+ , conf = this._options.conf
1248
+ , cacheless = conf.cacheless
1249
+ ;
1250
+
1251
+
1252
+ if (
1253
+ headers[':path'] == '/'
1254
+ || headers[':path'] == this._options.conf.server.webroot
1255
+ ) {
1256
+
1257
+ if (
1258
+ this._options.conf.server.webroot != headers[':path']
1259
+ && this._options.conf.server.webrootAutoredirect
1260
+ || headers[':path'] == this._options.conf.server.webroot
1261
+ && this._options.conf.server.webrootAutoredirect
1262
+ ) {
1263
+ isWebroot = true
1264
+ }
1265
+ }
1266
+
1267
+ var url = (isWebroot) ? this._referrer : headers[':path'];
1268
+
1269
+ var hanlersPath = conf.handlersPath
1270
+ , isHandler = ( new RegExp('^'+ hanlersPath).test(assets[ url ].filename) ) ? true: false
1271
+ ;
1181
1272
 
1182
1273
  if (!stream.pushAllowed) {
1183
- //header = merge({ ':status': 200 }, response.getHeaders());
1184
- stream.respond({ ':status': 200 });
1185
- stream.end();
1274
+ asset = {
1275
+ url : url,
1276
+ filename : assets[ url ].filename,
1277
+ file : null,
1278
+ isAvailable : assets[ url ].isAvailable,
1279
+ mime : assets[ url ].mime,
1280
+ encoding : conf.encoding,
1281
+ isBinary : assets[ url ].isBinary,
1282
+ isHandler : assets[ url ].isHandler
1283
+ };
1284
+ header = merge({ ':status': 200 }, response.getHeaders());
1285
+ header['content-type'] = ( !/charset/.test(asset.mime ) ) ? asset.mime + '; charset='+ asset.encoding : asset.mime;
1286
+ header = completeHeaders(header, local.request, response);
1287
+ if (asset.isBinary || asset.isHandler ) {
1288
+
1289
+
1290
+ if (asset.isHandler) {
1291
+ // adding handler `gina.ready(...)` wrapper
1292
+ var file = null;
1293
+ if ( !fs.existsSync(asset.filename) ) {
1294
+ throwError({stream: stream}, 404, 'Page not found: \n' + headers[':path']);
1295
+ return;
1296
+ }
1297
+
1298
+ if (!assets[ url ].file) {
1299
+ file = fs.readFileSync(asset.filename, asset.encoding).toString();
1300
+ file = '(gina.ready(function onGinaReady($){\n'+ file + '\n},window["originalContext"]));';
1301
+ this._options.template.assets[ headers[':path'] ].file = file;
1302
+ } else {
1303
+ file = assets[ url ].file;
1304
+ }
1305
+
1306
+ // header['content-length'] = fs.statSync(file).size;
1307
+ stream.respond(header);
1308
+ stream.end(file);
1309
+
1310
+ return;
1311
+ }
1312
+
1313
+ header['content-length'] = fs.statSync(asset.filename).size;
1314
+ stream.respondWithFile(
1315
+ asset.filename
1316
+ , header
1317
+ //, { onError }
1318
+ );
1319
+ } else {
1320
+ stream.respond(header);
1321
+ stream.end();
1322
+ }
1323
+
1186
1324
  return;
1187
1325
  }
1188
1326
 
@@ -1193,18 +1331,18 @@ function Server(options) {
1193
1331
  return;
1194
1332
  }
1195
1333
 
1196
- var header = null, isWebroot = false, pathname = null;
1197
1334
  if (
1198
- headers[':path'] == '/'
1199
- || headers[':path'] == this._options.conf.server.webroot
1335
+ // headers[':path'] == '/'
1336
+ // || headers[':path'] == this._options.conf.server.webroot
1337
+ /^true$/i.test(isWebroot)
1200
1338
  ) {
1201
1339
 
1202
- if (
1203
- this._options.conf.server.webroot != headers[':path']
1204
- && this._options.conf.server.webrootAutoredirect
1205
- || headers[':path'] == this._options.conf.server.webroot
1206
- && this._options.conf.server.webrootAutoredirect
1207
- ) {
1340
+ // if (
1341
+ // this._options.conf.server.webroot != headers[':path']
1342
+ // && this._options.conf.server.webrootAutoredirect
1343
+ // || headers[':path'] == this._options.conf.server.webroot
1344
+ // && this._options.conf.server.webrootAutoredirect
1345
+ // ) {
1208
1346
 
1209
1347
  header = {
1210
1348
  ':status': 301
@@ -1220,9 +1358,10 @@ function Server(options) {
1220
1358
  stream.respond(header);
1221
1359
  stream.end();
1222
1360
  return;
1223
- } else {
1224
- isWebroot = true;
1225
- }
1361
+ // }
1362
+ // else {
1363
+ // isWebroot = true;
1364
+ // }
1226
1365
  }
1227
1366
 
1228
1367
  if (
@@ -1235,21 +1374,19 @@ function Server(options) {
1235
1374
  header = {
1236
1375
  ':status': 200
1237
1376
  };
1238
- var url = (isWebroot) ? this._referrer : headers[':path'];
1239
- var assets = this._options.template.assets;
1377
+ // var assets = this._options.template.assets;
1378
+ // var url = (isWebroot) ? this._referrer : headers[':path'];
1240
1379
  var responseHeaders = ( typeof(this._responseHeaders) != 'undefined') ? this._responseHeaders : null;
1241
- var conf = this._options.conf;
1242
- var asset = {
1243
- url : url,
1244
- filename : assets[ url ].filename,
1245
- file : null,
1246
- isAvailable : assets[ url ].isAvailable,
1247
- mime : assets[ url ].mime,
1248
- encoding : conf.encoding,
1249
- isHandler : false
1250
- }
1251
- , cacheless = conf.cacheless
1252
- ;
1380
+ // var conf = this._options.conf;
1381
+ asset = {
1382
+ url : url,
1383
+ filename : assets[ url ].filename,
1384
+ file : null,
1385
+ isAvailable : assets[ url ].isAvailable,
1386
+ mime : assets[ url ].mime,
1387
+ encoding : conf.encoding,
1388
+ isHandler : isHandler
1389
+ };
1253
1390
 
1254
1391
  console.debug('h2 pushing: '+ headers[':path'] + ' -> '+ asset.filename);
1255
1392
 
@@ -1261,7 +1398,7 @@ function Server(options) {
1261
1398
  return;
1262
1399
  }
1263
1400
 
1264
- asset.isHandler = true;
1401
+ asset.isHandler = this._options.template.assets[ headers[':path'] ].isHandler = true;
1265
1402
  asset.file = fs.readFileSync(asset.filename, asset.encoding).toString();
1266
1403
  asset.file = '(gina.ready(function onGinaReady($){\n'+ asset.file + '\n},window["originalContext"]));';
1267
1404
 
@@ -1287,6 +1424,9 @@ function Server(options) {
1287
1424
 
1288
1425
 
1289
1426
  header['content-type'] = ( !/charset/.test(asset.mime ) ) ? asset.mime + '; charset='+ asset.encoding : asset.mime;
1427
+ if (assets[ url ].isBinary) {
1428
+ header['content-length'] = fs.statSync(assets[ url ].filename).size;
1429
+ }
1290
1430
 
1291
1431
  if (cacheless) {
1292
1432
  // source maps integration for javascript & css
@@ -1382,6 +1522,7 @@ function Server(options) {
1382
1522
  var isFilenameDir = null
1383
1523
  , dirname = null
1384
1524
  , isBinary = null
1525
+ , isHandler = null
1385
1526
  , hanlersPath = null
1386
1527
  ;
1387
1528
 
@@ -1458,17 +1599,24 @@ function Server(options) {
1458
1599
  }
1459
1600
 
1460
1601
 
1461
- if (cacheless)
1602
+ if (cacheless) {
1462
1603
  delete require.cache[require.resolve(filename)];
1604
+ }
1463
1605
 
1464
-
1606
+ if (response.headersSent) {
1607
+ // May be sent by http/2 push
1608
+ return
1609
+ }
1465
1610
  fs.readFile(filename, bundleConf.encoding, function onStaticFileRead(err, file) {
1466
1611
  if (err) {
1467
1612
  throwError(response, 404, 'Page not found: \n' + pathname, next);
1468
1613
  return;
1469
- } else if (!response.headersSent) {
1614
+ }
1615
+
1616
+ if (!response.headersSent) {
1470
1617
 
1471
- isBinary = true;
1618
+ isBinary = true;
1619
+ isHandler = false;
1472
1620
 
1473
1621
  try {
1474
1622
  contentType = getHead(response, filename);
@@ -1488,7 +1636,8 @@ function Server(options) {
1488
1636
  hanlersPath = bundleConf.handlersPath;
1489
1637
 
1490
1638
  if ( new RegExp('^'+ hanlersPath).test(filename) ) {
1491
- isBinary = false;
1639
+ isBinary = false;
1640
+ isHandler = true;
1492
1641
  file = '(gina.ready(function onGinaReady($){\n'+ file + '\n},window["originalContext"]));'
1493
1642
  }
1494
1643
  }
@@ -1513,7 +1662,9 @@ function Server(options) {
1513
1662
  isAvailable: true,
1514
1663
  mime: contentType,
1515
1664
  url: request.url,
1516
- filename: filename
1665
+ filename: filename,
1666
+ isBinary: isBinary,
1667
+ isHandler: isHandler
1517
1668
  }
1518
1669
  }
1519
1670
 
@@ -1592,12 +1743,15 @@ function Server(options) {
1592
1743
  isAvailable: (!/404\.html/.test(filename)) ? true : false,
1593
1744
  mime: contentType,
1594
1745
  url: request.url,
1595
- filename: filename
1746
+ filename: filename,
1747
+ isBinary: isBinary,
1748
+ isHandler: isHandler
1596
1749
  }
1597
1750
  }
1598
1751
 
1599
1752
  if (!fs.existsSync(filename)) return;
1600
- isBinary = ( /text\/html/i.test(contentType) ) ? false : true;
1753
+ isBinary = ( /text\/html/i.test(contentType) ) ? false : true;
1754
+ isHandler = ( new RegExp('^'+ bundleConf.handlersPath).test(filename) ) ? true : false;
1601
1755
  if ( isBinary ) {
1602
1756
  // override
1603
1757
  self._options.template.assets[request.url] = {
@@ -1605,7 +1759,19 @@ function Server(options) {
1605
1759
  isAvailable: true,
1606
1760
  mime: contentType,
1607
1761
  url: request.url,
1608
- filename: filename
1762
+ filename: filename,
1763
+ isBinary: isBinary,
1764
+ isHandler: isHandler
1765
+ }
1766
+ }
1767
+
1768
+ if ( isHandler ) {
1769
+ // adding handler `gina.ready(...)` wrapper
1770
+ var file = null;
1771
+ if (!self._options.template.assets[request.url].file) {
1772
+ file = fs.readFileSync(filename, bundleConf.encoding).toString();
1773
+ file = '(gina.ready(function onGinaReady($){\n'+ file + '\n},window["originalContext"]));';
1774
+ self._options.template.assets[request.url].file = file;
1609
1775
  }
1610
1776
  }
1611
1777
  self.onHttp2Stream(stream, headers, response);
@@ -2155,16 +2321,16 @@ function Server(options) {
2155
2321
 
2156
2322
  });//EO this.instance
2157
2323
 
2158
-
2159
2324
  self.instance.listen(self.conf[self.appName][self.env].server.port);//By Default 3100
2160
2325
  self.instance.timeout = (1000 * 300); // e.g.: 1000x60 => 60 sec
2161
2326
 
2327
+
2162
2328
  self.emit('started', self.conf[self.appName][self.env], true);
2163
2329
  }
2164
2330
 
2165
2331
  var processRequestData = function(request, response, next) {
2166
2332
 
2167
- var bodyStr = null, obj = null;
2333
+ var bodyStr = null, obj = null, exception = null;
2168
2334
  // to compare with /core/controller/controller.js -> getParams()
2169
2335
  switch( request.method.toLowerCase() ) {
2170
2336
  case 'post':
@@ -2194,6 +2360,11 @@ function Server(options) {
2194
2360
 
2195
2361
  try {
2196
2362
  obj = parseBody(bodyStr);
2363
+ if ( !obj) {
2364
+ exception = new Error('Could not convert POST::BODY_STRING to POST::OBJECT. Possible JSON error in `bodyStr`');
2365
+ throwError(response, 500, exception, next);
2366
+ return;
2367
+ }
2197
2368
  request.post = obj;
2198
2369
  isPostSet = true;
2199
2370
  } catch (err) {
@@ -2226,7 +2397,8 @@ function Server(options) {
2226
2397
  if (request.body.count() == 0 && typeof(request.query) != 'string' && request.query.count() > 0 ) {
2227
2398
  request.body = request.query
2228
2399
  }
2229
- bodyStr = JSON.stringify(request.body);
2400
+ // 2023-01-31: fixed `request.body` might not be an `object`
2401
+ bodyStr = ( typeof(request.body) == 'object') ? JSON.stringify(request.body) : request.body;
2230
2402
  // false & true case
2231
2403
  if ( /(\"false\"|\"true\"|\"on\")/.test(bodyStr) )
2232
2404
  bodyStr = bodyStr.replace(/\"false\"/g, false).replace(/\"true\"/g, true).replace(/\"on\"/g, true);
@@ -2235,7 +2407,7 @@ function Server(options) {
2235
2407
  }
2236
2408
 
2237
2409
  try {
2238
- if ( obj.count() > 0 ) {
2410
+ if ( typeof(obj) == 'object' && obj.count() > 0 ) {
2239
2411
  // still need this to allow compatibility with express & connect middlewares
2240
2412
  request.body = request.post = obj;
2241
2413
  }
@@ -2430,7 +2602,7 @@ function Server(options) {
2430
2602
  } else {
2431
2603
  console.warn('[ '+file+' ] extension: `'+s[2]+'` not supported by gina: `core/mime.types`. Replacing with `plain/text` ')
2432
2604
  }
2433
- return type || 'plain/text'
2605
+ return type || 'plain/text'
2434
2606
  } catch (err) {
2435
2607
  console.error('Error while trying to getHead('+ file +') extention. Replacing with `plain/text` '+ err.stack);
2436
2608
  return 'plain/text'
@@ -2531,13 +2703,13 @@ function Server(options) {
2531
2703
  }
2532
2704
 
2533
2705
  expressMiddlewares[nextMiddleware._index](nextMiddleware._request, nextMiddleware._response, function onNextMiddleware(err, request, response) {
2534
- ++nextMiddleware._index;
2535
2706
 
2536
2707
  if (err) {
2537
2708
  throwError(nextMiddleware._response, 500, (err.stack||err.message||err), nextMiddleware._next, nextMiddleware._nextAction);
2538
2709
  return;
2539
2710
  }
2540
2711
 
2712
+ ++nextMiddleware._index;
2541
2713
  if (request)
2542
2714
  nextMiddleware._request = request;
2543
2715
 
@@ -2632,7 +2804,7 @@ function Server(options) {
2632
2804
  , wroot = null
2633
2805
  ;
2634
2806
 
2635
- //matched = routingUtils.getRouteByUrl(req.url, bundle, (req.method||req[':method']), req);
2807
+ //matched = routingLib.getRouteByUrl(req.url, bundle, (req.method||req[':method']), req);
2636
2808
 
2637
2809
  req = checkPreflightRequest(req);
2638
2810
  var params = {}
@@ -2657,9 +2829,10 @@ function Server(options) {
2657
2829
  }
2658
2830
  var isMethodAllowed = null, hostname = null;
2659
2831
  out:
2660
- for (var name in routing) {
2661
- if (typeof(routing[name]['param']) == 'undefined')
2832
+ for (let name in routing) {
2833
+ if ( typeof(routing[name]['param']) == 'undefined' ) {
2662
2834
  break;
2835
+ }
2663
2836
 
2664
2837
  // updating hostname
2665
2838
  // if (
@@ -2698,7 +2871,7 @@ function Server(options) {
2698
2871
 
2699
2872
  //Parsing for the right url.
2700
2873
  try {
2701
- isRoute = await routingUtils.compareUrls(params, routing[name].url, req, res, next);
2874
+ isRoute = await routingLib.compareUrls(params, routing[name].url, req, res, next);
2702
2875
  } catch (err) {
2703
2876
  var msg = 'Internal server error.\nRule [ '+name+' ] needs your attention.\n';
2704
2877
  // TODO - Refactor `ApiError`to handle the following param
@@ -2818,7 +2991,7 @@ function Server(options) {
2818
2991
  }
2819
2992
 
2820
2993
  if (!res.headersSent) {
2821
- res.headersSent = true;
2994
+ // res.headersSent = true;
2822
2995
  local.request = checkPreflightRequest(local.request);
2823
2996
  // updated filter on controller.js : 2020/09/25
2824
2997
  //if (isXMLRequest || !withViews || !isUsingTemplate ) {
@@ -2937,7 +3110,7 @@ function Server(options) {
2937
3110
  }
2938
3111
 
2939
3112
  var eRule = 'custom-error-page@'+ self.appName;
2940
- var routeObj = routingUtils.getRoute(eRule);
3113
+ var routeObj = routingLib.getRoute(eRule);
2941
3114
  routeObj.rule = eRule;
2942
3115
  routeObj.url = url;
2943
3116
  routeObj.param.title = ( typeof(eData.title) != 'undefined' ) ? eData.title : 'Error ' + eData.status;
@@ -6,19 +6,19 @@
6
6
  * Default is `true`: set to false if you have describe a redirection rule from your `routing.json`
7
7
  */
8
8
  // "webrootAutoredirect": false,
9
-
9
+
10
10
  /**
11
11
  * `template` settings
12
12
  * Default is `false`: will automatically be set to `true` when you add a view/template (`false` is right for APIs only)
13
13
  */
14
- // "template": false
15
-
14
+ // "template": false,
15
+
16
16
  /**
17
17
  * `response` settings
18
18
  * This section is mostly used to setup CORS
19
19
  */
20
20
  // "response": {
21
- // CORS settings sample
21
+ // // CORS settings sample
22
22
  // "header": {
23
23
  // "access-control-allow-origin": "{bundle}@{project}, https://checkout.stripe.com",
24
24
  // "access-control-allow-headers": "X-Requested-With", // To allow AJAX request
@@ -3,7 +3,7 @@
3
3
  // common definitions : will apply for all templates
4
4
  "_common": {
5
5
  // by default, or it will load `layout.html` if exists or `nolayout.html`(from the framework assets)
6
- "layout": "{templatesPath}/html/layout/main.html",
6
+ "layout": "{templatesPath}/html/layouts/main.html",
7
7
  // means that the file name of the template is the same as the route name
8
8
  // You can override it through the routing.json
9
9
  "routeNameAsFilenameEnabled": true,
@@ -26,16 +26,16 @@
26
26
 
27
27
  "home": {
28
28
  // If you want to exclude all global css
29
- //"stylesheetsExcluded": "*",
29
+ //"stylesheetsExcluded": "*",
30
30
  // If you also want to get rid of `gina` definitions, use "**" while excluding
31
-
31
+
32
32
  // local css - Will fetch from {bundle}/public
33
33
  "stylesheets": [
34
34
  {
35
35
  "url": "/css/home.css"
36
36
  }
37
37
  ]
38
-
38
+
39
39
  // If you want to exclude all global js
40
40
  //"javascriptsExcluded": "*"
41
41
  }
@@ -20,7 +20,7 @@ function {Bundle}ContentController() {
20
20
  var data = {
21
21
  msg: appConf.greeting
22
22
  };
23
-
23
+
24
24
  self.renderJSON(data);
25
25
 
26
26
  // use this to render errors