gina 0.1.6-alpha.13 → 0.1.6-alpha.130

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.13/lib/inherits → v0.1.6-alpha.130}/LICENSE +1 -1
  7. package/framework/v0.1.6-alpha.130/VERSION +1 -0
  8. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/asset/plugin/README.md +1 -0
  9. package/framework/v0.1.6-alpha.130/core/asset/plugin/dist/vendor/gina/css/gina.min.css.map +1 -0
  10. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/asset/plugin/dist/vendor/gina/html/toolbar.html +1 -1
  11. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/asset/plugin/dist/vendor/gina/js/gina.js +655 -235
  12. package/framework/v0.1.6-alpha.130/core/asset/plugin/dist/vendor/gina/js/gina.min.js +778 -0
  13. package/framework/v0.1.6-alpha.130/core/asset/plugin/dist/vendor/gina/js/gina.min.js.map +8 -0
  14. package/framework/v0.1.6-alpha.130/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +8 -0
  15. package/framework/v0.1.6-alpha.130/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.map +8 -0
  16. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/config.js +159 -76
  17. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/connectors/couchbase/index.js +108 -26
  18. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/connectors/couchbase/lib/connector.v4.js +124 -22
  19. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/connectors/couchbase/lib/session-store.v4.js +5 -2
  20. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/controller/controller.js +747 -186
  21. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/controller/index.js +2 -2
  22. package/framework/v0.1.6-alpha.130/core/deps/busboy-1.6.0/.github/workflows/ci.yml +24 -0
  23. package/framework/v0.1.6-alpha.130/core/deps/busboy-1.6.0/.github/workflows/lint.yml +23 -0
  24. package/framework/v0.1.6-alpha.130/core/deps/busboy-1.6.0/README.md +191 -0
  25. package/framework/v0.1.6-alpha.130/core/deps/busboy-1.6.0/bench/bench-multipart-fields-100mb-big.js +149 -0
  26. package/framework/v0.1.6-alpha.130/core/deps/busboy-1.6.0/bench/bench-multipart-fields-100mb-small.js +143 -0
  27. package/framework/v0.1.6-alpha.130/core/deps/busboy-1.6.0/bench/bench-multipart-files-100mb-big.js +154 -0
  28. package/framework/v0.1.6-alpha.130/core/deps/busboy-1.6.0/bench/bench-multipart-files-100mb-small.js +148 -0
  29. package/framework/v0.1.6-alpha.130/core/deps/busboy-1.6.0/bench/bench-urlencoded-fields-100pairs-small.js +101 -0
  30. package/framework/v0.1.6-alpha.130/core/deps/busboy-1.6.0/bench/bench-urlencoded-fields-900pairs-small-alt.js +84 -0
  31. package/framework/v0.1.6-alpha.130/core/deps/busboy-1.6.0/lib/index.js +57 -0
  32. package/framework/v0.1.6-alpha.130/core/deps/busboy-1.6.0/lib/types/multipart.js +680 -0
  33. package/framework/v0.1.6-alpha.130/core/deps/busboy-1.6.0/lib/types/urlencoded.js +350 -0
  34. package/framework/v0.1.6-alpha.130/core/deps/busboy-1.6.0/lib/utils.js +596 -0
  35. package/framework/v0.1.6-alpha.130/core/deps/busboy-1.6.0/package.json +22 -0
  36. package/framework/v0.1.6-alpha.130/core/deps/optimist-0.6.1/.travis.yml +4 -0
  37. package/framework/v0.1.6-alpha.130/core/deps/optimist-0.6.1/LICENSE +21 -0
  38. package/framework/v0.1.6-alpha.130/core/deps/optimist-0.6.1/example/bool.js +10 -0
  39. package/framework/v0.1.6-alpha.130/core/deps/optimist-0.6.1/example/boolean_double.js +7 -0
  40. package/framework/v0.1.6-alpha.130/core/deps/optimist-0.6.1/example/boolean_single.js +7 -0
  41. package/framework/v0.1.6-alpha.130/core/deps/optimist-0.6.1/example/default_hash.js +8 -0
  42. package/framework/v0.1.6-alpha.130/core/deps/optimist-0.6.1/example/default_singles.js +7 -0
  43. package/framework/v0.1.6-alpha.130/core/deps/optimist-0.6.1/example/divide.js +8 -0
  44. package/framework/v0.1.6-alpha.130/core/deps/optimist-0.6.1/example/line_count.js +20 -0
  45. package/framework/v0.1.6-alpha.130/core/deps/optimist-0.6.1/example/line_count_options.js +29 -0
  46. package/framework/v0.1.6-alpha.130/core/deps/optimist-0.6.1/example/line_count_wrap.js +29 -0
  47. package/framework/v0.1.6-alpha.130/core/deps/optimist-0.6.1/example/nonopt.js +4 -0
  48. package/framework/v0.1.6-alpha.130/core/deps/optimist-0.6.1/example/reflect.js +2 -0
  49. package/framework/v0.1.6-alpha.130/core/deps/optimist-0.6.1/example/short.js +3 -0
  50. package/framework/v0.1.6-alpha.130/core/deps/optimist-0.6.1/example/string.js +11 -0
  51. package/framework/v0.1.6-alpha.130/core/deps/optimist-0.6.1/example/usage-options.js +19 -0
  52. package/framework/v0.1.6-alpha.130/core/deps/optimist-0.6.1/example/xup.js +10 -0
  53. package/framework/v0.1.6-alpha.130/core/deps/optimist-0.6.1/index.js +343 -0
  54. package/framework/v0.1.6-alpha.130/core/deps/optimist-0.6.1/package.json +31 -0
  55. package/framework/v0.1.6-alpha.130/core/deps/optimist-0.6.1/package.json.dist +39 -0
  56. package/framework/v0.1.6-alpha.130/core/deps/optimist-0.6.1/readme.markdown +513 -0
  57. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/HISTORY.md +498 -0
  58. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/LICENSE +7 -0
  59. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/README.md +88 -0
  60. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/bin/swig.js +161 -0
  61. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/bin/swig.js.dist +161 -0
  62. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/dist/swig.min.js +7 -0
  63. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/dist/swig.min.js.map +8 -0
  64. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/index.js +1 -0
  65. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/lib/dateformatter.js +198 -0
  66. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/lib/filters.js +630 -0
  67. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/lib/lexer.js +306 -0
  68. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/lib/loaders/filesystem.js +59 -0
  69. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/lib/loaders/index.js +53 -0
  70. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/lib/loaders/memory.js +63 -0
  71. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/lib/parser.js +744 -0
  72. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/lib/swig.js +740 -0
  73. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/lib/tags/autoescape.js +37 -0
  74. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/lib/tags/block.js +25 -0
  75. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/lib/tags/else.js +25 -0
  76. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/lib/tags/elseif.js +28 -0
  77. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/lib/tags/extends.js +19 -0
  78. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/lib/tags/filter.js +68 -0
  79. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/lib/tags/for.js +130 -0
  80. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/lib/tags/if.js +86 -0
  81. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/lib/tags/import.js +91 -0
  82. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/lib/tags/include.js +100 -0
  83. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/lib/tags/index.js +16 -0
  84. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/lib/tags/macro.js +79 -0
  85. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/lib/tags/parent.js +51 -0
  86. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/lib/tags/raw.js +23 -0
  87. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/lib/tags/set.js +109 -0
  88. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/lib/tags/spaceless.js +42 -0
  89. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/lib/utils.js +184 -0
  90. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/package.json +57 -0
  91. package/framework/v0.1.6-alpha.130/core/deps/swig-1.4.2/package.json.dist +61 -0
  92. package/framework/v0.1.6-alpha.130/core/deps/swig-client/swig.js +5031 -0
  93. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/dev/index.js +1 -1
  94. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/dev/lib/factory.js +1 -1
  95. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/gna.js +104 -22
  96. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/locales/index.js +3 -3
  97. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/locales/src/make.js +1 -1
  98. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/mime.types +1 -0
  99. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/model/entity.js +5 -5
  100. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/model/index.js +30 -26
  101. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/model/template/entityFactory.js +1 -1
  102. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/model/template/index.js +1 -1
  103. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/plugins/index.js +3 -3
  104. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/plugins/lib/file/package.json +2 -2
  105. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/plugins/lib/intl/package.json +2 -2
  106. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/plugins/lib/storage/package.json +2 -2
  107. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/plugins/lib/validator/package.json +2 -2
  108. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/plugins/lib/validator/src/form-validator.js +39 -27
  109. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/plugins/lib/validator/src/main.js +419 -102
  110. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/router.js +92 -47
  111. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/server.isaac.js +92 -43
  112. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/server.js +322 -133
  113. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/status.codes +1 -11
  114. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/boilerplate/bundle/controllers/setup.js +2 -2
  115. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/command/gina.tpl +1 -1
  116. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/conf/env.json +19 -0
  117. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/conf/templates.json +4 -2
  118. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/helpers/console.js +1 -1
  119. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/helpers/context.js +29 -12
  120. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/helpers/data/package.json +2 -2
  121. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/helpers/data/src/main.js +1 -1
  122. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/helpers/dateFormat.js +1 -1
  123. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/helpers/index.js +1 -1
  124. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/helpers/json/package.json +2 -2
  125. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/helpers/json/src/main.js +6 -4
  126. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/helpers/path.js +31 -15
  127. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/helpers/plugins/package.json +2 -2
  128. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/helpers/plugins/src/api-error.js +2 -2
  129. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/helpers/plugins/src/main.js +1 -1
  130. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/helpers/task.js +2 -2
  131. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/helpers/text.js +1 -1
  132. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/archiver/package.json +2 -2
  133. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/archiver/src/main.js +11 -11
  134. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/bundle/add.js +2 -1
  135. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/bundle/start.js +21 -8
  136. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/env/get.js +1 -1
  137. package/framework/v0.1.6-alpha.130/lib/cmd/env/help.js +30 -0
  138. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/framework/build.js +1 -1
  139. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/framework/dot.js +21 -0
  140. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/framework/init.js +18 -0
  141. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/framework/link-node-modules.js +2 -3
  142. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/framework/link.js +1 -0
  143. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/framework/tail.js +28 -11
  144. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/framework/version.js +15 -1
  145. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/helper.js +6 -2
  146. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/index.js +1 -1
  147. package/framework/v0.1.6-alpha.130/lib/cmd/minion/help.txt +18 -0
  148. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/project/add.js +7 -2
  149. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/project/arguments.json +1 -0
  150. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/project/build.js +4 -4
  151. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/project/help.txt +4 -0
  152. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/project/list.js +1 -1
  153. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/protocol/list.js +71 -50
  154. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/collection/package.json +2 -2
  155. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/collection/src/main.js +20 -14
  156. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/config.js +1 -1
  157. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cron/package.json +2 -2
  158. package/framework/v0.1.6-alpha.130/lib/domain/dist/2025-03-14_13-41-20_UTC.dat +15754 -0
  159. package/framework/v0.1.6-alpha.130/lib/domain/dist/public_suffix_list.dat +15754 -0
  160. package/framework/v0.1.6-alpha.130/lib/domain/exemples/backend.js +12 -0
  161. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/domain/package.json +2 -2
  162. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/domain/src/main.js +20 -6
  163. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/generator/index.js +1 -1
  164. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/index.js +1 -1
  165. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130/lib/inherits}/LICENSE +1 -1
  166. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/inherits/package.json +2 -2
  167. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/inherits/src/main.js +1 -1
  168. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/logger/package.json +2 -2
  169. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/logger/src/containers/mq/listener.js +10 -2
  170. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/logger/src/helper.js +1 -1
  171. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/logger/src/main.js +1 -1
  172. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/math/index.js +1 -1
  173. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/merge/package.json +2 -2
  174. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/model.js +3 -3
  175. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/proc.js +10 -2
  176. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/routing/package.json +2 -2
  177. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/routing/src/main.js +79 -26
  178. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/session-store.js +3 -3
  179. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/swig-filters/package.json +2 -2
  180. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/swig-filters/src/main.js +76 -15
  181. package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/validator.js +2 -2
  182. package/framework/v0.1.6-alpha.130/package.json +11 -0
  183. package/package.json +3 -3
  184. package/resources/package.json.template +1 -1
  185. package/script/post_install.js +1 -1
  186. package/script/pre_install.js +1 -1
  187. package/utils/helper.js +33 -9
  188. package/framework/v0.1.6-alpha.13/VERSION +0 -1
  189. package/framework/v0.1.6-alpha.13/core/asset/plugin/dist/vendor/gina/css/gina.min.css.map +0 -1
  190. package/framework/v0.1.6-alpha.13/core/asset/plugin/dist/vendor/gina/js/gina.min.js +0 -766
  191. package/framework/v0.1.6-alpha.13/core/asset/plugin/dist/vendor/gina/js/gina.min.js.map +0 -8
  192. package/framework/v0.1.6-alpha.13/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js +0 -7
  193. package/framework/v0.1.6-alpha.13/core/asset/plugin/dist/vendor/gina/js/gina.onload.min.js.map +0 -8
  194. package/framework/v0.1.6-alpha.13/core/deps/busboy/.travis.yml +0 -17
  195. package/framework/v0.1.6-alpha.13/core/deps/busboy/README.md +0 -225
  196. package/framework/v0.1.6-alpha.13/core/deps/busboy/deps/encoding/encoding-indexes.js +0 -73
  197. package/framework/v0.1.6-alpha.13/core/deps/busboy/deps/encoding/encoding.js +0 -2391
  198. package/framework/v0.1.6-alpha.13/core/deps/busboy/lib/main.js +0 -89
  199. package/framework/v0.1.6-alpha.13/core/deps/busboy/lib/types/multipart.js +0 -328
  200. package/framework/v0.1.6-alpha.13/core/deps/busboy/lib/types/urlencoded.js +0 -214
  201. package/framework/v0.1.6-alpha.13/core/deps/busboy/lib/utils.js +0 -191
  202. package/framework/v0.1.6-alpha.13/core/deps/busboy/package.json +0 -69
  203. package/framework/v0.1.6-alpha.13/lib/domain/dist/public_suffix_list.dat +0 -14186
  204. package/framework/v0.1.6-alpha.13/lib/domain/exemples/backend.js +0 -0
  205. package/framework/v0.1.6-alpha.13/package.json +0 -14
  206. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/AUTHORS +0 -0
  207. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/asset/html/nolayout.html +0 -0
  208. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/asset/html/static.html +0 -0
  209. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/asset/img/android-chrome-192x192.png +0 -0
  210. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/asset/img/android-chrome-512x512.png +0 -0
  211. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/asset/img/apple-touch-icon.png +0 -0
  212. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/asset/img/favicon-16x16.png +0 -0
  213. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/asset/img/favicon-32x32.png +0 -0
  214. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/asset/img/favicon.ico +0 -0
  215. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/asset/plugin/dist/vendor/gina/css/gina.min.css +0 -0
  216. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/asset/plugin/uuid.json +0 -0
  217. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/connectors/couchbase/lib/connector.js +0 -0
  218. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/connectors/couchbase/lib/connector.v2.js +0 -0
  219. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/connectors/couchbase/lib/connector.v3.js +0 -0
  220. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/connectors/couchbase/lib/n1ql.js +0 -0
  221. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/connectors/couchbase/lib/session-store.js +0 -0
  222. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/connectors/couchbase/lib/session-store.v2.js +0 -0
  223. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/connectors/couchbase/lib/session-store.v3.js +0 -0
  224. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/controller/controller.framework.js +0 -0
  225. /package/framework/{v0.1.6-alpha.13/core/deps/busboy → v0.1.6-alpha.130/core/deps/busboy-1.6.0}/LICENSE +0 -0
  226. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/deps/swig-client/swig-2.0.0.min.js +0 -0
  227. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/dev/lib/class.js +0 -0
  228. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/dev/lib/tools.js +0 -0
  229. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/locales/README.md +0 -0
  230. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/locales/currency.json +0 -0
  231. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/locales/dist/language/en.json +0 -0
  232. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/locales/dist/language/fr.json +0 -0
  233. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/locales/dist/region/en.json +0 -0
  234. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/locales/dist/region/fr.json +0 -0
  235. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/locales/src/resources/currency.csv +0 -0
  236. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/locales/src/resources/region.csv +0 -0
  237. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/locales/src/resources/region.mapping.json +0 -0
  238. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/plugins/README.md +0 -0
  239. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/plugins/lib/file/README.md +0 -0
  240. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/plugins/lib/file/build.json +0 -0
  241. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/plugins/lib/intl/README.md +0 -0
  242. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/plugins/lib/intl/build.json +0 -0
  243. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/plugins/lib/intl/src/main.js +0 -0
  244. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/plugins/lib/storage/README.md +0 -0
  245. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/plugins/lib/storage/build.json +0 -0
  246. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/plugins/lib/storage/src/main.js +0 -0
  247. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/plugins/lib/validator/README.md +0 -0
  248. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/plugins/lib/validator/build.json +0 -0
  249. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/server.express.js +0 -0
  250. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/_gitignore +0 -0
  251. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/boilerplate/bundle/config/app.json +0 -0
  252. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/boilerplate/bundle/config/routing.json +0 -0
  253. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/boilerplate/bundle/config/settings.json +0 -0
  254. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/boilerplate/bundle/config/settings.server.json +0 -0
  255. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/boilerplate/bundle/config/templates.json +0 -0
  256. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/boilerplate/bundle/controllers/controller.content.js +0 -0
  257. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/boilerplate/bundle/controllers/controller.js +0 -0
  258. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/boilerplate/bundle/index.js +0 -0
  259. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/boilerplate/bundle_namespace/controllers/controller.js +0 -0
  260. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/boilerplate/bundle_public/css/default.css +0 -0
  261. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/boilerplate/bundle_public/css/vendor/readme.md +0 -0
  262. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/boilerplate/bundle_public/favicon.ico +0 -0
  263. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/boilerplate/bundle_public/js/vendor/readme.md +0 -0
  264. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/boilerplate/bundle_public/readme.md +0 -0
  265. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/boilerplate/bundle_templates/handlers/main.js +0 -0
  266. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/boilerplate/bundle_templates/html/content/homepage.html +0 -0
  267. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/boilerplate/bundle_templates/html/includes/error-msg-noscript.html +0 -0
  268. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/boilerplate/bundle_templates/html/includes/error-msg-outdated-browser.html +0 -0
  269. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/boilerplate/bundle_templates/html/layouts/main.html +0 -0
  270. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/command/gina.bat.tpl +0 -0
  271. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/conf/manifest.json +0 -0
  272. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/conf/package.json +0 -0
  273. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/conf/settings.json +0 -0
  274. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/conf/statics.json +0 -0
  275. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/error/client/json/401.json +0 -0
  276. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/error/client/json/403.json +0 -0
  277. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/error/client/json/404.json +0 -0
  278. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/error/server/html/50x.html +0 -0
  279. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/error/server/json/500.json +0 -0
  280. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/error/server/json/503.json +0 -0
  281. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/core/template/extensions/logger/config.json +0 -0
  282. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/helpers/data/LICENSE +0 -0
  283. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/helpers/data/README.md +0 -0
  284. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/helpers/json/LICENSE +0 -0
  285. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/helpers/json/README.md +0 -0
  286. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/helpers/plugins/README.md +0 -0
  287. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/helpers/prototypes.js +0 -0
  288. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/archiver/README.md +0 -0
  289. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/archiver/build.json +0 -0
  290. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/archiver/src/dep/jszip.min.js +0 -0
  291. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/aliases.json +0 -0
  292. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/bundle/arguments.json +0 -0
  293. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/bundle/copy.js +0 -0
  294. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/bundle/cp.js +0 -0
  295. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/bundle/help.js +0 -0
  296. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/bundle/help.txt +0 -0
  297. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/bundle/list.js +0 -0
  298. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/bundle/remove.js +0 -0
  299. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/bundle/rename.js +0 -0
  300. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/bundle/restart.js +0 -0
  301. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/bundle/rm.js +0 -0
  302. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/bundle/status.js +0 -0
  303. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/bundle/stop.js +0 -0
  304. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/env/add.js +0 -0
  305. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/env/help.txt +0 -0
  306. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/env/link-dev.js +0 -0
  307. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/env/list.js +0 -0
  308. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/env/remove.js +0 -0
  309. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/env/rm.js +0 -0
  310. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/env/set.js +0 -0
  311. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/env/unset.js +0 -0
  312. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/env/use.js +0 -0
  313. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/framework/get.js +0 -0
  314. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/framework/help.js +0 -0
  315. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/framework/help.txt +0 -0
  316. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/framework/msg.json +0 -0
  317. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/framework/open.js +0 -0
  318. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/framework/restart.js +0 -0
  319. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/framework/set.js +0 -0
  320. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/framework/start.js +0 -0
  321. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/framework/status.js +0 -0
  322. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/framework/stop.js +0 -0
  323. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/framework/update.js +0 -0
  324. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/gina-dev.1.md +0 -0
  325. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/gina-framework.1.md +0 -0
  326. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/gina.1.md +0 -0
  327. /package/framework/{v0.1.6-alpha.13/lib/cmd/env → v0.1.6-alpha.130/lib/cmd/minion}/help.js +0 -0
  328. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/msg.json +0 -0
  329. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/port/help.js +0 -0
  330. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/port/help.txt +0 -0
  331. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/port/inc/scan.js +0 -0
  332. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/port/list.js +0 -0
  333. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/port/reset.js +0 -0
  334. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/port/set.js +0 -0
  335. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/project/help.js +0 -0
  336. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/project/import.js +0 -0
  337. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/project/move.js +0 -0
  338. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/project/remove.js +0 -0
  339. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/project/rename.js +0 -0
  340. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/project/restart.js +0 -0
  341. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/project/rm.js +0 -0
  342. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/project/start.js +0 -0
  343. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/project/status.js +0 -0
  344. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/project/stop.js +0 -0
  345. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/protocol/help.js +0 -0
  346. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/protocol/help.txt +0 -0
  347. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/protocol/set.js +0 -0
  348. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/scope/add.js +0 -0
  349. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/scope/help.js +0 -0
  350. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/scope/help.txt +0 -0
  351. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/scope/link-local.js +0 -0
  352. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/scope/link-production.js +0 -0
  353. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/scope/list.js +0 -0
  354. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/scope/remove.js +0 -0
  355. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/scope/rm.js +0 -0
  356. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/scope/use.js +0 -0
  357. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cmd/view/add.js +0 -0
  358. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/collection/README.md +0 -0
  359. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/collection/build.json +0 -0
  360. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cron/README.md +0 -0
  361. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/cron/src/main.js +0 -0
  362. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/domain/LICENSE +0 -0
  363. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/domain/README.md +0 -0
  364. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/domain/exemples/frontend.html +0 -0
  365. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/inherits/README.md +0 -0
  366. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/inherits/example/inheriting_eventemitter.js +0 -0
  367. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/inherits/example/protected_inheritance.js +0 -0
  368. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/inherits/example/simple_inheritance.js +0 -0
  369. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/inherits/example/super_attribute_overridden_by_child_on_init.js +0 -0
  370. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/logger/README.md +0 -0
  371. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/logger/src/containers/default/index.js +0 -0
  372. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/logger/src/containers/file/index.js +0 -0
  373. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/logger/src/containers/file/lib/logrotator/README.md +0 -0
  374. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/logger/src/containers/file/lib/logrotator/index.js +0 -0
  375. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/logger/src/containers/mq/index.js +0 -0
  376. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/logger/src/containers/mq/speaker.js +0 -0
  377. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/merge/README.md +0 -0
  378. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/merge/example/merge.js +0 -0
  379. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/merge/example/merge_2_literal objects.js +0 -0
  380. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/merge/example/merge_and_preserve_first.js +0 -0
  381. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/merge/src/main.js +0 -0
  382. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/routing/README.md +0 -0
  383. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/routing/build.json +0 -0
  384. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/shell.js +0 -0
  385. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/swig-filters/README.md +0 -0
  386. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/url/README.md +0 -0
  387. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/url/index.js +0 -0
  388. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/url/mocks.json +0 -0
  389. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/lib/url/routing.json +0 -0
  390. /package/framework/{v0.1.6-alpha.13 → v0.1.6-alpha.130}/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 += ','
