gina 0.1.6-alpha.12 → 0.1.6-alpha.120

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 +16 -2
  5. package/bin/gina +29 -1
  6. package/framework/{v0.1.6-alpha.12/lib/inherits → v0.1.6-alpha.120}/LICENSE +1 -1
  7. package/framework/v0.1.6-alpha.120/VERSION +1 -0
  8. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/asset/plugin/README.md +1 -0
  9. package/framework/v0.1.6-alpha.120/core/asset/plugin/dist/vendor/gina/css/gina.min.css.map +1 -0
  10. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/asset/plugin/dist/vendor/gina/html/toolbar.html +1 -1
  11. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/asset/plugin/dist/vendor/gina/js/gina.js +617 -233
  12. package/framework/v0.1.6-alpha.120/core/asset/plugin/dist/vendor/gina/js/gina.min.js +778 -0
  13. package/framework/v0.1.6-alpha.120/core/asset/plugin/dist/vendor/gina/js/gina.min.js.map +8 -0
  14. package/framework/v0.1.6-alpha.120/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +8 -0
  15. package/framework/v0.1.6-alpha.120/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.map +8 -0
  16. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/config.js +157 -74
  17. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/connectors/couchbase/index.js +108 -26
  18. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/connectors/couchbase/lib/connector.v4.js +124 -22
  19. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/controller/controller.js +683 -163
  20. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/controller/index.js +2 -2
  21. package/framework/v0.1.6-alpha.120/core/deps/busboy-1.6.0/.github/workflows/ci.yml +24 -0
  22. package/framework/v0.1.6-alpha.120/core/deps/busboy-1.6.0/.github/workflows/lint.yml +23 -0
  23. package/framework/v0.1.6-alpha.120/core/deps/busboy-1.6.0/README.md +191 -0
  24. package/framework/v0.1.6-alpha.120/core/deps/busboy-1.6.0/bench/bench-multipart-fields-100mb-big.js +149 -0
  25. package/framework/v0.1.6-alpha.120/core/deps/busboy-1.6.0/bench/bench-multipart-fields-100mb-small.js +143 -0
  26. package/framework/v0.1.6-alpha.120/core/deps/busboy-1.6.0/bench/bench-multipart-files-100mb-big.js +154 -0
  27. package/framework/v0.1.6-alpha.120/core/deps/busboy-1.6.0/bench/bench-multipart-files-100mb-small.js +148 -0
  28. package/framework/v0.1.6-alpha.120/core/deps/busboy-1.6.0/bench/bench-urlencoded-fields-100pairs-small.js +101 -0
  29. package/framework/v0.1.6-alpha.120/core/deps/busboy-1.6.0/bench/bench-urlencoded-fields-900pairs-small-alt.js +84 -0
  30. package/framework/v0.1.6-alpha.120/core/deps/busboy-1.6.0/lib/index.js +57 -0
  31. package/framework/v0.1.6-alpha.120/core/deps/busboy-1.6.0/lib/types/multipart.js +680 -0
  32. package/framework/v0.1.6-alpha.120/core/deps/busboy-1.6.0/lib/types/urlencoded.js +350 -0
  33. package/framework/v0.1.6-alpha.120/core/deps/busboy-1.6.0/lib/utils.js +596 -0
  34. package/framework/v0.1.6-alpha.120/core/deps/busboy-1.6.0/package.json +22 -0
  35. package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/.travis.yml +4 -0
  36. package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/LICENSE +21 -0
  37. package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/example/bool.js +10 -0
  38. package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/example/boolean_double.js +7 -0
  39. package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/example/boolean_single.js +7 -0
  40. package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/example/default_hash.js +8 -0
  41. package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/example/default_singles.js +7 -0
  42. package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/example/divide.js +8 -0
  43. package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/example/line_count.js +20 -0
  44. package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/example/line_count_options.js +29 -0
  45. package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/example/line_count_wrap.js +29 -0
  46. package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/example/nonopt.js +4 -0
  47. package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/example/reflect.js +2 -0
  48. package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/example/short.js +3 -0
  49. package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/example/string.js +11 -0
  50. package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/example/usage-options.js +19 -0
  51. package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/example/xup.js +10 -0
  52. package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/index.js +343 -0
  53. package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/package.json +31 -0
  54. package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/package.json.dist +39 -0
  55. package/framework/v0.1.6-alpha.120/core/deps/optimist-0.6.1/readme.markdown +513 -0
  56. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/HISTORY.md +498 -0
  57. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/LICENSE +7 -0
  58. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/README.md +88 -0
  59. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/bin/swig.js +161 -0
  60. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/bin/swig.js.dist +161 -0
  61. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/dist/swig.min.js +7 -0
  62. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/dist/swig.min.js.map +8 -0
  63. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/index.js +1 -0
  64. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/dateformatter.js +198 -0
  65. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/filters.js +630 -0
  66. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/lexer.js +306 -0
  67. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/loaders/filesystem.js +59 -0
  68. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/loaders/index.js +53 -0
  69. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/loaders/memory.js +63 -0
  70. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/parser.js +744 -0
  71. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/swig.js +740 -0
  72. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/tags/autoescape.js +37 -0
  73. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/tags/block.js +25 -0
  74. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/tags/else.js +25 -0
  75. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/tags/elseif.js +28 -0
  76. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/tags/extends.js +19 -0
  77. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/tags/filter.js +68 -0
  78. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/tags/for.js +130 -0
  79. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/tags/if.js +86 -0
  80. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/tags/import.js +91 -0
  81. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/tags/include.js +100 -0
  82. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/tags/index.js +16 -0
  83. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/tags/macro.js +79 -0
  84. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/tags/parent.js +51 -0
  85. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/tags/raw.js +23 -0
  86. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/tags/set.js +109 -0
  87. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/tags/spaceless.js +42 -0
  88. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/lib/utils.js +184 -0
  89. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/package.json +57 -0
  90. package/framework/v0.1.6-alpha.120/core/deps/swig-1.4.2/package.json.dist +61 -0
  91. package/framework/v0.1.6-alpha.120/core/deps/swig-client/swig.js +5031 -0
  92. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/dev/index.js +1 -1
  93. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/dev/lib/factory.js +1 -1
  94. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/gna.js +104 -22
  95. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/locales/index.js +3 -3
  96. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/locales/src/make.js +1 -1
  97. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/mime.types +1 -0
  98. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/model/entity.js +5 -5
  99. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/model/index.js +30 -26
  100. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/model/template/entityFactory.js +1 -1
  101. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/model/template/index.js +1 -1
  102. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/index.js +3 -3
  103. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/lib/file/package.json +2 -2
  104. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/lib/intl/package.json +2 -2
  105. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/lib/storage/package.json +2 -2
  106. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/lib/validator/package.json +2 -2
  107. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/lib/validator/src/form-validator.js +39 -27
  108. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/lib/validator/src/main.js +388 -101
  109. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/router.js +92 -47
  110. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/server.isaac.js +91 -10
  111. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/server.js +317 -130
  112. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/status.codes +1 -11
  113. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle/controllers/setup.js +2 -2
  114. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/command/gina.tpl +1 -1
  115. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/conf/env.json +19 -0
  116. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/conf/templates.json +4 -2
  117. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/console.js +1 -1
  118. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/context.js +29 -12
  119. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/data/package.json +2 -2
  120. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/data/src/main.js +1 -1
  121. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/dateFormat.js +1 -1
  122. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/index.js +1 -1
  123. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/json/package.json +2 -2
  124. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/json/src/main.js +6 -4
  125. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/path.js +31 -15
  126. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/plugins/package.json +2 -2
  127. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/plugins/src/api-error.js +2 -2
  128. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/plugins/src/main.js +1 -1
  129. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/task.js +2 -2
  130. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/text.js +1 -1
  131. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/archiver/package.json +2 -2
  132. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/archiver/src/main.js +11 -11
  133. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/bundle/add.js +2 -1
  134. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/bundle/start.js +21 -8
  135. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/env/get.js +1 -1
  136. package/framework/v0.1.6-alpha.120/lib/cmd/env/help.js +30 -0
  137. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/build.js +1 -1
  138. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/dot.js +21 -0
  139. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/init.js +18 -0
  140. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/link-node-modules.js +2 -3
  141. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/link.js +1 -0
  142. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/tail.js +28 -11
  143. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/version.js +15 -1
  144. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/helper.js +6 -2
  145. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/index.js +1 -1
  146. package/framework/v0.1.6-alpha.120/lib/cmd/minion/help.txt +18 -0
  147. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/project/add.js +3 -2
  148. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/project/build.js +4 -4
  149. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/project/list.js +1 -1
  150. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/protocol/list.js +71 -50
  151. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/collection/package.json +2 -2
  152. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/collection/src/main.js +20 -14
  153. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/config.js +1 -1
  154. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cron/package.json +2 -2
  155. package/framework/v0.1.6-alpha.120/lib/domain/dist/2025-03-14_13-41-20_UTC.dat +15754 -0
  156. package/framework/v0.1.6-alpha.120/lib/domain/dist/public_suffix_list.dat +15754 -0
  157. package/framework/v0.1.6-alpha.120/lib/domain/exemples/backend.js +12 -0
  158. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/domain/package.json +2 -2
  159. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/domain/src/main.js +20 -6
  160. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/generator/index.js +1 -1
  161. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/index.js +1 -1
  162. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120/lib/inherits}/LICENSE +1 -1
  163. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/inherits/package.json +2 -2
  164. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/inherits/src/main.js +1 -1
  165. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/logger/package.json +2 -2
  166. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/logger/src/containers/mq/listener.js +10 -2
  167. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/logger/src/helper.js +1 -1
  168. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/logger/src/main.js +1 -1
  169. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/math/index.js +1 -1
  170. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/merge/package.json +2 -2
  171. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/model.js +3 -3
  172. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/proc.js +10 -2
  173. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/routing/package.json +2 -2
  174. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/routing/src/main.js +72 -25
  175. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/session-store.js +3 -3
  176. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/swig-filters/package.json +2 -2
  177. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/swig-filters/src/main.js +70 -15
  178. package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/validator.js +2 -2
  179. package/framework/v0.1.6-alpha.120/package.json +11 -0
  180. package/package.json +3 -3
  181. package/resources/package.json.template +1 -1
  182. package/script/post_install.js +1 -1
  183. package/script/pre_install.js +1 -1
  184. package/utils/helper.js +33 -9
  185. package/framework/v0.1.6-alpha.12/VERSION +0 -1
  186. package/framework/v0.1.6-alpha.12/core/asset/plugin/dist/vendor/gina/css/gina.min.css.map +0 -1
  187. package/framework/v0.1.6-alpha.12/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -766
  188. package/framework/v0.1.6-alpha.12/core/asset/plugin/dist/vendor/gina/js/gina.min.js.map +0 -8
  189. package/framework/v0.1.6-alpha.12/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -7
  190. package/framework/v0.1.6-alpha.12/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.map +0 -8
  191. package/framework/v0.1.6-alpha.12/core/deps/busboy/.travis.yml +0 -17
  192. package/framework/v0.1.6-alpha.12/core/deps/busboy/README.md +0 -225
  193. package/framework/v0.1.6-alpha.12/core/deps/busboy/deps/encoding/encoding-indexes.js +0 -73
  194. package/framework/v0.1.6-alpha.12/core/deps/busboy/deps/encoding/encoding.js +0 -2391
  195. package/framework/v0.1.6-alpha.12/core/deps/busboy/lib/main.js +0 -89
  196. package/framework/v0.1.6-alpha.12/core/deps/busboy/lib/types/multipart.js +0 -328
  197. package/framework/v0.1.6-alpha.12/core/deps/busboy/lib/types/urlencoded.js +0 -214
  198. package/framework/v0.1.6-alpha.12/core/deps/busboy/lib/utils.js +0 -191
  199. package/framework/v0.1.6-alpha.12/core/deps/busboy/package.json +0 -69
  200. package/framework/v0.1.6-alpha.12/lib/domain/dist/public_suffix_list.dat +0 -14186
  201. package/framework/v0.1.6-alpha.12/lib/domain/exemples/backend.js +0 -0
  202. package/framework/v0.1.6-alpha.12/package.json +0 -14
  203. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/AUTHORS +0 -0
  204. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/asset/html/nolayout.html +0 -0
  205. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/asset/html/static.html +0 -0
  206. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/asset/img/android-chrome-192x192.png +0 -0
  207. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/asset/img/android-chrome-512x512.png +0 -0
  208. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/asset/img/apple-touch-icon.png +0 -0
  209. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/asset/img/favicon-16x16.png +0 -0
  210. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/asset/img/favicon-32x32.png +0 -0
  211. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/asset/img/favicon.ico +0 -0
  212. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  213. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/asset/plugin/uuid.json +0 -0
  214. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/connectors/couchbase/lib/connector.js +0 -0
  215. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/connectors/couchbase/lib/connector.v2.js +0 -0
  216. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  217. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/connectors/couchbase/lib/n1ql.js +0 -0
  218. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/connectors/couchbase/lib/session-store.js +0 -0
  219. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/connectors/couchbase/lib/session-store.v2.js +0 -0
  220. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  221. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/connectors/couchbase/lib/session-store.v4.js +0 -0
  222. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/controller/controller.framework.js +0 -0
  223. /package/framework/{v0.1.6-alpha.12/core/deps/busboy → v0.1.6-alpha.120/core/deps/busboy-1.6.0}/LICENSE +0 -0
  224. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/deps/swig-client/swig-2.0.0.min.js +0 -0
  225. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/dev/lib/class.js +0 -0
  226. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/dev/lib/tools.js +0 -0
  227. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/locales/README.md +0 -0
  228. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/locales/currency.json +0 -0
  229. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/locales/dist/language/en.json +0 -0
  230. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/locales/dist/language/fr.json +0 -0
  231. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/locales/dist/region/en.json +0 -0
  232. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/locales/dist/region/fr.json +0 -0
  233. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/locales/src/resources/currency.csv +0 -0
  234. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/locales/src/resources/region.csv +0 -0
  235. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/locales/src/resources/region.mapping.json +0 -0
  236. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/README.md +0 -0
  237. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/lib/file/README.md +0 -0
  238. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/lib/file/build.json +0 -0
  239. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/lib/intl/README.md +0 -0
  240. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/lib/intl/build.json +0 -0
  241. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/lib/intl/src/main.js +0 -0
  242. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/lib/storage/README.md +0 -0
  243. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/lib/storage/build.json +0 -0
  244. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/lib/storage/src/main.js +0 -0
  245. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/lib/validator/README.md +0 -0
  246. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/plugins/lib/validator/build.json +0 -0
  247. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/server.express.js +0 -0
  248. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/_gitignore +0 -0
  249. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle/config/app.json +0 -0
  250. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle/config/routing.json +0 -0
  251. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle/config/settings.json +0 -0
  252. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  253. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle/config/templates.json +0 -0
  254. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  255. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  256. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle/index.js +0 -0
  257. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  258. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  259. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  260. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  261. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  262. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle_public/readme.md +0 -0
  263. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  264. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  265. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  266. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  267. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  268. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/command/gina.bat.tpl +0 -0
  269. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/conf/manifest.json +0 -0
  270. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/conf/package.json +0 -0
  271. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/conf/settings.json +0 -0
  272. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/conf/statics.json +0 -0
  273. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/error/client/json/401.json +0 -0
  274. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/error/client/json/403.json +0 -0
  275. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/error/client/json/404.json +0 -0
  276. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/error/server/html/50x.html +0 -0
  277. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/error/server/json/500.json +0 -0
  278. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/error/server/json/503.json +0 -0
  279. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/core/template/extensions/logger/config.json +0 -0
  280. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/data/LICENSE +0 -0
  281. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/data/README.md +0 -0
  282. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/json/LICENSE +0 -0
  283. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/json/README.md +0 -0
  284. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/plugins/README.md +0 -0
  285. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/helpers/prototypes.js +0 -0
  286. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/archiver/README.md +0 -0
  287. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/archiver/build.json +0 -0
  288. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/archiver/src/dep/jszip.min.js +0 -0
  289. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/aliases.json +0 -0
  290. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/bundle/arguments.json +0 -0
  291. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/bundle/copy.js +0 -0
  292. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/bundle/cp.js +0 -0
  293. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/bundle/help.js +0 -0
  294. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/bundle/help.txt +0 -0
  295. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/bundle/list.js +0 -0
  296. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/bundle/remove.js +0 -0
  297. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/bundle/rename.js +0 -0
  298. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/bundle/restart.js +0 -0
  299. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/bundle/rm.js +0 -0
  300. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/bundle/status.js +0 -0
  301. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/bundle/stop.js +0 -0
  302. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/env/add.js +0 -0
  303. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/env/help.txt +0 -0
  304. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/env/link-dev.js +0 -0
  305. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/env/list.js +0 -0
  306. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/env/remove.js +0 -0
  307. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/env/rm.js +0 -0
  308. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/env/set.js +0 -0
  309. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/env/unset.js +0 -0
  310. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/env/use.js +0 -0
  311. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/get.js +0 -0
  312. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/help.js +0 -0
  313. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/help.txt +0 -0
  314. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/msg.json +0 -0
  315. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/open.js +0 -0
  316. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/restart.js +0 -0
  317. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/set.js +0 -0
  318. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/start.js +0 -0
  319. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/status.js +0 -0
  320. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/stop.js +0 -0
  321. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/framework/update.js +0 -0
  322. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/gina-dev.1.md +0 -0
  323. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/gina-framework.1.md +0 -0
  324. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/gina.1.md +0 -0
  325. /package/framework/{v0.1.6-alpha.12/lib/cmd/env → v0.1.6-alpha.120/lib/cmd/minion}/help.js +0 -0
  326. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/msg.json +0 -0
  327. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/port/help.js +0 -0
  328. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/port/help.txt +0 -0
  329. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/port/inc/scan.js +0 -0
  330. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/port/list.js +0 -0
  331. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/port/reset.js +0 -0
  332. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/port/set.js +0 -0
  333. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/project/arguments.json +0 -0
  334. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/project/help.js +0 -0
  335. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/project/help.txt +0 -0
  336. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/project/import.js +0 -0
  337. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/project/move.js +0 -0
  338. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/project/remove.js +0 -0
  339. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/project/rename.js +0 -0
  340. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/project/restart.js +0 -0
  341. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/project/rm.js +0 -0
  342. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/project/start.js +0 -0
  343. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/project/status.js +0 -0
  344. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/project/stop.js +0 -0
  345. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/protocol/help.js +0 -0
  346. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/protocol/help.txt +0 -0
  347. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/protocol/set.js +0 -0
  348. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/scope/add.js +0 -0
  349. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/scope/help.js +0 -0
  350. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/scope/help.txt +0 -0
  351. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/scope/link-local.js +0 -0
  352. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/scope/link-production.js +0 -0
  353. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/scope/list.js +0 -0
  354. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/scope/remove.js +0 -0
  355. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/scope/rm.js +0 -0
  356. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/scope/use.js +0 -0
  357. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cmd/view/add.js +0 -0
  358. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/collection/README.md +0 -0
  359. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/collection/build.json +0 -0
  360. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cron/README.md +0 -0
  361. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/cron/src/main.js +0 -0
  362. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/domain/LICENSE +0 -0
  363. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/domain/README.md +0 -0
  364. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/domain/exemples/frontend.html +0 -0
  365. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/inherits/README.md +0 -0
  366. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/inherits/example/inheriting_eventemitter.js +0 -0
  367. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/inherits/example/protected_inheritance.js +0 -0
  368. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/inherits/example/simple_inheritance.js +0 -0
  369. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/inherits/example/super_attribute_overridden_by_child_on_init.js +0 -0
  370. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/logger/README.md +0 -0
  371. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/logger/src/containers/default/index.js +0 -0
  372. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/logger/src/containers/file/index.js +0 -0
  373. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  374. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  375. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/logger/src/containers/mq/index.js +0 -0
  376. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/logger/src/containers/mq/speaker.js +0 -0
  377. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/merge/README.md +0 -0
  378. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/merge/example/merge.js +0 -0
  379. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/merge/example/merge_2_literal objects.js +0 -0
  380. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/merge/example/merge_and_preserve_first.js +0 -0
  381. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/merge/src/main.js +0 -0
  382. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/routing/README.md +0 -0
  383. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/routing/build.json +0 -0
  384. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/shell.js +0 -0
  385. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/swig-filters/README.md +0 -0
  386. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/url/README.md +0 -0
  387. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/url/index.js +0 -0
  388. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/url/mocks.json +0 -0
  389. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/lib/url/routing.json +0 -0
  390. /package/framework/{v0.1.6-alpha.12 → v0.1.6-alpha.120}/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,
