gina 0.1.6-alpha.9 → 0.1.6-alpha.91

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 (390) hide show
  1. package/LICENSE +1 -1
  2. package/README-4Contributors.md +14 -8
  3. package/README.md +4 -4
  4. package/bin/cli +14 -0
  5. package/bin/gina +29 -1
  6. package/framework/{v0.1.6-alpha.9/lib/inherits → v0.1.6-alpha.91}/LICENSE +1 -1
  7. package/framework/v0.1.6-alpha.91/VERSION +1 -0
  8. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/asset/plugin/README.md +1 -0
  9. package/framework/v0.1.6-alpha.91/core/asset/plugin/dist/vendor/gina/css/gina.min.css.map +1 -0
  10. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/asset/plugin/dist/vendor/gina/html/toolbar.html +1 -1
  11. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/asset/plugin/dist/vendor/gina/js/gina.js +582 -217
  12. package/framework/v0.1.6-alpha.91/core/asset/plugin/dist/vendor/gina/js/gina.min.js +777 -0
  13. package/framework/v0.1.6-alpha.91/core/asset/plugin/dist/vendor/gina/js/gina.min.js.map +8 -0
  14. package/framework/v0.1.6-alpha.91/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +8 -0
  15. package/framework/v0.1.6-alpha.91/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.map +8 -0
  16. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/config.js +157 -76
  17. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/connectors/couchbase/index.js +92 -22
  18. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/connectors/couchbase/lib/connector.v4.js +28 -22
  19. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/controller/controller.js +431 -111
  20. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/controller/index.js +2 -2
  21. package/framework/v0.1.6-alpha.91/core/deps/busboy-1.6.0/.github/workflows/ci.yml +24 -0
  22. package/framework/v0.1.6-alpha.91/core/deps/busboy-1.6.0/.github/workflows/lint.yml +23 -0
  23. package/framework/v0.1.6-alpha.91/core/deps/busboy-1.6.0/README.md +191 -0
  24. package/framework/v0.1.6-alpha.91/core/deps/busboy-1.6.0/bench/bench-multipart-fields-100mb-big.js +149 -0
  25. package/framework/v0.1.6-alpha.91/core/deps/busboy-1.6.0/bench/bench-multipart-fields-100mb-small.js +143 -0
  26. package/framework/v0.1.6-alpha.91/core/deps/busboy-1.6.0/bench/bench-multipart-files-100mb-big.js +154 -0
  27. package/framework/v0.1.6-alpha.91/core/deps/busboy-1.6.0/bench/bench-multipart-files-100mb-small.js +148 -0
  28. package/framework/v0.1.6-alpha.91/core/deps/busboy-1.6.0/bench/bench-urlencoded-fields-100pairs-small.js +101 -0
  29. package/framework/v0.1.6-alpha.91/core/deps/busboy-1.6.0/bench/bench-urlencoded-fields-900pairs-small-alt.js +84 -0
  30. package/framework/v0.1.6-alpha.91/core/deps/busboy-1.6.0/lib/index.js +57 -0
  31. package/framework/v0.1.6-alpha.91/core/deps/busboy-1.6.0/lib/types/multipart.js +680 -0
  32. package/framework/v0.1.6-alpha.91/core/deps/busboy-1.6.0/lib/types/urlencoded.js +350 -0
  33. package/framework/v0.1.6-alpha.91/core/deps/busboy-1.6.0/lib/utils.js +596 -0
  34. package/framework/v0.1.6-alpha.91/core/deps/busboy-1.6.0/package.json +22 -0
  35. package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/.travis.yml +4 -0
  36. package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/LICENSE +21 -0
  37. package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/example/bool.js +10 -0
  38. package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/example/boolean_double.js +7 -0
  39. package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/example/boolean_single.js +7 -0
  40. package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/example/default_hash.js +8 -0
  41. package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/example/default_singles.js +7 -0
  42. package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/example/divide.js +8 -0
  43. package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/example/line_count.js +20 -0
  44. package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/example/line_count_options.js +29 -0
  45. package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/example/line_count_wrap.js +29 -0
  46. package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/example/nonopt.js +4 -0
  47. package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/example/reflect.js +2 -0
  48. package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/example/short.js +3 -0
  49. package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/example/string.js +11 -0
  50. package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/example/usage-options.js +19 -0
  51. package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/example/xup.js +10 -0
  52. package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/index.js +343 -0
  53. package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/package.json +31 -0
  54. package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/package.json.dist +39 -0
  55. package/framework/v0.1.6-alpha.91/core/deps/optimist-0.6.1/readme.markdown +513 -0
  56. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/HISTORY.md +498 -0
  57. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/LICENSE +7 -0
  58. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/README.md +88 -0
  59. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/bin/swig.js +161 -0
  60. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/bin/swig.js.dist +161 -0
  61. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/dist/swig.min.js +7 -0
  62. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/dist/swig.min.js.map +8 -0
  63. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/index.js +1 -0
  64. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/dateformatter.js +198 -0
  65. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/filters.js +630 -0
  66. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/lexer.js +306 -0
  67. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/loaders/filesystem.js +59 -0
  68. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/loaders/index.js +53 -0
  69. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/loaders/memory.js +63 -0
  70. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/parser.js +744 -0
  71. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/swig.js +740 -0
  72. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/tags/autoescape.js +37 -0
  73. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/tags/block.js +25 -0
  74. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/tags/else.js +25 -0
  75. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/tags/elseif.js +28 -0
  76. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/tags/extends.js +19 -0
  77. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/tags/filter.js +68 -0
  78. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/tags/for.js +130 -0
  79. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/tags/if.js +86 -0
  80. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/tags/import.js +91 -0
  81. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/tags/include.js +100 -0
  82. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/tags/index.js +16 -0
  83. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/tags/macro.js +79 -0
  84. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/tags/parent.js +51 -0
  85. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/tags/raw.js +23 -0
  86. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/tags/set.js +109 -0
  87. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/tags/spaceless.js +42 -0
  88. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/lib/utils.js +184 -0
  89. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/package.json +57 -0
  90. package/framework/v0.1.6-alpha.91/core/deps/swig-1.4.2/package.json.dist +61 -0
  91. package/framework/v0.1.6-alpha.91/core/deps/swig-client/swig.js +5031 -0
  92. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/dev/index.js +1 -1
  93. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/dev/lib/factory.js +1 -1
  94. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/gna.js +101 -22
  95. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/locales/index.js +3 -3
  96. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/locales/src/make.js +1 -1
  97. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/mime.types +1 -0
  98. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/model/entity.js +5 -5
  99. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/model/index.js +30 -26
  100. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/model/template/entityFactory.js +1 -1
  101. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/model/template/index.js +1 -1
  102. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/index.js +3 -3
  103. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/lib/file/package.json +2 -2
  104. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/lib/intl/package.json +2 -2
  105. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/lib/storage/package.json +2 -2
  106. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/lib/validator/package.json +2 -2
  107. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/lib/validator/src/form-validator.js +39 -27
  108. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/lib/validator/src/main.js +360 -85
  109. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/router.js +92 -47
  110. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/server.isaac.js +96 -10
  111. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/server.js +283 -129
  112. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/status.codes +1 -11
  113. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle/controllers/setup.js +2 -2
  114. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/command/gina.tpl +1 -1
  115. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/conf/env.json +2 -0
  116. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/conf/templates.json +4 -2
  117. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/console.js +1 -1
  118. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/context.js +29 -12
  119. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/data/package.json +2 -2
  120. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/data/src/main.js +1 -1
  121. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/dateFormat.js +1 -1
  122. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/index.js +1 -1
  123. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/json/package.json +2 -2
  124. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/json/src/main.js +6 -4
  125. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/path.js +31 -15
  126. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/plugins/package.json +2 -2
  127. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/plugins/src/api-error.js +2 -2
  128. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/plugins/src/main.js +1 -1
  129. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/text.js +1 -1
  130. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/archiver/package.json +2 -2
  131. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/archiver/src/main.js +11 -11
  132. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/bundle/add.js +2 -1
  133. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/bundle/start.js +21 -8
  134. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/env/get.js +1 -1
  135. package/framework/v0.1.6-alpha.91/lib/cmd/env/help.js +30 -0
  136. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/build.js +1 -1
  137. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/init.js +18 -0
  138. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/link-node-modules.js +2 -3
  139. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/link.js +1 -0
  140. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/tail.js +28 -11
  141. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/version.js +15 -1
  142. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/helper.js +6 -2
  143. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/index.js +1 -1
  144. package/framework/v0.1.6-alpha.91/lib/cmd/minion/help.txt +18 -0
  145. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/project/add.js +3 -2
  146. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/project/build.js +4 -4
  147. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/project/list.js +1 -1
  148. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/protocol/list.js +71 -50
  149. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/collection/package.json +2 -2
  150. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/collection/src/main.js +20 -14
  151. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/config.js +1 -1
  152. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cron/package.json +2 -2
  153. package/framework/v0.1.6-alpha.91/lib/domain/dist/2025-03-14_13-41-20_UTC.dat +15754 -0
  154. package/framework/v0.1.6-alpha.91/lib/domain/dist/public_suffix_list.dat +15754 -0
  155. package/framework/v0.1.6-alpha.91/lib/domain/exemples/backend.js +12 -0
  156. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/domain/package.json +2 -2
  157. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/domain/src/main.js +20 -6
  158. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/generator/index.js +1 -1
  159. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/index.js +1 -1
  160. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91/lib/inherits}/LICENSE +1 -1
  161. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/inherits/package.json +2 -2
  162. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/inherits/src/main.js +1 -1
  163. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/logger/package.json +2 -2
  164. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/logger/src/containers/mq/listener.js +10 -2
  165. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/logger/src/helper.js +1 -1
  166. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/logger/src/main.js +1 -1
  167. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/math/index.js +1 -1
  168. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/merge/package.json +2 -2
  169. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/model.js +3 -3
  170. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/proc.js +9 -1
  171. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/routing/package.json +2 -2
  172. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/routing/src/main.js +72 -25
  173. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/session-store.js +3 -3
  174. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/swig-filters/package.json +2 -2
  175. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/swig-filters/src/main.js +70 -15
  176. package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/validator.js +2 -2
  177. package/framework/v0.1.6-alpha.91/package.json +11 -0
  178. package/package.json +3 -3
  179. package/resources/package.json.template +1 -1
  180. package/script/post_install.js +1 -1
  181. package/script/pre_install.js +1 -1
  182. package/utils/helper.js +24 -0
  183. package/framework/v0.1.6-alpha.9/VERSION +0 -1
  184. package/framework/v0.1.6-alpha.9/core/asset/plugin/dist/vendor/gina/css/gina.min.css.map +0 -1
  185. package/framework/v0.1.6-alpha.9/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -766
  186. package/framework/v0.1.6-alpha.9/core/asset/plugin/dist/vendor/gina/js/gina.min.js.map +0 -8
  187. package/framework/v0.1.6-alpha.9/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -7
  188. package/framework/v0.1.6-alpha.9/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.map +0 -8
  189. package/framework/v0.1.6-alpha.9/core/deps/busboy/.travis.yml +0 -17
  190. package/framework/v0.1.6-alpha.9/core/deps/busboy/README.md +0 -225
  191. package/framework/v0.1.6-alpha.9/core/deps/busboy/deps/encoding/encoding-indexes.js +0 -73
  192. package/framework/v0.1.6-alpha.9/core/deps/busboy/deps/encoding/encoding.js +0 -2391
  193. package/framework/v0.1.6-alpha.9/core/deps/busboy/lib/main.js +0 -89
  194. package/framework/v0.1.6-alpha.9/core/deps/busboy/lib/types/multipart.js +0 -328
  195. package/framework/v0.1.6-alpha.9/core/deps/busboy/lib/types/urlencoded.js +0 -214
  196. package/framework/v0.1.6-alpha.9/core/deps/busboy/lib/utils.js +0 -191
  197. package/framework/v0.1.6-alpha.9/core/deps/busboy/package.json +0 -69
  198. package/framework/v0.1.6-alpha.9/lib/domain/dist/public_suffix_list.dat +0 -14186
  199. package/framework/v0.1.6-alpha.9/lib/domain/exemples/backend.js +0 -0
  200. package/framework/v0.1.6-alpha.9/package.json +0 -14
  201. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/AUTHORS +0 -0
  202. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/asset/html/nolayout.html +0 -0
  203. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/asset/html/static.html +0 -0
  204. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/asset/img/android-chrome-192x192.png +0 -0
  205. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/asset/img/android-chrome-512x512.png +0 -0
  206. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/asset/img/apple-touch-icon.png +0 -0
  207. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/asset/img/favicon-16x16.png +0 -0
  208. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/asset/img/favicon-32x32.png +0 -0
  209. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/asset/img/favicon.ico +0 -0
  210. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  211. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/asset/plugin/uuid.json +0 -0
  212. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/connectors/couchbase/lib/connector.js +0 -0
  213. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/connectors/couchbase/lib/connector.v2.js +0 -0
  214. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  215. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/connectors/couchbase/lib/n1ql.js +0 -0
  216. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/connectors/couchbase/lib/session-store.js +0 -0
  217. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/connectors/couchbase/lib/session-store.v2.js +0 -0
  218. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  219. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  220. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/controller/controller.framework.js +0 -0
  221. /package/framework/{v0.1.6-alpha.9/core/deps/busboy → v0.1.6-alpha.91/core/deps/busboy-1.6.0}/LICENSE +0 -0
  222. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/deps/swig-client/swig-2.0.0.min.js +0 -0
  223. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/dev/lib/class.js +0 -0
  224. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/dev/lib/tools.js +0 -0
  225. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/locales/README.md +0 -0
  226. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/locales/currency.json +0 -0
  227. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/locales/dist/language/en.json +0 -0
  228. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/locales/dist/language/fr.json +0 -0
  229. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/locales/dist/region/en.json +0 -0
  230. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/locales/dist/region/fr.json +0 -0
  231. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/locales/src/resources/currency.csv +0 -0
  232. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/locales/src/resources/region.csv +0 -0
  233. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/locales/src/resources/region.mapping.json +0 -0
  234. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/README.md +0 -0
  235. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/lib/file/README.md +0 -0
  236. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/lib/file/build.json +0 -0
  237. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/lib/intl/README.md +0 -0
  238. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/lib/intl/build.json +0 -0
  239. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/lib/intl/src/main.js +0 -0
  240. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/lib/storage/README.md +0 -0
  241. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/lib/storage/build.json +0 -0
  242. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/lib/storage/src/main.js +0 -0
  243. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/lib/validator/README.md +0 -0
  244. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/plugins/lib/validator/build.json +0 -0
  245. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/server.express.js +0 -0
  246. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/_gitignore +0 -0
  247. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle/config/app.json +0 -0
  248. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle/config/routing.json +0 -0
  249. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle/config/settings.json +0 -0
  250. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  251. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle/config/templates.json +0 -0
  252. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  253. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  254. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle/index.js +0 -0
  255. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  256. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  257. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  258. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  259. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  260. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle_public/readme.md +0 -0
  261. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  262. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  263. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  264. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  265. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  266. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/command/gina.bat.tpl +0 -0
  267. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/conf/manifest.json +0 -0
  268. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/conf/package.json +0 -0
  269. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/conf/settings.json +0 -0
  270. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/conf/statics.json +0 -0
  271. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/error/client/json/401.json +0 -0
  272. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/error/client/json/403.json +0 -0
  273. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/error/client/json/404.json +0 -0
  274. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/error/server/html/50x.html +0 -0
  275. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/error/server/json/500.json +0 -0
  276. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/error/server/json/503.json +0 -0
  277. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/core/template/extensions/logger/config.json +0 -0
  278. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/data/LICENSE +0 -0
  279. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/data/README.md +0 -0
  280. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/json/LICENSE +0 -0
  281. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/json/README.md +0 -0
  282. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/plugins/README.md +0 -0
  283. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/prototypes.js +0 -0
  284. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/helpers/task.js +0 -0
  285. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/archiver/README.md +0 -0
  286. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/archiver/build.json +0 -0
  287. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/archiver/src/dep/jszip.min.js +0 -0
  288. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/aliases.json +0 -0
  289. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/bundle/arguments.json +0 -0
  290. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/bundle/copy.js +0 -0
  291. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/bundle/cp.js +0 -0
  292. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/bundle/help.js +0 -0
  293. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/bundle/help.txt +0 -0
  294. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/bundle/list.js +0 -0
  295. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/bundle/remove.js +0 -0
  296. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/bundle/rename.js +0 -0
  297. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/bundle/restart.js +0 -0
  298. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/bundle/rm.js +0 -0
  299. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/bundle/status.js +0 -0
  300. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/bundle/stop.js +0 -0
  301. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/env/add.js +0 -0
  302. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/env/help.txt +0 -0
  303. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/env/link-dev.js +0 -0
  304. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/env/list.js +0 -0
  305. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/env/remove.js +0 -0
  306. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/env/rm.js +0 -0
  307. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/env/set.js +0 -0
  308. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/env/unset.js +0 -0
  309. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/env/use.js +0 -0
  310. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/dot.js +0 -0
  311. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/get.js +0 -0
  312. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/help.js +0 -0
  313. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/help.txt +0 -0
  314. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/msg.json +0 -0
  315. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/open.js +0 -0
  316. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/restart.js +0 -0
  317. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/set.js +0 -0
  318. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/start.js +0 -0
  319. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/status.js +0 -0
  320. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/stop.js +0 -0
  321. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/framework/update.js +0 -0
  322. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/gina-dev.1.md +0 -0
  323. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/gina-framework.1.md +0 -0
  324. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/gina.1.md +0 -0
  325. /package/framework/{v0.1.6-alpha.9/lib/cmd/env → v0.1.6-alpha.91/lib/cmd/minion}/help.js +0 -0
  326. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/msg.json +0 -0
  327. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/port/help.js +0 -0
  328. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/port/help.txt +0 -0
  329. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/port/inc/scan.js +0 -0
  330. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/port/list.js +0 -0
  331. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/port/reset.js +0 -0
  332. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/port/set.js +0 -0
  333. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/project/arguments.json +0 -0
  334. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/project/help.js +0 -0
  335. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/project/help.txt +0 -0
  336. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/project/import.js +0 -0
  337. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/project/move.js +0 -0
  338. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/project/remove.js +0 -0
  339. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/project/rename.js +0 -0
  340. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/project/restart.js +0 -0
  341. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/project/rm.js +0 -0
  342. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/project/start.js +0 -0
  343. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/project/status.js +0 -0
  344. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/project/stop.js +0 -0
  345. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/protocol/help.js +0 -0
  346. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/protocol/help.txt +0 -0
  347. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/protocol/set.js +0 -0
  348. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/scope/add.js +0 -0
  349. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/scope/help.js +0 -0
  350. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/scope/help.txt +0 -0
  351. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/scope/link-local.js +0 -0
  352. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/scope/link-production.js +0 -0
  353. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/scope/list.js +0 -0
  354. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/scope/remove.js +0 -0
  355. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/scope/rm.js +0 -0
  356. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/scope/use.js +0 -0
  357. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cmd/view/add.js +0 -0
  358. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/collection/README.md +0 -0
  359. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/collection/build.json +0 -0
  360. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cron/README.md +0 -0
  361. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/cron/src/main.js +0 -0
  362. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/domain/LICENSE +0 -0
  363. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/domain/README.md +0 -0
  364. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/domain/exemples/frontend.html +0 -0
  365. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/inherits/README.md +0 -0
  366. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/inherits/example/inheriting_eventemitter.js +0 -0
  367. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/inherits/example/protected_inheritance.js +0 -0
  368. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/inherits/example/simple_inheritance.js +0 -0
  369. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/inherits/example/super_attribute_overridden_by_child_on_init.js +0 -0
  370. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/logger/README.md +0 -0
  371. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/logger/src/containers/default/index.js +0 -0
  372. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/logger/src/containers/file/index.js +0 -0
  373. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  374. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  375. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/logger/src/containers/mq/index.js +0 -0
  376. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/logger/src/containers/mq/speaker.js +0 -0
  377. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/merge/README.md +0 -0
  378. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/merge/example/merge.js +0 -0
  379. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/merge/example/merge_2_literal objects.js +0 -0
  380. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/merge/example/merge_and_preserve_first.js +0 -0
  381. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/merge/src/main.js +0 -0
  382. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/routing/README.md +0 -0
  383. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/routing/build.json +0 -0
  384. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/shell.js +0 -0
  385. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/swig-filters/README.md +0 -0
  386. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/url/README.md +0 -0
  387. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/url/index.js +0 -0
  388. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/url/mocks.json +0 -0
  389. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/url/routing.json +0 -0
  390. /package/framework/{v0.1.6-alpha.9 → v0.1.6-alpha.91}/lib/url/test.js +0 -0