@@ -3108,7 +3212,9 @@
3108
3212
 
3109
3213
  var processEvent = function() {
3110
3214
 
3111
- console.debug('processing: ' + event.target.name+ '/'+ event.target.id);
3215
+ if ( !/^(password)$/i.test(event.target.type) ) {
3216
+ console.debug('processing: ' + event.target.name+ '/'+ event.target.id);
3217
+ }
3112
3218
 
3113
3219
  // Do not validate `onChange` if `input value` === `orignal value`
3114
3220
  // Or else, you will get an endless loop
@@ -3126,7 +3232,6 @@
3126
3232
  } else {
3127
3233
  handleErrorsDisplay(event.target.form, errors, null, event.target.name);
3128
3234
  }
3129
- //return cancelEvent(event);
3130
3235
  }
3131
3236
 
3132
3237
 
@@ -3136,7 +3241,7 @@
3136
3241
 
3137
3242
  instance.$forms[event.target.form.getAttribute('id')].isValidating = true;
3138
3243
  validate(event.target, localField, $localField, $form.rules, function onLiveValidation(result){
3139
- instance.$forms[event.target.form.getAttribute('id')].isValidating = false;
3244
+ // instance.$forms[event.target.form.getAttribute('id')].isValidating = false;
3140
3245
  //console.debug('validation on processEvent(...) ', result);
3141
3246
 
3142
3247
  var isFormValid = result.isValid();
@@ -3162,8 +3267,10 @@
3162
3267
  instance.$forms[formId].isValidating = true;
3163
3268
  validate($gForm, gFields, $gFields, gRules, function onSilentGlobalLiveValidation(gResult){
3164
3269
  instance.$forms[formId].isValidating = false;
3165
- console.debug('['+ formId +'] onSilentGlobalLiveValidation: '+ gResult.isValid(), gResult);
3270
+ console.debug('['+ formId +'] onSilentGlobalLiveValidation: '+ gResult.isValid(), gResult, gFields);
3271
+ // var isFormValid = ( gResult.isValid() && instance.$forms[formId].errors && instance.$forms[formId].errors.count() == 0 )? true : false;
3166
3272
  var isFormValid = gResult.isValid();
3273
+ // var isFormValid = gResult.isValid();
3167
3274
  if ( envIsDev && isGFFCtx && typeof(window.ginaToolbar) != 'undefined' && window.ginaToolbar ) {
3168
3275
  // update toolbar
3169
3276
  if (!gina.forms.errors)
@@ -3178,6 +3285,27 @@
3178
3285
  }
3179
3286
 
3180
3287
 
3288
+ if ( !isFormValid && gResult.error ) {
3289
+ // Fixed on 2025-03-16 - we need past and live errors
3290
+ instance.$forms[ $el.form.getAttribute('id') ].errors = merge(result.error, gResult.error);
3291
+ // Fixed on 2025-03-16
3292
+ for (let eField in gResult.error) {
3293
+ refreshWarning($gFields[eField]);
3294
+ handleErrorsDisplay($gForm, gResult.error, gResult.data, eField);
3295
+ }
3296
+ }
3297
+ // Fixed on 2025-03-16
3298
+ // Eg.: input select change impacting another element: solve `no more errors`
3299
+ else if ( instance.$forms[formId].errors && !instance.$forms[formId].errors.count() ) {
3300
+ // recheck if valid
3301
+ //resetting error display
3302
+ instance.$forms[ formId ].errors = {};
3303
+ console.debug('resetting field: '+ $el.name);
3304
+ liveCheckErrors[formId] = {};
3305
+ // $form.dataset.ginaFormIsResetting = true;
3306
+ handleErrorsDisplay($gForm, {}, null, $el.name);
3307
+ }
3308
+
3181
3309
  updateSubmitTriggerState( $gForm, isFormValid);
3182
3310
 
3183
3311
  once = false;
@@ -3211,13 +3339,16 @@
3211
3339
  // other inputs & textareas
3212
3340
  else if ( /^focusin\./i.test(event.type) ) {
3213
3341
  if ( /\-error/.test($el.parentNode.className) ) {
3214
- console.debug('#1 you just focusin ....'+$el.id, $el.value);
3342
+ console.debug('#1 you just focusin ....'+$el.id, $el.value, instance.$forms[ $el.form.getAttribute('id') ].isValidating);
3215
3343
  refreshWarning($el);
3216
3344
  }
3217
3345
  }
3218
3346
  else if ( /^focusout\./i.test(event.type) ) {
3219
3347
  if ( /\-warning/.test($el.parentNode.className) ) {
3220
3348
  console.debug('#1 you just focusout ....'+$el.id, $el.value);
3349
+ // Removed on 2025-03-16
3350
+ instance.$forms[ $el.form.getAttribute('id') ].isValidating = false;
3351
+
3221
3352
  refreshWarning($el);
3222
3353
  // in case error context is changed by another task
3223
3354
  handleErrorsDisplay($el.form, instance.$forms[ $el.form.getAttribute('id') ].errors, null, $el.name);
@@ -3226,12 +3357,86 @@
3226
3357
  else if ( /^keyup\./i.test(event.type) ) {
3227
3358
  $el.ginaFormValidatorTestedValue = $el.value;
3228
3359
  liveCheckTimer = setTimeout( function onLiveCheckTimer() {
3229
- // do not trigger for copy/paste event
3230
- if ( ['91', '17'].indexOf(''+event.keyCode) > -1 && keyboardMapping.count() == 0) {
3360
+ // Do not trigger for copy/paste events
3361
+ if ( ['91', '17', '16'].indexOf(''+event.keyCode) > -1 && keyboardMapping.count() == 0) {
3231
3362
  //console.debug('mapping ', keyboardMapping);
3232
3363
  return;
3233
3364
  }
3234
- console.debug(' keyup ('+ event.keyCode +') .... '+$el.id, $el.value, ' VS ',$el.ginaFormValidatorTestedValue + '(old)');
3365
+
3366
+ // Fixed on 2025-03-16:
3367
+ // Treat TAB as focus in/out
3368
+ // if ( ['9'].indexOf(''+event.keyCode) > -1 ) {
3369
+
3370
+ // console.debug('[TAB] you just focusout from "'+ instance.$forms[ $el.form.getAttribute('id') ].lastFocused[1].id +'" to "'+ $el.id +'"');
3371
+ // var $gForm = event.target.form, gFields = null, $gFields = null, gRules = null;
3372
+ // var gValidatorInfos = getFormValidationInfos($gForm, rules);
3373
+ // gFields = gValidatorInfos.fields;
3374
+ // $gFields = gValidatorInfos.$fields;
3375
+ // var formId = $gForm.getAttribute('id');
3376
+ // gRules = instance.$forms[formId].rules;
3377
+ // // Don't be tempted to revome fields that has already been validated
3378
+ // instance.$forms[formId].isValidating = true;
3379
+ // validate($gForm, gFields, $gFields, gRules, function onSilentGlobalLiveValidation(gResult){
3380
+ // instance.$forms[formId].isValidating = false;
3381
+ // console.debug('['+ formId +'] [9] onSilentGlobalLiveValidation: '+ gResult.isValid(), gResult, gFields);
3382
+ // var isFormValid = ( gResult.isValid() && instance.$forms[formId].errors && instance.$forms[formId].errors.count() == 0 )? true : false;
3383
+ // // var isFormValid = gResult.isValid();
3384
+ // if ( envIsDev && isGFFCtx && typeof(window.ginaToolbar) != 'undefined' && window.ginaToolbar ) {
3385
+ // // update toolbar
3386
+ // if (!gina.forms.errors)
3387
+ // gina.forms.errors = {};
3388
+
3389
+ // var objCallback = {
3390
+ // id : formId,
3391
+ // errors : gResult.error || {}
3392
+ // };
3393
+
3394
+ // window.ginaToolbar.update('forms', objCallback);
3395
+ // }
3396
+
3397
+
3398
+ // if ( !isFormValid && gResult.error ) {
3399
+ // // Fixed on 2025-03-16 - we need past and live errors
3400
+ // instance.$forms[ $el.form.getAttribute('id') ].errors = merge(result.error, gResult.error);
3401
+ // // Fixed on 2025-03-16
3402
+ // for (let eField in instance.$forms[ $el.form.getAttribute('id') ].errors) {
3403
+ // refreshWarning($gFields[eField]);
3404
+ // handleErrorsDisplay($gForm, instance.$forms[ $el.form.getAttribute('id') ].errors, gResult.data, eField);
3405
+ // }
3406
+ // }
3407
+ // // Fixed on 2025-03-16
3408
+ // // Eg.: input select change impacting another element: solve `no more errors`
3409
+ // else if ( instance.$forms[formId].errors && !instance.$forms[formId].errors.count() ) {
3410
+ // // recheck if valid
3411
+ // //resetting error display
3412
+ // instance.$forms[ formId ].errors = {};
3413
+ // console.debug('resetting field: '+ $el.name);
3414
+ // liveCheckErrors[formId] = {};
3415
+ // // $form.dataset.ginaFormIsResetting = true;
3416
+ // handleErrorsDisplay($gForm, {}, null, $el.name);
3417
+ // }
3418
+
3419
+ // updateSubmitTriggerState( $gForm, isFormValid);
3420
+
3421
+ // once = false;
3422
+ // });
3423
+ // // var $previeousEl = document.getElementById(instance.$forms[ $el.form.getAttribute('id') ].lastFocused[1].id);
3424
+ // // var errors = instance.$forms[ $previeousEl.form.getAttribute('id') ].errors;
3425
+ // // var isFormValid = (!errors[$previeousEl.name]) ? true : false;
3426
+ // // console.debug('[TAB] you just focusout from "'+ instance.$forms[ $el.form.getAttribute('id') ].lastFocused[1].id +'" to "'+ $el.id +'"', "errors: ", errors);
3427
+ // // if (errors && errors.count() > 0 ) {
3428
+ // // instance.$forms[ $previeousEl.form.getAttribute('id') ].isValidating = false;
3429
+ // // isFormValid = false;
3430
+ // // }
3431
+ // // refreshWarning($previeousEl);
3432
+ // // // // in case error context is changed by another task
3433
+ // // handleErrorsDisplay($previeousEl.form, errors, null, $previeousEl.name);
3434
+ // // updateSubmitTriggerState( $el.form, isFormValid);
3435
+ // return;
3436
+ // }
3437
+
3438
+
3439
+ console.debug('[A]['+keyboardMapping.count()+'] keyup ('+ event.keyCode +') .... '+$el.id, $el.value, ' VS ',$el.ginaFormValidatorTestedValue + '(old)');
3235
3440
  processEvent();
3236
3441
  }, 1000);
3237
3442
  }
@@ -3331,16 +3536,42 @@
3331
3536
  //console.debug('pressed: '+ e.key+'('+ e.keyCode+')', ' S:'+posStart, ' E:'+posEnd, ' MAP: '+ JSON.stringify(keyboardMapping));
3332
3537
  switch (e.keyCode) {
3333
3538
  case 46: //Delete
3539
+ if (posStart != posEnd) {
3540
+ $_el.value = str.substring(0, posStart) + str.substring(posEnd);
3541
+ if (posStart == 0) {
3542
+ $_el.value = str.substring(posEnd+1);
3543
+ }
3544
+ } else if (posStart == 0) {
3545
+ $_el.value = str.substring(posStart+1);
3546
+ } else {
3547
+ $_el.value = str.substring(0, posStart) + str.substring(posEnd+1);
3548
+ }
3549
+
3550
+ e.currentTarget.setAttribute('readonly', 'readonly');
3551
+ setTimeout(() => {
3552
+ $_el.removeAttribute('readonly');
3553
+ setTimeout(() => {
3554
+ if (posStart != posEnd) {
3555
+ setCaretToPos($_el, posStart);
3556
+ } else if (posStart == 0) {
3557
+ setCaretToPos($_el, posStart);
3558
+ } else {
3559
+ setCaretToPos($_el, posStart);
3560
+ }
3561
+ }, 0)
3562
+
3563
+ }, 0);
3564
+ break
3334
3565
  case 8: //Backspace
3335
3566
  if (posStart != posEnd) {
3336
- $_el.value = str.substr(0, posStart) + str.substr(posEnd);
3567
+ $_el.value = str.substring(0, posStart) + str.substring(posEnd);
3337
3568
  if (posStart == 0) {
3338
- $_el.value = str.substr(posEnd);
3569
+ $_el.value = str.substring(posEnd);
3339
3570
  }
3340
3571
  } else if (posStart == 0) {
3341
3572
  $_el.value = str.substring(posStart+1);
3342
3573
  } else {
3343
- $_el.value = str.substr(0, posStart-1) + str.substr(posEnd);
3574
+ $_el.value = str.substring(0, posStart-1) + str.substring(posEnd);
3344
3575
  }
3345
3576
 
3346
3577
  e.currentTarget.setAttribute('readonly', 'readonly');
@@ -3378,9 +3609,9 @@
3378
3609
  }
3379
3610
  break;
3380
3611
  // Shortcuts
3381
- case 17: //CTRL
3382
- case 91: //CMD
3383
- console.debug("CMD hit");
3612
+ case 17: // CTRL
3613
+ case 91: // CMD
3614
+ console.debug("CMD, CTRL hit");
3384
3615
  e.preventDefault();
3385
3616
  break;
3386
3617
  case 67: // to handle CMD+C (copy)
@@ -3427,15 +3658,18 @@
3427
3658
  }
3428
3659
  default:
3429
3660
  // Replace selection
3661
+ if (e.key.length > 1) {
3662
+ break;
3663
+ }
3430
3664
  if (posStart != posEnd) {
3431
- $_el.value = str.substr(0, posStart) + e.key;
3665
+ $_el.value = str.substring(0, posStart) + e.key;
3432
3666
  if (posEnd-1 < str.length) {
3433
3667
  $_el.value += str.substring(posEnd)
3434
3668
  }
3435
3669
  } else if (posStart == 0) {
3436
3670
  $_el.value = e.key + str.substring(posStart);
3437
3671
  } else {
3438
- $_el.value = str.substr(0, posStart) + e.key + str.substr(posEnd);
3672
+ $_el.value = str.substring(0, posStart) + e.key + str.substring(posEnd);
3439
3673
  }
3440
3674
  e.currentTarget.setAttribute('readonly', 'readonly');
3441
3675
  // Force restore last caret position
@@ -3577,24 +3811,53 @@
3577
3811
  }
3578
3812
 
3579
3813
  /**
3580
- * reBindForm - This is a WIP
3814
+ * reBindForm
3815
+ * Allows form rebinding: it is like reseting validation
3581
3816
  *
3582
- * @param {object} HTMLElement
3583
- * @param {object} rules
3584
- * @returns {object} formValidatorInstance
3817
+ * E.g.:
3818
+ * $validator
3819
+ * .getFormById('my-form-id')
3820
+ * .reBind();
3821
+ *
3822
+ * @param {string} [formId]
3823
+ * @param {string} [rules]
3824
+ * @param {callback} [cb]
3585
3825
  */
3586
- var reBindForm = function($target, rules, cb) {
3587
- // Unbind form
3588
- var formInstance = unbindForm($target);
3826
+ var reBindForm = function(formId, rules, cb) {
3827
+ var $form = null
3828
+ , _id = null
3829
+ ;
3830
+ if (
3831
+ typeof(this.target) != 'undefined'
3832
+ && /FORM/i.test(this.target.tagName)
3833
+ ) {
3834
+ _id = formId = this.target.getAttribute('id')
3835
+ } else if ( /string/i.test(typeof(formId)) ) {
3836
+ _id = formId
3837
+ }
3838
+
3839
+ if ( typeof(instance.$forms[_id]) != 'undefined') {
3840
+ $form = instance.$forms[_id];
3841
+ } else {
3842
+ throw new Error('form instance `'+ _id +'` not found');
3843
+ }
3844
+
3589
3845
  // reset errors
3590
- //resetErrorsDisplay(formInstance.id);
3846
+ resetErrorsDisplay(_id);
3847
+ // Unbind form
3848
+ unbindForm($form.target);
3591
3849
  // Bind
3592
- bindForm(formInstance.target, rules);
3850
+ if ( typeof(rule) != 'undefined' ) {
3851
+ bindForm($form.target, rules);
3852
+ } else {
3853
+ bindForm($form.target);
3854
+ }
3593
3855
 
3594
3856
  if ( cb ) {
3595
- return cb(formInstance);
3857
+ return cb($form);
3596
3858
  }
3597
- return formInstance;
3859
+
3860
+ return $form;
3598
3861
  }
3599
3862
 
3600
3863
  var unbindForm = function($target) {
@@ -3612,7 +3875,7 @@
3612
3875
 
3613
3876
  } else if ( typeof($target.target) != 'undefined' ) {
3614
3877
  $form = $target;
3615
- _id = $form.id;
3878
+ _id = ( $target.getAttribute && $target.getAttribute('id') ) ? $form.getAttribute('id') : $form.id;
3616
3879
  } else {
3617
3880
  throw new Error('Validator::unbindForm($target): `$target` must be a DOM element\n'+err.stack )
3618
3881
  }
@@ -3651,7 +3914,7 @@
3651
3914
  // submit buttons
3652
3915
  $elTMP = $form.target.getElementsByTagName('button');
3653
3916
  if ( $elTMP.length > 0 ) {
3654
- for(let i = 0, len = $elTMP.length; i < len; ++i) {
3917
+ for (let i = 0, len = $elTMP.length; i < len; ++i) {
3655
3918
  // if button is != type="submit", you will need to provide : data-gina-form-submit
3656
3919
  // TODO - On button binding, you can then provide data-gina-form-action & data-gina-form-method
3657
3920
  $els.push($elTMP[i])
@@ -3661,7 +3924,7 @@
3661
3924
  // submit links
3662
3925
  $elTMP = $form.target.getElementsByTagName('a');
3663
3926
  if ( $elTMP.length > 0 ) {
3664
- for(let i = 0, len = $elTMP.length; i < len; ++i) {
3927
+ for (let i = 0, len = $elTMP.length; i < len; ++i) {
3665
3928
  $els.push($elTMP[i])
3666
3929
  }
3667
3930
  }
@@ -3717,7 +3980,7 @@
3717
3980
  // textarea
3718
3981
  $elTMP = $form.target.getElementsByTagName('textarea');
3719
3982
  if ( $elTMP.length > 0 ) {
3720
- for(let i = 0, len = $elTMP.length; i < len; ++i) {
3983
+ for (let i = 0, len = $elTMP.length; i < len; ++i) {
3721
3984
  $els.push( $elTMP[i] )
3722
3985
  }
3723
3986
  }
@@ -3726,7 +3989,7 @@
3726
3989
  // forms inside main form
3727
3990
  $elTMP = $form.target.getElementsByTagName('form');
3728
3991
  if ( $elTMP.length > 0 ) {
3729
- for(let i = 0, len = $elTMP.length; i < len; ++i) {
3992
+ for (let i = 0, len = $elTMP.length; i < len; ++i) {
3730
3993
  $els.push( $elTMP[i] )
3731
3994
  }
3732
3995
  }
@@ -3811,8 +4074,10 @@
3811
4074
  /**
3812
4075
  * bindForm
3813
4076
  *
3814
- * @param {object} $target - DOM element
3815
- * @param {object} [customRule]
4077
+ * @param {object} [$target] - DOM element
4078
+ * @param {object|string} [customRule]
4079
+ *
4080
+ * @return {object} bindedForm
3816
4081
  * */
3817
4082
  var bindForm = function($target, customRule) {
3818
4083
 
@@ -3821,23 +4086,32 @@
3821
4086
  , rules = ( typeof(local.rules.count() > 0 ) ) ? local.rules : instance.rules
3822
4087
  ;
3823
4088
 
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');
4089
+ if (
4090
+ typeof($target) == 'undefined'
4091
+ && typeof(this.target) != 'undefined'
4092
+ && /FORM/i.test(this.target.tagName)
4093
+ ||
4094
+ !/object/i.test( typeof($target) )
4095
+ ) {
4096
+ _id = this.target.id || this.target.getAttribute('id');
4097
+ } else if ( /string/i.test(typeof($target)) ) {
4098
+ _id = $target
4099
+ } else {
4100
+ _id = $target.getAttribute('id')
4101
+ }
3831
4102
 
4103
+ try {
4104
+ if ( typeof(instance.$forms[_id]) != 'undefined') {
4105
+ $form = instance.$forms[_id];
4106
+ if ( typeof($form.target) == 'undefined' ) {
4107
+ throw new Error('Validator::bindForm($target, customRule): `$target` must be a DOM element\n');
4108
+ }
4109
+ $target = $form.target;
3832
4110
  } else {
3833
- throw new Error('Validator::bindForm($target, customRule): `$target` must be a DOM element\n'+err.stack )
4111
+ throw new Error('form instance `'+ _id +'` not found');
3834
4112
  }
3835
4113
  } 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
4114
+ throw new Error('Validator::bindForm($target, customRule) could not bind form `'+ $target +'`\n'+err.stack );
3841
4115
  }
3842
4116
 
3843
4117
  console.debug('binding for: '+ _id);
@@ -4143,7 +4417,7 @@
4143
4417
  } else if ( /img/i.test($els[i].tagName) ) {
4144
4418
  $img = $els[i];
4145
4419
  deleteLinkId = uploadTriggerId + '-'+index+'-delete-trigger';
4146
- let file = $img.src.substr($img.src.lastIndexOf('/')+1);
4420
+ let file = $img.src.substring($img.src.lastIndexOf('/')+1);
4147
4421
  $uploadTrigger.customFiles.push({
4148
4422
  name: file,
4149
4423
  deleteLinkId: deleteLinkId
@@ -4535,7 +4809,16 @@
4535
4809
  validate($gForm, gFields, $gFields, gRules, function onSilentGlobalLiveValidation(gResult){
4536
4810
  instance.$forms[formId].isValidating = false;
4537
4811
  console.debug('[updateSelect]: onSilentGlobalLiveValidation: '+ gResult.isValid(), gResult);
4812
+ // Fixed on 2025-03-16
4538
4813
  var isFormValid = gResult.isValid();
4814
+ if (!isFormValid) {
4815
+ instance.$forms[formId].errors = gResult.error;
4816
+ for (let eField in gResult.error) {
4817
+ // refreshWarning($gFields[eField]);
4818
+ handleErrorsDisplay($gForm, gResult.error, gResult.data, eField);
4819
+ }
4820
+ }
4821
+
4539
4822
  updateSubmitTriggerState( $gForm, isFormValid);
4540
4823
  once = false;
4541
4824
  })
@@ -5129,6 +5412,25 @@
5129
5412
  if (gina.events[_evt]) {
5130
5413
  cancelEvent(event);
5131
5414
 
5415
+ // Fixed on 2025-03-05 - "last focus" vs "current focus"
5416
+ // To get active element: document.activeElement
5417
+ var formId = event.target.form.getAttribute('id') || event.currentTarget.getAttribute('id');
5418
+ var lastFocused = {
5419
+ id : $el.id,
5420
+ name: $el.name
5421
+ };
5422
+ if (!instance.$forms[formId].lastFocused.length) {
5423
+ instance.$forms[formId].lastFocused[0] = lastFocused;
5424
+ } else {
5425
+ instance.$forms[formId].lastFocused.splice(0,0,lastFocused);
5426
+ }
5427
+ lastFocused = ( typeof(instance.$forms[formId].lastFocused[1]) != 'undefined' ) ? instance.$forms[formId].lastFocused[1].id : null;
5428
+
5429
+ // cleanup
5430
+ instance.$forms[formId].lastFocused.splice(2);
5431
+
5432
+ // console.debug('lastFocused: ', lastFocused, ' VS current: ', $el.id);
5433
+
5132
5434
  triggerEvent(gina, $el, _evt, event.detail);
5133
5435
  }
5134
5436
  });
@@ -5445,7 +5747,7 @@
5445
5747
  ;
5446
5748
  $buttonsTMP = $target.getElementsByTagName('button');
5447
5749
  if ( $buttonsTMP.length > 0 ) {
5448
- for(let b = 0, len = $buttonsTMP.length; b < len; ++b) {
5750
+ for (let b = 0, len = $buttonsTMP.length; b < len; ++b) {
5449
5751
  if ($buttonsTMP[b].type == 'submit') {
5450
5752
  $buttons.push($buttonsTMP[b])
5451
5753
  }
@@ -5455,7 +5757,7 @@
5455
5757
  // binding links
5456
5758
  $buttonsTMP = $target.getElementsByTagName('a');
5457
5759
  if ( $buttonsTMP.length > 0 ) {
5458
- for(let b = 0, len = $buttonsTMP.length; b < len; ++b) {
5760
+ for (let b = 0, len = $buttonsTMP.length; b < len; ++b) {
5459
5761
  if ( $buttonsTMP[b].attributes.getNamedItem('data-gina-form-submit') ) {
5460
5762
  $buttons.push($buttonsTMP[b])
5461
5763
  } else if (
@@ -5712,7 +6014,8 @@
5712
6014
  }
5713
6015
  updateSubmitTriggerState( $form, result.isValid() );
5714
6016
  });
5715
- } else if (!/^(true)$/i.test($form.target.dataset.ginaFormLiveCheckEnabled) ) {
6017
+ }
6018
+ else if (!/^(true)$/i.test($form.target.dataset.ginaFormLiveCheckEnabled) ) {
5716
6019
  updateSubmitTriggerState( $form , true );
5717
6020
  }
5718
6021
 
@@ -6175,7 +6478,8 @@
6175
6478
  if ( !/^form$/i.test($formOrElement.tagName) ) {
6176
6479
  $currentForm = $formOrElement.form;
6177
6480
  }
6178
- var formId = $currentForm.getAttribute('id');
6481
+ var formId = $currentForm.getAttribute('id');
6482
+ var isFormValid = null;
6179
6483
 
6180
6484
  if (
6181
6485
  hasParsedAllRules
@@ -6196,10 +6500,16 @@
6196
6500
  if ( typeof(instance.$forms[formId].errors) == 'undefined' ) {
6197
6501
  instance.$forms[formId].errors = {}
6198
6502
  }
6503
+ // Fixed on 2025-03-16
6504
+ if ( typeof(cb._errors[field]) != 'undefined' ) {
6505
+ instance.$forms[formId].errors[field] = cb._errors[field];
6506
+ }
6507
+ console.debug('[A] Refreshing warning/error on field '+ field);
6508
+ if (
6509
+ !isFormValid && /^true|false$/i.test(instance.$forms[formId].isValidating)
6510
+ || d[field].target.value != ''
6199
6511
 
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 != '' ) {
6512
+ ) {
6203
6513
  refreshWarning($allFields[field]);
6204
6514
  handleErrorsDisplay($currentForm, cb._errors, cb._data, field);
6205
6515
  updateSubmitTriggerState( $currentForm, isFormValid);
@@ -6207,8 +6517,9 @@
6207
6517
 
6208
6518
  if ( envIsDev && isGFFCtx && typeof(window.ginaToolbar) != 'undefined' && window.ginaToolbar ) {
6209
6519
  // update toolbar
6210
- if (!gina.forms.errors)
6520
+ if (!gina.forms.errors) {
6211
6521
  gina.forms.errors = {};
6522
+ }
6212
6523
 
6213
6524
  var objCallback = {
6214
6525
  id : formId,
@@ -6225,13 +6536,13 @@
6225
6536
  }
6226
6537
 
6227
6538
  // is this the last or the only field to be validated ?
6228
- var needsGlobalReValidation = false, isFormValid = null;
6539
+ var needsGlobalReValidation = false;
6229
6540
  if ( listedFields.length == 1 || listedFields[listedFields.length-1] == field) {
6230
6541
  // trigger end of validation
6231
6542
  // console.debug(field +' is the last element to be validated for formId: '+ formId, cb._errors, instance.$forms[formId].errors);
6232
6543
  isFormValid = ( cb._errors.count() > 0 ) ? false : true;
6233
6544
  if (!isFormValid && /^true|false$/i.test(instance.$forms[formId].isValidating)) {
6234
- //console.debug('should update error display now ', cb._errors);
6545
+ console.debug('[1] Should update error display now ', cb._errors);
6235
6546
  instance.$forms[formId].errors = merge(cb._errors, instance.$forms[formId].errors);
6236
6547
  refreshWarning($allFields[field]);
6237
6548
  handleErrorsDisplay($currentForm, cb._errors, cb._data, field);
@@ -6263,8 +6574,6 @@
6263
6574
  window.ginaToolbar.update('forms', objCallback);
6264
6575
  }
6265
6576
 
6266
-
6267
-
6268
6577
  handleErrorsDisplay($currentForm, gResult.error, gResult.data, field);
6269
6578
  updateSubmitTriggerState( $currentForm, isFormValid);
6270
6579
  })
@@ -6408,7 +6717,7 @@
6408
6717
 
6409
6718
  for (var c in rules) {
6410
6719
  if (!/^\_case\_/.test(c) ) continue;
6411
- if ( typeof(rules[c].conditions) == 'undefined' || Array.isArray(rules[c].conditions) && !rules[c].conditions.length ) continue;
6720
+ if ( typeof(rules[c].conditions) == 'undefined' || Array.isArray(rules[c].conditions) && !rules[c].conditions.length ) continue;
6412
6721
  if ( typeof(rules[c].conditions[0].rules) == 'undefined' ) continue;
6413
6722
 
6414
6723
 
@@ -6590,7 +6899,14 @@
6590
6899
  // filtering conditions
6591
6900
  for (var _c = 0, _cLen = rules[c].conditions.length; _c < _cLen; ++_c) {
6592
6901
 
6593
- if (rules[c].conditions[_c].case != caseValue) {
6902
+ if (
6903
+ Array.isArray(rules[c].conditions[_c].case)
6904
+ && rules[c].conditions[_c].case.indexOf(caseValue) == -1
6905
+ ||
6906
+ !Array.isArray(rules[c].conditions[_c].case)
6907
+ && rules[c].conditions[_c].case != caseValue
6908
+
6909
+ ) {
6594
6910
  continue;
6595
6911
  }
6596
6912
 
@@ -6735,7 +7051,8 @@
6735
7051
  if (
6736
7052
  conditions[c]['case'] === caseValue
6737
7053
  ||
6738
- Array.isArray(conditions[c]['case']) && conditions[c]['case'].indexOf(caseValue) > -1
7054
+ Array.isArray(conditions[c]['case'])
7055
+ && conditions[c]['case'].indexOf(caseValue) > -1
6739
7056
  ||
6740
7057
  /^\//.test(conditions[c]['case'])
6741
7058
  ) {
@@ -6852,8 +7169,6 @@
6852
7169
  }
6853
7170
  --i;
6854
7171
  }
6855
-
6856
-
6857
7172
  } // EO for
6858
7173
  }
6859
7174
 
@@ -6874,7 +7189,7 @@
6874
7189
  }
6875
7190
 
6876
7191
  if (isGFFCtx)
6877
- $fields[field].setAttribute('data-gina-form-errors', fieldErrorsAttributes[field].substr(0, fieldErrorsAttributes[field].length-1))
7192
+ $fields[field].setAttribute('data-gina-form-errors', fieldErrorsAttributes[field].substring(0, fieldErrorsAttributes[field].length-1))
6878
7193
  }
6879
7194
 
6880
7195
  //calling back
@@ -6945,6 +7260,8 @@
6945
7260
  'data' : formatData( _data )
6946
7261
  });
6947
7262
  removeListener(gina, event.target, 'validated.' + event.target.id);
7263
+
7264
+
6948
7265
  return
6949
7266
  }
6950
7267
  });