@@ -153,16 +154,16 @@
153
154
  * */
154
155
  var xhr = null;
155
156
  var xhrOptions = {
156
- 'url' : '',
157
- 'method' : 'GET',
158
- 'isSynchrone' : false,
159
- 'withCredentials': false,
160
- 'headers' : {
157
+ 'url' : '',
158
+ 'method' : 'GET',
159
+ 'isSynchrone' : false,
160
+ 'withCredentials' : false,
161
+ 'withRateLimit' : true,
162
+ 'headers' : {
161
163
  // to upload, use `multipart/form-data` for `enctype`
162
164
  'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
163
165
  // cross domain is enabled by default, but you need to setup `Access-Control-Allow-Origin`
164
166
  'X-Requested-With': 'XMLHttpRequest' // in case of cross domain origin
165
-
166
167
  }
167
168
  };
168
169
 
@@ -229,6 +230,8 @@
229
230
  var setOptions = function (options) {
230
231
  options = merge(options, xhrOptions);
231
232
  xhrOptions = options;
233
+
234
+ return this;
232
235
  }
233
236
 
234
237
 
@@ -408,22 +411,34 @@
408
411
  }
409
412
 
410
413
  var refreshWarning = function($el) {
411
- var formId = $el.form.getAttribute('id');
414
+ var formId = $el.form.id || $el.form.getAttribute('id');
415
+ var elName = $el.name || $el.form.getAttribute('name');
416
+ var currentElName = document.activeElement.name;
412
417
  if ( /^true$/i.test(instance.$forms[formId].isValidating) ) {
413
418
  return;
414
419
  }
415
420
 
416
- var $parent = $el.parentNode, isErrorMessageHidden = false;
417
- var $children = $parent.getElementsByTagName('div');
421
+ var $parent = $el.parentNode
422
+ , isErrorMessageHidden = false
423
+ , $children = $parent.getElementsByTagName('div')
424
+ ;
418
425
 
419
- if ( /form\-item\-warning/.test($parent.className) ) {
426
+ if ( /form\-item\-warning/.test($parent.className) && currentElName != elName ) {
420
427
  $parent.className = $parent.className.replace(/form\-item\-warning/, 'form-item-error');
421
428
 
422
- } else if (/form\-item\-error/.test($parent.className) ) {
429
+ } else if (/form\-item\-error/.test($parent.className) && currentElName == elName ) {
423
430
  $parent.className = $parent.className.replace(/form\-item\-error/, 'form-item-warning');
424
431
  isErrorMessageHidden = true;
425
432
  }
426
433
 
434
+ // Fixed on 2025-03-16
435
+ if (
436
+ /^true$/i.test(instance.$forms[formId].isValidating)
437
+ && !isErrorMessageHidden
438
+ ) {
439
+ return;
440
+ }
441
+
427
442
 
428
443
  for (var c = 0, cLen = $children.length; c<cLen; ++c) {
429
444
  if ( /form\-item\-error\-message/.test($children[c].className) ) {
@@ -445,7 +460,7 @@
445
460
  * @param {object} $form - Target (HTMLFormElement)
446
461
  * @param {object} errors
447
462
  * @param {object|null} data
448
- * @param {object|null} [fileName]
463
+ * @param {string|null} [fileName]
449
464
  */
450
465
  var liveCheckErrors = {}; // Per Form & Per Element
451
466
  var handleErrorsDisplay = function($form, errors, data, fieldName) {
@@ -476,7 +491,7 @@
476
491
  if ( typeof(liveCheckErrors[formId]) == 'undefined') {
477
492
  liveCheckErrors[formId] = {};
478
493
  }
479
- if (errors.count() > 0) {
494
+ if (errors && errors.count() > 0) {
480
495
  // reset field name
481
496
  liveCheckErrors[formId][fieldName] = {};
482
497
  // override
@@ -486,8 +501,29 @@
486
501
  }
487
502
  errors = liveCheckErrors[formId];
488
503
  // only if the form has not been sent yet
489
- if (!instance.$forms[formId].sent || instance.$forms[formId].isValidating) {
504
+ if (
505
+ !instance.$forms[formId].sent
506
+ ||
507
+ instance.$forms[formId].isValidating
508
+ ) {
490
509
  isWarning = true;
510
+ // Fixed on 2025-03-16
511
+ var lastFocused = instance.$forms[formId].lastFocused;
512
+ // console.debug('fieldName: '+ fieldName + '\nactiveElement: '+ document.activeElement.getAttribute('name') +'\nlastFocused: ', lastFocused);
513
+ if (
514
+ lastFocused.length > 0
515
+ && typeof(lastFocused[1]) != 'undefined'
516
+ && lastFocused[1].name == fieldName
517
+ ||
518
+ lastFocused.length > 0
519
+ && !lastFocused[1]
520
+ && document.activeElement.getAttribute('name') != lastFocused[0].name
521
+ ||
522
+ document.activeElement.getAttribute('name') != fieldName
523
+ ) {
524
+ isWarning = false;
525
+ }
526
+ // console.debug('isWarning: '+isWarning);
491
527
  }
492
528
  } else {
493
529
  if ( typeof(liveCheckErrors[formId][fieldName]) != 'undefined') {
@@ -551,7 +587,11 @@
551
587
 
552
588
  if (!name) continue;
553
589
 
554
- if ( typeof(errors[name]) != 'undefined' && !/(form\-item\-error|form\-item\-warning)/.test($parent.className) ) {
590
+ if (
591
+ errors
592
+ && typeof(errors[name]) != 'undefined'
593
+ && !/(form\-item\-error|form\-item\-warning)/.test($parent.className)
594
+ ) {
555
595
 
556
596
  if (isWarning) {
557
597
  // adding warning class
@@ -592,7 +632,24 @@
592
632
 
593
633
 
594
634
 
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) ) {
635
+ } else if (
636
+ errors
637
+ && typeof(errors[name]) == 'undefined'
638
+ && /(form\-item\-error|form\-item\-warning)/.test($parent.className)
639
+ ||
640
+ errors
641
+ && typeof(errors[name]) != 'undefined' && errors[name].count() == 0
642
+ && /(form\-item\-error|form\-item\-warning)/.test($parent.className)
643
+ ) {
644
+ // Fixed on 2025-03-10
645
+ // targeted field must be the active element
646
+ // if (
647
+ // document.activeElement.getAttribute('name') != fieldName
648
+ // && errors.count() > 0
649
+ // ) {
650
+ // break
651
+ // }
652
+ console.debug('[handleErrorsDisplay] Resetting when not in error');
596
653
  // reset when not in error
597
654
  // remove child elements
598
655
  var $children = $parent.getElementsByTagName('div');
@@ -606,16 +663,34 @@
606
663
 
607
664
  $parent.className = $parent.className.replace(/(\s+form\-item\-error|form\-item\-error|\s+form\-item\-warning|form\-item\-warning)/, '');
608
665
 
609
- } else if ( typeof(errors[name]) != 'undefined' && errAttr) {
666
+ } else if (
667
+ errors.count() > 0
668
+ && typeof(errors[name]) != 'undefined'
669
+ && errAttr
670
+ ) {
610
671
  // refreshing already displayed error on msg update
611
672
  var $divs = $parent.getElementsByTagName('div');
612
673
  for (var d = 0, dLen = $divs.length; d<dLen; ++d) {
613
- if ($divs[d].className == 'form-item-error-message') {
674
+ // Fixed on 2025-03-05: className can have more than one !!
675
+ let foundMessage = $divs[d].className.match("form-item-error-message");
676
+ if (
677
+ foundMessage
678
+ && typeof(foundMessage.length) != 'undefined'
679
+ && foundMessage.length > 0
680
+ ) {
614
681
 
615
682
  $divs[d].parentElement.removeChild($divs[d]);
616
683
  $err = document.createElement('div');
617
684
  $err.setAttribute('class', 'form-item-error-message');
618
685
 
686
+ // Fixed on 2025-03-09: className cleanup
687
+ if (
688
+ !isWarning
689
+ && /(\s+form\-item\-warning|form\-item\-warning)/.test($parent.className)
690
+ ) {
691
+ $parent.className = $parent.className.replace(/(\s+form\-item\-warning|form\-item\-warning)/, ' form-item-error');
692
+ }
693
+
619
694
  // injecting error messages
620
695
  // {
621
696
  // field: {
@@ -640,12 +715,17 @@
640
715
  }
641
716
  }
642
717
 
643
- if ($err && $target.type != 'hidden')
718
+ if ($err && $target.type != 'hidden') {
644
719
  insertAfter($target, $err);
645
-
720
+ }
646
721
  }
647
722
 
648
- if (typeof(fieldName) != 'undefined' && fieldName === $el.name) break;
723
+ if (
724
+ typeof(fieldName) != 'undefined'
725
+ && fieldName === $el.name
726
+ ) {
727
+ break;
728
+ }
649
729
  }
650
730
 
651
731
 
@@ -840,7 +920,7 @@
840
920
  *
841
921
  *
842
922
  * @param {object} data - FormData object (https://developer.mozilla.org/en-US/docs/Web/API/FormData/Using_FormData_Objects)
843
- * @param {object} [ options ] : { isSynchrone: true, withCredentials: true }
923
+ * @param {object} [ options ] : { isSynchrone: false, withCredentials: true, withRateLimit: true }
844
924
  * */
845
925
  var send = function(data, options) {
846
926
 
@@ -852,19 +932,28 @@
852
932
  var isAttachment = null; // handle download
853
933
  var hFormIsRequired = null;
854
934
 
935
+ options = (typeof (options) != 'undefined') ? merge(options, xhrOptions) : xhrOptions;
936
+
937
+ // Rate Limit to one request at the time
938
+ // Attention: this should be an option
939
+ // the request needs to be completed before another can be made
940
+ // TODO - Check same url
855
941
  if (
856
- typeof($form.isSending) != 'undefined'
942
+ /^true$/i.test(options.withRateLimit)
943
+ && typeof($form.isSending) != 'undefined'
857
944
  && /^true$/i.test($form.isSending)
858
945
  ||
859
- typeof($form.sent) != 'undefined'
946
+ /^true$/i.test(options.withRateLimit)
947
+ && typeof($form.sent) != 'undefined'
860
948
  && /^true$/i.test($form.sent)
861
949
  ) {
862
950
  return;
863
951
  }
952
+
864
953
  instance.$forms[id].isSending = true;
865
954
 
866
955
 
867
- options = (typeof (options) != 'undefined') ? merge(options, xhrOptions) : xhrOptions;
956
+
868
957
  // `x-gina-form`definition
869
958
  //options.headers['X-Gina-Form-Location'] = gina.config.bundle;
870
959
  if ( typeof($form.id) != 'undefined' ) {
@@ -974,14 +1063,15 @@
974
1063
  $form.isSending = false;
975
1064
 
976
1065
  // limit send trigger to 1 sec to prevent from double clicks
977
- setTimeout( function onSent() {
978
- $form.sent = false;
979
- }, 1000);
1066
+ // setTimeout( function onSent() {
1067
+ // $form.sent = false;
1068
+ // }, 1000); // 1000
980
1069
 
981
1070
  // In case the user is also redirecting
982
1071
  var redirectDelay = (/Google Inc/i.test(navigator.vendor)) ? 50 : 0;
983
1072
 
984
- if (xhr.readyState == 2) { // responseType interception
1073
+ // responseType interception
1074
+ if (xhr.readyState == 2) {
985
1075
  isAttachment = ( /^attachment\;/.test( xhr.getResponseHeader("Content-Disposition") ) ) ? true : false;
986
1076
  // force blob response type
987
1077
  if ( !xhr.responseType && isAttachment ) {
@@ -1015,7 +1105,7 @@
1015
1105
  var url = window.URL.createObjectURL(blob);
1016
1106
  a.href = url;
1017
1107
  var contentDisposition = xhr.getResponseHeader("Content-Disposition");
1018
- a.download = contentDisposition.match('\=(.*)')[0].substr(1);
1108
+ a.download = contentDisposition.match('\=(.*)')[0].substring(1);
1019
1109
  //programatically click the link to trigger the download
1020
1110
  a.click();
1021
1111
 
@@ -1034,7 +1124,9 @@
1034
1124
  size : blob.size
1035
1125
  }
1036
1126
 
1037
- } else { // normal case
1127
+ }
1128
+ // normal case
1129
+ else {
1038
1130
  result = xhr.responseText;
1039
1131
  }
1040
1132
 
@@ -1043,9 +1135,14 @@
1043
1135
  if ( /\/json/.test( contentType ) ) {
1044
1136
  result = JSON.parse(xhr.responseText);
1045
1137
 
1046
- if ( typeof(result.status) == 'undefined' )
1138
+ if ( typeof(result.status) == 'undefined' ) {
1047
1139
  result.status = xhr.status;
1048
-
1140
+ }
1141
+ // Fixed on 2025-03-13 Allowing toolbar to ubdate after xhr results
1142
+ // TODO - Allowing to revert to previously loaded data via a close button
1143
+ if (gina && envIsDev && typeof(window.ginaToolbar) && typeof(result) != 'undefined') {
1144
+ window.ginaToolbar.update('data-xhr', result);
1145
+ }
1049
1146
  }
1050
1147
 
1051
1148
  if ( /\/html/.test( contentType ) ) {
@@ -1276,6 +1373,13 @@
1276
1373
  // } else { // external - need to remove `X-Requested-With` from `options.headers`
1277
1374
  result.location = (!/^http/.test(result.location) && !/^\//.test(result.location) ) ? location.protocol +'//' + result.location : result.location;
1278
1375
  //}
1376
+ // isProxyHost ?
1377
+ if (
1378
+ result.location.replace(/^http(.*)\:\d+/, '$1').replace(/^\:\/\//, '').split(/\//g)[0] == gina.config.hostname
1379
+ && gina.config.hostname == window.location.host
1380
+ ) {
1381
+ result.location = location.protocol + result.location.replace(/^http(.*)\:\d+/, '$1').replace(/^\:/, '')
1382
+ }
1279
1383
 
1280
1384
  return setTimeout(() => {
1281
1385
  window.location.href = result.location;
@@ -1905,7 +2009,7 @@
1905
2009
  filesToBeRemoved.push(childNodeFilePreview);
1906
2010
  }
1907
2011
  } else {
1908
- let file = childNodes[i].src.substr(childNodes[i].src.lastIndexOf('/')+1);
2012
+ let file = childNodes[i].src.substring(childNodes[i].src.lastIndexOf('/')+1);
1909
2013
  childNodeFile = file;
1910
2014
  filesToBeRemoved.push(childNodeFile);
1911
2015
  }
@@ -2341,7 +2445,7 @@
2341
2445
  for (let m = 0, mLen = mergingRules.length; m < mLen; m++) {
2342
2446
  if ( re.test(mergingRules[m]) ) {
2343
2447
  let tmpStr = JSON.stringify(rule);
2344
- tmpStr = tmpStr.substr(1, tmpStr.length-1);// removing ->{ ... }<-
2448
+ tmpStr = tmpStr.substring(1, tmpStr.length-1);// removing ->{ ... }<-
2345
2449
  // is last ?
2346
2450
  if (m < mLen-1) {
2347
2451
  tmpStr += ','
@@ -3126,7 +3230,6 @@
3126
3230
  } else {
3127
3231
  handleErrorsDisplay(event.target.form, errors, null, event.target.name);
3128
3232
  }
3129
- //return cancelEvent(event);
3130
3233
  }
3131
3234
 
3132
3235
 
@@ -3136,7 +3239,7 @@
3136
3239
 
3137
3240
  instance.$forms[event.target.form.getAttribute('id')].isValidating = true;
3138
3241
  validate(event.target, localField, $localField, $form.rules, function onLiveValidation(result){
3139
- instance.$forms[event.target.form.getAttribute('id')].isValidating = false;
3242
+ // instance.$forms[event.target.form.getAttribute('id')].isValidating = false;
3140
3243
  //console.debug('validation on processEvent(...) ', result);
3141
3244
 
3142
3245
  var isFormValid = result.isValid();
@@ -3162,8 +3265,10 @@
3162
3265
  instance.$forms[formId].isValidating = true;
3163
3266
  validate($gForm, gFields, $gFields, gRules, function onSilentGlobalLiveValidation(gResult){
3164
3267
  instance.$forms[formId].isValidating = false;
3165
- console.debug('['+ formId +'] onSilentGlobalLiveValidation: '+ gResult.isValid(), gResult);
3268
+ console.debug('['+ formId +'] onSilentGlobalLiveValidation: '+ gResult.isValid(), gResult, gFields);
3269
+ // var isFormValid = ( gResult.isValid() && instance.$forms[formId].errors && instance.$forms[formId].errors.count() == 0 )? true : false;
3166
3270
  var isFormValid = gResult.isValid();
3271
+ // var isFormValid = gResult.isValid();
3167
3272
  if ( envIsDev && isGFFCtx && typeof(window.ginaToolbar) != 'undefined' && window.ginaToolbar ) {
3168
3273
  // update toolbar
3169
3274
  if (!gina.forms.errors)
@@ -3178,6 +3283,27 @@
3178
3283
  }
3179
3284
 
3180
3285
 
3286
+ if ( !isFormValid && gResult.error ) {
3287
+ // Fixed on 2025-03-16 - we need past and live errors
3288
+ instance.$forms[ $el.form.getAttribute('id') ].errors = merge(result.error, gResult.error);
3289
+ // Fixed on 2025-03-16
3290
+ for (let eField in gResult.error) {
3291
+ refreshWarning($gFields[eField]);
3292
+ handleErrorsDisplay($gForm, gResult.error, gResult.data, eField);
3293
+ }
3294
+ }
3295
+ // Fixed on 2025-03-16
3296
+ // Eg.: input select change impacting another element: solve `no more errors`
3297
+ else if ( instance.$forms[formId].errors && !instance.$forms[formId].errors.count() ) {
3298
+ // recheck if valid
3299
+ //resetting error display
3300
+ instance.$forms[ formId ].errors = {};
3301
+ console.debug('resetting field: '+ $el.name);
3302
+ liveCheckErrors[formId] = {};
3303
+ // $form.dataset.ginaFormIsResetting = true;
3304
+ handleErrorsDisplay($gForm, {}, null, $el.name);
3305
+ }
3306
+
3181
3307
  updateSubmitTriggerState( $gForm, isFormValid);
3182
3308
 
3183
3309
  once = false;
@@ -3211,13 +3337,16 @@
3211
3337
  // other inputs & textareas
3212
3338
  else if ( /^focusin\./i.test(event.type) ) {
3213
3339
  if ( /\-error/.test($el.parentNode.className) ) {
3214
- console.debug('#1 you just focusin ....'+$el.id, $el.value);
3340
+ console.debug('#1 you just focusin ....'+$el.id, $el.value, instance.$forms[ $el.form.getAttribute('id') ].isValidating);
3215
3341
  refreshWarning($el);
3216
3342
  }
3217
3343
  }
3218
3344
  else if ( /^focusout\./i.test(event.type) ) {
3219
3345
  if ( /\-warning/.test($el.parentNode.className) ) {
3220
3346
  console.debug('#1 you just focusout ....'+$el.id, $el.value);
3347
+ // Removed on 2025-03-16
3348
+ instance.$forms[ $el.form.getAttribute('id') ].isValidating = false;
3349
+
3221
3350
  refreshWarning($el);
3222
3351
  // in case error context is changed by another task
3223
3352
  handleErrorsDisplay($el.form, instance.$forms[ $el.form.getAttribute('id') ].errors, null, $el.name);
@@ -3226,12 +3355,86 @@
3226
3355
  else if ( /^keyup\./i.test(event.type) ) {
3227
3356
  $el.ginaFormValidatorTestedValue = $el.value;
3228
3357
  liveCheckTimer = setTimeout( function onLiveCheckTimer() {
3229
- // do not trigger for copy/paste event
3230
- if ( ['91', '17'].indexOf(''+event.keyCode) > -1 && keyboardMapping.count() == 0) {
3358
+ // Do not trigger for copy/paste events
3359
+ if ( ['91', '17', '16'].indexOf(''+event.keyCode) > -1 && keyboardMapping.count() == 0) {
3231
3360
  //console.debug('mapping ', keyboardMapping);
3232
3361
  return;
3233
3362
  }
3234
- console.debug(' keyup ('+ event.keyCode +') .... '+$el.id, $el.value, ' VS ',$el.ginaFormValidatorTestedValue + '(old)');
3363
+
3364
+ // Fixed on 2025-03-16:
3365
+ // Treat TAB as focus in/out
3366
+ // if ( ['9'].indexOf(''+event.keyCode) > -1 ) {
3367
+
3368
+ // console.debug('[TAB] you just focusout from "'+ instance.$forms[ $el.form.getAttribute('id') ].lastFocused[1].id +'" to "'+ $el.id +'"');
3369
+ // var $gForm = event.target.form, gFields = null, $gFields = null, gRules = null;
3370
+ // var gValidatorInfos = getFormValidationInfos($gForm, rules);
3371
+ // gFields = gValidatorInfos.fields;
3372
+ // $gFields = gValidatorInfos.$fields;
3373
+ // var formId = $gForm.getAttribute('id');
3374
+ // gRules = instance.$forms[formId].rules;
3375
+ // // Don't be tempted to revome fields that has already been validated
3376
+ // instance.$forms[formId].isValidating = true;
3377
+ // validate($gForm, gFields, $gFields, gRules, function onSilentGlobalLiveValidation(gResult){
3378
+ // instance.$forms[formId].isValidating = false;
3379
+ // console.debug('['+ formId +'] [9] onSilentGlobalLiveValidation: '+ gResult.isValid(), gResult, gFields);
3380
+ // var isFormValid = ( gResult.isValid() && instance.$forms[formId].errors && instance.$forms[formId].errors.count() == 0 )? true : false;
3381
+ // // var isFormValid = gResult.isValid();
3382
+ // if ( envIsDev && isGFFCtx && typeof(window.ginaToolbar) != 'undefined' && window.ginaToolbar ) {
3383
+ // // update toolbar
3384
+ // if (!gina.forms.errors)
3385
+ // gina.forms.errors = {};
3386
+
3387
+ // var objCallback = {
3388
+ // id : formId,
3389
+ // errors : gResult.error || {}
3390
+ // };
3391
+
3392
+ // window.ginaToolbar.update('forms', objCallback);
3393
+ // }
3394
+
3395
+
3396
+ // if ( !isFormValid && gResult.error ) {
3397
+ // // Fixed on 2025-03-16 - we need past and live errors
3398
+ // instance.$forms[ $el.form.getAttribute('id') ].errors = merge(result.error, gResult.error);
3399
+ // // Fixed on 2025-03-16
3400
+ // for (let eField in instance.$forms[ $el.form.getAttribute('id') ].errors) {
3401
+ // refreshWarning($gFields[eField]);
3402
+ // handleErrorsDisplay($gForm, instance.$forms[ $el.form.getAttribute('id') ].errors, gResult.data, eField);
3403
+ // }
3404
+ // }
3405
+ // // Fixed on 2025-03-16
3406
+ // // Eg.: input select change impacting another element: solve `no more errors`
3407
+ // else if ( instance.$forms[formId].errors && !instance.$forms[formId].errors.count() ) {
3408
+ // // recheck if valid
3409
+ // //resetting error display
3410
+ // instance.$forms[ formId ].errors = {};
3411
+ // console.debug('resetting field: '+ $el.name);
3412
+ // liveCheckErrors[formId] = {};
3413
+ // // $form.dataset.ginaFormIsResetting = true;
3414
+ // handleErrorsDisplay($gForm, {}, null, $el.name);
3415
+ // }
3416
+
3417
+ // updateSubmitTriggerState( $gForm, isFormValid);
3418
+
3419
+ // once = false;
3420
+ // });
3421
+ // // var $previeousEl = document.getElementById(instance.$forms[ $el.form.getAttribute('id') ].lastFocused[1].id);
3422
+ // // var errors = instance.$forms[ $previeousEl.form.getAttribute('id') ].errors;
3423
+ // // var isFormValid = (!errors[$previeousEl.name]) ? true : false;
3424
+ // // console.debug('[TAB] you just focusout from "'+ instance.$forms[ $el.form.getAttribute('id') ].lastFocused[1].id +'" to "'+ $el.id +'"', "errors: ", errors);
3425
+ // // if (errors && errors.count() > 0 ) {
3426
+ // // instance.$forms[ $previeousEl.form.getAttribute('id') ].isValidating = false;
3427
+ // // isFormValid = false;
3428
+ // // }
3429
+ // // refreshWarning($previeousEl);
3430
+ // // // // in case error context is changed by another task
3431
+ // // handleErrorsDisplay($previeousEl.form, errors, null, $previeousEl.name);
3432
+ // // updateSubmitTriggerState( $el.form, isFormValid);
3433
+ // return;
3434
+ // }
3435
+
3436
+
3437
+ console.debug('[A]['+keyboardMapping.count()+'] keyup ('+ event.keyCode +') .... '+$el.id, $el.value, ' VS ',$el.ginaFormValidatorTestedValue + '(old)');
3235
3438
  processEvent();
3236
3439
  }, 1000);
3237
3440
  }
@@ -3333,14 +3536,14 @@
3333
3536
  case 46: //Delete
3334
3537
  case 8: //Backspace
3335
3538
  if (posStart != posEnd) {
3336
- $_el.value = str.substr(0, posStart) + str.substr(posEnd);
3539
+ $_el.value = str.substring(0, posStart) + str.substring(posEnd);
3337
3540
  if (posStart == 0) {
3338
- $_el.value = str.substr(posEnd);
3541
+ $_el.value = str.substring(posEnd);
3339
3542
  }
3340
3543
  } else if (posStart == 0) {
3341
3544
  $_el.value = str.substring(posStart+1);
3342
3545
  } else {
3343
- $_el.value = str.substr(0, posStart-1) + str.substr(posEnd);
3546
+ $_el.value = str.substring(0, posStart-1) + str.substring(posEnd);
3344
3547
  }
3345
3548
 
3346
3549
  e.currentTarget.setAttribute('readonly', 'readonly');
@@ -3378,9 +3581,10 @@
3378
3581
  }
3379
3582
  break;
3380
3583
  // Shortcuts
3381
- case 17: //CTRL
3382
- case 91: //CMD
3383
- console.debug("CMD hit");
3584
+ case 17: // CTRL
3585
+ case 20: // CapsLock
3586
+ case 91: // CMD
3587
+ console.debug("CMD, CTRL or CapsLock hit");
3384
3588
  e.preventDefault();
3385
3589
  break;
3386
3590
  case 67: // to handle CMD+C (copy)
@@ -3428,14 +3632,14 @@
3428
3632
  default:
3429
3633
  // Replace selection
3430
3634
  if (posStart != posEnd) {
3431
- $_el.value = str.substr(0, posStart) + e.key;
3635
+ $_el.value = str.substring(0, posStart) + e.key;
3432
3636
  if (posEnd-1 < str.length) {
3433
3637
  $_el.value += str.substring(posEnd)
3434
3638
  }
3435
3639
  } else if (posStart == 0) {
3436
3640
  $_el.value = e.key + str.substring(posStart);
3437
3641
  } else {
3438
- $_el.value = str.substr(0, posStart) + e.key + str.substr(posEnd);
3642
+ $_el.value = str.substring(0, posStart) + e.key + str.substring(posEnd);
3439
3643
  }
3440
3644
  e.currentTarget.setAttribute('readonly', 'readonly');
3441
3645
  // Force restore last caret position
@@ -3577,24 +3781,53 @@
3577
3781
  }
3578
3782
 
3579
3783
  /**
3580
- * reBindForm - This is a WIP
3784
+ * reBindForm
3785
+ * Allows form rebinding: it is like reseting validation
3581
3786
  *
3582
- * @param {object} HTMLElement
3583
- * @param {object} rules
3584
- * @returns {object} formValidatorInstance
3787
+ * E.g.:
3788
+ * $validator
3789
+ * .getFormById('my-form-id')
3790
+ * .reBind();
3791
+ *
3792
+ * @param {string} [formId]
3793
+ * @param {string} [rules]
3794
+ * @param {callback} [cb]
3585
3795
  */
3586
- var reBindForm = function($target, rules, cb) {
3587
- // Unbind form
3588
- var formInstance = unbindForm($target);
3796
+ var reBindForm = function(formId, rules, cb) {
3797
+ var $form = null
3798
+ , _id = null
3799
+ ;
3800
+ if (
3801
+ typeof(this.target) != 'undefined'
3802
+ && /FORM/i.test(this.target.tagName)
3803
+ ) {
3804
+ _id = formId = this.target.getAttribute('id')
3805
+ } else if ( /string/i.test(typeof(formId)) ) {
3806
+ _id = formId
3807
+ }
3808
+
3809
+ if ( typeof(instance.$forms[_id]) != 'undefined') {
3810
+ $form = instance.$forms[_id];
3811
+ } else {
3812
+ throw new Error('form instance `'+ _id +'` not found');
3813
+ }
3814
+
3589
3815
  // reset errors
3590
- //resetErrorsDisplay(formInstance.id);
3816
+ resetErrorsDisplay(_id);
3817
+ // Unbind form
3818
+ unbindForm($form.target);
3591
3819
  // Bind
3592
- bindForm(formInstance.target, rules);
3820
+ if ( typeof(rule) != 'undefined' ) {
3821
+ bindForm($form.target, rules);
3822
+ } else {
3823
+ bindForm($form.target);
3824
+ }
3593
3825
 
3594
3826
  if ( cb ) {
3595
- return cb(formInstance);
3827
+ return cb($form);
3596
3828
  }
3597
- return formInstance;
3829
+
3830
+ return $form;
3598
3831
  }
3599
3832
 
3600
3833
  var unbindForm = function($target) {
@@ -3612,7 +3845,7 @@
3612
3845
 
3613
3846
  } else if ( typeof($target.target) != 'undefined' ) {
3614
3847
  $form = $target;
3615
- _id = $form.id;
3848
+ _id = ( $target.getAttribute && $target.getAttribute('id') ) ? $form.getAttribute('id') : $form.id;
3616
3849
  } else {
3617
3850
  throw new Error('Validator::unbindForm($target): `$target` must be a DOM element\n'+err.stack )
3618
3851
  }
@@ -3651,7 +3884,7 @@
3651
3884
  // submit buttons
3652
3885
  $elTMP = $form.target.getElementsByTagName('button');
3653
3886
  if ( $elTMP.length > 0 ) {
3654
- for(let i = 0, len = $elTMP.length; i < len; ++i) {
3887
+ for (let i = 0, len = $elTMP.length; i < len; ++i) {
3655
3888
  // if button is != type="submit", you will need to provide : data-gina-form-submit
3656
3889
  // TODO - On button binding, you can then provide data-gina-form-action & data-gina-form-method
3657
3890
  $els.push($elTMP[i])
@@ -3661,7 +3894,7 @@
3661
3894
  // submit links
3662
3895
  $elTMP = $form.target.getElementsByTagName('a');
3663
3896
  if ( $elTMP.length > 0 ) {
3664
- for(let i = 0, len = $elTMP.length; i < len; ++i) {
3897
+ for (let i = 0, len = $elTMP.length; i < len; ++i) {
3665
3898
  $els.push($elTMP[i])
3666
3899
  }
3667
3900
  }
@@ -3717,7 +3950,7 @@
3717
3950
  // textarea
3718
3951
  $elTMP = $form.target.getElementsByTagName('textarea');
3719
3952
  if ( $elTMP.length > 0 ) {
3720
- for(let i = 0, len = $elTMP.length; i < len; ++i) {
3953
+ for (let i = 0, len = $elTMP.length; i < len; ++i) {
3721
3954
  $els.push( $elTMP[i] )
3722
3955
  }
3723
3956
  }
@@ -3726,7 +3959,7 @@
3726
3959
  // forms inside main form
3727
3960
  $elTMP = $form.target.getElementsByTagName('form');
3728
3961
  if ( $elTMP.length > 0 ) {
3729
- for(let i = 0, len = $elTMP.length; i < len; ++i) {
3962
+ for (let i = 0, len = $elTMP.length; i < len; ++i) {
3730
3963
  $els.push( $elTMP[i] )
3731
3964
  }
3732
3965
  }
@@ -3811,8 +4044,10 @@
3811
4044
  /**
3812
4045
  * bindForm
3813
4046
  *
3814
- * @param {object} $target - DOM element
3815
- * @param {object} [customRule]
4047
+ * @param {object} [$target] - DOM element
4048
+ * @param {object|string} [customRule]
4049
+ *
4050
+ * @return {object} bindedForm
3816
4051
  * */
3817
4052
  var bindForm = function($target, customRule) {
3818
4053
 
@@ -3821,23 +4056,32 @@
3821
4056
  , rules = ( typeof(local.rules.count() > 0 ) ) ? local.rules : instance.rules
3822
4057
  ;
3823
4058
 
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');
4059
+ if (
4060
+ typeof($target) == 'undefined'
4061
+ && typeof(this.target) != 'undefined'
4062
+ && /FORM/i.test(this.target.tagName)
4063
+ ||
4064
+ !/object/i.test( typeof($target) )
4065
+ ) {
4066
+ _id = this.target.id || this.target.getAttribute('id');
4067
+ } else if ( /string/i.test(typeof($target)) ) {
4068
+ _id = $target
4069
+ } else {
4070
+ _id = $target.getAttribute('id')
4071
+ }
3831
4072
 
4073
+ try {
4074
+ if ( typeof(instance.$forms[_id]) != 'undefined') {
4075
+ $form = instance.$forms[_id];
4076
+ if ( typeof($form.target) == 'undefined' ) {
4077
+ throw new Error('Validator::bindForm($target, customRule): `$target` must be a DOM element\n');
4078
+ }
4079
+ $target = $form.target;
3832
4080
  } else {
3833
- throw new Error('Validator::bindForm($target, customRule): `$target` must be a DOM element\n'+err.stack )
4081
+ throw new Error('form instance `'+ _id +'` not found');
3834
4082
  }
3835
4083
  } 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
4084
+ throw new Error('Validator::bindForm($target, customRule) could not bind form `'+ $target +'`\n'+err.stack );
3841
4085
  }
3842
4086
 
3843
4087
  console.debug('binding for: '+ _id);
@@ -4143,7 +4387,7 @@
4143
4387
  } else if ( /img/i.test($els[i].tagName) ) {
4144
4388
  $img = $els[i];
4145
4389
  deleteLinkId = uploadTriggerId + '-'+index+'-delete-trigger';
4146
- let file = $img.src.substr($img.src.lastIndexOf('/')+1);
4390
+ let file = $img.src.substring($img.src.lastIndexOf('/')+1);
4147
4391
  $uploadTrigger.customFiles.push({
4148
4392
  name: file,
4149
4393
  deleteLinkId: deleteLinkId
@@ -4535,7 +4779,16 @@
4535
4779
  validate($gForm, gFields, $gFields, gRules, function onSilentGlobalLiveValidation(gResult){
4536
4780
  instance.$forms[formId].isValidating = false;
4537
4781
  console.debug('[updateSelect]: onSilentGlobalLiveValidation: '+ gResult.isValid(), gResult);
4782
+ // Fixed on 2025-03-16
4538
4783
  var isFormValid = gResult.isValid();
4784
+ if (!isFormValid) {
4785
+ instance.$forms[formId].errors = gResult.error;
4786
+ for (let eField in gResult.error) {
4787
+ // refreshWarning($gFields[eField]);
4788
+ handleErrorsDisplay($gForm, gResult.error, gResult.data, eField);
4789
+ }
4790
+ }
4791
+
4539
4792
  updateSubmitTriggerState( $gForm, isFormValid);
4540
4793
  once = false;
4541
4794
  })
@@ -5129,6 +5382,25 @@
5129
5382
  if (gina.events[_evt]) {
5130
5383
  cancelEvent(event);
5131
5384
 
5385
+ // Fixed on 2025-03-05 - "last focus" vs "current focus"
5386
+ // To get active element: document.activeElement
5387
+ var formId = event.target.form.getAttribute('id') || event.currentTarget.getAttribute('id');
5388
+ var lastFocused = {
5389
+ id : $el.id,
5390
+ name: $el.name
5391
+ };
5392
+ if (!instance.$forms[formId].lastFocused.length) {
5393
+ instance.$forms[formId].lastFocused[0] = lastFocused;
5394
+ } else {
5395
+ instance.$forms[formId].lastFocused.splice(0,0,lastFocused);
5396
+ }
5397
+ lastFocused = ( typeof(instance.$forms[formId].lastFocused[1]) != 'undefined' ) ? instance.$forms[formId].lastFocused[1].id : null;
5398
+
5399
+ // cleanup
5400
+ instance.$forms[formId].lastFocused.splice(2);
5401
+
5402
+ // console.debug('lastFocused: ', lastFocused, ' VS current: ', $el.id);
5403
+
5132
5404
  triggerEvent(gina, $el, _evt, event.detail);
5133
5405
  }
5134
5406
  });
@@ -5445,7 +5717,7 @@
5445
5717
  ;
5446
5718
  $buttonsTMP = $target.getElementsByTagName('button');
5447
5719
  if ( $buttonsTMP.length > 0 ) {
5448
- for(let b = 0, len = $buttonsTMP.length; b < len; ++b) {
5720
+ for (let b = 0, len = $buttonsTMP.length; b < len; ++b) {
5449
5721
  if ($buttonsTMP[b].type == 'submit') {
5450
5722
  $buttons.push($buttonsTMP[b])
5451
5723
  }
@@ -5455,7 +5727,7 @@
5455
5727
  // binding links
5456
5728
  $buttonsTMP = $target.getElementsByTagName('a');
5457
5729
  if ( $buttonsTMP.length > 0 ) {
5458
- for(let b = 0, len = $buttonsTMP.length; b < len; ++b) {
5730
+ for (let b = 0, len = $buttonsTMP.length; b < len; ++b) {
5459
5731
  if ( $buttonsTMP[b].attributes.getNamedItem('data-gina-form-submit') ) {
5460
5732
  $buttons.push($buttonsTMP[b])
5461
5733
  } else if (
@@ -5712,7 +5984,8 @@
5712
5984
  }
5713
5985
  updateSubmitTriggerState( $form, result.isValid() );
5714
5986
  });
5715
- } else if (!/^(true)$/i.test($form.target.dataset.ginaFormLiveCheckEnabled) ) {
5987
+ }
5988
+ else if (!/^(true)$/i.test($form.target.dataset.ginaFormLiveCheckEnabled) ) {
5716
5989
  updateSubmitTriggerState( $form , true );
5717
5990
  }
5718
5991
 
@@ -6175,7 +6448,8 @@
6175
6448
  if ( !/^form$/i.test($formOrElement.tagName) ) {
6176
6449
  $currentForm = $formOrElement.form;
6177
6450
  }
6178
- var formId = $currentForm.getAttribute('id');
6451
+ var formId = $currentForm.getAttribute('id');
6452
+ var isFormValid = null;
6179
6453
 
6180
6454
  if (
6181
6455
  hasParsedAllRules
@@ -6196,10 +6470,16 @@
6196
6470
  if ( typeof(instance.$forms[formId].errors) == 'undefined' ) {
6197
6471
  instance.$forms[formId].errors = {}
6198
6472
  }
6473
+ // Fixed on 2025-03-16
6474
+ if ( typeof(cb._errors[field]) != 'undefined' ) {
6475
+ instance.$forms[formId].errors[field] = cb._errors[field];
6476
+ }
6477
+ console.debug('[A] Refreshing warning/error on field '+ field);
6478
+ if (
6479
+ !isFormValid && /^true|false$/i.test(instance.$forms[formId].isValidating)
6480
+ || d[field].target.value != ''
6199
6481
 
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 != '' ) {
6482
+ ) {
6203
6483
  refreshWarning($allFields[field]);
6204
6484
  handleErrorsDisplay($currentForm, cb._errors, cb._data, field);
6205
6485
  updateSubmitTriggerState( $currentForm, isFormValid);
@@ -6207,8 +6487,9 @@
6207
6487
 
6208
6488
  if ( envIsDev && isGFFCtx && typeof(window.ginaToolbar) != 'undefined' && window.ginaToolbar ) {
6209
6489
  // update toolbar
6210
- if (!gina.forms.errors)
6490
+ if (!gina.forms.errors) {
6211
6491
  gina.forms.errors = {};
6492
+ }
6212
6493
 
6213
6494
  var objCallback = {
6214
6495
  id : formId,
@@ -6225,13 +6506,13 @@
6225
6506
  }
6226
6507
 
6227
6508
  // is this the last or the only field to be validated ?
6228
- var needsGlobalReValidation = false, isFormValid = null;
6509
+ var needsGlobalReValidation = false;
6229
6510
  if ( listedFields.length == 1 || listedFields[listedFields.length-1] == field) {
6230
6511
  // trigger end of validation
6231
6512
  // console.debug(field +' is the last element to be validated for formId: '+ formId, cb._errors, instance.$forms[formId].errors);
6232
6513
  isFormValid = ( cb._errors.count() > 0 ) ? false : true;
6233
6514
  if (!isFormValid && /^true|false$/i.test(instance.$forms[formId].isValidating)) {
6234
- //console.debug('should update error display now ', cb._errors);
6515
+ console.debug('[1] Should update error display now ', cb._errors);
6235
6516
  instance.$forms[formId].errors = merge(cb._errors, instance.$forms[formId].errors);
6236
6517
  refreshWarning($allFields[field]);
6237
6518
  handleErrorsDisplay($currentForm, cb._errors, cb._data, field);
@@ -6263,8 +6544,6 @@
6263
6544
  window.ginaToolbar.update('forms', objCallback);
6264
6545
  }
6265
6546
 
6266
-
6267
-
6268
6547
  handleErrorsDisplay($currentForm, gResult.error, gResult.data, field);
6269
6548
  updateSubmitTriggerState( $currentForm, isFormValid);
6270
6549
  })
@@ -6408,7 +6687,7 @@
6408
6687
 
6409
6688
  for (var c in rules) {
6410
6689
  if (!/^\_case\_/.test(c) ) continue;
6411
- if ( typeof(rules[c].conditions) == 'undefined' || Array.isArray(rules[c].conditions) && !rules[c].conditions.length ) continue;
6690
+ if ( typeof(rules[c].conditions) == 'undefined' || Array.isArray(rules[c].conditions) && !rules[c].conditions.length ) continue;
6412
6691
  if ( typeof(rules[c].conditions[0].rules) == 'undefined' ) continue;
6413
6692
 
6414
6693
 
@@ -6590,7 +6869,14 @@
6590
6869
  // filtering conditions
6591
6870
  for (var _c = 0, _cLen = rules[c].conditions.length; _c < _cLen; ++_c) {
6592
6871
 
6593
- if (rules[c].conditions[_c].case != caseValue) {
6872
+ if (
6873
+ Array.isArray(rules[c].conditions[_c].case)
6874
+ && rules[c].conditions[_c].case.indexOf(caseValue) == -1
6875
+ ||
6876
+ !Array.isArray(rules[c].conditions[_c].case)
6877
+ && rules[c].conditions[_c].case != caseValue
6878
+
6879
+ ) {
6594
6880
  continue;
6595
6881
  }
6596
6882
 
@@ -6735,7 +7021,8 @@
6735
7021
  if (
6736
7022
  conditions[c]['case'] === caseValue
6737
7023
  ||
6738
- Array.isArray(conditions[c]['case']) && conditions[c]['case'].indexOf(caseValue) > -1
7024
+ Array.isArray(conditions[c]['case'])
7025
+ && conditions[c]['case'].indexOf(caseValue) > -1
6739
7026
  ||
6740
7027
  /^\//.test(conditions[c]['case'])
6741
7028
  ) {
@@ -6852,8 +7139,6 @@
6852
7139
  }
6853
7140
  --i;
6854
7141
  }
6855
-
6856
-
6857
7142
  } // EO for
6858
7143
  }
6859
7144
 
@@ -6874,7 +7159,7 @@
6874
7159
  }
6875
7160
 
6876
7161
  if (isGFFCtx)
6877
- $fields[field].setAttribute('data-gina-form-errors', fieldErrorsAttributes[field].substr(0, fieldErrorsAttributes[field].length-1))
7162
+ $fields[field].setAttribute('data-gina-form-errors', fieldErrorsAttributes[field].substring(0, fieldErrorsAttributes[field].length-1))
6878
7163
  }
6879
7164
 
6880
7165
  //calling back
@@ -6945,6 +7230,8 @@
6945
7230
  'data' : formatData( _data )
6946
7231
  });
6947
7232
  removeListener(gina, event.target, 'validated.' + event.target.id);
7233
+
7234
+
6948
7235
  return
6949
7236
  }
6950
7237
  });