@@ -18,7 +18,7 @@
18
18
  * @param {object} [ data ] // from request
19
19
  * @param {string} [ formId ]
20
20
  * */
21
- function ValidatorPlugin(rules, data, formId) {
21
+ function ValidatorPlugin(rules, data, formId) {
22
22
 
23
23
  this.plugin = 'validator';
24
24
 
@@ -128,6 +128,7 @@
128
128
  'eventData' : {},
129
129
  'target' : (isGFFCtx) ? document : null, // by default
130
130
  'cachedErrors' : {},
131
+ 'lastFocused' : (isGFFCtx) ? [] : null,
131
132
  'binded' : false,
132
133
  'unbinded' : false,
133
134
  'withUserBindings' : false,
@@ -408,22 +409,34 @@
408
409
  }
409
410
 
410
411
  var refreshWarning = function($el) {
411
- var formId = $el.form.getAttribute('id');
412
+ var formId = $el.form.id || $el.form.getAttribute('id');
413
+ var elName = $el.name || $el.form.getAttribute('name');
414
+ var currentElName = document.activeElement.name;
412
415
  if ( /^true$/i.test(instance.$forms[formId].isValidating) ) {
413
416
  return;
414
417
  }
415
418
 
416
- var $parent = $el.parentNode, isErrorMessageHidden = false;
417
- var $children = $parent.getElementsByTagName('div');
419
+ var $parent = $el.parentNode
420
+ , isErrorMessageHidden = false
421
+ , $children = $parent.getElementsByTagName('div')
422
+ ;
418
423
 
419
- if ( /form\-item\-warning/.test($parent.className) ) {
424
+ if ( /form\-item\-warning/.test($parent.className) && currentElName != elName ) {
420
425
  $parent.className = $parent.className.replace(/form\-item\-warning/, 'form-item-error');
421
426
 
422
- } else if (/form\-item\-error/.test($parent.className) ) {
427
+ } else if (/form\-item\-error/.test($parent.className) && currentElName == elName ) {
423
428
  $parent.className = $parent.className.replace(/form\-item\-error/, 'form-item-warning');
424
429
  isErrorMessageHidden = true;
425
430
  }
426
431
 
432
+ // Fixed on 2025-03-16
433
+ if (
434
+ /^true$/i.test(instance.$forms[formId].isValidating)
435
+ && !isErrorMessageHidden
436
+ ) {
437
+ return;
438
+ }
439
+
427
440
 
428
441
  for (var c = 0, cLen = $children.length; c<cLen; ++c) {
429
442
  if ( /form\-item\-error\-message/.test($children[c].className) ) {
@@ -445,7 +458,7 @@
445
458
  * @param {object} $form - Target (HTMLFormElement)
446
459
  * @param {object} errors
447
460
  * @param {object|null} data
448
- * @param {object|null} [fileName]
461
+ * @param {string|null} [fileName]
449
462
  */
450
463
  var liveCheckErrors = {}; // Per Form & Per Element
451
464
  var handleErrorsDisplay = function($form, errors, data, fieldName) {
@@ -476,7 +489,7 @@
476
489
  if ( typeof(liveCheckErrors[formId]) == 'undefined') {
477
490
  liveCheckErrors[formId] = {};
478
491
  }
479
- if (errors.count() > 0) {
492
+ if (errors && errors.count() > 0) {
480
493
  // reset field name
481
494
  liveCheckErrors[formId][fieldName] = {};
482
495
  // override
@@ -486,8 +499,29 @@
486
499
  }
487
500
  errors = liveCheckErrors[formId];
488
501
  // only if the form has not been sent yet
489
- if (!instance.$forms[formId].sent || instance.$forms[formId].isValidating) {
502
+ if (
503
+ !instance.$forms[formId].sent
504
+ ||
505
+ instance.$forms[formId].isValidating
506
+ ) {
490
507
  isWarning = true;
508
+ // Fixed on 2025-03-16
509
+ var lastFocused = instance.$forms[formId].lastFocused;
510
+ // console.debug('fieldName: '+ fieldName + '\nactiveElement: '+ document.activeElement.getAttribute('name') +'\nlastFocused: ', lastFocused);
511
+ if (
512
+ lastFocused.length > 0
513
+ && typeof(lastFocused[1]) != 'undefined'
514
+ && lastFocused[1].name == fieldName
515
+ ||
516
+ lastFocused.length > 0
517
+ && !lastFocused[1]
518
+ && document.activeElement.getAttribute('name') != lastFocused[0].name
519
+ ||
520
+ document.activeElement.getAttribute('name') != fieldName
521
+ ) {
522
+ isWarning = false;
523
+ }
524
+ // console.debug('isWarning: '+isWarning);
491
525
  }
492
526
  } else {
493
527
  if ( typeof(liveCheckErrors[formId][fieldName]) != 'undefined') {
@@ -551,7 +585,11 @@
551
585
 
552
586
  if (!name) continue;
553
587
 
554
- if ( typeof(errors[name]) != 'undefined' && !/(form\-item\-error|form\-item\-warning)/.test($parent.className) ) {
588
+ if (
589
+ errors
590
+ && typeof(errors[name]) != 'undefined'
591
+ && !/(form\-item\-error|form\-item\-warning)/.test($parent.className)
592
+ ) {
555
593
 
556
594
  if (isWarning) {
557
595
  // adding warning class
@@ -592,7 +630,24 @@
592
630
 
593
631
 
594
632
 
595
- } else if ( typeof(errors[name]) == 'undefined' && /(form\-item\-error|form\-item\-warning)/.test($parent.className) || typeof(errors[name]) != 'undefined' && errors[name].count() == 0 && /(form\-item\-error|form\-item\-warning)/.test($parent.className) ) {
633
+ } else if (
634
+ errors
635
+ && typeof(errors[name]) == 'undefined'
636
+ && /(form\-item\-error|form\-item\-warning)/.test($parent.className)
637
+ ||
638
+ errors
639
+ && typeof(errors[name]) != 'undefined' && errors[name].count() == 0
640
+ && /(form\-item\-error|form\-item\-warning)/.test($parent.className)
641
+ ) {
642
+ // Fixed on 2025-03-10
643
+ // targeted field must be the active element
644
+ // if (
645
+ // document.activeElement.getAttribute('name') != fieldName
646
+ // && errors.count() > 0
647
+ // ) {
648
+ // break
649
+ // }
650
+ console.debug('[handleErrorsDisplay] Resetting when not in error');
596
651
  // reset when not in error
597
652
  // remove child elements
598
653
  var $children = $parent.getElementsByTagName('div');
@@ -606,16 +661,34 @@
606
661
 
607
662
  $parent.className = $parent.className.replace(/(\s+form\-item\-error|form\-item\-error|\s+form\-item\-warning|form\-item\-warning)/, '');
608
663
 
609
- } else if ( typeof(errors[name]) != 'undefined' && errAttr) {
664
+ } else if (
665
+ errors.count() > 0
666
+ && typeof(errors[name]) != 'undefined'
667
+ && errAttr
668
+ ) {
610
669
  // refreshing already displayed error on msg update
611
670
  var $divs = $parent.getElementsByTagName('div');
612
671
  for (var d = 0, dLen = $divs.length; d<dLen; ++d) {
613
- if ($divs[d].className == 'form-item-error-message') {
672
+ // Fixed on 2025-03-05: className can have more than one !!
673
+ let foundMessage = $divs[d].className.match("form-item-error-message");
674
+ if (
675
+ foundMessage
676
+ && typeof(foundMessage.length) != 'undefined'
677
+ && foundMessage.length > 0
678
+ ) {
614
679
 
615
680
  $divs[d].parentElement.removeChild($divs[d]);
616
681
  $err = document.createElement('div');
617
682
  $err.setAttribute('class', 'form-item-error-message');
618
683
 
684
+ // Fixed on 2025-03-09: className cleanup
685
+ if (
686
+ !isWarning
687
+ && /(\s+form\-item\-warning|form\-item\-warning)/.test($parent.className)
688
+ ) {
689
+ $parent.className = $parent.className.replace(/(\s+form\-item\-warning|form\-item\-warning)/, ' form-item-error');
690
+ }
691
+
619
692
  // injecting error messages
620
693
  // {
621
694
  // field: {
@@ -640,12 +713,17 @@
640
713
  }
641
714
  }
642
715
 
643
- if ($err && $target.type != 'hidden')
716
+ if ($err && $target.type != 'hidden') {
644
717
  insertAfter($target, $err);
645
-
718
+ }
646
719
  }
647
720
 
648
- if (typeof(fieldName) != 'undefined' && fieldName === $el.name) break;
721
+ if (
722
+ typeof(fieldName) != 'undefined'
723
+ && fieldName === $el.name
724
+ ) {
725
+ break;
726
+ }
649
727
  }
650
728
 
651
729
 
@@ -981,7 +1059,8 @@
981
1059
  // In case the user is also redirecting
982
1060
  var redirectDelay = (/Google Inc/i.test(navigator.vendor)) ? 50 : 0;
983
1061
 
984
- if (xhr.readyState == 2) { // responseType interception
1062
+ // responseType interception
1063
+ if (xhr.readyState == 2) {
985
1064
  isAttachment = ( /^attachment\;/.test( xhr.getResponseHeader("Content-Disposition") ) ) ? true : false;
986
1065
  // force blob response type
987
1066
  if ( !xhr.responseType && isAttachment ) {
@@ -1015,7 +1094,7 @@
1015
1094
  var url = window.URL.createObjectURL(blob);
1016
1095
  a.href = url;
1017
1096
  var contentDisposition = xhr.getResponseHeader("Content-Disposition");
1018
- a.download = contentDisposition.match('\=(.*)')[0].substr(1);
1097
+ a.download = contentDisposition.match('\=(.*)')[0].substring(1);
1019
1098
  //programatically click the link to trigger the download
1020
1099
  a.click();
1021
1100
 
@@ -1034,7 +1113,9 @@
1034
1113
  size : blob.size
1035
1114
  }
1036
1115
 
1037
- } else { // normal case
1116
+ }
1117
+ // normal case
1118
+ else {
1038
1119
  result = xhr.responseText;
1039
1120
  }
1040
1121
 
@@ -1043,9 +1124,14 @@
1043
1124
  if ( /\/json/.test( contentType ) ) {
1044
1125
  result = JSON.parse(xhr.responseText);
1045
1126
 
1046
- if ( typeof(result.status) == 'undefined' )
1127
+ if ( typeof(result.status) == 'undefined' ) {
1047
1128
  result.status = xhr.status;
1048
-
1129
+ }
1130
+ // Fixed on 2025-03-13 Allowing toolbar to ubdate after xhr results
1131
+ // TODO - Allowing to revert to previously loaded data via a close button
1132
+ if (gina && envIsDev && typeof(window.ginaToolbar) && typeof(result) != 'undefined') {
1133
+ window.ginaToolbar.update('data-xhr', result);
1134
+ }
1049
1135
  }
1050
1136
 
1051
1137
  if ( /\/html/.test( contentType ) ) {
@@ -1276,6 +1362,13 @@
1276
1362
  // } else { // external - need to remove `X-Requested-With` from `options.headers`
1277
1363
  result.location = (!/^http/.test(result.location) && !/^\//.test(result.location) ) ? location.protocol +'//' + result.location : result.location;
1278
1364
  //}
1365
+ // isProxyHost ?
1366
+ if (
1367
+ result.location.replace(/^http(.*)\:\d+/, '$1').replace(/^\:\/\//, '').split(/\//g)[0] == gina.config.hostname
1368
+ && gina.config.hostname == window.location.host
1369
+ ) {
1370
+ result.location = location.protocol + result.location.replace(/^http(.*)\:\d+/, '$1').replace(/^\:/, '')
1371
+ }
1279
1372
 
1280
1373
  return setTimeout(() => {
1281
1374
  window.location.href = result.location;
@@ -1905,7 +1998,7 @@
1905
1998
  filesToBeRemoved.push(childNodeFilePreview);
1906
1999
  }
1907
2000
  } else {
1908
- let file = childNodes[i].src.substr(childNodes[i].src.lastIndexOf('/')+1);
2001
+ let file = childNodes[i].src.substring(childNodes[i].src.lastIndexOf('/')+1);
1909
2002
  childNodeFile = file;
1910
2003
  filesToBeRemoved.push(childNodeFile);
1911
2004
  }
@@ -2341,7 +2434,7 @@
2341
2434
  for (let m = 0, mLen = mergingRules.length; m < mLen; m++) {
2342
2435
  if ( re.test(mergingRules[m]) ) {
2343
2436
  let tmpStr = JSON.stringify(rule);
2344
- tmpStr = tmpStr.substr(1, tmpStr.length-1);// removing ->{ ... }<-
2437
+ tmpStr = tmpStr.substring(1, tmpStr.length-1);// removing ->{ ... }<-
2345
2438
  // is last ?
2346
2439
  if (m < mLen-1) {
2347
2440
  tmpStr += ','
@@ -3126,7 +3219,6 @@
3126
3219
  } else {
3127
3220
  handleErrorsDisplay(event.target.form, errors, null, event.target.name);
3128
3221
  }
3129
- //return cancelEvent(event);
3130
3222
  }
3131
3223
 
3132
3224
 
@@ -3136,7 +3228,7 @@
3136
3228
 
3137
3229
  instance.$forms[event.target.form.getAttribute('id')].isValidating = true;
3138
3230
  validate(event.target, localField, $localField, $form.rules, function onLiveValidation(result){
3139
- instance.$forms[event.target.form.getAttribute('id')].isValidating = false;
3231
+ // instance.$forms[event.target.form.getAttribute('id')].isValidating = false;
3140
3232
  //console.debug('validation on processEvent(...) ', result);
3141
3233
 
3142
3234
  var isFormValid = result.isValid();
@@ -3162,8 +3254,10 @@
3162
3254
  instance.$forms[formId].isValidating = true;
3163
3255
  validate($gForm, gFields, $gFields, gRules, function onSilentGlobalLiveValidation(gResult){
3164
3256
  instance.$forms[formId].isValidating = false;
3165
- console.debug('['+ formId +'] onSilentGlobalLiveValidation: '+ gResult.isValid(), gResult);
3257
+ console.debug('['+ formId +'] onSilentGlobalLiveValidation: '+ gResult.isValid(), gResult, gFields);
3258
+ // var isFormValid = ( gResult.isValid() && instance.$forms[formId].errors && instance.$forms[formId].errors.count() == 0 )? true : false;
3166
3259
  var isFormValid = gResult.isValid();
3260
+ // var isFormValid = gResult.isValid();
3167
3261
  if ( envIsDev && isGFFCtx && typeof(window.ginaToolbar) != 'undefined' && window.ginaToolbar ) {
3168
3262
  // update toolbar
3169
3263
  if (!gina.forms.errors)
@@ -3178,6 +3272,27 @@
3178
3272
  }
3179
3273
 
3180
3274
 
3275
+ if ( !isFormValid && gResult.error ) {
3276
+ // Fixed on 2025-03-16 - we need past and live errors
3277
+ instance.$forms[ $el.form.getAttribute('id') ].errors = merge(result.error, gResult.error);
3278
+ // Fixed on 2025-03-16
3279
+ for (let eField in gResult.error) {
3280
+ refreshWarning($gFields[eField]);
3281
+ handleErrorsDisplay($gForm, gResult.error, gResult.data, eField);
3282
+ }
3283
+ }
3284
+ // Fixed on 2025-03-16
3285
+ // Eg.: input select change impacting another element: solve `no more errors`
3286
+ else if ( instance.$forms[formId].errors && !instance.$forms[formId].errors.count() ) {
3287
+ // recheck if valid
3288
+ //resetting error display
3289
+ instance.$forms[ formId ].errors = {};
3290
+ console.debug('resetting field: '+ $el.name);
3291
+ liveCheckErrors[formId] = {};
3292
+ // $form.dataset.ginaFormIsResetting = true;
3293
+ handleErrorsDisplay($gForm, {}, null, $el.name);
3294
+ }
3295
+
3181
3296
  updateSubmitTriggerState( $gForm, isFormValid);
3182
3297
 
3183
3298
  once = false;
@@ -3211,13 +3326,16 @@
3211
3326
  // other inputs & textareas
3212
3327
  else if ( /^focusin\./i.test(event.type) ) {
3213
3328
  if ( /\-error/.test($el.parentNode.className) ) {
3214
- console.debug('#1 you just focusin ....'+$el.id, $el.value);
3329
+ console.debug('#1 you just focusin ....'+$el.id, $el.value, instance.$forms[ $el.form.getAttribute('id') ].isValidating);
3215
3330
  refreshWarning($el);
3216
3331
  }
3217
3332
  }
3218
3333
  else if ( /^focusout\./i.test(event.type) ) {
3219
3334
  if ( /\-warning/.test($el.parentNode.className) ) {
3220
3335
  console.debug('#1 you just focusout ....'+$el.id, $el.value);
3336
+ // Removed on 2025-03-16
3337
+ instance.$forms[ $el.form.getAttribute('id') ].isValidating = false;
3338
+
3221
3339
  refreshWarning($el);
3222
3340
  // in case error context is changed by another task
3223
3341
  handleErrorsDisplay($el.form, instance.$forms[ $el.form.getAttribute('id') ].errors, null, $el.name);
@@ -3226,12 +3344,86 @@
3226
3344
  else if ( /^keyup\./i.test(event.type) ) {
3227
3345
  $el.ginaFormValidatorTestedValue = $el.value;
3228
3346
  liveCheckTimer = setTimeout( function onLiveCheckTimer() {
3229
- // do not trigger for copy/paste event
3230
- if ( ['91', '17'].indexOf(''+event.keyCode) > -1 && keyboardMapping.count() == 0) {
3347
+ // Do not trigger for copy/paste event
3348
+ if ( ['91', '17', '16'].indexOf(''+event.keyCode) > -1 && keyboardMapping.count() == 0) {
3231
3349
  //console.debug('mapping ', keyboardMapping);
3232
3350
  return;
3233
3351
  }
3234
- console.debug(' keyup ('+ event.keyCode +') .... '+$el.id, $el.value, ' VS ',$el.ginaFormValidatorTestedValue + '(old)');
3352
+
3353
+ // Fixed on 2025-03-16:
3354
+ // Treat TAB as focus in/out
3355
+ // if ( ['9'].indexOf(''+event.keyCode) > -1 ) {
3356
+
3357
+ // console.debug('[TAB] you just focusout from "'+ instance.$forms[ $el.form.getAttribute('id') ].lastFocused[1].id +'" to "'+ $el.id +'"');
3358
+ // var $gForm = event.target.form, gFields = null, $gFields = null, gRules = null;
3359
+ // var gValidatorInfos = getFormValidationInfos($gForm, rules);
3360
+ // gFields = gValidatorInfos.fields;
3361
+ // $gFields = gValidatorInfos.$fields;
3362
+ // var formId = $gForm.getAttribute('id');
3363
+ // gRules = instance.$forms[formId].rules;
3364
+ // // Don't be tempted to revome fields that has already been validated
3365
+ // instance.$forms[formId].isValidating = true;
3366
+ // validate($gForm, gFields, $gFields, gRules, function onSilentGlobalLiveValidation(gResult){
3367
+ // instance.$forms[formId].isValidating = false;
3368
+ // console.debug('['+ formId +'] [9] onSilentGlobalLiveValidation: '+ gResult.isValid(), gResult, gFields);
3369
+ // var isFormValid = ( gResult.isValid() && instance.$forms[formId].errors && instance.$forms[formId].errors.count() == 0 )? true : false;
3370
+ // // var isFormValid = gResult.isValid();
3371
+ // if ( envIsDev && isGFFCtx && typeof(window.ginaToolbar) != 'undefined' && window.ginaToolbar ) {
3372
+ // // update toolbar
3373
+ // if (!gina.forms.errors)
3374
+ // gina.forms.errors = {};
3375
+
3376
+ // var objCallback = {
3377
+ // id : formId,
3378
+ // errors : gResult.error || {}
3379
+ // };
3380
+
3381
+ // window.ginaToolbar.update('forms', objCallback);
3382
+ // }
3383
+
3384
+
3385
+ // if ( !isFormValid && gResult.error ) {
3386
+ // // Fixed on 2025-03-16 - we need past and live errors
3387
+ // instance.$forms[ $el.form.getAttribute('id') ].errors = merge(result.error, gResult.error);
3388
+ // // Fixed on 2025-03-16
3389
+ // for (let eField in instance.$forms[ $el.form.getAttribute('id') ].errors) {
3390
+ // refreshWarning($gFields[eField]);
3391
+ // handleErrorsDisplay($gForm, instance.$forms[ $el.form.getAttribute('id') ].errors, gResult.data, eField);
3392
+ // }
3393
+ // }
3394
+ // // Fixed on 2025-03-16
3395
+ // // Eg.: input select change impacting another element: solve `no more errors`
3396
+ // else if ( instance.$forms[formId].errors && !instance.$forms[formId].errors.count() ) {
3397
+ // // recheck if valid
3398
+ // //resetting error display
3399
+ // instance.$forms[ formId ].errors = {};
3400
+ // console.debug('resetting field: '+ $el.name);
3401
+ // liveCheckErrors[formId] = {};
3402
+ // // $form.dataset.ginaFormIsResetting = true;
3403
+ // handleErrorsDisplay($gForm, {}, null, $el.name);
3404
+ // }
3405
+
3406
+ // updateSubmitTriggerState( $gForm, isFormValid);
3407
+
3408
+ // once = false;
3409
+ // });
3410
+ // // var $previeousEl = document.getElementById(instance.$forms[ $el.form.getAttribute('id') ].lastFocused[1].id);
3411
+ // // var errors = instance.$forms[ $previeousEl.form.getAttribute('id') ].errors;
3412
+ // // var isFormValid = (!errors[$previeousEl.name]) ? true : false;
3413
+ // // console.debug('[TAB] you just focusout from "'+ instance.$forms[ $el.form.getAttribute('id') ].lastFocused[1].id +'" to "'+ $el.id +'"', "errors: ", errors);
3414
+ // // if (errors && errors.count() > 0 ) {
3415
+ // // instance.$forms[ $previeousEl.form.getAttribute('id') ].isValidating = false;
3416
+ // // isFormValid = false;
3417
+ // // }
3418
+ // // refreshWarning($previeousEl);
3419
+ // // // // in case error context is changed by another task
3420
+ // // handleErrorsDisplay($previeousEl.form, errors, null, $previeousEl.name);
3421
+ // // updateSubmitTriggerState( $el.form, isFormValid);
3422
+ // return;
3423
+ // }
3424
+
3425
+
3426
+ console.debug('[A]['+keyboardMapping.count()+'] keyup ('+ event.keyCode +') .... '+$el.id, $el.value, ' VS ',$el.ginaFormValidatorTestedValue + '(old)');
3235
3427
  processEvent();
3236
3428
  }, 1000);
3237
3429
  }
@@ -3333,14 +3525,14 @@
3333
3525
  case 46: //Delete
3334
3526
  case 8: //Backspace
3335
3527
  if (posStart != posEnd) {
3336
- $_el.value = str.substr(0, posStart) + str.substr(posEnd);
3528
+ $_el.value = str.substring(0, posStart) + str.substring(posEnd);
3337
3529
  if (posStart == 0) {
3338
- $_el.value = str.substr(posEnd);
3530
+ $_el.value = str.substring(posEnd);
3339
3531
  }
3340
3532
  } else if (posStart == 0) {
3341
3533
  $_el.value = str.substring(posStart+1);
3342
3534
  } else {
3343
- $_el.value = str.substr(0, posStart-1) + str.substr(posEnd);
3535
+ $_el.value = str.substring(0, posStart-1) + str.substring(posEnd);
3344
3536
  }
3345
3537
 
3346
3538
  e.currentTarget.setAttribute('readonly', 'readonly');
@@ -3428,14 +3620,14 @@
3428
3620
  default:
3429
3621
  // Replace selection
3430
3622
  if (posStart != posEnd) {
3431
- $_el.value = str.substr(0, posStart) + e.key;
3623
+ $_el.value = str.substring(0, posStart) + e.key;
3432
3624
  if (posEnd-1 < str.length) {
3433
3625
  $_el.value += str.substring(posEnd)
3434
3626
  }
3435
3627
  } else if (posStart == 0) {
3436
3628
  $_el.value = e.key + str.substring(posStart);
3437
3629
  } else {
3438
- $_el.value = str.substr(0, posStart) + e.key + str.substr(posEnd);
3630
+ $_el.value = str.substring(0, posStart) + e.key + str.substring(posEnd);
3439
3631
  }
3440
3632
  e.currentTarget.setAttribute('readonly', 'readonly');
3441
3633
  // Force restore last caret position
@@ -3577,24 +3769,53 @@
3577
3769
  }
3578
3770
 
3579
3771
  /**
3580
- * reBindForm - This is a WIP
3772
+ * reBindForm
3773
+ * Allows form rebinding: it is like reseting validation
3581
3774
  *
3582
- * @param {object} HTMLElement
3583
- * @param {object} rules
3584
- * @returns {object} formValidatorInstance
3775
+ * E.g.:
3776
+ * $validator
3777
+ * .getFormById('my-form-id')
3778
+ * .reBind();
3779
+ *
3780
+ * @param {string} [formId]
3781
+ * @param {string} [rules]
3782
+ * @param {callback} [cb]
3585
3783
  */
3586
- var reBindForm = function($target, rules, cb) {
3587
- // Unbind form
3588
- var formInstance = unbindForm($target);
3784
+ var reBindForm = function(formId, rules, cb) {
3785
+ var $form = null
3786
+ , _id = null
3787
+ ;
3788
+ if (
3789
+ typeof(this.target) != 'undefined'
3790
+ && /FORM/i.test(this.target.tagName)
3791
+ ) {
3792
+ _id = formId = this.target.getAttribute('id')
3793
+ } else if ( /string/i.test(typeof(formId)) ) {
3794
+ _id = formId
3795
+ }
3796
+
3797
+ if ( typeof(instance.$forms[_id]) != 'undefined') {
3798
+ $form = instance.$forms[_id];
3799
+ } else {
3800
+ throw new Error('form instance `'+ _id +'` not found');
3801
+ }
3802
+
3589
3803
  // reset errors
3590
- //resetErrorsDisplay(formInstance.id);
3804
+ resetErrorsDisplay(_id);
3805
+ // Unbind form
3806
+ unbindForm($form.target);
3591
3807
  // Bind
3592
- bindForm(formInstance.target, rules);
3808
+ if ( typeof(rule) != 'undefined' ) {
3809
+ bindForm($form.target, rules);
3810
+ } else {
3811
+ bindForm($form.target);
3812
+ }
3593
3813
 
3594
3814
  if ( cb ) {
3595
- return cb(formInstance);
3815
+ return cb($form);
3596
3816
  }
3597
- return formInstance;
3817
+
3818
+ return $form;
3598
3819
  }
3599
3820
 
3600
3821
  var unbindForm = function($target) {
@@ -3612,7 +3833,7 @@
3612
3833
 
3613
3834
  } else if ( typeof($target.target) != 'undefined' ) {
3614
3835
  $form = $target;
3615
- _id = $form.id;
3836
+ _id = ( $target.getAttribute && $target.getAttribute('id') ) ? $form.getAttribute('id') : $form.id;
3616
3837
  } else {
3617
3838
  throw new Error('Validator::unbindForm($target): `$target` must be a DOM element\n'+err.stack )
3618
3839
  }
@@ -3651,7 +3872,7 @@
3651
3872
  // submit buttons
3652
3873
  $elTMP = $form.target.getElementsByTagName('button');
3653
3874
  if ( $elTMP.length > 0 ) {
3654
- for(let i = 0, len = $elTMP.length; i < len; ++i) {
3875
+ for (let i = 0, len = $elTMP.length; i < len; ++i) {
3655
3876
  // if button is != type="submit", you will need to provide : data-gina-form-submit
3656
3877
  // TODO - On button binding, you can then provide data-gina-form-action & data-gina-form-method
3657
3878
  $els.push($elTMP[i])
@@ -3661,7 +3882,7 @@
3661
3882
  // submit links
3662
3883
  $elTMP = $form.target.getElementsByTagName('a');
3663
3884
  if ( $elTMP.length > 0 ) {
3664
- for(let i = 0, len = $elTMP.length; i < len; ++i) {
3885
+ for (let i = 0, len = $elTMP.length; i < len; ++i) {
3665
3886
  $els.push($elTMP[i])
3666
3887
  }
3667
3888
  }
@@ -3717,7 +3938,7 @@
3717
3938
  // textarea
3718
3939
  $elTMP = $form.target.getElementsByTagName('textarea');
3719
3940
  if ( $elTMP.length > 0 ) {
3720
- for(let i = 0, len = $elTMP.length; i < len; ++i) {
3941
+ for (let i = 0, len = $elTMP.length; i < len; ++i) {
3721
3942
  $els.push( $elTMP[i] )
3722
3943
  }
3723
3944
  }
@@ -3726,7 +3947,7 @@
3726
3947
  // forms inside main form
3727
3948
  $elTMP = $form.target.getElementsByTagName('form');
3728
3949
  if ( $elTMP.length > 0 ) {
3729
- for(let i = 0, len = $elTMP.length; i < len; ++i) {
3950
+ for (let i = 0, len = $elTMP.length; i < len; ++i) {
3730
3951
  $els.push( $elTMP[i] )
3731
3952
  }
3732
3953
  }
@@ -3811,8 +4032,10 @@
3811
4032
  /**
3812
4033
  * bindForm
3813
4034
  *
3814
- * @param {object} $target - DOM element
3815
- * @param {object} [customRule]
4035
+ * @param {object} [$target] - DOM element
4036
+ * @param {object|string} [customRule]
4037
+ *
4038
+ * @return {object} bindedForm
3816
4039
  * */
3817
4040
  var bindForm = function($target, customRule) {
3818
4041
 
@@ -3821,23 +4044,32 @@
3821
4044
  , rules = ( typeof(local.rules.count() > 0 ) ) ? local.rules : instance.rules
3822
4045
  ;
3823
4046
 
3824
- try {
3825
- if ( $target.getAttribute && $target.getAttribute('id') ) {
3826
- _id = $target.getAttribute('id');
3827
- if ( typeof(instance.$forms[_id]) != 'undefined')
3828
- $form = instance.$forms[_id];
3829
- else
3830
- throw new Error('form instance `'+ _id +'` not found');
4047
+ if (
4048
+ typeof($target) == 'undefined'
4049
+ && typeof(this.target) != 'undefined'
4050
+ && /FORM/i.test(this.target.tagName)
4051
+ ||
4052
+ !/object/i.test( typeof($target) )
4053
+ ) {
4054
+ _id = this.target.id || this.target.getAttribute('id');
4055
+ } else if ( /string/i.test(typeof($target)) ) {
4056
+ _id = $target
4057
+ } else {
4058
+ _id = $target.getAttribute('id')
4059
+ }
3831
4060
 
4061
+ try {
4062
+ if ( typeof(instance.$forms[_id]) != 'undefined') {
4063
+ $form = instance.$forms[_id];
4064
+ if ( typeof($form.target) == 'undefined' ) {
4065
+ throw new Error('Validator::bindForm($target, customRule): `$target` must be a DOM element\n');
4066
+ }
4067
+ $target = $form.target;
3832
4068
  } else {
3833
- throw new Error('Validator::bindForm($target, customRule): `$target` must be a DOM element\n'+err.stack )
4069
+ throw new Error('form instance `'+ _id +'` not found');
3834
4070
  }
3835
4071
  } catch(err) {
3836
- throw new Error('Validator::bindForm($target, customRule) could not bind form `'+ $target +'`\n'+err.stack )
3837
- }
3838
-
3839
- if ( typeof($form) != 'undefined' && $form.binded) {
3840
- return false
4072
+ throw new Error('Validator::bindForm($target, customRule) could not bind form `'+ $target +'`\n'+err.stack );
3841
4073
  }
3842
4074
 
3843
4075
  console.debug('binding for: '+ _id);
@@ -4143,7 +4375,7 @@
4143
4375
  } else if ( /img/i.test($els[i].tagName) ) {
4144
4376
  $img = $els[i];
4145
4377
  deleteLinkId = uploadTriggerId + '-'+index+'-delete-trigger';
4146
- let file = $img.src.substr($img.src.lastIndexOf('/')+1);
4378
+ let file = $img.src.substring($img.src.lastIndexOf('/')+1);
4147
4379
  $uploadTrigger.customFiles.push({
4148
4380
  name: file,
4149
4381
  deleteLinkId: deleteLinkId
@@ -4535,7 +4767,16 @@
4535
4767
  validate($gForm, gFields, $gFields, gRules, function onSilentGlobalLiveValidation(gResult){
4536
4768
  instance.$forms[formId].isValidating = false;
4537
4769
  console.debug('[updateSelect]: onSilentGlobalLiveValidation: '+ gResult.isValid(), gResult);
4770
+ // Fixed on 2025-03-16
4538
4771
  var isFormValid = gResult.isValid();
4772
+ if (!isFormValid) {
4773
+ instance.$forms[formId].errors = gResult.error;
4774
+ for (let eField in gResult.error) {
4775
+ // refreshWarning($gFields[eField]);
4776
+ handleErrorsDisplay($gForm, gResult.error, gResult.data, eField);
4777
+ }
4778
+ }
4779
+
4539
4780
  updateSubmitTriggerState( $gForm, isFormValid);
4540
4781
  once = false;
4541
4782
  })
@@ -5129,6 +5370,25 @@
5129
5370
  if (gina.events[_evt]) {
5130
5371
  cancelEvent(event);
5131
5372
 
5373
+ // Fixed on 2025-03-05 - "last focus" vs "current focus"
5374
+ // To get active element: document.activeElement
5375
+ var formId = event.target.form.getAttribute('id') || event.currentTarget.getAttribute('id');
5376
+ var lastFocused = {
5377
+ id : $el.id,
5378
+ name: $el.name
5379
+ };
5380
+ if (!instance.$forms[formId].lastFocused.length) {
5381
+ instance.$forms[formId].lastFocused[0] = lastFocused;
5382
+ } else {
5383
+ instance.$forms[formId].lastFocused.splice(0,0,lastFocused);
5384
+ }
5385
+ lastFocused = ( typeof(instance.$forms[formId].lastFocused[1]) != 'undefined' ) ? instance.$forms[formId].lastFocused[1].id : null;
5386
+
5387
+ // cleanup
5388
+ instance.$forms[formId].lastFocused.splice(2);
5389
+
5390
+ // console.debug('lastFocused: ', lastFocused, ' VS current: ', $el.id);
5391
+
5132
5392
  triggerEvent(gina, $el, _evt, event.detail);
5133
5393
  }
5134
5394
  });
@@ -5445,7 +5705,7 @@
5445
5705
  ;
5446
5706
  $buttonsTMP = $target.getElementsByTagName('button');
5447
5707
  if ( $buttonsTMP.length > 0 ) {
5448
- for(let b = 0, len = $buttonsTMP.length; b < len; ++b) {
5708
+ for (let b = 0, len = $buttonsTMP.length; b < len; ++b) {
5449
5709
  if ($buttonsTMP[b].type == 'submit') {
5450
5710
  $buttons.push($buttonsTMP[b])
5451
5711
  }
@@ -5455,7 +5715,7 @@
5455
5715
  // binding links
5456
5716
  $buttonsTMP = $target.getElementsByTagName('a');
5457
5717
  if ( $buttonsTMP.length > 0 ) {
5458
- for(let b = 0, len = $buttonsTMP.length; b < len; ++b) {
5718
+ for (let b = 0, len = $buttonsTMP.length; b < len; ++b) {
5459
5719
  if ( $buttonsTMP[b].attributes.getNamedItem('data-gina-form-submit') ) {
5460
5720
  $buttons.push($buttonsTMP[b])
5461
5721
  } else if (
@@ -5712,7 +5972,8 @@
5712
5972
  }
5713
5973
  updateSubmitTriggerState( $form, result.isValid() );
5714
5974
  });
5715
- } else if (!/^(true)$/i.test($form.target.dataset.ginaFormLiveCheckEnabled) ) {
5975
+ }
5976
+ else if (!/^(true)$/i.test($form.target.dataset.ginaFormLiveCheckEnabled) ) {
5716
5977
  updateSubmitTriggerState( $form , true );
5717
5978
  }
5718
5979
 
@@ -6175,7 +6436,8 @@
6175
6436
  if ( !/^form$/i.test($formOrElement.tagName) ) {
6176
6437
  $currentForm = $formOrElement.form;
6177
6438
  }
6178
- var formId = $currentForm.getAttribute('id');
6439
+ var formId = $currentForm.getAttribute('id');
6440
+ var isFormValid = null;
6179
6441
 
6180
6442
  if (
6181
6443
  hasParsedAllRules
@@ -6196,10 +6458,16 @@
6196
6458
  if ( typeof(instance.$forms[formId].errors) == 'undefined' ) {
6197
6459
  instance.$forms[formId].errors = {}
6198
6460
  }
6461
+ // Fixed on 2025-03-16
6462
+ if ( typeof(cb._errors[field]) != 'undefined' ) {
6463
+ instance.$forms[formId].errors[field] = cb._errors[field];
6464
+ }
6465
+ console.debug('[A] Refreshing warning/error on field '+ field);
6466
+ if (
6467
+ !isFormValid && /^true|false$/i.test(instance.$forms[formId].isValidating)
6468
+ || d[field].target.value != ''
6199
6469
 
6200
- instance.$forms[formId].errors[field] = cb._errors[field];
6201
-
6202
- if (!isFormValid && /^true|false$/i.test(instance.$forms[formId].isValidating) || d[field].target.value != '' ) {
6470
+ ) {
6203
6471
  refreshWarning($allFields[field]);
6204
6472
  handleErrorsDisplay($currentForm, cb._errors, cb._data, field);
6205
6473
  updateSubmitTriggerState( $currentForm, isFormValid);
@@ -6207,8 +6475,9 @@
6207
6475
 
6208
6476
  if ( envIsDev && isGFFCtx && typeof(window.ginaToolbar) != 'undefined' && window.ginaToolbar ) {
6209
6477
  // update toolbar
6210
- if (!gina.forms.errors)
6478
+ if (!gina.forms.errors) {
6211
6479
  gina.forms.errors = {};
6480
+ }
6212
6481
 
6213
6482
  var objCallback = {
6214
6483
  id : formId,
@@ -6225,13 +6494,13 @@
6225
6494
  }
6226
6495
 
6227
6496
  // is this the last or the only field to be validated ?
6228
- var needsGlobalReValidation = false, isFormValid = null;
6497
+ var needsGlobalReValidation = false;
6229
6498
  if ( listedFields.length == 1 || listedFields[listedFields.length-1] == field) {
6230
6499
  // trigger end of validation
6231
6500
  // console.debug(field +' is the last element to be validated for formId: '+ formId, cb._errors, instance.$forms[formId].errors);
6232
6501
  isFormValid = ( cb._errors.count() > 0 ) ? false : true;
6233
6502
  if (!isFormValid && /^true|false$/i.test(instance.$forms[formId].isValidating)) {
6234
- //console.debug('should update error display now ', cb._errors);
6503
+ console.debug('[1] Should update error display now ', cb._errors);
6235
6504
  instance.$forms[formId].errors = merge(cb._errors, instance.$forms[formId].errors);
6236
6505
  refreshWarning($allFields[field]);
6237
6506
  handleErrorsDisplay($currentForm, cb._errors, cb._data, field);
@@ -6263,8 +6532,6 @@
6263
6532
  window.ginaToolbar.update('forms', objCallback);
6264
6533
  }
6265
6534
 
6266
-
6267
-
6268
6535
  handleErrorsDisplay($currentForm, gResult.error, gResult.data, field);
6269
6536
  updateSubmitTriggerState( $currentForm, isFormValid);
6270
6537
  })
@@ -6408,7 +6675,7 @@
6408
6675
 
6409
6676
  for (var c in rules) {
6410
6677
  if (!/^\_case\_/.test(c) ) continue;
6411
- if ( typeof(rules[c].conditions) == 'undefined' || Array.isArray(rules[c].conditions) && !rules[c].conditions.length ) continue;
6678
+ if ( typeof(rules[c].conditions) == 'undefined' || Array.isArray(rules[c].conditions) && !rules[c].conditions.length ) continue;
6412
6679
  if ( typeof(rules[c].conditions[0].rules) == 'undefined' ) continue;
6413
6680
 
6414
6681
 
@@ -6590,7 +6857,14 @@
6590
6857
  // filtering conditions
6591
6858
  for (var _c = 0, _cLen = rules[c].conditions.length; _c < _cLen; ++_c) {
6592
6859
 
6593
- if (rules[c].conditions[_c].case != caseValue) {
6860
+ if (
6861
+ Array.isArray(rules[c].conditions[_c].case)
6862
+ && rules[c].conditions[_c].case.indexOf(caseValue) == -1
6863
+ ||
6864
+ !Array.isArray(rules[c].conditions[_c].case)
6865
+ && rules[c].conditions[_c].case != caseValue
6866
+
6867
+ ) {
6594
6868
  continue;
6595
6869
  }
6596
6870
 
@@ -6735,7 +7009,8 @@
6735
7009
  if (
6736
7010
  conditions[c]['case'] === caseValue
6737
7011
  ||
6738
- Array.isArray(conditions[c]['case']) && conditions[c]['case'].indexOf(caseValue) > -1
7012
+ Array.isArray(conditions[c]['case'])
7013
+ && conditions[c]['case'].indexOf(caseValue) > -1
6739
7014
  ||
6740
7015
  /^\//.test(conditions[c]['case'])
6741
7016
  ) {
@@ -6852,8 +7127,6 @@
6852
7127
  }
6853
7128
  --i;
6854
7129
  }
6855
-
6856
-
6857
7130
  } // EO for
6858
7131
  }
6859
7132
 
@@ -6874,7 +7147,7 @@
6874
7147
  }
6875
7148
 
6876
7149
  if (isGFFCtx)
6877
- $fields[field].setAttribute('data-gina-form-errors', fieldErrorsAttributes[field].substr(0, fieldErrorsAttributes[field].length-1))
7150
+ $fields[field].setAttribute('data-gina-form-errors', fieldErrorsAttributes[field].substring(0, fieldErrorsAttributes[field].length-1))
6878
7151
  }
6879
7152
 
6880
7153
  //calling back
@@ -6945,6 +7218,8 @@
6945
7218
  'data' : formatData( _data )
6946
7219
  });
6947
7220
  removeListener(gina, event.target, 'validated.' + event.target.id);
7221
+
7222
+
6948
7223
  return
6949
7224
  }
6950
7225
  });